ZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9jb250YWluZXJfY3RybC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2FqYXgvY29udGFpbmVyX2N0cmwucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZTIyMGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2FqYXgvY29udGFpbmVyX2N0cmwucGhwCkBAIC0wLDAgKzEsNTIgQEAKKzw/cGhwDQorcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9wcmVyZXF1aXNpdGVzLmluYy5waHAnOw0KK2lmICghaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSkgfHwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAnYWRtaW4nKSB7DQorCWV4aXQoKTsNCit9DQorDQoraWYgKHByZWdfbWF0Y2goJy9eW2EtelwtXXswLH0tbWFpbGNvdy8nLCAkX0dFVFsnc2VydmljZSddKSkgew0KKyAgaWYgKCRfR0VUWydhY3Rpb24nXSA9PSAic3RhcnQiKSB7DQorICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnKTsNCisgICAgJHJldHJ5ID0gMDsNCisgICAgd2hpbGUgKGRvY2tlcignaW5mbycsICRfR0VUWydzZXJ2aWNlJ10pWydTdGF0ZSddWydSdW5uaW5nJ10gIT0gMSAmJiAkcmV0cnkgPD0gMykgew0KKyAgICAgICRyZXNwb25zZSA9IGRvY2tlcigncG9zdCcsICRfR0VUWydzZXJ2aWNlJ10sICdzdGFydCcpOw0KKyAgICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSwgdHJ1ZSk7DQorICAgICAgJGxhc3RfcmVzcG9uc2UgPSAoJHJlc3BvbnNlWyd0eXBlJ10gPT0gInN1Y2Nlc3MiKSA/ICc8Yj48c3BhbiBjbGFzcz0icHVsbC1yaWdodCB0ZXh0LXN1Y2Nlc3MiPk9LPC9zcGFuPjwvYj4nIDogJzxiPjxzcGFuIGNsYXNzPSJwdWxsLXJpZ2h0IHRleHQtZGFuZ2VyIj5FcnJvcjogJyAuICRyZXNwb25zZVsnbXNnJ10gLiAnPC9zcGFuPjwvYj4nOw0KKyAgICAgIGlmICgkcmVzcG9uc2VbJ3R5cGUnXSA9PSAic3VjY2VzcyIpIHsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgICB1c2xlZXAoMTUwMDAwMCk7DQorICAgICAgJHJldHJ5Kys7DQorICAgIH0NCisgICAgZWNobyAoIWlzc2V0KCRsYXN0X3Jlc3BvbnNlKSkgPyAnPGI+PHNwYW4gY2xhc3M9InB1bGwtcmlnaHQgdGV4dC13YXJuaW5nIj5BbHJlYWR5IHJ1bm5pbmc8L3NwYW4+PC9iPicgOiAkbGFzdF9yZXNwb25zZTsNCisgIH0NCisgIGlmICgkX0dFVFsnYWN0aW9uJ10gPT0gInN0b3AiKSB7DQorICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgnKTsNCisgICAgJHJldHJ5ID0gMDsNCisgICAgd2hpbGUgKGRvY2tlcignaW5mbycsICRfR0VUWydzZXJ2aWNlJ10pWydTdGF0ZSddWydSdW5uaW5nJ10gPT0gMSAmJiAkcmV0cnkgPD0gMykgew0KKyAgICAgICRyZXNwb25zZSA9IGRvY2tlcigncG9zdCcsICRfR0VUWydzZXJ2aWNlJ10sICdzdG9wJyk7DQorICAgICAgJHJlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlLCB0cnVlKTsNCisgICAgICAkbGFzdF9yZXNwb25zZSA9ICgkcmVzcG9uc2VbJ3R5cGUnXSA9PSAic3VjY2VzcyIpID8gJzxiPjxzcGFuIGNsYXNzPSJwdWxsLXJpZ2h0IHRleHQtc3VjY2VzcyI+T0s8L3NwYW4+PC9iPicgOiAnPGI+PHNwYW4gY2xhc3M9InB1bGwtcmlnaHQgdGV4dC1kYW5nZXIiPkVycm9yOiAnIC4gJHJlc3BvbnNlWydtc2cnXSAuICc8L3NwYW4+PC9iPic7DQorICAgICAgaWYgKCRyZXNwb25zZVsndHlwZSddID09ICJzdWNjZXNzIikgew0KKyAgICAgICAgYnJlYWs7DQorICAgICAgfQ0KKyAgICAgIHVzbGVlcCgxNTAwMDAwKTsNCisgICAgICAkcmV0cnkrKzsNCisgICAgfQ0KKyAgICBlY2hvICghaXNzZXQoJGxhc3RfcmVzcG9uc2UpKSA/ICc8Yj48c3BhbiBjbGFzcz0icHVsbC1yaWdodCB0ZXh0LXdhcm5pbmciPk5vdCBydW5uaW5nPC9zcGFuPjwvYj4nIDogJGxhc3RfcmVzcG9uc2U7DQorICB9DQorICBpZiAoJF9HRVRbJ2FjdGlvbiddID09ICJyZXN0YXJ0Iikgew0KKyAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jyk7DQorICAgICRyZXNwb25zZSA9IGRvY2tlcigncG9zdCcsICRfR0VUWydzZXJ2aWNlJ10sICdyZXN0YXJ0Jyk7DQorICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSwgdHJ1ZSk7DQorICAgICRsYXN0X3Jlc3BvbnNlID0gKCRyZXNwb25zZVsndHlwZSddID09ICJzdWNjZXNzIikgPyAnPGI+PHNwYW4gY2xhc3M9InB1bGwtcmlnaHQgdGV4dC1zdWNjZXNzIj5PSzwvc3Bhbj48L2I+JyA6ICc8Yj48c3BhbiBjbGFzcz0icHVsbC1yaWdodCB0ZXh0LWRhbmdlciI+RXJyb3I6ICcgLiAkcmVzcG9uc2VbJ21zZyddIC4gJzwvc3Bhbj48L2I+JzsNCisgICAgZWNobyAoIWlzc2V0KCRsYXN0X3Jlc3BvbnNlKSkgPyAnPGI+PHNwYW4gY2xhc3M9InB1bGwtcmlnaHQgdGV4dC13YXJuaW5nIj5DYW5ub3QgcmVzdGFydCBjb250YWluZXI8L3NwYW4+PC9iPicgOiAkbGFzdF9yZXNwb25zZTsNCisgIH0NCisgIGlmICgkX0dFVFsnYWN0aW9uJ10gPT0gImxvZ3MiKSB7DQorICAgICRsaW5lcyA9IChlbXB0eSgkX0dFVFsnbGluZXMnXSkgfHwgIWlzX251bWVyaWMoJF9HRVRbJ2xpbmVzJ10pKSA/IDEwMDAgOiAkX0dFVFsnbGluZXMnXTsNCisgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgnKTsNCisgICAgcHJpbnRfcihwcmVnX3NwbGl0KCcvXG4vJywgZG9ja2VyKCdsb2dzJywgJF9HRVRbJ3NlcnZpY2UnXSwgJGxpbmVzKSkpOw0KKyAgfQ0KK30NCisNCis/Pg0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9kZXN0cm95X3RmYV9hdXRoLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9kZXN0cm95X3RmYV9hdXRoLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmM3ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L2Rlc3Ryb3lfdGZhX2F1dGgucGhwCkBAIC0wLDAgKzEsNiBAQAorPD9waHANCitzZXNzaW9uX3N0YXJ0KCk7DQordW5zZXQoJF9TRVNTSU9OWydwZW5kaW5nX21haWxjb3dfY2NfdXNlcm5hbWUnXSk7DQordW5zZXQoJF9TRVNTSU9OWydwZW5kaW5nX21haWxjb3dfY2Nfcm9sZSddKTsNCit1bnNldCgkX1NFU1NJT05bJ3BlbmRpbmdfdGZhX21ldGhvZCddKTsNCis/Pg0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9kbnNfZGlhZ25vc3RpY3MucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L2Ruc19kaWFnbm9zdGljcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI4YTRlNAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9kbnNfZGlhZ25vc3RpY3MucGhwCkBAIC0wLDAgKzEsNDgxIEBACis8P3BocAorcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9wcmVyZXF1aXNpdGVzLmluYy5waHAnOworcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9zcGYuaW5jLnBocCc7CisKK2RlZmluZSgnc3RhdGVfZ29vZCcsICc8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1vayB0ZXh0LXN1Y2Nlc3MiPjwvc3Bhbj4nKTsKK2RlZmluZSgnc3RhdGVfbWlzc2luZycsICc8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmUgdGV4dC1kYW5nZXIiPjwvc3Bhbj4nKTsKK2RlZmluZSgnc3RhdGVfbm9tYXRjaCcsICI/Iik7CitkZWZpbmUoJ3N0YXRlX29wdGlvbmFsJywgIiA8c3VwPjI8L3N1cD4iKTsKKworaWYgKGlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10pICYmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICJhZG1pbiJ8fCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICJkb21haW5hZG1pbiIpKSB7CisKKyRkb21haW5zID0gbWFpbGJveCgnZ2V0JywgJ2RvbWFpbnMnKTsKKyRhbGlhc19kb21haW5zID0gYXJyYXkoKTsKK2ZvcmVhY2goJGRvbWFpbnMgYXMgJGRuKSB7CisgICRhbGlhc19kb21haW5zID0gYXJyYXlfbWVyZ2UoJGFsaWFzX2RvbWFpbnMsIG1haWxib3goJ2dldCcsICdhbGlhc19kb21haW5zJywgJGRuKSk7Cit9CiskZG9tYWlucyA9IGFycmF5X21lcmdlKCRkb21haW5zLCAkYWxpYXNfZG9tYWlucyk7CisKK2lmIChpc3NldCgkX0dFVFsnZG9tYWluJ10pKSB7CisgIGlmIChpc192YWxpZF9kb21haW5fbmFtZSgkX0dFVFsnZG9tYWluJ10pKSB7CisgICAgaWYgKGluX2FycmF5KCRfR0VUWydkb21haW4nXSwgJGRvbWFpbnMpKSB7CisgICAgICAkZG9tYWluID0gJF9HRVRbJ2RvbWFpbiddOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIGVjaG8gIk5vIHN1Y2ggZG9tYWluIGluIGNvbnRleHQiOworICAgICAgZXhpdCgpOworICAgIH0KKyAgfQorICBlbHNlIHsKKyAgICBlY2hvICJJbnZhbGlkIGRvbWFpbiBuYW1lIjsKKyAgICBleGl0KCk7CisgIH0KK30KKworJGNoID0gY3VybF9pbml0KCdodHRwOi8vaXA0Lm1haWxjb3cuZW1haWwnKTsKK2N1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9JUFJFU09MVkUsIENVUkxfSVBSRVNPTFZFX1Y0KTsKK2N1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9WRVJCT1NFLCBmYWxzZSk7CitjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCBmYWxzZSk7CitjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOworY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAzKTsKKyRpcCA9IGN1cmxfZXhlYygkY2gpOworY3VybF9jbG9zZSgkY2gpOworCiskY2ggPSBjdXJsX2luaXQoJ2h0dHA6Ly9pcDYubWFpbGNvdy5lbWFpbCcpOworY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0lQUkVTT0xWRSwgQ1VSTF9JUFJFU09MVkVfVjYpOworY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1ZFUkJPU0UsIGZhbHNlKTsKK2N1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IRUFERVIsIGZhbHNlKTsKK2N1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CitjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDMpOworJGlwNiA9IGN1cmxfZXhlYygkY2gpOworY3VybF9jbG9zZSgkY2gpOworCiskcHRyID0gaW1wbG9kZSgnLicsIGFycmF5X3JldmVyc2UoZXhwbG9kZSgnLicsICRpcCkpKSAuICcuaW4tYWRkci5hcnBhJzsKK2lmICghZW1wdHkoJGlwNikpIHsKKyAgJGlwNl9mdWxsID0gc3RyX3JlcGxhY2UoJzo6Jywgc3RyX3JlcGVhdCgnOicsIDktc3Vic3RyX2NvdW50KCRpcDYsICc6JykpLCAkaXA2KTsKKyAgJGlwNl9mdWxsID0gc3RyX3JlcGxhY2UoJzo6JywgJzowOicsICRpcDZfZnVsbCk7CisgICRpcDZfZnVsbCA9IHN0cl9yZXBsYWNlKCc6OicsICc6MDonLCAkaXA2X2Z1bGwpOworICAkcHRyNiA9ICcnOworICBmb3JlYWNoIChleHBsb2RlKCc6JywgJGlwNl9mdWxsKSBhcyAkcGFydCkgeworICAgICRwdHI2IC49IHN0cl9wYWQoJHBhcnQsIDQsICcwJywgU1RSX1BBRF9MRUZUKTsKKyAgfQorICAkcHRyNiA9IGltcGxvZGUoJy4nLCBhcnJheV9yZXZlcnNlKHN0cl9zcGxpdCgkcHRyNiwgMSkpKSAuICcuaXA2LmFycGEnOworfQorCiskaHR0cHNfcG9ydCA9IHN0cnBvcygkX1NFUlZFUlsnSFRUUF9IT1NUJ10sICc6Jyk7CitpZiAoJGh0dHBzX3BvcnQgPT09IEZBTFNFKSB7CisgICRodHRwc19wb3J0ID0gNDQzOworfQorZWxzZSB7CisgICRodHRwc19wb3J0ID0gc3Vic3RyKCRfU0VSVkVSWydIVFRQX0hPU1QnXSwgJGh0dHBzX3BvcnQrMSk7Cit9CisKK2lmICghaXNzZXQoJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NpZXZlJ10pKSB7CisgICRhdXRvZGlzY292ZXJfY29uZmlnWydzaWV2ZSddID0gYXJyYXkoJ3NlcnZlcicgPT4gJG1haWxjb3dfaG9zdG5hbWUsICdwb3J0JyA9PiBhcnJheV9wb3AoZXhwbG9kZSgnOicsIGdldGVudignU0lFVkVfUE9SVCcpKSkpOworfQorCisvLyBJbml0IHJlY29yZHMgYXJyYXkKKyRzcGZfbGluayA9ICc8YSBocmVmPSJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TZW5kZXJfUG9saWN5X0ZyYW1ld29yayIgdGFyZ2V0PSJfYmxhbmsiPlNQRiBSZWNvcmQgU3ludGF4PC9hPjxiciAvPic7CiskZG1hcmNfbGluayA9ICc8YSBocmVmPSJodHRwczovL3d3dy5raXR0ZXJtYW4uY29tL2RtYXJjL2Fzc2lzdGFudC5odG1sIiB0YXJnZXQ9Il9ibGFuayI+RE1BUkMgQXNzaXN0YW50PC9hPic7CisKKyRyZWNvcmRzID0gYXJyYXkoKTsKK2lmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICJhZG1pbiIpIHsKKyAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICRtYWlsY293X2hvc3RuYW1lLAorICAgICdBJywKKyAgICAkaXAKKyAgKTsKKyAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICRwdHIsCisgICAgJ1BUUicsCisgICAgJG1haWxjb3dfaG9zdG5hbWUKKyAgKTsKKyAgaWYgKCFlbXB0eSgkaXA2KSkgeworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICRtYWlsY293X2hvc3RuYW1lLAorICAgICAgJ0FBQUEnLAorICAgICAgZXhwYW5kX2lwdjYoJGlwNikKKyAgICApOworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICRwdHI2LAorICAgICAgJ1BUUicsCisgICAgICAkbWFpbGNvd19ob3N0bmFtZQorICAgICk7CisgIH0KKyAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICdfMjUuX3RjcC4nLiRhdXRvZGlzY292ZXJfY29uZmlnWydzbXRwJ11bJ3NlcnZlciddLAorICAgICdUTFNBJywKKyAgICBnZW5lcmF0ZV90bHNhX2RpZ2VzdCgkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWydzZXJ2ZXInXSwgMjUsIDEpCisgICk7CisgIGlmICghaW5fYXJyYXkoJGRvbWFpbiwgJGFsaWFzX2RvbWFpbnMpKSB7CisgICAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICAgJ18nLiRodHRwc19wb3J0LgorICAgICAgJy5fdGNwLicuJG1haWxjb3dfaG9zdG5hbWUsCisgICAgICAnVExTQScsCisgICAgICBnZW5lcmF0ZV90bHNhX2RpZ2VzdCgkbWFpbGNvd19ob3N0bmFtZSwgJGh0dHBzX3BvcnQpCisgICAgKTsKKyAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAnXycuJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3BvcDMnXVsndGxzcG9ydCddLgorICAgICAgJy5fdGNwLicuJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3BvcDMnXVsnc2VydmVyJ10sCisgICAgICAnVExTQScsCisgICAgICBnZW5lcmF0ZV90bHNhX2RpZ2VzdCgkYXV0b2Rpc2NvdmVyX2NvbmZpZ1sncG9wMyddWydzZXJ2ZXInXSwgJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3BvcDMnXVsndGxzcG9ydCddLCAxKQorICAgICk7CisgICAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICAgJ18nLiRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3Rsc3BvcnQnXS4KKyAgICAgICcuX3RjcC4nLiRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3NlcnZlciddLAorICAgICAgJ1RMU0EnLAorICAgICAgZ2VuZXJhdGVfdGxzYV9kaWdlc3QoJGF1dG9kaXNjb3Zlcl9jb25maWdbJ2ltYXAnXVsnc2VydmVyJ10sICRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3Rsc3BvcnQnXSwgMSkKKyAgICApOworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICdfJy4kYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWydwb3J0J10uCisgICAgICAnLl90Y3AuJy4kYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWydzZXJ2ZXInXSwKKyAgICAgICdUTFNBJywKKyAgICAgIGdlbmVyYXRlX3Rsc2FfZGlnZXN0KCRhdXRvZGlzY292ZXJfY29uZmlnWydzbXRwJ11bJ3NlcnZlciddLCAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWydwb3J0J10pCisgICAgKTsKKyAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAnXycuJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NtdHAnXVsndGxzcG9ydCddLgorICAgICAgJy5fdGNwLicuJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NtdHAnXVsnc2VydmVyJ10sCisgICAgICAnVExTQScsCisgICAgICBnZW5lcmF0ZV90bHNhX2RpZ2VzdCgkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWydzZXJ2ZXInXSwgJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NtdHAnXVsndGxzcG9ydCddLCAxKQorICAgICk7CisgICAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICAgJ18nLiRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3BvcnQnXS4KKyAgICAgICcuX3RjcC4nLiRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3NlcnZlciddLAorICAgICAgJ1RMU0EnLAorICAgICAgZ2VuZXJhdGVfdGxzYV9kaWdlc3QoJGF1dG9kaXNjb3Zlcl9jb25maWdbJ2ltYXAnXVsnc2VydmVyJ10sICRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3BvcnQnXSkKKyAgICApOworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICdfJy4kYXV0b2Rpc2NvdmVyX2NvbmZpZ1sncG9wMyddWydwb3J0J10uCisgICAgICAnLl90Y3AuJy4kYXV0b2Rpc2NvdmVyX2NvbmZpZ1sncG9wMyddWydzZXJ2ZXInXSwKKyAgICAgICdUTFNBJywKKyAgICAgIGdlbmVyYXRlX3Rsc2FfZGlnZXN0KCRhdXRvZGlzY292ZXJfY29uZmlnWydwb3AzJ11bJ3NlcnZlciddLCAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1sncG9wMyddWydwb3J0J10pCisgICAgKTsKKyAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAnXycuJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NpZXZlJ11bJ3BvcnQnXS4KKyAgICAgICcuX3RjcC4nLiRhdXRvZGlzY292ZXJfY29uZmlnWydzaWV2ZSddWydzZXJ2ZXInXSwKKyAgICAgICdUTFNBJywKKyAgICAgIGdlbmVyYXRlX3Rsc2FfZGlnZXN0KCRhdXRvZGlzY292ZXJfY29uZmlnWydzaWV2ZSddWydzZXJ2ZXInXSwgJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NpZXZlJ11bJ3BvcnQnXSwgMSkKKyAgICApOworICB9Cit9CiskcmVjb3Jkc1tdID0gYXJyYXkoCisgICRkb21haW4sCisgICdNWCcsCisgICRtYWlsY293X2hvc3RuYW1lCispOworaWYgKCFpbl9hcnJheSgkZG9tYWluLCAkYWxpYXNfZG9tYWlucykpIHsKKyAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICdhdXRvZGlzY292ZXIuJy4kZG9tYWluLAorICAgICdDTkFNRScsCisgICAgJG1haWxjb3dfaG9zdG5hbWUKKyAgKTsKKyAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICdfYXV0b2Rpc2NvdmVyLl90Y3AuJy4kZG9tYWluLAorICAgICdTUlYnLAorICAgICRtYWlsY293X2hvc3RuYW1lLgorICAgICcgJy4kaHR0cHNfcG9ydAorICApOworICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgJ2F1dG9jb25maWcuJy4kZG9tYWluLAorICAgICdDTkFNRScsCisgICAgJG1haWxjb3dfaG9zdG5hbWUKKyAgKTsKK30KKyRyZWNvcmRzW10gPSBhcnJheSgKKyAgJGRvbWFpbiwKKyAgJ1RYVCcsCisgICRzcGZfbGluaywKKyAgc3RhdGVfb3B0aW9uYWwKKyk7CiskcmVjb3Jkc1tdID0gYXJyYXkoCisgICdfZG1hcmMuJy4kZG9tYWluLAorICAnVFhUJywKKyAgJGRtYXJjX2xpbmssCisgIHN0YXRlX29wdGlvbmFsCispOworCitpZiAoIWVtcHR5KCRka2ltID0gZGtpbSgnZGV0YWlscycsICRkb21haW4pKSkgeworICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgJGRraW1bJ2RraW1fc2VsZWN0b3InXSAuICcuX2RvbWFpbmtleS4nIC4gJGRvbWFpbiwKKyAgICAnVFhUJywKKyAgICAkZGtpbVsnZGtpbV90eHQnXQorICApOworfQoraWYgKCFpbl9hcnJheSgkZG9tYWluLCAkYWxpYXNfZG9tYWlucykpIHsKKyAgJGN1cnJlbnRfcmVjb3JkcyA9IGRuc19nZXRfcmVjb3JkKCdfcG9wMy5fdGNwLicgLiAkZG9tYWluLCBETlNfU1JWKTsKKyAgaWYgKGNvdW50KCRjdXJyZW50X3JlY29yZHMpID09IDAgfHwgJGN1cnJlbnRfcmVjb3Jkc1swXVsndGFyZ2V0J10gIT0gJycpIHsKKyAgICBpZiAoJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3BvcDMnXVsndGxzcG9ydCddICE9ICcxMTAnKSB7CisgICAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAgICdfcG9wMy5fdGNwLicgLiAkZG9tYWluLAorICAgICAgICAnU1JWJywKKyAgICAgICAgJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3BvcDMnXVsnc2VydmVyJ10gLiAnICcgLiAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1sncG9wMyddWyd0bHNwb3J0J10KKyAgICAgICk7CisgICAgfQorICB9CisgIGVsc2UgeworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICdfcG9wMy5fdGNwLicgLiAkZG9tYWluLAorICAgICAgJ1NSVicsCisgICAgICAnLiAwJworICAgICk7CisgIH0KKyAgJGN1cnJlbnRfcmVjb3JkcyA9IGRuc19nZXRfcmVjb3JkKCdfcG9wM3MuX3RjcC4nIC4gJGRvbWFpbiwgRE5TX1NSVik7CisgIGlmIChjb3VudCgkY3VycmVudF9yZWNvcmRzKSA9PSAwIHx8ICRjdXJyZW50X3JlY29yZHNbMF1bJ3RhcmdldCddICE9ICcnKSB7CisgICAgaWYgKCRhdXRvZGlzY292ZXJfY29uZmlnWydwb3AzJ11bJ3BvcnQnXSAhPSAnOTk1JykgeworICAgICAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICAgICAnX3BvcDNzLl90Y3AuJyAuICRkb21haW4sCisgICAgICAgICdTUlYnLAorICAgICAgICAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1sncG9wMyddWydzZXJ2ZXInXSAuICcgJyAuICRhdXRvZGlzY292ZXJfY29uZmlnWydwb3AzJ11bJ3BvcnQnXQorICAgICAgKTsKKyAgICB9CisgIH0KKyAgZWxzZSB7CisgICAgJHJlY29yZHNbXSA9IGFycmF5KAorICAgICAgJ19wb3Azcy5fdGNwLicgLiAkZG9tYWluLAorICAgICAgJ1NSVicsCisgICAgICAnLiAwJworICAgICk7CisgIH0KKyAgaWYgKCRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3Rsc3BvcnQnXSAhPSAnMTQzJykgeworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICdfaW1hcC5fdGNwLicgLiAkZG9tYWluLAorICAgICAgJ1NSVicsCisgICAgICAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snaW1hcCddWydzZXJ2ZXInXSAuICcgJyAuICRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3Rsc3BvcnQnXQorICAgICk7CisgIH0KKyAgaWYgKCRhdXRvZGlzY292ZXJfY29uZmlnWydpbWFwJ11bJ3BvcnQnXSAhPSAnOTkzJykgeworICAgICRyZWNvcmRzW10gPSBhcnJheSgKKyAgICAgICdfaW1hcHMuX3RjcC4nIC4gJGRvbWFpbiwKKyAgICAgICdTUlYnLAorICAgICAgJGF1dG9kaXNjb3Zlcl9jb25maWdbJ2ltYXAnXVsnc2VydmVyJ10gLiAnICcgLiAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snaW1hcCddWydwb3J0J10KKyAgICApOworICB9CisgIGlmICgkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWyd0bHNwb3J0J10gIT0gJzU4NycpIHsKKyAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAnX3N1Ym1pc3Npb24uX3RjcC4nIC4gJGRvbWFpbiwKKyAgICAgICdTUlYnLAorICAgICAgJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NtdHAnXVsnc2VydmVyJ10gLiAnICcgLiAkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWyd0bHNwb3J0J10KKyAgICApOworICB9CisgIGlmICgkYXV0b2Rpc2NvdmVyX2NvbmZpZ1snc210cCddWydwb3J0J10gIT0gJzQ2NScpIHsKKyAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAnX3NtdHBzLl90Y3AuJyAuICRkb21haW4sCisgICAgICAnU1JWJywKKyAgICAgICRhdXRvZGlzY292ZXJfY29uZmlnWydzbXRwJ11bJ3NlcnZlciddIC4gJyAnIC4gJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NtdHAnXVsncG9ydCddCisgICAgKTsKKyAgfQorICBpZiAoJGF1dG9kaXNjb3Zlcl9jb25maWdbJ3NpZXZlJ11bJ3BvcnQnXSAhPSAnNDE5MCcpIHsKKyAgICAkcmVjb3Jkc1tdID0gYXJyYXkoCisgICAgICAnX3NpZXZlLl90Y3AuJyAuICRkb21haW4sCisgICAgICAnU1JWJywKKyAgICAgICRhdXRvZGlzY292ZXJfY29uZmlnWydzaWV2ZSddWydzZXJ2ZXInXSAuICcgJyAuICRhdXRvZGlzY292ZXJfY29uZmlnWydzaWV2ZSddWydwb3J0J10KKyAgICApOworICB9Cit9CisKKyRyZWNvcmRfdHlwZXMgPSBhcnJheSgKKyAgJ0EnID0+IEROU19BLAorICAnQUFBQScgPT4gRE5TX0FBQUEsCisgICdDTkFNRScgPT4gRE5TX0NOQU1FLAorICAnTVgnID0+IEROU19NWCwKKyAgJ1BUUicgPT4gRE5TX1BUUiwKKyAgJ1NSVicgPT4gRE5TX1NSViwKKyAgJ1RYVCcgPT4gRE5TX1RYVCwKKyk7CiskZGF0YV9maWVsZCA9IGFycmF5KAorICAnQScgPT4gJ2lwJywKKyAgJ0FBQUEnID0+ICdpcHY2JywKKyAgJ0NOQU1FJyA9PiAndGFyZ2V0JywKKyAgJ01YJyA9PiAndGFyZ2V0JywKKyAgJ1BUUicgPT4gJ3RhcmdldCcsCisgICdTUlYnID0+ICdkYXRhJywKKyAgJ1RMU0EnID0+ICdkYXRhJywKKyAgJ1RYVCcgPT4gJ3R4dCcsCispOworCis/PgorPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSIgaWQ9ImRuc3RhYmxlIj4KKyAgPHRhYmxlIGNsYXNzPSJ0YWJsZSB0YWJsZS1zdHJpcGVkIj4KKyAgICA8dHI+CisgICAgICA8dGg+PD89JGxhbmdbJ2RpYWdub3N0aWNzJ11bJ2Ruc19yZWNvcmRzX25hbWUnXTs/PjwvdGg+CisgICAgICA8dGg+PD89JGxhbmdbJ2RpYWdub3N0aWNzJ11bJ2Ruc19yZWNvcmRzX3R5cGUnXTs/PjwvdGg+CisgICAgICA8dGg+PD89JGxhbmdbJ2RpYWdub3N0aWNzJ11bJ2Ruc19yZWNvcmRzX2RhdGEnXTs/PjwvdGg+CisgICAgICA8dGg+PD89JGxhbmdbJ2RpYWdub3N0aWNzJ11bJ2Ruc19yZWNvcmRzX3N0YXR1cyddOz8+PC90aD4KKyAgICA8L3RyPgorPD9waHAKK2ZvcmVhY2ggKCRyZWNvcmRzIGFzICYkcmVjb3JkKSB7CisgICRyZWNvcmRbMV0gPSBzdHJ0b3VwcGVyKCRyZWNvcmRbMV0pOworICAkc3RhdGUgPSBzdGF0ZV9taXNzaW5nOworICBpZiAoJHJlY29yZFsxXSA9PSAnVExTQScpIHsKKyAgICAkY3VycmVudHMgPSBkbnNfZ2V0X3JlY29yZCgkcmVjb3JkWzBdLCA1MiwgJF8sICRfLCBUUlVFKTsKKyAgICBmb3JlYWNoICgkY3VycmVudHMgYXMgJiRjdXJyZW50KSB7CisgICAgICAkY3VycmVudFsndHlwZSddID0gJ1RMU0EnOworICAgICAgJGN1cnJlbnRbJ2NlcnRfdXNhZ2UnXSA9IGhleGRlYyhiaW4yaGV4KCRjdXJyZW50WydkYXRhJ117MH0pKTsKKyAgICAgICRjdXJyZW50WydzZWxlY3RvciddID0gaGV4ZGVjKGJpbjJoZXgoJGN1cnJlbnRbJ2RhdGEnXXsxfSkpOworICAgICAgJGN1cnJlbnRbJ21hdGNoX3R5cGUnXSA9IGhleGRlYyhiaW4yaGV4KCRjdXJyZW50WydkYXRhJ117Mn0pKTsKKyAgICAgICRjdXJyZW50WydjZXJ0X2RhdGEnXSA9IGJpbjJoZXgoc3Vic3RyKCRjdXJyZW50WydkYXRhJ10sIDMpKTsKKyAgICAgICRjdXJyZW50WydkYXRhJ10gPSAkY3VycmVudFsnY2VydF91c2FnZSddIC4gJyAnIC4gJGN1cnJlbnRbJ3NlbGVjdG9yJ10gLiAnICcgLiAkY3VycmVudFsnbWF0Y2hfdHlwZSddIC4gJyAnIC4gJGN1cnJlbnRbJ2NlcnRfZGF0YSddOworICAgIH0KKyAgICB1bnNldCgkY3VycmVudCk7CisgIH0KKyAgZWxzZSB7CisgICAgJGN1cnJlbnRzID0gZG5zX2dldF9yZWNvcmQoJHJlY29yZFswXSwgJHJlY29yZF90eXBlc1skcmVjb3JkWzFdXSk7CisgICAgaWYgKCRyZWNvcmRbMF0gPT0gJG1haWxjb3dfaG9zdG5hbWUgJiYgKCRyZWNvcmRbMV0gPT0gIkEiIHx8ICRyZWNvcmRbMV0gPT0gIkFBQUEiKSkgeworICAgICAgaWYgKCFlbXB0eShkbnNfZ2V0X3JlY29yZCgkcmVjb3JkWzBdLCBETlNfQ05BTUUpKSkgeworICAgICAgICAkY3VycmVudHNbMF1bJ2lwJ10gPSBzdGF0ZV9taXNzaW5nIC4gJyA8Yj4oQ05BTUUpPC9iPic7CisgICAgICAgICRjdXJyZW50c1swXVsnaXB2NiddID0gc3RhdGVfbWlzc2luZyAuICcgPGI+KENOQU1FKTwvYj4nOworICAgICAgfQorICAgIH0KKyAgICBpZiAoJHJlY29yZFsxXSA9PSAnU1JWJykgeworICAgICAgZm9yZWFjaCAoJGN1cnJlbnRzIGFzICYkY3VycmVudCkgeworICAgICAgICBpZiAoJGN1cnJlbnRbJ3RhcmdldCddID09ICcnKSB7CisgICAgICAgICAgJGN1cnJlbnRbJ3RhcmdldCddID0gJy4nOworICAgICAgICAgICRjdXJyZW50Wydwb3J0J10gPSAnMCc7CisgICAgICAgIH0KKyAgICAgICAgJGN1cnJlbnRbJ2RhdGEnXSA9ICRjdXJyZW50Wyd0YXJnZXQnXSAuICcgJyAuICRjdXJyZW50Wydwb3J0J107CisgICAgICB9CisgICAgICB1bnNldCgkY3VycmVudCk7CisgICAgfQorICAgIGVsc2VpZiAoJHJlY29yZFsxXSA9PSAnVFhUJykgeworICAgICAgZm9yZWFjaCAoJGN1cnJlbnRzIGFzICYkY3VycmVudCkgeworICAgICAgICB1bnNldCgkY3VycmVudCk7CisgICAgICB9CisgICAgICB1bnNldCgkY3VycmVudCk7CisgICAgfQorICAgIGVsc2VpZiAoJHJlY29yZFsxXSA9PSAnQUFBQScpIHsKKyAgICAgIGZvcmVhY2ggKCRjdXJyZW50cyBhcyAmJGN1cnJlbnQpIHsKKyAgICAgICAgJGN1cnJlbnRbJ2lwdjYnXSA9IGV4cGFuZF9pcHY2KCRjdXJyZW50WydpcHY2J10pOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGlmICgkcmVjb3JkWzFdID09ICdDTkFNRScgJiYgY291bnQoJGN1cnJlbnRzKSA9PSAwKSB7CisgICAgLy8gQSBhbmQgQUFBQSBhcmUgYWxzbyB2YWxpZCBpbnN0ZWFkIG9mIENOQU1FCisgICAgJGEgPSBkbnNfZ2V0X3JlY29yZCgkcmVjb3JkWzBdLCBETlNfQSk7CisgICAgJGNuYW1lID0gZG5zX2dldF9yZWNvcmQoJHJlY29yZFsyXSwgRE5TX0EpOworICAgIGlmIChjb3VudCgkYSkgPiAwICYmIGNvdW50KCRjbmFtZSkgPiAwKSB7CisgICAgICBpZiAoJGFbMF1bJ2lwJ10gPT0gJGNuYW1lWzBdWydpcCddKSB7CisgICAgICAgICRjdXJyZW50cyA9IGFycmF5KGFycmF5KCdob3N0JyA9PiAkcmVjb3JkWzBdLCAnY2xhc3MnID0+ICdJTicsICd0eXBlJyA9PiAnQ05BTUUnLCAndGFyZ2V0JyA9PiAkcmVjb3JkWzJdKSk7CisgICAgICAgICRhYWFhID0gZG5zX2dldF9yZWNvcmQoJHJlY29yZFswXSwgRE5TX0FBQUEpOworICAgICAgICAkY25hbWUgPSBkbnNfZ2V0X3JlY29yZCgkcmVjb3JkWzJdLCBETlNfQUFBQSk7CisgICAgICAgIGlmIChjb3VudCgkYWFhYSkgPT0gMCB8fCBjb3VudCgkY25hbWUpID09IDAgfHwgZXhwYW5kX2lwdjYoJGFhYWFbMF1bJ2lwdjYnXSkgIT0gZXhwYW5kX2lwdjYoJGNuYW1lWzBdWydpcHY2J10pKSB7CisgICAgICAgICAgJGN1cnJlbnRzWzBdWyd0YXJnZXQnXSA9IGV4cGFuZF9pcHY2KCRhYWFhWzBdWydpcHY2J10pIC4gJyA8c3VwPjE8L3N1cD4nOworICAgICAgICB9CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgJGN1cnJlbnRzID0gYXJyYXkoYXJyYXkoJ2hvc3QnID0+ICRyZWNvcmRbMF0sICdjbGFzcycgPT4gJ0lOJywgJ3R5cGUnID0+ICdDTkFNRScsICd0YXJnZXQnID0+ICRhWzBdWydpcCddIC4gJyA8c3VwPjE8L3N1cD4nKSk7CisgICAgICB9CisgICAgfQorICB9CisKKyAgZm9yZWFjaCAoJGN1cnJlbnRzIGFzICYkY3VycmVudCkgeworICAgIGlmICgkY3VycmVudFsndHlwZSddID09ICdUWFQnICYmCisgICAgICBzdHJpcG9zKCRjdXJyZW50Wyd0eHQnXSwgJ3Y9ZG1hcmMnKSA9PT0gMCAmJgorICAgICAgJHJlY29yZFsyXSA9PSAkZG1hcmNfbGluaykgeworICAgICAgICAkY3VycmVudFsndHh0J10gPSBzdHJfcmVwbGFjZSgnICcsICcnLCAkY3VycmVudFsndHh0J10pOworICAgICAgICAkc3RhdGUgPSAkY3VycmVudFskZGF0YV9maWVsZFskY3VycmVudFsndHlwZSddXV0gLiBzdGF0ZV9vcHRpb25hbDsKKyAgICB9CisgICAgZWxzZWlmICgkY3VycmVudFsndHlwZSddID09ICdUWFQnICYmCisgICAgICBzdHJpcG9zKCRjdXJyZW50Wyd0eHQnXSwgJ3Y9c3BmJykgPT09IDAgJiYKKyAgICAgICRyZWNvcmRbMl0gPT0gJHNwZl9saW5rKSB7CisgICAgICAgICRzdGF0ZSA9IHN0YXRlX25vbWF0Y2g7CisgICAgICAgICRyc2x0ID0gZ2V0X3NwZl9hbGxvd2VkX2hvc3RzKCRyZWNvcmRbMF0pOworICAgICAgICBpZihpbl9hcnJheSgkaXAsICRyc2x0KSAmJiBpbl9hcnJheShleHBhbmRfaXB2NigkaXA2KSwgJHJzbHQpKXsKKyAgICAgICAgICAgICRzdGF0ZSA9IHN0YXRlX2dvb2Q7CisgICAgICAgIH0KKyAgICAgICAgJHN0YXRlIC49ICc8YnIgLz4nIC4gJGN1cnJlbnRbJGRhdGFfZmllbGRbJGN1cnJlbnRbJ3R5cGUnXV1dLnN0YXRlX29wdGlvbmFsOworICAgIH0KKyAgICBlbHNlaWYgKCRjdXJyZW50Wyd0eXBlJ10gPT0gJ1RYVCcgJiYKKyAgICAgIHN0cmlwb3MoJGN1cnJlbnRbJ3R4dCddLCAndj1ka2ltJykgPT09IDAgJiYKKyAgICAgIHN0cmlwb3MoJHJlY29yZFsyXSwgJ3Y9ZGtpbScpID09PSAwKSB7CisgICAgICAgIHByZWdfbWF0Y2goJy92PURLSU0xOy4qaz1yc2E7LipwPShbXjtdKikuKi9pJywgJGN1cnJlbnRbJGRhdGFfZmllbGRbJGN1cnJlbnRbJ3R5cGUnXV1dLCAkZGtpbV9tYXRjaGVzX2N1cnJlbnQpOworICAgICAgICBwcmVnX21hdGNoKCcvdj1ES0lNMTsuKms9cnNhOy4qcD0oW147XSopLiovaScsICRyZWNvcmRbMl0sICRka2ltX21hdGNoZXNfZ29vZCk7CisgICAgICAgIGlmICgkZGtpbV9tYXRjaGVzX2N1cnJlbnRbMV0gPT0gJGRraW1fbWF0Y2hlc19nb29kWzFdKSB7CisgICAgICAgICAgJHN0YXRlID0gc3RhdGVfZ29vZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlaWYgKCRjdXJyZW50Wyd0eXBlJ10gIT0gJ1RYVCcgJiYKKyAgICAgIGlzc2V0KCRkYXRhX2ZpZWxkWyRjdXJyZW50Wyd0eXBlJ11dKSAmJiAkc3RhdGUgIT0gc3RhdGVfZ29vZCkgeworICAgICAgICAkc3RhdGUgPSBzdGF0ZV9ub21hdGNoOworICAgICAgICBpZiAoJGN1cnJlbnRbJGRhdGFfZmllbGRbJGN1cnJlbnRbJ3R5cGUnXV1dID09ICRyZWNvcmRbMl0pIHsKKyAgICAgICAgICAkc3RhdGUgPSBzdGF0ZV9nb29kOworICAgICAgICB9CisgICAgfQorICB9CisgIHVuc2V0KCRjdXJyZW50KTsKKworICBpZiAoaXNzZXQoJHJlY29yZFszXSkgJiYKKyAgICAkcmVjb3JkWzNdID09IHN0YXRlX29wdGlvbmFsICYmCisgICAgKCRzdGF0ZSA9PSBzdGF0ZV9taXNzaW5nIHx8ICRzdGF0ZSA9PSBzdGF0ZV9ub21hdGNoKSkgeworICAgICAgJHN0YXRlID0gc3RhdGVfb3B0aW9uYWw7CisgIH0KKyAgCisgIGlmICgkc3RhdGUgPT0gc3RhdGVfbm9tYXRjaCkgeworICAgICRzdGF0ZSA9IGFycmF5KCk7CisgICAgZm9yZWFjaCAoJGN1cnJlbnRzIGFzICRjdXJyZW50KSB7CisgICAgICAkc3RhdGVbXSA9ICRjdXJyZW50WyRkYXRhX2ZpZWxkWyRjdXJyZW50Wyd0eXBlJ11dXTsKKyAgICB9CisgICAgJHN0YXRlID0gaW1wbG9kZSgnPGJyIC8+JywgJHN0YXRlKTsKKyAgfQorICBlY2hvIHNwcmludGYoJzx0cj4KKyAgICA8dGQ+JXM8L3RkPgorICAgIDx0ZD4lczwvdGQ+CisgICAgPHRkIGNsYXNzPSJkbnMtZm91bmQiPiVzPC90ZD4KKyAgICA8dGQgY2xhc3M9ImRucy1yZWNvbW1lbmRlZCI+JXM8L3RkPgorICA8L3RyPicsICRyZWNvcmRbMF0sICRyZWNvcmRbMV0sICRyZWNvcmRbMl0sICRzdGF0ZSk7CisgICRyZWNvcmRbM10gPSBleHBsb2RlKCc8YnIgLz4nLCAkc3RhdGUpOworfQordW5zZXQoJHJlY29yZCk7CisKKyRkbnNfZGF0YSA9IHNwcmludGYoIlwkT1JJR0lOICVzLlxuIiwgJGRvbWFpbik7Citmb3JlYWNoICgkcmVjb3JkcyBhcyAkcmVjb3JkKSB7CisgIGlmICgkZG9tYWluID09IHN1YnN0cigkcmVjb3JkWzBdLCAtc3RybGVuKCRkb21haW4pKSkgeworICAgICRsYWJlbCA9IHN1YnN0cigkcmVjb3JkWzBdLCAwLCAtc3RybGVuKCRkb21haW4pLTEpOworICAgICR2YWwgPSAkcmVjb3JkWzJdOworICAgIGlmIChzdHJsZW4oJGxhYmVsKSA9PSAwKSB7CisgICAgICAkbGFiZWwgPSAiQCI7CisgICAgfQorICAgICR2YWxzID0gYXJyYXkoKTsKKyAgICBpZiAoc3RycG9zKCR2YWwsICI8YSIpICE9PSBGQUxTRSkgeworICAgICAgaWYoaXNfYXJyYXkoJHJlY29yZFszXSkgJiYgY291bnQoJHJlY29yZFszXSkgPT0gMSAmJiAkcmVjb3JkWzNdWzBdID09IHN0YXRlX29wdGlvbmFsKSB7CisgICAgICAgICRyZWNvcmRbM11bMF0gPSAiKipUT0RPKioiOworICAgICAgICAkbGFiZWwgPSAnOycgLiAkbGFiZWw7CisgICAgICB9CisgICAgICBmb3JlYWNoICgkcmVjb3JkWzNdIGFzICR2YWwpIHsKKyAgICAgICAgJHZhbCA9IHN0cl9yZXBsYWNlKHN0YXRlX29wdGlvbmFsLCAnJywgJHZhbCk7CisgICAgICAgICR2YWwgPSBzdHJfcmVwbGFjZShzdGF0ZV9nb29kLCAnJywgJHZhbCk7CisgICAgICAgIGlmIChzdHJsZW4oJHZhbCkgPiAwKSB7CisgICAgICAgICAgJHZhbHNbXSA9IHNwcmludGYoIiVzXHRJTlx0JXNcdCVzXG4iLCAkbGFiZWwsICRyZWNvcmRbMV0sICR2YWwpOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgJHZhbHNbXSA9IHNwcmludGYoIiVzXHRJTlx0JXNcdCVzXG4iLCAkbGFiZWwsICRyZWNvcmRbMV0sICR2YWwpOworICAgIH0KKyAgICBmb3JlYWNoICgkdmFscyBhcyAkdmFsKSB7CisgICAgICAkZG5zX2RhdGEgLj0gc3RyX3JlcGxhY2UoJGRvbWFpbiwgJGRvbWFpbiAuICcuJywgJHZhbCk7CisgICAgfQorICB9Cit9CisKKz8+CisgIDwvdGFibGU+CisgIDxhIGlkPSdkb3dubG9hZC16b25lZmlsZScgZGF0YS16b25lZmlsZT0iPD89YmFzZTY0X2VuY29kZSgkZG5zX2RhdGEpOz8+IiBkb3dubG9hZD0nPD89JF9HRVRbJ2RvbWFpbiddOz8+LnR4dCcgdHlwZT0ndGV4dC9jc3YnPkRvd25sb2FkPC9hPgorICA8c2NyaXB0PgorICAgICAgdmFyIHpvbmVmaWxlX2RsX2xpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG93bmxvYWQtem9uZWZpbGUnKTsKKyAgICAgIHZhciB6b25lZmlsZSA9IGF0b2Ioem9uZWZpbGVfZGxfbGluay5nZXRBdHRyaWJ1dGUoJ2RhdGEtem9uZWZpbGUnKSk7CisgICAgICB2YXIgZGF0YSA9IG5ldyBCbG9iKFt6b25lZmlsZV0pOworICAgICAgdmFyIGRvd25sb2FkX3pvbmVmaWxlX2xpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG93bmxvYWQtem9uZWZpbGUnKTsKKyAgICAgIGRvd25sb2FkX3pvbmVmaWxlX2xpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZGF0YSk7CisgIDwvc2NyaXB0PgorPC9kaXY+Cis8cCBjbGFzcz0iaGVscC1ibG9jayI+Cis8c3VwPjE8L3N1cD4gPD89JGxhbmdbJ2RpYWdub3N0aWNzJ11bJ2NuYW1lX2Zyb21fYSddOz8+PGJyIC8+Cis8c3VwPjI8L3N1cD4gPD89JGxhbmdbJ2RpYWdub3N0aWNzJ11bJ29wdGlvbmFsJ107Pz4KKzwvcD4KKzw/cGhwCit9IGVsc2UgeworICBlY2hvICJTZXNzaW9uIGludmFsaWQiOworICBleGl0KCk7Cit9Cis/PgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3FpdGVtX2RldGFpbHMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3FpdGVtX2RldGFpbHMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1ZTU5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2FqYXgvcWl0ZW1fZGV0YWlscy5waHAKQEAgLTAsMCArMSwyMDYgQEAKKzw/cGhwDQoraGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iKTsNCityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3ByZXJlcXVpc2l0ZXMuaW5jLnBocCc7DQorDQorZnVuY3Rpb24gcnJtZGlyKCRzcmMpIHsNCisgICRkaXIgPSBvcGVuZGlyKCRzcmMpOw0KKyAgd2hpbGUoZmFsc2UgIT09ICggJGZpbGUgPSByZWFkZGlyKCRkaXIpKSApIHsNCisgICAgaWYgKCggJGZpbGUgIT0gJy4nICkgJiYgKCAkZmlsZSAhPSAnLi4nICkpIHsNCisgICAgICAkZnVsbCA9ICRzcmMgLiAnLycgLiAkZmlsZTsNCisgICAgICBpZiAoIGlzX2RpcigkZnVsbCkgKSB7DQorICAgICAgICBycm1kaXIoJGZ1bGwpOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIHVubGluaygkZnVsbCk7DQorICAgICAgfQ0KKyAgICB9DQorICB9DQorICBjbG9zZWRpcigkZGlyKTsNCisgIHJtZGlyKCRzcmMpOw0KK30NCisNCitmdW5jdGlvbiBhZGRBZGRyZXNzZXMoJiRsaXN0LCAkbWFpbCwgJGhlYWRlck5hbWUpIHsNCisgICRhZGRyZXNzZXMgPSAkbWFpbC0+Z2V0QWRkcmVzc2VzKCRoZWFkZXJOYW1lKTsNCisgIGZvcmVhY2ggKCRhZGRyZXNzZXMgYXMgJGFkZHJlc3MpIHsNCisgICAgaWYgKGZpbHRlcl92YXIoJGFkZHJlc3NbJ2FkZHJlc3MnXSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICRsaXN0W10gPSBhcnJheSgnYWRkcmVzcycgPT4gJGFkZHJlc3NbJ2FkZHJlc3MnXSwgJ3R5cGUnID0+ICRoZWFkZXJOYW1lKTsNCisgICAgfQ0KKyAgfQ0KK30NCisNCitpZiAoIWVtcHR5KCRfR0VUWydoYXNoJ10pICYmIGN0eXBlX2FsbnVtKCRfR0VUWydoYXNoJ10pKSB7DQorICAkbWFpbGMgPSBxdWFyYW50aW5lKCdoYXNoX2RldGFpbHMnLCAkX0dFVFsnaGFzaCddKTsNCisgIGlmICgkbWFpbGMgPT09IGZhbHNlKSB7DQorICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ2Vycm9yJyA9PiAnTWVzc2FnZSBpbnZhbGlkJykpOw0KKyAgICBleGl0Ow0KKyAgfQ0KKyAgaWYgKHN0cmxlbigkbWFpbGNbJ21zZyddKSA+IDEwNDg1NzYwKSB7DQorICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ2Vycm9yJyA9PiAnTWVzc2FnZSBzaXplIGV4Y2VlZHMgMTAgTWlCLicpKTsNCisgICAgZXhpdDsNCisgIH0NCisgIGlmICghZW1wdHkoJG1haWxjWydtc2cnXSkpIHsNCisgICAgLy8gSW5pdCBtZXNzYWdlIGFycmF5DQorICAgICRkYXRhID0gYXJyYXkoKTsNCisgICAgLy8gSW5pdCBwYXJzZXINCisgICAgJG1haWxfcGFyc2VyID0gbmV3IFBocE1pbWVNYWlsUGFyc2VyXFBhcnNlcigpOw0KKyAgICAkaHRtbDJ0ZXh0ID0gbmV3IEh0bWwyVGV4dFxIdG1sMlRleHQoKTsNCisgICAgLy8gTG9hZCBtc2cgdG8gcGFyc2VyDQorICAgICRtYWlsX3BhcnNlci0+c2V0VGV4dCgkbWFpbGNbJ21zZyddKTsNCisgICAgLy8gR2V0IG1haWwgcmVjaXBpZW50cw0KKyAgICB7DQorICAgICAgJHJlY2lwaWVudHNMaXN0ID0gYXJyYXkoKTsNCisgICAgICBhZGRBZGRyZXNzZXMoJHJlY2lwaWVudHNMaXN0LCAkbWFpbF9wYXJzZXIsICd0bycpOw0KKyAgICAgIGFkZEFkZHJlc3NlcygkcmVjaXBpZW50c0xpc3QsICRtYWlsX3BhcnNlciwgJ2NjJyk7DQorICAgICAgYWRkQWRkcmVzc2VzKCRyZWNpcGllbnRzTGlzdCwgJG1haWxfcGFyc2VyLCAnYmNjJyk7DQorICAgICAgJHJlY2lwaWVudHNMaXN0W10gPSBhcnJheSgnYWRkcmVzcycgPT4gJG1haWxjWydyY3B0J10sICd0eXBlJyA9PiAnc210cCcpOw0KKyAgICAgICRkYXRhWydyZWNpcGllbnRzJ10gPSAkcmVjaXBpZW50c0xpc3Q7DQorICAgIH0NCisgICAgLy8gR2V0IGZyb20NCisgICAgJGRhdGFbJ2hlYWRlcl9mcm9tJ10gPSAkbWFpbF9wYXJzZXItPmdldEhlYWRlcignZnJvbScpOw0KKyAgICAkZGF0YVsnZW52X2Zyb20nXSA9ICRtYWlsY1snc2VuZGVyJ107DQorICAgIC8vIEdldCByc3BhbWQgc2NvcmUNCisgICAgJGRhdGFbJ3Njb3JlJ10gPSAkbWFpbGNbJ3Njb3JlJ107DQorICAgIC8vIEdldCByc3BhbWQgYWN0aW9uDQorICAgICRkYXRhWydhY3Rpb24nXSA9ICRtYWlsY1snYWN0aW9uJ107DQorICAgIC8vIEdldCByc3BhbWQgc3ltYm9scw0KKyAgICAkZGF0YVsnc3ltYm9scyddID0ganNvbl9kZWNvZGUoJG1haWxjWydzeW1ib2xzJ10pOw0KKyAgICAvLyBHZXQgZnV6enkgaGFzaGVzDQorICAgICRkYXRhWydmdXp6eV9oYXNoZXMnXSA9IGpzb25fZGVjb2RlKCRtYWlsY1snZnV6enlfaGFzaGVzJ10pOw0KKyAgICAkZGF0YVsnc3ViamVjdCddID0gbWJfY29udmVydF9lbmNvZGluZygkbWFpbF9wYXJzZXItPmdldEhlYWRlcignc3ViamVjdCcpLCAiVVRGLTgiLCAiYXV0byIpOw0KKyAgICAoZW1wdHkoJGRhdGFbJ3N1YmplY3QnXSkpID8gJGRhdGFbJ3N1YmplY3QnXSA9ICctJyA6IG51bGw7DQorICAgIGVjaG8ganNvbl9lbmNvZGUoJGRhdGEpOw0KKyAgfQ0KK30NCitlbHNlaWYgKCFlbXB0eSgkX0dFVFsnaWQnXSkgJiYgY3R5cGVfYWxudW0oJF9HRVRbJ2lkJ10pKSB7DQorICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10pKSB7DQorICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ2Vycm9yJyA9PiAnQWNjZXNzIGRlbmllZCcpKTsNCisgICAgZXhpdCgpOw0KKyAgfQ0KKyAgJHRtcGRpciA9ICcvdG1wLycgLiAkX0dFVFsnaWQnXSAuICcvJzsNCisgICRtYWlsYyA9IHF1YXJhbnRpbmUoJ2RldGFpbHMnLCAkX0dFVFsnaWQnXSk7DQorICBpZiAoJG1haWxjID09PSBmYWxzZSkgew0KKyAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCdlcnJvcicgPT4gJ0FjY2VzcyBkZW5pZWQnKSk7DQorICAgIGV4aXQ7DQorICB9DQorICBpZiAoc3RybGVuKCRtYWlsY1snbXNnJ10pID4gMTA0ODU3NjApIHsNCisgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgnZXJyb3InID0+ICdNZXNzYWdlIHNpemUgZXhjZWVkcyAxMCBNaUIuJykpOw0KKyAgICBleGl0Ow0KKyAgfQ0KKyAgaWYgKCFlbXB0eSgkbWFpbGNbJ21zZyddKSkgew0KKyAgICBpZiAoaXNzZXQoJF9HRVRbJ3F1aWNrX3JlbGVhc2UnXSkpIHsNCisgICAgICAkaGFzaCA9IGhhc2goJ3NoYTI1NicsICRtYWlsY1snaWQnXSAuICRtYWlsY1sncWlkJ10pOw0KKyAgICAgIGhlYWRlcignTG9jYXRpb246IC9xaGFuZGxlci9yZWxlYXNlLycgLiAkaGFzaCk7DQorICAgICAgZXhpdDsNCisgICAgfQ0KKyAgICBpZiAoaXNzZXQoJF9HRVRbJ3F1aWNrX2RlbGV0ZSddKSkgew0KKyAgICAgICRoYXNoID0gaGFzaCgnc2hhMjU2JywgJG1haWxjWydpZCddIC4gJG1haWxjWydxaWQnXSk7DQorICAgICAgaGVhZGVyKCdMb2NhdGlvbjogL3FoYW5kbGVyL2RlbGV0ZS8nIC4gJGhhc2gpOw0KKyAgICAgIGV4aXQ7DQorICAgIH0NCisgICAgLy8gSW5pdCBtZXNzYWdlIGFycmF5DQorICAgICRkYXRhID0gYXJyYXkoKTsNCisgICAgLy8gSW5pdCBwYXJzZXINCisgICAgJG1haWxfcGFyc2VyID0gbmV3IFBocE1pbWVNYWlsUGFyc2VyXFBhcnNlcigpOw0KKyAgICAkaHRtbDJ0ZXh0ID0gbmV3IEh0bWwyVGV4dFxIdG1sMlRleHQoKTsNCisgICAgLy8gTG9hZCBtc2cgdG8gcGFyc2VyDQorICAgICRtYWlsX3BhcnNlci0+c2V0VGV4dCgkbWFpbGNbJ21zZyddKTsNCisNCisgICAgLy8gR2V0IG1haWwgcmVjaXBpZW50cw0KKyAgICB7DQorICAgICAgJHJlY2lwaWVudHNMaXN0ID0gYXJyYXkoKTsNCisgICAgICBhZGRBZGRyZXNzZXMoJHJlY2lwaWVudHNMaXN0LCAkbWFpbF9wYXJzZXIsICd0bycpOw0KKyAgICAgIGFkZEFkZHJlc3NlcygkcmVjaXBpZW50c0xpc3QsICRtYWlsX3BhcnNlciwgJ2NjJyk7DQorICAgICAgYWRkQWRkcmVzc2VzKCRyZWNpcGllbnRzTGlzdCwgJG1haWxfcGFyc2VyLCAnYmNjJyk7DQorICAgICAgJHJlY2lwaWVudHNMaXN0W10gPSBhcnJheSgnYWRkcmVzcycgPT4gJG1haWxjWydyY3B0J10sICd0eXBlJyA9PiAnc210cCcpOw0KKyAgICAgICRkYXRhWydyZWNpcGllbnRzJ10gPSAkcmVjaXBpZW50c0xpc3Q7DQorICAgIH0NCisgICAgLy8gR2V0IGZyb20NCisgICAgJGRhdGFbJ2hlYWRlcl9mcm9tJ10gPSAkbWFpbF9wYXJzZXItPmdldEhlYWRlcignZnJvbScpOw0KKyAgICAkZGF0YVsnZW52X2Zyb20nXSA9ICRtYWlsY1snc2VuZGVyJ107DQorICAgIC8vIEdldCByc3BhbWQgc2NvcmUNCisgICAgJGRhdGFbJ3Njb3JlJ10gPSAkbWFpbGNbJ3Njb3JlJ107DQorICAgIC8vIEdldCByc3BhbWQgYWN0aW9uDQorICAgICRkYXRhWydhY3Rpb24nXSA9ICRtYWlsY1snYWN0aW9uJ107DQorICAgIC8vIEdldCByc3BhbWQgc3ltYm9scw0KKyAgICAkZGF0YVsnc3ltYm9scyddID0ganNvbl9kZWNvZGUoJG1haWxjWydzeW1ib2xzJ10pOw0KKyAgICAvLyBHZXQgZnV6enkgaGFzaGVzDQorICAgICRkYXRhWydmdXp6eV9oYXNoZXMnXSA9IGpzb25fZGVjb2RlKCRtYWlsY1snZnV6enlfaGFzaGVzJ10pOw0KKyAgICAvLyBHZXQgdGV4dC9wbGFpbiBjb250ZW50DQorICAgICRkYXRhWyd0ZXh0X3BsYWluJ10gPSAkbWFpbF9wYXJzZXItPmdldE1lc3NhZ2VCb2R5KCd0ZXh0Jyk7DQorICAgIC8vIEdldCBodG1sIGNvbnRlbnQgYW5kIGNvbnZlcnQgdG8gdGV4dA0KKyAgICAkZGF0YVsndGV4dF9odG1sJ10gPSAkaHRtbDJ0ZXh0LT5jb252ZXJ0KCRtYWlsX3BhcnNlci0+Z2V0TWVzc2FnZUJvZHkoJ2h0bWwnKSk7DQorICAgIGlmIChlbXB0eSgkZGF0YVsndGV4dF9wbGFpbiddKSAmJiBlbXB0eSgkZGF0YVsndGV4dF9odG1sJ10pKSB7DQorICAgICAgLy8gRmFpbGVkIHRvIHBhcnNlIGNvbnRlbnQsIHRyeSByYXcNCisgICAgICAkdGV4dCA9IHRyaW0oc3Vic3RyKCRtYWlsY1snbXNnJ10sIHN0cnBvcygkbWFpbGNbJ21zZyddLCAiXHJcblxyXG4iKSArIDEpKTsNCisgICAgICAvLyBPbmx5IHJldHVybiBodG1sLT50ZXh0DQorICAgICAgJGRhdGFbJ3RleHRfcGxhaW4nXSA9ICdQYXJzZXIgZmFpbGVkLCBhc3N1bWluZyBIVE1MJzsNCisgICAgICAkZGF0YVsndGV4dF9odG1sJ10gPSAkaHRtbDJ0ZXh0LT5jb252ZXJ0KCR0ZXh0KTsNCisgICAgfQ0KKyAgICAoZW1wdHkoJGRhdGFbJ3RleHRfcGxhaW4nXSkpID8gJGRhdGFbJ3RleHRfcGxhaW4nXSA9ICctJyA6IG51bGw7DQorICAgIC8vIEdldCBzdWJqZWN0DQorICAgICRkYXRhWydzdWJqZWN0J10gPSAkbWFpbF9wYXJzZXItPmdldEhlYWRlcignc3ViamVjdCcpOw0KKyAgICAkZGF0YVsnc3ViamVjdCddID0gbWJfY29udmVydF9lbmNvZGluZygkbWFpbF9wYXJzZXItPmdldEhlYWRlcignc3ViamVjdCcpLCAiVVRGLTgiLCAiYXV0byIpOw0KKyAgICAoZW1wdHkoJGRhdGFbJ3N1YmplY3QnXSkpID8gJGRhdGFbJ3N1YmplY3QnXSA9ICctJyA6IG51bGw7DQorICAgIC8vIEdldCBhdHRhY2htZW50cw0KKyAgICBpZiAoaXNfZGlyKCR0bXBkaXIpKSB7DQorICAgICAgcnJtZGlyKCR0bXBkaXIpOw0KKyAgICB9DQorICAgIG1rZGlyKCcvdG1wLycgLiAkX0dFVFsnaWQnXSk7DQorICAgICRtYWlsX3BhcnNlci0+c2F2ZUF0dGFjaG1lbnRzKCR0bXBkaXIsIHRydWUpOw0KKyAgICAkYXR0cyA9ICRtYWlsX3BhcnNlci0+Z2V0QXR0YWNobWVudHModHJ1ZSk7DQorICAgIGlmIChjb3VudCgkYXR0cykgPiAwKSB7DQorICAgICAgZm9yZWFjaCAoJGF0dHMgYXMgJGtleSA9PiAkdmFsKSB7DQorICAgICAgICAkZGF0YVsnYXR0YWNobWVudHMnXVska2V5XSA9IGFycmF5KA0KKyAgICAgICAgICAvLyBJbmRleA0KKyAgICAgICAgICAvLyAwID0+IGZpbGUgbmFtZQ0KKyAgICAgICAgICAvLyAxID0+IG1pbWUgdHlwZQ0KKyAgICAgICAgICAvLyAyID0+IGZpbGUgc2l6ZQ0KKyAgICAgICAgICAvLyAzID0+IHZ0IGxpbmsgYnkgc2hhMjU2DQorICAgICAgICAgICR2YWwtPmdldEZpbGVuYW1lKCksDQorICAgICAgICAgICR2YWwtPmdldENvbnRlbnRUeXBlKCksDQorICAgICAgICAgIGZpbGVzaXplKCR0bXBkaXIgLiAkdmFsLT5nZXRGaWxlbmFtZSgpKSwNCisgICAgICAgICAgJ2h0dHBzOi8vd3d3LnZpcnVzdG90YWwuY29tL2ZpbGUvJyAuIGhhc2hfZmlsZSgnU0hBMjU2JywgJHRtcGRpciAuICR2YWwtPmdldEZpbGVuYW1lKCkpIC4gJy9hbmFseXNpcy8nDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgfQ0KKyAgICBpZiAoaXNzZXQoJF9HRVRbJ2VtbCddKSkgew0KKyAgICAgICRkbF9maWxlbmFtZSA9IGZpbHRlcl92YXIoJGRhdGFbJ3N1YmplY3QnXSwgRklMVEVSX1NBTklUSVpFX1NUUklORyk7DQorICAgICAgJGRsX2ZpbGVuYW1lID0gc3RybGVuKCRkbF9maWxlbmFtZSkgPiAzMCA/IHN1YnN0cigkZGxfZmlsZW5hbWUsMCwzMCkgOiAkZGxfZmlsZW5hbWU7DQorICAgICAgaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOw0KKyAgICAgIGhlYWRlcignRXhwaXJlczogMCcpOw0KKyAgICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7DQorICAgICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlJywgZmFsc2UpOw0KKyAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBtZXNzYWdlL3JmYzgyMicpOw0KKyAgICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicuICRkbF9maWxlbmFtZSAuICcuZW1sIjsnKTsNCisgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeScpOw0KKyAgICAgIGhlYWRlcignQ29udGVudC1MZW5ndGg6ICcgLiBzdHJsZW4oJG1haWxjWydtc2cnXSkpOw0KKyAgICAgIGVjaG8gJG1haWxjWydtc2cnXTsNCisgICAgICBleGl0Ow0KKyAgICB9DQorICAgIGlmIChpc3NldCgkX0dFVFsnYXR0J10pKSB7DQorICAgICAgaWYgKCRfU0VTU0lPTlsnYWNsJ11bJ3F1YXJhbnRpbmVfYXR0YWNobWVudHMnXSA9PSAwKSB7DQorICAgICAgICBleGl0KGpzb25fZW5jb2RlKCdGb3JiaWRkZW4nKSk7DQorICAgICAgfQ0KKyAgICAgICRkbF9pZCA9IGludHZhbCgkX0dFVFsnYXR0J10pOw0KKyAgICAgICRkbF9maWxlbmFtZSA9IGZpbHRlcl92YXIoJGRhdGFbJ2F0dGFjaG1lbnRzJ11bJGRsX2lkXVswXSwgRklMVEVSX1NBTklUSVpFX1NUUklORyk7DQorICAgICAgJGRsX2ZpbGVuYW1lX3Nob3J0ID0gc3RybGVuKCRkbF9maWxlbmFtZSkgPiAyMCA/IHN1YnN0cigkZGxfZmlsZW5hbWUsIDAsIDIwKSA6ICRkbF9maWxlbmFtZTsNCisgICAgICAkZGxfZmlsZW5hbWVfZXh0ZW5zaW9uID0gcGF0aGluZm8oJHRtcGRpciAuICRkbF9maWxlbmFtZSlbJ2V4dGVuc2lvbiddOw0KKyAgICAgICRkbF9maWxlbmFtZV9zaG9ydCA9IHByZWdfcmVwbGFjZSgnL1wuJyAuICRkbF9maWxlbmFtZV9leHRlbnNpb24gLiAnJC8nLCAnJywgJGRsX2ZpbGVuYW1lX3Nob3J0KTsNCisgICAgICBpZiAoIWlzX2RpcigkdG1wZGlyIC4gJGRsX2ZpbGVuYW1lKSAmJiBmaWxlX2V4aXN0cygkdG1wZGlyIC4gJGRsX2ZpbGVuYW1lKSkgew0KKyAgICAgICAgaGVhZGVyKCdQcmFnbWE6IHB1YmxpYycpOw0KKyAgICAgICAgaGVhZGVyKCdFeHBpcmVzOiAwJyk7DQorICAgICAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IG11c3QtcmV2YWxpZGF0ZSwgcG9zdC1jaGVjaz0wLCBwcmUtY2hlY2s9MCcpOw0KKyAgICAgICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBwcml2YXRlJywgZmFsc2UpOw0KKyAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6ICcgLiAkZGF0YVsnYXR0YWNobWVudHMnXVskZGxfaWRdWzFdKTsNCisgICAgICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicuICRkbF9maWxlbmFtZV9zaG9ydCAuICcuJyAuICRkbF9maWxlbmFtZV9leHRlbnNpb24gLiAnIjsnKTsNCisgICAgICAgIGhlYWRlcignQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmluYXJ5Jyk7DQorICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gJGRhdGFbJ2F0dGFjaG1lbnRzJ11bJGRsX2lkXVsyXSk7DQorICAgICAgICByZWFkZmlsZSgkdG1wZGlyIC4gJGRsX2ZpbGVuYW1lKTsNCisgICAgICAgIGV4aXQ7DQorICAgICAgfQ0KKyAgICB9DQorICAgIGVjaG8ganNvbl9lbmNvZGUoJGRhdGEpOw0KKyAgfQ0KKw0KK30NCis/Pg0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9xcl9nZW4ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3FyX2dlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY3ZDY1YQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9xcl9nZW4ucGhwCkBAIC0wLDAgKzEsMTAgQEAKKzw/cGhwDQorcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9wcmVyZXF1aXNpdGVzLmluYy5waHAnOw0KK2hlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluJyk7DQoraWYgKCFpc3NldCgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddKSkgew0KKwlleGl0KCk7DQorfQ0KK2lmIChpc3NldCgkX0dFVFsndG9rZW4nXSkgJiYgY3R5cGVfYWxudW0oJF9HRVRbJ3Rva2VuJ10pKSB7DQorICBlY2hvICR0ZmEtPmdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX0dFVFsndG9rZW4nXSk7DQorfQ0KKz8+DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3Nob3dfcnNwYW1kX2dsb2JhbF9maWx0ZXJzLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9zaG93X3JzcGFtZF9nbG9iYWxfZmlsdGVycy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2M3YWZmZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9zaG93X3JzcGFtZF9nbG9iYWxfZmlsdGVycy5waHAKQEAgLTAsMCArMSwzIEBACis8P3BocA0KK3Nlc3Npb25fc3RhcnQoKTsNCiskX1NFU1NJT05bJ3Nob3dfcnNwYW1kX2dsb2JhbF9maWx0ZXJzJ10gPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9zaWV2ZV92YWxpZGF0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC9zaWV2ZV92YWxpZGF0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjQyMWI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3NpZXZlX3ZhbGlkYXRpb24ucGhwCkBAIC0wLDAgKzEsMjIgQEAKKzw/cGhwDQorcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9wcmVyZXF1aXNpdGVzLmluYy5waHAnOw0KK2hlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7DQoraWYgKCFpc3NldCgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddKSkgew0KKyAgZXhpdCgpOw0KK30NCitpZiAoaXNzZXQoJF9HRVRbJ3NjcmlwdCddKSkgew0KKyAgJHNpZXZlID0gbmV3IFNpZXZlXFNpZXZlUGFyc2VyKCk7DQorICB0cnkgew0KKyAgICBpZiAoZW1wdHkoJF9HRVRbJ3NjcmlwdCddKSkgew0KKyAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ3R5cGUnID0+ICdkYW5nZXInLCAnbXNnJyA9PiAkbGFuZ1snZGFuZ2VyJ11bJ3NjcmlwdF9lbXB0eSddKSk7DQorICAgICAgZXhpdCgpOw0KKyAgICB9DQorICAgICRzaWV2ZS0+cGFyc2UoJF9HRVRbJ3NjcmlwdCddKTsNCisgIH0NCisgIGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCisgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgndHlwZScgPT4gJ2RhbmdlcicsICdtc2cnID0+ICRlLT5nZXRNZXNzYWdlKCkpKTsNCisgICAgZXhpdCgpOw0KKyAgfQ0KKyAgZWNobyBqc29uX2VuY29kZShhcnJheSgndHlwZScgPT4gJ3N1Y2Nlc3MnLCAnbXNnJyA9PiAkbGFuZ1snYWRkJ11bJ3ZhbGlkYXRpb25fc3VjY2VzcyddKSk7DQorfQ0KKz8+DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3N5bmNqb2JfbG9ncy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2FqYXgvc3luY2pvYl9sb2dzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzUyMWFlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3N5bmNqb2JfbG9ncy5waHAKQEAgLTAsMCArMSwxNCBAQAorPD9waHANCityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3ByZXJlcXVpc2l0ZXMuaW5jLnBocCc7DQoraGVhZGVyKCdDb250ZW50LVR5cGU6IHRleHQvcGxhaW4nKTsNCitpZiAoIWlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10pKSB7DQorCWV4aXQoKTsNCit9DQorDQoraWYgKGlzc2V0KCRfR0VUWydpZCddKSAmJiBpc19udW1lcmljKCRfR0VUWydpZCddKSkgew0KKyAgaWYgKCRkZXRhaWxzID0gbWFpbGJveCgnZ2V0JywgJ3N5bmNqb2JfZGV0YWlscycsIGludHZhbCgkX0dFVFsnaWQnXSkpKSB7DQorICAgIGVjaG8gKGVtcHR5KCRkZXRhaWxzWydsb2cnXSkpID8gJy0nIDogJGRldGFpbHNbJ2xvZyddOw0KKyAgfQ0KK30NCisNCis/Pg0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC90cmFuc3BvcnRfY2hlY2sucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9hamF4L3RyYW5zcG9ydF9jaGVjay5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkyMTY4NwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvYWpheC90cmFuc3BvcnRfY2hlY2sucGhwCkBAIC0wLDAgKzEsMTQzIEBACis8P3BocA0KK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvcHJlcmVxdWlzaXRlcy5pbmMucGhwJzsNCityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3ZhcnMuaW5jLnBocCc7DQordXNlIFBIUE1haWxlclxQSFBNYWlsZXJcUEhQTWFpbGVyOw0KK3VzZSBQSFBNYWlsZXJcUEhQTWFpbGVyXFNNVFA7DQordXNlIFBIUE1haWxlclxQSFBNYWlsZXJcRXhjZXB0aW9uOw0KKw0KK2Vycm9yX3JlcG9ydGluZygwKTsNCitpZiAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSkgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAiYWRtaW4iKSB7DQorICAkdHJhbnNwb3J0X2lkID0gaW50dmFsKCRfR0VUWyd0cmFuc3BvcnRfaWQnXSk7DQorICAkdHJhbnNwb3J0X3R5cGUgPSAkX0dFVFsndHJhbnNwb3J0X3R5cGUnXTsNCisgIGlmIChpc3NldCgkX0dFVFsnbWFpbF9mcm9tJ10pICYmIGZpbHRlcl92YXIoJF9HRVRbJ21haWxfZnJvbSddLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSB7DQorICAgICRtYWlsX2Zyb20gPSAkX0dFVFsnbWFpbF9mcm9tJ107DQorICB9DQorICBlbHNlIHsNCisgICAgJG1haWxfZnJvbSA9ICJyZWxheUBleGFtcGxlLm9yZyI7DQorICB9DQorICBpZiAoJHRyYW5zcG9ydF90eXBlID09ICd0cmFuc3BvcnQtbWFwJykgew0KKyAgICAkdHJhbnNwb3J0X2RldGFpbHMgPSB0cmFuc3BvcnQoJ2RldGFpbHMnLCAkdHJhbnNwb3J0X2lkKTsNCisgICAgJG5leHRob3AgPSAkdHJhbnNwb3J0X2RldGFpbHNbJ25leHRob3AnXTsNCisgIH0NCisgIGVsc2VpZiAoJHRyYW5zcG9ydF90eXBlID09ICdzZW5kZXItZGVwZW5kZW50Jykgew0KKyAgICAkdHJhbnNwb3J0X2RldGFpbHMgPSByZWxheWhvc3QoJ2RldGFpbHMnLCAkdHJhbnNwb3J0X2lkKTsNCisgICAgJG5leHRob3AgPSAkdHJhbnNwb3J0X2RldGFpbHNbJ2hvc3RuYW1lJ107DQorICB9DQorICBpZiAoIWVtcHR5KCR0cmFuc3BvcnRfZGV0YWlscykpIHsNCisgICAgLy8gUmVtb3ZlIFsgYW5kIF0NCisgICAgJGhvc3RuYW1lX3dfcG9ydCA9IHByZWdfcmVwbGFjZSgnL1xbfFxdLycsICcnLCAkbmV4dGhvcCk7DQorICAgIHByZWdfbWF0Y2goJy9cWy4rXF0oOi4rKS8nLCAkbmV4dGhvcCwgJGhvc3RuYW1lX3BvcnRfbWF0Y2gpOw0KKyAgICBwcmVnX21hdGNoKCcvXFtcZFwuXGRcLlxkXC5cZFxdKDouKykvJywgJG5leHRob3AsICRpcHY0X3BvcnRfbWF0Y2gpOw0KKyAgICAkaGFzX2JyYWNrZXRfYW5kX3BvcnQgPSAoaXNzZXQoJGhvc3RuYW1lX3BvcnRfbWF0Y2hbMV0pKSA/IHRydWUgOiBmYWxzZTsNCisgICAgJGlzX2lwdjRfYW5kX2hhc19wb3J0ID0gKGlzc2V0KCRpcHY0X3BvcnRfbWF0Y2hbMV0pKSA/IHRydWUgOiBmYWxzZTsNCisgICAgJHNraXBfbG9va3VwX214ID0gc3RycG9zKCRuZXh0aG9wLCAnWycpOw0KKyAgICAvLyBFeHBsb2RlIHRvIGhvc3RuYW1lIGFuZCBwb3J0DQorICAgIGlmICgkaGFzX2JyYWNrZXRfYW5kX3BvcnQpIHsNCisgICAgICAkcG9ydCA9IHN1YnN0cigkaG9zdG5hbWVfd19wb3J0LCBzdHJycG9zKCRob3N0bmFtZV93X3BvcnQsICc6JykgKyAxKTsNCisgICAgICAkaG9zdG5hbWUgPSBwcmVnX3JlcGxhY2UoJy8nLiBwcmVnX3F1b3RlKCc6JyAuICRwb3J0LCAnLycpIC4gJyQvJywgJycsICRob3N0bmFtZV93X3BvcnQpOw0KKyAgICAgIGlmIChmaWx0ZXJfdmFyKCRob3N0bmFtZSwgRklMVEVSX1ZBTElEQVRFX0lQLCBGSUxURVJfRkxBR19JUFY2KSkgew0KKyAgICAgICAgJGhvc3RuYW1lID0gJ1snIC4gJGhvc3RuYW1lIC4gJ106JzsNCisgICAgICB9DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgaWYgKCRpc19pcHY0X2FuZF9oYXNfcG9ydCkgew0KKyAgICAgICAgJHBvcnQgPSBzdWJzdHIoJGhvc3RuYW1lX3dfcG9ydCwgc3RycnBvcygkaG9zdG5hbWVfd19wb3J0LCAnOicpICsgMSk7DQorICAgICAgICAkaG9zdG5hbWUgPSBwcmVnX3JlcGxhY2UoJy8nLiBwcmVnX3F1b3RlKCc6JyAuICRwb3J0LCAnLycpIC4gJyQvJywgJycsICRob3N0bmFtZV93X3BvcnQpOw0KKyAgICAgIH0NCisgICAgICBpZiAoZmlsdGVyX3ZhcigkaG9zdG5hbWVfd19wb3J0LCBGSUxURVJfVkFMSURBVEVfSVAsIEZJTFRFUl9GTEFHX0lQVjQpKSB7DQorICAgICAgICAkaG9zdG5hbWUgPSAkaG9zdG5hbWVfd19wb3J0Ow0KKyAgICAgICAgJHBvcnQgPSBudWxsOw0KKyAgICAgIH0NCisgICAgICBlbHNlaWYgKGZpbHRlcl92YXIoJGhvc3RuYW1lX3dfcG9ydCwgRklMVEVSX1ZBTElEQVRFX0lQLCBGSUxURVJfRkxBR19JUFY2KSkgew0KKyAgICAgICAgJGhvc3RuYW1lID0gJ1snIC4gJGhvc3RuYW1lX3dfcG9ydCAuICddJzsNCisgICAgICAgICRwb3J0ID0gbnVsbDsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkaG9zdG5hbWUgPSBwcmVnX3JlcGxhY2UoJy8nLiBwcmVnX3F1b3RlKCc6JyAuICRwb3J0LCAnLycpIC4gJyQvJywgJycsICRob3N0bmFtZV93X3BvcnQpOw0KKyAgICAgICAgJHBvcnQgPSBudWxsOw0KKyAgICAgIH0NCisgICAgfQ0KKyAgICAvLyBUcnkgdG8gZ2V0IE1YIGlmIGhvc3QgaXMgbm90IFtob3N0XQ0KKyAgICBpZiAoJHNraXBfbG9va3VwX214ID09PSBmYWxzZSkgew0KKyAgICAgIGdldG14cnIoJGhvc3RuYW1lLCAkbXhfcmVjb3JkcywgJG14X3dlaWdodCk7DQorICAgICAgaWYgKCFlbXB0eSgkbXhfcmVjb3JkcykpIHsNCisgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRteF9yZWNvcmRzKTsgJGkrKykgew0KKyAgICAgICAgICAkbXhzWyRteF9yZWNvcmRzWyRpXV0gPSAkbXhfd2VpZ2h0WyRpXTsNCisgICAgICAgIH0NCisgICAgICAgIGFzb3J0ICgkbXhzKTsNCisgICAgICAgICRyZWNvcmRzID0gYXJyYXlfa2V5cygkbXhzKTsNCisgICAgICAgIGVjaG8gJ1VzaW5nIGZpcnN0IG1hdGNoZWQgcHJpbWFyeSBNWCBmb3IgIicgLiAkaG9zdG5hbWUgLiAnIjogJzsNCisgICAgICAgICRob3N0bmFtZSA9ICRyZWNvcmRzWzBdOw0KKyAgICAgICAgZWNobyAkaG9zdG5hbWUgLiAnPGJyPic7DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgZWNobyAnTm8gTVggcmVjb3JkcyBmb3IgJyAuICRob3N0bmFtZSAuICcgd2VyZSBmb3VuZCBpbiBETlMsIHNraXBwaW5nIGFuZCB1c2luZyBob3N0bmFtZSBhcyBuZXh0LWhvcC48YnI+JzsNCisgICAgICB9DQorICAgIH0NCisgICAgLy8gVXNlIHBvcnQgMjUgaWYgbm8gcG9ydCB3YXMgZ2l2ZW4NCisgICAgJHBvcnQgPSAoZW1wdHkoJHBvcnQpKSA/IDI1IDogJHBvcnQ7DQorICAgICR1c2VybmFtZSA9ICR0cmFuc3BvcnRfZGV0YWlsc1sndXNlcm5hbWUnXTsNCisgICAgJHBhc3N3b3JkID0gJHRyYW5zcG9ydF9kZXRhaWxzWydwYXNzd29yZCddOw0KKw0KKyAgICAkbWFpbCA9IG5ldyBQSFBNYWlsZXI7DQorICAgICRtYWlsLT5UaW1lb3V0ID0gMTU7DQorICAgICRtYWlsLT5TTVRQT3B0aW9ucyA9IGFycmF5KA0KKyAgICAgICdzc2wnID0+IGFycmF5KA0KKyAgICAgICAgJ3ZlcmlmeV9wZWVyJyA9PiBmYWxzZSwNCisgICAgICAgICd2ZXJpZnlfcGVlcl9uYW1lJyA9PiBmYWxzZSwNCisgICAgICAgICdhbGxvd19zZWxmX3NpZ25lZCcgPT4gdHJ1ZQ0KKyAgICAgICkNCisgICAgKTsNCisgICAgJG1haWwtPlNNVFBEZWJ1ZyA9IDM7DQorICAgIC8vIHNtdHA6IGFuZCBzbXRwX2VuZm9yY2VkX3RsczogZG8gbm90IHN1cHBvcnQgd3JhcHBlZCB0bHMsIHRvZG8/DQorICAgIC8vIGNoYW5nZSBwb3N0Zml4IG1hcCB0byBkZXRlY3Qgd3JhcHBlZCB0bHMgb3IgYWRkIGEgY2hlY2tib3ggdG8gdG9nZ2xlIHdyYXBwZWQgdGxzDQorICAgIC8vIGlmICgkcG9ydCA9PSA0NjUpIHsNCisgICAgICAvLyAkbWFpbC0+U01UUFNlY3VyZSA9ICJzc2wiOw0KKyAgICAvLyB9DQorICAgICRtYWlsLT5EZWJ1Z291dHB1dCA9IGZ1bmN0aW9uKCRzdHIsICRsZXZlbCkgew0KKyAgICAgIGZvcmVhY2gocHJlZ19zcGxpdCgiLygoXHI/XG4pfChcclxuPyl8XG4pLyIsICRzdHIpIGFzICRsaW5lKXsNCisgICAgICAgIGlmIChlbXB0eSgkbGluZSkpIHsgY29udGludWU7IH0NCisgICAgICAgIGlmIChwcmVnX21hdGNoKCIvU0VSVkVSIFwtXD4gQ0xJRU5UOiAyXGRcZC4rL2kiLCAkbGluZSkpIHsNCisgICAgICAgICAgZWNobyAnPHNwYW4gc3R5bGU9ImNvbG9yOmRhcmtncmVlbjtmb250LXdlaWdodDpib2xkIj4nIC4gaHRtbHNwZWNpYWxjaGFycygkbGluZSkgLiAnPC9zcGFuPjxicj4nOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZWlmIChwcmVnX21hdGNoKCIvU0VSVkVSIFwtXD4gQ0xJRU5UOiAzXGRcZC4rL2kiLCAkbGluZSkpIHsNCisgICAgICAgICAgZWNobyAnPHNwYW4gc3R5bGU9ImNvbG9yOmxpZ2h0Z3JlZW47Zm9udC13ZWlnaHQ6Ym9sZCI+JyAuIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpIC4gJzwvc3Bhbj48YnI+JzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2VpZiAocHJlZ19tYXRjaCgiL1NFUlZFUiBcLVw+IENMSUVOVDogNFxkXGQuKy9pIiwgJGxpbmUpKSB7DQorICAgICAgICAgIGVjaG8gJzxzcGFuIHN0eWxlPSJjb2xvcjp5ZWxsb3c7Zm9udC13ZWlnaHQ6Ym9sZCI+JyAuIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpIC4gJzwvc3Bhbj48YnI+JzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2VpZiAocHJlZ19tYXRjaCgiL1NFUlZFUiBcLVw+IENMSUVOVDogNVxkXGQuKy9pIiwgJGxpbmUpKSB7DQorICAgICAgICAgIGVjaG8gJzxzcGFuIHN0eWxlPSJjb2xvcjpyZWQ7Zm9udC13ZWlnaHQ6Ym9sZCI+JyAuIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpIC4gJzwvc3Bhbj48YnI+JzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2VpZiAocHJlZ19tYXRjaCgiL0NMSUVOVCBcLVw+IFNFUlZFUjouKy9pIiwgJGxpbmUpKSB7DQorICAgICAgICAgIGVjaG8gJzxzcGFuIHN0eWxlPSJjb2xvcjojOTk5O2ZvbnQtd2VpZ2h0OmJvbGQiPicgLiBodG1sc3BlY2lhbGNoYXJzKCRsaW5lKSAuICc8L3NwYW4+PGJyPic7DQorICAgICAgICB9DQorICAgICAgICBlbHNlaWYgKHByZWdfbWF0Y2goIi9eKD8hU0VSVkVSfENMSUVOVHxDb25uZWN0aW9uOnxcKSkuKyQvaSIsICRsaW5lKSkgew0KKyAgICAgICAgICBlY2hvICc8c3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDvihqogJyAuIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpIC4gJzwvc3Bhbj48YnI+JzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGxpbmUpIC4gJzxicj4nOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgfTsNCisgICAgJG1haWwtPmlzU01UUCgpOw0KKyAgICAkbWFpbC0+SG9zdCA9ICRob3N0bmFtZTsNCisgICAgaWYgKCFlbXB0eSgkdXNlcm5hbWUpKSB7DQorICAgICAgJG1haWwtPlNNVFBBdXRoID0gdHJ1ZTsNCisgICAgICAkbWFpbC0+VXNlcm5hbWUgPSAkdXNlcm5hbWU7DQorICAgICAgJG1haWwtPlBhc3N3b3JkID0gJHBhc3N3b3JkOw0KKyAgICB9DQorICAgICRtYWlsLT5Qb3J0ID0gJHBvcnQ7DQorICAgICRtYWlsLT5zZXRGcm9tKCRtYWlsX2Zyb20sICdNYWlsZXInKTsNCisgICAgJG1haWwtPlN1YmplY3QgPSAnQSBzdWJqZWN0IGZvciBhIFNNVFAgdGVzdCc7DQorICAgICRtYWlsLT5hZGRBZGRyZXNzKCRSRUxBWV9UTywgJ0pvZSBOdWxsJyk7DQorICAgICRtYWlsLT5Cb2R5ID0gJ1RoaXMgaXMgb3VyIHRlc3QgYm9keSc7DQorICAgICRtYWlsLT5zZW5kKCk7DQorICB9DQorICBlbHNlIHsNCisgICAgZWNobyAiVW5rbm93biB0cmFuc3BvcnQuIjsNCisgIH0NCit9DQorZWxzZSB7DQorICBlY2hvICJQZXJtaXNzaW9uIGRlbmllZC4iOw0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Zvb3Rlci5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mb290ZXIuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzM4Y2M2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mb290ZXIuaW5jLnBocApAQCAtMCwwICsxLDMwOCBAQAorPD9waHAKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9tb2RhbHMvZm9vdGVyLnBocCc7Citsb2dnZXIoKTsKKworJGhhc2ggPSAkanNfbWluaWZpZXItPmdldERhdGFIYXNoKCk7CiskSlNQYXRoID0gJy90bXAvJyAuICRoYXNoIC4gJy5qcyc7CitpZighZmlsZV9leGlzdHMoJEpTUGF0aCkpIHsKKyAgJGpzX21pbmlmaWVyLT5taW5pZnkoJEpTUGF0aCk7CisgIGNsZWFudXBKUygkaGFzaCk7Cit9Cis/PgorPHNjcmlwdCBzcmM9Ii9jYWNoZS88Pz1iYXNlbmFtZSgkSlNQYXRoKT8+Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Cis8P3BocAorJGxhbmdfZm9vdGVyID0ganNvbl9lbmNvZGUoJGxhbmdbJ2Zvb3RlciddKTsKKyRsYW5nX2FjbCA9IGpzb25fZW5jb2RlKCRsYW5nWydhY2wnXSk7CiskbGFuZ190ZmEgPSBqc29uX2VuY29kZSgkbGFuZ1sndGZhJ10pOworJGxhbmdfZmlkbzIgPSBqc29uX2VuY29kZSgkbGFuZ1snZmlkbzInXSk7CitlY2hvICJ2YXIgbGFuZ19mb290ZXIgPSAiLiAkbGFuZ19mb290ZXIgLiAiO1xuIjsKK2VjaG8gInZhciBsYW5nX2FjbCA9ICIuICRsYW5nX2FjbCAuICI7XG4iOworZWNobyAidmFyIGxhbmdfdGZhID0gIi4gJGxhbmdfdGZhIC4gIjtcbiI7CitlY2hvICJ2YXIgbGFuZ19maWRvMiA9ICIuICRsYW5nX2ZpZG8yIC4gIjtcbiI7CitlY2hvICJ2YXIgZG9ja2VyX3RpbWVvdXQgPSAiLiAkRE9DS0VSX1RJTUVPVVQgKiAxMDAwIC4gIjtcbiI7Cis/PgorJCh3aW5kb3cpLnNjcm9sbChmdW5jdGlvbigpIHsKKyAgc2Vzc2lvblN0b3JhZ2Uuc2Nyb2xsVG9wID0gJCh0aGlzKS5zY3JvbGxUb3AoKTsKK30pOworLy8gU2VsZWN0IGxhbmd1YWdlIGFuZCByZW9wZW4gYWN0aXZlIFVSTCB3aXRob3V0IFBPU1QKK2Z1bmN0aW9uIHNldExhbmcoc2VsKSB7CisgICQucG9zdCggIjw/PSAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsgPz4iLCB7bGFuZzogc2VsfSApOworICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArIHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7Cit9CisvLyBGSURPMiBmdW5jdGlvbnMKK2Z1bmN0aW9uIGFycmF5QnVmZmVyVG9CYXNlNjQoYnVmZmVyKSB7CisgIGxldCBiaW5hcnkgPSAnJzsKKyAgbGV0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKKyAgbGV0IGxlbiA9IGJ5dGVzLmJ5dGVMZW5ndGg7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSggYnl0ZXNbIGkgXSApOworICB9CisgIHJldHVybiB3aW5kb3cuYnRvYShiaW5hcnkpOworfQorZnVuY3Rpb24gcmVjdXJzaXZlQmFzZTY0U3RyVG9BcnJheUJ1ZmZlcihvYmopIHsKKyAgbGV0IHByZWZpeCA9ICc9P0JJTkFSWT9CPyc7CisgIGxldCBzdWZmaXggPSAnPz0nOworICBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHsKKyAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7CisgICAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnc3RyaW5nJykgeworICAgICAgICBsZXQgc3RyID0gb2JqW2tleV07CisgICAgICAgIGlmIChzdHIuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgpID09PSBwcmVmaXggJiYgc3RyLnN1YnN0cmluZyhzdHIubGVuZ3RoIC0gc3VmZml4Lmxlbmd0aCkgPT09IHN1ZmZpeCkgeworICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgc3RyLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpOworICAgICAgICAgIGxldCBiaW5hcnlfc3RyaW5nID0gd2luZG93LmF0b2Ioc3RyKTsKKyAgICAgICAgICBsZXQgbGVuID0gYmluYXJ5X3N0cmluZy5sZW5ndGg7CisgICAgICAgICAgbGV0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuKTsKKyAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICBieXRlc1tpXSA9IGJpbmFyeV9zdHJpbmcuY2hhckNvZGVBdChpKTsKKyAgICAgICAgICB9CisgICAgICAgICAgb2JqW2tleV0gPSBieXRlcy5idWZmZXI7CisgICAgICAgIH0KKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHJlY3Vyc2l2ZUJhc2U2NFN0clRvQXJyYXlCdWZmZXIob2JqW2tleV0pOworICAgICAgfQorICAgIH0KKyAgfQorfQorJCh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKSB7CisgICQoIi5vdmVybGF5IikuaGlkZSgpOworfSk7CiskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKKyAgJChkb2N1bWVudCkub24oJ3Nob3duLmJzLm1vZGFsJywgZnVuY3Rpb24oZSkgeworICAgIG1vZGFsX2lkID0gJChlLnJlbGF0ZWRUYXJnZXQpLmRhdGEoJ3RhcmdldCcpOworICAgICQobW9kYWxfaWQpLmF0dHIoImFyaWEtaGlkZGVuIiwiZmFsc2UiKTsKKyAgfSk7CisgIC8vIFRGQSwgQ1NSRiwgQWxlcnRzIGluIGZvb3Rlci5pbmMucGhwCisgIC8vIE90aGVyIGdlbmVyYWwgZnVuY3Rpb25zIGluIG1haWxjb3cuanMKKyAgPD9waHAKKyAgJGFsZXJ0Ym94X2xvZ19wYXJzZXIgPSBhbGVydGJveF9sb2dfcGFyc2VyKCRfU0VTU0lPTik7CisgIGlmIChpc19hcnJheSgkYWxlcnRib3hfbG9nX3BhcnNlcikpIHsKKyAgICBmb3JlYWNoKCRhbGVydGJveF9sb2dfcGFyc2VyIGFzICRsb2cpIHsKKyAgICAgICRhbGVydHNbJGxvZ1sndHlwZSddXVtdID0gJGxvZ1snbXNnJ107CisgICAgfQorICAgIGZvcmVhY2goJGFsZXJ0cyBhcyAkYWxlcnRfdHlwZSA9PiAkYWxlcnRfbXNnKSB7CisgID8+CisgIG1haWxjb3dfYWxlcnRfYm94KDw/PWpzb25fZW5jb2RlKGltcGxvZGUoJzxociBjbGFzcz0iYWxlcnQtaHIiPicsICRhbGVydF9tc2cpKTs/PiwgPD89JGFsZXJ0X3R5cGU7Pz4pOworICA8P3BocAorICAgIH0KKyAgdW5zZXQoJF9TRVNTSU9OWydyZXR1cm4nXSk7CisgIH0KKyAgPz4KKyAgLy8gQ29uZmlybSBURkEgbW9kYWwKKyAgPD9waHAgaWYgKGlzc2V0KCRfU0VTU0lPTlsncGVuZGluZ190ZmFfbWV0aG9kJ10pKTo/PgorICAkKCcjQ29uZmlybVRGQU1vZGFsJykubW9kYWwoeworICAgIGJhY2tkcm9wOiAnc3RhdGljJywKKyAgICBrZXlib2FyZDogZmFsc2UKKyAgfSk7CisgICQoJyN1MmZfc3RhdHVzX2F1dGgnKS5odG1sKCc8cD48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZWZyZXNoIGdseXBoaWNvbi1zcGluIj48L3NwYW4+ICcgKyBsYW5nX3RmYS5pbml0X3UyZiArICc8L3A+Jyk7CisgICQoJyNDb25maXJtVEZBTW9kYWwnKS5vbignc2hvd24uYnMubW9kYWwnLCBmdW5jdGlvbigpeworICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPXRva2VuXScpLmZvY3VzKCk7CisgICAgICAvLyBJZiBVMkYKKyAgICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1MmZfYXV0aF9kYXRhIikgIT09IG51bGwpIHsKKyAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICB0eXBlOiAiR0VUIiwKKyAgICAgICAgICBjYWNoZTogZmFsc2UsCisgICAgICAgICAgZGF0YVR5cGU6ICdzY3JpcHQnLAorICAgICAgICAgIHVybDogIi9hcGkvdjEvZ2V0L3UyZi1hdXRoZW50aWNhdGlvbi88Pz0gKGlzc2V0KCRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3VzZXJuYW1lJ10pKSA/IHJhd3VybGVuY29kZSgkX1NFU1NJT05bJ3BlbmRpbmdfbWFpbGNvd19jY191c2VybmFtZSddKSA6IG51bGw7ID8+IiwKKyAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oZGF0YSl7CisgICAgICAgICAgICAkKCcjdTJmX3N0YXR1c19hdXRoJykuaHRtbChsYW5nX3RmYS53YWl0aW5nX3VzYl9hdXRoKTsKKyAgICAgICAgICAgIGRhdGE7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBjb25zb2xlLmxvZygiUmVhZHkgdG8gYXV0aGVudGljYXRlIik7CisgICAgICAgICAgICAgIHUyZi5zaWduKGFwcElkLCBjaGFsbGVuZ2UsIHJlZ2lzdGVyZWRLZXlzLCBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndTJmX2F1dGhfZm9ybScpOworICAgICAgICAgICAgICAgIHZhciBhdXRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3UyZl9hdXRoX2RhdGEnKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiQXV0aGVudGljYXRlIGNhbGxiYWNrIiwgZGF0YSk7CisgICAgICAgICAgICAgICAgYXV0aC52YWx1ZSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOworICAgICAgICAgICAgICAgIGZvcm0uc3VibWl0KCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgMTAwMCk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0KKyAgfSk7CisgICQoJyNDb25maXJtVEZBTW9kYWwnKS5vbignaGlkZGVuLmJzLm1vZGFsJywgZnVuY3Rpb24oKXsKKyAgICAgICQuYWpheCh7CisgICAgICAgIHR5cGU6ICJHRVQiLAorICAgICAgICBjYWNoZTogZmFsc2UsCisgICAgICAgIGRhdGFUeXBlOiAnc2NyaXB0JywKKyAgICAgICAgdXJsOiAnL2luYy9hamF4L2Rlc3Ryb3lfdGZhX2F1dGgucGhwJywKKyAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uKGRhdGEpeworICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF07CisgICAgICAgIH0KKyAgICAgIH0pOworICB9KTsKKyAgPD9waHAgZW5kaWY7ID8+CisgIC8vIFZhbGlkYXRlIEZJRE8yCisgICQoIiNmaWRvMi1sb2dpbiIpLmNsaWNrKGZ1bmN0aW9uKCl7CisgICAgJCgnI2ZpZG8yLWFsZXJ0cycpLmh0bWwoKTsKKyAgICBpZiAoIXdpbmRvdy5mZXRjaCB8fCAhbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHx8ICFuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKSB7CisgICAgICB3aW5kb3cuYWxlcnQoJ0Jyb3dzZXIgbm90IHN1cHBvcnRlZC4nKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgd2luZG93LmZldGNoKCIvYXBpL3YxL2dldC9maWRvMi1nZXQtYXJncyIsIHttZXRob2Q6J0dFVCcsY2FjaGU6J25vLWNhY2hlJ30pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7CisgICAgfSkudGhlbihmdW5jdGlvbihqc29uKSB7CisgICAgaWYgKGpzb24uc3VjY2VzcyA9PT0gZmFsc2UpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcigpOworICAgIH0KKyAgICByZWN1cnNpdmVCYXNlNjRTdHJUb0FycmF5QnVmZmVyKGpzb24pOworICAgIHJldHVybiBqc29uOworICAgIH0pLnRoZW4oZnVuY3Rpb24oZ2V0Q3JlZGVudGlhbEFyZ3MpIHsKKyAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KGdldENyZWRlbnRpYWxBcmdzKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKGNyZWQpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIGlkOiBjcmVkLnJhd0lkID8gYXJyYXlCdWZmZXJUb0Jhc2U2NChjcmVkLnJhd0lkKSA6IG51bGwsCisgICAgICAgIGNsaWVudERhdGFKU09OOiBjcmVkLnJlc3BvbnNlLmNsaWVudERhdGFKU09OICA/IGFycmF5QnVmZmVyVG9CYXNlNjQoY3JlZC5yZXNwb25zZS5jbGllbnREYXRhSlNPTikgOiBudWxsLAorICAgICAgICBhdXRoZW50aWNhdG9yRGF0YTogY3JlZC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSA/IGFycmF5QnVmZmVyVG9CYXNlNjQoY3JlZC5yZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSkgOiBudWxsLAorICAgICAgICBzaWduYXR1cmUgOiBjcmVkLnJlc3BvbnNlLnNpZ25hdHVyZSA/IGFycmF5QnVmZmVyVG9CYXNlNjQoY3JlZC5yZXNwb25zZS5zaWduYXR1cmUpIDogbnVsbAorICAgICAgfTsKKyAgICB9KS50aGVuKEpTT04uc3RyaW5naWZ5KS50aGVuKGZ1bmN0aW9uKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKSB7CisgICAgICByZXR1cm4gd2luZG93LmZldGNoKCIvYXBpL3YxL3Byb2Nlc3MvZmlkbzItYXJncyIsIHttZXRob2Q6J1BPU1QnLCBib2R5OiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSwgY2FjaGU6J25vLWNhY2hlJ30pOworICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7CisgICAgfSkudGhlbihmdW5jdGlvbihqc29uKSB7CisgICAgICBpZiAoanNvbi5zdWNjZXNzKSB7CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF07CisgICAgICB9IGVsc2UgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKKyAgICAgIH0KKyAgICB9KS5jYXRjaChmdW5jdGlvbihlcnIpIHsKKyAgICAgIGlmICh0eXBlb2YgZXJyLm1lc3NhZ2UgPT09ICd1bmRlZmluZWQnKSB7CisgICAgICAgIG1haWxjb3dfYWxlcnRfYm94KGxhbmdfZmlkbzIuZmlkbzJfdmFsaWRhdGlvbl9mYWlsZWQsICJkYW5nZXIiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIG1haWxjb3dfYWxlcnRfYm94KGxhbmdfZmlkbzIuZmlkbzJfdmFsaWRhdGlvbl9mYWlsZWQgKyAiOjxicj48aT4iICsgZXJyLm1lc3NhZ2UgKyAiPC9pPiIsICJkYW5nZXIiKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSk7CisgIC8vIFNldCBURkEvRklETzIKKyAgJCgiI3JlZ2lzdGVyLWZpZG8yIikuY2xpY2soZnVuY3Rpb24oKXsKKyAgICAkKCJvcHRpb246c2VsZWN0ZWQiKS5wcm9wKCJzZWxlY3RlZCIsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvdy5mZXRjaCB8fCAhbmF2aWdhdG9yLmNyZWRlbnRpYWxzIHx8ICFuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKSB7CisgICAgICAgIHdpbmRvdy5hbGVydCgnQnJvd3NlciBub3Qgc3VwcG9ydGVkLicpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHdpbmRvdy5mZXRjaCgiL2FwaS92MS9nZXQvZmlkbzItcmVnaXN0cmF0aW9uLzw/PSAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10pKSA/IHJhd3VybGVuY29kZSgkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSkgOiBudWxsOyA/PiIsIHttZXRob2Q6J0dFVCcsY2FjaGU6J25vLWNhY2hlJ30pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7CisgICAgfSkudGhlbihmdW5jdGlvbihqc29uKSB7CisgICAgICBpZiAoanNvbi5zdWNjZXNzID09PSBmYWxzZSkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoanNvbi5tc2cpOworICAgICAgfQorICAgICAgcmVjdXJzaXZlQmFzZTY0U3RyVG9BcnJheUJ1ZmZlcihqc29uKTsKKyAgICAgIHJldHVybiBqc29uOworICAgIH0pLnRoZW4oZnVuY3Rpb24oY3JlYXRlQ3JlZGVudGlhbEFyZ3MpIHsKKyAgICAgIGNvbnNvbGUubG9nKGNyZWF0ZUNyZWRlbnRpYWxBcmdzKTsKKyAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKGNyZWF0ZUNyZWRlbnRpYWxBcmdzKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9uKGNyZWQpIHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIGNsaWVudERhdGFKU09OOiBjcmVkLnJlc3BvbnNlLmNsaWVudERhdGFKU09OICA/IGFycmF5QnVmZmVyVG9CYXNlNjQoY3JlZC5yZXNwb25zZS5jbGllbnREYXRhSlNPTikgOiBudWxsLAorICAgICAgICBhdHRlc3RhdGlvbk9iamVjdDogY3JlZC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCA/IGFycmF5QnVmZmVyVG9CYXNlNjQoY3JlZC5yZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCkgOiBudWxsCisgICAgICB9OworICAgIH0pLnRoZW4oSlNPTi5zdHJpbmdpZnkpLnRoZW4oZnVuY3Rpb24oQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpIHsKKyAgICAgIHJldHVybiB3aW5kb3cuZmV0Y2goIi9hcGkvdjEvYWRkL2ZpZG8yLXJlZ2lzdHJhdGlvbiIsIHttZXRob2Q6J1BPU1QnLCBib2R5OiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSwgY2FjaGU6J25vLWNhY2hlJ30pOworICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7CisgICAgfSkudGhlbihmdW5jdGlvbihqc29uKSB7CisgICAgICBpZiAoanNvbi5zdWNjZXNzKSB7CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCIjIilbMF07CisgICAgICB9IGVsc2UgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoanNvbi5tc2cpOworICAgICAgfQorICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgeworICAgICAgJCgnI2ZpZG8yLWFsZXJ0cycpLmh0bWwoJzxzcGFuIGNsYXNzPSJ0ZXh0LWRhbmdlciI+PGI+JyArIGVyci5tZXNzYWdlICsgJzwvYj48L3NwYW4+Jyk7CisgICAgfSk7CisgIH0pOworICAkKCcjc2VsZWN0VEZBJykuY2hhbmdlKGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoJCh0aGlzKS52YWwoKSA9PSAieXViaV9vdHAiKSB7CisgICAgICAkKCcjWXViaU9UUE1vZGFsJykubW9kYWwoJ3Nob3cnKTsKKyAgICAgICQoIm9wdGlvbjpzZWxlY3RlZCIpLnByb3AoInNlbGVjdGVkIiwgZmFsc2UpOworICAgIH0KKyAgICBpZiAoJCh0aGlzKS52YWwoKSA9PSAidG90cCIpIHsKKyAgICAgICQoJyNUT1RQTW9kYWwnKS5tb2RhbCgnc2hvdycpOworICAgICAgcmVxdWVzdF90b2tlbiA9ICQoJyN0ZmEtcXItaW1nJykuZGF0YSgndG90cC1zZWNyZXQnKTsKKyAgICAgICQuYWpheCh7CisgICAgICAgIHVybDogJy9pbmMvYWpheC9xcl9nZW4ucGhwJywKKyAgICAgICAgZGF0YTogeworICAgICAgICAgIHRva2VuOiByZXF1ZXN0X3Rva2VuLAorICAgICAgICB9LAorICAgICAgfSkuZG9uZShmdW5jdGlvbiAocmVzdWx0KSB7CisgICAgICAgICQoIiN0ZmEtcXItaW1nIikuYXR0cigic3JjIiwgcmVzdWx0KTsKKyAgICAgIH0pOworICAgICAgJCgib3B0aW9uOnNlbGVjdGVkIikucHJvcCgic2VsZWN0ZWQiLCBmYWxzZSk7CisgICAgfQorICAgIGlmICgkKHRoaXMpLnZhbCgpID09ICJ1MmYiKSB7CisgICAgICAkKCcjVTJGTW9kYWwnKS5tb2RhbCgnc2hvdycpOworICAgICAgJCgib3B0aW9uOnNlbGVjdGVkIikucHJvcCgic2VsZWN0ZWQiLCBmYWxzZSk7CisgICAgICAkKCIjc3RhcnRfdTJmX3JlZ2lzdGVyIikuY2xpY2soZnVuY3Rpb24oKXsKKyAgICAgICAgJCgnI3UyZl9yZXR1cm5fY29kZScpLmh0bWwoJycpOworICAgICAgICAkKCcjdTJmX3JldHVybl9jb2RlJykuaGlkZSgpOworICAgICAgICAkKCcjdTJmX3N0YXR1c19yZWcnKS5odG1sKCc8cD48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZWZyZXNoIGdseXBoaWNvbi1zcGluIj48L3NwYW4+ICcgKyBsYW5nX3RmYS5pbml0X3UyZiArICc8L3A+Jyk7CisgICAgICAgICQuYWpheCh7CisgICAgICAgICAgdHlwZTogIkdFVCIsCisgICAgICAgICAgY2FjaGU6IGZhbHNlLAorICAgICAgICAgIGRhdGFUeXBlOiAnc2NyaXB0JywKKyAgICAgICAgICB1cmw6ICIvYXBpL3YxL2dldC91MmYtcmVnaXN0cmF0aW9uLzw/PSAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10pKSA/IHJhd3VybGVuY29kZSgkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSkgOiBudWxsOyA/PiIsCisgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uKGRhdGEpeworICAgICAgICAgICAgZGF0YTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSZWFkeSB0byByZWdpc3RlciIpOworICAgICAgICAgICAgICAkKCcjdTJmX3N0YXR1c19yZWcnKS5odG1sKGxhbmdfdGZhLndhaXRpbmdfdXNiX3JlZ2lzdGVyKTsKKyAgICAgICAgICAgICAgdTJmLnJlZ2lzdGVyKGFwcElkLCByZWdpc3RlclJlcXVlc3RzLCByZWdpc3RlcmVkS2V5cywgZnVuY3Rpb24oZGV2aWNlUmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAgICB2YXIgZm9ybSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndTJmX3JlZ19mb3JtJyk7CisgICAgICAgICAgICAgICAgdmFyIHJlZyAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3UyZl9yZWdpc3Rlcl9kYXRhJyk7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlJlZ2lzdGVyIGNhbGxiYWNrOiAiLCBkYXRhKTsKKyAgICAgICAgICAgICAgICBpZiAoZGV2aWNlUmVzcG9uc2UuZXJyb3JDb2RlICYmIGRldmljZVJlc3BvbnNlLmVycm9yQ29kZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICB2YXIgdTJmX3JldHVybl9jb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3UyZl9yZXR1cm5fY29kZScpOworICAgICAgICAgICAgICAgICAgdTJmX3JldHVybl9jb2RlLnN0eWxlLmRpc3BsYXkgPSB1MmZfcmV0dXJuX2NvZGUuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gJycgOiBudWxsOworICAgICAgICAgICAgICAgICAgaWYgKGRldmljZVJlc3BvbnNlLmVycm9yQ29kZSA9PSAiNCIpIHsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlUmVzcG9uc2UuZXJyb3JDb2RlID0gIjQgLSBUaGUgcHJlc2VudGVkIGRldmljZSBpcyBub3QgZWxpZ2libGUgZm9yIHRoaXMgcmVxdWVzdC4gRm9yIGEgcmVnaXN0cmF0aW9uIHJlcXVlc3QgdGhpcyBtYXkgbWVhbiB0aGF0IHRoZSB0b2tlbiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIGFuZCBmb3IgYSBzaWduIHJlcXVlc3QgaXQgbWF5IG1lYW4gdGhhdCB0aGUgdG9rZW4gZG9lcyBub3Qga25vdyB0aGUgcHJlc2VudGVkIGtleSBoYW5kbGUiOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGV2aWNlUmVzcG9uc2UuZXJyb3JDb2RlID09ICI1IikgeworICAgICAgICAgICAgICAgICAgICBkZXZpY2VSZXNwb25zZS5lcnJvckNvZGUgPSAiNSAtIFRpbWVvdXQgcmVhY2hlZCBiZWZvcmUgcmVxdWVzdCBjb3VsZCBiZSBzYXRpc2ZpZWQuIjsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHUyZl9yZXR1cm5fY29kZS5pbm5lckhUTUwgPSBsYW5nX3RmYS5lcnJvcl9jb2RlICsgJzogJyArIGRldmljZVJlc3BvbnNlLmVycm9yQ29kZSArICcgJyArIGxhbmdfdGZhLnJlbG9hZF9yZXRyeTsKKyAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVnLnZhbHVlID0gSlNPTi5zdHJpbmdpZnkoZGV2aWNlUmVzcG9uc2UpOworICAgICAgICAgICAgICAgIGZvcm0uc3VibWl0KCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgMTAwMCk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0KKyAgICBpZiAoJCh0aGlzKS52YWwoKSA9PSAibm9uZSIpIHsKKyAgICAgICQoJyNEaXNhYmxlVEZBTW9kYWwnKS5tb2RhbCgnc2hvdycpOworICAgICAgJCgib3B0aW9uOnNlbGVjdGVkIikucHJvcCgic2VsZWN0ZWQiLCBmYWxzZSk7CisgICAgfQorICB9KTsKKworICAvLyBSZWxvYWQgYWZ0ZXIgc2Vzc2lvbiB0aW1lb3V0CisgIHZhciBzZXNzaW9uX2xpZmV0aW1lID0gPD89KChpbnQpJFNFU1NJT05fTElGRVRJTUUgKiAxMDAwKSArIDE1MDAwOz8+OworICA8P3BocAorICBpZiAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10pKToKKyAgPz4KKyAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICBsb2NhdGlvbi5yZWxvYWQoKTsKKyAgfSwgc2Vzc2lvbl9saWZldGltZSk7CisgIDw/cGhwCisgIGVuZGlmOworICA/PgorCisgIC8vIENTUkYKKyAgJCgnPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ijw/PSAkX1NFU1NJT05bJ0NTUkYnXVsnVE9LRU4nXTsgPz4iPicpLmF0dHIoJ25hbWUnLCAnY3NyZl90b2tlbicpLmFwcGVuZFRvKCdmb3JtJyk7CisgIGlmIChzZXNzaW9uU3RvcmFnZS5zY3JvbGxUb3AgIT0gInVuZGVmaW5lZCIpIHsKKyAgICAkKHdpbmRvdykuc2Nyb2xsVG9wKHNlc3Npb25TdG9yYWdlLnNjcm9sbFRvcCk7CisgIH0KK30pOworPC9zY3JpcHQ+CisKKyAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGZvb3RlciI+CisgIDw/cGhwIGlmICghZW1wdHkoJFVJX1RFWFRTWyd1aV9mb290ZXInXSkpIHsgPz4KKyAgIDxocj48c3BhbiBjbGFzcz0icm90LWVuYyI+PD89c3RyX3JvdDEzKCRVSV9URVhUU1sndWlfZm9vdGVyJ10pOz8+PC9zcGFuPgorICA8P3BocCB9ID8+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorPD9waHAKKyRzdG10ID0gbnVsbDsKKyRwZG8gPSBudWxsOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuYWNsLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5hY2wuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmNlOWY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuYWNsLmluYy5waHAKQEAgLTAsMCArMSwyMjYgQEAKKzw/cGhwDQorZnVuY3Rpb24gYWNsKCRfYWN0aW9uLCAkX3Njb3BlID0gbnVsbCwgJF9kYXRhID0gbnVsbCkgew0KKyAgZ2xvYmFsICRwZG87DQorICBnbG9iYWwgJGxhbmc7DQorICAkX2RhdGFfbG9nID0gJF9kYXRhOw0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdlZGl0JzoNCisgICAgICBzd2l0Y2ggKCRfc2NvcGUpIHsNCisgICAgICAgIGNhc2UgJ3VzZXInOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIC8vIENhc3QgdG8gYXJyYXkgZm9yIHNpbmdsZSBzZWxlY3Rpb25zDQorICAgICAgICAgICAgJGFjbHMgPSAoYXJyYXkpJF9kYXRhWyd1c2VyX2FjbCddOw0KKyAgICAgICAgICAgIC8vIENyZWF0ZSBhc3NvY2lhdGl2ZSBhcnJheSBmcm9tIGluZGV4IGFycmF5DQorICAgICAgICAgICAgLy8gQWxsIHNldCBpdGVtcyBhcmUgZ2l2ZW4gMSBhcyB2YWx1ZQ0KKyAgICAgICAgICAgIGZvcmVhY2ggKCRhY2xzIGFzICRhY2xfa2V5ID0+ICRhY2xfdmFsKSB7DQorICAgICAgICAgICAgICAkYWNsX3Bvc3RbJGFjbF92YWxdID0gMTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgLy8gVXNlcnMgY2Fubm90IGNoYW5nZSB0aGVpciBvd24gQUNMDQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkdXNlcm5hbWUpDQorICAgICAgICAgICAgICB8fCAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAnYWRtaW4nICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2RvbWFpbmFkbWluJykpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgLy8gUmVhZCBhbGwgYXZhaWxhYmxlIGFjbCBvcHRpb25zIGJ5IGNhbGxpbmcgYWNsKGdldCkNCisgICAgICAgICAgICAvLyBTZXQgYWxsIGF2YWlsYWJsZSBhY2wgb3B0aW9ucyB3ZSBjYW5ub3QgZmluZCBpbiB0aGUgcG9zdCBkYXRhIHRvIDAsIGVsc2UgMQ0KKyAgICAgICAgICAgICRpc19ub3cgPSBhY2woJ2dldCcsICd1c2VyJywgJHVzZXJuYW1lKTsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICAgICBmb3JlYWNoICgkaXNfbm93IGFzICRhY2xfbm93X25hbWUgPT4gJGFjbF9ub3dfdmFsKSB7DQorICAgICAgICAgICAgICAgICRzZXRfYWNsc1skYWNsX25vd19uYW1lXSA9IChpc3NldCgkYWNsX3Bvc3RbJGFjbF9ub3dfbmFtZV0pKSA/IDEgOiAwOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnQ2Fubm90IGRldGVybWluZSBjdXJyZW50IEFDTCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZm9yZWFjaCAoJHNldF9hY2xzIGFzICRzZXRfYWNsX2tleSA9PiAkc2V0X2FjbF92YWwpIHsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGB1c2VyX2FjbGAgU0VUICIgLiAkc2V0X2FjbF9rZXkgLiAiID0gIiAuIGludHZhbCgkc2V0X2FjbF92YWwpIC4gIg0KKyAgICAgICAgICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FjbF9zYXZlZCcsICR1c2VybmFtZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2RvbWFpbmFkbWluJzoNCisgICAgICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2FkbWluJykgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIC8vIENhc3QgdG8gYXJyYXkgZm9yIHNpbmdsZSBzZWxlY3Rpb25zDQorICAgICAgICAgICAgJGFjbHMgPSAoYXJyYXkpJF9kYXRhWydkYV9hY2wnXTsNCisgICAgICAgICAgICAvLyBDcmVhdGUgYXNzb2NpYXRpdmUgYXJyYXkgZnJvbSBpbmRleCBhcnJheQ0KKyAgICAgICAgICAgIC8vIEFsbCBzZXQgaXRlbXMgYXJlIGdpdmVuIDEgYXMgdmFsdWUNCisgICAgICAgICAgICBmb3JlYWNoICgkYWNscyBhcyAkYWNsX2tleSA9PiAkYWNsX3ZhbCkgew0KKyAgICAgICAgICAgICAgJGFjbF9wb3N0WyRhY2xfdmFsXSA9IDE7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIC8vIFVzZXJzIGNhbm5vdCBjaGFuZ2UgdGhlaXIgb3duIEFDTA0KKyAgICAgICAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICdhZG1pbicpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgLy8gUmVhZCBhbGwgYXZhaWxhYmxlIGFjbCBvcHRpb25zIGJ5IGNhbGxpbmcgYWNsKGdldCkNCisgICAgICAgICAgICAvLyBTZXQgYWxsIGF2YWlsYWJsZSBhY2wgb3B0aW9ucyB3ZSBjYW5ub3QgZmluZCBpbiB0aGUgcG9zdCBkYXRhIHRvIDAsIGVsc2UgMQ0KKyAgICAgICAgICAgICRpc19ub3cgPSBhY2woJ2dldCcsICdkb21haW5hZG1pbicsICR1c2VybmFtZSk7DQorICAgICAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAgICAgZm9yZWFjaCAoJGlzX25vdyBhcyAkYWNsX25vd19uYW1lID0+ICRhY2xfbm93X3ZhbCkgew0KKyAgICAgICAgICAgICAgICAkc2V0X2FjbHNbJGFjbF9ub3dfbmFtZV0gPSAoaXNzZXQoJGFjbF9wb3N0WyRhY2xfbm93X25hbWVdKSkgPyAxIDogMDsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ0Nhbm5vdCBkZXRlcm1pbmUgY3VycmVudCBBQ0wnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGZvcmVhY2ggKCRzZXRfYWNscyBhcyAkc2V0X2FjbF9rZXkgPT4gJHNldF9hY2xfdmFsKSB7DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgZGFfYWNsYCBTRVQgIiAuICRzZXRfYWNsX2tleSAuICIgPSAiIC4gaW50dmFsKCRzZXRfYWNsX3ZhbCkgLiAiDQorICAgICAgICAgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgICApKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYWNsX3NhdmVkJywgJHVzZXJuYW1lKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgc3dpdGNoICgkX3Njb3BlKSB7DQorICAgICAgICBjYXNlICd1c2VyJzoNCisgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGEpKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUICogRlJPTSBgdXNlcl9hY2xgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRkYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAnZG9tYWluYWRtaW4nKSB7DQorICAgICAgICAgICAgLy8gRG9tYWluIGFkbWlucyBjYW5ub3Qgc2VlLCBhZGQgb3IgcmVtb3ZlIHVzZXIgQUNMcyB0aGV5IGRvbid0IGhhdmUgYWNjZXNzIHRvIGJ5IHRoZW1zZWx2ZXMNCisgICAgICAgICAgICAvLyBFZGl0aW5nIGEgdXNlciB3aWxsIHVzZSBhY2woImdldCIsICJ1c2VyIikgdG8gZGV0ZXJtaW5lIGdyYW50ZWQgQUNMcyBhbmQgdGhlcmVmb3JlIGJsb2NrIHVuYWxsb3dlZCBhY2Nlc3MgZXNjYWxhdGlvbiB2aWEgZm9ybSBlZGl0aW5nDQorICAgICAgICAgICAgJHNlbGZfZGFfYWNsID0gYWNsKCdnZXQnLCAnZG9tYWluYWRtaW4nLCAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSk7DQorICAgICAgICAgICAgZm9yZWFjaCAoJHNlbGZfZGFfYWNsIGFzICRzZWxmX2RhX2FjbF9rZXkgPT4gJHNlbGZfZGFfYWNsX3ZhbCkgew0KKyAgICAgICAgICAgICAgaWYgKCRzZWxmX2RhX2FjbF92YWwgPT0gMCkgew0KKyAgICAgICAgICAgICAgICB1bnNldCgkZGF0YVskc2VsZl9kYV9hY2xfa2V5XSk7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghZW1wdHkoJGRhdGEpKSB7DQorICAgICAgICAgICAgdW5zZXQoJGRhdGFbJ3VzZXJuYW1lJ10pOw0KKyAgICAgICAgICAgIHJldHVybiAkZGF0YTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnZG9tYWluYWRtaW4nOg0KKyAgICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAnYWRtaW4nICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2RvbWFpbmFkbWluJykgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAnZG9tYWluYWRtaW4nICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddICE9ICRfZGF0YSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gYGRhX2FjbGAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJGRhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIGlmICghZW1wdHkoJGRhdGEpKSB7DQorICAgICAgICAgICAgdW5zZXQoJGRhdGFbJ3VzZXJuYW1lJ10pOw0KKyAgICAgICAgICAgIHJldHVybiAkZGF0YTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ3RvX3Nlc3Npb24nOg0KKyAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSkpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgdW5zZXQoJF9TRVNTSU9OWydhY2wnXSk7DQorICAgICAgJHVzZXJuYW1lID0gc3RydG9sb3dlcih0cmltKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddKSk7DQorICAgICAgLy8gQWRtaW5zIGdldCBhY2Nlc3MgdG8gYWxsIG1vZHVsZXMNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAnYWRtaW4nIHx8DQorICAgICAgICAoaXNzZXQoJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInJvbGUiXSkgJiYgJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInJvbGUiXSA9PSAnYWRtaW4nKSkgew0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0hPVyBDT0xVTU5TIEZST00gYHVzZXJfYWNsYCBXSEVSRSBgRmllbGRgICE9ICd1c2VybmFtZSc7Iik7DQorICAgICAgICAkYWNsX2FsbCA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJGFjbF9hbGwpKSB7DQorICAgICAgICAgICRhY2xbJ2FjbCddWyRyb3dbJ0ZpZWxkJ11dID0gMTsNCisgICAgICAgIH0NCisgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNIT1cgQ09MVU1OUyBGUk9NIGBkYV9hY2xgIFdIRVJFIGBGaWVsZGAgIT0gJ3VzZXJuYW1lJzsiKTsNCisgICAgICAgICRhY2xfYWxsID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkYWNsX2FsbCkpIHsNCisgICAgICAgICAgJGFjbFsnYWNsJ11bJHJvd1snRmllbGQnXV0gPSAxOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICBlbHNlaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gJ2RvbWFpbmFkbWluJyB8fA0KKyAgICAgICAgKGlzc2V0KCRfU0VTU0lPTlsiZHVhbC1sb2dpbiJdWyJyb2xlIl0pICYmICRfU0VTU0lPTlsiZHVhbC1sb2dpbiJdWyJyb2xlIl0gPT0gJ2RvbWFpbmFkbWluJykpIHsNCisgICAgICAgIC8vIFJlYWQgYWxsIGV4dGluZyB1c2VyX2FjbCBtb2R1bGVzIGFuZCBzZXQgdG8gMQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0hPVyBDT0xVTU5TIEZST00gYHVzZXJfYWNsYCBXSEVSRSBgRmllbGRgICE9ICd1c2VybmFtZSc7Iik7DQorICAgICAgICAkYWNsX2FsbCA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJGFjbF9hbGwpKSB7DQorICAgICAgICAgICRhY2xbJ2FjbCddWyRyb3dbJ0ZpZWxkJ11dID0gMTsNCisgICAgICAgIH0NCisgICAgICAgIC8vIFJlYWQgZGFfYWNsIHJ1bGVzIGZvciBjdXJyZW50IHVzZXIsIE9WRVJXUklURSBvdmVybGFwcGluZyBtb2R1bGVzDQorICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGFjY2VzcyB0byBhIHVzZXJzIHN5bmMgam9icywgd2hlbiBhIGRvbWFpbiBhZG1pbnMgd2FzIG5vdCBnaXZlbiBhY2Nlc3MgdG8gc3luYyBqb2JzDQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gYGRhX2FjbGAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gKGlzc2V0KCRfU0VTU0lPTlsiZHVhbC1sb2dpbiJdWyJ1c2VybmFtZSJdKSkgPyAkX1NFU1NJT05bImR1YWwtbG9naW4iXVsidXNlcm5hbWUiXSA6ICR1c2VybmFtZSkpOw0KKyAgICAgICAgJGFjbF91c2VyID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgZm9yZWFjaCAoJGFjbF91c2VyIGFzICRhY2xfdXNlcl9rZXkgPT4gJGFjbF91c2VyX3ZhbCkgew0KKyAgICAgICAgICAkYWNsWydhY2wnXVskYWNsX3VzZXJfa2V5XSA9ICRhY2xfdXNlcl92YWw7DQorICAgICAgICB9DQorICAgICAgICB1bnNldCgkYWNsWydhY2wnXVsndXNlcm5hbWUnXSk7DQorICAgICAgfQ0KKyAgICAgIGVsc2VpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAndXNlcicpIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUICogRlJPTSBgdXNlcl9hY2xgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOw0KKyAgICAgICAgJGFjbFsnYWNsJ10gPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICB1bnNldCgkYWNsWydhY2wnXVsndXNlcm5hbWUnXSk7DQorICAgICAgfQ0KKyAgICAgIGlmICghZW1wdHkoJGFjbCkpIHsNCisgICAgICAgICRfU0VTU0lPTiA9IGFycmF5X21lcmdlKCRfU0VTU0lPTiwgJGFjbCk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgIH0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuYWRkcmVzc19yZXdyaXRpbmcuaW5jLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmFkZHJlc3NfcmV3cml0aW5nLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFjZGQ3MwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmFkZHJlc3NfcmV3cml0aW5nLmluYy5waHAKQEAgLTAsMCArMSw0MzAgQEAKKzw/cGhwDQorZnVuY3Rpb24gYmNjKCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsLCAkYXR0ciA9IG51bGwpIHsNCisJZ2xvYmFsICRwZG87DQorCWdsb2JhbCAkbGFuZzsNCisgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiZG9tYWluYWRtaW4iKSB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnYWRkJzoNCisgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ2JjY19tYXBzJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ2JjY19tYXBzJ10gIT0gIjEiICkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRsb2NhbF9kZXN0ID0gc3RydG9sb3dlcih0cmltKCRfZGF0YVsnbG9jYWxfZGVzdCddKSk7DQorICAgICAgJGJjY19kZXN0ID0gJF9kYXRhWydiY2NfZGVzdCddOw0KKyAgICAgICRhY3RpdmUgPSBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSk7DQorICAgICAgJHR5cGUgPSAkX2RhdGFbJ3R5cGUnXTsNCisgICAgICBpZiAoJHR5cGUgIT0gJ3NlbmRlcicgJiYgJHR5cGUgIT0gJ3JjcHQnKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICdtc2cnID0+ICdpbnZhbGlkX2JjY19tYXBfdHlwZScNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIGlmIChlbXB0eSgkYmNjX2Rlc3QpKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICdtc2cnID0+ICdiY2NfZW1wdHknDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBpZiAoaXNfdmFsaWRfZG9tYWluX25hbWUoJGxvY2FsX2Rlc3QpKSB7DQorICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGxvY2FsX2Rlc3QpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgICRkb21haW4gPSBpZG5fdG9fYXNjaWkoJGxvY2FsX2Rlc3QsIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICRsb2NhbF9kZXN0X3NhbmUgPSAnQCcgLiBpZG5fdG9fYXNjaWkoJGxvY2FsX2Rlc3QsIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICB9DQorICAgICAgZWxzZWlmIChmaWx0ZXJfdmFyKCRsb2NhbF9kZXN0LCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSB7DQorICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRsb2NhbF9kZXN0KSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgICAkZG9tYWluID0gbWFpbGJveCgnZ2V0JywgJ21haWxib3hfZGV0YWlscycsICRsb2NhbF9kZXN0KVsnZG9tYWluJ107DQorICAgICAgICBpZiAoZW1wdHkoJGRvbWFpbikpIHsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJGxvY2FsX2Rlc3Rfc2FuZSA9ICRsb2NhbF9kZXN0Ow0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRiY2NfZGVzdCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYmNjX211c3RfYmVfZW1haWwnLCBodG1sc3BlY2lhbGNoYXJzKCRiY2NfZGVzdCkpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgaWRgIEZST00gYGJjY19tYXBzYA0KKyAgICAgICAgV0hFUkUgYGxvY2FsX2Rlc3RgID0gOmxvY2FsX2Rlc3QgQU5EIGB0eXBlYCA9IDp0eXBlIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpsb2NhbF9kZXN0JyA9PiAkbG9jYWxfZGVzdF9zYW5lLCAnOnR5cGUnID0+ICR0eXBlKSk7DQorICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisNCisgICAgICBpZiAoJG51bV9yZXN1bHRzICE9IDApIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2JjY19leGlzdHMnLCBodG1sc3BlY2lhbGNoYXJzKCRsb2NhbF9kZXN0X3NhbmUpLCAkdHlwZSkNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYGJjY19tYXBzYCAoYGxvY2FsX2Rlc3RgLCBgYmNjX2Rlc3RgLCBgZG9tYWluYCwgYGFjdGl2ZWAsIGB0eXBlYCkgVkFMVUVTDQorICAgICAgICAoOmxvY2FsX2Rlc3QsIDpiY2NfZGVzdCwgOmRvbWFpbiwgOmFjdGl2ZSwgOnR5cGUpIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOmxvY2FsX2Rlc3QnID0+ICRsb2NhbF9kZXN0X3NhbmUsDQorICAgICAgICAnOmJjY19kZXN0JyA9PiAkYmNjX2Rlc3QsDQorICAgICAgICAnOmRvbWFpbicgPT4gJGRvbWFpbiwNCisgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgJzp0eXBlJyA9PiAkdHlwZQ0KKyAgICAgICkpOw0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICdtc2cnID0+ICdiY2Nfc2F2ZWQnDQorICAgICAgKTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsnYmNjX21hcHMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnYmNjX21hcHMnXSAhPSAiMSIgKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGlkcyA9IChhcnJheSkkX2RhdGFbJ2lkJ107DQorICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICRpc19ub3cgPSBiY2MoJ2RldGFpbHMnLCAkaWQpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAkYWN0aXZlID0gKGlzc2V0KCRfZGF0YVsnYWN0aXZlJ10pKSA/IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKSA6ICRpc19ub3dbJ2FjdGl2ZSddOw0KKyAgICAgICAgICAkYmNjX2Rlc3QgPSAoIWVtcHR5KCRfZGF0YVsnYmNjX2Rlc3QnXSkpID8gJF9kYXRhWydiY2NfZGVzdCddIDogJGlzX25vd1snYmNjX2Rlc3QnXTsNCisgICAgICAgICAgJGxvY2FsX2Rlc3QgPSAkaXNfbm93Wydsb2NhbF9kZXN0J107DQorICAgICAgICAgICR0eXBlID0gKCFlbXB0eSgkX2RhdGFbJ3R5cGUnXSkpID8gJF9kYXRhWyd0eXBlJ10gOiAkaXNfbm93Wyd0eXBlJ107DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkYWN0aXZlID0gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pOw0KKyAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRiY2NfZGVzdCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdiY2NfbXVzdF9iZV9lbWFpbCcsICRiY2NfZGVzdCkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICBpZiAoZW1wdHkoJGJjY19kZXN0KSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdiY2NfbXVzdF9iZV9lbWFpbCcsICRiY2NfZGVzdCkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgaWRgIEZST00gYGJjY19tYXBzYA0KKyAgICAgICAgICBXSEVSRSBgbG9jYWxfZGVzdGAgPSA6bG9jYWxfZGVzdCBBTkQgYHR5cGVgID0gOnR5cGUiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6bG9jYWxfZGVzdCcgPT4gJGxvY2FsX2Rlc3QsICc6dHlwZScgPT4gJHR5cGUpKTsNCisgICAgICAgICRpZF9ub3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQylbJ2lkJ107DQorDQorICAgICAgICBpZiAoaXNzZXQoJGlkX25vdykgJiYgJGlkX25vdyAhPSAkaWQpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYmNjX2V4aXN0cycsIGh0bWxzcGVjaWFsY2hhcnMoJGxvY2FsX2Rlc3QpLCAkdHlwZSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorDQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgYmNjX21hcHNgIFNFVCBgYmNjX2Rlc3RgID0gOmJjY19kZXN0LCBgYWN0aXZlYCA9IDphY3RpdmUsIGB0eXBlYCA9IDp0eXBlIFdIRVJFIGBpZGA9IDppZCIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6YmNjX2Rlc3QnID0+ICRiY2NfZGVzdCwNCisgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUsDQorICAgICAgICAgICc6dHlwZScgPT4gJHR5cGUsDQorICAgICAgICAgICc6aWQnID0+ICRpZA0KKyAgICAgICAgKSk7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYmNjX2VkaXRlZCcsICRiY2NfZGVzdCkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGV0YWlscyc6DQorICAgICAgJGJjY2RhdGEgPSBhcnJheSgpOw0KKyAgICAgICRpZCA9IGludHZhbCgkX2RhdGEpOw0KKw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsDQorICAgICAgICBgbG9jYWxfZGVzdGAsDQorICAgICAgICBgYmNjX2Rlc3RgLA0KKyAgICAgICAgYGFjdGl2ZWAsDQorICAgICAgICBgdHlwZWAsDQorICAgICAgICBgY3JlYXRlZGAsDQorICAgICAgICBgZG9tYWluYCwNCisgICAgICAgIGBtb2RpZmllZGAgRlJPTSBgYmNjX21hcHNgDQorICAgICAgICAgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAkYmNjZGF0YSA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisNCisgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGJjY2RhdGFbJ2RvbWFpbiddKSkgew0KKyAgICAgICAgJGJjY2RhdGEgPSBudWxsOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gJGJjY2RhdGE7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgICRiY2NkYXRhID0gYXJyYXkoKTsNCisgICAgICAkYWxsX2l0ZW1zID0gYXJyYXkoKTsNCisgICAgICAkaWQgPSBpbnR2YWwoJF9kYXRhKTsNCisNCisgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgYGlkYCwgYGRvbWFpbmAgRlJPTSBgYmNjX21hcHNgIik7DQorICAgICAgJGFsbF9pdGVtcyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisNCisgICAgICBmb3JlYWNoICgkYWxsX2l0ZW1zIGFzICRpKSB7DQorICAgICAgICBpZiAoaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkaVsnZG9tYWluJ10pKSB7DQorICAgICAgICAgICRiY2NkYXRhW10gPSAkaVsnaWQnXTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgJGFsbF9pdGVtcyA9IG51bGw7DQorICAgICAgcmV0dXJuICRiY2NkYXRhOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGVsZXRlJzoNCisgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ2JjY19tYXBzJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ2JjY19tYXBzJ10gIT0gIjEiICkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRpZHMgPSAoYXJyYXkpJF9kYXRhWydpZCddOw0KKyAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7DQorICAgICAgICBpZiAoIWlzX251bWVyaWMoJGlkKSkgew0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBiY2NfbWFwc2AgV0hFUkUgaWQgPSA6aWQiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aWQnID0+ICRpZCkpOw0KKyAgICAgICAgJGRvbWFpbiA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKVsnZG9tYWluJ107DQorICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGRvbWFpbikpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBiY2NfbWFwc2AgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdiY2NfZGVsZXRlZCcsICRpZCkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgIH0NCit9DQorDQorZnVuY3Rpb24gcmVjaXBpZW50X21hcCgkX2FjdGlvbiwgJF9kYXRhID0gbnVsbCwgJGF0dHIgPSBudWxsKSB7DQorCWdsb2JhbCAkcGRvOw0KKwlnbG9iYWwgJGxhbmc7DQorICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnYWRkJzoNCisgICAgICAkb2xkX2Rlc3QgPSBzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhWydyZWNpcGllbnRfbWFwX29sZCddKSk7DQorICAgICAgaWYgKHN1YnN0cigkb2xkX2Rlc3QsIDAsIDEpID09ICdAJykgew0KKyAgICAgICAgJG9sZF9kZXN0ID0gc3Vic3RyKCRvbGRfZGVzdCwgMSk7DQorICAgICAgfQ0KKyAgICAgICRuZXdfZGVzdCA9IHN0cnRvbG93ZXIodHJpbSgkX2RhdGFbJ3JlY2lwaWVudF9tYXBfbmV3J10pKTsNCisgICAgICAkYWN0aXZlID0gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pOw0KKyAgICAgIGlmIChpc192YWxpZF9kb21haW5fbmFtZSgkb2xkX2Rlc3QpKSB7DQorICAgICAgICAkb2xkX2Rlc3Rfc2FuZSA9ICdAJyAuIGlkbl90b19hc2NpaSgkb2xkX2Rlc3QsIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICB9DQorICAgICAgZWxzZWlmIChmaWx0ZXJfdmFyKCRvbGRfZGVzdCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgJG9sZF9kZXN0X3NhbmUgPSAkb2xkX2Rlc3Q7DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaW52YWxpZF9yZWNpcGllbnRfbWFwX29sZCcsIGh0bWxzcGVjaWFsY2hhcnMoJG9sZF9kZXN0KSkNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIGlmICghZmlsdGVyX3ZhcigkbmV3X2Rlc3QsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2ludmFsaWRfcmVjaXBpZW50X21hcF9uZXcnLCBodG1sc3BlY2lhbGNoYXJzKCRuZXdfZGVzdCkpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkcm1hcHMgPSByZWNpcGllbnRfbWFwKCdnZXQnKTsNCisgICAgICBmb3JlYWNoICgkcm1hcHMgYXMgJHJtYXApIHsNCisgICAgICAgIGlmIChyZWNpcGllbnRfbWFwKCdkZXRhaWxzJywgJHJtYXApWydyZWNpcGllbnRfbWFwX29sZCddID09ICRvbGRfZGVzdF9zYW5lKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlY2lwaWVudF9tYXBfZW50cnlfZXhpc3RzJywgaHRtbHNwZWNpYWxjaGFycygkb2xkX2Rlc3Rfc2FuZSkpDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgcmVjaXBpZW50X21hcHNgIChgb2xkX2Rlc3RgLCBgbmV3X2Rlc3RgLCBgYWN0aXZlYCkgVkFMVUVTDQorICAgICAgICAoOm9sZF9kZXN0LCA6bmV3X2Rlc3QsIDphY3RpdmUpIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOm9sZF9kZXN0JyA9PiAkb2xkX2Rlc3Rfc2FuZSwNCisgICAgICAgICc6bmV3X2Rlc3QnID0+ICRuZXdfZGVzdCwNCisgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgKSk7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlY2lwaWVudF9tYXBfZW50cnlfc2F2ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRvbGRfZGVzdF9zYW5lKSkNCisgICAgICApOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZWRpdCc6DQorICAgICAgJGlkcyA9IChhcnJheSkkX2RhdGFbJ2lkJ107DQorICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICRpc19ub3cgPSByZWNpcGllbnRfbWFwKCdkZXRhaWxzJywgJGlkKTsNCisgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgJGFjdGl2ZSA9IChpc3NldCgkX2RhdGFbJ2FjdGl2ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSkgOiAkaXNfbm93WydhY3RpdmUnXTsNCisgICAgICAgICAgJG5ld19kZXN0ID0gKCFlbXB0eSgkX2RhdGFbJ3JlY2lwaWVudF9tYXBfbmV3J10pKSA/ICRfZGF0YVsncmVjaXBpZW50X21hcF9uZXcnXSA6ICRpc19ub3dbJ3JlY2lwaWVudF9tYXBfbmV3J107DQorICAgICAgICAgICRvbGRfZGVzdCA9ICghZW1wdHkoJF9kYXRhWydyZWNpcGllbnRfbWFwX29sZCddKSkgPyAkX2RhdGFbJ3JlY2lwaWVudF9tYXBfb2xkJ10gOiAkaXNfbm93WydyZWNpcGllbnRfbWFwX29sZCddOw0KKyAgICAgICAgICBpZiAoc3Vic3RyKCRvbGRfZGVzdCwgMCwgMSkgPT0gJ0AnKSB7DQorICAgICAgICAgICAgJG9sZF9kZXN0ID0gc3Vic3RyKCRvbGRfZGVzdCwgMSk7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmIChpc192YWxpZF9kb21haW5fbmFtZSgkb2xkX2Rlc3QpKSB7DQorICAgICAgICAgICRvbGRfZGVzdF9zYW5lID0gJ0AnIC4gaWRuX3RvX2FzY2lpKCRvbGRfZGVzdCwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZWlmIChmaWx0ZXJfdmFyKCRvbGRfZGVzdCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAkb2xkX2Rlc3Rfc2FuZSA9ICRvbGRfZGVzdDsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdpbnZhbGlkX3JlY2lwaWVudF9tYXBfb2xkJywgaHRtbHNwZWNpYWxjaGFycygkb2xkX2Rlc3QpKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmICghZmlsdGVyX3ZhcigkbmV3X2Rlc3QsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaW52YWxpZF9yZWNpcGllbnRfbWFwX25ldycsIGh0bWxzcGVjaWFsY2hhcnMoJG5ld19kZXN0KSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkcm1hcHMgPSByZWNpcGllbnRfbWFwKCdnZXQnKTsNCisgICAgICAgIGZvcmVhY2ggKCRybWFwcyBhcyAkcm1hcCkgew0KKyAgICAgICAgICBpZiAoJHJtYXAgPT0gJGlkKSB7IGNvbnRpbnVlOyB9DQorICAgICAgICAgIGlmIChyZWNpcGllbnRfbWFwKCdkZXRhaWxzJywgJHJtYXApWydyZWNpcGllbnRfbWFwX29sZCddID09ICRvbGRfZGVzdF9zYW5lKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVjaXBpZW50X21hcF9lbnRyeV9leGlzdHMnLCBodG1sc3BlY2lhbGNoYXJzKCRvbGRfZGVzdF9zYW5lKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHJlY2lwaWVudF9tYXBzYCBTRVQNCisgICAgICAgICAgYG9sZF9kZXN0YCA9IDpvbGRfZGVzdCwNCisgICAgICAgICAgYG5ld19kZXN0YCA9IDpuZXdfZGVzdCwNCisgICAgICAgICAgYGFjdGl2ZWAgPSA6YWN0aXZlDQorICAgICAgICAgICAgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzpvbGRfZGVzdCcgPT4gJG9sZF9kZXN0X3NhbmUsDQorICAgICAgICAgICc6bmV3X2Rlc3QnID0+ICRuZXdfZGVzdCwNCisgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUsDQorICAgICAgICAgICc6aWQnID0+ICRpZA0KKyAgICAgICAgKSk7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVjaXBpZW50X21hcF9lbnRyeV9zYXZlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJG9sZF9kZXN0X3NhbmUpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZXRhaWxzJzoNCisgICAgICAkbWFwZGF0YSA9IGFycmF5KCk7DQorICAgICAgJGlkID0gaW50dmFsKCRfZGF0YSk7DQorDQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCwNCisgICAgICAgIGBvbGRfZGVzdGAgQVMgYHJlY2lwaWVudF9tYXBfb2xkYCwNCisgICAgICAgIGBuZXdfZGVzdGAgQVMgYHJlY2lwaWVudF9tYXBfbmV3YCwNCisgICAgICAgIGBhY3RpdmVgLA0KKyAgICAgICAgYGNyZWF0ZWRgLA0KKyAgICAgICAgYG1vZGlmaWVkYCBGUk9NIGByZWNpcGllbnRfbWFwc2ANCisgICAgICAgICAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aWQnID0+ICRpZCkpOw0KKyAgICAgICRtYXBkYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKw0KKyAgICAgIHJldHVybiAkbWFwZGF0YTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgJG1hcGRhdGEgPSBhcnJheSgpOw0KKyAgICAgICRhbGxfaXRlbXMgPSBhcnJheSgpOw0KKyAgICAgICRpZCA9IGludHZhbCgkX2RhdGEpOw0KKw0KKyAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNFTEVDVCBgaWRgIEZST00gYHJlY2lwaWVudF9tYXBzYCIpOw0KKyAgICAgICRhbGxfaXRlbXMgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorDQorICAgICAgZm9yZWFjaCAoJGFsbF9pdGVtcyBhcyAkaSkgew0KKyAgICAgICAgJG1hcGRhdGFbXSA9ICRpWydpZCddOw0KKyAgICAgIH0NCisgICAgICAkYWxsX2l0ZW1zID0gbnVsbDsNCisgICAgICByZXR1cm4gJG1hcGRhdGE7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgICRpZHMgPSAoYXJyYXkpJF9kYXRhWydpZCddOw0KKyAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7DQorICAgICAgICBpZiAoIWlzX251bWVyaWMoJGlkKSkgew0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGByZWNpcGllbnRfbWFwc2AgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWNpcGllbnRfbWFwX2VudHJ5X2RlbGV0ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRpZCkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICB9DQorfQ0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmFkbWluLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5hZG1pbi5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMDQwMGUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5hZG1pbi5pbmMucGhwCkBAIC0wLDAgKzEsMjgyIEBACis8P3BocA0KK2Z1bmN0aW9uIGFkbWluKCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsKSB7DQorICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgZ2xvYmFsICRwZG87DQorICBnbG9iYWwgJGxhbmc7DQorICAkX2RhdGFfbG9nID0gJF9kYXRhOw0KKyAgIWlzc2V0KCRfZGF0YV9sb2dbJ3Bhc3N3b3JkJ10pID86ICRfZGF0YV9sb2dbJ3Bhc3N3b3JkJ10gPSAnKic7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1sncGFzc3dvcmQyJ10pID86ICRfZGF0YV9sb2dbJ3Bhc3N3b3JkMiddID0gJyonOw0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdhZGQnOg0KKyAgICAgICR1c2VybmFtZQkJPSBzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhWyd1c2VybmFtZSddKSk7DQorICAgICAgJHBhc3N3b3JkCQk9ICRfZGF0YVsncGFzc3dvcmQnXTsNCisgICAgICAkcGFzc3dvcmQyICA9ICRfZGF0YVsncGFzc3dvcmQyJ107DQorICAgICAgJGFjdGl2ZSAgICAgPSBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSk7DQorICAgICAgaWYgKCFjdHlwZV9hbG51bShzdHJfcmVwbGFjZShhcnJheSgnXycsICcuJywgJy0nKSwgJycsICR1c2VybmFtZSkpIHx8IGVtcHR5ICgkdXNlcm5hbWUpIHx8ICR1c2VybmFtZSA9PSAnQVBJJykgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCd1c2VybmFtZV9pbnZhbGlkJywgJHVzZXJuYW1lKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorDQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBhZG1pbmANCisgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAkbnVtX3Jlc3VsdHNbXSA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorDQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBkb21haW5fYWRtaW5zYA0KKyAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOw0KKyAgICAgICRudW1fcmVzdWx0c1tdID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisNCisgICAgICBmb3JlYWNoICgkbnVtX3Jlc3VsdHMgYXMgJG51bV9yZXN1bHRzX2VhY2gpIHsNCisgICAgICAgIGlmICgkbnVtX3Jlc3VsdHNfZWFjaCAhPSAwKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X2V4aXN0cycsIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICBpZiAoIWVtcHR5KCRwYXNzd29yZCkgJiYgIWVtcHR5KCRwYXNzd29yZDIpKSB7DQorICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmQpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfY29tcGxleGl0eScNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCRwYXNzd29yZCAhPSAkcGFzc3dvcmQyKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfbWlzbWF0Y2gnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgICRwYXNzd29yZF9oYXNoZWQgPSBoYXNoX3Bhc3N3b3JkKCRwYXNzd29yZCk7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBhZG1pbmAgKGB1c2VybmFtZWAsIGBwYXNzd29yZGAsIGBzdXBlcmFkbWluYCwgYGFjdGl2ZWApDQorICAgICAgICAgIFZBTFVFUyAoOnVzZXJuYW1lLCA6cGFzc3dvcmRfaGFzaGVkLCAnMScsIDphY3RpdmUpIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAnOnBhc3N3b3JkX2hhc2hlZCcgPT4gJHBhc3N3b3JkX2hhc2hlZCwNCisgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICAgICkpOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfZW1wdHknDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+IGFycmF5KCdhZG1pbl9hZGRlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKSkNCisgICAgICApOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZWRpdCc6DQorICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICR1c2VybmFtZXNbXSA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkdXNlcm5hbWVzID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgIH0NCisgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgJGlzX25vdyA9IGFkbWluKCdkZXRhaWxzJywgJHVzZXJuYW1lKTsNCisgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgJGFjdGl2ZSA9IChpc3NldCgkX2RhdGFbJ2FjdGl2ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSkgOiAkaXNfbm93WydhY3RpdmUnXTsNCisgICAgICAgICAgJHVzZXJuYW1lX25ldyA9ICghZW1wdHkoJF9kYXRhWyd1c2VybmFtZV9uZXcnXSkpID8gJF9kYXRhWyd1c2VybmFtZV9uZXcnXSA6ICRpc19ub3dbJ3VzZXJuYW1lJ107DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgICRwYXNzd29yZCAgICAgPSAkX2RhdGFbJ3Bhc3N3b3JkJ107DQorICAgICAgICAkcGFzc3dvcmQyICAgID0gJF9kYXRhWydwYXNzd29yZDInXTsNCisgICAgICAgIGlmICgkYWN0aXZlID09IDApIHsNCisgICAgICAgICAgJGxlZnRfYWN0aXZlID0gMDsNCisgICAgICAgICAgZm9yZWFjaCAoYWRtaW4oJ2dldCcpIGFzICRhZG1pbikgew0KKyAgICAgICAgICAgICRsZWZ0X2FjdGl2ZSA9ICRsZWZ0X2FjdGl2ZSArIGFkbWluKCdkZXRhaWxzJywgJGFkbWluKVsnYWN0aXZlJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRsZWZ0X2FjdGl2ZSA9PSAxKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnbm9fYWN0aXZlX2FkbWluJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGlmICghY3R5cGVfYWxudW0oc3RyX3JlcGxhY2UoYXJyYXkoJ18nLCAnLicsICctJyksICcnLCAkdXNlcm5hbWVfbmV3KSkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCd1c2VybmFtZV9pbnZhbGlkJywgJHVzZXJuYW1lX25ldykNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICBpZiAoJHVzZXJuYW1lX25ldyAhPSAkdXNlcm5hbWUpIHsNCisgICAgICAgICAgaWYgKCFlbXB0eShhZG1pbignZGV0YWlscycsICR1c2VybmFtZV9uZXcpWyd1c2VybmFtZSddKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndXNlcm5hbWVfaW52YWxpZCcsICR1c2VybmFtZV9uZXcpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCFlbXB0eSgkcGFzc3dvcmQpICYmICFlbXB0eSgkcGFzc3dvcmQyKSkgew0KKyAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmQpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdwYXNzd29yZF9jb21wbGV4aXR5Jw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRwYXNzd29yZCAhPSAkcGFzc3dvcmQyKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdwYXNzd29yZF9taXNtYXRjaCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRwYXNzd29yZF9oYXNoZWQgPSBoYXNoX3Bhc3N3b3JkKCRwYXNzd29yZCk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBhZG1pbmAgU0VUIGB1c2VybmFtZWAgPSA6dXNlcm5hbWVfbmV3LCBgYWN0aXZlYCA9IDphY3RpdmUsIGBwYXNzd29yZGAgPSA6cGFzc3dvcmRfaGFzaGVkIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzpwYXNzd29yZF9oYXNoZWQnID0+ICRwYXNzd29yZF9oYXNoZWQsDQorICAgICAgICAgICAgJzp1c2VybmFtZV9uZXcnID0+ICR1c2VybmFtZV9uZXcsDQorICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhWydkaXNhYmxlX3RmYSddKSkgew0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGB0ZmFgIFNFVCBgYWN0aXZlYCA9ICcwJyBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHRmYWAgU0VUIGB1c2VybmFtZWAgPSA6dXNlcm5hbWVfbmV3IFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lX25ldycgPT4gJHVzZXJuYW1lX25ldywgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgYWRtaW5gIFNFVCBgdXNlcm5hbWVgID0gOnVzZXJuYW1lX25ldywgYGFjdGl2ZWAgPSA6YWN0aXZlIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzp1c2VybmFtZV9uZXcnID0+ICR1c2VybmFtZV9uZXcsDQorICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhWydkaXNhYmxlX3RmYSddKSkgew0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGB0ZmFgIFNFVCBgYWN0aXZlYCA9ICcwJyBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHRmYWAgU0VUIGB1c2VybmFtZWAgPSA6dXNlcm5hbWVfbmV3IFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lX25ldycgPT4gJHVzZXJuYW1lX25ldywgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FkbWluX21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkdXNlcm5hbWUpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgICR1c2VybmFtZXMgPSAoYXJyYXkpJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgIGZvcmVhY2ggKCR1c2VybmFtZXMgYXMgJHVzZXJuYW1lKSB7DQorICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10gPT0gJHVzZXJuYW1lKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2Nhbm5vdF9kZWxldGVfc2VsZicNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICBpZiAoZW1wdHkoYWRtaW4oJ2RldGFpbHMnLCAkdXNlcm5hbWUpKSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3VzZXJuYW1lX2ludmFsaWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgYWRtaW5gIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICApKTsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGRvbWFpbl9hZG1pbnNgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICApKTsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHRmYWAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICkpOw0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgZmlkbzJgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICApKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FkbWluX3JlbW92ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgJGFkbWlucyA9IGFycmF5KCk7DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgYWRtaW5gIFdIRVJFIGBzdXBlcmFkbWluYCA9ICcxJyIpOw0KKyAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJHJvd3MpKSB7DQorICAgICAgICAkYWRtaW5zW10gPSAkcm93Wyd1c2VybmFtZSddOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gJGFkbWluczsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RldGFpbHMnOg0KKyAgICAgICRhZG1pbmRhdGEgPSBhcnJheSgpOw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUDQorICAgICAgICBgdGZhYC5gYWN0aXZlYCBBUyBgdGZhX2FjdGl2ZWAsDQorICAgICAgICBgYWRtaW5gLmB1c2VybmFtZWAsDQorICAgICAgICBgYWRtaW5gLmBjcmVhdGVkYCwNCisgICAgICAgIGBhZG1pbmAuYGFjdGl2ZWAgQVMgYGFjdGl2ZWANCisgICAgICAgICAgRlJPTSBgYWRtaW5gDQorICAgICAgICAgIExFRlQgT1VURVIgSk9JTiBgdGZhYCBPTiBgdGZhYC5gdXNlcm5hbWVgPWBhZG1pbmAuYHVzZXJuYW1lYA0KKyAgICAgICAgICAgIFdIRVJFIGBhZG1pbmAuYHVzZXJuYW1lYD0gOmFkbWluIEFORCBgc3VwZXJhZG1pbmAgPSAnMSciKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICc6YWRtaW4nID0+ICRfZGF0YQ0KKyAgICAgICkpOw0KKyAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgaWYgKGVtcHR5KCRyb3cpKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRhZG1pbmRhdGFbJ3VzZXJuYW1lJ10gPSAkcm93Wyd1c2VybmFtZSddOw0KKyAgICAgICRhZG1pbmRhdGFbJ3RmYV9hY3RpdmUnXSA9IChpc19udWxsKCRyb3dbJ3RmYV9hY3RpdmUnXSkpID8gMCA6ICRyb3dbJ3RmYV9hY3RpdmUnXTsNCisgICAgICAkYWRtaW5kYXRhWyd0ZmFfYWN0aXZlX2ludCddID0gKGlzX251bGwoJHJvd1sndGZhX2FjdGl2ZSddKSkgPyAwIDogJHJvd1sndGZhX2FjdGl2ZSddOw0KKyAgICAgICRhZG1pbmRhdGFbJ2FjdGl2ZSddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgJGFkbWluZGF0YVsnYWN0aXZlX2ludCddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgJGFkbWluZGF0YVsnY3JlYXRlZCddID0gJHJvd1snY3JlYXRlZCddOw0KKyAgICAgIHJldHVybiAkYWRtaW5kYXRhOw0KKyAgICBicmVhazsNCisgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuYXBwX3Bhc3N3ZC5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuYXBwX3Bhc3N3ZC5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YjAwMjYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5hcHBfcGFzc3dkLmluYy5waHAKQEAgLTAsMCArMSwyMDQgQEAKKzw/cGhwDQorZnVuY3Rpb24gYXBwX3Bhc3N3ZCgkX2FjdGlvbiwgJF9kYXRhID0gbnVsbCkgew0KKwlnbG9iYWwgJHBkbzsNCisJZ2xvYmFsICRsYW5nOw0KKyAgJF9kYXRhX2xvZyA9ICRfZGF0YTsNCisgICFpc3NldCgkX2RhdGFfbG9nWydhcHBfcGFzc3dkJ10pID86ICRfZGF0YV9sb2dbJ2FwcF9wYXNzd2QnXSA9ICcqJzsNCisgICFpc3NldCgkX2RhdGFfbG9nWydhcHBfcGFzc3dkMiddKSA/OiAkX2RhdGFfbG9nWydhcHBfcGFzc3dkMiddID0gJyonOw0KKyAgaWYgKGlzc2V0KCRfZGF0YVsndXNlcm5hbWUnXSkgJiYgZmlsdGVyX3ZhcigkX2RhdGFbJ3VzZXJuYW1lJ10sIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorICAgIGVsc2Ugew0KKyAgICAgICR1c2VybmFtZSA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgfQ0KKyAgfQ0KKyAgZWxzZSB7DQorICAgICR1c2VybmFtZSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddOw0KKyAgfQ0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdhZGQnOg0KKyAgICAgICRhcHBfbmFtZSA9IHRyaW0oJF9kYXRhWydhcHBfbmFtZSddKTsNCisgICAgICAkcGFzc3dvcmQgICAgID0gJF9kYXRhWydhcHBfcGFzc3dkJ107DQorICAgICAgJHBhc3N3b3JkMiAgICA9ICRfZGF0YVsnYXBwX3Bhc3N3ZDInXTsNCisgICAgICAkYWN0aXZlID0gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pOw0KKyAgICAgICRkb21haW4gPSBtYWlsYm94KCdnZXQnLCAnbWFpbGJveF9kZXRhaWxzJywgJHVzZXJuYW1lKVsnZG9tYWluJ107DQorICAgICAgaWYgKGVtcHR5KCRkb21haW4pKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmQpKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX2NvbXBsZXhpdHknDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBpZiAoJHBhc3N3b3JkICE9ICRwYXNzd29yZDIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfbWlzbWF0Y2gnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkcGFzc3dvcmRfaGFzaGVkID0gaGFzaF9wYXNzd29yZCgkcGFzc3dvcmQpOw0KKyAgICAgIGlmIChlbXB0eSgkYXBwX25hbWUpKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FwcF9uYW1lX2VtcHR5Jw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgYXBwX3Bhc3N3ZGAgKGBuYW1lYCwgYG1haWxib3hgLCBgZG9tYWluYCwgYHBhc3N3b3JkYCwgYGFjdGl2ZWApDQorICAgICAgICBWQUxVRVMgKDphcHBfbmFtZSwgOm1haWxib3gsIDpkb21haW4sIDpwYXNzd29yZCwgOmFjdGl2ZSkiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICc6YXBwX25hbWUnID0+ICRhcHBfbmFtZSwNCisgICAgICAgICc6bWFpbGJveCcgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgJzpkb21haW4nID0+ICRkb21haW4sDQorICAgICAgICAnOnBhc3N3b3JkJyA9PiAkcGFzc3dvcmRfaGFzaGVkLA0KKyAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICApKTsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+ICdhcHBfcGFzc3dkX2FkZGVkJw0KKyAgICAgICk7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdlZGl0JzoNCisgICAgICAkaWRzID0gKGFycmF5KSRfZGF0YVsnaWQnXTsNCisgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgJGlzX25vdyA9IGFwcF9wYXNzd2QoJ2RldGFpbHMnLCAkaWQpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAkYXBwX25hbWUgPSAoIWVtcHR5KCRfZGF0YVsnYXBwX25hbWUnXSkpID8gJF9kYXRhWydhcHBfbmFtZSddIDogJGlzX25vd1snbmFtZSddOw0KKyAgICAgICAgICAkcGFzc3dvcmQgPSAoIWVtcHR5KCRfZGF0YVsncGFzc3dvcmQnXSkpID8gJF9kYXRhWydwYXNzd29yZCddIDogbnVsbDsNCisgICAgICAgICAgJHBhc3N3b3JkMiA9ICghZW1wdHkoJF9kYXRhWydwYXNzd29yZDInXSkpID8gJF9kYXRhWydwYXNzd29yZDInXSA6IG51bGw7DQorICAgICAgICAgICRhY3RpdmUgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdhcHBfcGFzc3dkX2lkX2ludmFsaWQnLCAkaWQpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJGFwcF9uYW1lID0gdHJpbSgkYXBwX25hbWUpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkcGFzc3dvcmQpICYmICFlbXB0eSgkcGFzc3dvcmQyKSkgew0KKyAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmQpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfY29tcGxleGl0eScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICgkcGFzc3dvcmQgIT0gJHBhc3N3b3JkMikgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX21pc21hdGNoJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHBhc3N3b3JkX2hhc2hlZCA9IGhhc2hfcGFzc3dvcmQoJHBhc3N3b3JkKTsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYGFwcF9wYXNzd2RgIFNFVA0KKyAgICAgICAgICAgICAgYHBhc3N3b3JkYCA9IDpwYXNzd29yZF9oYXNoZWQNCisgICAgICAgICAgICAgICAgV0hFUkUgYG1haWxib3hgID0gOnVzZXJuYW1lIEFORCBgaWRgID0gOmlkIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6cGFzc3dvcmRfaGFzaGVkJyA9PiAkcGFzc3dvcmRfaGFzaGVkLA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAnOmlkJyA9PiAkaWQNCisgICAgICAgICAgKSk7DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgYXBwX3Bhc3N3ZGAgU0VUDQorICAgICAgICAgIGBuYW1lYCA9IDphcHBfbmFtZSwNCisgICAgICAgICAgYG1haWxib3hgID0gOnVzZXJuYW1lLA0KKyAgICAgICAgICBgYWN0aXZlYCA9IDphY3RpdmUNCisgICAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzphcHBfbmFtZScgPT4gJGFwcF9uYW1lLA0KKyAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgICAnOmlkJyA9PiAkaWQNCisgICAgICAgICkpOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkaWRzKSkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGVsZXRlJzoNCisgICAgICAkaWRzID0gKGFycmF5KSRfZGF0YVsnaWQnXTsNCisgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYG1haWxib3hgIEZST00gYGFwcF9wYXNzd2RgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aWQnID0+ICRpZCkpOw0KKyAgICAgICAgJG1haWxib3ggPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQylbJ21haWxib3gnXTsNCisgICAgICAgIGlmIChlbXB0eSgkbWFpbGJveCkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhcHBfcGFzc3dkX2lkX2ludmFsaWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJG1haWxib3gpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgYXBwX3Bhc3N3ZGAgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FwcF9wYXNzd2RfcmVtb3ZlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGlkKSkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZ2V0JzoNCisgICAgICAkYXBwX3Bhc3N3ZHMgPSBhcnJheSgpOw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsIGBuYW1lYCBGUk9NIGBhcHBfcGFzc3dkYCBXSEVSRSBgbWFpbGJveGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAkYXBwX3Bhc3N3ZHMgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgcmV0dXJuICRhcHBfcGFzc3dkczsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RldGFpbHMnOg0KKyAgICAgICRhcHBfcGFzc3dkX2RhdGEgPSBhcnJheSgpOw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsDQorICAgICAgICBgbmFtZWAsDQorICAgICAgICBgbWFpbGJveGAsDQorICAgICAgICBgZG9tYWluYCwNCisgICAgICAgIGBjcmVhdGVkYCwNCisgICAgICAgIGBtb2RpZmllZGAsDQorICAgICAgICBgYWN0aXZlYA0KKyAgICAgICAgICBGUk9NIGBhcHBfcGFzc3dkYA0KKyAgICAgICAgICAgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkX2RhdGFbJ2lkJ10pKTsNCisgICAgICAkYXBwX3Bhc3N3ZF9kYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIGlmIChlbXB0eSgkYXBwX3Bhc3N3ZF9kYXRhKSkgew0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRhcHBfcGFzc3dkX2RhdGFbJ21haWxib3gnXSkpIHsNCisgICAgICAgICRhcHBfcGFzc3dkX2RhdGEgPSBhcnJheSgpOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gJGFwcF9wYXNzd2RfZGF0YTsNCisgICAgYnJlYWs7DQorICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmN1c3RvbWl6ZS5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuY3VzdG9taXplLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRjNzRkOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmN1c3RvbWl6ZS5pbmMucGhwCkBAIC0wLDAgKzEsMjUyIEBACis8P3BocA0KK2Z1bmN0aW9uIGN1c3RvbWl6ZSgkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEgPSBudWxsKSB7DQorCWdsb2JhbCAkcmVkaXM7DQorCWdsb2JhbCAkbGFuZzsNCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnYWRkJzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2l0ZW0sICRfZGF0YSksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgc3dpdGNoICgkX2l0ZW0pIHsNCisgICAgICAgIGNhc2UgJ21haW5fbG9nbyc6DQorICAgICAgICAgIGlmIChpbl9hcnJheSgkX2RhdGFbJ21haW5fbG9nbyddWyd0eXBlJ10sIGFycmF5KCdpbWFnZS9naWYnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9wanBlZycsICdpbWFnZS94LXBuZycsICdpbWFnZS9wbmcnLCAnaW1hZ2Uvc3ZnK3htbCcpKSkgew0KKyAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJF9kYXRhWydtYWluX2xvZ28nXVsndG1wX25hbWUnXSkgIT09IHRydWUpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnaW1nX3RtcF9taXNzaW5nJw0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAkaW1hZ2UgPSBuZXcgSW1hZ2ljaygkX2RhdGFbJ21haW5fbG9nbyddWyd0bXBfbmFtZSddKTsNCisgICAgICAgICAgICAgIGlmICgkaW1hZ2UtPnZhbGlkKCkgIT09IHRydWUpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnaW1nX2ludmFsaWQnDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICRpbWFnZS0+ZGVzdHJveSgpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoSW1hZ2lja0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnaW1nX2ludmFsaWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdpbnZhbGlkX21pbWVfdHlwZScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICRyZWRpcy0+U2V0KCdNQUlOX0xPR08nLCAnZGF0YTonIC4gJF9kYXRhWydtYWluX2xvZ28nXVsndHlwZSddIC4gJztiYXNlNjQsJyAuIGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJF9kYXRhWydtYWluX2xvZ28nXVsndG1wX25hbWUnXSkpKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICd1cGxvYWRfc3VjY2VzcycNCisgICAgICAgICAgKTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBzd2l0Y2ggKCRfaXRlbSkgew0KKyAgICAgICAgY2FzZSAnYXBwX2xpbmtzJzoNCisgICAgICAgICAgJGFwcHMgPSAoYXJyYXkpJF9kYXRhWydhcHAnXTsNCisgICAgICAgICAgJGxpbmtzID0gKGFycmF5KSRfZGF0YVsnaHJlZiddOw0KKyAgICAgICAgICAkb3V0ID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKGNvdW50KCRhcHBzKSA9PSBjb3VudCgkbGlua3MpKSB7DQorICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGFwcHMpOyAkaSsrKSB7DQorICAgICAgICAgICAgICAkb3V0W10gPSBhcnJheSgkYXBwc1skaV0gPT4gJGxpbmtzWyRpXSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICAkcmVkaXMtPnNldCgnQVBQX0xJTktTJywganNvbl9lbmNvZGUoJG91dCkpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYXBwX2xpbmtzJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICd1aV90ZXh0cyc6DQorICAgICAgICAgICR0aXRsZV9uYW1lID0gJF9kYXRhWyd0aXRsZV9uYW1lJ107DQorICAgICAgICAgICRtYWluX25hbWUgPSAkX2RhdGFbJ21haW5fbmFtZSddOw0KKyAgICAgICAgICAkYXBwc19uYW1lID0gJF9kYXRhWydhcHBzX25hbWUnXTsNCisgICAgICAgICAgJGhlbHBfdGV4dCA9ICRfZGF0YVsnaGVscF90ZXh0J107DQorICAgICAgICAgICR1aV9mb290ZXIgPSAkX2RhdGFbJ3VpX2Zvb3RlciddOw0KKyAgICAgICAgICAkdWlfYW5ub3VuY2VtZW50X3RleHQgPSAkX2RhdGFbJ3VpX2Fubm91bmNlbWVudF90ZXh0J107DQorICAgICAgICAgICR1aV9hbm5vdW5jZW1lbnRfdHlwZSA9IChpbl9hcnJheSgkX2RhdGFbJ3VpX2Fubm91bmNlbWVudF90eXBlJ10sIGFycmF5KCdpbmZvJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJykpKSA/ICRfZGF0YVsndWlfYW5ub3VuY2VtZW50X3R5cGUnXSA6IGZhbHNlOw0KKyAgICAgICAgICAkdWlfYW5ub3VuY2VtZW50X2FjdGl2ZSA9ICghZW1wdHkoJF9kYXRhWyd1aV9hbm5vdW5jZW1lbnRfYWN0aXZlJ10pID8gMSA6IDApOw0KKyAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICRyZWRpcy0+c2V0KCdUSVRMRV9OQU1FJywgaHRtbHNwZWNpYWxjaGFycygkdGl0bGVfbmFtZSkpOw0KKyAgICAgICAgICAgICRyZWRpcy0+c2V0KCdNQUlOX05BTUUnLCBodG1sc3BlY2lhbGNoYXJzKCRtYWluX25hbWUpKTsNCisgICAgICAgICAgICAkcmVkaXMtPnNldCgnQVBQU19OQU1FJywgaHRtbHNwZWNpYWxjaGFycygkYXBwc19uYW1lKSk7DQorICAgICAgICAgICAgJHJlZGlzLT5zZXQoJ0hFTFBfVEVYVCcsICRoZWxwX3RleHQpOw0KKyAgICAgICAgICAgICRyZWRpcy0+c2V0KCdVSV9GT09URVInLCAkdWlfZm9vdGVyKTsNCisgICAgICAgICAgICAkcmVkaXMtPnNldCgnVUlfQU5OT1VOQ0VNRU5UX1RFWFQnLCAkdWlfYW5ub3VuY2VtZW50X3RleHQpOw0KKyAgICAgICAgICAgICRyZWRpcy0+c2V0KCdVSV9BTk5PVU5DRU1FTlRfVFlQRScsICR1aV9hbm5vdW5jZW1lbnRfdHlwZSk7DQorICAgICAgICAgICAgJHJlZGlzLT5zZXQoJ1VJX0FOTk9VTkNFTUVOVF9BQ1RJVkUnLCAkdWlfYW5ub3VuY2VtZW50X2FjdGl2ZSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2l0ZW0sICRfZGF0YSksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAndWlfdGV4dHMnDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBzd2l0Y2ggKCRfaXRlbSkgew0KKyAgICAgICAgY2FzZSAnbWFpbl9sb2dvJzoNCisgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICBpZiAoJHJlZGlzLT5kZWwoJ01BSU5fTE9HTycpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAncmVzZXRfbWFpbl9sb2dvJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfaXRlbSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgIHN3aXRjaCAoJF9pdGVtKSB7DQorICAgICAgICBjYXNlICdhcHBfbGlua3MnOg0KKyAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICRhcHBfbGlua3MgPSBqc29uX2RlY29kZSgkcmVkaXMtPmdldCgnQVBQX0xJTktTJyksIHRydWUpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICgkYXBwX2xpbmtzKSA/ICRhcHBfbGlua3MgOiBmYWxzZTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnbWFpbl9sb2dvJzoNCisgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICByZXR1cm4gJHJlZGlzLT5nZXQoJ01BSU5fTE9HTycpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAndWlfdGV4dHMnOg0KKyAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICRkYXRhWyd0aXRsZV9uYW1lJ10gPSAoJHRpdGxlX25hbWUgPSAkcmVkaXMtPmdldCgnVElUTEVfTkFNRScpKSA/ICR0aXRsZV9uYW1lIDogJ21haWxjb3cgVUknOw0KKyAgICAgICAgICAgICRkYXRhWydtYWluX25hbWUnXSA9ICgkbWFpbl9uYW1lID0gJHJlZGlzLT5nZXQoJ01BSU5fTkFNRScpKSA/ICRtYWluX25hbWUgOiAnbWFpbGNvdyBVSSc7DQorICAgICAgICAgICAgJGRhdGFbJ2FwcHNfbmFtZSddID0gKCRhcHBzX25hbWUgPSAkcmVkaXMtPmdldCgnQVBQU19OQU1FJykpID8gJGFwcHNfbmFtZSA6ICdtYWlsY293IEFwcHMnOw0KKyAgICAgICAgICAgICRkYXRhWydoZWxwX3RleHQnXSA9ICgkaGVscF90ZXh0ID0gJHJlZGlzLT5nZXQoJ0hFTFBfVEVYVCcpKSA/ICRoZWxwX3RleHQgOiBmYWxzZTsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRyZWRpcy0+Z2V0KCdVSV9JTVBSRVNTJykpKSB7DQorICAgICAgICAgICAgICAkcmVkaXMtPnNldCgnVUlfRk9PVEVSJywgJHJlZGlzLT5nZXQoJ1VJX0lNUFJFU1MnKSk7DQorICAgICAgICAgICAgICAkcmVkaXMtPmRlbCgnVUlfSU1QUkVTUycpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkZGF0YVsndWlfZm9vdGVyJ10gPSAoJHVpX2Zvb3RlciA9ICRyZWRpcy0+Z2V0KCdVSV9GT09URVInKSkgPyAkdWlfZm9vdGVyIDogZmFsc2U7DQorICAgICAgICAgICAgJGRhdGFbJ3VpX2Fubm91bmNlbWVudF90ZXh0J10gPSAoJHVpX2Fubm91bmNlbWVudF90ZXh0ID0gJHJlZGlzLT5nZXQoJ1VJX0FOTk9VTkNFTUVOVF9URVhUJykpID8gJHVpX2Fubm91bmNlbWVudF90ZXh0IDogZmFsc2U7DQorICAgICAgICAgICAgJGRhdGFbJ3VpX2Fubm91bmNlbWVudF90eXBlJ10gPSAoJHVpX2Fubm91bmNlbWVudF90eXBlID0gJHJlZGlzLT5nZXQoJ1VJX0FOTk9VTkNFTUVOVF9UWVBFJykpID8gJHVpX2Fubm91bmNlbWVudF90eXBlIDogZmFsc2U7DQorICAgICAgICAgICAgJGRhdGFbJ3VpX2Fubm91bmNlbWVudF9hY3RpdmUnXSA9ICgkcmVkaXMtPmdldCgnVUlfQU5OT1VOQ0VNRU5UX0FDVElWRScpID09IDEpID8gMSA6IDA7DQorICAgICAgICAgICAgcmV0dXJuICRkYXRhOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnbWFpbl9sb2dvX3NwZWNzJzoNCisgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAkaW1hZ2UgPSBuZXcgSW1hZ2ljaygpOw0KKyAgICAgICAgICAgICRpbWdfZGF0YSA9IGV4cGxvZGUoJ2Jhc2U2NCwnLCBjdXN0b21pemUoJ2dldCcsICdtYWluX2xvZ28nKSk7DQorICAgICAgICAgICAgaWYgKCRpbWdfZGF0YVsxXSkgew0KKyAgICAgICAgICAgICAgJGltYWdlLT5yZWFkSW1hZ2VCbG9iKGJhc2U2NF9kZWNvZGUoJGltZ19kYXRhWzFdKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIHJldHVybiAkaW1hZ2UtPmlkZW50aWZ5SW1hZ2UoKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjYXRjaCAoSW1hZ2lja0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9pdGVtLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2ltYWdpY2tfZXhjZXB0aW9uJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5ka2ltLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5ka2ltLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmExOWZmMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmRraW0uaW5jLnBocApAQCAtMCwwICsxLDMyNSBAQAorPD9waHANCisNCitmdW5jdGlvbiBka2ltKCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsLCAkcHJpdmtleSA9IGZhbHNlKSB7DQorCWdsb2JhbCAkcmVkaXM7DQorCWdsb2JhbCAkbGFuZzsNCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnYWRkJzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGtleV9sZW5ndGgJPSBpbnR2YWwoJF9kYXRhWydrZXlfc2l6ZSddKTsNCisgICAgICAkZGtpbV9zZWxlY3RvciA9IChpc3NldCgkX2RhdGFbJ2RraW1fc2VsZWN0b3InXSkpID8gJF9kYXRhWydka2ltX3NlbGVjdG9yJ10gOiAnZGtpbSc7DQorICAgICAgJGRvbWFpbnMgPSBhcnJheV9tYXAoJ3RyaW0nLCBwcmVnX3NwbGl0KCAiLyggfCx8O3xcbikvIiwgJF9kYXRhWydkb21haW5zJ10pKTsNCisgICAgICAkZG9tYWlucyA9IGFycmF5X2ZpbHRlcigkZG9tYWlucyk7DQorICAgICAgZm9yZWFjaCAoJGRvbWFpbnMgYXMgJGRvbWFpbikgew0KKyAgICAgICAgaWYgKCFpc192YWxpZF9kb21haW5fbmFtZSgkZG9tYWluKSB8fCAhaXNfbnVtZXJpYygka2V5X2xlbmd0aCkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdka2ltX2RvbWFpbl9vcl9zZWxfaW52YWxpZCcsICRkb21haW4pDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCRyZWRpcy0+aEdldCgnREtJTV9QVUJfS0VZUycsICRkb21haW4pKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZGtpbV9kb21haW5fb3Jfc2VsX2ludmFsaWQnLCAkZG9tYWluKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmICghY3R5cGVfYWxudW0oc3RyX3JlcGxhY2UoWyctJywgJ18nXSwgJycsICRka2ltX3NlbGVjdG9yKSkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdka2ltX2RvbWFpbl9vcl9zZWxfaW52YWxpZCcsICRkb21haW4pDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJGNvbmZpZyA9IGFycmF5KA0KKyAgICAgICAgICAiZGlnZXN0X2FsZyIgPT4gInNoYTI1NiIsDQorICAgICAgICAgICJwcml2YXRlX2tleV9iaXRzIiA9PiAka2V5X2xlbmd0aCwNCisgICAgICAgICAgInByaXZhdGVfa2V5X3R5cGUiID0+IE9QRU5TU0xfS0VZVFlQRV9SU0EsDQorICAgICAgICApOw0KKyAgICAgICAgaWYgKCRrZXlwYWlyX3Jlc3NvdXJjZSA9IG9wZW5zc2xfcGtleV9uZXcoJGNvbmZpZykpIHsNCisgICAgICAgICAgJGtleV9kZXRhaWxzID0gb3BlbnNzbF9wa2V5X2dldF9kZXRhaWxzKCRrZXlwYWlyX3Jlc3NvdXJjZSk7DQorICAgICAgICAgICRwdWJLZXkgPSBpbXBsb2RlKGFycmF5X3NsaWNlKA0KKyAgICAgICAgICAgIGFycmF5X2ZpbHRlcigNCisgICAgICAgICAgICAgIGV4cGxvZGUoUEhQX0VPTCwgJGtleV9kZXRhaWxzWydrZXknXSkNCisgICAgICAgICAgICApLCAxLCAtMSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgLy8gU2F2ZSBwdWJsaWMga2V5IGFuZCBzZWxlY3RvciB0byByZWRpcw0KKyAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICRyZWRpcy0+aFNldCgnREtJTV9QVUJfS0VZUycsICRkb21haW4sICRwdWJLZXkpOw0KKyAgICAgICAgICAgICRyZWRpcy0+aFNldCgnREtJTV9TRUxFQ1RPUlMnLCAkZG9tYWluLCAkZGtpbV9zZWxlY3Rvcik7DQorICAgICAgICAgIH0NCisgICAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgLy8gRXhwb3J0IHByaXZhdGUga2V5IGFuZCBzYXZlIHByaXZhdGUga2V5IHRvIHJlZGlzDQorICAgICAgICAgIG9wZW5zc2xfcGtleV9leHBvcnQoJGtleXBhaXJfcmVzc291cmNlLCAkcHJpdktleSk7DQorICAgICAgICAgIGlmIChpc3NldCgkcHJpdktleSkgJiYgIWVtcHR5KCRwcml2S2V5KSkgew0KKyAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0RLSU1fUFJJVl9LRVlTJywgJGRraW1fc2VsZWN0b3IgLiAnLicgLiAkZG9tYWluLCB0cmltKCRwcml2S2V5KSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdka2ltX2FkZGVkJywgJGRvbWFpbikNCisgICAgICAgICAgKTsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RraW1fZG9tYWluX29yX3NlbF9pbnZhbGlkJywgJGRvbWFpbikNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZHVwbGljYXRlJzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkZnJvbV9kb21haW4gPSAkX2RhdGFbJ2Zyb21fZG9tYWluJ107DQorICAgICAgJGZyb21fZG9tYWluX2RraW0gPSBka2ltKCdkZXRhaWxzJywgJGZyb21fZG9tYWluLCB0cnVlKTsNCisgICAgICBpZiAoZW1wdHkoJGZyb21fZG9tYWluX2RraW0pKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RraW1fZG9tYWluX29yX3NlbF9pbnZhbGlkJywgJGZyb21fZG9tYWluKQ0KKyAgICAgICAgKTsNCisgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgIH0NCisgICAgICAkdG9fZG9tYWlucyA9IChhcnJheSkkX2RhdGFbJ3RvX2RvbWFpbiddOw0KKyAgICAgICR0b19kb21haW5zID0gYXJyYXlfZmlsdGVyKCR0b19kb21haW5zKTsNCisgICAgICBmb3JlYWNoICgkdG9fZG9tYWlucyBhcyAkdG9fZG9tYWluKSB7DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0RLSU1fUFVCX0tFWVMnLCAkdG9fZG9tYWluLCAkZnJvbV9kb21haW5fZGtpbVsncHVia2V5J10pOw0KKyAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0RLSU1fU0VMRUNUT1JTJywgJHRvX2RvbWFpbiwgJGZyb21fZG9tYWluX2RraW1bJ2RraW1fc2VsZWN0b3InXSk7DQorICAgICAgICAgICRyZWRpcy0+aFNldCgnREtJTV9QUklWX0tFWVMnLCAkZnJvbV9kb21haW5fZGtpbVsnZGtpbV9zZWxlY3RvciddIC4gJy4nIC4gJHRvX2RvbWFpbiwgYmFzZTY0X2RlY29kZSh0cmltKCRmcm9tX2RvbWFpbl9ka2ltWydwcml2a2V5J10pKSk7DQorICAgICAgICB9DQorICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RraW1fZHVwbGljYXRlZCcsICRmcm9tX2RvbWFpbiwgJHRvX2RvbWFpbikNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnaW1wb3J0JzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkcHJpdmF0ZV9rZXlfaW5wdXQgPSB0cmltKCRfZGF0YVsncHJpdmF0ZV9rZXlfZmlsZSddKTsNCisgICAgICAkb3ZlcndyaXRlX2V4aXN0aW5nID0gaW50dmFsKCRfZGF0YVsnb3ZlcndyaXRlX2V4aXN0aW5nJ10pOw0KKyAgICAgICRwcml2YXRlX2tleV9ub3JtYWxpemVkID0gcHJlZ19yZXBsYWNlKCd+XHJcbj9+JywgIlxuIiwgJHByaXZhdGVfa2V5X2lucHV0KTsNCisgICAgICAkcHJpdmF0ZV9rZXkgPSBvcGVuc3NsX3BrZXlfZ2V0X3ByaXZhdGUoJHByaXZhdGVfa2V5X25vcm1hbGl6ZWQpOw0KKyAgICAgIGlmICgkc3NsX2Vycm9yID0gb3BlbnNzbF9lcnJvcl9zdHJpbmcoKSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdwcml2YXRlX2tleV9lcnJvcicsICRzc2xfZXJyb3IpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAvLyBFeHBsb2RlIGJ5IG5sDQorICAgICAgJHBlbV9wdWJsaWNfa2V5X2FycmF5ID0gZXhwbG9kZShQSFBfRU9MLCB0cmltKG9wZW5zc2xfcGtleV9nZXRfZGV0YWlscygkcHJpdmF0ZV9rZXkpWydrZXknXSkpOw0KKyAgICAgIC8vIFJlbW92ZSBmaXJzdCBhbmQgbGFzdCBsaW5lL2l0ZW0NCisgICAgICBhcnJheV9zaGlmdCgkcGVtX3B1YmxpY19rZXlfYXJyYXkpOw0KKyAgICAgIGFycmF5X3BvcCgkcGVtX3B1YmxpY19rZXlfYXJyYXkpOw0KKyAgICAgIC8vIEltcGxvZGUgYXMgc2luZ2xlIHN0cmluZw0KKyAgICAgICRwZW1fcHVibGljX2tleSA9IGltcGxvZGUoJycsICRwZW1fcHVibGljX2tleV9hcnJheSk7DQorICAgICAgJGRraW1fc2VsZWN0b3IgPSAoaXNzZXQoJF9kYXRhWydka2ltX3NlbGVjdG9yJ10pKSA/ICRfZGF0YVsnZGtpbV9zZWxlY3RvciddIDogJ2RraW0nOw0KKyAgICAgICRkb21haW4JPSAkX2RhdGFbJ2RvbWFpbiddOw0KKyAgICAgIGlmICghaXNfdmFsaWRfZG9tYWluX25hbWUoJGRvbWFpbikpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZGtpbV9kb21haW5fb3Jfc2VsX2ludmFsaWQnLCAkZG9tYWluKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgaWYgKCRyZWRpcy0+aEdldCgnREtJTV9QVUJfS0VZUycsICRkb21haW4pKSB7DQorICAgICAgICBpZiAoJG92ZXJ3cml0ZV9leGlzdGluZyA9PSAwKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZGtpbV9kb21haW5fb3Jfc2VsX2V4aXN0cycsICRkb21haW4pDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgaWYgKCFjdHlwZV9hbG51bSgkZGtpbV9zZWxlY3RvcikpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZGtpbV9kb21haW5fb3Jfc2VsX2ludmFsaWQnLCAkZG9tYWluKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgdHJ5IHsNCisgICAgICAgIGRraW0oJ2RlbGV0ZScsICRkb21haW4pOw0KKyAgICAgICAgJHJlZGlzLT5oU2V0KCdES0lNX1BVQl9LRVlTJywgJGRvbWFpbiwgJHBlbV9wdWJsaWNfa2V5KTsNCisgICAgICAgICRyZWRpcy0+aFNldCgnREtJTV9TRUxFQ1RPUlMnLCAkZG9tYWluLCAkZGtpbV9zZWxlY3Rvcik7DQorICAgICAgICAkcmVkaXMtPmhTZXQoJ0RLSU1fUFJJVl9LRVlTJywgJGRraW1fc2VsZWN0b3IgLiAnLicgLiAkZG9tYWluLCAkcHJpdmF0ZV9rZXlfbm9ybWFsaXplZCk7DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgdW5zZXQoJHByaXZhdGVfa2V5X25vcm1hbGl6ZWQpOw0KKyAgICAgIHVuc2V0KCRwcml2YXRlX2tleSk7DQorICAgICAgdW5zZXQoJHByaXZhdGVfa2V5X2lucHV0KTsNCisgICAgICB0cnkgew0KKyAgICAgIH0NCisgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RraW1fYWRkZWQnLCAkZG9tYWluKQ0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZXRhaWxzJzoNCisgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSAmJiAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGRraW1kYXRhID0gYXJyYXkoKTsNCisgICAgICBpZiAoJHJlZGlzX2RraW1fa2V5X2RhdGEgPSAkcmVkaXMtPmhHZXQoJ0RLSU1fUFVCX0tFWVMnLCAkX2RhdGEpKSB7DQorICAgICAgICAkZGtpbWRhdGFbJ3B1YmtleSddID0gJHJlZGlzX2RraW1fa2V5X2RhdGE7DQorICAgICAgICBpZiAoc3RybGVuKCRka2ltZGF0YVsncHVia2V5J10pIDwgMzkxKSB7DQorICAgICAgICAgICRka2ltZGF0YVsnbGVuZ3RoJ10gPSAiMTAyNCI7DQorICAgICAgICB9DQorICAgICAgICBlbHNlaWYgKHN0cmxlbigkZGtpbWRhdGFbJ3B1YmtleSddKSA8IDczNikgew0KKyAgICAgICAgICAkZGtpbWRhdGFbJ2xlbmd0aCddID0gIjIwNDgiOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZWlmIChzdHJsZW4oJGRraW1kYXRhWydwdWJrZXknXSkgPCAxNDE2KSB7DQorICAgICAgICAgICRka2ltZGF0YVsnbGVuZ3RoJ10gPSAiNDA5NiI7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJGRraW1kYXRhWydsZW5ndGgnXSA9ICI+PSA4MTkyIjsNCisgICAgICAgIH0NCisgICAgICAgIGlmICgkR0xPQkFMU1snU1BMSVRfREtJTV8yNTUnXSA9PT0gdHJ1ZSkgew0KKyAgICAgICAgICAkZGtpbV90eHRfdG1wID0gc3RyX3NwbGl0KCd2PURLSU0xO2s9cnNhO3Q9cztzPWVtYWlsO3A9JyAuICRyZWRpc19ka2ltX2tleV9kYXRhLCAyNTUpOw0KKyAgICAgICAgICAkZGtpbWRhdGFbJ2RraW1fdHh0J10gPSBzcHJpbnRmKCciJXMiJywgaW1wbG9kZSgnIiAiJywgJGRraW1fdHh0X3RtcCApICk7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJGRraW1kYXRhWydka2ltX3R4dCddID0gJ3Y9REtJTTE7az1yc2E7dD1zO3M9ZW1haWw7cD0nIC4gJHJlZGlzX2RraW1fa2V5X2RhdGE7DQorICAgICAgICB9DQorICAgICAgICAkZGtpbWRhdGFbJ2RraW1fc2VsZWN0b3InXSA9ICRyZWRpcy0+aEdldCgnREtJTV9TRUxFQ1RPUlMnLCAkX2RhdGEpOw0KKyAgICAgICAgaWYgKCRHTE9CQUxTWydTSE9XX0RLSU1fUFJJVl9LRVlTJ10gfHwgJHByaXZrZXkgPT0gdHJ1ZSkgew0KKyAgICAgICAgICAkZGtpbWRhdGFbJ3ByaXZrZXknXSA9IGJhc2U2NF9lbmNvZGUoJHJlZGlzLT5oR2V0KCdES0lNX1BSSVZfS0VZUycsICRka2ltZGF0YVsnZGtpbV9zZWxlY3RvciddIC4gJy4nIC4gJF9kYXRhKSk7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJGRraW1kYXRhWydwcml2a2V5J10gPSAnJzsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgcmV0dXJuICRka2ltZGF0YTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2JsaW5kJzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRwcml2a2V5KSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkYmxpbmRka2ltID0gYXJyYXkoKTsNCisgICAgICBmb3JlYWNoICgkcmVkaXMtPmhLZXlzKCdES0lNX1BVQl9LRVlTJykgYXMgJHJlZGlzX2RraW1fZG9tYWluKSB7DQorICAgICAgICAkYmxpbmRka2ltW10gPSAkcmVkaXNfZGtpbV9kb21haW47DQorICAgICAgfQ0KKyAgICAgIHJldHVybiBhcnJheV9kaWZmKCRibGluZGRraW0sIGFycmF5X21lcmdlKG1haWxib3goJ2dldCcsICdkb21haW5zJyksIG1haWxib3goJ2dldCcsICdhbGlhc19kb21haW5zJykpKTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RlbGV0ZSc6DQorICAgICAgJGRvbWFpbnMgPSAoYXJyYXkpJF9kYXRhWydkb21haW5zJ107DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgZm9yZWFjaCAoJGRvbWFpbnMgYXMgJGRvbWFpbikgew0KKyAgICAgICAgaWYgKCFpc192YWxpZF9kb21haW5fbmFtZSgkZG9tYWluKSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RraW1fZG9tYWluX29yX3NlbF9pbnZhbGlkJywgJGRvbWFpbikNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAkc2VsZWN0b3IgPSAkcmVkaXMtPmhHZXQoJ0RLSU1fU0VMRUNUT1JTJywgJGRvbWFpbik7DQorICAgICAgICAgICRyZWRpcy0+aERlbCgnREtJTV9QVUJfS0VZUycsICRkb21haW4pOw0KKyAgICAgICAgICAkcmVkaXMtPmhEZWwoJ0RLSU1fUFJJVl9LRVlTJywgJHNlbGVjdG9yIC4gJy4nIC4gJGRvbWFpbik7DQorICAgICAgICAgICRyZWRpcy0+aERlbCgnREtJTV9TRUxFQ1RPUlMnLCAkZG9tYWluKTsNCisgICAgICAgIH0NCisgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkcHJpdmtleSksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJHByaXZrZXkpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZGtpbV9yZW1vdmVkJywgaHRtbHNwZWNpYWxjaGFycygkZG9tYWluKSkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuZG9ja2VyLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5kb2NrZXIuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDdmNWUyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuZG9ja2VyLmluYy5waHAKQEAgLTAsMCArMSwxNTAgQEAKKzw/cGhwDQorZnVuY3Rpb24gZG9ja2VyKCRhY3Rpb24sICRzZXJ2aWNlX25hbWUgPSBudWxsLCAkYXR0cjEgPSBudWxsLCAkYXR0cjIgPSBudWxsLCAkZXh0cmFfaGVhZGVycyA9IG51bGwpIHsNCisgIGdsb2JhbCAkRE9DS0VSX1RJTUVPVVQ7DQorICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KKyAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUixhcnJheSgnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyApKTsNCisgIC8vIFdlIGFyZSB1c2luZyBvdXIgbWFpbCBjZXJ0aWZpY2F0ZXMgZm9yIGRvY2tlcmFwaSwgdGhlIG5hbWVzIHdpbGwgbm90IG1hdGNoLCB0aGUgY2VydHMgYXJlIHRydXN0ZWQgYW55d2F5DQorICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgMCk7DQorICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQorICBzd2l0Y2goJGFjdGlvbikgew0KKyAgICBjYXNlICdnZXRfaWQnOg0KKyAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwgJ2h0dHBzOi8vZG9ja2VyYXBpOjQ0My9jb250YWluZXJzL2pzb24nKTsNCisgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVCwgMCk7DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVElNRU9VVCwgJERPQ0tFUl9USU1FT1VUKTsNCisgICAgICAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KKyAgICAgIGlmICgkcmVzcG9uc2UgPT09IGZhbHNlKSB7DQorICAgICAgICAkZXJyID0gY3VybF9lcnJvcigkY3VybCk7DQorICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgIHJldHVybiAkZXJyOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgJGNvbnRhaW5lcnMgPSBqc29uX2RlY29kZSgkcmVzcG9uc2UsIHRydWUpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkY29udGFpbmVycykpIHsNCisgICAgICAgICAgZm9yZWFjaCAoJGNvbnRhaW5lcnMgYXMgJGNvbnRhaW5lcikgew0KKyAgICAgICAgICAgIGlmIChpc3NldCgkY29udGFpbmVyWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5zZXJ2aWNlJ10pDQorICAgICAgICAgICAgICAmJiAkY29udGFpbmVyWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5zZXJ2aWNlJ10gPT0gJHNlcnZpY2VfbmFtZQ0KKyAgICAgICAgICAgICAgJiYgc3RydG9sb3dlcigkY29udGFpbmVyWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5wcm9qZWN0J10pID09IHN0cnRvbG93ZXIoZ2V0ZW52KCdDT01QT1NFX1BST0pFQ1RfTkFNRScpKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIHRyaW0oJGNvbnRhaW5lclsnSWQnXSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgY2FzZSAnY29udGFpbmVycyc6DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9kb2NrZXJhcGk6NDQzL2NvbnRhaW5lcnMvanNvbicpOw0KKyAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NULCAwKTsNCisgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9USU1FT1VULCAkRE9DS0VSX1RJTUVPVVQpOw0KKyAgICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7DQorICAgICAgaWYgKCRyZXNwb25zZSA9PT0gZmFsc2UpIHsNCisgICAgICAgICRlcnIgPSBjdXJsX2Vycm9yKCRjdXJsKTsNCisgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgcmV0dXJuICRlcnI7DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAkY29udGFpbmVycyA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSwgdHJ1ZSk7DQorICAgICAgICBpZiAoIWVtcHR5KCRjb250YWluZXJzKSkgew0KKyAgICAgICAgICBmb3JlYWNoICgkY29udGFpbmVycyBhcyAkY29udGFpbmVyKSB7DQorICAgICAgICAgICAgaWYgKHN0cnRvbG93ZXIoJGNvbnRhaW5lclsnQ29uZmlnJ11bJ0xhYmVscyddWydjb20uZG9ja2VyLmNvbXBvc2UucHJvamVjdCddKSA9PSBzdHJ0b2xvd2VyKGdldGVudignQ09NUE9TRV9QUk9KRUNUX05BTUUnKSkpIHsNCisgICAgICAgICAgICAgICRvdXRbJGNvbnRhaW5lclsnQ29uZmlnJ11bJ0xhYmVscyddWydjb20uZG9ja2VyLmNvbXBvc2Uuc2VydmljZSddXVsnU3RhdGUnXSA9ICRjb250YWluZXJbJ1N0YXRlJ107DQorICAgICAgICAgICAgICAkb3V0WyRjb250YWluZXJbJ0NvbmZpZyddWydMYWJlbHMnXVsnY29tLmRvY2tlci5jb21wb3NlLnNlcnZpY2UnXV1bJ0NvbmZpZyddID0gJGNvbnRhaW5lclsnQ29uZmlnJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICByZXR1cm4gKCFlbXB0eSgkb3V0KSkgPyAkb3V0IDogZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2luZm8nOg0KKyAgICAgIGlmIChlbXB0eSgkc2VydmljZV9uYW1lKSkgew0KKyAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9kb2NrZXJhcGk6NDQzL2NvbnRhaW5lcnMvanNvbicpOw0KKyAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KKyAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVCwgMCk7DQorICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9USU1FT1VULCAkRE9DS0VSX1RJTUVPVVQpOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICRjb250YWluZXJfaWQgPSBkb2NrZXIoJ2dldF9pZCcsICRzZXJ2aWNlX25hbWUpOw0KKyAgICAgICAgaWYgKGN0eXBlX3hkaWdpdCgkY29udGFpbmVyX2lkKSkgew0KKyAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VUkwsICdodHRwczovL2RvY2tlcmFwaTo0NDMvY29udGFpbmVycy8nIC4gJGNvbnRhaW5lcl9pZCAuICcvanNvbicpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KKyAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIDApOw0KKyAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1RJTUVPVVQsICRET0NLRVJfVElNRU9VVCk7DQorICAgICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgICBpZiAoJHJlc3BvbnNlID09PSBmYWxzZSkgew0KKyAgICAgICAgJGVyciA9IGN1cmxfZXJyb3IoJGN1cmwpOw0KKyAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICByZXR1cm4gJGVycjsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgICRkZWNvZGVkX3Jlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlLCB0cnVlKTsNCisgICAgICAgIGlmICghZW1wdHkoJGRlY29kZWRfcmVzcG9uc2UpKSB7DQorICAgICAgICAgIGlmIChlbXB0eSgkc2VydmljZV9uYW1lKSkgew0KKyAgICAgICAgICAgIGZvcmVhY2ggKCRkZWNvZGVkX3Jlc3BvbnNlIGFzICRjb250YWluZXIpIHsNCisgICAgICAgICAgICAgIGlmIChpc3NldCgkY29udGFpbmVyWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5wcm9qZWN0J10pDQorICAgICAgICAgICAgICAgICYmIHN0cnRvbG93ZXIoJGNvbnRhaW5lclsnQ29uZmlnJ11bJ0xhYmVscyddWydjb20uZG9ja2VyLmNvbXBvc2UucHJvamVjdCddKSA9PSBzdHJ0b2xvd2VyKGdldGVudignQ09NUE9TRV9QUk9KRUNUX05BTUUnKSkpIHsNCisgICAgICAgICAgICAgICAgdW5zZXQoJGNvbnRhaW5lclsnQ29uZmlnJ11bJ0VudiddKTsNCisgICAgICAgICAgICAgICAgJG91dFskY29udGFpbmVyWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5zZXJ2aWNlJ11dWydTdGF0ZSddID0gJGNvbnRhaW5lclsnU3RhdGUnXTsNCisgICAgICAgICAgICAgICAgJG91dFskY29udGFpbmVyWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5zZXJ2aWNlJ11dWydDb25maWcnXSA9ICRjb250YWluZXJbJ0NvbmZpZyddOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICBpZiAoaXNzZXQoJGRlY29kZWRfcmVzcG9uc2VbJ0NvbmZpZyddWydMYWJlbHMnXVsnY29tLmRvY2tlci5jb21wb3NlLnByb2plY3QnXSkgDQorICAgICAgICAgICAgICAmJiBzdHJ0b2xvd2VyKCRkZWNvZGVkX3Jlc3BvbnNlWydDb25maWcnXVsnTGFiZWxzJ11bJ2NvbS5kb2NrZXIuY29tcG9zZS5wcm9qZWN0J10pID09IHN0cnRvbG93ZXIoZ2V0ZW52KCdDT01QT1NFX1BST0pFQ1RfTkFNRScpKSkgew0KKyAgICAgICAgICAgICAgdW5zZXQoJGNvbnRhaW5lclsnQ29uZmlnJ11bJ0VudiddKTsNCisgICAgICAgICAgICAgICRvdXRbJGRlY29kZWRfcmVzcG9uc2VbJ0NvbmZpZyddWydMYWJlbHMnXVsnY29tLmRvY2tlci5jb21wb3NlLnNlcnZpY2UnXV1bJ1N0YXRlJ10gPSAkZGVjb2RlZF9yZXNwb25zZVsnU3RhdGUnXTsNCisgICAgICAgICAgICAgICRvdXRbJGRlY29kZWRfcmVzcG9uc2VbJ0NvbmZpZyddWydMYWJlbHMnXVsnY29tLmRvY2tlci5jb21wb3NlLnNlcnZpY2UnXV1bJ0NvbmZpZyddID0gJGRlY29kZWRfcmVzcG9uc2VbJ0NvbmZpZyddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKGVtcHR5KCRyZXNwb25zZSkpIHsNCisgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgcmV0dXJuICghZW1wdHkoJG91dCkpID8gJG91dCA6IGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ3Bvc3QnOg0KKyAgICAgIGlmICghZW1wdHkoJGF0dHIxKSkgew0KKyAgICAgICAgJGNvbnRhaW5lcl9pZCA9IGRvY2tlcignZ2V0X2lkJywgJHNlcnZpY2VfbmFtZSk7DQorICAgICAgICBpZiAoY3R5cGVfeGRpZ2l0KCRjb250YWluZXJfaWQpICYmIGN0eXBlX2FsbnVtKCRhdHRyMSkpIHsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAnaHR0cHM6Ly9kb2NrZXJhcGk6NDQzL2NvbnRhaW5lcnMvJyAuICRjb250YWluZXJfaWQgLiAnLycgLiAkYXR0cjEpOw0KKyAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NULCAxKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVElNRU9VVCwgJERPQ0tFUl9USU1FT1VUKTsNCisgICAgICAgICAgaWYgKCFlbXB0eSgkYXR0cjIpKSB7DQorICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVEZJRUxEUywganNvbl9lbmNvZGUoJGF0dHIyKSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFlbXB0eSgkZXh0cmFfaGVhZGVycykgJiYgaXNfYXJyYXkoJGV4dHJhX2hlYWRlcnMpKSB7DQorICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgJGV4dHJhX2hlYWRlcnMpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICAgICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgICAgICAgaWYgKCRyZXNwb25zZSA9PT0gZmFsc2UpIHsNCisgICAgICAgICAgICAkZXJyID0gY3VybF9lcnJvcigkY3VybCk7DQorICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgcmV0dXJuICRlcnI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRyZXNwb25zZSkpIHsNCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgIHJldHVybiAkcmVzcG9uc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuZG9tYWluX2FkbWluLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5kb21haW5fYWRtaW4uaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDZiMzcxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMuZG9tYWluX2FkbWluLmluYy5waHAKQEAgLTAsMCArMSw0NTggQEAKKzw/cGhwDQorZnVuY3Rpb24gZG9tYWluX2FkbWluKCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsKSB7DQorICBnbG9iYWwgJHBkbzsNCisgIGdsb2JhbCAkbGFuZzsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1sncGFzc3dvcmQnXSkgPzogJF9kYXRhX2xvZ1sncGFzc3dvcmQnXSA9ICcqJzsNCisgICFpc3NldCgkX2RhdGFfbG9nWydwYXNzd29yZDInXSkgPzogJF9kYXRhX2xvZ1sncGFzc3dvcmQyJ10gPSAnKic7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1sndXNlcl9vbGRfcGFzcyddKSA/OiAkX2RhdGFfbG9nWyd1c2VyX29sZF9wYXNzJ10gPSAnKic7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1sndXNlcl9uZXdfcGFzcyddKSA/OiAkX2RhdGFfbG9nWyd1c2VyX25ld19wYXNzJ10gPSAnKic7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1sndXNlcl9uZXdfcGFzczInXSkgPzogJF9kYXRhX2xvZ1sndXNlcl9uZXdfcGFzczInXSA9ICcqJzsNCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnYWRkJzoNCisgICAgICAkdXNlcm5hbWUJCT0gc3RydG9sb3dlcih0cmltKCRfZGF0YVsndXNlcm5hbWUnXSkpOw0KKyAgICAgICRwYXNzd29yZAkJPSAkX2RhdGFbJ3Bhc3N3b3JkJ107DQorICAgICAgJHBhc3N3b3JkMiAgPSAkX2RhdGFbJ3Bhc3N3b3JkMiddOw0KKyAgICAgICRkb21haW5zICAgID0gKGFycmF5KSRfZGF0YVsnZG9tYWlucyddOw0KKyAgICAgICRhY3RpdmUgICAgID0gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pOw0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIGlmIChlbXB0eSgkZG9tYWlucykpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnZG9tYWluX2ludmFsaWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBpZiAoIWN0eXBlX2FsbnVtKHN0cl9yZXBsYWNlKGFycmF5KCdfJywgJy4nLCAnLScpLCAnJywgJHVzZXJuYW1lKSkgfHwgZW1wdHkgKCR1c2VybmFtZSkgfHwgJHVzZXJuYW1lID09ICdBUEknKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3VzZXJuYW1lX2ludmFsaWQnLCAkdXNlcm5hbWUpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdXNlcm5hbWVgIEZST00gYG1haWxib3hgDQorICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgJG51bV9yZXN1bHRzW10gPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgYWRtaW5gDQorICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgJG51bV9yZXN1bHRzW10gPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgZG9tYWluX2FkbWluc2ANCisgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAkbnVtX3Jlc3VsdHNbXSA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorDQorICAgICAgZm9yZWFjaCAoJG51bV9yZXN1bHRzIGFzICRudW1fcmVzdWx0c19lYWNoKSB7DQorICAgICAgICBpZiAoJG51bV9yZXN1bHRzX2VhY2ggIT0gMCkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ29iamVjdF9leGlzdHMnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgaWYgKCFlbXB0eSgkcGFzc3dvcmQpICYmICFlbXB0eSgkcGFzc3dvcmQyKSkgew0KKyAgICAgICAgaWYgKCFwcmVnX21hdGNoKCcvJyAuICRHTE9CQUxTWydQQVNTV0RfUkVHRVAnXSAuICcvJywgJHBhc3N3b3JkKSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX2NvbXBsZXhpdHknDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmICgkcGFzc3dvcmQgIT0gJHBhc3N3b3JkMikgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX21pc21hdGNoJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgICAkcGFzc3dvcmRfaGFzaGVkID0gaGFzaF9wYXNzd29yZCgkcGFzc3dvcmQpOw0KKyAgICAgICAgJHZhbGlkX2RvbWFpbnMgPSAwOw0KKyAgICAgICAgZm9yZWFjaCAoJGRvbWFpbnMgYXMgJGRvbWFpbikgew0KKyAgICAgICAgICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pIHx8IG1haWxib3goJ2dldCcsICdkb21haW5fZGV0YWlscycsICRkb21haW4pID09PSBmYWxzZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZG9tYWluX2ludmFsaWQnLCBodG1sc3BlY2lhbGNoYXJzKCRkb21haW4pKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHZhbGlkX2RvbWFpbnMrKzsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgZG9tYWluX2FkbWluc2AgKGB1c2VybmFtZWAsIGBkb21haW5gLCBgY3JlYXRlZGAsIGBhY3RpdmVgKQ0KKyAgICAgICAgICAgICAgVkFMVUVTICg6dXNlcm5hbWUsIDpkb21haW4sIDpjcmVhdGVkLCA6YWN0aXZlKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgJzpkb21haW4nID0+ICRkb21haW4sDQorICAgICAgICAgICAgJzpjcmVhdGVkJyA9PiBkYXRlKCdZLW0tZCBIOmk6cycpLA0KKyAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgICAgICkpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCR2YWxpZF9kb21haW5zICE9IDApIHsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgYWRtaW5gIChgdXNlcm5hbWVgLCBgcGFzc3dvcmRgLCBgc3VwZXJhZG1pbmAsIGBhY3RpdmVgKQ0KKyAgICAgICAgICAgIFZBTFVFUyAoOnVzZXJuYW1lLCA6cGFzc3dvcmRfaGFzaGVkLCAnMCcsIDphY3RpdmUpIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAnOnBhc3N3b3JkX2hhc2hlZCcgPT4gJHBhc3N3b3JkX2hhc2hlZCwNCisgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgICApKTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX2VtcHR5Jw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgZGFfYWNsYCAoYHVzZXJuYW1lYCkgVkFMVUVTICg6dXNlcm5hbWUpIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICApKTsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+IGFycmF5KCdkb21haW5fYWRtaW5fYWRkZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgKTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiZG9tYWluYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAvLyBBZG1pbmlzdHJhdG9yDQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gImFkbWluIikgew0KKyAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAgICR1c2VybmFtZXMgPSBhcnJheSgpOw0KKyAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgIH0NCisgICAgICAgIGZvcmVhY2ggKCR1c2VybmFtZXMgYXMgJHVzZXJuYW1lKSB7DQorICAgICAgICAgICRpc19ub3cgPSBkb21haW5fYWRtaW4oJ2RldGFpbHMnLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgICAkZG9tYWlucyA9IChpc3NldCgkX2RhdGFbJ2RvbWFpbnMnXSkpID8gKGFycmF5KSRfZGF0YVsnZG9tYWlucyddIDogbnVsbDsNCisgICAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAgICRhY3RpdmUgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICAgICAgJGRvbWFpbnMgPSAoIWVtcHR5KCRkb21haW5zKSkgPyAkZG9tYWlucyA6ICRpc19ub3dbJ3NlbGVjdGVkX2RvbWFpbnMnXTsNCisgICAgICAgICAgICAkdXNlcm5hbWVfbmV3ID0gKCFlbXB0eSgkX2RhdGFbJ3VzZXJuYW1lX25ldyddKSkgPyAkX2RhdGFbJ3VzZXJuYW1lX25ldyddIDogJGlzX25vd1sndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkcGFzc3dvcmQgICAgID0gJF9kYXRhWydwYXNzd29yZCddOw0KKyAgICAgICAgICAkcGFzc3dvcmQyICAgID0gJF9kYXRhWydwYXNzd29yZDInXTsNCisgICAgICAgICAgaWYgKCFlbXB0eSgkZG9tYWlucykpIHsNCisgICAgICAgICAgICBmb3JlYWNoICgkZG9tYWlucyBhcyAkZG9tYWluKSB7DQorICAgICAgICAgICAgICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pIHx8IG1haWxib3goJ2dldCcsICdkb21haW5fZGV0YWlscycsICRkb21haW4pID09PSBmYWxzZSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9pbnZhbGlkJywgaHRtbHNwZWNpYWxjaGFycygkZG9tYWluKSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWUgMjsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFjdHlwZV9hbG51bShzdHJfcmVwbGFjZShhcnJheSgnXycsICcuJywgJy0nKSwgJycsICR1c2VybmFtZV9uZXcpKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndXNlcm5hbWVfaW52YWxpZCcsICR1c2VybmFtZV9uZXcpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJHVzZXJuYW1lX25ldyAhPSAkdXNlcm5hbWUpIHsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KGRvbWFpbl9hZG1pbignZGV0YWlscycsICR1c2VybmFtZV9uZXcpWyd1c2VybmFtZSddKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCd1c2VybmFtZV9pbnZhbGlkJywgJHVzZXJuYW1lX25ldykNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgZG9tYWluX2FkbWluc2AgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgZGFfYWNsYCBTRVQgYHVzZXJuYW1lYCA9IDp1c2VybmFtZV9uZXcgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOnVzZXJuYW1lX25ldycgPT4gJHVzZXJuYW1lX25ldywNCisgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgKSk7DQorICAgICAgICAgIGlmICghZW1wdHkoJGRvbWFpbnMpKSB7DQorICAgICAgICAgICAgZm9yZWFjaCAoJGRvbWFpbnMgYXMgJGRvbWFpbikgew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgZG9tYWluX2FkbWluc2AgKGB1c2VybmFtZWAsIGBkb21haW5gLCBgY3JlYXRlZGAsIGBhY3RpdmVgKQ0KKyAgICAgICAgICAgICAgICBWQUxVRVMgKDp1c2VybmFtZV9uZXcsIDpkb21haW4sIDpjcmVhdGVkLCA6YWN0aXZlKSIpOw0KKyAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICc6dXNlcm5hbWVfbmV3JyA9PiAkdXNlcm5hbWVfbmV3LA0KKyAgICAgICAgICAgICAgICAnOmRvbWFpbicgPT4gJGRvbWFpbiwNCisgICAgICAgICAgICAgICAgJzpjcmVhdGVkJyA9PiBkYXRlKCdZLW0tZCBIOmk6cycpLA0KKyAgICAgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghZW1wdHkoJHBhc3N3b3JkKSAmJiAhZW1wdHkoJHBhc3N3b3JkMikpIHsNCisgICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmQpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX2NvbXBsZXhpdHknDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgkcGFzc3dvcmQgIT0gJHBhc3N3b3JkMikgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdwYXNzd29yZF9taXNtYXRjaCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHBhc3N3b3JkX2hhc2hlZCA9IGhhc2hfcGFzc3dvcmQoJHBhc3N3b3JkKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgYWRtaW5gIFNFVCBgdXNlcm5hbWVgID0gOnVzZXJuYW1lX25ldywgYGFjdGl2ZWAgPSA6YWN0aXZlLCBgcGFzc3dvcmRgID0gOnBhc3N3b3JkX2hhc2hlZCBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnBhc3N3b3JkX2hhc2hlZCcgPT4gJHBhc3N3b3JkX2hhc2hlZCwNCisgICAgICAgICAgICAgICc6dXNlcm5hbWVfbmV3JyA9PiAkdXNlcm5hbWVfbmV3LA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhWydkaXNhYmxlX3RmYSddKSkgew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHRmYWAgU0VUIGBhY3RpdmVgID0gJzAnIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGB0ZmFgIFNFVCBgdXNlcm5hbWVgID0gOnVzZXJuYW1lX25ldyBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lX25ldycgPT4gJHVzZXJuYW1lX25ldywgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBhZG1pbmAgU0VUIGB1c2VybmFtZWAgPSA6dXNlcm5hbWVfbmV3LCBgYWN0aXZlYCA9IDphY3RpdmUgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZV9uZXcnID0+ICR1c2VybmFtZV9uZXcsDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ2Rpc2FibGVfdGZhJ10pKSB7DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgdGZhYCBTRVQgYGFjdGl2ZWAgPSAnMCcgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHRmYWAgU0VUIGB1c2VybmFtZWAgPSA6dXNlcm5hbWVfbmV3IFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWVfbmV3JyA9PiAkdXNlcm5hbWVfbmV3LCAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZG9tYWluX2FkbWluX21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkdXNlcm5hbWUpKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgfQ0KKyAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgfQ0KKyAgICAgIC8vIERvbWFpbiBhZG1pbmlzdHJhdG9yDQorICAgICAgLy8gQ2FuIG9ubHkgZWRpdCBpdHNlbGYNCisgICAgICBlbHNlaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gImRvbWFpbmFkbWluIikgew0KKyAgICAgICAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgICAkcGFzc3dvcmRfb2xkCQk9ICRfZGF0YVsndXNlcl9vbGRfcGFzcyddOw0KKyAgICAgICAgJHBhc3N3b3JkX25ldwk9ICRfZGF0YVsndXNlcl9uZXdfcGFzcyddOw0KKyAgICAgICAgJHBhc3N3b3JkX25ldzIJPSAkX2RhdGFbJ3VzZXJfbmV3X3Bhc3MyJ107DQorDQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgcGFzc3dvcmRgIEZST00gYGFkbWluYA0KKyAgICAgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlciIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VyJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICBpZiAoIXZlcmlmeV9oYXNoKCRyb3dbJ3Bhc3N3b3JkJ10sICRwYXNzd29yZF9vbGQpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCFlbXB0eSgkcGFzc3dvcmRfbmV3MikgJiYgIWVtcHR5KCRwYXNzd29yZF9uZXcpKSB7DQorICAgICAgICAgIGlmICgkcGFzc3dvcmRfbmV3MiAhPSAkcGFzc3dvcmRfbmV3KSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdwYXNzd29yZF9taXNtYXRjaCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmRfbmV3KSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfY29tcGxleGl0eScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkcGFzc3dvcmRfaGFzaGVkID0gaGFzaF9wYXNzd29yZCgkcGFzc3dvcmRfbmV3KTsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYGFkbWluYCBTRVQgYHBhc3N3b3JkYCA9IDpwYXNzd29yZF9oYXNoZWQgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOnBhc3N3b3JkX2hhc2hlZCcgPT4gJHBhc3N3b3JkX2hhc2hlZCwNCisgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgKSk7DQorICAgICAgICB9DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdkb21haW5fYWRtaW5fbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RlbGV0ZSc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHVzZXJuYW1lcyA9IChhcnJheSkkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgZm9yZWFjaCAoJHVzZXJuYW1lcyBhcyAkdXNlcm5hbWUpIHsNCisgICAgICAgIGlmIChlbXB0eShkb21haW5fYWRtaW4oJ2RldGFpbHMnLCAkdXNlcm5hbWUpKSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3VzZXJuYW1lX2ludmFsaWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgZG9tYWluX2FkbWluc2AgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICkpOw0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgYWRtaW5gIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICApKTsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGRhX2FjbGAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICkpOw0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgdGZhYCBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgKSk7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBmaWRvMmAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICkpOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZG9tYWluX2FkbWluX3JlbW92ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgJGRvbWFpbmFkbWlucyA9IGFycmF5KCk7DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUIERJU1RJTkNUDQorICAgICAgICBgdXNlcm5hbWVgDQorICAgICAgICAgIEZST00gYGRvbWFpbl9hZG1pbnNgDQorICAgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCBJTiAoDQorICAgICAgICAgICAgICBTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBhZG1pbmANCisgICAgICAgICAgICAgICAgV0hFUkUgYHN1cGVyYWRtaW5gIT0nMScNCisgICAgICAgICAgICApIik7DQorICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICRkb21haW5hZG1pbnNbXSA9ICRyb3dbJ3VzZXJuYW1lJ107DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZG9tYWluYWRtaW5zOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGV0YWlscyc6DQorICAgICAgJGRvbWFpbmFkbWluZGF0YSA9IGFycmF5KCk7DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gImRvbWFpbmFkbWluIiAmJiAkX2RhdGEgIT0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10pIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgZWxzZWlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIgfHwgIWlzc2V0KCRfZGF0YSkpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgaWYgKCFjdHlwZV9hbG51bShzdHJfcmVwbGFjZShhcnJheSgnXycsICcuJywgJy0nKSwgJycsICRfZGF0YSkpKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUDQorICAgICAgICBgdGZhYC5gYWN0aXZlYCBBUyBgdGZhX2FjdGl2ZWAsDQorICAgICAgICBgZG9tYWluX2FkbWluc2AuYHVzZXJuYW1lYCwNCisgICAgICAgIGBkb21haW5fYWRtaW5zYC5gY3JlYXRlZGAsDQorICAgICAgICBgZG9tYWluX2FkbWluc2AuYGFjdGl2ZWAgQVMgYGFjdGl2ZWANCisgICAgICAgICAgRlJPTSBgZG9tYWluX2FkbWluc2ANCisgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIGB0ZmFgIE9OIGB0ZmFgLmB1c2VybmFtZWA9YGRvbWFpbl9hZG1pbnNgLmB1c2VybmFtZWANCisgICAgICAgICAgICBXSEVSRSBgZG9tYWluX2FkbWluc2AuYHVzZXJuYW1lYD0gOmRvbWFpbl9hZG1pbiIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgJzpkb21haW5fYWRtaW4nID0+ICRfZGF0YQ0KKyAgICAgICkpOw0KKyAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgaWYgKGVtcHR5KCRyb3cpKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRkb21haW5hZG1pbmRhdGFbJ3VzZXJuYW1lJ10gPSAkcm93Wyd1c2VybmFtZSddOw0KKyAgICAgICRkb21haW5hZG1pbmRhdGFbJ3RmYV9hY3RpdmUnXSA9IChpc19udWxsKCRyb3dbJ3RmYV9hY3RpdmUnXSkpID8gMCA6ICRyb3dbJ3RmYV9hY3RpdmUnXTsNCisgICAgICAkZG9tYWluYWRtaW5kYXRhWyd0ZmFfYWN0aXZlX2ludCddID0gKGlzX251bGwoJHJvd1sndGZhX2FjdGl2ZSddKSkgPyAwIDogJHJvd1sndGZhX2FjdGl2ZSddOw0KKyAgICAgICRkb21haW5hZG1pbmRhdGFbJ2FjdGl2ZSddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgJGRvbWFpbmFkbWluZGF0YVsnYWN0aXZlX2ludCddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgJGRvbWFpbmFkbWluZGF0YVsnY3JlYXRlZCddID0gJHJvd1snY3JlYXRlZCddOw0KKyAgICAgIC8vIEdFVCBTRUxFQ1RFRA0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBkb21haW5gIEZST00gYGRvbWFpbmANCisgICAgICAgIFdIRVJFIGBkb21haW5gIElOICgNCisgICAgICAgICAgU0VMRUNUIGBkb21haW5gIEZST00gYGRvbWFpbl9hZG1pbnNgDQorICAgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYD0gOmRvbWFpbl9hZG1pbikiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbl9hZG1pbicgPT4gJF9kYXRhKSk7DQorICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgJGRvbWFpbmFkbWluZGF0YVsnc2VsZWN0ZWRfZG9tYWlucyddW10gPSAkcm93Wydkb21haW4nXTsNCisgICAgICB9DQorICAgICAgLy8gR0VUIFVOU0VMRUNURUQNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gDQorICAgICAgICBXSEVSRSBgZG9tYWluYCBOT1QgSU4gKA0KKyAgICAgICAgICBTRUxFQ1QgYGRvbWFpbmAgRlJPTSBgZG9tYWluX2FkbWluc2ANCisgICAgICAgICAgICBXSEVSRSBgdXNlcm5hbWVgPSA6ZG9tYWluX2FkbWluKSIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6ZG9tYWluX2FkbWluJyA9PiAkX2RhdGEpKTsNCisgICAgICAkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICB3aGlsZSgkcm93ID0gYXJyYXlfc2hpZnQoJHJvd3MpKSB7DQorICAgICAgICAkZG9tYWluYWRtaW5kYXRhWyd1bnNlbGVjdGVkX2RvbWFpbnMnXVtdID0gJHJvd1snZG9tYWluJ107DQorICAgICAgfQ0KKyAgICAgIGlmICghaXNzZXQoJGRvbWFpbmFkbWluZGF0YVsndW5zZWxlY3RlZF9kb21haW5zJ10pKSB7DQorICAgICAgICAkZG9tYWluYWRtaW5kYXRhWyd1bnNlbGVjdGVkX2RvbWFpbnMnXSA9ICIiOw0KKyAgICAgIH0NCisNCisgICAgICByZXR1cm4gJGRvbWFpbmFkbWluZGF0YTsNCisgICAgYnJlYWs7DQorICB9DQorfQ0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmZhaWwyYmFuLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5mYWlsMmJhbi5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNmIwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5mYWlsMmJhbi5pbmMucGhwCkBAIC0wLDAgKzEsMzMyIEBACis8P3BocA0KK2Z1bmN0aW9uIGZhaWwyYmFuKCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsKSB7DQorICBnbG9iYWwgJHJlZGlzOw0KKyAgJF9kYXRhX2xvZyA9ICRfZGF0YTsNCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnZ2V0JzoNCisgICAgICAkZjJiX29wdGlvbnMgPSBhcnJheSgpOw0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgdHJ5IHsNCisgICAgICAgICRmMmJfb3B0aW9ucyA9IGpzb25fZGVjb2RlKCRyZWRpcy0+R2V0KCdGMkJfT1BUSU9OUycpLCB0cnVlKTsNCisgICAgICAgICRmMmJfb3B0aW9uc1sncmVnZXgnXSA9IGpzb25fZGVjb2RlKCRyZWRpcy0+R2V0KCdGMkJfUkVHRVgnKSwgdHJ1ZSk7DQorICAgICAgICAkd2wgPSAkcmVkaXMtPmhHZXRBbGwoJ0YyQl9XSElURUxJU1QnKTsNCisgICAgICAgIGlmIChpc19hcnJheSgkd2wpKSB7DQorICAgICAgICAgIGZvcmVhY2ggKCR3bCBhcyAka2V5ID0+ICR2YWx1ZSkgew0KKyAgICAgICAgICAgICR0bXBfd2xfZGF0YVtdID0gJGtleTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoaXNzZXQoJHRtcF93bF9kYXRhKSkgew0KKyAgICAgICAgICAgIG5hdHNvcnQoJHRtcF93bF9kYXRhKTsNCisgICAgICAgICAgICAkZjJiX29wdGlvbnNbJ3doaXRlbGlzdCddID0gaW1wbG9kZShQSFBfRU9MLCAkdG1wX3dsX2RhdGEpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRmMmJfb3B0aW9uc1snd2hpdGVsaXN0J10gPSAiIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRmMmJfb3B0aW9uc1snd2hpdGVsaXN0J10gPSAiIjsNCisgICAgICAgIH0NCisgICAgICAgICRibCA9ICRyZWRpcy0+aEdldEFsbCgnRjJCX0JMQUNLTElTVCcpOw0KKyAgICAgICAgaWYgKGlzX2FycmF5KCRibCkpIHsNCisgICAgICAgICAgZm9yZWFjaCAoJGJsIGFzICRrZXkgPT4gJHZhbHVlKSB7DQorICAgICAgICAgICAgJHRtcF9ibF9kYXRhW10gPSAka2V5Ow0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmIChpc3NldCgkdG1wX2JsX2RhdGEpKSB7DQorICAgICAgICAgICAgbmF0c29ydCgkdG1wX2JsX2RhdGEpOw0KKyAgICAgICAgICAgICRmMmJfb3B0aW9uc1snYmxhY2tsaXN0J10gPSBpbXBsb2RlKFBIUF9FT0wsICR0bXBfYmxfZGF0YSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJGYyYl9vcHRpb25zWydibGFja2xpc3QnXSA9ICIiOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJGYyYl9vcHRpb25zWydibGFja2xpc3QnXSA9ICIiOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHBiID0gJHJlZGlzLT5oR2V0QWxsKCdGMkJfUEVSTV9CQU5TJyk7DQorICAgICAgICBpZiAoaXNfYXJyYXkoJHBiKSkgew0KKyAgICAgICAgICBmb3JlYWNoICgkcGIgYXMgJGtleSA9PiAkdmFsdWUpIHsNCisgICAgICAgICAgICAkZjJiX29wdGlvbnNbJ3Blcm1fYmFucyddW10gPSAka2V5Ow0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJGYyYl9vcHRpb25zWydwZXJtX2JhbnMnXSA9ICIiOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJGFjdGl2ZV9iYW5zID0gJHJlZGlzLT5oR2V0QWxsKCdGMkJfQUNUSVZFX0JBTlMnKTsNCisgICAgICAgICRxdWV1ZV91bmJhbiA9ICRyZWRpcy0+aEdldEFsbCgnRjJCX1FVRVVFX1VOQkFOJyk7DQorICAgICAgICBpZiAoaXNfYXJyYXkoJGFjdGl2ZV9iYW5zKSkgew0KKyAgICAgICAgICBmb3JlYWNoICgkYWN0aXZlX2JhbnMgYXMgJG5ldHdvcmsgPT4gJGJhbm5lZF91bnRpbCkgew0KKyAgICAgICAgICAgICRxdWV1ZWRfZm9yX3VuYmFuID0gKGlzc2V0KCRxdWV1ZV91bmJhblskbmV0d29ya10pICYmICRxdWV1ZV91bmJhblskbmV0d29ya10gPT0gMSkgPyAxIDogMDsNCisgICAgICAgICAgICAkZGlmZmVyZW5jZSA9ICRiYW5uZWRfdW50aWwgLSB0aW1lKCk7DQorICAgICAgICAgICAgJGYyYl9vcHRpb25zWydhY3RpdmVfYmFucyddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICdxdWV1ZWRfZm9yX3VuYmFuJyA9PiAkcXVldWVkX2Zvcl91bmJhbiwNCisgICAgICAgICAgICAgICduZXR3b3JrJyA9PiAkbmV0d29yaywNCisgICAgICAgICAgICAgICdiYW5uZWRfdW50aWwnID0+IHNwcmludGYoJyUwMmRoICUwMmRtICUwMmRzJywgKCRkaWZmZXJlbmNlLzM2MDApLCAoJGRpZmZlcmVuY2UvNjAlNjApLCAkZGlmZmVyZW5jZSU2MCkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJGYyYl9vcHRpb25zWydhY3RpdmVfYmFucyddID0gIiI7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRmMmJfb3B0aW9uczsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIC8vIFN0YXJ0IHRvIHJlYWQgYWN0aW9ucywgaWYgYW55DQorICAgICAgaWYgKGlzc2V0KCRfZGF0YVsnYWN0aW9uJ10pKSB7DQorICAgICAgICAvLyBSZXNldCByZWdleCBmaWx0ZXJzDQorICAgICAgICBpZiAoJF9kYXRhWydhY3Rpb24nXSA9PSAicmVzZXQtcmVnZXgiKSB7DQorICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgJHJlZGlzLT5EZWwoJ0YyQl9SRUdFWCcpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAvLyBSdWxlcyB3aWxsIGFsc28gYmUgcmVjcmVhdGVkIG9uIGxvZyBldmVudHMsIGJ1dCBydWxlcyBtYXkgc2VlbSBlbXB0eSBmb3IgYSBzZWNvbmQgaW4gdGhlIFVJDQorICAgICAgICAgIGRvY2tlcigncG9zdCcsICduZXRmaWx0ZXItbWFpbGNvdycsICdyZXN0YXJ0Jyk7DQorICAgICAgICAgICRmYWlsX2NvdW50ID0gMDsNCisgICAgICAgICAgJHJlZ2V4X3Jlc3VsdCA9IGpzb25fZGVjb2RlKCRyZWRpcy0+R2V0KCdGMkJfUkVHRVgnKSwgdHJ1ZSk7DQorICAgICAgICAgIHdoaWxlIChlbXB0eSgkcmVnZXhfcmVzdWx0KSAmJiAkZmFpbF9jb3VudCA8IDEwKSB7DQorICAgICAgICAgICAgJHJlZ2V4X3Jlc3VsdCA9IGpzb25fZGVjb2RlKCRyZWRpcy0+R2V0KCdGMkJfUkVHRVgnKSwgdHJ1ZSk7DQorICAgICAgICAgICAgJGZhaWxfY291bnQrKzsNCisgICAgICAgICAgICBzbGVlcCgxKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJGZhaWxfY291bnQgPj0gMTApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3Jlc2V0X2YyYl9yZWdleCcpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGVsc2VpZiAoJF9kYXRhWydhY3Rpb24nXSA9PSAiZWRpdC1yZWdleCIpIHsNCisgICAgICAgICAgaWYgKCFlbXB0eSgkX2RhdGFbJ3JlZ2V4J10pKSB7DQorICAgICAgICAgICAgJHJ1bGVfaWQgPSAxOw0KKyAgICAgICAgICAgICRyZWdleF9hcnJheSA9IGFycmF5KCk7DQorICAgICAgICAgICAgZm9yZWFjaCgkX2RhdGFbJ3JlZ2V4J10gYXMgJHJlZ2V4KSB7DQorICAgICAgICAgICAgICAkcmVnZXhfYXJyYXlbJHJ1bGVfaWRdID0gJHJlZ2V4Ow0KKyAgICAgICAgICAgICAgJHJ1bGVfaWQrKzsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFlbXB0eSgkcmVnZXhfYXJyYXkpKSB7DQorICAgICAgICAgICAgICAkcmVkaXMtPlNldCgnRjJCX1JFR0VYJywganNvbl9lbmNvZGUoJHJlZ2V4X2FycmF5LCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gcHJpbnRfcigkX2RhdGEsIHRydWUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkbmV0d29yaykpDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgLy8gU3RhcnQgYWN0aW9ucyBpbiBkZXBlbmRlbmN5IG9mIG5ldHdvcmsNCisgICAgICAgIGlmICghZW1wdHkoJF9kYXRhWyduZXR3b3JrJ10pKSB7DQorICAgICAgICAgICRuZXR3b3JrcyA9IChhcnJheSkkX2RhdGFbJ25ldHdvcmsnXTsNCisgICAgICAgICAgZm9yZWFjaCAoJG5ldHdvcmtzIGFzICRuZXR3b3JrKSB7DQorICAgICAgICAgICAgLy8gVW5iYW4gbmV0d29yaw0KKyAgICAgICAgICAgIGlmICgkX2RhdGFbJ2FjdGlvbiddID09ICJ1bmJhbiIpIHsNCisgICAgICAgICAgICAgIGlmICh2YWxpZF9uZXR3b3JrKCRuZXR3b3JrKSkgew0KKyAgICAgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgICAgICRyZWRpcy0+aFNldCgnRjJCX1FVRVVFX1VOQkFOJywgJG5ldHdvcmssIDEpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIC8vIFdoaXRlbGlzdCBuZXR3b3JrDQorICAgICAgICAgICAgZWxzZWlmICgkX2RhdGFbJ2FjdGlvbiddID09ICJ3aGl0ZWxpc3QiKSB7DQorICAgICAgICAgICAgICBpZiAoZW1wdHkoJG5ldHdvcmspKSB7IGNvbnRpbnVlOyB9DQorICAgICAgICAgICAgICBpZiAodmFsaWRfbmV0d29yaygkbmV0d29yaykpIHsNCisgICAgICAgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0YyQl9XSElURUxJU1QnLCAkbmV0d29yaywgMSk7DQorICAgICAgICAgICAgICAgICAgJHJlZGlzLT5oRGVsKCdGMkJfQkxBQ0tMSVNUJywgJG5ldHdvcmssIDEpOw0KKyAgICAgICAgICAgICAgICAgICRyZWRpcy0+aFNldCgnRjJCX1FVRVVFX1VOQkFOJywgJG5ldHdvcmssIDEpOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBlbHNlICB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbmV0d29ya19ob3N0X2ludmFsaWQnLCAkbmV0d29yaykNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIC8vIEJsYWNrbGlzdCBuZXR3b3JrDQorICAgICAgICAgICAgZWxzZWlmICgkX2RhdGFbJ2FjdGlvbiddID09ICJibGFja2xpc3QiKSB7DQorICAgICAgICAgICAgICBpZiAoZW1wdHkoJG5ldHdvcmspKSB7IGNvbnRpbnVlOyB9DQorICAgICAgICAgICAgICBpZiAodmFsaWRfbmV0d29yaygkbmV0d29yaykgJiYgIWluX2FycmF5KCRuZXR3b3JrLCBhcnJheSgNCisgICAgICAgICAgICAgICAgJzAuMC4wLjAnLA0KKyAgICAgICAgICAgICAgICAnMC4wLjAuMC8wJywNCisgICAgICAgICAgICAgICAgZ2V0ZW52KCdJUFY0X05FVFdPUksnKSAuICcwLzI0JywNCisgICAgICAgICAgICAgICAgZ2V0ZW52KCdJUFY0X05FVFdPUksnKSAuICcwJywNCisgICAgICAgICAgICAgICAgZ2V0ZW52KCdJUFY2X05FVFdPUksnKQ0KKyAgICAgICAgICAgICAgKSkpIHsNCisgICAgICAgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0YyQl9CTEFDS0xJU1QnLCAkbmV0d29yaywgMSk7DQorICAgICAgICAgICAgICAgICAgJHJlZGlzLT5oRGVsKCdGMkJfV0hJVEVMSVNUJywgJG5ldHdvcmssIDEpOw0KKyAgICAgICAgICAgICAgICAgIC8vJHJlc3BvbnNlID0gZG9ja2VyKCdwb3N0JywgJ25ldGZpbHRlci1tYWlsY293JywgJ3Jlc3RhcnQnKTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgZWxzZSAgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ25ldHdvcmtfaG9zdF9pbnZhbGlkJywgJG5ldHdvcmspDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRuZXR3b3JrKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICAvLyBTdGFydCBkZWZhdWx0IGVkaXQgd2l0aG91dCBzcGVjaWZpYyBhY3Rpb24NCisgICAgICAkaXNfbm93ID0gZmFpbDJiYW4oJ2dldCcpOw0KKyAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICRiYW5fdGltZSA9IGludHZhbCgoaXNzZXQoJF9kYXRhWydiYW5fdGltZSddKSkgPyAkX2RhdGFbJ2Jhbl90aW1lJ10gOiAkaXNfbm93WydiYW5fdGltZSddKTsNCisgICAgICAgICRtYXhfYXR0ZW1wdHMgPSBpbnR2YWwoKGlzc2V0KCRfZGF0YVsnbWF4X2F0dGVtcHRzJ10pKSA/ICRfZGF0YVsnbWF4X2F0dGVtcHRzJ10gOiAkaXNfbm93WydtYXhfYXR0ZW1wdHMnXSk7DQorICAgICAgICAkcmV0cnlfd2luZG93ID0gaW50dmFsKChpc3NldCgkX2RhdGFbJ3JldHJ5X3dpbmRvdyddKSkgPyAkX2RhdGFbJ3JldHJ5X3dpbmRvdyddIDogJGlzX25vd1sncmV0cnlfd2luZG93J10pOw0KKyAgICAgICAgJG5ldGJhbl9pcHY0ID0gaW50dmFsKChpc3NldCgkX2RhdGFbJ25ldGJhbl9pcHY0J10pKSA/ICRfZGF0YVsnbmV0YmFuX2lwdjQnXSA6ICRpc19ub3dbJ25ldGJhbl9pcHY0J10pOw0KKyAgICAgICAgJG5ldGJhbl9pcHY2ID0gaW50dmFsKChpc3NldCgkX2RhdGFbJ25ldGJhbl9pcHY2J10pKSA/ICRfZGF0YVsnbmV0YmFuX2lwdjYnXSA6ICRpc19ub3dbJ25ldGJhbl9pcHY2J10pOw0KKyAgICAgICAgJHdsID0gKGlzc2V0KCRfZGF0YVsnd2hpdGVsaXN0J10pKSA/ICRfZGF0YVsnd2hpdGVsaXN0J10gOiAkaXNfbm93Wyd3aGl0ZWxpc3QnXTsNCisgICAgICAgICRibCA9IChpc3NldCgkX2RhdGFbJ2JsYWNrbGlzdCddKSkgPyAkX2RhdGFbJ2JsYWNrbGlzdCddIDogJGlzX25vd1snYmxhY2tsaXN0J107DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGYyYl9vcHRpb25zID0gYXJyYXkoKTsNCisgICAgICAkZjJiX29wdGlvbnNbJ2Jhbl90aW1lJ10gPSAoJGJhbl90aW1lIDwgNjApID8gNjAgOiAkYmFuX3RpbWU7DQorICAgICAgJGYyYl9vcHRpb25zWyduZXRiYW5faXB2NCddID0gKCRuZXRiYW5faXB2NCA8IDgpID8gOCA6ICRuZXRiYW5faXB2NDsNCisgICAgICAkZjJiX29wdGlvbnNbJ25ldGJhbl9pcHY2J10gPSAoJG5ldGJhbl9pcHY2IDwgOCkgPyA4IDogJG5ldGJhbl9pcHY2Ow0KKyAgICAgICRmMmJfb3B0aW9uc1snbmV0YmFuX2lwdjQnXSA9ICgkbmV0YmFuX2lwdjQgPiAzMikgPyAzMiA6ICRuZXRiYW5faXB2NDsNCisgICAgICAkZjJiX29wdGlvbnNbJ25ldGJhbl9pcHY2J10gPSAoJG5ldGJhbl9pcHY2ID4gMTI4KSA/IDEyOCA6ICRuZXRiYW5faXB2NjsNCisgICAgICAkZjJiX29wdGlvbnNbJ21heF9hdHRlbXB0cyddID0gKCRtYXhfYXR0ZW1wdHMgPCAxKSA/IDEgOiAkbWF4X2F0dGVtcHRzOw0KKyAgICAgICRmMmJfb3B0aW9uc1sncmV0cnlfd2luZG93J10gPSAoJHJldHJ5X3dpbmRvdyA8IDEpID8gMSA6ICRyZXRyeV93aW5kb3c7DQorICAgICAgdHJ5IHsNCisgICAgICAgICRyZWRpcy0+U2V0KCdGMkJfT1BUSU9OUycsIGpzb25fZW5jb2RlKCRmMmJfb3B0aW9ucykpOw0KKyAgICAgICAgJHJlZGlzLT5EZWwoJ0YyQl9XSElURUxJU1QnKTsNCisgICAgICAgICRyZWRpcy0+RGVsKCdGMkJfQkxBQ0tMSVNUJyk7DQorICAgICAgICBpZighZW1wdHkoJHdsKSkgew0KKyAgICAgICAgICAkd2xfYXJyYXkgPSBhcnJheV9tYXAoJ3RyaW0nLCBwcmVnX3NwbGl0KCAiLyggfCx8O3xcbikvIiwgJHdsKSk7DQorICAgICAgICAgICR3bF9hcnJheSA9IGFycmF5X2ZpbHRlcigkd2xfYXJyYXkpOw0KKyAgICAgICAgICBpZiAoaXNfYXJyYXkoJHdsX2FycmF5KSkgew0KKyAgICAgICAgICAgIGZvcmVhY2ggKCR3bF9hcnJheSBhcyAkd2xfaXRlbSkgew0KKyAgICAgICAgICAgICAgaWYgKHZhbGlkX25ldHdvcmsoJHdsX2l0ZW0pIHx8IHZhbGlkX2hvc3RuYW1lKCR3bF9pdGVtKSkgew0KKyAgICAgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0YyQl9XSElURUxJU1QnLCAkd2xfaXRlbSwgMSk7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCduZXR3b3JrX2hvc3RfaW52YWxpZCcsICR3bF9pdGVtKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGlmKCFlbXB0eSgkYmwpKSB7DQorICAgICAgICAgICRibF9hcnJheSA9IGFycmF5X21hcCgndHJpbScsIHByZWdfc3BsaXQoICIvKCB8LHw7fFxuKS8iLCAkYmwpKTsNCisgICAgICAgICAgJGJsX2FycmF5ID0gYXJyYXlfZmlsdGVyKCRibF9hcnJheSk7DQorICAgICAgICAgIGlmIChpc19hcnJheSgkYmxfYXJyYXkpKSB7DQorICAgICAgICAgICAgZm9yZWFjaCAoJGJsX2FycmF5IGFzICRibF9pdGVtKSB7DQorICAgICAgICAgICAgICBpZiAodmFsaWRfbmV0d29yaygkYmxfaXRlbSkgJiYgIWluX2FycmF5KCRibF9pdGVtLCBhcnJheSgNCisgICAgICAgICAgICAgICAgJzAuMC4wLjAnLA0KKyAgICAgICAgICAgICAgICAnMC4wLjAuMC8wJywNCisgICAgICAgICAgICAgICAgZ2V0ZW52KCdJUFY0X05FVFdPUksnKSAuICcwLzI0JywNCisgICAgICAgICAgICAgICAgZ2V0ZW52KCdJUFY0X05FVFdPUksnKSAuICcwJywNCisgICAgICAgICAgICAgICAgZ2V0ZW52KCdJUFY2X05FVFdPUksnKQ0KKyAgICAgICAgICAgICAgKSkpIHsNCisgICAgICAgICAgICAgICAgJHJlZGlzLT5oU2V0KCdGMkJfQkxBQ0tMSVNUJywgJGJsX2l0ZW0sIDEpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbmV0d29ya19ob3N0X2ludmFsaWQnLCAkYmxfaXRlbSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAnbXNnJyA9PiAnZjJiX21vZGlmaWVkJw0KKyAgICAgICk7DQorICAgIGJyZWFrOw0KKyAgfQ0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5md2Rob3N0LmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5md2Rob3N0LmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM1MTFmNAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmZ3ZGhvc3QuaW5jLnBocApAQCAtMCwwICsxLDE4MyBAQAorPD9waHANCitmdW5jdGlvbiBmd2Rob3N0KCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsKSB7DQorICByZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3NwZi5pbmMucGhwJzsNCisJZ2xvYmFsICRyZWRpczsNCisJZ2xvYmFsICRsYW5nOw0KKyAgJF9kYXRhX2xvZyA9ICRfZGF0YTsNCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnYWRkJzoNCisgICAgICBnbG9iYWwgJGxhbmc7DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHNvdXJjZSA9ICRfZGF0YVsnaG9zdG5hbWUnXTsNCisgICAgICAkaG9zdCA9IHRyaW0oJF9kYXRhWydob3N0bmFtZSddKTsNCisgICAgICAkZmlsdGVyX3NwYW0gPSAoaXNzZXQoJF9kYXRhWydmaWx0ZXJfc3BhbSddKSAmJiAkX2RhdGFbJ2ZpbHRlcl9zcGFtJ10gPT0gMSkgPyAxIDogMDsNCisgICAgICBpZiAocHJlZ19tYXRjaCgnL15bMC05YS1mQS1GOlwvXSskLycsICRob3N0KSkgeyAvLyBJUHY2IGFkZHJlc3MNCisgICAgICAgICRob3N0cyA9IGFycmF5KCRob3N0KTsNCisgICAgICB9DQorICAgICAgZWxzZWlmIChwcmVnX21hdGNoKCcvXlswLTlcLlwvXSskLycsICRob3N0KSkgeyAvLyBJUHY0IGFkZHJlc3MNCisgICAgICAgICRob3N0cyA9IGFycmF5KCRob3N0KTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkaG9zdHMgPSBnZXRfb3V0Z29pbmdfaG9zdHNfYmVzdF9ndWVzcygkaG9zdCk7DQorICAgICAgfQ0KKyAgICAgIGlmIChlbXB0eSgkaG9zdHMpKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2ludmFsaWRfaG9zdCcsIGh0bWxzcGVjaWFsY2hhcnMoJGhvc3QpKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgZm9yZWFjaCAoJGhvc3RzIGFzICRob3N0KSB7DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAkcmVkaXMtPmhTZXQoJ1dISVRFTElTVEVEX0ZXRF9IT1NUJywgJGhvc3QsICRzb3VyY2UpOw0KKyAgICAgICAgICBpZiAoJGZpbHRlcl9zcGFtID09IDApIHsNCisgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ0tFRVBfU1BBTScsICRob3N0LCAxKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKCRyZWRpcy0+aEdldCgnS0VFUF9TUEFNJywgJGhvc3QpKSB7DQorICAgICAgICAgICAgJHJlZGlzLT5oRGVsKCdLRUVQX1NQQU0nLCAkaG9zdCk7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAnbXNnJyA9PiBhcnJheSgnZm9yd2FyZGluZ19ob3N0X2FkZGVkJywgaHRtbHNwZWNpYWxjaGFycyhpbXBsb2RlKCcsICcsICRob3N0cykpKQ0KKyAgICAgICk7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdlZGl0JzoNCisgICAgICBnbG9iYWwgJGxhbmc7DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGZ3ZGhvc3RzID0gKGFycmF5KSRfZGF0YVsnZndkaG9zdCddOw0KKyAgICAgIGZvcmVhY2ggKCRmd2Rob3N0cyBhcyAkZndkaG9zdCkgew0KKyAgICAgICAgJGlzX25vdyA9IGZ3ZGhvc3QoJ2RldGFpbHMnLCAkZndkaG9zdCk7DQorICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICRrZWVwX3NwYW0gPSAoaXNzZXQoJF9kYXRhWydrZWVwX3NwYW0nXSkpID8gJF9kYXRhWydrZWVwX3NwYW0nXSA6ICRpc19ub3dbJ2tlZXBfc3BhbSddOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICBpZiAoJGtlZXBfc3BhbSA9PSAxKSB7DQorICAgICAgICAgICAgJHJlZGlzLT5oU2V0KCdLRUVQX1NQQU0nLCAkZndkaG9zdCwgMSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHJlZGlzLT5oRGVsKCdLRUVQX1NQQU0nLCAkZndkaG9zdCk7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkZndkaG9zdCkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RlbGV0ZSc6DQorICAgICAgJGhvc3RzID0gKGFycmF5KSRfZGF0YVsnZm9yd2FyZGluZ2hvc3QnXTsNCisgICAgICBmb3JlYWNoICgkaG9zdHMgYXMgJGhvc3QpIHsNCisgICAgICAgIHRyeSB7DQorICAgICAgICAgICRyZWRpcy0+aERlbCgnV0hJVEVMSVNURURfRldEX0hPU1QnLCAkaG9zdCk7DQorICAgICAgICAgICRyZWRpcy0+aERlbCgnS0VFUF9TUEFNJywgJGhvc3QpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdmb3J3YXJkaW5nX2hvc3RfcmVtb3ZlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGhvc3QpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGZ3ZGhvc3RzZGF0YSA9IGFycmF5KCk7DQorICAgICAgdHJ5IHsNCisgICAgICAgICRmd2RfaG9zdHMgPSAkcmVkaXMtPmhHZXRBbGwoJ1dISVRFTElTVEVEX0ZXRF9IT1NUJyk7DQorICAgICAgICBpZiAoIWVtcHR5KCRmd2RfaG9zdHMpKSB7DQorICAgICAgICBmb3JlYWNoICgkZndkX2hvc3RzIGFzICRmd2RfaG9zdCA9PiAkc291cmNlKSB7DQorICAgICAgICAgICRrZWVwX3NwYW0gPSAoJHJlZGlzLT5oR2V0KCdLRUVQX1NQQU0nLCAkZndkX2hvc3QpKSA/ICJ5ZXMiIDogIm5vIjsNCisgICAgICAgICAgJGZ3ZGhvc3RzZGF0YVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ2hvc3QnID0+ICRmd2RfaG9zdCwNCisgICAgICAgICAgICAnc291cmNlJyA9PiAkc291cmNlLA0KKyAgICAgICAgICAgICdrZWVwX3NwYW0nID0+ICRrZWVwX3NwYW0NCisgICAgICAgICAgKTsNCisgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gJGZ3ZGhvc3RzZGF0YTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RldGFpbHMnOg0KKyAgICAgICRmd2Rob3N0ZGV0YWlscyA9IGFycmF5KCk7DQorICAgICAgaWYgKCFpc3NldCgkX2RhdGEpIHx8IGVtcHR5KCRfZGF0YSkpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgdHJ5IHsNCisgICAgICAgIGlmICgkc291cmNlID0gJHJlZGlzLT5oR2V0KCdXSElURUxJU1RFRF9GV0RfSE9TVCcsICRfZGF0YSkpIHsNCisgICAgICAgICAgJGZ3ZGhvc3RkZXRhaWxzWydob3N0J10gPSAkX2RhdGE7DQorICAgICAgICAgICRmd2Rob3N0ZGV0YWlsc1snc291cmNlJ10gPSAkc291cmNlOw0KKyAgICAgICAgICAkZndkaG9zdGRldGFpbHNbJ2tlZXBfc3BhbSddID0gKCRyZWRpcy0+aEdldCgnS0VFUF9TUEFNJywgJF9kYXRhKSkgPyAieWVzIiA6ICJubyI7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRmd2Rob3N0ZGV0YWlsczsNCisgICAgYnJlYWs7DQorICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZjI4ODIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5pbmMucGhwCkBAIC0wLDAgKzEsMTk1MSBAQAorPD9waHANCit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxQSFBNYWlsZXI7DQordXNlIFBIUE1haWxlclxQSFBNYWlsZXJcU01UUDsNCit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxFeGNlcHRpb247DQorZnVuY3Rpb24gaXNfdmFsaWRfcmVnZXgoJGV4cCkgew0KKyAgcmV0dXJuIEBwcmVnX21hdGNoKCRleHAsICcnKSAhPT0gZmFsc2U7DQorfQ0KK2Z1bmN0aW9uIGlzc2V0X2hhc19jb250ZW50KCR2YXIpIHsNCisgIGlmIChpc3NldCgkdmFyKSAmJiAkdmFyICE9ICIiKSB7DQorICAgIHJldHVybiB0cnVlOw0KKyAgfQ0KKyAgZWxzZSB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCit9DQorLy8gVmFsaWRhdGVzIGlwcyBhbmQgY2lkcnMNCitmdW5jdGlvbiB2YWxpZF9uZXR3b3JrKCRuZXR3b3JrKSB7DQorICBpZiAoZmlsdGVyX3ZhcigkbmV0d29yaywgRklMVEVSX1ZBTElEQVRFX0lQKSkgew0KKyAgICByZXR1cm4gdHJ1ZTsNCisgIH0NCisgICRwYXJ0cyA9IGV4cGxvZGUoJy8nLCAkbmV0d29yayk7DQorICBpZiAoY291bnQoJHBhcnRzKSAhPSAyKSB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCisgICRpcCA9ICRwYXJ0c1swXTsNCisgICRuZXRtYXNrID0gJHBhcnRzWzFdOw0KKyAgaWYgKCFwcmVnX21hdGNoKCIvXlxkKyQvIiwgJG5ldG1hc2spKXsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgJG5ldG1hc2sgPSBpbnR2YWwoJHBhcnRzWzFdKTsNCisgIGlmICgkbmV0bWFzayA8IDApIHsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgaWYgKGZpbHRlcl92YXIoJGlwLCBGSUxURVJfVkFMSURBVEVfSVAsIEZJTFRFUl9GTEFHX0lQVjQpKSB7DQorICAgIHJldHVybiAkbmV0bWFzayA8PSAzMjsNCisgIH0NCisgIGlmIChmaWx0ZXJfdmFyKCRpcCwgRklMVEVSX1ZBTElEQVRFX0lQLCBGSUxURVJfRkxBR19JUFY2KSkgew0KKyAgICByZXR1cm4gJG5ldG1hc2sgPD0gMTI4Ow0KKyAgfQ0KKyAgcmV0dXJuIGZhbHNlOw0KK30NCitmdW5jdGlvbiB2YWxpZF9ob3N0bmFtZSgkaG9zdG5hbWUpIHsNCisgIHJldHVybiBmaWx0ZXJfdmFyKCRob3N0bmFtZSwgRklMVEVSX1ZBTElEQVRFX0RPTUFJTiwgRklMVEVSX0ZMQUdfSE9TVE5BTUUpOw0KK30NCisvLyBUaGFua3MgdG8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ5MzczNzg5DQorLy8gVmFsaWRhdGVzIGV4YWN0IGlwIG1hdGNoZXMgYW5kIGlwLWluLWNpZHIsIGlwdjQgYW5kIGlwdjYNCitmdW5jdGlvbiBpcF9hY2woJGlwLCAkbmV0d29ya3MpIHsNCisgIGZvcmVhY2goJG5ldHdvcmtzIGFzICRuZXR3b3JrKSB7DQorICAgIGlmIChmaWx0ZXJfdmFyKCRuZXR3b3JrLCBGSUxURVJfVkFMSURBVEVfSVApKSB7DQorICAgICAgaWYgKCRpcCA9PSAkbmV0d29yaykgew0KKyAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgY29udGludWU7DQorICAgICAgfQ0KKyAgICB9DQorICAgICRpcGIgPSBpbmV0X3B0b24oJGlwKTsNCisgICAgJGlwbGVuID0gc3RybGVuKCRpcGIpOw0KKyAgICBpZiAoc3RybGVuKCRpcGIpIDwgNCkgew0KKyAgICAgIGNvbnRpbnVlOw0KKyAgICB9DQorICAgICRhciA9IGV4cGxvZGUoJy8nLCAkbmV0d29yayk7DQorICAgICRpcDEgPSAkYXJbMF07DQorICAgICRpcDFiID0gaW5ldF9wdG9uKCRpcDEpOw0KKyAgICAkaXAxbGVuID0gc3RybGVuKCRpcDFiKTsNCisgICAgaWYgKCRpcDFsZW4gIT0gJGlwbGVuKSB7DQorICAgICAgY29udGludWU7DQorICAgIH0NCisgICAgaWYgKGNvdW50KCRhcik+MSkgew0KKyAgICAgICRiaXRzPShpbnQpKCRhclsxXSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJGJpdHMgPSAkaXBsZW4gKiA4Ow0KKyAgICB9DQorICAgIGZvciAoJGM9MDsgJGJpdHM+MDsgJGMrKykgew0KKyAgICAgICRieXRlbWFzayA9ICgkYml0cyA8IDgpID8gMHhmZiBeICgoMSA8PCAoOC0kYml0cykpLTEpIDogMHhmZjsNCisgICAgICBpZiAoKChvcmQoJGlwYlskY10pIF4gb3JkKCRpcDFiWyRjXSkpICYgJGJ5dGVtYXNrKSAhPSAwKSB7DQorICAgICAgICBjb250aW51ZSAyOw0KKyAgICAgIH0NCisgICAgICAkYml0cy09ODsNCisgICAgfQ0KKyAgICByZXR1cm4gdHJ1ZTsNCisgIH0NCisgIHJldHVybiBmYWxzZTsNCit9DQorZnVuY3Rpb24gaGFzaF9wYXNzd29yZCgkcGFzc3dvcmQpIHsNCisgIC8vIGRlZmF1bHRfcGFzc19zY2hlbWUgaXMgZGV0ZXJtaW5lZCBpbiB2YXJzLmluYy5waHAgKG9yIGNvcnJlc3BvbmRpbmcgbG9jYWwgZmlsZSkNCisgIC8vIGluIGNhc2UgZGVmYXVsdCBwYXNzIHNjaGVtZSBpcyBub3QgZGVmaW5lZCwgZmFsbGluZyBiYWNrIHRvIEJMRi1DUllQVC4NCisgIGdsb2JhbCAkZGVmYXVsdF9wYXNzX3NjaGVtZTsNCisgICRwd19oYXNoID0gTlVMTDsNCisgIHN3aXRjaCAoc3RydG91cHBlcigkZGVmYXVsdF9wYXNzX3NjaGVtZSkpIHsNCisgICAgY2FzZSAiU1NIQSI6DQorICAgICAgJHNhbHRfc3RyID0gYmluMmhleChvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMoOCkpOw0KKyAgICAgICRwd19oYXNoID0gIntTU0hBfSIuYmFzZTY0X2VuY29kZShoYXNoKCdzaGExJywgJHBhc3N3b3JkIC4gJHNhbHRfc3RyLCB0cnVlKSAuICRzYWx0X3N0cik7DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgIlNTSEEyNTYiOg0KKyAgICAgICRzYWx0X3N0ciA9IGJpbjJoZXgob3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzKDgpKTsNCisgICAgICAkcHdfaGFzaCA9ICJ7U1NIQTI1Nn0iLmJhc2U2NF9lbmNvZGUoaGFzaCgnc2hhMjU2JywgJHBhc3N3b3JkIC4gJHNhbHRfc3RyLCB0cnVlKSAuICRzYWx0X3N0cik7DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgIlNTSEE1MTIiOg0KKyAgICAgICRzYWx0X3N0ciA9IGJpbjJoZXgob3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzKDgpKTsNCisgICAgICAkcHdfaGFzaCA9ICJ7U1NIQTUxMn0iLmJhc2U2NF9lbmNvZGUoaGFzaCgnc2hhNTEyJywgJHBhc3N3b3JkIC4gJHNhbHRfc3RyLCB0cnVlKSAuICRzYWx0X3N0cik7DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgIkJMRi1DUllQVCI6DQorICAgIGRlZmF1bHQ6DQorICAgICAgJHB3X2hhc2ggPSAie0JMRi1DUllQVH0iIC4gcGFzc3dvcmRfaGFzaCgkcGFzc3dvcmQsIFBBU1NXT1JEX0JDUllQVCk7DQorICAgICAgYnJlYWs7DQorICB9DQorICByZXR1cm4gJHB3X2hhc2g7DQorfQ0KK2Z1bmN0aW9uIGxhc3RfbG9naW4oJHVzZXIpIHsNCisgIGdsb2JhbCAkcGRvOw0KKyAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCdTRUxFQ1QgYHJlbW90ZWAsIGB0aW1lYCBGUk9NIGBsb2dzYA0KKyAgICBXSEVSRSBKU09OX0VYVFJBQ1QoYGNhbGxgLCAiJFswXSIpID0gImNoZWNrX2xvZ2luIg0KKyAgICAgIEFORCBKU09OX0VYVFJBQ1QoYGNhbGxgLCAiJFsxXSIpID0gOnVzZXINCisgICAgICBBTkQgYHR5cGVgID0gInN1Y2Nlc3MiIE9SREVSIEJZIGB0aW1lYCBERVNDIExJTUlUIDEnKTsNCisgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcicgPT4gJHVzZXIpKTsNCisgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICBpZiAoIWVtcHR5KCRyb3cpKSB7DQorICAgIHJldHVybiAkcm93Ow0KKyAgfQ0KKyAgZWxzZSB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCit9DQorZnVuY3Rpb24gZmx1c2hfbWVtY2FjaGVkKCkgew0KKyAgdHJ5IHsNCisgICAgJG0gPSBuZXcgTWVtY2FjaGVkKCk7DQorICAgICRtLT5hZGRTZXJ2ZXIoJ21lbWNhY2hlZCcsIDExMjExKTsNCisgICAgJG0tPmZsdXNoKCk7DQorICB9DQorICBjYXRjaCAoIEV4Y2VwdGlvbiAkZSApIHsNCisgICAgLy8gRHVubm8NCisgIH0NCit9DQorZnVuY3Rpb24gc3lzX21haWwoJF9kYXRhKSB7DQorICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXyksDQorCQkJJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorCQkpOw0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorICAkZXhjbHVkZXMgPSAkX2RhdGFbJ21hc3NfZXhjbHVkZSddOw0KKyAgJGluY2x1ZGVzID0gJF9kYXRhWydtYXNzX2luY2x1ZGUnXTsNCisgICRtYWlsYm94ZXMgPSBhcnJheSgpOw0KKyAgJG1hc3NfZnJvbSA9ICRfZGF0YVsnbWFzc19mcm9tJ107DQorICAkbWFzc190ZXh0ID0gJF9kYXRhWydtYXNzX3RleHQnXTsNCisgICRtYXNzX2h0bWwgPSAkX2RhdGFbJ21hc3NfaHRtbCddOw0KKyAgJG1hc3Nfc3ViamVjdCA9ICRfZGF0YVsnbWFzc19zdWJqZWN0J107DQorICBpZiAoIWZpbHRlcl92YXIoJG1hc3NfZnJvbSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKwkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKwkJCSdtc2cnID0+ICdmcm9tX2ludmFsaWQnDQorCQkpOw0KKwkJcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgaWYgKGVtcHR5KCRtYXNzX3N1YmplY3QpKSB7DQorCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXyksDQorCQkJJ21zZycgPT4gJ3N1YmplY3RfZW1wdHknDQorCQkpOw0KKwkJcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgaWYgKGVtcHR5KCRtYXNzX3RleHQpKSB7DQorCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXyksDQorCQkJJ21zZycgPT4gJ3RleHRfZW1wdHknDQorCQkpOw0KKwkJcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgJGRvbWFpbnMgPSBhcnJheV9tZXJnZShtYWlsYm94KCdnZXQnLCAnZG9tYWlucycpLCBtYWlsYm94KCdnZXQnLCAnYWxpYXNfZG9tYWlucycpKTsNCisgIGZvcmVhY2ggKCRkb21haW5zIGFzICRkb21haW4pIHsNCisgICAgZm9yZWFjaCAobWFpbGJveCgnZ2V0JywgJ21haWxib3hlcycsICRkb21haW4pIGFzICRtYWlsYm94KSB7DQorICAgICAgJG1haWxib3hlc1tdID0gJG1haWxib3g7DQorICAgIH0NCisgIH0NCisgIGlmICghZW1wdHkoJGluY2x1ZGVzKSkgew0KKyAgICAkcmNwdHMgPSBhcnJheV9pbnRlcnNlY3QoJG1haWxib3hlcywgJGluY2x1ZGVzKTsNCisgIH0NCisgIGVsc2VpZiAoIWVtcHR5KCRleGNsdWRlcykpIHsNCisgICAgJHJjcHRzID0gYXJyYXlfZGlmZigkbWFpbGJveGVzLCAkZXhjbHVkZXMpOw0KKyAgfQ0KKyAgZWxzZSB7DQorICAgICRyY3B0cyA9ICRtYWlsYm94ZXM7DQorICB9DQorICBpZiAoIWVtcHR5KCRyY3B0cykpIHsNCisgICAgaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgMCk7DQorICAgIGluaV9zZXQoJ21heF9pbnB1dF90aW1lJywgMCk7DQorICAgICRtYWlsID0gbmV3IFBIUE1haWxlcjsNCisgICAgJG1haWwtPlRpbWVvdXQgPSAxMDsNCisgICAgJG1haWwtPlNNVFBPcHRpb25zID0gYXJyYXkoDQorICAgICAgJ3NzbCcgPT4gYXJyYXkoDQorICAgICAgICAndmVyaWZ5X3BlZXInID0+IGZhbHNlLA0KKyAgICAgICAgJ3ZlcmlmeV9wZWVyX25hbWUnID0+IGZhbHNlLA0KKyAgICAgICAgJ2FsbG93X3NlbGZfc2lnbmVkJyA9PiB0cnVlDQorICAgICAgKQ0KKyAgICApOw0KKyAgICAkbWFpbC0+aXNTTVRQKCk7DQorICAgICRtYWlsLT5Ib3N0ID0gJ2RvdmVjb3QtbWFpbGNvdyc7DQorICAgICRtYWlsLT5TTVRQQXV0aCA9IGZhbHNlOw0KKyAgICAkbWFpbC0+UG9ydCA9IDI0Ow0KKyAgICAkbWFpbC0+c2V0RnJvbSgkbWFzc19mcm9tKTsNCisgICAgJG1haWwtPlN1YmplY3QgPSAkbWFzc19zdWJqZWN0Ow0KKyAgICAkbWFpbC0+Q2hhclNldCA9IlVURi04IjsNCisgICAgaWYgKCFlbXB0eSgkbWFzc19odG1sKSkgew0KKyAgICAgICRtYWlsLT5Cb2R5ID0gJG1hc3NfaHRtbDsNCisgICAgICAkbWFpbC0+QWx0Qm9keSA9ICRtYXNzX3RleHQ7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJG1haWwtPkJvZHkgPSAkbWFzc190ZXh0Ow0KKyAgICB9DQorICAgICRtYWlsLT5YTWFpbGVyID0gJ01vb01hc3NNYWlsJzsNCisgICAgZm9yZWFjaCAoJHJjcHRzIGFzICRyY3B0KSB7DQorICAgICAgJG1haWwtPkFkZEFkZHJlc3MoJHJjcHQpOw0KKyAgICAgIGlmICghJG1haWwtPnNlbmQoKSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKyAgICAgICAgICAnbXNnJyA9PiAnTWFpbGVyIGVycm9yIChSQ1BUICInIC4gaHRtbHNwZWNpYWxjaGFycygkcmNwdCkgLiAnIik6ICcgLiBzdHJfcmVwbGFjZSgnaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvd2lraS9Ucm91Ymxlc2hvb3RpbmcnLCAnJywgJG1haWwtPkVycm9ySW5mbykNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICAgICRtYWlsLT5DbGVhckFsbFJlY2lwaWVudHMoKTsNCisgICAgfQ0KKyAgfQ0KKyAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKyAgICAnbXNnJyA9PiAnTWFzcyBtYWlsIGpvYiBjb21wbGV0ZWQsIHNlbnQgJyAuIGNvdW50KCRyY3B0cykgLiAnIG1haWxzJw0KKyAgKTsNCit9DQorZnVuY3Rpb24gbG9nZ2VyKCRfZGF0YSA9IGZhbHNlKSB7DQorICAvKg0KKyAgbG9nZ2VyKCkgd2lsbCBiZSBjYWxsZWQgYXMgbGFzdCBmdW5jdGlvbg0KKyAgVG8gbWFudWFsbHkgbG9nIGEgbWVzc2FnZSwgbG9nZ2VyIG5lZWRzIHRvIGJlIGNhbGxlZCBsaWtlIGJlbG93Lg0KKw0KKyAgbG9nZ2VyKGFycmF5KA0KKyAgICAncmV0dXJuJyA9PiBhcnJheSgNCisgICAgICBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXyksDQorICAgICAgICAnbXNnJyA9PiAkZXJyDQorICAgICAgKQ0KKyAgICApDQorICApKTsNCisNCisgIFRoZXNlIG1lc3NhZ2VzIHdpbGwgbm90IGJlIHByaW50ZWQgYXMgYWxlcnQgYm94Lg0KKyAgVG8gZG8gc28sIHB1c2ggdGhlbSB0byAkX1NFU1NJT05bJ3JldHVybiddIGFuZCBkbyBub3QgY2FsbCBsb2dnZXIgYXMgdGhleSB3aWxsIGJlIGluY2x1ZGVkIGF1dG9tYXRpY2FsbHk6DQorDQorICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlciwgJyonKSwNCisgICAgJ21zZycgPT4gJGVycg0KKyAgKTsNCisgICovDQorICBnbG9iYWwgJHBkbzsNCisgIGlmICghJF9kYXRhKSB7DQorICAgICRfZGF0YSA9ICRfU0VTU0lPTjsNCisgIH0NCisgIGlmICghZW1wdHkoJF9kYXRhWydyZXR1cm4nXSkpIHsNCisgICAgJHRhc2sgPSBzdWJzdHIoc3RydG91cHBlcihtZDUodW5pcWlkKHJhbmQoKSwgdHJ1ZSkpKSwgMCwgNik7DQorICAgIGZvcmVhY2ggKCRfZGF0YVsncmV0dXJuJ10gYXMgJHJldHVybikgew0KKyAgICAgICR0eXBlID0gJHJldHVyblsndHlwZSddOw0KKyAgICAgICRtc2cgPSBqc29uX2VuY29kZSgkcmV0dXJuWydtc2cnXSwgSlNPTl9VTkVTQ0FQRURfVU5JQ09ERSk7DQorICAgICAgJGNhbGwgPSBqc29uX2VuY29kZSgkcmV0dXJuWydsb2cnXSwgSlNPTl9VTkVTQ0FQRURfVU5JQ09ERSk7DQorICAgICAgaWYgKCFlbXB0eSgkX1NFU1NJT05bImR1YWwtbG9naW4iXVsidXNlcm5hbWUiXSkpIHsNCisgICAgICAgICR1c2VyID0gJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInVzZXJuYW1lIl0gLiAnID0+ICcgLiAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICRyb2xlID0gJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInJvbGUiXSAuICcgPT4gJyAuICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ107DQorICAgICAgfQ0KKyAgICAgIGVsc2VpZiAoIWVtcHR5KCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddKSkgew0KKyAgICAgICAgJHVzZXIgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICRyb2xlID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkdXNlciA9ICd1bmF1dGhlbnRpY2F0ZWQnOw0KKyAgICAgICAgJHJvbGUgPSAndW5hdXRoZW50aWNhdGVkJzsNCisgICAgICB9DQorICAgICAgLy8gV2UgY2Fubm90IGxvZyB3aGVuIGxvZ3MgaXMgbWlzc2luZy4uLg0KKyAgICAgIHRyeSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBsb2dzYCAoYHR5cGVgLCBgdGFza2AsIGBtc2dgLCBgY2FsbGAsIGB1c2VyYCwgYHJvbGVgLCBgcmVtb3RlYCwgYHRpbWVgKSBWQUxVRVMNCisgICAgICAgICAgKDp0eXBlLCA6dGFzaywgOm1zZywgOmNhbGwsIDp1c2VyLCA6cm9sZSwgOnJlbW90ZSwgVU5JWF9USU1FU1RBTVAoKSkiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOnR5cGUnID0+ICR0eXBlLA0KKyAgICAgICAgICAnOnRhc2snID0+ICR0YXNrLA0KKyAgICAgICAgICAnOmNhbGwnID0+ICRjYWxsLA0KKyAgICAgICAgICAnOm1zZycgPT4gJG1zZywNCisgICAgICAgICAgJzp1c2VyJyA9PiAkdXNlciwNCisgICAgICAgICAgJzpyb2xlJyA9PiAkcm9sZSwNCisgICAgICAgICAgJzpyZW1vdGUnID0+IGdldF9yZW1vdGVfaXAoKQ0KKyAgICAgICAgKSk7DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCisgICAgICAgIC8vIERvIG5vdGhpbmcNCisgICAgICB9DQorICAgIH0NCisgIH0NCisgIGVsc2Ugew0KKyAgICByZXR1cm4gdHJ1ZTsNCisgIH0NCit9DQorZnVuY3Rpb24gaGFzRG9tYWluQWNjZXNzKCR1c2VybmFtZSwgJHJvbGUsICRkb21haW4pIHsNCisJZ2xvYmFsICRwZG87DQorCWlmICghZmlsdGVyX3ZhcigkdXNlcm5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgJiYgIWN0eXBlX2FsbnVtKHN0cl9yZXBsYWNlKGFycmF5KCdfJywgJy4nLCAnLScpLCAnJywgJHVzZXJuYW1lKSkpIHsNCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKwlpZiAoZW1wdHkoJGRvbWFpbikgfHwgIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pKSB7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisJaWYgKCRyb2xlICE9ICdhZG1pbicgJiYgJHJvbGUgIT0gJ2RvbWFpbmFkbWluJykgew0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorICBpZiAoJHJvbGUgPT0gJ2FkbWluJykgew0KKyAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gDQorICAgICAgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6ZG9tYWluJyA9PiAkZG9tYWluKSk7DQorICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBhbGlhc19kb21haW5gIEZST00gYGFsaWFzX2RvbWFpbmANCisgICAgICBXSEVSRSBgYWxpYXNfZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpkb21haW4nID0+ICRkb21haW4pKTsNCisgICAgJG51bV9yZXN1bHRzID0gJG51bV9yZXN1bHRzICsgY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisgIH0NCisgIGVsc2VpZiAoJHJvbGUgPT0gJ2RvbWFpbmFkbWluJykgew0KKyAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5fYWRtaW5zYA0KKyAgICBXSEVSRSAoDQorICAgICAgYGFjdGl2ZWA9JzEnDQorICAgICAgQU5EIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUNCisgICAgICBBTkQgKGBkb21haW5gID0gOmRvbWFpbjEgT1IgYGRvbWFpbmAgPSAoU0VMRUNUIGB0YXJnZXRfZG9tYWluYCBGUk9NIGBhbGlhc19kb21haW5gIFdIRVJFIGBhbGlhc19kb21haW5gID0gOmRvbWFpbjIpKQ0KKyAgICApIik7DQorICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwgJzpkb21haW4xJyA9PiAkZG9tYWluLCAnOmRvbWFpbjInID0+ICRkb21haW4pKTsNCisgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgaWYgKCFlbXB0eSgkbnVtX3Jlc3VsdHMpKSB7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisgIH0NCisJcmV0dXJuIGZhbHNlOw0KK30NCitmdW5jdGlvbiBoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCR1c2VybmFtZSwgJHJvbGUsICRvYmplY3QpIHsNCisJZ2xvYmFsICRwZG87DQorCWlmIChlbXB0eSgkdXNlcm5hbWUpIHx8IGVtcHR5KCRyb2xlKSB8fCBlbXB0eSgkb2JqZWN0KSkgew0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorCWlmICghZmlsdGVyX3ZhcihodG1sX2VudGl0eV9kZWNvZGUocmF3dXJsZGVjb2RlKCR1c2VybmFtZSkpLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpICYmICFjdHlwZV9hbG51bShzdHJfcmVwbGFjZShhcnJheSgnXycsICcuJywgJy0nKSwgJycsICR1c2VybmFtZSkpKSB7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisJaWYgKCRyb2xlICE9ICdhZG1pbicgJiYgJHJvbGUgIT0gJ2RvbWFpbmFkbWluJyAmJiAkcm9sZSAhPSAndXNlcicpIHsNCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKwlpZiAoJHVzZXJuYW1lID09ICRvYmplY3QpIHsNCisJCXJldHVybiB0cnVlOw0KKwl9DQorICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBtYWlsYm94YCBXSEVSRSBgdXNlcm5hbWVgID0gOm9iamVjdCIpOw0KKyAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpvYmplY3QnID0+ICRvYmplY3QpKTsNCisgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICBpZiAoaXNzZXQoJHJvd1snZG9tYWluJ10pICYmIGhhc0RvbWFpbkFjY2VzcygkdXNlcm5hbWUsICRyb2xlLCAkcm93Wydkb21haW4nXSkpIHsNCisgICAgcmV0dXJuIHRydWU7DQorICB9DQorCXJldHVybiBmYWxzZTsNCit9DQorZnVuY3Rpb24gaGFzQWxpYXNPYmplY3RBY2Nlc3MoJHVzZXJuYW1lLCAkcm9sZSwgJG9iamVjdCkgew0KKwlnbG9iYWwgJHBkbzsNCisJaWYgKCFmaWx0ZXJfdmFyKGh0bWxfZW50aXR5X2RlY29kZShyYXd1cmxkZWNvZGUoJHVzZXJuYW1lKSksIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgJiYgIWN0eXBlX2FsbnVtKHN0cl9yZXBsYWNlKGFycmF5KCdfJywgJy4nLCAnLScpLCAnJywgJHVzZXJuYW1lKSkpIHsNCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKwlpZiAoJHJvbGUgIT0gJ2FkbWluJyAmJiAkcm9sZSAhPSAnZG9tYWluYWRtaW4nICYmICRyb2xlICE9ICd1c2VyJykgew0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorCWlmICgkdXNlcm5hbWUgPT0gJG9iamVjdCkgew0KKwkJcmV0dXJuIHRydWU7DQorCX0NCisgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBkb21haW5gIEZST00gYGFsaWFzYCBXSEVSRSBgYWRkcmVzc2AgPSA6b2JqZWN0Iik7DQorICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOm9iamVjdCcgPT4gJG9iamVjdCkpOw0KKyAgJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgIGlmIChpc3NldCgkcm93Wydkb21haW4nXSkgJiYgaGFzRG9tYWluQWNjZXNzKCR1c2VybmFtZSwgJHJvbGUsICRyb3dbJ2RvbWFpbiddKSkgew0KKyAgICByZXR1cm4gdHJ1ZTsNCisgIH0NCisJcmV0dXJuIGZhbHNlOw0KK30NCitmdW5jdGlvbiBwZW1fdG9fZGVyKCRwZW1fa2V5KSB7DQorICAvLyBOZWVkIHRvIHJlbW92ZSBCRUdJTi9FTkQgUFVCTElDIEtFWQ0KKyAgJGxpbmVzID0gZXhwbG9kZSgiXG4iLCB0cmltKCRwZW1fa2V5KSk7DQorICB1bnNldCgkbGluZXNbY291bnQoJGxpbmVzKS0xXSk7DQorICB1bnNldCgkbGluZXNbMF0pOw0KKyAgcmV0dXJuIGJhc2U2NF9kZWNvZGUoaW1wbG9kZSgnJywgJGxpbmVzKSk7DQorfQ0KK2Z1bmN0aW9uIGV4cGFuZF9pcHY2KCRpcCkgew0KKwkkaGV4ID0gdW5wYWNrKCJIKmhleCIsIGluZXRfcHRvbigkaXApKTsNCisJJGlwID0gc3Vic3RyKHByZWdfcmVwbGFjZSgiLyhbQS1mMC05XXs0fSkvIiwgIiQxOiIsICRoZXhbJ2hleCddKSwgMCwgLTEpOw0KKwlyZXR1cm4gJGlwOw0KK30NCitmdW5jdGlvbiBnZW5lcmF0ZV90bHNhX2RpZ2VzdCgkaG9zdG5hbWUsICRwb3J0LCAkc3RhcnR0bHMgPSBudWxsKSB7DQorICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRob3N0bmFtZSkpIHsNCisgICAgcmV0dXJuICJOb3QgYSB2YWxpZCBob3N0bmFtZSI7DQorICB9DQorICBpZiAoZW1wdHkoJHN0YXJ0dGxzKSkgew0KKyAgICAkY29udGV4dCA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZShhcnJheSgic3NsIiA9PiBhcnJheSgiY2FwdHVyZV9wZWVyX2NlcnQiID0+IHRydWUsICd2ZXJpZnlfcGVlcicgPT4gZmFsc2UsICd2ZXJpZnlfcGVlcl9uYW1lJyA9PiBmYWxzZSwgJ2FsbG93X3NlbGZfc2lnbmVkJyA9PiB0cnVlKSkpOw0KKyAgICAkc3RyZWFtID0gc3RyZWFtX3NvY2tldF9jbGllbnQoJ3NzbDovLycgLiAkaG9zdG5hbWUgLiAnOicgLiAkcG9ydCwgJGVycm9yX25yLCAkZXJyb3JfbXNnLCA1LCBTVFJFQU1fQ0xJRU5UX0NPTk5FQ1QsICRjb250ZXh0KTsNCisgICAgaWYgKCEkc3RyZWFtKSB7DQorICAgICAgJGVycm9yX21zZyA9IGlzc2V0KCRlcnJvcl9tc2cpID8gJGVycm9yX21zZyA6ICctJzsNCisgICAgICByZXR1cm4gJGVycm9yX25yIC4gJzogJyAuICRlcnJvcl9tc2c7DQorICAgIH0NCisgIH0NCisgIGVsc2Ugew0KKyAgICAkc3RyZWFtID0gc3RyZWFtX3NvY2tldF9jbGllbnQoJ3RjcDovLycgLiAkaG9zdG5hbWUgLiAnOicgLiAkcG9ydCwgJGVycm9yX25yLCAkZXJyb3JfbXNnLCA1KTsNCisgICAgaWYgKCEkc3RyZWFtKSB7DQorICAgICAgcmV0dXJuICRlcnJvcl9uciAuICc6ICcgLiAkZXJyb3JfbXNnOw0KKyAgICB9DQorICAgICRiYW5uZXIgPSBmcmVhZCgkc3RyZWFtLCA1MTIgKTsNCisgICAgaWYgKHByZWdfbWF0Y2goIi9eMjIwL2kiLCAkYmFubmVyKSkgeyAvLyBTTVRQDQorICAgICAgZndyaXRlKCRzdHJlYW0sIkhFTE8gdGxzYS5nZW5lcmF0b3IubG9jYWxcclxuIik7DQorICAgICAgZnJlYWQoJHN0cmVhbSwgNTEyKTsNCisgICAgICBmd3JpdGUoJHN0cmVhbSwiU1RBUlRUTFNcclxuIik7DQorICAgICAgZnJlYWQoJHN0cmVhbSwgNTEyKTsNCisgICAgfQ0KKyAgICBlbHNlaWYgKHByZWdfbWF0Y2goIi9pbWFwLitzdGFydHRscy9pIiwgJGJhbm5lcikpIHsgLy8gSU1BUA0KKyAgICAgIGZ3cml0ZSgkc3RyZWFtLCJBMSBTVEFSVFRMU1xyXG4iKTsNCisgICAgICBmcmVhZCgkc3RyZWFtLCA1MTIpOw0KKyAgICB9DQorICAgIGVsc2VpZiAocHJlZ19tYXRjaCgiL15cK09LLyIsICRiYW5uZXIpKSB7IC8vIFBPUDMNCisgICAgICBmd3JpdGUoJHN0cmVhbSwiU1RMU1xyXG4iKTsNCisgICAgICBmcmVhZCgkc3RyZWFtLCA1MTIpOw0KKyAgICB9DQorICAgIGVsc2VpZiAocHJlZ19tYXRjaCgiL15PSy9tIiwgJGJhbm5lcikpIHsgLy8gU2lldmUNCisgICAgICBmd3JpdGUoJHN0cmVhbSwiU1RBUlRUTFNcclxuIik7DQorICAgICAgZnJlYWQoJHN0cmVhbSwgNTEyKTsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisgICAgICByZXR1cm4gJ1Vua25vd24gYmFubmVyOiAiJyAuIGh0bWxzcGVjaWFsY2hhcnModHJpbSgkYmFubmVyKSkgLiAnIic7DQorICAgIH0NCisgICAgLy8gVXBncmFkZSBjb25uZWN0aW9uDQorICAgIHN0cmVhbV9zZXRfYmxvY2tpbmcoJHN0cmVhbSwgdHJ1ZSk7DQorICAgIHN0cmVhbV9jb250ZXh0X3NldF9vcHRpb24oJHN0cmVhbSwgJ3NzbCcsICdjYXB0dXJlX3BlZXJfY2VydCcsIHRydWUpOw0KKyAgICBzdHJlYW1fY29udGV4dF9zZXRfb3B0aW9uKCRzdHJlYW0sICdzc2wnLCAndmVyaWZ5X3BlZXInLCBmYWxzZSk7DQorICAgIHN0cmVhbV9jb250ZXh0X3NldF9vcHRpb24oJHN0cmVhbSwgJ3NzbCcsICd2ZXJpZnlfcGVlcl9uYW1lJywgZmFsc2UpOw0KKyAgICBzdHJlYW1fY29udGV4dF9zZXRfb3B0aW9uKCRzdHJlYW0sICdzc2wnLCAnYWxsb3dfc2VsZl9zaWduZWQnLCB0cnVlKTsNCisgICAgc3RyZWFtX3NvY2tldF9lbmFibGVfY3J5cHRvKCRzdHJlYW0sIHRydWUsIFNUUkVBTV9DUllQVE9fTUVUSE9EX0FOWV9DTElFTlQpOw0KKyAgICBzdHJlYW1fc2V0X2Jsb2NraW5nKCRzdHJlYW0sIGZhbHNlKTsNCisgIH0NCisgICRwYXJhbXMgPSBzdHJlYW1fY29udGV4dF9nZXRfcGFyYW1zKCRzdHJlYW0pOw0KKyAgaWYgKCFlbXB0eSgkcGFyYW1zWydvcHRpb25zJ11bJ3NzbCddWydwZWVyX2NlcnRpZmljYXRlJ10pKSB7DQorICAgICRrZXlfcmVzb3VyY2UgPSBvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYygkcGFyYW1zWydvcHRpb25zJ11bJ3NzbCddWydwZWVyX2NlcnRpZmljYXRlJ10pOw0KKyAgICAvLyBXZSBjYW5ub3QgZ2V0IFsncnNhJ11bJ24nXSwgdGhlIGJpbmFyeSBkYXRhIHdvdWxkIGNvbnRhaW4gQkVHSU4vRU5EIFBVQkxJQyBLRVkNCisgICAgJGtleV9kYXRhID0gb3BlbnNzbF9wa2V5X2dldF9kZXRhaWxzKCRrZXlfcmVzb3VyY2UpWydrZXknXTsNCisgICAgcmV0dXJuICczIDEgMSAnIC4gb3BlbnNzbF9kaWdlc3QocGVtX3RvX2Rlcigka2V5X2RhdGEpLCAnc2hhMjU2Jyk7DQorICB9DQorICBlbHNlIHsNCisgICAgcmV0dXJuICdFcnJvcjogQ2Fubm90IHJlYWQgcGVlciBjZXJ0aWZpY2F0ZSc7DQorICB9DQorfQ0KK2Z1bmN0aW9uIGFsZXJ0Ym94X2xvZ19wYXJzZXIoJF9kYXRhKXsNCisgIGdsb2JhbCAkbGFuZzsNCisgIGlmIChpc3NldCgkX2RhdGFbJ3JldHVybiddKSkgew0KKyAgICBmb3JlYWNoICgkX2RhdGFbJ3JldHVybiddIGFzICRyZXR1cm4pIHsNCisgICAgICAvLyBHZXQgdHlwZQ0KKyAgICAgICR0eXBlID0gJHJldHVyblsndHlwZSddOw0KKyAgICAgIC8vIElmIGEgbGFuZ1t0eXBlXVttc2ddIHN0cmluZyBleGlzdHMsIHVzZSBpdCBhcyBtZXNzYWdlDQorICAgICAgaWYgKGlzX3N0cmluZygkbGFuZ1skcmV0dXJuWyd0eXBlJ11dWyRyZXR1cm5bJ21zZyddXSkpIHsNCisgICAgICAgICRtc2cgPSAkbGFuZ1skcmV0dXJuWyd0eXBlJ11dWyRyZXR1cm5bJ21zZyddXTsNCisgICAgICB9DQorICAgICAgLy8gSWYgbXNnIGlzIGFuIGFycmF5LCB1c2UgZmlyc3QgZWxlbWVudCBhcyBsYW5ndWFnZSBzdHJpbmcgYW5kIHJ1biBwcmludGYgb24gaXQgd2l0aCByZW1haW5pbmcgYXJyYXkgZWxlbWVudHMNCisgICAgICBlbHNlaWYgKGlzX2FycmF5KCRyZXR1cm5bJ21zZyddKSkgew0KKyAgICAgICAgJG1zZyA9IGFycmF5X3NoaWZ0KCRyZXR1cm5bJ21zZyddKTsNCisgICAgICAgICRtc2cgPSB2c3ByaW50ZigNCisgICAgICAgICAgJGxhbmdbJHJldHVyblsndHlwZSddXVskbXNnXSwNCisgICAgICAgICAgJHJldHVyblsnbXNnJ10NCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICAgIC8vIElmIG5vbmUgYXBwbGllcywgdXNlIG1zZyBhcyByZXR1cm5lZCBtZXNzYWdlDQorICAgICAgZWxzZSB7DQorICAgICAgICAkbXNnID0gJHJldHVyblsnbXNnJ107DQorICAgICAgfQ0KKyAgICAgICRsb2dfYXJyYXlbXSA9IGFycmF5KCdtc2cnID0+ICRtc2csICd0eXBlJyA9PiBqc29uX2VuY29kZSgkdHlwZSkpOw0KKyAgICB9DQorICAgIGlmICghZW1wdHkoJGxvZ19hcnJheSkpIHsNCisgICAgICByZXR1cm4gJGxvZ19hcnJheTsNCisgICAgfQ0KKyAgfQ0KKyAgcmV0dXJuIGZhbHNlOw0KK30NCitmdW5jdGlvbiB2ZXJpZnlfaGFzaCgkaGFzaCwgJHBhc3N3b3JkKSB7DQorICBpZiAocHJlZ19tYXRjaCgnL157U1NIQTI1Nn0vaScsICRoYXNoKSkgew0KKyAgICAvLyBSZW1vdmUgdGFnIGlmIGFueQ0KKyAgICAkaGFzaCA9IHByZWdfcmVwbGFjZSgnL157U1NIQTI1Nn0vaScsICcnLCAkaGFzaCk7DQorICAgIC8vIERlY29kZSBoYXNoDQorICAgICRkaGFzaCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KKyAgICAvLyBHZXQgZmlyc3QgMzIgYnl0ZXMgb2YgYmluYXJ5IHdoaWNoIGVxdWFscyBhIFNIQTI1NiBoYXNoDQorICAgICRvaGFzaCA9IHN1YnN0cigkZGhhc2gsIDAsIDMyKTsNCisgICAgLy8gUmVtb3ZlIFNIQTI1NiBoYXNoIGZyb20gZGVjb2RlZCBoYXNoIHRvIGdldCBvcmlnaW5hbCBzYWx0IHN0cmluZw0KKyAgICAkb3NhbHQgPSBzdHJfcmVwbGFjZSgkb2hhc2gsICcnLCAkZGhhc2gpOw0KKyAgICAvLyBDaGVjayBzaW5nbGUgc2FsdGVkIFNIQTI1NiBoYXNoIGFnYWluc3QgZXh0cmFjdGVkIGhhc2gNCisgICAgaWYgKGhhc2hfZXF1YWxzKGhhc2goJ3NoYTI1NicsICRwYXNzd29yZCAuICRvc2FsdCwgdHJ1ZSksICRvaGFzaCkpIHsNCisgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgfQ0KKyAgfQ0KKyAgZWxzZWlmIChwcmVnX21hdGNoKCcvXntTU0hBfS9pJywgJGhhc2gpKSB7DQorICAgIC8vIFJlbW92ZSB0YWcgaWYgYW55DQorICAgICRoYXNoID0gcHJlZ19yZXBsYWNlKCcvXntTU0hBfS9pJywgJycsICRoYXNoKTsNCisgICAgLy8gRGVjb2RlIGhhc2gNCisgICAgJGRoYXNoID0gYmFzZTY0X2RlY29kZSgkaGFzaCk7DQorICAgIC8vIEdldCBmaXJzdCAyMCBieXRlcyBvZiBiaW5hcnkgd2hpY2ggZXF1YWxzIGEgU1NIQSBoYXNoDQorICAgICRvaGFzaCA9IHN1YnN0cigkZGhhc2gsIDAsIDIwKTsNCisgICAgLy8gUmVtb3ZlIFNTSEEgaGFzaCBmcm9tIGRlY29kZWQgaGFzaCB0byBnZXQgb3JpZ2luYWwgc2FsdCBzdHJpbmcNCisgICAgJG9zYWx0ID0gc3RyX3JlcGxhY2UoJG9oYXNoLCAnJywgJGRoYXNoKTsNCisgICAgLy8gQ2hlY2sgc2luZ2xlIHNhbHRlZCBTU0hBIGhhc2ggYWdhaW5zdCBleHRyYWN0ZWQgaGFzaA0KKyAgICBpZiAoaGFzaF9lcXVhbHMoaGFzaCgnc2hhMScsICRwYXNzd29yZCAuICRvc2FsdCwgdHJ1ZSksICRvaGFzaCkpIHsNCisgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgfQ0KKyAgfQ0KKyAgZWxzZWlmIChwcmVnX21hdGNoKCcvXntQTEFJTi1NRDV9L2knLCAkaGFzaCkpIHsNCisgICAgJGhhc2ggPSBwcmVnX3JlcGxhY2UoJy9ee1BMQUlOLU1ENX0vaScsICcnLCAkaGFzaCk7DQorICAgIGlmIChtZDUoJHBhc3N3b3JkKSA9PSAkaGFzaCkgew0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9DQorICB9DQorICBlbHNlaWYgKHByZWdfbWF0Y2goJy9ee1NIQTUxMi1DUllQVH0vaScsICRoYXNoKSkgew0KKyAgICAvLyBSZW1vdmUgdGFnIGlmIGFueQ0KKyAgICAkaGFzaCA9IHByZWdfcmVwbGFjZSgnL157U0hBNTEyLUNSWVBUfS9pJywgJycsICRoYXNoKTsNCisgICAgLy8gRGVjb2RlIGhhc2gNCisgICAgcHJlZ19tYXRjaCgnL1xcJDZcXCQoLiopXFwkKC4qKS9pJywgJGhhc2gsICRoYXNoX2FycmF5KTsNCisgICAgJG9zYWx0ID0gJGhhc2hfYXJyYXlbMV07DQorICAgICRvaGFzaCA9ICRoYXNoX2FycmF5WzJdOw0KKyAgICBpZiAoaGFzaF9lcXVhbHMoY3J5cHQoJHBhc3N3b3JkLCAnJDYkJyAuICRvc2FsdCAuICckJyksICRoYXNoKSkgew0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9DQorICB9DQorICBlbHNlaWYgKHByZWdfbWF0Y2goJy9ee1NTSEE1MTJ9L2knLCAkaGFzaCkpIHsNCisgICAgJGhhc2ggPSBwcmVnX3JlcGxhY2UoJy9ee1NTSEE1MTJ9L2knLCAnJywgJGhhc2gpOw0KKyAgICAvLyBEZWNvZGUgaGFzaA0KKyAgICAkZGhhc2ggPSBiYXNlNjRfZGVjb2RlKCRoYXNoKTsNCisgICAgLy8gR2V0IGZpcnN0IDY0IGJ5dGVzIG9mIGJpbmFyeSB3aGljaCBlcXVhbHMgYSBTSEE1MTIgaGFzaA0KKyAgICAkb2hhc2ggPSBzdWJzdHIoJGRoYXNoLCAwLCA2NCk7DQorICAgIC8vIFJlbW92ZSBTSEE1MTIgaGFzaCBmcm9tIGRlY29kZWQgaGFzaCB0byBnZXQgb3JpZ2luYWwgc2FsdCBzdHJpbmcNCisgICAgJG9zYWx0ID0gc3RyX3JlcGxhY2UoJG9oYXNoLCAnJywgJGRoYXNoKTsNCisgICAgLy8gQ2hlY2sgc2luZ2xlIHNhbHRlZCBTSEE1MTIgaGFzaCBhZ2FpbnN0IGV4dHJhY3RlZCBoYXNoDQorICAgIGlmIChoYXNoX2VxdWFscyhoYXNoKCdzaGE1MTInLCAkcGFzc3dvcmQgLiAkb3NhbHQsIHRydWUpLCAkb2hhc2gpKSB7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisgIH0NCisgIGVsc2VpZiAocHJlZ19tYXRjaCgnL157TUQ1LUNSWVBUfS9pJywgJGhhc2gpKSB7DQorICAgICRoYXNoID0gcHJlZ19yZXBsYWNlKCcvXntNRDUtQ1JZUFR9L2knLCAnJywgJGhhc2gpOw0KKyAgICBpZiAocGFzc3dvcmRfdmVyaWZ5KCRwYXNzd29yZCwgJGhhc2gpKSB7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisgIH0gDQorICBlbHNlaWYgKHByZWdfbWF0Y2goJy9ee0JMRi1DUllQVH0vaScsICRoYXNoKSkgew0KKyAgICAkaGFzaCA9IHByZWdfcmVwbGFjZSgnL157QkxGLUNSWVBUfS9pJywgJycsICRoYXNoKTsNCisgICAgaWYgKHBhc3N3b3JkX3ZlcmlmeSgkcGFzc3dvcmQsICRoYXNoKSkgew0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9DQorICB9DQorICByZXR1cm4gZmFsc2U7DQorfQ0KK2Z1bmN0aW9uIGNoZWNrX2xvZ2luKCR1c2VyLCAkcGFzcykgew0KKwlnbG9iYWwgJHBkbzsNCisJZ2xvYmFsICRyZWRpczsNCisJZ2xvYmFsICRpbWFwX3NlcnZlcjsNCisJaWYgKCFmaWx0ZXJfdmFyKCR1c2VyLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpICYmICFjdHlwZV9hbG51bShzdHJfcmVwbGFjZShhcnJheSgnXycsICcuJywgJy0nKSwgJycsICR1c2VyKSkpIHsNCisgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAgICdtc2cnID0+ICdtYWxmb3JtZWRfdXNlcm5hbWUnDQorICAgICk7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisJJHVzZXIgPSBzdHJ0b2xvd2VyKHRyaW0oJHVzZXIpKTsNCisJJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHBhc3N3b3JkYCBGUk9NIGBhZG1pbmANCisJCQlXSEVSRSBgc3VwZXJhZG1pbmAgPSAnMScNCisJCQlBTkQgYGFjdGl2ZWAgPSAnMScNCisJCQlBTkQgYHVzZXJuYW1lYCA9IDp1c2VyIik7DQorCSRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcicgPT4gJHVzZXIpKTsNCisJJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorCWZvcmVhY2ggKCRyb3dzIGFzICRyb3cpIHsNCisJCWlmICh2ZXJpZnlfaGFzaCgkcm93WydwYXNzd29yZCddLCAkcGFzcykpIHsNCisgICAgICBpZiAoZ2V0X3RmYSgkdXNlcilbJ25hbWUnXSAhPSAibm9uZSIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3VzZXJuYW1lJ10gPSAkdXNlcjsNCisgICAgICAgICRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3JvbGUnXSA9ICJhZG1pbiI7DQorICAgICAgICAkX1NFU1NJT05bJ3BlbmRpbmdfdGZhX21ldGhvZCddID0gZ2V0X3RmYSgkdXNlcilbJ25hbWUnXTsNCisgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnbGRlbGF5J10pOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2luZm8nLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYXdhaXRpbmdfdGZhX2NvbmZpcm1hdGlvbicNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gInBlbmRpbmciOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnbGRlbGF5J10pOw0KKyAgICAgICAgLy8gUmVhY3RpdmF0ZSBURkEgaWYgaXQgd2FzIHNldCB0byAiZGVhY3RpdmF0ZSBURkEgZm9yIG5leHQgbG9naW4iDQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgdGZhYCBTRVQgYGFjdGl2ZWA9JzEnIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlciIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VyJyA9PiAkdXNlcikpOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbG9nZ2VkX2luX2FzJywgJHVzZXIpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuICJhZG1pbiI7DQorICAgICAgfQ0KKwkJfQ0KKwl9DQorCSRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBwYXNzd29yZGAgRlJPTSBgYWRtaW5gDQorCQkJV0hFUkUgYHN1cGVyYWRtaW5gID0gJzAnDQorCQkJQU5EIGBhY3RpdmVgPScxJw0KKwkJCUFORCBgdXNlcm5hbWVgID0gOnVzZXIiKTsNCisJJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VyJyA9PiAkdXNlcikpOw0KKwkkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisJZm9yZWFjaCAoJHJvd3MgYXMgJHJvdykgew0KKwkJaWYgKHZlcmlmeV9oYXNoKCRyb3dbJ3Bhc3N3b3JkJ10sICRwYXNzKSAhPT0gZmFsc2UpIHsNCisgICAgICBpZiAoZ2V0X3RmYSgkdXNlcilbJ25hbWUnXSAhPSAibm9uZSIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3VzZXJuYW1lJ10gPSAkdXNlcjsNCisgICAgICAgICRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3JvbGUnXSA9ICJkb21haW5hZG1pbiI7DQorICAgICAgICAkX1NFU1NJT05bJ3BlbmRpbmdfdGZhX21ldGhvZCddID0gZ2V0X3RmYSgkdXNlcilbJ25hbWUnXTsNCisgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnbGRlbGF5J10pOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2luZm8nLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYXdhaXRpbmdfdGZhX2NvbmZpcm1hdGlvbicNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gInBlbmRpbmciOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnbGRlbGF5J10pOw0KKyAgICAgICAgLy8gUmVhY3RpdmF0ZSBURkEgaWYgaXQgd2FzIHNldCB0byAiZGVhY3RpdmF0ZSBURkEgZm9yIG5leHQgbG9naW4iDQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgdGZhYCBTRVQgYGFjdGl2ZWA9JzEnIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlciIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VyJyA9PiAkdXNlcikpOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbG9nZ2VkX2luX2FzJywgJHVzZXIpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuICJkb21haW5hZG1pbiI7DQorICAgICAgfQ0KKwkJfQ0KKwl9DQorCSRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBwYXNzd29yZGAgRlJPTSBgbWFpbGJveGANCisgICAgICBJTk5FUiBKT0lOIGRvbWFpbiBvbiBtYWlsYm94LmRvbWFpbiA9IGRvbWFpbi5kb21haW4NCisJCQlXSEVSRSBga2luZGAgTk9UIFJFR0VYUCAnbG9jYXRpb258dGhpbmd8Z3JvdXAnDQorICAgICAgICBBTkQgYG1haWxib3hgLmBhY3RpdmVgPScxJw0KKyAgICAgICAgQU5EIGBkb21haW5gLmBhY3RpdmVgPScxJw0KKyAgICAgICAgQU5EIGB1c2VybmFtZWAgPSA6dXNlciIpOw0KKwkkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXInID0+ICR1c2VyKSk7DQorCSRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKwlmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7DQorCQlpZiAodmVyaWZ5X2hhc2goJHJvd1sncGFzc3dvcmQnXSwgJHBhc3MpICE9PSBmYWxzZSkgew0KKwkJCXVuc2V0KCRfU0VTU0lPTlsnbGRlbGF5J10pOw0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2xvZ2dlZF9pbl9hcycsICR1c2VyKQ0KKyAgICAgICk7DQorCQkJcmV0dXJuICJ1c2VyIjsNCisJCX0NCisJfQ0KKwlpZiAoIWlzc2V0KCRfU0VTU0lPTlsnbGRlbGF5J10pKSB7DQorCQkkX1NFU1NJT05bJ2xkZWxheSddID0gIjAiOw0KKyAgICAkcmVkaXMtPnB1Ymxpc2goIkYyQl9DSEFOTkVMIiwgIm1haWxjb3cgVUk6IEludmFsaWQgcGFzc3dvcmQgZm9yICIgLiAkdXNlciAuICIgYnkgIiAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsNCisgICAgZXJyb3JfbG9nKCJtYWlsY293IFVJOiBJbnZhbGlkIHBhc3N3b3JkIGZvciAiIC4gJHVzZXIgLiAiIGJ5ICIgLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7DQorCX0NCisJZWxzZWlmICghaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10pKSB7DQorCQkkX1NFU1NJT05bJ2xkZWxheSddID0gJF9TRVNTSU9OWydsZGVsYXknXSswLjU7DQorICAgICRyZWRpcy0+cHVibGlzaCgiRjJCX0NIQU5ORUwiLCAibWFpbGNvdyBVSTogSW52YWxpZCBwYXNzd29yZCBmb3IgIiAuICR1c2VyIC4gIiBieSAiIC4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOw0KKwkJZXJyb3JfbG9nKCJtYWlsY293IFVJOiBJbnZhbGlkIHBhc3N3b3JkIGZvciAiIC4gJHVzZXIgLiAiIGJ5ICIgLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7DQorCX0NCisgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VyLCAnKicpLA0KKyAgICAnbXNnJyA9PiAnbG9naW5fZmFpbGVkJw0KKyAgKTsNCisJc2xlZXAoJF9TRVNTSU9OWydsZGVsYXknXSk7DQorICByZXR1cm4gZmFsc2U7DQorfQ0KK2Z1bmN0aW9uIGZvcm1hdEJ5dGVzKCRzaXplLCAkcHJlY2lzaW9uID0gMikgew0KKwlpZighaXNfbnVtZXJpYygkc2l6ZSkpIHsNCisJCXJldHVybiAiMCI7DQorCX0NCisJJGJhc2UgPSBsb2coJHNpemUsIDEwMjQpOw0KKwkkc3VmZml4ZXMgPSBhcnJheSgnIEJ5dGUnLCAnIEtpQicsICcgTWlCJywgJyBHaUInLCAnIFRpQicpOw0KKwlpZiAoJHNpemUgPT0gIjAiKSB7DQorCQlyZXR1cm4gIjAiOw0KKwl9DQorCXJldHVybiByb3VuZChwb3coMTAyNCwgJGJhc2UgLSBmbG9vcigkYmFzZSkpLCAkcHJlY2lzaW9uKSAuICRzdWZmaXhlc1tmbG9vcigkYmFzZSldOw0KK30NCitmdW5jdGlvbiB1cGRhdGVfc29nb19zdGF0aWNfdmlldygpIHsNCisgIGlmIChnZXRlbnYoJ1NLSVBfU09HTycpID09ICJ5Iikgew0KKyAgICByZXR1cm4gdHJ1ZTsNCisgIH0NCisgIGdsb2JhbCAkcGRvOw0KKyAgZ2xvYmFsICRsYW5nOw0KKyAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUICdPSycgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuVEFCTEVTDQorICAgIFdIRVJFIFRBQkxFX05BTUUgPSAnc29nb192aWV3JyIpOw0KKyAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJSRVBMQUNFIElOVE8gX3NvZ29fc3RhdGljX3ZpZXcgKGBjX3VpZGAsIGBkb21haW5gLCBgY19uYW1lYCwgYGNfcGFzc3dvcmRgLCBgY19jbmAsIGBtYWlsYCwgYGFsaWFzZXNgLCBgYWRfYWxpYXNlc2AsIGBleHRfYWNsYCwgYGtpbmRgLCBgbXVsdGlwbGVfYm9va2luZ3NgKQ0KKyAgICAgIFNFTEVDVCBgY191aWRgLCBgZG9tYWluYCwgYGNfbmFtZWAsIGBjX3Bhc3N3b3JkYCwgYGNfY25gLCBgbWFpbGAsIGBhbGlhc2VzYCwgYGFkX2FsaWFzZXNgLCBgZXh0X2FjbGAsIGBraW5kYCwgYG11bHRpcGxlX2Jvb2tpbmdzYCBmcm9tIHNvZ29fdmlldyIpOw0KKyAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJERUxFVEUgRlJPTSBfc29nb19zdGF0aWNfdmlldyBXSEVSRSBgY191aWRgIE5PVCBJTiAoU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgbWFpbGJveGAgV0hFUkUgYGFjdGl2ZWAgPSAnMScpOyIpOw0KKyAgfQ0KKyAgZmx1c2hfbWVtY2FjaGVkKCk7DQorfQ0KK2Z1bmN0aW9uIGVkaXRfdXNlcl9hY2NvdW50KCRfZGF0YSkgew0KKwlnbG9iYWwgJGxhbmc7DQorCWdsb2JhbCAkcGRvOw0KKyAgJF9kYXRhX2xvZyA9ICRfZGF0YTsNCisgICFpc3NldCgkX2RhdGFfbG9nWyd1c2VyX25ld19wYXNzJ10pID86ICRfZGF0YV9sb2dbJ3VzZXJfbmV3X3Bhc3MnXSA9ICcqJzsNCisgICFpc3NldCgkX2RhdGFfbG9nWyd1c2VyX25ld19wYXNzMiddKSA/OiAkX2RhdGFfbG9nWyd1c2VyX25ld19wYXNzMiddID0gJyonOw0KKyAgIWlzc2V0KCRfZGF0YV9sb2dbJ3VzZXJfb2xkX3Bhc3MnXSkgPzogJF9kYXRhX2xvZ1sndXNlcl9vbGRfcGFzcyddID0gJyonOw0KKyAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAkcm9sZSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ107DQorCSRwYXNzd29yZF9vbGQgPSAkX2RhdGFbJ3VzZXJfb2xkX3Bhc3MnXTsNCisgIGlmIChmaWx0ZXJfdmFyKCR1c2VybmFtZSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMID09PSBmYWxzZSkgfHwgJHJvbGUgIT0gJ3VzZXInKSB7DQorICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKwlpZiAoaXNzZXQoJF9kYXRhWyd1c2VyX25ld19wYXNzJ10pICYmIGlzc2V0KCRfZGF0YVsndXNlcl9uZXdfcGFzczInXSkpIHsNCisJCSRwYXNzd29yZF9uZXcJPSAkX2RhdGFbJ3VzZXJfbmV3X3Bhc3MnXTsNCisJCSRwYXNzd29yZF9uZXcyCT0gJF9kYXRhWyd1c2VyX25ld19wYXNzMiddOw0KKwl9DQorCSRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBwYXNzd29yZGAgRlJPTSBgbWFpbGJveGANCisJCQlXSEVSRSBga2luZGAgTk9UIFJFR0VYUCAnbG9jYXRpb258dGhpbmd8Z3JvdXAnDQorICAgICAgICBBTkQgYHVzZXJuYW1lYCA9IDp1c2VyIik7DQorCSRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcicgPT4gJHVzZXJuYW1lKSk7DQorCSRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICBpZiAoIXZlcmlmeV9oYXNoKCRyb3dbJ3Bhc3N3b3JkJ10sICRwYXNzd29yZF9vbGQpKSB7DQorICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKwlpZiAoaXNzZXQoJHBhc3N3b3JkX25ldykgJiYgaXNzZXQoJHBhc3N3b3JkX25ldzIpKSB7DQorCQlpZiAoIWVtcHR5KCRwYXNzd29yZF9uZXcyKSAmJiAhZW1wdHkoJHBhc3N3b3JkX25ldykpIHsNCisJCQlpZiAoJHBhc3N3b3JkX25ldzIgIT0gJHBhc3N3b3JkX25ldykgew0KKwkJCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJCQkndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorCQkJCQknbXNnJyA9PiAncGFzc3dvcmRfbWlzbWF0Y2gnDQorCQkJCSk7DQorCQkJCXJldHVybiBmYWxzZTsNCisJCQl9DQorCQkJaWYgKCFwcmVnX21hdGNoKCcvJyAuICRHTE9CQUxTWydQQVNTV0RfUkVHRVAnXSAuICcvJywgJHBhc3N3b3JkX25ldykpIHsNCisJCQkJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCQkJCQkndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisJCQkJCQknbXNnJyA9PiAncGFzc3dvcmRfY29tcGxleGl0eScNCisJCQkJCSk7DQorCQkJCQlyZXR1cm4gZmFsc2U7DQorCQkJfQ0KKwkJCSRwYXNzd29yZF9oYXNoZWQgPSBoYXNoX3Bhc3N3b3JkKCRwYXNzd29yZF9uZXcpOw0KKwkJCXRyeSB7DQorCQkJCSRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBtYWlsYm94YCBTRVQgYHBhc3N3b3JkYCA9IDpwYXNzd29yZF9oYXNoZWQsIGBhdHRyaWJ1dGVzYCA9IEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQuZm9yY2VfcHdfdXBkYXRlJywgJzAnKSBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorCQkJCSRzdG10LT5leGVjdXRlKGFycmF5KA0KKwkJCQkJJzpwYXNzd29yZF9oYXNoZWQnID0+ICRwYXNzd29yZF9oYXNoZWQsDQorCQkJCQknOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisJCQkJKSk7DQorCQkJfQ0KKwkJCWNhdGNoIChQRE9FeGNlcHRpb24gJGUpIHsNCisJCQkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCQkJJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfZGF0YV9sb2cpLA0KKwkJCQkJJ21zZycgPT4gYXJyYXkoJ215c3FsX2Vycm9yJywgJGUpDQorCQkJCSk7DQorCQkJCXJldHVybiBmYWxzZTsNCisJCQl9DQorCQl9DQorCX0NCisgIHVwZGF0ZV9zb2dvX3N0YXRpY192aWV3KCk7DQorCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCSd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorCQknbXNnJyA9PiBhcnJheSgnbWFpbGJveF9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKSkNCisJKTsNCit9DQorZnVuY3Rpb24gdXNlcl9nZXRfYWxpYXNfZGV0YWlscygkdXNlcm5hbWUpIHsNCisJZ2xvYmFsICRwZG87DQorICAkZGF0YVsnZGlyZWN0X2FsaWFzZXMnXSA9IGZhbHNlOw0KKyAgJGRhdGFbJ3NoYXJlZF9hbGlhc2VzJ10gPSBmYWxzZTsNCisgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICJ1c2VyIikgew0KKyAgICAkdXNlcm5hbWUJPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgIH0NCisgIGlmICghZmlsdGVyX3ZhcigkdXNlcm5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgJGRhdGFbJ2FkZHJlc3MnXSA9ICR1c2VybmFtZTsNCisgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBhZGRyZXNzYCBBUyBgc2hhcmVkX2FsaWFzZXNgLCBgcHVibGljX2NvbW1lbnRgIEZST00gYGFsaWFzYA0KKyAgICBXSEVSRSBgZ290b2AgUkVHRVhQIDp1c2VybmFtZV9nb3RvDQorICAgIEFORCBgYWRkcmVzc2AgTk9UIExJS0UgJ0AlJw0KKyAgICBBTkQgYGdvdG9gICE9IDp1c2VybmFtZV9nb3RvMg0KKyAgICBBTkQgYGFkZHJlc3NgICE9IDp1c2VybmFtZV9hZGRyZXNzIik7DQorICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgJzp1c2VybmFtZV9nb3RvJyA9PiAnKF58LCknLiR1c2VybmFtZS4nKCR8LCknLA0KKyAgICAnOnVzZXJuYW1lX2dvdG8yJyA9PiAkdXNlcm5hbWUsDQorICAgICc6dXNlcm5hbWVfYWRkcmVzcycgPT4gJHVzZXJuYW1lDQorICAgICkpOw0KKyAgJHJ1biA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJHJ1bikpIHsNCisgICAgJGRhdGFbJ3NoYXJlZF9hbGlhc2VzJ11bJHJvd1snc2hhcmVkX2FsaWFzZXMnXV1bJ3B1YmxpY19jb21tZW50J10gPSBodG1sc3BlY2lhbGNoYXJzKCRyb3dbJ3B1YmxpY19jb21tZW50J10pOw0KKw0KKyAgICAvLyRkYXRhWydzaGFyZWRfYWxpYXNlcyddW10gPSAkcm93WydzaGFyZWRfYWxpYXNlcyddOw0KKyAgfQ0KKw0KKyAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGFkZHJlc3NgIEFTIGBkaXJlY3RfYWxpYXNlc2AsIGBwdWJsaWNfY29tbWVudGAgRlJPTSBgYWxpYXNgDQorICAgIFdIRVJFIGBnb3RvYCA9IDp1c2VybmFtZV9nb3RvDQorICAgIEFORCBgYWRkcmVzc2AgTk9UIExJS0UgJ0AlJw0KKyAgICBBTkQgYGFkZHJlc3NgICE9IDp1c2VybmFtZV9hZGRyZXNzIik7DQorICAkc3RtdC0+ZXhlY3V0ZSgNCisgICAgYXJyYXkoDQorICAgICc6dXNlcm5hbWVfZ290bycgPT4gJHVzZXJuYW1lLA0KKyAgICAnOnVzZXJuYW1lX2FkZHJlc3MnID0+ICR1c2VybmFtZQ0KKyAgKSk7DQorICAkcnVuID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkcnVuKSkgew0KKyAgICAkZGF0YVsnZGlyZWN0X2FsaWFzZXMnXVskcm93WydkaXJlY3RfYWxpYXNlcyddXVsncHVibGljX2NvbW1lbnQnXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHJvd1sncHVibGljX2NvbW1lbnQnXSk7DQorICB9DQorICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBDT05DQVQobG9jYWxfcGFydCwgJ0AnLCBhbGlhc19kb21haW4pIEFTIGBhZF9hbGlhc2AsIGBhbGlhc19kb21haW5gIEZST00gYG1haWxib3hgDQorICAgIExFRlQgT1VURVIgSk9JTiBgYWxpYXNfZG9tYWluYCBvbiBgdGFyZ2V0X2RvbWFpbmAgPSBgZG9tYWluYA0KKyAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUgOyIpOw0KKyAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAkcnVuID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkcnVuKSkgew0KKyAgICBpZiAoZW1wdHkoJHJvd1snYWRfYWxpYXMnXSkpIHsNCisgICAgICBjb250aW51ZTsNCisgICAgfQ0KKyAgICAkZGF0YVsnZGlyZWN0X2FsaWFzZXMnXVskcm93WydhZF9hbGlhcyddXVsncHVibGljX2NvbW1lbnQnXSA9ICfihqogJyAuICRyb3dbJ2FsaWFzX2RvbWFpbiddOw0KKyAgfQ0KKyAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgSUZOVUxMKEdST1VQX0NPTkNBVChgc2VuZF9hc2AgU0VQQVJBVE9SICcsICcpLCAnJiMxMDAwODsnKSBBUyBgc2VuZF9hc2AgRlJPTSBgc2VuZGVyX2FjbGAgV0hFUkUgYGxvZ2dlZF9pbl9hc2AgPSA6dXNlcm5hbWUgQU5EIGBzZW5kX2FzYCBOT1QgTElLRSAnQCUnOyIpOw0KKyAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAkcnVuID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkcnVuKSkgew0KKyAgICAkZGF0YVsnYWxpYXNlc19hbHNvX3NlbmRfYXMnXSA9ICRyb3dbJ3NlbmRfYXMnXTsNCisgIH0NCisgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIENPTkNBVF9XUygnLCAnLCBJRk5VTEwoR1JPVVBfQ09OQ0FUKERJU1RJTkNUIGBzZW5kX2FzYCBTRVBBUkFUT1IgJywgJyksICcmIzEwMDA4OycpLCBHUk9VUF9DT05DQVQoRElTVElOQ1QgQ09OQ0FUKCdAJyxgYWxpYXNfZG9tYWluYCkgU0VQQVJBVE9SICcsICcpKSBBUyBgc2VuZF9hc2AgRlJPTSBgc2VuZGVyX2FjbGAgTEVGVCBKT0lOIGBhbGlhc19kb21haW5gIE9OIGBhbGlhc19kb21haW5gLmB0YXJnZXRfZG9tYWluYCA9ICBUUklNKExFQURJTkcgJ0AnIEZST00gYHNlbmRfYXNgKSBXSEVSRSBgbG9nZ2VkX2luX2FzYCA9IDp1c2VybmFtZSBBTkQgYHNlbmRfYXNgIExJS0UgJ0AlJzsiKTsNCisgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOw0KKyAgJHJ1biA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJHJ1bikpIHsNCisgICAgJGRhdGFbJ2FsaWFzZXNfc2VuZF9hc19hbGwnXSA9ICRyb3dbJ3NlbmRfYXMnXTsNCisgIH0NCisgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIElGTlVMTChHUk9VUF9DT05DQVQoYGFkZHJlc3NgIFNFUEFSQVRPUiAnLCAnKSwgJyYjMTAwMDg7JykgYXMgYGFkZHJlc3NgIEZST00gYGFsaWFzYCBXSEVSRSBgZ290b2AgUkVHRVhQIDp1c2VybmFtZSBBTkQgYGFkZHJlc3NgIExJS0UgJ0AlJzsiKTsNCisgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICcoXnwsKScuJHVzZXJuYW1lLicoJHwsKScpKTsNCisgICRydW4gPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICB3aGlsZSAoJHJvdyA9IGFycmF5X3NoaWZ0KCRydW4pKSB7DQorICAgICRkYXRhWydpc19jYXRjaF9hbGwnXSA9ICRyb3dbJ2FkZHJlc3MnXTsNCisgIH0NCisgIHJldHVybiAkZGF0YTsNCit9DQorZnVuY3Rpb24gaXNfdmFsaWRfZG9tYWluX25hbWUoJGRvbWFpbl9uYW1lKSB7DQorCWlmIChlbXB0eSgkZG9tYWluX25hbWUpKSB7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisJJGRvbWFpbl9uYW1lID0gaWRuX3RvX2FzY2lpKCRkb21haW5fbmFtZSwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpOw0KKwlyZXR1cm4gKHByZWdfbWF0Y2goIi9eKFthLXpcZF0oLSpbYS16XGRdKSopKFwuKFthLXpcZF0oLSpbYS16XGRdKSopKSokL2kiLCAkZG9tYWluX25hbWUpDQorCQkgICAmJiBwcmVnX21hdGNoKCIvXi57MSwyNTN9JC8iLCAkZG9tYWluX25hbWUpDQorCQkgICAmJiBwcmVnX21hdGNoKCIvXlteXC5dezEsNjN9KFwuW15cLl17MSw2M30pKiQvIiwgJGRvbWFpbl9uYW1lKSk7DQorfQ0KK2Z1bmN0aW9uIHNldF90ZmEoJF9kYXRhKSB7DQorCWdsb2JhbCAkcGRvOw0KKwlnbG9iYWwgJHl1Ymk7DQorCWdsb2JhbCAkdTJmOw0KKwlnbG9iYWwgJHRmYTsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1snY29uZmlybV9wYXNzd29yZCddKSA/OiAkX2RhdGFfbG9nWydjb25maXJtX3Bhc3N3b3JkJ10gPSAnKic7DQorICAkdXNlcm5hbWUgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJkb21haW5hZG1pbiIgJiYNCisgICAgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHBhc3N3b3JkYCBGUk9NIGBhZG1pbmANCisgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXIiKTsNCisgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcicgPT4gJHVzZXJuYW1lKSk7DQorICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgaWYgKCF2ZXJpZnlfaGFzaCgkcm93WydwYXNzd29yZCddLCAkX2RhdGFbImNvbmZpcm1fcGFzc3dvcmQiXSkpIHsNCisgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfZGF0YV9sb2cpLA0KKyAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICApOw0KKyAgICByZXR1cm4gZmFsc2U7DQorICB9DQorDQorCXN3aXRjaCAoJF9kYXRhWyJ0ZmFfbWV0aG9kIl0pIHsNCisJCWNhc2UgInl1Ymlfb3RwIjoNCisgICAgICAka2V5X2lkID0gKCFpc3NldCgkX2RhdGFbImtleV9pZCJdKSkgPyAndW5pZGVudGlmaWVkJyA6ICRfZGF0YVsia2V5X2lkIl07DQorICAgICAgJHl1Ymljb19pZCA9ICRfZGF0YVsneXViaWNvX2lkJ107DQorICAgICAgJHl1Ymljb19rZXkgPSAkX2RhdGFbJ3l1Ymljb19rZXknXTsNCisgICAgICAkeXViaSA9IG5ldyBBdXRoX1l1YmljbygkeXViaWNvX2lkLCAkeXViaWNvX2tleSk7DQorICAgICAgaWYgKCEkeXViaSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorCQkJaWYgKCFjdHlwZV9hbG51bSgkX2RhdGFbIm90cF90b2tlbiJdKSB8fCBzdHJsZW4oJF9kYXRhWyJvdHBfdG9rZW4iXSkgIT0gNDQpIHsNCisJCQkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCQkJJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfZGF0YV9sb2cpLA0KKwkJCQkJJ21zZycgPT4gJ3RmYV90b2tlbl9pbnZhbGlkJw0KKwkJCQkpOw0KKwkJCQlyZXR1cm4gZmFsc2U7DQorCQkJfQ0KKyAgICAgICR5YXV0aCA9ICR5dWJpLT52ZXJpZnkoJF9kYXRhWyJvdHBfdG9rZW4iXSk7DQorICAgICAgaWYgKFBFQVI6OmlzRXJyb3IoJHlhdXRoKSkgew0KKwkJCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJCQkndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCd5b3RwX3ZlcmlmaWNhdGlvbl9mYWlsZWQnLCAkeWF1dGgtPmdldE1lc3NhZ2UoKSkNCisJCQkJKTsNCisJCQkJcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisJCQl0cnkgew0KKyAgICAgICAgLy8gV2UgY291bGQgYWxzbyBkbyBhIG1vZGhleCB0cmFuc2xhdGlvbiBoZXJlDQorICAgICAgICAkeXViaWNvX21vZGhleF9pZCA9IHN1YnN0cigkX2RhdGFbIm90cF90b2tlbiJdLCAwLCAxMik7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGB0ZmFgDQorICAgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUNCisgICAgICAgICAgICBBTkQgKGBhdXRobWVjaGAgIT0gJ3l1Ymlfb3RwJykNCisgICAgICAgICAgICBPUiAoYGF1dGhtZWNoYCA9ICd5dWJpX290cCcgQU5EIGBzZWNyZXRgIExJS0UgOm1vZGhleCkiKTsNCisJCQkJJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAnOm1vZGhleCcgPT4gJyUnIC4gJHl1Ymljb19tb2RoZXhfaWQpKTsNCisJCQkJJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgdGZhYCAoYGtleV9pZGAsIGB1c2VybmFtZWAsIGBhdXRobWVjaGAsIGBhY3RpdmVgLCBgc2VjcmV0YCkgVkFMVUVTDQorCQkJCQkoOmtleV9pZCwgOnVzZXJuYW1lLCAneXViaV9vdHAnLCAnMScsIDpzZWNyZXQpIik7DQorCQkJCSRzdG10LT5leGVjdXRlKGFycmF5KCc6a2V5X2lkJyA9PiAka2V5X2lkLCAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsICc6c2VjcmV0JyA9PiAkeXViaWNvX2lkIC4gJzonIC4gJHl1Ymljb19rZXkgLiAnOicgLiAkeXViaWNvX21vZGhleF9pZCkpOw0KKwkJCX0NCisJCQljYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQorCQkJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCQkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisJCQkJCSdtc2cnID0+IGFycmF5KCdteXNxbF9lcnJvcicsICRlKQ0KKwkJCQkpOw0KKwkJCQlyZXR1cm4gZmFsc2U7DQorCQkJfQ0KKwkJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCQkJJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorCQkJCSdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorCQkJKTsNCisJCWJyZWFrOw0KKwkJY2FzZSAidTJmIjoNCisgICAgICAka2V5X2lkID0gKCFpc3NldCgkX2RhdGFbImtleV9pZCJdKSkgPyAndW5pZGVudGlmaWVkJyA6ICRfZGF0YVsia2V5X2lkIl07DQorICAgICAgdHJ5IHsNCisgICAgICAgICRyZWcgPSAkdTJmLT5kb1JlZ2lzdGVyKGpzb25fZGVjb2RlKCRfU0VTU0lPTlsncmVnUmVxJ10pLCBqc29uX2RlY29kZSgkX2RhdGFbJ3Rva2VuJ10pKTsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHRmYWAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSBBTkQgYGF1dGhtZWNoYCAhPSAndTJmJyIpOw0KKwkJCQkkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYHRmYWAgKGB1c2VybmFtZWAsIGBrZXlfaWRgLCBgYXV0aG1lY2hgLCBga2V5SGFuZGxlYCwgYHB1YmxpY0tleWAsIGBjZXJ0aWZpY2F0ZWAsIGBjb3VudGVyYCwgYGFjdGl2ZWApIFZBTFVFUyAoPywgPywgJ3UyZicsID8sID8sID8sID8sICcxJykiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCR1c2VybmFtZSwgJGtleV9pZCwgJHJlZy0+a2V5SGFuZGxlLCAkcmVnLT5wdWJsaWNLZXksICRyZWctPmNlcnRpZmljYXRlLCAkcmVnLT5jb3VudGVyKSk7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICApOw0KKyAgICAgICAgJF9TRVNTSU9OWydyZWdSZXEnXSA9IG51bGw7DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndTJmX3ZlcmlmaWNhdGlvbl9mYWlsZWQnLCAkZS0+Z2V0TWVzc2FnZSgpKQ0KKyAgICAgICAgKTsNCisgICAgICAgICRfU0VTU0lPTlsncmVnUmVxJ10gPSBudWxsOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisJCWJyZWFrOw0KKwkJY2FzZSAidG90cCI6DQorICAgICAgJGtleV9pZCA9ICghaXNzZXQoJF9kYXRhWyJrZXlfaWQiXSkpID8gJ3VuaWRlbnRpZmllZCcgOiAkX2RhdGFbImtleV9pZCJdOw0KKyAgICAgIGlmICgkdGZhLT52ZXJpZnlDb2RlKCRfUE9TVFsndG90cF9zZWNyZXQnXSwgJF9QT1NUWyd0b3RwX2NvbmZpcm1fdG9rZW4nXSkgPT09IHRydWUpIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHRmYWAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGB0ZmFgIChgdXNlcm5hbWVgLCBga2V5X2lkYCwgYGF1dGhtZWNoYCwgYHNlY3JldGAsIGBhY3RpdmVgKSBWQUxVRVMgKD8sID8sICd0b3RwJywgPywgJzEnKSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJHVzZXJuYW1lLCAka2V5X2lkLCAkX1BPU1RbJ3RvdHBfc2VjcmV0J10pKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ29iamVjdF9tb2RpZmllZCcsICR1c2VybmFtZSkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICd0b3RwX3ZlcmlmaWNhdGlvbl9mYWlsZWQnDQorICAgICAgICApOw0KKyAgICAgIH0NCisJCWJyZWFrOw0KKwkJY2FzZSAibm9uZSI6DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgdGZhYCBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorCQkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCQkndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisJCQkJJ21zZycgPT4gYXJyYXkoJ29iamVjdF9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKSkNCisJCQkpOw0KKwkJYnJlYWs7DQorCX0NCit9DQorZnVuY3Rpb24gZmlkbzIoJF9kYXRhKSB7DQorCWdsb2JhbCAkcGRvOw0KKyAgJF9kYXRhX2xvZyA9ICRfZGF0YTsNCisgIC8vIE5vdCBsb2dnaW5nIHJlZ2lzdHJhdGlvbiBkYXRhLCBvbmx5IGFjdGlvbnMNCisgIC8vIFNpbGVudCBlcnJvcnMgZm9yICJnZXQiIHJlcXVlc3RzDQorCXN3aXRjaCAoJF9kYXRhWyJhY3Rpb24iXSkgew0KKwkJY2FzZSAicmVnaXN0ZXIiOg0KKyAgICAgICR1c2VybmFtZSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddOw0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJkb21haW5hZG1pbiIgJiYNCisgICAgICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhWyJhY3Rpb24iXSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgZmlkbzJgIChgdXNlcm5hbWVgLCBgcnBJZGAsIGBjcmVkZW50aWFsUHVibGljS2V5YCwgYGNlcnRpZmljYXRlQ2hhaW5gLCBgY2VydGlmaWNhdGVgLCBgY2VydGlmaWNhdGVJc3N1ZXJgLCBgY2VydGlmaWNhdGVTdWJqZWN0YCwgYHNpZ25hdHVyZUNvdW50ZXJgLCBgQUFHVUlEYCwgYGNyZWRlbnRpYWxJZGApDQorICAgICAgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgJHVzZXJuYW1lLA0KKyAgICAgICAgJF9kYXRhWydyZWdpc3RyYXRpb24nXS0+cnBJZCwNCisgICAgICAgICRfZGF0YVsncmVnaXN0cmF0aW9uJ10tPmNyZWRlbnRpYWxQdWJsaWNLZXksDQorICAgICAgICAkX2RhdGFbJ3JlZ2lzdHJhdGlvbiddLT5jZXJ0aWZpY2F0ZUNoYWluLA0KKyAgICAgICAgJF9kYXRhWydyZWdpc3RyYXRpb24nXS0+Y2VydGlmaWNhdGUsDQorICAgICAgICAkX2RhdGFbJ3JlZ2lzdHJhdGlvbiddLT5jZXJ0aWZpY2F0ZUlzc3VlciwNCisgICAgICAgICRfZGF0YVsncmVnaXN0cmF0aW9uJ10tPmNlcnRpZmljYXRlU3ViamVjdCwNCisgICAgICAgICRfZGF0YVsncmVnaXN0cmF0aW9uJ10tPnNpZ25hdHVyZUNvdW50ZXIsDQorICAgICAgICAkX2RhdGFbJ3JlZ2lzdHJhdGlvbiddLT5BQUdVSUQsDQorICAgICAgICAkX2RhdGFbJ3JlZ2lzdHJhdGlvbiddLT5jcmVkZW50aWFsSWQpDQorICAgICAgKTsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFbImFjdGlvbiJdKSwNCisgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgKTsNCisJCWJyZWFrOw0KKwkJY2FzZSAiZ2V0X3VzZXJfY2lkcyI6DQorICAgICAgLy8gVXNlZCB0byBleGNsdWRlIGV4aXN0aW5nIENyZWRlbnRpYWxJZHMgd2hpbGUgcmVnaXN0ZXJpbmcNCisgICAgICAkdXNlcm5hbWUgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiZG9tYWluYWRtaW4iICYmDQorICAgICAgICAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgY3JlZGVudGlhbElkYCBGUk9NIGBmaWRvMmAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOw0KKyAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICRjaWRzW10gPSAkcm93WydjcmVkZW50aWFsSWQnXTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRjaWRzOw0KKwkJYnJlYWs7DQorCQljYXNlICJnZXRfYWxsX2NpZHMiOg0KKyAgICAgIC8vIE9ubHkgbmVlZGVkIHdoZW4gdXNpbmcgZmlkbzIgd2l0aCB1c2VybmFtZQ0KKyAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNFTEVDVCBgY3JlZGVudGlhbElkYCBGUk9NIGBmaWRvMmAiKTsNCisgICAgICAkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICB3aGlsZSgkcm93ID0gYXJyYXlfc2hpZnQoJHJvd3MpKSB7DQorICAgICAgICAkY2lkc1tdID0gJHJvd1snY3JlZGVudGlhbElkJ107DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkY2lkczsNCisJCWJyZWFrOw0KKyAgICBjYXNlICJnZXRfYnlfYjY0Y2lkIjoNCisgICAgICBpZiAoIWlzc2V0KCRfZGF0YVsnY2lkJ10pIHx8IGVtcHR5KCRfZGF0YVsnY2lkJ10pKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBjZXJ0aWZpY2F0ZVN1YmplY3RgLCBgdXNlcm5hbWVgLCBgY3JlZGVudGlhbFB1YmxpY0tleWAsIFNIQTIoYGNyZWRlbnRpYWxJZGAsIDI1NikgQVMgYGNpZGAgRlJPTSBgZmlkbzJgIFdIRVJFIFRPX0JBU0U2NChgY3JlZGVudGlhbElkYCkgPSA6Y2lkIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpjaWQnID0+ICRfZGF0YVsnY2lkJ10pKTsNCisgICAgICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIGlmIChlbXB0eSgkcm93KSB8fCBlbXB0eSgkcm93WydjcmVkZW50aWFsUHVibGljS2V5J10pIHx8IGVtcHR5KCRyb3dbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRkYXRhWydwdWJfa2V5J10gPSAkcm93WydjcmVkZW50aWFsUHVibGljS2V5J107DQorICAgICAgJGRhdGFbJ3VzZXJuYW1lJ10gPSAkcm93Wyd1c2VybmFtZSddOw0KKyAgICAgICRkYXRhWydzdWJqZWN0J10gPSAkcm93WydjZXJ0aWZpY2F0ZVN1YmplY3QnXTsNCisgICAgICAkZGF0YVsnY2lkJ10gPSAkcm93WydjaWQnXTsNCisgICAgICByZXR1cm4gJGRhdGE7DQorCQlicmVhazsNCisJCWNhc2UgImdldF9mcmllbmRseV9uYW1lcyI6DQorICAgICAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImRvbWFpbmFkbWluIiAmJg0KKyAgICAgICAgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgU0hBMihgY3JlZGVudGlhbElkYCwgMjU2KSBBUyBgY2lkYCwgYGNyZWF0ZWRgLCBgY2VydGlmaWNhdGVTdWJqZWN0YCwgYGZyaWVuZGx5TmFtZWAgRlJPTSBgZmlkbzJgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICB3aGlsZSgkcm93ID0gYXJyYXlfc2hpZnQoJHJvd3MpKSB7DQorICAgICAgICAkZm5zW10gPSBhcnJheSgNCisgICAgICAgICAgInN1YmplY3QiID0+IChlbXB0eSgkcm93WydjZXJ0aWZpY2F0ZVN1YmplY3QnXSkgPyAnVW5rbm93biAoJyAuICRyb3dbJ2NyZWF0ZWQnXSAuICcpJyA6ICRyb3dbJ2NlcnRpZmljYXRlU3ViamVjdCddKSwNCisgICAgICAgICAgImZuIiA9PiAkcm93WydmcmllbmRseU5hbWUnXSwNCisgICAgICAgICAgImNpZCIgPT4gJHJvd1snY2lkJ10NCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZm5zOw0KKwkJYnJlYWs7DQorCQljYXNlICJ1bnNldF9maWRvMl9rZXkiOg0KKyAgICAgICR1c2VybmFtZSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddOw0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJkb21haW5hZG1pbiIgJiYNCisgICAgICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhWyJhY3Rpb24iXSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgZmlkbzJgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUgQU5EIFNIQTIoYGNyZWRlbnRpYWxJZGAsIDI1NikgPSA6Y2lkIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAnOmNpZCcgPT4gJF9kYXRhWydwb3N0X2RhdGEnXVsndW5zZXRfZmlkbzJfa2V5J10NCisgICAgICApKTsNCisJCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJCSd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfZGF0YV9sb2cpLA0KKwkJCQknbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkdXNlcm5hbWUpKQ0KKwkJCSk7DQorCQlicmVhazsNCisgICAgY2FzZSAiZWRpdF9mbiI6DQorICAgICAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImRvbWFpbmFkbWluIiAmJg0KKyAgICAgICAgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFbImFjdGlvbiJdKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgZmlkbzJgIFNFVCBgZnJpZW5kbHlOYW1lYCA9IDpmcmllbmRseU5hbWUgV0hFUkUgU0hBMihgY3JlZGVudGlhbElkYCwgMjU2KSA9IDpjaWQgQU5EIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICc6ZnJpZW5kbHlOYW1lJyA9PiAkX2RhdGFbJ2ZpZG8yX2F0dHJzJ11bJ2ZpZG8yX2ZuJ10sDQorICAgICAgICAnOmNpZCcgPT4gJF9kYXRhWydmaWRvMl9hdHRycyddWydmaWRvMl9jaWQnXQ0KKyAgICAgICkpOw0KKwkJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCQkJJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorCQkJCSdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorCQkJKTsNCisJCWJyZWFrOw0KKwl9DQorfQ0KK2Z1bmN0aW9uIHVuc2V0X3RmYV9rZXkoJF9kYXRhKSB7DQorICAvLyBDYW4gb25seSB1bnNldCBvd24ga2V5cw0KKyAgLy8gTmVlZHMgYXQgbGVhc3Qgb25lIGtleSBsZWZ0DQorICBnbG9iYWwgJHBkbzsNCisgIGdsb2JhbCAkbGFuZzsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICAkaWQgPSBpbnR2YWwoJF9kYXRhWyd1bnNldF90ZmFfa2V5J10pOw0KKyAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiZG9tYWluYWRtaW4iICYmDQorICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICApOw0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgIH0NCisgIHRyeSB7DQorICAgIGlmICghaXNfbnVtZXJpYygkaWQpKSB7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIENPVU5UKCopIEFTIGBrZXlzYCBGUk9NIGB0ZmFgDQorICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSBBTkQgYGFjdGl2ZWAgPSAnMSciKTsNCisgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgIGlmICgkcm93WydrZXlzJ10gPT0gIjEiKSB7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+ICdsYXN0X2tleScNCisgICAgICApOw0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKyAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGB0ZmFgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUgQU5EIGBpZGAgPSA6aWQiKTsNCisgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAnOmlkJyA9PiAkaWQpKTsNCisgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2RhdGFfbG9nKSwNCisgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgJHVzZXJuYW1lKQ0KKyAgICApOw0KKyAgfQ0KKyAgY2F0Y2ggKFBET0V4Y2VwdGlvbiAkZSkgew0KKyAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9kYXRhX2xvZyksDQorICAgICAgJ21zZycgPT4gYXJyYXkoJ215c3FsX2Vycm9yJywgJGUpDQorICAgICk7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCit9DQorZnVuY3Rpb24gZ2V0X3RmYSgkdXNlcm5hbWUgPSBudWxsKSB7DQorCWdsb2JhbCAkcGRvOw0KKyAgaWYgKGlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddKSkgew0KKyAgICAkdXNlcm5hbWUgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgIH0NCisgIGVsc2VpZiAoZW1wdHkoJHVzZXJuYW1lKSkgew0KKyAgICByZXR1cm4gZmFsc2U7DQorICB9DQorICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gYHRmYWANCisgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIEFORCBgYWN0aXZlYCA9ICcxJyIpOw0KKyAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKw0KKwlzd2l0Y2ggKCRyb3dbImF1dGhtZWNoIl0pIHsNCisJCWNhc2UgInl1Ymlfb3RwIjoNCisgICAgICAkZGF0YVsnbmFtZSddID0gInl1Ymlfb3RwIjsNCisgICAgICAkZGF0YVsncHJldHR5J10gPSAiWXViaWNvIE9UUCI7DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCwgYGtleV9pZGAsIFJJR0hUKGBzZWNyZXRgLCAxMikgQVMgJ21vZGhleCcgRlJPTSBgdGZhYCBXSEVSRSBgYXV0aG1lY2hgID0gJ3l1Ymlfb3RwJyBBTkQgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICkpOw0KKyAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICRkYXRhWydhZGRpdGlvbmFsJ11bXSA9ICRyb3c7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZGF0YTsNCisgICAgYnJlYWs7DQorCQljYXNlICJ1MmYiOg0KKyAgICAgICRkYXRhWyduYW1lJ10gPSAidTJmIjsNCisgICAgICAkZGF0YVsncHJldHR5J10gPSAiRmlkbyBVMkYiOw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsIGBrZXlfaWRgIEZST00gYHRmYWAgV0hFUkUgYGF1dGhtZWNoYCA9ICd1MmYnIEFORCBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgKSk7DQorICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgJGRhdGFbJ2FkZGl0aW9uYWwnXVtdID0gJHJvdzsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRkYXRhOw0KKyAgICBicmVhazsNCisJCWNhc2UgImhvdHAiOg0KKyAgICAgICRkYXRhWyduYW1lJ10gPSAiaG90cCI7DQorICAgICAgJGRhdGFbJ3ByZXR0eSddID0gIkhNQUMtYmFzZWQgT1RQIjsNCisgICAgICByZXR1cm4gJGRhdGE7DQorCQlicmVhazsNCisgCQljYXNlICJ0b3RwIjoNCisgICAgICAkZGF0YVsnbmFtZSddID0gInRvdHAiOw0KKyAgICAgICRkYXRhWydwcmV0dHknXSA9ICJUaW1lLWJhc2VkIE9UUCI7DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCwgYGtleV9pZGAsIGBzZWNyZXRgIEZST00gYHRmYWAgV0hFUkUgYGF1dGhtZWNoYCA9ICd0b3RwJyBBTkQgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICkpOw0KKyAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICRkYXRhWydhZGRpdGlvbmFsJ11bXSA9ICRyb3c7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZGF0YTsNCisgICAgICBicmVhazsNCisgICAgZGVmYXVsdDoNCisgICAgICAkZGF0YVsnbmFtZSddID0gJ25vbmUnOw0KKyAgICAgICRkYXRhWydwcmV0dHknXSA9ICItIjsNCisgICAgICByZXR1cm4gJGRhdGE7DQorICAgIGJyZWFrOw0KKwl9DQorfQ0KK2Z1bmN0aW9uIHZlcmlmeV90ZmFfbG9naW4oJHVzZXJuYW1lLCAkdG9rZW4pIHsNCisJZ2xvYmFsICRwZG87DQorCWdsb2JhbCAkeXViaTsNCisJZ2xvYmFsICR1MmY7DQorCWdsb2JhbCAkdGZhOw0KKyAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGF1dGhtZWNoYCBGUk9NIGB0ZmFgDQorICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSBBTkQgYGFjdGl2ZWAgPSAnMSciKTsNCisgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOw0KKyAgJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisNCisJc3dpdGNoICgkcm93WyJhdXRobWVjaCJdKSB7DQorCQljYXNlICJ5dWJpX290cCI6DQorCQkJaWYgKCFjdHlwZV9hbG51bSgkdG9rZW4pIHx8IHN0cmxlbigkdG9rZW4pICE9IDQ0KSB7DQorCQkJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCQkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlcm5hbWUsICcqJyksDQorCQkJCQknbXNnJyA9PiBhcnJheSgneW90cF92ZXJpZmljYXRpb25fZmFpbGVkJywgJ3Rva2VuIGxlbmd0aCBlcnJvcicpDQorCQkJCSk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICR5dWJpY29fbW9kaGV4X2lkID0gc3Vic3RyKCR0b2tlbiwgMCwgMTIpOw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsIGBzZWNyZXRgIEZST00gYHRmYWANCisgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZQ0KKyAgICAgICAgICBBTkQgYGF1dGhtZWNoYCA9ICd5dWJpX290cCcNCisgICAgICAgICAgQU5EIGBhY3RpdmVgPScxJw0KKyAgICAgICAgICBBTkQgYHNlY3JldGAgTElLRSA6bW9kaGV4Iik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAnOm1vZGhleCcgPT4gJyUnIC4gJHl1Ymljb19tb2RoZXhfaWQpKTsNCisgICAgICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICR5dWJpY29fYXV0aCA9IGV4cGxvZGUoJzonLCAkcm93WydzZWNyZXQnXSk7DQorICAgICAgJHl1YmkgPSBuZXcgQXV0aF9ZdWJpY28oJHl1Ymljb19hdXRoWzBdLCAkeXViaWNvX2F1dGhbMV0pOw0KKyAgICAgICR5YXV0aCA9ICR5dWJpLT52ZXJpZnkoJHRva2VuKTsNCisgICAgICBpZiAoUEVBUjo6aXNFcnJvcigkeWF1dGgpKSB7DQorCQkJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisJCQkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlcm5hbWUsICcqJyksDQorCQkJCQknbXNnJyA9PiBhcnJheSgneW90cF92ZXJpZmljYXRpb25fZmFpbGVkJywgJHlhdXRoLT5nZXRNZXNzYWdlKCkpDQorCQkJCSk7DQorCQkJCXJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkX1NFU1NJT05bJ3RmYV9pZCddID0gJHJvd1snaWQnXTsNCisJCQkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCQkJJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlcm5hbWUsICcqJyksDQorCQkJCQknbXNnJyA9PiAndmVyaWZpZWRfeW90cF9sb2dpbicNCisJCQkJKTsNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgIH0NCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VybmFtZSwgJyonKSwNCisgICAgICAgICdtc2cnID0+IGFycmF5KCd5b3RwX3ZlcmlmaWNhdGlvbl9mYWlsZWQnLCAndW5rbm93bicpDQorICAgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgYnJlYWs7DQorICBjYXNlICJ1MmYiOg0KKyAgICB0cnkgew0KKyAgICAgICRyZWcgPSAkdTJmLT5kb0F1dGhlbnRpY2F0ZShqc29uX2RlY29kZSgkX1NFU1NJT05bJ2F1dGhSZXEnXSksIGdldF91MmZfcmVnaXN0cmF0aW9ucygkdXNlcm5hbWUpLCBqc29uX2RlY29kZSgkdG9rZW4pKTsNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgaWRgIEZST00gYHRmYWAgV0hFUkUgYGtleUhhbmRsZWAgPSA/Iik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJHJlZy0+a2V5SGFuZGxlKSk7DQorICAgICAgJHJvd19rZXlfaWQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgJF9TRVNTSU9OWyd0ZmFfaWQnXSA9ICRyb3dfa2V5X2lkWydpZCddOw0KKyAgICAgICRfU0VTU0lPTlsnYXV0aFJlcSddID0gbnVsbDsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlcm5hbWUsICcqJyksDQorICAgICAgICAnbXNnJyA9PiAndmVyaWZpZWRfdTJmX2xvZ2luJw0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisgICAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJHVzZXJuYW1lLCAnKicpLA0KKyAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3UyZl92ZXJpZmljYXRpb25fZmFpbGVkJywgJGUtPmdldE1lc3NhZ2UoKSkNCisgICAgICApOw0KKyAgICAgICRfU0VTU0lPTlsncmVnUmVxJ10gPSBudWxsOw0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKyAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJHVzZXJuYW1lLCAnKicpLA0KKyAgICAgICdtc2cnID0+IGFycmF5KCd1MmZfdmVyaWZpY2F0aW9uX2ZhaWxlZCcsICd1bmtub3duJykNCisgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgYnJlYWs7DQorICBjYXNlICJob3RwIjoNCisgICAgICByZXR1cm4gZmFsc2U7DQorICBicmVhazsNCisgIGNhc2UgInRvdHAiOg0KKyAgICB0cnkgew0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsIGBzZWNyZXRgIEZST00gYHRmYWANCisgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZQ0KKyAgICAgICAgICBBTkQgYGF1dGhtZWNoYCA9ICd0b3RwJw0KKyAgICAgICAgICBBTkQgYGFjdGl2ZWA9JzEnIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICBpZiAoJHRmYS0+dmVyaWZ5Q29kZSgkcm93WydzZWNyZXQnXSwgJF9QT1NUWyd0b2tlbiddKSA9PT0gdHJ1ZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWyd0ZmFfaWQnXSA9ICRyb3dbJ2lkJ107DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJHVzZXJuYW1lLCAnKicpLA0KKyAgICAgICAgICAnbXNnJyA9PiAndmVyaWZpZWRfdG90cF9sb2dpbicNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICB9DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlcm5hbWUsICcqJyksDQorICAgICAgICAnbXNnJyA9PiAndG90cF92ZXJpZmljYXRpb25fZmFpbGVkJw0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorICAgIGNhdGNoIChQRE9FeGNlcHRpb24gJGUpIHsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICR1c2VybmFtZSwgJyonKSwNCisgICAgICAgICdtc2cnID0+IGFycmF5KCdteXNxbF9lcnJvcicsICRlKQ0KKyAgICAgICk7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorICBicmVhazsNCisgIGRlZmF1bHQ6DQorICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkdXNlcm5hbWUsICcqJyksDQorICAgICAgJ21zZycgPT4gJ3Vua25vd25fdGZhX21ldGhvZCcNCisgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgYnJlYWs7DQorCX0NCisgIHJldHVybiBmYWxzZTsNCit9DQorZnVuY3Rpb24gYWRtaW5fYXBpKCRhY2Nlc3MsICRhY3Rpb24sICRkYXRhID0gbnVsbCkgew0KKwlnbG9iYWwgJHBkbzsNCisJaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKwkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKwkJCSdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKwkJKTsNCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKyAgaWYgKCRhY2Nlc3MgIT09ICJybyIgJiYgJGFjY2VzcyAhPT0gInJ3Iikgew0KKwkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKwkJCSdtc2cnID0+ICdpbnZhbGlkIGFjY2VzcyB0eXBlJw0KKwkJKTsNCisJCXJldHVybiBmYWxzZTsNCisgIH0NCisgIGlmICgkYWN0aW9uID09ICJlZGl0Iikgew0KKyAgICAkYWN0aXZlID0gKCFlbXB0eSgkZGF0YVsnYWN0aXZlJ10pKSA/IDEgOiAwOw0KKyAgICAkc2tpcF9pcF9jaGVjayA9IChpc3NldCgkZGF0YVsnc2tpcF9pcF9jaGVjayddKSkgPyAxIDogMDsNCisgICAgJGFsbG93X2Zyb20gPSBhcnJheV9tYXAoJ3RyaW0nLCBwcmVnX3NwbGl0KCAiLyggfCx8O3xcbikvIiwgJGRhdGFbJ2FsbG93X2Zyb20nXSkpOw0KKyAgICBmb3JlYWNoICgkYWxsb3dfZnJvbSBhcyAka2V5ID0+ICR2YWwpIHsNCisgICAgICBpZiAoZW1wdHkoJHZhbCkpIHsNCisgICAgICAgIHVuc2V0KCRhbGxvd19mcm9tWyRrZXldKTsNCisgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgIH0NCisgICAgICBpZiAodmFsaWRfbmV0d29yaygkdmFsKSAhPT0gdHJ1ZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRkYXRhKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2lwX2ludmFsaWQnLCBodG1sc3BlY2lhbGNoYXJzKCRhbGxvd19mcm9tWyRrZXldKSkNCisgICAgICAgICk7DQorICAgICAgICB1bnNldCgkYWxsb3dfZnJvbVska2V5XSk7DQorICAgICAgICBjb250aW51ZTsNCisgICAgICB9DQorICAgIH0NCisgICAgJGFsbG93X2Zyb20gPSBpbXBsb2RlKCcsJywgYXJyYXlfdW5pcXVlKGFycmF5X2ZpbHRlcigkYWxsb3dfZnJvbSkpKTsNCisgICAgaWYgKGVtcHR5KCRhbGxvd19mcm9tKSAmJiAkc2tpcF9pcF9jaGVjayA9PSAwKSB7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkZGF0YSksDQorICAgICAgICAnbXNnJyA9PiAnaXBfbGlzdF9lbXB0eScNCisgICAgICApOw0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKyAgICAkYXBpX2tleSA9IGltcGxvZGUoJy0nLCBhcnJheSgNCisgICAgICBzdHJ0b3VwcGVyKGJpbjJoZXgocmFuZG9tX2J5dGVzKDMpKSksDQorICAgICAgc3RydG91cHBlcihiaW4yaGV4KHJhbmRvbV9ieXRlcygzKSkpLA0KKyAgICAgIHN0cnRvdXBwZXIoYmluMmhleChyYW5kb21fYnl0ZXMoMykpKSwNCisgICAgICBzdHJ0b3VwcGVyKGJpbjJoZXgocmFuZG9tX2J5dGVzKDMpKSksDQorICAgICAgc3RydG91cHBlcihiaW4yaGV4KHJhbmRvbV9ieXRlcygzKSkpDQorICAgICkpOw0KKyAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgYGFwaV9rZXlgIEZST00gYGFwaWAgV0hFUkUgYGFjY2Vzc2AgPSAnIiAuICRhY2Nlc3MgLiAiJyIpOw0KKyAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICBpZiAoZW1wdHkoJG51bV9yZXN1bHRzKSkgew0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYGFwaWAgKGBhcGlfa2V5YCwgYHNraXBfaXBfY2hlY2tgLCBgYWN0aXZlYCwgYGFsbG93X2Zyb21gLCBgYWNjZXNzYCkNCisgICAgICAgIFZBTFVFUyAoOmFwaV9rZXksIDpza2lwX2lwX2NoZWNrLCA6YWN0aXZlLCA6YWxsb3dfZnJvbSwgOmFjY2Vzcyk7Iik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOmFwaV9rZXknID0+ICRhcGlfa2V5LA0KKyAgICAgICAgJzpza2lwX2lwX2NoZWNrJyA9PiAkc2tpcF9pcF9jaGVjaywNCisgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgJzphbGxvd19mcm9tJyA9PiAkYWxsb3dfZnJvbSwNCisgICAgICAgICc6YWNjZXNzJyA9PiAkYWNjZXNzDQorICAgICAgKSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgaWYgKCRza2lwX2lwX2NoZWNrID09IDApIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBhcGlgIFNFVCBgc2tpcF9pcF9jaGVja2AgPSA6c2tpcF9pcF9jaGVjaywNCisgICAgICAgICAgYGFjdGl2ZWAgPSA6YWN0aXZlLA0KKyAgICAgICAgICBgYWxsb3dfZnJvbWAgPSA6YWxsb3dfZnJvbQ0KKyAgICAgICAgICAgIFdIRVJFIGBhY2Nlc3NgID0gOmFjY2VzczsiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZSwNCisgICAgICAgICAgJzpza2lwX2lwX2NoZWNrJyA9PiAkc2tpcF9pcF9jaGVjaywNCisgICAgICAgICAgJzphbGxvd19mcm9tJyA9PiAkYWxsb3dfZnJvbSwNCisgICAgICAgICAgJzphY2Nlc3MnID0+ICRhY2Nlc3MNCisgICAgICAgICkpOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBhcGlgIFNFVCBgc2tpcF9pcF9jaGVja2AgPSA6c2tpcF9pcF9jaGVjaywNCisgICAgICAgICAgYGFjdGl2ZWAgPSA6YWN0aXZlDQorICAgICAgICAgICAgV0hFUkUgYGFjY2Vzc2AgPSA6YWNjZXNzOyIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgICAnOnNraXBfaXBfY2hlY2snID0+ICRza2lwX2lwX2NoZWNrLA0KKyAgICAgICAgICAnOmFjY2VzcycgPT4gJGFjY2Vzcw0KKyAgICAgICAgKSk7DQorICAgICAgfQ0KKyAgICB9DQorICB9DQorICBlbHNlaWYgKCRhY3Rpb24gPT0gInJlZ2VuX2tleSIpIHsNCisgICAgJGFwaV9rZXkgPSBpbXBsb2RlKCctJywgYXJyYXkoDQorICAgICAgc3RydG91cHBlcihiaW4yaGV4KHJhbmRvbV9ieXRlcygzKSkpLA0KKyAgICAgIHN0cnRvdXBwZXIoYmluMmhleChyYW5kb21fYnl0ZXMoMykpKSwNCisgICAgICBzdHJ0b3VwcGVyKGJpbjJoZXgocmFuZG9tX2J5dGVzKDMpKSksDQorICAgICAgc3RydG91cHBlcihiaW4yaGV4KHJhbmRvbV9ieXRlcygzKSkpLA0KKyAgICAgIHN0cnRvdXBwZXIoYmluMmhleChyYW5kb21fYnl0ZXMoMykpKQ0KKyAgICApKTsNCisgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYGFwaWAgU0VUIGBhcGlfa2V5YCA9IDphcGlfa2V5IFdIRVJFIGBhY2Nlc3NgID0gOmFjY2VzcyIpOw0KKyAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAnOmFwaV9rZXknID0+ICRhcGlfa2V5LA0KKyAgICAgICc6YWNjZXNzJyA9PiAkYWNjZXNzDQorICAgICkpOw0KKyAgfQ0KKyAgZWxzZWlmICgkYWN0aW9uID09ICJnZXQiKSB7DQorICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNFTEVDVCAqIEZST00gYGFwaWAgV0hFUkUgYGFjY2Vzc2AgPSAnIiAuICRhY2Nlc3MgLiAiJyIpOw0KKyAgICAkYXBpZGF0YSA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgJGFwaWRhdGFbJ2FsbG93X2Zyb20nXSA9IHN0cl9yZXBsYWNlKCcsJywgUEhQX0VPTCwgJGFwaWRhdGFbJ2FsbG93X2Zyb20nXSk7DQorICAgIHJldHVybiAkYXBpZGF0YTsNCisgIH0NCisJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkZGF0YSksDQorCQknbXNnJyA9PiAnYWRtaW5fYXBpX21vZGlmaWVkJw0KKwkpOw0KK30NCitmdW5jdGlvbiBsaWNlbnNlKCRhY3Rpb24sICRkYXRhID0gbnVsbCkgew0KKwlnbG9iYWwgJHBkbzsNCisJZ2xvYmFsICRyZWRpczsNCisJZ2xvYmFsICRsYW5nOw0KKwlpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorCQkkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorCQkJJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXyksDQorCQkJJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorCQkpOw0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorCXN3aXRjaCAoJGFjdGlvbikgew0KKwkJY2FzZSAidmVyaWZ5IjoNCisgICAgICAvLyBLZWVwIHJlc3VsdCB1bnRpbCByZXZhbGlkYXRlIGJ1dHRvbiBpcyBwcmVzc2VkIG9yIHNlc3Npb24gZXhwaXJlZA0KKyAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNFTEVDVCBgdmVyc2lvbmAgRlJPTSBgdmVyc2lvbnNgIFdIRVJFIGBhcHBsaWNhdGlvbmAgPSAnR1VJRCciKTsNCisgICAgICAkdmVyc2lvbnMgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgJHBvc3QgPSBhcnJheSgnZ3VpZCcgPT4gJHZlcnNpb25zWyd2ZXJzaW9uJ10pOw0KKyAgICAgICRjdXJsID0gY3VybF9pbml0KCdodHRwczovL3ZlcmlmeS5tYWlsY293LmVtYWlsJyk7DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KKyAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAxMCk7DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVEZJRUxEUywgJHBvc3QpOw0KKyAgICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7DQorICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgJGpzb25fcmV0dXJuID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlLCB0cnVlKTsNCisgICAgICBpZiAoJHJlc3BvbnNlICYmICRqc29uX3JldHVybikgew0KKyAgICAgICAgaWYgKCRqc29uX3JldHVyblsncmVzcG9uc2UnXSA9PT0gIm9rIikgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ2dhbCddWyd2YWxpZCddID0gInRydWUiOw0KKyAgICAgICAgICAkX1NFU1NJT05bJ2dhbCddWydjJ10gPSAkanNvbl9yZXR1cm5bJ2MnXTsNCisgICAgICAgICAgJF9TRVNTSU9OWydnYWwnXVsncyddID0gJGpzb25fcmV0dXJuWydzJ107DQorICAgICAgICAgIGlmICgkanNvbl9yZXR1cm5bJ20nXSA9PSAnTm9Nb29yZScpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ2dhbCddWydtJ10gPSAn8J+QhCc7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydnYWwnXVsnbSddID0gc3RyX3JlcGVhdCgn8J+QhCcsIHN1YnN0cl9jb3VudCgkanNvbl9yZXR1cm5bJ20nXSwgJ28nKSk7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGVsc2VpZiAoJGpzb25fcmV0dXJuWydyZXNwb25zZSddID09PSAiaW52YWxpZCIpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydnYWwnXVsndmFsaWQnXSA9ICJmYWxzZSI7DQorICAgICAgICAgICRfU0VTU0lPTlsnZ2FsJ11bJ2MnXSA9ICRsYW5nWydtYWlsYm94J11bJ25vJ107DQorICAgICAgICAgICRfU0VTU0lPTlsnZ2FsJ11bJ3MnXSA9ICRsYW5nWydtYWlsYm94J11bJ25vJ107DQorICAgICAgICAgICRfU0VTU0lPTlsnZ2FsJ11bJ20nXSA9ICRsYW5nWydtYWlsYm94J11bJ25vJ107DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgJF9TRVNTSU9OWydnYWwnXVsndmFsaWQnXSA9ICJmYWxzZSI7DQorICAgICAgICAkX1NFU1NJT05bJ2dhbCddWydjJ10gPSAkbGFuZ1snZGFuZ2VyJ11bJ3RlbXBfZXJyb3InXTsNCisgICAgICAgICRfU0VTU0lPTlsnZ2FsJ11bJ3MnXSA9ICRsYW5nWydkYW5nZXInXVsndGVtcF9lcnJvciddOw0KKyAgICAgICAgJF9TRVNTSU9OWydnYWwnXVsnbSddID0gJGxhbmdbJ2RhbmdlciddWyd0ZW1wX2Vycm9yJ107DQorICAgICAgfQ0KKyAgICAgIHRyeSB7DQorICAgICAgICAvLyBqc29uX2VuY29kZSBuZWVkcyAidHJ1ZSIvImZhbHNlIiBpbnN0ZWFkIG9mIHRydWUvZmFsc2UsIHRvIG5vdCBlbmNvZGUgaXQgdG8gMCBvciAxDQorICAgICAgICAkcmVkaXMtPlNldCgnTElDRU5TRV9TVEFUVVNfQ0FDSEUnLCBqc29uX2VuY29kZSgkX1NFU1NJT05bJ2dhbCddKSk7DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRfU0VTU0lPTlsnZ2FsJ11bJ3ZhbGlkJ107DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICJndWlkIjoNCisgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgYHZlcnNpb25gIEZST00gYHZlcnNpb25zYCBXSEVSRSBgYXBwbGljYXRpb25gID0gJ0dVSUQnIik7DQorICAgICAgJHZlcnNpb25zID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIHJldHVybiAkdmVyc2lvbnNbJ3ZlcnNpb24nXTsNCisgICAgYnJlYWs7DQorICB9DQorfQ0KK2Z1bmN0aW9uIHJzcGFtZF91aSgkYWN0aW9uLCAkZGF0YSA9IG51bGwpIHsNCisJaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKwkJJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKwkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKwkJCSdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKwkJKTsNCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKwlzd2l0Y2ggKCRhY3Rpb24pIHsNCisJCWNhc2UgImVkaXQiOg0KKyAgICAgICRyc3BhbWRfdWlfcGFzcyA9ICRkYXRhWydyc3BhbWRfdWlfcGFzcyddOw0KKyAgICAgICRyc3BhbWRfdWlfcGFzczIgPSAkZGF0YVsncnNwYW1kX3VpX3Bhc3MyJ107DQorICAgICAgaWYgKGVtcHR5KCRyc3BhbWRfdWlfcGFzcykgfHwgZW1wdHkoJHJzcGFtZF91aV9wYXNzMikpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICcqJywgJyonKSwNCisgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX2VtcHR5Jw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgaWYgKCRyc3BhbWRfdWlfcGFzcyAhPSAkcnNwYW1kX3VpX3Bhc3MyKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAnKicsICcqJyksDQorICAgICAgICAgICdtc2cnID0+ICdwYXNzd29yZF9taXNtYXRjaCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIGlmIChzdHJsZW4oJHJzcGFtZF91aV9wYXNzKSA8IDYpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9ICBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICcqJywgJyonKSwNCisgICAgICAgICAgJ21zZycgPT4gJ3JzcGFtZF91aV9wd19sZW5ndGgnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkZG9ja2VyX3JldHVybiA9IGRvY2tlcigncG9zdCcsICdyc3BhbWQtbWFpbGNvdycsICdleGVjJywgYXJyYXkoJ2NtZCcgPT4gJ3JzcGFtZCcsICd0YXNrJyA9PiAnd29ya2VyX3Bhc3N3b3JkJywgJ3JhdycgPT4gJHJzcGFtZF91aV9wYXNzKSwgYXJyYXkoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicpKTsNCisgICAgICBpZiAoJGRvY2tlcl9yZXR1cm5fYXJyYXkgPSBqc29uX2RlY29kZSgkZG9ja2VyX3JldHVybiwgdHJ1ZSkpIHsNCisgICAgICAgIGlmICgkZG9ja2VyX3JldHVybl9hcnJheVsndHlwZSddID09ICdzdWNjZXNzJykgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSAgYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICcqJywgJyonKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAncnNwYW1kX3VpX3B3X3NldCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAkZG9ja2VyX3JldHVybl9hcnJheVsndHlwZSddLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJyonLCAnKicpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICRkb2NrZXJfcmV0dXJuX2FycmF5Wydtc2cnXQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGVsc2Ugew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJyonLCAnKicpLA0KKyAgICAgICAgICAnbXNnJyA9PiAndW5rbm93bicNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgIH0NCit9DQorZnVuY3Rpb24gZ2V0X3UyZl9yZWdpc3RyYXRpb25zKCR1c2VybmFtZSkgew0KKyAgZ2xvYmFsICRwZG87DQorICAkc2VsID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUICogRlJPTSBgdGZhYCBXSEVSRSBgYXV0aG1lY2hgID0gJ3UyZicgQU5EIGB1c2VybmFtZWAgPSA/IEFORCBgYWN0aXZlYCA9ICcxJyIpOw0KKyAgJHNlbC0+ZXhlY3V0ZShhcnJheSgkdXNlcm5hbWUpKTsNCisgIHJldHVybiAkc2VsLT5mZXRjaEFsbChQRE86OkZFVENIX09CSik7DQorfQ0KK2Z1bmN0aW9uIGdldF9sb2dzKCRhcHBsaWNhdGlvbiwgJGxpbmVzID0gZmFsc2UpIHsNCisgIGlmICgkbGluZXMgPT09IGZhbHNlKSB7DQorICAgICRsaW5lcyA9ICRHTE9CQUxTWydMT0dfTElORVMnXSAtIDE7DQorICB9DQorICBlbHNlaWYoaXNfbnVtZXJpYygkbGluZXMpICYmICRsaW5lcyA+PSAxKSB7DQorICAgICRsaW5lcyA9IGFicyhpbnR2YWwoJGxpbmVzKSAtIDEpOw0KKyAgfQ0KKyAgZWxzZSB7DQorICAgIGxpc3QgKCRmcm9tLCAkdG8pID0gZXhwbG9kZSgnLScsICRsaW5lcyk7DQorICAgICRmcm9tID0gaW50dmFsKCRmcm9tKTsNCisgICAgJHRvID0gaW50dmFsKCR0byk7DQorICAgIGlmICgkZnJvbSA8IDEgfHwgJHRvIDwgJGZyb20pIHsgcmV0dXJuIGZhbHNlOyB9DQorICB9DQorCWdsb2JhbCAkcmVkaXM7DQorCWdsb2JhbCAkcGRvOw0KKwlpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisgIC8vIFNRTA0KKyAgaWYgKCRhcHBsaWNhdGlvbiA9PSAibWFpbGNvdy11aSIpIHsNCisgICAgaWYgKGlzc2V0KCRmcm9tKSAmJiBpc3NldCgkdG8pKSB7DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgKiBGUk9NIGBsb2dzYCBPUkRFUiBCWSBgaWRgIERFU0MgTElNSVQgOmZyb20sIDp0byIpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgJzpmcm9tJyA9PiAkZnJvbSAtIDEsDQorICAgICAgICAnOnRvJyA9PiAkdG8NCisgICAgICApKTsNCisgICAgICAkZGF0YSA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gYGxvZ3NgIE9SREVSIEJZIGBpZGAgREVTQyBMSU1JVCA6bGluZXMiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICc6bGluZXMnID0+ICRsaW5lcyArIDEsDQorICAgICAgKSk7DQorICAgICAgJGRhdGEgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgIH0NCisgICAgaWYgKGlzX2FycmF5KCRkYXRhKSkgew0KKyAgICAgIHJldHVybiAkZGF0YTsNCisgICAgfQ0KKyAgfQ0KKyAgLy8gUmVkaXMNCisgIGlmICgkYXBwbGljYXRpb24gPT0gImRvdmVjb3QtbWFpbGNvdyIpIHsNCisgICAgaWYgKGlzc2V0KCRmcm9tKSAmJiBpc3NldCgkdG8pKSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnRE9WRUNPVF9NQUlMTE9HJywgJGZyb20gLSAxLCAkdG8gLSAxKTsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisgICAgICAkZGF0YSA9ICRyZWRpcy0+bFJhbmdlKCdET1ZFQ09UX01BSUxMT0cnLCAwLCAkbGluZXMpOw0KKyAgICB9DQorICAgIGlmICgkZGF0YSkgew0KKyAgICAgIGZvcmVhY2ggKCRkYXRhIGFzICRqc29uX2xpbmUpIHsNCisgICAgICAgICRkYXRhX2FycmF5W10gPSBqc29uX2RlY29kZSgkanNvbl9saW5lLCB0cnVlKTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRkYXRhX2FycmF5Ow0KKyAgICB9DQorICB9DQorICBpZiAoJGFwcGxpY2F0aW9uID09ICJwb3N0Zml4LW1haWxjb3ciKSB7DQorICAgIGlmIChpc3NldCgkZnJvbSkgJiYgaXNzZXQoJHRvKSkgew0KKyAgICAgICRkYXRhID0gJHJlZGlzLT5sUmFuZ2UoJ1BPU1RGSVhfTUFJTExPRycsICRmcm9tIC0gMSwgJHRvIC0gMSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnUE9TVEZJWF9NQUlMTE9HJywgMCwgJGxpbmVzKTsNCisgICAgfQ0KKyAgICBpZiAoJGRhdGEpIHsNCisgICAgICBmb3JlYWNoICgkZGF0YSBhcyAkanNvbl9saW5lKSB7DQorICAgICAgICAkZGF0YV9hcnJheVtdID0ganNvbl9kZWNvZGUoJGpzb25fbGluZSwgdHJ1ZSk7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZGF0YV9hcnJheTsNCisgICAgfQ0KKyAgfQ0KKyAgaWYgKCRhcHBsaWNhdGlvbiA9PSAic29nby1tYWlsY293Iikgew0KKyAgICBpZiAoaXNzZXQoJGZyb20pICYmIGlzc2V0KCR0bykpIHsNCisgICAgICAkZGF0YSA9ICRyZWRpcy0+bFJhbmdlKCdTT0dPX0xPRycsICRmcm9tIC0gMSwgJHRvIC0gMSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnU09HT19MT0cnLCAwLCAkbGluZXMpOw0KKyAgICB9DQorICAgIGlmICgkZGF0YSkgew0KKyAgICAgIGZvcmVhY2ggKCRkYXRhIGFzICRqc29uX2xpbmUpIHsNCisgICAgICAgICRkYXRhX2FycmF5W10gPSBqc29uX2RlY29kZSgkanNvbl9saW5lLCB0cnVlKTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRkYXRhX2FycmF5Ow0KKyAgICB9DQorICB9DQorICBpZiAoJGFwcGxpY2F0aW9uID09ICJ3YXRjaGRvZy1tYWlsY293Iikgew0KKyAgICBpZiAoaXNzZXQoJGZyb20pICYmIGlzc2V0KCR0bykpIHsNCisgICAgICAkZGF0YSA9ICRyZWRpcy0+bFJhbmdlKCdXQVRDSERPR19MT0cnLCAkZnJvbSAtIDEsICR0byAtIDEpOw0KKyAgICB9DQorICAgIGVsc2Ugew0KKyAgICAgICRkYXRhID0gJHJlZGlzLT5sUmFuZ2UoJ1dBVENIRE9HX0xPRycsIDAsICRsaW5lcyk7DQorICAgIH0NCisgICAgaWYgKCRkYXRhKSB7DQorICAgICAgZm9yZWFjaCAoJGRhdGEgYXMgJGpzb25fbGluZSkgew0KKyAgICAgICAgJGRhdGFfYXJyYXlbXSA9IGpzb25fZGVjb2RlKCRqc29uX2xpbmUsIHRydWUpOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gJGRhdGFfYXJyYXk7DQorICAgIH0NCisgIH0NCisgIGlmICgkYXBwbGljYXRpb24gPT0gImFjbWUtbWFpbGNvdyIpIHsNCisgICAgaWYgKGlzc2V0KCRmcm9tKSAmJiBpc3NldCgkdG8pKSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnQUNNRV9MT0cnLCAkZnJvbSAtIDEsICR0byAtIDEpOw0KKyAgICB9DQorICAgIGVsc2Ugew0KKyAgICAgICRkYXRhID0gJHJlZGlzLT5sUmFuZ2UoJ0FDTUVfTE9HJywgMCwgJGxpbmVzKTsNCisgICAgfQ0KKyAgICBpZiAoJGRhdGEpIHsNCisgICAgICBmb3JlYWNoICgkZGF0YSBhcyAkanNvbl9saW5lKSB7DQorICAgICAgICAkZGF0YV9hcnJheVtdID0ganNvbl9kZWNvZGUoJGpzb25fbGluZSwgdHJ1ZSk7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZGF0YV9hcnJheTsNCisgICAgfQ0KKyAgfQ0KKyAgaWYgKCRhcHBsaWNhdGlvbiA9PSAicmF0ZWxpbWl0ZWQiKSB7DQorICAgIGlmIChpc3NldCgkZnJvbSkgJiYgaXNzZXQoJHRvKSkgew0KKyAgICAgICRkYXRhID0gJHJlZGlzLT5sUmFuZ2UoJ1JMX0xPRycsICRmcm9tIC0gMSwgJHRvIC0gMSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnUkxfTE9HJywgMCwgJGxpbmVzKTsNCisgICAgfQ0KKyAgICBpZiAoJGRhdGEpIHsNCisgICAgICBmb3JlYWNoICgkZGF0YSBhcyAkanNvbl9saW5lKSB7DQorICAgICAgICAkZGF0YV9hcnJheVtdID0ganNvbl9kZWNvZGUoJGpzb25fbGluZSwgdHJ1ZSk7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZGF0YV9hcnJheTsNCisgICAgfQ0KKyAgfQ0KKyAgaWYgKCRhcHBsaWNhdGlvbiA9PSAiYXBpLW1haWxjb3ciKSB7DQorICAgIGlmIChpc3NldCgkZnJvbSkgJiYgaXNzZXQoJHRvKSkgew0KKyAgICAgICRkYXRhID0gJHJlZGlzLT5sUmFuZ2UoJ0FQSV9MT0cnLCAkZnJvbSAtIDEsICR0byAtIDEpOw0KKyAgICB9DQorICAgIGVsc2Ugew0KKyAgICAgICRkYXRhID0gJHJlZGlzLT5sUmFuZ2UoJ0FQSV9MT0cnLCAwLCAkbGluZXMpOw0KKyAgICB9DQorICAgIGlmICgkZGF0YSkgew0KKyAgICAgIGZvcmVhY2ggKCRkYXRhIGFzICRqc29uX2xpbmUpIHsNCisgICAgICAgICRkYXRhX2FycmF5W10gPSBqc29uX2RlY29kZSgkanNvbl9saW5lLCB0cnVlKTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRkYXRhX2FycmF5Ow0KKyAgICB9DQorICB9DQorICBpZiAoJGFwcGxpY2F0aW9uID09ICJuZXRmaWx0ZXItbWFpbGNvdyIpIHsNCisgICAgaWYgKGlzc2V0KCRmcm9tKSAmJiBpc3NldCgkdG8pKSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnTkVURklMVEVSX0xPRycsICRmcm9tIC0gMSwgJHRvIC0gMSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJGRhdGEgPSAkcmVkaXMtPmxSYW5nZSgnTkVURklMVEVSX0xPRycsIDAsICRsaW5lcyk7DQorICAgIH0NCisgICAgaWYgKCRkYXRhKSB7DQorICAgICAgZm9yZWFjaCAoJGRhdGEgYXMgJGpzb25fbGluZSkgew0KKyAgICAgICAgJGRhdGFfYXJyYXlbXSA9IGpzb25fZGVjb2RlKCRqc29uX2xpbmUsIHRydWUpOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gJGRhdGFfYXJyYXk7DQorICAgIH0NCisgIH0NCisgIGlmICgkYXBwbGljYXRpb24gPT0gImF1dG9kaXNjb3Zlci1tYWlsY293Iikgew0KKyAgICBpZiAoaXNzZXQoJGZyb20pICYmIGlzc2V0KCR0bykpIHsNCisgICAgICAkZGF0YSA9ICRyZWRpcy0+bFJhbmdlKCdBVVRPRElTQ09WRVJfTE9HJywgJGZyb20gLSAxLCAkdG8gLSAxKTsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisgICAgICAkZGF0YSA9ICRyZWRpcy0+bFJhbmdlKCdBVVRPRElTQ09WRVJfTE9HJywgMCwgJGxpbmVzKTsNCisgICAgfQ0KKyAgICBpZiAoJGRhdGEpIHsNCisgICAgICBmb3JlYWNoICgkZGF0YSBhcyAkanNvbl9saW5lKSB7DQorICAgICAgICAkZGF0YV9hcnJheVtdID0ganNvbl9kZWNvZGUoJGpzb25fbGluZSwgdHJ1ZSk7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkZGF0YV9hcnJheTsNCisgICAgfQ0KKyAgfQ0KKyAgaWYgKCRhcHBsaWNhdGlvbiA9PSAicnNwYW1kLWhpc3RvcnkiKSB7DQorICAgICRjdXJsID0gY3VybF9pbml0KCk7DQorICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VOSVhfU09DS0VUX1BBVEgsICcvdmFyL2xpYi9yc3BhbWQvcnNwYW1kLnNvY2snKTsNCisgICAgaWYgKCFpc19udW1lcmljKCRsaW5lcykpIHsNCisgICAgICBsaXN0ICgkZnJvbSwgJHRvKSA9IGV4cGxvZGUoJy0nLCAkbGluZXMpOw0KKyAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwiaHR0cDovL3JzcGFtZC9oaXN0b3J5P2Zyb209IiAuIGludHZhbCgkZnJvbSkgLiAiJnRvPSIgLiBpbnR2YWwoJHRvKSk7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCJodHRwOi8vcnNwYW1kL2hpc3Rvcnk/dG89IiAuIGludHZhbCgkbGluZXMpKTsNCisgICAgfQ0KKyAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQorICAgICRoaXN0b3J5ID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgaWYgKCFjdXJsX2Vycm5vKCRjdXJsKSkgew0KKyAgICAgICRkYXRhX2FycmF5ID0ganNvbl9kZWNvZGUoJGhpc3RvcnksIHRydWUpOw0KKyAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgIHJldHVybiAkZGF0YV9hcnJheVsncm93cyddOw0KKyAgICB9DQorICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICByZXR1cm4gZmFsc2U7DQorICB9DQorICBpZiAoJGFwcGxpY2F0aW9uID09ICJyc3BhbWQtc3RhdHMiKSB7DQorICAgICRjdXJsID0gY3VybF9pbml0KCk7DQorICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VOSVhfU09DS0VUX1BBVEgsICcvdmFyL2xpYi9yc3BhbWQvcnNwYW1kLnNvY2snKTsNCisgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCJodHRwOi8vcnNwYW1kL3N0YXQiKTsNCisgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KKyAgICAkc3RhdHMgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KKyAgICBpZiAoIWN1cmxfZXJybm8oJGN1cmwpKSB7DQorICAgICAgJGRhdGFfYXJyYXkgPSBqc29uX2RlY29kZSgkc3RhdHMsIHRydWUpOw0KKyAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgIHJldHVybiAkZGF0YV9hcnJheTsNCisgICAgfQ0KKyAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgcmV0dXJuIGZhbHNlOw0KK30NCitmdW5jdGlvbiBnZXRHVUlEKCkgew0KKyAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY29tX2NyZWF0ZV9ndWlkJykpIHsNCisgICAgcmV0dXJuIGNvbV9jcmVhdGVfZ3VpZCgpOw0KKyAgfQ0KKyAgbXRfc3JhbmQoKGRvdWJsZSltaWNyb3RpbWUoKSoxMDAwMCk7Ly9vcHRpb25hbCBmb3IgcGhwIDQuMi4wIGFuZCB1cC4NCisgICRjaGFyaWQgPSBzdHJ0b3VwcGVyKG1kNSh1bmlxaWQocmFuZCgpLCB0cnVlKSkpOw0KKyAgJGh5cGhlbiA9IGNocig0NSk7Ly8gIi0iDQorICByZXR1cm4gc3Vic3RyKCRjaGFyaWQsIDAsIDgpLiRoeXBoZW4NCisgICAgICAgIC5zdWJzdHIoJGNoYXJpZCwgOCwgNCkuJGh5cGhlbg0KKyAgICAgICAgLnN1YnN0cigkY2hhcmlkLDEyLCA0KS4kaHlwaGVuDQorICAgICAgICAuc3Vic3RyKCRjaGFyaWQsMTYsIDQpLiRoeXBoZW4NCisgICAgICAgIC5zdWJzdHIoJGNoYXJpZCwyMCwxMik7DQorfQ0KK2Z1bmN0aW9uIHNvbHJfc3RhdHVzKCkgew0KKyAgJGN1cmwgPSBjdXJsX2luaXQoKTsNCisgICRlbmRwb2ludCA9ICdodHRwOi8vc29scjo4OTgzL3NvbHIvYWRtaW4vY29yZXMnOw0KKyAgJHBhcmFtcyA9IGFycmF5KA0KKyAgICAnYWN0aW9uJyA9PiAnU1RBVFVTJywNCisgICAgJ2NvcmUnID0+ICdkb3ZlY290LWZ0cycsDQorICAgICdpbmRleEluZm8nID0+ICd0cnVlJw0KKyAgKTsNCisgICR1cmwgPSAkZW5kcG9pbnQgLiAnPycgLiBodHRwX2J1aWxkX3F1ZXJ5KCRwYXJhbXMpOw0KKyAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAkdXJsKTsNCisgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIDApOw0KKyAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVElNRU9VVCwgMTApOw0KKyAgJHJlc3BvbnNlX2NvcmUgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KKyAgaWYgKCRyZXNwb25zZV9jb3JlID09PSBmYWxzZSkgew0KKyAgICAkZXJyID0gY3VybF9lcnJvcigkY3VybCk7DQorICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICByZXR1cm4gZmFsc2U7DQorICB9DQorICBlbHNlIHsNCisgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICRjdXJsID0gY3VybF9pbml0KCk7DQorICAgICRzdGF0dXNfY29yZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZV9jb3JlLCB0cnVlKTsNCisgICAgJHVybCA9ICdodHRwOi8vc29scjo4OTgzL3NvbHIvYWRtaW4vaW5mby9zeXN0ZW0nOw0KKyAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VUkwsICR1cmwpOw0KKyAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQorICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIDApOw0KKyAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9USU1FT1VULCAxMCk7DQorICAgICRyZXNwb25zZV9zeXNpbmZvID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgaWYgKCRyZXNwb25zZV9zeXNpbmZvID09PSBmYWxzZSkgew0KKyAgICAgICRlcnIgPSBjdXJsX2Vycm9yKCRjdXJsKTsNCisgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICByZXR1cm4gZmFsc2U7DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgJHN0YXR1c19zeXNpbmZvID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlX3N5c2luZm8sIHRydWUpOw0KKyAgICAgICRzdGF0dXMgPSBhcnJheV9tZXJnZSgkc3RhdHVzX2NvcmUsICRzdGF0dXNfc3lzaW5mbyk7DQorICAgICAgcmV0dXJuICghZW1wdHkoJHN0YXR1c1snc3RhdHVzJ11bJ2RvdmVjb3QtZnRzJ10pICYmICFlbXB0eSgkc3RhdHVzWydqdm0nXVsnbWVtb3J5J10pKSA/ICRzdGF0dXMgOiBmYWxzZTsNCisgICAgfQ0KKyAgICByZXR1cm4gKCFlbXB0eSgkc3RhdHVzWydzdGF0dXMnXVsnZG92ZWNvdC1mdHMnXSkpID8gJHN0YXR1c1snc3RhdHVzJ11bJ2RvdmVjb3QtZnRzJ10gOiBmYWxzZTsNCisgIH0NCisgIHJldHVybiBmYWxzZTsNCit9DQorDQorZnVuY3Rpb24gY2xlYW51cEpTKCRpZ25vcmUgPSAnJywgJGZvbGRlciA9ICcvdG1wLyouanMnKSB7DQorICAkbm93ID0gdGltZSgpOw0KKyAgZm9yZWFjaCAoZ2xvYigkZm9sZGVyKSBhcyAkZmlsZW5hbWUpIHsNCisgICAgaWYoc3RycG9zKCRmaWxlbmFtZSwgJGlnbm9yZSkgIT09IGZhbHNlKSB7DQorICAgICAgY29udGludWU7DQorICAgIH0NCisgICAgaWYgKGlzX2ZpbGUoJGZpbGVuYW1lKSkgew0KKyAgICAgIGlmICgkbm93IC0gZmlsZW10aW1lKCRmaWxlbmFtZSkgPj0gNjAgKiA2MCkgew0KKyAgICAgICAgdW5saW5rKCRmaWxlbmFtZSk7DQorICAgICAgfQ0KKyAgICB9DQorICB9DQorfQ0KKw0KK2Z1bmN0aW9uIGNsZWFudXBDU1MoJGlnbm9yZSA9ICcnLCAkZm9sZGVyID0gJy90bXAvKi5jc3MnKSB7DQorICAkbm93ID0gdGltZSgpOw0KKyAgZm9yZWFjaCAoZ2xvYigkZm9sZGVyKSBhcyAkZmlsZW5hbWUpIHsNCisgICAgaWYoc3RycG9zKCRmaWxlbmFtZSwgJGlnbm9yZSkgIT09IGZhbHNlKSB7DQorICAgICAgY29udGludWU7DQorICAgIH0NCisgICAgaWYgKGlzX2ZpbGUoJGZpbGVuYW1lKSkgew0KKyAgICAgIGlmICgkbm93IC0gZmlsZW10aW1lKCRmaWxlbmFtZSkgPj0gNjAgKiA2MCkgew0KKyAgICAgICAgdW5saW5rKCRmaWxlbmFtZSk7DQorICAgICAgfQ0KKyAgICB9DQorICB9DQorfQ0KKw0KKz8+DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMubWFpbGJveC5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMubWFpbGJveC5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZjQxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5tYWlsYm94LmluYy5waHAKQEAgLTAsMCArMSw0MjcyIEBACis8P3BocA0KK2Z1bmN0aW9uIG1haWxib3goJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhID0gbnVsbCwgJF9leHRyYSA9IG51bGwpIHsNCisgIGdsb2JhbCAkcGRvOw0KKyAgZ2xvYmFsICRyZWRpczsNCisgIGdsb2JhbCAkbGFuZzsNCisgIGdsb2JhbCAkTUFJTEJPWF9ERUZBVUxUX0FUVFJJQlVURVM7DQorICAkX2RhdGFfbG9nID0gJF9kYXRhOw0KKyAgIWlzc2V0KCRfZGF0YV9sb2dbJ3Bhc3N3b3JkJ10pID86ICRfZGF0YV9sb2dbJ3Bhc3N3b3JkJ10gPSAnKic7DQorICAhaXNzZXQoJF9kYXRhX2xvZ1sncGFzc3dvcmQyJ10pID86ICRfZGF0YV9sb2dbJ3Bhc3N3b3JkMiddID0gJyonOw0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdhZGQnOg0KKyAgICAgIHN3aXRjaCAoJF90eXBlKSB7DQorICAgICAgICBjYXNlICd0aW1lX2xpbWl0ZWRfYWxpYXMnOg0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3NwYW1fYWxpYXMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9hbGlhcyddICE9ICIxIiApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ3VzZXJuYW1lJ10pICYmIGZpbHRlcl92YXIoJF9kYXRhWyd1c2VybmFtZSddLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSB7DQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkdXNlcm5hbWUgPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICR1c2VybmFtZSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghaXNfbnVtZXJpYygkX2RhdGFbInZhbGlkaXR5Il0pIHx8ICRfZGF0YVsidmFsaWRpdHkiXSA+IDY3Mikgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ3ZhbGlkaXR5X21pc3NpbmcnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJGRvbWFpbiA9IG1haWxib3goJ2dldCcsICdtYWlsYm94X2RldGFpbHMnLCAkdXNlcm5hbWUpWydkb21haW4nXTsNCisgICAgICAgICAgaWYgKCFpc192YWxpZF9kb21haW5fbmFtZSgkZG9tYWluKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2RvbWFpbl9pbnZhbGlkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICR2YWxpZGl0eSA9IHN0cnRvdGltZSgiKyIuJF9kYXRhWyJ2YWxpZGl0eSJdLiIgaG91ciIpOw0KKyAgICAgICAgICAkbGV0dGVycyA9ICdhYmNlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MCc7DQorICAgICAgICAgICRyYW5kb21fbmFtZSA9IHN1YnN0cihzdHJfc2h1ZmZsZSgkbGV0dGVycyksIDAsIDI0KTsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgc3BhbWFsaWFzYCAoYGFkZHJlc3NgLCBgZ290b2AsIGB2YWxpZGl0eWApIFZBTFVFUw0KKyAgICAgICAgICAgICg6YWRkcmVzcywgOmdvdG8sIDp2YWxpZGl0eSkiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzphZGRyZXNzJyA9PiAkcmFuZG9tX25hbWUgLiAnQCcgLiAkZG9tYWluLA0KKyAgICAgICAgICAgICc6Z290bycgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICc6dmFsaWRpdHknID0+ICR2YWxpZGl0eQ0KKyAgICAgICAgICApKTsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2dsb2JhbF9maWx0ZXInOg0KKyAgICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc2lldmUgPSBuZXcgU2lldmVcU2lldmVQYXJzZXIoKTsNCisgICAgICAgICAgJHNjcmlwdF9kYXRhID0gJF9kYXRhWydzY3JpcHRfZGF0YSddOw0KKyAgICAgICAgICAkc2NyaXB0X2RhdGEgPSBzdHJfcmVwbGFjZSgiXHJcbiIsICJcbiIsICRzY3JpcHRfZGF0YSk7IC8vIHdpbmRvd3MgLT4gdW5peA0KKyAgICAgICAgICAkc2NyaXB0X2RhdGEgPSBzdHJfcmVwbGFjZSgiXHIiLCAiXG4iLCAkc2NyaXB0X2RhdGEpOyAgIC8vIHJlbWFpbmluZyAtPiB1bml4DQorICAgICAgICAgICRmaWx0ZXJfdHlwZSA9ICRfZGF0YVsnZmlsdGVyX3R5cGUnXTsNCisgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAkc2lldmUtPnBhcnNlKCRzY3JpcHRfZGF0YSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NpZXZlX2Vycm9yJywgJGUtPmdldE1lc3NhZ2UoKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJGZpbHRlcl90eXBlID09ICdwcmVmaWx0ZXInKSB7DQorICAgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAgIGlmIChmaWxlX2V4aXN0cygnL2dsb2JhbF9zaWV2ZS9iZWZvcmUnKSkgew0KKyAgICAgICAgICAgICAgICAkZmlsdGVyX2hhbmRsZSA9IGZvcGVuKCcvZ2xvYmFsX3NpZXZlL2JlZm9yZScsICd3Jyk7DQorICAgICAgICAgICAgICAgIGlmICghJGZpbHRlcl9oYW5kbGUpIHsNCisgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRsYW5nWydkYW5nZXInXVsnZmlsZV9vcGVuX2Vycm9yJ10pOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIGZ3cml0ZSgkZmlsdGVyX2hhbmRsZSwgJHNjcmlwdF9kYXRhKTsNCisgICAgICAgICAgICAgICAgZmNsb3NlKCRmaWx0ZXJfaGFuZGxlKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICRyZXN0YXJ0X3Jlc3BvbnNlID0ganNvbl9kZWNvZGUoZG9ja2VyKCdwb3N0JywgJ2RvdmVjb3QtbWFpbGNvdycsICdyZXN0YXJ0JyksIHRydWUpOw0KKyAgICAgICAgICAgICAgaWYgKCRyZXN0YXJ0X3Jlc3BvbnNlWyd0eXBlJ10gPT0gInN1Y2Nlc3MiKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdkb3ZlY290X3Jlc3RhcnRfc3VjY2VzcycNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnZG92ZWNvdF9yZXN0YXJ0X2ZhaWxlZCcNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdnbG9iYWxfZmlsdGVyX3dyaXRlX2Vycm9yJywgaHRtbHNwZWNpYWxjaGFycygkZS0+Z2V0TWVzc2FnZSgpKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2VpZiAoJGZpbHRlcl90eXBlID09ICdwb3N0ZmlsdGVyJykgew0KKyAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJy9nbG9iYWxfc2lldmUvYWZ0ZXInKSkgew0KKyAgICAgICAgICAgICAgICAkZmlsdGVyX2hhbmRsZSA9IGZvcGVuKCcvZ2xvYmFsX3NpZXZlL2FmdGVyJywgJ3cnKTsNCisgICAgICAgICAgICAgICAgaWYgKCEkZmlsdGVyX2hhbmRsZSkgew0KKyAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJGxhbmdbJ2RhbmdlciddWydmaWxlX29wZW5fZXJyb3InXSk7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgZndyaXRlKCRmaWx0ZXJfaGFuZGxlLCAkc2NyaXB0X2RhdGEpOw0KKyAgICAgICAgICAgICAgICBmY2xvc2UoJGZpbHRlcl9oYW5kbGUpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJHJlc3RhcnRfcmVzcG9uc2UgPSBqc29uX2RlY29kZShkb2NrZXIoJ3Bvc3QnLCAnZG92ZWNvdC1tYWlsY293JywgJ3Jlc3RhcnQnKSwgdHJ1ZSk7DQorICAgICAgICAgICAgICBpZiAoJHJlc3RhcnRfcmVzcG9uc2VbJ3R5cGUnXSA9PSAic3VjY2VzcyIpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2RvdmVjb3RfcmVzdGFydF9zdWNjZXNzJw0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdkb3ZlY290X3Jlc3RhcnRfZmFpbGVkJw0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2dsb2JhbF9maWx0ZXJfd3JpdGVfZXJyb3InLCBodG1sc3BlY2lhbGNoYXJzKCRlLT5nZXRNZXNzYWdlKCkpKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnaW52YWxpZF9maWx0ZXJfdHlwZScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnZ2xvYmFsX2ZpbHRlcl93cml0dGVuJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICAgIGNhc2UgJ2ZpbHRlcic6DQorICAgICAgICAgICRzaWV2ZSA9IG5ldyBTaWV2ZVxTaWV2ZVBhcnNlcigpOw0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ2ZpbHRlcnMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnZmlsdGVycyddICE9ICIxIiApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ3VzZXJuYW1lJ10pICYmIGZpbHRlcl92YXIoJF9kYXRhWyd1c2VybmFtZSddLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSB7DQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkdXNlcm5hbWUgPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2VpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAidXNlciIpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWUgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdub191c2VyX2RlZmluZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJGFjdGl2ZSAgICAgPSBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSk7DQorICAgICAgICAgICRzY3JpcHRfZGF0YSA9ICRfZGF0YVsnc2NyaXB0X2RhdGEnXTsNCisgICAgICAgICAgJHNjcmlwdF9kZXNjID0gJF9kYXRhWydzY3JpcHRfZGVzYyddOw0KKyAgICAgICAgICAkZmlsdGVyX3R5cGUgPSAkX2RhdGFbJ2ZpbHRlcl90eXBlJ107DQorICAgICAgICAgIGlmIChlbXB0eSgkc2NyaXB0X2RhdGEpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnc2NyaXB0X2VtcHR5Jw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgJHNpZXZlLT5wYXJzZSgkc2NyaXB0X2RhdGEpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzaWV2ZV9lcnJvcicsICRlLT5nZXRNZXNzYWdlKCkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKGVtcHR5KCRzY3JpcHRfZGF0YSkgfHwgZW1wdHkoJHNjcmlwdF9kZXNjKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ3ZhbHVlX21pc3NpbmcnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRmaWx0ZXJfdHlwZSAhPSAncG9zdGZpbHRlcicgJiYgJGZpbHRlcl90eXBlICE9ICdwcmVmaWx0ZXInKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnZmlsdGVyX3R5cGUnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFlbXB0eSgkYWN0aXZlKSkgew0KKyAgICAgICAgICAgICRzY3JpcHRfbmFtZSA9ICdhY3RpdmUnOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBzaWV2ZV9maWx0ZXJzYCBTRVQgYHNjcmlwdF9uYW1lYCA9ICdpbmFjdGl2ZScgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSBBTkQgYGZpbHRlcl90eXBlYCA9IDpmaWx0ZXJfdHlwZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICAgJzpmaWx0ZXJfdHlwZScgPT4gJGZpbHRlcl90eXBlDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHNjcmlwdF9uYW1lID0gJ2luYWN0aXZlJzsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBzaWV2ZV9maWx0ZXJzYCAoYHVzZXJuYW1lYCwgYHNjcmlwdF9kYXRhYCwgYHNjcmlwdF9kZXNjYCwgYHNjcmlwdF9uYW1lYCwgYGZpbHRlcl90eXBlYCkNCisgICAgICAgICAgICBWQUxVRVMgKDp1c2VybmFtZSwgOnNjcmlwdF9kYXRhLCA6c2NyaXB0X2Rlc2MsIDpzY3JpcHRfbmFtZSwgOmZpbHRlcl90eXBlKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgJzpzY3JpcHRfZGF0YScgPT4gJHNjcmlwdF9kYXRhLA0KKyAgICAgICAgICAgICc6c2NyaXB0X2Rlc2MnID0+ICRzY3JpcHRfZGVzYywNCisgICAgICAgICAgICAnOnNjcmlwdF9uYW1lJyA9PiAkc2NyaXB0X25hbWUsDQorICAgICAgICAgICAgJzpmaWx0ZXJfdHlwZScgPT4gJGZpbHRlcl90eXBlDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbWFpbGJveF9tb2RpZmllZCcsICR1c2VybmFtZSkNCisgICAgICAgICAgKTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnc3luY2pvYic6DQorICAgICAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsnc3luY2pvYnMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnc3luY2pvYnMnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhWyd1c2VybmFtZSddKSAmJiBmaWx0ZXJfdmFyKCRfZGF0YVsndXNlcm5hbWUnXSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhWyd1c2VybmFtZSddKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJHVzZXJuYW1lID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gInVzZXIiKSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnbm9fdXNlcl9kZWZpbmVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRhY3RpdmUgICAgICAgICAgICAgICA9IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKTsNCisgICAgICAgICAgJHN1YnNjcmliZWFsbCAgICAgICAgID0gaW50dmFsKCRfZGF0YVsnc3Vic2NyaWJlYWxsJ10pOw0KKyAgICAgICAgICAkZGVsZXRlMmR1cGxpY2F0ZXMgICAgPSBpbnR2YWwoJF9kYXRhWydkZWxldGUyZHVwbGljYXRlcyddKTsNCisgICAgICAgICAgJGRlbGV0ZTEgICAgICAgICAgICAgID0gaW50dmFsKCRfZGF0YVsnZGVsZXRlMSddKTsNCisgICAgICAgICAgJGRlbGV0ZTIgICAgICAgICAgICAgID0gaW50dmFsKCRfZGF0YVsnZGVsZXRlMiddKTsNCisgICAgICAgICAgJHRpbWVvdXQxICAgICAgICAgICAgID0gaW50dmFsKCRfZGF0YVsndGltZW91dDEnXSk7DQorICAgICAgICAgICR0aW1lb3V0MiAgICAgICAgICAgICA9IGludHZhbCgkX2RhdGFbJ3RpbWVvdXQyJ10pOw0KKyAgICAgICAgICAkc2tpcGNyb3NzZHVwbGljYXRlcyAgPSBpbnR2YWwoJF9kYXRhWydza2lwY3Jvc3NkdXBsaWNhdGVzJ10pOw0KKyAgICAgICAgICAkYXV0b21hcCAgICAgICAgICAgICAgPSBpbnR2YWwoJF9kYXRhWydhdXRvbWFwJ10pOw0KKyAgICAgICAgICAkcG9ydDEgICAgICAgICAgICAgICAgPSAkX2RhdGFbJ3BvcnQxJ107DQorICAgICAgICAgICRob3N0MSAgICAgICAgICAgICAgICA9IHN0cnRvbG93ZXIoJF9kYXRhWydob3N0MSddKTsNCisgICAgICAgICAgJHBhc3N3b3JkMSAgICAgICAgICAgID0gJF9kYXRhWydwYXNzd29yZDEnXTsNCisgICAgICAgICAgJGV4Y2x1ZGUgICAgICAgICAgICAgID0gJF9kYXRhWydleGNsdWRlJ107DQorICAgICAgICAgICRtYXhhZ2UgICAgICAgICAgICAgICA9ICRfZGF0YVsnbWF4YWdlJ107DQorICAgICAgICAgICRtYXhieXRlc3BlcnNlY29uZCAgICA9ICRfZGF0YVsnbWF4Ynl0ZXNwZXJzZWNvbmQnXTsNCisgICAgICAgICAgJHN1YmZvbGRlcjIgICAgICAgICAgID0gJF9kYXRhWydzdWJmb2xkZXIyJ107DQorICAgICAgICAgICR1c2VyMSAgICAgICAgICAgICAgICA9ICRfZGF0YVsndXNlcjEnXTsNCisgICAgICAgICAgJG1pbnNfaW50ZXJ2YWwgICAgICAgID0gJF9kYXRhWydtaW5zX2ludGVydmFsJ107DQorICAgICAgICAgICRlbmMxICAgICAgICAgICAgICAgICA9ICRfZGF0YVsnZW5jMSddOw0KKyAgICAgICAgICAkY3VzdG9tX3BhcmFtcyAgICAgICAgPSAoZW1wdHkodHJpbSgkX2RhdGFbJ2N1c3RvbV9wYXJhbXMnXSkpKSA/ICcnIDogdHJpbSgkX2RhdGFbJ2N1c3RvbV9wYXJhbXMnXSk7DQorICAgICAgICAgIC8vIFdvcmthcm91bmQsIGZpeG1lDQorICAgICAgICAgIGlmIChzdHJwb3MoJGN1c3RvbV9wYXJhbXMsICdwaXBlbWVzcycpKSB7DQorICAgICAgICAgICAgJGN1c3RvbV9wYXJhbXMgPSAnJzsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoZW1wdHkoJHN1YmZvbGRlcjIpKSB7DQorICAgICAgICAgICAgJHN1YmZvbGRlcjIgPSAiIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRtYXhhZ2UpIHx8ICFmaWx0ZXJfdmFyKCRtYXhhZ2UsIEZJTFRFUl9WQUxJREFURV9JTlQsIGFycmF5KCdvcHRpb25zJyA9PiBhcnJheSgnbWluX3JhbmdlJyA9PiAxLCAnbWF4X3JhbmdlJyA9PiAzMjAwMCkpKSkgew0KKyAgICAgICAgICAgICRtYXhhZ2UgPSAiMCI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkdGltZW91dDEpIHx8ICFmaWx0ZXJfdmFyKCR0aW1lb3V0MSwgRklMVEVSX1ZBTElEQVRFX0lOVCwgYXJyYXkoJ29wdGlvbnMnID0+IGFycmF5KCdtaW5fcmFuZ2UnID0+IDEsICdtYXhfcmFuZ2UnID0+IDMyMDAwKSkpKSB7DQorICAgICAgICAgICAgJHRpbWVvdXQxID0gIjYwMCI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkdGltZW91dDIpIHx8ICFmaWx0ZXJfdmFyKCR0aW1lb3V0MiwgRklMVEVSX1ZBTElEQVRFX0lOVCwgYXJyYXkoJ29wdGlvbnMnID0+IGFycmF5KCdtaW5fcmFuZ2UnID0+IDEsICdtYXhfcmFuZ2UnID0+IDMyMDAwKSkpKSB7DQorICAgICAgICAgICAgJHRpbWVvdXQyID0gIjYwMCI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkbWF4Ynl0ZXNwZXJzZWNvbmQpIHx8ICFmaWx0ZXJfdmFyKCRtYXhieXRlc3BlcnNlY29uZCwgRklMVEVSX1ZBTElEQVRFX0lOVCwgYXJyYXkoJ29wdGlvbnMnID0+IGFycmF5KCdtaW5fcmFuZ2UnID0+IDEsICdtYXhfcmFuZ2UnID0+IDEyNTAwMDAwMCkpKSkgew0KKyAgICAgICAgICAgICRtYXhieXRlc3BlcnNlY29uZCA9ICIwIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJHBvcnQxLCBGSUxURVJfVkFMSURBVEVfSU5ULCBhcnJheSgnb3B0aW9ucycgPT4gYXJyYXkoJ21pbl9yYW5nZScgPT4gMSwgJ21heF9yYW5nZScgPT4gNjU1MzUpKSkpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkbWluc19pbnRlcnZhbCwgRklMVEVSX1ZBTElEQVRFX0lOVCwgYXJyYXkoJ29wdGlvbnMnID0+IGFycmF5KCdtaW5fcmFuZ2UnID0+IDEsICdtYXhfcmFuZ2UnID0+IDQzODAwKSkpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAvLyBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRob3N0MSkpIHsNCisgICAgICAgICAgICAvLyAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgIC8vICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgIC8vICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgIC8vICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgIC8vICk7DQorICAgICAgICAgICAgLy8gcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAvLyB9DQorICAgICAgICAgIGlmICgkZW5jMSAhPSAiVExTIiAmJiAkZW5jMSAhPSAiU1NMIiAmJiAkZW5jMSAhPSAiUExBSU4iKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoQHByZWdfbWF0Y2goIi8iIC4gJGV4Y2x1ZGUgLiAiLyIsIG51bGwpID09PSBmYWxzZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgJzEnIEZST00gYGltYXBzeW5jYA0KKyAgICAgICAgICAgIFdIRVJFIGB1c2VyMmAgPSA6dXNlcjIgQU5EIGB1c2VyMWAgPSA6dXNlcjEgQU5EIGBob3N0MWAgPSA6aG9zdDEiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VyMScgPT4gJHVzZXIxLCAnOnVzZXIyJyA9PiAkdXNlcm5hbWUsICc6aG9zdDEnID0+ICRob3N0MSkpOw0KKyAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICBpZiAoJG51bV9yZXN1bHRzICE9IDApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfZXhpc3RzJywgaHRtbHNwZWNpYWxjaGFycygkaG9zdDEgLiAnIC8gJyAuICR1c2VyMSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgaW1hcHN5bmNgIChgdXNlcjJgLCBgZXhjbHVkZWAsIGBkZWxldGUxYCwgYGRlbGV0ZTJgLCBgdGltZW91dDFgLCBgdGltZW91dDJgLCBgYXV0b21hcGAsIGBza2lwY3Jvc3NkdXBsaWNhdGVzYCwgYG1heGJ5dGVzcGVyc2Vjb25kYCwgYHN1YnNjcmliZWFsbGAsIGBtYXhhZ2VgLCBgc3ViZm9sZGVyMmAsIGBob3N0MWAsIGBhdXRobWVjaDFgLCBgdXNlcjFgLCBgcGFzc3dvcmQxYCwgYG1pbnNfaW50ZXJ2YWxgLCBgcG9ydDFgLCBgZW5jMWAsIGBkZWxldGUyZHVwbGljYXRlc2AsIGBjdXN0b21fcGFyYW1zYCwgYGFjdGl2ZWApDQorICAgICAgICAgICAgVkFMVUVTICg6dXNlcjIsIDpleGNsdWRlLCA6ZGVsZXRlMSwgOmRlbGV0ZTIsIDp0aW1lb3V0MSwgOnRpbWVvdXQyLCA6YXV0b21hcCwgOnNraXBjcm9zc2R1cGxpY2F0ZXMsIDptYXhieXRlc3BlcnNlY29uZCwgOnN1YnNjcmliZWFsbCwgOm1heGFnZSwgOnN1YmZvbGRlcjIsIDpob3N0MSwgOmF1dGhtZWNoMSwgOnVzZXIxLCA6cGFzc3dvcmQxLCA6bWluc19pbnRlcnZhbCwgOnBvcnQxLCA6ZW5jMSwgOmRlbGV0ZTJkdXBsaWNhdGVzLCA6Y3VzdG9tX3BhcmFtcywgOmFjdGl2ZSkiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzp1c2VyMicgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICc6Y3VzdG9tX3BhcmFtcycgPT4gJGN1c3RvbV9wYXJhbXMsDQorICAgICAgICAgICAgJzpleGNsdWRlJyA9PiAkZXhjbHVkZSwNCisgICAgICAgICAgICAnOm1heGFnZScgPT4gJG1heGFnZSwNCisgICAgICAgICAgICAnOmRlbGV0ZTEnID0+ICRkZWxldGUxLA0KKyAgICAgICAgICAgICc6ZGVsZXRlMicgPT4gJGRlbGV0ZTIsDQorICAgICAgICAgICAgJzp0aW1lb3V0MScgPT4gJHRpbWVvdXQxLA0KKyAgICAgICAgICAgICc6dGltZW91dDInID0+ICR0aW1lb3V0MiwNCisgICAgICAgICAgICAnOmF1dG9tYXAnID0+ICRhdXRvbWFwLA0KKyAgICAgICAgICAgICc6c2tpcGNyb3NzZHVwbGljYXRlcycgPT4gJHNraXBjcm9zc2R1cGxpY2F0ZXMsDQorICAgICAgICAgICAgJzptYXhieXRlc3BlcnNlY29uZCcgPT4gJG1heGJ5dGVzcGVyc2Vjb25kLA0KKyAgICAgICAgICAgICc6c3Vic2NyaWJlYWxsJyA9PiAkc3Vic2NyaWJlYWxsLA0KKyAgICAgICAgICAgICc6c3ViZm9sZGVyMicgPT4gJHN1YmZvbGRlcjIsDQorICAgICAgICAgICAgJzpob3N0MScgPT4gJGhvc3QxLA0KKyAgICAgICAgICAgICc6YXV0aG1lY2gxJyA9PiAnUExBSU4nLA0KKyAgICAgICAgICAgICc6dXNlcjEnID0+ICR1c2VyMSwNCisgICAgICAgICAgICAnOnBhc3N3b3JkMScgPT4gJHBhc3N3b3JkMSwNCisgICAgICAgICAgICAnOm1pbnNfaW50ZXJ2YWwnID0+ICRtaW5zX2ludGVydmFsLA0KKyAgICAgICAgICAgICc6cG9ydDEnID0+ICRwb3J0MSwNCisgICAgICAgICAgICAnOmVuYzEnID0+ICRlbmMxLA0KKyAgICAgICAgICAgICc6ZGVsZXRlMmR1cGxpY2F0ZXMnID0+ICRkZWxldGUyZHVwbGljYXRlcywNCisgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZSwNCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X21vZGlmaWVkJywgJHVzZXJuYW1lKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdkb21haW4nOg0KKyAgICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkZG9tYWluCQkJCT0gaWRuX3RvX2FzY2lpKHN0cnRvbG93ZXIodHJpbSgkX2RhdGFbJ2RvbWFpbiddKSksIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICAgJGRlc2NyaXB0aW9uICA9ICRfZGF0YVsnZGVzY3JpcHRpb24nXTsNCisgICAgICAgICAgaWYgKGVtcHR5KCRkZXNjcmlwdGlvbikpIHsNCisgICAgICAgICAgICAkZGVzY3JpcHRpb24gPSAkZG9tYWluOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRhbGlhc2VzCQkJPSAkX2RhdGFbJ2FsaWFzZXMnXTsNCisgICAgICAgICAgJG1haWxib3hlcyAgICA9ICRfZGF0YVsnbWFpbGJveGVzJ107DQorICAgICAgICAgICRkZWZxdW90YQkJCT0gJF9kYXRhWydkZWZxdW90YSddOw0KKyAgICAgICAgICAkbWF4cXVvdGEJCQk9ICRfZGF0YVsnbWF4cXVvdGEnXTsNCisgICAgICAgICAgJHJlc3RhcnRfc29nbyA9ICRfZGF0YVsncmVzdGFydF9zb2dvJ107DQorICAgICAgICAgICRxdW90YQkJCQk9ICRfZGF0YVsncXVvdGEnXTsNCisgICAgICAgICAgaWYgKCRkZWZxdW90YSA+ICRtYXhxdW90YSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ21haWxib3hfZGVmcXVvdGFfZXhjZWVkc19tYWlsYm94X21heHF1b3RhJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICgkbWF4cXVvdGEgPiAkcXVvdGEpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdtYWlsYm94X3F1b3RhX2V4Y2VlZHNfZG9tYWluX3F1b3RhJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICgkZGVmcXVvdGEgPT0gIjAiIHx8IGVtcHR5KCRkZWZxdW90YSkpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdkZWZxdW90YV9lbXB0eScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJG1heHF1b3RhID09ICIwIiB8fCBlbXB0eSgkbWF4cXVvdGEpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnbWF4cXVvdGFfZW1wdHknDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJGFjdGl2ZSA9IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKTsNCisgICAgICAgICAgJHJlbGF5X2FsbF9yZWNpcGllbnRzID0gaW50dmFsKCRfZGF0YVsncmVsYXlfYWxsX3JlY2lwaWVudHMnXSk7DQorICAgICAgICAgICRyZWxheV91bmtub3duX29ubHkgPSBpbnR2YWwoJF9kYXRhWydyZWxheV91bmtub3duX29ubHknXSk7DQorICAgICAgICAgICRiYWNrdXBteCA9IGludHZhbCgkX2RhdGFbJ2JhY2t1cG14J10pOw0KKyAgICAgICAgICAkZ2FsID0gaW50dmFsKCRfZGF0YVsnZ2FsJ10pOw0KKyAgICAgICAgICBpZiAoJHJlbGF5X2FsbF9yZWNpcGllbnRzID09IDEpIHsNCisgICAgICAgICAgICAkYmFja3VwbXggPSAnMSc7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRyZWxheV91bmtub3duX29ubHkgPT0gMSkgew0KKyAgICAgICAgICAgICRiYWNrdXBteCA9IDE7DQorICAgICAgICAgICAgJHJlbGF5X2FsbF9yZWNpcGllbnRzID0gMTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnZG9tYWluX2ludmFsaWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoYXJyYXkoJHF1b3RhLCAkbWF4cXVvdGEsICRtYWlsYm94ZXMsICRhbGlhc2VzKSBhcyAkZGF0YSkgew0KKyAgICAgICAgICAgIGlmICghaXNfbnVtZXJpYygkZGF0YSkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ29iamVjdF9pc19ub3RfbnVtZXJpYycsIGh0bWxzcGVjaWFsY2hhcnMoJGRhdGEpKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGRvbWFpbmAgRlJPTSBgZG9tYWluYA0KKyAgICAgICAgICAgIFdIRVJFIGBkb21haW5gID0gOmRvbWFpbiIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWxpYXNfZG9tYWluYCBGUk9NIGBhbGlhc19kb21haW5gDQorICAgICAgICAgICAgV0hFUkUgYGFsaWFzX2RvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6ZG9tYWluJyA9PiAkZG9tYWluKSk7DQorICAgICAgICAgICRudW1fcmVzdWx0cyA9ICRudW1fcmVzdWx0cyArIGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9leGlzdHMnLCBodG1sc3BlY2lhbGNoYXJzKCRkb21haW4pKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICgkZG9tYWluID09IGdldGVudignTUFJTENPV19IT1NUTkFNRScpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnZG9tYWluX2Nhbm5vdF9tYXRjaF9ob3N0bmFtZScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRSBgZXh0ZXJuYWxgID0gMSBBTkQgYHNlbmRfYXNgIExJS0UgOmRvbWFpbiIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOmRvbWFpbicgPT4gJyVAJyAuICRkb21haW4NCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYGRvbWFpbmAgKGBkb21haW5gLCBgZGVzY3JpcHRpb25gLCBgYWxpYXNlc2AsIGBtYWlsYm94ZXNgLCBgZGVmcXVvdGFgLCBgbWF4cXVvdGFgLCBgcXVvdGFgLCBgYmFja3VwbXhgLCBgZ2FsYCwgYGFjdGl2ZWAsIGByZWxheV91bmtub3duX29ubHlgLCBgcmVsYXlfYWxsX3JlY2lwaWVudHNgKQ0KKyAgICAgICAgICAgIFZBTFVFUyAoOmRvbWFpbiwgOmRlc2NyaXB0aW9uLCA6YWxpYXNlcywgOm1haWxib3hlcywgOmRlZnF1b3RhLCA6bWF4cXVvdGEsIDpxdW90YSwgOmJhY2t1cG14LCA6Z2FsLCA6YWN0aXZlLCA6cmVsYXlfdW5rbm93bl9vbmx5LCA6cmVsYXlfYWxsX3JlY2lwaWVudHMpIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICc6ZGVzY3JpcHRpb24nID0+ICRkZXNjcmlwdGlvbiwNCisgICAgICAgICAgICAnOmFsaWFzZXMnID0+ICRhbGlhc2VzLA0KKyAgICAgICAgICAgICc6bWFpbGJveGVzJyA9PiAkbWFpbGJveGVzLA0KKyAgICAgICAgICAgICc6ZGVmcXVvdGEnID0+ICRkZWZxdW90YSwNCisgICAgICAgICAgICAnOm1heHF1b3RhJyA9PiAkbWF4cXVvdGEsDQorICAgICAgICAgICAgJzpxdW90YScgPT4gJHF1b3RhLA0KKyAgICAgICAgICAgICc6YmFja3VwbXgnID0+ICRiYWNrdXBteCwNCisgICAgICAgICAgICAnOmdhbCcgPT4gJGdhbCwNCisgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZSwNCisgICAgICAgICAgICAnOnJlbGF5X3Vua25vd25fb25seScgPT4gJHJlbGF5X3Vua25vd25fb25seSwNCisgICAgICAgICAgICAnOnJlbGF5X2FsbF9yZWNpcGllbnRzJyA9PiAkcmVsYXlfYWxsX3JlY2lwaWVudHMNCisgICAgICAgICAgKSk7DQorICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgJHJlZGlzLT5oU2V0KCdET01BSU5fTUFQJywgJGRvbWFpbiwgMSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWVtcHR5KGludHZhbCgkX2RhdGFbJ3JsX3ZhbHVlJ10pKSkgew0KKyAgICAgICAgICAgIHJhdGVsaW1pdCgnZWRpdCcsICdkb21haW4nLCBhcnJheSgncmxfdmFsdWUnID0+ICRfZGF0YVsncmxfdmFsdWUnXSwgJ3JsX2ZyYW1lJyA9PiAkX2RhdGFbJ3JsX2ZyYW1lJ10sICdvYmplY3QnID0+ICRkb21haW4pKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWVtcHR5KCRyZXN0YXJ0X3NvZ28pKSB7DQorICAgICAgICAgICAgJHJlc3RhcnRfcmVzcG9uc2UgPSBqc29uX2RlY29kZShkb2NrZXIoJ3Bvc3QnLCAnc29nby1tYWlsY293JywgJ3Jlc3RhcnQnKSwgdHJ1ZSk7DQorICAgICAgICAgICAgaWYgKCRyZXN0YXJ0X3Jlc3BvbnNlWyd0eXBlJ10gPT0gInN1Y2Nlc3MiKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZG9tYWluX2FkZGVkJywgaHRtbHNwZWNpYWxjaGFycygkZG9tYWluKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnZG9tYWluX2FkZGVkX3NvZ29fZmFpbGVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9hZGRlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGRvbWFpbikpDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdhbGlhcyc6DQorICAgICAgICAgICRhZGRyZXNzZXMgID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRfZGF0YVsnYWRkcmVzcyddKSk7DQorICAgICAgICAgICRnb3RvcyAgICAgID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRfZGF0YVsnZ290byddKSk7DQorICAgICAgICAgICRhY3RpdmUgPSBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSk7DQorICAgICAgICAgICRzb2dvX3Zpc2libGUgPSBpbnR2YWwoJF9kYXRhWydzb2dvX3Zpc2libGUnXSk7DQorICAgICAgICAgICRnb3RvX251bGwgPSBpbnR2YWwoJF9kYXRhWydnb3RvX251bGwnXSk7DQorICAgICAgICAgICRnb3RvX3NwYW0gPSBpbnR2YWwoJF9kYXRhWydnb3RvX3NwYW0nXSk7DQorICAgICAgICAgICRnb3RvX2hhbSA9IGludHZhbCgkX2RhdGFbJ2dvdG9faGFtJ10pOw0KKyAgICAgICAgICAkcHJpdmF0ZV9jb21tZW50ID0gJF9kYXRhWydwcml2YXRlX2NvbW1lbnQnXTsNCisgICAgICAgICAgJHB1YmxpY19jb21tZW50ID0gJF9kYXRhWydwdWJsaWNfY29tbWVudCddOw0KKyAgICAgICAgICBpZiAoc3RybGVuKCRwcml2YXRlX2NvbW1lbnQpID4gMTYwIHwgc3RybGVuKCRwdWJsaWNfY29tbWVudCkgPiAxNjApew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2NvbW1lbnRfdG9vX2xvbmcnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKGVtcHR5KCRhZGRyZXNzZXNbMF0pKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWxpYXNfZW1wdHknDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKGVtcHR5KCRnb3Rvc1swXSkgJiYgKCRnb3RvX251bGwgKyAkZ290b19zcGFtICsgJGdvdG9faGFtID09IDApKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnZ290b19lbXB0eScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJGdvdG9fbnVsbCA9PSAiMSIpIHsNCisgICAgICAgICAgICAkZ290byA9ICJudWxsQGxvY2FsaG9zdCI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZWlmICgkZ290b19zcGFtID09ICIxIikgew0KKyAgICAgICAgICAgICRnb3RvID0gInNwYW1AbG9jYWxob3N0IjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKCRnb3RvX2hhbSA9PSAiMSIpIHsNCisgICAgICAgICAgICAkZ290byA9ICJoYW1AbG9jYWxob3N0IjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICBmb3JlYWNoICgkZ290b3MgYXMgJGkgPT4gJiRnb3RvKSB7DQorICAgICAgICAgICAgICBpZiAoZW1wdHkoJGdvdG8pKSB7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJGdvdG9fZG9tYWluID0gaWRuX3RvX2FzY2lpKHN1YnN0cihzdHJzdHIoJGdvdG8sICdAJyksIDEpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICAgICAkZ290b19sb2NhbF9wYXJ0ID0gc3Ryc3RyKCRnb3RvLCAnQCcsIHRydWUpOw0KKyAgICAgICAgICAgICAgJGdvdG8gPSAkZ290b19sb2NhbF9wYXJ0LidAJy4kZ290b19kb21haW47DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdXNlcm5hbWVgIEZST00gYG1haWxib3hgDQorICAgICAgICAgICAgICAgIFdIRVJFIGBraW5kYCBSRUdFWFAgJ2xvY2F0aW9ufHRoaW5nfGdyb3VwJw0KKyAgICAgICAgICAgICAgICAgIEFORCBgdXNlcm5hbWVgPSA6Z290byIpOw0KKyAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpnb3RvJyA9PiAkZ290bykpOw0KKyAgICAgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdnb3RvX2ludmFsaWQnLCBodG1sc3BlY2lhbGNoYXJzKCRnb3RvKSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgdW5zZXQoJGdvdG9zWyRpXSk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRnb3RvLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpID09PSB0cnVlKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2dvdG9faW52YWxpZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGdvdG8pKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICB1bnNldCgkZ290b3NbJGldKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRnb3RvcyA9IGFycmF5X2ZpbHRlcigkZ290b3MpOw0KKyAgICAgICAgICAgIGlmIChlbXB0eSgkZ290b3MpKSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgICAgICAgICAgICRnb3RvID0gaW1wbG9kZSgiLCIsICRnb3Rvcyk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGFkZHJlc3NlcyBhcyAkYWRkcmVzcykgew0KKyAgICAgICAgICAgIGlmIChlbXB0eSgkYWRkcmVzcykpIHsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGFkZHJlc3MsICRnb3RvcykpIHsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkZG9tYWluICAgICAgID0gaWRuX3RvX2FzY2lpKHN1YnN0cihzdHJzdHIoJGFkZHJlc3MsICdAJyksIDEpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICAgJGxvY2FsX3BhcnQgICA9IHN0cnN0cigkYWRkcmVzcywgJ0AnLCB0cnVlKTsNCisgICAgICAgICAgICAkYWRkcmVzcyAgICAgID0gJGxvY2FsX3BhcnQuJ0AnLiRkb21haW47DQorICAgICAgICAgICAgJGRvbWFpbmRhdGEgPSBtYWlsYm94KCdnZXQnLCAnZG9tYWluX2RldGFpbHMnLCAkZG9tYWluKTsNCisgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGRvbWFpbmRhdGEpICYmICRkb21haW5kYXRhWydhbGlhc2VzX2xlZnQnXSA9PSAiMCIpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ21heF9hbGlhc19leGNlZWRlZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBhZGRyZXNzYCBGUk9NIGBhbGlhc2ANCisgICAgICAgICAgICAgIFdIRVJFIGBhZGRyZXNzYD0gOmFkZHJlc3MgT1IgYGFkZHJlc3NgIElOICgNCisgICAgICAgICAgICAgICAgU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgbWFpbGJveGAsIGBhbGlhc19kb21haW5gDQorICAgICAgICAgICAgICAgICAgV0hFUkUgKA0KKyAgICAgICAgICAgICAgICAgICAgYGFsaWFzX2RvbWFpbmAuYGFsaWFzX2RvbWFpbmAgPSA6YWRkcmVzc19kDQorICAgICAgICAgICAgICAgICAgICAgIEFORCBgbWFpbGJveGAuYHVzZXJuYW1lYCA9IENPTkNBVCg6YWRkcmVzc19sLCAnQCcsIGFsaWFzX2RvbWFpbi50YXJnZXRfZG9tYWluKSkpIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmFkZHJlc3MnID0+ICRhZGRyZXNzLA0KKyAgICAgICAgICAgICAgJzphZGRyZXNzX2wnID0+ICRsb2NhbF9wYXJ0LA0KKyAgICAgICAgICAgICAgJzphZGRyZXNzX2QnID0+ICRkb21haW4NCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXNfYWxpYXNfb3JfbWFpbGJveCcsIGh0bWxzcGVjaWFsY2hhcnMoJGFkZHJlc3MpKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gDQorICAgICAgICAgICAgICBXSEVSRSBgZG9tYWluYD0gOmRvbWFpbjEgT1IgYGRvbWFpbmAgPSAoU0VMRUNUIGB0YXJnZXRfZG9tYWluYCBGUk9NIGBhbGlhc19kb21haW5gIFdIRVJFIGBhbGlhc19kb21haW5gID0gOmRvbWFpbjIpIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpkb21haW4xJyA9PiAkZG9tYWluLCAnOmRvbWFpbjInID0+ICRkb21haW4pKTsNCisgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgPT0gMCkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZG9tYWluX25vdF9mb3VuZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGRvbWFpbikpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBhZGRyZXNzYCBGUk9NIGBzcGFtYWxpYXNgDQorICAgICAgICAgICAgICBXSEVSRSBgYWRkcmVzc2A9IDphZGRyZXNzIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzphZGRyZXNzJyA9PiAkYWRkcmVzcykpOw0KKyAgICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdpc19zcGFtX2FsaWFzJywgaHRtbHNwZWNpYWxjaGFycygkYWRkcmVzcykpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgoIWZpbHRlcl92YXIoJGFkZHJlc3MsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgPT09IHRydWUpICYmICFlbXB0eSgkbG9jYWxfcGFydCkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FsaWFzX2ludmFsaWQnLCAkYWRkcmVzcykNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRkb21haW4pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBhbGlhc2AgKGBhZGRyZXNzYCwgYHB1YmxpY19jb21tZW50YCwgYHByaXZhdGVfY29tbWVudGAsIGBnb3RvYCwgYGRvbWFpbmAsIGBzb2dvX3Zpc2libGVgLCBgYWN0aXZlYCkNCisgICAgICAgICAgICAgIFZBTFVFUyAoOmFkZHJlc3MsIDpwdWJsaWNfY29tbWVudCwgOnByaXZhdGVfY29tbWVudCwgOmdvdG8sIDpkb21haW4sIDpzb2dvX3Zpc2libGUsIDphY3RpdmUpIik7DQorICAgICAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRhZGRyZXNzLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpID09PSB0cnVlKSB7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzphZGRyZXNzJyA9PiAnQCcuJGRvbWFpbiwNCisgICAgICAgICAgICAgICAgJzpwdWJsaWNfY29tbWVudCcgPT4gJHB1YmxpY19jb21tZW50LA0KKyAgICAgICAgICAgICAgICAnOnByaXZhdGVfY29tbWVudCcgPT4gJHByaXZhdGVfY29tbWVudCwNCisgICAgICAgICAgICAgICAgJzphZGRyZXNzJyA9PiAnQCcuJGRvbWFpbiwNCisgICAgICAgICAgICAgICAgJzpnb3RvJyA9PiAkZ290bywNCisgICAgICAgICAgICAgICAgJzpkb21haW4nID0+ICRkb21haW4sDQorICAgICAgICAgICAgICAgICc6c29nb192aXNpYmxlJyA9PiAkc29nb192aXNpYmxlLA0KKyAgICAgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICc6YWRkcmVzcycgPT4gJGFkZHJlc3MsDQorICAgICAgICAgICAgICAgICc6cHVibGljX2NvbW1lbnQnID0+ICRwdWJsaWNfY29tbWVudCwNCisgICAgICAgICAgICAgICAgJzpwcml2YXRlX2NvbW1lbnQnID0+ICRwcml2YXRlX2NvbW1lbnQsDQorICAgICAgICAgICAgICAgICc6Z290bycgPT4gJGdvdG8sDQorICAgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICAgICAnOnNvZ29fdmlzaWJsZScgPT4gJHNvZ29fdmlzaWJsZSwNCisgICAgICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkaWQgPSAkcGRvLT5sYXN0SW5zZXJ0SWQoKTsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYWxpYXNfYWRkZWQnLCAkYWRkcmVzcywgJGlkKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnYWxpYXNfZG9tYWluJzoNCisgICAgICAgICAgJGFjdGl2ZSA9IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKTsNCisgICAgICAgICAgJGFsaWFzX2RvbWFpbnMgID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRfZGF0YVsnYWxpYXNfZG9tYWluJ10pKTsNCisgICAgICAgICAgJGFsaWFzX2RvbWFpbnMgPSBhcnJheV9maWx0ZXIoJGFsaWFzX2RvbWFpbnMpOw0KKyAgICAgICAgICAkdGFyZ2V0X2RvbWFpbiA9IGlkbl90b19hc2NpaShzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhWyd0YXJnZXRfZG9tYWluJ10pKSwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpOw0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ2FsaWFzX2RvbWFpbnMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnYWxpYXNfZG9tYWlucyddICE9ICIxIiApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghaXNfdmFsaWRfZG9tYWluX25hbWUoJHRhcmdldF9kb21haW4pKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAndGFyZ2V0X2RvbWFpbl9pbnZhbGlkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkdGFyZ2V0X2RvbWFpbikpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRhbGlhc19kb21haW5zIGFzICRpID0+ICRhbGlhc19kb21haW4pIHsNCisgICAgICAgICAgICAkYWxpYXNfZG9tYWluID0gaWRuX3RvX2FzY2lpKHN0cnRvbG93ZXIodHJpbSgkYWxpYXNfZG9tYWluKSksIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICAgICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRhbGlhc19kb21haW4pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdhbGlhc19kb21haW5faW52YWxpZCcsIGh0bWxzcGVjaWFsY2hhcnMoYWxpYXNfZG9tYWluKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCRhbGlhc19kb21haW4gPT0gJHRhcmdldF9kb21haW4pIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FsaWFzZF90YXJnZXRkX2lkZW50aWNhbCcsIGh0bWxzcGVjaWFsY2hhcnMoJHRhcmdldF9kb21haW4pKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gDQorICAgICAgICAgICAgICBXSEVSRSBgZG9tYWluYD0gOnRhcmdldF9kb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnRhcmdldF9kb21haW4nID0+ICR0YXJnZXRfZG9tYWluKSk7DQorICAgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgICBpZiAoJG51bV9yZXN1bHRzID09IDApIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3RhcmdldGRfbm90X2ZvdW5kJywgaHRtbHNwZWNpYWxjaGFycygkdGFyZ2V0X2RvbWFpbikpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBkb21haW5gIEZST00gYGRvbWFpbmANCisgICAgICAgICAgICAgIFdIRVJFIGBkb21haW5gPSA6dGFyZ2V0X2RvbWFpbiBBTkQgYGJhY2t1cG14YCA9ICcxJyIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dGFyZ2V0X2RvbWFpbicgPT4gJHRhcmdldF9kb21haW4pKTsNCisgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgPT0gMSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndGFyZ2V0ZF9yZWxheV9kb21haW4nLCBodG1sc3BlY2lhbGNoYXJzKCR0YXJnZXRfZG9tYWluKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGFsaWFzX2RvbWFpbmAgRlJPTSBgYWxpYXNfZG9tYWluYCBXSEVSRSBgYWxpYXNfZG9tYWluYD0gOmFsaWFzX2RvbWFpbg0KKyAgICAgICAgICAgICAgVU5JT04NCisgICAgICAgICAgICAgIFNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gIFdIRVJFIGBkb21haW5gPSA6YWxpYXNfZG9tYWluX2luX2RvbWFpbiIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6YWxpYXNfZG9tYWluJyA9PiAkYWxpYXNfZG9tYWluLCAnOmFsaWFzX2RvbWFpbl9pbl9kb21haW4nID0+ICRhbGlhc19kb21haW4pKTsNCisgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYWxpYXNfZG9tYWluX2ludmFsaWQnLCAkYWxpYXNfZG9tYWluKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRSBgZXh0ZXJuYWxgID0gMSBBTkQgYHNlbmRfYXNgIExJS0UgOmRvbWFpbiIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzpkb21haW4nID0+ICclQCcgLiAkZG9tYWluDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgYWxpYXNfZG9tYWluYCAoYGFsaWFzX2RvbWFpbmAsIGB0YXJnZXRfZG9tYWluYCwgYGFjdGl2ZWApDQorICAgICAgICAgICAgICBWQUxVRVMgKDphbGlhc19kb21haW4sIDp0YXJnZXRfZG9tYWluLCA6YWN0aXZlKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzphbGlhc19kb21haW4nID0+ICRhbGlhc19kb21haW4sDQorICAgICAgICAgICAgICAnOnRhcmdldF9kb21haW4nID0+ICR0YXJnZXRfZG9tYWluLA0KKyAgICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJHJlZGlzLT5oU2V0KCdET01BSU5fTUFQJywgJGFsaWFzX2RvbWFpbiwgMSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghZW1wdHkoaW50dmFsKCRfZGF0YVsncmxfdmFsdWUnXSkpKSB7DQorICAgICAgICAgICAgICByYXRlbGltaXQoJ2VkaXQnLCAnZG9tYWluJywgYXJyYXkoJ3JsX3ZhbHVlJyA9PiAkX2RhdGFbJ3JsX3ZhbHVlJ10sICdybF9mcmFtZScgPT4gJF9kYXRhWydybF9mcmFtZSddLCAnb2JqZWN0JyA9PiAkYWxpYXNfZG9tYWluKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdhbGlhc2RfYWRkZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRhbGlhc19kb21haW4pKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnbWFpbGJveCc6DQorICAgICAgICAgICRsb2NhbF9wYXJ0ICAgPSBzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhWydsb2NhbF9wYXJ0J10pKTsNCisgICAgICAgICAgJGRvbWFpbiAgICAgICA9IGlkbl90b19hc2NpaShzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhWydkb21haW4nXSkpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICR1c2VybmFtZSAgICAgPSAkbG9jYWxfcGFydCAuICdAJyAuICRkb21haW47DQorICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkdXNlcm5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdtYWlsYm94X2ludmFsaWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKGVtcHR5KCRfZGF0YVsnbG9jYWxfcGFydCddKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ21haWxib3hfaW52YWxpZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkcGFzc3dvcmQgICAgID0gJF9kYXRhWydwYXNzd29yZCddOw0KKyAgICAgICAgICAkcGFzc3dvcmQyICAgID0gJF9kYXRhWydwYXNzd29yZDInXTsNCisgICAgICAgICAgJG5hbWUgICAgICAgICA9IGx0cmltKHJ0cmltKCRfZGF0YVsnbmFtZSddLCAnPicpLCAnPCcpOw0KKyAgICAgICAgICAkcXVvdGFfbQkJCT0gaW50dmFsKCRfZGF0YVsncXVvdGEnXSk7DQorICAgICAgICAgIGlmICgoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3VubGltaXRlZF9xdW90YSddKSB8fCAkX1NFU1NJT05bJ2FjbCddWyd1bmxpbWl0ZWRfcXVvdGEnXSAhPSAiMSIpICYmICRxdW90YV9tID09PSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAndW5saW1pdGVkX3F1b3RhX2FjbCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoZW1wdHkoJG5hbWUpKSB7DQorICAgICAgICAgICAgJG5hbWUgPSAkbG9jYWxfcGFydDsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkYWN0aXZlID0gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pOw0KKyAgICAgICAgICAkZm9yY2VfcHdfdXBkYXRlID0gKGlzc2V0KCRfZGF0YVsnZm9yY2VfcHdfdXBkYXRlJ10pKSA/IGludHZhbCgkX2RhdGFbJ2ZvcmNlX3B3X3VwZGF0ZSddKSA6IGludHZhbCgkTUFJTEJPWF9ERUZBVUxUX0FUVFJJQlVURVNbJ2ZvcmNlX3B3X3VwZGF0ZSddKTsNCisgICAgICAgICAgJHRsc19lbmZvcmNlX2luID0gKGlzc2V0KCRfZGF0YVsndGxzX2VuZm9yY2VfaW4nXSkpID8gaW50dmFsKCRfZGF0YVsndGxzX2VuZm9yY2VfaW4nXSkgOiBpbnR2YWwoJE1BSUxCT1hfREVGQVVMVF9BVFRSSUJVVEVTWyd0bHNfZW5mb3JjZV9pbiddKTsNCisgICAgICAgICAgJHRsc19lbmZvcmNlX291dCA9IChpc3NldCgkX2RhdGFbJ3Rsc19lbmZvcmNlX291dCddKSkgPyBpbnR2YWwoJF9kYXRhWyd0bHNfZW5mb3JjZV9vdXQnXSkgOiBpbnR2YWwoJE1BSUxCT1hfREVGQVVMVF9BVFRSSUJVVEVTWyd0bHNfZW5mb3JjZV9vdXQnXSk7DQorICAgICAgICAgICRzb2dvX2FjY2VzcyA9IChpc3NldCgkX2RhdGFbJ3NvZ29fYWNjZXNzJ10pKSA/IGludHZhbCgkX2RhdGFbJ3NvZ29fYWNjZXNzJ10pIDogaW50dmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snc29nb19hY2Nlc3MnXSk7DQorICAgICAgICAgICRpbWFwX2FjY2VzcyA9IChpc3NldCgkX2RhdGFbJ2ltYXBfYWNjZXNzJ10pKSA/IGludHZhbCgkX2RhdGFbJ2ltYXBfYWNjZXNzJ10pIDogaW50dmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snaW1hcF9hY2Nlc3MnXSk7DQorICAgICAgICAgICRwb3AzX2FjY2VzcyA9IChpc3NldCgkX2RhdGFbJ3BvcDNfYWNjZXNzJ10pKSA/IGludHZhbCgkX2RhdGFbJ3BvcDNfYWNjZXNzJ10pIDogaW50dmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1sncG9wM19hY2Nlc3MnXSk7DQorICAgICAgICAgICRzbXRwX2FjY2VzcyA9IChpc3NldCgkX2RhdGFbJ3NtdHBfYWNjZXNzJ10pKSA/IGludHZhbCgkX2RhdGFbJ3NtdHBfYWNjZXNzJ10pIDogaW50dmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snc210cF9hY2Nlc3MnXSk7DQorICAgICAgICAgICRxdWFyYW50aW5lX25vdGlmaWNhdGlvbiA9IChpc3NldCgkX2RhdGFbJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJ10pKSA/IHN0cnZhbCgkX2RhdGFbJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJ10pIDogc3RydmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1sncXVhcmFudGluZV9ub3RpZmljYXRpb24nXSk7DQorICAgICAgICAgICRxdWFyYW50aW5lX2NhdGVnb3J5ID0gKGlzc2V0KCRfZGF0YVsncXVhcmFudGluZV9jYXRlZ29yeSddKSkgPyBzdHJ2YWwoJF9kYXRhWydxdWFyYW50aW5lX2NhdGVnb3J5J10pIDogc3RydmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1sncXVhcmFudGluZV9jYXRlZ29yeSddKTsNCisgICAgICAgICAgJHF1b3RhX2IJCT0gKCRxdW90YV9tICogMTA0ODU3Nik7DQorICAgICAgICAgICRtYWlsYm94X2F0dHJzID0ganNvbl9lbmNvZGUoDQorICAgICAgICAgICAgYXJyYXkoDQorICAgICAgICAgICAgICAnZm9yY2VfcHdfdXBkYXRlJyA9PiBzdHJ2YWwoJGZvcmNlX3B3X3VwZGF0ZSksDQorICAgICAgICAgICAgICAndGxzX2VuZm9yY2VfaW4nID0+IHN0cnZhbCgkdGxzX2VuZm9yY2VfaW4pLA0KKyAgICAgICAgICAgICAgJ3Rsc19lbmZvcmNlX291dCcgPT4gc3RydmFsKCR0bHNfZW5mb3JjZV9vdXQpLA0KKyAgICAgICAgICAgICAgJ3NvZ29fYWNjZXNzJyA9PiBzdHJ2YWwoJHNvZ29fYWNjZXNzKSwNCisgICAgICAgICAgICAgICdpbWFwX2FjY2VzcycgPT4gc3RydmFsKCRpbWFwX2FjY2VzcyksDQorICAgICAgICAgICAgICAncG9wM19hY2Nlc3MnID0+IHN0cnZhbCgkcG9wM19hY2Nlc3MpLA0KKyAgICAgICAgICAgICAgJ3NtdHBfYWNjZXNzJyA9PiBzdHJ2YWwoJHNtdHBfYWNjZXNzKSwNCisgICAgICAgICAgICAgICdtYWlsYm94X2Zvcm1hdCcgPT4gc3RydmFsKCRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snbWFpbGJveF9mb3JtYXQnXSksDQorICAgICAgICAgICAgICAncXVhcmFudGluZV9ub3RpZmljYXRpb24nID0+IHN0cnZhbCgkcXVhcmFudGluZV9ub3RpZmljYXRpb24pLA0KKyAgICAgICAgICAgICAgJ3F1YXJhbnRpbmVfY2F0ZWdvcnknID0+IHN0cnZhbCgkcXVhcmFudGluZV9jYXRlZ29yeSkNCisgICAgICAgICAgICApDQorICAgICAgICAgICk7DQorICAgICAgICAgIGlmICghaXNfdmFsaWRfZG9tYWluX25hbWUoJGRvbWFpbikpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdkb21haW5faW52YWxpZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGRvbWFpbikpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBtYWlsYm94ZXNgLCBgbWF4cXVvdGFgLCBgcXVvdGFgIEZST00gYGRvbWFpbmANCisgICAgICAgICAgICBXSEVSRSBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpkb21haW4nID0+ICRkb21haW4pKTsNCisgICAgICAgICAgJERvbWFpbkRhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUDQorICAgICAgICAgICAgQ09VTlQoKikgYXMgY291bnQsDQorICAgICAgICAgICAgQ09BTEVTQ0UoUk9VTkQoU1VNKGBxdW90YWApLzEwNDg1NzYpLCAwKSBhcyBgcXVvdGFgDQorICAgICAgICAgICAgICBGUk9NIGBtYWlsYm94YA0KKyAgICAgICAgICAgICAgICBXSEVSRSBga2luZGAgTk9UIFJFR0VYUCAnbG9jYXRpb258dGhpbmd8Z3JvdXAnDQorICAgICAgICAgICAgICAgICAgQU5EIGBkb21haW5gID0gOmRvbWFpbiIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAkTWFpbGJveERhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBsb2NhbF9wYXJ0YCBGUk9NIGBtYWlsYm94YCBXSEVSRSBgbG9jYWxfcGFydGAgPSA6bG9jYWxfcGFydCBhbmQgYGRvbWFpbmA9IDpkb21haW4iKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpsb2NhbF9wYXJ0JyA9PiAkbG9jYWxfcGFydCwgJzpkb21haW4nID0+ICRkb21haW4pKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X2V4aXN0cycsIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWRkcmVzc2AgRlJPTSBgYWxpYXNgIFdIRVJFIGFkZHJlc3M9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXNfYWxpYXMnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGFkZHJlc3NgIEZST00gYHNwYW1hbGlhc2AgV0hFUkUgYGFkZHJlc3NgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2lzX3NwYW1fYWxpYXMnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGRvbWFpbmAgRlJPTSBgZG9tYWluYCBXSEVSRSBgZG9tYWluYD0gOmRvbWFpbiIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICBpZiAoJG51bV9yZXN1bHRzID09IDApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdkb21haW5fbm90X2ZvdW5kJywgaHRtbHNwZWNpYWxjaGFycygkZG9tYWluKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWVtcHR5KCRwYXNzd29yZCkgJiYgIWVtcHR5KCRwYXNzd29yZDIpKSB7DQorICAgICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCcvJyAuICRHTE9CQUxTWydQQVNTV0RfUkVHRVAnXSAuICcvJywgJHBhc3N3b3JkKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfY29tcGxleGl0eScNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgkcGFzc3dvcmQgIT0gJHBhc3N3b3JkMikgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAncGFzc3dvcmRfbWlzbWF0Y2gnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAvLyBzdXBwb3J0IHByZSBoYXNoZWQgcGFzc3dvcmRzDQorICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eKHtTU0hBMjU2fXx7U1NIQX18e1NIQTUxMi1DUllQVH18e1NTSEE1MTJ9fHtNRDUtQ1JZUFR9fHtQTEFJTi1NRDV9KS9pJywgJHBhc3N3b3JkKSkgew0KKyAgICAgICAgICAgICAgJHBhc3N3b3JkX2hhc2hlZCA9ICRwYXNzd29yZDsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkcGFzc3dvcmRfaGFzaGVkID0gaGFzaF9wYXNzd29yZCgkcGFzc3dvcmQpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdwYXNzd29yZF9lbXB0eScNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJE1haWxib3hEYXRhWydjb3VudCddID49ICREb21haW5EYXRhWydtYWlsYm94ZXMnXSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21heF9tYWlsYm94X2V4Y2VlZGVkJywgJE1haWxib3hEYXRhWydjb3VudCddLCAkRG9tYWluRGF0YVsnbWFpbGJveGVzJ10pDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRxdW90YV9tID4gJERvbWFpbkRhdGFbJ21heHF1b3RhJ10pIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X3F1b3RhX2V4Y2VlZGVkJywgJERvbWFpbkRhdGFbJ21heHF1b3RhJ10pDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCgkTWFpbGJveERhdGFbJ3F1b3RhJ10gKyAkcXVvdGFfbSkgPiAkRG9tYWluRGF0YVsncXVvdGEnXSkgew0KKyAgICAgICAgICAgICRxdW90YV9sZWZ0X20gPSAoJERvbWFpbkRhdGFbJ3F1b3RhJ10gLSAkTWFpbGJveERhdGFbJ3F1b3RhJ10pOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfcXVvdGFfbGVmdF9leGNlZWRlZCcsICRxdW90YV9sZWZ0X20pDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgbWFpbGJveGAgKGB1c2VybmFtZWAsIGBwYXNzd29yZGAsIGBuYW1lYCwgYHF1b3RhYCwgYGxvY2FsX3BhcnRgLCBgZG9tYWluYCwgYGF0dHJpYnV0ZXNgLCBgYWN0aXZlYCkNCisgICAgICAgICAgICBWQUxVRVMgKDp1c2VybmFtZSwgOnBhc3N3b3JkX2hhc2hlZCwgOm5hbWUsIDpxdW90YV9iLCA6bG9jYWxfcGFydCwgOmRvbWFpbiwgOm1haWxib3hfYXR0cnMsIDphY3RpdmUpIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAnOnBhc3N3b3JkX2hhc2hlZCcgPT4gJHBhc3N3b3JkX2hhc2hlZCwNCisgICAgICAgICAgICAnOm5hbWUnID0+ICRuYW1lLA0KKyAgICAgICAgICAgICc6cXVvdGFfYicgPT4gJHF1b3RhX2IsDQorICAgICAgICAgICAgJzpsb2NhbF9wYXJ0JyA9PiAkbG9jYWxfcGFydCwNCisgICAgICAgICAgICAnOmRvbWFpbicgPT4gJGRvbWFpbiwNCisgICAgICAgICAgICAnOm1haWxib3hfYXR0cnMnID0+ICRtYWlsYm94X2F0dHJzLA0KKyAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBxdW90YTJgIChgdXNlcm5hbWVgLCBgYnl0ZXNgLCBgbWVzc2FnZXNgKQ0KKyAgICAgICAgICAgIFZBTFVFUyAoOnVzZXJuYW1lLCAnMCcsICcwJykgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgYGJ5dGVzYCA9ICcwJywgYG1lc3NhZ2VzYCA9ICcwJzsiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYHF1b3RhMnJlcGxpY2FgIChgdXNlcm5hbWVgLCBgYnl0ZXNgLCBgbWVzc2FnZXNgKQ0KKyAgICAgICAgICAgIFZBTFVFUyAoOnVzZXJuYW1lLCAnMCcsICcwJykgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgYGJ5dGVzYCA9ICcwJywgYG1lc3NhZ2VzYCA9ICcwJzsiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lKSk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYGFsaWFzYCAoYGFkZHJlc3NgLCBgZ290b2AsIGBkb21haW5gLCBgYWN0aXZlYCkNCisgICAgICAgICAgICBWQUxVRVMgKDp1c2VybmFtZTEsIDp1c2VybmFtZTIsIDpkb21haW4sIDphY3RpdmUpIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUxJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgJzp1c2VybmFtZTInID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAnOmRvbWFpbicgPT4gJGRvbWFpbiwNCisgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgICApKTsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgdXNlcl9hY2xgIChgdXNlcm5hbWVgKSBWQUxVRVMgKDp1c2VybmFtZSkiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbWFpbGJveF9hZGRlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJHVzZXJuYW1lKSkNCisgICAgICAgICAgKTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAncmVzb3VyY2UnOg0KKyAgICAgICAgICAkZG9tYWluICAgICAgICAgICAgID0gaWRuX3RvX2FzY2lpKHN0cnRvbG93ZXIodHJpbSgkX2RhdGFbJ2RvbWFpbiddKSksIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICAgJGRlc2NyaXB0aW9uICAgICAgICA9ICRfZGF0YVsnZGVzY3JpcHRpb24nXTsNCisgICAgICAgICAgJGxvY2FsX3BhcnQgICAgICAgICA9IHByZWdfcmVwbGFjZSgnL1teXGRhLXpdL2knLCAnJywgcHJlZ19xdW90ZSgkZGVzY3JpcHRpb24sICcvJykpOw0KKyAgICAgICAgICAkbmFtZSAgICAgICAgICAgICAgID0gJGxvY2FsX3BhcnQgLiAnQCcgLiAkZG9tYWluOw0KKyAgICAgICAgICAka2luZCAgICAgICAgICAgICAgID0gJF9kYXRhWydraW5kJ107DQorICAgICAgICAgICRtdWx0aXBsZV9ib29raW5ncyAgPSBpbnR2YWwoJF9kYXRhWydtdWx0aXBsZV9ib29raW5ncyddKTsNCisgICAgICAgICAgJGFjdGl2ZSA9IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKTsNCisgICAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRuYW1lLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAncmVzb3VyY2VfaW52YWxpZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoZW1wdHkoJGRlc2NyaXB0aW9uKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2Rlc2NyaXB0aW9uX2ludmFsaWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkbXVsdGlwbGVfYm9va2luZ3MpIHx8ICRtdWx0aXBsZV9ib29raW5ncyA8IC0xKSB7DQorICAgICAgICAgICAgJG11bHRpcGxlX2Jvb2tpbmdzID0gLTE7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRraW5kICE9ICdsb2NhdGlvbicgJiYgJGtpbmQgIT0gJ2dyb3VwJyAmJiAka2luZCAhPSAndGhpbmcnKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAncmVzb3VyY2VfaW52YWxpZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnZG9tYWluX2ludmFsaWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRkb21haW4pKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdXNlcm5hbWVgIEZST00gYG1haWxib3hgIFdIRVJFIGB1c2VybmFtZWAgPSA6bmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOm5hbWUnID0+ICRuYW1lKSk7DQorICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ29iamVjdF9leGlzdHMnLCBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWRkcmVzc2AgRlJPTSBgYWxpYXNgIFdIRVJFIGFkZHJlc3M9IDpuYW1lIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6bmFtZScgPT4gJG5hbWUpKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXNfYWxpYXMnLCBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWRkcmVzc2AgRlJPTSBgc3BhbWFsaWFzYCBXSEVSRSBgYWRkcmVzc2A9IDpuYW1lIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6bmFtZScgPT4gJG5hbWUpKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXNfc3BhbV9hbGlhcycsIGh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBkb21haW5gIEZST00gYGRvbWFpbmAgV0hFUkUgYGRvbWFpbmA9IDpkb21haW4iKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpkb21haW4nID0+ICRkb21haW4pKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyA9PSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZG9tYWluX25vdF9mb3VuZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGRvbWFpbikpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgbWFpbGJveGAgKGB1c2VybmFtZWAsIGBwYXNzd29yZGAsIGBuYW1lYCwgYHF1b3RhYCwgYGxvY2FsX3BhcnRgLCBgZG9tYWluYCwgYGFjdGl2ZWAsIGBtdWx0aXBsZV9ib29raW5nc2AsIGBraW5kYCkNCisgICAgICAgICAgICBWQUxVRVMgKDpuYW1lLCAnUkVTT1VSQ0UnLCA6ZGVzY3JpcHRpb24sIDAsIDpsb2NhbF9wYXJ0LCA6ZG9tYWluLCA6YWN0aXZlLCA6bXVsdGlwbGVfYm9va2luZ3MsIDpraW5kKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOm5hbWUnID0+ICRuYW1lLA0KKyAgICAgICAgICAgICc6ZGVzY3JpcHRpb24nID0+ICRkZXNjcmlwdGlvbiwNCisgICAgICAgICAgICAnOmxvY2FsX3BhcnQnID0+ICRsb2NhbF9wYXJ0LA0KKyAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgICAgICc6a2luZCcgPT4gJGtpbmQsDQorICAgICAgICAgICAgJzptdWx0aXBsZV9ib29raW5ncycgPT4gJG11bHRpcGxlX2Jvb2tpbmdzDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVzb3VyY2VfYWRkZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKSkNCisgICAgICAgICAgKTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIHN3aXRjaCAoJF90eXBlKSB7DQorICAgICAgICBjYXNlICdhbGlhc19kb21haW4nOg0KKyAgICAgICAgICAkYWxpYXNfZG9tYWlucyA9IChhcnJheSkkX2RhdGFbJ2FsaWFzX2RvbWFpbiddOw0KKyAgICAgICAgICBmb3JlYWNoICgkYWxpYXNfZG9tYWlucyBhcyAkYWxpYXNfZG9tYWluKSB7DQorICAgICAgICAgICAgJGFsaWFzX2RvbWFpbiA9IGlkbl90b19hc2NpaShzdHJ0b2xvd2VyKHRyaW0oJGFsaWFzX2RvbWFpbikpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICAgJGlzX25vdyA9IG1haWxib3goJ2dldCcsICdhbGlhc19kb21haW5fZGV0YWlscycsICRhbGlhc19kb21haW4pOw0KKyAgICAgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgICAgICRhY3RpdmUgICAgICAgICA9IChpc3NldCgkX2RhdGFbJ2FjdGl2ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSkgOiAkaXNfbm93WydhY3RpdmUnXTsNCisgICAgICAgICAgICAgICR0YXJnZXRfZG9tYWluICA9ICghZW1wdHkoJF9kYXRhWyd0YXJnZXRfZG9tYWluJ10pKSA/IGlkbl90b19hc2NpaShzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhWyd0YXJnZXRfZG9tYWluJ10pKSwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpIDogJGlzX25vd1sndGFyZ2V0X2RvbWFpbiddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FsaWFzX2RvbWFpbl9pbnZhbGlkJywgaHRtbHNwZWNpYWxjaGFycygkYWxpYXNfZG9tYWluKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFpc192YWxpZF9kb21haW5fbmFtZSgkdGFyZ2V0X2RvbWFpbikpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3RhcmdldF9kb21haW5faW52YWxpZCcsIGh0bWxzcGVjaWFsY2hhcnMoJHRhcmdldF9kb21haW4pKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHRhcmdldF9kb21haW4pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoZW1wdHkobWFpbGJveCgnZ2V0JywgJ2RvbWFpbl9kZXRhaWxzJywgJHRhcmdldF9kb21haW4pKSB8fCAhZW1wdHkobWFpbGJveCgnZ2V0JywgJ2FsaWFzX2RvbWFpbl9kZXRhaWxzJywgJHRhcmdldF9kb21haW4pKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndGFyZ2V0X2RvbWFpbl9pbnZhbGlkJywgaHRtbHNwZWNpYWxjaGFycygkdGFyZ2V0X2RvbWFpbikpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBhbGlhc19kb21haW5gIFNFVA0KKyAgICAgICAgICAgICAgYHRhcmdldF9kb21haW5gID0gOnRhcmdldF9kb21haW4sDQorICAgICAgICAgICAgICBgYWN0aXZlYCA9IDphY3RpdmUNCisgICAgICAgICAgICAgICAgV0hFUkUgYGFsaWFzX2RvbWFpbmAgPSA6YWxpYXNfZG9tYWluIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmFsaWFzX2RvbWFpbicgPT4gJGFsaWFzX2RvbWFpbiwNCisgICAgICAgICAgICAgICc6dGFyZ2V0X2RvbWFpbicgPT4gJHRhcmdldF9kb21haW4sDQorICAgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdhbGlhc2RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRhbGlhc19kb21haW4pKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAndGxzX3BvbGljeSc6DQorICAgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWyd1c2VybmFtZSddKSkgew0KKyAgICAgICAgICAgICR1c2VybmFtZXMgPSBhcnJheSgpOw0KKyAgICAgICAgICAgICR1c2VybmFtZXNbXSA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsndGxzX3BvbGljeSddKSB8fCAkX1NFU1NJT05bJ2FjbCddWyd0bHNfcG9saWN5J10gIT0gIjEiICkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJHVzZXJuYW1lcyBhcyAkdXNlcm5hbWUpIHsNCisgICAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJHVzZXJuYW1lLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpIHx8ICFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkdXNlcm5hbWUpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkaXNfbm93ID0gbWFpbGJveCgnZ2V0JywgJ3Rsc19wb2xpY3knLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgICAgICR0bHNfZW5mb3JjZV9pbiA9IChpc3NldCgkX2RhdGFbJ3Rsc19lbmZvcmNlX2luJ10pKSA/IGludHZhbCgkX2RhdGFbJ3Rsc19lbmZvcmNlX2luJ10pIDogJGlzX25vd1sndGxzX2VuZm9yY2VfaW4nXTsNCisgICAgICAgICAgICAgICR0bHNfZW5mb3JjZV9vdXQgPSAoaXNzZXQoJF9kYXRhWyd0bHNfZW5mb3JjZV9vdXQnXSkpID8gaW50dmFsKCRfZGF0YVsndGxzX2VuZm9yY2Vfb3V0J10pIDogJGlzX25vd1sndGxzX2VuZm9yY2Vfb3V0J107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYG1haWxib3hgDQorICAgICAgICAgICAgICBTRVQgYGF0dHJpYnV0ZXNgID0gSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC50bHNfZW5mb3JjZV9vdXQnLCA6dGxzX291dCksDQorICAgICAgICAgICAgICAgICAgYGF0dHJpYnV0ZXNgID0gSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC50bHNfZW5mb3JjZV9pbicsIDp0bHNfaW4pDQorICAgICAgICAgICAgICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnRsc19vdXQnID0+IGludHZhbCgkdGxzX2VuZm9yY2Vfb3V0KSwNCisgICAgICAgICAgICAgICc6dGxzX2luJyA9PiBpbnR2YWwoJHRsc19lbmZvcmNlX2luKSwNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X21vZGlmaWVkJywgJHVzZXJuYW1lKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAncXVhcmFudGluZV9ub3RpZmljYXRpb24nOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJ10gIT0gIjEiICkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJHVzZXJuYW1lcyBhcyAkdXNlcm5hbWUpIHsNCisgICAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJHVzZXJuYW1lLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpIHx8ICFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkdXNlcm5hbWUpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkaXNfbm93ID0gbWFpbGJveCgnZ2V0JywgJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJywgJHVzZXJuYW1lKTsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICAgICAkcXVhcmFudGluZV9ub3RpZmljYXRpb24gPSAoaXNzZXQoJF9kYXRhWydxdWFyYW50aW5lX25vdGlmaWNhdGlvbiddKSkgPyAkX2RhdGFbJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJ10gOiAkaXNfbm93WydxdWFyYW50aW5lX25vdGlmaWNhdGlvbiddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaW5fYXJyYXkoJHF1YXJhbnRpbmVfbm90aWZpY2F0aW9uLCBhcnJheSgnbmV2ZXInLCAnaG91cmx5JywgJ2RhaWx5JywgJ3dlZWtseScpKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYG1haWxib3hgDQorICAgICAgICAgICAgICBTRVQgYGF0dHJpYnV0ZXNgID0gSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC5xdWFyYW50aW5lX25vdGlmaWNhdGlvbicsIDpxdWFyYW50aW5lX25vdGlmaWNhdGlvbikNCisgICAgICAgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzpxdWFyYW50aW5lX25vdGlmaWNhdGlvbicgPT4gJHF1YXJhbnRpbmVfbm90aWZpY2F0aW9uLA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdxdWFyYW50aW5lX2NhdGVnb3J5JzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJHVzZXJuYW1lc1tdID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICR1c2VybmFtZXMgPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydxdWFyYW50aW5lX2NhdGVnb3J5J10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ3F1YXJhbnRpbmVfY2F0ZWdvcnknXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkdXNlcm5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgfHwgIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICR1c2VybmFtZSkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRpc19ub3cgPSBtYWlsYm94KCdnZXQnLCAncXVhcmFudGluZV9jYXRlZ29yeScsICR1c2VybmFtZSk7DQorICAgICAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAgICAgJHF1YXJhbnRpbmVfY2F0ZWdvcnkgPSAoaXNzZXQoJF9kYXRhWydxdWFyYW50aW5lX2NhdGVnb3J5J10pKSA/ICRfZGF0YVsncXVhcmFudGluZV9jYXRlZ29yeSddIDogJGlzX25vd1sncXVhcmFudGluZV9jYXRlZ29yeSddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaW5fYXJyYXkoJHF1YXJhbnRpbmVfY2F0ZWdvcnksIGFycmF5KCdhZGRfaGVhZGVyJywgJ3JlamVjdCcsICdhbGwnKSkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBtYWlsYm94YA0KKyAgICAgICAgICAgICAgU0VUIGBhdHRyaWJ1dGVzYCA9IEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQucXVhcmFudGluZV9jYXRlZ29yeScsIDpxdWFyYW50aW5lX2NhdGVnb3J5KQ0KKyAgICAgICAgICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnF1YXJhbnRpbmVfY2F0ZWdvcnknID0+ICRxdWFyYW50aW5lX2NhdGVnb3J5LA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdzcGFtX3Njb3JlJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJHVzZXJuYW1lc1tdID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICR1c2VybmFtZXMgPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydzcGFtX3Njb3JlJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ3NwYW1fc2NvcmUnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIGlmICgkX2RhdGFbJ3NwYW1fc2NvcmUnXSA9PSAiZGVmYXVsdCIpIHsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvYmplY3RgID0gOnVzZXJuYW1lDQorICAgICAgICAgICAgICAgIEFORCAoYG9wdGlvbmAgPSAnbG93c3BhbWxldmVsJyBPUiBgb3B0aW9uYCA9ICdoaWdoc3BhbWxldmVsJykiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRsb3dzcGFtbGV2ZWwJPSBleHBsb2RlKCcsJywgJF9kYXRhWydzcGFtX3Njb3JlJ10pWzBdOw0KKyAgICAgICAgICAgICRoaWdoc3BhbWxldmVsCT0gZXhwbG9kZSgnLCcsICRfZGF0YVsnc3BhbV9zY29yZSddKVsxXTsNCisgICAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJGxvd3NwYW1sZXZlbCkgfHwgIWlzX251bWVyaWMoJGhpZ2hzcGFtbGV2ZWwpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdJbnZhbGlkIHNwYW0gc2NvcmUsIGZvcm1hdCBtdXN0IGJlICIxLDIiIHdoZXJlIGZpcnN0IGlzIGxvdyBhbmQgc2Vjb25kIGlzIGhpZ2ggc3BhbSB2YWx1ZS4nDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvYmplY3RgID0gOnVzZXJuYW1lDQorICAgICAgICAgICAgICBBTkQgKGBvcHRpb25gID0gJ2xvd3NwYW1sZXZlbCcgT1IgYG9wdGlvbmAgPSAnaGlnaHNwYW1sZXZlbCcpIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBmaWx0ZXJjb25mYCAoYG9iamVjdGAsIGBvcHRpb25gLCBgdmFsdWVgKQ0KKyAgICAgICAgICAgICAgVkFMVUVTICg6dXNlcm5hbWUsICdoaWdoc3BhbWxldmVsJywgOmhpZ2hzcGFtbGV2ZWwpIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgICAnOmhpZ2hzcGFtbGV2ZWwnID0+ICRoaWdoc3BhbWxldmVsDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgZmlsdGVyY29uZmAgKGBvYmplY3RgLCBgb3B0aW9uYCwgYHZhbHVlYCkNCisgICAgICAgICAgICAgIFZBTFVFUyAoOnVzZXJuYW1lLCAnbG93c3BhbWxldmVsJywgOmxvd3NwYW1sZXZlbCkiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAgICc6bG93c3BhbWxldmVsJyA9PiAkbG93c3BhbWxldmVsDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICd0aW1lX2xpbWl0ZWRfYWxpYXMnOg0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3NwYW1fYWxpYXMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9hbGlhcyddICE9ICIxIiApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydhZGRyZXNzJ10pKSB7DQorICAgICAgICAgICAgJGFkZHJlc3NlcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGFkZHJlc3Nlc1tdID0gJF9kYXRhWydhZGRyZXNzJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJGFkZHJlc3NlcyA9ICRfZGF0YVsnYWRkcmVzcyddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRhZGRyZXNzZXMgYXMgJGFkZHJlc3MpIHsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZ290b2AgRlJPTSBgc3BhbWFsaWFzYCBXSEVSRSBgYWRkcmVzc2AgPSA6YWRkcmVzcyIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6YWRkcmVzcycgPT4gJGFkZHJlc3MpKTsNCisgICAgICAgICAgICAkZ290byA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKVsnZ290byddOw0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGdvdG8pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoZW1wdHkoJF9kYXRhWyd2YWxpZGl0eSddKSkgew0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICR2YWxpZGl0eSA9IHJvdW5kKChpbnQpdGltZSgpICsgKCRfZGF0YVsndmFsaWRpdHknXSAqIDM2MDApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgc3BhbWFsaWFzYCBTRVQgYHZhbGlkaXR5YCA9IDp2YWxpZGl0eSBXSEVSRQ0KKyAgICAgICAgICAgICAgYGFkZHJlc3NgID0gOmFkZHJlc3MiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6YWRkcmVzcycgPT4gJGFkZHJlc3MsDQorICAgICAgICAgICAgICAnOnZhbGlkaXR5JyA9PiAkdmFsaWRpdHkNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbWFpbGJveF9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoaW1wbG9kZSgnLCAnLCAkdXNlcm5hbWVzKSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdkZWxpbWl0ZXJfYWN0aW9uJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJHVzZXJuYW1lc1tdID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICR1c2VybmFtZXMgPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydkZWxpbWl0ZXJfYWN0aW9uJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ2RlbGltaXRlcl9hY3Rpb24nXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkdXNlcm5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgfHwgIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICR1c2VybmFtZSkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ3RhZ2dlZF9tYWlsX2hhbmRsZXInXSkgJiYgJF9kYXRhWyd0YWdnZWRfbWFpbF9oYW5kbGVyJ10gPT0gInN1YmplY3QiKSB7DQorICAgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ1JDUFRfV0FOVFNfU1VCSkVDVF9UQUcnLCAkdXNlcm5hbWUsIDEpOw0KKyAgICAgICAgICAgICAgICAkcmVkaXMtPmhEZWwoJ1JDUFRfV0FOVFNfU1VCRk9MREVSX1RBRycsICR1c2VybmFtZSk7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlzc2V0KCRfZGF0YVsndGFnZ2VkX21haWxfaGFuZGxlciddKSAmJiAkX2RhdGFbJ3RhZ2dlZF9tYWlsX2hhbmRsZXInXSA9PSAic3ViZm9sZGVyIikgew0KKyAgICAgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAgICAgJHJlZGlzLT5oU2V0KCdSQ1BUX1dBTlRTX1NVQkZPTERFUl9UQUcnLCAkdXNlcm5hbWUsIDEpOw0KKyAgICAgICAgICAgICAgICAkcmVkaXMtPmhEZWwoJ1JDUFRfV0FOVFNfU1VCSkVDVF9UQUcnLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICAgICRyZWRpcy0+aERlbCgnUkNQVF9XQU5UU19TVUJKRUNUX1RBRycsICR1c2VybmFtZSk7DQorICAgICAgICAgICAgICAgICRyZWRpcy0+aERlbCgnUkNQVF9XQU5UU19TVUJGT0xERVJfVEFHJywgJHVzZXJuYW1lKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfbW9kaWZpZWQnLCAkdXNlcm5hbWUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdzeW5jam9iJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2lkJ10pKSB7DQorICAgICAgICAgICAgJGlkcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydzeW5jam9icyddKSB8fCAkX1NFU1NJT05bJ2FjbCddWydzeW5jam9icyddICE9ICIxIiApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7DQorICAgICAgICAgICAgJGlzX25vdyA9IG1haWxib3goJ2dldCcsICdzeW5jam9iX2RldGFpbHMnLCAkaWQsIGFycmF5KCd3aXRoX3Bhc3N3b3JkJykpOw0KKyAgICAgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgICAgICR1c2VybmFtZSA9ICRpc19ub3dbJ3VzZXIyJ107DQorICAgICAgICAgICAgICAkdXNlcjEgPSAoIWVtcHR5KCRfZGF0YVsndXNlcjEnXSkpID8gJF9kYXRhWyd1c2VyMSddIDogJGlzX25vd1sndXNlcjEnXTsNCisgICAgICAgICAgICAgICRhY3RpdmUgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICAgICAgICAkbGFzdF9ydW4gPSAoaXNzZXQoJF9kYXRhWydsYXN0X3J1biddKSkgPyBOVUxMIDogJGlzX25vd1snbGFzdF9ydW4nXTsNCisgICAgICAgICAgICAgICRkZWxldGUyZHVwbGljYXRlcyA9IChpc3NldCgkX2RhdGFbJ2RlbGV0ZTJkdXBsaWNhdGVzJ10pKSA/IGludHZhbCgkX2RhdGFbJ2RlbGV0ZTJkdXBsaWNhdGVzJ10pIDogJGlzX25vd1snZGVsZXRlMmR1cGxpY2F0ZXMnXTsNCisgICAgICAgICAgICAgICRzdWJzY3JpYmVhbGwgPSAoaXNzZXQoJF9kYXRhWydzdWJzY3JpYmVhbGwnXSkpID8gaW50dmFsKCRfZGF0YVsnc3Vic2NyaWJlYWxsJ10pIDogJGlzX25vd1snc3Vic2NyaWJlYWxsJ107DQorICAgICAgICAgICAgICAkZGVsZXRlMSA9IChpc3NldCgkX2RhdGFbJ2RlbGV0ZTEnXSkpID8gaW50dmFsKCRfZGF0YVsnZGVsZXRlMSddKSA6ICRpc19ub3dbJ2RlbGV0ZTEnXTsNCisgICAgICAgICAgICAgICRkZWxldGUyID0gKGlzc2V0KCRfZGF0YVsnZGVsZXRlMiddKSkgPyBpbnR2YWwoJF9kYXRhWydkZWxldGUyJ10pIDogJGlzX25vd1snZGVsZXRlMiddOw0KKyAgICAgICAgICAgICAgJGF1dG9tYXAgPSAoaXNzZXQoJF9kYXRhWydhdXRvbWFwJ10pKSA/IGludHZhbCgkX2RhdGFbJ2F1dG9tYXAnXSkgOiAkaXNfbm93WydhdXRvbWFwJ107DQorICAgICAgICAgICAgICAkc2tpcGNyb3NzZHVwbGljYXRlcyA9IChpc3NldCgkX2RhdGFbJ3NraXBjcm9zc2R1cGxpY2F0ZXMnXSkpID8gaW50dmFsKCRfZGF0YVsnc2tpcGNyb3NzZHVwbGljYXRlcyddKSA6ICRpc19ub3dbJ3NraXBjcm9zc2R1cGxpY2F0ZXMnXTsNCisgICAgICAgICAgICAgICRwb3J0MSA9ICghZW1wdHkoJF9kYXRhWydwb3J0MSddKSkgPyAkX2RhdGFbJ3BvcnQxJ10gOiAkaXNfbm93Wydwb3J0MSddOw0KKyAgICAgICAgICAgICAgJHBhc3N3b3JkMSA9ICghZW1wdHkoJF9kYXRhWydwYXNzd29yZDEnXSkpID8gJF9kYXRhWydwYXNzd29yZDEnXSA6ICRpc19ub3dbJ3Bhc3N3b3JkMSddOw0KKyAgICAgICAgICAgICAgJGhvc3QxID0gKCFlbXB0eSgkX2RhdGFbJ2hvc3QxJ10pKSA/ICRfZGF0YVsnaG9zdDEnXSA6ICRpc19ub3dbJ2hvc3QxJ107DQorICAgICAgICAgICAgICAkc3ViZm9sZGVyMiA9IChpc3NldCgkX2RhdGFbJ3N1YmZvbGRlcjInXSkpID8gJF9kYXRhWydzdWJmb2xkZXIyJ10gOiAkaXNfbm93WydzdWJmb2xkZXIyJ107DQorICAgICAgICAgICAgICAkZW5jMSA9ICghZW1wdHkoJF9kYXRhWydlbmMxJ10pKSA/ICRfZGF0YVsnZW5jMSddIDogJGlzX25vd1snZW5jMSddOw0KKyAgICAgICAgICAgICAgJG1pbnNfaW50ZXJ2YWwgPSAoIWVtcHR5KCRfZGF0YVsnbWluc19pbnRlcnZhbCddKSkgPyAkX2RhdGFbJ21pbnNfaW50ZXJ2YWwnXSA6ICRpc19ub3dbJ21pbnNfaW50ZXJ2YWwnXTsNCisgICAgICAgICAgICAgICRleGNsdWRlID0gKGlzc2V0KCRfZGF0YVsnZXhjbHVkZSddKSkgPyAkX2RhdGFbJ2V4Y2x1ZGUnXSA6ICRpc19ub3dbJ2V4Y2x1ZGUnXTsNCisgICAgICAgICAgICAgICRjdXN0b21fcGFyYW1zID0gKGlzc2V0KCRfZGF0YVsnY3VzdG9tX3BhcmFtcyddKSkgPyAkX2RhdGFbJ2N1c3RvbV9wYXJhbXMnXSA6ICRpc19ub3dbJ2N1c3RvbV9wYXJhbXMnXTsNCisgICAgICAgICAgICAgICRtYXhhZ2UgPSAoaXNzZXQoJF9kYXRhWydtYXhhZ2UnXSkgJiYgJF9kYXRhWydtYXhhZ2UnXSAhPSAiIikgPyBpbnR2YWwoJF9kYXRhWydtYXhhZ2UnXSkgOiAkaXNfbm93WydtYXhhZ2UnXTsNCisgICAgICAgICAgICAgICRtYXhieXRlc3BlcnNlY29uZCA9IChpc3NldCgkX2RhdGFbJ21heGJ5dGVzcGVyc2Vjb25kJ10pICYmICRfZGF0YVsnbWF4Ynl0ZXNwZXJzZWNvbmQnXSAhPSAiIikgPyBpbnR2YWwoJF9kYXRhWydtYXhieXRlc3BlcnNlY29uZCddKSA6ICRpc19ub3dbJ21heGJ5dGVzcGVyc2Vjb25kJ107DQorICAgICAgICAgICAgICAkdGltZW91dDEgPSAoaXNzZXQoJF9kYXRhWyd0aW1lb3V0MSddKSAmJiAkX2RhdGFbJ3RpbWVvdXQxJ10gIT0gIiIpID8gaW50dmFsKCRfZGF0YVsndGltZW91dDEnXSkgOiAkaXNfbm93Wyd0aW1lb3V0MSddOw0KKyAgICAgICAgICAgICAgJHRpbWVvdXQyID0gKGlzc2V0KCRfZGF0YVsndGltZW91dDInXSkgJiYgJF9kYXRhWyd0aW1lb3V0MiddICE9ICIiKSA/IGludHZhbCgkX2RhdGFbJ3RpbWVvdXQyJ10pIDogJGlzX25vd1sndGltZW91dDInXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoc3RycG9zKCRjdXN0b21fcGFyYW1zLCAncGlwZW1lc3MnKSkgew0KKyAgICAgICAgICAgICAgJGN1c3RvbV9wYXJhbXMgPSAnJzsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRzdWJmb2xkZXIyKSkgew0KKyAgICAgICAgICAgICAgJHN1YmZvbGRlcjIgPSAiIjsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFpc3NldCgkbWF4YWdlKSB8fCAhZmlsdGVyX3ZhcigkbWF4YWdlLCBGSUxURVJfVkFMSURBVEVfSU5ULCBhcnJheSgnb3B0aW9ucycgPT4gYXJyYXkoJ21pbl9yYW5nZScgPT4gMSwgJ21heF9yYW5nZScgPT4gMzIwMDApKSkpIHsNCisgICAgICAgICAgICAgICRtYXhhZ2UgPSAiMCI7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaXNzZXQoJHRpbWVvdXQxKSB8fCAhZmlsdGVyX3ZhcigkdGltZW91dDEsIEZJTFRFUl9WQUxJREFURV9JTlQsIGFycmF5KCdvcHRpb25zJyA9PiBhcnJheSgnbWluX3JhbmdlJyA9PiAxLCAnbWF4X3JhbmdlJyA9PiAzMjAwMCkpKSkgew0KKyAgICAgICAgICAgICAgJHRpbWVvdXQxID0gIjYwMCI7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaXNzZXQoJHRpbWVvdXQyKSB8fCAhZmlsdGVyX3ZhcigkdGltZW91dDIsIEZJTFRFUl9WQUxJREFURV9JTlQsIGFycmF5KCdvcHRpb25zJyA9PiBhcnJheSgnbWluX3JhbmdlJyA9PiAxLCAnbWF4X3JhbmdlJyA9PiAzMjAwMCkpKSkgew0KKyAgICAgICAgICAgICAgJHRpbWVvdXQyID0gIjYwMCI7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaXNzZXQoJG1heGJ5dGVzcGVyc2Vjb25kKSB8fCAhZmlsdGVyX3ZhcigkbWF4Ynl0ZXNwZXJzZWNvbmQsIEZJTFRFUl9WQUxJREFURV9JTlQsIGFycmF5KCdvcHRpb25zJyA9PiBhcnJheSgnbWluX3JhbmdlJyA9PiAxLCAnbWF4X3JhbmdlJyA9PiAxMjUwMDAwMDApKSkpIHsNCisgICAgICAgICAgICAgICRtYXhieXRlc3BlcnNlY29uZCA9ICIwIjsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRwb3J0MSwgRklMVEVSX1ZBTElEQVRFX0lOVCwgYXJyYXkoJ29wdGlvbnMnID0+IGFycmF5KCdtaW5fcmFuZ2UnID0+IDEsICdtYXhfcmFuZ2UnID0+IDY1NTM1KSkpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJG1pbnNfaW50ZXJ2YWwsIEZJTFRFUl9WQUxJREFURV9JTlQsIGFycmF5KCdvcHRpb25zJyA9PiBhcnJheSgnbWluX3JhbmdlJyA9PiAxLCAnbWF4X3JhbmdlJyA9PiA0MzgwMCkpKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFpc192YWxpZF9kb21haW5fbmFtZSgkaG9zdDEpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoJGVuYzEgIT0gIlRMUyIgJiYgJGVuYzEgIT0gIlNTTCIgJiYgJGVuYzEgIT0gIlBMQUlOIikgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKEBwcmVnX21hdGNoKCIvIiAuICRleGNsdWRlIC4gIi8iLCBudWxsKSA9PT0gZmFsc2UpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBpbWFwc3luY2AgU0VUIGBkZWxldGUxYCA9IDpkZWxldGUxLA0KKyAgICAgICAgICAgICAgYGRlbGV0ZTJgID0gOmRlbGV0ZTIsDQorICAgICAgICAgICAgICBgYXV0b21hcGAgPSA6YXV0b21hcCwNCisgICAgICAgICAgICAgIGBza2lwY3Jvc3NkdXBsaWNhdGVzYCA9IDpza2lwY3Jvc3NkdXBsaWNhdGVzLA0KKyAgICAgICAgICAgICAgYG1heGFnZWAgPSA6bWF4YWdlLA0KKyAgICAgICAgICAgICAgYG1heGJ5dGVzcGVyc2Vjb25kYCA9IDptYXhieXRlc3BlcnNlY29uZCwNCisgICAgICAgICAgICAgIGBzdWJmb2xkZXIyYCA9IDpzdWJmb2xkZXIyLA0KKyAgICAgICAgICAgICAgYGV4Y2x1ZGVgID0gOmV4Y2x1ZGUsDQorICAgICAgICAgICAgICBgaG9zdDFgID0gOmhvc3QxLA0KKyAgICAgICAgICAgICAgYGxhc3RfcnVuYCA9IDpsYXN0X3J1biwNCisgICAgICAgICAgICAgIGB1c2VyMWAgPSA6dXNlcjEsDQorICAgICAgICAgICAgICBgcGFzc3dvcmQxYCA9IDpwYXNzd29yZDEsDQorICAgICAgICAgICAgICBgbWluc19pbnRlcnZhbGAgPSA6bWluc19pbnRlcnZhbCwNCisgICAgICAgICAgICAgIGBwb3J0MWAgPSA6cG9ydDEsDQorICAgICAgICAgICAgICBgZW5jMWAgPSA6ZW5jMSwNCisgICAgICAgICAgICAgIGBkZWxldGUyZHVwbGljYXRlc2AgPSA6ZGVsZXRlMmR1cGxpY2F0ZXMsDQorICAgICAgICAgICAgICBgY3VzdG9tX3BhcmFtc2AgPSA6Y3VzdG9tX3BhcmFtcywNCisgICAgICAgICAgICAgIGB0aW1lb3V0MWAgPSA6dGltZW91dDEsDQorICAgICAgICAgICAgICBgdGltZW91dDJgID0gOnRpbWVvdXQyLA0KKyAgICAgICAgICAgICAgYHN1YnNjcmliZWFsbGAgPSA6c3Vic2NyaWJlYWxsLA0KKyAgICAgICAgICAgICAgYGFjdGl2ZWAgPSA6YWN0aXZlDQorICAgICAgICAgICAgICAgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZGVsZXRlMScgPT4gJGRlbGV0ZTEsDQorICAgICAgICAgICAgICAnOmRlbGV0ZTInID0+ICRkZWxldGUyLA0KKyAgICAgICAgICAgICAgJzphdXRvbWFwJyA9PiAkYXV0b21hcCwNCisgICAgICAgICAgICAgICc6c2tpcGNyb3NzZHVwbGljYXRlcycgPT4gJHNraXBjcm9zc2R1cGxpY2F0ZXMsDQorICAgICAgICAgICAgICAnOmlkJyA9PiAkaWQsDQorICAgICAgICAgICAgICAnOmV4Y2x1ZGUnID0+ICRleGNsdWRlLA0KKyAgICAgICAgICAgICAgJzptYXhhZ2UnID0+ICRtYXhhZ2UsDQorICAgICAgICAgICAgICAnOm1heGJ5dGVzcGVyc2Vjb25kJyA9PiAkbWF4Ynl0ZXNwZXJzZWNvbmQsDQorICAgICAgICAgICAgICAnOnN1YmZvbGRlcjInID0+ICRzdWJmb2xkZXIyLA0KKyAgICAgICAgICAgICAgJzpob3N0MScgPT4gJGhvc3QxLA0KKyAgICAgICAgICAgICAgJzp1c2VyMScgPT4gJHVzZXIxLA0KKyAgICAgICAgICAgICAgJzpwYXNzd29yZDEnID0+ICRwYXNzd29yZDEsDQorICAgICAgICAgICAgICAnOmxhc3RfcnVuJyA9PiAkbGFzdF9ydW4sDQorICAgICAgICAgICAgICAnOm1pbnNfaW50ZXJ2YWwnID0+ICRtaW5zX2ludGVydmFsLA0KKyAgICAgICAgICAgICAgJzpwb3J0MScgPT4gJHBvcnQxLA0KKyAgICAgICAgICAgICAgJzplbmMxJyA9PiAkZW5jMSwNCisgICAgICAgICAgICAgICc6ZGVsZXRlMmR1cGxpY2F0ZXMnID0+ICRkZWxldGUyZHVwbGljYXRlcywNCisgICAgICAgICAgICAgICc6Y3VzdG9tX3BhcmFtcycgPT4gJGN1c3RvbV9wYXJhbXMsDQorICAgICAgICAgICAgICAnOnRpbWVvdXQxJyA9PiAkdGltZW91dDEsDQorICAgICAgICAgICAgICAnOnRpbWVvdXQyJyA9PiAkdGltZW91dDIsDQorICAgICAgICAgICAgICAnOnN1YnNjcmliZWFsbCcgPT4gJHN1YnNjcmliZWFsbCwNCisgICAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X21vZGlmaWVkJywgJHVzZXJuYW1lKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnZmlsdGVyJzoNCisgICAgICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydmaWx0ZXJzJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ2ZpbHRlcnMnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc2lldmUgPSBuZXcgU2lldmVcU2lldmVQYXJzZXIoKTsNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2lkJ10pKSB7DQorICAgICAgICAgICAgJGlkcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICAgICAkaXNfbm93ID0gbWFpbGJveCgnZ2V0JywgJ2ZpbHRlcl9kZXRhaWxzJywgJGlkKTsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICAgICAkdXNlcm5hbWUgPSAkaXNfbm93Wyd1c2VybmFtZSddOw0KKyAgICAgICAgICAgICAgJGFjdGl2ZSA9IChpc3NldCgkX2RhdGFbJ2FjdGl2ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSkgOiAkaXNfbm93WydhY3RpdmUnXTsNCisgICAgICAgICAgICAgICRzY3JpcHRfZGVzYyA9ICghZW1wdHkoJF9kYXRhWydzY3JpcHRfZGVzYyddKSkgPyAkX2RhdGFbJ3NjcmlwdF9kZXNjJ10gOiAkaXNfbm93WydzY3JpcHRfZGVzYyddOw0KKyAgICAgICAgICAgICAgJHNjcmlwdF9kYXRhID0gKCFlbXB0eSgkX2RhdGFbJ3NjcmlwdF9kYXRhJ10pKSA/ICRfZGF0YVsnc2NyaXB0X2RhdGEnXSA6ICRpc19ub3dbJ3NjcmlwdF9kYXRhJ107DQorICAgICAgICAgICAgICAkZmlsdGVyX3R5cGUgPSAoIWVtcHR5KCRfZGF0YVsnZmlsdGVyX3R5cGUnXSkpID8gJF9kYXRhWydmaWx0ZXJfdHlwZSddIDogJGlzX25vd1snZmlsdGVyX3R5cGUnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJHNpZXZlLT5wYXJzZSgkc2NyaXB0X2RhdGEpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzaWV2ZV9lcnJvcicsICRlLT5nZXRNZXNzYWdlKCkpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgkZmlsdGVyX3R5cGUgIT0gJ3Bvc3RmaWx0ZXInICYmICRmaWx0ZXJfdHlwZSAhPSAncHJlZmlsdGVyJykgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnZmlsdGVyX3R5cGUnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgkYWN0aXZlID09ICcxJykgew0KKyAgICAgICAgICAgICAgJHNjcmlwdF9uYW1lID0gJ2FjdGl2ZSc7DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgc2lldmVfZmlsdGVyc2ANCisgICAgICAgICAgICAgICAgU0VUIGBzY3JpcHRfbmFtZWAgPSAnaW5hY3RpdmUnDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZQ0KKyAgICAgICAgICAgICAgICAgICAgQU5EIGBmaWx0ZXJfdHlwZWAgPSA6ZmlsdGVyX3R5cGUiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgICAgICc6ZmlsdGVyX3R5cGUnID0+ICRmaWx0ZXJfdHlwZQ0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJHNjcmlwdF9uYW1lID0gJ2luYWN0aXZlJzsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHNpZXZlX2ZpbHRlcnNgIFNFVCBgc2NyaXB0X2Rlc2NgID0gOnNjcmlwdF9kZXNjLCBgc2NyaXB0X2RhdGFgID0gOnNjcmlwdF9kYXRhLCBgc2NyaXB0X25hbWVgID0gOnNjcmlwdF9uYW1lLCBgZmlsdGVyX3R5cGVgID0gOmZpbHRlcl90eXBlDQorICAgICAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnNjcmlwdF9kZXNjJyA9PiAkc2NyaXB0X2Rlc2MsDQorICAgICAgICAgICAgICAnOnNjcmlwdF9kYXRhJyA9PiAkc2NyaXB0X2RhdGEsDQorICAgICAgICAgICAgICAnOnNjcmlwdF9uYW1lJyA9PiAkc2NyaXB0X25hbWUsDQorICAgICAgICAgICAgICAnOmZpbHRlcl90eXBlJyA9PiAkZmlsdGVyX3R5cGUsDQorICAgICAgICAgICAgICAnOmlkJyA9PiAkaWQNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbWFpbGJveF9tb2RpZmllZCcsICR1c2VybmFtZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2FsaWFzJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2lkJ10pKSB7DQorICAgICAgICAgICAgJGlkcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICAgICAkaXNfbm93ID0gbWFpbGJveCgnZ2V0JywgJ2FsaWFzX2RldGFpbHMnLCAkaWQpOw0KKyAgICAgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgICAgICRhY3RpdmUgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICAgICAgICAkc29nb192aXNpYmxlID0gKGlzc2V0KCRfZGF0YVsnc29nb192aXNpYmxlJ10pKSA/IGludHZhbCgkX2RhdGFbJ3NvZ29fdmlzaWJsZSddKSA6ICRpc19ub3dbJ3NvZ29fdmlzaWJsZSddOw0KKyAgICAgICAgICAgICAgJGdvdG9fbnVsbCA9IChpc3NldCgkX2RhdGFbJ2dvdG9fbnVsbCddKSkgPyBpbnR2YWwoJF9kYXRhWydnb3RvX251bGwnXSkgOiAwOw0KKyAgICAgICAgICAgICAgJGdvdG9fc3BhbSA9IChpc3NldCgkX2RhdGFbJ2dvdG9fc3BhbSddKSkgPyBpbnR2YWwoJF9kYXRhWydnb3RvX3NwYW0nXSkgOiAwOw0KKyAgICAgICAgICAgICAgJGdvdG9faGFtID0gKGlzc2V0KCRfZGF0YVsnZ290b19oYW0nXSkpID8gaW50dmFsKCRfZGF0YVsnZ290b19oYW0nXSkgOiAwOw0KKyAgICAgICAgICAgICAgJHB1YmxpY19jb21tZW50ID0gKGlzc2V0KCRfZGF0YVsncHVibGljX2NvbW1lbnQnXSkpID8gJF9kYXRhWydwdWJsaWNfY29tbWVudCddIDogJGlzX25vd1sncHVibGljX2NvbW1lbnQnXTsNCisgICAgICAgICAgICAgICRwcml2YXRlX2NvbW1lbnQgPSAoaXNzZXQoJF9kYXRhWydwcml2YXRlX2NvbW1lbnQnXSkpID8gJF9kYXRhWydwcml2YXRlX2NvbW1lbnQnXSA6ICRpc19ub3dbJ3ByaXZhdGVfY29tbWVudCddOw0KKyAgICAgICAgICAgICAgJGdvdG8gPSAoIWVtcHR5KCRfZGF0YVsnZ290byddKSkgPyAkX2RhdGFbJ2dvdG8nXSA6ICRpc19ub3dbJ2dvdG8nXTsNCisgICAgICAgICAgICAgICRhZGRyZXNzID0gKCFlbXB0eSgkX2RhdGFbJ2FkZHJlc3MnXSkpID8gJF9kYXRhWydhZGRyZXNzJ10gOiAkaXNfbm93WydhZGRyZXNzJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYWxpYXNfaW52YWxpZCcsICRhZGRyZXNzKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkZG9tYWluID0gaWRuX3RvX2FzY2lpKHN1YnN0cihzdHJzdHIoJGFkZHJlc3MsICdAJyksIDEpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICAgaWYgKCRpc19ub3dbJ2FkZHJlc3MnXSAhPSAkYWRkcmVzcykgew0KKyAgICAgICAgICAgICAgJGxvY2FsX3BhcnQgPSBzdHJzdHIoJGFkZHJlc3MsICdAJywgdHJ1ZSk7DQorICAgICAgICAgICAgICAkYWRkcmVzcyAgICAgID0gJGxvY2FsX3BhcnQuJ0AnLiRkb21haW47DQorICAgICAgICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGRvbWFpbikpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBpZiAoKCFmaWx0ZXJfdmFyKCRhZGRyZXNzLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpID09PSB0cnVlKSAmJiAhZW1wdHkoJGxvY2FsX3BhcnQpKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FsaWFzX2ludmFsaWQnLCAkYWRkcmVzcykNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBpZiAoc3RydG9sb3dlcigkaXNfbm93WydhZGRyZXNzJ10pICE9IHN0cnRvbG93ZXIoJGFkZHJlc3MpKSB7DQorICAgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBhZGRyZXNzYCBGUk9NIGBhbGlhc2ANCisgICAgICAgICAgICAgICAgICBXSEVSRSBgYWRkcmVzc2A9IDphZGRyZXNzIE9SIGBhZGRyZXNzYCBJTiAoDQorICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBtYWlsYm94YCwgYGFsaWFzX2RvbWFpbmANCisgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgKA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGBhbGlhc19kb21haW5gLmBhbGlhc19kb21haW5gID0gOmFkZHJlc3NfZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EIGBtYWlsYm94YC5gdXNlcm5hbWVgID0gQ09OQ0FUKDphZGRyZXNzX2wsICdAJywgYWxpYXNfZG9tYWluLnRhcmdldF9kb21haW4pKSkiKTsNCisgICAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJzphZGRyZXNzJyA9PiAkYWRkcmVzcywNCisgICAgICAgICAgICAgICAgICAnOmFkZHJlc3NfbCcgPT4gJGxvY2FsX3BhcnQsDQorICAgICAgICAgICAgICAgICAgJzphZGRyZXNzX2QnID0+ICRkb21haW4NCisgICAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2lzX2FsaWFzX29yX21haWxib3gnLCBodG1sc3BlY2lhbGNoYXJzKCRhZGRyZXNzKSkNCisgICAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gDQorICAgICAgICAgICAgICAgIFdIRVJFIGBkb21haW5gPSA6ZG9tYWluMSBPUiBgZG9tYWluYCA9IChTRUxFQ1QgYHRhcmdldF9kb21haW5gIEZST00gYGFsaWFzX2RvbWFpbmAgV0hFUkUgYGFsaWFzX2RvbWFpbmAgPSA6ZG9tYWluMikiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6ZG9tYWluMScgPT4gJGRvbWFpbiwgJzpkb21haW4yJyA9PiAkZG9tYWluKSk7DQorICAgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyA9PSAwKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9ub3RfZm91bmQnLCBodG1sc3BlY2lhbGNoYXJzKCRkb21haW4pKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBhZGRyZXNzYCBGUk9NIGBzcGFtYWxpYXNgDQorICAgICAgICAgICAgICAgIFdIRVJFIGBhZGRyZXNzYD0gOmFkZHJlc3MiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6YWRkcmVzcycgPT4gJGFkZHJlc3MpKTsNCisgICAgICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgICAgICBpZiAoJG51bV9yZXN1bHRzICE9IDApIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXNfc3BhbV9hbGlhcycsIGh0bWxzcGVjaWFsY2hhcnMoJGFkZHJlc3MpKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCRnb3RvX251bGwgPT0gIjEiKSB7DQorICAgICAgICAgICAgICAkZ290byA9ICJudWxsQGxvY2FsaG9zdCI7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2VpZiAoJGdvdG9fc3BhbSA9PSAiMSIpIHsNCisgICAgICAgICAgICAgICRnb3RvID0gInNwYW1AbG9jYWxob3N0IjsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZWlmICgkZ290b19oYW0gPT0gIjEiKSB7DQorICAgICAgICAgICAgICAkZ290byA9ICJoYW1AbG9jYWxob3N0IjsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkZ290b3MgPSBhcnJheV9tYXAoJ3RyaW0nLCBwcmVnX3NwbGl0KCAiLyggfCx8O3xcbikvIiwgJGdvdG8pKTsNCisgICAgICAgICAgICAgIGZvcmVhY2ggKCRnb3RvcyBhcyAkaSA9PiAmJGdvdG8pIHsNCisgICAgICAgICAgICAgICAgaWYgKGVtcHR5KCRnb3RvKSkgew0KKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkZ290bywgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2dvdG9faW52YWxpZCcsICRnb3RvKQ0KKyAgICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgICAgdW5zZXQoJGdvdG9zWyRpXSk7DQorICAgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgaWYgKCRnb3RvID09ICRhZGRyZXNzKSB7DQorICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWxpYXNfZ290b19pZGVudGljYWwnDQorICAgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgICB1bnNldCgkZ290b3NbJGldKTsNCisgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAvLyBEZWxldGUgZnJvbSBzZW5kZXJfYWNsIHRvIHByZXZlbnQgZHVwbGljYXRlcw0KKyAgICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRQ0KKyAgICAgICAgICAgICAgICAgIGBsb2dnZWRfaW5fYXNgID0gOmdvdG8gQU5EDQorICAgICAgICAgICAgICAgICAgYHNlbmRfYXNgID0gOmFkZHJlc3MiKTsNCisgICAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJzpnb3RvJyA9PiAkZ290bywNCisgICAgICAgICAgICAgICAgICAnOmFkZHJlc3MnID0+ICRhZGRyZXNzDQorICAgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJGdvdG9zID0gYXJyYXlfZmlsdGVyKCRnb3Rvcyk7DQorICAgICAgICAgICAgICAkZ290byA9IGltcGxvZGUoIiwiLCAkZ290b3MpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRnb3RvKSkgew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYGFsaWFzYCBTRVQNCisgICAgICAgICAgICAgICAgYGFkZHJlc3NgID0gOmFkZHJlc3MsDQorICAgICAgICAgICAgICAgIGBwdWJsaWNfY29tbWVudGAgPSA6cHVibGljX2NvbW1lbnQsDQorICAgICAgICAgICAgICAgIGBwcml2YXRlX2NvbW1lbnRgID0gOnByaXZhdGVfY29tbWVudCwNCisgICAgICAgICAgICAgICAgYGRvbWFpbmAgPSA6ZG9tYWluLA0KKyAgICAgICAgICAgICAgICBgZ290b2AgPSA6Z290bywNCisgICAgICAgICAgICAgICAgYHNvZ29fdmlzaWJsZWA9IDpzb2dvX3Zpc2libGUsDQorICAgICAgICAgICAgICAgIGBhY3RpdmVgPSA6YWN0aXZlDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICc6YWRkcmVzcycgPT4gJGFkZHJlc3MsDQorICAgICAgICAgICAgICAgICc6cHVibGljX2NvbW1lbnQnID0+ICRwdWJsaWNfY29tbWVudCwNCisgICAgICAgICAgICAgICAgJzpwcml2YXRlX2NvbW1lbnQnID0+ICRwcml2YXRlX2NvbW1lbnQsDQorICAgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICAgICAnOmdvdG8nID0+ICRnb3RvLA0KKyAgICAgICAgICAgICAgICAnOnNvZ29fdmlzaWJsZScgPT4gJHNvZ29fdmlzaWJsZSwNCisgICAgICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUsDQorICAgICAgICAgICAgICAgICc6aWQnID0+ICRpc19ub3dbJ2lkJ10NCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnYWxpYXNfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRhZGRyZXNzKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2RvbWFpbic6DQorICAgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydkb21haW4nXSkpIHsNCisgICAgICAgICAgICAkZG9tYWlucyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGRvbWFpbnNbXSA9ICRfZGF0YVsnZG9tYWluJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJGRvbWFpbnMgPSAkX2RhdGFbJ2RvbWFpbiddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRkb21haW5zIGFzICRkb21haW4pIHsNCisgICAgICAgICAgICAkZG9tYWluID0gaWRuX3RvX2FzY2lpKCRkb21haW4sIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICAgICBpZiAoIWlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdkb21haW5faW52YWxpZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gImRvbWFpbmFkbWluIiAmJg0KKyAgICAgICAgICAgIGhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGRvbWFpbikpIHsNCisgICAgICAgICAgICAgICRpc19ub3cgPSBtYWlsYm94KCdnZXQnLCAnZG9tYWluX2RldGFpbHMnLCAkZG9tYWluKTsNCisgICAgICAgICAgICAgIGlmICghZW1wdHkoJGlzX25vdykpIHsNCisgICAgICAgICAgICAgICAgJGdhbCAgICAgICAgICAgICAgICAgID0gKGlzc2V0KCRfZGF0YVsnZ2FsJ10pKSA/IGludHZhbCgkX2RhdGFbJ2dhbCddKSA6ICRpc19ub3dbJ2dhbCddOw0KKyAgICAgICAgICAgICAgICAkZGVzY3JpcHRpb24gICAgICAgICAgPSAoIWVtcHR5KCRfZGF0YVsnZGVzY3JpcHRpb24nXSkgJiYgaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsnZG9tYWluX2Rlc2MnXSkgJiYgJF9TRVNTSU9OWydhY2wnXVsnZG9tYWluX2Rlc2MnXSA9PSAiMSIpID8gJF9kYXRhWydkZXNjcmlwdGlvbiddIDogJGlzX25vd1snZGVzY3JpcHRpb24nXTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdkb21haW5faW52YWxpZCcNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgZG9tYWluYCBTRVQNCisgICAgICAgICAgICAgIGBkZXNjcmlwdGlvbmAgPSA6ZGVzY3JpcHRpb24sDQorICAgICAgICAgICAgICBgZ2FsYCA9IDpnYWwNCisgICAgICAgICAgICAgICAgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzpkZXNjcmlwdGlvbicgPT4gJGRlc2NyaXB0aW9uLA0KKyAgICAgICAgICAgICAgICAnOmdhbCcgPT4gJGdhbCwNCisgICAgICAgICAgICAgICAgJzpkb21haW4nID0+ICRkb21haW4NCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGRvbWFpbikpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gImFkbWluIikgew0KKyAgICAgICAgICAgICAgJGlzX25vdyA9IG1haWxib3goJ2dldCcsICdkb21haW5fZGV0YWlscycsICRkb21haW4pOw0KKyAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAgICAgICAkYWN0aXZlICAgICAgICAgICAgICAgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICAgICAgICAgICRiYWNrdXBteCAgICAgICAgICAgICA9IChpc3NldCgkX2RhdGFbJ2JhY2t1cG14J10pKSA/IGludHZhbCgkX2RhdGFbJ2JhY2t1cG14J10pIDogJGlzX25vd1snYmFja3VwbXgnXTsNCisgICAgICAgICAgICAgICAgJGdhbCAgICAgICAgICAgICAgICAgID0gKGlzc2V0KCRfZGF0YVsnZ2FsJ10pKSA/IGludHZhbCgkX2RhdGFbJ2dhbCddKSA6ICRpc19ub3dbJ2dhbCddOw0KKyAgICAgICAgICAgICAgICAkcmVsYXlfYWxsX3JlY2lwaWVudHMgPSAoaXNzZXQoJF9kYXRhWydyZWxheV9hbGxfcmVjaXBpZW50cyddKSkgPyBpbnR2YWwoJF9kYXRhWydyZWxheV9hbGxfcmVjaXBpZW50cyddKSA6ICRpc19ub3dbJ3JlbGF5X2FsbF9yZWNpcGllbnRzJ107DQorICAgICAgICAgICAgICAgICRyZWxheV91bmtub3duX29ubHkgICA9IChpc3NldCgkX2RhdGFbJ3JlbGF5X3Vua25vd25fb25seSddKSkgPyBpbnR2YWwoJF9kYXRhWydyZWxheV91bmtub3duX29ubHknXSkgOiAkaXNfbm93WydyZWxheV91bmtub3duX29ubHknXTsNCisgICAgICAgICAgICAgICAgJHJlbGF5aG9zdCAgICAgICAgICAgID0gKGlzc2V0KCRfZGF0YVsncmVsYXlob3N0J10pKSA/IGludHZhbCgkX2RhdGFbJ3JlbGF5aG9zdCddKSA6ICRpc19ub3dbJ3JlbGF5aG9zdCddOw0KKyAgICAgICAgICAgICAgICAkYWxpYXNlcyAgICAgICAgICAgICAgPSAoIWVtcHR5KCRfZGF0YVsnYWxpYXNlcyddKSkgPyAkX2RhdGFbJ2FsaWFzZXMnXSA6ICRpc19ub3dbJ21heF9udW1fYWxpYXNlc19mb3JfZG9tYWluJ107DQorICAgICAgICAgICAgICAgICRtYWlsYm94ZXMgICAgICAgICAgICA9IChpc3NldCgkX2RhdGFbJ21haWxib3hlcyddKSAmJiAkX2RhdGFbJ21haWxib3hlcyddICE9ICcnKSA/IGludHZhbCgkX2RhdGFbJ21haWxib3hlcyddKSA6ICRpc19ub3dbJ21heF9udW1fbWJveGVzX2Zvcl9kb21haW4nXTsNCisgICAgICAgICAgICAgICAgJGRlZnF1b3RhICAgICAgICAgICAgID0gKGlzc2V0KCRfZGF0YVsnZGVmcXVvdGEnXSkgJiYgJF9kYXRhWydkZWZxdW90YSddICE9ICcnKSA/IGludHZhbCgkX2RhdGFbJ2RlZnF1b3RhJ10pIDogKCRpc19ub3dbJ2RlZl9xdW90YV9mb3JfbWJveCddIC8gMTA0ODU3Nik7DQorICAgICAgICAgICAgICAgICRtYXhxdW90YSAgICAgICAgICAgICA9ICghZW1wdHkoJF9kYXRhWydtYXhxdW90YSddKSkgPyAkX2RhdGFbJ21heHF1b3RhJ10gOiAoJGlzX25vd1snbWF4X3F1b3RhX2Zvcl9tYm94J10gLyAxMDQ4NTc2KTsNCisgICAgICAgICAgICAgICAgJHF1b3RhICAgICAgICAgICAgICAgID0gKCFlbXB0eSgkX2RhdGFbJ3F1b3RhJ10pKSA/ICRfZGF0YVsncXVvdGEnXSA6ICgkaXNfbm93WydtYXhfcXVvdGFfZm9yX2RvbWFpbiddIC8gMTA0ODU3Nik7DQorICAgICAgICAgICAgICAgICRkZXNjcmlwdGlvbiAgICAgICAgICA9ICghZW1wdHkoJF9kYXRhWydkZXNjcmlwdGlvbiddKSkgPyAkX2RhdGFbJ2Rlc2NyaXB0aW9uJ10gOiAkaXNfbm93WydkZXNjcmlwdGlvbiddOw0KKyAgICAgICAgICAgICAgICBpZiAoJHJlbGF5X2FsbF9yZWNpcGllbnRzID09ICcxJykgew0KKyAgICAgICAgICAgICAgICAgICRiYWNrdXBteCA9ICcxJzsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBpZiAoJHJlbGF5X3Vua25vd25fb25seSA9PSAnMScpIHsNCisgICAgICAgICAgICAgICAgICAkYmFja3VwbXggPSAnMSc7DQorICAgICAgICAgICAgICAgICAgJHJlbGF5X2FsbF9yZWNpcGllbnRzID0gJzEnOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnZG9tYWluX2ludmFsaWQnDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgLy8gdG9kbzogc2hvdWxkIGJlIHVzaW5nIGFwaSBoZXJlDQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVA0KKyAgICAgICAgICAgICAgICAgIENPVU5UKCopIEFTIGNvdW50LA0KKyAgICAgICAgICAgICAgICAgIE1BWChDT0FMRVNDRShST1VORChgcXVvdGFgLzEwNDg1NzYpLCAwKSkgQVMgYGJpZ2dlc3RfbWFpbGJveGAsDQorICAgICAgICAgICAgICAgICAgQ09BTEVTQ0UoUk9VTkQoU1VNKGBxdW90YWApLzEwNDg1NzYpLCAwKSBBUyBgcXVvdGFfYWxsYA0KKyAgICAgICAgICAgICAgICAgICAgRlJPTSBgbWFpbGJveGANCisgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgYGtpbmRgIE5PVCBSRUdFWFAgJ2xvY2F0aW9ufHRoaW5nfGdyb3VwJw0KKyAgICAgICAgICAgICAgICAgICAgICAgIEFORCBkb21haW4gPSA6ZG9tYWluIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAgICAgJE1haWxib3hEYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgICAgLy8gdG9kbzogc2hvdWxkIGJlIHVzaW5nIGFwaSBoZXJlDQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBDT1VOVCgqKSBBUyBgY291bnRgIEZST00gYGFsaWFzYA0KKyAgICAgICAgICAgICAgICAgIFdIRVJFIGRvbWFpbiA9IDpkb21haW4NCisgICAgICAgICAgICAgICAgICBBTkQgYWRkcmVzcyBOT1QgSU4gKA0KKyAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgbWFpbGJveGANCisgICAgICAgICAgICAgICAgICApIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAgICAgJEFsaWFzRGF0YSA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgICAgIGlmICgkZGVmcXVvdGEgPiAkbWF4cXVvdGEpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnbWFpbGJveF9kZWZxdW90YV9leGNlZWRzX21haWxib3hfbWF4cXVvdGEnDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgaWYgKCRkZWZxdW90YSA9PSAiMCIgfHwgZW1wdHkoJGRlZnF1b3RhKSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdkZWZxdW90YV9lbXB0eScNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBpZiAoJG1heHF1b3RhID4gJHF1b3RhKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ21haWxib3hfcXVvdGFfZXhjZWVkc19kb21haW5fcXVvdGEnDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgaWYgKCRtYXhxdW90YSA9PSAiMCIgfHwgZW1wdHkoJG1heHF1b3RhKSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdtYXhxdW90YV9lbXB0eScNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBpZiAoJE1haWxib3hEYXRhWydiaWdnZXN0X21haWxib3gnXSA+ICRtYXhxdW90YSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYXhfcXVvdGFfaW5fdXNlJywgJE1haWxib3hEYXRhWydiaWdnZXN0X21haWxib3gnXSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBpZiAoJE1haWxib3hEYXRhWydxdW90YV9hbGwnXSA+ICRxdW90YSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdkb21haW5fcXVvdGFfbV9pbl91c2UnLCAkTWFpbGJveERhdGFbJ3F1b3RhX2FsbCddKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGlmICgkTWFpbGJveERhdGFbJ2NvdW50J10gPiAkbWFpbGJveGVzKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hlc19pbl91c2UnLCAkTWFpbGJveERhdGFbJ2NvdW50J10pDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgaWYgKCRBbGlhc0RhdGFbJ2NvdW50J10gPiAkYWxpYXNlcykgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdhbGlhc2VzX2luX3VzZScsICRBbGlhc0RhdGFbJ2NvdW50J10pDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYGRvbWFpbmAgU0VUDQorICAgICAgICAgICAgICBgcmVsYXlfYWxsX3JlY2lwaWVudHNgID0gOnJlbGF5X2FsbF9yZWNpcGllbnRzLA0KKyAgICAgICAgICAgICAgYHJlbGF5X3Vua25vd25fb25seWAgPSA6cmVsYXlfdW5rbm93bl9vbmx5LA0KKyAgICAgICAgICAgICAgYGJhY2t1cG14YCA9IDpiYWNrdXBteCwNCisgICAgICAgICAgICAgIGBnYWxgID0gOmdhbCwNCisgICAgICAgICAgICAgIGBhY3RpdmVgID0gOmFjdGl2ZSwNCisgICAgICAgICAgICAgIGBxdW90YWAgPSA6cXVvdGEsDQorICAgICAgICAgICAgICBgZGVmcXVvdGFgID0gOmRlZnF1b3RhLA0KKyAgICAgICAgICAgICAgYG1heHF1b3RhYCA9IDptYXhxdW90YSwNCisgICAgICAgICAgICAgIGByZWxheWhvc3RgID0gOnJlbGF5aG9zdCwNCisgICAgICAgICAgICAgIGBtYWlsYm94ZXNgID0gOm1haWxib3hlcywNCisgICAgICAgICAgICAgIGBhbGlhc2VzYCA9IDphbGlhc2VzLA0KKyAgICAgICAgICAgICAgYGRlc2NyaXB0aW9uYCA9IDpkZXNjcmlwdGlvbg0KKyAgICAgICAgICAgICAgICBXSEVSRSBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOnJlbGF5X2FsbF9yZWNpcGllbnRzJyA9PiAkcmVsYXlfYWxsX3JlY2lwaWVudHMsDQorICAgICAgICAgICAgICAgICc6cmVsYXlfdW5rbm93bl9vbmx5JyA9PiAkcmVsYXlfdW5rbm93bl9vbmx5LA0KKyAgICAgICAgICAgICAgICAnOmJhY2t1cG14JyA9PiAkYmFja3VwbXgsDQorICAgICAgICAgICAgICAgICc6Z2FsJyA9PiAkZ2FsLA0KKyAgICAgICAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZSwNCisgICAgICAgICAgICAgICAgJzpxdW90YScgPT4gJHF1b3RhLA0KKyAgICAgICAgICAgICAgICAnOmRlZnF1b3RhJyA9PiAkZGVmcXVvdGEsDQorICAgICAgICAgICAgICAgICc6bWF4cXVvdGEnID0+ICRtYXhxdW90YSwNCisgICAgICAgICAgICAgICAgJzpyZWxheWhvc3QnID0+ICRyZWxheWhvc3QsDQorICAgICAgICAgICAgICAgICc6bWFpbGJveGVzJyA9PiAkbWFpbGJveGVzLA0KKyAgICAgICAgICAgICAgICAnOmFsaWFzZXMnID0+ICRhbGlhc2VzLA0KKyAgICAgICAgICAgICAgICAnOmRlc2NyaXB0aW9uJyA9PiAkZGVzY3JpcHRpb24sDQorICAgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluDQorICAgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdkb21haW5fbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRkb21haW4pKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnbWFpbGJveCc6DQorICAgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWyd1c2VybmFtZSddKSkgew0KKyAgICAgICAgICAgICR1c2VybmFtZXMgPSBhcnJheSgpOw0KKyAgICAgICAgICAgICR1c2VybmFtZXNbXSA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCR1c2VybmFtZXMgYXMgJHVzZXJuYW1lKSB7DQorICAgICAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCR1c2VybmFtZSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndXNlcm5hbWVfaW52YWxpZCcsICR1c2VybmFtZSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJGlzX25vdyA9IG1haWxib3goJ2dldCcsICdtYWlsYm94X2RldGFpbHMnLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ3Byb3RvY29sX2FjY2VzcyddKSkgew0KKyAgICAgICAgICAgICAgJF9kYXRhWydpbWFwX2FjY2VzcyddID0gKGluX2FycmF5KCdpbWFwJywgJF9kYXRhWydwcm90b2NvbF9hY2Nlc3MnXSkpID8gMSA6IDA7DQorICAgICAgICAgICAgICAkX2RhdGFbJ3BvcDNfYWNjZXNzJ10gPSAoaW5fYXJyYXkoJ3BvcDMnLCAkX2RhdGFbJ3Byb3RvY29sX2FjY2VzcyddKSkgPyAxIDogMDsNCisgICAgICAgICAgICAgICRfZGF0YVsnc210cF9hY2Nlc3MnXSA9IChpbl9hcnJheSgnc210cCcsICRfZGF0YVsncHJvdG9jb2xfYWNjZXNzJ10pKSA/IDEgOiAwOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICAgICAkYWN0aXZlICAgICA9IChpc3NldCgkX2RhdGFbJ2FjdGl2ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSkgOiAkaXNfbm93WydhY3RpdmUnXTsNCisgICAgICAgICAgICAgIChpbnQpJGZvcmNlX3B3X3VwZGF0ZSA9IChpc3NldCgkX2RhdGFbJ2ZvcmNlX3B3X3VwZGF0ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydmb3JjZV9wd191cGRhdGUnXSkgOiBpbnR2YWwoJGlzX25vd1snYXR0cmlidXRlcyddWydmb3JjZV9wd191cGRhdGUnXSk7DQorICAgICAgICAgICAgICAoaW50KSRzb2dvX2FjY2VzcyA9IChpc3NldCgkX2RhdGFbJ3NvZ29fYWNjZXNzJ10pICYmIGlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3Byb3RvY29sX2FjY2VzcyddKSAmJiAkX1NFU1NJT05bJ2FjbCddWydwcm90b2NvbF9hY2Nlc3MnXSA9PSAiMSIpID8gaW50dmFsKCRfZGF0YVsnc29nb19hY2Nlc3MnXSkgOiBpbnR2YWwoJGlzX25vd1snYXR0cmlidXRlcyddWydzb2dvX2FjY2VzcyddKTsNCisgICAgICAgICAgICAgIChpbnQpJGltYXBfYWNjZXNzID0gKGlzc2V0KCRfZGF0YVsnaW1hcF9hY2Nlc3MnXSkgJiYgaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsncHJvdG9jb2xfYWNjZXNzJ10pICYmICRfU0VTU0lPTlsnYWNsJ11bJ3Byb3RvY29sX2FjY2VzcyddID09ICIxIikgPyBpbnR2YWwoJF9kYXRhWydpbWFwX2FjY2VzcyddKSA6IGludHZhbCgkaXNfbm93WydhdHRyaWJ1dGVzJ11bJ2ltYXBfYWNjZXNzJ10pOw0KKyAgICAgICAgICAgICAgKGludCkkcG9wM19hY2Nlc3MgPSAoaXNzZXQoJF9kYXRhWydwb3AzX2FjY2VzcyddKSAmJiBpc3NldCgkX1NFU1NJT05bJ2FjbCddWydwcm90b2NvbF9hY2Nlc3MnXSkgJiYgJF9TRVNTSU9OWydhY2wnXVsncHJvdG9jb2xfYWNjZXNzJ10gPT0gIjEiKSA/IGludHZhbCgkX2RhdGFbJ3BvcDNfYWNjZXNzJ10pIDogaW50dmFsKCRpc19ub3dbJ2F0dHJpYnV0ZXMnXVsncG9wM19hY2Nlc3MnXSk7DQorICAgICAgICAgICAgICAoaW50KSRzbXRwX2FjY2VzcyA9IChpc3NldCgkX2RhdGFbJ3NtdHBfYWNjZXNzJ10pICYmIGlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3Byb3RvY29sX2FjY2VzcyddKSAmJiAkX1NFU1NJT05bJ2FjbCddWydwcm90b2NvbF9hY2Nlc3MnXSA9PSAiMSIpID8gaW50dmFsKCRfZGF0YVsnc210cF9hY2Nlc3MnXSkgOiBpbnR2YWwoJGlzX25vd1snYXR0cmlidXRlcyddWydzbXRwX2FjY2VzcyddKTsNCisgICAgICAgICAgICAgIChpbnQpJHF1b3RhX20gPSAoaXNzZXRfaGFzX2NvbnRlbnQoJF9kYXRhWydxdW90YSddKSkgPyBpbnR2YWwoJF9kYXRhWydxdW90YSddKSA6ICgkaXNfbm93WydxdW90YSddIC8gMTA0ODU3Nik7DQorICAgICAgICAgICAgICAkbmFtZSAgICAgICA9ICghZW1wdHkoJF9kYXRhWyduYW1lJ10pKSA/IGx0cmltKHJ0cmltKCRfZGF0YVsnbmFtZSddLCAnPicpLCAnPCcpIDogJGlzX25vd1snbmFtZSddOw0KKyAgICAgICAgICAgICAgJGRvbWFpbiAgICAgPSAkaXNfbm93Wydkb21haW4nXTsNCisgICAgICAgICAgICAgICRxdW90YV9iICAgID0gJHF1b3RhX20gKiAxMDQ4NTc2Ow0KKyAgICAgICAgICAgICAgJHBhc3N3b3JkICAgPSAoIWVtcHR5KCRfZGF0YVsncGFzc3dvcmQnXSkpID8gJF9kYXRhWydwYXNzd29yZCddIDogbnVsbDsNCisgICAgICAgICAgICAgICRwYXNzd29yZDIgID0gKCFlbXB0eSgkX2RhdGFbJ3Bhc3N3b3JkMiddKSkgPyAkX2RhdGFbJ3Bhc3N3b3JkMiddIDogbnVsbDsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAvLyBpZiBhbHJlYWR5IDAgPT0gb2sNCisgICAgICAgICAgICBpZiAoKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWyd1bmxpbWl0ZWRfcXVvdGEnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsndW5saW1pdGVkX3F1b3RhJ10gIT0gIjEiKSAmJiAoJHF1b3RhX20gPT0gMCAmJiAkaXNfbm93WydxdW90YSddICE9IDApKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICd1bmxpbWl0ZWRfcXVvdGFfYWNsJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHF1b3RhYCwgYG1heHF1b3RhYA0KKyAgICAgICAgICAgICAgRlJPTSBgZG9tYWluYA0KKyAgICAgICAgICAgICAgICBXSEVSRSBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAgICREb21haW5EYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIGlmICghaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkZG9tYWluKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCRxdW90YV9tID4gJERvbWFpbkRhdGFbJ21heHF1b3RhJ10pIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfcXVvdGFfZXhjZWVkZWQnLCAkRG9tYWluRGF0YVsnbWF4cXVvdGEnXSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCgoKCRpc19ub3dbJ3F1b3RhX3VzZWQnXSAvIDEwNDg1NzYpIC0gJHF1b3RhX20pICsgJHF1b3RhX20pID4gJERvbWFpbkRhdGFbJ3F1b3RhJ10pIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ21haWxib3hfcXVvdGFfbGVmdF9leGNlZWRlZCcsICgkaXNfbm93WydtYXhfbmV3X3F1b3RhJ10gLyAxMDQ4NTc2KSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJGV4dHJhX2FjbHMgPSBhcnJheSgpOw0KKyAgICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ2V4dGVuZGVkX3NlbmRlcl9hY2wnXSkpIHsNCisgICAgICAgICAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsnZXh0ZW5kX3NlbmRlcl9hY2wnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnZXh0ZW5kX3NlbmRlcl9hY2wnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICRleHRyYV9hY2xzID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRfZGF0YVsnZXh0ZW5kZWRfc2VuZGVyX2FjbCddKSk7DQorICAgICAgICAgICAgICBmb3JlYWNoICgkZXh0cmFfYWNscyBhcyAkaSA9PiAmJGV4dHJhX2FjbCkgew0KKyAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJGV4dHJhX2FjbCkpIHsNCisgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBpZiAoc3Vic3RyKCRleHRyYV9hY2wsIDAsIDEpID09PSAiQCIpIHsNCisgICAgICAgICAgICAgICAgICAkZXh0cmFfYWNsID0gbHRyaW0oJGV4dHJhX2FjbCwgJ0AnKTsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJGV4dHJhX2FjbCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSAmJiAhaXNfdmFsaWRfZG9tYWluX25hbWUoJGV4dHJhX2FjbCkpIHsNCisgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdleHRyYV9hY2xfaW52YWxpZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGV4dHJhX2FjbCkpDQorICAgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgICB1bnNldCgkZXh0cmFfYWNsc1skaV0pOw0KKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICRkb21haW5zID0gYXJyYXlfbWVyZ2UobWFpbGJveCgnZ2V0JywgJ2RvbWFpbnMnKSwgbWFpbGJveCgnZ2V0JywgJ2FsaWFzX2RvbWFpbnMnKSk7DQorICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJfdmFyKCRleHRyYV9hY2wsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICAgICAgICAkZXh0cmFfYWNsX2RvbWFpbiA9IGlkbl90b19hc2NpaShzdWJzdHIoc3Ryc3RyKCRleHRyYV9hY2wsICdAJyksIDEpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICAgICAgICAgaWYgKGluX2FycmF5KCRleHRyYV9hY2xfZG9tYWluLCAkZG9tYWlucykpIHsNCisgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2V4dHJhX2FjbF9pbnZhbGlkX2RvbWFpbicsICRleHRyYV9hY2xfZG9tYWluKQ0KKyAgICAgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRleHRyYV9hY2xzWyRpXSk7DQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICAgICAgaWYgKGluX2FycmF5KCRleHRyYV9hY2wsICRkb21haW5zKSkgew0KKyAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZXh0cmFfYWNsX2ludmFsaWRfZG9tYWluJywgJGV4dHJhX2FjbF9kb21haW4pDQorICAgICAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGV4dHJhX2FjbHNbJGldKTsNCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAkZXh0cmFfYWNsID0gJ0AnIC4gJGV4dHJhX2FjbDsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJGV4dHJhX2FjbHMgPSBhcnJheV9maWx0ZXIoJGV4dHJhX2FjbHMpOw0KKyAgICAgICAgICAgICAgJGV4dHJhX2FjbHMgPSBhcnJheV92YWx1ZXMoJGV4dHJhX2FjbHMpOw0KKyAgICAgICAgICAgICAgJGV4dHJhX2FjbHMgPSBhcnJheV91bmlxdWUoJGV4dHJhX2FjbHMpOw0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc2VuZGVyX2FjbGAgV0hFUkUgYGV4dGVybmFsYCA9IDEgQU5EIGBsb2dnZWRfaW5fYXNgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAgIGZvcmVhY2ggKCRleHRyYV9hY2xzIGFzICRzZW5kZXJfYWNsX2V4dGVybmFsKSB7DQorICAgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYHNlbmRlcl9hY2xgIChgc2VuZF9hc2AsIGBsb2dnZWRfaW5fYXNgLCBgZXh0ZXJuYWxgKQ0KKyAgICAgICAgICAgICAgICAgIFZBTFVFUyAoOnNlbmRlcl9hY2wsIDp1c2VybmFtZSwgMSkiKTsNCisgICAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJzpzZW5kZXJfYWNsJyA9PiAkc2VuZGVyX2FjbF9leHRlcm5hbCwNCisgICAgICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ3NlbmRlcl9hY2wnXSkpIHsNCisgICAgICAgICAgICAgIC8vIEdldCBzZW5kZXJfYWNsIGl0ZW1zIHNldCBieSBhZG1pbg0KKyAgICAgICAgICAgICAgJHNlbmRlcl9hY2xfYWRtaW4gPSBhcnJheV9tZXJnZSgNCisgICAgICAgICAgICAgICAgbWFpbGJveCgnZ2V0JywgJ3NlbmRlcl9hY2xfaGFuZGxlcycsICR1c2VybmFtZSlbJ3NlbmRlcl9hY2xfZG9tYWlucyddWydybyddLA0KKyAgICAgICAgICAgICAgICBtYWlsYm94KCdnZXQnLCAnc2VuZGVyX2FjbF9oYW5kbGVzJywgJHVzZXJuYW1lKVsnc2VuZGVyX2FjbF9hZGRyZXNzZXMnXVsncm8nXQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIC8vIEdldCBzZW5kZXJfYWNsIGl0ZW1zIGZyb20gUE9TVCBhcnJheQ0KKyAgICAgICAgICAgICAgLy8gU2V0IHNlbmRlcl9hY2xfZG9tYWluX2FkbWluIHRvIGVtcHR5IGFycmF5IGlmIHNlbmRlcl9hY2wgY29udGFpbnMgImRlZmF1bHQiIHRvIHRyaWdnZXIgYSByZXNldA0KKyAgICAgICAgICAgICAgLy8gRGVsZXRlIHJlY29yZHMgZnJvbSBzZW5kZXJfYWNsIGlmIHNlbmRlcl9hY2wgY29udGFpbnMgIioiIGFuZCBzZXQgdG8gYXJyYXkoIioiKQ0KKyAgICAgICAgICAgICAgJF9kYXRhWydzZW5kZXJfYWNsJ10gPSAoYXJyYXkpJF9kYXRhWydzZW5kZXJfYWNsJ107DQorICAgICAgICAgICAgICBpZiAoaW5fYXJyYXkoIioiLCAkX2RhdGFbJ3NlbmRlcl9hY2wnXSkpIHsNCisgICAgICAgICAgICAgICAgJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluID0gYXJyYXkoJyonKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2VpZiAoYXJyYXkoImRlZmF1bHQiKSA9PT0gJF9kYXRhWydzZW5kZXJfYWNsJ10pIHsNCisgICAgICAgICAgICAgICAgJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluID0gYXJyYXkoKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgICBpZiAoYXJyYXlfc2VhcmNoKCdkZWZhdWx0JywgJF9kYXRhWydzZW5kZXJfYWNsJ10pICE9PSBmYWxzZSl7DQorICAgICAgICAgICAgICAgICAgdW5zZXQoJF9kYXRhWydzZW5kZXJfYWNsJ11bYXJyYXlfc2VhcmNoKCdkZWZhdWx0JywgJF9kYXRhWydzZW5kZXJfYWNsJ10pXSk7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluID0gJF9kYXRhWydzZW5kZXJfYWNsJ107DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pbikgfHwgIWVtcHR5KCRzZW5kZXJfYWNsX2FkbWluKSkgew0KKyAgICAgICAgICAgICAgICAvLyBDaGVjayBpdGVtcyBpbiBQT1NUIGFycmF5IGFuZCBza2lwIGludmFsaWQNCisgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluIGFzICRrZXkgPT4gJHZhbCkgew0KKyAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIGRvbWFpbiBvciBlbWFpbCBmb3JtYXQgb3Igbm90ICoNCisgICAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJHZhbCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSAmJiAhaXNfdmFsaWRfZG9tYWluX25hbWUobHRyaW0oJHZhbCwgJ0AnKSkgJiYgJHZhbCAhPSAnKicpIHsNCisgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NlbmRlcl9hY2xfaW52YWxpZCcsICRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pblska2V5XSkNCisgICAgICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgICAgICB1bnNldCgkc2VuZGVyX2FjbF9kb21haW5fYWRtaW5bJGtleV0pOw0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaGFzIGRvbWFpbiBhY2Nlc3MgKGlmIG9iamVjdCBpcyBkb21haW4pDQorICAgICAgICAgICAgICAgICAgJGRvbWFpbiA9IGx0cmltKCRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pblska2V5XSwgJ0AnKTsNCisgICAgICAgICAgICAgICAgICBpZiAoaXNfdmFsaWRfZG9tYWluX25hbWUoJGRvbWFpbikpIHsNCisgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvci0gYW5kIHNraXAgbm9uLW1haWxjb3cgZG9tYWlucw0KKyAgICAgICAgICAgICAgICAgICAgJGRvbWFpbnMgPSBhcnJheV9tZXJnZShtYWlsYm94KCdnZXQnLCAnZG9tYWlucycpLCBtYWlsYm94KCdnZXQnLCAnYWxpYXNfZG9tYWlucycpKTsNCisgICAgICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGRvbWFpbnMpKSB7DQorICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5fYXJyYXkoJGRvbWFpbiwgJGRvbWFpbnMpKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnc2VuZGVyX2FjbF9pbnZhbGlkJywgJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluWyRrZXldKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluWyRrZXldKTsNCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRkb21haW4pKSB7DQorICAgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NlbmRlcl9hY2xfaW52YWxpZCcsICRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pblska2V5XSkNCisgICAgICAgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluWyRrZXldKTsNCisgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgIC8vIFdpbGRjYXJkIGNhbiBvbmx5IGJlIHVzZWQgaWYgcm9sZSA9PSBhZG1pbg0KKyAgICAgICAgICAgICAgICAgIGlmICgkdmFsID09ICcqJyAmJiAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICdhZG1pbicpIHsNCisgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NlbmRlcl9hY2xfaW52YWxpZCcsICRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pblska2V5XSkNCisgICAgICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgICAgICB1bnNldCgkc2VuZGVyX2FjbF9kb21haW5fYWRtaW5bJGtleV0pOw0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHVzZXIgaGFzIGFsaWFzIGFjY2VzcyAoaWYgb2JqZWN0IGlzIGVtYWlsKQ0KKyAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJfdmFyKCR2YWwsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICAgICAgICAgIGlmICghaGFzQWxpYXNPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICR2YWwpKSB7DQorICAgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NlbmRlcl9hY2xfaW52YWxpZCcsICRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pblska2V5XSkNCisgICAgICAgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHNlbmRlcl9hY2xfZG9tYWluX2FkbWluWyRrZXldKTsNCisgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIC8vIE1lcmdlIGJvdGggYXJyYXlzDQorICAgICAgICAgICAgICAgICRzZW5kZXJfYWNsX21lcmdlZCA9IGFycmF5X21lcmdlKCRzZW5kZXJfYWNsX2RvbWFpbl9hZG1pbiwgJHNlbmRlcl9hY2xfYWRtaW4pOw0KKyAgICAgICAgICAgICAgICAvLyBJZiBtZXJnZWQgYXJyYXkgc3RpbGwgY29udGFpbnMgIioiLCBzZXQgaXQgYXMgb25seSB2YWx1ZQ0KKyAgICAgICAgICAgICAgICAhaW5fYXJyYXkoJyonLCAkc2VuZGVyX2FjbF9tZXJnZWQpID86ICRzZW5kZXJfYWNsX21lcmdlZCA9IGFycmF5KCcqJyk7DQorICAgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHNlbmRlcl9hY2xgIFdIRVJFIGBleHRlcm5hbGAgPSAwIEFORCBgbG9nZ2VkX2luX2FzYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgICAgICRmaXhlZF9zZW5kZXJfYWxpYXNlcyA9IG1haWxib3goJ2dldCcsICdzZW5kZXJfYWNsX2hhbmRsZXMnLCAkdXNlcm5hbWUpWydmaXhlZF9zZW5kZXJfYWxpYXNlcyddOw0KKyAgICAgICAgICAgICAgICBmb3JlYWNoICgkc2VuZGVyX2FjbF9tZXJnZWQgYXMgJHNlbmRlcl9hY2wpIHsNCisgICAgICAgICAgICAgICAgICAkZG9tYWluID0gbHRyaW0oJHNlbmRlcl9hY2wsICdAJyk7DQorICAgICAgICAgICAgICAgICAgaWYgKGlzX3ZhbGlkX2RvbWFpbl9uYW1lKCRkb21haW4pKSB7DQorICAgICAgICAgICAgICAgICAgICAkc2VuZGVyX2FjbCA9ICdAJyAuICRkb21haW47DQorICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgIC8vIERvbid0IGFkZCBpZiBhbGxvd2VkIGJ5IGFsaWFzDQorICAgICAgICAgICAgICAgICAgaWYgKGluX2FycmF5KCRzZW5kZXJfYWNsLCAkZml4ZWRfc2VuZGVyX2FsaWFzZXMpKSB7DQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgc2VuZGVyX2FjbGAgKGBzZW5kX2FzYCwgYGxvZ2dlZF9pbl9hc2ApDQorICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKDpzZW5kZXJfYWNsLCA6dXNlcm5hbWUpIik7DQorICAgICAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAnOnNlbmRlcl9hY2wnID0+ICRzZW5kZXJfYWNsLA0KKyAgICAgICAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRSBgZXh0ZXJuYWxgID0gMCBBTkQgYGxvZ2dlZF9pbl9hc2AgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRwYXNzd29yZCkgJiYgIWVtcHR5KCRwYXNzd29yZDIpKSB7DQorICAgICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJEdMT0JBTFNbJ1BBU1NXRF9SRUdFUCddIC4gJy8nLCAkcGFzc3dvcmQpKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX2NvbXBsZXhpdHknDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgaWYgKCRwYXNzd29yZCAhPSAkcGFzc3dvcmQyKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ3Bhc3N3b3JkX21pc21hdGNoJw0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIC8vIHN1cHBvcnQgcHJlIGhhc2hlZCBwYXNzd29yZHMNCisgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvXih7U1NIQTI1Nn18e1NTSEF9fHtTSEE1MTItQ1JZUFR9fHtTU0hBNTEyfXx7TUQ1LUNSWVBUfXx7UExBSU4tTUQ1fSkvaScsICRwYXNzd29yZCkpIHsNCisgICAgICAgICAgICAgICAgJHBhc3N3b3JkX2hhc2hlZCA9ICRwYXNzd29yZDsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgICAkcGFzc3dvcmRfaGFzaGVkID0gaGFzaF9wYXNzd29yZCgkcGFzc3dvcmQpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYG1haWxib3hgIFNFVA0KKyAgICAgICAgICAgICAgICAgIGBwYXNzd29yZGAgPSA6cGFzc3dvcmRfaGFzaGVkDQorICAgICAgICAgICAgICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzpwYXNzd29yZF9oYXNoZWQnID0+ICRwYXNzd29yZF9oYXNoZWQsDQorICAgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIC8vIFdlIGNvdWxkIGVpdGhlciBzZXQgYWxpYXMgPSAxIGlmIGFsaWFzID0gMiBvciB0dW5lIHRoZSBQb3N0Zml4IGFsaWFzIHRhYmxlICh0aGF0J3Mgd2hhdCB3ZSBkaWQsIFRPRE86IHRvIGl0IHRoZSBvdGhlciB3YXkpDQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYGFsaWFzYCBTRVQNCisgICAgICAgICAgICAgICAgYGFjdGl2ZWAgPSA6YWN0aXZlDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYGFkZHJlc3NgID0gOmFkZHJlc3MiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6YWRkcmVzcycgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgbWFpbGJveGAgU0VUDQorICAgICAgICAgICAgICAgIGBhY3RpdmVgID0gOmFjdGl2ZSwNCisgICAgICAgICAgICAgICAgYG5hbWVgPSA6bmFtZSwNCisgICAgICAgICAgICAgICAgYHF1b3RhYCA9IDpxdW90YV9iLA0KKyAgICAgICAgICAgICAgICBgYXR0cmlidXRlc2AgPSBKU09OX1NFVChgYXR0cmlidXRlc2AsICckLmZvcmNlX3B3X3VwZGF0ZScsIDpmb3JjZV9wd191cGRhdGUpLA0KKyAgICAgICAgICAgICAgICBgYXR0cmlidXRlc2AgPSBKU09OX1NFVChgYXR0cmlidXRlc2AsICckLnNvZ29fYWNjZXNzJywgOnNvZ29fYWNjZXNzKSwNCisgICAgICAgICAgICAgICAgYGF0dHJpYnV0ZXNgID0gSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC5pbWFwX2FjY2VzcycsIDppbWFwX2FjY2VzcyksDQorICAgICAgICAgICAgICAgIGBhdHRyaWJ1dGVzYCA9IEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQucG9wM19hY2Nlc3MnLCA6cG9wM19hY2Nlc3MpLA0KKyAgICAgICAgICAgICAgICBgYXR0cmlidXRlc2AgPSBKU09OX1NFVChgYXR0cmlidXRlc2AsICckLnNtdHBfYWNjZXNzJywgOnNtdHBfYWNjZXNzKQ0KKyAgICAgICAgICAgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlLA0KKyAgICAgICAgICAgICAgJzpuYW1lJyA9PiAkbmFtZSwNCisgICAgICAgICAgICAgICc6cXVvdGFfYicgPT4gJHF1b3RhX2IsDQorICAgICAgICAgICAgICAnOmZvcmNlX3B3X3VwZGF0ZScgPT4gJGZvcmNlX3B3X3VwZGF0ZSwNCisgICAgICAgICAgICAgICc6c29nb19hY2Nlc3MnID0+ICRzb2dvX2FjY2VzcywNCisgICAgICAgICAgICAgICc6aW1hcF9hY2Nlc3MnID0+ICRpbWFwX2FjY2VzcywNCisgICAgICAgICAgICAgICc6cG9wM19hY2Nlc3MnID0+ICRwb3AzX2FjY2VzcywNCisgICAgICAgICAgICAgICc6c210cF9hY2Nlc3MnID0+ICRzbXRwX2FjY2VzcywNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X21vZGlmaWVkJywgJHVzZXJuYW1lKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAncmVzb3VyY2UnOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsnbmFtZSddKSkgew0KKyAgICAgICAgICAgICRuYW1lcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJG5hbWVzW10gPSAkX2RhdGFbJ25hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkbmFtZXMgPSAkX2RhdGFbJ25hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkbmFtZXMgYXMgJG5hbWUpIHsNCisgICAgICAgICAgICAkaXNfbm93ID0gbWFpbGJveCgnZ2V0JywgJ3Jlc291cmNlX2RldGFpbHMnLCAkbmFtZSk7DQorICAgICAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAgICAgJGFjdGl2ZSAgICAgICAgICAgICA9IChpc3NldCgkX2RhdGFbJ2FjdGl2ZSddKSkgPyBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSkgOiAkaXNfbm93WydhY3RpdmUnXTsNCisgICAgICAgICAgICAgICRtdWx0aXBsZV9ib29raW5ncyAgPSAoaXNzZXQoJF9kYXRhWydtdWx0aXBsZV9ib29raW5ncyddKSkgPyBpbnR2YWwoJF9kYXRhWydtdWx0aXBsZV9ib29raW5ncyddKSA6ICRpc19ub3dbJ211bHRpcGxlX2Jvb2tpbmdzJ107DQorICAgICAgICAgICAgICAkZGVzY3JpcHRpb24gICAgICAgID0gKCFlbXB0eSgkX2RhdGFbJ2Rlc2NyaXB0aW9uJ10pKSA/ICRfZGF0YVsnZGVzY3JpcHRpb24nXSA6ICRpc19ub3dbJ2Rlc2NyaXB0aW9uJ107DQorICAgICAgICAgICAgICAka2luZCAgICAgICAgICAgICAgID0gKCFlbXB0eSgkX2RhdGFbJ2tpbmQnXSkpID8gJF9kYXRhWydraW5kJ10gOiAkaXNfbm93WydraW5kJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVzb3VyY2VfaW52YWxpZCcsIGh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJG5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3Jlc291cmNlX2ludmFsaWQnLCBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFpc3NldCgkbXVsdGlwbGVfYm9va2luZ3MpIHx8ICRtdWx0aXBsZV9ib29raW5ncyA8IC0xKSB7DQorICAgICAgICAgICAgICAkbXVsdGlwbGVfYm9va2luZ3MgPSAtMTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRkZXNjcmlwdGlvbikpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2Rlc2NyaXB0aW9uX2ludmFsaWQnLCBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCRraW5kICE9ICdsb2NhdGlvbicgJiYgJGtpbmQgIT0gJ2dyb3VwJyAmJiAka2luZCAhPSAndGhpbmcnKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZXNvdXJjZV9pbnZhbGlkJywgaHRtbHNwZWNpYWxjaGFycygkbmFtZSkpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJG5hbWUpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgbWFpbGJveGAgU0VUDQorICAgICAgICAgICAgICAgIGBhY3RpdmVgID0gOmFjdGl2ZSwNCisgICAgICAgICAgICAgICAgYG5hbWVgPSA6ZGVzY3JpcHRpb24sDQorICAgICAgICAgICAgICAgIGBraW5kYD0gOmtpbmQsDQorICAgICAgICAgICAgICAgIGBtdWx0aXBsZV9ib29raW5nc2A9IDptdWx0aXBsZV9ib29raW5ncw0KKyAgICAgICAgICAgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgPSA6bmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUsDQorICAgICAgICAgICAgICAnOmRlc2NyaXB0aW9uJyA9PiAkZGVzY3JpcHRpb24sDQorICAgICAgICAgICAgICAnOm11bHRpcGxlX2Jvb2tpbmdzJyA9PiAkbXVsdGlwbGVfYm9va2luZ3MsDQorICAgICAgICAgICAgICAnOmtpbmQnID0+ICRraW5kLA0KKyAgICAgICAgICAgICAgJzpuYW1lJyA9PiAkbmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZXNvdXJjZV9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgc3dpdGNoICgkX3R5cGUpIHsNCisgICAgICAgIGNhc2UgJ3NlbmRlcl9hY2xfaGFuZGxlcyc6DQorICAgICAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiZG9tYWluYWRtaW4iKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRkYXRhWydzZW5kZXJfYWNsX2RvbWFpbnMnXVsncm8nXSAgICAgICAgICAgICAgID0gYXJyYXkoKTsNCisgICAgICAgICAgJGRhdGFbJ3NlbmRlcl9hY2xfZG9tYWlucyddWydydyddICAgICAgICAgICAgICAgPSBhcnJheSgpOw0KKyAgICAgICAgICAkZGF0YVsnc2VuZGVyX2FjbF9kb21haW5zJ11bJ3NlbGVjdGFibGUnXSAgICAgICA9IGFycmF5KCk7DQorICAgICAgICAgICRkYXRhWydzZW5kZXJfYWNsX2FkZHJlc3NlcyddWydybyddICAgICAgICAgICAgID0gYXJyYXkoKTsNCisgICAgICAgICAgJGRhdGFbJ3NlbmRlcl9hY2xfYWRkcmVzc2VzJ11bJ3J3J10gICAgICAgICAgICAgPSBhcnJheSgpOw0KKyAgICAgICAgICAkZGF0YVsnc2VuZGVyX2FjbF9hZGRyZXNzZXMnXVsnc2VsZWN0YWJsZSddICAgICA9IGFycmF5KCk7DQorICAgICAgICAgICRkYXRhWydmaXhlZF9zZW5kZXJfYWxpYXNlcyddICAgICAgICAgICAgICAgICAgID0gYXJyYXkoKTsNCisgICAgICAgICAgJGRhdGFbJ2V4dGVybmFsX3NlbmRlcl9hbGlhc2VzJ10gICAgICAgICAgICAgICAgPSBhcnJheSgpOw0KKyAgICAgICAgICAvLyBGaXhlZCBhZGRyZXNzZXMNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGFkZHJlc3NgIEZST00gYGFsaWFzYCBXSEVSRSBgZ290b2AgUkVHRVhQIDpnb3RvIEFORCBgYWRkcmVzc2AgTk9UIExJS0UgJ0AlJyIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmdvdG8nID0+ICcoXnwsKScuJF9kYXRhLicoJHwsKScpKTsNCisgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJHJvd3MpKSB7DQorICAgICAgICAgICAgJGRhdGFbJ2ZpeGVkX3NlbmRlcl9hbGlhc2VzJ11bXSA9ICRyb3dbJ2FkZHJlc3MnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBDT05DQVQoYGxvY2FsX3BhcnRgLCAnQCcsIGBhbGlhc19kb21haW5gLmBhbGlhc19kb21haW5gKSBBUyBgYWxpYXNfZG9tYWluX2FsaWFzYCBGUk9NIGBtYWlsYm94YCwgYGFsaWFzX2RvbWFpbmANCisgICAgICAgICAgICBXSEVSRSBgYWxpYXNfZG9tYWluYC5gdGFyZ2V0X2RvbWFpbmAgPSBgbWFpbGJveGAuYGRvbWFpbmANCisgICAgICAgICAgICBBTkQgYG1haWxib3hgLmB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICB3aGlsZSAoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgIGlmICghZW1wdHkoJHJvd1snYWxpYXNfZG9tYWluX2FsaWFzJ10pKSB7DQorICAgICAgICAgICAgICAkZGF0YVsnZml4ZWRfc2VuZGVyX2FsaWFzZXMnXVtdID0gJHJvd1snYWxpYXNfZG9tYWluX2FsaWFzJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIC8vIEV4dGVybmFsIGFkZHJlc3Nlcw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgc2VuZF9hc2AgYXMgYHNlbmRfYXNfZXh0ZXJuYWxgIEZST00gYHNlbmRlcl9hY2xgIFdIRVJFIGBsb2dnZWRfaW5fYXNgID0gOmxvZ2dlZF9pbl9hcyBBTkQgYGV4dGVybmFsYCA9ICcxJyIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmxvZ2dlZF9pbl9hcycgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRleGVybmFsX3Jvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJGV4ZXJuYWxfcm93cykpIHsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRyb3dbJ3NlbmRfYXNfZXh0ZXJuYWwnXSkpIHsNCisgICAgICAgICAgICAgICRkYXRhWydleHRlcm5hbF9zZW5kZXJfYWxpYXNlcyddW10gPSAkcm93WydzZW5kX2FzX2V4dGVybmFsJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIC8vIFJldHVybiBhcnJheSAkZGF0YVsnc2VuZGVyX2FjbF9kb21haW5zL2FkZHJlc3NlcyddWydybyddIHdpdGggcmVhZC1vbmx5IG9iamVjdHMNCisgICAgICAgICAgLy8gUmV0dXJuIGFycmF5ICRkYXRhWydzZW5kZXJfYWNsX2RvbWFpbnMvYWRkcmVzc2VzJ11bJ3J3J10gd2l0aCByZWFkLXdyaXRlIG9iamVjdHMgKGNhbiBiZSBkZWxldGVkKQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBSRVBMQUNFKGBzZW5kX2FzYCwgJ0AnLCAnJykgQVMgYHNlbmRfYXNgIEZST00gYHNlbmRlcl9hY2xgIFdIRVJFIGBsb2dnZWRfaW5fYXNgID0gOmxvZ2dlZF9pbl9hcyBBTkQgYGV4dGVybmFsYCA9ICcwJyBBTkQgKGBzZW5kX2FzYCBMSUtFICdAJScgT1IgYHNlbmRfYXNgID0gJyonKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmxvZ2dlZF9pbl9hcycgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRkb21haW5fcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgd2hpbGUgKCRkb21haW5fcm93ID0gYXJyYXlfc2hpZnQoJGRvbWFpbl9yb3dzKSkgew0KKyAgICAgICAgICAgIGlmIChpc192YWxpZF9kb21haW5fbmFtZSgkZG9tYWluX3Jvd1snc2VuZF9hcyddKSAmJiAhaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkZG9tYWluX3Jvd1snc2VuZF9hcyddKSkgew0KKyAgICAgICAgICAgICAgJGRhdGFbJ3NlbmRlcl9hY2xfZG9tYWlucyddWydybyddW10gPSAkZG9tYWluX3Jvd1snc2VuZF9hcyddOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChpc192YWxpZF9kb21haW5fbmFtZSgkZG9tYWluX3Jvd1snc2VuZF9hcyddKSAmJiBoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRkb21haW5fcm93WydzZW5kX2FzJ10pKSB7DQorICAgICAgICAgICAgICAkZGF0YVsnc2VuZGVyX2FjbF9kb21haW5zJ11bJ3J3J11bXSA9ICRkb21haW5fcm93WydzZW5kX2FzJ107DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCRkb21haW5fcm93WydzZW5kX2FzJ10gPT0gJyonICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2FkbWluJykgew0KKyAgICAgICAgICAgICAgJGRhdGFbJ3NlbmRlcl9hY2xfZG9tYWlucyddWydybyddW10gPSAkZG9tYWluX3Jvd1snc2VuZF9hcyddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoJGRvbWFpbl9yb3dbJ3NlbmRfYXMnXSA9PSAnKicgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAnYWRtaW4nKSB7DQorICAgICAgICAgICAgICAkZGF0YVsnc2VuZGVyX2FjbF9kb21haW5zJ11bJ3J3J11bXSA9ICRkb21haW5fcm93WydzZW5kX2FzJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBzZW5kX2FzYCBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRSBgbG9nZ2VkX2luX2FzYCA9IDpsb2dnZWRfaW5fYXMgQU5EIGBleHRlcm5hbGAgPSAnMCcgQU5EIChgc2VuZF9hc2AgTk9UIExJS0UgJ0AlJyBBTkQgYHNlbmRfYXNgICE9ICcqJykiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpsb2dnZWRfaW5fYXMnID0+ICRfZGF0YSkpOw0KKyAgICAgICAgICAkYWRkcmVzc19yb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICB3aGlsZSAoJGFkZHJlc3Nfcm93ID0gYXJyYXlfc2hpZnQoJGFkZHJlc3Nfcm93cykpIHsNCisgICAgICAgICAgICBpZiAoZmlsdGVyX3ZhcigkYWRkcmVzc19yb3dbJ3NlbmRfYXMnXSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSAmJiAhaGFzQWxpYXNPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRhZGRyZXNzX3Jvd1snc2VuZF9hcyddKSkgew0KKyAgICAgICAgICAgICAgJGRhdGFbJ3NlbmRlcl9hY2xfYWRkcmVzc2VzJ11bJ3JvJ11bXSA9ICRhZGRyZXNzX3Jvd1snc2VuZF9hcyddOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChmaWx0ZXJfdmFyKCRhZGRyZXNzX3Jvd1snc2VuZF9hcyddLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpICYmIGhhc0FsaWFzT2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkYWRkcmVzc19yb3dbJ3NlbmRfYXMnXSkpIHsNCisgICAgICAgICAgICAgICRkYXRhWydzZW5kZXJfYWNsX2FkZHJlc3NlcyddWydydyddW10gPSAkYWRkcmVzc19yb3dbJ3NlbmRfYXMnXTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5gDQorICAgICAgICAgICAgV0hFUkUgYGRvbWFpbmAgTk9UIElOICgNCisgICAgICAgICAgICAgIFNFTEVDVCBSRVBMQUNFKGBzZW5kX2FzYCwgJ0AnLCAnJykgRlJPTSBgc2VuZGVyX2FjbGANCisgICAgICAgICAgICAgICAgV0hFUkUgYGxvZ2dlZF9pbl9hc2AgPSA6bG9nZ2VkX2luX2FzMQ0KKyAgICAgICAgICAgICAgICAgIEFORCBgZXh0ZXJuYWxgID0gJzAnDQorICAgICAgICAgICAgICAgICAgQU5EIGBzZW5kX2FzYCBMSUtFICdAJScpDQorICAgICAgICAgICAgVU5JT04NCisgICAgICAgICAgICBTRUxFQ1QgJyonIEZST00gYGRvbWFpbmANCisgICAgICAgICAgICAgIFdIRVJFICcqJyBOT1QgSU4gKA0KKyAgICAgICAgICAgICAgICBTRUxFQ1QgYHNlbmRfYXNgIEZST00gYHNlbmRlcl9hY2xgDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYGxvZ2dlZF9pbl9hc2AgPSA6bG9nZ2VkX2luX2FzMg0KKyAgICAgICAgICAgICAgICAgICAgQU5EIGBleHRlcm5hbGAgPSAnMCcNCisgICAgICAgICAgICAgICkiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzpsb2dnZWRfaW5fYXMxJyA9PiAkX2RhdGEsDQorICAgICAgICAgICAgJzpsb2dnZWRfaW5fYXMyJyA9PiAkX2RhdGENCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRyb3dzX2RvbWFpbiA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgd2hpbGUgKCRyb3dfZG9tYWluID0gYXJyYXlfc2hpZnQoJHJvd3NfZG9tYWluKSkgew0KKyAgICAgICAgICAgIGlmIChpc192YWxpZF9kb21haW5fbmFtZSgkcm93X2RvbWFpblsnZG9tYWluJ10pICYmIGhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHJvd19kb21haW5bJ2RvbWFpbiddKSkgew0KKyAgICAgICAgICAgICAgJGRhdGFbJ3NlbmRlcl9hY2xfZG9tYWlucyddWydzZWxlY3RhYmxlJ11bXSA9ICRyb3dfZG9tYWluWydkb21haW4nXTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoJHJvd19kb21haW5bJ2RvbWFpbiddID09ICcqJyAmJiAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICdhZG1pbicpIHsNCisgICAgICAgICAgICAgICRkYXRhWydzZW5kZXJfYWNsX2RvbWFpbnMnXVsnc2VsZWN0YWJsZSddW10gPSAkcm93X2RvbWFpblsnZG9tYWluJ107DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGFkZHJlc3NgIEZST00gYGFsaWFzYA0KKyAgICAgICAgICAgIFdIRVJFIGBnb3RvYCAhPSA6Z290bw0KKyAgICAgICAgICAgICAgQU5EIGBhZGRyZXNzYCBOT1QgSU4gKA0KKyAgICAgICAgICAgICAgICBTRUxFQ1QgYHNlbmRfYXNgIEZST00gYHNlbmRlcl9hY2xgDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYGxvZ2dlZF9pbl9hc2AgPSA6bG9nZ2VkX2luX2FzDQorICAgICAgICAgICAgICAgICAgICBBTkQgYGV4dGVybmFsYCA9ICcwJw0KKyAgICAgICAgICAgICAgICAgICAgQU5EIGBzZW5kX2FzYCBOT1QgTElLRSAnQCUnKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOmxvZ2dlZF9pbl9hcycgPT4gJF9kYXRhLA0KKyAgICAgICAgICAgICc6Z290bycgPT4gJF9kYXRhDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkcm93c19tYm94ID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICB3aGlsZSAoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzX21ib3gpKSB7DQorICAgICAgICAgICAgLy8gQWxpYXNlcyBhcmUgbm90IHNlbGVjdGFibGUNCisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHJvd1snYWRkcmVzcyddLCAkZGF0YVsnZml4ZWRfc2VuZGVyX2FsaWFzZXMnXSkpIHsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoZmlsdGVyX3Zhcigkcm93WydhZGRyZXNzJ10sIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgJiYgaGFzQWxpYXNPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRyb3dbJ2FkZHJlc3MnXSkpIHsNCisgICAgICAgICAgICAgICRkYXRhWydzZW5kZXJfYWNsX2FkZHJlc3NlcyddWydzZWxlY3RhYmxlJ11bXSA9ICRyb3dbJ2FkZHJlc3MnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRkYXRhOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdtYWlsYm94ZXMnOg0KKyAgICAgICAgICAkbWFpbGJveGVzID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKGlzc2V0KCRfZGF0YSkgJiYgIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKGlzc2V0KCRfZGF0YSkgJiYgaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGEpKSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBtYWlsYm94YCBXSEVSRSBga2luZGAgTk9UIFJFR0VYUCAnbG9jYXRpb258dGhpbmd8Z3JvdXAnIEFORCBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkX2RhdGEsDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgICAgJG1haWxib3hlc1tdID0gJHJvd1sndXNlcm5hbWUnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBtYWlsYm94YCBXSEVSRSBga2luZGAgTk9UIFJFR0VYUCAnbG9jYXRpb258dGhpbmd8Z3JvdXAnIEFORCAoYGRvbWFpbmAgSU4gKFNFTEVDVCBgZG9tYWluYCBGUk9NIGBkb21haW5fYWRtaW5zYCBXSEVSRSBgYWN0aXZlYCA9ICcxJyBBTkQgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSkgT1IgJ2FkbWluJyA9IDpyb2xlKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sDQorICAgICAgICAgICAgICAnOnJvbGUnID0+ICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgICAgJG1haWxib3hlc1tdID0gJHJvd1sndXNlcm5hbWUnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRtYWlsYm94ZXM7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ3Rsc19wb2xpY3knOg0KKyAgICAgICAgICAkYXR0cnMgPSBhcnJheSgpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhKSAmJiBmaWx0ZXJfdmFyKCRfZGF0YSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX2RhdGEgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYXR0cmlidXRlc2AgRlJPTSBgbWFpbGJveGAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJGF0dHJzID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAkYXR0cnMgPSBqc29uX2RlY29kZSgkYXR0cnNbJ2F0dHJpYnV0ZXMnXSwgdHJ1ZSk7DQorICAgICAgICAgIHJldHVybiBhcnJheSgNCisgICAgICAgICAgICAndGxzX2VuZm9yY2VfaW4nID0+ICRhdHRyc1sndGxzX2VuZm9yY2VfaW4nXSwNCisgICAgICAgICAgICAndGxzX2VuZm9yY2Vfb3V0JyA9PiAkYXR0cnNbJ3Rsc19lbmZvcmNlX291dCddDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ3F1YXJhbnRpbmVfbm90aWZpY2F0aW9uJzoNCisgICAgICAgICAgJGF0dHJzID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKGlzc2V0KCRfZGF0YSkgJiYgZmlsdGVyX3ZhcigkX2RhdGEsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9kYXRhID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGF0dHJpYnV0ZXNgIEZST00gYG1haWxib3hgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRhdHRycyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgJGF0dHJzID0ganNvbl9kZWNvZGUoJGF0dHJzWydhdHRyaWJ1dGVzJ10sIHRydWUpOw0KKyAgICAgICAgICByZXR1cm4gJGF0dHJzWydxdWFyYW50aW5lX25vdGlmaWNhdGlvbiddOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdxdWFyYW50aW5lX2NhdGVnb3J5JzoNCisgICAgICAgICAgJGF0dHJzID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKGlzc2V0KCRfZGF0YSkgJiYgZmlsdGVyX3ZhcigkX2RhdGEsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9kYXRhID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGF0dHJpYnV0ZXNgIEZST00gYG1haWxib3hgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRhdHRycyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgJGF0dHJzID0ganNvbl9kZWNvZGUoJGF0dHJzWydhdHRyaWJ1dGVzJ10sIHRydWUpOw0KKyAgICAgICAgICByZXR1cm4gJGF0dHJzWydxdWFyYW50aW5lX2NhdGVnb3J5J107DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2ZpbHRlcnMnOg0KKyAgICAgICAgICAkZmlsdGVycyA9IGFycmF5KCk7DQorICAgICAgICAgIGlmIChpc3NldCgkX2RhdGEpICYmIGZpbHRlcl92YXIoJF9kYXRhLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSB7DQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGEpKSB7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRfZGF0YSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAgRlJPTSBgc2lldmVfZmlsdGVyc2AgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICAgICAkZmlsdGVyc1tdID0gJHJvd1snaWQnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gJGZpbHRlcnM7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2dsb2JhbF9maWx0ZXJfZGV0YWlscyc6DQorICAgICAgICAgICRnbG9iYWxfZmlsdGVycyA9IGFycmF5KCk7DQorICAgICAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJGdsb2JhbF9maWx0ZXJzWydwcmVmaWx0ZXInXSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCcvZ2xvYmFsX3NpZXZlL2JlZm9yZScpOw0KKyAgICAgICAgICAkZ2xvYmFsX2ZpbHRlcnNbJ3Bvc3RmaWx0ZXInXSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCcvZ2xvYmFsX3NpZXZlL2FmdGVyJyk7DQorICAgICAgICAgIHJldHVybiAkZ2xvYmFsX2ZpbHRlcnM7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2ZpbHRlcl9kZXRhaWxzJzoNCisgICAgICAgICAgJGZpbHRlcl9kZXRhaWxzID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKCFpc19udW1lcmljKCRfZGF0YSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgQ0FTRSBgc2NyaXB0X25hbWVgIFdIRU4gJ2FjdGl2ZScgVEhFTiAxIEVMU0UgMCBFTkQgQVMgYGFjdGl2ZWAsDQorICAgICAgICAgICAgaWQsDQorICAgICAgICAgICAgdXNlcm5hbWUsDQorICAgICAgICAgICAgZmlsdGVyX3R5cGUsDQorICAgICAgICAgICAgc2NyaXB0X2RhdGEsDQorICAgICAgICAgICAgc2NyaXB0X2Rlc2MNCisgICAgICAgICAgICBGUk9NIGBzaWV2ZV9maWx0ZXJzYA0KKyAgICAgICAgICAgICAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJGZpbHRlcl9kZXRhaWxzID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRmaWx0ZXJfZGV0YWlsc1sndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRmaWx0ZXJfZGV0YWlsczsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnYWN0aXZlX3VzZXJfc2lldmUnOg0KKyAgICAgICAgICAkZmlsdGVyX2RldGFpbHMgPSBhcnJheSgpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhKSAmJiBmaWx0ZXJfdmFyKCRfZGF0YSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX2RhdGEgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkZXhlY19maWVsZHMgPSBhcnJheSgNCisgICAgICAgICAgICAnY21kJyA9PiAnc2lldmUnLA0KKyAgICAgICAgICAgICd0YXNrJyA9PiAnbGlzdCcsDQorICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAkX2RhdGENCisgICAgICAgICAgKTsNCisgICAgICAgICAgJGZpbHRlcnMgPSBkb2NrZXIoJ3Bvc3QnLCAnZG92ZWNvdC1tYWlsY293JywgJ2V4ZWMnLCAkZXhlY19maWVsZHMpOw0KKyAgICAgICAgICAkZmlsdGVycyA9IGFycmF5X2ZpbHRlcihwcmVnX3NwbGl0KCIvKFxyXG58XG58XHIpLyIsJGZpbHRlcnMpKTsNCisgICAgICAgICAgZm9yZWFjaCAoJGZpbHRlcnMgYXMgJGZpbHRlcikgew0KKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvLisgQUNUSVZFL2knLCAkZmlsdGVyKSkgew0KKyAgICAgICAgICAgICAgJGV4ZWNfZmllbGRzID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICdjbWQnID0+ICdzaWV2ZScsDQorICAgICAgICAgICAgICAgICd0YXNrJyA9PiAncHJpbnQnLA0KKyAgICAgICAgICAgICAgICAnc2NyaXB0X25hbWUnID0+IHN1YnN0cigkZmlsdGVyLCAwLCAtNyksDQorICAgICAgICAgICAgICAgICd1c2VybmFtZScgPT4gJF9kYXRhDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgJHNjcmlwdCA9IGRvY2tlcigncG9zdCcsICdkb3ZlY290LW1haWxjb3cnLCAnZXhlYycsICRleGVjX2ZpZWxkcyk7DQorICAgICAgICAgICAgICAvLyBSZW1vdmUgZmlyc3QgbGluZQ0KKyAgICAgICAgICAgICAgcmV0dXJuIHByZWdfcmVwbGFjZSgnL14uK1xuLycsICcnLCAkc2NyaXB0KTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdzeW5jam9iX2RldGFpbHMnOg0KKyAgICAgICAgICAkc3luY2pvYmRldGFpbHMgPSBhcnJheSgpOw0KKyAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJF9kYXRhKSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9leHRyYSkgJiYgaW5fYXJyYXkoJ25vX2xvZycsICRfZXh0cmEpKSB7DQorICAgICAgICAgICAgJGZpZWxkX3F1ZXJ5ID0gJHBkby0+cXVlcnkoJ1NIT1cgRklFTERTIEZST00gYGltYXBzeW5jYCBXSEVSRSBGSUVMRCBOT1QgSU4gKCJyZXR1cm5lZF90ZXh0IiwgInBhc3N3b3JkMSIpJyk7DQorICAgICAgICAgICAgJGZpZWxkcyA9ICRmaWVsZF9xdWVyeS0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICAgd2hpbGUoJGZpZWxkID0gYXJyYXlfc2hpZnQoJGZpZWxkcykpIHsNCisgICAgICAgICAgICAgICRzaG93bl9maWVsZHNbXSA9ICRmaWVsZFsnRmllbGQnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgIiAuIGltcGxvZGUoJywnLCAkc2hvd25fZmllbGRzKSAuICIsDQorICAgICAgICAgICAgICBgYWN0aXZlYA0KKyAgICAgICAgICAgICAgICBGUk9NIGBpbWFwc3luY2AgV0hFUkUgaWQgPSA6aWQiKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKGlzc2V0KCRfZXh0cmEpICYmIGluX2FycmF5KCd3aXRoX3Bhc3N3b3JkJywgJF9leHRyYSkpIHsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqLA0KKyAgICAgICAgICAgICAgYGFjdGl2ZWANCisgICAgICAgICAgICAgICAgRlJPTSBgaW1hcHN5bmNgIFdIRVJFIGlkID0gOmlkIik7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJGZpZWxkX3F1ZXJ5ID0gJHBkby0+cXVlcnkoJ1NIT1cgRklFTERTIEZST00gYGltYXBzeW5jYCBXSEVSRSBGSUVMRCBOT1QgSU4gKCJwYXNzd29yZDEiKScpOw0KKyAgICAgICAgICAgICRmaWVsZHMgPSAkZmllbGRfcXVlcnktPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIHdoaWxlKCRmaWVsZCA9IGFycmF5X3NoaWZ0KCRmaWVsZHMpKSB7DQorICAgICAgICAgICAgICAkc2hvd25fZmllbGRzW10gPSAkZmllbGRbJ0ZpZWxkJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUICIgLiBpbXBsb2RlKCcsJywgJHNob3duX2ZpZWxkcykgLiAiLA0KKyAgICAgICAgICAgICAgYGFjdGl2ZWANCisgICAgICAgICAgICAgICAgRlJPTSBgaW1hcHN5bmNgIFdIRVJFIGlkID0gOmlkIik7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRzeW5jam9iZGV0YWlscyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgaWYgKCFlbXB0eSgkc3luY2pvYmRldGFpbHNbJ3JldHVybmVkX3RleHQnXSkpIHsNCisgICAgICAgICAgICAkc3luY2pvYmRldGFpbHNbJ2xvZyddID0gJHN5bmNqb2JkZXRhaWxzWydyZXR1cm5lZF90ZXh0J107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHN5bmNqb2JkZXRhaWxzWydsb2cnXSA9ICcnOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHVuc2V0KCRzeW5jam9iZGV0YWlsc1sncmV0dXJuZWRfdGV4dCddKTsNCisgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkc3luY2pvYmRldGFpbHNbJ3VzZXIyJ10pKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHJldHVybiAkc3luY2pvYmRldGFpbHM7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ3N5bmNqb2JzJzoNCisgICAgICAgICAgJHN5bmNqb2JkYXRhID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKGlzc2V0KCRfZGF0YSkgJiYgZmlsdGVyX3ZhcigkX2RhdGEsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9kYXRhID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCBGUk9NIGBpbWFwc3luY2AgV0hFUkUgYHVzZXIyYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICAgICAkc3luY2pvYmRhdGFbXSA9ICRyb3dbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRzeW5jam9iZGF0YTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnc3BhbV9zY29yZSc6DQorICAgICAgICAgICRjdXJsID0gY3VybF9pbml0KCk7DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VOSVhfU09DS0VUX1BBVEgsICcvdmFyL2xpYi9yc3BhbWQvcnNwYW1kLnNvY2snKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCJodHRwOi8vcnNwYW1kL2FjdGlvbnMiKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KKyAgICAgICAgICAkZGVmYXVsdF9hY3Rpb25zID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgICAgICAgaWYgKCFjdXJsX2Vycm5vKCRjdXJsKSkgew0KKyAgICAgICAgICAgICRkYXRhX2FycmF5ID0ganNvbl9kZWNvZGUoJGRlZmF1bHRfYWN0aW9ucywgdHJ1ZSk7DQorICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgZm9yZWFjaCAoJGRhdGFfYXJyYXkgYXMgJGRhdGEpIHsNCisgICAgICAgICAgICAgIGlmICgkZGF0YVsnYWN0aW9uJ10gPT0gJ3JlamVjdCcpIHsNCisgICAgICAgICAgICAgICAgJHJlamVjdCA9ICRkYXRhWyd2YWx1ZSddOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGVsc2VpZiAoJGRhdGFbJ2FjdGlvbiddID09ICdhZGQgaGVhZGVyJykgew0KKyAgICAgICAgICAgICAgICAkYWRkX2hlYWRlciA9ICRkYXRhWyd2YWx1ZSddOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRhZGRfaGVhZGVyKSB8fCBlbXB0eSgkcmVqZWN0KSkgew0KKyAgICAgICAgICAgICAgLy8gQXNzdW1lIGRlZmF1bHQsIHNldCB3YXJuaW5nDQorICAgICAgICAgICAgICAkZGVmYXVsdCA9ICI1LCAxNSI7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnQ291bGQgbm90IGRldGVybWluZSBzZXJ2ZXJzIGRlZmF1bHQgc3BhbSBzY29yZSwgYXNzdW1pbmcgZGVmYXVsdCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJGRlZmF1bHQgPSAkYWRkX2hlYWRlciAuICcsICcgLiAkcmVqZWN0Ow0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAvLyBBc3N1bWUgZGVmYXVsdCwgc2V0IHdhcm5pbmcNCisgICAgICAgICAgICAkZGVmYXVsdCA9ICI1LCAxNSI7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ0NvdWxkIG5vdCBkZXRlcm1pbmUgc2VydmVycyBkZWZhdWx0IHNwYW0gc2NvcmUsIGFzc3VtaW5nIGRlZmF1bHQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgICAgJHBvbGljeWRhdGEgPSBhcnJheSgpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhKSAmJiBmaWx0ZXJfdmFyKCRfZGF0YSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX2RhdGEgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdmFsdWVgIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvYmplY3RgID0gOnVzZXJuYW1lIEFORA0KKyAgICAgICAgICAgIChgb3B0aW9uYCA9ICdsb3dzcGFtbGV2ZWwnIE9SIGBvcHRpb25gID0gJ2hpZ2hzcGFtbGV2ZWwnKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKGVtcHR5KCRudW1fcmVzdWx0cykpIHsNCisgICAgICAgICAgICByZXR1cm4gJGRlZmF1bHQ7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHZhbHVlYCBGUk9NIGBmaWx0ZXJjb25mYCBXSEVSRSBgb3B0aW9uYCA9ICdoaWdoc3BhbWxldmVsJyBBTkQgYG9iamVjdGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgICAkaGlnaHNwYW1sZXZlbCA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdmFsdWVgIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvcHRpb25gID0gJ2xvd3NwYW1sZXZlbCcgQU5EIGBvYmplY3RgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICAgJGxvd3NwYW1sZXZlbCA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgICByZXR1cm4gJGxvd3NwYW1sZXZlbFsndmFsdWUnXS4nLCAnLiRoaWdoc3BhbWxldmVsWyd2YWx1ZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ3RpbWVfbGltaXRlZF9hbGlhc2VzJzoNCisgICAgICAgICAgJHRsYWRhdGEgPSBhcnJheSgpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhKSAmJiBmaWx0ZXJfdmFyKCRfZGF0YSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX2RhdGEgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWRkcmVzc2AsDQorICAgICAgICAgICAgYGdvdG9gLA0KKyAgICAgICAgICAgIGB2YWxpZGl0eWANCisgICAgICAgICAgICAgIEZST00gYHNwYW1hbGlhc2ANCisgICAgICAgICAgICAgICAgV0hFUkUgYGdvdG9gID0gOnVzZXJuYW1lDQorICAgICAgICAgICAgICAgICAgQU5EIGB2YWxpZGl0eWAgPj0gOnVuaXhub3ciKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhLCAnOnVuaXhub3cnID0+IHRpbWUoKSkpOw0KKyAgICAgICAgICAkdGxhZGF0YSA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgcmV0dXJuICR0bGFkYXRhOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdkZWxpbWl0ZXJfYWN0aW9uJzoNCisgICAgICAgICAgJHBvbGljeWRhdGEgPSBhcnJheSgpOw0KKyAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhKSAmJiBmaWx0ZXJfdmFyKCRfZGF0YSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX2RhdGEgPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgIGlmICgkcmVkaXMtPmhHZXQoJ1JDUFRfV0FOVFNfU1VCSkVDVF9UQUcnLCAkX2RhdGEpKSB7DQorICAgICAgICAgICAgICByZXR1cm4gInN1YmplY3QiOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlaWYgKCRyZWRpcy0+aEdldCgnUkNQVF9XQU5UU19TVUJGT0xERVJfVEFHJywgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuICJzdWJmb2xkZXIiOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgIHJldHVybiAibm9uZSI7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAncmVzb3VyY2VzJzoNCisgICAgICAgICAgJHJlc291cmNlcyA9IGFycmF5KCk7DQorICAgICAgICAgIGlmIChpc3NldCgkX2RhdGEpICYmICFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZWlmIChpc3NldCgkX2RhdGEpICYmIGhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgbWFpbGJveGAgV0hFUkUgYGtpbmRgIFJFR0VYUCAnbG9jYXRpb258dGhpbmd8Z3JvdXAnIEFORCBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkX2RhdGEsDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgICAgJHJlc291cmNlc1tdID0gJHJvd1sndXNlcm5hbWUnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBtYWlsYm94YCBXSEVSRSBga2luZGAgUkVHRVhQICdsb2NhdGlvbnx0aGluZ3xncm91cCcgQU5EIGBkb21haW5gIElOIChTRUxFQ1QgYGRvbWFpbmAgRlJPTSBgZG9tYWluX2FkbWluc2AgV0hFUkUgYGFjdGl2ZWAgPSAnMScgQU5EIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUpIE9SICdhZG1pbicgPSA6cm9sZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sDQorICAgICAgICAgICAgICAnOnJvbGUnID0+ICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgICAgJHJlc291cmNlc1tdID0gJHJvd1sndXNlcm5hbWUnXTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRyZXNvdXJjZXM7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2FsaWFzX2RvbWFpbnMnOg0KKyAgICAgICAgICAkYWxpYXNkb21haW5zID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKGlzc2V0KCRfZGF0YSkgJiYgIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKGlzc2V0KCRfZGF0YSkgJiYgaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGEpKSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGFsaWFzX2RvbWFpbmAgRlJPTSBgYWxpYXNfZG9tYWluYCBXSEVSRSBgdGFyZ2V0X2RvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmRvbWFpbicgPT4gJF9kYXRhLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICAgICAgICRhbGlhc2RvbWFpbnNbXSA9ICRyb3dbJ2FsaWFzX2RvbWFpbiddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWxpYXNfZG9tYWluYCBGUk9NIGBhbGlhc19kb21haW5gIFdIRVJFIGB0YXJnZXRfZG9tYWluYCBJTiAoU0VMRUNUIGBkb21haW5gIEZST00gYGRvbWFpbl9hZG1pbnNgIFdIRVJFIGBhY3RpdmVgID0gJzEnIEFORCBgdXNlcm5hbWVgID0gOnVzZXJuYW1lKSBPUiAnYWRtaW4nID0gOnJvbGUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLA0KKyAgICAgICAgICAgICAgJzpyb2xlJyA9PiAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICAgICAgICRhbGlhc2RvbWFpbnNbXSA9ICRyb3dbJ2FsaWFzX2RvbWFpbiddOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gJGFsaWFzZG9tYWluczsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnYWxpYXNlcyc6DQorICAgICAgICAgICRhbGlhc2VzID0gYXJyYXkoKTsNCisgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCBGUk9NIGBhbGlhc2AgV0hFUkUgYGFkZHJlc3NgICE9IGBnb3RvYCBBTkQgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkX2RhdGEsDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgICRhbGlhc2VzW10gPSAkcm93WydpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHJldHVybiAkYWxpYXNlczsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnYWxpYXNfZGV0YWlscyc6DQorICAgICAgICAgICRhbGlhc2RhdGEgPSBhcnJheSgpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVA0KKyAgICAgICAgICAgIGBpZGAsDQorICAgICAgICAgICAgYGRvbWFpbmAsDQorICAgICAgICAgICAgYGdvdG9gLA0KKyAgICAgICAgICAgIGBhZGRyZXNzYCwNCisgICAgICAgICAgICBgcHVibGljX2NvbW1lbnRgLA0KKyAgICAgICAgICAgIGBwcml2YXRlX2NvbW1lbnRgLA0KKyAgICAgICAgICAgIGBhY3RpdmVgLA0KKyAgICAgICAgICAgIGBzb2dvX3Zpc2libGVgLA0KKyAgICAgICAgICAgIGBjcmVhdGVkYCwNCisgICAgICAgICAgICBgbW9kaWZpZWRgDQorICAgICAgICAgICAgICBGUk9NIGBhbGlhc2ANCisgICAgICAgICAgICAgICAgICBXSEVSRSAoYGlkYCA9IDppZCBPUiBgYWRkcmVzc2AgPSA6YWRkcmVzcykgQU5EIGBhZGRyZXNzYCAhPSBgZ290b2AiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmlkJyA9PiAkX2RhdGEsDQorICAgICAgICAgICAgICAnOmFkZHJlc3MnID0+ICRfZGF0YSwNCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGB0YXJnZXRfZG9tYWluYCBGUk9NIGBhbGlhc19kb21haW5gIFdIRVJFIGBhbGlhc19kb21haW5gID0gOmRvbWFpbiIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOmRvbWFpbicgPT4gJHJvd1snZG9tYWluJ10sDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkcm93X2FsaWFzX2RvbWFpbiA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgaWYgKGlzc2V0KCRyb3dfYWxpYXNfZG9tYWluWyd0YXJnZXRfZG9tYWluJ10pICYmICFlbXB0eSgkcm93X2FsaWFzX2RvbWFpblsndGFyZ2V0X2RvbWFpbiddKSkgew0KKyAgICAgICAgICAgICRhbGlhc2RhdGFbJ2luX3ByaW1hcnlfZG9tYWluJ10gPSAkcm93X2FsaWFzX2RvbWFpblsndGFyZ2V0X2RvbWFpbiddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRhbGlhc2RhdGFbJ2luX3ByaW1hcnlfZG9tYWluJ10gPSAiIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkYWxpYXNkYXRhWydpZCddID0gJHJvd1snaWQnXTsNCisgICAgICAgICAgJGFsaWFzZGF0YVsnZG9tYWluJ10gPSAkcm93Wydkb21haW4nXTsNCisgICAgICAgICAgJGFsaWFzZGF0YVsncHVibGljX2NvbW1lbnQnXSA9ICRyb3dbJ3B1YmxpY19jb21tZW50J107DQorICAgICAgICAgICRhbGlhc2RhdGFbJ3ByaXZhdGVfY29tbWVudCddID0gJHJvd1sncHJpdmF0ZV9jb21tZW50J107DQorICAgICAgICAgICRhbGlhc2RhdGFbJ2RvbWFpbiddID0gJHJvd1snZG9tYWluJ107DQorICAgICAgICAgICRhbGlhc2RhdGFbJ2dvdG8nXSA9ICRyb3dbJ2dvdG8nXTsNCisgICAgICAgICAgJGFsaWFzZGF0YVsnYWRkcmVzcyddID0gJHJvd1snYWRkcmVzcyddOw0KKyAgICAgICAgICAoIWZpbHRlcl92YXIoJGFsaWFzZGF0YVsnYWRkcmVzcyddLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpKSA/ICRhbGlhc2RhdGFbJ2lzX2NhdGNoX2FsbCddID0gMSA6ICRhbGlhc2RhdGFbJ2lzX2NhdGNoX2FsbCddID0gMDsNCisgICAgICAgICAgJGFsaWFzZGF0YVsnYWN0aXZlJ10gPSAkcm93WydhY3RpdmUnXTsNCisgICAgICAgICAgJGFsaWFzZGF0YVsnYWN0aXZlX2ludCddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgICAgICRhbGlhc2RhdGFbJ3NvZ29fdmlzaWJsZSddID0gJHJvd1snc29nb192aXNpYmxlJ107DQorICAgICAgICAgICRhbGlhc2RhdGFbJ3NvZ29fdmlzaWJsZV9pbnQnXSA9ICRyb3dbJ3NvZ29fdmlzaWJsZSddOw0KKyAgICAgICAgICAkYWxpYXNkYXRhWydjcmVhdGVkJ10gPSAkcm93WydjcmVhdGVkJ107DQorICAgICAgICAgICRhbGlhc2RhdGFbJ21vZGlmaWVkJ10gPSAkcm93Wydtb2RpZmllZCddOw0KKyAgICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGFsaWFzZGF0YVsnZG9tYWluJ10pKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHJldHVybiAkYWxpYXNkYXRhOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdhbGlhc19kb21haW5fZGV0YWlscyc6DQorICAgICAgICAgICRhbGlhc2RvbWFpbmRhdGEgPSBhcnJheSgpOw0KKyAgICAgICAgICAkcmwgPSByYXRlbGltaXQoJ2dldCcsICdkb21haW4nLCAkX2RhdGEpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVA0KKyAgICAgICAgICAgIGBhbGlhc19kb21haW5gLA0KKyAgICAgICAgICAgIGB0YXJnZXRfZG9tYWluYCwNCisgICAgICAgICAgICBgYWN0aXZlYCwNCisgICAgICAgICAgICBgY3JlYXRlZGAsDQorICAgICAgICAgICAgYG1vZGlmaWVkYA0KKyAgICAgICAgICAgICAgRlJPTSBgYWxpYXNfZG9tYWluYA0KKyAgICAgICAgICAgICAgICAgIFdIRVJFIGBhbGlhc19kb21haW5gID0gOmFsaWFzZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6YWxpYXNkb21haW4nID0+ICRfZGF0YSwNCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBiYWNrdXBteGAgRlJPTSBgZG9tYWluYCBXSEVSRSBgZG9tYWluYCA9IDp0YXJnZXRfZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6dGFyZ2V0X2RvbWFpbicgPT4gJHJvd1sndGFyZ2V0X2RvbWFpbiddDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkcm93X3BhcmVudCA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgJGFsaWFzZG9tYWluZGF0YVsnYWxpYXNfZG9tYWluJ10gPSAkcm93WydhbGlhc19kb21haW4nXTsNCisgICAgICAgICAgJGFsaWFzZG9tYWluZGF0YVsncGFyZW50X2lzX2JhY2t1cG14J10gPSAkcm93X3BhcmVudFsnYmFja3VwbXgnXTsNCisgICAgICAgICAgJGFsaWFzZG9tYWluZGF0YVsndGFyZ2V0X2RvbWFpbiddID0gJHJvd1sndGFyZ2V0X2RvbWFpbiddOw0KKyAgICAgICAgICAkYWxpYXNkb21haW5kYXRhWydhY3RpdmUnXSA9ICRyb3dbJ2FjdGl2ZSddOw0KKyAgICAgICAgICAkYWxpYXNkb21haW5kYXRhWydhY3RpdmVfaW50J10gPSAkcm93WydhY3RpdmUnXTsNCisgICAgICAgICAgJGFsaWFzZG9tYWluZGF0YVsncmwnXSA9ICRybDsNCisgICAgICAgICAgJGFsaWFzZG9tYWluZGF0YVsnY3JlYXRlZCddID0gJHJvd1snY3JlYXRlZCddOw0KKyAgICAgICAgICAkYWxpYXNkb21haW5kYXRhWydtb2RpZmllZCddID0gJHJvd1snbW9kaWZpZWQnXTsNCisgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRhbGlhc2RvbWFpbmRhdGFbJ3RhcmdldF9kb21haW4nXSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRhbGlhc2RvbWFpbmRhdGE7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2RvbWFpbnMnOg0KKyAgICAgICAgICAkZG9tYWlucyA9IGFycmF5KCk7DQorICAgICAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiZG9tYWluYWRtaW4iKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBkb21haW5gIEZST00gYGRvbWFpbmANCisgICAgICAgICAgICBXSEVSRSAoYGRvbWFpbmAgSU4gKA0KKyAgICAgICAgICAgICAgU0VMRUNUIGBkb21haW5gIGZyb20gYGRvbWFpbl9hZG1pbnNgDQorICAgICAgICAgICAgICAgIFdIRVJFIChgYWN0aXZlYD0nMScgQU5EIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUpKQ0KKyAgICAgICAgICAgICAgKQ0KKyAgICAgICAgICAgICAgT1IgJ2FkbWluJz0gOnJvbGUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sDQorICAgICAgICAgICAgJzpyb2xlJyA9PiAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLA0KKyAgICAgICAgICApKTsNCisgICAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIHdoaWxlKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICAgICAkZG9tYWluc1tdID0gJHJvd1snZG9tYWluJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRkb21haW5zOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdkb21haW5fZGV0YWlscyc6DQorICAgICAgICAgICRkb21haW5kYXRhID0gYXJyYXkoKTsNCisgICAgICAgICAgJF9kYXRhID0gaWRuX3RvX2FzY2lpKHN0cnRvbG93ZXIodHJpbSgkX2RhdGEpKSwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpOw0KKyAgICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdGFyZ2V0X2RvbWFpbmAgRlJPTSBgYWxpYXNfZG9tYWluYCBXSEVSRSBgYWxpYXNfZG9tYWluYCA9ICA6ZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkX2RhdGENCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIGlmICghZW1wdHkoJHJvdykpIHsNCisgICAgICAgICAgICAkX2RhdGEgPSAkcm93Wyd0YXJnZXRfZG9tYWluJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QNCisgICAgICAgICAgICAgIGBkb21haW5gLA0KKyAgICAgICAgICAgICAgYGRlc2NyaXB0aW9uYCwNCisgICAgICAgICAgICAgIGBhbGlhc2VzYCwNCisgICAgICAgICAgICAgIGBtYWlsYm94ZXNgLA0KKyAgICAgICAgICAgICAgYGRlZnF1b3RhYCwNCisgICAgICAgICAgICAgIGBtYXhxdW90YWAsDQorICAgICAgICAgICAgICBgcXVvdGFgLA0KKyAgICAgICAgICAgICAgYHJlbGF5aG9zdGAsDQorICAgICAgICAgICAgICBgcmVsYXlfYWxsX3JlY2lwaWVudHNgLA0KKyAgICAgICAgICAgICAgYHJlbGF5X3Vua25vd25fb25seWAsDQorICAgICAgICAgICAgICBgYmFja3VwbXhgLA0KKyAgICAgICAgICAgICAgYGdhbGAsDQorICAgICAgICAgICAgICBgYWN0aXZlYA0KKyAgICAgICAgICAgICAgICBGUk9NIGBkb21haW5gIFdIRVJFIGBkb21haW5gPSA6ZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkX2RhdGENCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIGlmIChlbXB0eSgkcm93KSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBDT1VOVCgqKSBBUyBgY291bnRgLA0KKyAgICAgICAgICAgIENPQUxFU0NFKFNVTShgcXVvdGFgKSwgMCkgQVMgYGluX3VzZWANCisgICAgICAgICAgICAgIEZST00gYG1haWxib3hgDQorICAgICAgICAgICAgICAgIFdIRVJFIGBraW5kYCBOT1QgUkVHRVhQICdsb2NhdGlvbnx0aGluZ3xncm91cCcNCisgICAgICAgICAgICAgICAgICBBTkQgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6ZG9tYWluJyA9PiAkcm93Wydkb21haW4nXSkpOw0KKyAgICAgICAgICAkTWFpbGJveERhdGFEb21haW4gPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIFNVTShieXRlcykgQVMgYGJ5dGVzX3RvdGFsYCwgU1VNKG1lc3NhZ2VzKSBBUyBgbXNnc190b3RhbGAgRlJPTSBgcXVvdGEyYA0KKyAgICAgICAgICAgIFdIRVJFIGB1c2VybmFtZWAgSU4gKA0KKyAgICAgICAgICAgICAgU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgbWFpbGJveGANCisgICAgICAgICAgICAgICAgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluDQorICAgICAgICAgICAgKTsiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpkb21haW4nID0+ICRyb3dbJ2RvbWFpbiddKSk7DQorICAgICAgICAgICRTdW1RdW90YUluVXNlID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAkcmwgPSByYXRlbGltaXQoJ2dldCcsICdkb21haW4nLCAkX2RhdGEpOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsnbWF4X25ld19tYWlsYm94X3F1b3RhJ10JPSAoJHJvd1sncXVvdGEnXSAqIDEwNDg1NzYpIC0gJE1haWxib3hEYXRhRG9tYWluWydpbl91c2UnXTsNCisgICAgICAgICAgaWYgKCRkb21haW5kYXRhWydtYXhfbmV3X21haWxib3hfcXVvdGEnXSA+ICgkcm93WydtYXhxdW90YSddICogMTA0ODU3NikpIHsNCisgICAgICAgICAgICAkZG9tYWluZGF0YVsnbWF4X25ld19tYWlsYm94X3F1b3RhJ10gPSAoJHJvd1snbWF4cXVvdGEnXSAqIDEwNDg1NzYpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRkb21haW5kYXRhWydkZWZfbmV3X21haWxib3hfcXVvdGEnXSA9ICRkb21haW5kYXRhWydtYXhfbmV3X21haWxib3hfcXVvdGEnXTsNCisgICAgICAgICAgaWYgKCRkb21haW5kYXRhWydkZWZfbmV3X21haWxib3hfcXVvdGEnXSA+ICgkcm93WydkZWZxdW90YSddICogMTA0ODU3NikpIHsNCisgICAgICAgICAgICAkZG9tYWluZGF0YVsnZGVmX25ld19tYWlsYm94X3F1b3RhJ10gPSAoJHJvd1snZGVmcXVvdGEnXSAqIDEwNDg1NzYpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRkb21haW5kYXRhWydxdW90YV91c2VkX2luX2RvbWFpbiddID0gJE1haWxib3hEYXRhRG9tYWluWydpbl91c2UnXTsNCisgICAgICAgICAgaWYgKCFlbXB0eSgkU3VtUXVvdGFJblVzZVsnYnl0ZXNfdG90YWwnXSkpIHsNCisgICAgICAgICAgICAkZG9tYWluZGF0YVsnYnl0ZXNfdG90YWwnXSA9ICRTdW1RdW90YUluVXNlWydieXRlc190b3RhbCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRkb21haW5kYXRhWydieXRlc190b3RhbCddID0gMDsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWVtcHR5KCRTdW1RdW90YUluVXNlWydtc2dzX3RvdGFsJ10pKSB7DQorICAgICAgICAgICAgJGRvbWFpbmRhdGFbJ21zZ3NfdG90YWwnXSA9ICRTdW1RdW90YUluVXNlWydtc2dzX3RvdGFsJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJGRvbWFpbmRhdGFbJ21zZ3NfdG90YWwnXSA9IDA7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ21ib3hlc19pbl9kb21haW4nXSA9ICRNYWlsYm94RGF0YURvbWFpblsnY291bnQnXTsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ21ib3hlc19sZWZ0J10gPSAkcm93WydtYWlsYm94ZXMnXQktICRNYWlsYm94RGF0YURvbWFpblsnY291bnQnXTsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ2RvbWFpbl9uYW1lJ10gPSAkcm93Wydkb21haW4nXTsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ2Rlc2NyaXB0aW9uJ10gPSAkcm93WydkZXNjcmlwdGlvbiddOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsnbWF4X251bV9hbGlhc2VzX2Zvcl9kb21haW4nXSA9ICRyb3dbJ2FsaWFzZXMnXTsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ21heF9udW1fbWJveGVzX2Zvcl9kb21haW4nXSA9ICRyb3dbJ21haWxib3hlcyddOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsnZGVmX3F1b3RhX2Zvcl9tYm94J10gPSAkcm93WydkZWZxdW90YSddICogMTA0ODU3NjsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ21heF9xdW90YV9mb3JfbWJveCddID0gJHJvd1snbWF4cXVvdGEnXSAqIDEwNDg1NzY7DQorICAgICAgICAgICRkb21haW5kYXRhWydtYXhfcXVvdGFfZm9yX2RvbWFpbiddID0gJHJvd1sncXVvdGEnXSAqIDEwNDg1NzY7DQorICAgICAgICAgICRkb21haW5kYXRhWydyZWxheWhvc3QnXSA9ICRyb3dbJ3JlbGF5aG9zdCddOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsnYmFja3VwbXgnXSA9ICRyb3dbJ2JhY2t1cG14J107DQorICAgICAgICAgICRkb21haW5kYXRhWydiYWNrdXBteF9pbnQnXSA9ICRyb3dbJ2JhY2t1cG14J107DQorICAgICAgICAgICRkb21haW5kYXRhWydnYWwnXSA9ICRyb3dbJ2dhbCddOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsnZ2FsX2ludCddID0gJHJvd1snZ2FsJ107DQorICAgICAgICAgICRkb21haW5kYXRhWydybCddID0gJHJsOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsnYWN0aXZlJ10gPSAkcm93WydhY3RpdmUnXTsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ2FjdGl2ZV9pbnQnXSA9ICRyb3dbJ2FjdGl2ZSddOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsncmVsYXlfYWxsX3JlY2lwaWVudHMnXSA9ICRyb3dbJ3JlbGF5X2FsbF9yZWNpcGllbnRzJ107DQorICAgICAgICAgICRkb21haW5kYXRhWydyZWxheV9hbGxfcmVjaXBpZW50c19pbnQnXSA9ICRyb3dbJ3JlbGF5X2FsbF9yZWNpcGllbnRzJ107DQorICAgICAgICAgICRkb21haW5kYXRhWydyZWxheV91bmtub3duX29ubHknXSA9ICRyb3dbJ3JlbGF5X3Vua25vd25fb25seSddOw0KKyAgICAgICAgICAkZG9tYWluZGF0YVsncmVsYXlfdW5rbm93bl9vbmx5X2ludCddID0gJHJvd1sncmVsYXlfdW5rbm93bl9vbmx5J107DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIENPVU5UKCopIEFTIGBhbGlhc19jb3VudGAgRlJPTSBgYWxpYXNgDQorICAgICAgICAgICAgV0hFUkUgKGBkb21haW5gPSA6ZG9tYWluIE9SIGBkb21haW5gIElOIChTRUxFQ1QgYGFsaWFzX2RvbWFpbmAgRlJPTSBgYWxpYXNfZG9tYWluYCBXSEVSRSBgdGFyZ2V0X2RvbWFpbmAgPSA6ZG9tYWluMikpDQorICAgICAgICAgICAgICBBTkQgYGFkZHJlc3NgIE5PVCBJTiAoDQorICAgICAgICAgICAgICAgIFNFTEVDVCBgdXNlcm5hbWVgIEZST00gYG1haWxib3hgDQorICAgICAgICAgICAgICApIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkX2RhdGEsDQorICAgICAgICAgICAgJzpkb21haW4yJyA9PiAkX2RhdGENCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRBbGlhc0RhdGFEb21haW4gPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIChpc3NldCgkQWxpYXNEYXRhRG9tYWluWydhbGlhc19jb3VudCddKSkgPyAkZG9tYWluZGF0YVsnYWxpYXNlc19pbl9kb21haW4nXSA9ICRBbGlhc0RhdGFEb21haW5bJ2FsaWFzX2NvdW50J10gOiAkZG9tYWluZGF0YVsnYWxpYXNlc19pbl9kb21haW4nXSA9ICIwIjsNCisgICAgICAgICAgJGRvbWFpbmRhdGFbJ2FsaWFzZXNfbGVmdCddID0gJHJvd1snYWxpYXNlcyddCS0gJEFsaWFzRGF0YURvbWFpblsnYWxpYXNfY291bnQnXTsNCisgICAgICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gImFkbWluIikNCisgICAgICAgICAgew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgR1JPVVBfQ09OQ0FUKGB1c2VybmFtZWAgU0VQQVJBVE9SICcsICcpIEFTIGRvbWFpbl9hZG1pbnMgRlJPTSBgZG9tYWluX2FkbWluc2AgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzpkb21haW4nID0+ICRfZGF0YQ0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgICAkZG9tYWluX2FkbWlucyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgICAgIChpc3NldCgkZG9tYWluX2FkbWluc1snZG9tYWluX2FkbWlucyddKSkgPyAkZG9tYWluZGF0YVsnZG9tYWluX2FkbWlucyddID0gJGRvbWFpbl9hZG1pbnNbJ2RvbWFpbl9hZG1pbnMnXSA6ICRkb21haW5kYXRhWydkb21haW5fYWRtaW5zJ10gPSAiLSI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgcmV0dXJuICRkb21haW5kYXRhOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdtYWlsYm94X2RldGFpbHMnOg0KKyAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJG1haWxib3hkYXRhID0gYXJyYXkoKTsNCisgICAgICAgICAgJHJsID0gcmF0ZWxpbWl0KCdnZXQnLCAnbWFpbGJveCcsICRfZGF0YSk7DQorICAgICAgICAgICRsYXN0X2ltYXBfbG9naW4gPSAkcmVkaXMtPkdldCgnbGFzdC1sb2dpbi9pbWFwLycgLiAkX2RhdGEpOw0KKyAgICAgICAgICAkbGFzdF9zbXRwX2xvZ2luID0gJHJlZGlzLT5HZXQoJ2xhc3QtbG9naW4vc210cC8nIC4gJF9kYXRhKTsNCisgICAgICAgICAgJGxhc3RfcG9wM19sb2dpbiA9ICRyZWRpcy0+R2V0KCdsYXN0LWxvZ2luL3BvcDMvJyAuICRfZGF0YSk7DQorICAgICAgICAgIGlmICgkbGFzdF9pbWFwX2xvZ2luID09PSBmYWxzZSB8fCAkR0xPQkFMU1snU0hPV19MQVNUX0xPR0lOJ10gPT09IGZhbHNlKSB7DQorICAgICAgICAgICAgJGxhc3RfaW1hcF9sb2dpbiA9ICcwJzsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJGxhc3Rfc210cF9sb2dpbiA9PT0gZmFsc2UgfHwgJEdMT0JBTFNbJ1NIT1dfTEFTVF9MT0dJTiddID09PSBmYWxzZSkgew0KKyAgICAgICAgICAgICRsYXN0X3NtdHBfbG9naW4gPSAnMCc7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRsYXN0X3BvcDNfbG9naW4gPT09IGZhbHNlIHx8ICRHTE9CQUxTWydTSE9XX0xBU1RfTE9HSU4nXSA9PT0gZmFsc2UpIHsNCisgICAgICAgICAgICAkbGFzdF9wb3AzX2xvZ2luID0gJzAnOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcveXx5ZXMvaScsIGdldGVudignTUFTVEVSJykpKSB7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QNCisgICAgICAgICAgICAgIGBkb21haW5gLmBiYWNrdXBteGAsDQorICAgICAgICAgICAgICBgbWFpbGJveGAuYHVzZXJuYW1lYCwNCisgICAgICAgICAgICAgIGBtYWlsYm94YC5gbmFtZWAsDQorICAgICAgICAgICAgICBgbWFpbGJveGAuYGFjdGl2ZWAsDQorICAgICAgICAgICAgICBgbWFpbGJveGAuYGRvbWFpbmAsDQorICAgICAgICAgICAgICBgbWFpbGJveGAuYGxvY2FsX3BhcnRgLA0KKyAgICAgICAgICAgICAgYG1haWxib3hgLmBxdW90YWAsDQorICAgICAgICAgICAgICBgcXVvdGEyYC5gYnl0ZXNgLA0KKyAgICAgICAgICAgICAgYGF0dHJpYnV0ZXNgLA0KKyAgICAgICAgICAgICAgYHF1b3RhMmAuYG1lc3NhZ2VzYA0KKyAgICAgICAgICAgICAgICBGUk9NIGBtYWlsYm94YCwgYHF1b3RhMmAsIGBkb21haW5gDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYG1haWxib3hgLmBraW5kYCBOT1QgUkVHRVhQICdsb2NhdGlvbnx0aGluZ3xncm91cCcgQU5EIGBtYWlsYm94YC5gdXNlcm5hbWVgID0gYHF1b3RhMmAuYHVzZXJuYW1lYCBBTkQgYGRvbWFpbmAuYGRvbWFpbmAgPSBgbWFpbGJveGAuYGRvbWFpbmAgQU5EIGBtYWlsYm94YC5gdXNlcm5hbWVgID0gOm1haWxib3giKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVA0KKyAgICAgICAgICAgICAgYGRvbWFpbmAuYGJhY2t1cG14YCwNCisgICAgICAgICAgICAgIGBtYWlsYm94YC5gdXNlcm5hbWVgLA0KKyAgICAgICAgICAgICAgYG1haWxib3hgLmBuYW1lYCwNCisgICAgICAgICAgICAgIGBtYWlsYm94YC5gYWN0aXZlYCwNCisgICAgICAgICAgICAgIGBtYWlsYm94YC5gZG9tYWluYCwNCisgICAgICAgICAgICAgIGBtYWlsYm94YC5gbG9jYWxfcGFydGAsDQorICAgICAgICAgICAgICBgbWFpbGJveGAuYHF1b3RhYCwNCisgICAgICAgICAgICAgIGBxdW90YTJyZXBsaWNhYC5gYnl0ZXNgLA0KKyAgICAgICAgICAgICAgYGF0dHJpYnV0ZXNgLA0KKyAgICAgICAgICAgICAgYHF1b3RhMnJlcGxpY2FgLmBtZXNzYWdlc2ANCisgICAgICAgICAgICAgICAgRlJPTSBgbWFpbGJveGAsIGBxdW90YTJyZXBsaWNhYCwgYGRvbWFpbmANCisgICAgICAgICAgICAgICAgICBXSEVSRSBgbWFpbGJveGAuYGtpbmRgIE5PVCBSRUdFWFAgJ2xvY2F0aW9ufHRoaW5nfGdyb3VwJyBBTkQgYG1haWxib3hgLmB1c2VybmFtZWAgPSBgcXVvdGEycmVwbGljYWAuYHVzZXJuYW1lYCBBTkQgYGRvbWFpbmAuYGRvbWFpbmAgPSBgbWFpbGJveGAuYGRvbWFpbmAgQU5EIGBtYWlsYm94YC5gdXNlcm5hbWVgID0gOm1haWxib3giKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOm1haWxib3gnID0+ICRfZGF0YSwNCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBtYXhxdW90YWAsIGBxdW90YWAgRlJPTSAgYGRvbWFpbmAgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6ZG9tYWluJyA9PiAkcm93Wydkb21haW4nXSkpOw0KKyAgICAgICAgICAkRG9tYWluUXVvdGEgID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBJRk5VTEwoQ09VTlQoYGFjdGl2ZWApLCAwKSBBUyBgcHVzaG92ZXJfYWN0aXZlYCBGUk9NIGBwdXNob3ZlcmAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSBBTkQgYGFjdGl2ZWAgPSAxIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dXNlcm5hbWUnID0+ICRfZGF0YSkpOw0KKyAgICAgICAgICAkUHVzaG92ZXJBY3RpdmUgID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBDT0FMRVNDRShTVU0oYHF1b3RhYCksIDApIGFzIGBpbl91c2VgIEZST00gYG1haWxib3hgIFdIRVJFIGBraW5kYCBOT1QgUkVHRVhQICdsb2NhdGlvbnx0aGluZ3xncm91cCcgQU5EIGBkb21haW5gID0gOmRvbWFpbiBBTkQgYHVzZXJuYW1lYCAhPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpkb21haW4nID0+ICRyb3dbJ2RvbWFpbiddLCAnOnVzZXJuYW1lJyA9PiAkX2RhdGEpKTsNCisgICAgICAgICAgJE1haWxib3hVc2FnZQk9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgSUZOVUxMKENPVU5UKGBhZGRyZXNzYCksIDApIEFTIGBzYV9jb3VudGAgRlJPTSBgc3BhbWFsaWFzYCBXSEVSRSBgZ290b2AgPSA6YWRkcmVzcyBBTkQgYHZhbGlkaXR5YCA+PSA6dW5peG5vdyIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmFkZHJlc3MnID0+ICRfZGF0YSwgJzp1bml4bm93JyA9PiB0aW1lKCkpKTsNCisgICAgICAgICAgJFNwYW1hbGlhc1VzYWdlCT0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAkbWFpbGJveGRhdGFbJ21heF9uZXdfcXVvdGEnXSA9ICgkRG9tYWluUXVvdGFbJ3F1b3RhJ10gKiAxMDQ4NTc2KSAtICRNYWlsYm94VXNhZ2VbJ2luX3VzZSddOw0KKyAgICAgICAgICBpZiAoJG1haWxib3hkYXRhWydtYXhfbmV3X3F1b3RhJ10gPiAoJERvbWFpblF1b3RhWydtYXhxdW90YSddICogMTA0ODU3NikpIHsNCisgICAgICAgICAgICAkbWFpbGJveGRhdGFbJ21heF9uZXdfcXVvdGEnXSA9ICgkRG9tYWluUXVvdGFbJ21heHF1b3RhJ10gKiAxMDQ4NTc2KTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkbWFpbGJveGRhdGFbJ3VzZXJuYW1lJ10gPSAkcm93Wyd1c2VybmFtZSddOw0KKyAgICAgICAgICBpZiAoIWVtcHR5KCRybCkpIHsNCisgICAgICAgICAgICAkbWFpbGJveGRhdGFbJ3JsJ10gPSAkcmw7DQorICAgICAgICAgICAgJG1haWxib3hkYXRhWydybF9zY29wZSddID0gJ21haWxib3gnOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRtYWlsYm94ZGF0YVsncmwnXSA9IHJhdGVsaW1pdCgnZ2V0JywgJ2RvbWFpbicsICRyb3dbJ2RvbWFpbiddKTsNCisgICAgICAgICAgICAkbWFpbGJveGRhdGFbJ3JsX3Njb3BlJ10gPSAnZG9tYWluJzsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkbWFpbGJveGRhdGFbJ2lzX3JlbGF5ZWQnXSA9ICRyb3dbJ2JhY2t1cG14J107DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsnbmFtZSddID0gJHJvd1snbmFtZSddOw0KKyAgICAgICAgICAkbWFpbGJveGRhdGFbJ2xhc3RfaW1hcF9sb2dpbiddID0gJGxhc3RfaW1hcF9sb2dpbjsNCisgICAgICAgICAgJG1haWxib3hkYXRhWydsYXN0X3NtdHBfbG9naW4nXSA9ICRsYXN0X3NtdHBfbG9naW47DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsnbGFzdF9wb3AzX2xvZ2luJ10gPSAkbGFzdF9wb3AzX2xvZ2luOw0KKyAgICAgICAgICAkbWFpbGJveGRhdGFbJ2FjdGl2ZSddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsnYWN0aXZlX2ludCddID0gJHJvd1snYWN0aXZlJ107DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsnZG9tYWluJ10gPSAkcm93Wydkb21haW4nXTsNCisgICAgICAgICAgJG1haWxib3hkYXRhWydsb2NhbF9wYXJ0J10gPSAkcm93Wydsb2NhbF9wYXJ0J107DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsncXVvdGEnXSA9ICRyb3dbJ3F1b3RhJ107DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsnYXR0cmlidXRlcyddID0ganNvbl9kZWNvZGUoJHJvd1snYXR0cmlidXRlcyddLCB0cnVlKTsNCisgICAgICAgICAgJG1haWxib3hkYXRhWydxdW90YV91c2VkJ10gPSBpbnR2YWwoJHJvd1snYnl0ZXMnXSk7DQorICAgICAgICAgICRtYWlsYm94ZGF0YVsncGVyY2VudF9pbl91c2UnXSA9ICgkcm93WydxdW90YSddID09IDApID8gJy0gJyA6IHJvdW5kKChpbnR2YWwoJHJvd1snYnl0ZXMnXSkgLyBpbnR2YWwoJHJvd1sncXVvdGEnXSkpICogMTAwKTsNCisgICAgICAgICAgJG1haWxib3hkYXRhWydtZXNzYWdlcyddID0gJHJvd1snbWVzc2FnZXMnXTsNCisgICAgICAgICAgJG1haWxib3hkYXRhWydzcGFtX2FsaWFzZXMnXSA9ICRTcGFtYWxpYXNVc2FnZVsnc2FfY291bnQnXTsNCisgICAgICAgICAgJG1haWxib3hkYXRhWydwdXNob3Zlcl9hY3RpdmUnXSA9ICgkUHVzaG92ZXJBY3RpdmVbJ3B1c2hvdmVyX2FjdGl2ZSddID09IDEpID8gMSA6IDA7DQorICAgICAgICAgIGlmICgkbWFpbGJveGRhdGFbJ3BlcmNlbnRfaW5fdXNlJ10gPT09ICctICcpIHsNCisgICAgICAgICAgICAkbWFpbGJveGRhdGFbJ3BlcmNlbnRfY2xhc3MnXSA9ICJpbmZvIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKCRtYWlsYm94ZGF0YVsncGVyY2VudF9pbl91c2UnXSA+PSA5MCkgew0KKyAgICAgICAgICAgICRtYWlsYm94ZGF0YVsncGVyY2VudF9jbGFzcyddID0gImRhbmdlciI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZWlmICgkbWFpbGJveGRhdGFbJ3BlcmNlbnRfaW5fdXNlJ10gPj0gNzUpIHsNCisgICAgICAgICAgICAkbWFpbGJveGRhdGFbJ3BlcmNlbnRfY2xhc3MnXSA9ICJ3YXJuaW5nIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkbWFpbGJveGRhdGFbJ3BlcmNlbnRfY2xhc3MnXSA9ICJzdWNjZXNzIjsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gJG1haWxib3hkYXRhOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdyZXNvdXJjZV9kZXRhaWxzJzoNCisgICAgICAgICAgJHJlc291cmNlZGF0YSA9IGFycmF5KCk7DQorICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVA0KKyAgICAgICAgICAgICAgYHVzZXJuYW1lYCwNCisgICAgICAgICAgICAgIGBuYW1lYCwNCisgICAgICAgICAgICAgIGBraW5kYCwNCisgICAgICAgICAgICAgIGBtdWx0aXBsZV9ib29raW5nc2AsDQorICAgICAgICAgICAgICBgbG9jYWxfcGFydGAsDQorICAgICAgICAgICAgICBgYWN0aXZlYCwNCisgICAgICAgICAgICAgIGBkb21haW5gDQorICAgICAgICAgICAgICAgIEZST00gYG1haWxib3hgIFdIRVJFIGBraW5kYCBSRUdFWFAgJ2xvY2F0aW9ufHRoaW5nfGdyb3VwJyBBTkQgYHVzZXJuYW1lYCA9IDpyZXNvdXJjZSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOnJlc291cmNlJyA9PiAkX2RhdGEsDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAkcmVzb3VyY2VkYXRhWyduYW1lJ10gPSAkcm93Wyd1c2VybmFtZSddOw0KKyAgICAgICAgICAkcmVzb3VyY2VkYXRhWydraW5kJ10gPSAkcm93WydraW5kJ107DQorICAgICAgICAgICRyZXNvdXJjZWRhdGFbJ211bHRpcGxlX2Jvb2tpbmdzJ10gPSAkcm93WydtdWx0aXBsZV9ib29raW5ncyddOw0KKyAgICAgICAgICAkcmVzb3VyY2VkYXRhWydkZXNjcmlwdGlvbiddID0gJHJvd1snbmFtZSddOw0KKyAgICAgICAgICAkcmVzb3VyY2VkYXRhWydhY3RpdmUnXSA9ICRyb3dbJ2FjdGl2ZSddOw0KKyAgICAgICAgICAkcmVzb3VyY2VkYXRhWydhY3RpdmVfaW50J10gPSAkcm93WydhY3RpdmUnXTsNCisgICAgICAgICAgJHJlc291cmNlZGF0YVsnZG9tYWluJ10gPSAkcm93Wydkb21haW4nXTsNCisgICAgICAgICAgJHJlc291cmNlZGF0YVsnbG9jYWxfcGFydCddID0gJHJvd1snbG9jYWxfcGFydCddOw0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRyZXNvdXJjZWRhdGFbJ2RvbWFpbiddKSB8fA0KKyAgICAgICAgICAgIChpc3NldCgkcmVzb3VyY2VkYXRhWydkb21haW4nXSkgJiYgIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHJlc291cmNlZGF0YVsnZG9tYWluJ10pKSkgew0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gJHJlc291cmNlZGF0YTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RlbGV0ZSc6DQorICAgICAgc3dpdGNoICgkX3R5cGUpIHsNCisgICAgICAgIGNhc2UgJ3N5bmNqb2InOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsnaWQnXSkpIHsNCisgICAgICAgICAgICAkaWRzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkaWRzW10gPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJGlkcyA9ICRfZGF0YVsnaWQnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3N5bmNqb2JzJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ3N5bmNqb2JzJ10gIT0gIjEiICkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJGlkKSkgew0KKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdXNlcjJgIEZST00gYGltYXBzeW5jYCBXSEVSRSBpZCA9IDppZCIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aWQnID0+ICRpZCkpOw0KKyAgICAgICAgICAgICR1c2VyMiA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKVsndXNlcjInXTsNCisgICAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICR1c2VyMikpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGltYXBzeW5jYCBXSEVSRSBgaWRgPSA6aWQiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZGVsZXRlZF9zeW5jam9iJywgJGlkKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnZmlsdGVyJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2lkJ10pKSB7DQorICAgICAgICAgICAgJGlkcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydmaWx0ZXJzJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ2ZpbHRlcnMnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgICAgIGlmICghaXNfbnVtZXJpYygkaWQpKSB7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBzaWV2ZV9maWx0ZXJzYCBXSEVSRSBpZCA9IDppZCIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aWQnID0+ICRpZCkpOw0KKyAgICAgICAgICAgICR1c3IgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQylbJ3VzZXJuYW1lJ107DQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkdXNyKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc2lldmVfZmlsdGVyc2AgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJGlkKSk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RlbGV0ZV9maWx0ZXInLCAkaWQpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICd0aW1lX2xpbWl0ZWRfYWxpYXMnOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsnYWRkcmVzcyddKSkgew0KKyAgICAgICAgICAgICRhZGRyZXNzZXMgPSBhcnJheSgpOw0KKyAgICAgICAgICAgICRhZGRyZXNzZXNbXSA9ICRfZGF0YVsnYWRkcmVzcyddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRhZGRyZXNzZXMgPSAkX2RhdGFbJ2FkZHJlc3MnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3NwYW1fYWxpYXMnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9hbGlhcyddICE9ICIxIiApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRhZGRyZXNzZXMgYXMgJGFkZHJlc3MpIHsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgZ290b2AgRlJPTSBgc3BhbWFsaWFzYCBXSEVSRSBgYWRkcmVzc2AgPSA6YWRkcmVzcyIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6YWRkcmVzcycgPT4gJGFkZHJlc3MpKTsNCisgICAgICAgICAgICAkZ290byA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKVsnZ290byddOw0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJGdvdG8pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzcGFtYWxpYXNgIFdIRVJFIGBnb3RvYCA9IDp1c2VybmFtZSBBTkQgYGFkZHJlc3NgID0gOml0ZW0iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRnb3RvLA0KKyAgICAgICAgICAgICAgJzppdGVtJyA9PiAkYWRkcmVzcw0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkZ290bykpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdlYXNfY2FjaGUnOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ2Vhc19yZXNldCddKSB8fCAkX1NFU1NJT05bJ2FjbCddWydlYXNfcmVzZXQnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHVzZXJuYW1lKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19jYWNoZV9mb2xkZXJgIFdIRVJFIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdlYXNfcmVzZXQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdzb2dvX3Byb2ZpbGUnOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3NvZ29fcHJvZmlsZV9yZXNldCddKSB8fCAkX1NFU1NJT05bJ2FjbCddWydzb2dvX3Byb2ZpbGVfcmVzZXQnXSAhPSAiMSIgKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHVzZXJuYW1lKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb191c2VyX3Byb2ZpbGVgIFdIRVJFIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHNvZ29fY2FjaGVfZm9sZGVyYCBXSEVSRSBgY191aWRgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzb2dvX2FjbGAgV0hFUkUgYGNfb2JqZWN0YCBMSUtFICclLyIgLiAkdXNlcm5hbWUgLiAiLyUnIE9SIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHNvZ29fc3RvcmVgIFdIRVJFIGBjX2ZvbGRlcl9pZGAgSU4gKFNFTEVDVCBgY19mb2xkZXJfaWRgIEZST00gYHNvZ29fZm9sZGVyX2luZm9gIFdIRVJFIGBjX3BhdGgyYCA9IDp1c2VybmFtZSkiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHNvZ29fcXVpY2tfY29udGFjdGAgV0hFUkUgYGNfZm9sZGVyX2lkYCBJTiAoU0VMRUNUIGBjX2ZvbGRlcl9pZGAgRlJPTSBgc29nb19mb2xkZXJfaW5mb2AgV0hFUkUgYGNfcGF0aDJgID0gOnVzZXJuYW1lKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19xdWlja19hcHBvaW50bWVudGAgV0hFUkUgYGNfZm9sZGVyX2lkYCBJTiAoU0VMRUNUIGBjX2ZvbGRlcl9pZGAgRlJPTSBgc29nb19mb2xkZXJfaW5mb2AgV0hFUkUgYGNfcGF0aDJgID0gOnVzZXJuYW1lKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19mb2xkZXJfaW5mb2AgV0hFUkUgYGNfcGF0aDJgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnc29nb19wcm9maWxlX3Jlc2V0JywgaHRtbHNwZWNpYWxjaGFycygkdXNlcm5hbWUpKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnZG9tYWluJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2RvbWFpbiddKSkgew0KKyAgICAgICAgICAgICRkb21haW5zID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkZG9tYWluc1tdID0gJF9kYXRhWydkb21haW4nXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkZG9tYWlucyA9ICRfZGF0YVsnZG9tYWluJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGRvbWFpbnMgYXMgJGRvbWFpbikgew0KKyAgICAgICAgICAgIGlmICghaXNfdmFsaWRfZG9tYWluX25hbWUoJGRvbWFpbikpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2RvbWFpbl9pbnZhbGlkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkZG9tYWluCT0gaWRuX3RvX2FzY2lpKHN0cnRvbG93ZXIodHJpbSgkZG9tYWluKSksIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdXNlcm5hbWVgIEZST00gYG1haWxib3hgDQorICAgICAgICAgICAgICBXSEVSRSBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwIHx8ICFlbXB0eSgkbnVtX3Jlc3VsdHMpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdkb21haW5fbm90X2VtcHR5JywgJGRvbWFpbikNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJGV4ZWNfZmllbGRzID0gYXJyYXkoJ2NtZCcgPT4gJ21haWxkaXInLCAndGFzaycgPT4gJ2NsZWFudXAnLCAnbWFpbGRpcicgPT4gJGRvbWFpbik7DQorICAgICAgICAgICAgJG1haWxkaXJfZ2MgPSBqc29uX2RlY29kZShkb2NrZXIoJ3Bvc3QnLCAnZG92ZWNvdC1tYWlsY293JywgJ2V4ZWMnLCAkZXhlY19maWVsZHMpLCB0cnVlKTsNCisgICAgICAgICAgICBpZiAoJG1haWxkaXJfZ2NbJ3R5cGUnXSAhPSAnc3VjY2VzcycpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdDb3VsZCBub3QgbW92ZSBtYWlsIHN0b3JhZ2UgdG8gZ2FyYmFnZSBjb2xsZWN0b3I6ICcgLiAkbWFpbGRpcl9nY1snbXNnJ10NCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGRvbWFpbmAgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmRvbWFpbicgPT4gJGRvbWFpbiwNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBkb21haW5fYWRtaW5zYCBXSEVSRSBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGFsaWFzYCBXSEVSRSBgZG9tYWluYCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGFsaWFzX2RvbWFpbmAgV0hFUkUgYHRhcmdldF9kb21haW5gID0gOmRvbWFpbiIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzpkb21haW4nID0+ICRkb21haW4sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgbWFpbGJveGAgV0hFUkUgYGRvbWFpbmAgPSA6ZG9tYWluIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmRvbWFpbicgPT4gJGRvbWFpbiwNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRSBgbG9nZ2VkX2luX2FzYCBMSUtFIDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAnJUAnLiRkb21haW4sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgcXVvdGEyYCBXSEVSRSBgdXNlcm5hbWVgIExJS0UgOmRvbWFpbiIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzpkb21haW4nID0+ICclQCcuJGRvbWFpbiwNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBwdXNob3ZlcmAgV0hFUkUgYHVzZXJuYW1lYCBMSUtFIDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAnJUAnLiRkb21haW4sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgcXVvdGEycmVwbGljYWAgV0hFUkUgYHVzZXJuYW1lYCBMSUtFIDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAnJUAnLiRkb21haW4sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc3BhbWFsaWFzYCBXSEVSRSBgYWRkcmVzc2AgTElLRSA6ZG9tYWluIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmRvbWFpbicgPT4gJyVAJy4kZG9tYWluLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvYmplY3RgID0gOmRvbWFpbiIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzpkb21haW4nID0+ICRkb21haW4sDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgYmNjX21hcHNgIFdIRVJFIGBsb2NhbF9kZXN0YCA9IDpkb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6ZG9tYWluJyA9PiAkZG9tYWluLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIkRFTEVURSBGUk9NIGBhZG1pbmAgV0hFUkUgYHN1cGVyYWRtaW5gID0gMCBBTkQgYHVzZXJuYW1lYCBOT1QgSU4gKFNFTEVDVCBgdXNlcm5hbWVgRlJPTSBgZG9tYWluX2FkbWluc2ApOyIpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIkRFTEVURSBGUk9NIGBkYV9hY2xgIFdIRVJFIGB1c2VybmFtZWAgTk9UIElOIChTRUxFQ1QgYHVzZXJuYW1lYEZST00gYGRvbWFpbl9hZG1pbnNgKTsiKTsNCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJHJlZGlzLT5oRGVsKCdET01BSU5fTUFQJywgJGRvbWFpbik7DQorICAgICAgICAgICAgICAkcmVkaXMtPmhEZWwoJ1JMX1ZBTFVFJywgJGRvbWFpbik7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9yZW1vdmVkJywgaHRtbHNwZWNpYWxjaGFycygkZG9tYWluKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2FsaWFzJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2lkJ10pKSB7DQorICAgICAgICAgICAgJGlkcyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICAgICAkYWxpYXNfZGF0YSA9IG1haWxib3goJ2dldCcsICdhbGlhc19kZXRhaWxzJywgJGlkKTsNCisgICAgICAgICAgICBpZiAoZW1wdHkoJGFsaWFzX2RhdGEpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBhbGlhc2AgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzppZCcgPT4gJGFsaWFzX2RhdGFbJ2lkJ10NCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZW5kZXJfYWNsYCBXSEVSRSBgc2VuZF9hc2AgPSA6YWxpYXNfYWRkcmVzcyIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzphbGlhc19hZGRyZXNzJyA9PiAkYWxpYXNfZGF0YVsnYWRkcmVzcyddDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FsaWFzX3JlbW92ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRhbGlhc19kYXRhWydhZGRyZXNzJ10pKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgICAgY2FzZSAnYWxpYXNfZG9tYWluJzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ2FsaWFzX2RvbWFpbiddKSkgew0KKyAgICAgICAgICAgICRhbGlhc19kb21haW5zID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkYWxpYXNfZG9tYWluc1tdID0gJF9kYXRhWydhbGlhc19kb21haW4nXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkYWxpYXNfZG9tYWlucyA9ICRfZGF0YVsnYWxpYXNfZG9tYWluJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJGFsaWFzX2RvbWFpbnMgYXMgJGFsaWFzX2RvbWFpbikgew0KKyAgICAgICAgICAgIGlmICghaXNfdmFsaWRfZG9tYWluX25hbWUoJGFsaWFzX2RvbWFpbikpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2RvbWFpbl9pbnZhbGlkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgdGFyZ2V0X2RvbWFpbmAgRlJPTSBgYWxpYXNfZG9tYWluYA0KKyAgICAgICAgICAgICAgV0hFUkUgYGFsaWFzX2RvbWFpbmA9IDphbGlhc19kb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmFsaWFzX2RvbWFpbicgPT4gJGFsaWFzX2RvbWFpbikpOw0KKyAgICAgICAgICAgICREb21haW5EYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIGlmICghaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkRG9tYWluRGF0YVsndGFyZ2V0X2RvbWFpbiddKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgYWxpYXNfZG9tYWluYCBXSEVSRSBgYWxpYXNfZG9tYWluYCA9IDphbGlhc19kb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6YWxpYXNfZG9tYWluJyA9PiAkYWxpYXNfZG9tYWluLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGFsaWFzYCBXSEVSRSBgZG9tYWluYCA9IDphbGlhc19kb21haW4iKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6YWxpYXNfZG9tYWluJyA9PiAkYWxpYXNfZG9tYWluLA0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGJjY19tYXBzYCBXSEVSRSBgbG9jYWxfZGVzdGAgPSA6YWxpYXNfZG9tYWluIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOmFsaWFzX2RvbWFpbicgPT4gJGFsaWFzX2RvbWFpbiwNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJHJlZGlzLT5oRGVsKCdET01BSU5fTUFQJywgJGFsaWFzX2RvbWFpbik7DQorICAgICAgICAgICAgICAkcmVkaXMtPmhEZWwoJ1JMX1ZBTFVFJywgJGRvbWFpbik7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2FsaWFzX2RvbWFpbl9yZW1vdmVkJywgaHRtbHNwZWNpYWxjaGFycygkYWxpYXNfZG9tYWluKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ21haWxib3gnOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkdXNlcm5hbWVzW10gPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJHVzZXJuYW1lcyA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkdXNlcm5hbWUsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHVzZXJuYW1lKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJG1haWxib3hfZGV0YWlscyA9IG1haWxib3goJ2dldCcsICdtYWlsYm94X2RldGFpbHMnLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgICAgIGlmICghZW1wdHkoJG1haWxib3hfZGV0YWlsc1snZG9tYWluJ10pICYmICFlbXB0eSgkbWFpbGJveF9kZXRhaWxzWydsb2NhbF9wYXJ0J10pKSB7DQorICAgICAgICAgICAgICAkbWFpbGRpciA9ICRtYWlsYm94X2RldGFpbHNbJ2RvbWFpbiddIC4gJy8nIC4gJG1haWxib3hfZGV0YWlsc1snbG9jYWxfcGFydCddOw0KKyAgICAgICAgICAgICAgJGV4ZWNfZmllbGRzID0gYXJyYXkoJ2NtZCcgPT4gJ21haWxkaXInLCAndGFzaycgPT4gJ2NsZWFudXAnLCAnbWFpbGRpcicgPT4gJG1haWxkaXIpOw0KKyAgICAgICAgICAgICAgJG1haWxkaXJfZ2MgPSBqc29uX2RlY29kZShkb2NrZXIoJ3Bvc3QnLCAnZG92ZWNvdC1tYWlsY293JywgJ2V4ZWMnLCAkZXhlY19maWVsZHMpLCB0cnVlKTsNCisgICAgICAgICAgICAgIGlmICgkbWFpbGRpcl9nY1sndHlwZSddICE9ICdzdWNjZXNzJykgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnQ291bGQgbm90IG1vdmUgbWFpbGRpciB0byBnYXJiYWdlIGNvbGxlY3RvcjogJyAuICRtYWlsZGlyX2djWydtc2cnXQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdDb3VsZCBub3QgbW92ZSBtYWlsZGlyIHRvIGdhcmJhZ2UgY29sbGVjdG9yOiB2YXJpYWJsZXMgbG9jYWxfcGFydCBhbmQvb3IgZG9tYWluIGVtcHR5Jw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKHN0cnRvbG93ZXIoZ2V0ZW52KCdTS0lQX1NPTFInKSkgPT0gJ24nKSB7DQorICAgICAgICAgICAgICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCAnaHR0cDovL3NvbHI6ODk4My9zb2xyL2RvdmVjb3QtZnRzL3VwZGF0ZT9jb21taXQ9dHJ1ZScpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUixhcnJheSgnQ29udGVudC1UeXBlOiB0ZXh0L3htbCcpKTsNCisgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIDEpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVEZJRUxEUywgJzxkZWxldGU+PHF1ZXJ5PnVzZXI6JyAuICR1c2VybmFtZSAuICc8L3F1ZXJ5PjwvZGVsZXRlPicpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVElNRU9VVCwgMzApOw0KKyAgICAgICAgICAgICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgICAgICAgICAgIGlmICgkcmVzcG9uc2UgPT09IGZhbHNlKSB7DQorICAgICAgICAgICAgICAgICRlcnIgPSBjdXJsX2Vycm9yKCRjdXJsKTsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YV9sb2csICRfYXR0ciksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ0NvdWxkIG5vdCByZW1vdmUgU29sciBpbmRleDogJyAuIHByaW50X3IoJGVyciwgdHJ1ZSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBhbGlhc2AgV0hFUkUgYGdvdG9gID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBwdXNob3ZlcmAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgcXVhcmFudGluZWAgV0hFUkUgYHJjcHRgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBxdW90YTJgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHF1b3RhMnJlcGxpY2FgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYG1haWxib3hgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHNlbmRlcl9hY2xgIFdIRVJFIGBsb2dnZWRfaW5fYXNgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAvLyBmaywgYmV0dGVyIHNhZmUgdGhhbiBzb3JyeQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHVzZXJfYWNsYCBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzcGFtYWxpYXNgIFdIRVJFIGBnb3RvYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgaW1hcHN5bmNgIFdIRVJFIGB1c2VyMmAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvYmplY3RgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzb2dvX3VzZXJfcHJvZmlsZWAgV0hFUkUgYGNfdWlkYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19jYWNoZV9mb2xkZXJgIFdIRVJFIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHNvZ29fYWNsYCBXSEVSRSBgY19vYmplY3RgIExJS0UgJyUvIiAuIHN0cl9yZXBsYWNlKCclJywgJ1wlJywgJHVzZXJuYW1lKSAuICIvJScgT1IgYGNfdWlkYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19zdG9yZWAgV0hFUkUgYGNfZm9sZGVyX2lkYCBJTiAoU0VMRUNUIGBjX2ZvbGRlcl9pZGAgRlJPTSBgc29nb19mb2xkZXJfaW5mb2AgV0hFUkUgYGNfcGF0aDJgID0gOnVzZXJuYW1lKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19xdWlja19jb250YWN0YCBXSEVSRSBgY19mb2xkZXJfaWRgIElOIChTRUxFQ1QgYGNfZm9sZGVyX2lkYCBGUk9NIGBzb2dvX2ZvbGRlcl9pbmZvYCBXSEVSRSBgY19wYXRoMmAgPSA6dXNlcm5hbWUpIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzb2dvX3F1aWNrX2FwcG9pbnRtZW50YCBXSEVSRSBgY19mb2xkZXJfaWRgIElOIChTRUxFQ1QgYGNfZm9sZGVyX2lkYCBGUk9NIGBzb2dvX2ZvbGRlcl9pbmZvYCBXSEVSRSBgY19wYXRoMmAgPSA6dXNlcm5hbWUpIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzb2dvX2ZvbGRlcl9pbmZvYCBXSEVSRSBgY19wYXRoMmAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYGJjY19tYXBzYCBXSEVSRSBgbG9jYWxfZGVzdGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYG9hdXRoX2FjY2Vzc190b2tlbnNgIFdIRVJFIGB1c2VyX2lkYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgb2F1dGhfcmVmcmVzaF90b2tlbnNgIFdIRVJFIGB1c2VyX2lkYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgb2F1dGhfYXV0aG9yaXphdGlvbl9jb2Rlc2AgV0hFUkUgYHVzZXJfaWRgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgYWRkcmVzc2AsIGBnb3RvYCBGUk9NIGBhbGlhc2ANCisgICAgICAgICAgICAgICAgV0hFUkUgYGdvdG9gIFJFR0VYUCA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOnVzZXJuYW1lJyA9PiAnKF58LCknLiR1c2VybmFtZS4nKCR8LCknKSk7DQorICAgICAgICAgICAgJEdvdG9EYXRhID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIGZvcmVhY2ggKCRHb3RvRGF0YSBhcyAkZ290b3MpIHsNCisgICAgICAgICAgICAgICRnb3RvX2V4cGxvZGVkID0gZXhwbG9kZSgnLCcsICRnb3Rvc1snZ290byddKTsNCisgICAgICAgICAgICAgIGlmICgoJGtleSA9IGFycmF5X3NlYXJjaCgkdXNlcm5hbWUsICRnb3RvX2V4cGxvZGVkKSkgIT09IGZhbHNlKSB7DQorICAgICAgICAgICAgICAgIHVuc2V0KCRnb3RvX2V4cGxvZGVkWyRrZXldKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICRnb3Rvc19yZWJ1aWxkID0gaW1wbG9kZSgnLCcsICRnb3RvX2V4cGxvZGVkKTsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBhbGlhc2AgU0VUDQorICAgICAgICAgICAgICAgIGBnb3RvYCA9IDpnb3RvDQorICAgICAgICAgICAgICAgICAgV0hFUkUgYGFkZHJlc3NgID0gOmFkZHJlc3MiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOmdvdG8nID0+ICRnb3Rvc19yZWJ1aWxkLA0KKyAgICAgICAgICAgICAgICAnOmFkZHJlc3MnID0+ICRnb3Rvc1snYWRkcmVzcyddDQorICAgICAgICAgICAgICApKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAgICRyZWRpcy0+aERlbCgnUkxfVkFMVUUnLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdtYWlsYm94X3JlbW92ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCR1c2VybmFtZSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdyZXNvdXJjZSc6DQorICAgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWyduYW1lJ10pKSB7DQorICAgICAgICAgICAgJG5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkbmFtZXNbXSA9ICRfZGF0YVsnbmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRuYW1lcyA9ICRfZGF0YVsnbmFtZSddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRuYW1lcyBhcyAkbmFtZSkgew0KKyAgICAgICAgICAgIGlmICghZmlsdGVyX3ZhcigkbmFtZSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkbmFtZSkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYG1haWxib3hgIFdIRVJFIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb191c2VyX3Byb2ZpbGVgIFdIRVJFIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19jYWNoZV9mb2xkZXJgIFdIRVJFIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19hY2xgIFdIRVJFIGBjX29iamVjdGAgTElLRSAnJS8iIC4gJG5hbWUgLiAiLyUnIE9SIGBjX3VpZGAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19zdG9yZWAgV0hFUkUgYGNfZm9sZGVyX2lkYCBJTiAoU0VMRUNUIGBjX2ZvbGRlcl9pZGAgRlJPTSBgc29nb19mb2xkZXJfaW5mb2AgV0hFUkUgYGNfcGF0aDJgID0gOnVzZXJuYW1lKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJG5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzb2dvX3F1aWNrX2NvbnRhY3RgIFdIRVJFIGBjX2ZvbGRlcl9pZGAgSU4gKFNFTEVDVCBgY19mb2xkZXJfaWRgIEZST00gYHNvZ29fZm9sZGVyX2luZm9gIFdIRVJFIGBjX3BhdGgyYCA9IDp1c2VybmFtZSkiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgc29nb19xdWlja19hcHBvaW50bWVudGAgV0hFUkUgYGNfZm9sZGVyX2lkYCBJTiAoU0VMRUNUIGBjX2ZvbGRlcl9pZGAgRlJPTSBgc29nb19mb2xkZXJfaW5mb2AgV0hFUkUgYGNfcGF0aDJgID0gOnVzZXJuYW1lKSIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzp1c2VybmFtZScgPT4gJG5hbWUNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzb2dvX2ZvbGRlcl9pbmZvYCBXSEVSRSBgY19wYXRoMmAgPSA6dXNlcm5hbWUiKTsNCisgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICRuYW1lDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3Jlc291cmNlX3JlbW92ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgfQ0KKyAgaWYgKCRfYWN0aW9uICE9ICdnZXQnICYmIGluX2FycmF5KCRfdHlwZSwgYXJyYXkoJ2RvbWFpbicsICdhbGlhcycsICdhbGlhc19kb21haW4nLCAnbWFpbGJveCcsICdyZXNvdXJjZScpKSkgew0KKyAgICB1cGRhdGVfc29nb19zdGF0aWNfdmlldygpOw0KKyAgfQ0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5tYWlscS5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMubWFpbHEuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDJhYjdjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMubWFpbHEuaW5jLnBocApAQCAtMCwwICsxLDEyMSBAQAorPD9waHANCitmdW5jdGlvbiBtYWlscSgkX2FjdGlvbiwgJF9kYXRhID0gbnVsbCkgew0KKyAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhKSwNCisgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgKTsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgZnVuY3Rpb24gcHJvY2Vzc19tYWlscV9vdXRwdXQoJHJldHVybmVkX291dHB1dCwgJF9hY3Rpb24sICRfZGF0YSkgew0KKyAgICBpZiAoJHJldHVybmVkX291dHB1dCAhPT0gTlVMTCkgew0KKyAgICAgIGlmICgkX2FjdGlvbiA9PSAnY2F0Jykgew0KKyAgICAgICAgbG9nZ2VyKGFycmF5KCdyZXR1cm4nID0+IGFycmF5KA0KKyAgICAgICAgICBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ3F1ZXVlX2NhdF9zdWNjZXNzJw0KKyAgICAgICAgICApDQorICAgICAgICApKSk7DQorICAgICAgICByZXR1cm4gJHJldHVybmVkX291dHB1dDsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICBpZiAoaXNzZXQoJHJldHVybmVkX291dHB1dFsndHlwZSddKSAmJiAkcmV0dXJuZWRfb3V0cHV0Wyd0eXBlJ10gPT0gJ2RhbmdlcicpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ0Vycm9yOiAnIC4gJHJldHVybmVkX291dHB1dFsnbXNnJ10NCisgICAgICAgICAgKTsNCisgICAgICAgIH0NCisgICAgICAgIGlmIChpc3NldCgkcmV0dXJuZWRfb3V0cHV0Wyd0eXBlJ10pICYmICRyZXR1cm5lZF9vdXRwdXRbJ3R5cGUnXSA9PSAnc3VjY2VzcycpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdxdWV1ZV9jb21tYW5kX3N1Y2Nlc3MnDQorICAgICAgICAgICk7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICB9DQorICAgIGVsc2Ugew0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhKSwNCisgICAgICAgICdtc2cnID0+ICd1bmtub3duJw0KKyAgICAgICk7DQorICAgIH0NCisgIH0NCisgIGlmICgkX2FjdGlvbiA9PSAnZ2V0Jykgew0KKyAgICAkbWFpbHFfbGluZXMgPSBkb2NrZXIoJ3Bvc3QnLCAncG9zdGZpeC1tYWlsY293JywgJ2V4ZWMnLCBhcnJheSgnY21kJyA9PiAnbWFpbHEnLCAndGFzaycgPT4gJ2xpc3QnKSk7DQorICAgICRsaW5lcyA9IDA7DQorICAgIC8vIEhhcmQgbGltaXQgdG8gMTAwMDAgaXRlbXMNCisgICAgZm9yZWFjaCAocHJlZ19zcGxpdCgiLygoXHI/XG4pfChcclxuPykpLyIsICRtYWlscV9saW5lcykgYXMgJG1haWxxX2l0ZW0pIGlmICgkbGluZXMrKyA8IDEwMDAwKSB7DQorICAgICAgaWYgKGVtcHR5KCRtYWlscV9pdGVtKSB8fCAkbWFpbHFfaXRlbSA9PSAnMScpIHsNCisgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgIH0NCisgICAgICAkbXFfbGluZSA9IGpzb25fZGVjb2RlKCRtYWlscV9pdGVtLCB0cnVlKTsNCisgICAgICBpZiAoJG1xX2xpbmUgIT09IE5VTEwpIHsNCisgICAgICAgICRyY3B0cyA9IGFycmF5KCk7DQorICAgICAgICBmb3JlYWNoICgkbXFfbGluZVsncmVjaXBpZW50cyddIGFzICRyY3B0KSB7DQorICAgICAgICAgIGlmIChpc3NldCgkcmNwdFsnZGVsYXlfcmVhc29uJ10pKSB7DQorICAgICAgICAgICAgJHJjcHRzW10gPSAkcmNwdFsnYWRkcmVzcyddIC4gJyAoJyAuICRyY3B0WydkZWxheV9yZWFzb24nXSAuICcpJzsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkcmNwdHNbXSA9ICRyY3B0WydhZGRyZXNzJ107DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGlmICghZW1wdHkoJHJjcHRzKSkgew0KKyAgICAgICAgICAkbXFfbGluZVsncmVjaXBpZW50cyddID0gJHJjcHRzOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJGxpbmVbXSA9ICRtcV9saW5lOw0KKyAgICAgIH0NCisgICAgfQ0KKyAgICBpZiAoIWlzc2V0KCRsaW5lKSB8fCBlbXB0eSgkbGluZSkpIHsNCisgICAgICByZXR1cm4gJ1tdJzsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisgICAgICByZXR1cm4ganNvbl9lbmNvZGUoJGxpbmUpOw0KKyAgICB9DQorICB9DQorICBlbHNlaWYgKCRfYWN0aW9uID09ICdkZWxldGUnKSB7DQorICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydxaWQnXSkpIHsNCisgICAgICAkcWlkcyA9IGFycmF5KCk7DQorICAgICAgJHFpZHNbXSA9ICRfZGF0YVsncWlkJ107DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJHFpZHMgPSAkX2RhdGFbJ3FpZCddOw0KKyAgICB9DQorICAgICRkb2NrZXJfcmV0dXJuID0gZG9ja2VyKCdwb3N0JywgJ3Bvc3RmaXgtbWFpbGNvdycsICdleGVjJywgYXJyYXkoJ2NtZCcgPT4gJ21haWxxJywgJ3Rhc2snID0+ICdkZWxldGUnLCAnaXRlbXMnID0+ICRxaWRzKSk7DQorICAgIHByb2Nlc3NfbWFpbHFfb3V0cHV0KGpzb25fZGVjb2RlKCRkb2NrZXJfcmV0dXJuLCB0cnVlKSwgJF9hY3Rpb24sICRfZGF0YSk7DQorICB9DQorICBlbHNlaWYgKCRfYWN0aW9uID09ICdjYXQnKSB7DQorICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydxaWQnXSkpIHsNCisgICAgICAkcWlkcyA9IGFycmF5KCk7DQorICAgICAgJHFpZHNbXSA9ICRfZGF0YVsncWlkJ107DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJHFpZHMgPSAkX2RhdGFbJ3FpZCddOw0KKyAgICB9DQorICAgICRkb2NrZXJfcmV0dXJuID0gZG9ja2VyKCdwb3N0JywgJ3Bvc3RmaXgtbWFpbGNvdycsICdleGVjJywgYXJyYXkoJ2NtZCcgPT4gJ21haWxxJywgJ3Rhc2snID0+ICdjYXQnLCAnaXRlbXMnID0+ICRxaWRzKSk7DQorICAgIHJldHVybiBwcm9jZXNzX21haWxxX291dHB1dCgkZG9ja2VyX3JldHVybiwgJF9hY3Rpb24sICRfZGF0YSk7DQorICB9DQorICBlbHNlaWYgKCRfYWN0aW9uID09ICdlZGl0Jykgew0KKyAgICBpZiAoaW5fYXJyYXkoJF9kYXRhWydhY3Rpb24nXSwgYXJyYXkoJ2hvbGQnLCAndW5ob2xkJywgJ2RlbGl2ZXInKSkpIHsNCisgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsncWlkJ10pKSB7DQorICAgICAgICAkcWlkcyA9IGFycmF5KCk7DQorICAgICAgICAkcWlkc1tdID0gJF9kYXRhWydxaWQnXTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkcWlkcyA9ICRfZGF0YVsncWlkJ107DQorICAgICAgfQ0KKyAgICAgIGlmICghZW1wdHkoJHFpZHMpKSB7DQorICAgICAgICAkZG9ja2VyX3JldHVybiA9IGRvY2tlcigncG9zdCcsICdwb3N0Zml4LW1haWxjb3cnLCAnZXhlYycsIGFycmF5KCdjbWQnID0+ICdtYWlscScsICd0YXNrJyA9PiAkX2RhdGFbJ2FjdGlvbiddLCAnaXRlbXMnID0+ICRxaWRzKSk7DQorICAgICAgICBwcm9jZXNzX21haWxxX291dHB1dChqc29uX2RlY29kZSgkZG9ja2VyX3JldHVybiwgdHJ1ZSksICRfYWN0aW9uLCAkX2RhdGEpOw0KKyAgICAgIH0NCisgICAgfQ0KKyAgICBpZiAoaW5fYXJyYXkoJF9kYXRhWydhY3Rpb24nXSwgYXJyYXkoJ2ZsdXNoJywgJ3N1cGVyX2RlbGV0ZScpKSkgew0KKyAgICAgICRkb2NrZXJfcmV0dXJuID0gZG9ja2VyKCdwb3N0JywgJ3Bvc3RmaXgtbWFpbGNvdycsICdleGVjJywgYXJyYXkoJ2NtZCcgPT4gJ21haWxxJywgJ3Rhc2snID0+ICRfZGF0YVsnYWN0aW9uJ10pKTsNCisgICAgICBwcm9jZXNzX21haWxxX291dHB1dChqc29uX2RlY29kZSgkZG9ja2VyX3JldHVybiwgdHJ1ZSksICRfYWN0aW9uLCAkX2RhdGEpOw0KKyAgICB9DQorICB9DQorfQ0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLm9hdXRoMi5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMub2F1dGgyLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JjN2RlYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLm9hdXRoMi5pbmMucGhwCkBAIC0wLDAgKzEsMjQyIEBACis8P3BocA0KK2Z1bmN0aW9uIG9hdXRoMigkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGEgPSBudWxsKSB7DQorCWdsb2JhbCAkcGRvOw0KKwlnbG9iYWwgJHJlZGlzOw0KKwlnbG9iYWwgJGxhbmc7DQorCWlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisJCSRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKwkJCSd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorCQkJJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorCQkpOw0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorICBzd2l0Y2ggKCRfYWN0aW9uKSB7DQorICAgIGNhc2UgJ2FkZCc6DQorICAgICAgc3dpdGNoICgkX3R5cGUpIHsNCisgICAgICAgIGNhc2UgJ2NsaWVudCc6DQorICAgICAgICAgICRjbGllbnRfaWQgPSBiaW4yaGV4KHJhbmRvbV9ieXRlcyg2KSk7DQorICAgICAgICAgICRjbGllbnRfc2VjcmV0ID0gYmluMmhleChyYW5kb21fYnl0ZXMoMTIpKTsNCisgICAgICAgICAgJHJlZGlyZWN0X3VyaSA9ICRfZGF0YVsncmVkaXJlY3RfdXJpJ107DQorICAgICAgICAgICRzY29wZSA9ICdwcm9maWxlJzsNCisgICAgICAgICAgLy8gRm9yIGZ1dHVyZSB1c2UNCisgICAgICAgICAgLy8gJGdyYW50X3R5cGUgPSBpc3NldCgkX2RhdGFbJ2dyYW50X3R5cGUnXSkgPyAkX2RhdGFbJ2dyYW50X3R5cGUnXSA6ICdhdXRob3JpemF0aW9uX2NvZGUnOw0KKyAgICAgICAgICAvLyAkc2NvcGUgPSBpc3NldCgkX2RhdGFbJ3Njb3BlJ10pID8gJF9kYXRhWydzY29wZSddIDogJ3Byb2ZpbGUnOw0KKyAgICAgICAgICAvLyBpZiAoJGdyYW50X3R5cGUgIT0gImF1dGhvcml6YXRpb25fY29kZSIgJiYgJGdyYW50X3R5cGUgIT0gInBhc3N3b3JkIikgew0KKyAgICAgICAgICAgIC8vICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgLy8gJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgLy8gJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgLy8gJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgLy8gKTsNCisgICAgICAgICAgICAvLyByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIC8vIH0NCisgICAgICAgICAgaWYgKCRzY29wZSAhPSAicHJvZmlsZSIpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdJbnZhbGlkIHNjb3BlJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUICdjbGllbnQnIEZST00gYG9hdXRoX2NsaWVudHNgDQorICAgICAgICAgICAgV0hFUkUgYGNsaWVudF9pZGAgPSA6Y2xpZW50X2lkIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6Y2xpZW50X2lkJyA9PiAkY2xpZW50X2lkKSk7DQorICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ0NsaWVudCBJRCBleGlzdHMnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgb2F1dGhfY2xpZW50c2AgKGBjbGllbnRfaWRgLCBgY2xpZW50X3NlY3JldGAsIGByZWRpcmVjdF91cmlgLCBgc2NvcGVgKQ0KKyAgICAgICAgICAgIFZBTFVFUyAoOmNsaWVudF9pZCwgOmNsaWVudF9zZWNyZXQsIDpyZWRpcmVjdF91cmksIDpzY29wZSkiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzpjbGllbnRfaWQnID0+ICRjbGllbnRfaWQsDQorICAgICAgICAgICAgJzpjbGllbnRfc2VjcmV0JyA9PiAkY2xpZW50X3NlY3JldCwNCisgICAgICAgICAgICAnOnJlZGlyZWN0X3VyaScgPT4gJHJlZGlyZWN0X3VyaSwNCisgICAgICAgICAgICAnOnNjb3BlJyA9PiAkc2NvcGUNCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdBZGRlZCBjbGllbnQgYWNjZXNzJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZWRpdCc6DQorICAgICAgc3dpdGNoICgkX3R5cGUpIHsNCisgICAgICAgIGNhc2UgJ2NsaWVudCc6DQorICAgICAgICAgICRpZHMgPSAoYXJyYXkpJF9kYXRhWydpZCddOw0KKyAgICAgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgICAgICRpc19ub3cgPSBvYXV0aDIoJ2RldGFpbHMnLCAnY2xpZW50JywgJGlkKTsNCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICAgICAkcmVkaXJlY3RfdXJpID0gKCFlbXB0eSgkX2RhdGFbJ3JlZGlyZWN0X3VyaSddKSkgPyAkX2RhdGFbJ3JlZGlyZWN0X3VyaSddIDogJGlzX25vd1sncmVkaXJlY3RfdXJpJ107DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChpc3NldCgkX2RhdGFbJ3Jldm9rZV90b2tlbnMnXSkpIHsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYG9hdXRoX2FjY2Vzc190b2tlbnNgDQorICAgICAgICAgICAgICAgIFdIRVJFIGBjbGllbnRfaWRgIElOICgNCisgICAgICAgICAgICAgICAgICBTRUxFQ1QgYGNsaWVudF9pZGAgRlJPTSBgb2F1dGhfY2xpZW50c2AgV0hFUkUgYGlkYCA9IDppZA0KKyAgICAgICAgICAgICAgICApIik7DQorICAgICAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAgICAgJzppZCcgPT4gJGlkDQorICAgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYG9hdXRoX3JlZnJlc2hfdG9rZW5zYA0KKyAgICAgICAgICAgICAgICBXSEVSRSBgY2xpZW50X2lkYCBJTiAoDQorICAgICAgICAgICAgICAgICAgU0VMRUNUIGBjbGllbnRfaWRgIEZST00gYG9hdXRoX2NsaWVudHNgIFdIRVJFIGBpZGAgPSA6aWQNCisgICAgICAgICAgICAgICAgKSIpOw0KKyAgICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAgICc6aWQnID0+ICRpZA0KKyAgICAgICAgICAgICAgKSk7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkaWQpKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoaXNzZXQoJF9kYXRhWydyZW5ld19zZWNyZXQnXSkpIHsNCisgICAgICAgICAgICAgICRjbGllbnRfc2VjcmV0ID0gYmluMmhleChyYW5kb21fYnl0ZXMoMTIpKTsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBvYXV0aF9jbGllbnRzYCBTRVQgYGNsaWVudF9zZWNyZXRgID0gOmNsaWVudF9zZWNyZXQgV0hFUkUgIGBpZGAgPSA6aWQiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOmNsaWVudF9zZWNyZXQnID0+ICRjbGllbnRfc2VjcmV0LA0KKyAgICAgICAgICAgICAgICAnOmlkJyA9PiAkaWQNCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ29iamVjdF9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGlkKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRyZWRpcmVjdF91cmkpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdSZWRpcmVjdC9DYWxsYmFjayBVUkwgY2Fubm90IGJlIGVtcHR5Jw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgb2F1dGhfY2xpZW50c2AgU0VUDQorICAgICAgICAgICAgICBgcmVkaXJlY3RfdXJpYCA9IDpyZWRpcmVjdF91cmkNCisgICAgICAgICAgICAgICAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzppZCcgPT4gJGlkLA0KKyAgICAgICAgICAgICAgJzpyZWRpcmVjdF91cmknID0+ICRyZWRpcmVjdF91cmkNCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnb2JqZWN0X21vZGlmaWVkJywgaHRtbHNwZWNpYWxjaGFycygkaWQpKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RlbGV0ZSc6DQorICAgICAgc3dpdGNoICgkX3R5cGUpIHsNCisgICAgICAgIGNhc2UgJ2NsaWVudCc6DQorICAgICAgICAgIChhcnJheSkkaWRzID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgICAgIGlmICghaXNfbnVtZXJpYygkaWQpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBvYXV0aF9jbGllbnRzYA0KKyAgICAgICAgICAgICAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzppZCcgPT4gJGlkDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2l0ZW1zX2RlbGV0ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRpZCkpDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ2FjY2Vzc190b2tlbic6DQorICAgICAgICAgIChhcnJheSkkYWNjZXNzX3Rva2VucyA9ICRfZGF0YVsnYWNjZXNzX3Rva2VuJ107DQorICAgICAgICAgIGZvcmVhY2ggKCRhY2Nlc3NfdG9rZW5zIGFzICRhY2Nlc3NfdG9rZW4pIHsNCisgICAgICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRhY2Nlc3NfdG9rZW4pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgb2F1dGhfYWNjZXNzX3Rva2Vuc2ANCisgICAgICAgICAgICAgIFdIRVJFIGBhY2Nlc3NfdG9rZW5gID0gOmFjY2Vzc190b2tlbiIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgJzphY2Nlc3NfdG9rZW4nID0+ICRhY2Nlc3NfdG9rZW4NCisgICAgICAgICAgICApKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBzcHJpbnRmKCRsYW5nWydzdWNjZXNzJ11bJ2l0ZW1zX2RlbGV0ZWQnXSwgaW1wbG9kZSgnLCAnLCAkYWNjZXNzX3Rva2VucykpDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ3JlZnJlc2hfdG9rZW4nOg0KKyAgICAgICAgICAoYXJyYXkpJHJlZnJlc2hfdG9rZW5zID0gJF9kYXRhWydyZWZyZXNoX3Rva2VuJ107DQorICAgICAgICAgIGZvcmVhY2ggKCRyZWZyZXNoX3Rva2VucyBhcyAkcmVmcmVzaF90b2tlbikgew0KKyAgICAgICAgICAgIGlmICghY3R5cGVfYWxudW0oJHJlZnJlc2hfdG9rZW4pKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgb2F1dGhfcmVmcmVzaF90b2tlbnNgIFdIRVJFIGByZWZyZXNoX3Rva2VuYCA9IDpyZWZyZXNoX3Rva2VuIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgICAnOnJlZnJlc2hfdG9rZW4nID0+ICRyZWZyZXNoX3Rva2VuDQorICAgICAgICAgICAgKSk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3R5cGUsICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gc3ByaW50ZigkbGFuZ1snc3VjY2VzcyddWydpdGVtc19kZWxldGVkJ10sIGltcGxvZGUoJywgJywgJHJlZnJlc2hfdG9rZW5zKSkNCisgICAgICAgICAgKTsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgc3dpdGNoICgkX3R5cGUpIHsNCisgICAgICAgIGNhc2UgJ2NsaWVudHMnOg0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgYGlkYCBGUk9NIGBvYXV0aF9jbGllbnRzYCIpOw0KKyAgICAgICAgICAkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkcm93cykpIHsNCisgICAgICAgICAgICAkb2F1dGhfY2xpZW50c1tdID0gJHJvd1snaWQnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gJG9hdXRoX2NsaWVudHM7DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZXRhaWxzJzoNCisgICAgICBzd2l0Y2ggKCRfdHlwZSkgew0KKyAgICAgICAgY2FzZSAnY2xpZW50JzoNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgKiBGUk9NIGBvYXV0aF9jbGllbnRzYA0KKyAgICAgICAgICAgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRvYXV0aF9jbGllbnRfZGV0YWlscyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgcmV0dXJuICRvYXV0aF9jbGllbnRfZGV0YWlsczsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnBvbGljeS5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucG9saWN5LmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQyOWJkMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnBvbGljeS5pbmMucGhwCkBAIC0wLDAgKzEsMzIwIEBACis8P3BocA0KK2Z1bmN0aW9uIHBvbGljeSgkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhID0gbnVsbCkgew0KKwlnbG9iYWwgJHBkbzsNCisJZ2xvYmFsICRyZWRpczsNCisJZ2xvYmFsICRsYW5nOw0KKwkkX2RhdGFfbG9nID0gJF9kYXRhOw0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdhZGQnOg0KKyAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9wb2xpY3knXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9wb2xpY3knXSAhPSAiMSIgKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBzd2l0Y2ggKCRfc2NvcGUpIHsNCisgICAgICAgIGNhc2UgJ2RvbWFpbic6DQorICAgICAgICAgICRvYmplY3QgPSAkX2RhdGFbJ2RvbWFpbiddOw0KKyAgICAgICAgICBpZiAoaXNfdmFsaWRfZG9tYWluX25hbWUoJG9iamVjdCkpIHsNCisgICAgICAgICAgICBpZiAoIWhhc0RvbWFpbkFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJG9iamVjdCkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRvYmplY3QgPSBpZG5fdG9fYXNjaWkoc3RydG9sb3dlcih0cmltKCRvYmplY3QpKSwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoJF9kYXRhWydvYmplY3RfbGlzdCddID09ICJibCIpIHsNCisgICAgICAgICAgICAkb2JqZWN0X2xpc3QgPSAiYmxhY2tsaXN0X2Zyb20iOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2VpZiAoJF9kYXRhWydvYmplY3RfbGlzdCddID09ICJ3bCIpIHsNCisgICAgICAgICAgICAkb2JqZWN0X2xpc3QgPSAid2hpdGVsaXN0X2Zyb20iOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRvYmplY3RfZnJvbSA9IHRyaW0oc3RydG9sb3dlcigkX2RhdGFbJ29iamVjdF9mcm9tJ10pKTsNCisgICAgICAgICAgaWYgKCFjdHlwZV9hbG51bShzdHJfcmVwbGFjZShhcnJheSgnQCcsICdfJywgJy4nLCAnLScsICcqJyksICcnLCAkb2JqZWN0X2Zyb20pKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAncG9saWN5X2xpc3RfZnJvbV9pbnZhbGlkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICgkb2JqZWN0X2xpc3QgIT0gImJsYWNrbGlzdF9mcm9tIiAmJiAkb2JqZWN0X2xpc3QgIT0gIndoaXRlbGlzdF9mcm9tIikgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgb2JqZWN0YCBGUk9NIGBmaWx0ZXJjb25mYA0KKyAgICAgICAgICAgIFdIRVJFIChgb3B0aW9uYCA9ICd3aGl0ZWxpc3RfZnJvbScgIE9SIGBvcHRpb25gID0gJ2JsYWNrbGlzdF9mcm9tJykNCisgICAgICAgICAgICAgIEFORCBgb2JqZWN0YCA9IDpvYmplY3QNCisgICAgICAgICAgICAgIEFORCBgdmFsdWVgID0gOm9iamVjdF9mcm9tIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6b2JqZWN0JyA9PiAkb2JqZWN0LCAnOm9iamVjdF9mcm9tJyA9PiAkb2JqZWN0X2Zyb20pKTsNCisgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdwb2xpY3lfbGlzdF9mcm9tX2V4aXN0cycNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIklOU0VSVCBJTlRPIGBmaWx0ZXJjb25mYCAoYG9iamVjdGAsIGBvcHRpb25gICxgdmFsdWVgKQ0KKyAgICAgICAgICAgIFZBTFVFUyAoOm9iamVjdCwgOm9iamVjdF9saXN0LCA6b2JqZWN0X2Zyb20pIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6b2JqZWN0JyA9PiAkb2JqZWN0LA0KKyAgICAgICAgICAgICc6b2JqZWN0X2xpc3QnID0+ICRvYmplY3RfbGlzdCwNCisgICAgICAgICAgICAnOm9iamVjdF9mcm9tJyA9PiAkb2JqZWN0X2Zyb20NCisgICAgICAgICAgKSk7DQorDQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2RvbWFpbl9tb2RpZmllZCcsICRvYmplY3QpDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ21haWxib3gnOg0KKyAgICAgICAgICAkb2JqZWN0ID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRvYmplY3QpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICgkX2RhdGFbJ29iamVjdF9saXN0J10gPT0gImJsIikgew0KKyAgICAgICAgICAgICRvYmplY3RfbGlzdCA9ICJibGFja2xpc3RfZnJvbSI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZWlmICgkX2RhdGFbJ29iamVjdF9saXN0J10gPT0gIndsIikgew0KKyAgICAgICAgICAgICRvYmplY3RfbGlzdCA9ICJ3aGl0ZWxpc3RfZnJvbSI7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJG9iamVjdF9mcm9tID0gdHJpbShzdHJ0b2xvd2VyKCRfZGF0YVsnb2JqZWN0X2Zyb20nXSkpOw0KKyAgICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKHN0cl9yZXBsYWNlKGFycmF5KCdAJywgJ18nLCAnLicsICctJywgJyonKSwgJycsICRvYmplY3RfZnJvbSkpKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdwb2xpY3lfbGlzdF9mcm9tX2ludmFsaWQnDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRvYmplY3RfbGlzdCAhPSAiYmxhY2tsaXN0X2Zyb20iICYmICRvYmplY3RfbGlzdCAhPSAid2hpdGVsaXN0X2Zyb20iKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBvYmplY3RgIEZST00gYGZpbHRlcmNvbmZgDQorICAgICAgICAgICAgV0hFUkUgKGBvcHRpb25gID0gJ3doaXRlbGlzdF9mcm9tJyAgT1IgYG9wdGlvbmAgPSAnYmxhY2tsaXN0X2Zyb20nKQ0KKyAgICAgICAgICAgICAgQU5EIGBvYmplY3RgID0gOm9iamVjdA0KKyAgICAgICAgICAgICAgQU5EIGB2YWx1ZWAgPSA6b2JqZWN0X2Zyb20iKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpvYmplY3QnID0+ICRvYmplY3QsICc6b2JqZWN0X2Zyb20nID0+ICRvYmplY3RfZnJvbSkpOw0KKyAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICBpZiAoJG51bV9yZXN1bHRzICE9IDApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ3BvbGljeV9saXN0X2Zyb21fZXhpc3RzJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYGZpbHRlcmNvbmZgIChgb2JqZWN0YCwgYG9wdGlvbmAgLGB2YWx1ZWApDQorICAgICAgICAgICAgVkFMVUVTICg6b2JqZWN0LCA6b2JqZWN0X2xpc3QsIDpvYmplY3RfZnJvbSkiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzpvYmplY3QnID0+ICRvYmplY3QsDQorICAgICAgICAgICAgJzpvYmplY3RfbGlzdCcgPT4gJG9iamVjdF9saXN0LA0KKyAgICAgICAgICAgICc6b2JqZWN0X2Zyb20nID0+ICRvYmplY3RfZnJvbQ0KKyAgICAgICAgICApKTsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbWFpbGJveF9tb2RpZmllZCcsICRvYmplY3QpDQorICAgICAgICAgICk7DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9wb2xpY3knXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsnc3BhbV9wb2xpY3knXSAhPSAiMSIgKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBzd2l0Y2ggKCRfc2NvcGUpIHsNCisgICAgICAgIGNhc2UgJ2RvbWFpbic6DQorICAgICAgICAgIChhcnJheSkkcHJlZmlkcyA9ICRfZGF0YVsncHJlZmlkJ107DQorICAgICAgICAgIGZvcmVhY2ggKCRwcmVmaWRzIGFzICRwcmVmaWQpIHsNCisgICAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJHByZWZpZCkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYG9iamVjdGAgRlJPTSBgZmlsdGVyY29uZmAgV0hFUkUgYHByZWZpZGAgPSA6cHJlZmlkIik7DQorICAgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpwcmVmaWQnID0+ICRwcmVmaWQpKTsNCisgICAgICAgICAgICAkb2JqZWN0ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpWydvYmplY3QnXTsNCisgICAgICAgICAgICBpZiAoaXNfdmFsaWRfZG9tYWluX25hbWUoJG9iamVjdCkpIHsNCisgICAgICAgICAgICAgIGlmICghaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkb2JqZWN0KSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJG9iamVjdCA9IGlkbl90b19hc2NpaShzdHJ0b2xvd2VyKHRyaW0oJG9iamVjdCkpLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgZmlsdGVyY29uZmAgV0hFUkUgYG9iamVjdGAgPSA6b2JqZWN0IEFORCBgcHJlZmlkYCA9IDpwcmVmaWQiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOm9iamVjdCcgPT4gJG9iamVjdCwNCisgICAgICAgICAgICAgICAgJzpwcmVmaWQnID0+ICRwcmVmaWQNCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ215c3FsX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2l0ZW1fZGVsZXRlZCcsJHByZWZpZCkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ21haWxib3gnOg0KKyAgICAgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsncHJlZmlkJ10pKSB7DQorICAgICAgICAgICAgJHByZWZpZHMgPSBhcnJheSgpOw0KKyAgICAgICAgICAgICRwcmVmaWRzW10gPSAkX2RhdGFbJ3ByZWZpZCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRwcmVmaWRzID0gJF9kYXRhWydwcmVmaWQnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBmb3JlYWNoICgkcHJlZmlkcyBhcyAkcHJlZmlkKSB7DQorICAgICAgICAgICAgaWYgKCFpc19udW1lcmljKCRwcmVmaWQpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBvYmplY3RgIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBwcmVmaWRgID0gOnByZWZpZCIpOw0KKyAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6cHJlZmlkJyA9PiAkcHJlZmlkKSk7DQorICAgICAgICAgICAgJG9iamVjdCA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKVsnb2JqZWN0J107DQorICAgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkb2JqZWN0KSkgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgZmlsdGVyY29uZmAgV0hFUkUgYG9iamVjdGAgPSA6b2JqZWN0IEFORCBgcHJlZmlkYCA9IDpwcmVmaWQiKTsNCisgICAgICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICAgICAnOm9iamVjdCcgPT4gJG9iamVjdCwNCisgICAgICAgICAgICAgICAgJzpwcmVmaWQnID0+ICRwcmVmaWQNCisgICAgICAgICAgICAgICkpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ215c3FsX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2l0ZW1zX2RlbGV0ZWQnLCBpbXBsb2RlKCcsICcsICRwcmVmaWRzKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgIHN3aXRjaCAoJF9zY29wZSkgew0KKyAgICAgICAgY2FzZSAnZG9tYWluJzoNCisgICAgICAgICAgaWYgKCFpc192YWxpZF9kb21haW5fbmFtZSgkX2RhdGEpKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgIGlmICghaGFzRG9tYWluQWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkX2RhdGEpKSB7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfZGF0YSA9IGlkbl90b19hc2NpaShzdHJ0b2xvd2VyKHRyaW0oJF9kYXRhKSksIDAsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsNCisgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAvLyBXSElURUxJU1QNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYG9iamVjdGAsIGB2YWx1ZWAsIGBwcmVmaWRgIEZST00gYGZpbHRlcmNvbmZgIFdIRVJFIGBvcHRpb25gPSd3aGl0ZWxpc3RfZnJvbScgQU5EIChgb2JqZWN0YCBMSUtFIDpvYmplY3RfbWFpbCBPUiBgb2JqZWN0YCA9IDpvYmplY3RfZG9tYWluKSIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOm9iamVjdF9tYWlsJyA9PiAnJUAnIC4gJF9kYXRhLCAnOm9iamVjdF9kb21haW4nID0+ICRfZGF0YSkpOw0KKyAgICAgICAgICAkcm93c1snd2hpdGVsaXN0J10gPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIC8vIEJMQUNLTElTVA0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgb2JqZWN0YCwgYHZhbHVlYCwgYHByZWZpZGAgRlJPTSBgZmlsdGVyY29uZmAgV0hFUkUgYG9wdGlvbmA9J2JsYWNrbGlzdF9mcm9tJyBBTkQgKGBvYmplY3RgIExJS0UgOm9iamVjdF9tYWlsIE9SIGBvYmplY3RgID0gOm9iamVjdF9kb21haW4pIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6b2JqZWN0X21haWwnID0+ICclQCcgLiAkX2RhdGEsICc6b2JqZWN0X2RvbWFpbicgPT4gJF9kYXRhKSk7DQorICAgICAgICAgICRyb3dzWydibGFja2xpc3QnXSA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisNCisgICAgICAgICAgcmV0dXJuICRyb3dzOw0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdtYWlsYm94JzoNCisgICAgICAgICAgaWYgKGlzc2V0KCRfZGF0YSkgJiYgZmlsdGVyX3ZhcigkX2RhdGEsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9kYXRhID0gJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ107DQorICAgICAgICAgIH0NCisgICAgICAgICAgJGRvbWFpbiA9IG1haWxib3goJ2dldCcsICdtYWlsYm94X2RldGFpbHMnLCAkX2RhdGEpWydkb21haW4nXTsNCisgICAgICAgICAgaWYgKGVtcHR5KCRkb21haW4pKSB7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIC8vIFdISVRFTElTVA0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgb2JqZWN0YCwgYHZhbHVlYCwgYHByZWZpZGAgRlJPTSBgZmlsdGVyY29uZmAgV0hFUkUgYG9wdGlvbmA9J3doaXRlbGlzdF9mcm9tJyBBTkQgKGBvYmplY3RgID0gOnVzZXJuYW1lIE9SIGBvYmplY3RgID0gOmRvbWFpbikiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhLCAnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAkcm93c1snd2hpdGVsaXN0J10gPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIC8vIEJMQUNLTElTVA0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgb2JqZWN0YCwgYHZhbHVlYCwgYHByZWZpZGAgRlJPTSBgZmlsdGVyY29uZmAgV0hFUkUgYG9wdGlvbmA9J2JsYWNrbGlzdF9mcm9tJyBBTkQgKGBvYmplY3RgID0gOnVzZXJuYW1lIE9SIGBvYmplY3RgID0gOmRvbWFpbikiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp1c2VybmFtZScgPT4gJF9kYXRhLCAnOmRvbWFpbicgPT4gJGRvbWFpbikpOw0KKyAgICAgICAgICAkcm93c1snYmxhY2tsaXN0J10gPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIHJldHVybiAkcm93czsNCisgICAgICAgIGJyZWFrOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnByZXNldHMuaW5jLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnByZXNldHMuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2FhYTNmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucHJlc2V0cy5pbmMucGhwCkBAIC0wLDAgKzEsMzggQEAKKzw/cGhwCitmdW5jdGlvbiBwcmVzZXRzKCRfYWN0aW9uLCAkX2tpbmQpIHsKKyAgc3dpdGNoICgkX2FjdGlvbikgeworICAgIGNhc2UgJ2dldCc6CisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImRvbWFpbmFkbWluIikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICAkcHJlc2V0cyA9IGFycmF5KCk7CisgICAgICAka2luZCA9IHN0cnRvbG93ZXIodHJpbSgkX2tpbmQpKTsKKyAgICAgICRsYW5nX2Jhc2UgPSAnYWRtaW4nOworICAgICAgJHByZXNldHNfcGF0aCA9IF9fRElSX18gLiAnL3ByZXNldHMvJyAuICRraW5kOworICAgICAgaWYgKCFpbl9hcnJheSgka2luZCwgWydyc3BhbWQnLCAnc2lldmUnXSwgdHJ1ZSkpIHsKKyAgICAgICAgcmV0dXJuIGFycmF5KCk7CisgICAgICB9CisgICAgICBpZiAoJGtpbmQgPT09ICdzaWV2ZScpIHsKKyAgICAgICAgJGxhbmdfYmFzZSA9ICdtYWlsYm94JzsKKyAgICAgIH0KKyAgICAgIGZvcmVhY2ggKGdsb2IoJHByZXNldHNfcGF0aCAuICcvKi55bWwnKSBhcyAkZmlsZW5hbWUpIHsKKyAgICAgICAgJHByZXNldHNbXSA9IGdldFByZXNldEZyb21GaWxlUGF0aCgkZmlsZW5hbWUsICRsYW5nX2Jhc2UpOworICAgICAgfQorICAgICAgcmV0dXJuICRwcmVzZXRzOworICAgIGJyZWFrOworICB9CisgIHJldHVybiBhcnJheSgpOworfQorZnVuY3Rpb24gZ2V0UHJlc2V0RnJvbUZpbGVQYXRoKCRmaWxlUGF0aCwgJGxhbmdfYmFzZSkgeworICBnbG9iYWwgJGxhbmc7CisgICRwcmVzZXQgPSBTcHljOjpZQU1MTG9hZCgkZmlsZVBhdGgpOworICAkcHJlc2V0ID0gWyduYW1lJyA9PiBiYXNlbmFtZSgkZmlsZVBhdGgsICcueW1sJyldICsgJHByZXNldDsKKyAgLyogZ2V0IHRyYW5zbGF0ZWQgaGVhZGxpbmVzICovCisgIGlmIChpc3NldCgkcHJlc2V0WydoZWFkbGluZSddKSAmJiBzdHJwb3MoJHByZXNldFsnaGVhZGxpbmUnXSwgJ2xhbmcuJykgPT09IDApIHsKKyAgICAkbGFuZ1RleHROYW1lID0gdHJpbShzdWJzdHIoJHByZXNldFsnaGVhZGxpbmUnXSwgNSkpOworICAgIGlmIChpc3NldCgkbGFuZ1skbGFuZ19iYXNlXVskbGFuZ1RleHROYW1lXSkpIHsKKyAgICAgICRwcmVzZXRbJ2hlYWRsaW5lJ10gPSAkbGFuZ1skbGFuZ19iYXNlXVskbGFuZ1RleHROYW1lXTsKKyAgICB9CisgIH0KKyAgcmV0dXJuICRwcmVzZXQ7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5wdXNob3Zlci5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucHVzaG92ZXIuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOGQ0NjcwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucHVzaG92ZXIuaW5jLnBocApAQCAtMCwwICsxLDIyMSBAQAorPD9waHANCitmdW5jdGlvbiBwdXNob3ZlcigkX2FjdGlvbiwgJF9kYXRhID0gbnVsbCkgew0KKwlnbG9iYWwgJHBkbzsNCisgIHN3aXRjaCAoJF9hY3Rpb24pIHsNCisgICAgY2FzZSAnZWRpdCc6DQorICAgICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ2FjbCddWydwdXNob3ZlciddKSB8fCAkX1NFU1NJT05bJ2FjbCddWydwdXNob3ZlciddICE9ICIxIiApIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ3VzZXJuYW1lJ10pKSB7DQorICAgICAgICAkdXNlcm5hbWVzID0gYXJyYXkoKTsNCisgICAgICAgICR1c2VybmFtZXNbXSA9ICRfZGF0YVsndXNlcm5hbWUnXTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkdXNlcm5hbWVzID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgIH0NCisgICAgICBmb3JlYWNoICgkdXNlcm5hbWVzIGFzICR1c2VybmFtZSkgew0KKyAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkdXNlcm5hbWUpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgICRkZWxldGUgPSAkX2RhdGFbJ2RlbGV0ZSddOw0KKyAgICAgICAgaWYgKCRkZWxldGUgPT0gInRydWUiKSB7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHB1c2hvdmVyYCBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgICApKTsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdwdXNob3Zlcl9zZXR0aW5nc19lZGl0ZWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJGlzX25vdyA9IHB1c2hvdmVyKCdnZXQnLCAkdXNlcm5hbWUpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAka2V5ID0gKCFlbXB0eSgkX2RhdGFbJ2tleSddKSkgPyAkX2RhdGFbJ2tleSddIDogJGlzX25vd1sna2V5J107DQorICAgICAgICAgICR0b2tlbiA9ICghZW1wdHkoJF9kYXRhWyd0b2tlbiddKSkgPyAkX2RhdGFbJ3Rva2VuJ10gOiAkaXNfbm93Wyd0b2tlbiddOw0KKyAgICAgICAgICAkc2VuZGVycyA9IChpc3NldCgkX2RhdGFbJ3NlbmRlcnMnXSkpID8gJF9kYXRhWydzZW5kZXJzJ10gOiAkaXNfbm93WydzZW5kZXJzJ107DQorICAgICAgICAgICRzZW5kZXJzX3JlZ2V4ID0gKGlzc2V0KCRfZGF0YVsnc2VuZGVyc19yZWdleCddKSkgPyAkX2RhdGFbJ3NlbmRlcnNfcmVnZXgnXSA6ICRpc19ub3dbJ3NlbmRlcnNfcmVnZXgnXTsNCisgICAgICAgICAgJHRpdGxlID0gKCFlbXB0eSgkX2RhdGFbJ3RpdGxlJ10pKSA/ICRfZGF0YVsndGl0bGUnXSA6ICRpc19ub3dbJ3RpdGxlJ107DQorICAgICAgICAgICR0ZXh0ID0gKCFlbXB0eSgkX2RhdGFbJ3RleHQnXSkpID8gJF9kYXRhWyd0ZXh0J10gOiAkaXNfbm93Wyd0ZXh0J107DQorICAgICAgICAgICRhY3RpdmUgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICAgICRldmFsdWF0ZV94X3ByaW8gPSAoaXNzZXQoJF9kYXRhWydldmFsdWF0ZV94X3ByaW8nXSkpID8gaW50dmFsKCRfZGF0YVsnZXZhbHVhdGVfeF9wcmlvJ10pIDogJGlzX25vd1snZXZhbHVhdGVfeF9wcmlvJ107DQorICAgICAgICAgICRvbmx5X3hfcHJpbyA9IChpc3NldCgkX2RhdGFbJ29ubHlfeF9wcmlvJ10pKSA/IGludHZhbCgkX2RhdGFbJ29ubHlfeF9wcmlvJ10pIDogJGlzX25vd1snb25seV94X3ByaW8nXTsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICBpZiAoIWVtcHR5KCRzZW5kZXJzX3JlZ2V4KSAmJiAhaXNfdmFsaWRfcmVnZXgoJHNlbmRlcnNfcmVnZXgpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdJbnZhbGlkIHJlZ2V4Jw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgICRzZW5kZXJzID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRzZW5kZXJzKSk7DQorICAgICAgICBmb3JlYWNoICgkc2VuZGVycyBhcyAkaSA9PiAmJHNlbmRlcikgew0KKyAgICAgICAgICBpZiAoZW1wdHkoJHNlbmRlcikpIHsNCisgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoIWZpbHRlcl92YXIoJHNlbmRlciwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSA9PT0gdHJ1ZSkgew0KKyAgICAgICAgICAgIHVuc2V0KCRzZW5kZXJzWyRpXSk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHNlbmRlcnNbJGldID0gcHJlZ19yZXBsYWNlKCcvXC4oPz0uKj9AZ21haWxcLmNvbSQpLycsICckMScsICRzZW5kZXIpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHNlbmRlcnMgPSBhcnJheV9maWx0ZXIoJHNlbmRlcnMpOw0KKyAgICAgICAgaWYgKGVtcHR5KCRzZW5kZXJzKSkgeyAkc2VuZGVycyA9ICcnOyB9DQorICAgICAgICAkc2VuZGVycyA9IGltcGxvZGUoIiwiLCAkc2VuZGVycyk7DQorICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRrZXkpIHx8IHN0cmxlbigka2V5KSAhPSAzMCkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdwdXNob3Zlcl9rZXknDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCFjdHlwZV9hbG51bSgkdG9rZW4pIHx8IHN0cmxlbigkdG9rZW4pICE9IDMwKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ3B1c2hvdmVyX3Rva2VuJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgICRwb19hdHRyaWJ1dGVzID0ganNvbl9lbmNvZGUoDQorICAgICAgICAgIGFycmF5KA0KKyAgICAgICAgICAgICdldmFsdWF0ZV94X3ByaW8nID0+IHN0cnZhbChpbnR2YWwoJGV2YWx1YXRlX3hfcHJpbykpLA0KKyAgICAgICAgICAgICdvbmx5X3hfcHJpbycgPT4gc3RydmFsKGludHZhbCgkb25seV94X3ByaW8pKQ0KKyAgICAgICAgICApDQorICAgICAgICApOw0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJSRVBMQUNFIElOVE8gYHB1c2hvdmVyYCAoYHVzZXJuYW1lYCwgYGtleWAsIGBhdHRyaWJ1dGVzYCwgYHNlbmRlcnNfcmVnZXhgLCBgc2VuZGVyc2AsIGB0b2tlbmAsIGB0aXRsZWAsIGB0ZXh0YCwgYGFjdGl2ZWApDQorICAgICAgICAgIFZBTFVFUyAoOnVzZXJuYW1lLCA6a2V5LCA6cG9fYXR0cmlidXRlcywgOnNlbmRlcnNfcmVnZXgsIDpzZW5kZXJzLCA6dG9rZW4sIDp0aXRsZSwgOnRleHQsIDphY3RpdmUpIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAnOmtleScgPT4gJGtleSwNCisgICAgICAgICAgJzpwb19hdHRyaWJ1dGVzJyA9PiAkcG9fYXR0cmlidXRlcywNCisgICAgICAgICAgJzpzZW5kZXJzX3JlZ2V4JyA9PiAkc2VuZGVyc19yZWdleCwNCisgICAgICAgICAgJzpzZW5kZXJzJyA9PiAkc2VuZGVycywNCisgICAgICAgICAgJzp0b2tlbicgPT4gJHRva2VuLA0KKyAgICAgICAgICAnOnRpdGxlJyA9PiAkdGl0bGUsDQorICAgICAgICAgICc6dGV4dCcgPT4gJHRleHQsDQorICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgICApKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAnbXNnJyA9PiAncHVzaG92ZXJfc2V0dGluZ3NfZWRpdGVkJw0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJF9kYXRhKSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gYHB1c2hvdmVyYCBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOnVzZXJuYW1lJyA9PiAkX2RhdGENCisgICAgICApKTsNCisgICAgICAkZGF0YSA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAkZGF0YVsnYXR0cmlidXRlcyddID0ganNvbl9kZWNvZGUoJGRhdGFbJ2F0dHJpYnV0ZXMnXSwgdHJ1ZSk7DQorICAgICAgaWYgKGVtcHR5KCRkYXRhKSkgew0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIHJldHVybiAkZGF0YTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICd0ZXN0JzoNCisgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3B1c2hvdmVyJ10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ3B1c2hvdmVyJ10gIT0gIjEiICkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsndXNlcm5hbWUnXSkpIHsNCisgICAgICAgICR1c2VybmFtZXMgPSBhcnJheSgpOw0KKyAgICAgICAgJHVzZXJuYW1lc1tdID0gJF9kYXRhWyd1c2VybmFtZSddOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICR1c2VybmFtZXMgPSAkX2RhdGFbJ3VzZXJuYW1lJ107DQorICAgICAgfQ0KKyAgICAgIGZvcmVhY2ggKCR1c2VybmFtZXMgYXMgJHVzZXJuYW1lKSB7DQorICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICR1c2VybmFtZSkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgKiBGUk9NIGBwdXNob3ZlcmANCisgICAgICAgICAgV0hFUkUgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZQ0KKyAgICAgICAgKSk7DQorICAgICAgICAkYXBpX2RhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICBpZiAoIWVtcHR5KCRhcGlfZGF0YSkpIHsNCisgICAgICAgICAgJHRpdGxlID0gKCFlbXB0eSgkYXBpX2RhdGFbJ3RpdGxlJ10pKSA/ICRhcGlfZGF0YVsndGl0bGUnXSA6ICdNYWlsJzsNCisgICAgICAgICAgJHRleHQgPSAoIWVtcHR5KCRhcGlfZGF0YVsndGV4dCddKSkgPyAkYXBpX2RhdGFbJ3RleHQnXSA6ICdZb3VcJ3ZlIGdvdCBtYWlsIPCfk6cnOw0KKyAgICAgICAgICBjdXJsX3NldG9wdF9hcnJheSgkY2ggPSBjdXJsX2luaXQoKSwgYXJyYXkoDQorICAgICAgICAgICAgQ1VSTE9QVF9VUkwgPT4gImh0dHBzOi8vYXBpLnB1c2hvdmVyLm5ldC8xL3VzZXJzL3ZhbGlkYXRlLmpzb24iLA0KKyAgICAgICAgICAgIENVUkxPUFRfUE9TVEZJRUxEUyA9PiBhcnJheSgNCisgICAgICAgICAgICAgICJ0b2tlbiIgPT4gJGFwaV9kYXRhWyd0b2tlbiddLA0KKyAgICAgICAgICAgICAgInVzZXIiID0+ICRhcGlfZGF0YVsna2V5J10NCisgICAgICAgICAgICApLA0KKyAgICAgICAgICAgIENVUkxPUFRfU0FGRV9VUExPQUQgPT4gdHJ1ZSwNCisgICAgICAgICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IHRydWUsDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7DQorICAgICAgICAgICRodHRwY29kZSA9IGN1cmxfZ2V0aW5mbygkY2gsIENVUkxJTkZPX0hUVFBfQ09ERSk7DQorICAgICAgICAgIGN1cmxfY2xvc2UoJGNoKTsNCisgICAgICAgICAgaWYgKCRodHRwY29kZSA9PSAyMDApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gc3ByaW50ZignUHVzaG92ZXIgQVBJIE9LICglZCk6ICVzJywgJGh0dHBjb2RlLCAkcmVzdWx0KQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gc3ByaW50ZignUHVzaG92ZXIgQVBJIEVSUiAoJWQpOiAlcycsICRodHRwY29kZSwgJHJlc3VsdCkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSksDQorICAgICAgICAgICAgJ21zZycgPT4gJ3B1c2hvdmVyX2NyZWRlbnRpYWxzX21pc3NpbmcnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgfQ0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5xdWFyYW50aW5lLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5xdWFyYW50aW5lLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmNDlkZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnF1YXJhbnRpbmUuaW5jLnBocApAQCAtMCwwICsxLDg0MSBAQAorPD9waHANCit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxQSFBNYWlsZXI7DQordXNlIFBIUE1haWxlclxQSFBNYWlsZXJcU01UUDsNCit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxFeGNlcHRpb247DQorZnVuY3Rpb24gcXVhcmFudGluZSgkX2FjdGlvbiwgJF9kYXRhID0gbnVsbCkgew0KKwlnbG9iYWwgJHBkbzsNCisJZ2xvYmFsICRyZWRpczsNCisJZ2xvYmFsICRsYW5nOw0KKwkkX2RhdGFfbG9nID0gJF9kYXRhOw0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdxdWlja19kZWxldGUnOg0KKyAgICAgIC8vIERvbnQgcmV0dXJuIHJlc3VsdHMsIGp1c3QgbG9nDQorICAgICAgJGhhc2ggPSB0cmltKCRfZGF0YSk7DQorICAgICAgaWYgKHByZWdfbWF0Y2goIi9eKFthLWYwLTldezY0fSkkLyIsICRoYXNoKSA9PT0gZmFsc2UpIHsNCisgICAgICAgIGxvZ2dlcihhcnJheSgncmV0dXJuJyA9PiBhcnJheSgNCisgICAgICAgICAgYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICApDQorICAgICAgICApKSk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgnU0VMRUNUIGBpZGAgRlJPTSBgcXVhcmFudGluZWAgTEVGVCBPVVRFUiBKT0lOIGB1c2VyX2FjbGAgT04gYHVzZXJfYWNsYC5gdXNlcm5hbWVgID0gYHJjcHRgDQorICAgICAgICBXSEVSRSBTSEEyKENPTkNBVChgaWRgLCBgcWlkYCksIDI1NikgPSA6aGFzaA0KKyAgICAgICAgICBBTkQgdXNlcl9hY2wucXVhcmFudGluZSA9IDENCisgICAgICAgICAgQU5EIHJjcHQgSU4gKFNFTEVDVCB1c2VybmFtZSBGUk9NIG1haWxib3gpJyk7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzpoYXNoJyA9PiAkaGFzaCkpOw0KKyAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgaWYgKGVtcHR5KCRyb3dbJ2lkJ10pIHx8ICFpc19udW1lcmljKCRyb3dbJ2lkJ10pKSB7DQorICAgICAgICBsb2dnZXIoYXJyYXkoJ3JldHVybicgPT4gYXJyYXkoDQorICAgICAgICAgIGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSkpOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHF1YXJhbnRpbmVgIFdIRVJFIGlkID0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzppZCcgPT4gJHJvd1snaWQnXQ0KKyAgICAgICAgKSk7DQorICAgICAgfQ0KKyAgICAgIGxvZ2dlcihhcnJheSgncmV0dXJuJyA9PiBhcnJheSgNCisgICAgICAgIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2l0ZW1fZGVsZXRlZCcsICRyb3dbJ2lkJ10pDQorICAgICAgICApDQorICAgICAgKSkpOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAncXVpY2tfcmVsZWFzZSc6DQorICAgICAgLy8gRG9udCByZXR1cm4gcmVzdWx0cywganVzdCBsb2cNCisgICAgICAkaGFzaCA9IHRyaW0oJF9kYXRhKTsNCisgICAgICBpZiAocHJlZ19tYXRjaCgiL14oW2EtZjAtOV17NjR9KSQvIiwgJGhhc2gpID09PSBmYWxzZSkgew0KKyAgICAgICAgbG9nZ2VyKGFycmF5KCdyZXR1cm4nID0+IGFycmF5KA0KKyAgICAgICAgICBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICkNCisgICAgICAgICkpKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCdTRUxFQ1QgYGlkYCBGUk9NIGBxdWFyYW50aW5lYCBMRUZUIE9VVEVSIEpPSU4gYHVzZXJfYWNsYCBPTiBgdXNlcl9hY2xgLmB1c2VybmFtZWAgPSBgcmNwdGANCisgICAgICAgIFdIRVJFIFNIQTIoQ09OQ0FUKGBpZGAsIGBxaWRgKSwgMjU2KSA9IDpoYXNoDQorICAgICAgICAgIEFORCBgdXNlcl9hY2xgLmBxdWFyYW50aW5lYCA9IDENCisgICAgICAgICAgQU5EIGB1c2VybmFtZWAgSU4gKFNFTEVDVCBgdXNlcm5hbWVgIEZST00gYG1haWxib3hgKScpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aGFzaCcgPT4gJGhhc2gpKTsNCisgICAgICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIGlmIChlbXB0eSgkcm93WydpZCddKSB8fCAhaXNfbnVtZXJpYygkcm93WydpZCddKSkgew0KKyAgICAgICAgbG9nZ2VyKGFycmF5KCdyZXR1cm4nID0+IGFycmF5KA0KKyAgICAgICAgICBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICkNCisgICAgICAgICkpKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoJ1NFTEVDVCBgbXNnYCwgYHFpZGAsIGBzZW5kZXJgLCBgcmNwdGAgRlJPTSBgcXVhcmFudGluZWAgV0hFUkUgYGlkYCA9IDppZCcpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJHJvd1snaWQnXSkpOw0KKyAgICAgICAgJGRldGFpbF9yb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAkc2VuZGVyID0gIWVtcHR5KCRkZXRhaWxfcm93WydzZW5kZXInXSkgPyAkZGV0YWlsX3Jvd1snc2VuZGVyJ10gOiAnc2VuZGVyLXVua25vd25AcnNwYW1kJzsNCisgICAgICAgIGlmICghZW1wdHkoZ2V0aG9zdGJ5bmFtZWwoJ3Bvc3RmaXgtbWFpbGNvdycpKSkgew0KKyAgICAgICAgICAkcG9zdGZpeCA9ICdwb3N0Zml4LW1haWxjb3cnOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCFlbXB0eShnZXRob3N0YnluYW1lbCgncG9zdGZpeCcpKSkgew0KKyAgICAgICAgICAkcG9zdGZpeCA9ICdwb3N0Zml4JzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICBsb2dnZXIoYXJyYXkoJ3JldHVybicgPT4gYXJyYXkoDQorICAgICAgICAgICAgYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVsZWFzZV9zZW5kX2ZhaWxlZCcsICdDYW5ub3QgZGV0ZXJtaW5lIFBvc3RmaXggaG9zdCcpDQorICAgICAgICAgICAgKQ0KKyAgICAgICAgICApKSk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAkcmVsZWFzZV9mb3JtYXQgPSAkcmVkaXMtPkdldCgnUV9SRUxFQVNFX0ZPUk1BVCcpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgIGxvZ2dlcihhcnJheSgncmV0dXJuJyA9PiBhcnJheSgNCisgICAgICAgICAgICBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgKQ0KKyAgICAgICAgICApKSk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmICgkcmVsZWFzZV9mb3JtYXQgPT0gJ2F0dGFjaG1lbnQnKSB7DQorICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgJG1haWwgPSBuZXcgUEhQTWFpbGVyKHRydWUpOw0KKyAgICAgICAgICAgICRtYWlsLT5pc1NNVFAoKTsNCisgICAgICAgICAgICAkbWFpbC0+U01UUERlYnVnID0gMDsNCisgICAgICAgICAgICAkbWFpbC0+U01UUE9wdGlvbnMgPSBhcnJheSgNCisgICAgICAgICAgICAgICdzc2wnID0+IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd2ZXJpZnlfcGVlcicgPT4gZmFsc2UsDQorICAgICAgICAgICAgICAgICAgJ3ZlcmlmeV9wZWVyX25hbWUnID0+IGZhbHNlLA0KKyAgICAgICAgICAgICAgICAgICdhbGxvd19zZWxmX3NpZ25lZCcgPT4gdHJ1ZQ0KKyAgICAgICAgICAgICAgKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgaWYgKCFlbXB0eShnZXRob3N0YnluYW1lbCgncG9zdGZpeC1tYWlsY293JykpKSB7DQorICAgICAgICAgICAgICAkcG9zdGZpeCA9ICdwb3N0Zml4LW1haWxjb3cnOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWVtcHR5KGdldGhvc3RieW5hbWVsKCdwb3N0Zml4JykpKSB7DQorICAgICAgICAgICAgICAkcG9zdGZpeCA9ICdwb3N0Zml4JzsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICBsb2dnZXIoYXJyYXkoJ3JldHVybicgPT4gYXJyYXkoDQorICAgICAgICAgICAgICAgIGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlbGVhc2Vfc2VuZF9mYWlsZWQnLCAnQ2Fubm90IGRldGVybWluZSBQb3N0Zml4IGhvc3QnKQ0KKyAgICAgICAgICAgICAgICApDQorICAgICAgICAgICAgICApKSk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRtYWlsLT5Ib3N0ID0gJHBvc3RmaXg7DQorICAgICAgICAgICAgJG1haWwtPlBvcnQgPSA1OTA7DQorICAgICAgICAgICAgJG1haWwtPnNldEZyb20oJHNlbmRlcik7DQorICAgICAgICAgICAgJG1haWwtPkNoYXJTZXQgPSAnVVRGLTgnOw0KKyAgICAgICAgICAgICRtYWlsLT5TdWJqZWN0ID0gc3ByaW50ZigkbGFuZ1sncXVhcmFudGluZSddWydyZWxlYXNlX3N1YmplY3QnXSwgJGRldGFpbF9yb3dbJ3FpZCddKTsNCisgICAgICAgICAgICAkbWFpbC0+YWRkQWRkcmVzcygkZGV0YWlsX3Jvd1sncmNwdCddKTsNCisgICAgICAgICAgICAkbWFpbC0+SXNIVE1MKGZhbHNlKTsNCisgICAgICAgICAgICAkbXNnX3RtcGYgPSB0ZW1wbmFtKCIvdG1wIiwgJGRldGFpbF9yb3dbJ3FpZCddKTsNCisgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkbXNnX3RtcGYsICRkZXRhaWxfcm93Wydtc2cnXSk7DQorICAgICAgICAgICAgJG1haWwtPmFkZEF0dGFjaG1lbnQoJG1zZ190bXBmLCAkZGV0YWlsX3Jvd1sncWlkJ10gLiAnLmVtbCcpOw0KKyAgICAgICAgICAgICRtYWlsLT5Cb2R5ID0gc3ByaW50ZigkbGFuZ1sncXVhcmFudGluZSddWydyZWxlYXNlX2JvZHknXSk7DQorICAgICAgICAgICAgJG1haWwtPnNlbmQoKTsNCisgICAgICAgICAgICB1bmxpbmsoJG1zZ190bXBmKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjYXRjaCAocGhwbWFpbGVyRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgdW5saW5rKCRtc2dfdG1wZik7DQorICAgICAgICAgICAgbG9nZ2VyKGFycmF5KCdyZXR1cm4nID0+IGFycmF5KA0KKyAgICAgICAgICAgICAgYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVsZWFzZV9zZW5kX2ZhaWxlZCcsICRlLT5lcnJvck1lc3NhZ2UoKSkNCisgICAgICAgICAgICAgICkNCisgICAgICAgICAgICApKSk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICBlbHNlaWYgKCRyZWxlYXNlX2Zvcm1hdCA9PSAncmF3Jykgew0KKyAgICAgICAgICAkZGV0YWlsX3Jvd1snbXNnJ10gPSBwcmVnX3JlcGxhY2UoJy9eWC1TcGFtLUZsYWc6ICguKikvJywgJ1gtUHJlLVJlbGVhc2UtU3BhbS1GbGFnICQxJywgJGRldGFpbF9yb3dbJ21zZyddKTsNCisgICAgICAgICAgJHBvc3RmaXhfdGFsayA9IGFycmF5KA0KKyAgICAgICAgICAgIGFycmF5KCcyMjAnLCAnSEVMTyBxdWFyYW50aW5lJyAuIGNocigxMCkpLA0KKyAgICAgICAgICAgIGFycmF5KCcyNTAnLCAnTUFJTCBGUk9NOiAnIC4gJHNlbmRlciAuIGNocigxMCkpLA0KKyAgICAgICAgICAgIGFycmF5KCcyNTAnLCAnUkNQVCBUTzogJyAuICRkZXRhaWxfcm93WydyY3B0J10gLiBjaHIoMTApKSwNCisgICAgICAgICAgICBhcnJheSgnMjUwJywgJ0RBVEEnIC4gY2hyKDEwKSksDQorICAgICAgICAgICAgYXJyYXkoJzM1NCcsICRkZXRhaWxfcm93Wydtc2cnXSAuIGNocigxMCkgLiAnLicgLiBjaHIoMTApKSwNCisgICAgICAgICAgICBhcnJheSgnMjUwJywgJ1FVSVQnIC4gY2hyKDEwKSksDQorICAgICAgICAgICAgYXJyYXkoJzIyMScsICcnKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICAvLyBUaGFua3MgdG8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjYzMjM5OS9naXZlbi1hbi1lbWFpbC1hcy1yYXctdGV4dC1ob3ctY2FuLWktc2VuZC1pdC11c2luZy1waHANCisgICAgICAgICAgJHNtdHBfY29ubmVjdGlvbiA9IGZzb2Nrb3BlbigkcG9zdGZpeCwgNTkwLCAkZXJybm8sICRlcnJzdHIsIDEpOyANCisgICAgICAgICAgaWYgKCEkc210cF9jb25uZWN0aW9uKSB7DQorICAgICAgICAgICAgbG9nZ2VyKGFycmF5KCdyZXR1cm4nID0+IGFycmF5KA0KKyAgICAgICAgICAgICAgYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnQ2Fubm90IGNvbm5lY3QgdG8gUG9zdGZpeCcNCisgICAgICAgICAgICAgICkNCisgICAgICAgICAgICApKSk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkcG9zdGZpeF90YWxrKTsgJGkrKykgew0KKyAgICAgICAgICAgICRzbXRwX3Jlc291cmNlID0gZmdldHMoJHNtdHBfY29ubmVjdGlvbiwgMjU2KTsgDQorICAgICAgICAgICAgaWYgKHN1YnN0cigkc210cF9yZXNvdXJjZSwgMCwgMykgIT09ICRwb3N0Zml4X3RhbGtbJGldWzBdKSB7DQorICAgICAgICAgICAgICAkcmV0ID0gc3Vic3RyKCRzbXRwX3Jlc291cmNlLCAwLCAzKTsNCisgICAgICAgICAgICAgICRyZXQgPSAoZW1wdHkoJHJldCkpID8gJy0nIDogJHJldDsNCisgICAgICAgICAgICAgIGxvZ2dlcihhcnJheSgncmV0dXJuJyA9PiBhcnJheSgNCisgICAgICAgICAgICAgICAgYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiAnUG9zdGZpeCByZXR1cm5lZCBTTVRQIGNvZGUgJyAuICRzbXRwX3Jlc291cmNlIC4gJywgZXhwZWN0ZWQgJyAuICRwb3N0Zml4X3RhbGtbJGldWzBdDQorICAgICAgICAgICAgICAgICkNCisgICAgICAgICAgICAgICkpKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgkcG9zdGZpeF90YWxrWyRpXVsxXSAhPT0gJycpICB7DQorICAgICAgICAgICAgICBmcHV0cygkc210cF9jb25uZWN0aW9uLCAkcG9zdGZpeF90YWxrWyRpXVsxXSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZjbG9zZSgkc210cF9jb25uZWN0aW9uKTsNCisgICAgICAgIH0NCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHF1YXJhbnRpbmVgIFdIRVJFIGlkID0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzppZCcgPT4gJHJvd1snaWQnXQ0KKyAgICAgICAgKSk7DQorICAgICAgfQ0KKyAgICBsb2dnZXIoYXJyYXkoJ3JldHVybicgPT4gYXJyYXkoDQorICAgICAgYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXRlbV9yZWxlYXNlZCcsICRoYXNoKQ0KKyAgICAgICkNCisgICAgKSkpOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGVsZXRlJzoNCisgICAgICBpZiAoIWlzX2FycmF5KCRfZGF0YVsnaWQnXSkpIHsNCisgICAgICAgICRpZHMgPSBhcnJheSgpOw0KKyAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgfQ0KKyAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsncXVhcmFudGluZSddKSB8fCAkX1NFU1NJT05bJ2FjbCddWydxdWFyYW50aW5lJ10gIT0gIjEiICkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgIGlmICghaXNfbnVtZXJpYygkaWQpKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoJ1NFTEVDVCBgcmNwdGAgRlJPTSBgcXVhcmFudGluZWAgV0hFUkUgYGlkYCA9IDppZCcpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJGlkKSk7DQorICAgICAgICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkcm93WydyY3B0J10pICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2FkbWluJykgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHF1YXJhbnRpbmVgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzppZCcgPT4gJGlkDQorICAgICAgICAgICkpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaXRlbV9kZWxldGVkJywgJGlkKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdlZGl0JzoNCisgICAgICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnYWNsJ11bJ3F1YXJhbnRpbmUnXSkgfHwgJF9TRVNTSU9OWydhY2wnXVsncXVhcmFudGluZSddICE9ICIxIiApIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIC8vIEVkaXQgc2V0dGluZ3MNCisgICAgICBpZiAoJF9kYXRhWydhY3Rpb24nXSA9PSAnc2V0dGluZ3MnKSB7DQorICAgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHJldGVudGlvbl9zaXplID0gJF9kYXRhWydyZXRlbnRpb25fc2l6ZSddOw0KKyAgICAgICAgaWYgKCRfZGF0YVsncmVsZWFzZV9mb3JtYXQnXSA9PSAnYXR0YWNobWVudCcgfHwgJF9kYXRhWydyZWxlYXNlX2Zvcm1hdCddID09ICdyYXcnKSB7DQorICAgICAgICAgICRyZWxlYXNlX2Zvcm1hdCA9ICRfZGF0YVsncmVsZWFzZV9mb3JtYXQnXTsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkcmVsZWFzZV9mb3JtYXQgPSAncmF3JzsNCisgICAgICAgIH0NCisgICAgICAgICRtYXhfc2l6ZSA9ICRfZGF0YVsnbWF4X3NpemUnXTsNCisgICAgICAgIGlmICgkX2RhdGFbJ21heF9zY29yZSddID09ICIiKSB7DQorICAgICAgICAgICRtYXhfc2NvcmUgPSAnJzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkbWF4X3Njb3JlID0gZmxvYXR2YWwoJF9kYXRhWydtYXhfc2NvcmUnXSk7DQorICAgICAgICB9DQorICAgICAgICAkbWF4X2FnZSA9IGludHZhbCgkX2RhdGFbJ21heF9hZ2UnXSk7DQorICAgICAgICAkc3ViamVjdCA9ICRfZGF0YVsnc3ViamVjdCddOw0KKyAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRfZGF0YVsnYmNjJ10sIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsNCisgICAgICAgICAgJGJjYyA9ICcnOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRiY2MgPSAkX2RhdGFbJ2JjYyddOw0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKCFmaWx0ZXJfdmFyKCRfZGF0YVsncmVkaXJlY3QnXSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAkcmVkaXJlY3QgPSAnJzsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkcmVkaXJlY3QgPSAkX2RhdGFbJ3JlZGlyZWN0J107DQorICAgICAgICB9DQorICAgICAgICBpZiAoIWZpbHRlcl92YXIoJF9kYXRhWydzZW5kZXInXSwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSkgew0KKyAgICAgICAgICAkc2VuZGVyID0gJyc7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJHNlbmRlciA9ICRfZGF0YVsnc2VuZGVyJ107DQorICAgICAgICB9DQorICAgICAgICAkaHRtbCA9ICRfZGF0YVsnaHRtbF90bXBsJ107DQorICAgICAgICBpZiAoJG1heF9hZ2UgPD0gMCkgew0KKyAgICAgICAgICAkbWF4X2FnZSA9IDM2NTsNCisgICAgICAgIH0NCisgICAgICAgICRleGNsdWRlX2RvbWFpbnMgPSAoYXJyYXkpJF9kYXRhWydleGNsdWRlX2RvbWFpbnMnXTsNCisgICAgICAgIHRyeSB7DQorICAgICAgICAgICRyZWRpcy0+U2V0KCdRX1JFVEVOVElPTl9TSVpFJywgaW50dmFsKCRyZXRlbnRpb25fc2l6ZSkpOw0KKyAgICAgICAgICAkcmVkaXMtPlNldCgnUV9NQVhfU0laRScsIGludHZhbCgkbWF4X3NpemUpKTsNCisgICAgICAgICAgJHJlZGlzLT5TZXQoJ1FfTUFYX1NDT1JFJywgJG1heF9zY29yZSk7DQorICAgICAgICAgICRyZWRpcy0+U2V0KCdRX01BWF9BR0UnLCAkbWF4X2FnZSk7DQorICAgICAgICAgICRyZWRpcy0+U2V0KCdRX0VYQ0xVREVfRE9NQUlOUycsIGpzb25fZW5jb2RlKCRleGNsdWRlX2RvbWFpbnMpKTsNCisgICAgICAgICAgJHJlZGlzLT5TZXQoJ1FfUkVMRUFTRV9GT1JNQVQnLCAkcmVsZWFzZV9mb3JtYXQpOw0KKyAgICAgICAgICAkcmVkaXMtPlNldCgnUV9TRU5ERVInLCAkc2VuZGVyKTsNCisgICAgICAgICAgJHJlZGlzLT5TZXQoJ1FfQkNDJywgJGJjYyk7DQorICAgICAgICAgICRyZWRpcy0+U2V0KCdRX1JFRElSRUNUJywgJHJlZGlyZWN0KTsNCisgICAgICAgICAgJHJlZGlzLT5TZXQoJ1FfU1VCSicsICRzdWJqZWN0KTsNCisgICAgICAgICAgJHJlZGlzLT5TZXQoJ1FfSFRNTCcsICRodG1sKTsNCisgICAgICAgIH0NCisgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ3NhdmVkX3NldHRpbmdzJw0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgICAgLy8gUmVsZWFzZSBpdGVtDQorICAgICAgZWxzZWlmICgkX2RhdGFbJ2FjdGlvbiddID09ICdyZWxlYXNlJyB8fCAkX2RhdGFbJ2FjdGlvbiddID09ICdsZWFybmhhbScpIHsNCisgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydpZCddKSkgew0KKyAgICAgICAgICAkaWRzID0gYXJyYXkoKTsNCisgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICB9DQorICAgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJGlkKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgnU0VMRUNUIGBtc2dgLCBgYWN0aW9uYCwgYHFpZGAsIGBzZW5kZXJgLCBgcmNwdGAgRlJPTSBgcXVhcmFudGluZWAgV0hFUkUgYGlkYCA9IDppZCcpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAgICAgJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgaWYgKCFoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkcm93WydyY3B0J10pICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2FkbWluJyB8fCBlbXB0eSgkcm93WydyY3B0J10pKSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHNlbmRlciA9ICFlbXB0eSgkcm93WydzZW5kZXInXSkgPyAkcm93WydzZW5kZXInXSA6ICdzZW5kZXItdW5rbm93bkByc3BhbWQnOw0KKyAgICAgICAgICBpZiAoIWVtcHR5KGdldGhvc3RieW5hbWVsKCdwb3N0Zml4LW1haWxjb3cnKSkpIHsNCisgICAgICAgICAgICAkcG9zdGZpeCA9ICdwb3N0Zml4LW1haWxjb3cnOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmICghZW1wdHkoZ2V0aG9zdGJ5bmFtZWwoJ3Bvc3RmaXgnKSkpIHsNCisgICAgICAgICAgICAkcG9zdGZpeCA9ICdwb3N0Zml4JzsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWxlYXNlX3NlbmRfZmFpbGVkJywgJ0Nhbm5vdCBkZXRlcm1pbmUgUG9zdGZpeCBob3N0JykNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgJHJlbGVhc2VfZm9ybWF0ID0gJHJlZGlzLT5HZXQoJ1FfUkVMRUFTRV9GT1JNQVQnKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKCRyZWxlYXNlX2Zvcm1hdCA9PSAnYXR0YWNobWVudCcpIHsNCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgJG1haWwgPSBuZXcgUEhQTWFpbGVyKHRydWUpOw0KKyAgICAgICAgICAgICAgJG1haWwtPmlzU01UUCgpOw0KKyAgICAgICAgICAgICAgJG1haWwtPlNNVFBEZWJ1ZyA9IDA7DQorICAgICAgICAgICAgICAkbWFpbC0+U01UUE9wdGlvbnMgPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3NzbCcgPT4gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAndmVyaWZ5X3BlZXInID0+IGZhbHNlLA0KKyAgICAgICAgICAgICAgICAgICAgJ3ZlcmlmeV9wZWVyX25hbWUnID0+IGZhbHNlLA0KKyAgICAgICAgICAgICAgICAgICAgJ2FsbG93X3NlbGZfc2lnbmVkJyA9PiB0cnVlDQorICAgICAgICAgICAgICAgICkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBpZiAoIWVtcHR5KGdldGhvc3RieW5hbWVsKCdwb3N0Zml4LW1haWxjb3cnKSkpIHsNCisgICAgICAgICAgICAgICAgJHBvc3RmaXggPSAncG9zdGZpeC1tYWlsY293JzsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGlmICghZW1wdHkoZ2V0aG9zdGJ5bmFtZWwoJ3Bvc3RmaXgnKSkpIHsNCisgICAgICAgICAgICAgICAgJHBvc3RmaXggPSAncG9zdGZpeCc7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVsZWFzZV9zZW5kX2ZhaWxlZCcsICdDYW5ub3QgZGV0ZXJtaW5lIFBvc3RmaXggaG9zdCcpDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgJG1haWwtPkhvc3QgPSAkcG9zdGZpeDsNCisgICAgICAgICAgICAgICRtYWlsLT5Qb3J0ID0gNTkwOw0KKyAgICAgICAgICAgICAgJG1haWwtPnNldEZyb20oJHNlbmRlcik7DQorICAgICAgICAgICAgICAkbWFpbC0+Q2hhclNldCA9ICdVVEYtOCc7DQorICAgICAgICAgICAgICAkbWFpbC0+U3ViamVjdCA9IHNwcmludGYoJGxhbmdbJ3F1YXJhbnRpbmUnXVsncmVsZWFzZV9zdWJqZWN0J10sICRyb3dbJ3FpZCddKTsNCisgICAgICAgICAgICAgICRtYWlsLT5hZGRBZGRyZXNzKCRyb3dbJ3JjcHQnXSk7DQorICAgICAgICAgICAgICAkbWFpbC0+SXNIVE1MKGZhbHNlKTsNCisgICAgICAgICAgICAgICRtc2dfdG1wZiA9IHRlbXBuYW0oIi90bXAiLCAkcm93WydxaWQnXSk7DQorICAgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkbXNnX3RtcGYsICRyb3dbJ21zZyddKTsNCisgICAgICAgICAgICAgICRtYWlsLT5hZGRBdHRhY2htZW50KCRtc2dfdG1wZiwgJHJvd1sncWlkJ10gLiAnLmVtbCcpOw0KKyAgICAgICAgICAgICAgJG1haWwtPkJvZHkgPSBzcHJpbnRmKCRsYW5nWydxdWFyYW50aW5lJ11bJ3JlbGVhc2VfYm9keSddKTsNCisgICAgICAgICAgICAgICRtYWlsLT5zZW5kKCk7DQorICAgICAgICAgICAgICB1bmxpbmsoJG1zZ190bXBmKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgY2F0Y2ggKHBocG1haWxlckV4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgdW5saW5rKCRtc2dfdG1wZik7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWxlYXNlX3NlbmRfZmFpbGVkJywgJGUtPmVycm9yTWVzc2FnZSgpKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKCRyZWxlYXNlX2Zvcm1hdCA9PSAncmF3Jykgew0KKyAgICAgICAgICAgICRyb3dbJ21zZyddID0gcHJlZ19yZXBsYWNlKCcvXlgtU3BhbS1GbGFnOiAoLiopLycsICdYLVByZS1SZWxlYXNlLVNwYW0tRmxhZyAkMScsICRyb3dbJ21zZyddKTsNCisgICAgICAgICAgICAkcG9zdGZpeF90YWxrID0gYXJyYXkoDQorICAgICAgICAgICAgICBhcnJheSgnMjIwJywgJ0hFTE8gcXVhcmFudGluZScgLiBjaHIoMTApKSwNCisgICAgICAgICAgICAgIGFycmF5KCcyNTAnLCAnTUFJTCBGUk9NOiAnIC4gJHNlbmRlciAuIGNocigxMCkpLA0KKyAgICAgICAgICAgICAgYXJyYXkoJzI1MCcsICdSQ1BUIFRPOiAnIC4gJHJvd1sncmNwdCddIC4gY2hyKDEwKSksDQorICAgICAgICAgICAgICBhcnJheSgnMjUwJywgJ0RBVEEnIC4gY2hyKDEwKSksDQorICAgICAgICAgICAgICBhcnJheSgnMzU0Jywgc3RyX3JlcGxhY2UoIlxuLiIsICcnLCAkcm93Wydtc2cnXSkgLiBjaHIoMTApIC4gJy4nIC4gY2hyKDEwKSksDQorICAgICAgICAgICAgICBhcnJheSgnMjUwJywgJ1FVSVQnIC4gY2hyKDEwKSksDQorICAgICAgICAgICAgICBhcnJheSgnMjIxJywgJycpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAvLyBUaGFua3MgdG8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjYzMjM5OS9naXZlbi1hbi1lbWFpbC1hcy1yYXctdGV4dC1ob3ctY2FuLWktc2VuZC1pdC11c2luZy1waHANCisgICAgICAgICAgICAkc210cF9jb25uZWN0aW9uID0gZnNvY2tvcGVuKCRwb3N0Zml4LCA1OTAsICRlcnJubywgJGVycnN0ciwgMSk7IA0KKyAgICAgICAgICAgIGlmICghJHNtdHBfY29ubmVjdGlvbikgew0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnQ2Fubm90IGNvbm5lY3QgdG8gUG9zdGZpeCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkcG9zdGZpeF90YWxrKTsgJGkrKykgew0KKyAgICAgICAgICAgICAgJHNtdHBfcmVzb3VyY2UgPSBmZ2V0cygkc210cF9jb25uZWN0aW9uLCAyNTYpOyANCisgICAgICAgICAgICAgIGlmIChzdWJzdHIoJHNtdHBfcmVzb3VyY2UsIDAsIDMpICE9PSAkcG9zdGZpeF90YWxrWyRpXVswXSkgew0KKyAgICAgICAgICAgICAgICAkcmV0ID0gc3Vic3RyKCRzbXRwX3Jlc291cmNlLCAwLCAzKTsNCisgICAgICAgICAgICAgICAgJHJldCA9IChlbXB0eSgkcmV0KSkgPyAnLScgOiAkcmV0Ow0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdQb3N0Zml4IHJldHVybmVkIFNNVFAgY29kZSAnIC4gJHNtdHBfcmVzb3VyY2UgLiAnLCBleHBlY3RlZCAnIC4gJHBvc3RmaXhfdGFsa1skaV1bMF0NCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgaWYgKCRwb3N0Zml4X3RhbGtbJGldWzFdICE9PSAnJykgIHsNCisgICAgICAgICAgICAgICAgZnB1dHMoJHNtdHBfY29ubmVjdGlvbiwgJHBvc3RmaXhfdGFsa1skaV1bMV0pOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBmY2xvc2UoJHNtdHBfY29ubmVjdGlvbik7DQorICAgICAgICAgIH0NCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgcXVhcmFudGluZWAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOmlkJyA9PiAkaWQNCisgICAgICAgICAgKSk7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2l0ZW1fcmVsZWFzZWQnLCAkaWQpDQorICAgICAgICAgICk7DQorICAgICAgICAgIC8vIEl0ZW0gd2FzIHJlbGVhc2VkIGFuZCBkZWxldGVkIGZyb20gcXVhcmFudGluZSwgbm93IGxlYXJuaW5nIGhhbQ0KKyAgICAgICAgICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KKyAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VTklYX1NPQ0tFVF9QQVRILCAnL3Zhci9saWIvcnNwYW1kL3JzcGFtZC5zb2NrJyk7DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVCwgMSk7DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1RJTUVPVVQsIDMwKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCJodHRwOi8vcnNwYW1kL2xlYXJuaGFtIik7DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRyb3dbJ21zZyddKTsNCisgICAgICAgICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgICAgICAgaWYgKCFjdXJsX2Vycm5vKCRjdXJsKSkgew0KKyAgICAgICAgICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSwgdHJ1ZSk7DQorICAgICAgICAgICAgaWYgKGlzc2V0KCRyZXNwb25zZVsnZXJyb3InXSkpIHsNCisgICAgICAgICAgICAgIGlmIChzdHJpcG9zKCRyZXNwb25zZVsnZXJyb3InXSwgJ2FscmVhZHkgbGVhcm5lZCcpID09PSBmYWxzZSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2hhbV9sZWFybl9lcnJvcicsICRyZXNwb25zZVsnZXJyb3InXSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgICAgICRjdXJsID0gY3VybF9pbml0KCk7DQorICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVU5JWF9TT0NLRVRfUEFUSCwgJy92YXIvbGliL3JzcGFtZC9yc3BhbWQuc29jaycpOw0KKyAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NULCAxKTsNCisgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9USU1FT1VULCAzMCk7DQorICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicsICdGbGFnOiAxMScpKTsNCisgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VUkwsImh0dHA6Ly9yc3BhbWQvZnV6enlkZWwiKTsNCisgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcm93Wydtc2cnXSk7DQorICAgICAgICAgICAgLy8gSXQgaXMgbW9zdCBsaWtlbHkgbm90IGEgc3BhbSBoYXNoLCBzbyB3ZSBpZ25vcmUgYW55IGVycm9yL3dhcm5pbmcgcmVzcG9uc2UNCisgICAgICAgICAgICAvLyAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KKyAgICAgICAgICAgIGlmICghY3VybF9lcnJubygkY3VybCkpIHsNCisgICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgICAgICAgJGN1cmwgPSBjdXJsX2luaXQoKTsNCisgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VOSVhfU09DS0VUX1BBVEgsICcvdmFyL2xpYi9yc3BhbWQvcnNwYW1kLnNvY2snKTsNCisgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIDEpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVElNRU9VVCwgMzApOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicsICdGbGFnOiAxMycpKTsNCisgICAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwiaHR0cDovL3JzcGFtZC9mdXp6eWFkZCIpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVEZJRUxEUywgJHJvd1snbXNnJ10pOw0KKyAgICAgICAgICAgICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjdXJsKTsNCisgICAgICAgICAgICAgIGN1cmxfZXhlYygkY3VybCk7DQorICAgICAgICAgICAgICBpZiAoIWN1cmxfZXJybm8oJGN1cmwpKSB7DQorICAgICAgICAgICAgICAgICRyZXNwb25zZSA9IGpzb25fZGVjb2RlKCRyZXNwb25zZSwgdHJ1ZSk7DQorICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcmVzcG9uc2VbJ2Vycm9yJ10pKSB7DQorICAgICAgICAgICAgICAgICAgaWYgKHN0cmlwb3MoJHJlc3BvbnNlWydlcnJvciddLCAnTm8gY29udGVudCB0byBnZW5lcmF0ZSBmdXp6eScpID09PSBmYWxzZSkgew0KKyAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZnV6enlfbGVhcm5fZXJyb3InLCAkcmVzcG9uc2VbJ2Vycm9yJ10pDQorICAgICAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdsZWFybmVkX2hhbScsICRpZCkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaGFtX2xlYXJuX2Vycm9yJywgJ0N1cmw6ICcgLiBjdXJsX3N0cmVycm9yKGN1cmxfZXJybm8oJGN1cmwpKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdoYW1fbGVhcm5fZXJyb3InLCAndW5rbm93bicpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2hhbV9sZWFybl9lcnJvcicsICdDdXJsOiAnIC4gY3VybF9zdHJlcnJvcihjdXJsX2Vycm5vKCRjdXJsKSkpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdoYW1fbGVhcm5fZXJyb3InLCAndW5rbm93bicpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICBlbHNlaWYgKCRfZGF0YVsnYWN0aW9uJ10gPT0gJ2xlYXJuc3BhbScpIHsNCisgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydpZCddKSkgew0KKyAgICAgICAgICAkaWRzID0gYXJyYXkoKTsNCisgICAgICAgICAgJGlkc1tdID0gJF9kYXRhWydpZCddOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRpZHMgPSAkX2RhdGFbJ2lkJ107DQorICAgICAgICB9DQorICAgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgICBpZiAoIWlzX251bWVyaWMoJGlkKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgnU0VMRUNUIGBtc2dgLCBgcmNwdGAsIGBhY3Rpb25gIEZST00gYHF1YXJhbnRpbmVgIFdIRVJFIGBpZGAgPSA6aWQnKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJGlkKSk7DQorICAgICAgICAgICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICAgIGlmICghaGFzTWFpbGJveE9iamVjdEFjY2VzcygkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSwgJHJvd1sncmNwdCddKSAmJiAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICdhZG1pbicgfHwgZW1wdHkoJHJvd1sncmNwdCddKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiREVMRVRFIEZST00gYHF1YXJhbnRpbmVgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICAgJzppZCcgPT4gJGlkDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KKyAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VTklYX1NPQ0tFVF9QQVRILCAnL3Zhci9saWIvcnNwYW1kL3JzcGFtZC5zb2NrJyk7DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVCwgMSk7DQorICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1RJTUVPVVQsIDMwKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfSFRUUEhFQURFUiwgYXJyYXkoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpKTsNCisgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCJodHRwOi8vcnNwYW1kL2xlYXJuc3BhbSIpOw0KKyAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcm93Wydtc2cnXSk7DQorICAgICAgICAgICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7DQorICAgICAgICAgIGlmICghY3VybF9lcnJubygkY3VybCkpIHsNCisgICAgICAgICAgICAkcmVzcG9uc2UgPSBqc29uX2RlY29kZSgkcmVzcG9uc2UsIHRydWUpOw0KKyAgICAgICAgICAgIGlmIChpc3NldCgkcmVzcG9uc2VbJ2Vycm9yJ10pKSB7DQorICAgICAgICAgICAgICBpZiAoc3RyaXBvcygkcmVzcG9uc2VbJ2Vycm9yJ10sICdhbHJlYWR5IGxlYXJuZWQnKSA9PT0gZmFsc2UpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzcGFtX2xlYXJuX2Vycm9yJywgJHJlc3BvbnNlWydlcnJvciddKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgJGN1cmwgPSBjdXJsX2luaXQoKTsNCisgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VTklYX1NPQ0tFVF9QQVRILCAnL3Zhci9saWIvcnNwYW1kL3JzcGFtZC5zb2NrJyk7DQorICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KKyAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1QsIDEpOw0KKyAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1RJTUVPVVQsIDMwKTsNCisgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSgnQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluJywgJ0ZsYWc6IDEzJykpOw0KKyAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwiaHR0cDovL3JzcGFtZC9mdXp6eWRlbCIpOw0KKyAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRyb3dbJ21zZyddKTsNCisgICAgICAgICAgICAvLyBJdCBpcyBtb3N0IGxpa2VseSBub3QgYSBzcGFtIGhhc2gsIHNvIHdlIGlnbm9yZSBhbnkgZXJyb3Ivd2FybmluZyByZXNwb25zZQ0KKyAgICAgICAgICAgIC8vICRyZXNwb25zZSA9IGN1cmxfZXhlYygkY3VybCk7DQorICAgICAgICAgICAgaWYgKCFjdXJsX2Vycm5vKCRjdXJsKSkgew0KKyAgICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVU5JWF9TT0NLRVRfUEFUSCwgJy92YXIvbGliL3JzcGFtZC9yc3BhbWQuc29jaycpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUE9TVCwgMSk7DQorICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9USU1FT1VULCAzMCk7DQorICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSgnQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluJywgJ0ZsYWc6IDExJykpOw0KKyAgICAgICAgICAgICAgY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfVVJMLCJodHRwOi8vcnNwYW1kL2Z1enp5YWRkIik7DQorICAgICAgICAgICAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcm93Wydtc2cnXSk7DQorICAgICAgICAgICAgICAkcmVzcG9uc2UgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KKyAgICAgICAgICAgICAgY3VybF9leGVjKCRjdXJsKTsNCisgICAgICAgICAgICAgIGlmICghY3VybF9lcnJubygkY3VybCkpIHsNCisgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0ganNvbl9kZWNvZGUoJHJlc3BvbnNlLCB0cnVlKTsNCisgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRyZXNwb25zZVsnZXJyb3InXSkpIHsNCisgICAgICAgICAgICAgICAgICBpZiAoc3RyaXBvcygkcmVzcG9uc2VbJ2Vycm9yJ10sICdObyBjb250ZW50IHRvIGdlbmVyYXRlIGZ1enp5JykgPT09IGZhbHNlKSB7DQorICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdmdXp6eV9sZWFybl9lcnJvcicsICRyZXNwb25zZVsnZXJyb3InXSkNCisgICAgICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBjdXJsX2Nsb3NlKCRjdXJsKTsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3FsZWFybl9zcGFtJywgJGlkKQ0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzcGFtX2xlYXJuX2Vycm9yJywgJ0N1cmw6ICcgLiBjdXJsX3N0cmVycm9yKGN1cmxfZXJybm8oJGN1cmwpKSkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgY3VybF9jbG9zZSgkY3VybCk7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzcGFtX2xlYXJuX2Vycm9yJywgJ3Vua25vd24nKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzcGFtX2xlYXJuX2Vycm9yJywgJ0N1cmw6ICcgLiBjdXJsX3N0cmVycm9yKGN1cmxfZXJybm8oJGN1cmwpKSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGN1cmxfY2xvc2UoJGN1cmwpOw0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NwYW1fbGVhcm5fZXJyb3InLCAndW5rbm93bicpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gInVzZXIiKSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoJ1NFTEVDVCBgaWRgLCBgcWlkYCwgYHN1YmplY3RgLCBMT0NBVEUoIlZJUlVTX0ZPVU5EIiwgYHN5bWJvbHNgKSBBUyBgdmlydXNfZmxhZ2AsIGBzY29yZWAsIGByY3B0YCwgYHNlbmRlcmAsIGBhY3Rpb25gLCBVTklYX1RJTUVTVEFNUChgY3JlYXRlZGApIEFTIGBjcmVhdGVkYCwgYG5vdGlmaWVkYCBGUk9NIGBxdWFyYW50aW5lYCBXSEVSRSBgcmNwdGAgPSA6bWJveCcpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzptYm94JyA9PiAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSkpOw0KKyAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICB3aGlsZSgkcm93ID0gYXJyYXlfc2hpZnQoJHJvd3MpKSB7DQorICAgICAgICAgICRxX21ldGFbXSA9ICRyb3c7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGVsc2VpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAiYWRtaW4iKSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCdTRUxFQ1QgYGlkYCwgYHFpZGAsIGBzdWJqZWN0YCwgTE9DQVRFKCJWSVJVU19GT1VORCIsIGBzeW1ib2xzYCkgQVMgYHZpcnVzX2ZsYWdgLCBgc2NvcmVgLCBgcmNwdGAsIGBzZW5kZXJgLCBgYWN0aW9uYCwgVU5JWF9USU1FU1RBTVAoYGNyZWF0ZWRgKSBBUyBgY3JlYXRlZGAsIGBub3RpZmllZGAgRlJPTSBgcXVhcmFudGluZWAnKTsNCisgICAgICAgICRyb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAkcV9tZXRhW10gPSAkcm93Ow0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgICRkb21haW5zID0gYXJyYXlfbWVyZ2UobWFpbGJveCgnZ2V0JywgJ2RvbWFpbnMnKSwgbWFpbGJveCgnZ2V0JywgJ2FsaWFzX2RvbWFpbnMnKSk7DQorICAgICAgICBmb3JlYWNoICgkZG9tYWlucyBhcyAkZG9tYWluKSB7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgnU0VMRUNUIGBpZGAsIGBxaWRgLCBgc3ViamVjdGAsIExPQ0FURSgiVklSVVNfRk9VTkQiLCBgc3ltYm9sc2ApIEFTIGB2aXJ1c19mbGFnYCwgYHNjb3JlYCwgYHJjcHRgLCBgc2VuZGVyYCwgYGFjdGlvbmAsIFVOSVhfVElNRVNUQU1QKGBjcmVhdGVkYCkgQVMgYGNyZWF0ZWRgLCBgbm90aWZpZWRgIEZST00gYHF1YXJhbnRpbmVgIFdIRVJFIGByY3B0YCBSRUdFWFAgOmRvbWFpbicpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmRvbWFpbicgPT4gJ0AnIC4gJGRvbWFpbiAuICckJykpOw0KKyAgICAgICAgICAkcm93cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICAgICAgd2hpbGUoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAgICRxX21ldGFbXSA9ICRyb3c7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgcmV0dXJuICRxX21ldGE7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdzZXR0aW5ncyc6DQorICAgICAgdHJ5IHsNCisgICAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICJhZG1pbiIpIHsNCisgICAgICAgICAgJHNldHRpbmdzWydleGNsdWRlX2RvbWFpbnMnXSA9IGpzb25fZGVjb2RlKCRyZWRpcy0+R2V0KCdRX0VYQ0xVREVfRE9NQUlOUycpLCB0cnVlKTsNCisgICAgICAgIH0NCisgICAgICAgICRzZXR0aW5nc1snbWF4X3NpemUnXSA9ICRyZWRpcy0+R2V0KCdRX01BWF9TSVpFJyk7DQorICAgICAgICAkc2V0dGluZ3NbJ21heF9zY29yZSddID0gJHJlZGlzLT5HZXQoJ1FfTUFYX1NDT1JFJyk7DQorICAgICAgICAkc2V0dGluZ3NbJ21heF9hZ2UnXSA9ICRyZWRpcy0+R2V0KCdRX01BWF9BR0UnKTsNCisgICAgICAgICRzZXR0aW5nc1sncmV0ZW50aW9uX3NpemUnXSA9ICRyZWRpcy0+R2V0KCdRX1JFVEVOVElPTl9TSVpFJyk7DQorICAgICAgICAkc2V0dGluZ3NbJ3JlbGVhc2VfZm9ybWF0J10gPSAkcmVkaXMtPkdldCgnUV9SRUxFQVNFX0ZPUk1BVCcpOw0KKyAgICAgICAgJHNldHRpbmdzWydzdWJqZWN0J10gPSAkcmVkaXMtPkdldCgnUV9TVUJKJyk7DQorICAgICAgICAkc2V0dGluZ3NbJ3NlbmRlciddID0gJHJlZGlzLT5HZXQoJ1FfU0VOREVSJyk7DQorICAgICAgICAkc2V0dGluZ3NbJ2JjYyddID0gJHJlZGlzLT5HZXQoJ1FfQkNDJyk7DQorICAgICAgICAkc2V0dGluZ3NbJ3JlZGlyZWN0J10gPSAkcmVkaXMtPkdldCgnUV9SRURJUkVDVCcpOw0KKyAgICAgICAgJHNldHRpbmdzWydodG1sX3RtcGwnXSA9IGh0bWxzcGVjaWFsY2hhcnMoJHJlZGlzLT5HZXQoJ1FfSFRNTCcpKTsNCisgICAgICAgIGlmIChlbXB0eSgkc2V0dGluZ3NbJ2h0bWxfdG1wbCddKSkgew0KKyAgICAgICAgICAkc2V0dGluZ3NbJ2h0bWxfdG1wbCddID0gaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygiL3RwbHMvcXVhcmFudGluZS50cGwiKSk7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRzZXR0aW5nczsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RldGFpbHMnOg0KKyAgICAgIGlmICghaXNfbnVtZXJpYygkX2RhdGEpIHx8IGVtcHR5KCRfZGF0YSkpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCdTRUxFQ1QgKiBGUk9NIGBxdWFyYW50aW5lYCBXSEVSRSBgaWRgPSA6aWQnKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkX2RhdGEpKTsNCisgICAgICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIGlmIChoYXNNYWlsYm94T2JqZWN0QWNjZXNzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddLCAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddLCAkcm93WydyY3B0J10pIHx8ICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gJ2FkbWluJykgew0KKyAgICAgICAgcmV0dXJuICRyb3c7DQorICAgICAgfQ0KKyAgICAgIGxvZ2dlcihhcnJheSgncmV0dXJuJyA9PiBhcnJheSgNCisgICAgICAgIGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICkNCisgICAgICApKSk7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnaGFzaF9kZXRhaWxzJzoNCisgICAgICAkaGFzaCA9IHRyaW0oJF9kYXRhKTsNCisgICAgICBpZiAocHJlZ19tYXRjaCgiL14oW2EtZjAtOV17NjR9KSQvIiwgJGhhc2gpID09PSBmYWxzZSkgew0KKyAgICAgICAgbG9nZ2VyKGFycmF5KCdyZXR1cm4nID0+IGFycmF5KA0KKyAgICAgICAgICBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICkNCisgICAgICAgICkpKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCdTRUxFQ1QgKiBGUk9NIGBxdWFyYW50aW5lYCBXSEVSRSBTSEEyKENPTkNBVChgaWRgLCBgcWlkYCksIDI1NikgPSA6aGFzaCcpOw0KKyAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aGFzaCcgPT4gJGhhc2gpKTsNCisgICAgICByZXR1cm4gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICBicmVhazsNCisgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucXVvdGFfbm90aWZpY2F0aW9uLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5xdW90YV9ub3RpZmljYXRpb24uaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2E1YTIyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucXVvdGFfbm90aWZpY2F0aW9uLmluYy5waHAKQEAgLTAsMCArMSw2NyBAQAorPD9waHANCitmdW5jdGlvbiBxdW90YV9ub3RpZmljYXRpb24oJF9hY3Rpb24sICRfZGF0YSA9IG51bGwpIHsNCisJZ2xvYmFsICRyZWRpczsNCisJJF9kYXRhX2xvZyA9ICRfZGF0YTsNCisgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICApOw0KKyAgICByZXR1cm4gZmFsc2U7DQorICB9DQorICBzd2l0Y2ggKCRfYWN0aW9uKSB7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgICRyZXRlbnRpb25fc2l6ZSA9ICRfZGF0YVsncmV0ZW50aW9uX3NpemUnXTsNCisgICAgICBpZiAoJF9kYXRhWydyZWxlYXNlX2Zvcm1hdCddID09ICdhdHRhY2htZW50JyB8fCAkX2RhdGFbJ3JlbGVhc2VfZm9ybWF0J10gPT0gJ3JhdycpIHsNCisgICAgICAgICRyZWxlYXNlX2Zvcm1hdCA9ICRfZGF0YVsncmVsZWFzZV9mb3JtYXQnXTsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkcmVsZWFzZV9mb3JtYXQgPSAncmF3JzsNCisgICAgICB9DQorICAgICAgJHN1YmplY3QgPSAkX2RhdGFbJ3N1YmplY3QnXTsNCisgICAgICAkc2VuZGVyID0gcHJlZ19yZXBsYWNlKCcvW1x4MDAtXHgxRlx4ODAtXHhGRl0vJywgJycsICRfZGF0YVsnc2VuZGVyJ10pOw0KKyAgICAgIGlmIChmaWx0ZXJfdmFyKCRzZW5kZXIsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkgPT09IGZhbHNlKSB7DQorICAgICAgICAkc2VuZGVyID0gJyc7DQorICAgICAgfQ0KKyAgICAgICRodG1sID0gJF9kYXRhWydodG1sX3RtcGwnXTsNCisgICAgICB0cnkgew0KKyAgICAgICAgJHJlZGlzLT5TZXQoJ1FXX1NFTkRFUicsICRzZW5kZXIpOw0KKyAgICAgICAgJHJlZGlzLT5TZXQoJ1FXX1NVQkonLCAkc3ViamVjdCk7DQorICAgICAgICAkcmVkaXMtPlNldCgnUVdfSFRNTCcsICRodG1sKTsNCisgICAgICB9DQorICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICdtc2cnID0+ICdzYXZlZF9zZXR0aW5ncycNCisgICAgICApOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZ2V0JzoNCisgICAgICB0cnkgew0KKyAgICAgICAgJHNldHRpbmdzWydzdWJqZWN0J10gPSAkcmVkaXMtPkdldCgnUVdfU1VCSicpOw0KKyAgICAgICAgJHNldHRpbmdzWydzZW5kZXInXSA9ICRyZWRpcy0+R2V0KCdRV19TRU5ERVInKTsNCisgICAgICAgICRzZXR0aW5nc1snaHRtbF90bXBsJ10gPSBodG1sc3BlY2lhbGNoYXJzKCRyZWRpcy0+R2V0KCdRV19IVE1MJykpOw0KKyAgICAgICAgaWYgKGVtcHR5KCRzZXR0aW5nc1snaHRtbF90bXBsJ10pKSB7DQorICAgICAgICAgICRzZXR0aW5nc1snaHRtbF90bXBsJ10gPSBodG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCIvdHBscy9xdW90YS50cGwiKSk7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRzZXR0aW5nczsNCisgICAgYnJlYWs7DQorICB9DQorfQ0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnJhdGVsaW1pdC5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMucmF0ZWxpbWl0LmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllN2E3MQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnJhdGVsaW1pdC5pbmMucGhwCkBAIC0wLDAgKzEsMjQyIEBACis8P3BocA0KK2Z1bmN0aW9uIHJhdGVsaW1pdCgkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhID0gbnVsbCkgew0KKyAgZ2xvYmFsICRyZWRpczsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICBzd2l0Y2ggKCRfYWN0aW9uKSB7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIGlmICghaXNzZXQoJF9TRVNTSU9OWydhY2wnXVsncmF0ZWxpbWl0J10pIHx8ICRfU0VTU0lPTlsnYWNsJ11bJ3JhdGVsaW1pdCddICE9ICIxIiApIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfdHlwZSwgJF9kYXRhX2xvZywgJF9hdHRyKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICBzd2l0Y2ggKCRfc2NvcGUpIHsNCisgICAgICAgIGNhc2UgJ2RvbWFpbic6DQorICAgICAgICAgIGlmICghaXNfYXJyYXkoJF9kYXRhWydvYmplY3QnXSkpIHsNCisgICAgICAgICAgICAkb2JqZWN0cyA9IGFycmF5KCk7DQorICAgICAgICAgICAgJG9iamVjdHNbXSA9ICRfZGF0YVsnb2JqZWN0J107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgJG9iamVjdHMgPSAkX2RhdGFbJ29iamVjdCddOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRvYmplY3RzIGFzICRvYmplY3QpIHsNCisgICAgICAgICAgICAkcmxfdmFsdWUgPSBpbnR2YWwoJF9kYXRhWydybF92YWx1ZSddKTsNCisgICAgICAgICAgICAkcmxfZnJhbWUgPSAkX2RhdGFbJ3JsX2ZyYW1lJ107DQorICAgICAgICAgICAgaWYgKCFpbl9hcnJheSgkcmxfZnJhbWUsIGFycmF5KCdzJywgJ20nLCAnaCcsICdkJykpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ3JsX3RpbWVmcmFtZScNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRvYmplY3QpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmIChlbXB0eSgkcmxfdmFsdWUpKSB7DQorICAgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgICAkcmVkaXMtPmhEZWwoJ1JMX1ZBTFVFJywgJG9iamVjdCk7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBjYXRjaCAoUmVkaXNFeGNlcHRpb24gJGUpIHsNCisgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWRpc19lcnJvcicsICRlKQ0KKyAgICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgICAkcmVkaXMtPmhTZXQoJ1JMX1ZBTFVFJywgJG9iamVjdCwgJHJsX3ZhbHVlIC4gJyAvIDEnIC4gJHJsX2ZyYW1lKTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdybF9zYXZlZCcsICRvYmplY3QpDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlICdtYWlsYm94JzoNCisgICAgICAgICAgaWYgKCFpc19hcnJheSgkX2RhdGFbJ29iamVjdCddKSkgew0KKyAgICAgICAgICAgICRvYmplY3RzID0gYXJyYXkoKTsNCisgICAgICAgICAgICAkb2JqZWN0c1tdID0gJF9kYXRhWydvYmplY3QnXTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAkb2JqZWN0cyA9ICRfZGF0YVsnb2JqZWN0J107DQorICAgICAgICAgIH0NCisgICAgICAgICAgZm9yZWFjaCAoJG9iamVjdHMgYXMgJG9iamVjdCkgew0KKyAgICAgICAgICAgICRybF92YWx1ZSA9IGludHZhbCgkX2RhdGFbJ3JsX3ZhbHVlJ10pOw0KKyAgICAgICAgICAgICRybF9mcmFtZSA9ICRfZGF0YVsncmxfZnJhbWUnXTsNCisgICAgICAgICAgICBpZiAoIWluX2FycmF5KCRybF9mcmFtZSwgYXJyYXkoJ3MnLCAnbScsICdoJywgJ2QnKSkpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAncmxfdGltZWZyYW1lJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRvYmplY3QpDQorICAgICAgICAgICAgICB8fCAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAnYWRtaW4nICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2RvbWFpbmFkbWluJykpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRybF92YWx1ZSkpIHsNCisgICAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICAgICRyZWRpcy0+aERlbCgnUkxfVkFMVUUnLCAkb2JqZWN0KTsNCisgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBlbHNlIHsNCisgICAgICAgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgICAgICRyZWRpcy0+aFNldCgnUkxfVkFMVUUnLCAkb2JqZWN0LCAkcmxfdmFsdWUgLiAnIC8gMScgLiAkcmxfZnJhbWUpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfc2NvcGUsICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JsX3NhdmVkJywgJG9iamVjdCkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICB9DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgIHN3aXRjaCAoJF9zY29wZSkgew0KKyAgICAgICAgY2FzZSAnZG9tYWluJzoNCisgICAgICAgICAgaWYgKCFoYXNEb21haW5BY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICBpZiAoJHJsX3ZhbHVlID0gJHJlZGlzLT5oR2V0KCdSTF9WQUxVRScsICRfZGF0YSkpIHsNCisgICAgICAgICAgICAgICRybCA9IGV4cGxvZGUoJyAvIDEnLCAkcmxfdmFsdWUpOw0KKyAgICAgICAgICAgICAgJGRhdGFbJ3ZhbHVlJ10gPSAkcmxbMF07DQorICAgICAgICAgICAgICAkZGF0YVsnZnJhbWUnXSA9ICRybFsxXTsNCisgICAgICAgICAgICAgIHJldHVybiAkZGF0YTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgJ21haWxib3gnOg0KKyAgICAgICAgICBpZiAoIWhhc01haWxib3hPYmplY3RBY2Nlc3MoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10sICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10sICRfZGF0YSkNCisgICAgICAgICAgICB8fCAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAnYWRtaW4nICYmICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2RvbWFpbmFkbWluJykpIHsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICBpZiAoJHJsX3ZhbHVlID0gJHJlZGlzLT5oR2V0KCdSTF9WQUxVRScsICRfZGF0YSkpIHsNCisgICAgICAgICAgICAgICRybCA9IGV4cGxvZGUoJyAvIDEnLCAkcmxfdmFsdWUpOw0KKyAgICAgICAgICAgICAgJGRhdGFbJ3ZhbHVlJ10gPSAkcmxbMF07DQorICAgICAgICAgICAgICAkZGF0YVsnZnJhbWUnXSA9ICRybFsxXTsNCisgICAgICAgICAgICAgIHJldHVybiAkZGF0YTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGNhdGNoIChSZWRpc0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVkaXNfZXJyb3InLCAkZSkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICBicmVhazsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgICRkYXRhWydoYXNoJ10gPSAkX2RhdGE7DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gJ2FkbWluJyB8fCAhcHJlZ19tYXRjaCgnL15STFswLTlBLVphLXo9XSskL2knLCB0cmltKCRkYXRhWydoYXNoJ10pKSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF90eXBlLCAkX2RhdGFfbG9nLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIHRyeSB7DQorICAgICAgICAkZGF0YV9ybGxvZyA9ICRyZWRpcy0+bFJhbmdlKCdSTF9MT0cnLCAwLCAtMSk7DQorICAgICAgICBpZiAoJGRhdGFfcmxsb2cpIHsNCisgICAgICAgICAgZm9yZWFjaCAoJGRhdGFfcmxsb2cgYXMgJGpzb25fbGluZSkgew0KKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvJyAuICRkYXRhWydoYXNoJ10gLiAnL2knLCAkanNvbl9saW5lKSkgew0KKyAgICAgICAgICAgICAgJHJlZGlzLT5sUmVtKCdSTF9MT0cnLCAkanNvbl9saW5lLCAwKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGlmICgkcmVkaXMtPnR5cGUoJGRhdGFbJ2hhc2gnXSkgPT0gUmVkaXM6OlJFRElTX0hBU0gpIHsNCisgICAgICAgICAgJHJlZGlzLT5kZWxldGUoJGRhdGFbJ2hhc2gnXSk7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9zY29wZSwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gJ2hhc2hfZGVsZXRlZCcNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIHRydWU7DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICd3YXJuaW5nJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiAnaGFzaF9ub3RfZm91bmQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgY2F0Y2ggKFJlZGlzRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX3Njb3BlLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlZGlzX2Vycm9yJywgJGUpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICByZXR1cm4gZmFsc2U7DQorICAgIGJyZWFrOw0KKyAgfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5yc3BhbWQuaW5jLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnJzcGFtZC5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYmExZjUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy5yc3BhbWQuaW5jLnBocApAQCAtMCwwICsxLDIxMSBAQAorPD9waHANCitmdW5jdGlvbiByc2V0dGluZ3MoJF9hY3Rpb24sICRfZGF0YSA9IG51bGwpIHsNCisJZ2xvYmFsICRwZG87DQorCWdsb2JhbCAkbGFuZzsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICBzd2l0Y2ggKCRfYWN0aW9uKSB7DQorICAgIGNhc2UgJ2FkZCc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGNvbnRlbnQgPSAkX2RhdGFbJ2NvbnRlbnQnXTsNCisgICAgICAkZGVzYyA9ICRfZGF0YVsnZGVzYyddOw0KKyAgICAgICRhY3RpdmUgPSBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSk7DQorICAgICAgaWYgKGVtcHR5KCRjb250ZW50KSkgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdtYXBfY29udGVudF9lbXB0eScNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYHNldHRpbmdzbWFwYCAoYGNvbnRlbnRgLCBgZGVzY2AsIGBhY3RpdmVgKQ0KKyAgICAgICAgVkFMVUVTICg6Y29udGVudCwgOmRlc2MsIDphY3RpdmUpIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOmNvbnRlbnQnID0+ICRjb250ZW50LA0KKyAgICAgICAgJzpkZXNjJyA9PiAkZGVzYywNCisgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgKSk7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAnbXNnJyA9PiAnc2V0dGluZ3NfbWFwX2FkZGVkJw0KKyAgICAgICk7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdlZGl0JzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkaWRzID0gKGFycmF5KSRfZGF0YVsnaWQnXTsNCisgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgJGlzX25vdyA9IHJzZXR0aW5ncygnZGV0YWlscycsICRpZCk7DQorICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICRjb250ZW50ID0gKCFlbXB0eSgkX2RhdGFbJ2NvbnRlbnQnXSkpID8gJF9kYXRhWydjb250ZW50J10gOiAkaXNfbm93Wydjb250ZW50J107DQorICAgICAgICAgICRkZXNjID0gKCFlbXB0eSgkX2RhdGFbJ2Rlc2MnXSkpID8gJF9kYXRhWydkZXNjJ10gOiAkaXNfbm93WydkZXNjJ107DQorICAgICAgICAgICRhY3RpdmUgPSAoaXNzZXQoJF9kYXRhWydhY3RpdmUnXSkpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdzZXR0aW5nc19tYXBfaW52YWxpZCcsICRpZCkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkY29udGVudCA9IHRyaW0oJGNvbnRlbnQpOw0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHNldHRpbmdzbWFwYCBTRVQNCisgICAgICAgICAgYGNvbnRlbnRgID0gOmNvbnRlbnQsDQorICAgICAgICAgIGBkZXNjYCA9IDpkZXNjLA0KKyAgICAgICAgICBgYWN0aXZlYCA9IDphY3RpdmUNCisgICAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzpjb250ZW50JyA9PiAkY29udGVudCwNCisgICAgICAgICAgJzpkZXNjJyA9PiAkZGVzYywNCisgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUsDQorICAgICAgICAgICc6aWQnID0+ICRpZA0KKyAgICAgICAgKSk7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRpZHMpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRpZHMgPSAoYXJyYXkpJF9kYXRhWydpZCddOw0KKyAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGBzZXR0aW5nc21hcGAgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3NldHRpbmdzX21hcF9yZW1vdmVkJywgaHRtbHNwZWNpYWxjaGFycygkaWQpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdnZXQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHNldHRpbmdzbWFwcyA9IGFycmF5KCk7DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUIGBpZGAsIGBkZXNjYCwgYGFjdGl2ZWAgRlJPTSBgc2V0dGluZ3NtYXBgIik7DQorICAgICAgJHNldHRpbmdzbWFwcyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICByZXR1cm4gJHNldHRpbmdzbWFwczsNCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2RldGFpbHMnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIgfHwgIWlzc2V0KCRfZGF0YSkpIHsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJHNldHRpbmdzbWFwZGF0YSA9IGFycmF5KCk7DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCwNCisgICAgICAgIGBkZXNjYCwNCisgICAgICAgIGBjb250ZW50YCwNCisgICAgICAgIGBhY3RpdmVgDQorICAgICAgICAgIEZST00gYHNldHRpbmdzbWFwYA0KKyAgICAgICAgICAgIFdIRVJFIGBpZGAgPSA6aWQiKTsNCisgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkX2RhdGEpKTsNCisgICAgICAkc2V0dGluZ3NtYXBkYXRhID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIHJldHVybiAkc2V0dGluZ3NtYXBkYXRhOw0KKyAgICBicmVhazsNCisgIH0NCit9DQorZnVuY3Rpb24gcnNwYW1kX21hcHMoJF9hY3Rpb24sICRfZGF0YSA9IG51bGwpIHsNCisJZ2xvYmFsICRwZG87DQorCWdsb2JhbCAkbGFuZzsNCisJZ2xvYmFsICRSU1BBTURfTUFQUzsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICBzd2l0Y2ggKCRfYWN0aW9uKSB7DQorICAgIGNhc2UgJ2VkaXQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRtYXBzID0gKGFycmF5KSRfZGF0YVsnbWFwJ107DQorICAgICAgZm9yZWFjaCAoJG1hcHMgYXMgJG1hcCkgew0KKyAgICAgICAgZm9yZWFjaCAoJFJTUEFNRF9NQVBTIGFzICRyc3BhbWRfbWFwX3R5cGUpIHsNCisgICAgICAgICAgaWYgKCFpbl9hcnJheSgkbWFwLCAkcnNwYW1kX21hcF90eXBlKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnZ2xvYmFsX21hcF9pbnZhbGlkJywgJG1hcCkNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJy9yc3BhbWRfY3VzdG9tX21hcHMvJyAuICRtYXApKSB7DQorICAgICAgICAgICAgJG1hcF9jb250ZW50ID0gdHJpbSgkX2RhdGFbJ3JzcGFtZF9tYXBfZGF0YSddKTsNCisgICAgICAgICAgICAkbWFwX2hhbmRsZSA9IGZvcGVuKCcvcnNwYW1kX2N1c3RvbV9tYXBzLycgLiAkbWFwLCAndycpOw0KKyAgICAgICAgICAgIGlmICghJG1hcF9oYW5kbGUpIHsNCisgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJGxhbmdbJ2RhbmdlciddWydmaWxlX29wZW5fZXJyb3InXSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGZ3cml0ZSgkbWFwX2hhbmRsZSwgJG1hcF9jb250ZW50IC4gUEhQX0VPTCk7DQorICAgICAgICAgICAgZmNsb3NlKCRtYXBfaGFuZGxlKTsNCisgICAgICAgICAgICBzbGVlcCgxLjUpOw0KKyAgICAgICAgICAgIHRvdWNoKCcvcnNwYW1kX2N1c3RvbV9tYXBzLycgLiAkbWFwKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2dsb2JhbF9tYXBfd3JpdGVfZXJyb3InLCBodG1sc3BlY2lhbGNoYXJzKCRtYXApLCBodG1sc3BlY2lhbGNoYXJzKCRlLT5nZXRNZXNzYWdlKCkpKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ29iamVjdF9tb2RpZmllZCcsIGh0bWxzcGVjaWFsY2hhcnMoJG1hcCkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICB9DQorfQ0KK2Z1bmN0aW9uIHJzcGFtZF9hY3Rpb25zKCkgew0KKyAgaWYgKGlzc2V0KCRfU0VTU0lPTlsibWFpbGNvd19jY19yb2xlIl0pICYmICRfU0VTU0lPTlsibWFpbGNvd19jY19yb2xlIl0gPT0gImFkbWluIikgew0KKyAgICAkY3VybCA9IGN1cmxfaW5pdCgpOw0KKyAgICBjdXJsX3NldG9wdCgkY3VybCwgQ1VSTE9QVF9VTklYX1NPQ0tFVF9QQVRILCAnL3Zhci9saWIvcnNwYW1kL3JzcGFtZC5zb2NrJyk7DQorICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1VSTCwiaHR0cDovL3JzcGFtZC9zdGF0Iik7DQorICAgIGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCB0cnVlKTsNCisgICAgJGRhdGEgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KKyAgICBpZiAoJGRhdGEpIHsNCisgICAgICAkcmV0dXJuID0gYXJyYXkoKTsNCisgICAgICAkc3RhdHNfYXJyYXkgPSBqc29uX2RlY29kZSgkZGF0YSwgdHJ1ZSlbJ2FjdGlvbnMnXTsNCisgICAgICAkc3RhdHNfYXJyYXlbJ3NvZnQgcmVqZWN0J10gPSAkc3RhdHNfYXJyYXlbJ3NvZnQgcmVqZWN0J10gKyAkc3RhdHNfYXJyYXlbJ2dyZXlsaXN0J107DQorICAgICAgdW5zZXQoJHN0YXRzX2FycmF5WydncmV5bGlzdCddKTsNCisgICAgICBmb3JlYWNoICgkc3RhdHNfYXJyYXkgYXMgJGFjdGlvbiA9PiAkY291bnQpIHsNCisgICAgICAgICRyZXR1cm5bXSA9IGFycmF5KCRhY3Rpb24sICRjb3VudCk7DQorICAgICAgfQ0KKyAgICAgIHJldHVybiAkcmV0dXJuOw0KKyAgICB9DQorICAgIGVsc2Ugew0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKyAgfQ0KKyAgZWxzZSB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCit9DQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMudGxzX3BvbGljeV9tYXBzLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy50bHNfcG9saWN5X21hcHMuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDQyYjJjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9mdW5jdGlvbnMudGxzX3BvbGljeV9tYXBzLmluYy5waHAKQEAgLTAsMCArMSwxNzIgQEAKKzw/cGhwDQorZnVuY3Rpb24gdGxzX3BvbGljeV9tYXBzKCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsLCAkYXR0ciA9IG51bGwpIHsNCisJZ2xvYmFsICRwZG87DQorCWdsb2JhbCAkbGFuZzsNCisgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgcmV0dXJuIGZhbHNlOw0KKyAgfQ0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdhZGQnOg0KKyAgICAgICRkZXN0ID0gaWRuX3RvX2FzY2lpKHRyaW0oJF9kYXRhWydkZXN0J10pLCAwLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7DQorICAgICAgJHBvbGljeSA9IHN0cnRvbG93ZXIodHJpbSgkX2RhdGFbJ3BvbGljeSddKSk7DQorICAgICAgJHBhcmFtZXRlcnMgPSAoaXNzZXQoJF9kYXRhWydwYXJhbWV0ZXJzJ10pICYmICFlbXB0eSgkX2RhdGFbJ3BhcmFtZXRlcnMnXSkpID8gJF9kYXRhWydwYXJhbWV0ZXJzJ10gOiAnJzsNCisgICAgICBpZiAoZW1wdHkoJGRlc3QpIHx8IGluX2FycmF5KCRkZXN0LCBhcnJheSgnLicsICcqJywgJ0AnKSkpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgJ21zZycgPT4gJ3Rsc19wb2xpY3lfbWFwX2Rlc3RfaW52YWxpZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgIGlmICghZW1wdHkoJHBhcmFtZXRlcnMpKSB7DQorICAgICAgICBmb3JlYWNoIChleHBsb2RlKCcgJywgJHBhcmFtZXRlcnMpIGFzICRwYXJhbWV0ZXIpIHsNCisgICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCcvKC4rKVw9KC4rKS9pJywgJHBhcmFtZXRlcikpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+ICd0bHNfcG9saWN5X21hcF9wYXJhbWV0ZXJfaW52YWxpZCcNCisgICAgICAgICAgICApOw0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICAkYWN0aXZlID0gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pOw0KKyAgICAgICR0bHNfcG9saWN5X21hcHMgPSB0bHNfcG9saWN5X21hcHMoJ2dldCcpOw0KKyAgICAgIGZvcmVhY2ggKCR0bHNfcG9saWN5X21hcHMgYXMgJHRsc19wb2xpY3lfbWFwKSB7DQorICAgICAgICBpZiAodGxzX3BvbGljeV9tYXBzKCdkZXRhaWxzJywgJHRsc19wb2xpY3lfbWFwKVsnZGVzdCddID09ICRkZXN0KSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3Rsc19wb2xpY3lfbWFwX2VudHJ5X2V4aXN0cycsIGh0bWxzcGVjaWFsY2hhcnMoJGRlc3QpKQ0KKyAgICAgICAgICApOw0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICB9DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYHRsc19wb2xpY3lfb3ZlcnJpZGVgIChgZGVzdGAsIGBwb2xpY3lgLCBgcGFyYW1ldGVyc2AsIGBhY3RpdmVgKSBWQUxVRVMNCisgICAgICAgICg6ZGVzdCwgOnBvbGljeSwgOnBhcmFtZXRlcnMsIDphY3RpdmUpIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOmRlc3QnID0+ICRkZXN0LA0KKyAgICAgICAgJzpwb2xpY3knID0+ICRwb2xpY3ksDQorICAgICAgICAnOnBhcmFtZXRlcnMnID0+ICRwYXJhbWV0ZXJzLA0KKyAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICApKTsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAnbXNnJyA9PiBhcnJheSgndGxzX3BvbGljeV9tYXBfZW50cnlfc2F2ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRkZXN0KSkNCisgICAgICApOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZWRpdCc6DQorICAgICAgJGlkcyA9IChhcnJheSkkX2RhdGFbJ2lkJ107DQorICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICRpc19ub3cgPSB0bHNfcG9saWN5X21hcHMoJ2RldGFpbHMnLCAkaWQpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAkYWN0aXZlID0gKGlzc2V0KCRfZGF0YVsnYWN0aXZlJ10pKSA/IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKSA6ICRpc19ub3dbJ2FjdGl2ZSddOw0KKyAgICAgICAgICAkZGVzdCA9ICghZW1wdHkoJF9kYXRhWydkZXN0J10pKSA/ICRfZGF0YVsnZGVzdCddIDogJGlzX25vd1snZGVzdCddOw0KKyAgICAgICAgICAkcG9saWN5ID0gKCFlbXB0eSgkX2RhdGFbJ3BvbGljeSddKSkgPyAkX2RhdGFbJ3BvbGljeSddIDogJGlzX25vd1sncG9saWN5J107DQorICAgICAgICAgICRwYXJhbWV0ZXJzID0gKGlzc2V0KCRfZGF0YVsncGFyYW1ldGVycyddKSkgPyAkX2RhdGFbJ3BhcmFtZXRlcnMnXSA6ICRpc19ub3dbJ3BhcmFtZXRlcnMnXTsNCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgICApOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmIChlbXB0eSgkZGVzdCkgfHwgaW5fYXJyYXkoJGRlc3QsIGFycmF5KCcuJywgJyonLCAnQCcpKSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAgICdtc2cnID0+ICd0bHNfcG9saWN5X21hcF9kZXN0X2ludmFsaWQnDQorICAgICAgICAgICk7DQorICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgIH0NCisgICAgICAgIGlmICghZW1wdHkoJHBhcmFtZXRlcnMpKSB7DQorICAgICAgICAgIGZvcmVhY2ggKGV4cGxvZGUoJyAnLCAkcGFyYW1ldGVycykgYXMgJHBhcmFtZXRlcikgew0KKyAgICAgICAgICAgIGlmICghcHJlZ19tYXRjaCgnLyguKylcPSguKykvaScsICRwYXJhbWV0ZXIpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICAgICAgICdtc2cnID0+ICd0bHNfcG9saWN5X21hcF9wYXJhbWV0ZXJfaW52YWxpZCcNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICAkdGxzX3BvbGljeV9tYXBzID0gdGxzX3BvbGljeV9tYXBzKCdnZXQnKTsNCisgICAgICAgIGZvcmVhY2ggKCR0bHNfcG9saWN5X21hcHMgYXMgJHRsc19wb2xpY3lfbWFwKSB7DQorICAgICAgICAgIGlmICgkdGxzX3BvbGljeV9tYXAgPT0gJGlkKSB7IGNvbnRpbnVlOyB9DQorICAgICAgICAgIGlmICh0bHNfcG9saWN5X21hcHMoJ2RldGFpbHMnLCAkdGxzX3BvbGljeV9tYXApWydkZXN0J10gPT0gJGRlc3QpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YSwgJF9hdHRyKSwNCisgICAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWNpcGllbnRfbWFwX2VudHJ5X2V4aXN0cycsIGh0bWxzcGVjaWFsY2hhcnMoJGRlc3QpKQ0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgdGxzX3BvbGljeV9vdmVycmlkZWAgU0VUDQorICAgICAgICAgIGBkZXN0YCA9IDpkZXN0LA0KKyAgICAgICAgICBgcG9saWN5YCA9IDpwb2xpY3ksDQorICAgICAgICAgIGBwYXJhbWV0ZXJzYCA9IDpwYXJhbWV0ZXJzLA0KKyAgICAgICAgICBgYWN0aXZlYCA9IDphY3RpdmUNCisgICAgICAgICAgICBXSEVSRSBgaWRgPSA6aWQiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAnOmRlc3QnID0+ICRkZXN0LA0KKyAgICAgICAgICAnOnBvbGljeScgPT4gJHBvbGljeSwNCisgICAgICAgICAgJzpwYXJhbWV0ZXJzJyA9PiAkcGFyYW1ldGVycywNCisgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUsDQorICAgICAgICAgICc6aWQnID0+ICRpZA0KKyAgICAgICAgKSk7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhLCAkX2F0dHIpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndGxzX3BvbGljeV9tYXBfZW50cnlfc2F2ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRkZXN0KSkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGV0YWlscyc6DQorICAgICAgJG1hcGRhdGEgPSBhcnJheSgpOw0KKyAgICAgICRpZCA9IGludHZhbCgkX2RhdGEpOw0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIGBpZGAsDQorICAgICAgICBgZGVzdGAsDQorICAgICAgICBgcG9saWN5YCwNCisgICAgICAgIGBwYXJhbWV0ZXJzYCwNCisgICAgICAgIGBhY3RpdmVgIEFTIGBhY3RpdmVgLA0KKyAgICAgICAgYGNyZWF0ZWRgLA0KKyAgICAgICAgYG1vZGlmaWVkYCBGUk9NIGB0bHNfcG9saWN5X292ZXJyaWRlYA0KKyAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJGlkKSk7DQorICAgICAgJG1hcGRhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgcmV0dXJuICRtYXBkYXRhOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZ2V0JzoNCisgICAgICAkbWFwZGF0YSA9IGFycmF5KCk7DQorICAgICAgJGFsbF9pdGVtcyA9IGFycmF5KCk7DQorICAgICAgJGlkID0gaW50dmFsKCRfZGF0YSk7DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUIGBpZGAgRlJPTSBgdGxzX3BvbGljeV9vdmVycmlkZWAiKTsNCisgICAgICAkYWxsX2l0ZW1zID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGkpIHsNCisgICAgICAgICRtYXBkYXRhW10gPSAkaVsnaWQnXTsNCisgICAgICB9DQorICAgICAgJGFsbF9pdGVtcyA9IG51bGw7DQorICAgICAgcmV0dXJuICRtYXBkYXRhOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGVsZXRlJzoNCisgICAgICAkaWRzID0gKGFycmF5KSRfZGF0YVsnaWQnXTsNCisgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgaWYgKCFpc19udW1lcmljKCRpZCkpIHsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJERUxFVEUgRlJPTSBgdGxzX3BvbGljeV9vdmVycmlkZWAgV0hFUkUgYGlkYD0gOmlkIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnOmlkJyA9PiAkaWQpKTsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGEsICRfYXR0ciksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCd0bHNfcG9saWN5X21hcF9lbnRyeV9kZWxldGVkJywgaHRtbHNwZWNpYWxjaGFycygkaWQpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgfQ0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy50cmFuc3BvcnRzLmluYy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2Z1bmN0aW9ucy50cmFuc3BvcnRzLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q4MDMxYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvZnVuY3Rpb25zLnRyYW5zcG9ydHMuaW5jLnBocApAQCAtMCwwICsxLDQ3OCBAQAorPD9waHANCitmdW5jdGlvbiByZWxheWhvc3QoJF9hY3Rpb24sICRfZGF0YSA9IG51bGwpIHsNCisJZ2xvYmFsICRwZG87DQorCWdsb2JhbCAkbGFuZzsNCisgICRfZGF0YV9sb2cgPSAkX2RhdGE7DQorICBzd2l0Y2ggKCRfYWN0aW9uKSB7DQorICAgIGNhc2UgJ2FkZCc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGhvc3RuYW1lID0gdHJpbSgkX2RhdGFbJ2hvc3RuYW1lJ10pOw0KKyAgICAgICR1c2VybmFtZSA9IHN0cl9yZXBsYWNlKCc6JywgJ1w6JywgdHJpbSgkX2RhdGFbJ3VzZXJuYW1lJ10pKTsNCisgICAgICAkcGFzc3dvcmQgPSBzdHJfcmVwbGFjZSgnOicsICdcOicsIHRyaW0oJF9kYXRhWydwYXNzd29yZCddKSk7DQorICAgICAgaWYgKGVtcHR5KCRob3N0bmFtZSkpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaW52YWxpZF9ob3N0JywgaHRtbHNwZWNpYWxjaGFycygkaG9zdCkpDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICB0cnkgew0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBgcmVsYXlob3N0c2AgKGBob3N0bmFtZWAsIGB1c2VybmFtZWAgLGBwYXNzd29yZGAsIGBhY3RpdmVgKQ0KKyAgICAgICAgICBWQUxVRVMgKDpob3N0bmFtZSwgOnVzZXJuYW1lLCA6cGFzc3dvcmQsIDphY3RpdmUpIik7DQorICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgJzpob3N0bmFtZScgPT4gJGhvc3RuYW1lLA0KKyAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICc6cGFzc3dvcmQnID0+IHN0cl9yZXBsYWNlKCc6JywgJ1w6JywgJHBhc3N3b3JkKSwNCisgICAgICAgICAgJzphY3RpdmUnID0+ICcxJw0KKyAgICAgICAgKSk7DQorICAgICAgfQ0KKyAgICAgIGNhdGNoIChQRE9FeGNlcHRpb24gJGUpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbXlzcWxfZXJyb3InLCAkZSkNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgJ21zZycgPT4gYXJyYXkoJ3JlbGF5aG9zdF9hZGRlZCcsIGh0bWxzcGVjaWFsY2hhcnMoaW1wbG9kZSgnLCAnLCAkaG9zdHMpKSkNCisgICAgICApOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZWRpdCc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+ICdhY2Nlc3NfZGVuaWVkJw0KKyAgICAgICAgKTsNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICB9DQorICAgICAgJGlkcyA9IChhcnJheSkkX2RhdGFbJ2lkJ107DQorICAgICAgZm9yZWFjaCAoJGlkcyBhcyAkaWQpIHsNCisgICAgICAgICRpc19ub3cgPSByZWxheWhvc3QoJ2RldGFpbHMnLCAkaWQpOw0KKyAgICAgICAgaWYgKCFlbXB0eSgkaXNfbm93KSkgew0KKyAgICAgICAgICAkaG9zdG5hbWUgPSAoIWVtcHR5KCRfZGF0YVsnaG9zdG5hbWUnXSkpID8gdHJpbSgkX2RhdGFbJ2hvc3RuYW1lJ10pIDogJGlzX25vd1snaG9zdG5hbWUnXTsNCisgICAgICAgICAgJHVzZXJuYW1lID0gKGlzc2V0KCRfZGF0YVsndXNlcm5hbWUnXSkpID8gdHJpbSgkX2RhdGFbJ3VzZXJuYW1lJ10pIDogJGlzX25vd1sndXNlcm5hbWUnXTsNCisgICAgICAgICAgJHBhc3N3b3JkID0gKGlzc2V0KCRfZGF0YVsncGFzc3dvcmQnXSkpID8gdHJpbSgkX2RhdGFbJ3Bhc3N3b3JkJ10pIDogJGlzX25vd1sncGFzc3dvcmQnXTsNCisgICAgICAgICAgJGFjdGl2ZSAgID0gKGlzc2V0KCRfZGF0YVsnYWN0aXZlJ10pKSA/IGludHZhbCgkX2RhdGFbJ2FjdGl2ZSddKSA6ICRpc19ub3dbJ2FjdGl2ZSddOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVsYXlob3N0X2ludmFsaWQnLCAkaWQpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgdHJ5IHsNCisgICAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJVUERBVEUgYHJlbGF5aG9zdHNgIFNFVA0KKyAgICAgICAgICAgIGBob3N0bmFtZWAgPSA6aG9zdG5hbWUsDQorICAgICAgICAgICAgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSwNCisgICAgICAgICAgICBgcGFzc3dvcmRgID0gOnBhc3N3b3JkLA0KKyAgICAgICAgICAgIGBhY3RpdmVgID0gOmFjdGl2ZQ0KKyAgICAgICAgICAgICAgV0hFUkUgYGlkYCA9IDppZCIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOmlkJyA9PiAkaWQsDQorICAgICAgICAgICAgJzpob3N0bmFtZScgPT4gJGhvc3RuYW1lLA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAnOnBhc3N3b3JkJyA9PiAkcGFzc3dvcmQsDQorICAgICAgICAgICAgJzphY3RpdmUnID0+ICRhY3RpdmUNCisgICAgICAgICAgKSk7DQorICAgICAgICB9DQorICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbXlzcWxfZXJyb3InLCAkZSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKGltcGxvZGUoJywgJywgJGhvc3RuYW1lcykpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRpZHMgPSAoYXJyYXkpJF9kYXRhWydpZCddOw0KKyAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGByZWxheWhvc3RzYCBXSEVSRSBgaWRgPSA6aWQiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJGlkKSk7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGBkb21haW5gIFNFVCBgcmVsYXlob3N0YCA9ICcwJyBXSEVSRSBgcmVsYXlob3N0YD0gOmlkIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6aWQnID0+ICRpZCkpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgY2F0Y2ggKFBET0V4Y2VwdGlvbiAkZSkgew0KKyAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ215c3FsX2Vycm9yJywgJGUpDQorICAgICAgICAgICk7DQorICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgfQ0KKyAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVsYXlob3N0X3JlbW92ZWQnLCBodG1sc3BlY2lhbGNoYXJzKCRpZCkpDQorICAgICAgICApOw0KKyAgICAgIH0NCisgICAgYnJlYWs7DQorICAgIGNhc2UgJ2dldCc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIikgew0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkcmVsYXlob3N0cyA9IGFycmF5KCk7DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUIGBpZGAsIGBob3N0bmFtZWAsIGB1c2VybmFtZWAgRlJPTSBgcmVsYXlob3N0c2AiKTsNCisgICAgICAkcmVsYXlob3N0cyA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsNCisgICAgICByZXR1cm4gJHJlbGF5aG9zdHM7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZXRhaWxzJzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iIHx8ICFpc3NldCgkX2RhdGEpKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRyZWxheWhvc3RkYXRhID0gYXJyYXkoKTsNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBgaWRgLA0KKyAgICAgICAgYGhvc3RuYW1lYCwNCisgICAgICAgIGB1c2VybmFtZWAsDQorICAgICAgICBgcGFzc3dvcmRgLA0KKyAgICAgICAgYGFjdGl2ZWAsDQorICAgICAgICBDT05DQVQoTEVGVChgcGFzc3dvcmRgLCAzKSwgJy4uLicpIEFTIGBwYXNzd29yZF9zaG9ydGANCisgICAgICAgICAgRlJPTSBgcmVsYXlob3N0c2ANCisgICAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJF9kYXRhKSk7DQorICAgICAgJHJlbGF5aG9zdGRhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgaWYgKCFlbXB0eSgkcmVsYXlob3N0ZGF0YSkpIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIEdST1VQX0NPTkNBVChgZG9tYWluYCBTRVBBUkFUT1IgJywgJykgQVMgYHVzZWRfYnlfZG9tYWluc2AgRlJPTSBgZG9tYWluYCBXSEVSRSBgcmVsYXlob3N0YCA9IDppZCIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJF9kYXRhKSk7DQorICAgICAgICAkdXNlZF9ieV9kb21haW5zID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpWyd1c2VkX2J5X2RvbWFpbnMnXTsNCisgICAgICAgICR1c2VkX2J5X2RvbWFpbnMgPSAoZW1wdHkoJHVzZWRfYnlfZG9tYWlucykpID8gJycgOiAkdXNlZF9ieV9kb21haW5zOw0KKyAgICAgICAgJHJlbGF5aG9zdGRhdGFbJ3VzZWRfYnlfZG9tYWlucyddID0gJHVzZWRfYnlfZG9tYWluczsNCisgICAgICB9DQorICAgICAgcmV0dXJuICRyZWxheWhvc3RkYXRhOw0KKyAgICBicmVhazsNCisgIH0NCit9DQorZnVuY3Rpb24gdHJhbnNwb3J0KCRfYWN0aW9uLCAkX2RhdGEgPSBudWxsKSB7DQorCWdsb2JhbCAkcGRvOw0KKwlnbG9iYWwgJGxhbmc7DQorICAkX2RhdGFfbG9nID0gJF9kYXRhOw0KKyAgc3dpdGNoICgkX2FjdGlvbikgew0KKyAgICBjYXNlICdhZGQnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRkZXN0aW5hdGlvbnMgID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRfZGF0YVsnZGVzdGluYXRpb24nXSkpOw0KKyAgICAgICRhY3RpdmUgPSBpbnR2YWwoJF9kYXRhWydhY3RpdmUnXSk7DQorICAgICAgJGxvb2t1cF9teCA9IGludHZhbCgkX2RhdGFbJ2xvb2t1cF9teCddKTsNCisgICAgICAkbmV4dGhvcCA9IHRyaW0oJF9kYXRhWyduZXh0aG9wJ10pOw0KKyAgICAgIGlmIChmaWx0ZXJfdmFyKCRuZXh0aG9wLCBGSUxURVJfVkFMSURBVEVfSVApKSB7DQorICAgICAgICAkbmV4dGhvcCA9ICdbJyAuICRuZXh0aG9wIC4gJ10nOw0KKyAgICAgIH0NCisgICAgICBwcmVnX21hdGNoKCcvXFsoLispXF0uKi8nLCAkbmV4dGhvcCwgJG5leHRfaG9wX21hdGNoZXMpOw0KKyAgICAgICRuZXh0X2hvcF9jbGVhbiA9IChpc3NldCgkbmV4dF9ob3BfbWF0Y2hlc1sxXSkpID8gJG5leHRfaG9wX21hdGNoZXNbMV0gOiAkbmV4dGhvcDsNCisgICAgICAkdXNlcm5hbWUgPSBzdHJfcmVwbGFjZSgnOicsICdcOicsIHRyaW0oJF9kYXRhWyd1c2VybmFtZSddKSk7DQorICAgICAgJHBhc3N3b3JkID0gc3RyX3JlcGxhY2UoJzonLCAnXDonLCB0cmltKCRfZGF0YVsncGFzc3dvcmQnXSkpOw0KKyAgICAgIGlmIChlbXB0eSgkbmV4dGhvcCkpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnaW52YWxpZF9uZXh0aG9wJykNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICR0cmFuc3BvcnRzID0gdHJhbnNwb3J0KCdnZXQnKTsNCisgICAgICBpZiAoIWVtcHR5KCR0cmFuc3BvcnRzKSkgew0KKyAgICAgICAgZm9yZWFjaCAoJHRyYW5zcG9ydHMgYXMgJHRyYW5zcG9ydCkgew0KKyAgICAgICAgICAkdHJhbnNwb3J0X2RhdGEgPSB0cmFuc3BvcnQoJ2RldGFpbHMnLCAkdHJhbnNwb3J0WydpZCddKTsNCisgICAgICAgICAgJGV4aXN0aW5nX25oW10gPSAkdHJhbnNwb3J0X2RhdGFbJ25leHRob3AnXTsNCisgICAgICAgICAgcHJlZ19tYXRjaCgnL1xbKC4rKVxdLiovJywgJHRyYW5zcG9ydF9kYXRhWyduZXh0aG9wJ10sICRleGlzdGluZ19jbGVhbl9uaFtdKTsNCisgICAgICAgICAgaWYgKCgkdHJhbnNwb3J0X2RhdGFbJ25leHRob3AnXSA9PSAkbmV4dGhvcCB8fCAkdHJhbnNwb3J0X2RhdGFbJ25leHRob3AnXSA9PSAkbmV4dF9ob3BfY2xlYW4pICYmICR0cmFuc3BvcnRfZGF0YVsndXNlcm5hbWUnXSAhPSAkdXNlcm5hbWUpIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gJ2ludmFsaWRfbmV4dGhvcF9hdXRoZW50aWNhdGVkJw0KKyAgICAgICAgICAgICk7DQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGZvcmVhY2ggKCRkZXN0aW5hdGlvbnMgYXMgJGRfaXggPT4gJiRkZXN0KSB7DQorICAgICAgICAgICAgaWYgKGVtcHR5KCRkZXN0KSkgew0KKyAgICAgICAgICAgICAgdW5zZXQoJGRlc3RpbmF0aW9uc1skZF9peF0pOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGlmICgkdHJhbnNwb3J0X2RhdGFbJ2Rlc3RpbmF0aW9uJ10gPT0gJGRlc3QpIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgndHJhbnNwb3J0X2Rlc3RfZXhpc3RzJywgJGRlc3QpDQorICAgICAgICAgICAgICApOw0KKyAgICAgICAgICAgICAgdW5zZXQoJGRlc3RpbmF0aW9uc1skZF9peF0pOw0KKyAgICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIC8vICIuZG9tYWluIiBpcyBhIHZhbGlkIGRlc3RpbmF0aW9uLCAiLi5kb21haW4iIGlzIG5vdA0KKyAgICAgICAgICAgIGlmIChlbXB0eSgkZGVzdCkgfHwgKGlzX3ZhbGlkX2RvbWFpbl9uYW1lKHByZWdfcmVwbGFjZSgnL14nIC4gcHJlZ19xdW90ZSgnLicsICcvJykgLiAnLycsICcnLCAkZGVzdCkpID09PSBmYWxzZSAmJiAkZGVzdCAhPSAnKicgJiYgZmlsdGVyX3ZhcigkZGVzdCwgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSA9PT0gZmFsc2UpKSB7DQorICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ2ludmFsaWRfZGVzdGluYXRpb24nLCAkZGVzdCkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICB1bnNldCgkZGVzdGluYXRpb25zWyRkX2l4XSk7DQorICAgICAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgJGRlc3RpbmF0aW9ucyA9IGFycmF5X2ZpbHRlcihhcnJheV92YWx1ZXMoYXJyYXlfdW5pcXVlKCRkZXN0aW5hdGlvbnMpKSk7DQorICAgICAgaWYgKGVtcHR5KCRkZXN0aW5hdGlvbnMpKSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgICAgIGlmIChpc3NldCgkbmV4dF9ob3BfbWF0Y2hlc1sxXSkpIHsNCisgICAgICAgIGlmIChpbl9hcnJheSgkbmV4dF9ob3BfY2xlYW4sICRleGlzdGluZ19uaCkpIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCduZXh0X2hvcF9pbnRlcmZlcmVzJywgJG5leHRfaG9wX2NsZWFuLCAkbmV4dGhvcCkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICBlbHNlIHsNCisgICAgICAgIGZvcmVhY2ggKCRleGlzdGluZ19jbGVhbl9uaCBhcyAkZXhpc3RpbmdfY2xlYW5fbmhfZWFjaCkgew0KKyAgICAgICAgICBpZiAoJGV4aXN0aW5nX2NsZWFuX25oX2VhY2hbMV0gPT0gJG5leHRob3ApIHsNCisgICAgICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgJ21zZycgPT4gYXJyYXkoJ25leHRfaG9wX2ludGVyZmVyZXNfYW55JywgJG5leHRob3ApDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgZm9yZWFjaCAoJGRlc3RpbmF0aW9ucyBhcyAkaW5zZXJ0X2Rlc3QpIHsNCisgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiSU5TRVJUIElOVE8gYHRyYW5zcG9ydHNgIChgbmV4dGhvcGAsIGBkZXN0aW5hdGlvbmAsIGB1c2VybmFtZWAgLCBgcGFzc3dvcmRgLCAgYGxvb2t1cF9teGAsIGBhY3RpdmVgKQ0KKyAgICAgICAgICBWQUxVRVMgKDpuZXh0aG9wLCA6ZGVzdGluYXRpb24sIDp1c2VybmFtZSwgOnBhc3N3b3JkLCA6bG9va3VwX214LCA6YWN0aXZlKSIpOw0KKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAgICc6bmV4dGhvcCcgPT4gJG5leHRob3AsDQorICAgICAgICAgICc6ZGVzdGluYXRpb24nID0+ICRpbnNlcnRfZGVzdCwNCisgICAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgICAnOnBhc3N3b3JkJyA9PiBzdHJfcmVwbGFjZSgnOicsICdcOicsICRwYXNzd29yZCksDQorICAgICAgICAgICc6bG9va3VwX214JyA9PiAkbG9va3VwX214LA0KKyAgICAgICAgICAnOmFjdGl2ZScgPT4gJGFjdGl2ZQ0KKyAgICAgICAgKSk7DQorICAgICAgfQ0KKyAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGB0cmFuc3BvcnRzYCBTRVQNCisgICAgICAgIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUsDQorICAgICAgICBgcGFzc3dvcmRgID0gOnBhc3N3b3JkDQorICAgICAgICAgIFdIRVJFIGBuZXh0aG9wYCA9IDpuZXh0aG9wIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICAgICAnOm5leHRob3AnID0+ICRuZXh0aG9wLA0KKyAgICAgICAgJzp1c2VybmFtZScgPT4gJHVzZXJuYW1lLA0KKyAgICAgICAgJzpwYXNzd29yZCcgPT4gJHBhc3N3b3JkDQorICAgICAgKSk7DQorICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ3N1Y2Nlc3MnLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAnbXNnJyA9PiBhcnJheSgncmVsYXlob3N0X2FkZGVkJywgaHRtbHNwZWNpYWxjaGFycyhpbXBsb2RlKCcsICcsICRob3N0cykpKQ0KKyAgICAgICk7DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdlZGl0JzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgJ21zZycgPT4gJ2FjY2Vzc19kZW5pZWQnDQorICAgICAgICApOw0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkaWRzID0gKGFycmF5KSRfZGF0YVsnaWQnXTsNCisgICAgICBmb3JlYWNoICgkaWRzIGFzICRpZCkgew0KKyAgICAgICAgJGlzX25vdyA9IHRyYW5zcG9ydCgnZGV0YWlscycsICRpZCk7DQorICAgICAgICBpZiAoIWVtcHR5KCRpc19ub3cpKSB7DQorICAgICAgICAgICRkZXN0aW5hdGlvbiA9ICghZW1wdHkoJF9kYXRhWydkZXN0aW5hdGlvbiddKSkgPyB0cmltKCRfZGF0YVsnZGVzdGluYXRpb24nXSkgOiAkaXNfbm93WydkZXN0aW5hdGlvbiddOw0KKyAgICAgICAgICAkbmV4dGhvcCA9ICghZW1wdHkoJF9kYXRhWyduZXh0aG9wJ10pKSA/IHRyaW0oJF9kYXRhWyduZXh0aG9wJ10pIDogJGlzX25vd1snbmV4dGhvcCddOw0KKyAgICAgICAgICAkdXNlcm5hbWUgPSAoaXNzZXQoJF9kYXRhWyd1c2VybmFtZSddKSkgPyB0cmltKCRfZGF0YVsndXNlcm5hbWUnXSkgOiAkaXNfbm93Wyd1c2VybmFtZSddOw0KKyAgICAgICAgICAkcGFzc3dvcmQgPSAoaXNzZXQoJF9kYXRhWydwYXNzd29yZCddKSkgPyB0cmltKCRfZGF0YVsncGFzc3dvcmQnXSkgOiAkaXNfbm93WydwYXNzd29yZCddOw0KKyAgICAgICAgICAkbG9va3VwX214ICAgPSAoaXNzZXQoJF9kYXRhWydsb29rdXBfbXgnXSkgJiYgJF9kYXRhWydsb29rdXBfbXgnXSAhPSAnJykgPyBpbnR2YWwoJF9kYXRhWydsb29rdXBfbXgnXSkgOiAkaXNfbm93Wydsb29rdXBfbXgnXTsNCisgICAgICAgICAgJGFjdGl2ZSAgID0gKGlzc2V0KCRfZGF0YVsnYWN0aXZlJ10pICYmICRfZGF0YVsnYWN0aXZlJ10gIT0gJycpID8gaW50dmFsKCRfZGF0YVsnYWN0aXZlJ10pIDogJGlzX25vd1snYWN0aXZlJ107DQorICAgICAgICB9DQorICAgICAgICBlbHNlIHsNCisgICAgICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoDQorICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWxheWhvc3RfaW52YWxpZCcsICRpZCkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICBwcmVnX21hdGNoKCcvXFsoLispXF0uKi8nLCAkbmV4dGhvcCwgJG5leHRfaG9wX21hdGNoZXMpOw0KKyAgICAgICAgaWYgKGZpbHRlcl92YXIoJG5leHRob3AsIEZJTFRFUl9WQUxJREFURV9JUCkpIHsNCisgICAgICAgICAgJG5leHRob3AgPSAnWycgLiAkbmV4dGhvcCAuICddJzsNCisgICAgICAgIH0NCisgICAgICAgICRuZXh0X2hvcF9jbGVhbiA9IChpc3NldCgkbmV4dF9ob3BfbWF0Y2hlc1sxXSkpID8gJG5leHRfaG9wX21hdGNoZXNbMV0gOiAkbmV4dGhvcDsNCisgICAgICAgICR0cmFuc3BvcnRzID0gdHJhbnNwb3J0KCdnZXQnKTsNCisgICAgICAgIGlmICghZW1wdHkoJHRyYW5zcG9ydHMpKSB7DQorICAgICAgICAgIGZvcmVhY2ggKCR0cmFuc3BvcnRzIGFzICR0cmFuc3BvcnQpIHsNCisgICAgICAgICAgICAkdHJhbnNwb3J0X2RhdGEgPSB0cmFuc3BvcnQoJ2RldGFpbHMnLCAkdHJhbnNwb3J0WydpZCddKTsNCisgICAgICAgICAgICBpZiAoJHRyYW5zcG9ydFsnaWQnXSA9PSAkaWQpIHsNCisgICAgICAgICAgICAgIGNvbnRpbnVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICAkZXhpc3RpbmdfbmhbXSA9ICR0cmFuc3BvcnRfZGF0YVsnbmV4dGhvcCddOw0KKyAgICAgICAgICAgIHByZWdfbWF0Y2goJy9cWyguKylcXS4qLycsICR0cmFuc3BvcnRfZGF0YVsnbmV4dGhvcCddLCAkZXhpc3RpbmdfY2xlYW5fbmhbXSk7DQorICAgICAgICAgICAgaWYgKCR0cmFuc3BvcnRfZGF0YVsnZGVzdGluYXRpb24nXSA9PSAkZGVzdGluYXRpb24pIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiAndHJhbnNwb3J0X2Rlc3RfZXhpc3RzJw0KKyAgICAgICAgICAgICAgKTsNCisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGlmIChpc3NldCgkbmV4dF9ob3BfbWF0Y2hlc1sxXSkpIHsNCisgICAgICAgICAgaWYgKGluX2FycmF5KCRuZXh0X2hvcF9jbGVhbiwgJGV4aXN0aW5nX25oKSkgew0KKyAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbmV4dF9ob3BfaW50ZXJmZXJlcycsICRuZXh0X2hvcF9jbGVhbiwgJG5leHRob3ApDQorICAgICAgICAgICAgKTsNCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICBmb3JlYWNoICgkZXhpc3RpbmdfY2xlYW5fbmggYXMgJGV4aXN0aW5nX2NsZWFuX25oX2VhY2gpIHsNCisgICAgICAgICAgICBpZiAoJGV4aXN0aW5nX2NsZWFuX25oX2VhY2hbMV0gPT0gJG5leHRob3ApIHsNCisgICAgICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbmV4dF9ob3BfaW50ZXJmZXJlc19hbnknLCAkbmV4dGhvcCkNCisgICAgICAgICAgICAgICk7DQorICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICBpZiAoZW1wdHkoJHVzZXJuYW1lKSkgew0KKyAgICAgICAgICAkcGFzc3dvcmQgPSAnJzsNCisgICAgICAgIH0NCisgICAgICAgIHRyeSB7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiVVBEQVRFIGB0cmFuc3BvcnRzYCBTRVQNCisgICAgICAgICAgICBgZGVzdGluYXRpb25gID0gOmRlc3RpbmF0aW9uLA0KKyAgICAgICAgICAgIGBuZXh0aG9wYCA9IDpuZXh0aG9wLA0KKyAgICAgICAgICAgIGB1c2VybmFtZWAgPSA6dXNlcm5hbWUsDQorICAgICAgICAgICAgYHBhc3N3b3JkYCA9IDpwYXNzd29yZCwNCisgICAgICAgICAgICBgbG9va3VwX214YCA9IDpsb29rdXBfbXgsDQorICAgICAgICAgICAgYGFjdGl2ZWAgPSA6YWN0aXZlDQorICAgICAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KA0KKyAgICAgICAgICAgICc6aWQnID0+ICRpZCwNCisgICAgICAgICAgICAnOmRlc3RpbmF0aW9uJyA9PiAkZGVzdGluYXRpb24sDQorICAgICAgICAgICAgJzpuZXh0aG9wJyA9PiAkbmV4dGhvcCwNCisgICAgICAgICAgICAnOnVzZXJuYW1lJyA9PiAkdXNlcm5hbWUsDQorICAgICAgICAgICAgJzpwYXNzd29yZCcgPT4gJHBhc3N3b3JkLA0KKyAgICAgICAgICAgICc6bG9va3VwX214JyA9PiAkbG9va3VwX214LA0KKyAgICAgICAgICAgICc6YWN0aXZlJyA9PiAkYWN0aXZlDQorICAgICAgICAgICkpOw0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgdHJhbnNwb3J0c2AgU0VUDQorICAgICAgICAgICAgYHVzZXJuYW1lYCA9IDp1c2VybmFtZSwNCisgICAgICAgICAgICBgcGFzc3dvcmRgID0gOnBhc3N3b3JkDQorICAgICAgICAgICAgICBXSEVSRSBgbmV4dGhvcGAgPSA6bmV4dGhvcCIpOw0KKyAgICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgNCisgICAgICAgICAgICAnOm5leHRob3AnID0+ICRuZXh0aG9wLA0KKyAgICAgICAgICAgICc6dXNlcm5hbWUnID0+ICR1c2VybmFtZSwNCisgICAgICAgICAgICAnOnBhc3N3b3JkJyA9PiAkcGFzc3dvcmQNCisgICAgICAgICAgKSk7DQorICAgICAgICB9DQorICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbXlzcWxfZXJyb3InLCAkZSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdvYmplY3RfbW9kaWZpZWQnLCBodG1sc3BlY2lhbGNoYXJzKGltcGxvZGUoJywgJywgJGhvc3RuYW1lcykpKQ0KKyAgICAgICAgKTsNCisgICAgICB9DQorICAgIGJyZWFrOw0KKyAgICBjYXNlICdkZWxldGUnOg0KKyAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddICE9ICJhZG1pbiIpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ2RhbmdlcicsDQorICAgICAgICAgICdsb2cnID0+IGFycmF5KF9fRlVOQ1RJT05fXywgJF9hY3Rpb24sICRfZGF0YV9sb2cpLA0KKyAgICAgICAgICAnbXNnJyA9PiAnYWNjZXNzX2RlbmllZCcNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICRpZHMgPSAoYXJyYXkpJF9kYXRhWydpZCddOw0KKyAgICAgIGZvcmVhY2ggKCRpZHMgYXMgJGlkKSB7DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIkRFTEVURSBGUk9NIGB0cmFuc3BvcnRzYCBXSEVSRSBgaWRgPSA6aWQiKTsNCisgICAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJGlkKSk7DQorICAgICAgICB9DQorICAgICAgICBjYXRjaCAoUERPRXhjZXB0aW9uICRlKSB7DQorICAgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywNCisgICAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18sICRfYWN0aW9uLCAkX2RhdGFfbG9nKSwNCisgICAgICAgICAgICAnbXNnJyA9PiBhcnJheSgnbXlzcWxfZXJyb3InLCAkZSkNCisgICAgICAgICAgKTsNCisgICAgICAgICAgY29udGludWU7DQorICAgICAgICB9DQorICAgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICAgJ3R5cGUnID0+ICdzdWNjZXNzJywNCisgICAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fLCAkX2FjdGlvbiwgJF9kYXRhX2xvZyksDQorICAgICAgICAgICdtc2cnID0+IGFycmF5KCdyZWxheWhvc3RfcmVtb3ZlZCcsIGh0bWxzcGVjaWFsY2hhcnMoJGlkKSkNCisgICAgICAgICk7DQorICAgICAgfQ0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZ2V0JzoNCisgICAgICBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAiYWRtaW4iKSB7DQorICAgICAgICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKyAgICAgICR0cmFuc3BvcnRzID0gYXJyYXkoKTsNCisgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgYGlkYCwgYGRlc3RpbmF0aW9uYCwgYG5leHRob3BgLCBgdXNlcm5hbWVgIEZST00gYHRyYW5zcG9ydHNgIik7DQorICAgICAgJHRyYW5zcG9ydHMgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgcmV0dXJuICR0cmFuc3BvcnRzOw0KKyAgICBicmVhazsNCisgICAgY2FzZSAnZGV0YWlscyc6DQorICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gIT0gImFkbWluIiB8fCAhaXNzZXQoJF9kYXRhKSkgew0KKyAgICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICAgIH0NCisgICAgICAkdHJhbnNwb3J0ZGF0YSA9IGFycmF5KCk7DQorICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgYGlkYCwNCisgICAgICAgIGBkZXN0aW5hdGlvbmAsDQorICAgICAgICBgbmV4dGhvcGAsDQorICAgICAgICBgdXNlcm5hbWVgLA0KKyAgICAgICAgYHBhc3N3b3JkYCwNCisgICAgICAgIGBhY3RpdmVgLA0KKyAgICAgICAgYGxvb2t1cF9teGAsDQorICAgICAgICBDT05DQVQoTEVGVChgcGFzc3dvcmRgLCAzKSwgJy4uLicpIEFTIGBwYXNzd29yZF9zaG9ydGANCisgICAgICAgICAgRlJPTSBgdHJhbnNwb3J0c2ANCisgICAgICAgICAgICBXSEVSRSBgaWRgID0gOmlkIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzppZCcgPT4gJF9kYXRhKSk7DQorICAgICAgJHRyYW5zcG9ydGRhdGEgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgcmV0dXJuICR0cmFuc3BvcnRkYXRhOw0KKyAgICBicmVhazsNCisgIH0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9oZWFkZXIuaW5jLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvaGVhZGVyLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJhZGQyNQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvaGVhZGVyLmluYy5waHAKQEAgLTAsMCArMSwxNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iPD89ICRfU0VTU0lPTlsnbWFpbGNvd19sb2NhbGUnXSA/PiI+Cis8aGVhZD4KKyAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiPgorICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MSwgdXNlci1zY2FsYWJsZT0wIj4KKyAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiNGNUQ3NkUiLz4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iUmVmZXJyZXItUG9saWN5IiBjb250ZW50PSJzYW1lLW9yaWdpbiI+CisgIDx0aXRsZT48Pz0kVUlfVEVYVFNbJ3RpdGxlX25hbWUnXTs/PjwvdGl0bGU+CisgIDw/cGhwCisgICAgaWYgKHByZWdfbWF0Y2goIi9tYWlsYm94L2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpIHsKKyAgICAgICRjc3NfbWluaWZpZXItPmFkZCgnL3dlYi9jc3Mvc2l0ZS9tYWlsYm94LmNzcycpOworICAgIH0KKyAgICBpZiAocHJlZ19tYXRjaCgiL2FkbWluL2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpIHsKKyAgICAgICRjc3NfbWluaWZpZXItPmFkZCgnL3dlYi9jc3Mvc2l0ZS9hZG1pbi5jc3MnKTsKKyAgICB9CisgICAgaWYgKHByZWdfbWF0Y2goIi91c2VyL2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpIHsKKyAgICAgICRjc3NfbWluaWZpZXItPmFkZCgnL3dlYi9jc3Mvc2l0ZS91c2VyLmNzcycpOworICAgIH0KKyAgICBpZiAocHJlZ19tYXRjaCgiL2VkaXQvaSIsICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSkgeworICAgICAgJGNzc19taW5pZmllci0+YWRkKCcvd2ViL2Nzcy9zaXRlL2VkaXQuY3NzJyk7CisgICAgfQorICAgIGlmIChwcmVnX21hdGNoKCIvKHF1YXJhbnRpbmV8cWhhbmRsZXIpL2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpIHsKKyAgICAgICRjc3NfbWluaWZpZXItPmFkZCgnL3dlYi9jc3Mvc2l0ZS9xdWFyYW50aW5lLmNzcycpOworICAgIH0KKyAgICBpZiAocHJlZ19tYXRjaCgiL2RlYnVnL2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpIHsKKyAgICAgICRjc3NfbWluaWZpZXItPmFkZCgnL3dlYi9jc3Mvc2l0ZS9kZWJ1Zy5jc3MnKTsKKyAgICB9CisgICAgaWYgKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddID09ICcvJykgeworICAgICAgJGNzc19taW5pZmllci0+YWRkKCcvd2ViL2Nzcy9zaXRlL2luZGV4LmNzcycpOworICAgIH0KKworICAkaGFzaCA9ICRjc3NfbWluaWZpZXItPmdldERhdGFIYXNoKCk7CisgICRDU1NQYXRoID0gJy90bXAvJyAuICRoYXNoIC4gJy5jc3MnOworICBpZighZmlsZV9leGlzdHMoJENTU1BhdGgpKSB7CisgICAgJGNzc19taW5pZmllci0+bWluaWZ5KCRDU1NQYXRoKTsKKyAgICBjbGVhbnVwQ1NTKCRoYXNoKTsKKyAgfQorICA/PgorICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9jYWNoZS88Pz1iYXNlbmFtZSgkQ1NTUGF0aCk/PiI+CisgIDw/cGhwIGlmIChzdHJ0b2xvd2VyKHRyaW0oJERFRkFVTFRfVEhFTUUpKSAhPSAibHVtZW4iKSB7ID8+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLy9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYm9vdHN3YXRjaC8zLjMuNy88Pz0gc3RydG9sb3dlcih0cmltKCRERUZBVUxUX1RIRU1FKSk7ID8+L2Jvb3RzdHJhcC5taW4uY3NzIj4KKyAgPD9waHAgfSA/PgorICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9mYXZpY29uLnBuZyIgdHlwZT0iaW1hZ2UvcG5nIj4KKyAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSIvZmF2aWNvbi5wbmciIHR5cGU9ImltYWdlL3BuZyI+Cis8L2hlYWQ+Cis8Ym9keSBpZD0idG9wIj4KKyAgPGRpdiBjbGFzcz0ib3ZlcmxheSI+PC9kaXY+CisgIDxuYXYgY2xhc3M9Im5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItZml4ZWQtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQiPgorICAgICAgPGRpdiBjbGFzcz0ibmF2YmFyLWhlYWRlciI+CisgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibmF2YmFyLXRvZ2dsZSBjb2xsYXBzZWQiIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNuYXZiYXIiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJuYXZiYXIiPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPgorICAgICAgICA8L2J1dHRvbj4KKyAgICAgICAgPGEgY2xhc3M9Im5hdmJhci1icmFuZCIgaHJlZj0iLyI+PGltZyBhbHQ9Im1haWxjb3ctbG9nbyIgc3JjPSI8Pz0oJG1haW5fbG9nbyA9IGN1c3RvbWl6ZSgnZ2V0JywgJ21haW5fbG9nbycpKSA/ICRtYWluX2xvZ28gOiAnL2ltZy9jb3dfbWFpbGNvdy5zdmcnOz8+Ij48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgaWQ9Im5hdmJhciIgY2xhc3M9Im5hdmJhci1jb2xsYXBzZSBjb2xsYXBzZSI+CisgICAgICAgIDx1bCBjbGFzcz0ibmF2IG5hdmJhci1uYXYgbmF2YmFyLXJpZ2h0Ij4KKyAgICAgICAgICA8P3BocAorICAgICAgICAgIGlmIChpc3NldCgkX1NFU1NJT05bJ21haWxjb3dfbG9jYWxlJ10pKSB7CisgICAgICAgICAgPz4KKyAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duPD89KGlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19sb2NhbGUnXSkgJiYgY291bnQoJEFWQUlMQUJMRV9MQU5HVUFHRVMpID09PSAxKSA/ICcgbGFuZy1saW5rLWRpc2FibGVkIicgOiAnJyA/PiI+CisgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJsYW5nLXNtIGxhbmctbGJsIiBsYW5nPSI8Pz0gJF9TRVNTSU9OWydtYWlsY293X2xvY2FsZSddOyA/PiI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjYXJldCI+PC9zcGFuPjwvYT4KKyAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSIgcm9sZT0ibWVudSI+CisgICAgICAgICAgICAgIDw/cGhwCisgICAgICAgICAgICAgIGZvcmVhY2ggKCRBVkFJTEFCTEVfTEFOR1VBR0VTIGFzICRsYW5ndWFnZSkgeworICAgICAgICAgICAgICA/PgorICAgICAgICAgICAgICA8bGk8Pz0gKCRfU0VTU0lPTlsnbWFpbGNvd19sb2NhbGUnXSA9PSAkbGFuZ3VhZ2UpID8gJyBjbGFzcz0iYWN0aXZlIicgOiAnJzsgPz4+PGEgaHJlZj0iPzw/PSBodHRwX2J1aWxkX3F1ZXJ5KGFycmF5X21lcmdlKCRfR0VULCBhcnJheSgnbGFuZycgPT4gJGxhbmd1YWdlKSkpOyA/PiI+PHNwYW4gY2xhc3M9ImxhbmcteHMgbGFuZy1sYmwtZnVsbCIgbGFuZz0iPD89ICRsYW5ndWFnZTsgPz4iPjwvc3Bhbj48L2E+PC9saT4KKyAgICAgICAgICAgICAgPD9waHAKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICA/PgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDw/cGhwCisgICAgICAgICAgfQorICAgICAgICAgIGlmIChpc3NldCgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddKSkgeworICAgICAgICAgID8+CisgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biI+CisgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPjw/PSAkbGFuZ1snaGVhZGVyJ11bJ21haWxjb3dfc2V0dGluZ3MnXTsgPz4gPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+PC9hPgorICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IiByb2xlPSJtZW51Ij4KKyAgICAgICAgICAgICAgPD9waHAKKyAgICAgICAgICAgICAgaWYgKGlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10pKSB7CisgICAgICAgICAgICAgICAgaWYgKCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPT0gJ2FkbWluJykgeworICAgICAgICAgICAgICAgID8+CisgICAgICAgICAgICAgICAgICA8bGk8Pz0gKHByZWdfbWF0Y2goIi9hZG1pbi9pIiwgJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pKSA/ICcgY2xhc3M9ImFjdGl2ZSInIDogJyc7ID8+PjxhIGhyZWY9Ii9hZG1pbiI+PD89ICRsYW5nWydoZWFkZXInXVsnYWRtaW5pc3RyYXRpb24nXTsgPz48L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaTw/PSAocHJlZ19tYXRjaCgiL2RlYnVnL2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpID8gJyBjbGFzcz0iYWN0aXZlIicgOiAnJzsgPz4+PGEgaHJlZj0iL2RlYnVnIj48Pz0gJGxhbmdbJ2hlYWRlciddWydkZWJ1ZyddOyA/PjwvYT48L2xpPgorICAgICAgICAgICAgICAgIDw/cGhwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICdhZG1pbicgfHwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAnZG9tYWluYWRtaW4nKSB7CisgICAgICAgICAgICAgICAgPz4KKyAgICAgICAgICAgICAgICAgIDxsaTw/PSAocHJlZ19tYXRjaCgiL21haWxib3gvaSIsICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSkgPyAnIGNsYXNzPSJhY3RpdmUiJyA6ICcnOyA/Pj48YSBocmVmPSIvbWFpbGJveCI+PD89ICRsYW5nWydoZWFkZXInXVsnbWFpbGJveGVzJ107ID8+PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPD9waHAgfSBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAhPSAnYWRtaW4nKSB7ID8+CisgICAgICAgICAgICAgICAgICA8bGk8Pz0gKHByZWdfbWF0Y2goIi91c2VyL2kiLCAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXSkpID8gJyBjbGFzcz0iYWN0aXZlIicgOiAnJzsgPz4+PGEgaHJlZj0iL3VzZXIiPjw/PSAkbGFuZ1snaGVhZGVyJ11bJ3VzZXJfc2V0dGluZ3MnXTsgPz48L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8P3BocAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICA/PgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDw/cGhwIGlmIChpc3NldCgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddKSkgeyA/PgorICAgICAgICAgIDxsaTw/PSAocHJlZ19tYXRjaCgiL3F1YXJhbnRpbmUvaSIsICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSkgPyAnIGNsYXNzPSJhY3RpdmUiJyA6ICcnOyA/Pj48YSBocmVmPSIvcXVhcmFudGluZSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tYnJpZWZjYXNlIj48L3NwYW4+IDw/PSAkbGFuZ1snaGVhZGVyJ11bJ3F1YXJhbnRpbmUnXTsgPz48L2E+PC9saT4KKyAgICAgICAgICA8P3BocCB9IGlmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICdhZG1pbicgJiYgZ2V0ZW52KCdTS0lQX1NPR08nKSAhPSAieSIpIHsgPz4KKyAgICAgICAgICA8bGk+PGEgaHJlZiBkYXRhLXRvZ2dsZT0ibW9kYWwiIGRhdGEtY29udGFpbmVyPSJzb2dvLW1haWxjb3ciIGRhdGEtdGFyZ2V0PSIjUmVzdGFydENvbnRhaW5lciI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcmVmcmVzaCI+PC9zcGFuPiA8Pz0gJGxhbmdbJ2hlYWRlciddWydyZXN0YXJ0X3NvZ28nXTsgPz48L2E+PC9saT4KKyAgICAgICAgICA8P3BocCB9ID8+CisgICAgICAgICAgPGxpIGNsYXNzPSJkcm9wZG93biI+CisgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpbmsiPjwvc3Bhbj4gPD89ICRsYW5nWydoZWFkZXInXVsnYXBwcyddOyA/PiA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj48L2E+CisgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUiIHJvbGU9Im1lbnUiPgorICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJE1BSUxDT1dfQVBQUyBhcyAkYXBwKSB7CisgICAgICAgICAgICAgIGlmIChnZXRlbnYoJ1NLSVBfU09HTycpID09ICJ5IiAmJiBwcmVnX21hdGNoKCcvXlwvU09Hby9pJywgJGFwcFsnbGluayddKSkgeyBjb250aW51ZTsgfQorICAgICAgICAgICAgPz4KKyAgICAgICAgICAgICAgPGxpIHRpdGxlPSI8Pz0gaHRtbHNwZWNpYWxjaGFycygkYXBwWydkZXNjcmlwdGlvbiddKTsgPz4iPjxhIGhyZWY9Ijw/PSBodG1sc3BlY2lhbGNoYXJzKCRhcHBbJ2xpbmsnXSk7ID8+Ij48Pz0gaHRtbHNwZWNpYWxjaGFycygkYXBwWyduYW1lJ10pOyA/PjwvYT48L2xpPgorICAgICAgICAgICAgPD9waHAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRhcHBfbGlua3MgPSBjdXN0b21pemUoJ2dldCcsICdhcHBfbGlua3MnKTsKKyAgICAgICAgICAgIGlmICgkYXBwX2xpbmtzKSB7CisgICAgICAgICAgICAgIGZvcmVhY2ggKCRhcHBfbGlua3MgYXMgJHJvdykgeworICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyb3cgYXMgJGtleSA9PiAkdmFsKSB7CisgICAgICAgICAgICAgID8+CisgICAgICAgICAgICAgIDxsaT48YSBocmVmPSI8Pz0gaHRtbHNwZWNpYWxjaGFycygkdmFsKTsgPz4iPjw/PSBodG1sc3BlY2lhbGNoYXJzKCRrZXkpOyA/PjwvYT48L2xpPgorICAgICAgICAgICAgICA8P3BocAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgPz4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8P3BocCB9IGlmICghaXNzZXQoJF9TRVNTSU9OWydkdWFsLWxvZ2luJ10pICYmIGlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddKSkgeyA/PgorICAgICAgICAgICAgPGxpIGNsYXNzPSJsb2dnZWQtaW4tYXMiPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImxvZ291dC5zdWJtaXQoKSI+PGIgY2xhc3M9InVzZXJuYW1lLWxpYSI+PD89IGh0bWxzcGVjaWFsY2hhcnMoJF9TRVNTSU9OWydtYWlsY293X2NjX3VzZXJuYW1lJ10pOyA/PjwvYj4gPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbG9nLW91dCI+PC9zcGFuPjwvYT48L2xpPgorICAgICAgICAgIDw/cGhwIH0gZWxzZWlmIChpc3NldCgkX1NFU1NJT05bJ2R1YWwtbG9naW4nXSkpIHsgPz4KKyAgICAgICAgICAgIDxsaSBjbGFzcz0ibG9nZ2VkLWluLWFzIj48YSBocmVmPSIjIiBvbmNsaWNrPSJsb2dvdXQuc3VibWl0KCkiPjxiIGNsYXNzPSJ1c2VybmFtZS1saWEiPjw/PSBodG1sc3BlY2lhbGNoYXJzKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddKTsgPz4gPHNwYW4gY2xhc3M9InRleHQtaW5mbyI+KDw/PSBodG1sc3BlY2lhbGNoYXJzKCRfU0VTU0lPTlsnZHVhbC1sb2dpbiddWyd1c2VybmFtZSddKTsgPz4pPC9zcGFuPiA8L2I+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbG9nLW91dCI+PC9zcGFuPjwvYT48L2xpPgorICAgICAgICAgIDw/cGhwIH0gaWYgKCFwcmVnX21hdGNoKCcveXx5ZXMvaScsIGdldGVudignTUFTVEVSJykpKSB7ID8+CisgICAgICAgICAgICA8bGkgY2xhc3M9InRleHQtd2FybmluZyBzbGF2ZS1pbmZvIj5bIHNsYXZlIF08L2xpPgorICAgICAgICAgIDw/cGhwIH0gPz4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvZGl2PjwhLS0vLm5hdi1jb2xsYXBzZSAtLT4KKyAgICA8L2Rpdj48IS0tLy5jb250YWluZXItZmx1aWQgLS0+CisgIDwvbmF2PgorICA8Zm9ybSBhY3Rpb249Ii8iIG1ldGhvZD0icG9zdCIgaWQ9ImxvZ291dCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibG9nb3V0Ij48L2Zvcm0+CisgIDw/cGhwIGlmICghZW1wdHkoJFVJX1RFWFRTWyd1aV9hbm5vdW5jZW1lbnRfdGV4dCddKSAmJgorICAgIGluX2FycmF5KCRVSV9URVhUU1sndWlfYW5ub3VuY2VtZW50X3R5cGUnXSwgYXJyYXkoJ2luZm8nLCAnd2FybmluZycsICdkYW5nZXInKSkgJiYKKyAgICAkVUlfVEVYVFNbJ3VpX2Fubm91bmNlbWVudF9hY3RpdmUnXSA9PSAxICYmCisgICAgcGFyc2VfdXJsKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddLCBQSFBfVVJMX1BBVEgpICE9ICcvJykgeyA/PgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LTw/PSRVSV9URVhUU1sndWlfYW5ub3VuY2VtZW50X3R5cGUnXTs/PiI+PD89JFVJX1RFWFRTWyd1aV9hbm5vdW5jZW1lbnRfdGV4dCddOz8+PC9kaXY+CisgIDwvZGl2PgorICA8P3BocCB9ID8+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2luaXRfZGIuaW5jLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvaW5pdF9kYi5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMTBiYmQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2luaXRfZGIuaW5jLnBocApAQCAtMCwwICsxLDEyNjggQEAKKzw/cGhwDQorZnVuY3Rpb24gaW5pdF9kYl9zY2hlbWEoKSB7DQorICB0cnkgew0KKyAgICBnbG9iYWwgJHBkbzsNCisNCisgICAgJGRiX3ZlcnNpb24gPSAiMjgxMTIwMjBfMTIxMCI7DQorDQorICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNIT1cgVEFCTEVTIExJS0UgJ3ZlcnNpb25zJyIpOw0KKyAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICBpZiAoJG51bV9yZXN1bHRzICE9IDApIHsNCisgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgYHZlcnNpb25gIEZST00gYHZlcnNpb25zYCBXSEVSRSBgYXBwbGljYXRpb25gID0gJ2RiX3NjaGVtYSciKTsNCisgICAgICBpZiAoJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpWyd2ZXJzaW9uJ10gPT0gJGRiX3ZlcnNpb24pIHsNCisgICAgICAgIHJldHVybiB0cnVlOw0KKyAgICAgIH0NCisgICAgICBpZiAoIXByZWdfbWF0Y2goJy95fHllcy9pJywgZ2V0ZW52KCdNQVNURVInKSkpIHsNCisgICAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgICAndHlwZScgPT4gJ3dhcm5pbmcnLA0KKyAgICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKyAgICAgICAgICAnbXNnJyA9PiAnRGF0YWJhc2Ugbm90IGluaXRpYWxpemVkOiBub3QgcnVubmluZyBkYl9pbml0IG9uIHNsYXZlLicNCisgICAgICAgICk7DQorICAgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgICB9DQorICAgIH0NCisNCisgICAgJHZpZXdzID0gYXJyYXkoDQorICAgICJncm91cGVkX21haWxfYWxpYXNlcyIgPT4gIkNSRUFURSBWSUVXIGdyb3VwZWRfbWFpbF9hbGlhc2VzICh1c2VybmFtZSwgYWxpYXNlcykgQVMNCisgICAgICBTRUxFQ1QgZ290bywgSUZOVUxMKEdST1VQX0NPTkNBVChhZGRyZXNzIE9SREVSIEJZIGFkZHJlc3MgU0VQQVJBVE9SICcgJyksICcnKSBBUyBhZGRyZXNzIEZST00gYWxpYXMNCisgICAgICBXSEVSRSBhZGRyZXNzIT1nb3RvDQorICAgICAgQU5EIGFjdGl2ZSA9ICcxJw0KKyAgICAgIEFORCBzb2dvX3Zpc2libGUgPSAnMScNCisgICAgICBBTkQgYWRkcmVzcyBOT1QgTElLRSAnQCUnDQorICAgICAgR1JPVVAgQlkgZ290bzsiLA0KKyAgICAvLyBTVEFSVA0KKyAgICAvLyBVbnVzZWQgYXQgdGhlIG1vbWVudCAtIHdlIGNhbm5vdCBhbGxvdyB0byBzaG93IGEgZm9yZWlnbiBtYWlsYm94IGFzIHNlbmRlciBhZGRyZXNzIGluIFNPR28sIGFzIFNPR28gZG9lcyBub3QgbGlrZSB0aGlzDQorICAgIC8vIFdlIG5lZWQgdG8gY3JlYXRlIGRlbGVnYXRpb24gaW4gU09HbyBBTkQgc2V0IGEgc2VuZGVyX2FjbCBpbiBtYWlsY293IHRvIGFsbG93IHRvIHNlbmQgYXMgdXNlciBYDQorICAgICJncm91cGVkX3NlbmRlcl9hY2wiID0+ICJDUkVBVEUgVklFVyBncm91cGVkX3NlbmRlcl9hY2wgKHVzZXJuYW1lLCBzZW5kX2FzX2FjbCkgQVMNCisgICAgICBTRUxFQ1QgbG9nZ2VkX2luX2FzLCBJRk5VTEwoR1JPVVBfQ09OQ0FUKHNlbmRfYXMgU0VQQVJBVE9SICcgJyksICcnKSBBUyBzZW5kX2FzX2FjbCBGUk9NIHNlbmRlcl9hY2wNCisgICAgICBXSEVSRSBzZW5kX2FzIE5PVCBMSUtFICdAJScNCisgICAgICBHUk9VUCBCWSBsb2dnZWRfaW5fYXM7IiwNCisgICAgLy8gRU5EIA0KKyAgICAiZ3JvdXBlZF9zZW5kZXJfYWNsX2V4dGVybmFsIiA9PiAiQ1JFQVRFIFZJRVcgZ3JvdXBlZF9zZW5kZXJfYWNsX2V4dGVybmFsICh1c2VybmFtZSwgc2VuZF9hc19hY2wpIEFTDQorICAgICAgU0VMRUNUIGxvZ2dlZF9pbl9hcywgSUZOVUxMKEdST1VQX0NPTkNBVChzZW5kX2FzIFNFUEFSQVRPUiAnICcpLCAnJykgQVMgc2VuZF9hc19hY2wgRlJPTSBzZW5kZXJfYWNsDQorICAgICAgV0hFUkUgc2VuZF9hcyBOT1QgTElLRSAnQCUnIEFORCBleHRlcm5hbCA9ICcxJw0KKyAgICAgIEdST1VQIEJZIGxvZ2dlZF9pbl9hczsiLA0KKyAgICAiZ3JvdXBlZF9kb21haW5fYWxpYXNfYWRkcmVzcyIgPT4gIkNSRUFURSBWSUVXIGdyb3VwZWRfZG9tYWluX2FsaWFzX2FkZHJlc3MgKHVzZXJuYW1lLCBhZF9hbGlhcykgQVMNCisgICAgICBTRUxFQ1QgdXNlcm5hbWUsIElGTlVMTChHUk9VUF9DT05DQVQobG9jYWxfcGFydCwgJ0AnLCBhbGlhc19kb21haW4gU0VQQVJBVE9SICcgJyksICcnKSBBUyBhZF9hbGlhcyBGUk9NIG1haWxib3gNCisgICAgICBMRUZUIE9VVEVSIEpPSU4gYWxpYXNfZG9tYWluIE9OIHRhcmdldF9kb21haW49ZG9tYWluDQorICAgICAgR1JPVVAgQlkgdXNlcm5hbWU7IiwNCisgICAgInNpZXZlX2JlZm9yZSIgPT4gIkNSRUFURSBWSUVXIHNpZXZlX2JlZm9yZSAoaWQsIHVzZXJuYW1lLCBzY3JpcHRfbmFtZSwgc2NyaXB0X2RhdGEpIEFTDQorICAgICAgU0VMRUNUIG1kNShzY3JpcHRfZGF0YSksIHVzZXJuYW1lLCBzY3JpcHRfbmFtZSwgc2NyaXB0X2RhdGEgRlJPTSBzaWV2ZV9maWx0ZXJzDQorICAgICAgV0hFUkUgZmlsdGVyX3R5cGUgPSAncHJlZmlsdGVyJzsiLA0KKyAgICAic2lldmVfYWZ0ZXIiID0+ICJDUkVBVEUgVklFVyBzaWV2ZV9hZnRlciAoaWQsIHVzZXJuYW1lLCBzY3JpcHRfbmFtZSwgc2NyaXB0X2RhdGEpIEFTDQorICAgICAgU0VMRUNUIG1kNShzY3JpcHRfZGF0YSksIHVzZXJuYW1lLCBzY3JpcHRfbmFtZSwgc2NyaXB0X2RhdGEgRlJPTSBzaWV2ZV9maWx0ZXJzDQorICAgICAgV0hFUkUgZmlsdGVyX3R5cGUgPSAncG9zdGZpbHRlcic7Ig0KKyAgICApOw0KKw0KKyAgICAkdGFibGVzID0gYXJyYXkoDQorICAgICAgInZlcnNpb25zIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImFwcGxpY2F0aW9uIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgInZlcnNpb24iID0+ICJWQVJDSEFSKDEwMCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiYXBwbGljYXRpb24iKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJhZG1pbiIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJ1c2VybmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJwYXNzd29yZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJzdXBlcmFkbWluIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgTk9XKDApIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoInVzZXJuYW1lIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiZmlkbzIiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAidXNlcm5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiZnJpZW5kbHlOYW1lIiA9PiAiVkFSQ0hBUigyNTUpIiwNCisgICAgICAgICAgInJwSWQiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY3JlZGVudGlhbFB1YmxpY0tleSIgPT4gIlRFWFQgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY2VydGlmaWNhdGVDaGFpbiIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAvLyBDYW4gYmUgbnVsbCBmb3IgZm9ybWF0ICJub25lIg0KKyAgICAgICAgICAiY2VydGlmaWNhdGUiID0+ICJURVhUIiwNCisgICAgICAgICAgImNlcnRpZmljYXRlSXNzdWVyIiA9PiAiVkFSQ0hBUigyNTUpIiwNCisgICAgICAgICAgImNlcnRpZmljYXRlU3ViamVjdCIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJzaWduYXR1cmVDb3VudGVyIiA9PiAiSU5UIiwNCisgICAgICAgICAgIkFBR1VJRCIgPT4gIkJMT0IiLA0KKyAgICAgICAgICAiY3JlZGVudGlhbElkIiA9PiAiQkxPQiBOT1QgTlVMTCIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgTk9XKDApIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJfc29nb19zdGF0aWNfdmlldyIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJjX3VpZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJkb21haW4iID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19uYW1lIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfcGFzc3dvcmQiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwgREVGQVVMVCAnJyIsDQorICAgICAgICAgICJjX2NuIiA9PiAiVkFSQ0hBUigyNTUpIiwNCisgICAgICAgICAgIm1haWwiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAvLyBUT0RPIC0+IHVzZSBURVhUIGFuZCBjaGVjayBpZiBTT0dvIGxvZ2luIGJyZWFrcyBvbiBlbXB0eSBhbGlhc2VzDQorICAgICAgICAgICJhbGlhc2VzIiA9PiAiVEVYVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJhZF9hbGlhc2VzIiA9PiAiVkFSQ0hBUig2MTQ0KSBOT1QgTlVMTCBERUZBVUxUICcnIiwNCisgICAgICAgICAgImV4dF9hY2wiID0+ICJWQVJDSEFSKDYxNDQpIE5PVCBOVUxMIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAia2luZCIgPT4gIlZBUkNIQVIoMTAwKSBOT1QgTlVMTCBERUZBVUxUICcnIiwNCisgICAgICAgICAgIm11bHRpcGxlX2Jvb2tpbmdzIiA9PiAiSU5UIE5PVCBOVUxMIERFRkFVTFQgLTEiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImNfdWlkIikNCisgICAgICAgICAgKSwNCisgICAgICAgICAgImtleSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgImRvbWFpbiIgPT4gYXJyYXkoImRvbWFpbiIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInJlbGF5aG9zdHMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAiaG9zdG5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAidXNlcm5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAicGFzc3dvcmQiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAia2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiaG9zdG5hbWUiID0+IGFycmF5KCJob3N0bmFtZSIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInRyYW5zcG9ydHMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAiZGVzdGluYXRpb24iID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAibmV4dGhvcCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJ1c2VybmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJwYXNzd29yZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJsb29rdXBfbXgiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImlkIikNCisgICAgICAgICAgKSwNCisgICAgICAgICAgImtleSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgImRlc3RpbmF0aW9uIiA9PiBhcnJheSgiZGVzdGluYXRpb24iKSwNCisgICAgICAgICAgICAibmV4dGhvcCIgPT4gYXJyYXkoIm5leHRob3AiKSwNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiYWxpYXMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAiYWRkcmVzcyIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJnb3RvIiA9PiAiVEVYVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJkb21haW4iID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgIm1vZGlmaWVkIiA9PiAiREFURVRJTUUgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QIiwNCisgICAgICAgICAgInByaXZhdGVfY29tbWVudCIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAicHVibGljX2NvbW1lbnQiID0+ICJURVhUIiwNCisgICAgICAgICAgInNvZ29fdmlzaWJsZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAidW5pcXVlIiA9PiBhcnJheSgNCisgICAgICAgICAgICAiYWRkcmVzcyIgPT4gYXJyYXkoImFkZHJlc3MiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAia2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiZG9tYWluIiA9PiBhcnJheSgiZG9tYWluIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiYXBpIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImFwaV9rZXkiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiYWxsb3dfZnJvbSIgPT4gIlZBUkNIQVIoNTEyKSBOT1QgTlVMTCIsDQorICAgICAgICAgICJza2lwX2lwX2NoZWNrIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgTk9XKDApIiwNCisgICAgICAgICAgImFjY2VzcyIgPT4gIkVOVU0oJ3JvJywgJ3J3JykgTk9UIE5VTEwgREVGQVVMVCAncncnIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImFwaV9rZXkiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAic2VuZGVyX2FjbCIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJsb2dnZWRfaW5fYXMiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAic2VuZF9hcyIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJleHRlcm5hbCIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImlkIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiZG9tYWluIiA9PiBhcnJheSgNCisgICAgICAgIC8vIFRvZG86IE1vdmUgc29tZSBhdHRyaWJ1dGVzIHRvIGpzb24NCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImRvbWFpbiIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJkZXNjcmlwdGlvbiIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJhbGlhc2VzIiA9PiAiSU5UKDEwKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJtYWlsYm94ZXMiID0+ICJJTlQoMTApIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgImRlZnF1b3RhIiA9PiAiQklHSU5UKDIwKSBOT1QgTlVMTCBERUZBVUxUICczMDcyJyIsDQorICAgICAgICAgICJtYXhxdW90YSIgPT4gIkJJR0lOVCgyMCkgTk9UIE5VTEwgREVGQVVMVCAnMTAyNDAwJyIsDQorICAgICAgICAgICJxdW90YSIgPT4gIkJJR0lOVCgyMCkgTk9UIE5VTEwgREVGQVVMVCAnMTAyNDAwJyIsDQorICAgICAgICAgICJyZWxheWhvc3QiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAiYmFja3VwbXgiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgImdhbCIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAicmVsYXlfYWxsX3JlY2lwaWVudHMiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgInJlbGF5X3Vua25vd25fb25seSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgIm1vZGlmaWVkIiA9PiAiREFURVRJTUUgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImRvbWFpbiIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInRsc19wb2xpY3lfb3ZlcnJpZGUiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAiZGVzdCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJwb2xpY3kiID0+ICJFTlVNKCdub25lJywgJ21heScsICdlbmNyeXB0JywgJ2RhbmUnLCAnZGFuZS1vbmx5JywgJ2ZpbmdlcnByaW50JywgJ3ZlcmlmeScsICdzZWN1cmUnKSBOT1QgTlVMTCIsDQorICAgICAgICAgICJwYXJhbWV0ZXJzIiA9PiAiVkFSQ0hBUigyNTUpIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgIm1vZGlmaWVkIiA9PiAiREFURVRJTUUgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImlkIikNCisgICAgICAgICAgKSwNCisgICAgICAgICAgInVuaXF1ZSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgImRlc3QiID0+IGFycmF5KCJkZXN0IikNCisgICAgICAgICAgKSwNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInF1YXJhbnRpbmUiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAicWlkIiA9PiAiVkFSQ0hBUigzMCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAic3ViamVjdCIgPT4gIlZBUkNIQVIoNTAwKSIsDQorICAgICAgICAgICJzY29yZSIgPT4gIkZMT0FUKDgsMikiLA0KKyAgICAgICAgICAiaXAiID0+ICJWQVJDSEFSKDUwKSIsDQorICAgICAgICAgICJhY3Rpb24iID0+ICJDSEFSKDIwKSBOT1QgTlVMTCBERUZBVUxUICd1bmtub3duJyIsDQorICAgICAgICAgICJzeW1ib2xzIiA9PiAiSlNPTiIsDQorICAgICAgICAgICJmdXp6eV9oYXNoZXMiID0+ICJKU09OIiwNCisgICAgICAgICAgInNlbmRlciIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCBERUZBVUxUICd1bmtub3duJyIsDQorICAgICAgICAgICJyY3B0IiA9PiAiVkFSQ0hBUigyNTUpIiwNCisgICAgICAgICAgIm1zZyIgPT4gIkxPTkdURVhUIiwNCisgICAgICAgICAgImRvbWFpbiIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJub3RpZmllZCIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgInVzZXIiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwgREVGQVVMVCAndW5rbm93biciLA0KKyAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJpZCIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgIm1haWxib3giID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAidXNlcm5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAicGFzc3dvcmQiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAibmFtZSIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJkZXNjcmlwdGlvbiIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgIC8vIG1haWxib3hfcGF0aF9wcmVmaXggaXMgZm9sbG93ZWQgYnkgZG9tYWluL2xvY2FsX3BhcnQvDQorICAgICAgICAgICJtYWlsYm94X3BhdGhfcHJlZml4IiA9PiAiVkFSQ0hBUigxNTApIERFRkFVTFQgJy92YXIvdm1haWwvJyIsDQorICAgICAgICAgICJxdW90YSIgPT4gIkJJR0lOVCgyMCkgTk9UIE5VTEwgREVGQVVMVCAnMTAyNDAwJyIsDQorICAgICAgICAgICJsb2NhbF9wYXJ0IiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImRvbWFpbiIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJhdHRyaWJ1dGVzIiA9PiAiSlNPTiIsDQorICAgICAgICAgICJraW5kIiA9PiAiVkFSQ0hBUigxMDApIE5PVCBOVUxMIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAibXVsdGlwbGVfYm9va2luZ3MiID0+ICJJTlQgTk9UIE5VTEwgREVGQVVMVCAtMSIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgQ1VSUkVOVF9USU1FU1RBTVAiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgidXNlcm5hbWUiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAia2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiZG9tYWluIiA9PiBhcnJheSgiZG9tYWluIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAic2lldmVfZmlsdGVycyIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJ1c2VybmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJzY3JpcHRfZGVzYyIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJzY3JpcHRfbmFtZSIgPT4gIkVOVU0oJ2FjdGl2ZScsJ2luYWN0aXZlJykiLA0KKyAgICAgICAgICAic2NyaXB0X2RhdGEiID0+ICJURVhUIE5PVCBOVUxMIiwNCisgICAgICAgICAgImZpbHRlcl90eXBlIiA9PiAiRU5VTSgncG9zdGZpbHRlcicsJ3ByZWZpbHRlcicpIiwNCisgICAgICAgICAgImNyZWF0ZWQiID0+ICJEQVRFVElNRSgwKSBOT1QgTlVMTCBERUZBVUxUIE5PVygwKSIsDQorICAgICAgICAgICJtb2RpZmllZCIgPT4gIkRBVEVUSU1FIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAia2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAidXNlcm5hbWUiID0+IGFycmF5KCJ1c2VybmFtZSIpLA0KKyAgICAgICAgICAgICJzY3JpcHRfZGVzYyIgPT4gYXJyYXkoInNjcmlwdF9kZXNjIikNCisgICAgICAgICAgKSwNCisgICAgICAgICAgImZrZXkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICJma191c2VybmFtZV9zaWV2ZV9nbG9iYWxfYmVmb3JlIiA9PiBhcnJheSgNCisgICAgICAgICAgICAgICJjb2wiID0+ICJ1c2VybmFtZSIsDQorICAgICAgICAgICAgICAicmVmIiA9PiAibWFpbGJveC51c2VybmFtZSIsDQorICAgICAgICAgICAgICAiZGVsZXRlIiA9PiAiQ0FTQ0FERSIsDQorICAgICAgICAgICAgICAidXBkYXRlIiA9PiAiTk8gQUNUSU9OIg0KKyAgICAgICAgICAgICkNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiYXBwX3Bhc3N3ZCIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJuYW1lIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgIm1haWxib3giID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiZG9tYWluIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgInBhc3N3b3JkIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNyZWF0ZWQiID0+ICJEQVRFVElNRSgwKSBOT1QgTlVMTCBERUZBVUxUIE5PVygwKSIsDQorICAgICAgICAgICJtb2RpZmllZCIgPT4gIkRBVEVUSU1FIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCIsDQorICAgICAgICAgICJhY3RpdmUiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIg0KKyAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJpZCIpDQorICAgICAgICAgICksDQorICAgICAgICAgICJrZXkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICJtYWlsYm94IiA9PiBhcnJheSgibWFpbGJveCIpLA0KKyAgICAgICAgICAgICJwYXNzd29yZCIgPT4gYXJyYXkoInBhc3N3b3JkIiksDQorICAgICAgICAgICAgImRvbWFpbiIgPT4gYXJyYXkoImRvbWFpbiIpLA0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAiZmtleSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgImZrX3VzZXJuYW1lX2FwcF9wYXNzd2QiID0+IGFycmF5KA0KKyAgICAgICAgICAgICAgImNvbCIgPT4gIm1haWxib3giLA0KKyAgICAgICAgICAgICAgInJlZiIgPT4gIm1haWxib3gudXNlcm5hbWUiLA0KKyAgICAgICAgICAgICAgImRlbGV0ZSIgPT4gIkNBU0NBREUiLA0KKyAgICAgICAgICAgICAgInVwZGF0ZSIgPT4gIk5PIEFDVElPTiINCisgICAgICAgICAgICApDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInVzZXJfYWNsIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgInVzZXJuYW1lIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgInNwYW1fYWxpYXMiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgInRsc19wb2xpY3kiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgInNwYW1fc2NvcmUiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgInNwYW1fcG9saWN5IiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJkZWxpbWl0ZXJfYWN0aW9uIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJzeW5jam9icyIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAiZWFzX3Jlc2V0IiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJzb2dvX3Byb2ZpbGVfcmVzZXQiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgInB1c2hvdmVyIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgIC8vIHF1YXJhbnRpbmUgaXMgZm9yIHF1YXJhbnRpbmUgYWN0aW9ucywgdG9kbzogcmVuYW1lDQorICAgICAgICAgICJxdWFyYW50aW5lIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJxdWFyYW50aW5lX2F0dGFjaG1lbnRzIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJxdWFyYW50aW5lX25vdGlmaWNhdGlvbiIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAicXVhcmFudGluZV9jYXRlZ29yeSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAiYXBwX3Bhc3N3ZHMiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJ1c2VybmFtZSIpDQorICAgICAgICAgICksDQorICAgICAgICAgICJma2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiZmtfdXNlcm5hbWUiID0+IGFycmF5KA0KKyAgICAgICAgICAgICAgImNvbCIgPT4gInVzZXJuYW1lIiwNCisgICAgICAgICAgICAgICJyZWYiID0+ICJtYWlsYm94LnVzZXJuYW1lIiwNCisgICAgICAgICAgICAgICJkZWxldGUiID0+ICJDQVNDQURFIiwNCisgICAgICAgICAgICAgICJ1cGRhdGUiID0+ICJOTyBBQ1RJT04iDQorICAgICAgICAgICAgKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJhbGlhc19kb21haW4iID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiYWxpYXNfZG9tYWluIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgInRhcmdldF9kb21haW4iID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgIm1vZGlmaWVkIiA9PiAiREFURVRJTUUgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImFsaWFzX2RvbWFpbiIpDQorICAgICAgICAgICksDQorICAgICAgICAgICJrZXkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICJhY3RpdmUiID0+IGFycmF5KCJhY3RpdmUiKSwNCisgICAgICAgICAgICAidGFyZ2V0X2RvbWFpbiIgPT4gYXJyYXkoInRhcmdldF9kb21haW4iKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzcGFtYWxpYXMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiYWRkcmVzcyIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJnb3RvIiA9PiAiVEVYVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJ2YWxpZGl0eSIgPT4gIklOVCgxMSkgTk9UIE5VTEwiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImFkZHJlc3MiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiZmlsdGVyY29uZiIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJvYmplY3QiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwgREVGQVVMVCAnJyIsDQorICAgICAgICAgICJvcHRpb24iID0+ICJWQVJDSEFSKDUwKSBOT1QgTlVMTCBERUZBVUxUICcnIiwNCisgICAgICAgICAgInZhbHVlIiA9PiAiVkFSQ0hBUigxMDApIE5PVCBOVUxMIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgIm1vZGlmaWVkIiA9PiAiREFURVRJTUUgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QIiwNCisgICAgICAgICAgInByZWZpZCIgPT4gIklOVCgxMSkgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoInByZWZpZCIpDQorICAgICAgICAgICksDQorICAgICAgICAgICJrZXkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICJvYmplY3QiID0+IGFycmF5KCJvYmplY3QiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzZXR0aW5nc21hcCIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJkZXNjIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNvbnRlbnQiID0+ICJMT05HVEVYVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgQ1VSUkVOVF9USU1FU1RBTVAiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJsb2dzIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImlkIiA9PiAiSU5UIE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5UIiwNCisgICAgICAgICAgInRhc2siID0+ICJDSEFSKDMyKSBOT1QgTlVMTCBERUZBVUxUICcwMDAwMDAnIiwNCisgICAgICAgICAgInR5cGUiID0+ICJWQVJDSEFSKDMyKSBERUZBVUxUICcnIiwNCisgICAgICAgICAgIm1zZyIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAiY2FsbCIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAidXNlciIgPT4gIlZBUkNIQVIoNjQpIE5PVCBOVUxMIiwNCisgICAgICAgICAgInJvbGUiID0+ICJWQVJDSEFSKDMyKSBOT1QgTlVMTCIsDQorICAgICAgICAgICJyZW1vdGUiID0+ICJWQVJDSEFSKDM5KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJ0aW1lIiA9PiAiSU5UKDExKSBOT1QgTlVMTCINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJxdW90YTIiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAidXNlcm5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiYnl0ZXMiID0+ICJCSUdJTlQoMjApIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgIm1lc3NhZ2VzIiA9PiAiQklHSU5UKDIwKSBOT1QgTlVMTCBERUZBVUxUICcwJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgidXNlcm5hbWUiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJxdW90YTJyZXBsaWNhIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgInVzZXJuYW1lIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImJ5dGVzIiA9PiAiQklHSU5UKDIwKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJtZXNzYWdlcyIgPT4gIkJJR0lOVCgyMCkgTk9UIE5VTEwgREVGQVVMVCAnMCciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoInVzZXJuYW1lIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiZG9tYWluX2FkbWlucyIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJ1c2VybmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJkb21haW4iID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY3JlYXRlZCIgPT4gIkRBVEVUSU1FKDApIE5PVCBOVUxMIERFRkFVTFQgTk9XKDApIiwNCisgICAgICAgICAgImFjdGl2ZSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImlkIikNCisgICAgICAgICAgKSwNCisgICAgICAgICAgImtleSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgInVzZXJuYW1lIiA9PiBhcnJheSgidXNlcm5hbWUiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJkYV9hY2wiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAidXNlcm5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAic3luY2pvYnMiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgInF1YXJhbnRpbmUiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgImxvZ2luX2FzIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJzb2dvX2FjY2VzcyIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAiYXBwX3Bhc3N3ZHMiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgImJjY19tYXBzIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJwdXNob3ZlciIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAiZmlsdGVycyIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAicmF0ZWxpbWl0IiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJzcGFtX3BvbGljeSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAiZXh0ZW5kX3NlbmRlcl9hY2wiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgInVubGltaXRlZF9xdW90YSIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAicHJvdG9jb2xfYWNjZXNzIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJzbXRwX2lwX2FjY2VzcyIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMSciLA0KKyAgICAgICAgICAiYWxpYXNfZG9tYWlucyIgPT4gIlRJTllJTlQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAiZG9tYWluX2Rlc2MiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIg0KKyAgICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoInVzZXJuYW1lIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAiaW1hcHN5bmMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAidXNlcjIiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiaG9zdDEiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiYXV0aG1lY2gxIiA9PiAiRU5VTSgnUExBSU4nLCdMT0dJTicsJ0NSQU0tTUQ1JykgREVGQVVMVCAnUExBSU4nIiwNCisgICAgICAgICAgInJlZ2V4dHJhbnMyIiA9PiAiVkFSQ0hBUigyNTUpIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAiYXV0aG1kNTEiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgMCIsDQorICAgICAgICAgICJkb21haW4yIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAic3ViZm9sZGVyMiIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCBERUZBVUxUICcnIiwNCisgICAgICAgICAgInVzZXIxIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgInBhc3N3b3JkMSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJleGNsdWRlIiA9PiAiVkFSQ0hBUig1MDApIE5PVCBOVUxMIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAibWF4YWdlIiA9PiAiU01BTExJTlQgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAibWluc19pbnRlcnZhbCIgPT4gIlNNQUxMSU5UIFVOU0lHTkVEIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgIm1heGJ5dGVzcGVyc2Vjb25kIiA9PiAiVkFSQ0hBUig1MCkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAicG9ydDEiID0+ICJTTUFMTElOVCBVTlNJR05FRCBOT1QgTlVMTCIsDQorICAgICAgICAgICJlbmMxIiA9PiAiRU5VTSgnVExTJywnU1NMJywnUExBSU4nKSBERUZBVUxUICdUTFMnIiwNCisgICAgICAgICAgImRlbGV0ZTJkdXBsaWNhdGVzIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyIsDQorICAgICAgICAgICJkZWxldGUxIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJkZWxldGUyIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJhdXRvbWFwIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJza2lwY3Jvc3NkdXBsaWNhdGVzIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJjdXN0b21fcGFyYW1zIiA9PiAiVkFSQ0hBUig1MTIpIE5PVCBOVUxMIERFRkFVTFQgJyciLA0KKyAgICAgICAgICAidGltZW91dDEiID0+ICJTTUFMTElOVCBOT1QgTlVMTCBERUZBVUxUICc2MDAnIiwNCisgICAgICAgICAgInRpbWVvdXQyIiA9PiAiU01BTExJTlQgTk9UIE5VTEwgREVGQVVMVCAnNjAwJyIsDQorICAgICAgICAgICJzdWJzY3JpYmVhbGwiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnIiwNCisgICAgICAgICAgImlzX3J1bm5pbmciID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIiwNCisgICAgICAgICAgInJldHVybmVkX3RleHQiID0+ICJMT05HVEVYVCIsDQorICAgICAgICAgICJsYXN0X3J1biIgPT4gIlRJTUVTVEFNUCBOVUxMIERFRkFVTFQgTlVMTCIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgQ1VSUkVOVF9USU1FU1RBTVAiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJiY2NfbWFwcyIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJsb2NhbF9kZXN0IiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImJjY19kZXN0IiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImRvbWFpbiIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJ0eXBlIiA9PiAiRU5VTSgnc2VuZGVyJywncmNwdCcpIiwNCisgICAgICAgICAgImNyZWF0ZWQiID0+ICJEQVRFVElNRSgwKSBOT1QgTlVMTCBERUZBVUxUIE5PVygwKSIsDQorICAgICAgICAgICJtb2RpZmllZCIgPT4gIkRBVEVUSU1FIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCIsDQorICAgICAgICAgICJhY3RpdmUiID0+ICJUSU5ZSU5UKDEpIE5PVCBOVUxMIERFRkFVTFQgJzAnIg0KKyAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJpZCIpDQorICAgICAgICAgICksDQorICAgICAgICAgICJrZXkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICJsb2NhbF9kZXN0IiA9PiBhcnJheSgibG9jYWxfZGVzdCIpLA0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJyZWNpcGllbnRfbWFwcyIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJvbGRfZGVzdCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJuZXdfZGVzdCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjcmVhdGVkIiA9PiAiREFURVRJTUUoMCkgTk9UIE5VTEwgREVGQVVMVCBOT1coMCkiLA0KKyAgICAgICAgICAibW9kaWZpZWQiID0+ICJEQVRFVElNRSBPTiBVUERBVEUgQ1VSUkVOVF9USU1FU1RBTVAiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAia2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAibG9jYWxfZGVzdCIgPT4gYXJyYXkoIm9sZF9kZXN0IiksDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInRmYSIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJrZXlfaWQiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAidXNlcm5hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiYXV0aG1lY2giID0+ICJFTlVNKCd5dWJpX290cCcsICd1MmYnLCAnaG90cCcsICd0b3RwJykiLA0KKyAgICAgICAgICAic2VjcmV0IiA9PiAiVkFSQ0hBUigyNTUpIERFRkFVTFQgTlVMTCIsDQorICAgICAgICAgICJrZXlIYW5kbGUiID0+ICJWQVJDSEFSKDI1NSkgREVGQVVMVCBOVUxMIiwNCisgICAgICAgICAgInB1YmxpY0tleSIgPT4gIlZBUkNIQVIoMjU1KSBERUZBVUxUIE5VTEwiLA0KKyAgICAgICAgICAiY291bnRlciIgPT4gIklOVCBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJjZXJ0aWZpY2F0ZSIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJmb3J3YXJkaW5nX2hvc3RzIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImhvc3QiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAic291cmNlIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImZpbHRlcl9zcGFtIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcwJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaG9zdCIpDQorICAgICAgICAgICksDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzb2dvX2FjbCIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJpZCIgPT4gIklOVCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCIsDQorICAgICAgICAgICJjX2ZvbGRlcl9pZCIgPT4gIklOVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX29iamVjdCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3VpZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3JvbGUiID0+ICJWQVJDSEFSKDgwKSBOT1QgTlVMTCINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAia2V5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAic29nb19hY2xfY19mb2xkZXJfaWRfaWR4IiA9PiBhcnJheSgiY19mb2xkZXJfaWQiKSwNCisgICAgICAgICAgICAic29nb19hY2xfY191aWRfaWR4IiA9PiBhcnJheSgiY191aWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzb2dvX2FsYXJtc19mb2xkZXIiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAiY19wYXRoIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfbmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3VpZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3JlY3VycmVuY2VfaWQiID0+ICJJTlQoMTEpIERFRkFVTFQgTlVMTCIsDQorICAgICAgICAgICJjX2FsYXJtX251bWJlciIgPT4gIklOVCgxMSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19hbGFybV9kYXRlIiA9PiAiSU5UKDExKSBOT1QgTlVMTCINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzb2dvX2NhY2hlX2ZvbGRlciIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJjX3VpZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3BhdGgiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19wYXJlbnRfcGF0aCIgPT4gIlZBUkNIQVIoMjU1KSBERUZBVUxUIE5VTEwiLA0KKyAgICAgICAgICAiY190eXBlIiA9PiAiVElOWUlOVCgzKSB1bnNpZ25lZCBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2NyZWF0aW9uZGF0ZSIgPT4gIklOVCgxMSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19sYXN0bW9kaWZpZWQiID0+ICJJTlQoMTEpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfdmVyc2lvbiIgPT4gIklOVCgxMSkgTk9UIE5VTEwgREVGQVVMVCAnMCciLA0KKyAgICAgICAgICAiY19kZWxldGVkIiA9PiAiVElOWUlOVCg0KSBOT1QgTlVMTCBERUZBVUxUICcwJyIsDQorICAgICAgICAgICJjX2NvbnRlbnQiID0+ICJMT05HVEVYVCINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiY191aWQiLCAiY19wYXRoIikNCisgICAgICAgICAgKSwNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInNvZ29fZm9sZGVyX2luZm8iID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiY19mb2xkZXJfaWQiID0+ICJCSUdJTlQoMjApIHVuc2lnbmVkIE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5UIiwNCisgICAgICAgICAgImNfcGF0aCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3BhdGgxIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfcGF0aDIiID0+ICJWQVJDSEFSKDI1NSkgREVGQVVMVCBOVUxMIiwNCisgICAgICAgICAgImNfcGF0aDMiID0+ICJWQVJDSEFSKDI1NSkgREVGQVVMVCBOVUxMIiwNCisgICAgICAgICAgImNfcGF0aDQiID0+ICJWQVJDSEFSKDI1NSkgREVGQVVMVCBOVUxMIiwNCisgICAgICAgICAgImNfZm9sZGVybmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2xvY2F0aW9uIiA9PiAiVkFSQ0hBUigyMDQ4KSBERUZBVUxUIE5VTEwiLA0KKyAgICAgICAgICAiY19xdWlja19sb2NhdGlvbiIgPT4gIlZBUkNIQVIoMjA0OCkgREVGQVVMVCBOVUxMIiwNCisgICAgICAgICAgImNfYWNsX2xvY2F0aW9uIiA9PiAiVkFSQ0hBUigyMDQ4KSBERUZBVUxUIE5VTEwiLA0KKyAgICAgICAgICAiY19mb2xkZXJfdHlwZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiY19wYXRoIikNCisgICAgICAgICAgKSwNCisgICAgICAgICAgInVuaXF1ZSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgImNfZm9sZGVyX2lkIiA9PiBhcnJheSgiY19mb2xkZXJfaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzb2dvX3F1aWNrX2FwcG9pbnRtZW50IiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImNfZm9sZGVyX2lkIiA9PiAiSU5UIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfbmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX3VpZCIgPT4gIlZBUkNIQVIoMTAwMCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19zdGFydGRhdGUiID0+ICJJTlQiLA0KKyAgICAgICAgICAiY19lbmRkYXRlIiA9PiAiSU5UIiwNCisgICAgICAgICAgImNfY3ljbGVlbmRkYXRlIiA9PiAiSU5UIiwNCisgICAgICAgICAgImNfdGl0bGUiID0+ICJWQVJDSEFSKDEwMDApIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfcGFydGljaXBhbnRzIiA9PiAiVEVYVCIsDQorICAgICAgICAgICJjX2lzYWxsZGF5IiA9PiAiSU5UIiwNCisgICAgICAgICAgImNfaXNjeWNsZSIgPT4gIklOVCIsDQorICAgICAgICAgICJjX2N5Y2xlaW5mbyIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAiY19jbGFzc2lmaWNhdGlvbiIgPT4gIklOVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2lzb3BhcXVlIiA9PiAiSU5UIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfc3RhdHVzIiA9PiAiSU5UIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfcHJpb3JpdHkiID0+ICJJTlQiLA0KKyAgICAgICAgICAiY19sb2NhdGlvbiIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJjX29yZ21haWwiID0+ICJWQVJDSEFSKDI1NSkiLA0KKyAgICAgICAgICAiY19wYXJ0bWFpbHMiID0+ICJURVhUIiwNCisgICAgICAgICAgImNfcGFydHN0YXRlcyIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAiY19jYXRlZ29yeSIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJjX3NlcXVlbmNlIiA9PiAiSU5UIiwNCisgICAgICAgICAgImNfY29tcG9uZW50IiA9PiAiVkFSQ0hBUigxMCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19uZXh0YWxhcm0iID0+ICJJTlQiLA0KKyAgICAgICAgICAiY19kZXNjcmlwdGlvbiIgPT4gIlRFWFQiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImNfZm9sZGVyX2lkIiwgImNfbmFtZSIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInNvZ29fcXVpY2tfY29udGFjdCIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJjX2ZvbGRlcl9pZCIgPT4gIklOVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX25hbWUiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19naXZlbm5hbWUiID0+ICJWQVJDSEFSKDI1NSkiLA0KKyAgICAgICAgICAiY19jbiIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJjX3NuIiA9PiAiVkFSQ0hBUigyNTUpIiwNCisgICAgICAgICAgImNfc2NyZWVubmFtZSIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJjX2wiID0+ICJWQVJDSEFSKDI1NSkiLA0KKyAgICAgICAgICAiY19tYWlsIiA9PiAiVEVYVCIsDQorICAgICAgICAgICJjX28iID0+ICJWQVJDSEFSKDUwMCkiLA0KKyAgICAgICAgICAiY19vdSIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJjX3RlbGVwaG9uZW51bWJlciIgPT4gIlZBUkNIQVIoMjU1KSIsDQorICAgICAgICAgICJjX2NhdGVnb3JpZXMiID0+ICJWQVJDSEFSKDI1NSkiLA0KKyAgICAgICAgICAiY19jb21wb25lbnQiID0+ICJWQVJDSEFSKDEwKSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2hhc2NlcnRpZmljYXRlIiA9PiAiSU5UNCBERUZBVUxUIDAiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImNfZm9sZGVyX2lkIiwgImNfbmFtZSIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInNvZ29fc2Vzc2lvbnNfZm9sZGVyIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImNfaWQiID0+ICJWQVJDSEFSKDI1NSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY192YWx1ZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2NyZWF0aW9uZGF0ZSIgPT4gIklOVCgxMSkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY19sYXN0c2VlbiIgPT4gIklOVCgxMSkgTk9UIE5VTEwiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImNfaWQiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzb2dvX3N0b3JlIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImNfZm9sZGVyX2lkIiA9PiAiSU5UIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfbmFtZSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2NvbnRlbnQiID0+ICJNRURJVU1URVhUIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfY3JlYXRpb25kYXRlIiA9PiAiSU5UIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfbGFzdG1vZGlmaWVkIiA9PiAiSU5UIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNfdmVyc2lvbiIgPT4gIklOVCBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2RlbGV0ZWQiID0+ICJJTlQiDQorICAgICAgICApLA0KKyAgICAgICAgImtleXMiID0+IGFycmF5KA0KKyAgICAgICAgICAicHJpbWFyeSIgPT4gYXJyYXkoDQorICAgICAgICAgICAgIiIgPT4gYXJyYXkoImNfZm9sZGVyX2lkIiwgImNfbmFtZSIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgInB1c2hvdmVyIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgInVzZXJuYW1lIiA9PiAiVkFSQ0hBUigyNTUpIE5PVCBOVUxMIiwNCisgICAgICAgICAgImtleSIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJ0b2tlbiIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJhdHRyaWJ1dGVzIiA9PiAiSlNPTiIsDQorICAgICAgICAgICJ0aXRsZSIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAidGV4dCIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAic2VuZGVycyIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAic2VuZGVyc19yZWdleCIgPT4gIlRFWFQiLA0KKyAgICAgICAgICAiYWN0aXZlIiA9PiAiVElOWUlOVCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJyINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgidXNlcm5hbWUiKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJzb2dvX3VzZXJfcHJvZmlsZSIgPT4gYXJyYXkoDQorICAgICAgICAiY29scyIgPT4gYXJyYXkoDQorICAgICAgICAgICJjX3VpZCIgPT4gIlZBUkNIQVIoMjU1KSBOT1QgTlVMTCIsDQorICAgICAgICAgICJjX2RlZmF1bHRzIiA9PiAiTE9OR1RFWFQiLA0KKyAgICAgICAgICAiY19zZXR0aW5ncyIgPT4gIkxPTkdURVhUIg0KKyAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJjX3VpZCIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgIm9hdXRoX2NsaWVudHMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiaWQiID0+ICJJTlQgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQiLA0KKyAgICAgICAgICAiY2xpZW50X2lkIiA9PiAiVkFSQ0hBUig4MCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY2xpZW50X3NlY3JldCIgPT4gIlZBUkNIQVIoODApIiwNCisgICAgICAgICAgInJlZGlyZWN0X3VyaSIgPT4gIlZBUkNIQVIoMjAwMCkiLA0KKyAgICAgICAgICAiZ3JhbnRfdHlwZXMiID0+ICJWQVJDSEFSKDgwKSIsDQorICAgICAgICAgICJzY29wZSIgPT4gIlZBUkNIQVIoNDAwMCkiLA0KKyAgICAgICAgICAidXNlcl9pZCIgPT4gIlZBUkNIQVIoODApIg0KKyAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJjbGllbnRfaWQiKQ0KKyAgICAgICAgICApLA0KKyAgICAgICAgICAidW5pcXVlIiA9PiBhcnJheSgNCisgICAgICAgICAgICAiaWQiID0+IGFycmF5KCJpZCIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICksDQorICAgICAgIm9hdXRoX2FjY2Vzc190b2tlbnMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAiYWNjZXNzX3Rva2VuIiA9PiAiVkFSQ0hBUig0MCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAiY2xpZW50X2lkIiA9PiAiVkFSQ0hBUig4MCkgTk9UIE5VTEwiLA0KKyAgICAgICAgICAidXNlcl9pZCIgPT4gIlZBUkNIQVIoODApIiwNCisgICAgICAgICAgImV4cGlyZXMiID0+ICJUSU1FU1RBTVAgTk9UIE5VTEwiLA0KKyAgICAgICAgICAic2NvcGUiID0+ICJWQVJDSEFSKDQwMDApIg0KKyAgICAgICAgKSwNCisgICAgICAgICJrZXlzIiA9PiBhcnJheSgNCisgICAgICAgICAgInByaW1hcnkiID0+IGFycmF5KA0KKyAgICAgICAgICAgICIiID0+IGFycmF5KCJhY2Nlc3NfdG9rZW4iKQ0KKyAgICAgICAgICApDQorICAgICAgICApLA0KKyAgICAgICAgImF0dHIiID0+ICJFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD11dGY4bWI0IFJPV19GT1JNQVQ9RFlOQU1JQyINCisgICAgICApLA0KKyAgICAgICJvYXV0aF9hdXRob3JpemF0aW9uX2NvZGVzIiA9PiBhcnJheSgNCisgICAgICAgICJjb2xzIiA9PiBhcnJheSgNCisgICAgICAgICAgImF1dGhvcml6YXRpb25fY29kZSIgPT4gIlZBUkNIQVIoNDApIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNsaWVudF9pZCIgPT4gIlZBUkNIQVIoODApIE5PVCBOVUxMIiwNCisgICAgICAgICAgInVzZXJfaWQiID0+ICJWQVJDSEFSKDgwKSIsDQorICAgICAgICAgICJyZWRpcmVjdF91cmkiID0+ICJWQVJDSEFSKDIwMDApIiwNCisgICAgICAgICAgImV4cGlyZXMiID0+ICJUSU1FU1RBTVAgTk9UIE5VTEwiLA0KKyAgICAgICAgICAic2NvcGUiID0+ICJWQVJDSEFSKDQwMDApIiwNCisgICAgICAgICAgImlkX3Rva2VuIiA9PiAiVkFSQ0hBUigxMDAwKSINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgiYXV0aG9yaXphdGlvbl9jb2RlIikNCisgICAgICAgICAgKQ0KKyAgICAgICAgKSwNCisgICAgICAgICJhdHRyIiA9PiAiRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9dXRmOG1iNCBST1dfRk9STUFUPURZTkFNSUMiDQorICAgICAgKSwNCisgICAgICAib2F1dGhfcmVmcmVzaF90b2tlbnMiID0+IGFycmF5KA0KKyAgICAgICAgImNvbHMiID0+IGFycmF5KA0KKyAgICAgICAgICAicmVmcmVzaF90b2tlbiIgPT4gIlZBUkNIQVIoNDApIE5PVCBOVUxMIiwNCisgICAgICAgICAgImNsaWVudF9pZCIgPT4gIlZBUkNIQVIoODApIE5PVCBOVUxMIiwNCisgICAgICAgICAgInVzZXJfaWQiID0+ICJWQVJDSEFSKDgwKSIsDQorICAgICAgICAgICJleHBpcmVzIiA9PiAiVElNRVNUQU1QIE5PVCBOVUxMIiwNCisgICAgICAgICAgInNjb3BlIiA9PiAiVkFSQ0hBUig0MDAwKSINCisgICAgICAgICksDQorICAgICAgICAia2V5cyIgPT4gYXJyYXkoDQorICAgICAgICAgICJwcmltYXJ5IiA9PiBhcnJheSgNCisgICAgICAgICAgICAiIiA9PiBhcnJheSgicmVmcmVzaF90b2tlbiIpDQorICAgICAgICAgICkNCisgICAgICAgICksDQorICAgICAgICAiYXR0ciIgPT4gIkVOR0lORT1Jbm5vREIgREVGQVVMVCBDSEFSU0VUPXV0ZjhtYjQgUk9XX0ZPUk1BVD1EWU5BTUlDIg0KKyAgICAgICkNCisgICAgKTsNCisNCisgICAgZm9yZWFjaCAoJHRhYmxlcyBhcyAkdGFibGUgPT4gJHByb3BlcnRpZXMpIHsNCisgICAgICAvLyBNaWdyYXRlIHRvIHF1YXJhbnRpbmUNCisgICAgICBpZiAoJHRhYmxlID09ICdxdWFyYW50aW5lJykgew0KKyAgICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0hPVyBUQUJMRVMgTElLRSAncXVhcmFudGFpbmUnIik7DQorICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNIT1cgVEFCTEVTIExJS0UgJ3F1YXJhbnRpbmUnIik7DQorICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgPT0gMCkgew0KKyAgICAgICAgICAgICRwZG8tPnF1ZXJ5KCJSRU5BTUUgVEFCTEUgYHF1YXJhbnRhaW5lYCBUTyBgcXVhcmFudGluZWAiKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgIH0NCisgICAgICAvLyBNaWdyYXRlIHRsc19lbmZvcmNlXyogb3B0aW9ucw0KKyAgICAgIGlmICgkdGFibGUgPT0gJ21haWxib3gnKSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTSE9XIFRBQkxFUyBMSUtFICdtYWlsYm94JyIpOw0KKyAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTSE9XIENPTFVNTlMgRlJPTSBgbWFpbGJveGAgTElLRSAnJXRsc19lbmZvcmNlJSciKTsgDQorICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNFTEVDVCBgdXNlcm5hbWVgLCBgdGxzX2VuZm9yY2VfaW5gLCBgdGxzX2VuZm9yY2Vfb3V0YCBGUk9NIGBtYWlsYm94YCIpOw0KKyAgICAgICAgICAgICR0bHNfb3B0aW9uc19yb3dzID0gJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgICAgICAgICAgIHdoaWxlICgkcm93ID0gYXJyYXlfc2hpZnQoJHRsc19vcHRpb25zX3Jvd3MpKSB7DQorICAgICAgICAgICAgICAkdGxzX29wdGlvbnNbJHJvd1sndXNlcm5hbWUnXV0gPSBhcnJheSgndGxzX2VuZm9yY2VfaW4nID0+ICRyb3dbJ3Rsc19lbmZvcmNlX2luJ10sICd0bHNfZW5mb3JjZV9vdXQnID0+ICRyb3dbJ3Rsc19lbmZvcmNlX291dCddKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0hPVyBUQUJMRVMgTElLRSAnIiAuICR0YWJsZSAuICInIik7IA0KKyAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBDT05DQVQoJ0FMVEVSIFRBQkxFICcsIGB0YWJsZV9zY2hlbWFgLCAnLicsIGB0YWJsZV9uYW1lYCwgJyBEUk9QIEZPUkVJR04gS0VZICcsIGBjb25zdHJhaW50X25hbWVgLCAnOycpIEFTIGBGS0VZX0RST1BgIEZST00gYGluZm9ybWF0aW9uX3NjaGVtYWAuYHRhYmxlX2NvbnN0cmFpbnRzYA0KKyAgICAgICAgICBXSEVSRSBgY29uc3RyYWludF90eXBlYCA9ICdGT1JFSUdOIEtFWScgQU5EIGB0YWJsZV9uYW1lYCA9IDp0YWJsZTsiKTsNCisgICAgICAgICRzdG10LT5leGVjdXRlKGFycmF5KCc6dGFibGUnID0+ICR0YWJsZSkpOw0KKyAgICAgICAgJHJvd3MgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7DQorICAgICAgICB3aGlsZSAoJHJvdyA9IGFycmF5X3NoaWZ0KCRyb3dzKSkgew0KKyAgICAgICAgICAkcGRvLT5xdWVyeSgkcm93WydGS0VZX0RST1AnXSk7DQorICAgICAgICB9DQorICAgICAgICBmb3JlYWNoKCRwcm9wZXJ0aWVzWydjb2xzJ10gYXMgJGNvbHVtbiA9PiAkdHlwZSkgew0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTSE9XIENPTFVNTlMgRlJPTSBgIiAuICR0YWJsZSAuICJgIExJS0UgJyIgLiAkY29sdW1uIC4gIiciKTsgDQorICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgPT0gMCkgew0KKyAgICAgICAgICAgIGlmIChzdHJwb3MoJHR5cGUsICdBVVRPX0lOQ1JFTUVOVCcpICE9PSBmYWxzZSkgew0KKyAgICAgICAgICAgICAgJHR5cGUgPSAkdHlwZSAuICcgUFJJTUFSWSBLRVkgJzsNCisgICAgICAgICAgICAgIC8vIEFkZGluZyBhbiBBVVRPX0lOQ1JFTUVOVCBrZXksIG5lZWQgdG8gZHJvcCBwcmltYXJ5IGtleXMgZmlyc3QsIGlmIGV4aXN0cw0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0hPVyBLRVlTIEZST00gYCIgLiAkdGFibGUgLiAiYCBXSEVSRSBLZXlfbmFtZSA9ICdQUklNQVJZJyIpOw0KKyAgICAgICAgICAgICAgJG51bV9yZXN1bHRzID0gY291bnQoJHN0bXQtPmZldGNoQWxsKFBETzo6RkVUQ0hfQVNTT0MpKTsNCisgICAgICAgICAgICAgIGlmICgkbnVtX3Jlc3VsdHMgIT0gMCkgew0KKyAgICAgICAgICAgICAgICAkcGRvLT5xdWVyeSgiQUxURVIgVEFCTEUgYCIgLiAkdGFibGUgLiAiYCBEUk9QIFBSSU1BUlkgS0VZIik7DQorICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICRwZG8tPnF1ZXJ5KCJBTFRFUiBUQUJMRSBgIiAuICR0YWJsZSAuICJgIEFERCBgIiAuICRjb2x1bW4gLiAiYCAiIC4gJHR5cGUpOw0KKyAgICAgICAgICB9DQorICAgICAgICAgIGVsc2Ugew0KKyAgICAgICAgICAgICRwZG8tPnF1ZXJ5KCJBTFRFUiBUQUJMRSBgIiAuICR0YWJsZSAuICJgIE1PRElGWSBDT0xVTU4gYCIgLiAkY29sdW1uIC4gImAgIiAuICR0eXBlKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgZm9yZWFjaCgkcHJvcGVydGllc1sna2V5cyddIGFzICRrZXlfdHlwZSA9PiAka2V5X2NvbnRlbnQpIHsNCisgICAgICAgICAgaWYgKHN0cnRvbG93ZXIoJGtleV90eXBlKSA9PSAncHJpbWFyeScpIHsNCisgICAgICAgICAgICBmb3JlYWNoICgka2V5X2NvbnRlbnQgYXMgJGtleV92YWx1ZXMpIHsNCisgICAgICAgICAgICAgICRmaWVsZHMgPSAiYCIgLiBpbXBsb2RlKCJgLCBgIiwgJGtleV92YWx1ZXMpIC4gImAiOw0KKyAgICAgICAgICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0hPVyBLRVlTIEZST00gYCIgLiAkdGFibGUgLiAiYCBXSEVSRSBLZXlfbmFtZSA9ICdQUklNQVJZJyIpOyANCisgICAgICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgICAgICAkaXNfZHJvcCA9ICgkbnVtX3Jlc3VsdHMgIT0gMCkgPyAiRFJPUCBQUklNQVJZIEtFWSwgIiA6ICIiOw0KKyAgICAgICAgICAgICAgJHBkby0+cXVlcnkoIkFMVEVSIFRBQkxFIGAiIC4gJHRhYmxlIC4gImAgIiAuICRpc19kcm9wIC4gIkFERCBQUklNQVJZIEtFWSAoIiAuICRmaWVsZHMgLiAiKSIpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBpZiAoc3RydG9sb3dlcigka2V5X3R5cGUpID09ICdrZXknKSB7DQorICAgICAgICAgICAgZm9yZWFjaCAoJGtleV9jb250ZW50IGFzICRrZXlfbmFtZSA9PiAka2V5X3ZhbHVlcykgew0KKyAgICAgICAgICAgICAgJGZpZWxkcyA9ICJgIiAuIGltcGxvZGUoImAsIGAiLCAka2V5X3ZhbHVlcykgLiAiYCI7DQorICAgICAgICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTSE9XIEtFWVMgRlJPTSBgIiAuICR0YWJsZSAuICJgIFdIRVJFIEtleV9uYW1lID0gJyIgLiAka2V5X25hbWUgLiAiJyIpOyANCisgICAgICAgICAgICAgICRudW1fcmVzdWx0cyA9IGNvdW50KCRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKSk7DQorICAgICAgICAgICAgICAkaXNfZHJvcCA9ICgkbnVtX3Jlc3VsdHMgIT0gMCkgPyAiRFJPUCBJTkRFWCBgIiAuICRrZXlfbmFtZSAuICJgLCAiIDogIiI7DQorICAgICAgICAgICAgICAkcGRvLT5xdWVyeSgiQUxURVIgVEFCTEUgYCIgLiAkdGFibGUgLiAiYCAiIC4gJGlzX2Ryb3AgLiAiQUREIEtFWSBgIiAuICRrZXlfbmFtZSAuICJgICgiIC4gJGZpZWxkcyAuICIpIik7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICAgIGlmIChzdHJ0b2xvd2VyKCRrZXlfdHlwZSkgPT0gJ3VuaXF1ZScpIHsNCisgICAgICAgICAgICBmb3JlYWNoICgka2V5X2NvbnRlbnQgYXMgJGtleV9uYW1lID0+ICRrZXlfdmFsdWVzKSB7DQorICAgICAgICAgICAgICAkZmllbGRzID0gImAiIC4gaW1wbG9kZSgiYCwgYCIsICRrZXlfdmFsdWVzKSAuICJgIjsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNIT1cgS0VZUyBGUk9NIGAiIC4gJHRhYmxlIC4gImAgV0hFUkUgS2V5X25hbWUgPSAnIiAuICRrZXlfbmFtZSAuICInIik7DQorICAgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgICAgJGlzX2Ryb3AgPSAoJG51bV9yZXN1bHRzICE9IDApID8gIkRST1AgSU5ERVggYCIgLiAka2V5X25hbWUgLiAiYCwgIiA6ICIiOw0KKyAgICAgICAgICAgICAgJHBkby0+cXVlcnkoIkFMVEVSIFRBQkxFIGAiIC4gJHRhYmxlIC4gImAgIiAuICRpc19kcm9wIC4gIkFERCBVTklRVUUgS0VZIGAiIC4gJGtleV9uYW1lIC4gImAgKCIgLiAkZmllbGRzIC4gIikiKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgaWYgKHN0cnRvbG93ZXIoJGtleV90eXBlKSA9PSAnZmtleScpIHsNCisgICAgICAgICAgICBmb3JlYWNoICgka2V5X2NvbnRlbnQgYXMgJGtleV9uYW1lID0+ICRrZXlfdmFsdWVzKSB7DQorICAgICAgICAgICAgICAkZmllbGRzID0gImAiIC4gaW1wbG9kZSgiYCwgYCIsICRrZXlfdmFsdWVzKSAuICJgIjsNCisgICAgICAgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNIT1cgS0VZUyBGUk9NIGAiIC4gJHRhYmxlIC4gImAgV0hFUkUgS2V5X25hbWUgPSAnIiAuICRrZXlfbmFtZSAuICInIik7DQorICAgICAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICAgICAgaWYgKCRudW1fcmVzdWx0cyAhPSAwKSB7DQorICAgICAgICAgICAgICAgICRwZG8tPnF1ZXJ5KCJBTFRFUiBUQUJMRSBgIiAuICR0YWJsZSAuICJgIERST1AgSU5ERVggYCIgLiAka2V5X25hbWUgLiAiYCIpOw0KKyAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgQGxpc3QoJHRhYmxlX3JlZiwgJGZpZWxkX3JlZikgPSBleHBsb2RlKCcuJywgJGtleV92YWx1ZXNbJ3JlZiddKTsNCisgICAgICAgICAgICAgICRwZG8tPnF1ZXJ5KCJBTFRFUiBUQUJMRSBgIiAuICR0YWJsZSAuICJgIEFERCBGT1JFSUdOIEtFWSBgIiAuICRrZXlfbmFtZSAuICJgICgiIC4gJGtleV92YWx1ZXNbJ2NvbCddIC4gIikgUkVGRVJFTkNFUyBgIiAuICR0YWJsZV9yZWYgLiAiYCAoYCIgLiAkZmllbGRfcmVmIC4gImApDQorICAgICAgICAgICAgICAgIE9OIERFTEVURSAiIC4gJGtleV92YWx1ZXNbJ2RlbGV0ZSddIC4gIiBPTiBVUERBVEUgIiAuICRrZXlfdmFsdWVzWyd1cGRhdGUnXSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICB9DQorICAgICAgICB9DQorICAgICAgICAvLyBEcm9wIGFsbCB2YW5pc2hlZCBjb2x1bW5zDQorICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTSE9XIENPTFVNTlMgRlJPTSBgIiAuICR0YWJsZSAuICJgIik7IA0KKyAgICAgICAgJGNvbHNfaW5fdGFibGUgPSAkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQyk7IA0KKyAgICAgICAgd2hpbGUgKCRyb3cgPSBhcnJheV9zaGlmdCgkY29sc19pbl90YWJsZSkpIHsNCisgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCRyb3dbJ0ZpZWxkJ10sICRwcm9wZXJ0aWVzWydjb2xzJ10pKSB7DQorICAgICAgICAgICAgJHBkby0+cXVlcnkoIkFMVEVSIFRBQkxFIGAiIC4gJHRhYmxlIC4gImAgRFJPUCBDT0xVTU4gYCIgLiAkcm93WydGaWVsZCddIC4gImA7Iik7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisNCisgICAgICAgIC8vIFN0ZXAgMTogR2V0IGFsbCBub24tcHJpbWFyeSBrZXlzLCB0aGF0IGN1cnJlbnRseSBleGlzdCBhbmQgdGhvc2UgdGhhdCBzaG91bGQgZXhpc3QNCisgICAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIlNIT1cgS0VZUyBGUk9NIGAiIC4gJHRhYmxlIC4gImAgV0hFUkUgYEtleV9uYW1lYCAhPSAnUFJJTUFSWSciKTsgDQorICAgICAgICAka2V5c19pbl90YWJsZSA9ICRzdG10LT5mZXRjaEFsbChQRE86OkZFVENIX0FTU09DKTsgDQorICAgICAgICAka2V5c190b19leGlzdCA9IGFycmF5KCk7DQorICAgICAgICBpZiAoaXNzZXQoJHByb3BlcnRpZXNbJ2tleXMnXVsndW5pcXVlJ10pICYmIGlzX2FycmF5KCRwcm9wZXJ0aWVzWydrZXlzJ11bJ3VuaXF1ZSddKSkgew0KKyAgICAgICAgICBmb3JlYWNoICgkcHJvcGVydGllc1sna2V5cyddWyd1bmlxdWUnXSBhcyAka2V5X25hbWUgPT4gJGtleV92YWx1ZXMpIHsNCisgICAgICAgICAgICAgJGtleXNfdG9fZXhpc3RbXSA9ICRrZXlfbmFtZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgaWYgKGlzc2V0KCRwcm9wZXJ0aWVzWydrZXlzJ11bJ2tleSddKSAmJiBpc19hcnJheSgkcHJvcGVydGllc1sna2V5cyddWydrZXknXSkpIHsNCisgICAgICAgICAgZm9yZWFjaCAoJHByb3BlcnRpZXNbJ2tleXMnXVsna2V5J10gYXMgJGtleV9uYW1lID0+ICRrZXlfdmFsdWVzKSB7DQorICAgICAgICAgICAgICRrZXlzX3RvX2V4aXN0W10gPSAka2V5X25hbWU7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIC8vIEluZGV4IGZvciBmb3JlaWduIGtleSBtdXN0IGV4aXN0DQorICAgICAgICBpZiAoaXNzZXQoJHByb3BlcnRpZXNbJ2tleXMnXVsnZmtleSddKSAmJiBpc19hcnJheSgkcHJvcGVydGllc1sna2V5cyddWydma2V5J10pKSB7DQorICAgICAgICAgIGZvcmVhY2ggKCRwcm9wZXJ0aWVzWydrZXlzJ11bJ2ZrZXknXSBhcyAka2V5X25hbWUgPT4gJGtleV92YWx1ZXMpIHsNCisgICAgICAgICAgICAgJGtleXNfdG9fZXhpc3RbXSA9ICRrZXlfbmFtZTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgLy8gU3RlcCAyOiBEcm9wIGFsbCB2YW5pc2hlZCBpbmRleGVzDQorICAgICAgICB3aGlsZSAoJHJvdyA9IGFycmF5X3NoaWZ0KCRrZXlzX2luX3RhYmxlKSkgew0KKyAgICAgICAgICBpZiAoIWluX2FycmF5KCRyb3dbJ0tleV9uYW1lJ10sICRrZXlzX3RvX2V4aXN0KSkgew0KKyAgICAgICAgICAgICRwZG8tPnF1ZXJ5KCJBTFRFUiBUQUJMRSBgIiAuICR0YWJsZSAuICJgIERST1AgSU5ERVggYCIgLiAkcm93WydLZXlfbmFtZSddIC4gImAiKTsNCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgLy8gU3RlcCAzOiBEcm9wIGFsbCB2YW5pc2hlZCBwcmltYXJ5IGtleXMNCisgICAgICAgIGlmICghaXNzZXQoJHByb3BlcnRpZXNbJ2tleXMnXVsncHJpbWFyeSddKSkgew0KKyAgICAgICAgICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTSE9XIEtFWVMgRlJPTSBgIiAuICR0YWJsZSAuICJgIFdIRVJFIEtleV9uYW1lID0gJ1BSSU1BUlknIik7IA0KKyAgICAgICAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICAgICAgICBpZiAoJG51bV9yZXN1bHRzICE9IDApIHsNCisgICAgICAgICAgICAkcGRvLT5xdWVyeSgiQUxURVIgVEFCTEUgYCIgLiAkdGFibGUgLiAiYCBEUk9QIFBSSU1BUlkgS0VZIik7DQorICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAvLyBDcmVhdGUgdGFibGUgaWYgaXQgaXMgbWlzc2luZw0KKyAgICAgICAgJHNxbCA9ICJDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgIiAuICR0YWJsZSAuICJgICgiOw0KKyAgICAgICAgZm9yZWFjaCgkcHJvcGVydGllc1snY29scyddIGFzICRjb2x1bW4gPT4gJHR5cGUpIHsNCisgICAgICAgICAgJHNxbCAuPSAiYCIgLiAkY29sdW1uIC4gImAgIiAuICR0eXBlIC4gIiwiOw0KKyAgICAgICAgfQ0KKyAgICAgICAgZm9yZWFjaCgkcHJvcGVydGllc1sna2V5cyddIGFzICRrZXlfdHlwZSA9PiAka2V5X2NvbnRlbnQpIHsNCisgICAgICAgICAgaWYgKHN0cnRvbG93ZXIoJGtleV90eXBlKSA9PSAncHJpbWFyeScpIHsNCisgICAgICAgICAgICBmb3JlYWNoICgka2V5X2NvbnRlbnQgYXMgJGtleV92YWx1ZXMpIHsNCisgICAgICAgICAgICAgICRmaWVsZHMgPSAiYCIgLiBpbXBsb2RlKCJgLCBgIiwgJGtleV92YWx1ZXMpIC4gImAiOw0KKyAgICAgICAgICAgICAgJHNxbCAuPSAiUFJJTUFSWSBLRVkgKCIgLiAkZmllbGRzIC4gIikiIC4gIiwiOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKHN0cnRvbG93ZXIoJGtleV90eXBlKSA9PSAna2V5Jykgew0KKyAgICAgICAgICAgIGZvcmVhY2ggKCRrZXlfY29udGVudCBhcyAka2V5X25hbWUgPT4gJGtleV92YWx1ZXMpIHsNCisgICAgICAgICAgICAgICRmaWVsZHMgPSAiYCIgLiBpbXBsb2RlKCJgLCBgIiwgJGtleV92YWx1ZXMpIC4gImAiOw0KKyAgICAgICAgICAgICAgJHNxbCAuPSAiS0VZIGAiIC4gJGtleV9uYW1lIC4gImAgKCIgLiAkZmllbGRzIC4gIikiIC4gIiwiOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlaWYgKHN0cnRvbG93ZXIoJGtleV90eXBlKSA9PSAndW5pcXVlJykgew0KKyAgICAgICAgICAgIGZvcmVhY2ggKCRrZXlfY29udGVudCBhcyAka2V5X25hbWUgPT4gJGtleV92YWx1ZXMpIHsNCisgICAgICAgICAgICAgICRmaWVsZHMgPSAiYCIgLiBpbXBsb2RlKCJgLCBgIiwgJGtleV92YWx1ZXMpIC4gImAiOw0KKyAgICAgICAgICAgICAgJHNxbCAuPSAiVU5JUVVFIEtFWSBgIiAuICRrZXlfbmFtZSAuICJgICgiIC4gJGZpZWxkcyAuICIpIiAuICIsIjsNCisgICAgICAgICAgICB9DQorICAgICAgICAgIH0NCisgICAgICAgICAgZWxzZWlmIChzdHJ0b2xvd2VyKCRrZXlfdHlwZSkgPT0gJ2ZrZXknKSB7DQorICAgICAgICAgICAgZm9yZWFjaCAoJGtleV9jb250ZW50IGFzICRrZXlfbmFtZSA9PiAka2V5X3ZhbHVlcykgew0KKyAgICAgICAgICAgICAgQGxpc3QoJHRhYmxlX3JlZiwgJGZpZWxkX3JlZikgPSBleHBsb2RlKCcuJywgJGtleV92YWx1ZXNbJ3JlZiddKTsNCisgICAgICAgICAgICAgICRzcWwgLj0gIkZPUkVJR04gS0VZIGAiIC4gJGtleV9uYW1lIC4gImAgKCIgLiAka2V5X3ZhbHVlc1snY29sJ10gLiAiKSBSRUZFUkVOQ0VTIGAiIC4gJHRhYmxlX3JlZiAuICJgIChgIiAuICRmaWVsZF9yZWYgLiAiYCkNCisgICAgICAgICAgICAgICAgT04gREVMRVRFICIgLiAka2V5X3ZhbHVlc1snZGVsZXRlJ10gLiAiIE9OIFVQREFURSAiIC4gJGtleV92YWx1ZXNbJ3VwZGF0ZSddIC4gIiwiOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgJHNxbCA9IHJ0cmltKCRzcWwsICIsIik7DQorICAgICAgICAkc3FsIC49ICIpICIgLiAkcHJvcGVydGllc1snYXR0ciddOw0KKyAgICAgICAgJHBkby0+cXVlcnkoJHNxbCk7DQorICAgICAgfQ0KKyAgICAgIC8vIFJlc2V0IHRhYmxlIGF0dHJpYnV0ZXMNCisgICAgICAkcGRvLT5xdWVyeSgiQUxURVIgVEFCTEUgYCIgLiAkdGFibGUgLiAiYCAiIC4gJHByb3BlcnRpZXNbJ2F0dHInXSAuICI7Iik7DQorDQorICAgIH0NCisNCisgICAgLy8gUmVjcmVhdGUgU1FMIHZpZXdzDQorICAgIGZvcmVhY2ggKCR2aWV3cyBhcyAkdmlldyA9PiAkY3JlYXRlKSB7DQorICAgICAgJHBkby0+cXVlcnkoIkRST1AgVklFVyBJRiBFWElTVFMgYCIgLiAkdmlldyAuICJgOyIpOw0KKyAgICAgICRwZG8tPnF1ZXJ5KCRjcmVhdGUpOw0KKyAgICB9DQorICAgIA0KKyAgICAvLyBNaXRpZ2F0ZSBpbWFwc3luYyBwaXBlbWVzcyBpc3N1ZQ0KKyAgICAkcGRvLT5xdWVyeSgiVVBEQVRFIGBpbWFwc3luY2AgU0VUIGBjdXN0b21fcGFyYW1zYCA9ICcnIFdIRVJFIGBjdXN0b21fcGFyYW1zYCBMSUtFICclcGlwZW1lc3MlJzsiKTsNCisNCisgICAgLy8gSW5qZWN0IGFkbWluIGlmIG5vdCBleGlzdHMNCisgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiU0VMRUNUIE5VTEwgRlJPTSBgYWRtaW5gIik7IA0KKyAgICAkbnVtX3Jlc3VsdHMgPSBjb3VudCgkc3RtdC0+ZmV0Y2hBbGwoUERPOjpGRVRDSF9BU1NPQykpOw0KKyAgICBpZiAoJG51bV9yZXN1bHRzID09IDApIHsNCisgICAgJHBkby0+cXVlcnkoIklOU0VSVCBJTlRPIGBhZG1pbmAgKGB1c2VybmFtZWAsIGBwYXNzd29yZGAsIGBzdXBlcmFkbWluYCwgYGNyZWF0ZWRgLCBgbW9kaWZpZWRgLCBgYWN0aXZlYCkNCisgICAgICBWQUxVRVMgKCdhZG1pbicsICd7U1NIQTI1Nn1LOGVWSjZZc1piUUNmdUp2U1ViYVFSTHIwSFBMejVyQzlJQXAwUEFGbDB0bU5EQmtNRGMwTkRBeU9UQXhOMlJrJywgMSwgTk9XKCksIE5PVygpLCAxKSIpOw0KKyAgICAkcGRvLT5xdWVyeSgiSU5TRVJUIElOVE8gYGRvbWFpbl9hZG1pbnNgIChgdXNlcm5hbWVgLCBgZG9tYWluYCwgYGNyZWF0ZWRgLCBgYWN0aXZlYCkNCisgICAgICAgIFNFTEVDVCBgdXNlcm5hbWVgLCAnQUxMJywgTk9XKCksIDEgRlJPTSBgYWRtaW5gDQorICAgICAgICAgIFdIRVJFIHN1cGVyYWRtaW49JzEnIEFORCBgdXNlcm5hbWVgIE5PVCBJTiAoU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgZG9tYWluX2FkbWluc2ApOyIpOw0KKyAgICAkcGRvLT5xdWVyeSgiREVMRVRFIEZST00gYGFkbWluYCBXSEVSRSBgdXNlcm5hbWVgIE5PVCBJTiAgKFNFTEVDVCBgdXNlcm5hbWVgIEZST00gYGRvbWFpbl9hZG1pbnNgKTsiKTsNCisgICAgfQ0KKyAgICAvLyBJbnNlcnQgbmV3IERCIHNjaGVtYSB2ZXJzaW9uDQorICAgICRwZG8tPnF1ZXJ5KCJSRVBMQUNFIElOVE8gYHZlcnNpb25zYCAoYGFwcGxpY2F0aW9uYCwgYHZlcnNpb25gKSBWQUxVRVMgKCdkYl9zY2hlbWEnLCAnIiAuICRkYl92ZXJzaW9uIC4gIicpOyIpOw0KKw0KKyAgICAvLyBGaXggZGFuZ2xpbmcgZG9tYWluIGFkbWlucw0KKyAgICAkcGRvLT5xdWVyeSgiREVMRVRFIEZST00gYGFkbWluYCBXSEVSRSBgc3VwZXJhZG1pbmAgPSAwIEFORCBgdXNlcm5hbWVgIE5PVCBJTiAoU0VMRUNUIGB1c2VybmFtZWBGUk9NIGBkb21haW5fYWRtaW5zYCk7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJERUxFVEUgRlJPTSBgZGFfYWNsYCBXSEVSRSBgdXNlcm5hbWVgIE5PVCBJTiAoU0VMRUNUIGB1c2VybmFtZWBGUk9NIGBkb21haW5fYWRtaW5zYCk7Iik7DQorDQorICAgIC8vIE1pZ3JhdGUgYXR0cmlidXRlcw0KKyAgICAvLyBwdXNob3Zlcg0KKyAgICAkcGRvLT5xdWVyeSgiVVBEQVRFIGBwdXNob3ZlcmAgU0VUIGBhdHRyaWJ1dGVzYCA9ICd7fScgV0hFUkUgYGF0dHJpYnV0ZXNgID0gJycgT1IgYGF0dHJpYnV0ZXNgIElTIE5VTEw7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYHB1c2hvdmVyYCBTRVQgYGF0dHJpYnV0ZXNgID0gIEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQuZXZhbHVhdGVfeF9wcmlvJywgXCIwXCIpIFdIRVJFIEpTT05fVkFMVUUoYGF0dHJpYnV0ZXNgLCAnJC5ldmFsdWF0ZV94X3ByaW8nKSBJUyBOVUxMOyIpOw0KKyAgICAkcGRvLT5xdWVyeSgiVVBEQVRFIGBwdXNob3ZlcmAgU0VUIGBhdHRyaWJ1dGVzYCA9ICBKU09OX1NFVChgYXR0cmlidXRlc2AsICckLm9ubHlfeF9wcmlvJywgXCIwXCIpIFdIRVJFIEpTT05fVkFMVUUoYGF0dHJpYnV0ZXNgLCAnJC5vbmx5X3hfcHJpbycpIElTIE5VTEw7Iik7DQorICAgIC8vIG1haWxib3gNCisgICAgJHBkby0+cXVlcnkoIlVQREFURSBgbWFpbGJveGAgU0VUIGBhdHRyaWJ1dGVzYCA9ICd7fScgV0hFUkUgYGF0dHJpYnV0ZXNgID0gJycgT1IgYGF0dHJpYnV0ZXNgIElTIE5VTEw7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYG1haWxib3hgIFNFVCBgYXR0cmlidXRlc2AgPSAgSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC5mb3JjZV9wd191cGRhdGUnLCBcIjBcIikgV0hFUkUgSlNPTl9WQUxVRShgYXR0cmlidXRlc2AsICckLmZvcmNlX3B3X3VwZGF0ZScpIElTIE5VTEw7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYG1haWxib3hgIFNFVCBgYXR0cmlidXRlc2AgPSAgSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC5zb2dvX2FjY2VzcycsIFwiMVwiKSBXSEVSRSBKU09OX1ZBTFVFKGBhdHRyaWJ1dGVzYCwgJyQuc29nb19hY2Nlc3MnKSBJUyBOVUxMOyIpOw0KKyAgICAkcGRvLT5xdWVyeSgiVVBEQVRFIGBtYWlsYm94YCBTRVQgYGF0dHJpYnV0ZXNgID0gIEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQuaW1hcF9hY2Nlc3MnLCBcIjFcIikgV0hFUkUgSlNPTl9WQUxVRShgYXR0cmlidXRlc2AsICckLmltYXBfYWNjZXNzJykgSVMgTlVMTDsiKTsNCisgICAgJHBkby0+cXVlcnkoIlVQREFURSBgbWFpbGJveGAgU0VUIGBhdHRyaWJ1dGVzYCA9ICBKU09OX1NFVChgYXR0cmlidXRlc2AsICckLnBvcDNfYWNjZXNzJywgXCIxXCIpIFdIRVJFIEpTT05fVkFMVUUoYGF0dHJpYnV0ZXNgLCAnJC5wb3AzX2FjY2VzcycpIElTIE5VTEw7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYG1haWxib3hgIFNFVCBgYXR0cmlidXRlc2AgPSAgSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC5zbXRwX2FjY2VzcycsIFwiMVwiKSBXSEVSRSBKU09OX1ZBTFVFKGBhdHRyaWJ1dGVzYCwgJyQuc210cF9hY2Nlc3MnKSBJUyBOVUxMOyIpOw0KKyAgICAkcGRvLT5xdWVyeSgiVVBEQVRFIGBtYWlsYm94YCBTRVQgYGF0dHJpYnV0ZXNgID0gIEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQubWFpbGJveF9mb3JtYXQnLCBcIm1haWxkaXI6XCIpIFdIRVJFIEpTT05fVkFMVUUoYGF0dHJpYnV0ZXNgLCAnJC5tYWlsYm94X2Zvcm1hdCcpIElTIE5VTEw7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYG1haWxib3hgIFNFVCBgYXR0cmlidXRlc2AgPSAgSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC5xdWFyYW50aW5lX25vdGlmaWNhdGlvbicsIFwibmV2ZXJcIikgV0hFUkUgSlNPTl9WQUxVRShgYXR0cmlidXRlc2AsICckLnF1YXJhbnRpbmVfbm90aWZpY2F0aW9uJykgSVMgTlVMTDsiKTsNCisgICAgJHBkby0+cXVlcnkoIlVQREFURSBgbWFpbGJveGAgU0VUIGBhdHRyaWJ1dGVzYCA9ICBKU09OX1NFVChgYXR0cmlidXRlc2AsICckLnF1YXJhbnRpbmVfY2F0ZWdvcnknLCBcInJlamVjdFwiKSBXSEVSRSBKU09OX1ZBTFVFKGBhdHRyaWJ1dGVzYCwgJyQucXVhcmFudGluZV9jYXRlZ29yeScpIElTIE5VTEw7Iik7DQorICAgIGZvcmVhY2goJHRsc19vcHRpb25zIGFzICR0bHNfdXNlciA9PiAkdGxzX29wdGlvbnMpIHsNCisgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlVQREFURSBgbWFpbGJveGAgU0VUIGBhdHRyaWJ1dGVzYCA9IEpTT05fU0VUKGBhdHRyaWJ1dGVzYCwgJyQudGxzX2VuZm9yY2VfaW4nLCA6dGxzX2VuZm9yY2VfaW4pLA0KKyAgICAgICAgYGF0dHJpYnV0ZXNgID0gSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC50bHNfZW5mb3JjZV9vdXQnLCA6dGxzX2VuZm9yY2Vfb3V0KQ0KKyAgICAgICAgICBXSEVSRSBgdXNlcm5hbWVgID0gOnVzZXJuYW1lIik7DQorICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJzp0bHNfZW5mb3JjZV9pbicgPT4gJHRsc19vcHRpb25zWyd0bHNfZW5mb3JjZV9pbiddLCAnOnRsc19lbmZvcmNlX291dCcgPT4gJHRsc19vcHRpb25zWyd0bHNfZW5mb3JjZV9vdXQnXSwgJzp1c2VybmFtZScgPT4gJHRsc191c2VyKSk7DQorICAgIH0NCisgICAgLy8gU2V0IHRsc19lbmZvcmNlXyogaWYgc3RpbGwgbWlzc2luZyAoZHVlIHRvIGRlbGV0ZWQgYXR0cnMgZm9yIGV4YW1wbGUpDQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYG1haWxib3hgIFNFVCBgYXR0cmlidXRlc2AgPSAgSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC50bHNfZW5mb3JjZV9vdXQnLCBcIjFcIikgV0hFUkUgSlNPTl9WQUxVRShgYXR0cmlidXRlc2AsICckLnRsc19lbmZvcmNlX291dCcpIElTIE5VTEw7Iik7DQorICAgICRwZG8tPnF1ZXJ5KCJVUERBVEUgYG1haWxib3hgIFNFVCBgYXR0cmlidXRlc2AgPSAgSlNPTl9TRVQoYGF0dHJpYnV0ZXNgLCAnJC50bHNfZW5mb3JjZV9pbicsIFwiMVwiKSBXSEVSRSBKU09OX1ZBTFVFKGBhdHRyaWJ1dGVzYCwgJyQudGxzX2VuZm9yY2VfaW4nKSBJUyBOVUxMOyIpOw0KKyAgICAvLyBGaXggQUNMDQorICAgICRwZG8tPnF1ZXJ5KCJJTlNFUlQgSU5UTyBgdXNlcl9hY2xgIChgdXNlcm5hbWVgKSBTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBtYWlsYm94YCBXSEVSRSBga2luZGAgPSAnJyBBTkQgTk9UIEVYSVNUUyAoU0VMRUNUIGB1c2VybmFtZWAgRlJPTSBgdXNlcl9hY2xgKTsiKTsNCisgICAgJHBkby0+cXVlcnkoIklOU0VSVCBJTlRPIGBkYV9hY2xgIChgdXNlcm5hbWVgKSBTRUxFQ1QgRElTVElOQ1QgYHVzZXJuYW1lYCBGUk9NIGBkb21haW5fYWRtaW5zYCBXSEVSRSBgdXNlcm5hbWVgICE9ICdhZG1pbicgQU5EIE5PVCBFWElTVFMgKFNFTEVDVCBgdXNlcm5hbWVgIEZST00gYGRhX2FjbGApOyIpOw0KKyAgICAvLyBGaXggZG9tYWluX2FkbWlucw0KKyAgICAkcGRvLT5xdWVyeSgiREVMRVRFIEZST00gYGRvbWFpbl9hZG1pbnNgIFdIRVJFIGBkb21haW5gID0gJ0FMTCc7Iik7DQorDQorICAgIGlmIChwaHBfc2FwaV9uYW1lKCkgPT0gImNsaSIpIHsNCisgICAgICBlY2hvICJEQiBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQiIC4gUEhQX0VPTDsNCisgICAgfSBlbHNlIHsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnc3VjY2VzcycsDQorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLA0KKyAgICAgICAgJ21zZycgPT4gJ2RiX2luaXRfY29tcGxldGUnDQorICAgICAgKTsNCisgICAgfQ0KKyAgfQ0KKyAgY2F0Y2ggKFBET0V4Y2VwdGlvbiAkZSkgew0KKyAgICBpZiAocGhwX3NhcGlfbmFtZSgpID09ICJjbGkiKSB7DQorICAgICAgZWNobyAiREIgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAiIC4gcHJpbnRfcigkZSwgdHJ1ZSkgLiBQSFBfRU9MOw0KKyAgICB9IGVsc2Ugew0KKyAgICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLA0KKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fKSwNCisgICAgICAgICdtc2cnID0+IGFycmF5KCdteXNxbF9lcnJvcicsICRlKQ0KKyAgICAgICk7DQorICAgIH0NCisgIH0NCit9DQoraWYgKHBocF9zYXBpX25hbWUoKSA9PSAiY2xpIikgew0KKyAgaW5jbHVkZSAnL3dlYi9pbmMvdmFycy5pbmMucGhwJzsNCisgIC8vICRub3cgPSBuZXcgRGF0ZVRpbWUoKTsNCisgIC8vICRtaW5zID0gJG5vdy0+Z2V0T2Zmc2V0KCkgLyA2MDsNCisgIC8vICRzZ24gPSAoJG1pbnMgPCAwID8gLTEgOiAxKTsNCisgIC8vICRtaW5zID0gYWJzKCRtaW5zKTsNCisgIC8vICRocnMgPSBmbG9vcigkbWlucyAvIDYwKTsNCisgIC8vICRtaW5zIC09ICRocnMgKiA2MDsNCisgIC8vICRvZmZzZXQgPSBzcHJpbnRmKCclK2Q6JTAyZCcsICRocnMqJHNnbiwgJG1pbnMpOw0KKyAgJGRzbiA9ICRkYXRhYmFzZV90eXBlIC4gIjp1bml4X3NvY2tldD0iIC4gJGRhdGFiYXNlX3NvY2sgLiAiO2RibmFtZT0iIC4gJGRhdGFiYXNlX25hbWU7DQorICAkb3B0ID0gWw0KKyAgICBQRE86OkFUVFJfRVJSTU9ERSAgICAgICAgICAgID0+IFBETzo6RVJSTU9ERV9FWENFUFRJT04sDQorICAgIFBETzo6QVRUUl9ERUZBVUxUX0ZFVENIX01PREUgPT4gUERPOjpGRVRDSF9BU1NPQywNCisgICAgUERPOjpBVFRSX0VNVUxBVEVfUFJFUEFSRVMgICA9PiBmYWxzZSwNCisgICAgLy9QRE86Ok1ZU1FMX0FUVFJfSU5JVF9DT01NQU5EID0+ICJTRVQgdGltZV96b25lID0gJyIgLiAkb2Zmc2V0IC4gIicsIGdyb3VwX2NvbmNhdF9tYXhfbGVuID0gMzQyMzU0MzU0MzsiLA0KKyAgXTsNCisgICRwZG8gPSBuZXcgUERPKCRkc24sICRkYXRhYmFzZV91c2VyLCAkZGF0YWJhc2VfcGFzcywgJG9wdCk7DQorICAkc3RtdCA9ICRwZG8tPnF1ZXJ5KCJTRUxFQ1QgQ09VTlQoJ09LJykgQVMgT0tfQyBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRSA9ICdzb2dvX3ZpZXcnIE9SIFRBQkxFX05BTUUgPSAnX3NvZ29fc3RhdGljX3ZpZXcnOyIpOw0KKyAgJHJlcyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsNCisgIGlmIChpbnR2YWwoJHJlc1snT0tfQyddKSA9PT0gMikgew0KKyAgICAvLyBCZSBtb3JlIHByZWNpc2Ugd2hlbiByZXBsYWNpbmcgaW50byBfc29nb19zdGF0aWNfdmlldywgY29sIG9yZGVycyBtYXkgY2hhbmdlDQorICAgIHRyeSB7DQorICAgICAgJHN0bXQgPSAkcGRvLT5xdWVyeSgiUkVQTEFDRSBJTlRPIF9zb2dvX3N0YXRpY192aWV3IChgY191aWRgLCBgZG9tYWluYCwgYGNfbmFtZWAsIGBjX3Bhc3N3b3JkYCwgYGNfY25gLCBgbWFpbGAsIGBhbGlhc2VzYCwgYGFkX2FsaWFzZXNgLCBgZXh0X2FjbGAsIGBraW5kYCwgYG11bHRpcGxlX2Jvb2tpbmdzYCkNCisgICAgICAgIFNFTEVDVCBgY191aWRgLCBgZG9tYWluYCwgYGNfbmFtZWAsIGBjX3Bhc3N3b3JkYCwgYGNfY25gLCBgbWFpbGAsIGBhbGlhc2VzYCwgYGFkX2FsaWFzZXNgLCBgZXh0X2FjbGAsIGBraW5kYCwgYG11bHRpcGxlX2Jvb2tpbmdzYCBmcm9tIHNvZ29fdmlldyIpOw0KKyAgICAgICRzdG10ID0gJHBkby0+cXVlcnkoIkRFTEVURSBGUk9NIF9zb2dvX3N0YXRpY192aWV3IFdIRVJFIGBjX3VpZGAgTk9UIElOIChTRUxFQ1QgYHVzZXJuYW1lYCBGUk9NIGBtYWlsYm94YCBXSEVSRSBgYWN0aXZlYCA9ICcxJyk7Iik7DQorICAgICAgZWNobyAiRml4ZWQgX3NvZ29fc3RhdGljX3ZpZXciIC4gUEhQX0VPTDsNCisgICAgfQ0KKyAgICBjYXRjaCAoIEV4Y2VwdGlvbiAkZSApIHsNCisgICAgICAvLyBEdW5ubw0KKyAgICB9DQorICB9DQorICB0cnkgew0KKyAgICAkbSA9IG5ldyBNZW1jYWNoZWQoKTsNCisgICAgJG0tPmFkZFNlcnZlcignbWVtY2FjaGVkJywgMTEyMTEpOw0KKyAgICAkbS0+Zmx1c2goKTsNCisgICAgZWNobyAiQ2xlYW5lZCB1cCBtZW1jYWNoZWQiLiBQSFBfRU9MOw0KKyAgfQ0KKyAgY2F0Y2ggKCBFeGNlcHRpb24gJGUgKSB7DQorICAgIC8vIER1bm5vDQorICB9DQorICBpbml0X2RiX3NjaGVtYSgpOw0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9DU1NtaW5pZmllckV4dGVuZGVkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL0NTU21pbmlmaWVyRXh0ZW5kZWQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNTM4MWMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9DU1NtaW5pZmllckV4dGVuZGVkLnBocApAQCAtMCwwICsxLDE4IEBACis8P3BocAorCit1c2UgTWF0dGhpYXNNdWxsaWVcTWluaWZ5XENTUzsKKworY2xhc3MgQ1NTbWluaWZpZXJFeHRlbmRlZCBleHRlbmRzIENTUyB7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGF0YUhhc2goKSB7CisgICAgICAgIHJldHVybiBzaGExKGpzb25fZW5jb2RlKCR0aGlzLT5hY2Nlc3NQcm90ZWN0ZWQoJHRoaXMsJ2RhdGEnKSkpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gYWNjZXNzUHJvdGVjdGVkKCRvYmosICRwcm9wKSB7CisgICAgICAgICRyZWZsZWN0aW9uID0gbmV3IFJlZmxlY3Rpb25DbGFzcygkb2JqKTsKKyAgICAgICAgJHByb3BlcnR5ID0gJHJlZmxlY3Rpb24tPmdldFByb3BlcnR5KCRwcm9wKTsKKyAgICAgICAgJHByb3BlcnR5LT5zZXRBY2Nlc3NpYmxlKHRydWUpOworICAgICAgICByZXR1cm4gJHByb3BlcnR5LT5nZXRWYWx1ZSgkb2JqKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9KU21pbmlmaWVyRXh0ZW5kZWQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvSlNtaW5pZmllckV4dGVuZGVkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODkxY2I4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvSlNtaW5pZmllckV4dGVuZGVkLnBocApAQCAtMCwwICsxLDE4IEBACis8P3BocAorCit1c2UgTWF0dGhpYXNNdWxsaWVcTWluaWZ5XEpTOworCitjbGFzcyBKU21pbmlmaWVyRXh0ZW5kZWQgZXh0ZW5kcyBKUyB7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGF0YUhhc2goKSB7CisgICAgICAgIHJldHVybiBzaGExKGpzb25fZW5jb2RlKCR0aGlzLT5hY2Nlc3NQcm90ZWN0ZWQoJHRoaXMsJ2RhdGEnKSkpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gYWNjZXNzUHJvdGVjdGVkKCRvYmosICRwcm9wKSB7CisgICAgICAgICRyZWZsZWN0aW9uID0gbmV3IFJlZmxlY3Rpb25DbGFzcygkb2JqKTsKKyAgICAgICAgJHByb3BlcnR5ID0gJHJlZmxlY3Rpb24tPmdldFByb3BlcnR5KCRwcm9wKTsKKyAgICAgICAgJHByb3BlcnR5LT5zZXRBY2Nlc3NpYmxlKHRydWUpOworICAgICAgICByZXR1cm4gJHByb3BlcnR5LT5nZXRWYWx1ZSgkb2JqKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9BdHRlc3RhdGlvbk9iamVjdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9BdHRlc3RhdGlvbk9iamVjdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWViNGUyMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0F0dGVzdGF0aW9uT2JqZWN0LnBocApAQCAtMCwwICsxLDE1NCBAQAorPD9waHAKKworbmFtZXNwYWNlIFdlYkF1dGhuXEF0dGVzdGF0aW9uOwordXNlIFdlYkF1dGhuXFdlYkF1dGhuRXhjZXB0aW9uOwordXNlIFdlYkF1dGhuXENCT1JcQ2JvckRlY29kZXI7Cit1c2UgV2ViQXV0aG5cQmluYXJ5XEJ5dGVCdWZmZXI7CisKKy8qKgorICogQGF1dGhvciBMdWthcyBCdWNocworICogQGxpY2Vuc2UgaHR0cHM6Ly9naXRodWIuY29tL2xidWNocy9XZWJBdXRobi9ibG9iL21hc3Rlci9MSUNFTlNFIE1JVAorICovCitjbGFzcyBBdHRlc3RhdGlvbk9iamVjdCB7CisgICAgcHJpdmF0ZSAkX2F1dGhlbnRpY2F0b3JEYXRhOworICAgIHByaXZhdGUgJF9hdHRlc3RhdGlvbkZvcm1hdDsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkYmluYXJ5ICwgJGFsbG93ZWRGb3JtYXRzKSB7CisgICAgICAgICRlbmMgPSBDYm9yRGVjb2Rlcjo6ZGVjb2RlKCRiaW5hcnkpOworICAgICAgICAvLyB2YWxpZGF0aW9uCisgICAgICAgIGlmICghXGlzX2FycmF5KCRlbmMpIHx8ICFcYXJyYXlfa2V5X2V4aXN0cygnZm10JywgJGVuYykgfHwgIWlzX3N0cmluZygkZW5jWydmbXQnXSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBhdHRlc3RhdGlvbiBmb3JtYXQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ2F0dFN0bXQnLCAkZW5jKSB8fCAhXGlzX2FycmF5KCRlbmNbJ2F0dFN0bXQnXSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBhdHRlc3RhdGlvbiBmb3JtYXQgKGF0dFN0bXQgbm90IGF2YWlsYWJsZSknLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ2F1dGhEYXRhJywgJGVuYykgfHwgIVxpc19vYmplY3QoJGVuY1snYXV0aERhdGEnXSkgfHwgISgkZW5jWydhdXRoRGF0YSddIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBhdHRlc3RhdGlvbiBmb3JtYXQgKGF1dGhEYXRhIG5vdCBhdmFpbGFibGUpJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhID0gbmV3IEF1dGhlbnRpY2F0b3JEYXRhKCRlbmNbJ2F1dGhEYXRhJ10tPmdldEJpbmFyeVN0cmluZygpKTsKKworICAgICAgICAvLyBGb3JtYXQgb2s/CisgICAgICAgIGlmICghaW5fYXJyYXkoJGVuY1snZm10J10sICRhbGxvd2VkRm9ybWF0cykpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBhdHR0ZXN0YXRpb24gZm9ybWF0OiAnIC4gJGVuY1snZm10J10sIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoICgkZW5jWydmbXQnXSkgeworICAgICAgICAgICAgY2FzZSAnYW5kcm9pZC1rZXknOiAkdGhpcy0+X2F0dGVzdGF0aW9uRm9ybWF0ID0gbmV3IEZvcm1hdFxBbmRyb2lkS2V5KCRlbmMsICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2FuZHJvaWQtc2FmZXR5bmV0JzogJHRoaXMtPl9hdHRlc3RhdGlvbkZvcm1hdCA9IG5ldyBGb3JtYXRcQW5kcm9pZFNhZmV0eU5ldCgkZW5jLCAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdhcHBsZSc6ICR0aGlzLT5fYXR0ZXN0YXRpb25Gb3JtYXQgPSBuZXcgRm9ybWF0XEFwcGxlKCRlbmMsICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2ZpZG8tdTJmJzogJHRoaXMtPl9hdHRlc3RhdGlvbkZvcm1hdCA9IG5ldyBGb3JtYXRcVTJmKCRlbmMsICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ25vbmUnOiAkdGhpcy0+X2F0dGVzdGF0aW9uRm9ybWF0ID0gbmV3IEZvcm1hdFxOb25lKCRlbmMsICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3BhY2tlZCc6ICR0aGlzLT5fYXR0ZXN0YXRpb25Gb3JtYXQgPSBuZXcgRm9ybWF0XFBhY2tlZCgkZW5jLCAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICd0cG0nOiAkdGhpcy0+X2F0dGVzdGF0aW9uRm9ybWF0ID0gbmV3IEZvcm1hdFxUcG0oJGVuYywgJHRoaXMtPl9hdXRoZW50aWNhdG9yRGF0YSk7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIGF0dGVzdGF0aW9uIGZvcm1hdDogJyAuICRlbmNbJ2ZtdCddLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGF0dGVzdGF0aW9uIHB1YmxpYyBrZXkgaW4gUEVNIGZvcm1hdAorICAgICAqIEByZXR1cm4gQXV0aGVudGljYXRvckRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRvckRhdGEoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhOworICAgIH0KKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGNlcnRpZmljYXRlIGNoYWluIGFzIFBFTQorICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2VydGlmaWNhdGVDaGFpbigpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0ZXN0YXRpb25Gb3JtYXQtPmdldENlcnRpZmljYXRlQ2hhaW4oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiByZXR1cm4gdGhlIGNlcnRpZmljYXRlIGlzc3VlciBhcyBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZUlzc3VlcigpIHsKKyAgICAgICAgJHBlbSA9ICR0aGlzLT5nZXRDZXJ0aWZpY2F0ZVBlbSgpOworICAgICAgICAkaXNzdWVyID0gJyc7CisgICAgICAgIGlmICgkcGVtKSB7CisgICAgICAgICAgICAkY2VydEluZm8gPSBcb3BlbnNzbF94NTA5X3BhcnNlKCRwZW0pOworICAgICAgICAgICAgaWYgKFxpc19hcnJheSgkY2VydEluZm8pICYmIFxpc19hcnJheSgkY2VydEluZm9bJ2lzc3VlciddKSkgeworICAgICAgICAgICAgICAgIGlmICgkY2VydEluZm9bJ2lzc3VlciddWydDTiddKSB7CisgICAgICAgICAgICAgICAgICAgICRpc3N1ZXIgLj0gXHRyaW0oJGNlcnRJbmZvWydpc3N1ZXInXVsnQ04nXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkY2VydEluZm9bJ2lzc3VlciddWydPJ10gfHwgJGNlcnRJbmZvWydpc3N1ZXInXVsnT1UnXSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoJGlzc3VlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGlzc3VlciAuPSAnICgnIC4gXHRyaW0oJGNlcnRJbmZvWydpc3N1ZXInXVsnTyddIC4gJyAnIC4gJGNlcnRJbmZvWydpc3N1ZXInXVsnT1UnXSkgLiAnKSc7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkaXNzdWVyIC49IFx0cmltKCRjZXJ0SW5mb1snaXNzdWVyJ11bJ08nXSAuICcgJyAuICRjZXJ0SW5mb1snaXNzdWVyJ11bJ09VJ10pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRpc3N1ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJuIHRoZSBjZXJ0aWZpY2F0ZSBzdWJqZWN0IGFzIHN0cmluZworICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENlcnRpZmljYXRlU3ViamVjdCgpIHsKKyAgICAgICAgJHBlbSA9ICR0aGlzLT5nZXRDZXJ0aWZpY2F0ZVBlbSgpOworICAgICAgICAkc3ViamVjdCA9ICcnOworICAgICAgICBpZiAoJHBlbSkgeworICAgICAgICAgICAgJGNlcnRJbmZvID0gXG9wZW5zc2xfeDUwOV9wYXJzZSgkcGVtKTsKKyAgICAgICAgICAgIGlmIChcaXNfYXJyYXkoJGNlcnRJbmZvKSAmJiBcaXNfYXJyYXkoJGNlcnRJbmZvWydzdWJqZWN0J10pKSB7CisgICAgICAgICAgICAgICAgaWYgKCRjZXJ0SW5mb1snc3ViamVjdCddWydDTiddKSB7CisgICAgICAgICAgICAgICAgICAgICRzdWJqZWN0IC49IFx0cmltKCRjZXJ0SW5mb1snc3ViamVjdCddWydDTiddKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRjZXJ0SW5mb1snc3ViamVjdCddWydPJ10gfHwgJGNlcnRJbmZvWydzdWJqZWN0J11bJ09VJ10pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRzdWJqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkc3ViamVjdCAuPSAnICgnIC4gXHRyaW0oJGNlcnRJbmZvWydzdWJqZWN0J11bJ08nXSAuICcgJyAuICRjZXJ0SW5mb1snc3ViamVjdCddWydPVSddKSAuICcpJzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRzdWJqZWN0IC49IFx0cmltKCRjZXJ0SW5mb1snc3ViamVjdCddWydPJ10gLiAnICcgLiAkY2VydEluZm9bJ3N1YmplY3QnXVsnT1UnXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHN1YmplY3Q7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUga2V5IGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZVBlbSgpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0ZXN0YXRpb25Gb3JtYXQtPmdldENlcnRpZmljYXRlUGVtKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogY2hlY2tzIHZhbGlkaXR5IG9mIHRoZSBzaWduYXR1cmUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSGFzaAorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVBdHRlc3RhdGlvbigkY2xpZW50RGF0YUhhc2gpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0ZXN0YXRpb25Gb3JtYXQtPnZhbGlkYXRlQXR0ZXN0YXRpb24oJGNsaWVudERhdGFIYXNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB2YWxpZGF0ZXMgdGhlIGNlcnRpZmljYXRlIGFnYWluc3Qgcm9vdCBjZXJ0aWZpY2F0ZXMKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHJvb3RDYXMKKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4KKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlUm9vdENlcnRpZmljYXRlKCRyb290Q2FzKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X2F0dGVzdGF0aW9uRm9ybWF0LT52YWxpZGF0ZVJvb3RDZXJ0aWZpY2F0ZSgkcm9vdENhcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogY2hlY2tzIGlmIHRoZSBScElkLUhhc2ggaXMgdmFsaWQKKyAgICAgKiBAcGFyYW0gc3RyaW5nJHJwSWRIYXNoCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlUnBJZEhhc2goJHJwSWRIYXNoKSB7CisgICAgICAgIHJldHVybiAkcnBJZEhhc2ggPT09ICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEtPmdldFJwSWRIYXNoKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vQXV0aGVudGljYXRvckRhdGEucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vQXV0aGVudGljYXRvckRhdGEucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NGQ5YWIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9BdXRoZW50aWNhdG9yRGF0YS5waHAKQEAgLTAsMCArMSw0MjMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBXZWJBdXRoblxBdHRlc3RhdGlvbjsKK3VzZSBXZWJBdXRoblxXZWJBdXRobkV4Y2VwdGlvbjsKK3VzZSBXZWJBdXRoblxDQk9SXENib3JEZWNvZGVyOwordXNlIFdlYkF1dGhuXEJpbmFyeVxCeXRlQnVmZmVyOworCisvKioKKyAqIEBhdXRob3IgTHVrYXMgQnVjaHMKKyAqIEBsaWNlbnNlIGh0dHBzOi8vZ2l0aHViLmNvbS9sYnVjaHMvV2ViQXV0aG4vYmxvYi9tYXN0ZXIvTElDRU5TRSBNSVQKKyAqLworY2xhc3MgQXV0aGVudGljYXRvckRhdGEgeworICAgIHByb3RlY3RlZCAkX2JpbmFyeTsKKyAgICBwcm90ZWN0ZWQgJF9ycElkSGFzaDsKKyAgICBwcm90ZWN0ZWQgJF9mbGFnczsKKyAgICBwcm90ZWN0ZWQgJF9zaWduQ291bnQ7CisgICAgcHJvdGVjdGVkICRfYXR0ZXN0ZWRDcmVkZW50aWFsRGF0YTsKKyAgICBwcm90ZWN0ZWQgJF9leHRlbnNpb25EYXRhOworCisKKworICAgIC8vIENvc2UgZW5jb2RlZCBrZXlzCisgICAgcHJpdmF0ZSBzdGF0aWMgJF9DT1NFX0tUWSA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgJF9DT1NFX0FMRyA9IDM7CisKKyAgICAvLyBDb3NlIEVDMiBFUzI1NiBQLTI1NiBjdXJ2ZQorICAgIHByaXZhdGUgc3RhdGljICRfQ09TRV9DUlYgPSAtMTsKKyAgICBwcml2YXRlIHN0YXRpYyAkX0NPU0VfWCA9IC0yOworICAgIHByaXZhdGUgc3RhdGljICRfQ09TRV9ZID0gLTM7CisKKyAgICAvLyBDb3NlIFJTQSBQUzI1NgorICAgIHByaXZhdGUgc3RhdGljICRfQ09TRV9OID0gLTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgJF9DT1NFX0UgPSAtMjsKKworICAgIHByaXZhdGUgc3RhdGljICRfRUMyX1RZUEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljICRfRUMyX0VTMjU2ID0gLTc7CisgICAgcHJpdmF0ZSBzdGF0aWMgJF9FQzJfUDI1NiA9IDE7CisKKyAgICBwcml2YXRlIHN0YXRpYyAkX1JTQV9UWVBFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyAkX1JTQV9SUzI1NiA9IC0yNTc7CisKKyAgICAvKioKKyAgICAgKiBQYXJzaW5nIHRoZSBhdXRoZW50aWNhdG9yRGF0YSBiaW5hcnkuCisgICAgICogQHBhcmFtIHN0cmluZyAkYmluYXJ5CisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkYmluYXJ5KSB7CisgICAgICAgIGlmICghXGlzX3N0cmluZygkYmluYXJ5KSB8fCBcc3RybGVuKCRiaW5hcnkpIDwgMzcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignSW52YWxpZCBhdXRoZW50aWNhdG9yRGF0YSBpbnB1dCcsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5fYmluYXJ5ID0gJGJpbmFyeTsKKworICAgICAgICAvLyBSZWFkIGluZm9zIGZyb20gYmluYXJ5CisgICAgICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jc2VjLWF1dGhlbnRpY2F0b3ItZGF0YQorCisgICAgICAgIC8vIFJQIElECisgICAgICAgICR0aGlzLT5fcnBJZEhhc2ggPSBcc3Vic3RyKCRiaW5hcnksIDAsIDMyKTsKKworICAgICAgICAvLyBmbGFncyAoMSBieXRlKQorICAgICAgICAkZmxhZ3MgPSBcdW5wYWNrKCdDZmxhZ3MnLCBcc3Vic3RyKCRiaW5hcnksIDMyLCAxKSlbJ2ZsYWdzJ107CisgICAgICAgICR0aGlzLT5fZmxhZ3MgPSAkdGhpcy0+X3JlYWRGbGFncygkZmxhZ3MpOworCisgICAgICAgIC8vIHNpZ25hdHVyZSBjb3VudGVyOiAzMi1iaXQgdW5zaWduZWQgYmlnLWVuZGlhbiBpbnRlZ2VyLgorICAgICAgICAkdGhpcy0+X3NpZ25Db3VudCA9IFx1bnBhY2soJ05zaWduY291bnQnLCBcc3Vic3RyKCRiaW5hcnksIDMzLCA0KSlbJ3NpZ25jb3VudCddOworCisgICAgICAgICRvZmZzZXQgPSAzNzsKKyAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNzZWMtYXR0ZXN0ZWQtY3JlZGVudGlhbC1kYXRhCisgICAgICAgIGlmICgkdGhpcy0+X2ZsYWdzLT5hdHRlc3RlZERhdGFJbmNsdWRlZCkgeworICAgICAgICAgICAgJHRoaXMtPl9hdHRlc3RlZENyZWRlbnRpYWxEYXRhID0gJHRoaXMtPl9yZWFkQXR0ZXN0RGF0YSgkYmluYXJ5LCAkb2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkdGhpcy0+X2ZsYWdzLT5leHRlbnNpb25EYXRhSW5jbHVkZWQpIHsKKyAgICAgICAgICAgICR0aGlzLT5fcmVhZEV4dGVuc2lvbkRhdGEoXHN1YnN0cigkYmluYXJ5LCAkb2Zmc2V0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdXRoZW50aWNhdG9yIEF0dGVzdGF0aW9uIEdsb2JhbGx5IFVuaXF1ZSBJZGVudGlmaWVyLCBhIHVuaXF1ZSBudW1iZXIKKyAgICAgKiB0aGF0IGlkZW50aWZpZXMgdGhlIG1vZGVsIG9mIHRoZSBhdXRoZW50aWNhdG9yIChub3QgdGhlIHNwZWNpZmljIGluc3RhbmNlCisgICAgICogb2YgdGhlIGF1dGhlbnRpY2F0b3IpCisgICAgICogVGhlIGFhZ3VpZCBtYXkgYmUgMCBpZiB0aGUgdXNlciBpcyB1c2luZyBhIG9sZCB1MmYgZGV2aWNlIGFuZC9vciBpZgorICAgICAqIHRoZSBicm93c2VyIGlzIHVzaW5nIHRoZSBmaWRvLXUyZiBmb3JtYXQuCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFBR1VJRCgpIHsKKyAgICAgICAgaWYgKCEoJHRoaXMtPl9hdHRlc3RlZENyZWRlbnRpYWxEYXRhIGluc3RhbmNlb2YgXHN0ZENsYXNzKSkgeworICAgICAgICAgICAgdGhyb3cgIG5ldyBXZWJBdXRobkV4Y2VwdGlvbignY3JlZGVudGlhbCBkYXRhIG5vdCBpbmNsdWRlZCBpbiBhdXRoZW50aWNhdG9yIGRhdGEnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHRoaXMtPl9hdHRlc3RlZENyZWRlbnRpYWxEYXRhLT5hYWd1aWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgYXV0aGVudGljYXRvckRhdGEgYXMgYmluYXJ5CisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QmluYXJ5KCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPl9iaW5hcnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgY3JlZGVudGlhbElkCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENyZWRlbnRpYWxJZCgpIHsKKyAgICAgICAgaWYgKCEoJHRoaXMtPl9hdHRlc3RlZENyZWRlbnRpYWxEYXRhIGluc3RhbmNlb2YgXHN0ZENsYXNzKSkgeworICAgICAgICAgICAgdGhyb3cgIG5ldyBXZWJBdXRobkV4Y2VwdGlvbignY3JlZGVudGlhbCBpZCBub3QgaW5jbHVkZWQgaW4gYXV0aGVudGljYXRvciBkYXRhJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0ZXN0ZWRDcmVkZW50aWFsRGF0YS0+Y3JlZGVudGlhbElkOworICAgIH0KKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIHB1YmxpYyBrZXkgaW4gUEVNIGZvcm1hdAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFB1YmxpY0tleVBlbSgpIHsKKyAgICAgICAgJGRlciA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoJHRoaXMtPl9hdHRlc3RlZENyZWRlbnRpYWxEYXRhLT5jcmVkZW50aWFsUHVibGljS2V5LT5rdHkpIHsKKyAgICAgICAgICAgIGNhc2Ugc2VsZjo6JF9FQzJfVFlQRTogJGRlciA9ICR0aGlzLT5fZ2V0RWMyRGVyKCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBzZWxmOjokX1JTQV9UWVBFOiAkZGVyID0gJHRoaXMtPl9nZXRSc2FEZXIoKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQga2V5IHR5cGUnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgICRwZW0gPSAnLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0nIC4gIlxuIjsKKyAgICAgICAgJHBlbSAuPSBcY2h1bmtfc3BsaXQoXGJhc2U2NF9lbmNvZGUoJGRlciksIDY0LCAiXG4iKTsKKyAgICAgICAgJHBlbSAuPSAnLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tJyAuICJcbiI7CisgICAgICAgIHJldHVybiAkcGVtOworICAgIH0KKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIHB1YmxpYyBrZXkgaW4gVTJGIGZvcm1hdAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQdWJsaWNLZXlVMkYoKSB7CisgICAgICAgIGlmICghKCR0aGlzLT5fYXR0ZXN0ZWRDcmVkZW50aWFsRGF0YSBpbnN0YW5jZW9mIFxzdGRDbGFzcykpIHsKKyAgICAgICAgICAgIHRocm93ICBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2NyZWRlbnRpYWwgZGF0YSBub3QgaW5jbHVkZWQgaW4gYXV0aGVudGljYXRvciBkYXRhJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJceDA0IiAuIC8vIEVDQyB1bmNvbXByZXNzZWQKKyAgICAgICAgICAgICAgICAkdGhpcy0+X2F0dGVzdGVkQ3JlZGVudGlhbERhdGEtPmNyZWRlbnRpYWxQdWJsaWNLZXktPnggLgorICAgICAgICAgICAgICAgICR0aGlzLT5fYXR0ZXN0ZWRDcmVkZW50aWFsRGF0YS0+Y3JlZGVudGlhbFB1YmxpY0tleS0+eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiByZXR1cm5zIHRoZSBTSEEyNTYgaGFzaCBvZiB0aGUgcmVseWluZyBwYXJ0eSBpZCAoPWhvc3RuYW1lKQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJwSWRIYXNoKCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPl9ycElkSGFzaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiByZXR1cm5zIHRoZSBzaWduIGNvdW50ZXIKKyAgICAgKiBAcmV0dXJuIGludAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTaWduQ291bnQoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X3NpZ25Db3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiByZXR1cm5zIHRydWUgaWYgdGhlIHVzZXIgaXMgcHJlc2VudAorICAgICAqIEByZXR1cm4gYm9vbGVhbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyUHJlc2VudCgpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fZmxhZ3MtPnVzZXJQcmVzZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGUgdXNlciBpcyB2ZXJpZmllZAorICAgICAqIEByZXR1cm4gYm9vbGVhbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyVmVyaWZpZWQoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X2ZsYWdzLT51c2VyVmVyaWZpZWQ7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQUklWQVRFCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgREVSIGVuY29kZWQgRUMyIGtleQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RWMyRGVyKCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPl9kZXJfc2VxdWVuY2UoCisgICAgICAgICAgICAkdGhpcy0+X2Rlcl9zZXF1ZW5jZSgKKyAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlcl9vaWQoIlx4MkFceDg2XHg0OFx4Q0VceDNEXHgwMlx4MDEiKSAuIC8vIE9JRCAxLjIuODQwLjEwMDQ1LjIuMSBlY1B1YmxpY0tleQorICAgICAgICAgICAgICAgICR0aGlzLT5fZGVyX29pZCgiXHgyQVx4ODZceDQ4XHhDRVx4M0RceDAzXHgwMVx4MDciKSAgLy8gMS4yLjg0MC4xMDA0NS4zLjEuNyBwcmltZTI1NnYxCisgICAgICAgICAgICApIC4KKyAgICAgICAgICAgICR0aGlzLT5fZGVyX2JpdFN0cmluZygkdGhpcy0+Z2V0UHVibGljS2V5VTJGKCkpCisgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBERVIgZW5jb2RlZCBSU0Ega2V5CisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRSc2FEZXIoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X2Rlcl9zZXF1ZW5jZSgKKyAgICAgICAgICAgICR0aGlzLT5fZGVyX3NlcXVlbmNlKAorICAgICAgICAgICAgICAgICR0aGlzLT5fZGVyX29pZCgiXHgyQVx4ODZceDQ4XHg4Nlx4RjdceDBEXHgwMVx4MDFceDAxIikgLiAvLyBPSUQgMS4yLjg0MC4xMTM1NDkuMS4xLjEgcnNhRW5jcnlwdGlvbgorICAgICAgICAgICAgICAgICR0aGlzLT5fZGVyX251bGxWYWx1ZSgpCisgICAgICAgICAgICApIC4KKyAgICAgICAgICAgICR0aGlzLT5fZGVyX2JpdFN0cmluZygKKyAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlcl9zZXF1ZW5jZSgKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9kZXJfdW5zaWduZWRJbnRlZ2VyKCR0aGlzLT5fYXR0ZXN0ZWRDcmVkZW50aWFsRGF0YS0+Y3JlZGVudGlhbFB1YmxpY0tleS0+bikgLgorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2Rlcl91bnNpZ25lZEludGVnZXIoJHRoaXMtPl9hdHRlc3RlZENyZWRlbnRpYWxEYXRhLT5jcmVkZW50aWFsUHVibGljS2V5LT5lKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiByZWFkcyB0aGUgZmxhZ3MgZnJvbSBmbGFnIGJ5dGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRiaW5GbGFnCisgICAgICogQHJldHVybiBcc3RkQ2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIF9yZWFkRmxhZ3MoJGJpbkZsYWcpIHsKKyAgICAgICAgJGZsYWdzID0gbmV3IFxzdGRDbGFzcygpOworCisgICAgICAgICRmbGFncy0+Yml0XzAgPSAhISgkYmluRmxhZyAmIDEpOworICAgICAgICAkZmxhZ3MtPmJpdF8xID0gISEoJGJpbkZsYWcgJiAyKTsKKyAgICAgICAgJGZsYWdzLT5iaXRfMiA9ICEhKCRiaW5GbGFnICYgNCk7CisgICAgICAgICRmbGFncy0+Yml0XzMgPSAhISgkYmluRmxhZyAmIDgpOworICAgICAgICAkZmxhZ3MtPmJpdF80ID0gISEoJGJpbkZsYWcgJiAxNik7CisgICAgICAgICRmbGFncy0+Yml0XzUgPSAhISgkYmluRmxhZyAmIDMyKTsKKyAgICAgICAgJGZsYWdzLT5iaXRfNiA9ICEhKCRiaW5GbGFnICYgNjQpOworICAgICAgICAkZmxhZ3MtPmJpdF83ID0gISEoJGJpbkZsYWcgJiAxMjgpOworCisgICAgICAgIC8vIG5hbWVkIGZsYWdzCisgICAgICAgICRmbGFncy0+dXNlclByZXNlbnQgPSAkZmxhZ3MtPmJpdF8wOworICAgICAgICAkZmxhZ3MtPnVzZXJWZXJpZmllZCA9ICRmbGFncy0+Yml0XzI7CisgICAgICAgICRmbGFncy0+YXR0ZXN0ZWREYXRhSW5jbHVkZWQgPSAkZmxhZ3MtPmJpdF82OworICAgICAgICAkZmxhZ3MtPmV4dGVuc2lvbkRhdGFJbmNsdWRlZCA9ICRmbGFncy0+Yml0Xzc7CisgICAgICAgIHJldHVybiAkZmxhZ3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmVhZCBhdHRlc3RlZCBkYXRhCisgICAgICogQHBhcmFtIHN0cmluZyAkYmluYXJ5CisgICAgICogQHBhcmFtIGludCAkZW5kT2Zmc2V0CisgICAgICogQHJldHVybiBcc3RkQ2xhc3MKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVhZEF0dGVzdERhdGEoJGJpbmFyeSwgJiRlbmRPZmZzZXQpIHsKKyAgICAgICAgJGF0dGVzdGVkQ0RhdGEgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgIGlmIChcc3RybGVuKCRiaW5hcnkpIDw9IDU1KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0F0dGVzdGVkIGRhdGEgc2hvdWxkIGJlIHByZXNlbnQgYnV0IGlzIG1pc3NpbmcnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRoZSBBQUdVSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3IKKyAgICAgICAgJGF0dGVzdGVkQ0RhdGEtPmFhZ3VpZCA9IFxzdWJzdHIoJGJpbmFyeSwgMzcsIDE2KTsKKworICAgICAgICAvL0J5dGUgbGVuZ3RoIEwgb2YgQ3JlZGVudGlhbCBJRCwgMTYtYml0IHVuc2lnbmVkIGJpZy1lbmRpYW4gaW50ZWdlci4KKyAgICAgICAgJGxlbmd0aCA9IFx1bnBhY2soJ25sZW5ndGgnLCBcc3Vic3RyKCRiaW5hcnksIDUzLCAyKSlbJ2xlbmd0aCddOworICAgICAgICAkYXR0ZXN0ZWRDRGF0YS0+Y3JlZGVudGlhbElkID0gXHN1YnN0cigkYmluYXJ5LCA1NSwgJGxlbmd0aCk7CisKKyAgICAgICAgLy8gc2V0IGVuZCBvZmZzZXQKKyAgICAgICAgJGVuZE9mZnNldCA9IDU1ICsgJGxlbmd0aDsKKworICAgICAgICAvLyBleHRyYWN0IHB1YmxpYyBrZXkKKyAgICAgICAgJGF0dGVzdGVkQ0RhdGEtPmNyZWRlbnRpYWxQdWJsaWNLZXkgPSAkdGhpcy0+X3JlYWRDcmVkZW50aWFsUHVibGljS2V5KCRiaW5hcnksIDU1ICsgJGxlbmd0aCwgJGVuZE9mZnNldCk7CisKKyAgICAgICAgcmV0dXJuICRhdHRlc3RlZENEYXRhOworICAgIH0KKworICAgIC8qKgorICAgICAqIHJlYWRzIENPU0Uga2V5LWVuY29kZWQgZWxsaXB0aWMgY3VydmUgcHVibGljIGtleSBpbiBFQzIgZm9ybWF0CisgICAgICogQHBhcmFtIHN0cmluZyAkYmluYXJ5CisgICAgICogQHBhcmFtIGludCAkZW5kT2Zmc2V0CisgICAgICogQHJldHVybiBcc3RkQ2xhc3MKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVhZENyZWRlbnRpYWxQdWJsaWNLZXkoJGJpbmFyeSwgJG9mZnNldCwgJiRlbmRPZmZzZXQpIHsKKyAgICAgICAgJGVuYyA9IENib3JEZWNvZGVyOjpkZWNvZGVJblBsYWNlKCRiaW5hcnksICRvZmZzZXQsICRlbmRPZmZzZXQpOworCisgICAgICAgIC8vIENPU0Uga2V5LWVuY29kZWQgZWxsaXB0aWMgY3VydmUgcHVibGljIGtleSBpbiBFQzIgZm9ybWF0CisgICAgICAgICRjcmVkUEtleSA9IG5ldyBcc3RkQ2xhc3MoKTsKKyAgICAgICAgJGNyZWRQS2V5LT5rdHkgPSAkZW5jW3NlbGY6OiRfQ09TRV9LVFldOworICAgICAgICAkY3JlZFBLZXktPmFsZyA9ICRlbmNbc2VsZjo6JF9DT1NFX0FMR107CisKKyAgICAgICAgc3dpdGNoICgkY3JlZFBLZXktPmFsZykgeworICAgICAgICAgICAgY2FzZSBzZWxmOjokX0VDMl9FUzI1NjogJHRoaXMtPl9yZWFkQ3JlZGVudGlhbFB1YmxpY0tleUVTMjU2KCRjcmVkUEtleSwgJGVuYyk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBzZWxmOjokX1JTQV9SUzI1NjogJHRoaXMtPl9yZWFkQ3JlZGVudGlhbFB1YmxpY0tleVJTMjU2KCRjcmVkUEtleSwgJGVuYyk7IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRjcmVkUEtleTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBleHRyYWN0IEVTMjU2IGluZm9ybWF0aW9ucyBmcm9tIGNvc2UKKyAgICAgKiBAcGFyYW0gXHN0ZENsYXNzICRjcmVkUEtleQorICAgICAqIEBwYXJhbSBcc3RkQ2xhc3MgJGVuYworICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIF9yZWFkQ3JlZGVudGlhbFB1YmxpY0tleUVTMjU2KCYkY3JlZFBLZXksICRlbmMpIHsKKyAgICAgICAgJGNyZWRQS2V5LT5jcnYgPSAkZW5jW3NlbGY6OiRfQ09TRV9DUlZdOworICAgICAgICAkY3JlZFBLZXktPnggICA9ICRlbmNbc2VsZjo6JF9DT1NFX1hdIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlciA/ICRlbmNbc2VsZjo6JF9DT1NFX1hdLT5nZXRCaW5hcnlTdHJpbmcoKSA6IG51bGw7CisgICAgICAgICRjcmVkUEtleS0+eSAgID0gJGVuY1tzZWxmOjokX0NPU0VfWV0gaW5zdGFuY2VvZiBCeXRlQnVmZmVyID8gJGVuY1tzZWxmOjokX0NPU0VfWV0tPmdldEJpbmFyeVN0cmluZygpIDogbnVsbDsKKyAgICAgICAgdW5zZXQgKCRlbmMpOworCisgICAgICAgIC8vIFZhbGlkYXRpb24KKyAgICAgICAgaWYgKCRjcmVkUEtleS0+a3R5ICE9PSBzZWxmOjokX0VDMl9UWVBFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3B1YmxpYyBrZXkgbm90IGluIEVDMiBmb3JtYXQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkY3JlZFBLZXktPmFsZyAhPT0gc2VsZjo6JF9FQzJfRVMyNTYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignc2lnbmF0dXJlIGFsZ29yaXRobSBub3QgRVMyNTYnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkY3JlZFBLZXktPmNydiAhPT0gc2VsZjo6JF9FQzJfUDI1NikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdjdXJ2ZSBub3QgUC0yNTYnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChcc3RybGVuKCRjcmVkUEtleS0+eCkgIT09IDMyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0ludmFsaWQgWC1jb29yZGluYXRlJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfUFVCTElDX0tFWSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoXHN0cmxlbigkY3JlZFBLZXktPnkpICE9PSAzMikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdJbnZhbGlkIFktY29vcmRpbmF0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1BVQkxJQ19LRVkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogZXh0cmFjdCBSUzI1NiBpbmZvcm1hdGlvbnMgZnJvbSBDT1NFCisgICAgICogQHBhcmFtIFxzdGRDbGFzcyAkY3JlZFBLZXkKKyAgICAgKiBAcGFyYW0gXHN0ZENsYXNzICRlbmMKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVhZENyZWRlbnRpYWxQdWJsaWNLZXlSUzI1NigmJGNyZWRQS2V5LCAkZW5jKSB7CisgICAgICAgICRjcmVkUEtleS0+biA9ICRlbmNbc2VsZjo6JF9DT1NFX05dIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlciA/ICRlbmNbc2VsZjo6JF9DT1NFX05dLT5nZXRCaW5hcnlTdHJpbmcoKSA6IG51bGw7CisgICAgICAgICRjcmVkUEtleS0+ZSA9ICRlbmNbc2VsZjo6JF9DT1NFX0VdIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlciA/ICRlbmNbc2VsZjo6JF9DT1NFX0VdLT5nZXRCaW5hcnlTdHJpbmcoKSA6IG51bGw7CisgICAgICAgIHVuc2V0ICgkZW5jKTsKKworICAgICAgICAvLyBWYWxpZGF0aW9uCisgICAgICAgIGlmICgkY3JlZFBLZXktPmt0eSAhPT0gc2VsZjo6JF9SU0FfVFlQRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdwdWJsaWMga2V5IG5vdCBpbiBSU0EgZm9ybWF0JywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfUFVCTElDX0tFWSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoJGNyZWRQS2V5LT5hbGcgIT09IHNlbGY6OiRfUlNBX1JTMjU2KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3NpZ25hdHVyZSBhbGdvcml0aG0gbm90IEVTMjU2JywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfUFVCTElDX0tFWSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoXHN0cmxlbigkY3JlZFBLZXktPm4pICE9PSAyNTYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignSW52YWxpZCBSU0EgbW9kdWx1cycsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1BVQkxJQ19LRVkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFxzdHJsZW4oJGNyZWRQS2V5LT5lKSAhPT0gMykgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdJbnZhbGlkIFJTQSBwdWJsaWMgZXhwb25lbnQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgICogcmVhZHMgY2JvciBlbmNvZGVkIGV4dGVuc2lvbiBkYXRhLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGJpbmFyeQorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBfcmVhZEV4dGVuc2lvbkRhdGEoJGJpbmFyeSkgeworICAgICAgICAkZXh0ID0gQ2JvckRlY29kZXI6OmRlY29kZSgkYmluYXJ5KTsKKyAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGV4dCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBleHRlbnNpb24gZGF0YScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRleHQ7CisgICAgfQorCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBERVIgZnVuY3Rpb25zCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIF9kZXJfbGVuZ3RoKCRsZW4pIHsKKyAgICAgICAgaWYgKCRsZW4gPCAxMjgpIHsKKyAgICAgICAgICAgIHJldHVybiBcY2hyKCRsZW4pOworICAgICAgICB9CisgICAgICAgICRsZW5CeXRlcyA9ICcnOworICAgICAgICB3aGlsZSAoJGxlbiA+IDApIHsKKyAgICAgICAgICAgICRsZW5CeXRlcyA9IFxjaHIoJGxlbiAlIDI1NikgLiAkbGVuQnl0ZXM7CisgICAgICAgICAgICAkbGVuID0gXGludGRpdigkbGVuLCAyNTYpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBcY2hyKDB4ODAgfCBcc3RybGVuKCRsZW5CeXRlcykpIC4gJGxlbkJ5dGVzOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gX2Rlcl9zZXF1ZW5jZSgkY29udGVudHMpIHsKKyAgICAgICAgcmV0dXJuICJceDMwIiAuICR0aGlzLT5fZGVyX2xlbmd0aChcc3RybGVuKCRjb250ZW50cykpIC4gJGNvbnRlbnRzOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gX2Rlcl9vaWQoJGVuY29kZWQpIHsKKyAgICAgICAgcmV0dXJuICJceDA2IiAuICR0aGlzLT5fZGVyX2xlbmd0aChcc3RybGVuKCRlbmNvZGVkKSkgLiAkZW5jb2RlZDsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIF9kZXJfYml0U3RyaW5nKCRieXRlcykgeworICAgICAgICByZXR1cm4gIlx4MDMiIC4gJHRoaXMtPl9kZXJfbGVuZ3RoKFxzdHJsZW4oJGJ5dGVzKSArIDEpIC4gIlx4MDAiIC4gJGJ5dGVzOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gX2Rlcl9udWxsVmFsdWUoKSB7CisgICAgICAgIHJldHVybiAiXHgwNVx4MDAiOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gX2Rlcl91bnNpZ25lZEludGVnZXIoJGJ5dGVzKSB7CisgICAgICAgICRsZW4gPSBcc3RybGVuKCRieXRlcyk7CisKKyAgICAgICAgLy8gUmVtb3ZlIGxlYWRpbmcgemVybyBieXRlcworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAoJGxlbiAtIDEpOyAkaSsrKSB7CisgICAgICAgICAgICBpZiAoXG9yZCgkYnl0ZXNbJGldKSAhPT0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgkaSAhPT0gMCkgeworICAgICAgICAgICAgJGJ5dGVzID0gXHN1YnN0cigkYnl0ZXMsICRpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGlzIHNldCwgcHJlZml4IHdpdGggYW5vdGhlciB6ZXJvIHRvIHByZXZlbnQgaXQgYmVpbmcgc2VlbiBhcyBuZWdhdGl2ZSBudW1iZXIKKyAgICAgICAgaWYgKChcb3JkKCRieXRlc1swXSkgJiAweDgwKSAhPT0gMCkgeworICAgICAgICAgICAgJGJ5dGVzID0gIlx4MDAiIC4gJGJ5dGVzOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICJceDAyIiAuICR0aGlzLT5fZGVyX2xlbmd0aChcc3RybGVuKCRieXRlcykpIC4gJGJ5dGVzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9BbmRyb2lkS2V5LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9BbmRyb2lkS2V5LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTZmMWFiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vRm9ybWF0L0FuZHJvaWRLZXkucGhwCkBAIC0wLDAgKzEsOTUgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBXZWJBdXRoblxBdHRlc3RhdGlvblxGb3JtYXQ7Cit1c2UgV2ViQXV0aG5cV2ViQXV0aG5FeGNlcHRpb247Cit1c2UgV2ViQXV0aG5cQmluYXJ5XEJ5dGVCdWZmZXI7CisKK2NsYXNzIEFuZHJvaWRLZXkgZXh0ZW5kcyBGb3JtYXRCYXNlIHsKKyAgICBwcml2YXRlICRfYWxnOworICAgIHByaXZhdGUgJF9zaWduYXR1cmU7CisgICAgcHJpdmF0ZSAkX3g1YzsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkQXR0ZXN0aW9uT2JqZWN0LCBcV2ViQXV0aG5cQXR0ZXN0YXRpb25cQXV0aGVudGljYXRvckRhdGEgJGF1dGhlbnRpY2F0b3JEYXRhKSB7CisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJEF0dGVzdGlvbk9iamVjdCwgJGF1dGhlbnRpY2F0b3JEYXRhKTsKKworICAgICAgICAvLyBjaGVjayB1MmYgZGF0YQorICAgICAgICAkYXR0U3RtdCA9ICR0aGlzLT5fYXR0ZXN0YXRpb25PYmplY3RbJ2F0dFN0bXQnXTsKKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCdhbGcnLCAkYXR0U3RtdCkgfHwgJHRoaXMtPl9nZXRDb3NlQWxnb3JpdGhtKCRhdHRTdG10WydhbGcnXSkgPT09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbigndW5zdXBwb3J0ZWQgYWxnOiAnIC4gJGF0dFN0bXRbJ2FsZyddLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ3NpZycsICRhdHRTdG10KSB8fCAhXGlzX29iamVjdCgkYXR0U3RtdFsnc2lnJ10pIHx8ICEoJGF0dFN0bXRbJ3NpZyddIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignbm8gc2lnbmF0dXJlIGZvdW5kJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCd4NWMnLCAkYXR0U3RtdCkgfHwgIVxpc19hcnJheSgkYXR0U3RtdFsneDVjJ10pIHx8IFxjb3VudCgkYXR0U3RtdFsneDVjJ10pIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHg1YyBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFcaXNfb2JqZWN0KCRhdHRTdG10Wyd4NWMnXVswXSkgfHwgISgkYXR0U3RtdFsneDVjJ11bMF0gaW5zdGFuY2VvZiBCeXRlQnVmZmVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHg1YyBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPl9hbGcgPSAkYXR0U3RtdFsnYWxnJ107CisgICAgICAgICR0aGlzLT5fc2lnbmF0dXJlID0gJGF0dFN0bXRbJ3NpZyddLT5nZXRCaW5hcnlTdHJpbmcoKTsKKyAgICAgICAgJHRoaXMtPl94NWMgPSAkYXR0U3RtdFsneDVjJ11bMF0tPmdldEJpbmFyeVN0cmluZygpOworCisgICAgICAgIGlmIChjb3VudCgkYXR0U3RtdFsneDVjJ10pID4gMSkgeworICAgICAgICAgICAgZm9yICgkaT0xOyAkaTxjb3VudCgkYXR0U3RtdFsneDVjJ10pOyAkaSsrKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPl94NWNfY2hhaW5bXSA9ICRhdHRTdG10Wyd4NWMnXVskaV0tPmdldEJpbmFyeVN0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdW5zZXQgKCRpKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoKKyAgICAgKiByZXR1cm5zIHRoZSBrZXkgY2VydGlmaWNhdGUgaW4gUEVNIGZvcm1hdAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENlcnRpZmljYXRlUGVtKCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPl9jcmVhdGVDZXJ0aWZpY2F0ZVBlbSgkdGhpcy0+X3g1Yyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xpZW50RGF0YUhhc2gKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVBdHRlc3RhdGlvbigkY2xpZW50RGF0YUhhc2gpIHsKKyAgICAgICAgJHB1YmxpY0tleSA9IFxvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYygkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSk7CisKKyAgICAgICAgaWYgKCRwdWJsaWNLZXkgPT09IGZhbHNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgcHVibGljIGtleTogJyAuIFxvcGVuc3NsX2Vycm9yX3N0cmluZygpLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHNpZyBpcyBhIHZhbGlkIHNpZ25hdHVyZSBvdmVyIHRoZSBjb25jYXRlbmF0aW9uIG9mIGF1dGhlbnRpY2F0b3JEYXRhIGFuZCBjbGllbnREYXRhSGFzaAorICAgICAgICAvLyB1c2luZyB0aGUgYXR0ZXN0YXRpb24gcHVibGljIGtleSBpbiBhdHRlc3RuQ2VydCB3aXRoIHRoZSBhbGdvcml0aG0gc3BlY2lmaWVkIGluIGFsZy4KKyAgICAgICAgJGRhdGFUb1ZlcmlmeSA9ICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEtPmdldEJpbmFyeSgpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49ICRjbGllbnREYXRhSGFzaDsKKworICAgICAgICAkY29zZUFsZ29yaXRobSA9ICR0aGlzLT5fZ2V0Q29zZUFsZ29yaXRobSgkdGhpcy0+X2FsZyk7CisKKyAgICAgICAgLy8gY2hlY2sgY2VydGlmaWNhdGUKKyAgICAgICAgcmV0dXJuIFxvcGVuc3NsX3ZlcmlmeSgkZGF0YVRvVmVyaWZ5LCAkdGhpcy0+X3NpZ25hdHVyZSwgJHB1YmxpY0tleSwgJGNvc2VBbGdvcml0aG0tPm9wZW5zc2wpID09PSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIHZhbGlkYXRlcyB0aGUgY2VydGlmaWNhdGUgYWdhaW5zdCByb290IGNlcnRpZmljYXRlcworICAgICAqIEBwYXJhbSBhcnJheSAkcm9vdENhcworICAgICAqIEByZXR1cm4gYm9vbGVhbgorICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVSb290Q2VydGlmaWNhdGUoJHJvb3RDYXMpIHsKKyAgICAgICAgJGNoYWluQyA9ICR0aGlzLT5fY3JlYXRlWDVjQ2hhaW5GaWxlKCk7CisgICAgICAgIGlmICgkY2hhaW5DKSB7CisgICAgICAgICAgICAkcm9vdENhc1tdID0gJGNoYWluQzsKKyAgICAgICAgfQorCisgICAgICAgICR2ID0gXG9wZW5zc2xfeDUwOV9jaGVja3B1cnBvc2UoJHRoaXMtPmdldENlcnRpZmljYXRlUGVtKCksIC0xLCAkcm9vdENhcyk7CisgICAgICAgIGlmICgkdiA9PT0gLTEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignZXJyb3Igb24gdmFsaWRhdGluZyByb290IGNlcnRpZmljYXRlOiAnIC4gXG9wZW5zc2xfZXJyb3Jfc3RyaW5nKCksIFdlYkF1dGhuRXhjZXB0aW9uOjpDRVJUSUZJQ0FURV9OT1RfVFJVU1RFRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICR2OworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vRm9ybWF0L0FuZHJvaWRTYWZldHlOZXQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vRm9ybWF0L0FuZHJvaWRTYWZldHlOZXQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwZjQyMTIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvQW5kcm9pZFNhZmV0eU5ldC5waHAKQEAgLTAsMCArMSwxNDAgQEAKKzw/cGhwCisKKworbmFtZXNwYWNlIFdlYkF1dGhuXEF0dGVzdGF0aW9uXEZvcm1hdDsKK3VzZSBXZWJBdXRoblxXZWJBdXRobkV4Y2VwdGlvbjsKK3VzZSBXZWJBdXRoblxCaW5hcnlcQnl0ZUJ1ZmZlcjsKKworY2xhc3MgQW5kcm9pZFNhZmV0eU5ldCBleHRlbmRzIEZvcm1hdEJhc2UgeworICAgIHByaXZhdGUgJF9zaWduYXR1cmU7CisgICAgcHJpdmF0ZSAkX3NpZ25lZFZhbHVlOworICAgIHByaXZhdGUgJF94NWM7CisgICAgcHJpdmF0ZSAkX3BheWxvYWQ7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJEF0dGVzdGlvbk9iamVjdCwgXFdlYkF1dGhuXEF0dGVzdGF0aW9uXEF1dGhlbnRpY2F0b3JEYXRhICRhdXRoZW50aWNhdG9yRGF0YSkgeworICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRBdHRlc3Rpb25PYmplY3QsICRhdXRoZW50aWNhdG9yRGF0YSk7CisKKyAgICAgICAgLy8gY2hlY2sgZGF0YQorICAgICAgICAkYXR0U3RtdCA9ICR0aGlzLT5fYXR0ZXN0YXRpb25PYmplY3RbJ2F0dFN0bXQnXTsKKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCd2ZXInLCAkYXR0U3RtdCkgfHwgISRhdHRTdG10Wyd2ZXInXSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIEFuZHJvaWQgU2FmZXR5IE5ldCBGb3JtYXQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ3Jlc3BvbnNlJywgJGF0dFN0bXQpIHx8ICEoJGF0dFN0bXRbJ3Jlc3BvbnNlJ10gaW5zdGFuY2VvZiBCeXRlQnVmZmVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIEFuZHJvaWQgU2FmZXR5IE5ldCBGb3JtYXQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgICRyZXNwb25zZSA9ICRhdHRTdG10WydyZXNwb25zZSddLT5nZXRCaW5hcnlTdHJpbmcoKTsKKworICAgICAgICAvLyBSZXNwb25zZSBpcyBhIEpXUyBbUkZDNzUxNV0gb2JqZWN0IGluIENvbXBhY3QgU2VyaWFsaXphdGlvbi4KKyAgICAgICAgLy8gSldTcyBoYXZlIHRocmVlIHNlZ21lbnRzIHNlcGFyYXRlZCBieSB0d28gcGVyaW9kICgnLicpIGNoYXJhY3RlcnMKKyAgICAgICAgJHBhcnRzID0gXGV4cGxvZGUoJy4nLCAkcmVzcG9uc2UpOworICAgICAgICB1bnNldCAoJHJlc3BvbnNlKTsKKyAgICAgICAgaWYgKFxjb3VudCgkcGFydHMpICE9PSAzKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgSldTIGRhdGEnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgICRoZWFkZXIgPSAkdGhpcy0+X2Jhc2U2NHVybF9kZWNvZGUoJHBhcnRzWzBdKTsKKyAgICAgICAgJHBheWxvYWQgPSAkdGhpcy0+X2Jhc2U2NHVybF9kZWNvZGUoJHBhcnRzWzFdKTsKKyAgICAgICAgJHRoaXMtPl9zaWduYXR1cmUgPSAkdGhpcy0+X2Jhc2U2NHVybF9kZWNvZGUoJHBhcnRzWzJdKTsKKyAgICAgICAgJHRoaXMtPl9zaWduZWRWYWx1ZSA9ICRwYXJ0c1swXSAuICcuJyAuICRwYXJ0c1sxXTsKKyAgICAgICAgdW5zZXQgKCRwYXJ0cyk7CisKKyAgICAgICAgJGhlYWRlciA9IFxqc29uX2RlY29kZSgkaGVhZGVyKTsKKyAgICAgICAgJHBheWxvYWQgPSBcanNvbl9kZWNvZGUoJHBheWxvYWQpOworCisgICAgICAgIGlmICghKCRoZWFkZXIgaW5zdGFuY2VvZiBcc3RkQ2xhc3MpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgSldTIGhlYWRlcicsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisgICAgICAgIGlmICghKCRwYXlsb2FkIGluc3RhbmNlb2YgXHN0ZENsYXNzKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIEpXUyBwYXlsb2FkJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRoZWFkZXItPng1YyB8fCAhaXNfYXJyYXkoJGhlYWRlci0+eDVjKSB8fCBjb3VudCgkaGVhZGVyLT54NWMpID09PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ05vIFguNTA5IHNpZ25hdHVyZSBpbiBKV1MgSGVhZGVyJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbGdvcml0aG0KKyAgICAgICAgaWYgKCFcaW5fYXJyYXkoJGhlYWRlci0+YWxnLCBhcnJheSgnUlMyNTYnLCAnRVMyNTYnKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBKV1MgYWxnb3JpdGhtICcgLiAkaGVhZGVyLT5hbGcsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPl94NWMgPSBcYmFzZTY0X2RlY29kZSgkaGVhZGVyLT54NWNbMF0pOworICAgICAgICAkdGhpcy0+X3BheWxvYWQgPSAkcGF5bG9hZDsKKworICAgICAgICBpZiAoY291bnQoJGhlYWRlci0+eDVjKSA+IDEpIHsKKyAgICAgICAgICAgIGZvciAoJGk9MTsgJGk8Y291bnQoJGhlYWRlci0+eDVjKTsgJGkrKykgeworICAgICAgICAgICAgICAgICR0aGlzLT5feDVjX2NoYWluW10gPSBcYmFzZTY0X2RlY29kZSgkaGVhZGVyLT54NWNbJGldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVuc2V0ICgkaSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qCisgICAgICogcmV0dXJucyB0aGUga2V5IGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZVBlbSgpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fY3JlYXRlQ2VydGlmaWNhdGVQZW0oJHRoaXMtPl94NWMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNsaWVudERhdGFIYXNoCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlQXR0ZXN0YXRpb24oJGNsaWVudERhdGFIYXNoKSB7CisgICAgICAgICRwdWJsaWNLZXkgPSBcb3BlbnNzbF9wa2V5X2dldF9wdWJsaWMoJHRoaXMtPmdldENlcnRpZmljYXRlUGVtKCkpOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBub25jZSBpbiB0aGUgcmVzcG9uc2UgaXMgaWRlbnRpY2FsIHRvIHRoZSBCYXNlNjQgZW5jb2RpbmcKKyAgICAgICAgLy8gb2YgdGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhdXRoZW50aWNhdG9yRGF0YSBhbmQgY2xpZW50RGF0YUhhc2guCisgICAgICAgIGlmICghJHRoaXMtPl9wYXlsb2FkLT5ub25jZSB8fCAkdGhpcy0+X3BheWxvYWQtPm5vbmNlICE9PSBcYmFzZTY0X2VuY29kZShcaGFzaCgnU0hBMjU2JywgJHRoaXMtPl9hdXRoZW50aWNhdG9yRGF0YS0+Z2V0QmluYXJ5KCkgLiAkY2xpZW50RGF0YUhhc2gsIHRydWUpKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIG5vbmNlIGluIEpXUyBwYXlsb2FkJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBWZXJpZnkgdGhhdCBhdHRlc3RhdGlvbkNlcnQgaXMgaXNzdWVkIHRvIHRoZSBob3N0bmFtZSAiYXR0ZXN0LmFuZHJvaWQuY29tIgorICAgICAgICAkY2VydEluZm8gPSBcb3BlbnNzbF94NTA5X3BhcnNlKCR0aGlzLT5nZXRDZXJ0aWZpY2F0ZVBlbSgpKTsKKyAgICAgICAgaWYgKCFcaXNfYXJyYXkoJGNlcnRJbmZvKSB8fCAhJGNlcnRJbmZvWydzdWJqZWN0J10gfHwgJGNlcnRJbmZvWydzdWJqZWN0J11bJ0NOJ10gIT09ICdhdHRlc3QuYW5kcm9pZC5jb20nKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgY2VydGlmaWNhdGUgQ04gaW4gSldTICgnIC4gJGNlcnRJbmZvWydzdWJqZWN0J11bJ0NOJ10uICcpJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY3RzUHJvZmlsZU1hdGNoIGF0dHJpYnV0ZSBpbiB0aGUgcGF5bG9hZCBvZiByZXNwb25zZSBpcyB0cnVlLgorICAgICAgICBpZiAoISR0aGlzLT5fcGF5bG9hZC0+Y3RzUHJvZmlsZU1hdGNoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgY3RzUHJvZmlsZU1hdGNoIGluIHBheWxvYWQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIGNlcnRpZmljYXRlCisgICAgICAgIHJldHVybiBcb3BlbnNzbF92ZXJpZnkoJHRoaXMtPl9zaWduZWRWYWx1ZSwgJHRoaXMtPl9zaWduYXR1cmUsICRwdWJsaWNLZXksIE9QRU5TU0xfQUxHT19TSEEyNTYpID09PSAxOworICAgIH0KKworCisgICAgLyoqCisgICAgICogdmFsaWRhdGVzIHRoZSBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IHJvb3QgY2VydGlmaWNhdGVzCisgICAgICogQHBhcmFtIGFycmF5ICRyb290Q2FzCisgICAgICogQHJldHVybiBib29sZWFuCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZVJvb3RDZXJ0aWZpY2F0ZSgkcm9vdENhcykgeworICAgICAgICAkY2hhaW5DID0gJHRoaXMtPl9jcmVhdGVYNWNDaGFpbkZpbGUoKTsKKyAgICAgICAgaWYgKCRjaGFpbkMpIHsKKyAgICAgICAgICAgICRyb290Q2FzW10gPSAkY2hhaW5DOworICAgICAgICB9CisKKyAgICAgICAgJHYgPSBcb3BlbnNzbF94NTA5X2NoZWNrcHVycG9zZSgkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSwgLTEsICRyb290Q2FzKTsKKyAgICAgICAgaWYgKCR2ID09PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdlcnJvciBvbiB2YWxpZGF0aW5nIHJvb3QgY2VydGlmaWNhdGU6ICcgLiBcb3BlbnNzbF9lcnJvcl9zdHJpbmcoKSwgV2ViQXV0aG5FeGNlcHRpb246OkNFUlRJRklDQVRFX05PVF9UUlVTVEVEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHY7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBkZWNvZGUgYmFzZTY0IHVybAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGRhdGEKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gX2Jhc2U2NHVybF9kZWNvZGUoJGRhdGEpIHsKKyAgICAgICAgcmV0dXJuIFxiYXNlNjRfZGVjb2RlKFxzdHJ0cigkZGF0YSwgJy1fJywgJysvJykgLiBcc3RyX3JlcGVhdCgnPScsIDMgLSAoMyArIFxzdHJsZW4oJGRhdGEpKSAlIDQpKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9BcHBsZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvQXBwbGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNTYzZWQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvQXBwbGUucGhwCkBAIC0wLDAgKzEsMTM4IEBACis8P3BocAorCisKK25hbWVzcGFjZSBXZWJBdXRoblxBdHRlc3RhdGlvblxGb3JtYXQ7Cit1c2UgV2ViQXV0aG5cV2ViQXV0aG5FeGNlcHRpb247Cit1c2UgV2ViQXV0aG5cQmluYXJ5XEJ5dGVCdWZmZXI7CisKK2NsYXNzIEFwcGxlIGV4dGVuZHMgRm9ybWF0QmFzZSB7CisgICAgcHJpdmF0ZSAkX3g1YzsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkQXR0ZXN0aW9uT2JqZWN0LCBcV2ViQXV0aG5cQXR0ZXN0YXRpb25cQXV0aGVudGljYXRvckRhdGEgJGF1dGhlbnRpY2F0b3JEYXRhKSB7CisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJEF0dGVzdGlvbk9iamVjdCwgJGF1dGhlbnRpY2F0b3JEYXRhKTsKKworICAgICAgICAvLyBjaGVjayBwYWNrZWQgZGF0YQorICAgICAgICAkYXR0U3RtdCA9ICR0aGlzLT5fYXR0ZXN0YXRpb25PYmplY3RbJ2F0dFN0bXQnXTsKKworCisgICAgICAgIC8vIGNlcnRpZmljYXRlIGZvciB2YWxpZGF0aW9uCisgICAgICAgIGlmIChcYXJyYXlfa2V5X2V4aXN0cygneDVjJywgJGF0dFN0bXQpICYmIFxpc19hcnJheSgkYXR0U3RtdFsneDVjJ10pICYmIFxjb3VudCgkYXR0U3RtdFsneDVjJ10pID4gMCkgeworCisgICAgICAgICAgICAvLyBUaGUgYXR0ZXN0YXRpb24gY2VydGlmaWNhdGUgYXR0ZXN0bkNlcnQgTVVTVCBiZSB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkKKyAgICAgICAgICAgICRhdHRlc3RuQ2VydCA9IGFycmF5X3NoaWZ0KCRhdHRTdG10Wyd4NWMnXSk7CisKKyAgICAgICAgICAgIGlmICghKCRhdHRlc3RuQ2VydCBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHg1YyBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkdGhpcy0+X3g1YyA9ICRhdHRlc3RuQ2VydC0+Z2V0QmluYXJ5U3RyaW5nKCk7CisKKyAgICAgICAgICAgIC8vIGNlcnRpZmljYXRlIGNoYWluCisgICAgICAgICAgICBmb3JlYWNoICgkYXR0U3RtdFsneDVjJ10gYXMgJGNoYWluKSB7CisgICAgICAgICAgICAgICAgaWYgKCRjaGFpbiBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl94NWNfY2hhaW5bXSA9ICRjaGFpbi0+Z2V0QmluYXJ5U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIEFwcGxlIGF0dGVzdGF0aW9uIHN0YXRlbWVudDogbWlzc2luZyB4NWMnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoKKyAgICAgKiByZXR1cm5zIHRoZSBrZXkgY2VydGlmaWNhdGUgaW4gUEVNIGZvcm1hdAorICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2VydGlmaWNhdGVQZW0oKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X2NyZWF0ZUNlcnRpZmljYXRlUGVtKCR0aGlzLT5feDVjKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSGFzaAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZUF0dGVzdGF0aW9uKCRjbGllbnREYXRhSGFzaCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0ZU92ZXJYNWMoJGNsaWVudERhdGFIYXNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB2YWxpZGF0ZXMgdGhlIGNlcnRpZmljYXRlIGFnYWluc3Qgcm9vdCBjZXJ0aWZpY2F0ZXMKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHJvb3RDYXMKKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4KKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlUm9vdENlcnRpZmljYXRlKCRyb290Q2FzKSB7CisgICAgICAgICRjaGFpbkMgPSAkdGhpcy0+X2NyZWF0ZVg1Y0NoYWluRmlsZSgpOworICAgICAgICBpZiAoJGNoYWluQykgeworICAgICAgICAgICAgJHJvb3RDYXNbXSA9ICRjaGFpbkM7CisgICAgICAgIH0KKworICAgICAgICAkdiA9IFxvcGVuc3NsX3g1MDlfY2hlY2twdXJwb3NlKCR0aGlzLT5nZXRDZXJ0aWZpY2F0ZVBlbSgpLCAtMSwgJHJvb3RDYXMpOworICAgICAgICBpZiAoJHYgPT09IC0xKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2Vycm9yIG9uIHZhbGlkYXRpbmcgcm9vdCBjZXJ0aWZpY2F0ZTogJyAuIFxvcGVuc3NsX2Vycm9yX3N0cmluZygpLCBXZWJBdXRobkV4Y2VwdGlvbjo6Q0VSVElGSUNBVEVfTk9UX1RSVVNURUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkdjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB2YWxpZGF0ZSBpZiB4NWMgaXMgcHJlc2VudAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNsaWVudERhdGFIYXNoCisgICAgICogQHJldHVybiBib29sCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfdmFsaWRhdGVPdmVyWDVjKCRjbGllbnREYXRhSGFzaCkgeworICAgICAgICAkcHVibGljS2V5ID0gXG9wZW5zc2xfcGtleV9nZXRfcHVibGljKCR0aGlzLT5nZXRDZXJ0aWZpY2F0ZVBlbSgpKTsKKworICAgICAgICBpZiAoJHB1YmxpY0tleSA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBwdWJsaWMga2V5OiAnIC4gXG9wZW5zc2xfZXJyb3Jfc3RyaW5nKCksIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1BVQkxJQ19LRVkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29uY2F0ZW5hdGUgYXV0aGVudGljYXRvckRhdGEgYW5kIGNsaWVudERhdGFIYXNoIHRvIGZvcm0gbm9uY2VUb0hhc2guCisgICAgICAgICRub25jZVRvSGFzaCA9ICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEtPmdldEJpbmFyeSgpOworICAgICAgICAkbm9uY2VUb0hhc2ggLj0gJGNsaWVudERhdGFIYXNoOworCisgICAgICAgIC8vIFBlcmZvcm0gU0hBLTI1NiBoYXNoIG9mIG5vbmNlVG9IYXNoIHRvIHByb2R1Y2Ugbm9uY2UKKyAgICAgICAgJG5vbmNlID0gaGFzaCgnU0hBMjU2JywgJG5vbmNlVG9IYXNoLCB0cnVlKTsKKworICAgICAgICAkY3JlZENlcnQgPSBvcGVuc3NsX3g1MDlfcmVhZCgkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSk7CisgICAgICAgIGlmICgkY3JlZENlcnQgPT09IGZhbHNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgeDVjIGNlcnRpZmljYXRlOiAnIC4gXG9wZW5zc2xfZXJyb3Jfc3RyaW5nKCksIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgJGtleURhdGEgPSBvcGVuc3NsX3BrZXlfZ2V0X2RldGFpbHMob3BlbnNzbF9wa2V5X2dldF9wdWJsaWMoJGNyZWRDZXJ0KSk7CisgICAgICAgICRrZXkgPSBpc19hcnJheSgka2V5RGF0YSkgJiYgYXJyYXlfa2V5X2V4aXN0cygna2V5JywgJGtleURhdGEpID8gJGtleURhdGFbJ2tleSddIDogbnVsbDsKKworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IG5vbmNlIGVxdWFscyB0aGUgdmFsdWUgb2YgdGhlIGV4dGVuc2lvbiB3aXRoIE9JRCAoIDEuMi44NDAuMTEzNjM1LjEwMC44LjIgKSBpbiBjcmVkQ2VydC4KKyAgICAgICAgJHBhcnNlZENyZWRDZXJ0ID0gb3BlbnNzbF94NTA5X3BhcnNlKCRjcmVkQ2VydCk7CisgICAgICAgICRub25jZUV4dGVuc2lvbiA9IGlzc2V0KCRwYXJzZWRDcmVkQ2VydFsnZXh0ZW5zaW9ucyddWycxLjIuODQwLjExMzYzNS4xMDAuOC4yJ10pID8gJHBhcnNlZENyZWRDZXJ0WydleHRlbnNpb25zJ11bJzEuMi44NDAuMTEzNjM1LjEwMC44LjInXSA6ICcnOworCisgICAgICAgIC8vIG5vbmNlIHBhZGRlZCBieSBBU04uMSBzdHJpbmc6IDMwIDI0IEExIDIyIDA0IDIwCisgICAgICAgIC8vIDMwICAgICDigJQgdHlwZSB0YWcgaW5kaWNhdGluZyBzZXF1ZW5jZQorICAgICAgICAvLyAyNCAgICAg4oCUIDM2IGJ5dGUgZm9sbG93aW5nCisgICAgICAgIC8vICAgQTEgICDigJQgRW51bWVyYXRlZCBbMV0KKyAgICAgICAgLy8gICAyMiAgIOKAlCAzNCBieXRlIGZvbGxvd2luZworICAgICAgICAvLyAgICAgMDQg4oCUIHR5cGUgdGFnIGluZGljYXRpbmcgb2N0ZXQgc3RyaW5nCisgICAgICAgIC8vICAgICAyMCDigJQgMzIgYnl0ZSBmb2xsb3dpbmcKKworICAgICAgICAkYXNuMVBhZGRpbmcgPSAiXHgzMFx4MjRceEExXHgyMlx4MDRceDIwIjsKKyAgICAgICAgaWYgKHN1YnN0cigkbm9uY2VFeHRlbnNpb24sIDAsIHN0cmxlbigkYXNuMVBhZGRpbmcpKSA9PT0gJGFzbjFQYWRkaW5nKSB7CisgICAgICAgICAgICAkbm9uY2VFeHRlbnNpb24gPSBzdWJzdHIoJG5vbmNlRXh0ZW5zaW9uLCBzdHJsZW4oJGFzbjFQYWRkaW5nKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoJG5vbmNlRXh0ZW5zaW9uICE9PSAkbm9uY2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignbm9uY2UgZG9lc25cJ3QgZXF1YWwgdGhlIHZhbHVlIG9mIHRoZSBleHRlbnNpb24gd2l0aCBPSUQgMS4yLjg0MC4xMTM2MzUuMTAwLjguMicsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNyZWRlbnRpYWwgcHVibGljIGtleSBlcXVhbHMgdGhlIFN1YmplY3QgUHVibGljIEtleSBvZiBjcmVkQ2VydC4KKyAgICAgICAgJGF1dGhLZXlEYXRhID0gb3BlbnNzbF9wa2V5X2dldF9kZXRhaWxzKG9wZW5zc2xfcGtleV9nZXRfcHVibGljKCR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEtPmdldFB1YmxpY0tleVBlbSgpKSk7CisgICAgICAgICRhdXRoS2V5ID0gaXNfYXJyYXkoJGF1dGhLZXlEYXRhKSAmJiBhcnJheV9rZXlfZXhpc3RzKCdrZXknLCAkYXV0aEtleURhdGEpID8gJGF1dGhLZXlEYXRhWydrZXknXSA6IG51bGw7CisKKyAgICAgICAgaWYgKCRrZXkgPT09IG51bGwgfHwgJGtleSAhPT0gJGF1dGhLZXkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignY3JlZGVudGlhbCBwdWJsaWMga2V5IGRvZXNuXCd0IGVxdWFsIHRoZSBTdWJqZWN0IFB1YmxpYyBLZXkgb2YgY3JlZENlcnQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworfQorCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvRm9ybWF0QmFzZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvRm9ybWF0QmFzZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkwNDhiOQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9Gb3JtYXRCYXNlLnBocApAQCAtMCwwICsxLDE4MyBAQAorPD9waHAKKworCituYW1lc3BhY2UgV2ViQXV0aG5cQXR0ZXN0YXRpb25cRm9ybWF0OwordXNlIFdlYkF1dGhuXFdlYkF1dGhuRXhjZXB0aW9uOworCisKK2Fic3RyYWN0IGNsYXNzIEZvcm1hdEJhc2UgeworICAgIHByb3RlY3RlZCAkX2F0dGVzdGF0aW9uT2JqZWN0ID0gbnVsbDsKKyAgICBwcm90ZWN0ZWQgJF9hdXRoZW50aWNhdG9yRGF0YSA9IG51bGw7CisgICAgcHJvdGVjdGVkICRfeDVjX2NoYWluID0gYXJyYXkoKTsKKyAgICBwcm90ZWN0ZWQgJF94NWNfdGVtcEZpbGUgPSBudWxsOworCisgICAgLyoqCisgICAgICoKKyAgICAgKiBAcGFyYW0gQXJyYXkgJEF0dGVzdGlvbk9iamVjdAorICAgICAqIEBwYXJhbSBcV2ViQXV0aG5cQXR0ZXN0YXRpb25cQXV0aGVudGljYXRvckRhdGEgJGF1dGhlbnRpY2F0b3JEYXRhCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRBdHRlc3Rpb25PYmplY3QsIFxXZWJBdXRoblxBdHRlc3RhdGlvblxBdXRoZW50aWNhdG9yRGF0YSAkYXV0aGVudGljYXRvckRhdGEpIHsKKyAgICAgICAgJHRoaXMtPl9hdHRlc3RhdGlvbk9iamVjdCA9ICRBdHRlc3Rpb25PYmplY3Q7CisgICAgICAgICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEgPSAkYXV0aGVudGljYXRvckRhdGE7CisgICAgfQorCisgICAgLyoqCisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19kZXN0cnVjdCgpIHsKKyAgICAgICAgLy8gZGVsZXRlIFguNTA5IGNoYWluIGNlcnRpZmljYXRlIGZpbGUgYWZ0ZXIgdXNlCisgICAgICAgIGlmIChcaXNfZmlsZSgkdGhpcy0+X3g1Y190ZW1wRmlsZSkpIHsKKyAgICAgICAgICAgIFx1bmxpbmsoJHRoaXMtPl94NWNfdGVtcEZpbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgY2VydGlmaWNhdGUgY2hhaW4gaW4gUEVNIGZvcm1hdAorICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2VydGlmaWNhdGVDaGFpbigpIHsKKyAgICAgICAgaWYgKFxpc19maWxlKCR0aGlzLT5feDVjX3RlbXBGaWxlKSkgeworICAgICAgICAgICAgcmV0dXJuIFxmaWxlX2dldF9jb250ZW50cygkdGhpcy0+X3g1Y190ZW1wRmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUga2V5IFguNTA5IGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZVBlbSgpIHsKKyAgICAgICAgLy8gbmVlZCB0byBiZSBvdmVyd3JpdHRlbgorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBjaGVja3MgdmFsaWRpdHkgb2YgdGhlIHNpZ25hdHVyZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNsaWVudERhdGFIYXNoCisgICAgICogQHJldHVybiBib29sCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZUF0dGVzdGF0aW9uKCRjbGllbnREYXRhSGFzaCkgeworICAgICAgICAvLyBuZWVkIHRvIGJlIG92ZXJ3cml0dGVuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB2YWxpZGF0ZXMgdGhlIGNlcnRpZmljYXRlIGFnYWluc3Qgcm9vdCBjZXJ0aWZpY2F0ZXMKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHJvb3RDYXMKKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4KKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlUm9vdENlcnRpZmljYXRlKCRyb290Q2FzKSB7CisgICAgICAgIC8vIG5lZWQgdG8gYmUgb3ZlcndyaXR0ZW4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworCisgICAgLyoqCisgICAgICogY3JlYXRlIGEgUEVNIGVuY29kZWQgY2VydGlmaWNhdGUgd2l0aCBYLjUwOSBiaW5hcnkgZGF0YQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHg1YworICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9jcmVhdGVDZXJ0aWZpY2F0ZVBlbSgkeDVjKSB7CisgICAgICAgICRwZW0gPSAnLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tJyAuICJcbiI7CisgICAgICAgICRwZW0gLj0gXGNodW5rX3NwbGl0KFxiYXNlNjRfZW5jb2RlKCR4NWMpLCA2NCwgIlxuIik7CisgICAgICAgICRwZW0gLj0gJy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0nIC4gIlxuIjsKKyAgICAgICAgcmV0dXJuICRwZW07CisgICAgfQorCisgICAgLyoqCisgICAgICogY3JlYXRlcyBhIFBFTSBlbmNvZGVkIGNoYWluIGZpbGUKKyAgICAgKiBAcmV0dXJuIHR5cGUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2NyZWF0ZVg1Y0NoYWluRmlsZSgpIHsKKyAgICAgICAgJGNvbnRlbnQgPSAnJzsKKyAgICAgICAgaWYgKFxpc19hcnJheSgkdGhpcy0+X3g1Y19jaGFpbikgJiYgXGNvdW50KCR0aGlzLT5feDVjX2NoYWluKSA+IDApIHsKKyAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5feDVjX2NoYWluIGFzICR4NWMpIHsKKyAgICAgICAgICAgICAgICAkY2VydEluZm8gPSBcb3BlbnNzbF94NTA5X3BhcnNlKCR0aGlzLT5fY3JlYXRlQ2VydGlmaWNhdGVQZW0oJHg1YykpOworICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIGlzc3VlciA9IHN1YmplY3QgKHNlbGYgc2lnbmVkKQorICAgICAgICAgICAgICAgIGlmIChcaXNfYXJyYXkoJGNlcnRJbmZvKSAmJiBcaXNfYXJyYXkoJGNlcnRJbmZvWydpc3N1ZXInXSkgJiYgXGlzX2FycmF5KCRjZXJ0SW5mb1snc3ViamVjdCddKSkgeworICAgICAgICAgICAgICAgICAgICAkc2VsZlNpZ25lZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRjZXJ0SW5mb1snaXNzdWVyJ10gYXMgJGsgPT4gJHYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY2VydEluZm9bJ3N1YmplY3QnXVska10gIT09ICR2KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGZTaWduZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmICghJHNlbGZTaWduZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50IC49ICJcbiIgLiAkdGhpcy0+X2NyZWF0ZUNlcnRpZmljYXRlUGVtKCR4NWMpIC4gIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgkY29udGVudCkgeworICAgICAgICAgICAgJHRoaXMtPl94NWNfdGVtcEZpbGUgPSBcc3lzX2dldF90ZW1wX2RpcigpIC4gJy94NWNfY2hhaW5fJyAuIFxiYXNlX2NvbnZlcnQoXHJhbmQoKSwgMTAsIDM2KSAuICcucGVtJzsKKyAgICAgICAgICAgIGlmIChcZmlsZV9wdXRfY29udGVudHMoJHRoaXMtPl94NWNfdGVtcEZpbGUsICRjb250ZW50KSAhPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPl94NWNfdGVtcEZpbGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIG5hbWUgYW5kIG9wZW5zc2wga2V5IGZvciBwcm92aWRlZCBjb3NlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gaW50ICRjb3NlTnVtYmVyCisgICAgICogQHJldHVybiBcc3RkQ2xhc3N8bnVsbAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfZ2V0Q29zZUFsZ29yaXRobSgkY29zZU51bWJlcikgeworICAgICAgICAvLyBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9jb3NlL2Nvc2UueGh0bWwjYWxnb3JpdGhtcworICAgICAgICAkY29zZUFsZ29yaXRobXMgPSBhcnJheSgKKyAgICAgICAgICAgIGFycmF5KAorICAgICAgICAgICAgICAgICdoYXNoJyA9PiAnU0hBMScsCisgICAgICAgICAgICAgICAgJ29wZW5zc2wnID0+IE9QRU5TU0xfQUxHT19TSEExLAorICAgICAgICAgICAgICAgICdjb3NlJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgLTY1NTM1ICAvLyBSUzEKKyAgICAgICAgICAgICAgICApKSwKKworICAgICAgICAgICAgYXJyYXkoCisgICAgICAgICAgICAgICAgJ2hhc2gnID0+ICdTSEEyNTYnLAorICAgICAgICAgICAgICAgICdvcGVuc3NsJyA9PiBPUEVOU1NMX0FMR09fU0hBMjU2LAorICAgICAgICAgICAgICAgICdjb3NlJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgLTI1NywgLy8gUlMyNTYKKyAgICAgICAgICAgICAgICAgICAgLTM3LCAgLy8gUFMyNTYKKyAgICAgICAgICAgICAgICAgICAgLTcsICAgLy8gRVMyNTYKKyAgICAgICAgICAgICAgICAgICAgNSAgICAgLy8gSE1BQzI1NgorICAgICAgICAgICAgICAgICkpLAorCisgICAgICAgICAgICBhcnJheSgKKyAgICAgICAgICAgICAgICAnaGFzaCcgPT4gJ1NIQTM4NCcsCisgICAgICAgICAgICAgICAgJ29wZW5zc2wnID0+IE9QRU5TU0xfQUxHT19TSEEzODQsCisgICAgICAgICAgICAgICAgJ2Nvc2UnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAtMjU4LCAvLyBSUzM4NAorICAgICAgICAgICAgICAgICAgICAtMzgsICAvLyBQUzM4NAorICAgICAgICAgICAgICAgICAgICAtMzUsICAvLyBFUzM4NAorICAgICAgICAgICAgICAgICAgICA2ICAgICAvLyBITUFDMzg0CisgICAgICAgICAgICAgICAgKSksCisKKyAgICAgICAgICAgIGFycmF5KAorICAgICAgICAgICAgICAgICdoYXNoJyA9PiAnU0hBNTEyJywKKyAgICAgICAgICAgICAgICAnb3BlbnNzbCcgPT4gT1BFTlNTTF9BTEdPX1NIQTUxMiwKKyAgICAgICAgICAgICAgICAnY29zZScgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgICAgIC0yNTksIC8vIFJTNTEyCisgICAgICAgICAgICAgICAgICAgIC0zOSwgIC8vIFBTNTEyCisgICAgICAgICAgICAgICAgICAgIC0zNiwgIC8vIEVTNTEyCisgICAgICAgICAgICAgICAgICAgIDcgICAgIC8vIEhNQUM1MTIKKyAgICAgICAgICAgICAgICApKQorICAgICAgICApOworCisgICAgICAgIGZvcmVhY2ggKCRjb3NlQWxnb3JpdGhtcyBhcyAkY29zZUFsZ29yaXRobSkgeworICAgICAgICAgICAgaWYgKFxpbl9hcnJheSgkY29zZU51bWJlciwgJGNvc2VBbGdvcml0aG1bJ2Nvc2UnXSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICAkcmV0dXJuID0gbmV3IFxzdGRDbGFzcygpOworICAgICAgICAgICAgICAgICRyZXR1cm4tPmhhc2ggPSAkY29zZUFsZ29yaXRobVsnaGFzaCddOworICAgICAgICAgICAgICAgICRyZXR1cm4tPm9wZW5zc2wgPSAkY29zZUFsZ29yaXRobVsnb3BlbnNzbCddOworICAgICAgICAgICAgICAgIHJldHVybiAkcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vRm9ybWF0L05vbmUucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vRm9ybWF0L05vbmUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NjRjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvTm9uZS5waHAKQEAgLTAsMCArMSwzOSBAQAorPD9waHAKKworCituYW1lc3BhY2UgV2ViQXV0aG5cQXR0ZXN0YXRpb25cRm9ybWF0OwordXNlIFdlYkF1dGhuXFdlYkF1dGhuRXhjZXB0aW9uOworCitjbGFzcyBOb25lIGV4dGVuZHMgRm9ybWF0QmFzZSB7CisKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkQXR0ZXN0aW9uT2JqZWN0LCBcV2ViQXV0aG5cQXR0ZXN0YXRpb25cQXV0aGVudGljYXRvckRhdGEgJGF1dGhlbnRpY2F0b3JEYXRhKSB7CisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJEF0dGVzdGlvbk9iamVjdCwgJGF1dGhlbnRpY2F0b3JEYXRhKTsKKyAgICB9CisKKworICAgIC8qCisgICAgICogcmV0dXJucyB0aGUga2V5IGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZVBlbSgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xpZW50RGF0YUhhc2gKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVBdHRlc3RhdGlvbigkY2xpZW50RGF0YUhhc2gpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogdmFsaWRhdGVzIHRoZSBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IHJvb3QgY2VydGlmaWNhdGVzCisgICAgICogQHBhcmFtIGFycmF5ICRyb290Q2FzCisgICAgICogQHJldHVybiBib29sZWFuCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZVJvb3RDZXJ0aWZpY2F0ZSgkcm9vdENhcykgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvUGFja2VkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9QYWNrZWQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5OTY0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvUGFja2VkLnBocApAQCAtMCwwICsxLDEzOCBAQAorPD9waHAKKworCituYW1lc3BhY2UgV2ViQXV0aG5cQXR0ZXN0YXRpb25cRm9ybWF0OwordXNlIFdlYkF1dGhuXFdlYkF1dGhuRXhjZXB0aW9uOwordXNlIFdlYkF1dGhuXEJpbmFyeVxCeXRlQnVmZmVyOworCitjbGFzcyBQYWNrZWQgZXh0ZW5kcyBGb3JtYXRCYXNlIHsKKyAgICBwcml2YXRlICRfYWxnOworICAgIHByaXZhdGUgJF9zaWduYXR1cmU7CisgICAgcHJpdmF0ZSAkX3g1YzsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkQXR0ZXN0aW9uT2JqZWN0LCBcV2ViQXV0aG5cQXR0ZXN0YXRpb25cQXV0aGVudGljYXRvckRhdGEgJGF1dGhlbnRpY2F0b3JEYXRhKSB7CisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJEF0dGVzdGlvbk9iamVjdCwgJGF1dGhlbnRpY2F0b3JEYXRhKTsKKworICAgICAgICAvLyBjaGVjayBwYWNrZWQgZGF0YQorICAgICAgICAkYXR0U3RtdCA9ICR0aGlzLT5fYXR0ZXN0YXRpb25PYmplY3RbJ2F0dFN0bXQnXTsKKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCdhbGcnLCAkYXR0U3RtdCkgfHwgJHRoaXMtPl9nZXRDb3NlQWxnb3JpdGhtKCRhdHRTdG10WydhbGcnXSkgPT09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbigndW5zdXBwb3J0ZWQgYWxnOiAnIC4gJGF0dFN0bXRbJ2FsZyddLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ3NpZycsICRhdHRTdG10KSB8fCAhXGlzX29iamVjdCgkYXR0U3RtdFsnc2lnJ10pIHx8ICEoJGF0dFN0bXRbJ3NpZyddIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignbm8gc2lnbmF0dXJlIGZvdW5kJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+X2FsZyA9ICRhdHRTdG10WydhbGcnXTsKKyAgICAgICAgJHRoaXMtPl9zaWduYXR1cmUgPSAkYXR0U3RtdFsnc2lnJ10tPmdldEJpbmFyeVN0cmluZygpOworCisgICAgICAgIC8vIGNlcnRpZmljYXRlIGZvciB2YWxpZGF0aW9uCisgICAgICAgIGlmIChcYXJyYXlfa2V5X2V4aXN0cygneDVjJywgJGF0dFN0bXQpICYmIFxpc19hcnJheSgkYXR0U3RtdFsneDVjJ10pICYmIFxjb3VudCgkYXR0U3RtdFsneDVjJ10pID4gMCkgeworCisgICAgICAgICAgICAvLyBUaGUgYXR0ZXN0YXRpb24gY2VydGlmaWNhdGUgYXR0ZXN0bkNlcnQgTVVTVCBiZSB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkKKyAgICAgICAgICAgICRhdHRlc3RuQ2VydCA9IGFycmF5X3NoaWZ0KCRhdHRTdG10Wyd4NWMnXSk7CisKKyAgICAgICAgICAgIGlmICghKCRhdHRlc3RuQ2VydCBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHg1YyBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkdGhpcy0+X3g1YyA9ICRhdHRlc3RuQ2VydC0+Z2V0QmluYXJ5U3RyaW5nKCk7CisKKyAgICAgICAgICAgIC8vIGNlcnRpZmljYXRlIGNoYWluCisgICAgICAgICAgICBmb3JlYWNoICgkYXR0U3RtdFsneDVjJ10gYXMgJGNoYWluKSB7CisgICAgICAgICAgICAgICAgaWYgKCRjaGFpbiBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl94NWNfY2hhaW5bXSA9ICRjaGFpbi0+Z2V0QmluYXJ5U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKgorICAgICAqIHJldHVybnMgdGhlIGtleSBjZXJ0aWZpY2F0ZSBpbiBQRU0gZm9ybWF0CisgICAgICogQHJldHVybiBzdHJpbmd8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDZXJ0aWZpY2F0ZVBlbSgpIHsKKyAgICAgICAgaWYgKCEkdGhpcy0+X3g1YykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICR0aGlzLT5fY3JlYXRlQ2VydGlmaWNhdGVQZW0oJHRoaXMtPl94NWMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNsaWVudERhdGFIYXNoCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlQXR0ZXN0YXRpb24oJGNsaWVudERhdGFIYXNoKSB7CisgICAgICAgIGlmICgkdGhpcy0+X3g1YykgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdGVPdmVyWDVjKCRjbGllbnREYXRhSGFzaCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPl92YWxpZGF0ZVNlbGZBdHRlc3RhdGlvbigkY2xpZW50RGF0YUhhc2gpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogdmFsaWRhdGVzIHRoZSBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IHJvb3QgY2VydGlmaWNhdGVzCisgICAgICogQHBhcmFtIGFycmF5ICRyb290Q2FzCisgICAgICogQHJldHVybiBib29sZWFuCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZVJvb3RDZXJ0aWZpY2F0ZSgkcm9vdENhcykgeworICAgICAgICBpZiAoISR0aGlzLT5feDVjKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkY2hhaW5DID0gJHRoaXMtPl9jcmVhdGVYNWNDaGFpbkZpbGUoKTsKKyAgICAgICAgaWYgKCRjaGFpbkMpIHsKKyAgICAgICAgICAgICRyb290Q2FzW10gPSAkY2hhaW5DOworICAgICAgICB9CisKKyAgICAgICAgJHYgPSBcb3BlbnNzbF94NTA5X2NoZWNrcHVycG9zZSgkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSwgLTEsICRyb290Q2FzKTsKKyAgICAgICAgaWYgKCR2ID09PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdlcnJvciBvbiB2YWxpZGF0aW5nIHJvb3QgY2VydGlmaWNhdGU6ICcgLiBcb3BlbnNzbF9lcnJvcl9zdHJpbmcoKSwgV2ViQXV0aG5FeGNlcHRpb246OkNFUlRJRklDQVRFX05PVF9UUlVTVEVEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHY7CisgICAgfQorCisgICAgLyoqCisgICAgICogdmFsaWRhdGUgaWYgeDVjIGlzIHByZXNlbnQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSGFzaAorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3ZhbGlkYXRlT3Zlclg1YygkY2xpZW50RGF0YUhhc2gpIHsKKyAgICAgICAgJHB1YmxpY0tleSA9IFxvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYygkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSk7CisKKyAgICAgICAgaWYgKCRwdWJsaWNLZXkgPT09IGZhbHNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgcHVibGljIGtleTogJyAuIFxvcGVuc3NsX2Vycm9yX3N0cmluZygpLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHNpZyBpcyBhIHZhbGlkIHNpZ25hdHVyZSBvdmVyIHRoZSBjb25jYXRlbmF0aW9uIG9mIGF1dGhlbnRpY2F0b3JEYXRhIGFuZCBjbGllbnREYXRhSGFzaAorICAgICAgICAvLyB1c2luZyB0aGUgYXR0ZXN0YXRpb24gcHVibGljIGtleSBpbiBhdHRlc3RuQ2VydCB3aXRoIHRoZSBhbGdvcml0aG0gc3BlY2lmaWVkIGluIGFsZy4KKyAgICAgICAgJGRhdGFUb1ZlcmlmeSA9ICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEtPmdldEJpbmFyeSgpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49ICRjbGllbnREYXRhSGFzaDsKKworICAgICAgICAkY29zZUFsZ29yaXRobSA9ICR0aGlzLT5fZ2V0Q29zZUFsZ29yaXRobSgkdGhpcy0+X2FsZyk7CisKKyAgICAgICAgLy8gY2hlY2sgY2VydGlmaWNhdGUKKyAgICAgICAgcmV0dXJuIFxvcGVuc3NsX3ZlcmlmeSgkZGF0YVRvVmVyaWZ5LCAkdGhpcy0+X3NpZ25hdHVyZSwgJHB1YmxpY0tleSwgJGNvc2VBbGdvcml0aG0tPm9wZW5zc2wpID09PSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIHZhbGlkYXRlIGlmIHNlbGYgYXR0ZXN0YXRpb24gaXMgaW4gdXNlCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xpZW50RGF0YUhhc2gKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3ZhbGlkYXRlU2VsZkF0dGVzdGF0aW9uKCRjbGllbnREYXRhSGFzaCkgeworICAgICAgICAvLyBWZXJpZnkgdGhhdCBzaWcgaXMgYSB2YWxpZCBzaWduYXR1cmUgb3ZlciB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhdXRoZW50aWNhdG9yRGF0YSBhbmQgY2xpZW50RGF0YUhhc2gKKyAgICAgICAgLy8gdXNpbmcgdGhlIGNyZWRlbnRpYWwgcHVibGljIGtleSB3aXRoIGFsZy4KKyAgICAgICAgJGRhdGFUb1ZlcmlmeSA9ICR0aGlzLT5fYXV0aGVudGljYXRvckRhdGEtPmdldEJpbmFyeSgpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49ICRjbGllbnREYXRhSGFzaDsKKworICAgICAgICAkcHVibGljS2V5ID0gJHRoaXMtPl9hdXRoZW50aWNhdG9yRGF0YS0+Z2V0UHVibGljS2V5UGVtKCk7CisKKyAgICAgICAgLy8gY2hlY2sgY2VydGlmaWNhdGUKKyAgICAgICAgcmV0dXJuIFxvcGVuc3NsX3ZlcmlmeSgkZGF0YVRvVmVyaWZ5LCAkdGhpcy0+X3NpZ25hdHVyZSwgJHB1YmxpY0tleSwgT1BFTlNTTF9BTEdPX1NIQTI1NikgPT09IDE7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvVHBtLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9UcG0ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyYmI3NjYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9BdHRlc3RhdGlvbi9Gb3JtYXQvVHBtLnBocApAQCAtMCwwICsxLDE3OSBAQAorPD9waHAKKworCituYW1lc3BhY2UgV2ViQXV0aG5cQXR0ZXN0YXRpb25cRm9ybWF0OwordXNlIFdlYkF1dGhuXFdlYkF1dGhuRXhjZXB0aW9uOwordXNlIFdlYkF1dGhuXEJpbmFyeVxCeXRlQnVmZmVyOworCitjbGFzcyBUcG0gZXh0ZW5kcyBGb3JtYXRCYXNlIHsKKyAgICBwcml2YXRlICRfVFBNX0dFTkVSQVRFRF9WQUxVRSA9ICJceEZGXHg1NFx4NDNceDQ3IjsKKyAgICBwcml2YXRlICRfVFBNX1NUX0FUVEVTVF9DRVJUSUZZID0gIlx4ODBceDE3IjsKKyAgICBwcml2YXRlICRfYWxnOworICAgIHByaXZhdGUgJF9zaWduYXR1cmU7CisgICAgcHJpdmF0ZSAkX3B1YkFyZWE7CisgICAgcHJpdmF0ZSAkX3g1YzsKKworICAgIC8qKgorICAgICAqIEB2YXIgQnl0ZUJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgJF9jZXJ0SW5mbzsKKworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRBdHRlc3Rpb25PYmplY3QsIFxXZWJBdXRoblxBdHRlc3RhdGlvblxBdXRoZW50aWNhdG9yRGF0YSAkYXV0aGVudGljYXRvckRhdGEpIHsKKyAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkQXR0ZXN0aW9uT2JqZWN0LCAkYXV0aGVudGljYXRvckRhdGEpOworCisgICAgICAgIC8vIGNoZWNrIHBhY2tlZCBkYXRhCisgICAgICAgICRhdHRTdG10ID0gJHRoaXMtPl9hdHRlc3RhdGlvbk9iamVjdFsnYXR0U3RtdCddOworCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ3ZlcicsICRhdHRTdG10KSB8fCAkYXR0U3RtdFsndmVyJ10gIT09ICcyLjAnKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgdHBtIHZlcnNpb246ICcgLiAkYXR0U3RtdFsndmVyJ10sIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFcYXJyYXlfa2V5X2V4aXN0cygnYWxnJywgJGF0dFN0bXQpIHx8ICR0aGlzLT5fZ2V0Q29zZUFsZ29yaXRobSgkYXR0U3RtdFsnYWxnJ10pID09PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3Vuc3VwcG9ydGVkIGFsZzogJyAuICRhdHRTdG10WydhbGcnXSwgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCdzaWcnLCAkYXR0U3RtdCkgfHwgIVxpc19vYmplY3QoJGF0dFN0bXRbJ3NpZyddKSB8fCAhKCRhdHRTdG10WydzaWcnXSBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3NpZ25hdHVyZSBub3QgZm91bmQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGFycmF5X2tleV9leGlzdHMoJ2NlcnRJbmZvJywgJGF0dFN0bXQpIHx8ICFcaXNfb2JqZWN0KCRhdHRTdG10WydjZXJ0SW5mbyddKSB8fCAhKCRhdHRTdG10WydjZXJ0SW5mbyddIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignY2VydEluZm8gbm90IGZvdW5kJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCdwdWJBcmVhJywgJGF0dFN0bXQpIHx8ICFcaXNfb2JqZWN0KCRhdHRTdG10WydwdWJBcmVhJ10pIHx8ICEoJGF0dFN0bXRbJ3B1YkFyZWEnXSBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3B1YkFyZWEgbm90IGZvdW5kJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+X2FsZyA9ICRhdHRTdG10WydhbGcnXTsKKyAgICAgICAgJHRoaXMtPl9zaWduYXR1cmUgPSAkYXR0U3RtdFsnc2lnJ10tPmdldEJpbmFyeVN0cmluZygpOworICAgICAgICAkdGhpcy0+X2NlcnRJbmZvID0gJGF0dFN0bXRbJ2NlcnRJbmZvJ107CisgICAgICAgICR0aGlzLT5fcHViQXJlYSA9ICRhdHRTdG10WydwdWJBcmVhJ107CisKKyAgICAgICAgLy8gY2VydGlmaWNhdGUgZm9yIHZhbGlkYXRpb24KKyAgICAgICAgaWYgKFxhcnJheV9rZXlfZXhpc3RzKCd4NWMnLCAkYXR0U3RtdCkgJiYgXGlzX2FycmF5KCRhdHRTdG10Wyd4NWMnXSkgJiYgXGNvdW50KCRhdHRTdG10Wyd4NWMnXSkgPiAwKSB7CisKKyAgICAgICAgICAgIC8vIFRoZSBhdHRlc3RhdGlvbiBjZXJ0aWZpY2F0ZSBhdHRlc3RuQ2VydCBNVVNUIGJlIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBhcnJheQorICAgICAgICAgICAgJGF0dGVzdG5DZXJ0ID0gYXJyYXlfc2hpZnQoJGF0dFN0bXRbJ3g1YyddKTsKKworICAgICAgICAgICAgaWYgKCEoJGF0dGVzdG5DZXJ0IGluc3RhbmNlb2YgQnl0ZUJ1ZmZlcikpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgeDVjIGNlcnRpZmljYXRlJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICR0aGlzLT5feDVjID0gJGF0dGVzdG5DZXJ0LT5nZXRCaW5hcnlTdHJpbmcoKTsKKworICAgICAgICAgICAgLy8gY2VydGlmaWNhdGUgY2hhaW4KKyAgICAgICAgICAgIGZvcmVhY2ggKCRhdHRTdG10Wyd4NWMnXSBhcyAkY2hhaW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoJGNoYWluIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3g1Y19jaGFpbltdID0gJGNoYWluLT5nZXRCaW5hcnlTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignbm8geDVjIGNlcnRpZmljYXRlIGZvdW5kJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qCisgICAgICogcmV0dXJucyB0aGUga2V5IGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHN0cmluZ3xudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENlcnRpZmljYXRlUGVtKCkgeworICAgICAgICBpZiAoISR0aGlzLT5feDVjKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHRoaXMtPl9jcmVhdGVDZXJ0aWZpY2F0ZVBlbSgkdGhpcy0+X3g1Yyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xpZW50RGF0YUhhc2gKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVBdHRlc3RhdGlvbigkY2xpZW50RGF0YUhhc2gpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fdmFsaWRhdGVPdmVyWDVjKCRjbGllbnREYXRhSGFzaCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogdmFsaWRhdGVzIHRoZSBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IHJvb3QgY2VydGlmaWNhdGVzCisgICAgICogQHBhcmFtIGFycmF5ICRyb290Q2FzCisgICAgICogQHJldHVybiBib29sZWFuCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZVJvb3RDZXJ0aWZpY2F0ZSgkcm9vdENhcykgeworICAgICAgICBpZiAoISR0aGlzLT5feDVjKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkY2hhaW5DID0gJHRoaXMtPl9jcmVhdGVYNWNDaGFpbkZpbGUoKTsKKyAgICAgICAgaWYgKCRjaGFpbkMpIHsKKyAgICAgICAgICAgICRyb290Q2FzW10gPSAkY2hhaW5DOworICAgICAgICB9CisKKyAgICAgICAgJHYgPSBcb3BlbnNzbF94NTA5X2NoZWNrcHVycG9zZSgkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSwgLTEsICRyb290Q2FzKTsKKyAgICAgICAgaWYgKCR2ID09PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdlcnJvciBvbiB2YWxpZGF0aW5nIHJvb3QgY2VydGlmaWNhdGU6ICcgLiBcb3BlbnNzbF9lcnJvcl9zdHJpbmcoKSwgV2ViQXV0aG5FeGNlcHRpb246OkNFUlRJRklDQVRFX05PVF9UUlVTVEVEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHY7CisgICAgfQorCisgICAgLyoqCisgICAgICogdmFsaWRhdGUgaWYgeDVjIGlzIHByZXNlbnQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSGFzaAorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX3ZhbGlkYXRlT3Zlclg1YygkY2xpZW50RGF0YUhhc2gpIHsKKyAgICAgICAgJHB1YmxpY0tleSA9IFxvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYygkdGhpcy0+Z2V0Q2VydGlmaWNhdGVQZW0oKSk7CisKKyAgICAgICAgaWYgKCRwdWJsaWNLZXkgPT09IGZhbHNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgcHVibGljIGtleTogJyAuIFxvcGVuc3NsX2Vycm9yX3N0cmluZygpLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9QVUJMSUNfS0VZKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbmNhdGVuYXRlIGF1dGhlbnRpY2F0b3JEYXRhIGFuZCBjbGllbnREYXRhSGFzaCB0byBmb3JtIGF0dFRvQmVTaWduZWQuCisgICAgICAgICRhdHRUb0JlU2lnbmVkID0gJHRoaXMtPl9hdXRoZW50aWNhdG9yRGF0YS0+Z2V0QmluYXJ5KCk7CisgICAgICAgICRhdHRUb0JlU2lnbmVkIC49ICRjbGllbnREYXRhSGFzaDsKKworICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IGNlcnRJbmZvIGlzIHZhbGlkOgorCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IG1hZ2ljIGlzIHNldCB0byBUUE1fR0VORVJBVEVEX1ZBTFVFLgorICAgICAgICBpZiAoJHRoaXMtPl9jZXJ0SW5mby0+Z2V0Qnl0ZXMoMCwgNCkgIT09ICR0aGlzLT5fVFBNX0dFTkVSQVRFRF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCd0cG0gbWFnaWMgbm90IFRQTV9HRU5FUkFURURfVkFMVUUnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHR5cGUgaXMgc2V0IHRvIFRQTV9TVF9BVFRFU1RfQ0VSVElGWS4KKyAgICAgICAgaWYgKCR0aGlzLT5fY2VydEluZm8tPmdldEJ5dGVzKDQsIDIpICE9PSAkdGhpcy0+X1RQTV9TVF9BVFRFU1RfQ0VSVElGWSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCd0cG0gdHlwZSBub3QgVFBNX1NUX0FUVEVTVF9DRVJUSUZZJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAkb2Zmc2V0ID0gNjsKKyAgICAgICAgJHF1YWxpZmllZFNpZ25lciA9ICR0aGlzLT5fdHBtUmVhZExlbmd0aFByZWZpeGVkKCR0aGlzLT5fY2VydEluZm8sICRvZmZzZXQpOworICAgICAgICAkZXh0cmFEYXRhID0gJHRoaXMtPl90cG1SZWFkTGVuZ3RoUHJlZml4ZWQoJHRoaXMtPl9jZXJ0SW5mbywgJG9mZnNldCk7CisgICAgICAgICRjb3NlQWxnID0gJHRoaXMtPl9nZXRDb3NlQWxnb3JpdGhtKCR0aGlzLT5fYWxnKTsKKworICAgICAgICAvLyBWZXJpZnkgdGhhdCBleHRyYURhdGEgaXMgc2V0IHRvIHRoZSBoYXNoIG9mIGF0dFRvQmVTaWduZWQgdXNpbmcgdGhlIGhhc2ggYWxnb3JpdGhtIGVtcGxveWVkIGluICJhbGciLgorICAgICAgICBpZiAoJGV4dHJhRGF0YS0+Z2V0QmluYXJ5U3RyaW5nKCkgIT09IFxoYXNoKCRjb3NlQWxnLT5oYXNoLCAkYXR0VG9CZVNpZ25lZCwgdHJ1ZSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignY2VydEluZm86ZXh0cmFEYXRhIG5vdCBoYXNoIG9mIGF0dFRvQmVTaWduZWQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZlcmlmeSB0aGUgc2lnIGlzIGEgdmFsaWQgc2lnbmF0dXJlIG92ZXIgY2VydEluZm8gdXNpbmcgdGhlIGF0dGVzdGF0aW9uCisgICAgICAgIC8vIHB1YmxpYyBrZXkgaW4gYWlrQ2VydCB3aXRoIHRoZSBhbGdvcml0aG0gc3BlY2lmaWVkIGluIGFsZy4KKyAgICAgICAgcmV0dXJuIFxvcGVuc3NsX3ZlcmlmeSgkdGhpcy0+X2NlcnRJbmZvLT5nZXRCaW5hcnlTdHJpbmcoKSwgJHRoaXMtPl9zaWduYXR1cmUsICRwdWJsaWNLZXksICRjb3NlQWxnLT5vcGVuc3NsKSA9PT0gMTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIHJldHVybnMgbmV4dCBwYXJ0IG9mIEJ5dGVCdWZmZXIKKyAgICAgKiBAcGFyYW0gQnl0ZUJ1ZmZlciAkYnVmZmVyCisgICAgICogQHBhcmFtIGludCAkb2Zmc2V0CisgICAgICogQHJldHVybiBCeXRlQnVmZmVyCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF90cG1SZWFkTGVuZ3RoUHJlZml4ZWQoQnl0ZUJ1ZmZlciAkYnVmZmVyLCAmJG9mZnNldCkgeworICAgICAgICAkbGVuID0gJGJ1ZmZlci0+Z2V0VWludDE2VmFsKCRvZmZzZXQpOworICAgICAgICAkZGF0YSA9ICRidWZmZXItPmdldEJ5dGVzKCRvZmZzZXQgKyAyLCAkbGVuKTsKKyAgICAgICAgJG9mZnNldCArPSAoMiArICRsZW4pOworCisgICAgICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcigkZGF0YSk7CisgICAgfQorCit9CisKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9VMmYucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQXR0ZXN0YXRpb24vRm9ybWF0L1UyZi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjMwYjE1NAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0F0dGVzdGF0aW9uL0Zvcm1hdC9VMmYucGhwCkBAIC0wLDAgKzEsOTMgQEAKKzw/cGhwCisKKworbmFtZXNwYWNlIFdlYkF1dGhuXEF0dGVzdGF0aW9uXEZvcm1hdDsKK3VzZSBXZWJBdXRoblxXZWJBdXRobkV4Y2VwdGlvbjsKK3VzZSBXZWJBdXRoblxCaW5hcnlcQnl0ZUJ1ZmZlcjsKKworY2xhc3MgVTJmIGV4dGVuZHMgRm9ybWF0QmFzZSB7CisgICAgcHJpdmF0ZSAkX2FsZzsKKyAgICBwcml2YXRlICRfc2lnbmF0dXJlOworICAgIHByaXZhdGUgJF94NWM7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJEF0dGVzdGlvbk9iamVjdCwgXFdlYkF1dGhuXEF0dGVzdGF0aW9uXEF1dGhlbnRpY2F0b3JEYXRhICRhdXRoZW50aWNhdG9yRGF0YSkgeworICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRBdHRlc3Rpb25PYmplY3QsICRhdXRoZW50aWNhdG9yRGF0YSk7CisKKyAgICAgICAgLy8gY2hlY2sgdTJmIGRhdGEKKyAgICAgICAgJGF0dFN0bXQgPSAkdGhpcy0+X2F0dGVzdGF0aW9uT2JqZWN0WydhdHRTdG10J107CisKKyAgICAgICAgaWYgKCFcYXJyYXlfa2V5X2V4aXN0cygnYWxnJywgJGF0dFN0bXQpIHx8ICR0aGlzLT5fZ2V0Q29zZUFsZ29yaXRobSgkYXR0U3RtdFsnYWxnJ10pID09PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3Vuc3VwcG9ydGVkIGFsZzogJyAuICRhdHRTdG10WydhbGcnXSwgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVxhcnJheV9rZXlfZXhpc3RzKCdzaWcnLCAkYXR0U3RtdCkgfHwgIVxpc19vYmplY3QoJGF0dFN0bXRbJ3NpZyddKSB8fCAhKCRhdHRTdG10WydzaWcnXSBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ25vIHNpZ25hdHVyZSBmb3VuZCcsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFcYXJyYXlfa2V5X2V4aXN0cygneDVjJywgJGF0dFN0bXQpIHx8ICFcaXNfYXJyYXkoJGF0dFN0bXRbJ3g1YyddKSB8fCBcY291bnQoJGF0dFN0bXRbJ3g1YyddKSAhPT0gMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHg1YyBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFcaXNfb2JqZWN0KCRhdHRTdG10Wyd4NWMnXVswXSkgfHwgISgkYXR0U3RtdFsneDVjJ11bMF0gaW5zdGFuY2VvZiBCeXRlQnVmZmVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHg1YyBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0RBVEEpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPl9hbGcgPSAkYXR0U3RtdFsnYWxnJ107CisgICAgICAgICR0aGlzLT5fc2lnbmF0dXJlID0gJGF0dFN0bXRbJ3NpZyddLT5nZXRCaW5hcnlTdHJpbmcoKTsKKyAgICAgICAgJHRoaXMtPl94NWMgPSAkYXR0U3RtdFsneDVjJ11bMF0tPmdldEJpbmFyeVN0cmluZygpOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiByZXR1cm5zIHRoZSBrZXkgY2VydGlmaWNhdGUgaW4gUEVNIGZvcm1hdAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENlcnRpZmljYXRlUGVtKCkgeworICAgICAgICAkcGVtID0gJy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLScgLiAiXG4iOworICAgICAgICAkcGVtIC49IFxjaHVua19zcGxpdChcYmFzZTY0X2VuY29kZSgkdGhpcy0+X3g1YyksIDY0LCAiXG4iKTsKKyAgICAgICAgJHBlbSAuPSAnLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLScgLiAiXG4iOworICAgICAgICByZXR1cm4gJHBlbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSGFzaAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZUF0dGVzdGF0aW9uKCRjbGllbnREYXRhSGFzaCkgeworICAgICAgICAkcHVibGljS2V5ID0gXG9wZW5zc2xfcGtleV9nZXRfcHVibGljKCR0aGlzLT5nZXRDZXJ0aWZpY2F0ZVBlbSgpKTsKKworICAgICAgICBpZiAoJHB1YmxpY0tleSA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBwdWJsaWMga2V5OiAnIC4gXG9wZW5zc2xfZXJyb3Jfc3RyaW5nKCksIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1BVQkxJQ19LRVkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTGV0IHZlcmlmaWNhdGlvbkRhdGEgYmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgKDB4MDAgfHwgcnBJZEhhc2ggfHwgY2xpZW50RGF0YUhhc2ggfHwgY3JlZGVudGlhbElkIHx8IHB1YmxpY0tleVUyRikKKyAgICAgICAgJGRhdGFUb1ZlcmlmeSA9ICJceDAwIjsKKyAgICAgICAgJGRhdGFUb1ZlcmlmeSAuPSAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhLT5nZXRScElkSGFzaCgpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49ICRjbGllbnREYXRhSGFzaDsKKyAgICAgICAgJGRhdGFUb1ZlcmlmeSAuPSAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhLT5nZXRDcmVkZW50aWFsSWQoKTsKKyAgICAgICAgJGRhdGFUb1ZlcmlmeSAuPSAkdGhpcy0+X2F1dGhlbnRpY2F0b3JEYXRhLT5nZXRQdWJsaWNLZXlVMkYoKTsKKworICAgICAgICAkY29zZUFsZ29yaXRobSA9ICR0aGlzLT5fZ2V0Q29zZUFsZ29yaXRobSgkdGhpcy0+X2FsZyk7CisKKyAgICAgICAgLy8gY2hlY2sgY2VydGlmaWNhdGUKKyAgICAgICAgcmV0dXJuIFxvcGVuc3NsX3ZlcmlmeSgkZGF0YVRvVmVyaWZ5LCAkdGhpcy0+X3NpZ25hdHVyZSwgJHB1YmxpY0tleSwgJGNvc2VBbGdvcml0aG0tPm9wZW5zc2wpID09PSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIHZhbGlkYXRlcyB0aGUgY2VydGlmaWNhdGUgYWdhaW5zdCByb290IGNlcnRpZmljYXRlcworICAgICAqIEBwYXJhbSBhcnJheSAkcm9vdENhcworICAgICAqIEByZXR1cm4gYm9vbGVhbgorICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVSb290Q2VydGlmaWNhdGUoJHJvb3RDYXMpIHsKKyAgICAgICAgJGNoYWluQyA9ICR0aGlzLT5fY3JlYXRlWDVjQ2hhaW5GaWxlKCk7CisgICAgICAgIGlmICgkY2hhaW5DKSB7CisgICAgICAgICAgICAkcm9vdENhc1tdID0gJGNoYWluQzsKKyAgICAgICAgfQorCisgICAgICAgICR2ID0gXG9wZW5zc2xfeDUwOV9jaGVja3B1cnBvc2UoJHRoaXMtPmdldENlcnRpZmljYXRlUGVtKCksIC0xLCAkcm9vdENhcyk7CisgICAgICAgIGlmICgkdiA9PT0gLTEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignZXJyb3Igb24gdmFsaWRhdGluZyByb290IGNlcnRpZmljYXRlOiAnIC4gXG9wZW5zc2xfZXJyb3Jfc3RyaW5nKCksIFdlYkF1dGhuRXhjZXB0aW9uOjpDRVJUSUZJQ0FURV9OT1RfVFJVU1RFRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICR2OworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0JpbmFyeS9CeXRlQnVmZmVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0JpbmFyeS9CeXRlQnVmZmVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBlZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQmluYXJ5L0J5dGVCdWZmZXIucGhwCkBAIC0wLDAgKzEsMjU1IEBACis8P3BocAorCisKK25hbWVzcGFjZSBXZWJBdXRoblxCaW5hcnk7Cit1c2UgV2ViQXV0aG5cV2ViQXV0aG5FeGNlcHRpb247CisKKy8qKgorICogTW9kaWZpZWQgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vbWFkd2l6YXJkLXRob21hcy93ZWJhdXRobi1zZXJ2ZXIvYmxvYi9tYXN0ZXIvc3JjL0Zvcm1hdC9CeXRlQnVmZmVyLnBocAorICogQ29weXJpZ2h0IMKpIDIwMTggVGhvbWFzIEJsZWVrZXIgLSBNSVQgbGljZW5zZWQKKyAqIE1vZGlmaWVkIGJ5IEx1a2FzIEJ1Y2hzCisgKiBUaGFua3MgVGhvbWFzIGZvciB5b3VyIHdvcmshCisgKi8KK2NsYXNzIEJ5dGVCdWZmZXIgaW1wbGVtZW50cyBcSnNvblNlcmlhbGl6YWJsZSwgXFNlcmlhbGl6YWJsZSB7CisgICAgLyoqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyAkdXNlQmFzZTY0VXJsRW5jb2RpbmcgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkX2RhdGE7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHByaXZhdGUgJF9sZW5ndGg7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGJpbmFyeURhdGEpIHsKKyAgICAgICAgJHRoaXMtPl9kYXRhID0gJGJpbmFyeURhdGE7CisgICAgICAgICR0aGlzLT5fbGVuZ3RoID0gXHN0cmxlbigkYmluYXJ5RGF0YSk7CisgICAgfQorCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFBVQkxJQyBTVEFUSUMKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogY3JlYXRlIGEgQnl0ZUJ1ZmZlciBmcm9tIGEgYmFzZTY0IHVybCBlbmNvZGVkIHN0cmluZworICAgICAqIEBwYXJhbSBzdHJpbmcgJGJhc2U2NHVybAorICAgICAqIEByZXR1cm4gXFdlYkF1dGhuXEJpbmFyeVxCeXRlQnVmZmVyCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmcm9tQmFzZTY0VXJsKCRiYXNlNjR1cmwpIHsKKyAgICAgICAgJGJpbiA9IHNlbGY6Ol9iYXNlNjR1cmxfZGVjb2RlKCRiYXNlNjR1cmwpOworICAgICAgICBpZiAoJGJpbiA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignQnl0ZUJ1ZmZlcjogSW52YWxpZCBiYXNlNjQgdXJsIHN0cmluZycsIFdlYkF1dGhuRXhjZXB0aW9uOjpCWVRFQlVGRkVSKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEJ5dGVCdWZmZXIoJGJpbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogY3JlYXRlIGEgQnl0ZUJ1ZmZlciBmcm9tIGEgYmFzZTY0IHVybCBlbmNvZGVkIHN0cmluZworICAgICAqIEBwYXJhbSBzdHJpbmcgJGhleAorICAgICAqIEByZXR1cm4gXFdlYkF1dGhuXEJpbmFyeVxCeXRlQnVmZmVyCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBmcm9tSGV4KCRoZXgpIHsKKyAgICAgICAgJGJpbiA9IFxoZXgyYmluKCRoZXgpOworICAgICAgICBpZiAoJGJpbiA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignQnl0ZUJ1ZmZlcjogSW52YWxpZCBoZXggc3RyaW5nJywgV2ViQXV0aG5FeGNlcHRpb246OkJZVEVCVUZGRVIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcigkYmluKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBjcmVhdGUgYSByYW5kb20gQnl0ZUJ1ZmZlcgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGxlbmd0aAorICAgICAqIEByZXR1cm4gXFdlYkF1dGhuXEJpbmFyeVxCeXRlQnVmZmVyCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByYW5kb21CdWZmZXIoJGxlbmd0aCkgeworICAgICAgICBpZiAoXGZ1bmN0aW9uX2V4aXN0cygncmFuZG9tX2J5dGVzJykpIHsgLy8gPlBIUCA3LjAKKyAgICAgICAgICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcihccmFuZG9tX2J5dGVzKCRsZW5ndGgpKTsKKworICAgICAgICB9IGVsc2UgaWYgKFxmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcycpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEJ5dGVCdWZmZXIoXG9wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcygkbGVuZ3RoKSk7CisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignQnl0ZUJ1ZmZlcjogY2Fubm90IGdlbmVyYXRlIHJhbmRvbSBieXRlcycsIFdlYkF1dGhuRXhjZXB0aW9uOjpCWVRFQlVGRkVSKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUFVCTElDCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRCeXRlcygkb2Zmc2V0LCAkbGVuZ3RoKSB7CisgICAgICAgIGlmICgkb2Zmc2V0IDwgMCB8fCAkbGVuZ3RoIDwgMCB8fCAoJG9mZnNldCArICRsZW5ndGggPiAkdGhpcy0+X2xlbmd0aCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignQnl0ZUJ1ZmZlcjogSW52YWxpZCBvZmZzZXQgb3IgbGVuZ3RoJywgV2ViQXV0aG5FeGNlcHRpb246OkJZVEVCVUZGRVIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBcc3Vic3RyKCR0aGlzLT5fZGF0YSwgJG9mZnNldCwgJGxlbmd0aCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEJ5dGVWYWwoJG9mZnNldCkgeworICAgICAgICBpZiAoJG9mZnNldCA8IDAgfHwgJG9mZnNldCA+PSAkdGhpcy0+X2xlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdCeXRlQnVmZmVyOiBJbnZhbGlkIG9mZnNldCcsIFdlYkF1dGhuRXhjZXB0aW9uOjpCWVRFQlVGRkVSKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gXG9yZChcc3Vic3RyKCR0aGlzLT5fZGF0YSwgJG9mZnNldCwgMSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRMZW5ndGgoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+X2xlbmd0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VWludDE2VmFsKCRvZmZzZXQpIHsKKyAgICAgICAgaWYgKCRvZmZzZXQgPCAwIHx8ICgkb2Zmc2V0ICsgMikgPiAkdGhpcy0+X2xlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdCeXRlQnVmZmVyOiBJbnZhbGlkIG9mZnNldCcsIFdlYkF1dGhuRXhjZXB0aW9uOjpCWVRFQlVGRkVSKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdW5wYWNrKCduJywgJHRoaXMtPl9kYXRhLCAkb2Zmc2V0KVsxXTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VWludDMyVmFsKCRvZmZzZXQpIHsKKyAgICAgICAgaWYgKCRvZmZzZXQgPCAwIHx8ICgkb2Zmc2V0ICsgNCkgPiAkdGhpcy0+X2xlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdCeXRlQnVmZmVyOiBJbnZhbGlkIG9mZnNldCcsIFdlYkF1dGhuRXhjZXB0aW9uOjpCWVRFQlVGRkVSKTsKKyAgICAgICAgfQorICAgICAgICAkdmFsID0gdW5wYWNrKCdOJywgJHRoaXMtPl9kYXRhLCAkb2Zmc2V0KVsxXTsKKworICAgICAgICAvLyBTaWduZWQgaW50ZWdlciBvdmVyZmxvdyBjYXVzZXMgc2lnbmVkIG5lZ2F0aXZlIG51bWJlcnMKKyAgICAgICAgaWYgKCR2YWwgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0J5dGVCdWZmZXI6IFZhbHVlIG91dCBvZiBpbnRlZ2VyIHJhbmdlLicsIFdlYkF1dGhuRXhjZXB0aW9uOjpCWVRFQlVGRkVSKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHZhbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VWludDY0VmFsKCRvZmZzZXQpIHsKKyAgICAgICAgaWYgKFBIUF9JTlRfU0laRSA8IDgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignQnl0ZUJ1ZmZlcjogNjQtYml0IHZhbHVlcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgc3lzdGVtJywgV2ViQXV0aG5FeGNlcHRpb246OkJZVEVCVUZGRVIpOworICAgICAgICB9CisgICAgICAgIGlmICgkb2Zmc2V0IDwgMCB8fCAoJG9mZnNldCArIDgpID4gJHRoaXMtPl9sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignQnl0ZUJ1ZmZlcjogSW52YWxpZCBvZmZzZXQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6QllURUJVRkZFUik7CisgICAgICAgIH0KKyAgICAgICAgJHZhbCA9IHVucGFjaygnSicsICR0aGlzLT5fZGF0YSwgJG9mZnNldClbMV07CisKKyAgICAgICAgLy8gU2lnbmVkIGludGVnZXIgb3ZlcmZsb3cgY2F1c2VzIHNpZ25lZCBuZWdhdGl2ZSBudW1iZXJzCisgICAgICAgIGlmICgkdmFsIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdCeXRlQnVmZmVyOiBWYWx1ZSBvdXQgb2YgaW50ZWdlciByYW5nZS4nLCBXZWJBdXRobkV4Y2VwdGlvbjo6QllURUJVRkZFUik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHZhbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SGFsZkZsb2F0VmFsKCRvZmZzZXQpIHsKKyAgICAgICAgLy9GUk9NIHNwZWMgcHNldWRvIGRlY29kZV9oYWxmKHVuc2lnbmVkIGNoYXIgKmhhbGZwKQorICAgICAgICAkaGFsZiA9ICR0aGlzLT5nZXRVaW50MTZWYWwoJG9mZnNldCk7CisKKyAgICAgICAgJGV4cCA9ICgkaGFsZiA+PiAxMCkgJiAweDFmOworICAgICAgICAkbWFudCA9ICRoYWxmICYgMHgzZmY7CisKKyAgICAgICAgaWYgKCRleHAgPT09IDApIHsKKyAgICAgICAgICAgICR2YWwgPSAkbWFudCAqICgyICoqIC0yNCk7CisgICAgICAgIH0gZWxzZWlmICgkZXhwICE9PSAzMSkgeworICAgICAgICAgICAgJHZhbCA9ICgkbWFudCArIDEwMjQpICogKDIgKiogKCRleHAgLSAyNSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHZhbCA9ICgkbWFudCA9PT0gMCkgPyBJTkYgOiBOQU47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKCRoYWxmICYgMHg4MDAwKSA/IC0kdmFsIDogJHZhbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmxvYXRWYWwoJG9mZnNldCkgeworICAgICAgICBpZiAoJG9mZnNldCA8IDAgfHwgKCRvZmZzZXQgKyA0KSA+ICR0aGlzLT5fbGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0J5dGVCdWZmZXI6IEludmFsaWQgb2Zmc2V0JywgV2ViQXV0aG5FeGNlcHRpb246OkJZVEVCVUZGRVIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB1bnBhY2soJ0cnLCAkdGhpcy0+X2RhdGEsICRvZmZzZXQpWzFdOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREb3VibGVWYWwoJG9mZnNldCkgeworICAgICAgICBpZiAoJG9mZnNldCA8IDAgfHwgKCRvZmZzZXQgKyA4KSA+ICR0aGlzLT5fbGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0J5dGVCdWZmZXI6IEludmFsaWQgb2Zmc2V0JywgV2ViQXV0aG5FeGNlcHRpb246OkJZVEVCVUZGRVIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB1bnBhY2soJ0UnLCAkdGhpcy0+X2RhdGEsICRvZmZzZXQpWzFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEJpbmFyeVN0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fZGF0YTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRidWZmZXIKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZXF1YWxzKCRidWZmZXIpIHsKKyAgICAgICAgcmV0dXJuIGlzX3N0cmluZygkdGhpcy0+X2RhdGEpICYmICR0aGlzLT5fZGF0YSA9PT0gJGJ1ZmZlci0+ZGF0YTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIZXgoKSB7CisgICAgICAgIHJldHVybiBcYmluMmhleCgkdGhpcy0+X2RhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc0VtcHR5KCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPl9sZW5ndGggPT09IDA7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBqc29uU2VyaWFsaXplIGludGVyZmFjZQorICAgICAqIHJldHVybiBiaW5hcnkgZGF0YSBpbiBSRkMgMTM0Mi1MaWtlIHNlcmlhbGl6ZWQgc3RyaW5nCisgICAgICogQHJldHVybiBcc3RkQ2xhc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24ganNvblNlcmlhbGl6ZSgpIHsKKyAgICAgICAgaWYgKEJ5dGVCdWZmZXI6OiR1c2VCYXNlNjRVcmxFbmNvZGluZykgeworICAgICAgICAgICAgcmV0dXJuIHNlbGY6Ol9iYXNlNjR1cmxfZW5jb2RlKCR0aGlzLT5fZGF0YSk7CisKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAnPT9CSU5BUlk/Qj8nIC4gXGJhc2U2NF9lbmNvZGUoJHRoaXMtPl9kYXRhKSAuICc/PSc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXJpYWxpemFibGUtSW50ZXJmYWNlCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2VyaWFsaXplKCkgeworICAgICAgICByZXR1cm4gXHNlcmlhbGl6ZSgkdGhpcy0+X2RhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlcmlhbGl6YWJsZS1JbnRlcmZhY2UKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXJpYWxpemVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2VyaWFsaXplKCRzZXJpYWxpemVkKSB7CisgICAgICAgICR0aGlzLT5fZGF0YSA9IFx1bnNlcmlhbGl6ZSgkc2VyaWFsaXplZCk7CisgICAgICAgICR0aGlzLT5fbGVuZ3RoID0gXHN0cmxlbigkdGhpcy0+X2RhdGEpOworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUFJPVEVDVEVEIFNUQVRJQworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBiYXNlNjQgdXJsIGRlY29kaW5nCisgICAgICogQHBhcmFtIHN0cmluZyAkZGF0YQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfYmFzZTY0dXJsX2RlY29kZSgkZGF0YSkgeworICAgICAgICByZXR1cm4gXGJhc2U2NF9kZWNvZGUoXHN0cnRyKCRkYXRhLCAnLV8nLCAnKy8nKSAuIFxzdHJfcmVwZWF0KCc9JywgMyAtICgzICsgXHN0cmxlbigkZGF0YSkpICUgNCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIGJhc2U2NCB1cmwgZW5jb2RpbmcKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkYXRhCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9iYXNlNjR1cmxfZW5jb2RlKCRkYXRhKSB7CisgICAgICAgIHJldHVybiBccnRyaW0oXHN0cnRyKFxiYXNlNjRfZW5jb2RlKCRkYXRhKSwgJysvJywgJy1fJyksICc9Jyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQ0JPUi9DYm9yRGVjb2Rlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9DQk9SL0Nib3JEZWNvZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTYyNmViCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vQ0JPUi9DYm9yRGVjb2Rlci5waHAKQEAgLTAsMCArMSwyMjAgQEAKKzw/cGhwCisKKworbmFtZXNwYWNlIFdlYkF1dGhuXENCT1I7Cit1c2UgV2ViQXV0aG5cV2ViQXV0aG5FeGNlcHRpb247Cit1c2UgV2ViQXV0aG5cQmluYXJ5XEJ5dGVCdWZmZXI7CisKKy8qKgorICogTW9kaWZpZWQgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vbWFkd2l6YXJkLXRob21hcy93ZWJhdXRobi1zZXJ2ZXIvYmxvYi9tYXN0ZXIvc3JjL0Zvcm1hdC9DYm9yRGVjb2Rlci5waHAKKyAqIENvcHlyaWdodCDCqSAyMDE4IFRob21hcyBCbGVla2VyIC0gTUlUIGxpY2Vuc2VkCisgKiBNb2RpZmllZCBieSBMdWthcyBCdWNocworICogVGhhbmtzIFRob21hcyBmb3IgeW91ciB3b3JrIQorICovCitjbGFzcyBDYm9yRGVjb2RlciB7CisgICAgY29uc3QgQ0JPUl9NQUpPUl9VTlNJR05FRF9JTlQgPSAwOworICAgIGNvbnN0IENCT1JfTUFKT1JfVEVYVF9TVFJJTkcgPSAzOworICAgIGNvbnN0IENCT1JfTUFKT1JfRkxPQVRfU0lNUExFID0gNzsKKyAgICBjb25zdCBDQk9SX01BSk9SX05FR0FUSVZFX0lOVCA9IDE7CisgICAgY29uc3QgQ0JPUl9NQUpPUl9BUlJBWSA9IDQ7CisgICAgY29uc3QgQ0JPUl9NQUpPUl9UQUcgPSA2OworICAgIGNvbnN0IENCT1JfTUFKT1JfTUFQID0gNTsKKyAgICBjb25zdCBDQk9SX01BSk9SX0JZVEVfU1RSSU5HID0gMjsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBCeXRlQnVmZmVyfHN0cmluZyAkYnVmT3JCaW4KKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICogQHRocm93cyBXZWJBdXRobkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVjb2RlKCRidWZPckJpbikgeworICAgICAgICAkYnVmID0gJGJ1Zk9yQmluIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlciA/ICRidWZPckJpbiA6IG5ldyBCeXRlQnVmZmVyKCRidWZPckJpbik7CisKKyAgICAgICAgJG9mZnNldCA9IDA7CisgICAgICAgICRyZXN1bHQgPSBzZWxmOjpfcGFyc2VJdGVtKCRidWYsICRvZmZzZXQpOworICAgICAgICBpZiAoJG9mZnNldCAhPT0gJGJ1Zi0+Z2V0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignVW51c2VkIGJ5dGVzIGFmdGVyIGRhdGEgaXRlbS4nLCBXZWJBdXRobkV4Y2VwdGlvbjo6Q0JPUik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIEJ5dGVCdWZmZXJ8c3RyaW5nICRidWZPckJpbgorICAgICAqIEBwYXJhbSBpbnQgJHN0YXJ0T2Zmc2V0CisgICAgICogQHBhcmFtIGludHxudWxsICRlbmRPZmZzZXQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkZWNvZGVJblBsYWNlKCRidWZPckJpbiwgJHN0YXJ0T2Zmc2V0LCAmJGVuZE9mZnNldCA9IG51bGwpIHsKKyAgICAgICAgJGJ1ZiA9ICRidWZPckJpbiBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIgPyAkYnVmT3JCaW4gOiBuZXcgQnl0ZUJ1ZmZlcigkYnVmT3JCaW4pOworCisgICAgICAgICRvZmZzZXQgPSAkc3RhcnRPZmZzZXQ7CisgICAgICAgICRkYXRhID0gc2VsZjo6X3BhcnNlSXRlbSgkYnVmLCAkb2Zmc2V0KTsKKyAgICAgICAgJGVuZE9mZnNldCA9ICRvZmZzZXQ7CisgICAgICAgIHJldHVybiAkZGF0YTsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwcm90ZWN0ZWQKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBCeXRlQnVmZmVyICRidWYKKyAgICAgKiBAcGFyYW0gaW50ICRvZmZzZXQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcGFyc2VJdGVtKEJ5dGVCdWZmZXIgJGJ1ZiwgJiRvZmZzZXQpIHsKKyAgICAgICAgJGZpcnN0ID0gJGJ1Zi0+Z2V0Qnl0ZVZhbCgkb2Zmc2V0KyspOworICAgICAgICAkdHlwZSA9ICRmaXJzdCA+PiA1OworICAgICAgICAkdmFsID0gJGZpcnN0ICYgMGIxMTExMTsKKworICAgICAgICBpZiAoJHR5cGUgPT09IHNlbGY6OkNCT1JfTUFKT1JfRkxPQVRfU0lNUExFKSB7CisgICAgICAgICAgICByZXR1cm4gc2VsZjo6X3BhcnNlRmxvYXRTaW1wbGUoJHZhbCwgJGJ1ZiwgJG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICAkdmFsID0gc2VsZjo6X3BhcnNlRXh0cmFMZW5ndGgoJHZhbCwgJGJ1ZiwgJG9mZnNldCk7CisKKyAgICAgICAgcmV0dXJuIHNlbGY6Ol9wYXJzZUl0ZW1EYXRhKCR0eXBlLCAkdmFsLCAkYnVmLCAkb2Zmc2V0KTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9wYXJzZUZsb2F0U2ltcGxlKCR2YWwsIEJ5dGVCdWZmZXIgJGJ1ZiwgJiRvZmZzZXQpIHsKKyAgICAgICAgc3dpdGNoICgkdmFsKSB7CisgICAgICAgICAgICBjYXNlIDI0OgorICAgICAgICAgICAgICAgICR2YWwgPSAkYnVmLT5nZXRCeXRlVmFsKCRvZmZzZXQpOworICAgICAgICAgICAgICAgICRvZmZzZXQrKzsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6X3BhcnNlU2ltcGxlKCR2YWwpOworCisgICAgICAgICAgICBjYXNlIDI1OgorICAgICAgICAgICAgICAgICRmbG9hdFZhbHVlID0gJGJ1Zi0+Z2V0SGFsZkZsb2F0VmFsKCRvZmZzZXQpOworICAgICAgICAgICAgICAgICRvZmZzZXQgKz0gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4gJGZsb2F0VmFsdWU7CisKKyAgICAgICAgICAgIGNhc2UgMjY6CisgICAgICAgICAgICAgICAgJGZsb2F0VmFsdWUgPSAkYnVmLT5nZXRGbG9hdFZhbCgkb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAkb2Zmc2V0ICs9IDQ7CisgICAgICAgICAgICAgICAgcmV0dXJuICRmbG9hdFZhbHVlOworCisgICAgICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgICAgICRmbG9hdFZhbHVlID0gJGJ1Zi0+Z2V0RG91YmxlVmFsKCRvZmZzZXQpOworICAgICAgICAgICAgICAgICRvZmZzZXQgKz0gODsKKyAgICAgICAgICAgICAgICByZXR1cm4gJGZsb2F0VmFsdWU7CisKKyAgICAgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ1Jlc2VydmVkIHZhbHVlIHVzZWQuJywgV2ViQXV0aG5FeGNlcHRpb246OkNCT1IpOworCisgICAgICAgICAgICBjYXNlIDMxOgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignSW5kZWZpbml0ZSBsZW5ndGggaXMgbm90IHN1cHBvcnRlZC4nLCBXZWJBdXRobkV4Y2VwdGlvbjo6Q0JPUik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc2VsZjo6X3BhcnNlU2ltcGxlKCR2YWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBpbnQgJHZhbAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcGFyc2VTaW1wbGUoJHZhbCkgeworICAgICAgICBpZiAoJHZhbCA9PT0gMjApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHZhbCA9PT0gMjEpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICgkdmFsID09PSAyMikgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKHNwcmludGYoJ1Vuc3VwcG9ydGVkIHNpbXBsZSB2YWx1ZSAlZC4nLCAkdmFsKSwgV2ViQXV0aG5FeGNlcHRpb246OkNCT1IpOworICAgIH0KKworICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gX3BhcnNlRXh0cmFMZW5ndGgoJHZhbCwgQnl0ZUJ1ZmZlciAkYnVmLCAmJG9mZnNldCkgeworICAgICAgICBzd2l0Y2ggKCR2YWwpIHsKKyAgICAgICAgICAgIGNhc2UgMjQ6CisgICAgICAgICAgICAgICAgJHZhbCA9ICRidWYtPmdldEJ5dGVWYWwoJG9mZnNldCk7CisgICAgICAgICAgICAgICAgJG9mZnNldCsrOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI1OgorICAgICAgICAgICAgICAgICR2YWwgPSAkYnVmLT5nZXRVaW50MTZWYWwoJG9mZnNldCk7CisgICAgICAgICAgICAgICAgJG9mZnNldCArPSAyOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI2OgorICAgICAgICAgICAgICAgICR2YWwgPSAkYnVmLT5nZXRVaW50MzJWYWwoJG9mZnNldCk7CisgICAgICAgICAgICAgICAgJG9mZnNldCArPSA0OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgICAgICR2YWwgPSAkYnVmLT5nZXRVaW50NjRWYWwoJG9mZnNldCk7CisgICAgICAgICAgICAgICAgJG9mZnNldCArPSA4OworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIGNhc2UgMzA6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdSZXNlcnZlZCB2YWx1ZSB1c2VkLicsIFdlYkF1dGhuRXhjZXB0aW9uOjpDQk9SKTsKKworICAgICAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0luZGVmaW5pdGUgbGVuZ3RoIGlzIG5vdCBzdXBwb3J0ZWQuJywgV2ViQXV0aG5FeGNlcHRpb246OkNCT1IpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR2YWw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBfcGFyc2VJdGVtRGF0YSgkdHlwZSwgJHZhbCwgQnl0ZUJ1ZmZlciAkYnVmLCAmJG9mZnNldCkgeworICAgICAgICBzd2l0Y2ggKCR0eXBlKSB7CisgICAgICAgICAgICBjYXNlIHNlbGY6OkNCT1JfTUFKT1JfVU5TSUdORURfSU5UOiAvLyB1aW50CisgICAgICAgICAgICAgICAgcmV0dXJuICR2YWw7CisKKyAgICAgICAgICAgIGNhc2Ugc2VsZjo6Q0JPUl9NQUpPUl9ORUdBVElWRV9JTlQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xIC0gJHZhbDsKKworICAgICAgICAgICAgY2FzZSBzZWxmOjpDQk9SX01BSk9SX0JZVEVfU1RSSU5HOgorICAgICAgICAgICAgICAgICRkYXRhID0gJGJ1Zi0+Z2V0Qnl0ZXMoJG9mZnNldCwgJHZhbCk7CisgICAgICAgICAgICAgICAgJG9mZnNldCArPSAkdmFsOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQnl0ZUJ1ZmZlcigkZGF0YSk7IC8vIGJ5dGVzCisKKyAgICAgICAgICAgIGNhc2Ugc2VsZjo6Q0JPUl9NQUpPUl9URVhUX1NUUklORzoKKyAgICAgICAgICAgICAgICAkZGF0YSA9ICRidWYtPmdldEJ5dGVzKCRvZmZzZXQsICR2YWwpOworICAgICAgICAgICAgICAgICRvZmZzZXQgKz0gJHZhbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gJGRhdGE7IC8vIFVURi04CisKKyAgICAgICAgICAgIGNhc2Ugc2VsZjo6Q0JPUl9NQUpPUl9BUlJBWToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6X3BhcnNlQXJyYXkoJGJ1ZiwgJG9mZnNldCwgJHZhbCk7CisKKyAgICAgICAgICAgIGNhc2Ugc2VsZjo6Q0JPUl9NQUpPUl9NQVA6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGY6Ol9wYXJzZU1hcCgkYnVmLCAkb2Zmc2V0LCAkdmFsKTsKKworICAgICAgICAgICAgY2FzZSBzZWxmOjpDQk9SX01BSk9SX1RBRzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZjo6X3BhcnNlSXRlbSgkYnVmLCAkb2Zmc2V0KTsgLy8gMSBlbWJlZGRlZCBkYXRhIGl0ZW0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQKKyAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKHNwcmludGYoJ1Vua25vd24gbWFqb3IgdHlwZSAlZC4nLCAkdHlwZSksIFdlYkF1dGhuRXhjZXB0aW9uOjpDQk9SKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9wYXJzZU1hcChCeXRlQnVmZmVyICRidWYsICYkb2Zmc2V0LCAkY291bnQpIHsKKyAgICAgICAgJG1hcCA9IGFycmF5KCk7CisKKyAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CisgICAgICAgICAgICAkbWFwS2V5ID0gc2VsZjo6X3BhcnNlSXRlbSgkYnVmLCAkb2Zmc2V0KTsKKyAgICAgICAgICAgICRtYXBWYWwgPSBzZWxmOjpfcGFyc2VJdGVtKCRidWYsICRvZmZzZXQpOworCisgICAgICAgICAgICBpZiAoIVxpc19pbnQoJG1hcEtleSkgJiYgIVxpc19zdHJpbmcoJG1hcEtleSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ0NhbiBvbmx5IHVzZSBzdHJpbmdzIG9yIGludGVnZXJzIGFzIG1hcCBrZXlzJywgV2ViQXV0aG5FeGNlcHRpb246OkNCT1IpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkbWFwWyRtYXBLZXldID0gJG1hcFZhbDsgLy8gdG9kbyBkdXAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJG1hcDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIF9wYXJzZUFycmF5KEJ5dGVCdWZmZXIgJGJ1ZiwgJiRvZmZzZXQsICRjb3VudCkgeworICAgICAgICAkYXJyID0gYXJyYXkoKTsKKyAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CisgICAgICAgICAgICAkYXJyW10gPSBzZWxmOjpfcGFyc2VJdGVtKCRidWYsICRvZmZzZXQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRhcnI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vTElDRU5TRSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI0YTJiNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL0xJQ0VOU0UKQEAgLTAsMCArMSwyMiBAQAorTUlUIExpY2Vuc2UKKworQ29weXJpZ2h0IMKpIDIwMTkgTHVrYXMgQnVjaHMKK0NvcHlyaWdodCDCqSAyMDE4IFRob21hcyBCbGVla2VyIChDQk9SICYgQnl0ZUJ1ZmZlciBwYXJ0KQorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL1dlYkF1dGhuLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL1dlYkF1dGhuLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTBlNGU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vV2ViQXV0aG4ucGhwCkBAIC0wLDAgKzEsNDk1IEBACis8P3BocAorCituYW1lc3BhY2UgV2ViQXV0aG47Cit1c2UgV2ViQXV0aG5cQmluYXJ5XEJ5dGVCdWZmZXI7CityZXF1aXJlX29uY2UgJ1dlYkF1dGhuRXhjZXB0aW9uLnBocCc7CityZXF1aXJlX29uY2UgJ0JpbmFyeS9CeXRlQnVmZmVyLnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0F0dGVzdGF0aW9uT2JqZWN0LnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0F1dGhlbnRpY2F0b3JEYXRhLnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0Zvcm1hdC9Gb3JtYXRCYXNlLnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0Zvcm1hdC9Ob25lLnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0Zvcm1hdC9BbmRyb2lkS2V5LnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0Zvcm1hdC9BbmRyb2lkU2FmZXR5TmV0LnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0Zvcm1hdC9BcHBsZS5waHAnOworcmVxdWlyZV9vbmNlICdBdHRlc3RhdGlvbi9Gb3JtYXQvUGFja2VkLnBocCc7CityZXF1aXJlX29uY2UgJ0F0dGVzdGF0aW9uL0Zvcm1hdC9UcG0ucGhwJzsKK3JlcXVpcmVfb25jZSAnQXR0ZXN0YXRpb24vRm9ybWF0L1UyZi5waHAnOworcmVxdWlyZV9vbmNlICdDQk9SL0Nib3JEZWNvZGVyLnBocCc7CisKKy8qKgorICogV2ViQXV0aG4KKyAqIEBhdXRob3IgTHVrYXMgQnVjaHMKKyAqIEBsaWNlbnNlIGh0dHBzOi8vZ2l0aHViLmNvbS9sYnVjaHMvV2ViQXV0aG4vYmxvYi9tYXN0ZXIvTElDRU5TRSBNSVQKKyAqLworY2xhc3MgV2ViQXV0aG4geworICAgIC8vIHJlbHlpbmcgcGFydHkKKyAgICBwcml2YXRlICRfcnBOYW1lOworICAgIHByaXZhdGUgJF9ycElkOworICAgIHByaXZhdGUgJF9ycElkSGFzaDsKKyAgICBwcml2YXRlICRfY2hhbGxlbmdlOworICAgIHByaXZhdGUgJF9zaWduYXR1cmVDb3VudGVyOworICAgIHByaXZhdGUgJF9jYUZpbGVzOworICAgIHByaXZhdGUgJF9mb3JtYXRzOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhIG5ldyBXZWJBdXRobiBzZXJ2ZXIKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRycE5hbWUgdGhlIHJlbHlpbmcgcGFydHkgbmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHJwSWQgdGhlIHJlbHlpbmcgcGFydHkgSUQgPSB0aGUgZG9tYWluIG5hbWUKKyAgICAgKiBAcGFyYW0gYm9vbCAkdXNlQmFzZTY0VXJsRW5jb2RpbmcgdHJ1ZSB0byB1c2UgYmFzZTY0IHVybCBlbmNvZGluZyBmb3IgYmluYXJ5IGRhdGEgaW4ganNvbiBvYmplY3RzLiBEZWZhdWx0IGlzIGEgUkZDIDEzNDItTGlrZSBzZXJpYWxpemVkIHN0cmluZy4KKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRycE5hbWUsICRycElkLCAkYWxsb3dlZEZvcm1hdHM9bnVsbCwgJHVzZUJhc2U2NFVybEVuY29kaW5nPWZhbHNlKSB7CisgICAgICAgICR0aGlzLT5fcnBOYW1lID0gJHJwTmFtZTsKKyAgICAgICAgJHRoaXMtPl9ycElkID0gJHJwSWQ7CisgICAgICAgICR0aGlzLT5fcnBJZEhhc2ggPSBcaGFzaCgnc2hhMjU2JywgJHJwSWQsIHRydWUpOworICAgICAgICBCeXRlQnVmZmVyOjokdXNlQmFzZTY0VXJsRW5jb2RpbmcgPSAhISR1c2VCYXNlNjRVcmxFbmNvZGluZzsKKyAgICAgICAgJHN1cHBvcnRlZEZvcm1hdHMgPSBhcnJheSgnYW5kcm9pZC1rZXknLCAnYW5kcm9pZC1zYWZldHluZXQnLCAnYXBwbGUnLCAnZmlkby11MmYnLCAnbm9uZScsICdwYWNrZWQnLCAndHBtJyk7CisKKyAgICAgICAgaWYgKCFcZnVuY3Rpb25fZXhpc3RzKCdcb3BlbnNzbF9vcGVuJykpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignT3BlblNTTC1Nb2R1bGUgbm90IGluc3RhbGxlZCcpOzsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghXGluX2FycmF5KCdTSEEyNTYnLCBcYXJyYXlfbWFwKCdcc3RydG91cHBlcicsIFxvcGVuc3NsX2dldF9tZF9tZXRob2RzKCkpKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdTSEEyNTYgbm90IHN1cHBvcnRlZCBieSB0aGlzIG9wZW5zc2wgaW5zdGFsbGF0aW9uLicpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZGVmYXVsdDogYWxsIGZvcm1hdAorICAgICAgICBpZiAoIWlzX2FycmF5KCRhbGxvd2VkRm9ybWF0cykpIHsKKyAgICAgICAgICAgICRhbGxvd2VkRm9ybWF0cyA9ICRzdXBwb3J0ZWRGb3JtYXRzOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5fZm9ybWF0cyA9ICRhbGxvd2VkRm9ybWF0czsKKworICAgICAgICAvLyB2YWxpZGF0ZSBmb3JtYXRzCisgICAgICAgICRpbnZhbGlkRm9ybWF0cyA9IFxhcnJheV9kaWZmKCR0aGlzLT5fZm9ybWF0cywgJHN1cHBvcnRlZEZvcm1hdHMpOworICAgICAgICBpZiAoISR0aGlzLT5fZm9ybWF0cyB8fCAkaW52YWxpZEZvcm1hdHMpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBmb3JtYXRzIG9uIGNvbnN0cnVjdDogJyAuIGltcGxvZGUoJywgJywgJGludmFsaWRGb3JtYXRzKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBhZGQgYSByb290IGNlcnRpZmljYXRlIHRvIHZlcmlmeSBuZXcgcmVnaXN0cmF0aW9ucworICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGggZmlsZSBwYXRoIG9mIC8gZGlyZWN0b3J5IHdpdGggcm9vdCBjZXJ0aWZpY2F0ZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUm9vdENlcnRpZmljYXRlcygkcGF0aCkgeworICAgICAgICBpZiAoIVxpc19hcnJheSgkdGhpcy0+X2NhRmlsZXMpKSB7CisgICAgICAgICAgICAkdGhpcy0+X2NhRmlsZXMgPSBhcnJheSgpOworICAgICAgICB9CisgICAgICAgICRwYXRoID0gXHJ0cmltKFx0cmltKCRwYXRoKSwgJ1xcLycpOworICAgICAgICBpZiAoXGlzX2RpcigkcGF0aCkpIHsKKyAgICAgICAgICAgIGZvcmVhY2ggKFxzY2FuZGlyKCRwYXRoKSBhcyAkY2EpIHsKKyAgICAgICAgICAgICAgICBpZiAoXGlzX2ZpbGUoJHBhdGggLiAnLycgLiAkY2EpKSB7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hZGRSb290Q2VydGlmaWNhdGVzKCRwYXRoIC4gJy8nIC4gJGNhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoXGlzX2ZpbGUoJHBhdGgpICYmICFcaW5fYXJyYXkoXHJlYWxwYXRoKCRwYXRoKSwgJHRoaXMtPl9jYUZpbGVzKSkgeworICAgICAgICAgICAgJHRoaXMtPl9jYUZpbGVzW10gPSBccmVhbHBhdGgoJHBhdGgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZ2VuZXJhdGVkIGNoYWxsZW5nZSB0byBzYXZlIGZvciBsYXRlciB2YWxpZGF0aW9uCisgICAgICogQHJldHVybiBCeXRlQnVmZmVyCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENoYWxsZW5nZSgpIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5fY2hhbGxlbmdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIGdlbmVyYXRlcyB0aGUgb2JqZWN0IGZvciBhIGtleSByZWdpc3RyYXRpb24KKyAgICAgKiBwcm92aWRlIHRoaXMgZGF0YSB0byBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlCisgICAgICogQHBhcmFtIHN0cmluZyAkdXNlcklkCisgICAgICogQHBhcmFtIHN0cmluZyAkdXNlck5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VyRGlzcGxheU5hbWUKKyAgICAgKiBAcGFyYW0gaW50ICR0aW1lb3V0IHRpbWVvdXQgaW4gc2Vjb25kcworICAgICAqIEBwYXJhbSBib29sICRyZXF1aXJlUmVzaWRlbnRLZXkgdHJ1ZSwgaWYgdGhlIGtleSBzaG91bGQgYmUgc3RvcmVkIGJ5IHRoZSBhdXRoZW50aWNhdGlvbiBkZXZpY2UKKyAgICAgKiBAcGFyYW0gYm9vbHxzdHJpbmcgJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uIGluZGljYXRlcyB0aGF0IHlvdSByZXF1aXJlIHVzZXIgdmVyaWZpY2F0aW9uIGFuZCB3aWxsIGZhaWwgdGhlIG9wZXJhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGhlIHJlc3BvbnNlIGRvZXMgbm90IGhhdmUgdGhlIFVWIGZsYWcgc2V0LgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWQgdmFsdWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSA9IHJlcXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSA9IHByZWZlcnJlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICdyZXF1aXJlZCcgJ3ByZWZlcnJlZCcgJ2Rpc2NvdXJhZ2VkJworICAgICAqIEBwYXJhbSBib29sfG51bGwgJGNyb3NzUGxhdGZvcm1BdHRhY2htZW50ICAgdHJ1ZSBmb3IgY3Jvc3MtcGxhdGZvcm0gZGV2aWNlcyAoZWcuIGZpZG8gdXNiKSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIGZvciBwbGF0Zm9ybSBkZXZpY2VzIChlZy4gd2luZG93cyBoZWxsbywgYW5kcm9pZCBzYWZldHluZXQpLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCBmb3IgYm90aAorICAgICAqIEBwYXJhbSBhcnJheSAkZXhjbHVkZUNyZWRlbnRpYWxJZHMgYSBhcnJheSBvZiBpZHMsIHdoaWNoIGFyZSBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRvIHByZXZlbnQgcmUtcmVnaXN0cmF0aW9uCisgICAgICogQHJldHVybiBcc3RkQ2xhc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q3JlYXRlQXJncygkdXNlcklkLCAkdXNlck5hbWUsICR1c2VyRGlzcGxheU5hbWUsICR0aW1lb3V0PTIwLCAkcmVxdWlyZVJlc2lkZW50S2V5PWZhbHNlLCAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb249ZmFsc2UsICRjcm9zc1BsYXRmb3JtQXR0YWNobWVudD1udWxsLCAkZXhjbHVkZUNyZWRlbnRpYWxJZHM9YXJyYXkoKSkgeworCisgICAgICAgIC8vIHZhbGlkYXRlIFVzZXIgVmVyaWZpY2F0aW9uIFJlcXVpcmVtZW50CisgICAgICAgIGlmIChcaXNfYm9vbCgkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pKSB7CisgICAgICAgICAgICAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPyAncmVxdWlyZWQnIDogJ3ByZWZlcnJlZCc7CisgICAgICAgIH0gZWxzZSBpZiAoXGlzX3N0cmluZygkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pICYmIFxpbl9hcnJheShcc3RydG9sb3dlcigkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pLCBbJ3JlcXVpcmVkJywgJ3ByZWZlcnJlZCcsICdkaXNjb3VyYWdlZCddKSkgeworICAgICAgICAgICAgJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gXHN0cnRvbG93ZXIoJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRyZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9ICdwcmVmZXJyZWQnOworICAgICAgICB9CisKKyAgICAgICAgJGFyZ3MgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXkgPSBuZXcgXHN0ZENsYXNzKCk7CisKKyAgICAgICAgLy8gcmVseWluZyBwYXJ0eQorICAgICAgICAkYXJncy0+cHVibGljS2V5LT5ycCA9IG5ldyBcc3RkQ2xhc3MoKTsKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+cnAtPm5hbWUgPSAkdGhpcy0+X3JwTmFtZTsKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+cnAtPmlkID0gJHRoaXMtPl9ycElkOworCisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVzZXJWZXJpZmljYXRpb24gPSAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb247CisgICAgICAgIGlmICgkcmVxdWlyZVJlc2lkZW50S2V5KSB7CisgICAgICAgICAgICAkYXJncy0+cHVibGljS2V5LT5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXF1aXJlUmVzaWRlbnRLZXkgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChpc19ib29sKCRjcm9zc1BsYXRmb3JtQXR0YWNobWVudCkpIHsKKyAgICAgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID0gJGNyb3NzUGxhdGZvcm1BdHRhY2htZW50ID8gJ2Nyb3NzLXBsYXRmb3JtJyA6ICdwbGF0Zm9ybSc7CisgICAgICAgIH0KKworICAgICAgICAvLyB1c2VyCisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPnVzZXIgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPnVzZXItPmlkID0gbmV3IEJ5dGVCdWZmZXIoJHVzZXJJZCk7IC8vIGJpbmFyeQorICAgICAgICAkYXJncy0+cHVibGljS2V5LT51c2VyLT5uYW1lID0gJHVzZXJOYW1lOworICAgICAgICAkYXJncy0+cHVibGljS2V5LT51c2VyLT5kaXNwbGF5TmFtZSA9ICR1c2VyRGlzcGxheU5hbWU7CisKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+cHViS2V5Q3JlZFBhcmFtcyA9IGFycmF5KCk7CisgICAgICAgICR0bXAgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICR0bXAtPnR5cGUgPSAncHVibGljLWtleSc7CisgICAgICAgICR0bXAtPmFsZyA9IC03OyAvLyBFUzI1NgorICAgICAgICAkYXJncy0+cHVibGljS2V5LT5wdWJLZXlDcmVkUGFyYW1zW10gPSAkdG1wOworICAgICAgICB1bnNldCAoJHRtcCk7CisKKyAgICAgICAgJHRtcCA9IG5ldyBcc3RkQ2xhc3MoKTsKKyAgICAgICAgJHRtcC0+dHlwZSA9ICdwdWJsaWMta2V5JzsKKyAgICAgICAgJHRtcC0+YWxnID0gLTI1NzsgLy8gUlMyNTYKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+cHViS2V5Q3JlZFBhcmFtc1tdID0gJHRtcDsKKyAgICAgICAgdW5zZXQgKCR0bXApOworCisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSByb290IGNlcnRpZmljYXRlcyBhZGRlZCwgd2UgbmVlZCBkaXJlY3QgYXR0ZXN0YXRpb24gdG8gdmFsaWRhdGUKKyAgICAgICAgLy8gYWdhaW5zdCB0aGUgcm9vdCBjZXJ0aWZpY2F0ZS4gSWYgdGhlcmUgYXJlIG5vIHJvb3QtY2VydGlmaWNhdGVzIGFkZGVkLAorICAgICAgICAvLyBhbm9ueW1pemF0aW9uIGNhIGFyZSBhbHNvIGFjY2VwdGVkLCBiZWNhdXNlIHdlIGNhbid0IHZhbGlkYXRlIHRoZSByb290IGFueXdheS4KKyAgICAgICAgJGF0dGVzdGF0aW9uID0gJ2luZGlyZWN0JzsKKyAgICAgICAgaWYgKFxpc19hcnJheSgkdGhpcy0+X2NhRmlsZXMpKSB7CisgICAgICAgICAgICAkYXR0ZXN0YXRpb24gPSAnZGlyZWN0JzsKKyAgICAgICAgfQorCisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPmF0dGVzdGF0aW9uID0gXGNvdW50KCR0aGlzLT5fZm9ybWF0cykgPT09IDEgJiYgXGluX2FycmF5KCdub25lJywgJHRoaXMtPl9mb3JtYXRzKSA/ICdub25lJyA6ICRhdHRlc3RhdGlvbjsKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+ZXh0ZW5zaW9ucyA9IG5ldyBcc3RkQ2xhc3MoKTsKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+ZXh0ZW5zaW9ucy0+ZXh0cyA9IHRydWU7CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPnRpbWVvdXQgPSAkdGltZW91dCAqIDEwMDA7IC8vIG1pY3Jvc2Vjb25kcworICAgICAgICAkYXJncy0+cHVibGljS2V5LT5jaGFsbGVuZ2UgPSAkdGhpcy0+X2NyZWF0ZUNoYWxsZW5nZSgpOyAvLyBiaW5hcnkKKworICAgICAgICAvL3ByZXZlbnQgcmUtcmVnaXN0cmF0aW9uIGJ5IHNwZWNpZnlpbmcgZXhpc3RpbmcgY3JlZGVudGlhbHMKKyAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+ZXhjbHVkZUNyZWRlbnRpYWxzID0gYXJyYXkoKTsKKworICAgICAgICBpZiAoaXNfYXJyYXkoJGV4Y2x1ZGVDcmVkZW50aWFsSWRzKSkgeworICAgICAgICAgICAgZm9yZWFjaCAoJGV4Y2x1ZGVDcmVkZW50aWFsSWRzIGFzICRpZCkgeworICAgICAgICAgICAgICAgICR0bXAgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICAgICAgICAgJHRtcC0+aWQgPSAkaWQgaW5zdGFuY2VvZiBCeXRlQnVmZmVyID8gJGlkIDogbmV3IEJ5dGVCdWZmZXIoJGlkKTsgIC8vIGJpbmFyeQorICAgICAgICAgICAgICAgICR0bXAtPnR5cGUgPSAncHVibGljLWtleSc7CisgICAgICAgICAgICAgICAgJHRtcC0+dHJhbnNwb3J0cyA9IGFycmF5KCd1c2InLCAnYmxlJywgJ25mYycsICdpbnRlcm5hbCcpOworICAgICAgICAgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPmV4Y2x1ZGVDcmVkZW50aWFsc1tdID0gJHRtcDsKKyAgICAgICAgICAgICAgICB1bnNldCAoJHRtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGFyZ3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogZ2VuZXJhdGVzIHRoZSBvYmplY3QgZm9yIGtleSB2YWxpZGF0aW9uCisgICAgICogUHJvdmlkZSB0aGlzIGRhdGEgdG8gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldAorICAgICAqIEBwYXJhbSBhcnJheSAkY3JlZGVudGlhbElkcyBiaW5hcnkKKyAgICAgKiBAcGFyYW0gaW50ICR0aW1lb3V0IHRpbWVvdXQgaW4gc2Vjb25kcworICAgICAqIEBwYXJhbSBib29sICRhbGxvd1VzYiBhbGxvdyByZW1vdmFibGUgVVNCCisgICAgICogQHBhcmFtIGJvb2wgJGFsbG93TmZjIGFsbG93IE5lYXIgRmllbGQgQ29tbXVuaWNhdGlvbiAoTkZDKQorICAgICAqIEBwYXJhbSBib29sICRhbGxvd0JsZSBhbGxvdyBCbHVldG9vdGgKKyAgICAgKiBAcGFyYW0gYm9vbCAkYWxsb3dJbnRlcm5hbCBhbGxvdyBjbGllbnQgZGV2aWNlLXNwZWNpZmljIHRyYW5zcG9ydC4gVGhlc2UgYXV0aGVudGljYXRvcnMgYXJlIG5vdCByZW1vdmFibGUgZnJvbSB0aGUgY2xpZW50IGRldmljZS4KKyAgICAgKiBAcGFyYW0gYm9vbHxzdHJpbmcgJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uIGluZGljYXRlcyB0aGF0IHlvdSByZXF1aXJlIHVzZXIgdmVyaWZpY2F0aW9uIGFuZCB3aWxsIGZhaWwgdGhlIG9wZXJhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGhlIHJlc3BvbnNlIGRvZXMgbm90IGhhdmUgdGhlIFVWIGZsYWcgc2V0LgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWQgdmFsdWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSA9IHJlcXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSA9IHByZWZlcnJlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICdyZXF1aXJlZCcgJ3ByZWZlcnJlZCcgJ2Rpc2NvdXJhZ2VkJworICAgICAqIEByZXR1cm4gXHN0ZENsYXNzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEdldEFyZ3MoJGNyZWRlbnRpYWxJZHM9YXJyYXkoKSwgJHRpbWVvdXQ9MjAsICRhbGxvd1VzYj10cnVlLCAkYWxsb3dOZmM9dHJ1ZSwgJGFsbG93QmxlPXRydWUsICRhbGxvd0ludGVybmFsPXRydWUsICRyZXF1aXJlVXNlclZlcmlmaWNhdGlvbj1mYWxzZSkgeworCisgICAgICAgIC8vIHZhbGlkYXRlIFVzZXIgVmVyaWZpY2F0aW9uIFJlcXVpcmVtZW50CisgICAgICAgIGlmIChcaXNfYm9vbCgkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pKSB7CisgICAgICAgICAgICAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPSAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gPyAncmVxdWlyZWQnIDogJ3ByZWZlcnJlZCc7CisgICAgICAgIH0gZWxzZSBpZiAoXGlzX3N0cmluZygkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pICYmIFxpbl9hcnJheShcc3RydG9sb3dlcigkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24pLCBbJ3JlcXVpcmVkJywgJ3ByZWZlcnJlZCcsICdkaXNjb3VyYWdlZCddKSkgeworICAgICAgICAgICAgJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uID0gXHN0cnRvbG93ZXIoJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRyZXF1aXJlVXNlclZlcmlmaWNhdGlvbiA9ICdwcmVmZXJyZWQnOworICAgICAgICB9CisKKyAgICAgICAgJGFyZ3MgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXkgPSBuZXcgXHN0ZENsYXNzKCk7CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPnRpbWVvdXQgPSAkdGltZW91dCAqIDEwMDA7IC8vIG1pY3Jvc2Vjb25kcworICAgICAgICAkYXJncy0+cHVibGljS2V5LT5jaGFsbGVuZ2UgPSAkdGhpcy0+X2NyZWF0ZUNoYWxsZW5nZSgpOyAgLy8gYmluYXJ5CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPnVzZXJWZXJpZmljYXRpb24gPSAkcmVxdWlyZVVzZXJWZXJpZmljYXRpb247CisgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPnJwSWQgPSAkdGhpcy0+X3JwSWQ7CisKKyAgICAgICAgaWYgKFxpc19hcnJheSgkY3JlZGVudGlhbElkcykgJiYgXGNvdW50KCRjcmVkZW50aWFsSWRzKSA+IDApIHsKKyAgICAgICAgICAgICRhcmdzLT5wdWJsaWNLZXktPmFsbG93Q3JlZGVudGlhbHMgPSBhcnJheSgpOworCisgICAgICAgICAgICBmb3JlYWNoICgkY3JlZGVudGlhbElkcyBhcyAkaWQpIHsKKyAgICAgICAgICAgICAgICAkdG1wID0gbmV3IFxzdGRDbGFzcygpOworICAgICAgICAgICAgICAgICR0bXAtPmlkID0gJGlkIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlciA/ICRpZCA6IG5ldyBCeXRlQnVmZmVyKCRpZCk7ICAvLyBiaW5hcnkKKyAgICAgICAgICAgICAgICAkdG1wLT50cmFuc3BvcnRzID0gYXJyYXkoKTsKKworICAgICAgICAgICAgICAgIGlmICgkYWxsb3dVc2IpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRtcC0+dHJhbnNwb3J0c1tdID0gJ3VzYic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkYWxsb3dOZmMpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRtcC0+dHJhbnNwb3J0c1tdID0gJ25mYyc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkYWxsb3dCbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRtcC0+dHJhbnNwb3J0c1tdID0gJ2JsZSc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkYWxsb3dJbnRlcm5hbCkgeworICAgICAgICAgICAgICAgICAgICAkdG1wLT50cmFuc3BvcnRzW10gPSAnaW50ZXJuYWwnOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICR0bXAtPnR5cGUgPSAncHVibGljLWtleSc7CisgICAgICAgICAgICAgICAgJGFyZ3MtPnB1YmxpY0tleS0+YWxsb3dDcmVkZW50aWFsc1tdID0gJHRtcDsKKyAgICAgICAgICAgICAgICB1bnNldCAoJHRtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGFyZ3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbmV3IHNpZ25hdHVyZSBjb3VudGVyIHZhbHVlLgorICAgICAqIHJldHVybnMgbnVsbCBpZiB0aGVyZSBpcyBubyBjb3VudGVyCisgICAgICogQHJldHVybiA/aW50CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNpZ25hdHVyZUNvdW50ZXIoKSB7CisgICAgICAgIHJldHVybiBcaXNfaW50KCR0aGlzLT5fc2lnbmF0dXJlQ291bnRlcikgPyAkdGhpcy0+X3NpZ25hdHVyZUNvdW50ZXIgOiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIHByb2Nlc3MgYSBjcmVhdGUgcmVxdWVzdCBhbmQgcmV0dXJucyBkYXRhIHRvIHNhdmUgZm9yIGZ1dHVyZSBsb2dpbnMKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSlNPTiBiaW5hcnkgZnJvbSBicm93c2VyCisgICAgICogQHBhcmFtIHN0cmluZyAkYXR0ZXN0YXRpb25PYmplY3QgYmluYXJ5IGZyb20gYnJvd3NlcgorICAgICAqIEBwYXJhbSBzdHJpbmd8Qnl0ZUJ1ZmZlciAkY2hhbGxlbmdlIGJpbmFyeSB1c2VkIGNoYWxsYW5nZQorICAgICAqIEBwYXJhbSBib29sICRyZXF1aXJlVXNlclZlcmlmaWNhdGlvbiB0cnVlLCBpZiB0aGUgZGV2aWNlIG11c3QgdmVyaWZ5IHVzZXIgKGUuZy4gYnkgYmlvbWV0cmljIGRhdGEgb3IgcGluKQorICAgICAqIEBwYXJhbSBib29sICRyZXF1aXJlVXNlclByZXNlbnQgZmFsc2UsIGlmIHRoZSBkZXZpY2UgbXVzdCBOT1QgY2hlY2sgdXNlciBwcmVzZW5jZSAoZS5nLiBieSBwcmVzc2luZyBhIGJ1dHRvbikKKyAgICAgKiBAcmV0dXJuIFxzdGRDbGFzcworICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcHJvY2Vzc0NyZWF0ZSgkY2xpZW50RGF0YUpTT04sICRhdHRlc3RhdGlvbk9iamVjdCwgJGNoYWxsZW5nZSwgJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uPWZhbHNlLCAkcmVxdWlyZVVzZXJQcmVzZW50PXRydWUpIHsKKyAgICAgICAgJGNsaWVudERhdGFIYXNoID0gXGhhc2goJ3NoYTI1NicsICRjbGllbnREYXRhSlNPTiwgdHJ1ZSk7CisgICAgICAgICRjbGllbnREYXRhID0gXGpzb25fZGVjb2RlKCRjbGllbnREYXRhSlNPTik7CisgICAgICAgICRjaGFsbGVuZ2UgPSAkY2hhbGxlbmdlIGluc3RhbmNlb2YgQnl0ZUJ1ZmZlciA/ICRjaGFsbGVuZ2UgOiBuZXcgQnl0ZUJ1ZmZlcigkY2hhbGxlbmdlKTsKKworICAgICAgICAvLyBzZWN1cml0eTogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNyZWdpc3RlcmluZy1hLW5ldy1jcmVkZW50aWFsCisKKyAgICAgICAgLy8gMi4gTGV0IEMsIHRoZSBjbGllbnQgZGF0YSBjbGFpbWVkIGFzIGNvbGxlY3RlZCBkdXJpbmcgdGhlIGNyZWRlbnRpYWwgY3JlYXRpb24sCisgICAgICAgIC8vICAgIGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyBhbiBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBKU09OIHBhcnNlciBvbiBKU09OdGV4dC4KKyAgICAgICAgaWYgKCFcaXNfb2JqZWN0KCRjbGllbnREYXRhKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIGNsaWVudCBkYXRhJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfREFUQSk7CisgICAgICAgIH0KKworICAgICAgICAvLyAzLiBWZXJpZnkgdGhhdCB0aGUgdmFsdWUgb2YgQy50eXBlIGlzIHdlYmF1dGhuLmNyZWF0ZS4KKyAgICAgICAgaWYgKCFccHJvcGVydHlfZXhpc3RzKCRjbGllbnREYXRhLCAndHlwZScpIHx8ICRjbGllbnREYXRhLT50eXBlICE9PSAnd2ViYXV0aG4uY3JlYXRlJykgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHR5cGUnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9UWVBFKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIDQuIFZlcmlmeSB0aGF0IHRoZSB2YWx1ZSBvZiBDLmNoYWxsZW5nZSBtYXRjaGVzIHRoZSBjaGFsbGVuZ2UgdGhhdCB3YXMgc2VudCB0byB0aGUgYXV0aGVudGljYXRvciBpbiB0aGUgY3JlYXRlKCkgY2FsbC4KKyAgICAgICAgaWYgKCFccHJvcGVydHlfZXhpc3RzKCRjbGllbnREYXRhLCAnY2hhbGxlbmdlJykgfHwgQnl0ZUJ1ZmZlcjo6ZnJvbUJhc2U2NFVybCgkY2xpZW50RGF0YS0+Y2hhbGxlbmdlKS0+Z2V0QmluYXJ5U3RyaW5nKCkgIT09ICRjaGFsbGVuZ2UtPmdldEJpbmFyeVN0cmluZygpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgY2hhbGxlbmdlJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfQ0hBTExFTkdFKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIDUuIFZlcmlmeSB0aGF0IHRoZSB2YWx1ZSBvZiBDLm9yaWdpbiBtYXRjaGVzIHRoZSBSZWx5aW5nIFBhcnR5J3Mgb3JpZ2luLgorICAgICAgICBpZiAoIVxwcm9wZXJ0eV9leGlzdHMoJGNsaWVudERhdGEsICdvcmlnaW4nKSB8fCAhJHRoaXMtPl9jaGVja09yaWdpbigkY2xpZW50RGF0YS0+b3JpZ2luKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIG9yaWdpbicsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX09SSUdJTik7CisgICAgICAgIH0KKworICAgICAgICAvLyBBdHRlc3RhdGlvbgorICAgICAgICAkYXR0ZXN0YXRpb25PYmplY3QgPSBuZXcgQXR0ZXN0YXRpb25cQXR0ZXN0YXRpb25PYmplY3QoJGF0dGVzdGF0aW9uT2JqZWN0LCAkdGhpcy0+X2Zvcm1hdHMpOworCisgICAgICAgIC8vIDkuIFZlcmlmeSB0aGF0IHRoZSBSUCBJRCBoYXNoIGluIGF1dGhEYXRhIGlzIGluZGVlZCB0aGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBSUCBJRCBleHBlY3RlZCBieSB0aGUgUlAuCisgICAgICAgIGlmICghJGF0dGVzdGF0aW9uT2JqZWN0LT52YWxpZGF0ZVJwSWRIYXNoKCR0aGlzLT5fcnBJZEhhc2gpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgcnBJZCBoYXNoJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfUkVMWUlOR19QQVJUWSk7CisgICAgICAgIH0KKworICAgICAgICAvLyAxNC4gVmVyaWZ5IHRoYXQgYXR0U3RtdCBpcyBhIGNvcnJlY3QgYXR0ZXN0YXRpb24gc3RhdGVtZW50LCBjb252ZXlpbmcgYSB2YWxpZCBhdHRlc3RhdGlvbiBzaWduYXR1cmUKKyAgICAgICAgaWYgKCEkYXR0ZXN0YXRpb25PYmplY3QtPnZhbGlkYXRlQXR0ZXN0YXRpb24oJGNsaWVudERhdGFIYXNoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIGNlcnRpZmljYXRlIHNpZ25hdHVyZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1NJR05BVFVSRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyAxNS4gSWYgdmFsaWRhdGlvbiBpcyBzdWNjZXNzZnVsLCBvYnRhaW4gYSBsaXN0IG9mIGFjY2VwdGFibGUgdHJ1c3QgYW5jaG9ycworICAgICAgICBpZiAoaXNfYXJyYXkoJHRoaXMtPl9jYUZpbGVzKSAmJiAhJGF0dGVzdGF0aW9uT2JqZWN0LT52YWxpZGF0ZVJvb3RDZXJ0aWZpY2F0ZSgkdGhpcy0+X2NhRmlsZXMpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgcm9vdCBjZXJ0aWZpY2F0ZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpDRVJUSUZJQ0FURV9OT1RfVFJVU1RFRCk7CisgICAgICAgIH0KKworICAgICAgICAvLyAxMC4gVmVyaWZ5IHRoYXQgdGhlIFVzZXIgUHJlc2VudCBiaXQgb2YgdGhlIGZsYWdzIGluIGF1dGhEYXRhIGlzIHNldC4KKyAgICAgICAgaWYgKCRyZXF1aXJlVXNlclByZXNlbnQgJiYgISRhdHRlc3RhdGlvbk9iamVjdC0+Z2V0QXV0aGVudGljYXRvckRhdGEoKS0+Z2V0VXNlclByZXNlbnQoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCd1c2VyIG5vdCBwcmVzZW50IGR1cmluZyBhdXRoZW50aWNhdGlvbicsIFdlYkF1dGhuRXhjZXB0aW9uOjpVU0VSX1BSRVNFTlQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gMTEuIElmIHVzZXIgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkIGZvciB0aGlzIHJlZ2lzdHJhdGlvbiwgdmVyaWZ5IHRoYXQgdGhlIFVzZXIgVmVyaWZpZWQgYml0IG9mIHRoZSBmbGFncyBpbiBhdXRoRGF0YSBpcyBzZXQuCisgICAgICAgIGlmICgkcmVxdWlyZVVzZXJWZXJpZmljYXRpb24gJiYgISRhdHRlc3RhdGlvbk9iamVjdC0+Z2V0QXV0aGVudGljYXRvckRhdGEoKS0+Z2V0VXNlclZlcmlmaWVkKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbigndXNlciBub3QgdmVyaWZpY2F0ZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uJywgV2ViQXV0aG5FeGNlcHRpb246OlVTRVJfVkVSSUZJQ0FURUQpOworICAgICAgICB9CisKKyAgICAgICAgJHNpZ25Db3VudCA9ICRhdHRlc3RhdGlvbk9iamVjdC0+Z2V0QXV0aGVudGljYXRvckRhdGEoKS0+Z2V0U2lnbkNvdW50KCk7CisgICAgICAgIGlmICgkc2lnbkNvdW50ID4gMCkgeworICAgICAgICAgICAgJHRoaXMtPl9zaWduYXR1cmVDb3VudGVyID0gJHNpZ25Db3VudDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByZXBhcmUgZGF0YSB0byBzdG9yZSBmb3IgZnV0dXJlIGxvZ2lucworICAgICAgICAkZGF0YSA9IG5ldyBcc3RkQ2xhc3MoKTsKKyAgICAgICAgJGRhdGEtPnJwSWQgPSAkdGhpcy0+X3JwSWQ7CisgICAgICAgICRkYXRhLT5jcmVkZW50aWFsSWQgPSAkYXR0ZXN0YXRpb25PYmplY3QtPmdldEF1dGhlbnRpY2F0b3JEYXRhKCktPmdldENyZWRlbnRpYWxJZCgpOworICAgICAgICAkZGF0YS0+Y3JlZGVudGlhbFB1YmxpY0tleSA9ICRhdHRlc3RhdGlvbk9iamVjdC0+Z2V0QXV0aGVudGljYXRvckRhdGEoKS0+Z2V0UHVibGljS2V5UGVtKCk7CisgICAgICAgICRkYXRhLT5jZXJ0aWZpY2F0ZUNoYWluID0gJGF0dGVzdGF0aW9uT2JqZWN0LT5nZXRDZXJ0aWZpY2F0ZUNoYWluKCk7CisgICAgICAgICRkYXRhLT5jZXJ0aWZpY2F0ZSA9ICRhdHRlc3RhdGlvbk9iamVjdC0+Z2V0Q2VydGlmaWNhdGVQZW0oKTsKKyAgICAgICAgJGRhdGEtPmNlcnRpZmljYXRlSXNzdWVyID0gJGF0dGVzdGF0aW9uT2JqZWN0LT5nZXRDZXJ0aWZpY2F0ZUlzc3VlcigpOworICAgICAgICAkZGF0YS0+Y2VydGlmaWNhdGVTdWJqZWN0ID0gJGF0dGVzdGF0aW9uT2JqZWN0LT5nZXRDZXJ0aWZpY2F0ZVN1YmplY3QoKTsKKyAgICAgICAgJGRhdGEtPnNpZ25hdHVyZUNvdW50ZXIgPSAkdGhpcy0+X3NpZ25hdHVyZUNvdW50ZXI7CisgICAgICAgICRkYXRhLT5BQUdVSUQgPSAkYXR0ZXN0YXRpb25PYmplY3QtPmdldEF1dGhlbnRpY2F0b3JEYXRhKCktPmdldEFBR1VJRCgpOworICAgICAgICByZXR1cm4gJGRhdGE7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBwcm9jZXNzIGEgZ2V0IHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnREYXRhSlNPTiBiaW5hcnkgZnJvbSBicm93c2VyCisgICAgICogQHBhcmFtIHN0cmluZyAkYXV0aGVudGljYXRvckRhdGEgYmluYXJ5IGZyb20gYnJvd3NlcgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNpZ25hdHVyZSBiaW5hcnkgZnJvbSBicm93c2VyCisgICAgICogQHBhcmFtIHN0cmluZyAkY3JlZGVudGlhbFB1YmxpY0tleSBzdHJpbmcgUEVNLWZvcm1hdGVkIHB1YmxpYyBrZXkgZnJvbSB1c2VkIGNyZWRlbnRpYWxJZAorICAgICAqIEBwYXJhbSBzdHJpbmd8Qnl0ZUJ1ZmZlciAkY2hhbGxlbmdlICBiaW5hcnkgZnJvbSB1c2VkIGNoYWxsYW5nZQorICAgICAqIEBwYXJhbSBpbnQgJHByZXZTaWduYXR1cmVDbnQgc2lnbmF0dXJlIGNvdW50IHZhbHVlIG9mIHRoZSBsYXN0IGxvZ2luCisgICAgICogQHBhcmFtIGJvb2wgJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uIHRydWUsIGlmIHRoZSBkZXZpY2UgbXVzdCB2ZXJpZnkgdXNlciAoZS5nLiBieSBiaW9tZXRyaWMgZGF0YSBvciBwaW4pCisgICAgICogQHBhcmFtIGJvb2wgJHJlcXVpcmVVc2VyUHJlc2VudCB0cnVlLCBpZiB0aGUgZGV2aWNlIG11c3QgY2hlY2sgdXNlciBwcmVzZW5jZSAoZS5nLiBieSBwcmVzc2luZyBhIGJ1dHRvbikKKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBpZiBnZXQgaXMgc3VjY2Vzc2Z1bAorICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcHJvY2Vzc0dldCgkY2xpZW50RGF0YUpTT04sICRhdXRoZW50aWNhdG9yRGF0YSwgJHNpZ25hdHVyZSwgJGNyZWRlbnRpYWxQdWJsaWNLZXksICRjaGFsbGVuZ2UsICRwcmV2U2lnbmF0dXJlQ250PW51bGwsICRyZXF1aXJlVXNlclZlcmlmaWNhdGlvbj1mYWxzZSwgJHJlcXVpcmVVc2VyUHJlc2VudD10cnVlKSB7CisgICAgICAgICRhdXRoZW50aWNhdG9yT2JqID0gbmV3IEF0dGVzdGF0aW9uXEF1dGhlbnRpY2F0b3JEYXRhKCRhdXRoZW50aWNhdG9yRGF0YSk7CisgICAgICAgICRjbGllbnREYXRhSGFzaCA9IFxoYXNoKCdzaGEyNTYnLCAkY2xpZW50RGF0YUpTT04sIHRydWUpOworICAgICAgICAkY2xpZW50RGF0YSA9IFxqc29uX2RlY29kZSgkY2xpZW50RGF0YUpTT04pOworICAgICAgICAkY2hhbGxlbmdlID0gJGNoYWxsZW5nZSBpbnN0YW5jZW9mIEJ5dGVCdWZmZXIgPyAkY2hhbGxlbmdlIDogbmV3IEJ5dGVCdWZmZXIoJGNoYWxsZW5nZSk7CisKKyAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyN2ZXJpZnlpbmctYXNzZXJ0aW9uCisKKyAgICAgICAgLy8gMS4gSWYgdGhlIGFsbG93Q3JlZGVudGlhbHMgb3B0aW9uIHdhcyBnaXZlbiB3aGVuIHRoaXMgYXV0aGVudGljYXRpb24gY2VyZW1vbnkgd2FzIGluaXRpYXRlZCwKKyAgICAgICAgLy8gICAgdmVyaWZ5IHRoYXQgY3JlZGVudGlhbC5pZCBpZGVudGlmaWVzIG9uZSBvZiB0aGUgcHVibGljIGtleSBjcmVkZW50aWFscyB0aGF0IHdlcmUgbGlzdGVkIGluIGFsbG93Q3JlZGVudGlhbHMuCisgICAgICAgIC8vICAgIC0+IFRPIEJFIFZFUklGSUVEIEJZIElNUExFTUVOVEFUSU9OCisKKyAgICAgICAgLy8gMi4gSWYgY3JlZGVudGlhbC5yZXNwb25zZS51c2VySGFuZGxlIGlzIHByZXNlbnQsIHZlcmlmeSB0aGF0IHRoZSB1c2VyIGlkZW50aWZpZWQKKyAgICAgICAgLy8gICAgYnkgdGhpcyB2YWx1ZSBpcyB0aGUgb3duZXIgb2YgdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBpZGVudGlmaWVkIGJ5IGNyZWRlbnRpYWwuaWQuCisgICAgICAgIC8vICAgIC0+IFRPIEJFIFZFUklGSUVEIEJZIElNUExFTUVOVEFUSU9OCisKKyAgICAgICAgLy8gMy4gVXNpbmcgY3JlZGVudGlhbOKAmXMgaWQgYXR0cmlidXRlIChvciB0aGUgY29ycmVzcG9uZGluZyByYXdJZCwgaWYgYmFzZTY0dXJsIGVuY29kaW5nIGlzCisgICAgICAgIC8vICAgIGluYXBwcm9wcmlhdGUgZm9yIHlvdXIgdXNlIGNhc2UpLCBsb29rIHVwIHRoZSBjb3JyZXNwb25kaW5nIGNyZWRlbnRpYWwgcHVibGljIGtleS4KKyAgICAgICAgLy8gICAgLT4gVE8gQkUgTE9PS0VEIFVQIEJZIElNUExFTUVOVEFUSU9OCisKKyAgICAgICAgLy8gNS4gTGV0IEpTT050ZXh0IGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyBVVEYtOCBkZWNvZGUgb24gdGhlIHZhbHVlIG9mIGNEYXRhLgorICAgICAgICBpZiAoIVxpc19vYmplY3QoJGNsaWVudERhdGEpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgY2xpZW50IGRhdGEnLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9EQVRBKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIDcuIFZlcmlmeSB0aGF0IHRoZSB2YWx1ZSBvZiBDLnR5cGUgaXMgdGhlIHN0cmluZyB3ZWJhdXRobi5nZXQuCisgICAgICAgIGlmICghXHByb3BlcnR5X2V4aXN0cygkY2xpZW50RGF0YSwgJ3R5cGUnKSB8fCAkY2xpZW50RGF0YS0+dHlwZSAhPT0gJ3dlYmF1dGhuLmdldCcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCB0eXBlJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfVFlQRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyA4LiBWZXJpZnkgdGhhdCB0aGUgdmFsdWUgb2YgQy5jaGFsbGVuZ2UgbWF0Y2hlcyB0aGUgY2hhbGxlbmdlIHRoYXQgd2FzIHNlbnQgdG8gdGhlCisgICAgICAgIC8vICAgIGF1dGhlbnRpY2F0b3IgaW4gdGhlIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBwYXNzZWQgdG8gdGhlIGdldCgpIGNhbGwuCisgICAgICAgIGlmICghXHByb3BlcnR5X2V4aXN0cygkY2xpZW50RGF0YSwgJ2NoYWxsZW5nZScpIHx8IEJ5dGVCdWZmZXI6OmZyb21CYXNlNjRVcmwoJGNsaWVudERhdGEtPmNoYWxsZW5nZSktPmdldEJpbmFyeVN0cmluZygpICE9PSAkY2hhbGxlbmdlLT5nZXRCaW5hcnlTdHJpbmcoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIGNoYWxsZW5nZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX0NIQUxMRU5HRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyA5LiBWZXJpZnkgdGhhdCB0aGUgdmFsdWUgb2YgQy5vcmlnaW4gbWF0Y2hlcyB0aGUgUmVseWluZyBQYXJ0eSdzIG9yaWdpbi4KKyAgICAgICAgaWYgKCFccHJvcGVydHlfZXhpc3RzKCRjbGllbnREYXRhLCAnb3JpZ2luJykgfHwgISR0aGlzLT5fY2hlY2tPcmlnaW4oJGNsaWVudERhdGEtPm9yaWdpbikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbignaW52YWxpZCBvcmlnaW4nLCBXZWJBdXRobkV4Y2VwdGlvbjo6SU5WQUxJRF9PUklHSU4pOworICAgICAgICB9CisKKyAgICAgICAgLy8gMTEuIFZlcmlmeSB0aGF0IHRoZSBycElkSGFzaCBpbiBhdXRoRGF0YSBpcyB0aGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBSUCBJRCBleHBlY3RlZCBieSB0aGUgUmVseWluZyBQYXJ0eS4KKyAgICAgICAgaWYgKCRhdXRoZW50aWNhdG9yT2JqLT5nZXRScElkSGFzaCgpICE9PSAkdGhpcy0+X3JwSWRIYXNoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ2ludmFsaWQgcnBJZCBoYXNoJywgV2ViQXV0aG5FeGNlcHRpb246OklOVkFMSURfUkVMWUlOR19QQVJUWSk7CisgICAgICAgIH0KKworICAgICAgICAvLyAxMi4gVmVyaWZ5IHRoYXQgdGhlIFVzZXIgUHJlc2VudCBiaXQgb2YgdGhlIGZsYWdzIGluIGF1dGhEYXRhIGlzIHNldAorICAgICAgICBpZiAoJHJlcXVpcmVVc2VyUHJlc2VudCAmJiAhJGF1dGhlbnRpY2F0b3JPYmotPmdldFVzZXJQcmVzZW50KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbigndXNlciBub3QgcHJlc2VudCBkdXJpbmcgYXV0aGVudGljYXRpb24nLCBXZWJBdXRobkV4Y2VwdGlvbjo6VVNFUl9QUkVTRU5UKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIDEzLiBJZiB1c2VyIHZlcmlmaWNhdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhpcyBhc3NlcnRpb24sIHZlcmlmeSB0aGF0IHRoZSBVc2VyIFZlcmlmaWVkIGJpdCBvZiB0aGUgZmxhZ3MgaW4gYXV0aERhdGEgaXMgc2V0LgorICAgICAgICBpZiAoJHJlcXVpcmVVc2VyVmVyaWZpY2F0aW9uICYmICEkYXV0aGVudGljYXRvck9iai0+Z2V0VXNlclZlcmlmaWVkKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBXZWJBdXRobkV4Y2VwdGlvbigndXNlciBub3QgdmVyaWZpY2F0ZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uJywgV2ViQXV0aG5FeGNlcHRpb246OlVTRVJfVkVSSUZJQ0FURUQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gMTQuIFZlcmlmeSB0aGUgdmFsdWVzIG9mIHRoZSBjbGllbnQgZXh0ZW5zaW9uIG91dHB1dHMKKyAgICAgICAgLy8gICAgIChleHRlbnNpb25zIG5vdCBpbXBsZW1lbnRlZCkKKworICAgICAgICAvLyAxNi4gVXNpbmcgdGhlIGNyZWRlbnRpYWwgcHVibGljIGtleSBsb29rZWQgdXAgaW4gc3RlcCAzLCB2ZXJpZnkgdGhhdCBzaWcgaXMgYSB2YWxpZCBzaWduYXR1cmUKKyAgICAgICAgLy8gICAgIG92ZXIgdGhlIGJpbmFyeSBjb25jYXRlbmF0aW9uIG9mIGF1dGhEYXRhIGFuZCBoYXNoLgorICAgICAgICAkZGF0YVRvVmVyaWZ5ID0gJyc7CisgICAgICAgICRkYXRhVG9WZXJpZnkgLj0gJGF1dGhlbnRpY2F0b3JEYXRhOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49ICRjbGllbnREYXRhSGFzaDsKKworICAgICAgICAkcHVibGljS2V5ID0gXG9wZW5zc2xfcGtleV9nZXRfcHVibGljKCRjcmVkZW50aWFsUHVibGljS2V5KTsKKyAgICAgICAgaWYgKCRwdWJsaWNLZXkgPT09IGZhbHNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgV2ViQXV0aG5FeGNlcHRpb24oJ3B1YmxpYyBrZXkgaW52YWxpZCcsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1BVQkxJQ19LRVkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFxvcGVuc3NsX3ZlcmlmeSgkZGF0YVRvVmVyaWZ5LCAkc2lnbmF0dXJlLCAkcHVibGljS2V5LCBPUEVOU1NMX0FMR09fU0hBMjU2KSAhPT0gMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdpbnZhbGlkIHNpZ25hdHVyZScsIFdlYkF1dGhuRXhjZXB0aW9uOjpJTlZBTElEX1NJR05BVFVSRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyAxNy4gSWYgdGhlIHNpZ25hdHVyZSBjb3VudGVyIHZhbHVlIGF1dGhEYXRhLnNpZ25Db3VudCBpcyBub256ZXJvLAorICAgICAgICAvLyAgICAgaWYgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzaWduYXR1cmUgY291bnRlciB2YWx1ZSBzdG9yZWQsCisgICAgICAgIC8vICAgICBpcyBhIHNpZ25hbCB0aGF0IHRoZSBhdXRoZW50aWNhdG9yIG1heSBiZSBjbG9uZWQKKyAgICAgICAgJHNpZ25hdHVyZUNvdW50ZXIgPSAkYXV0aGVudGljYXRvck9iai0+Z2V0U2lnbkNvdW50KCk7CisgICAgICAgIGlmICgkc2lnbmF0dXJlQ291bnRlciA+IDApIHsKKyAgICAgICAgICAgICR0aGlzLT5fc2lnbmF0dXJlQ291bnRlciA9ICRzaWduYXR1cmVDb3VudGVyOworICAgICAgICAgICAgaWYgKCRwcmV2U2lnbmF0dXJlQ250ICE9PSBudWxsICYmICRwcmV2U2lnbmF0dXJlQ250ID49ICRzaWduYXR1cmVDb3VudGVyKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdlYkF1dGhuRXhjZXB0aW9uKCdzaWduYXR1cmUgY291bnRlciBub3QgdmFsaWQnLCBXZWJBdXRobkV4Y2VwdGlvbjo6U0lHTkFUVVJFX0NPVU5URVIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQUklWQVRFCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIGNoZWNrcyBpZiB0aGUgb3JpZ2luIG1hdGNocyB0aGUgUlAgSUQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRvcmlnaW4KKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4KKyAgICAgKiBAdGhyb3dzIFdlYkF1dGhuRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBfY2hlY2tPcmlnaW4oJG9yaWdpbikgeworICAgICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI3JwLWlkCisKKyAgICAgICAgLy8gVGhlIG9yaWdpbidzIHNjaGVtZSBtdXN0IGJlIGh0dHBzCisgICAgICAgIGlmICgkdGhpcy0+X3JwSWQgIT09ICdsb2NhbGhvc3QnICYmIFxwYXJzZV91cmwoJG9yaWdpbiwgUEhQX1VSTF9TQ0hFTUUpICE9PSAnaHR0cHMnKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBleHRyYWN0IGhvc3QgZnJvbSBvcmlnaW4KKyAgICAgICAgJGhvc3QgPSBccGFyc2VfdXJsKCRvcmlnaW4sIFBIUF9VUkxfSE9TVCk7CisgICAgICAgICRob3N0ID0gXHRyaW0oJGhvc3QsICcuJyk7CisKKyAgICAgICAgLy8gVGhlIFJQIElEIG11c3QgYmUgZXF1YWwgdG8gdGhlIG9yaWdpbidzIGVmZmVjdGl2ZSBkb21haW4sIG9yIGEgcmVnaXN0cmFibGUKKyAgICAgICAgLy8gZG9tYWluIHN1ZmZpeCBvZiB0aGUgb3JpZ2luJ3MgZWZmZWN0aXZlIGRvbWFpbi4KKyAgICAgICAgcmV0dXJuIFxwcmVnX21hdGNoKCcvJyAuIFxwcmVnX3F1b3RlKCR0aGlzLT5fcnBJZCkgLiAnJC9pJywgJGhvc3QpID09PSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIGdlbmVyYXRlcyBhIG5ldyBjaGFsbGFuZ2UKKyAgICAgKiBAcGFyYW0gaW50ICRsZW5ndGgKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqIEB0aHJvd3MgV2ViQXV0aG5FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIF9jcmVhdGVDaGFsbGVuZ2UoJGxlbmd0aCA9IDMyKSB7CisgICAgICAgIGlmICghJHRoaXMtPl9jaGFsbGVuZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5fY2hhbGxlbmdlID0gQnl0ZUJ1ZmZlcjo6cmFuZG9tQnVmZmVyKCRsZW5ndGgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkdGhpcy0+X2NoYWxsZW5nZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9XZWJBdXRobkV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9XZWJBdXRobkV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIzZjdkOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL1dlYkF1dGhuRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorbmFtZXNwYWNlIFdlYkF1dGhuOworCisvKioKKyAqIEBhdXRob3IgTHVrYXMgQnVjaHMKKyAqIEBsaWNlbnNlIGh0dHBzOi8vZ2l0aHViLmNvbS9sYnVjaHMvV2ViQXV0aG4vYmxvYi9tYXN0ZXIvTElDRU5TRSBNSVQKKyAqLworY2xhc3MgV2ViQXV0aG5FeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uIHsKKyAgICBjb25zdCBJTlZBTElEX0RBVEEgPSAxOworICAgIGNvbnN0IElOVkFMSURfVFlQRSA9IDI7CisgICAgY29uc3QgSU5WQUxJRF9DSEFMTEVOR0UgPSAzOworICAgIGNvbnN0IElOVkFMSURfT1JJR0lOID0gNDsKKyAgICBjb25zdCBJTlZBTElEX1JFTFlJTkdfUEFSVFkgPSA1OworICAgIGNvbnN0IElOVkFMSURfU0lHTkFUVVJFID0gNjsKKyAgICBjb25zdCBJTlZBTElEX1BVQkxJQ19LRVkgPSA3OworICAgIGNvbnN0IENFUlRJRklDQVRFX05PVF9UUlVTVEVEID0gODsKKyAgICBjb25zdCBVU0VSX1BSRVNFTlQgPSA5OworICAgIGNvbnN0IFVTRVJfVkVSSUZJQ0FURUQgPSAxMDsKKyAgICBjb25zdCBTSUdOQVRVUkVfQ09VTlRFUiA9IDExOworICAgIGNvbnN0IENSWVBUT19TVFJPTkcgPSAxMzsKKyAgICBjb25zdCBCWVRFQlVGRkVSID0gMTQ7CisgICAgY29uc3QgQ0JPUiA9IDE1OworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtZXNzYWdlID0gIiIsICRjb2RlID0gMCwgJHByZXZpb3VzID0gbnVsbCkgeworICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRtZXNzYWdlLCAkY29kZSwgJHByZXZpb3VzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL2FwcGxlLnBlbSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvYXBwbGUucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZTZiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL2FwcGxlLnBlbQpAQCAtMCwwICsxLDQ4IEBACisgICAgQ2VydGlmaWNhdGU6CisgICAgRGF0YToKKyAgICAgICAgVmVyc2lvbjogMyAoMHgyKQorICAgICAgICBTZXJpYWwgTnVtYmVyOgorICAgICAgICAgICAgNjg6MWQ6MDE6NmM6N2E6M2M6ZTM6MDI6MjU6YTU6MDE6OTQ6Mjg6NDc6NTc6NzEKKworICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IGVjZHNhLXdpdGgtU0hBMzg0CisKKyAgICAgICAgSXNzdWVyOgorICAgICAgICAgICAgc3RhdGVPclByb3ZpbmNlTmFtZSAgICAgICA9IENhbGlmb3JuaWEKKyAgICAgICAgICAgIG9yZ2FuaXphdGlvbk5hbWUgICAgICAgICAgPSBBcHBsZSBJbmMuCisgICAgICAgICAgICBjb21tb25OYW1lICAgICAgICAgICAgICAgID0gQXBwbGUgV2ViQXV0aG4gUm9vdCBDQQorCisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3JlOiBNYXIgMTggMTg6MjE6MzIgMjAyMCBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IE1hciAxNSAwMDowMDowMCAyMDQ1IEdNVAorCisgICAgICAgIFN1YmplY3Q6CisgICAgICAgICAgICBzdGF0ZU9yUHJvdmluY2VOYW1lICAgICAgID0gQ2FsaWZvcm5pYQorICAgICAgICAgICAgb3JnYW5pemF0aW9uTmFtZSAgICAgICAgICA9IEFwcGxlIEluYy4KKyAgICAgICAgICAgIGNvbW1vbk5hbWUgICAgICAgICAgICAgICAgPSBBcHBsZSBXZWJBdXRobiBSb290IENBCisKKyAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86CisgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogaWQtZWNQdWJsaWNLZXkKKyAgICAgICAgICAgICAgICBBU04xIE9JRDogc2VjcDM4NHIxCisKKyAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6CisgICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IGNyaXRpY2FsCisgICAgICAgICAgICAgICAgQ0E6VFJVRQorICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6CisgICAgICAgICAgICAgICAgMjY6RDc6NjQ6RDk6QzU6Nzg6QzI6NUE6Njc6RDE6QTc6REU6NkI6MTI6RDA6MUI6NjM6RjE6QzY6RDcKKyAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IGNyaXRpY2FsCisgICAgICAgICAgICAgICAgQ2VydGlmaWNhdGUgU2lnbiwgQ1JMIFNpZ24KKworLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDRWpDQ0FabWdBd0lCQWdJUWFCMEJiSG84NHdJbHBRR1VLRWRYY1RBS0JnZ3Foa2pPUFFRREF6QkxNUjh3CitIUVlEVlFRRERCWkJjSEJzWlNCWFpXSkJkWFJvYmlCU2IyOTBJRU5CTVJNd0VRWURWUVFLREFwQmNIQnNaU0JKCitibU11TVJNd0VRWURWUVFJREFwRFlXeHBabTl5Ym1saE1CNFhEVEl3TURNeE9ERTRNakV6TWxvWERUUTFNRE14CitOVEF3TURBd01Gb3dTekVmTUIwR0ExVUVBd3dXUVhCd2JHVWdWMlZpUVhWMGFHNGdVbTl2ZENCRFFURVRNQkVHCitBMVVFQ2d3S1FYQndiR1VnU1c1akxqRVRNQkVHQTFVRUNBd0tRMkZzYVdadmNtNXBZVEIyTUJBR0J5cUdTTTQ5CitBZ0VHQlN1QkJBQWlBMklBQkNKQ1EycFRWaHpqbDRXbzZJaEh0TVNBek8yY3YrSDlEUUtldjMvL2ZHNTlHMTFrCit4dTllSTAvN282VjV1U2hCcGUxdTZsNm1TMTlTMUZFaDZ5R2xqblpBSisyR05QMW1pL1lLMmtTWEl1VEhqeEEvCitwY29SZjdYa090TzRvMXFsY2FOQ01FQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVKdGRrCisyY1Y0d2xwbjBhZmVheExRRzJQeHh0Y3dEZ1lEVlIwUEFRSC9CQVFEQWdFR01Bb0dDQ3FHU000OUJBTURBMmNBCitNR1FDTUZyWis5RHNKMVBXOWhmTmRCeXdaRHNXRGJXRnAyOGl0MWQvNXcyUlBrUlgzQmJuL1ViRFROTHg3SnIzCitqQUdHaVFJd0hGaitkSlpZVUpSNzg2b3NCeUJlbEpZc1ZaZDJHYkhRdTIwOWI1UkNtR1EyMWdwU0FrOVFaVzRCCisxYldlVDB2VAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy9nbG9iYWxTaWduLnBlbSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvZ2xvYmFsU2lnbi5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA3ZGUwZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvZ2xvYmFsU2lnbi5wZW0KQEAgLTAsMCArMSwzNyBAQAorQ2VydGlmaWNhdGU6CisgICAgRGF0YToKKyAgICAgICAgVmVyc2lvbjogMyAoMHgyKQorICAgICAgICBTZXJpYWwgTnVtYmVyOgorICAgICAgICAgICAgMDQ6MDA6MDA6MDA6MDA6MDE6MGY6ODY6MjY6ZTY6MGQKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgSXNzdWVyOiBPVT1HbG9iYWxTaWduIFJvb3QgQ0EgLSBSMiwgTz1HbG9iYWxTaWduLCBDTj1HbG9iYWxTaWduCisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3JlOiBEZWMgMTUgMDg6MDA6MDAgMjAwNiBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IERlYyAxNSAwODowMDowMCAyMDIxIEdNVAorICAgICAgICBTdWJqZWN0OiBPVT1HbG9iYWxTaWduIFJvb3QgQ0EgLSBSMiwgTz1HbG9iYWxTaWduLCBDTj1HbG9iYWxTaWduCisgICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgorICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KKyAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCisKKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHVqQ0NBcUtnQXdJQkFnSUxCQUFBQUFBQkQ0WW01ZzB3RFFZSktvWklodmNOQVFFRkJRQXdUREVnTUI0RworQTFVRUN4TVhSMnh2WW1Gc1UybG5iaUJTYjI5MElFTkJJQzBnVWpJeEV6QVJCZ05WQkFvVENrZHNiMkpoYkZOcAorWjI0eEV6QVJCZ05WQkFNVENrZHNiMkpoYkZOcFoyNHdIaGNOTURZeE1qRTFNRGd3TURBd1doY05NakV4TWpFMQorTURnd01EQXdXakJNTVNBd0hnWURWUVFMRXhkSGJHOWlZV3hUYVdkdUlGSnZiM1FnUTBFZ0xTQlNNakVUTUJFRworQTFVRUNoTUtSMnh2WW1Gc1UybG5iakVUTUJFR0ExVUVBeE1LUjJ4dlltRnNVMmxuYmpDQ0FTSXdEUVlKS29aSQoraHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLYlBKQTYrTG04b21VVkN4S3MrSVZTYkM5Ti9oSEQ2RXJQTAordjRkZnhuK0cwN0l3WE5iOXJmRjczT1g0WUpZSmtoRDEwRlBlKzN0K2M0aXNVb2g3U3FiS1NhWmVxS2VNV2hHOAorZW9McnZvenBzNnlXSlFlWFNwa3FCeSswSG5lL2lnKzFBbndibHJqRnVUb3N2TllTdWV0WmZlTFFCb1pmWGtscQordFRsZWlEVHN2SGdNQ0ppRWJLak5TN1NnZlF4NVRmQzRMY3NoeXRWc1czM2hvQ21Fb2ZuVGxFbkxKR0tSSUx6ZAorQzlYWnpQbnFKd29yYzVIR25SdXN5TXZvNEtEMEw1Q0xUZnV3Tmh2MkdYcUY0RzN5WVJPSVhKL2drd3BSbDRwYQorenErcjFmZXFDYXBndmR6Wlg5OXlxV0FUWGdBQnlVcjZQNlRxQndNaEFvNkN5Z1BDbTQ4Q0F3RUFBYU9CbkRDQgorbVRBT0JnTlZIUThCQWY4RUJBTUNBUVl3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVbStJSAorVjJjY0hzQnFCdDVadEpvdDM5d1poaTR3TmdZRFZSMGZCQzh3TFRBcm9DbWdKNFlsYUhSMGNEb3ZMMk55YkM1bgorYkc5aVlXeHphV2R1TG01bGRDOXliMjkwTFhJeUxtTnliREFmQmdOVkhTTUVHREFXZ0JTYjRnZFhaeHdld0dvRworM2xtMG1pM2YzQm1HTGpBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQW1ZRlRoeHhvbDRhUjdPQkt1RVFMcTRHcworSjAvV3diZ2NRM2l6REpyODZpdzhibUViVFVzcDlaOEZIU2JCdU9tREFHSkZ0cWtJazdtcE0wc1ltc0w0aDRoTworMjkxeE5CckJWTnBHUCtEVEtxdHRWQ0wxT21MTklHKzZLWW5YM1pIdTAxeWlQcUZiUWZYZjVXUkRMZW5WT2F2Uworb3QrM2k5REFnQmtjUmNBdGpPajRMYVIwVmtuRkJiVlBGZDV1UkhnNWg2aCt1L041R0pHNzlHK2R3ZkNNTll4ZAorQWZ2RGJibnZSRzE1UmpGK0N2NnBnc0gvNzZ0dUlNUlF5VitkVFpzWGpBemxBY21nUVdwelUvcWxVTFJ1SlEvNworVEJqMC9WTFpqbW14NkJFUDNvalkreDFKOTZyZWxjOGdlTUpnRXRzbFFJeHEvSDVDT0VCa0V2ZWVnZUdUTGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvZ29vZ2xlSGFyZHdhcmUucGVtIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy9nb29nbGVIYXJkd2FyZS5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNmZTY0YQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvZ29vZ2xlSGFyZHdhcmUucGVtCkBAIC0wLDAgKzEsMTMwIEBACitHb29nbGUgSGFyZHdhcmUgQXR0ZXN0YXRpb24gUm9vdCBjZXJ0aWZpY2F0ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS90cmFpbmluZy9hcnRpY2xlcy9zZWN1cml0eS1rZXktYXR0ZXN0YXRpb24uaHRtbAorCitDZXJ0aWZpY2F0ZToKKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAzICgweDIpCisgICAgICAgIFNlcmlhbCBOdW1iZXI6CisgICAgICAgICAgICBlODpmYToxOTo2MzoxNDpkMjpmYToxOAorICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgIElzc3Vlcjogc2VyaWFsTnVtYmVyID0gZjkyMDA5ZTg1M2I2YjA0NQorICAgICAgICBWYWxpZGl0eQorICAgICAgICAgICAgTm90IEJlZm9yZTogTWF5IDI2IDE2OjI4OjUyIDIwMTYgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBNYXkgMjQgMTY6Mjg6NTIgMjAyNiBHTVQKKyAgICAgICAgU3ViamVjdDogc2VyaWFsTnVtYmVyID0gZjkyMDA5ZTg1M2I2YjA0NQorICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKKyAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCisgICAgICAgICAgICAgICAgUHVibGljLUtleTogKDQwOTYgYml0KQorICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKKyAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6CisgICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjoKKyAgICAgICAgICAgICAgICAzNjo2MTpFMTowMDo3Qzo4ODowNTowOTo1MTo4Qjo0NDo2Qzo0NzpGRjoxQTo0QzpDOTpFQTo0RjoxMgorICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjoKKyAgICAgICAgICAgICAgICBrZXlpZDozNjo2MTpFMTowMDo3Qzo4ODowNTowOTo1MTo4Qjo0NDo2Qzo0NzpGRjoxQTo0QzpDOTpFQTo0RjoxMgorCisgICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IGNyaXRpY2FsCisgICAgICAgICAgICAgICAgQ0E6VFJVRQorICAgICAgICAgICAgWDUwOXYzIEtleSBVc2FnZTogY3JpdGljYWwKKyAgICAgICAgICAgICAgICBEaWdpdGFsIFNpZ25hdHVyZSwgQ2VydGlmaWNhdGUgU2lnbiwgQ1JMIFNpZ24KKyAgICAgICAgICAgIFg1MDl2MyBDUkwgRGlzdHJpYnV0aW9uIFBvaW50czoKKworICAgICAgICAgICAgICAgIEZ1bGwgTmFtZToKKyAgICAgICAgICAgICAgICAgIFVSSTpodHRwczovL2FuZHJvaWQuZ29vZ2xlYXBpcy5jb20vYXR0ZXN0YXRpb24vY3JsLworCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KKworCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUZZRENDQTBpZ0F3SUJBZ0lKQU9qNkdXTVUwdm9ZTUEwR0NTcUdTSWIzRFFFQkN3VUFNQnN4R1RBWEJnTlYKK0JBVVRFR1k1TWpBd09XVTROVE5pTm1Jd05EVXdIaGNOTVRZd05USTJNVFl5T0RVeVdoY05Nall3TlRJME1UWXkKK09EVXlXakFiTVJrd0Z3WURWUVFGRXhCbU9USXdNRGxsT0RVellqWmlNRFExTUlJQ0lqQU5CZ2txaGtpRzl3MEIKK0FRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXI3YkhnaXV4cHdIc0s3UXVpOHhVRm1Pcjc1Z3ZNc2QvZFRFRERKZFMKK1N4dGY2QW43eHlxcFJSOTBQTDJhYnhNMWRFcWxYbmYydHF3MU5lNFh3bDVqbFJmZG5KTG1OMHBUeS80bGo0LzcKK3R2MFNrM2lpS2t5cG5FVXRSNldmTWdIMFFaZktITTErZGkreTlURlJ0djZ5Ly8wcmIrVCtXOGE5bnNOTC9nZ2oKK25hcjg2NDYxcU8wck9zMmNYanAza09HMUZFSjVNVm1GbUJHdG5yS3BhNzNYcFh5VHFSeEIvTTBuMW4vVzluR3EKK0M0RlNZYTA0VDZONVJJWkdCTjJ6Mk1UNUlLR2JGbGJDOFVyVzBEeFc3QVlJbVFRY0h0R2wvbTAwUUxWV3V0SFEKK29WSlluRlBsWFRjSFl2QVNMdStSaGhzYkRteE1nSkowbWNEcHZzQzRQanZCK1R4eXdFbGdTNzB2RTBYbUxEK08KK0p0dnNCc2xIWnZQQktDT2RUME1TK3RnU09JZmdhK3oxWjFnNytEVmFnZjdxdXZtYWc4amZQaW95S3Z4bksvRWcKK3NUVVZpMmdoenE4d20yN3VkL21JTTdBWTJxRU9SUjhHbzNUVkI0SHpXUWdwWnJ0M2k1TUlsQ2FZNTA0THpTUmkKK2lnSEN6QVBsSHdzK1cwckI1TitlcjUvMnBKS25mQlNEaUNpRkFWdENMT1o3Z0xpTW0wamhPMkI2dFVYSEkvK00KK1JQankwMmk1OWxJTk1SUmV2NTZHS3RjZDlxTy8wa1VKV2RaVGRBMlhvUzgyaXhQdlp0WFFwVXB1TDEyYWIrOUUKK2FESzhaNFJISllZZkNUM1E1dk5BWGFpV1ErOFBUV20yUWdCUi9ia3dTV2MrTnBVRmdOUE45UHZRaThXRWc1VW0KK0FHTUNBd0VBQWFPQnBqQ0JvekFkQmdOVkhRNEVGZ1FVTm1IaEFIeUlCUWxSaTBSc1IvOGFUTW5xVHhJd0h3WUQKK1ZSMGpCQmd3Rm9BVU5tSGhBSHlJQlFsUmkwUnNSLzhhVE1ucVR4SXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU8KK0JnTlZIUThCQWY4RUJBTUNBWVl3UUFZRFZSMGZCRGt3TnpBMW9ET2dNWVl2YUhSMGNITTZMeTloYm1SeWIybGsKK0xtZHZiMmRzWldGd2FYTXVZMjl0TDJGMGRHVnpkR0YwYVc5dUwyTnliQzh3RFFZSktvWklodmNOQVFFTEJRQUQKK2dnSUJBQ0RJdzQxTDNLbFhHMGFNaVMvL2NxckcrRVNoSFVHbzhITnN3MzBXMWtKdGpuNlVCd1JNNmpubWl3ZkIKK1BiOFZBOTFjaGIydnNzQXRYMnpiVHZxQko5K0xCUEdDZHcvRTUzUmJmODZxaHhLYWlBSE9qcHZBeTVZM20wMG0KK3FDMHcvWnd2anUxdHdiNHZoTGFKNU5rVUpZc1VTN3JtSktISEJuRVRMaThHRnFpRXNxVFdwRy82aWJZQ3Y3clkKK0RCSkRjUjlXNjJCVzlqZklvQlFjeFVDVUpvdU1QSDI1bExOY0RjMXNzcXZDMnY3aVVnSTlMZW9NMXNOb3ZxUG0KK1FVaUc5ckhsaTF2WHh6Q3lhTVRqd2Z0a0pMa2Y2NzI0REZodUt1ZzJqSVRWMFFrWHZhSldGNG5VYUhPVE5BNHUKK0pVOVdEdlpMSTFqODNBKy94bkFKVXVjSXYvekdKMUFNSDJib0hxRjhDWTE2THBzWWdCdDZ0S3h4V0gwMFhjeUQKK0NkVzJLbEJDZXFiUVBjc0ZtV3lXdWd4ZGNla2hZc0FXeW9TZjgxOE5Vc1pkQldCYVIvT3VrWHJOTGZrUTc5SXkKK1pvaFpidmFiTy9YK01WVDNycmlBb0tjOG9FMlV3czZERis2MFBWNy9XSVBqTnZYeVNkcXNwSW1TTjc4bWZseEQKK3F3THFSQllrQTNJNzVxcHBMR0c5cnA3VUNkUmp4TWw4WkRCbGQrN3l2SFZndDFjVnpKeDl4bnlHQ0MyM1VhaWMKK01EU1hZckI0STRXSFhQR2p4aFp1Q3VQQkxUZE9MVThZUnZNWWRFdlllYldITXB2d0dDRjZiQXgzSkJwSWVPUTEKK3dEQjV5MFVTaWNWM1lnWUdtaStOWmZoQTRVUlNoNzdZZDZ1dUpPSkVOUmFOVlR6aworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKKyAgICBDZXJ0aWZpY2F0ZToKKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAzICgweDIpCisgICAgICAgIFNlcmlhbCBOdW1iZXI6IDE1MzUyNzU2MTMwMTM1ODU2ODE5ICgweGQ1MGZmMjViYTNmMmQ2YjMpCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgSXNzdWVyOgorICAgICAgICAgICAgc2VyaWFsTnVtYmVyICAgICAgICAgICAgICA9IGY5MjAwOWU4NTNiNmIwNDUKKyAgICAgICAgVmFsaWRpdHkKKyAgICAgICAgICAgIE5vdCBCZWZvcmU6IE5vdiAyMiAyMDozNzo1OCAyMDE5IEdNVAorICAgICAgICAgICAgTm90IEFmdGVyIDogTm92IDE4IDIwOjM3OjU4IDIwMzQgR01UCisgICAgICAgIFN1YmplY3Q6CisgICAgICAgICAgICBzZXJpYWxOdW1iZXIgICAgICAgICAgICAgID0gZjkyMDA5ZTg1M2I2YjA0NQorICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKKyAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCisgICAgICAgICAgICAgICAgUHVibGljLUtleTogKDQwOTYgYml0KQorICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKKyAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6CisgICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjoKKyAgICAgICAgICAgICAgICAzNjo2MTpFMTowMDo3Qzo4ODowNTowOTo1MTo4Qjo0NDo2Qzo0NzpGRjoxQTo0QzpDOTpFQTo0RjoxMgorICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjoKKyAgICAgICAgICAgICAgICBrZXlpZDozNjo2MTpFMTowMDo3Qzo4ODowNTowOTo1MTo4Qjo0NDo2Qzo0NzpGRjoxQTo0QzpDOTpFQTo0RjoxMgorCisgICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IGNyaXRpY2FsCisgICAgICAgICAgICAgICAgQ0E6VFJVRQorICAgICAgICAgICAgWDUwOXYzIEtleSBVc2FnZTogY3JpdGljYWwKKyAgICAgICAgICAgICAgICBDZXJ0aWZpY2F0ZSBTaWduCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KKworCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUZIRENDQXdTZ0F3SUJBZ0lKQU5VUDhsdWo4dGF6TUEwR0NTcUdTSWIzRFFFQkN3VUFNQnN4R1RBWEJnTlYKK0JBVVRFR1k1TWpBd09XVTROVE5pTm1Jd05EVXdIaGNOTVRreE1USXlNakF6TnpVNFdoY05NelF4TVRFNE1qQXoKK056VTRXakFiTVJrd0Z3WURWUVFGRXhCbU9USXdNRGxsT0RVellqWmlNRFExTUlJQ0lqQU5CZ2txaGtpRzl3MEIKK0FRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXI3YkhnaXV4cHdIc0s3UXVpOHhVRm1Pcjc1Z3ZNc2QvZFRFRERKZFMKK1N4dGY2QW43eHlxcFJSOTBQTDJhYnhNMWRFcWxYbmYydHF3MU5lNFh3bDVqbFJmZG5KTG1OMHBUeS80bGo0LzcKK3R2MFNrM2lpS2t5cG5FVXRSNldmTWdIMFFaZktITTErZGkreTlURlJ0djZ5Ly8wcmIrVCtXOGE5bnNOTC9nZ2oKK25hcjg2NDYxcU8wck9zMmNYanAza09HMUZFSjVNVm1GbUJHdG5yS3BhNzNYcFh5VHFSeEIvTTBuMW4vVzluR3EKK0M0RlNZYTA0VDZONVJJWkdCTjJ6Mk1UNUlLR2JGbGJDOFVyVzBEeFc3QVlJbVFRY0h0R2wvbTAwUUxWV3V0SFEKK29WSlluRlBsWFRjSFl2QVNMdStSaGhzYkRteE1nSkowbWNEcHZzQzRQanZCK1R4eXdFbGdTNzB2RTBYbUxEK08KK0p0dnNCc2xIWnZQQktDT2RUME1TK3RnU09JZmdhK3oxWjFnNytEVmFnZjdxdXZtYWc4amZQaW95S3Z4bksvRWcKK3NUVVZpMmdoenE4d20yN3VkL21JTTdBWTJxRU9SUjhHbzNUVkI0SHpXUWdwWnJ0M2k1TUlsQ2FZNTA0THpTUmkKK2lnSEN6QVBsSHdzK1cwckI1TitlcjUvMnBKS25mQlNEaUNpRkFWdENMT1o3Z0xpTW0wamhPMkI2dFVYSEkvK00KK1JQankwMmk1OWxJTk1SUmV2NTZHS3RjZDlxTy8wa1VKV2RaVGRBMlhvUzgyaXhQdlp0WFFwVXB1TDEyYWIrOUUKK2FESzhaNFJISllZZkNUM1E1dk5BWGFpV1ErOFBUV20yUWdCUi9ia3dTV2MrTnBVRmdOUE45UHZRaThXRWc1VW0KK0FHTUNBd0VBQWFOak1HRXdIUVlEVlIwT0JCWUVGRFpoNFFCOGlBVUpVWXRFYkVmL0dreko2azhTTUI4R0ExVWQKK0l3UVlNQmFBRkRaaDRRQjhpQVVKVVl0RWJFZi9Ha3pKNms4U01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RnWUQKK1ZSMFBBUUgvQkFRREFnSUVNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJPTWFCYzhvdW1YYjJ2b2M3WENXbnUKK1hLaEJCSzNlMktNR3ozOXQ3bEEzWFhSZTJaTExBa0xNNXkzSjd0VVJrZjVhMVN1dGZkT3lYQW1lRTZTUm84M1UKK2g2V3N6b2RtTWt4SzVHTTRKR3JudDRwQmlzdTVpZ1hFeWRhVzdxcTJDZEM2RE9HakcrbUVrTjgvVEE2cDNjbm8KK0wvc1B5ejZldmRqTGxTZUo4ckZCSDZ4V3lJWkNicmNwWUVKelhhVU9FYXh4WHhnWXo1L2NUaVZLTjJNMUcyb2sKK1FCVUlZU1k2YmpFTDRhVU41Y2ZvN29nUDNVdmxpRW8zRW8wWWd3dXpSMnYwS1I2QzFjWnFaSlNUbmdoSUMvdkEKK0QzMktkTlErYzNOK3ZsMk9Uc1VWTUMxR2lXa25nTngxT08xK2tYVytZVG5uVFVPdE9Jc3dVUC9WcWQ1U1lnQUkKK21NQWZZOFU5L2lJZ2tRajZUMlc2RnNTY3k5NElOOWZGaEUxVXR6bUxvQkl1VUZzVlhKTVR6K0p1Y3RoK0lxb1cKK0Z1YTl2MVI5My9rOThwNDFwanRGWCtIOERzbFZnZlAwOTd2anU0S0RscU42NHhWMWdydzNaTGw0Q2lPZS9BOTEKK29lTG0yVUhPcTZ3bjNlc0I0cjJFSVFLYjZqVFZHdTVzWUNjZFdwWHIwQVVWcWNBQlBkZ0wrSDdxSmd1QncwOW8KK2ptNnhOSXJ3Mk9vY3JES3N1ZGsvb2tyL0F3cUV5UEt3OVduTWxRZ0xJS3cxck9ERzJOdlU5b1IzR1ZHZE1rVUIKK1p1dEw4VnVGa0VSUUd0NnZRMk9DdzBzVjQ3Vk1rdVliYWNLL3h5WkZpUmNyUEpQYjQxemdiUWo5WEFFeUxLQ0gKK2V4MFNkRHJ4K3RXVURxRzhBdDJKSEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy9odWF3ZWkucGVtIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy9odWF3ZWkucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOTU0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL2h1YXdlaS5wZW0KQEAgLTAsMCArMSwzMSBAQAorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQorTUlJRlpEQ0NBMHlnQXdJQkFnSUlZc0xMVGVoQVhwWXdEUVlKS29aSWh2Y05BUUVMQlFBd1VERUxNQWtHQTFVRQ0KK0JoTUNRMDR4RHpBTkJnTlZCQW9NQmtoMVlYZGxhVEVUTUJFR0ExVUVDd3dLU0hWaGQyVnBJRU5DUnpFYk1Ca0cNCitBMVVFQXd3U1NIVmhkMlZwSUVOQ1J5QlNiMjkwSUVOQk1CNFhEVEUzTURneU1URXdOVFl5TjFvWERUUXlNRGd4DQorTlRFd05UWXlOMW93VURFTE1Ba0dBMVVFQmhNQ1EwNHhEekFOQmdOVkJBb01Ca2gxWVhkbGFURVRNQkVHQTFVRQ0KK0N3d0tTSFZoZDJWcElFTkNSekViTUJrR0ExVUVBd3dTU0hWaGQyVnBJRU5DUnlCU2IyOTBJRU5CTUlJQ0lqQU4NCitCZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUExT3lLbTNJZy82ZWliQjdVejJvOTNVcUdrMk03DQorODRXZGZGOG12ZmZ2dTIxOGQ2MUc1TTNQeDU0RTNrZWZVVGs1S3kxeXdIdnc3UnA5S0R1WXY3a3RhSGtrK3lyNQ0KKzlJaHNldTNhN2lNL0M2U25NU0d0K0xmQi9CY29iOUFidzk1RWlnWFE0eVFkZFg5aGJOcmluM0F3Wnc4d01qRUkNCitTWVlEbzVHdVlETDBOYkFpWWcyWTVHcGZZSXFSem9pNkdxRHorZXZMcnNsMjBrSmVDRVBnSlpONEpnMDBJcTlrDQorKytFS09aNUpjL1p4MjJaVWdLcGR3S0FCa3Z6c2hFZ0c2V1dVUEIrZ29zT2lMdisraW51LzlibERwRXpRWmhqWg0KKzlXVkhwVVJIREsxWWxDdnViVkFNaERwbmJxTkhaMEF4bFBsZXRkb3l1Z3JIL09MS2w1aW5oTVhOajNSZTdIbDgNCitXc0JXTFVLcDZzWEZmMGR2U0Z6cW5yMmpraGljUytLMklZWm5qZ2hDOWNPQlJPOGZua29uaDBFQnQwZXZqVUlLDQorcjVDbGJDS2lvQlg4SlUrZDRsZHRXT3BwMkZseGVGVExyZURKNVpCVTQvL2JRcFR3WU10N2d3TUsrTU81V3Rvaw0KK1V4M1VGOThaNkdkVWdibDZuQmpCZTgyYzdvSVFYaEhHSFBuVVJRTzdERFBneVZuTk9uVFBJa21pSEpoL2UzdmsNCitWaGlaTkhGQ0NMVGlwNkdvSlZyTHh3YjlpNHErZDB0aHc0ZG94Vko1TkI5T2ZETVY2NC95YkpncGY3bTNMZDJ5DQorRTBnc2YxcHJyUmxERkRYamxZeXFxcGYxbDlZMHUzY3RYbzdVcFhNZ2J5REVwVVFocTNhN3R4WlFPLzE3bHVURA0KK29BNlR6MUFEYXZ2QndIa0NBd0VBQWFOQ01FQXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01BOEdBMVVkRXdFQi93UUYNCitNQU1CQWY4d0hRWURWUjBPQkJZRUZLckUwM2xINkc0amErL3dxV3dpY3oxNkdXbWhNQTBHQ1NxR1NJYjNEUUVCDQorQ3dVQUE0SUNBUUMxZDNUTUIrVkhaZEdyV0piZmFCU2hGTmlDVE4vTWNlU0hPcHpCbjZKdW1RUDRON214Q093ZA0KK1JTc0dLUXhWMk5QSDdMVFhXTmhVdlV3NVNlazk2Rld4LytPYTdqc2ozV05BVnRtUzN6S3BDUTVpR2IwOFdJUk8NCitjRm54M29VUTVyY084ci9sVWs3UTJjTjBFK3JGNHhzZFFySDlrMmNkM2tBWFpYQmpmeGZLUEpUZFB5MVhuWlIvDQoraDhINUV3RUs1RFdqU3pLMXdLZDNHL0Z4ZG0zRTIzcGNyNEZaZ2RZZE9sRlNpcVcyVEozUWU2bEY0R09LT095ZA0KK1dIa3B1NTRpZVRzcW9ZY3VNS25LTWpUMlNMTk5ndjlHdTVpcGFHOE9sejZnOUM3SHRwOTQzbG1LLzFWdG5oZ2cNCitwTDNyRFRzRlgvK2VoazdPdHh1TnpSTUQ5bFhVdEVmb2s3ZjhYQjBkY0w0WmpuRWhEbXA1UVpxQzFrTXViSFF0DQorUW5UYXVFaXYwWWtTR093SkFVWnBLMVBJZmY1R2d4WFlmYUhmQkM2T3A0cTAycHBsNVEzVVJsN1hJallManZzOQ0KK3Q0Uzl4UGU4dGI2NDE2VjJmZTFkWjYydk9YTU1LSGtaalZpaGgrSWNlWXBKWUh1eWZLb1lKeWFoTE9RWFp5a0cNCitLNWlQQUVFdHEzSFBmTVZGNDNSS0hPd2ZockFINUt3ZWxVQS8wRWtjUjRHenRoMU1LRXFvamRuWU5lbWtrU3k3DQorYU5QUFQ0TEVtNVI3c1Y2dkcxQ2p3Ymd2UXJXQ2djNG5NYjhuZ2RmblZGN1lkcWpxaTlTQXFVeklrNCtVZjBaWQ0KKys2Ulk1SWNIZENhaVBhV0lFMXhVUlE4QjBEUlVVUnNRd1hkalpoZ0xOL0RLSnBDbDVhQ0N4Zz09DQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvaHlwZXJzZWN1LnBlbSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvaHlwZXJzZWN1LnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzZiMjRlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy9oeXBlcnNlY3UucGVtCkBAIC0wLDAgKzEsNTYgQEAKK0h5cGVyRklETyBVMkYgU2VjdXJpdHkgS2V5IEF0dGVzdGF0aW9uIENBCitodHRwczovL2h5cGVyc2VjdS5jb20vc3VwcG9ydC9kb3dubG9hZHMvYXR0ZXN0YXRpb24KKworTGFzdCBVcGRhdGU6IDIwMTctMDEtMDEKKworSHlwZXJGSURPIFUyRiBTZWN1cml0eSBLZXkgZGV2aWNlcyB3aGljaCBjb250YWluIGF0dGVzdGF0aW9uIGNlcnRpZmljYXRlcyBzaWduZWQgYnkgYSBzZXQgb2YgQ0FzLgorVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBDQSBjZXJ0aWZpY2F0ZXMgdGhhdCBSZWx5aW5nIFBhcnRpZXMgKFJQKSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGVpciBzb2Z0d2FyZQord2l0aCB0byBiZSBhYmxlIHRvIHZlcmlmeSBVMkYgZGV2aWNlIGNlcnRpZmljYXRlcy4KKworVGhlIGZpbGUgd2lsbCBiZSB1cGRhdGVkIGFzIG5lZWRlZCB3aGVuIHdlIHB1Ymxpc2ggbW9yZSBDQSBjZXJ0aWZpY2F0ZXMuCisKK0lzc3VlcjogQ049RlQgRklETyAwMTAwCisKKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQmpUQ0NBVE9nQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBWE1SVXdFd1lEVlFRREV3eEdWQ0JHU1VSUAorSURBeE1EQXdIaGNOTVRRd056QXhNVFV6TmpJMldoY05ORFF3TnpBek1UVXpOakkyV2pBWE1SVXdFd1lEVlFRRAorRXd4R1ZDQkdTVVJQSURBeE1EQXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU3hkTHhKeDhvbAorUzNEUzVjSUh6dW5QRjBnZzY5ZCtvOFpWQ01KdHBSdGxmQnpHdVZMNFloYVhrMlNDMmdwdFBUZ21wWkNWMnZiTgorZkFQaTVnT0YwdmJabzNBd2JqQWRCZ05WSFE0RUZnUVVYdDRqV2xZRGd3aGFQVStFcUxtZU05TG9QUk13UHdZRAorVlIwakJEZ3dOb0FVWHQ0aldsWURnd2hhUFUrRXFMbWVNOUxvUFJPaEc2UVpNQmN4RlRBVEJnTlZCQU1UREVaVQorSUVaSlJFOGdNREV3TUlJQkFUQU1CZ05WSFJNRUJUQURBUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDMgorRDlvOWNjb25LVG84KzRHWlB5WkJKM2FtYzhGMC9renlpZFg5ZGhyQUlBSWdNOW9jczVCVy9KZm1zaFZQOU1iKworSm9hL2tnWDRkV2JaeHJrMGlvVGZKWmc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworICAgIENlcnRpZmljYXRlOgorICAgIERhdGE6CisgICAgICAgIFZlcnNpb246IDMgKDB4MikKKyAgICAgICAgU2VyaWFsIE51bWJlcjogNDEwNyAoMHgxMDBiKQorICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IGVjZHNhLXdpdGgtU0hBMjU2CisgICAgICAgIElzc3VlcjoKKyAgICAgICAgICAgIGNvbW1vbk5hbWUgICAgICAgICAgICAgICAgPSBIWVBFUkZJRE8gMDIwMAorICAgICAgICAgICAgb3JnYW5pemF0aW9uTmFtZSAgICAgICAgICA9IEhZUEVSU0VDVQorICAgICAgICAgICAgY291bnRyeU5hbWUgICAgICAgICAgICAgICA9IENBCisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3JlOiBKYW4gIDEgMDA6MDA6MDAgMjAxOCBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IERlYyAzMSAyMzo1OTo1OSAyMDQ3IEdNVAorICAgICAgICBTdWJqZWN0OgorICAgICAgICAgICAgY29tbW9uTmFtZSAgICAgICAgICAgICAgICA9IEhZUEVSRklETyAwMjAwCisgICAgICAgICAgICBvcmdhbml6YXRpb25OYW1lICAgICAgICAgID0gSFlQRVJTRUNVCisgICAgICAgICAgICBjb3VudHJ5TmFtZSAgICAgICAgICAgICAgID0gQ0EKKworCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUJ4ekNDQVd5Z0F3SUJBZ0lDRUFzd0NnWUlLb1pJemowRUF3SXdPakVMTUFrR0ExVUVCaE1DUTBFeEVqQVEKK0JnTlZCQW9NQ1VoWlVFVlNVMFZEVlRFWE1CVUdBMVVFQXd3T1NGbFFSVkpHU1VSUElEQXlNREF3SUJjTk1UZ3cKK01UQXhNREF3TURBd1doZ1BNakEwTnpFeU16RXlNelU1TlRsYU1Eb3hDekFKQmdOVkJBWVRBa05CTVJJd0VBWUQKK1ZRUUtEQWxJV1ZCRlVsTkZRMVV4RnpBVkJnTlZCQU1NRGtoWlVFVlNSa2xFVHlBd01qQXdNRmt3RXdZSEtvWkkKK3pqMENBUVlJS29aSXpqMERBUWNEUWdBRXJLVUkxRzBTN2E2SU9MbG1IaXBMbEJ1eFRZanNFRVNRdnpRaDNkQjcKK2R2eHhXV203a1dMOTFycTZTN2F5WkcwZ1pQUit6WXFkRnp3QVlEY0c0K2FYNjZOZ01GNHdIUVlEVlIwT0JCWUUKK0ZMWlljZk1Nd2tRQUdidDNyeXpaRlBGeXBtc0lNQjhHQTFVZEl3UVlNQmFBRkxaWWNmTU13a1FBR2J0M3J5eloKK0ZQRnlwbXNJTUF3R0ExVWRFd1FGTUFNQkFmOHdEZ1lEVlIwUEFRSC9CQVFEQWdFR01Bb0dDQ3FHU000OUJBTUMKK0Ewa0FNRVlDSVFDRzIvcHBNR3Q3cGtjUmllNVlJb2hTM3VEUElybWlSY1RqcURjbEtWV2cwZ0loQU5jUE5EWkgKK0UyL3paK3VCNVRoRzlPWnVzK3hTYjRrbmtyYkF5WEtYMnptLworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy9taWNyb3NvZnRUcG1Db2xsZWN0aW9uLnBlbSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvbWljcm9zb2Z0VHBtQ29sbGVjdGlvbi5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVmOWUzOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvbWljcm9zb2Z0VHBtQ29sbGVjdGlvbi5wZW0KQEAgLTAsMCArMSwyODg0NCBAQAorQSBjb2xsZWN0aW9uIG9mIHRydXN0ZWQgVFBNIHJvb3QgYW5kIGludGVybWVkaWF0ZSBjZXJ0aWZpY2F0ZXMKK3B1Ymxpc2hlZCBieSBNaWNyb3NvZnQuCisKK2h0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3dpbmRvd3Mtc2VydmVyL3NlY3VyaXR5L2d1YXJkZWQtZmFicmljLXNoaWVsZGVkLXZtL2d1YXJkZWQtZmFicmljLWluc3RhbGwtdHJ1c3RlZC10cG0tcm9vdC1jZXJ0aWZpY2F0ZXMKKworQU1EIGZUUE0gRUNDIElDQSBDWkZhbWlseSAzNUY0NUFBQjc4MTc1MUZFN0MyNEQ1RURBQUJBQjUwNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEVERDQ0F2S2dBd0lCQWdJUU5mUmFxM2dYVWY1OEpOWHRxcnExQnpBS0JnZ3Foa2pPUFFRREFqQjJNUlF3CitFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjFibTU1CitkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmxkbWxqCitaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE56QXhNREV3TlRBd01EQmFGdzAwTWpBeE1ERXdOVEF3CitNREJhTUhZeEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFU01CQUdBMVVFCitCeE1KVTNWdWJubDJZV3hsTVFzd0NRWURWUVFJRXdKRFFURWZNQjBHQTFVRUNoTVdRV1IyWVc1alpXUWdUV2xqCitjbThnUkdWMmFXTmxjekVQTUEwR0ExVUVBeE1HVUZKSExVTmFNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBECitBUWNEUWdBRUJscG4rQWRMQkd2Y1ZJM2hPRUE2VzBLVmk0N3lSWkpwREdvRnpqeW16dHlzWVZHSzE0aGNQMk91CisrUFZHeVhDM2pDV2V1Unh3QTcyVmRycW9TZUh1SjZPQ0FXQXdnZ0ZjTUE0R0ExVWREd0VCL3dRRUF3SUJCakNCCitnZ1lJS3dZQkJRVUhBUUVFZGpCME1FZ0dDQ3NHQVFVRkJ6QUNoanhvZEhSd09pOHZablJ3YlM1aGJXUXVZMjl0CitMM0JyYVM5aGFXRXZNak0wTlRJeU1ERkVOREZETlVGQ01EWTBNRE15UWtReU0wWXhOVGhHUlVZd0tBWUlLd1lCCitCUVVITUFHR0hHaDBkSEE2THk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDI5amMzQXdMQVlEVlIwZkJDVXdJekFoCitvQitnSFlZYmFIUjBjRG92TDJaMGNHMHVZVzFrTG1OdmJTOXdhMmt2WTNKc01FTUdBMVVkSUFROE1Eb3dPQVlLCitLd1lCQkFHY2VHVVZDakFxTUNnR0NDc0dBUVVGQndJQkZoeG9kSFJ3Y3pvdkwyWjBjRzB1WVcxa0xtTnZiUzl3CithMmt2WTNCek1CMEdBMVVkRGdRV0JCUW96bGRKeHJnV1poc2kvUi9WMW0xVVBLRUE3VEFmQmdOVkhTTUVHREFXCitnQlR5R3RENDZLTUc2Y3ZOT0g2R2NtTVgyOEcrdVRBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Bb0dDQ3FHCitTTTQ5QkFNQ0EwZ0FNRVVDSUY4QWxKbDJscHRJS3BnTDQzUVJ4ekV4SDVYUldJVG1IN2ZOclQyV0szNUFBaUVBCis5NmlBOEtheGNFVlYyeTZITlhNN0VRWldOdnFDTHRLcnR1dktCV1llZllBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0FNRCBmVFBNIEVDQyBJQ0EgUk5GYW1pbHkgQ0E2RUEwOUVCODQ4NTNFQzcyMENEOUJFNUFBRTczQkYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFRqQ0NBdlNnQXdJQkFnSVFTbTZnbnJoSVUreHlETm0rV3E1enZ6QUtCZ2dxaGtqT1BRUURBakIyTVJRdworRWdZRFZRUUxFd3RGYm1kcGJtVmxjbWx1WnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFakFRQmdOVkJBY1RDVk4xYm01NQorZG1Gc1pURUxNQWtHQTFVRUNCTUNRMEV4SHpBZEJnTlZCQW9URmtGa2RtRnVZMlZrSUUxcFkzSnZJRVJsZG1sagorWlhNeER6QU5CZ05WQkFNVEJrRk5SRlJRVFRBZUZ3MHhPVEF4TURFd05UQXdNREJhRncwME5EQXhNREV3TlRBdworTURCYU1IZ3hGREFTQmdOVkJBc1RDMFZ1WjJsdVpXVnlhVzVuTVFzd0NRWURWUVFHRXdKVlV6RVVNQklHQTFVRQorQnhNTFUyRnVkR0VnUTJ4aGNtRXhDekFKQmdOVkJBZ1RBa05CTVI4d0hRWURWUVFLRXhaQlpIWmhibU5sWkNCTgorYVdOeWJ5QkVaWFpwWTJWek1ROHdEUVlEVlFRREV3WlFVa2N0VWs0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqTworUFFNQkJ3TkNBQVE1Zmt6NEtvbmVrS2s0Qnk0UFZ1OTAwanRzMmczN2VzUkFIZHdnd3ZNWEl4UkhmMWxCcW1DbQoraXVUMk1FSFppMjFWUkZkY1ZVciszY0VkUDlFNmV0RUlvNElCWURDQ0FWd3dEZ1lEVlIwUEFRSC9CQVFEQWdFRworTUlHQ0JnZ3JCZ0VGQlFjQkFRUjJNSFF3U0FZSUt3WUJCUVVITUFLR1BHaDBkSEE2THk5bWRIQnRMbUZ0WkM1agorYjIwdmNHdHBMMkZwWVM4eU16UTFNakl3TVVRME1VTTFRVUl3TmpRd016SkNSREl6UmpFMU9FWkZSakFvQmdncgorQmdFRkJRY3dBWVljYUhSMGNEb3ZMMlowY0cwdVlXMWtMbU52YlM5d2Eya3ZiMk56Y0RBc0JnTlZIUjhFSlRBagorTUNHZ0g2QWRoaHRvZEhSd09pOHZablJ3YlM1aGJXUXVZMjl0TDNCcmFTOWpjbXd3UXdZRFZSMGdCRHd3T2pBNAorQmdvckJnRUVBWng0WlJVS01Db3dLQVlJS3dZQkJRVUhBZ0VXSEdoMGRIQnpPaTh2Wm5Sd2JTNWhiV1F1WTI5dAorTDNCcmFTOWpjSE13SFFZRFZSME9CQllFRkVVVXJuQnpXQWZ4NUpBSG95eGVEZ2NUZWZyYU1COEdBMVVkSXdRWQorTUJhQUZQSWEwUGpvb3dicHk4MDRmb1p5WXhmYndiNjVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3Q2dZSQorS29aSXpqMEVBd0lEU0FBd1JRSWdhaFFjWGRzbWd2MmJWUTZtdlJibWpZQVpYSWdSR3pUa3ZOcDlLSGtkU2FRQworSVFDWE5ZOThEUllCdWdlR2QzQkI5RGdHMWRBajhsUG1IeDVrbGhZQ2lqelNZUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQU1EIGZUUE0gRUNDIElDQSBSVkZhbWlseSA3QUJBRTc2RUJCQTE1MTQxNTMzN0Y0OUE3N0NCMUMzRQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEVFRDQ0F2S2dBd0lCQWdJUWFKSzJrcjdRVlROQUQ5WDZyallZZ2pBS0JnZ3Foa2pPUFFRREFqQjJNUlF3CitFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjFibTU1CitkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmxkbWxqCitaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE56QXhNREV3TlRBd01EQmFGdzAwTWpBeE1ERXdOVEF3CitNREJhTUhZeEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFU01CQUdBMVVFCitCeE1KVTNWdWJubDJZV3hsTVFzd0NRWURWUVFJRXdKRFFURWZNQjBHQTFVRUNoTVdRV1IyWVc1alpXUWdUV2xqCitjbThnUkdWMmFXTmxjekVQTUEwR0ExVUVBeE1HVUZKSExWSldNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBECitBUWNEUWdBRWdqcUhBaTNWR2xIVEE4QU1LTWlFNHcxNTBEQlFzc2lCTjVDWFc2T2tqWFJkelcwQWNiQnNmNCtwCitWV1B5UmZwVnRzem5zNkdDMm1CKzlSL0Rnc0N6RUtPQ0FXQXdnZ0ZjTUE0R0ExVWREd0VCL3dRRUF3SUJCakNCCitnZ1lJS3dZQkJRVUhBUUVFZGpCME1FZ0dDQ3NHQVFVRkJ6QUNoanhvZEhSd09pOHZablJ3YlM1aGJXUXVZMjl0CitMM0JyYVM5aGFXRXZNak0wTlRJeU1ERkVOREZETlVGQ01EWTBNRE15UWtReU0wWXhOVGhHUlVZd0tBWUlLd1lCCitCUVVITUFHR0hHaDBkSEE2THk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDI5amMzQXdMQVlEVlIwZkJDVXdJekFoCitvQitnSFlZYmFIUjBjRG92TDJaMGNHMHVZVzFrTG1OdmJTOXdhMmt2WTNKc01FTUdBMVVkSUFROE1Eb3dPQVlLCitLd1lCQkFHY2VHVVZDakFxTUNnR0NDc0dBUVVGQndJQkZoeG9kSFJ3Y3pvdkwyWjBjRzB1WVcxa0xtTnZiUzl3CithMmt2WTNCek1CMEdBMVVkRGdRV0JCUjZJcVZ4N3A3d3BFVTRpK3RTMzh4U3h3WmR2REFmQmdOVkhTTUVHREFXCitnQlR5R3RENDZLTUc2Y3ZOT0g2R2NtTVgyOEcrdVRBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Bb0dDQ3FHCitTTTQ5QkFNQ0Ewa0FNRVlDSVFDdVg0UUJONENQbG1zdXdFTlVSQ052ZFFqdlB2Z1RldHg4a0lzcXZ3b3Mzd0loCitBS1U5Y1dMbXhzTE5MV0ZyQ0F3TkZ5Ykd6a1V0QXpBZHg4Q3VsYzAvc0ZlRworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0FNRCBmVFBNIEVDQyBJQ0EgU1NQRmFtaWx5IDI4Mjc3MmJkNjhhZjU4YmE2YjEzNDc3YTg5YmIxYTA0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEVHpDQ0F2V2dBd0lCQWdJUUtDZHl2V2l2V0xwckUwZDZpYnNhQkRBS0JnZ3Foa2pPUFFRREFqQjJNUlF3CitFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjFibTU1CitkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmxkbWxqCitaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE9UQXhNREV3TlRBd01EQmFGdzAwTkRBeE1ERXdOVEF3CitNREJhTUhreEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFVU1CSUdBMVVFCitCeE1MVTJGdWRHRWdRMnhoY21FeEN6QUpCZ05WQkFnVEFrTkJNUjh3SFFZRFZRUUtFeFpCWkhaaGJtTmxaQ0JOCithV055YnlCRVpYWnBZMlZ6TVJBd0RnWURWUVFERXdkUVVrY3RVMU5RTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVsNklPMVFjV0YyaGpBOWJWd3ZmUUNmL005aTdLTkE1Ty9ENXlwYmRWVnBpZnd3TXdTd01HCitCbU85bW1LNTZnNkVQdkRYcEZtTWc1MEZtUTZqVTdMY0thT0NBV0F3Z2dGY01BNEdBMVVkRHdFQi93UUVBd0lCCitCakNCZ2dZSUt3WUJCUVVIQVFFRWRqQjBNRWdHQ0NzR0FRVUZCekFDaGp4b2RIUndPaTh2Wm5Sd2JTNWhiV1F1CitZMjl0TDNCcmFTOWhhV0V2TWpNME5USXlNREZFTkRGRE5VRkNNRFkwTURNeVFrUXlNMFl4TlRoR1JVWXdLQVlJCitLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OW1kSEJ0TG1GdFpDNWpiMjB2Y0d0cEwyOWpjM0F3TEFZRFZSMGZCQ1V3CitJekFob0IrZ0hZWWJhSFIwY0RvdkwyWjBjRzB1WVcxa0xtTnZiUzl3YTJrdlkzSnNNRU1HQTFVZElBUThNRG93CitPQVlLS3dZQkJBR2NlR1VWQ2pBcU1DZ0dDQ3NHQVFVRkJ3SUJGaHhvZEhSd2N6b3ZMMlowY0cwdVlXMWtMbU52CitiUzl3YTJrdlkzQnpNQjBHQTFVZERnUVdCQlNNV1hkMmhUdWUyNURHR295dnlpbnh2cUJLeGpBZkJnTlZIU01FCitHREFXZ0JUeUd0RDQ2S01HNmN2Tk9INkdjbU1YMjhHK3VUQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQW9HCitDQ3FHU000OUJBTUNBMGdBTUVVQ0lBaFNsdFNKaGNNUWExQksrQXVDNGV0MHd4bzFEbkRJZHJYbjEzdEVreGV0CitBaUVBOWRkcmtmcm1EcEg3bU1USlIxZWpudHIrbTBzVVRESjlPdFB6eitndGhUQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitBTUQgZlRQTSBFQ0MgSUNBIFNURmFtaWx5IDRBN0E3RUM1MzJFMzU0MDI3MjRBMkJCNDUwMTAxMUNFCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURTekNDQXZLZ0F3SUJBZ0lRU25wK3hUTGpWQUp5U2l1MFVCQVJ6akFLQmdncWhrak9QUVFEQWpCMk1SUXcKK0VnWURWUVFMRXd0RmJtZHBibVZsY21sdVp6RUxNQWtHQTFVRUJoTUNWVk14RWpBUUJnTlZCQWNUQ1ZOMWJtNTUKK2RtRnNaVEVMTUFrR0ExVUVDQk1DUTBFeEh6QWRCZ05WQkFvVEZrRmtkbUZ1WTJWa0lFMXBZM0p2SUVSbGRtbGoKK1pYTXhEekFOQmdOVkJBTVRCa0ZOUkZSUVRUQWVGdzB4TnpBeE1ERXdOVEF3TURCYUZ3MDBNakF4TURFd05UQXcKK01EQmFNSFl4RkRBU0JnTlZCQXNUQzBWdVoybHVaV1Z5YVc1bk1Rc3dDUVlEVlFRR0V3SlZVekVTTUJBR0ExVUUKK0J4TUpVM1Z1Ym5sMllXeGxNUXN3Q1FZRFZRUUlFd0pEUVRFZk1CMEdBMVVFQ2hNV1FXUjJZVzVqWldRZ1RXbGoKK2NtOGdSR1YyYVdObGN6RVBNQTBHQTFVRUF4TUdVRkpITFZOVU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKK0FRY0RRZ0FFdXFUUWNtdUtHNmxCSDJwWjhGY0ZVVnJka2VzeXlYL2NJbDdlV3loTFFHVWVoSkRyc2hwYVg0dVQKK3pZVHJ3aXlvK0pWRENFejBTR3F4RjEwRG1QMGtVcU9DQVdBd2dnRmNNQTRHQTFVZER3RUIvd1FFQXdJQkJqQ0IKK2dnWUlLd1lCQlFVSEFRRUVkakIwTUVnR0NDc0dBUVVGQnpBQ2hqeG9kSFJ3T2k4dlpuUndiUzVoYldRdVkyOXQKK0wzQnJhUzloYVdFdk1qTTBOVEl5TURGRU5ERkROVUZDTURZME1ETXlRa1F5TTBZeE5UaEdSVVl3S0FZSUt3WUIKK0JRVUhNQUdHSEdoMGRIQTZMeTltZEhCdExtRnRaQzVqYjIwdmNHdHBMMjlqYzNBd0xBWURWUjBmQkNVd0l6QWgKK29CK2dIWVliYUhSMGNEb3ZMMlowY0cwdVlXMWtMbU52YlM5d2Eya3ZZM0pzTUVNR0ExVWRJQVE4TURvd09BWUsKK0t3WUJCQUdjZUdVVkNqQXFNQ2dHQ0NzR0FRVUZCd0lCRmh4b2RIUndjem92TDJaMGNHMHVZVzFrTG1OdmJTOXcKK2Eya3ZZM0J6TUIwR0ExVWREZ1FXQkJTTWxRSzZ1MG5McDhQNytId3d6Y0d5c3ViRzZ6QWZCZ05WSFNNRUdEQVcKK2dCVHlHdEQ0NktNRzZjdk5PSDZHY21NWDI4Ryt1VEFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUcKK1NNNDlCQU1DQTBjQU1FUUNJRHo2TXl0cmZtK2loazc0NFJrVkFQUHhrZWZzTVpjVXhkaEdxbnJ2N293aUFpQnIKK3ErTG9hSGlpRGdmTnBiZVFsRWxSSXU5YzJ5MkZtaE9ZcnQ2U1RHUWpRdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQU1EIGZUUE0gRUNDIElDQSBaUEZhbWlseSAxNDI1QTI2NEJCNTk1Rjk0Njk2NDVGM0I3QUEzMDIwOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEVFRDQ0F2S2dBd0lCQWdJUUZDV2laTHRaWDVScFpGODdlcU1DQ1RBS0JnZ3Foa2pPUFFRREFqQjJNUlF3CitFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjFibTU1CitkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmxkbWxqCitaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE56QXhNREV3TlRBd01EQmFGdzAwTWpBeE1ERXdOVEF3CitNREJhTUhZeEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFU01CQUdBMVVFCitCeE1KVTNWdWJubDJZV3hsTVFzd0NRWURWUVFJRXdKRFFURWZNQjBHQTFVRUNoTVdRV1IyWVc1alpXUWdUV2xqCitjbThnUkdWMmFXTmxjekVQTUEwR0ExVUVBeE1HVUZKSExWcFFNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBECitBUWNEUWdBRVVzN2NIWXhtOGpMcDNHT0U0TVZudlZ4NVUwQUtyVGVMeUJNd1NzdFdYM1ZuVVFNOG9NZVRoNWVZCis0WmZpczBNRHBWeFhWRTNKY0dHcjQ1aU9ra1dTWWFPQ0FXQXdnZ0ZjTUE0R0ExVWREd0VCL3dRRUF3SUJCakNCCitnZ1lJS3dZQkJRVUhBUUVFZGpCME1FZ0dDQ3NHQVFVRkJ6QUNoanhvZEhSd09pOHZablJ3YlM1aGJXUXVZMjl0CitMM0JyYVM5aGFXRXZNak0wTlRJeU1ERkVOREZETlVGQ01EWTBNRE15UWtReU0wWXhOVGhHUlVZd0tBWUlLd1lCCitCUVVITUFHR0hHaDBkSEE2THk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDI5amMzQXdMQVlEVlIwZkJDVXdJekFoCitvQitnSFlZYmFIUjBjRG92TDJaMGNHMHVZVzFrTG1OdmJTOXdhMmt2WTNKc01FTUdBMVVkSUFROE1Eb3dPQVlLCitLd1lCQkFHY2VHVVZDakFxTUNnR0NDc0dBUVVGQndJQkZoeG9kSFJ3Y3pvdkwyWjBjRzB1WVcxa0xtTnZiUzl3CithMmt2WTNCek1CMEdBMVVkRGdRV0JCUTJzTGNRd0JEUmdaSWh3cHZjNVQ1UUF6d3BGVEFmQmdOVkhTTUVHREFXCitnQlR5R3RENDZLTUc2Y3ZOT0g2R2NtTVgyOEcrdVRBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Bb0dDQ3FHCitTTTQ5QkFNQ0Ewa0FNRVlDSVFEb0ZaSWVVU25GN2NEUmpKYitpb2ppbStRbmFHc2E2M21EbkpWYUdjNVVmUUloCitBSXpxWnZZNXpvaGJkditPV0tpYkYyckVoOStiT1FrdUUxTTdJNDNKRGNaeQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0FNRCBmVFBNIEVDQyBSb290Q0EKKz09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJREFqQ0NBcWlnQXdJQkFnSVFJMFVpQWRRY1dyQmtBeXZTUHhXUDd6QUtCZ2dxaGtqT1BRUURBakIyTVJRdworRWdZRFZRUUxFd3RGYm1kcGJtVmxjbWx1WnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFakFRQmdOVkJBY1RDVk4xYm01NQorZG1Gc1pURUxNQWtHQTFVRUNCTUNRMEV4SHpBZEJnTlZCQW9URmtGa2RtRnVZMlZrSUUxcFkzSnZJRVJsZG1sagorWlhNeER6QU5CZ05WQkFNVEJrRk5SRlJRVFRBZUZ3MHhOakF4TURFd05UQXdNREJhRncwME1UQXhNREV3TlRBdworTURCYU1IWXhGREFTQmdOVkJBc1RDMFZ1WjJsdVpXVnlhVzVuTVFzd0NRWURWUVFHRXdKVlV6RVNNQkFHQTFVRQorQnhNSlUzVnVibmwyWVd4bE1Rc3dDUVlEVlFRSUV3SkRRVEVmTUIwR0ExVUVDaE1XUVdSMllXNWpaV1FnVFdsagorY204Z1JHVjJhV05sY3pFUE1BMEdBMVVFQXhNR1FVMUVWRkJOTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowRAorQVFjRFFnQUVLTE5HdzBGM3VxN2tjb1phelNBbTQ2TlV5aUlKQzVEZ05BUG8xQ2ZyUHNuM1V0Um5pMUR4QzF4YQorc010dklvM2pBVkhabFZzbUFUMWcwcjVYaU5iNW1xT0NBUll3Z2dFU01BNEdBMVVkRHdFQi93UUVBd0lCQmpBagorQmdrckJnRUVBWUkzRlNzRUZnUVU4aHJRK09pakJ1bkx6VGgraG5KakY5dkJ2cmt3SFFZRFZSME9CQllFRlBJYQorMFBqb293YnB5ODA0Zm9aeVl4ZmJ3YjY1TUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3T0FZSUt3WUJCUVVIQVFFRQorTERBcU1DZ0dDQ3NHQVFVRkJ6QUJoaHhvZEhSd09pOHZablJ3YlM1aGJXUXVZMjl0TDNCcmFTOXZZM053TUN3RworQTFVZEh3UWxNQ013SWFBZm9CMkdHMmgwZEhBNkx5OW1kSEJ0TG1GdFpDNWpiMjB2Y0d0cEwyTnliREJEQmdOVgorSFNBRVBEQTZNRGdHQ2lzR0FRUUJuSGhsRlFvd0tqQW9CZ2dyQmdFRkJRY0NBUlljYUhSMGNITTZMeTltZEhCdAorTG1GdFpDNWpiMjB2Y0d0cEwyTndjekFLQmdncWhrak9QUVFEQWdOSUFEQkZBaUVBZ2FDUmdQR0lBOS84eEVWeQordEoxWUswRVJCREdIeFBUMGlnenljQVNxRGhBQ0lEV2JQdE9YUUczWjRXMDlPalJ0V3dMd2RDRWtlbEtmUGF6YgoreWhJSElUNG0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitBTUQgZlRQTSBSU0EgSUNBIENaRmFtaWx5IDAxRjdERTNEMzBGMTVCRTI1MkMwQUZDQzFBMEE1NjJDCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUUyRENDQThDZ0F3SUJBZ0lRQWZmZVBURHhXK0pTd0svTUdncFdMREFOQmdrcWhraUc5dzBCQVFzRkFEQjIKK01SUXdFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjEKK2JtNTVkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmwKK2RtbGpaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE56QXhNREV3TlRBd01EQmFGdzAwTWpBeE1ERXcKK05UQXdNREJhTUhZeEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFU01CQUcKK0ExVUVCeE1KVTNWdWJubDJZV3hsTVFzd0NRWURWUVFJRXdKRFFURWZNQjBHQTFVRUNoTVdRV1IyWVc1alpXUWcKK1RXbGpjbThnUkdWMmFXTmxjekVQTUEwR0ExVUVBeE1HVUZKSExVTmFNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUYKK0FBT0NBUThBTUlJQkNnS0NBUUVBdk14NkdsZFNubXFGUlZXRzNvVUJJYjREL0dvN0xGU25uVTlUdnRuOHJUOTcKK0ZvcXhRUlFONGEyRnJ4OTB0VFhudmFrYy9iRjVmV2pCMWxaYXVUb0NwZ2tVV1ZGU3VJUWU1TXcxSUVLL2FZMHYKKy9jUVlTSHJ3bnBtUG9KYTBvU0tVclg3ZDhFM29rQUZDYkRYeXVLQnpHbmNpOXRvUWNXTk1Ib05BZjZBYmNwVkQKK0ZHbXNTbXVrU056eWlvbGd0a3ZQRVp4aElObDR6dlFoMHdZbkthVTYvQWg2VHpXMStUUnllaUdOSGtpY2NnaCsKK1lkU0V3Y3ZIVXNaWUk3UVNkMmQzSWNYNmIwd3F1YmlFNGpXb1drS21QaXVYOEJPdTFZT2puS2hUYnE4cmJwR3EKK1JLUlY3U1B5SnFnVGJYdFVnOWRaOW0yOEM5Mi9pVGRiYWVGa2dVdlRUd0lEQVFBQm80SUJZRENDQVZ3d0RnWUQKK1ZSMFBBUUgvQkFRREFnRUdNSUdDQmdnckJnRUZCUWNCQVFSMk1IUXdTQVlJS3dZQkJRVUhNQUtHUEdoMGRIQTYKK0x5OW1kSEJ0TG1GdFpDNWpiMjB2Y0d0cEwyRnBZUzh5TmpSRU16bEJNak5EUlVJMVJEVkNORGxFTmpFd01EUTAKK1JVVkNSREV5TVRBb0JnZ3JCZ0VGQlFjd0FZWWNhSFIwY0RvdkwyWjBjRzB1WVcxa0xtTnZiUzl3YTJrdmIyTnoKK2NEQXNCZ05WSFI4RUpUQWpNQ0dnSDZBZGhodG9kSFJ3T2k4dlpuUndiUzVoYldRdVkyOXRMM0JyYVM5amNtd3cKK1F3WURWUjBnQkR3d09qQTRCZ29yQmdFRUFaeDRaUlVLTUNvd0tBWUlLd1lCQlFVSEFnRVdIR2gwZEhCek9pOHYKK1puUndiUzVoYldRdVkyOXRMM0JyYVM5amNITXdIUVlEVlIwT0JCWUVGQlNDL1p5NGl2dTMrUmZLRkNKZmlSYnoKK0VFQU5NQjhHQTFVZEl3UVlNQmFBRkZlTVZGOTVhVkZDRWlHa3BYaXMyMTlvTDRuSU1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKUkJXTHpZSjVNUGx4T0hHR0dtNDg4MXZUZXkKK0xHOFV2QVJnMytxMER2RnM4VDdwaUJ0RlhBT2IwdHUxa05xdUhXR0pDTmVKV2NzTmJpNEJ1emM2M2ZicHR0NGoKK0poOWNrTFFucDFTSzNtbjV4bytPKzVtZ0Y1RzlkTitrRTkxMEZFbnRINWs1T3gxYlRLWnpyU1JTVFA1Y05hY0IKK2U5RkNWZGRqakg0eUFPVUt5d01EYlppcHlYMEd3TmdKSllza1lyL243V0c0dlJDZjlXRk5NZGV1VG04YjhIUE0KK2k4UTArNSswdGwwWDlZN016ZHMyY2l3ZGxOSTZDT1dYbmVsczFaeTNQZXg3VWM4S2lVNnE1MUVBbC9ZSkVkY2EKKzV6Ui8xQjlpOXB1a1JvOVB6MDk2U3FYOHNqcVhxNnJvSGhrYVhsbG5pT1lyNnphZVR1UnVVSnBUOEtZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0FNRCBmVFBNIFJTQSBJQ0EgUk5GYW1pbHkgQ0M1QUI2NjNFRTg0NUNBOTY1NEE1ODIxMjFGNTAzODEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRTJqQ0NBOEtnQXdJQkFnSVFURnEyWSs2RVhLbGxTbGdoSWZVRGdUQU5CZ2txaGtpRzl3MEJBUXNGQURCMgorTVJRd0VnWURWUVFMRXd0RmJtZHBibVZsY21sdVp6RUxNQWtHQTFVRUJoTUNWVk14RWpBUUJnTlZCQWNUQ1ZOMQorYm01NWRtRnNaVEVMTUFrR0ExVUVDQk1DUTBFeEh6QWRCZ05WQkFvVEZrRmtkbUZ1WTJWa0lFMXBZM0p2SUVSbAorZG1salpYTXhEekFOQmdOVkJBTVRCa0ZOUkZSUVRUQWVGdzB4T1RBeE1ERXdOVEF3TURCYUZ3MDBOREF4TURFdworTlRBd01EQmFNSGd4RkRBU0JnTlZCQXNUQzBWdVoybHVaV1Z5YVc1bk1Rc3dDUVlEVlFRR0V3SlZVekVVTUJJRworQTFVRUJ4TUxVMkZ1ZEdFZ1EyeGhjbUV4Q3pBSkJnTlZCQWdUQWtOQk1SOHdIUVlEVlFRS0V4WkJaSFpoYm1ObAorWkNCTmFXTnlieUJFWlhacFkyVnpNUTh3RFFZRFZRUURFd1pRVWtjdFVrNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQgorQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNyMm5OWTB0UVBwMm1FWDc1cHljWDBYVnFDQ3JhU21VekZoUG9pTlBJOAorMk9TbUg4WGhGc1hlbFI4NGZ1a0pydm5WRXF0TWlteGhXa1RndVNCVGYrZEJUV2JPZktuZnpjN1NKYlFxYmxseQorTmpzOVJDcHBVL2ZOK05qWW5vU3FnR05sMG1UL1RpSFpab3pXY2dhS1R0a2V6eERpN2N6ZWRZMkJrNHowU1M5OAorQ1lYN0ZjQUh3SzJaT1pISHMrQUF3ZjRNOUlqZjVGZVR1VTRtM1QwTGU5VkJ2b1lhazZWQzdNSEowTVFlY1UyNgorVERnVld6VXUwd3luY3dTNmZxRnRiZnROTGZwOEZzbWRHK09zZXI2UkR6L1BrbDVSOUtraEVRQnd5aGlNdHdBUgorcFNDVWVQM3hDWVNBUVEwMEFybCtIWHZOZGE1NHRJRDU2cDBVYXRvVHlpMHZBZ01CQUFHamdnRmdNSUlCWERBTworQmdOVkhROEJBZjhFQkFNQ0FRWXdnWUlHQ0NzR0FRVUZCd0VCQkhZd2REQklCZ2dyQmdFRkJRY3dBb1k4YUhSMAorY0RvdkwyWjBjRzB1WVcxa0xtTnZiUzl3YTJrdllXbGhMekkyTkVRek9VRXlNME5GUWpWRU5VSTBPVVEyTVRBdworTkRSRlJVSkVNVEl4TUNnR0NDc0dBUVVGQnpBQmhoeG9kSFJ3T2k4dlpuUndiUzVoYldRdVkyOXRMM0JyYVM5dgorWTNOd01Dd0dBMVVkSHdRbE1DTXdJYUFmb0IyR0cyaDBkSEE2THk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDJOeQorYkRCREJnTlZIU0FFUERBNk1EZ0dDaXNHQVFRQm5IaGxGUW93S2pBb0JnZ3JCZ0VGQlFjQ0FSWWNhSFIwY0hNNgorTHk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDJOd2N6QWRCZ05WSFE0RUZnUVVVdnRaNHBxb09wWXZ1ZTd3L2x0SQorRWQ1cmRSNHdId1lEVlIwakJCZ3dGb0FVVjR4VVgzbHBVVUlTSWFTbGVLemJYMmd2aWNnd0VnWURWUjBUQVFILworQkFnd0JnRUIvd0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWw5Ti81bE9JdkpwYk9nZmlJcUtGSFpSeQoralZhVFVpMHFkUXpyUUQ1NEtXdG8ramZ1clpJRFRiMWQ2aGZrTE5DMmdKY3UrU0FpZGtuQm9hdzVHQjFFQkZzVgord0hJN2hWU3VYSjdmQnc4MjhOeXZRS3ltYWNtNEpkeGVWYytHUjZVSXRHOWRVVkNWNkxqTUZvZFNMSnVMOGEyZQorOUN4ejZzMDlzY1Y5QUIyMTYyTHM1NkNSQWMrNlRNMUhBK3EyMUVwU2dXR1h3ZURmN2tQOCtMaWNXcjl1U1M5cAorb0xINXpKb0o5UEMwSXlTZ1ZRYzBMdEVyUjJvU0F5aThsUFNRYVVqM2RRVHBkMDU0cm9HY1RseVBzTTVQR1pzSQorZEw0M1hNTE1oTnRuMmgvZlYzUlpPVXR4U0lpTW0vaTYyeHNESWk3NDJyUTNaUG1UYmlURHF6UFZrMThOZFE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0FNRCBmVFBNIFJTQSBJQ0EgUlZGYW1pbHkgN0FCQUU3NkVCQkExNTE0MTUzMzdGNDlBNzdDQjFDM0UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRTJEQ0NBOENnQXdJQkFnSVFlcnJuYnJ1aFVVRlROL1NhZDhzY1BqQU5CZ2txaGtpRzl3MEJBUXNGQURCMgorTVJRd0VnWURWUVFMRXd0RmJtZHBibVZsY21sdVp6RUxNQWtHQTFVRUJoTUNWVk14RWpBUUJnTlZCQWNUQ1ZOMQorYm01NWRtRnNaVEVMTUFrR0ExVUVDQk1DUTBFeEh6QWRCZ05WQkFvVEZrRmtkbUZ1WTJWa0lFMXBZM0p2SUVSbAorZG1salpYTXhEekFOQmdOVkJBTVRCa0ZOUkZSUVRUQWVGdzB4TnpBeE1ERXdOVEF3TURCYUZ3MDBNakF4TURFdworTlRBd01EQmFNSFl4RkRBU0JnTlZCQXNUQzBWdVoybHVaV1Z5YVc1bk1Rc3dDUVlEVlFRR0V3SlZVekVTTUJBRworQTFVRUJ4TUpVM1Z1Ym5sMllXeGxNUXN3Q1FZRFZRUUlFd0pEUVRFZk1CMEdBMVVFQ2hNV1FXUjJZVzVqWldRZworVFdsamNtOGdSR1YyYVdObGN6RVBNQTBHQTFVRUF4TUdVRkpITFZKV01JSUJJakFOQmdrcWhraUc5dzBCQVFFRgorQUFPQ0FROEFNSUlCQ2dLQ0FRRUF4UENJbnNQNlVKVEI5QVBDWmNYQlQrWFFTOVNHaXc1eVp0TTVlU1BHdkREYQorN0ZRUnR4d2lBNm0zODZ4WFFoWnBsejlGMEdEd2M2aVZjZi95aDJXNzIwM2NES2JiS1hqYzZLTFBVQW5SU01lbgorTmVJajlibVN1dDJFcGk1WjhSTU1kNk0xMWIwZi9ieEpHTW10dE04eTBrcHpuK3UwcUswNnd5ZW8rWnFuUUZvWAorRFF6bGVuR3N0cENHajVNeVRkMEFUU3U3eXJqcDBjZFFlVFJibDRiRi85UFEzZ3FLekxDYkh0Rm5uVE4xOWJrVQoraktNMEdRNEFZK3RNdTNXUnNRVzBoRkhLMHErSFFEaWprQ0d3NjJ3dktsYWtwVFZ4Zzl6QzI4a21hYWIrUlB4SgorSVl5QW9OUjhENUM1eHNjQk03bmhHWkxOMkRqQmc1cGFXKzV5ay9VWmRRSURBUUFCbzRJQllEQ0NBVnd3RGdZRAorVlIwUEFRSC9CQVFEQWdFR01JR0NCZ2dyQmdFRkJRY0JBUVIyTUhRd1NBWUlLd1lCQlFVSE1BS0dQR2gwZEhBNgorTHk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDJGcFlTOHlOalJFTXpsQk1qTkRSVUkxUkRWQ05EbEVOakV3TURRMAorUlVWQ1JERXlNVEFvQmdnckJnRUZCUWN3QVlZY2FIUjBjRG92TDJaMGNHMHVZVzFrTG1OdmJTOXdhMmt2YjJOegorY0RBc0JnTlZIUjhFSlRBak1DR2dINkFkaGh0b2RIUndPaTh2Wm5Sd2JTNWhiV1F1WTI5dEwzQnJhUzlqY213dworUXdZRFZSMGdCRHd3T2pBNEJnb3JCZ0VFQVp4NFpSVUtNQ293S0FZSUt3WUJCUVVIQWdFV0hHaDBkSEJ6T2k4dgorWm5Sd2JTNWhiV1F1WTI5dEwzQnJhUzlqY0hNd0hRWURWUjBPQkJZRUZJb0ZlTTlXRkcvcU9acjVBL3RiQ3NOdQorc25ocU1COEdBMVVkSXdRWU1CYUFGRmVNVkY5NWFWRkNFaUdrcFhpczIxOW9MNG5JTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUo5VGxGS3NsUHhUQ0VzZGU5WnVNNzRaVi9paAorcHpPKzg5alRRYUlsTmdJa2tLZURYNnE3T3kwWEFUdlFHZU5wUTRzaWZoRWQ0RUFpNDVBNlpwb3daeWZsZXpERQordHV5RzdLTW1GcEx1RTVJTDFtc3VFeTkrTEd5UlNtWCtUSWh2TWNPQlBQR3ZMWkozWVYwVVV2dlNGd2hoYko1QworWWxEMGdyUU4yN2ZlVlh1cW9qN01qZ2taNVpOcll6NHlUY3BsamZ0YTFvRnM3elZyQTdubWp0QjdKNi9meTV5NwordDg1aUpadWpXNFlHOGRza2NoMjhQQkoyOHY1a1cxRkhKZlZqLzBoSDc1OWIyRERjMHcwaWFBOWFqMFBZajNWbQoraWdZQWNSNFhDUVdOQUR0OGE1YWNtL3k1Lzd0K3dXMVhTS0R4b2NoTThFdmI3ZU5zVWxUVEZUK2VMNFk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQU1EIGZUUE0gUlNBIElDQSBTU1BGYW1pbHkgOGY1NTdiZjAyZmJhNTM0NjQyZGYyODlmZjk0NWNkNDAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUUyekNDQThPZ0F3SUJBZ0lRRDFWNzhDKzZVMFpDM3lpZitVWE5RREFOQmdrcWhraUc5dzBCQVFzRkFEQjIKK01SUXdFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjEKK2JtNTVkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmwKK2RtbGpaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE9UQXhNREV3TlRBd01EQmFGdzAwTkRBeE1ERXcKK05UQXdNREJhTUhreEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFVU1CSUcKK0ExVUVCeE1MVTJGdWRHRWdRMnhoY21FeEN6QUpCZ05WQkFnVEFrTkJNUjh3SFFZRFZRUUtFeFpCWkhaaGJtTmwKK1pDQk5hV055YnlCRVpYWnBZMlZ6TVJBd0RnWURWUVFERXdkUVVrY3RVMU5RTUlJQklqQU5CZ2txaGtpRzl3MEIKK0FRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTNFdzkxSEt4Q1oxQ1kwSm9oM0VzbEJ6TFdaUGFnbGRVcVlSeEVKRFIKK1pheitwU1o1MVVrTWdLbWo4MUZaQUNFakNwQjFybnZreTZHTHBhL05aTXY3dkF4OE1pclhsdTdrYVY2aDBoQ2wKK1F0bWViZTE3ZVNzdXg5VnZNdk9CZ3lPTVp6alFZUVNpQllLWnR5Q1BGSUtyeVRBTXhtb3pmUlZUd090M0pwV0UKK3RYUnV0a1A2UlJ6SkdZR1NlNWovNDREbjZNaFhjK3VVb1FjcHJNcXJzbUl0QWVwR1l4WE9XQy9BWjZjOVFpK2gKK2N5c1J4ZHlNcXNSZmVrRjM4cThweEhjYisyY3pzaHhZeG54ZXMvSzd6QVFmczhpK3ZZdXZicTFMUmlSVHd6MHAKKzBCZjNNbWppUFlwd3lHSE9hL2xXN3ZGWFp1K1lCdHB4NEIvSEI2bTlWdmd4Y1FJREFRQUJvNElCWURDQ0FWd3cKK0RnWURWUjBQQVFIL0JBUURBZ0VHTUlHQ0JnZ3JCZ0VGQlFjQkFRUjJNSFF3U0FZSUt3WUJCUVVITUFLR1BHaDAKK2RIQTZMeTltZEhCdExtRnRaQzVqYjIwdmNHdHBMMkZwWVM4eU5qUkVNemxCTWpORFJVSTFSRFZDTkRsRU5qRXcKK01EUTBSVVZDUkRFeU1UQW9CZ2dyQmdFRkJRY3dBWVljYUhSMGNEb3ZMMlowY0cwdVlXMWtMbU52YlM5d2Eya3YKK2IyTnpjREFzQmdOVkhSOEVKVEFqTUNHZ0g2QWRoaHRvZEhSd09pOHZablJ3YlM1aGJXUXVZMjl0TDNCcmFTOWoKK2Ntd3dRd1lEVlIwZ0JEd3dPakE0QmdvckJnRUVBWng0WlJVS01Db3dLQVlJS3dZQkJRVUhBZ0VXSEdoMGRIQnoKK09pOHZablJ3YlM1aGJXUXVZMjl0TDNCcmFTOWpjSE13SFFZRFZSME9CQllFRkpCOVplbTFZakZabDkxYTBJYXkKK3QxbUpWN2tzTUI4R0ExVWRJd1FZTUJhQUZGZU1WRjk1YVZGQ0VpR2twWGlzMjE5b0w0bklNQklHQTFVZEV3RUIKKy93UUlNQVlCQWY4Q0FRQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRExJT1ZGNld1OHJJN0Z5cHZReXMrVDUKK2pvUTNUckx2TmZweTFRSzFSL204VkxBTmdsWlhFQ0xwVnZTczRwcW9wdU01eVdOMU5QQTNuSm9UUnBhY3FERnMKK3pYYlorbmg1ZkJoQmZpYUYxbjJqWWtHYWZHNm5TZHF2V2hVYXpLOWtsSHlUdlhSS0VaRUpFeFZYcHZjTjMxaEkKK01aL2twR2hNb0Y5MHJjVXpvS2FqTTZ6SFp0dURUMUtGZDJJL05GZit5UXhPR3RyT1A5OHErUlh1RmZYV1ZCVkIKK2ErTEFtRnVBSHNuL1BxcWl1NVlkR0FiVkFmRVBodC9RRWRCMStCcFE3bXJ5N05pSGk1dzV6Mjhxc1FZR2NneW8KK0s2cVBSeFFnSFQ4L0NxSTNGeDFDL1VvSHErNFRIODhFTXhJQjlrbnl5ZFZpcElRWldkZjV6am14VlNSbWhrVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitBTUQgZlRQTSBSU0EgSUNBIFNURmFtaWx5IDFFRUE1Qzk2N0IwNTU3RDU2QUM2MUQ0RUU0REIyMzVDCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUUyRENDQThDZ0F3SUJBZ0lRSHVwY2xuc0ZWOVZxeGgxTzVOc2pYREFOQmdrcWhraUc5dzBCQVFzRkFEQjIKK01SUXdFZ1lEVlFRTEV3dEZibWRwYm1WbGNtbHVaekVMTUFrR0ExVUVCaE1DVlZNeEVqQVFCZ05WQkFjVENWTjEKK2JtNTVkbUZzWlRFTE1Ba0dBMVVFQ0JNQ1EwRXhIekFkQmdOVkJBb1RGa0ZrZG1GdVkyVmtJRTFwWTNKdklFUmwKK2RtbGpaWE14RHpBTkJnTlZCQU1UQmtGTlJGUlFUVEFlRncweE56QXhNREV3TlRBd01EQmFGdzAwTWpBeE1ERXcKK05UQXdNREJhTUhZeEZEQVNCZ05WQkFzVEMwVnVaMmx1WldWeWFXNW5NUXN3Q1FZRFZRUUdFd0pWVXpFU01CQUcKK0ExVUVCeE1KVTNWdWJubDJZV3hsTVFzd0NRWURWUVFJRXdKRFFURWZNQjBHQTFVRUNoTVdRV1IyWVc1alpXUWcKK1RXbGpjbThnUkdWMmFXTmxjekVQTUEwR0ExVUVBeE1HVUZKSExWTlVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUYKK0FBT0NBUThBTUlJQkNnS0NBUUVBNlQzcTFkUldWTHQxYS8yNlhoWE1OYjc0SERlOUIycDFyUS9NTkNPZGJ0YTAKK2dTR1pZb2tRd0VRV0E3TTdVcFo4VWZmVjYwL0dEVkhjTXRhdWNWamtDd3J5U25JMUN1bDBjVjhXaS9OWWxPbksKK3BFeTFUVW1pSlFuRVRQVFA1eXlvUTA4d3p2OTFoSEQvdUwzSFJ2SXljcENBYXNvSlAyVHZkODBEL2hUS0VVdEcKKzd3bzFxamJRS2syelZCRGloSkI5d0dtczJUUThrSUpudU83ODJGWFllNW1CVUU0RmxNQkVRb3JLVlBMRVkvYVYKK0RWZlpKTW1DMUhBNDVlRkVLZzlibGlWc0RyQWwxQWRVTFRKdk9TQjhmdjc5a2xKYTF1c3FSbFp1RHc5NElpa28KK0dSZWdHZHkrUDR3Q0haYTYzb2FGZlcyZ3dNc1R0RTk0QXdvY2FleDY3d0lEQVFBQm80SUJZRENDQVZ3d0RnWUQKK1ZSMFBBUUgvQkFRREFnRUdNSUdDQmdnckJnRUZCUWNCQVFSMk1IUXdTQVlJS3dZQkJRVUhNQUtHUEdoMGRIQTYKK0x5OW1kSEJ0TG1GdFpDNWpiMjB2Y0d0cEwyRnBZUzh5TmpSRU16bEJNak5EUlVJMVJEVkNORGxFTmpFd01EUTAKK1JVVkNSREV5TVRBb0JnZ3JCZ0VGQlFjd0FZWWNhSFIwY0RvdkwyWjBjRzB1WVcxa0xtTnZiUzl3YTJrdmIyTnoKK2NEQXNCZ05WSFI4RUpUQWpNQ0dnSDZBZGhodG9kSFJ3T2k4dlpuUndiUzVoYldRdVkyOXRMM0JyYVM5amNtd3cKK1F3WURWUjBnQkR3d09qQTRCZ29yQmdFRUFaeDRaUlVLTUNvd0tBWUlLd1lCQlFVSEFnRVdIR2gwZEhCek9pOHYKK1puUndiUzVoYldRdVkyOXRMM0JyYVM5amNITXdIUVlEVlIwT0JCWUVGSkRnQitGMVYwSUJwNmpheVRzeU1SU28KK2grSG9NQjhHQTFVZEl3UVlNQmFBRkZlTVZGOTVhVkZDRWlHa3BYaXMyMTlvTDRuSU1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFGRUgrZVhNb21WelRyMTdkSU9oSWxKZVRHK0EKK3pGYjREaFUwMWswYU9ocGlDeVMvMDlGSjdOT09PUGZ1emZHejY5eHBFdVRiQ0pUd1Ivd2FWSGlhWWg0V1dSZEgKK25SQXBob0phRkNndmxlSWJsaHdlSlh0YmhiTlpacVZuNEN1K3p5WG1qczVsSnlpZEV6TWV4UFhjVWRvLzA1eEUKK05UTThNUzJ6L3BKcHhlTHV2ZHozRlViNGlUWnQyZ0x5M0Vzd2p4UEQ3UVhlemtSa1BDZjVPRE5lWUtqVDdIM2YKK3FYNGJYdWFHaDZtT205RjhkUWUxcDI4RkxHN3pBa3FibXJva1hyU3Jta0F2TmhhbzJHYzNZM0l2UVF3NktUUGgKK2RHd0dMUVFrWTV2dFVLcks0a2NXY3ZUdFVRbFZMQUlRQW5Kc2NRZ1R1Nkl4NW9WNTdLU2UzQ2lqNENBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0FNRCBmVFBNIFJTQSBJQ0EgWlBGYW1pbHkgMkJERUE1QjgxQzA0NUI1MzZFRTYwQ0EzNjUzRTRCMUIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRTJEQ0NBOENnQXdJQkFnSVFLOTZsdUJ3RVcxTnU1Z3lqWlQ1TEd6QU5CZ2txaGtpRzl3MEJBUXNGQURCMgorTVJRd0VnWURWUVFMRXd0RmJtZHBibVZsY21sdVp6RUxNQWtHQTFVRUJoTUNWVk14RWpBUUJnTlZCQWNUQ1ZOMQorYm01NWRtRnNaVEVMTUFrR0ExVUVDQk1DUTBFeEh6QWRCZ05WQkFvVEZrRmtkbUZ1WTJWa0lFMXBZM0p2SUVSbAorZG1salpYTXhEekFOQmdOVkJBTVRCa0ZOUkZSUVRUQWVGdzB4TnpBeE1ERXdOVEF3TURCYUZ3MDBNakF4TURFdworTlRBd01EQmFNSFl4RkRBU0JnTlZCQXNUQzBWdVoybHVaV1Z5YVc1bk1Rc3dDUVlEVlFRR0V3SlZVekVTTUJBRworQTFVRUJ4TUpVM1Z1Ym5sMllXeGxNUXN3Q1FZRFZRUUlFd0pEUVRFZk1CMEdBMVVFQ2hNV1FXUjJZVzVqWldRZworVFdsamNtOGdSR1YyYVdObGN6RVBNQTBHQTFVRUF4TUdVRkpITFZwUU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRgorQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1Q1RQdkJFWkYrMDYzam5UTmt4YlVwcHB3eWk0RStDa2owM3hmN1hESFBGUAoraCszcTN6SHZzYW1JWFJuY1lNOWpRSGtOWURIZFI5eis0b0xmc3BCZlA1by9LczhuRnZyR3NMN3ZTSHp4Qkp5NworM2V1bnNSRVA4Q2EyVEU0b2FYbjVoYkRTQmFGK2tZd2xycUhMRTVQelZGMnBpU2hvbVI5bWtaeVJZazFsOStzYgorMk52NnJwRmQrZWFGakxNZ0QyeGMxQkxxTkdIMklDdmpCRE1hWjI3WW1jWks3Z3dVcGZEWGhpcHpHNTlKTFNtNAorZkozVEhGVzhaZFA2NHp0NkgxekthUTRvdTdFRUhoOXFzNVVnS3pYd0VHM016RTAzbk1lZG1VekJvQzI2VnFiSQorYURHekx6TzBJNWtVTlpseUJvbWtOL01hbWNKY3Zxc2FhbDV4b0RQdWp3SURBUUFCbzRJQllEQ0NBVnd3RGdZRAorVlIwUEFRSC9CQVFEQWdFR01JR0NCZ2dyQmdFRkJRY0JBUVIyTUhRd1NBWUlLd1lCQlFVSE1BS0dQR2gwZEhBNgorTHk5bWRIQnRMbUZ0WkM1amIyMHZjR3RwTDJGcFlTOHlOalJFTXpsQk1qTkRSVUkxUkRWQ05EbEVOakV3TURRMAorUlVWQ1JERXlNVEFvQmdnckJnRUZCUWN3QVlZY2FIUjBjRG92TDJaMGNHMHVZVzFrTG1OdmJTOXdhMmt2YjJOegorY0RBc0JnTlZIUjhFSlRBak1DR2dINkFkaGh0b2RIUndPaTh2Wm5Sd2JTNWhiV1F1WTI5dEwzQnJhUzlqY213dworUXdZRFZSMGdCRHd3T2pBNEJnb3JCZ0VFQVp4NFpSVUtNQ293S0FZSUt3WUJCUVVIQWdFV0hHaDBkSEJ6T2k4dgorWm5Sd2JTNWhiV1F1WTI5dEwzQnJhUzlqY0hNd0hRWURWUjBPQkJZRUZNdXo5eWJuTERlL2ZweHMrcWJ2QnZpUAorMGZ4TU1COEdBMVVkSXdRWU1CYUFGRmVNVkY5NWFWRkNFaUdrcFhpczIxOW9MNG5JTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUV2SzR4M0VhNVhJR1RFZm5qbFB5dm9ISmdNdwordUpubnlLSjAyeGZnQVVMZkY2TmdJNVpGc2ExeitwcVBoT0hWVFIyWDRveFBlYUEvVGlCQjdNV01ZT1RVOHBjKworNkw4Zk9FKzZXN3E5NmlHTlhVRVNpQzY4Tnh5M2NINnIzUUZuZlA4S0p5NHBUdzduRjR1QitOOTJWWmRmNFBIcQorY1RqS0duRFh3K3pqdW9vcWhxK1FJak03N3d2bFBnOGQ2NUJUOGZublRsVFdNdUJrYU5wa2tudWtNTS9ydDZSNQorNmhEZWhZd05pSG9aZWpGOWpQRjBEWGFjdUxoT3JtVWJ0V3l5TjhJNTJlbzcyWDRXWU83ZGQ5RUxYT1NBTm5kdgorOFJ5T05ENWE5STZSTzE5OVhTTlpIdlo0WHhhRDhlcWNKM1E5OW9iQWV4RG9SNjRSaTBvdmJpYm1BRnc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQU1EIGZUUE0gUlNBIFJvb3RDQQorPT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFaURDQ0EzQ2dBd0lCQWdJUUprMDVvanpyWFZ0SjFoQUVUdXZSSVRBTkJna3Foa2lHOXcwQkFRc0ZBREIyCitNUlF3RWdZRFZRUUxFd3RGYm1kcGJtVmxjbWx1WnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFakFRQmdOVkJBY1RDVk4xCitibTU1ZG1Gc1pURUxNQWtHQTFVRUNCTUNRMEV4SHpBZEJnTlZCQW9URmtGa2RtRnVZMlZrSUUxcFkzSnZJRVJsCitkbWxqWlhNeER6QU5CZ05WQkFNVEJrRk5SRlJRVFRBZUZ3MHhOREV3TWpNeE5ETTBNekphRncwek9URXdNak14CitORE0wTXpKYU1IWXhGREFTQmdOVkJBc1RDMFZ1WjJsdVpXVnlhVzVuTVFzd0NRWURWUVFHRXdKVlV6RVNNQkFHCitBMVVFQnhNSlUzVnVibmwyWVd4bE1Rc3dDUVlEVlFRSUV3SkRRVEVmTUIwR0ExVUVDaE1XUVdSMllXNWpaV1FnCitUV2xqY204Z1JHVjJhV05sY3pFUE1BMEdBMVVFQXhNR1FVMUVWRkJOTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGCitBQU9DQVE4QU1JSUJDZ0tDQVFFQXNzbk9BWXU1blJmbFFrMGJWdHNURmNMU0FNeDlvZFo0RXkzbjYvTUE2RkQ3CitERUNJRTcwUkdaZ2FSSUlEMGViK2R5WDN6bk1ycDFUUytsRCtHSlN3N3lESnJLZVU0aXQ4Y01McUZycUdtNFNFCit4L1g1R0JhMTFzVG1MNGk2MHBKNW5EbzJUNjlPaUoraXFZemdCZllKTHFIUWFlU1JONmJCWXluM3cxSDRKTnpQCitETnZxS0h2a1BmWWV3SGpVQUZKQUkxZFNoWU84UkVuTkNCOGVlb2xqMzc1bnltZkFBWnpnQTh2N3ptRlgvMXRWCitMQ3k3TW02bjd6bmRUNDUyVEIxbWVrOUxDNUxrd2xueUFCd2FOMlE4TFY0TldwSUF6VGdyNTV4YlU1VnZnY0lwCit3Ky9xY2JZSG1xTDZaekNTZUUxZ1JLUVhsc3liSytXNHBoQ3RRZk1nSFFJREFRQUJvNElCRURDQ0FRd3dEZ1lECitWUjBQQVFIL0JBUURBZ0VHTUNNR0NTc0dBUVFCZ2pjVkt3UVdCQlJYakZSZmVXbFJRaElocEtWNHJOdGZhQytKCit5REFkQmdOVkhRNEVGZ1FVVjR4VVgzbHBVVUlTSWFTbGVLemJYMmd2aWNnd0R3WURWUjBUQVFIL0JBVXdBd0VCCisvekE0QmdnckJnRUZCUWNCQVFRc01Db3dLQVlJS3dZQkJRVUhNQUdHSEdoMGRIQTZMeTltZEhCdExtRnRaQzVqCitiMjB2Y0d0cEwyOWpjM0F3TEFZRFZSMGZCQ1V3SXpBaG9CK2dIWVliYUhSMGNEb3ZMMlowY0cwdVlXMWtMbU52CitiUzl3YTJrdlkzSnNNRDBHQTFVZElBUTJNRFF3TWdZRVZSMGdBREFxTUNnR0NDc0dBUVVGQndJQkZoeG9kSFJ3Citjem92TDJaMGNHMHVZVzFrTG1OdmJTOXdhMmt2WTNCek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ1dCOXlBCitvWVlJdDVIUlkvT3FKNUxVYWNQNnJObXNNZlBVRFRjYWhYQjNpUW1ZOEhwVW9HQjIzbGh4YnEra3ozdklpR0FjCitVZEtIbHBCL2VwWHloQUJHVGNKck5QTWZ4OWFrTHFoSTdXbk1DUEJiSERERHpLampNQjNWbTY1UEZieXVxYkx1CitqTi9zTjZrTnRjNGhMNXI1UHI2TXplNUg5V1hCbzJGMk95KzcrOWpXTWt4TnJtVWhvVVVyRi82WXNhalRHUGVxCis3citpNnE4NFcybkpkZCtCb1FRdjRzazVHZXVOMmoydTRrMWE4RGtSUHNWUGMySTlRVHRiemVrY2hUSzFHQ1hXCitraTNES0drWlVFdWFvYWE2MEtndzU1UTVydDFlSzdIS0VHNW5wbVI4YUVvZDdCRExXeTRDTVROQVdSNWlhYkNXCisvS1gyOEpiSkw2UGhhdTlqCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMDEKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFakNDQXJtZ0F3SUJBZ0lVV1pSVHlicGhKMEw4ZU1jRittbkFFcHd4bU1rd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBd01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBT1d2dU1sN2JtMUp4aVQ4KzJWWTFyS1JvWHVVNi9RWWExa1BVRG53NkZaWkpvdnJZTmhxblBhZ1BVZC8KK1ZvWW9oSmlya04vdUZ5THp2bHhSYTFRci92R0xoSndTQ0x1T2hSRjlTd1J1eTUxQ1c1SUFGZEtjeHpGam9JUzQKK1F5Qm5Cb1ArcER2WHgvdXluTUg4RFdvZm1TNUgyMzRyTjNKdFBVWlRodkVVcXZDOGl2R1hOTzBCOWpPeS8vRHgKK1owVVVPVEp3SUZ1NzdwUElmek90azA4dnNnMWJscGY0NTRkNzZ5b0ZUS0RzaS80ak54SFJSeUZmcS81U1RpUHgKKzBRSlpJbmdrUm9pZFpDU09MVUtWRjRpL3JTdG9nZGNnTVo2bkVrTTFsc1pUYnJ1ckFGRmRyU1BxakZUTnFPbmsKKzlYL3pETy9tK0o1c3JnYTNUaUR1WGIwM3BPOENBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJUM1lhT2g5QWp4Q1FlWHVIRW53cUk1ZkFyS0pEQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwY0EKK01FUUNJRkVucE9Ga09Kbm0yT2NjYS9wUnBxSU8reE1XbmErM0dIUTdoZGFrMW9TNUFpQmRqSjlDRUJNV1JnTmQKK01YZXlmdWJOZk9BOXJjSXN4TTE4T0R3aVh3NldjUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMDIKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFekNDQXJtZ0F3SUJBZ0lVVnhlbVVqdXJqdzFPaUpXVVozbEx3dlBoUkpRd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBd01qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBT252NkRETXIrelQ1VFNxUFFPNWJNQ1E1Qk5lQzJSa3JDb2tjczhpWHRxaHdxQWNMR1JLdDBGZHNPSGIKK25KNEhEc3JFV25NdzNmQXBMdldkOTluVzR2VTZ1a1dXcVpQM2krNW5BUmYxd1RidTFuN2R6dzBVODdQSUtUTjgKK1JSNk9mZmpnSTNtc2QweFBNa2VqNFlvcWFlTnJpUFg5Zk9MMExJTU14RmpjK3BERkQrWnNIdHg1dmN2RVpVODYKKzZTUUxWYlZ2Y095NXFFbmpoeDRNN0JCaHZhdVJkajVHT2w5QmJmWGcwR2lEcFU2SDVFaDg3eHRsUzcvRENTRFQKK0k1MTZ6NTd4ZkhhaHQvSmN3Q0x3M3lTaXNST1RJMk5tcUJYTlhYeUVrQTcrTEdNZE5tK284SHc1ZktSUXE4QXMKK3grM0ZwaUJOSVE5Z1ZkaTZicTFFVTR2cEpERUNBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJTQnRkbWN2NnlZeGRZYWpyOG1xR29JYS9vK3pqQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKK01FVUNJR3RYTFVmakRIZE5ibXRMU2p1YW1PaG1sNE9JdklOU1Vkd1VIQmZTQWlKL0FpRUF6QlVpZ05nZ2dBOXMKK2pBb0RpVmVVWHFUNU4wOTdXbFFqR1BsaE80ZXhsM009CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMDMKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFakNDQXJtZ0F3SUJBZ0lVYUV6azAxSDdVUExkOWNkanJtOFNHTk01ZFFZd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBd016Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBSmhRRkFFeWYvTVNIcmhWdEdpaldYTUFyUXl3emtLQmlIcy9ySU91QkppZnF4Q2pSM3owSSszbnQxTVkKK2dFVnFDNzVxek1ER1JSMTFiaDIra09rRkFSOWpwbEdYNFhBVjV2ZUdXMTZ4VU1nOGFMRWQ1VlBpV2J1U1N0RisKKytwR1FFTFlnU052MUpDVExkTVVWSnRUKzZTSnlwNnBQUjJNTmg2Y0t3bUdTQ08vRWRqZkczeGlRRnpxYzlhRHEKK1NPNDFSM3NMU1dQNExwOVk0Rjdqc0RWdnRhTGcybEt3Zi9MZlp0SmI3S0hxbmJxdERZYjVlQUMrcE1WUmFlTEUKK2w5NEJia2prWEd4VCtJYnUxRENjdW9PZlhXN0lLYnBXNWJYZHZodzZzUkd1RlR6bnR5SlF1SWxMS05QZGI2dmwKK2VQVTRXRG1kRTF4WTVOWFRYWEV4Yml0anZKRUNBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJUTk5BR3NiaHh2azkzWWFkUnFVWU1SczNSNGxUQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwY0EKK01FUUNJQWlrWVJRUTl1dHcwZHlYOW5NVDVoQ0NxUklXc2hOeXp3SjdpeFNESkZLekFpQkhFMlltUzRpbENRdU8KK0p1VGVESllXUFd5ZmI1Q2wzSndYZERObGFNM3Z2dz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMDQKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFekNDQXJtZ0F3SUJBZ0lVYTN1QVFVeGtLcFdnL1k3SFRpQ295cGdXNzRJd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBd05EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBTWJaZGJHcGJ2OWtsM3FnaGpMV25OQmpBcXNla0hvZUNyYTc0ajN4bFhUbTVMTHNoa1R6N21sdHVmNkcKK0RSaTVYOXNmNUE1Wkp3ZG5tUlRJbHZLTFNsMWZzVHVkTGhYTWFFeDEyZGNKekEvTWVnb0ROTTlJOXcwT1hkSHIKK3ViRVVRM2V4aDJCS2Jyekk5TWZLWUpHWlBndmxNZG9WcFkvTVJJaEF4L0t1Y01qK1FGL2RocEthRkFDOUh1TDEKK0ZlLzNBaEFYTEN6clBEcXVxeXM1b29QTnBMQTRpLzA1Ly9FN2JFcGxBTUUveGN6UDRJdS9jZEE5WVI3VjhpemgKK1R3eUt6c3QzZDNNK1VERGtraXd4eG81cUdnd1JkUHEzQVVTUWdsTm9nYlh5REFYcnlUdFNBVkpvL3hJSHF4MWwKK21uK2FUVFNRQyt0bmdIbm1saXB1VG1sK20xVUNBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJTZ2hVdlJsL2doTDZ5Nk9Ka2IvZHYxMFR6cHpqQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKK01FVUNJUUMvcVFWNVpBRkJJb0t2Q0RLTmZJZWltZFpKSFdobExOeFJESnM2VklmUitBSWdRZEx6NW9VMFpXaXgKKzE3dlAwa2dpaTVpMUNtTGZqdk9lYWpmYThTWEQ4dEk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMDUKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFekNDQXJtZ0F3SUJBZ0lVU1UzS1duMnR6OEc5c0Z0c0JubENVSVhsUU5Bd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBd05UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBS29OUlk0VGtQeHJLb0ZDL2xrZ1hIMks5NFpNY1pkUkFXZ2lLb3FKWE5VZVU1bVdtMmg2QWxDQ1pvY0YKKzN4Um9SYjRXYXlOQUhCS2lHQURTNEdOSzRyNStJZXIxZnE2OExjVE5WKzEvSVprL2dIYjhTOXFmWlRncWUxemEKK1VOa2NQcVA5aVliZ1VsTC9xS1Z1eXVzRDdwc0ZLY3VJQy9uUUtNMmNnWTJwK1FxUGJEK1dJZDVIUnQvbnMwYkgKKzhYOXdwMHUrallZeDRKU3ZRRmxIVE5YT3BoUnFrei9uMVBja2s2YUdtNjV3MU15SEhuYnVUckRHV3VTOVMzaXkKK2g2NnEyek4yL2ZlV2xQVVQ2eUVLRHQ4ZmdVbXJ2UUc5SGV0ZU02UTlFM2xzSXdVKzJPYXlJTmVHeU1ldzRnUHUKK0pCa1JPWHgyYmFYVWxxWUNacFpIRG0wa25iMENBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJUVzlXN1B6MzdkdC8ySDdRSGhKKzRBbWtZN3lUQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKK01FVUNJUUNEVzNyblNVNWhjazFuOXZmdXhsNklpWS93bEREczBQL3FIaldYUGE5ay9BSWdlUjFZNE5HZGh6Z1cKK053SFdHZXBXUGRkemNEL1V4UTlJNjNaSkRxWUhlWWc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMTEKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFekNDQXJtZ0F3SUJBZ0lVYnhUcWplT3dRbnhwNC9lbmlsbXFYQVFDWWtrd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeE1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBTVBiUGNwS1lNeDlRWXE4L0NWWmgzUDQxelVtaGJBMEdEUFlYRXQrZGR6KzJxMHZxLzVyckpsS24zY20KKzJQeGtQUG1LZ0FPaUdhdnNaUm1lMWxCSnNiNlB4NVo1dnhVSTkzcVdSZzk2N2dLWnZ2SFMxZUI3N09FWTJRa3YKK0hINlpFV2NvSWZwMFhhMmQyZ01HVVkwRzRiNWZKZ0NUa05rYWZRRFdtVE0ySTYzdTJuWkxxaUJRMnZONXlvSisKK0Y1RENIN2ZqTFlUcjNER0ptYlVpK3VJTHdEV2V6NHE4Z2RuRElVdnRNZ0RCaXZ6cXB0QkN5RVpQTUtnRWY1ZDcKK2NVVmNhRUJLZ1BYd1pObTd4allscjJ2ZG5JY1FpNlJGL2ZnbkdWcjFIaCtsS2VXdGhBOGNQQVlNUk5DK3JLb3kKK0RWcDlyamRNZTQ1U3NySVBseE1xTzZsS1RFVUNBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJSR1p0NTJZZ1RuVGRLYnRQM0ZoU09oUUQxcU1qQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKK01FVUNJREhGNm5JbXhCdm90UU5HbThhK2l6SFNrYWRyUCtxbFNISFVsazRNcnY3NUFpRUEzcDBlY1NkWDBoTTMKKzcwMVd1bFBxVDdWOUZ2YjFyK1ZFcHZRQmlKRXp2SE09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMjAKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFakNDQXJtZ0F3SUJBZ0lVZGJwTk1VWEVHVHhlUXhFSVJNUjhqRlZpUWZNd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeU1EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBSldFWHd3OTJ6Q1FlOE9oWmZpbnM2Q0doSk04L3RsUW5oZkw5NkliRFowaWdvSE1mTHBPMG5zcWVkR3gKK0xTd2VyenM4SUhET1ZveFNMU3NtQzJXaDdUK042dDRoN0x5RW93QmpYR0JuRU56YXpPSW11cVhOb0hsYTJycVoKK1hUMDNVQlRrSThIZnRELzBOdjBURzFtT29Qckc0eUE3U0xSSE5iNFgrbXlOMDRwMC9teHNjVjNVZlFlcWxvQ3oKK1hQeDk5Y0xBVFRkcHo3OVN1TUJQREZud0ZlNFhDdGphQ0hOY3hoR1BpSWxqN1YwcnVQTTVyMHRwY1NsbG1Mb2gKK3djQXJlWjdQMU96UEYwbzVHbyswbTRROU5zaXNJakdyN3UwakFISGtsbGpBYm9ZNEp2ZjgzekFEeWp2Y0hrSXMKK1ZRbnJsN0tRY25uN0hwRDdwT2FJVzFqa3YyOENBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJUZ0FvMkh6bXhucUhVY3hMWFhUMWRpTG5Ya0tqQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwY0EKK01FUUNJRU5ucDVvVnZIQ2VySmVVVHBsNlRMZ3pabU9yMWVyejVtaU80bzBsRnJ4bEFpQXlJdDdCYzNHMjZHalIKKzB5NS80ZlVpY0tvOXhuaFhLTnhGWkZ5WGM2Z2FKdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMjEKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFekNDQXJtZ0F3SUJBZ0lVVU15dHc4ckd6TjhSQzc3V2RmMDNNL1BUTWVBd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeU1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBTXBWMm9PQ1pzNktta3l2SGduRW93MGpoa1hLMS9DQ3Yzd1dzSUJGaWdJRDh2OHJ2dkJSbDF5dGRGdzMKK2lOWDVwUUhudzYrOStQUXAvci9mOHZqSDMxeUhiaWdxa2VXVC9UTmZud1pPNU9aZU1ka25ndlRYeURCdm5OTWkKK2VwdFpCSnJFamRPSjVTcFBINktPZUMrdzJQaXBJMzRlaEQ4Y3M4YkRBNnFrNnpJbndVNFJkcEtxT1NsQVEzUVkKK3lKRGxCOVhXeTFob3hJRktTcUhBcnRqT05WTzQ1bzA2R3JaQVBuZDFmajhrRVJlUDVTWkUySXIraWN0V1pkYXEKK1JKQzcwZEtpcTg2QjVEb28rOHdhVVArT2dkZ1Z0YVFFWTFPd0NLZHpiWDB1VXh5K2ZacVY4YWJzbytzdG9kTU0KK1RWVVpEMmFaMVFOR1ZoNE0vU2VFM0NJQURUOENBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJRdFlGellncks5Y1d6T2Nja0x4M1RUMWJ5eDFEQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKK01FVUNJUURvT2lZR2lQY3JISmpIMktiN1dtcXZlc3Y5Q1hhRGVreWpNYktqQ0tCZ3NnSWdXMHFzTXltcFMrUmsKK0d6eGRIN2NuTGx3bUIraEFyRWYrOVM4bkVUUkhZME09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMjIKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFekNDQXJtZ0F3SUJBZ0lVWGRubk02dGdmeUpPZXp3RVJvaU1tMjEwMndRd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeU1qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBTVd0RndTSlFZL2JlVzJBZk5Rbm1wcFZkeU42MDJyWVlNbEo5bFMrLzhKNE5yeXVjZXdRZDJ0Y0kxN2UKK1pQN3NFZnpPYlh5QXprbzdvUDBuUTMwMXBHVVh2TmlJLzZHQ1RzclhLeGN4TTZMaUdWUU83ZjdpblY4MGNNKzMKK1dlaXo1elZaS2ZCb2xsQXdnNlV6VFpwNzRubVhJNnFIMm93M0hOQkF1OXREVS9qYXBwQUNYZEttRExQb3VFd04KK3FKdGd0aThhWkt2bUhTYWRxU1RnZ2tLcmdzSmkxd2ZEc2EzWFkxK0VGdVpoODRvTWVIMnB3dnhpWEY3a1VEMTYKK2k2N2gyWlZwbEtsTzBwZXNtUkpiaUxSMndhNHVBY1E5ME8zbHg5TERONjJSbEFpNjk1VEQxNHhySDZhSUdVK00KK3k2OU8rVUNNYmNIdVRsS1o3SlZPdFhOK0Z3Y0NBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJRMXJ1YzJ5YlRTaGhNSjU0RmNENlRPUU5obDlqQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKK01FVUNJUURjVWFBMHJkS0pXenVtZ0owaGV2Um9qMGIzUFdUaHRwbFJkaGhTMlFHb3RBSWdGMFpYU0dXTVFzd1EKK1V2d29vREF2ZU9ZMk1oMTQ3L1B4NVhaUjQ3bmZEcEk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMjMKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURGRENDQXJtZ0F3SUJBZ0lVUXdXdnVsMEFnSStFTVI1WU1uSFE2VWNOaGNnd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeU16Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBTlJ4SGdwL05xL0ZhNE91SWFNTDdiUDltSStjcmw0UkwreGNGR2lFcU82MkJad0c3TGNqRlJqYkM5dUsKKzNrVnUyb3NvK3VZaHhLSThkUW1xOXlaYnZJV0gwNm9tb0JaaEN2Nm52SHF4R3JjSU9ZeFVOQm5TdDJ2VThPNTQKK1dHWTQ2WHZmTEVZeS93MEpTT1RZaWdwVHhlR1RhaU9OZkRCcHM1anpmMERjVVp5aVFLK1MweFBCV1FqRW9adVYKK2ZYb0h1OXFDNCtGWHo3czl2WDBDd1dWaVFOdmpWTXVvQXFYRkVvWG94bjV2UTB4Z1pOSnQ4Szdxc2w3c3lzeWUKK0ZORjZPWjA2cWUyVmZ5UzIwbHAweWNiTzlvV2VBOVoyNHRLV2owSUhDdVJXR3lNRU5WcmhLVGVVREg0cGJBR1IKK1c2SkVKMEd2bzE5a2M1WHFHdEpsRVZSSnhrMENBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJSVjlObzV5bVcyYUI4cmR4RzhQdklJcUdlZEhqQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0Ewa0EKK01FWUNJUURjRHk5aEw1dHYyZG5LRzVGMFFBVUR5UGpGcE0yb1hUKzcrNjVsaFhFWlZRSWhBTThuV3kwcjJSUG4KKy9pdCtaWTRUVUdiamk3ckthYjJ0QUM2WWNhZ0h2Rml3CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMjQKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURFakNDQXJtZ0F3SUJBZ0lVVWtick0wbmphODYrVmx0Ym5SdlZTUFFLWWUwd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeU5EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBS3EwdFJJdFZieThWV0ZqYi83TitXbUpoMnVURHA3ME1tNEZ2NHRWN2lEV2JqMEttRGNOTnNLMWtRT1gKK243ZHJiUGhaQ1E3Mjgrbm5iYWg5OUFvOGZxWmhQVHI2TFdPenU2MjZLN3M5bHRqNlhFTlA0cHkxSXNUWXF2d1AKK0lJaWtWaVdremJJaGVsU3pSRmhIdWJIOTYzdXZndjJVRkg4THFUT2VtMU5DYXlETVJJS2ZFZ2hZTGtMRGNIS3QKK3JjYmE5Ym80RitEemVnem5yZWdYSzA2YkdMOFNvVUQyeS8wMzVmNURLbUZjNnFzcXdSb0pJUFB0aFVjVHVtMVUKK2lRc0s4cXdOKzJjSklDWmQ1UDZvbTB4YzhDVlh5WnhtaytleS8wMUZTVWNBQTdWVGZxQ1JYRUdwa2V6ZWxTTHEKK0ljZTM2ZTFQTGZKNnlvV2FTTUN1Tk9ZU3hOY0NBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJRV3MwSGpnYzFjUG5tYXlEaktGL0gzOC9kREhqQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0EwY0EKK01FUUNJRHlaWEthcitic1FJWkhWR3RjVExwTXFpMzVlb0Y3cHFqT2hGSXYxRkhaNkFpQnJCWnllbG1ZelIyaTMKKzNJWXVhN2kvSWlzdW1LV3A1RVFaRkFRa09YWlpZQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgU2lnbmluZyBNb2R1bGUgMjUKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURGRENDQXJtZ0F3SUJBZ0lVVjBoNGNvbnNiek9aVEJNOENFblRYcXFvaEh3d0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRFd01UQXhNREF3TURBd1doY05NekV3TVRBeE1EQXcKK01EQXdXakJ0TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNBd0hnWURWUVFERXhkQmRHMWwKK2JDQlRhV2R1YVc1bklFMXZaSFZzWlNBeU5UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0MKK2dnRUJBTlVlSDFRVzFDTzdiR2tia3RGYngwNHFMbWV5L3h3S0pCeUxLTTNpeW1wb3JMWjZBalNqTXMrTktjQm4KK3B5dkpkRjU3eWIzcUFKVS90N1d5cHBucU80a2RVRDl2TElUZklJSnpteDJhUVRkbkQ0c2tvZEFQTG1DQkYyTjcKK0NUS3pXZjRkakRHNDJBOXAxTXEzbGFiby9wc3JVbTc1Z2RYcW5JL2FlQ1FXTldxc0Z3YTV0QTZzV1Z5YkZUUVoKK0l5ZTNQWkJjdDgzdk1uSEV4U3NmOEYzdTd6eDRLRmlnTzBTN1ROb3Y2YVNYVUlFL3lMbXpxNFdVOGxqNmJ5MEEKKzZUWDlLZjBnNWdjc04vMGM0cHp4WmNWSmdIZ2M3MHc4RE80eExHU0ZFQmcyU0FZWW55dU9WU3k2MElnMDB6aS8KK0hsY1BRL0I5TTUvQUNidTNCZmNQYUdFSStuMENBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CMEcKK0ExVWREZ1FXQkJRbmRqSFFXZnA2bFZQN1dkL1c2RnZCSWpBUDhEQWZCZ05WSFNNRUdEQVdnQlF4MEYwUWJhL2sKKzdSbmRDcS9UVytvaW8zZ2NWekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNQ0Ewa0EKK01FWUNJUUNIZkZ6RnpxMW94WHZPSFY3UGZ2K05OL0JGK1RFSi9OUzdna2htWHZxQ3VBSWhBS042V0dpaHQrWlgKKzBxMHdrdEhIVmRlUFZKN3Z4c3c0MnQvMG9xdTFqZTBCCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQXRtZWwgVFBNIFJvb3QgU2lnbmluZyBNb2R1bGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNLekNDQWRDZ0F3SUJBZ0lVY0Q4aEdoVVpidFdyL1IwU01vNHJCa21nVkhnd0NnWUlLb1pJemowRUF3SXcKK2N6RUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdUQ0VOdmJHOXlZV1J2TVJrd0Z3WURWUVFIRXhCRGIyeHYKK2NtRmtieUJUY0hKcGJtZHpNUTR3REFZRFZRUUtFd1ZCZEcxbGJERW1NQ1FHQTFVRUF4TWRRWFJ0Wld3Z1ZGQk4KK0lGSnZiM1FnVTJsbmJtbHVaeUJOYjJSMWJHVXdIaGNOTVRBeE1qTXhNREF3TURBd1doY05OREF4TWpNeE1EQXcKK01EQXdXakJ6TVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNCTUlRMjlzYjNKaFpHOHhHVEFYQmdOVkJBY1QKK0VFTnZiRzl5WVdSdklGTndjbWx1WjNNeERqQU1CZ05WQkFvVEJVRjBiV1ZzTVNZd0pBWURWUVFERXgxQmRHMWwKK2JDQlVVRTBnVW05dmRDQlRhV2R1YVc1bklFMXZaSFZzWlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUgKK0EwSUFCSDJNYzJaend1bEhXdUY4YStFTXBleTUxWnJNaUY3OG9ReXdNRnpHQ21WNENtZnBTUVZwSnF3MjNucDgKK1F2ZUNRT3Q3bi96c0JNUnNxazFic0FmWUt3cWpRakJBTUE0R0ExVWREd0VCL3dRRUF3SUJCakFQQmdOVkhSTUIKK0FmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUXgwRjBRYmEvazdSbmRDcS9UVytvaW8zZ2NWekFLQmdncWhrak8KK1BRUURBZ05KQURCR0FpRUF5TnU0c0JEYlJVUmNWR2hLeXNkSEdZaWRrNUgyQmlhK3lvNW1EcnlKM2hNQ0lRQ3MKK2xEa1VFNFQxakhId3pTeGNhNktDWHpndHB5dWk3OEc3NDJDZFltOVc1UT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQlhURVBJREEwUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHdEQ0NBMmFnQXdJQkFnSVVKcm1xNFQwV0YrS04wR0JGWTFuUVpla2NtWll3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRVdworT1RFNE1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCbHpFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4TVRBdkJnTlZCQXNNS0ZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRUpZVkY5RgorVUVsRVgwRXdYMUJTVDBReEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3V1RBVEJnY3Foa2pPUFFJQgorQmdncWhrak9QUU1CQndOQ0FBVGxXNmxZa2pScWZKY0RnWVlJRjRBais1Z3JnbGI1Um5kcjcwalNoRGo0Y0RSTAorU05rVG95dUhoUUlFbXNhK2dkM3IzYkg5a1ZiODNKemo3bnJocmxLTW80SUJuRENDQVpnd0h3WURWUjBqQkJndworRm9BVTZGSUZ3ay9ZMHRXbElVY1d0czRNZTF1NmR3OHdIUVlEVlIwT0JCWUVGTG1lbDVxdVNIZE9vdS9LbS9tdAorV3dRRURjRUtNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3RGdZRFZSMFBBUUgvQkFRREFnRUdNQk1HQTFVZAorSlFFQi93UUpNQWNHQldlQkJRZ0JNSEFHQTFVZElBRUIvd1JtTUdRd1lnWUtLb1pJaHZoTkFRVUNBVEJVTUZJRworQ0NzR0FRVUZCd0lCRmtab2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTQorTDJWclkyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm1NRndHQ0NzR0FRVUZCd0VCQkZBdworVGpCTUJnZ3JCZ0VGQlFjd0FvWkFhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MAorTDBOU1RDOWxhMk5sY25RdlJVdFNiMjkwVUhWaWJHbGpTMlY1TG1ObGNqQk5CZ05WSFI4RVJqQkVNRUtnUUtBKworaGp4b2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RgorUzE5UWJHRjBabTl5YlM1amNtd3dDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBT1RlTDNTUU9wY0pjVWZnNFpBSgorTDBsSzdraUxyeDk4ekQ1UGNBWU9vZjBPQWlCeTZ4MjBMd2ZNS05RYzJmUWVjYzlOSERpWXF6b3dVSUhYbGRoegorL204NnRBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitCWFRFUElEUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR2VENDQTJPZ0F3SUJBZ0lVTlk4WGFRY2RRUW14QURUS3VlTjM5WnpXSVhzd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UVXcKK016RTVNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQmxERUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eExqQXNCZ05WQkFzTUpWUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUVKWVZGOUYKK1VFbEVYMUJTVDBReEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3V1RBVEJnY3Foa2pPUFFJQkJnZ3EKK2hrak9QUU1CQndOQ0FBUWJscnRNc0NOekhVQVpUWjZ2UUdKak1XbFM3My9EaFo5OEhhRWIvOEhERHdtOUNkT0EKK0lqVFlzUmNaS0RuTHVmUDB0aVRxQVo3SDM4Ukp4NC9LNm51Nm80SUJuRENDQVpnd0h3WURWUjBqQkJnd0ZvQVUKKzZGSUZ3ay9ZMHRXbElVY1d0czRNZTF1NmR3OHdIUVlEVlIwT0JCWUVGREZ6VFcrSzZwRTZDakVZQzNoY3dHTUkKK2xNeDdNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3RGdZRFZSMFBBUUgvQkFRREFnRUdNQk1HQTFVZEpRRUIKKy93UUpNQWNHQldlQkJRZ0JNSEFHQTFVZElBRUIvd1JtTUdRd1lnWUtLb1pJaHZoTkFRVUNBVEJVTUZJR0NDc0cKK0FRVUZCd0lCRmtab2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnIKK1kyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm1NRndHQ0NzR0FRVUZCd0VCQkZBd1RqQk0KK0JnZ3JCZ0VGQlFjd0FvWkFhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlMKK1RDOWxhMk5sY25RdlJVdFNiMjkwVUhWaWJHbGpTMlY1TG1ObGNqQk5CZ05WSFI4RVJqQkVNRUtnUUtBK2hqeG8KK2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxOVEKK2JHRjBabTl5YlM1amNtd3dDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdaZ3M2OXAxMjN4alJ4dm5rWjAzaTJnTncKK0ZBVnEwaTBZVUdRaWZLcjhCeWdDSVFDN2xkbVN2NE4yeWVqQ3ZsTTFCbDBxOVgwWkhpVGs1YXZyMzUvSllKTW4KK1dBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitCWFQgRVBJRCBBMCBQUk9EIFJLIDAKKz09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEeFRDQ0EydWdBd0lCQWdJVUdJV2RHZVE3R3FPQ2xja3IrL09RUHFYZXpLUXdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFV3CitPVEU0TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JuREVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOakEwQmdOVkJBc01MVlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFSllWRjlGCitVRWxFWDBFd1gxQlNUMFJmVWt0Zk1ERVdNQlFHQTFVRUF3d05kM2QzTG1sdWRHVnNMbU52YlRCWk1CTUdCeXFHCitTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSm50b1U5ZXQ3MWNOVmoxL1FoaFNkN1lJV2RKSUJiTjlPT2ZvMWIvCit5U0hDNG9hWER5cE5vV1dyeVgvWVgwYTM1eVNVVzduQm85aFhKNlpaNmJ5c0NGU2pnZ0djTUlJQm1EQWZCZ05WCitIU01FR0RBV2dCVG9VZ1hDVDlqUzFhVWhSeGEyemd4N1c3cDNEekFkQmdOVkhRNEVGZ1FVMXp6K1dwNEJnSUFSCitnYUZFVGVOdSsvaUxvVzR3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURBT0JnTlZIUThCQWY4RUJBTUNBUVl3CitFd1lEVlIwbEFRSC9CQWt3QndZRlo0RUZDQUV3Y0FZRFZSMGdBUUgvQkdZd1pEQmlCZ29xaGtpRytFMEJCUUlCCitNRlF3VWdZSUt3WUJCUVVIQWdFV1JtaDBkSEE2THk5MWNHZHlZV1JsY3k1cGJuUmxiQzVqYjIwdlkyOXVkR1Z1CitkQzlEVWt3dlpXdGpaWEowTDBWTFkyVnlkRkJ2YkdsamVWTjBZWFJsYldWdWRDNXdaR1l3WEFZSUt3WUJCUVVICitBUUVFVURCT01Fd0dDQ3NHQVFVRkJ6QUNoa0JvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52CitiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMUp2YjNSUWRXSnNhV05MWlhrdVkyVnlNRTBHQTFVZEh3UkdNRVF3CitRcUJBb0Q2R1BHaDBkSEE2THk5MWNHZHlZV1JsY3k1cGJuUmxiQzVqYjIwdlkyOXVkR1Z1ZEM5RFVrd3ZaV3RqCitaWEowTDBWTFgxQnNZWFJtYjNKdExtTnliREFLQmdncWhrak9QUVFEQWdOSUFEQkZBaUVBd2FIVEFxQ1d2VGJHCitWSk9FTFIvZ1dteU0rZ2JBdkx4aGd4cy8xNmt6OUtRQ0lBVTIxSUYxUVp3SlMxajArWDJjTVdJTm02dERqKzF3Cis0NzNaMnZ4MEp4WkkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitCWFQgRVBJRCBBMCBURVNUIFJLIDAKKz09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEeGpDQ0EydWdBd0lCQWdJVVdLbzFBRndhWUxUeWM5QlJzaHdnVHlRQzREVXdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFV3CitPVEU0TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JuREVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOakEwQmdOVkJBc01MVlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFSllWRjlGCitVRWxFWDBFd1gxUkZVMVJmVWt0Zk1ERVdNQlFHQTFVRUF3d05kM2QzTG1sdWRHVnNMbU52YlRCWk1CTUdCeXFHCitTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCTnNVZVQrbE5NdnBld3E4SkIxV3JnUHRjRzV1MnVMZFNzRU9ZUXJDCitGTDV5R04xUXl6K25aMGo3YTBHYmxJc3hXQjZ2RERPUStCeVkwbENwVHVxL1dOMmpnZ0djTUlJQm1EQWZCZ05WCitIU01FR0RBV2dCVG9VZ1hDVDlqUzFhVWhSeGEyemd4N1c3cDNEekFkQmdOVkhRNEVGZ1FVRkxqbkUzK3BsU2JFCitjWDM2aUJza2sydThhOUF3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURBT0JnTlZIUThCQWY4RUJBTUNBUVl3CitFd1lEVlIwbEFRSC9CQWt3QndZRlo0RUZDQUV3Y0FZRFZSMGdBUUgvQkdZd1pEQmlCZ29xaGtpRytFMEJCUUlCCitNRlF3VWdZSUt3WUJCUVVIQWdFV1JtaDBkSEE2THk5MWNHZHlZV1JsY3k1cGJuUmxiQzVqYjIwdlkyOXVkR1Z1CitkQzlEVWt3dlpXdGpaWEowTDBWTFkyVnlkRkJ2YkdsamVWTjBZWFJsYldWdWRDNXdaR1l3WEFZSUt3WUJCUVVICitBUUVFVURCT01Fd0dDQ3NHQVFVRkJ6QUNoa0JvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52CitiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMUp2YjNSUWRXSnNhV05MWlhrdVkyVnlNRTBHQTFVZEh3UkdNRVF3CitRcUJBb0Q2R1BHaDBkSEE2THk5MWNHZHlZV1JsY3k1cGJuUmxiQzVqYjIwdlkyOXVkR1Z1ZEM5RFVrd3ZaV3RqCitaWEowTDBWTFgxQnNZWFJtYjNKdExtTnliREFLQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBbWNIRGVQeFNqWnJ3CitUUlFUL1V6SXZqSmJwRWNXY1NXL3dkSkdzM0RGb1JBQ0lRREJjZWh1YjIreXNGcFo4VG5vWjNjOGQwQWNQVkM0Cis2aGZhUTFlajN6S2swUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQ0hWRVBJRFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEdlRDQ0EyT2dBd0lCQWdJVU1vWFFON2ZwdmxNaCtFYWFrRkhJUEVuY3lJRXdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFF3CitPREl5TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JsREVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhMakFzQmdOVkJBc01KVlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFTklWbDlGCitVRWxFWDFCU1QwUXhGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCitoa2pPUFFNQkJ3TkNBQVJWNDZoK0V4UmNwdTF3S3M1VFBNQ0I2OExUMDdUZ0Z6NWdsOTZ4Q1JEZS9lelcwUEVCCis2Z3BKZWx3MDZLQ09OUHJsZ2lCdUF6bEJQbTFIWGdCaVRHWERvNElCbkRDQ0FaZ3dId1lEVlIwakJCZ3dGb0FVCis2RklGd2svWTB0V2xJVWNXdHM0TWUxdTZkdzh3SFFZRFZSME9CQllFRkErbnRKVUVnU1lTRGhKekZnWjNiejFvCitvRGZBTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJNR0ExVWRKUUVCCisvd1FKTUFjR0JXZUJCUWdCTUhBR0ExVWRJQUVCL3dSbU1HUXdZZ1lLS29aSWh2aE5BUVVDQVRCVU1GSUdDQ3NHCitBUVVGQndJQkZrWm9kSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyCitZMlZ5ZEM5RlMyTmxjblJRYjJ4cFkzbFRkR0YwWlcxbGJuUXVjR1JtTUZ3R0NDc0dBUVVGQndFQkJGQXdUakJNCitCZ2dyQmdFRkJRY3dBb1pBYUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTBMME5TCitUQzlsYTJObGNuUXZSVXRTYjI5MFVIVmliR2xqUzJWNUxtTmxjakJOQmdOVkhSOEVSakJFTUVLZ1FLQStoanhvCitkSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMTlRCitiR0YwWm05eWJTNWpjbXd3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU9DdjlsZ1ZHS1FqaHdLYlhteWpSYWM1CitQUHhMNnRGS2x3dXcxOUFpalZhVUFpQkZNN1ZDeGlaaDJDWm9DQVlkOTVDVStRaTFVaGdseVY1djlMTjJ1R1hwCitqZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQ0xQRVBJRFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEdkRDQ0EyT2dBd0lCQWdJVVhhYXZTTkd0eHJMS3h2bUg3eUg0OXlNdzJBb3dDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFF3CitNakEyTURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JsREVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhMakFzQmdOVkJBc01KVlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFTk1VRjlGCitVRWxFWDFCU1QwUXhGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxCitoa2pPUFFNQkJ3TkNBQVFKTW9RbkFLQWIyUGYwYysxRklCcTk3M0pvYncxWHlpN2xHaUdPeE40WEpxeFE0Zy9RCitBVXNaZEJyQjlpckMvOW1aUExpVmVlQzVnbVgxdCtoNzRNNFVvNElCbkRDQ0FaZ3dId1lEVlIwakJCZ3dGb0FVCis2RklGd2svWTB0V2xJVWNXdHM0TWUxdTZkdzh3SFFZRFZSME9CQllFRkJRSksxOTRGT3liY1Q2YW01Q2t4Um5mCitDT2FJTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJNR0ExVWRKUUVCCisvd1FKTUFjR0JXZUJCUWdCTUhBR0ExVWRJQUVCL3dSbU1HUXdZZ1lLS29aSWh2aE5BUVVDQVRCVU1GSUdDQ3NHCitBUVVGQndJQkZrWm9kSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyCitZMlZ5ZEM5RlMyTmxjblJRYjJ4cFkzbFRkR0YwWlcxbGJuUXVjR1JtTUZ3R0NDc0dBUVVGQndFQkJGQXdUakJNCitCZ2dyQmdFRkJRY3dBb1pBYUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTBMME5TCitUQzlsYTJObGNuUXZSVXRTYjI5MFVIVmliR2xqUzJWNUxtTmxjakJOQmdOVkhSOEVSakJFTUVLZ1FLQStoanhvCitkSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMTlRCitiR0YwWm05eWJTNWpjbXd3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnT2dFMlhaNjlJUzZtbVVHcVFoV1d4RVVBCitkSEVWejdpQkJHdDJJVTk5dUlvQ0lFWWx6VEtVQ0JCTFZxQWhITlV4VlM3NW93TEgxMC9nOWt0TStMdTR5SWMyCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworQ01MRVBJRFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEM1RDQ0E0S2dBd0lCQWdJVUpKWWR2ODNsMHVvWlhxS1ByY0pyL3pGTlJ0UXdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVGd4CitNVEV6TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JtekVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOVEF6QmdOVkJBc01MRlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFTk5URjlGCitVRWxFWDFCU1QwUWdjR2xrT2pFek1SWXdGQVlEVlFRRERBMTNkM2N1YVc1MFpXd3VZMjl0TUZrd0V3WUhLb1pJCit6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVSVXY1VnVKZUxxK2tvd2R4enRoZzFSWEl2YTJ3SVh4OFFUeURwb2hECitILzZpeWNmNnZYcmJod09CdDFvbDdzaU1KVXNsUENSS2hHcEFRKzVaL0w1RFE2T0NBYlF3Z2dHd01COEdBMVVkCitJd1FZTUJhQUZPaFNCY0pQMk5MVnBTRkhGcmJPREh0YnVuY1BNQjBHQTFVZERnUVdCQlNhcjFrZTRtUEtyaEQxCitlNkJQcU5IZFpoUDU2ekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUE0R0ExVWREd0VCL3dRRUF3SUJCakFUCitCZ05WSFNVQkFmOEVDVEFIQmdWbmdRVUlBVEI0QmdOVkhTQUJBZjhFYmpCc01Hb0dDaXFHU0liNFRRRUZBZ0V3CitYREJhQmdnckJnRUZCUWNDQVJaT2FIUjBjSE02THk5MGNuVnpkR1ZrYzJWeWRtbGpaWE11YVc1MFpXd3VZMjl0CitMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm1NR1FHCitDQ3NHQVFVRkJ3RUJCRmd3VmpCVUJnZ3JCZ0VGQlFjd0FvWklhSFIwY0hNNkx5OTBjblZ6ZEdWa2MyVnlkbWxqCitaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxSnZiM1JRZFdKc2FXTkxaWGt1CitZMlZ5TUZVR0ExVWRId1JPTUV3d1NxQklvRWFHUkdoMGRIQnpPaTh2ZEhKMWMzUmxaSE5sY25acFkyVnpMbWx1CitkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRmVUd4aGRHWnZjbTB1WTNKc01Bb0dDQ3FHCitTTTQ5QkFNQ0Ewa0FNRVlDSVFDS012U0czTFVOdGhKWWZjbDkzK0diR3ZMTmxkbzZRY2M2MFdjQnVZNUZ2Z0loCitBSUR2dTgwRUdxWXZjVW43NG41UzEwcFRPc0RKTkxSaXBQUFFvTWVwUGVPMAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0NNUFZFUElEUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEM2pDQ0E0U2dBd0lCQWdJVVpxUE9nYjZGejRIa0NZUzRjWTRBV1dIZmcwc3dDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVGt4CitNREV4TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JuVEVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOekExQmdOVkJBc01MbFJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFTk5VRjlXCitYMFZRU1VSZlVGSlBSQ0J3YVdRNk1UUXhGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd1dUQVRCZ2NxCitoa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVE5bmVLOElNczVOSTArWkVaMEV2dHR6TTBla1BHZVd3Snh6THpHCitTMzRobWhjK3E5dGxFcU5zM2Jpamt0U3kvbUMwUWVaVStHTUQ4cVlBSVJqa1huZVZvNElCdERDQ0FiQXdId1lECitWUjBqQkJnd0ZvQVU2RklGd2svWTB0V2xJVWNXdHM0TWUxdTZkdzh3SFFZRFZSME9CQllFRkhocU4xOU5WTE1VCitWRkhVdnBOMkQzUWtKUDU0TUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0RnWURWUjBQQVFIL0JBUURBZ0VHCitNQk1HQTFVZEpRRUIvd1FKTUFjR0JXZUJCUWdCTUhnR0ExVWRJQUVCL3dSdU1Hd3dhZ1lLS29aSWh2aE5BUVVDCitBVEJjTUZvR0NDc0dBUVVGQndJQkZrNW9kSFJ3Y3pvdkwzUnlkWE4wWldSelpYSjJhV05sY3k1cGJuUmxiQzVqCitiMjB2WTI5dWRHVnVkQzlEVWt3dlpXdGpaWEowTDBWTFkyVnlkRkJ2YkdsamVWTjBZWFJsYldWdWRDNXdaR1l3CitaQVlJS3dZQkJRVUhBUUVFV0RCV01GUUdDQ3NHQVFVRkJ6QUNoa2hvZEhSd2N6b3ZMM1J5ZFhOMFpXUnpaWEoyCithV05sY3k1cGJuUmxiQzVqYjIwdlkyOXVkR1Z1ZEM5RFVrd3ZaV3RqWlhKMEwwVkxVbTl2ZEZCMVlteHBZMHRsCitlUzVqWlhJd1ZRWURWUjBmQkU0d1REQktvRWlnUm9aRWFIUjBjSE02THk5MGNuVnpkR1ZrYzJWeWRtbGpaWE11CithVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzE5UWJHRjBabTl5YlM1amNtd3dDZ1lJCitLb1pJemowRUF3SURTQUF3UlFJaEFQci9mZGVUQ29WSVB6OGxML3RjaVdJL1JCbEZGMmtTUk10N1VnL1FpY0llCitBaUJGU1dzbTl5eVNrdVRNYmwwMitlcE51YnRXSFFhanRkVXcxZTBtbGtrcW9RPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitDTkxFUElETFBCMVBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHlEQ0NBMitnQXdJQkFnSVVUYlNOazcvajYrcnBhM3J1b0I1WnR1MXg3S2t3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRjeAorTURJek1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCb0RFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4T2pBNEJnTlZCQXNNTVZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRU5PVEY5RgorVUVsRVgweFFYMEl4WDFCU1QwUWdjR2xrT2pZeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3V1RBVAorQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU3ZOdGNGWXlIVXY0ZEpPbVNzSmU2TGQ5NmZkaUs1UjNzNQord2tGTi9xODlKeUZJNEd1ZkxUdnZGWGtWRHNHcyt0dE5yREd6UWJlWVJuRUJjZGx6Qm8xUm80SUJuRENDQVpndworSHdZRFZSMGpCQmd3Rm9BVTZGSUZ3ay9ZMHRXbElVY1d0czRNZTF1NmR3OHdIUVlEVlIwT0JCWUVGQ00yRG80WQorbVUycjZSeENSOHM3Z203WUNKSUxNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3RGdZRFZSMFBBUUgvQkFRRAorQWdFR01CTUdBMVVkSlFFQi93UUpNQWNHQldlQkJRZ0JNSEFHQTFVZElBRUIvd1JtTUdRd1lnWUtLb1pJaHZoTgorQVFVQ0FUQlVNRklHQ0NzR0FRVUZCd0lCRmtab2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdgorYm5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm1NRndHQ0NzRworQVFVRkJ3RUJCRkF3VGpCTUJnZ3JCZ0VGQlFjd0FvWkFhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdgorYlM5amIyNTBaVzUwTDBOU1RDOWxhMk5sY25RdlJVdFNiMjkwVUhWaWJHbGpTMlY1TG1ObGNqQk5CZ05WSFI4RQorUmpCRU1FS2dRS0EraGp4b2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTQorTDJWclkyVnlkQzlGUzE5UWJHRjBabTl5YlM1amNtd3dDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdPb3lUM2FNMgorS09lY21ueWNsMWdtclFHQWd6WmJDeDlkWlF4SXNWSkxteE1DSUZuSWxNMVJKaGFvZ3ZyQWMrOGZxVXVWVW1EeQorN2MzWExucVoyaUd5czRLQgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0NOTEVQSURQT1NUQjFMUFBST0QyIEVLIFBsYXRmb3JtIFB1YmxpYyBLZXkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRDBUQ0NBM2lnQXdJQkFnSVVDMXIyQnhTS1RuQ2pmK0lFL0VVRk1wbEFESVV3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRjeAorTVRFME1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCcGpFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4UURBK0JnTlZCQXNNTjFSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRU5PVEY5RgorVUVsRVgxQlBVMVJmUWpGTVVGOVFVazlFWHpJZ2NHbGtPamt4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1agorYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTWllmMVZxSUVWZzJIUGFDdkZPeEh2WEtFSworWHhJbTlTMEZUREhDY054VnIrTzRYc3RVUDVQeTJxVThzQ2JzdnpQaFlpSngvdlRzMlRCVSs5TEp0Rm9VbzRJQgorbnpDQ0Fac3dId1lEVlIwakJCZ3dGb0FVNkZJRndrL1kwdFdsSVVjV3RzNE1lMXU2ZHc4d0hRWURWUjBPQkJZRQorRkJlZ0JYWFFYbGpqaUJJUXU1aXhCRnUwd3dZNU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdEZ1lEVlIwUAorQVFIL0JBUURBZ0VHTUJNR0ExVWRKUUVCL3dRSk1BY0dCV2VCQlFnQk1IRUdBMVVkSUFFQi93Um5NR1V3WXdZSworS29aSWh2aE5BUVVDQVRCVk1GTUdDQ3NHQVFVRkJ3SUJGa2RvZEhSd2N6b3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWcworTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRqWlhKMFVHOXNhV041VTNSaGRHVnRaVzUwTG5CaworWmpCZEJnZ3JCZ0VGQlFjQkFRUlJNRTh3VFFZSUt3WUJCUVVITUFLR1FXaDBkSEJ6T2k4dmRYQm5jbUZrWlhNdQorYVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxSnZiM1JRZFdKc2FXTkxaWGt1WTJWeQorTUU0R0ExVWRId1JITUVVd1E2QkJvRCtHUFdoMGRIQnpPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdgorYm5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzE5UWJHRjBabTl5YlM1amNtd3dDZ1lJS29aSXpqMEVBd0lEUndBdworUkFJZ1hzVXRuVVVmVTkwR2VyUXVibkxRL05TUnJBa2pVS2pIaXBoSWRnek5ScGNDSUVKN3lLR1NzVkRrRSsrWgorY0ppZ01ocC9PR2QrVUk4R3RCUm5QZTBSaU55UgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0NOTEVQSURQT1NUQjFMUFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR6RENDQTNPZ0F3SUJBZ0lVSTdNeWNLMkkzWFBCVFlvNFY3OEM1Vkt2UTlnd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UY3gKK01ESTFNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQnBERUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eFBqQThCZ05WQkFzTU5WUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUVOT1RGOUYKK1VFbEVYMUJQVTFSZlFqRk1VRjlRVWs5RUlIQnBaRG8yTVJZd0ZBWURWUVFEREExM2QzY3VhVzUwWld3dVkyOXQKK01Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUtKby9SejlnRWJUSFpSbGYxckZVbVdoNHZraFkKKzZZZFd4MjlyUmRpQUtCbzlHV3RhQXF5c1haSlM4bDNVRTNDMjBJM3VSM3Ewc0xCc01SQlA1bnQrQnFPQ0Fad3cKK2dnR1lNQjhHQTFVZEl3UVlNQmFBRk9oU0JjSlAyTkxWcFNGSEZyYk9ESHRidW5jUE1CMEdBMVVkRGdRV0JCUVUKK0dYdW1YV003VzNGelJGM3VHcnVqN3oxZ1hUQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIKKy93UUVBd0lCQmpBVEJnTlZIU1VCQWY4RUNUQUhCZ1ZuZ1FVSUFUQndCZ05WSFNBQkFmOEVaakJrTUdJR0NpcUcKK1NJYjRUUUVGQWdFd1ZEQlNCZ2dyQmdFRkJRY0NBUlpHYUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnYKK2JTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRqWlhKMFVHOXNhV041VTNSaGRHVnRaVzUwTG5Ca1pqQmMKK0JnZ3JCZ0VGQlFjQkFRUlFNRTR3VEFZSUt3WUJCUVVITUFLR1FHaDBkSEE2THk5MWNHZHlZV1JsY3k1cGJuUmwKK2JDNWpiMjB2WTI5dWRHVnVkQzlEVWt3dlpXdGpaWEowTDBWTFVtOXZkRkIxWW14cFkwdGxlUzVqWlhJd1RRWUQKK1ZSMGZCRVl3UkRCQ29FQ2dQb1k4YUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTAKK0wwTlNUQzlsYTJObGNuUXZSVXRmVUd4aGRHWnZjbTB1WTNKc01Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQ0lFaUwKK3FmUUUxSVNlcGJSYjQvMWFtVWtaSUxObTVKUWMxc3N5elJhMHFCOG1BaUFHb2NBUVZqQUYydUxvNnRDU1Vyb2YKK1pvK1BRdFJUUTg0OWZBNE9rOEhXY0E9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0NOTEVQSURQUk9EIEVLIFBsYXRmb3JtIFB1YmxpYyBLZXkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHlEQ0NBMjZnQXdJQkFnSVVIcm94WDVIQW94V1grN08vSCtWT3h3QmRSR3d3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRZeAorTWpBMU1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCbnpFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4T1RBM0JnTlZCQXNNTUZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRU5PVEY5RgorVUVsRVgxQlNUMFFnSUhCcFpEb3pNamMzTkRFV01CUUdBMVVFQXd3TmQzZDNMbWx1ZEdWc0xtTnZiVEJaTUJNRworQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJDSU0xMXhUemxWRUQ5WE91U2kxeUxqV0RrNFhjQUZKVGk0YgorSzg0UnNNNXlEWHlnVzBSeXV0V3VuVkdZRmdXY2JtaHRkWmQvRk1UZVVGSFRyRVRwSTBhamdnR2NNSUlCbURBZgorQmdOVkhTTUVHREFXZ0JUb1VnWENUOWpTMWFVaFJ4YTJ6Z3g3VzdwM0R6QWRCZ05WSFE0RUZnUVVMVHpzL21XVQorZ3BjWjFsVnJZQVZCNTBuOFkxc3dFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFPQmdOVkhROEJBZjhFQkFNQworQVFZd0V3WURWUjBsQVFIL0JBa3dCd1lGWjRFRkNBRXdjQVlEVlIwZ0FRSC9CR1l3WkRCaUJnb3Foa2lHK0UwQgorQlFJQk1GUXdVZ1lJS3dZQkJRVUhBZ0VXUm1oMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWpiMjB2WTI5dQorZEdWdWRDOURVa3d2Wld0alpYSjBMMFZMWTJWeWRGQnZiR2xqZVZOMFlYUmxiV1Z1ZEM1d1pHWXdYQVlJS3dZQgorQlFVSEFRRUVVREJPTUV3R0NDc0dBUVVGQnpBQ2hrQm9kSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dAorTDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxSnZiM1JRZFdKc2FXTkxaWGt1WTJWeU1FMEdBMVVkSHdSRworTUVRd1FxQkFvRDZHUEdoMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlEVWt3dgorWld0alpYSjBMMFZMWDFCc1lYUm1iM0p0TG1OeWJEQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpRUErMDdhSTE5eQorUnh6ZUNraFppclJqa1lGUmNDZml1Y2hubHQ4dG9iWHljZWtDSUJmZGo4aHFyb1lYRVRuOGh6cTY0V24vdDl0eAorOTE3a0hXOGxCeEUzbGJ6bAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0Nsb3ZlcnZpZXdFUElEUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEd3pDQ0EycWdBd0lCQWdJVVo0b0NBb1dsM0FodVZnUFVYSmJrYVo1NVcrb3dDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFF3CitNekV5TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JtekVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOVEF6QmdOVkJBc01MRlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFTnNiM1psCitjblpwWlhkZlJWQkpSRjlRVWs5RU1SWXdGQVlEVlFRRERBMTNkM2N1YVc1MFpXd3VZMjl0TUZrd0V3WUhLb1pJCit6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVZallmZ0YzN3Q5SEZjelR6ZXN2d0tHaDErYmlxVUU3VUFEODlHWGI1CitqZ0NFWHFTN21RS1BrR0F6ZVI2d0JTTmdRakVCb3NuMUpnY3JCQlByblpqNUhxT0NBWnd3Z2dHWU1COEdBMVVkCitJd1FZTUJhQUZPaFNCY0pQMk5MVnBTRkhGcmJPREh0YnVuY1BNQjBHQTFVZERnUVdCQlJKbE1FcDhhVkkxSWhZCitieUtpMzRZRGM1czcwekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUE0R0ExVWREd0VCL3dRRUF3SUJCakFUCitCZ05WSFNVQkFmOEVDVEFIQmdWbmdRVUlBVEJ3QmdOVkhTQUJBZjhFWmpCa01HSUdDaXFHU0liNFRRRUZBZ0V3CitWREJTQmdnckJnRUZCUWNDQVJaR2FIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwCitMME5TVEM5bGEyTmxjblF2UlV0alpYSjBVRzlzYVdONVUzUmhkR1Z0Wlc1MExuQmtaakJjQmdnckJnRUZCUWNCCitBUVJRTUU0d1RBWUlLd1lCQlFVSE1BS0dRR2gwZEhBNkx5OTFjR2R5WVdSbGN5NXBiblJsYkM1amIyMHZZMjl1CitkR1Z1ZEM5RFVrd3ZaV3RqWlhKMEwwVkxVbTl2ZEZCMVlteHBZMHRsZVM1alpYSXdUUVlEVlIwZkJFWXdSREJDCitvRUNnUG9ZOGFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwTDBOU1RDOWxhMk5sCitjblF2UlV0ZlVHeGhkR1p2Y20wdVkzSnNNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQjhNeDcvQ2xiVEt5OElVCitVWi93YWFla2w2WTRhQXovcFFaWDFzRXFoY1NDQWlCbU81d1NpcHFIT2o2NlAzVk1yckRDK1ZRT0FrS1JLY240CisvbWJFc0ZYcFJBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitETlZFUElEUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR2RENDQTJPZ0F3SUJBZ0lVZVhPV0I1RkpiUGJlKy9IcytQT2ZOTUtLY05jd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UWXcKK01USXdNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQmxERUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eExqQXNCZ05WQkFzTUpWUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUVST1ZsOUYKK1VFbEVYMUJTVDBReEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3V1RBVEJnY3Foa2pPUFFJQkJnZ3EKK2hrak9QUU1CQndOQ0FBUkFKaUpIRURIWFFwcFJRSkJ2SnlxeWNqSFYyMDFtVllJeENGRDl1OXVscU5KcldCVHYKKzFUR1BNSEVTbDdUMmZvaURKZGxzZlIydkkzT1pHYnpmbW83ZW80SUJuRENDQVpnd0h3WURWUjBqQkJnd0ZvQVUKKzZGSUZ3ay9ZMHRXbElVY1d0czRNZTF1NmR3OHdIUVlEVlIwT0JCWUVGTHVZQmVNWnA0MjY3NmlJdEZZVmxYSUYKK0Y1R0JNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3RGdZRFZSMFBBUUgvQkFRREFnRUdNQk1HQTFVZEpRRUIKKy93UUpNQWNHQldlQkJRZ0JNSEFHQTFVZElBRUIvd1JtTUdRd1lnWUtLb1pJaHZoTkFRVUNBVEJVTUZJR0NDc0cKK0FRVUZCd0lCRmtab2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnIKK1kyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm1NRndHQ0NzR0FRVUZCd0VCQkZBd1RqQk0KK0JnZ3JCZ0VGQlFjd0FvWkFhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlMKK1RDOWxhMk5sY25RdlJVdFNiMjkwVUhWaWJHbGpTMlY1TG1ObGNqQk5CZ05WSFI4RVJqQkVNRUtnUUtBK2hqeG8KK2RIUndPaTh2ZFhCbmNtRmtaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxOVEKK2JHRjBabTl5YlM1amNtd3dDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdhaDhRdVUrcld6TmZwNTJ2Znl3UUYrSisKK08vNnJuempiUE1RWU9OVURFSWdDSUViRHpVUW4xNHo0Smx5bVlDYURUNG1uelI5N2t6RUJvTzhWb0kwV1RrbksKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFS1Jvb3RQdWJsaWNLZXkKKz09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDZHpDQ0FoNmdBd0lCQWdJVUIrZFBmN2EzSXlKR085MjN6MzRvUUxSUDdwd3dDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFF3CitNVEUxTURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JoekVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhJVEFmQmdOVkJBc01HRlJRVFNCRlN5QnliMjkwSUdObGNuUWdjMmxuYm1sdVp6RVdNQlFHCitBMVVFQXd3TmQzZDNMbWx1ZEdWc0xtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSlI5CitnVkVzalVyTWIrRS9kbDE5eXdKc0taRG5naG13VnlHMTZkQWZRMFBmdHAxYmpodFBFR0VndXZiTEdSUm9wS1dICitWc2NBT2xURm52Q0hxKzYvOS9TalpqQmtNQjhHQTFVZEl3UVlNQmFBRk9oU0JjSlAyTkxWcFNGSEZyYk9ESHRiCit1bmNQTUIwR0ExVWREZ1FXQkJUb1VnWENUOWpTMWFVaFJ4YTJ6Z3g3VzdwM0R6QVNCZ05WSFJNQkFmOEVDREFHCitBUUgvQWdFQk1BNEdBMVVkRHdFQi93UUVBd0lCQmpBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlBbGRGU2NXUTZMCitQUWdXL1lUKzJHSUxjQVRFQTJUZ3pBU2FDckcrQXpMNkZnSWdMSDhBQlJ6bTAyOGhSWVIvSlpWR2tIaW9tellYCitWSUxtVGpId1NMN3VaQlU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIEFNRCBLRVlJRCBDQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFGQzRDCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVdoa0NWSGhxWEFacFFBQUFBQUJhREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGd6TURJeE1qZ3dNRm9YRFRJNU1USXpNVEl4TWpnd01Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVGTlJDMUxSVmxKUkMxRFFrSXpSamN5TmtVM01rTXpOMEpHTjBVNVF6WkRSa0ZCTmtWR01EWkdPRGhHUkRGRworUXpSRE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBNGIyZlZTV0ZlWGpSRVVmNworTUJJTzZmNTZpczl1dG91Y0ZTTlVwQ05OL0szWCtpR1pRV29pNThjWG02cksvNldtWWdzL3QyZWhUbzZ1L3dGVworK0lmS0Y4bEF4Zm5ueTAzOHg3RE91OXo0S0ZsZFNiUUdYSzhmcXFNcUg1enFCVDc0MnVOWXFGck1wRzlmeFpiTAorM09ldVpQMk5JckpLTnpwVThaRnhBNjRCeVJyZGJ3aGU2N0FKeFVqSmdHMm9tbnJTR2lwbEhDZHpqc0ovRGZ2dgorOUZJRnZHMEErdGxTN2VBQ3IrQVFLVkhTUHJvNU5ROTArWEtFTFo0UlRwWFZWYzBiQk1kQVRVRzViNUNWSjR5RQorNWQzRUF1L1hoTEpZN1hsaWVaWkhOZDJJMTdWNXltVThhOVJBL0hPL1gzLzFDaW1RVmRuRVl1Q2tmcU5nVDIrYgorNEY4ZStRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVS0ZLNVI0VWtuS3Aya01BWDQ3Nm5yVVVyRGZnd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJ3VHJMSgorQk16ekwrUjBzb01ESnJDV2hOUVBRNEU2TWY2eEtsTmpkSS9PaWllRkcvUkxsdjlDL01RWnArSnV1eXU4Z0FzVgorSVNMTUtYRHc5TXNicjcvc1p5dmlJSUc1aTVQekpMREFkSkU0NjhWd0RZNjlmQkUyNkJaQ2kzMGRndUEwbHFDWQorb2psbWsvbTdwb3FuSkFGai9HNis5UytJWFlsTXhpLzhjRkxNcXREUkQ1MUUyUHlSSUR2YmpsOFhQa0dua3ZzQQorbDF0bVVzcXlETGsrTmc3cnc0V0Y3QkJWWWZCRHMwRVVyeHpTWmlwRVhpcHlHaUJrOG5KV040K0JWcWpTSnNqTQorbTUvZ01ucWN5WTlrUWpjekE2RTJsWlZEQ0JLcVpzeXM3V0M5REJQcVgzVmNuaTFRTFgwUktXVVdyeWxyYUpVeAorODd4T0Z6TTNmRklrTFVwRnZNdnErMmpUWEx6UFhqaUppeXpwazNtWXBNWHF3T1ZxT2NBZlBLZktCZEdoeGhnaAorRDdJMm9mL0hpMG1RNmlyYTNrdjhEYm5sVHM1TW9FMG13WTkrYUtLNnR6Tjh6Y3ZOSXBJd2RQWmZlZm1qeHdndQorOWpVb2tJaXpidW93djNiWHAyUElZYzhBSDhpMXZVZmFPbHpEWmp0VTM5VzRCMEhFaHkyRUpDTkJqVXo1L25lOAorSnBva0ZhWlRVNjRQRkFCaGJrMWc2dW9ZcU9tdDc3ek13NUxSWXRXc3Nxays5K0hzQ2xXLzhPczlGUFBIcFRuagorYlB0SkN4cnRoVkRENStRV1h5Y3FHbGFzaTRpcGl1R3NPTmpNTjhEZDQvcjRsVkVKTFdkbFozZTd0NGxIUDRoRQorT2VhU0JJQkJIYTgvM21wdmFxYjNWem1sS2VkKzNwVTA2QWxCbXc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBBTUQgS0VZSUQgQ0JCM0Y3MjZFNzJDMzdCRjdFOUM2Q0ZBQTZFRjA2Rjg4RkQxRkM0QyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBbEVvUWcxTE9Oc2JBUUFBQUFBQ1VUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprek5Gb1hEVEkxTURNeU1USXdNamt6TkZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVUZOUkMxTFJWbEpSQzFEUWtJelJqY3lOa1UzTWtNek4wSkdOMFU1UXpaRFJrRkJOa1ZHTURaR09EaEdSREZHCitRelJETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF5eXZtamZjWDVDbUxqbjhWCitpRG1hRllrYzVsUkVPVk1MNnNLb3pnaXJSR3dST2pZeE5TZHV2VTJiZVhRUmxjTlA3akNKT1FtM284NTBPR0wyCitrSklpTjBHakVvYjRERFBuS0c0WFF5cVcwU3lqRkhvWUFZS05hd1ZxR0Q1NGhvWHk0eUZRT0prR21CSTBYQ3NFCitsai9FdXkzaHFZcDlQc3JKSUVZajB1YWJtSUROckZzdFEwelNEc3NYeFVOQ0pYSVRaQWVYWnBQbHc3VkJGWFdZCitlZnJPSjhMaDg4ZHVkMGJrbHlwTFpvaW9oellJa1FKS1V2R0dqNkxCcEZRa0pjM3JoWERNOEFiUmJxZDhIbVRGCiszRFZWZ0FJTDR2SXVuTW9XVENmbFIzQTBseGUrTW9hNkJYUzI3SjRDU0xINlhEN1VrNlEwL1hKajFoQkZYRld4CitjcjRYU1YyaTFRS1Q2bFFzOGd3NVN0NjdMdDdXOWhlcHRxWVhrdzZxY3NSUUNzenhKeVkrN2tmcHZZUHdtTE5LCit1cUN5YnJON1Jnd01ONmc0czd3bElpT1dGZ0pEb2Zab3A5dWMxS2VKRlh0TXlLVlpOMFY1QWtURWdSNmZXQnZ0CitkSk9QeEIrSU1QTytQaVRBb1hleE9HWHJiV0Flb3NvSmxGczUxeXI1TE9rQTZlWk1UUmV4U056c2xaQXZEd2RkCitDcmlSNUxiSG5qYlFuTlpWQm1WWExiaTY5Q1VRbGVHOXBNRzA0VUZQSlVOb0FBUGNFaVFFTktZaGcrRmU2cDMwCitVN1Z6R05JWXQ0MW45dC8rV0Z1NTRmKzNXcUFacVI1T0pFaGhWTHVjZ3phTnhMVnhkZGllVVNJNmVhSjV1MEZLCitsYmw1WEtLUkdwVjI5Nyt1eDhLS0hMcTRzS01DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTk5wNHFYZEdDSDNwQ013Cit0RmFrbCs5QVlSWEZNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUo1bEFmUVo2eklPY09yRVlkcDdBN2lHeDM4V01ra2pQMUNFanJ3SC9JaXZICittVDlJaVBqVzRQZE5UekRQcmhHZXE5b0hiQkcxUkU0K3NXMks2cHArMkVYcm0xM2NoUWhpQXJ0RTdFUVU5QzVZCitwYUVQZGZHNWI4NjliaVpWa2poeWVKQzFwdGJ2N0dXMWRxYWVNeE1aM3ZxYmxXQTFuWXJzVUQrbThpLzA1bEVXCitrNkNYbDFNNkxmL1M4TE1CZ01lN0xiTE5yNzgrMUFFVlRramlUcExMMDV3SGJIRGFFY25kdm9hZC9YKzA1VThUCitKSzA1Tm1WYTM3Umw3UjNIeHdzTVM5WlViYmVSYWxFVlJwNWZUT2ZVQnpVLzRKRWdLeVFEeUNnK21nVlVFSVY5CitUSlhxY2dyZ0hzQ0hsYVlXeVQ2a002anVoWWJ6V1JQVEhNRW5ycUNPUjN2enpRelh0UFI2UUkyMHVFNEdIUWdZCiszSzc3UFIyay8vN3RsejNMdUhoSXFkN3o0dG9URnJSczVSL3J6eUNEUS9MVFd6S2tLS1QvZGFxUERUaVdPRUxkCitlbUJOQUZrQXk3cmQ5NlNpMzM0dkYzVjMzdDY4Szd5T3ZpUUpkalNFNlh0b3VzMFEyNExmTWZMTUs4eW9NZTBlCit5aFJUTUUrbHNkekJCMmo1QzBhR0J6M3hrVFllSmNmTXZjRnhxTGZMcGlHdDRvTDVHNVpOeXhOWnpmajlTN0NpCitNVUw3MnN6dFRVem8vTys0bkIzRXNLUWs5eGNwWEROMDdQN0xlWGw3VGJtcHp3MXc0NjljZFhoR1VsTGJnMjBNCitqOWRwejdJZUUrNnZqY3pzaTlCZjJKYmVyK1IzdGovTU9UNmZVdDR2aERPbnp4Z0o2cXM2SXNtYWpNSlc3RjQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIEFNRCBLZXlJZCA1NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4OUM4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUZaNEZCSTJyM24vY3dBQUFBQUFWakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXpNMW9YRFRNd01ESXhPREl4TVRFek0xb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVGTlJDMUxaWGxKWkMwMU56aEROVFExUmpjNU5qazFNVFF5TVRJeU1VRTBRVFUzT0VGRFJFSTFSalk0TWtZNAorT1VNNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBb0pSRTZKZzJBQlpMWThBMAorbytpS0F2cWFNemNXS1lTOGhCenlaWXJTQ2dnRE5aS3M3TThGdmJQRis2TGxzWWtLR2xvbFR2RDAzK3lad0lkUAorTmdMcThDQUpub2EvZXpIWnJkbTdmbXhKVnJwekYzVWpZaDZBR1Z2SndWNTFIUFhmTXpIUzlWYWw4TjdZMGgyagorWW1pOE15dm81bFVTS01YOS9ocUhReWsvNVQ3WWZKWmFPSHorUUdLNlcvMGRvVlBWS3I2ZG9rcnQ1WmxwVHhXRAorSUoxamg0RFFoY2x4ZGM2VklGdnRhWEw4N3lDYjYwclhsd3F5bFUwYmZjYVBOUllYWlhOUVJzc2lrUndEU1RMegorelhOY3RHMlVpNzBuTmJPa05NMjRiMVhwZjJYTGJVNGQyRWdUQWtBZ1VBbytQRW5Oc1FBT0xwNVBjSndrQmdrdgorUTJGVlF3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVblNxL0VNeFZjRXhCZ1dLQmpvUEUxNldvMno4d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUEwWHppTworcWtYaWdCQ1o4TkU1V2F5MWZtOEw4WHR5bG5FVUtYTVVIM2l5Q2I2UjBCeE5YSnVUOVkrNk1QcDRmUXVmcHBOaQorUFRZeEJqYVdvbXRYb3hLT0VtbXFyRmJBWWpjc1h6ZjZDWGdqUjhLN2ZHbUZkeHRCYWpwODJMREx5TGdxa1lYdAoramdpcGZqekpXYTE1aENjTHIxcUY0dm9vV0s2V080ZGZ2R043Nk1oRDFkM0JhWWpDdjZRTUNXNXJnaHlySE11ZAorOGdndElmeUN5dEFGSXUwamMwZmhYeS9xR2JiU1lZMWpXV2tHaDROazMxM2E3d2lMbDhDRGVNTlN0ay9rZkdwbQordERIYjQxSUxOWERETDRCNndxUzZ0ZVpMTU5JWm5Zc0ZIT05OZ0ZTUS82OTAvY1FraS92c1A1cERiTkwwQncySQorR2JLZW83bjB3Qml3TGF2azVMYkh6NkNEQnFlM0hTcXVjMmJxZFJRbWUxZ0ltNjY5aWtkSy9EZTVTWHdMSkVDTAorRHZoenl5NUczWWtzVzVTRjFRcVR3dlV2VlQ0VjdYaWQwMEZ0RU5wUDJpWnNjWkFtYzJWaUVDdnFVcFF6Y0VCaAorSmlCT2xLaDRIVHhYMG82bWNmVEFVTUdheTZIME53WEVwWksyU1JPMmlhMFFVQ0R3YSt2cmFyTXNwZ2E2VC82eAorZTdWRmpqNUN1TGl2b2VNbnFxeWczNVVrMjlTaUJNUjdsSFBaWkZ3WGgwL3JsY3lCdXR3MHZvL1QwM29tUlFpaQorM0xpODV5L2NWZzE5VGR4dmEyTTNZcU9iZXNodHl4R1JiaktpQXF5T3UvSWhaRHoxK2pjN1ErME52OHAzNFpqaQorTTgycjg0NUtXVXpaSXJVZUNwYnhlNm5rMnJpYjNJMjNyZ1Zpc0E9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBBVE1MIEtFWUlEIDE2QjM0MUUzODFDRDVDM0U3OTlBQzgzOENBMTdGMUY3RjNGNzQzMUUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFsUHVuLzNvR3Ezc0hRQUFBQUFDVXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt6TlZvWERUSTFNRE15TVRJd01qa3pOVm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVRlVUVXd0UzBWWlNVUXRNVFpDTXpReFJUTTRNVU5FTlVNelJUYzVPVUZET0RNNFEwRXhOMFl4UmpkR00wWTMKK05ETXhSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNUWxNdWlqRDRjdUZpa00KK2hiaU83S2srV2tUdVZwT21LbEZmZStWaGN3ZEFNRUtqZytnVCt1ZFJsSWQxQ2VNS1c5aEgrbnFYLzYvelhRcmEKK1BLT2wwNHcrV1dDcGhIeXc1RWZ5c0tobms0SGFIeGdMQjhLTTQzc0lVWllNWTdIN0MvU2xTcitQSzNjK2M3QnMKK0xwS3dXVVdLekFKay9zYlJuMDNYanNrSkRwNzZUUFY0K2Z0SXR4MG5VSElsOEVWNkFHeUMyK29pMFhWSTRRMXEKK0tsbVJNK1pXSWQyQVQ1SWk2aTZ3akVXNTJ5SkhncHBLSVN3eWJ5aUNIZHE1emo4WEdPdDBGWnhvL2Foa0doeUoKK3VXaGlsdm9zeXlzcGo3UGxpRHFVMFd4Z3VIZks3ekRPdUVMT1pGV1U2NjVpWU56Yy9TTHJiS1RrRGQzaUN2MnAKK1BOMitaY0xqVFZRUXFJNkJEd0NzSVArNWxrZkQ3aDFseFcyc2d0OXBxc3kxbDhHai9WN1JYU3ZQeFIydGxSQ0MKK0hrcnBQd1JqOW5qNHNkU05YUFZVaEh0ajhGeElsMGZCWS9EZ3pMZm5SS1ZWN2lvaDZibktPVlNkSjBqS3Q2VVEKKy9HYXpBaEpOZFNyOVYyU2RoOEpZcDRJVVdWd2RNSUJBTytPUmR3NWpLc0V1ZFNUTmMzZE1RNnduU1FtaHdDOTcKK0dudzBHR0pkZ0hVMHc5ckw2Si9nOEljdElMMENHUFkxR3dHeHVLZ3U2TzVzVFdSSHY0eVZtTlJpZmt1dzU3L2MKK292SU0yY2tHZlZCakFEcHByV3d3K3RZQkpyQ3k4L2h2V2JSZU9rbDVNYlZJUWJ3YzBQeEU1Tkk2Sm1HbE40UUgKK1E4TnJjUWY0L3JYU25IcXMxNmlIUzIvWWk0TFpBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU1hTTkxXWnVBYytUT0YKK1BmRHhLZzBoTnZVOHV6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUVMKzZzcTJ5cG55dWNGM0NsNGV2WUI0VWJORlhzakd5OUJ4ekRoeUpPTkEKK3FiUHRwenRjWS8wVFhNaWJ1U2NPRGt6aDB3aGxxWUNIR2ZFV0RVdTlXSXp1WGZXVHNjNXpmWUwvR1Y3RGQvdTEKKzV5b0d6UUh2bTN1WTk2WGRYbnRIeUZtcm4rY1k0Q29WYlp0QlhkUk03Mmc1ZlIrdFU0L01wS0pZT0dKMkRROGUKKzlnanlpRHI5K3NYRC9HTXdVSWl3d0FFMTYyZFdzTDlIUlg0MHBnVTN0RnA4Z0NWUmhyWFpJbmpHd0tHdk5IWWIKKzBEODBmMHRGVXhFMUxpVVRhUTVkVnhCeHdOTElqUXY3YTIzTXI5Q1JtU1A2QldZZW9UbmY2MTNVNFlFTStIQnEKK3V6SmRRNG5CdVdxdEtiRHBNU3lNTFg3eXFEZTBlQkVYQVNveWVGS2FqaGFOMHh1bjhJYzBRQVhWZ0pHOG1rMysKK09reXduNkl4aCsxd2FMRlljNTVZL085VktMTWc5Z09lN0xqSTBrUWFDUWZwbU56cVRKMFpVZmp6YTBpbXQ4R04KKzBEWEpBTk5kRkJHeExHdDBYdjN5MmlXbG9nU2FXMVdqMVBBYXZGY0Q1M3NuWHdZa01vcEVvVEZDaXB1TTVwS0MKK0t6cEFQdkpVaU9XZHZFcGJsK1Q4a3hjT2o1MjIwaE9SbUJ0OUpyanVSZldnSlJEYlc5QnNyQmhkZ2JZTTRBQXgKK1dmTW5aSjJ6U0dXWHFNTmFWWW5CajBzdXl4K1dHaStGYmh3aDAwL0xTY004eDd6dmtza2tpOTlXRE1ybW40T1kKKzRYek5pNWRWRTRYbWU0VVFWcDRhRFFIS1hWTlQrNkhmL09QQzNWUGMwRFBRMzdHblhRNEoxYmpzUTNKem1BbmQKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgQVRNTCBLRVlJRCAyNzc2MzFEMDU5RkE3QTk1NTNGQjU5REZENkU4NUJDMTIyMzAwRkYwIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbGowUm9iSFpqdjU2UUFBQUFBQ1dEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprME1Wb1hEVEkxTURNeU1USXdNamswTVZvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVUZVVFV3dFMwVlpTVVF0TWpjM05qTXhSREExT1VaQk4wRTVOVFV6UmtJMU9VUkdSRFpGT0RWQ1F6RXlNak13CitNRVpHTURDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTGdYdTIxZVBrU1BPNDlkCitLV2dyOHBwSkoyTXdHVFROeVJzckkwV0lZR3B6RlROL3ZYcEt3Wi9rSzlyOUdacThHa3J4cy8reUc5d2FXSHBBCitMKzQ0UW5pSlBaVkpKc0NRMHhuUDVUWjB0b0JJLzA5NVEzMjJWb3JIc25PUE03NytocUNjRWt5RTd6bDY0clZHCitwV1o1WTFXTTF4WFdRRjZNMW1NU1dXUW9zMWdIN2RRWDV3MnZkdkpldEtUUFlYdnpqbTNRTTc2b1oxNE0ydENpCitBbjBPNkZHVWZaajhHZU1QYm5oVk1vdFNmWURHVlpzeUE5RmdCdnYvdmVvZWNMQnVOb2NMK0ovTnJFL2g0UFdhCis1TFN2YVdEMVRwM2YzZytYS3hrOUp0aldvSU44NDRvMm10YWRwSm1zSkcySFJkS0hldFBQeDFnSkRzejIwbUZTCitQbkZyS3hxaXJUN3dZT3VGYmt3N21lN0xOOU9FczgwRlBEalkzSnRyL0h3azFwVjJIZVZlVVVtcE5LZUJVdkdaCit4akpMcGVDZEkxVDZrVERxdmdiSDQvbk9PR29lZjNXZUgreE9KWVpLWnIxWWRpTGhMbVUwWmtqbHBxYWFXaHhiCitFTVBwajhkbHFQenU2bnlBdDJ6a1hJK0IzTUo3bllmWEtGZDc3anN4NCs0UjFSQjF0OW1Hdmh3YnBBNklnTmY5CitEYjZJaG5NeGlaQ01WRWlZVXVQeUlzeGZvLzVwTWEyL095dzliS2REb1hGUlpiclBnTTdUMW9pVnAxVUkreGRpCitVNy9LaVNxQjhpR3h3T0dBYWpTRE1JMHBJdkVodEJPQm9BZCs5bExOMkZUMGRnRTZMSm1aeGFFQVY0MDVKN1lMCitnK1J0cVEwcnJURjFwNE9JNCtBbml6K3E4aHRuQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlFzVVJ1SjJGeHFHR29oCit3TGNZQUVubVdJNkJYVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFFWjdtN3B6UTkvSm9GSFJKSzVvT29DTDQ4clhodnEvd1pqUzZRVkVpdS9NCitCS3JNVlZWSEs3VjFtMUxEMktNU2NYaFJsUWxWWkRHUm14WGhGaXpTY2JsV29rOWxGR2VXblh1WmNvRWdJVVp4CitwdXcrd1crbUE0ZHlLdHVBWkhMdlZVRmlIQS9tUEZqaCszcTdkam5WYUs2WURkSHI5T3RFV3lNSi8xTXNBditpCithcXBBV01mNnJWZGlmUS9QZGxjMnNLN0ZTWmNaSXVENFFOL1kxbVhwYVNzTkpEY2x6UWpRc0FBbmZiTDIwN1JJCitUYXVOQmo0UXRiUi9reWk3VHdhUnoyM1FKTGh4Zzg2am1INW5RSlV2ZSt2OVMvanBEdk4vZHE5MEJwVnBvWEdsCisyK3FWb0FxREV6eWswTHV3Ykl1cjExV1FRZlZIR3V1c2RBMW9XSHRKMVAvZ0xWTmhxTmhTbFNvSWFMeVNaMDlTCiswUExYTkl4bW1PcUJLZ3ZKZnIzb3owbHkvNEdId01JWUtCVTNPbU42USs4aTZmTC9VcE8yYnEzZXVUYlJIZGR6CitPZjdrYzQ4MU0zYmdGdVNDa2pobnpQV2NPOVFPa1NING16V05ibGZ4Sm9CYitGbXhUdDJEUWlCOHp0MGR1Y3k0CitoRTNnZnNtWXlqL1NCeEY3VWk3TzlsS2E5d1FLVW02cWJrdWZubEg1Q1BjR3ZEMGxXLzJxZFk4SkhzbGZKU2E5CitIWTRHT05jczdZbUxhVi9KUkpUOStYUjBYUTlmTWt3bnhvYnF6U3o3WUhWU2lYSVFCUnpBdWlUWlVqdkZxbzROCisrLzZDSkxxSVJWZ1VwV2tjOENZUk91L29lNHUxK1ZjY1ZUbXZLL1pyNHFabDhaa0xnem5MSHFWdHMrMDBvcTliCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIEFUTUwgS0VZSUQgMkQ2MDVDRDg4MkIyQkQ3MTZDQ0U3MUM5MEJDNzc0RDNENUJDQjFENCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWxJUWhFYzhtUFMyN0FBQUFBQUNVakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3pOVm9YRFRJMU1ETXlNVEl3TWprek5Wb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVGVVRVd3RTMFZaU1VRdE1rUTJNRFZEUkRnNE1rSXlRa1EzTVRaRFEwVTNNVU01TUVKRE56YzBSRE5FTlVKRAorUWpGRU5EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUtKNENwWEJVdmsrbEZSVworZDFzVUt2N2ZDNWZIbzRTandzZ0M1UkNVamxLL3E2UkFObThDS2x6amdrWGJLQmdrTDcvUVFVQnM3MWR2VXg5TworUHVEb3o0NFI1SmpMc2hYbFNwcHFhdFFjdmJGSnFXS2FVOTNkUlRYVzZCZDYxeTFlYWxZZnFOMTQ2by9EUWJ3SAorcEp5R0dBT2FSU0I1S1lqQjJHSnFmVzBCMzlVT3BNSUFJUVd0Zmp1WnpTaDhpKytWbHBzdVJnR0VtaW52Rm1PYQordE9Wem5DQndnMlA3YlhvTFJGbGFHSW5IUEx2Vkl6cU91Qmt2NzQ1RS9NWDliOVZxN1BOcnJzalNqZTRhVkx5TQordUwzTUNLdy9Xd3FQTXUxSHJRNHM3T2VISkE2OEZoSCsxL1FZQm93cmVYSVB3dDBxd2hHRjljejk1bm53RGpSYQoremszVlNNV1k1amFNVmFuVzlRdng2M0ZPa0tIVEREc2JQSERkdHlMRkRCclNsOXpGbFE2OUZyNWdrYmMrdUZCcgorWXhaYitMT2pnczNNNkgyQm5zQzJaajBDVXU3cmhYRnp2VC9kZ1dxeUdTRHIwVUxJNTE1akZaTXdKYWMyVXgxYworWEthUkpQdVFEbEE0dDIzd0owZ3NwN1Bacm93SFQ4SmZHaEpQbTZwVndnbEZ0am5vQ3FmK0xzOHpwd0ttT3dDZworNG9zaVE1UDJqYndYVlJrQVlSQXBBdUMxVzNoQlcwcTdLRk1BQVBIaG1jcnBJaGdwaHliQmdGUXJGa0IwL3ZBRAorejJoRW8zRWlicGZteHM1d0lSUmRyL0Y1VWc2WHViVmY1aytWZDhkeGFWSW1LblJsQi93YjBvTHF1WHcwOHBhUgoreUk1R1VSaDk4Mmg5RWZOOVRLK0xRSmtBMWdudEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSRkw5c0dzY3AyQ3NCbAorcHRQWitGRWo2ZWMrTnpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSUpWVUp0ZFdKMGNVblVlRU1aTVQ3NjhhbG9BaE84cDM1MmZaK3lwNm1qNQorbjJqZlgza1pXdlhDU3R1SGlOcTBKdHhkM0lvSklGbXlxeCtUaWdTR3l3R3laZVAxcWg4SE0zeUd5ZDJoQStnbgorWFFJTTdmZGJiSlJKTHorQXMwOXhrN1NtQkR4UW5VVkVROXVLYUoxQ0RIUmduNXlVdk94dzVYVkZpQ2xhUmlsagorWmY2ZzFuamRSOXdDdVdtU3VIcUhhM1VKRVFsdFM5UTJucERNWUk2VWc4Nk9CU24rbXlYMlhsQnpNZElXQ1BHYworYmtPczlrL0h2YzhoTmc2S05ST29xVTJWc2JYaGU0YXYwazdxdXJpMjBkcUJUcEEzaGtncXAyVFZ3MThERGpyMAorZlFkKzdhNU8vZ2RjTUw4d0xVN0hrUFA5NHp1QURFR3g3LzIvQUFDRHhrbjkyUnMycXM4Vk1qaTAzaEU0WGtncworSktmQ29Jb2JFYVgyem56bis4UXIvR1NsOTFPOVlsWk5IVFFDK0hkRCtOV0h2ekh0bDRORUxEM0o5MkcwY1A3QQorWGhmenJPZkZsWDA1M3ZSaGlGckcwOEp3aTV1cmo3eUsrQmdTWjhXZWNneUdScmNjTlhLR2FDdkFwOE16Y2ZLbworUFlrV0N1S3NlL2tQcnF6bXpIWjYrVjNqbURsSHV2UWQ4alQ5Tk1VTUFsOUFmZTFFTFphS2NSRFlySmhjUHphRAorU2tZZzhLdVNKcW85emlubEhHWUE2aFN0UlhtdGEzdWQwL3hBaUxja1Zpa3FlL3JLQ0dYTm1uWVNiRisxd05rbgorNXEyRlhQYmhveC9BRTc4WmJjYlN4NTkrcjhwcWlXaVpIYnA4cTRSWXlNOEl5MHJBdjV4Y3JvSURxOXlXa3NNTQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBBVE1MIEtFWUlEIDM1QUVFNzM2QzlCNEQyODYxMzA5RTc4MTVDMEZBNENFNDBEODY1RjYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFsUWFtM29LdDJJZlJRQUFBQUFDVkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt6TmxvWERUSTFNRE15TVRJd01qa3pObG93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVRlVUVXd0UzBWWlNVUXRNelZCUlVVM016WkRPVUkwUkRJNE5qRXpNRGxGTnpneE5VTXdSa0UwUTBVME1FUTQKK05qVkdOakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNNWt2RUdaWGxMNXdlS00KKzg0OFZkajR3OXRUTk9HbTdudS9FYytZMXlLOHBLV0hrUS9JOEU5ZHVPSDArTFdTQjQyWWoveDhjQkxJY2QrMnIKK3Q2WDd2SDgxWFU0U2hWd01KSHJBYU5BTVBLZXU0emR6V3gzMnI5YlNDU0ZpaCtuK3hKNDJmTlNRcjhvdVlLQ24KK0QrZER3cmdxcUlzMEZOVUR4NVVLUTIxNDROVkJEUXJsQlJzWDI2cm9JaS9sZDdmRk5Wb2pCOTI0cGxJR003c28KK3B5N3ErRnFsT2JqR1dyQyticHNweHIwRzAwYXFTcm5ZRU1UZ09lUDZOeG9yWGp3Wm5RSmkvVTd0WlpQcVFJVTQKK3A0cGNlL3hMSzk5N0VCdmY5ZTVTYVVBSnVkQlpWTWpTNS9kc2VQZk5HcWlhcjNhMWlmRm5tM1FTU3ZiRUxWME0KK005YStSQStvS1ZsWTBPNHBDQ0o4Z21FOE4yeDlEVW9nMVkxYXV0ZHpOVEpQaHhCZ3JGVVF4L2M5MW14eGp3NloKK1FQVVBCV3hzSDlIaTZFaXN6YTRjWGFnMzNhdXpHczJ2MTlsZWRScFE5TEFSbHdSYXRnU2JQMGxDRlhCQTltbUwKK1dYN2UyV0lLZDAyRnlyZHpFdVpqenBYbXFzZFBBZDNSbUxpSFAzTDF5dVFsbjRoN2hOYmNwd256U085YktRenUKK2h3ZFZuSlhiajY0c1loM3pEUTZGc2FWL05pTUFnUTZqanFtYzE3dWFDTXhtOUluU3lhNDJqVlJqUmwxQzgwQysKK01Pa3g4OWREMDRHTlJzeVRFR3JtUjdRNUR6UW4xVVJvSmN2cTZkWU8xK25DNCs2aEhjUTcxOG4rb1VoZk1RdVAKK3RHcG9JWDNncjV3SEZzYk0xZGRhcUpuOWxSTzlBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU2NBVXRKOEZ0YlZtN3AKK1FFMnVGSXdTYjBLOXBqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUY5RmRUNU9OTHNOYklsQi9vRUQxRmwrWUl4dFNBbzVzMXJXbnhKNHp0cVYKK2FuVTdWMUJuSXA5WWFKVDZqcGYyb3pGTmN1NCtibDBQRHY1alAxbUIvcEV5UGw3UzYwVjRzNEhCeTJtSDlYSGYKK0UwYlZOMjBPaEhEQm56YUk0dTVESmFLWjNtcVlJYURyb0ROWnM3MUJXT2RUN3Z5ZkJ1OFNlY1VHMFpMcEpOV3MKK1RibTZtSVJ4U0tRczg1eHFQc1ZtQm9rMmlEVjlINGFMdng5YjEzZTA1d1BEN1llSDk2U0tpLzNzbmpzblNJSTIKK3VUNHdSdTRpREttbE1naFlQTzAvenJNeGJBcVMxdkd3cjVZelpxSURqS1grY2JjZ3hWRE1LdUcvbWlHZ1NrcWoKK2lraG5nbnV5VmtyblpMaXFVb1lHdGJ0VTl5WUZiVHdPY3NZVVlTcVBQNnFiS3ZLdENwTjA4cmM3S212bXU2Ui8KK3U4SEtuelB0eE1QN1RtZE1UWTkxeHdVZE5DVlNONHRoLzZIL2pZZVQ5azZ3SDBZUTlSdGFGVS9Ld3FodEtSUVUKKzZSTkZIOGJIaWZQZWFGTUIzK2pCZWlMRTQzY0FRT0tUOERmbnlnRmtOMGVEa1FXa2Vjdmk2Q21La1R5dUFjR1AKK1VQRUUrNFhWYjB5YlhJN1Fld2xzMUVOSDZaSmhVRk1rMjFTTnJISk1ac2JGVnVVci95YkVtZjdXY0VJNWNhZXYKK1VBK2NDUE1TWE9GcXhEYnBSNm5FdVFtSEdNdC95NWZBTjVRbFFSWVpLYXdoOWh6cVhhVWlicEE3S1ZUYWZGVXkKK0wyVG9YR3BFU3pINUFESmU3ZEFPdnVEK1h5ZUphQS81Q0dEOFN0QmppbHorWEpyc0xKN0tYRktCY20rWFVzZzMKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgQVRNTCBLRVlJRCA0NjY2REU3NjYyMDRFNzRERDI5QkI0RkRDNTg1MjNBMTQwM0Q2QTMyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbGUxdmRvVUNLbUtyUUFBQUFBQ1Z6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprek9Wb1hEVEkxTURNeU1USXdNamt6T1Zvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVUZVVFV3dFMwVlpTVVF0TkRZMk5rUkZOelkyTWpBMFJUYzBSRVF5T1VKQ05FWkVRelU0TlRJelFURTBNRE5FCitOa0V6TWpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTEhjeU1hcUVYSjRhRm80CitWSWQwUWowcWZOZFVPTGhjcE96NEI3NmFtRko2bDlyODZCNEFwN1FYOU9PU3d1WStNeXk4aHAwTVdsMllXU0UvCithek55cDlCVll0ODJCbk1SVzQ0UG0xeGJ1WDJIbWxjL0pGYmlCWGo0Qk1nMUQzaXBJYXNQV3RpWlp4ZVlCVkxYCitjbitsQ1c3dTE4VjZtTUR4bnhLWTdjM2l4RTFnbko1TnJYQ2g5dS9PM1FxVHNmaXlKcitCY3ZGKzBPVUl4TWkwCitFRXJhVnhiODlJajcyZXFyWjlOellnZUdjckRWRjNKU0VmdG9zaEwvbVhhd0NhM0M4MmN0VGM4aW5ybzJ0N2lNCitvY3ZtaFR2NGhRb2lZT000K2YyaG9UU1dCRVV4cXZ3SWxyZXVkQ1hSQ2ExSGkwNks5Tm9DSmdpOGlBOGdUTWg0CitZWVlkeXdjN3I3Nzl0aWx3VmRhdTRQWk55V0J6QVpCZWsrWWdTZFFlNThaOStvaG9kS3NuTTJKUEsyTENJQ1JkCitMeHYrTnE2cGtteU5sSXZoNnBLZUpVc1VTYnY5dUdRUGJubEM3Q0dmdDNkRGhWU0crQlVlRGN4ZlM0dGpUZXNVCisxdUF5WEpYSGJ2enpheEJYRjdrcDVoYU16NXlrZ2tSRTRKM3NSQ3p2eG1lMy9HUUFMbWx1VUo5d1kwK2JBMnEzCitZejlpQktuSytWczdOYVBZTlZ6L3NsWFNoTE1DQUp6d1F5T3hUVlpRY0FUUm5KSHBOb0ZMOFFzSkZnWHZwdGVjCitTMG5qOTVkTDArTEhWMGVMUFFXTHFSY3hiSmUwS1kxVDk2d0tRZXZKUy9TaGJCYjhuaWRiYnRHNjRRRWlxcU14Cis2OVNnbFpudmlLVWJFVW05MHhEOU1sZFJKMm9sQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlNLV1gzSmgrdktaa0hYCitvbkpEYks3c1V1NFFFakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFJYUx2RXBQbUovOThKeGdrNFBXY0FVUFhWaUpocHFKR1lQZ3pjMmg2a0dUCisvaFRBZW0vTW51a1NSalNwVng4TGhPMFdqY0FQZUJOSmMxRlRZQ0tJMHB3V3l3V0FvTTgyR2kyVkcrR00zYXY2CisxdFZMa0EzSVd0clB2Ym1UNUcrdkZUT2ZmeHJjYjJQcUt1VlREemVaSHNwSmZjSUt4QzN5WTVkL1lnNzJpeEp4CittUHFwS2h2Z21XRlJYbk5uckZoSHZDaDNRd29SalYwSUZWOXhTS3lUYmNYZGM2TG1UVitMRVRzWFhjNDl1QVI1Cis3SUJ2RHRNb0dnYkRJR1dSMUo3TUpoVmFiVTduNzhlbUs1b3RhanFMamphQXNRVnI2Ujd2R05QWVJSbnRyWExDCitVR0pVWTQ1OWxyZHZKWmpBOXlzQmJPWld4VjRPK1ZQdkdJcXJNZEJLMXRTZWdZVzJBd0FyaUVHQWtWcnFZL3pJCitib1JxbHNxa2tacDhCVjVUZkdjMnI0M2NnN2JZcmU5NVZJYk0yS0pLNDluTVBSTWZ0QkFOSCsxOXNDT21HRG5RCitHcmhMb3ZsQTZVLzY2Z0lLcXE1K2FJU00zQzRRd1o1aG9PcjUySzk5ZG5lVGdnS0VSZC9pNU1VUE05NzhEMFdqCityaUlkQ1l2NlFYVjJpT3FxMFUxOFV5WnI1K0dMQXdiS1FKa1R4N3FEcXRROHVzOGQ3WTcwMTdnTjc0cHJSWVJ6CitJdEs5V2F3Zkhtd3BETVk5VnF6NHJIK2o5NWF5SktsMHNGMHJVWWpjQittcFFUY2UrU2VCRzJDVUVpeENJWEtrCitzU3p2Ym1JMUsrdXIwQ2pNNy9JTE1FT2kwbjdma0swRkVwdFVtWUNjclNabnp4WFdDbEl1TUtnWDIwMk9MeWJECistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIEFUTUwgS0VZSUQgNTVGNERBMzlDQTY1QjY2ODFGMkI3NzExQkMzRUYyMDhBODY3OUQxRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWxWQjR4TVY1OTJFdUFBQUFBQUNWVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3pOMW9YRFRJMU1ETXlNVEl3TWprek4xb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVGVVRVd3RTMFZaU1VRdE5UVkdORVJCTXpsRFFUWTFRalkyT0RGR01rSTNOekV4UWtNelJVWXlNRGhCT0RZMworT1VReFJUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5zbXh1clhSRmpqUDVVSQorVGh1N2F1MVkrbFdkS1hzTE43WHJWd2tnUllnMG5Va21CVlRKMDNobnE1MndkdnZHSXZLZEdFeXRKOGhSUE50SAorNXNtYmRteFNTOXErSHFPSGJqbS8zZ0RIbzV0S2RwZ1RNN01Ib3lKYVR2N3VtTDErVURidjRYbUp4Sm92RVYrbworRFhvdTJlRm5Ka2lES0pzQ05VajJSeHVodXF6V1pIR0R0NmJJNXRLb3pzZXBxbjNFMzVQSmNyeDlSTWNMeUsvVgorSUFTYjRTVUxRdloyTE9WNDg4SUQwV0NMNlhJeFk0NythYjNmb0hGc3pxSjNpSGNUeURJSXJrakhZUnRreFdraworajFRS0h2aVd5SWVJYXRuSHpRUTBncjR0QkIvUHZab3kzQk1ZTHV6cE9NdUlqNm5TNVZObzk5c1JXdmFNdEdLVworTkVSYjgreUk2aDBZekxSYllJWjNkeFZrZHVpSzFuQlgxTGtkVXA4K3lxM1B5NTJnYnlLYzFlc2xiS20ya2t5bQoreUJuVzhvMndvZmNhaGNUSUxMK1JLVDR6UytkYkZGWUt2a0RLQ1hzajlLNlFnOHl0a2M5SmYyVUFJVk5NdnZxeAorRjE4QjhJTlJWNy8vRmNUOFNnYkhvWEV2WXJHa051WjFPTVJCVlFKSVE5b3U4eUtJejdrV3J5azlLRC9QRFFtMAorc3FLbEZEM2xJZUszcXZoa0RJcUhIS2c1bEJQT2N2TGkzbDcza2FqdXMxWjBrKzg3UHF2WmRuVWVtSDRYWi9ZcgorODRHcHVpZGN6Q3U1MTVLdmhlVEFoTWhJdEZaQjFmMFBqWk0yZUEvMlZWVzF3dHpvTlloakc3V0kyS2dxbzZHeAord2dIVzZMcU91aGVCNDJ4QzVCS1ZkYUxNVExZOUFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSZ3hqM1ZHbktBTEhpdgorQ1EwWHpKTmg5U0ZxelRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRFg2SUg0cnQ2aVJEMU5mN3hDNTZtWTF0b3ZlL1J4bWU4T0cvKzBFZGsrRQorZU1BTEQ3VG5BYW5mZVpDNzZGK2R5K08xL2N3RlB3UlVOeUp4QlhCYWhoVERxQnoyM2NLWFc2b3JZUFpjNVZUUworWjYxbFBvYlZCNmNETlNxSEtzOGlzOVdHRlRxSGs1SW9SbitxTzZoSGFWKy9DZFByWjJPMU5JbW1rY0RKK3FqUQorTmU4cDEyM1BlSUowSkJ1TDBhOEh2NzU4dnk1KzRVZmxBaEVVVDYzOEhDNVZvYVp0UUt2SzM4cks3TXhvT21NcAorV2ZMbTVYRFczcGFkN3gvb3B2ZXRlbFVRQlgvMkNMRkgrLzVRRnJjcXhJM2FtSy9zRThMYmkvN1g3azJzdDBXWQorYWlBY29FaGlWcXpxUVdzekV3eVlYQUE2OFJhMUx1cnpZVSsrNHBiWjRtRm1TNG5hVlNMa0VPa0ZNTllhM3o3SgorNkNhYTJsV3k1SC8vNHoxTWUyZDZEaFpJTmRRdTBJN24xd094WStDeG5ZWGtkRTh5WWFScitaK2EyYWl1cnl3bgorVEtkU1Z5ZnJYbnhRSHZLNVpsTy9oMWNZbkVIVzNEVzJSVjNvMTlZSHlkMFNwV2dINHdXUkdrZ2tqQ05iS1lSQQorNzVvbTJDRndaWHdiRk02WjgyTUVMOWJDc0RqQ1VNbXFlN21TQ1EzanNuY2kwaTJXWWdOVSsyeEpabGtvUTlGaQorNkoyK3NDNkxaaksvN2N1eXM4L2RLOWtlaHZPNDRFbnNNRHgwWXA0dFI2Wk0wS09YUTFCU3R3c0FQMlRiQUV0bQorR29Ec2RJcndoZ01IUWQzVFV2aTNnZWRyQnB6VCs1aUVLLytKSkNKdDJJcUpxdFozYmdiNGFwSkwxS3VhUlUwNAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBBVE1MIEtFWUlEIDgxQjVEOTlDQkZBQzk4QzVENjFBOEVCRjI2QTg2QTA4NkJGQTNFQ0UgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFsYU5SSm0vUUU5SCt3QUFBQUFDVmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt6T0ZvWERUSTFNRE15TVRJd01qa3pPRm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVRlVUVXd0UzBWWlNVUXRPREZDTlVRNU9VTkNSa0ZET1RoRE5VUTJNVUU0UlVKR01qWkJPRFpCTURnMlFrWkIKK00wVkRSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFOMWNjWDYwVVVRdHRlQVIKKzdjSEUrOWlzcW9Td2FZREdhRC9obkZSdjRDR2g4b2VoQmRtWitBRDVEajM1ZG1TTnVxeFZTNmMxRXVJaTdRdXoKK2w1MmRTbDhQWGVsOGM2d2ZGNjZvYmdIWXhCbXdoTHF6dmpxb3NPQ0RYeUUwYTMvUGhOTFhOaldkT1A5dkZZNEYKK2NKUzNDZjZRK1J2Tmk0MnFoSHJFa21nSUtQdTZkUjNmbXRmaDFGUXpyMVRNUzZ1cWlBd0RqTVNqTkZuNkFObmkKK1Vjb2RycEZxbGFOMEV0dmo4QXNob3dSZUt6Rm1YMjVIQmR1djU5czk2Ulh0VTNnOEJmbGxsUXRVSjBBYVlrNkMKK3NnRzlDaTJzMkZSK2R6dDNUMWdJM1U5aml1aUhTUjIvNXdEUE4rWkdSUHA1bzFxWWUwZlVZTzRNSjR6L2lQZW8KKy9xdTdTT1NNdUc2L3pGcFpOZjM3SEFtNi9pdTlyd1B5aGZkTVUxQkw1UUxMYzh6Nlo4Vk9sWkhYR3pXQWllM0gKK3cxS3RkaS9EUDFxS1VPc201bjdKdzN3bEtzRDNublYvVEJad1UrS3lVcjRkbGxrSDZxREFlQlQ0b3JWV2hOOVkKKzlYK1p0cHFNTEpFRHZzeEt0OVpXMUtieHJnSVpBa0s1WkxpdnJhS3ovTDVmZ2g0OE5BbVplL05hVlNxTGQzd3MKK3ZMU0l2OVU0cHdzN3VuaUs2SlRLMlRXWDZYZDF4RWV4L3JhOG91dUtMdEIrT2FkVXJaQWh0QUFBdVZXVDJxajUKK2RZODVLR0VZMmNIQWhOREJhcGFTM1N0bFdJNjdDWU83Sk1melB2Vy9nTVZPWnpvSVh5K1h5dk55VUFZT2JWbVUKK1hOeW9HaDZXL0V1a0JEYkpUWEpNSE1MbFhldlhBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUlpMNVlBdzZ6dk00eXQKK1p1d3A0Sk9HekFtSVN6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQURtNkpSR2FWSWdoSDRzWmVvV2tuTEk5QzhnNit0eXJuMWptZDA4endqS0cKK0ZOb0tvNG8vY2ltRU1iOTdWcEthQXlPZnNJWEdRZzd3VXd4QnVCd2xjN0ViclNJWkJYajNLVVNVUmNaVGoxNHcKK2tOR1EveHJkeGxnQkJad2VwTldwWlRSRTFBYU9IZmFPNllleEY2N1p1REFoNmNPRHlsZUs0ZFJ3QmpIQlIwT1IKK2R4SlVhSU4vL2NhTllHbm9FQW9sY3JxWitTbmM5eUtFR05zMzRWeFBkMzBHWUZnelFPb204OHUyYWl2RkJtRmUKK3Q0cFJnOGtneTEyL2dHREd0UWpOUGpmdEwvVEJFOXZscEVUQ3cyY0ZwS1VaVVg3T2xlNzhiOS9wTXZXb0w0b0EKK29pTFVIbm95aTY1STc2bVhZZ3h0M3F2cngvWlhDaVJSbloydVRGTGdKUGtCVTNyY2RjTERUTVpDMHVWaDQrMkIKK1FMM29qNjh5S2EzcmUwSDUxSDh0WDFhR0dKUERqbC9PNmdmRVlxd0FiNVJkR2ZJcS8yR3Byb1hJa1BRQWZRK0cKK2hVbEF1SUhqeTJyUlRCdzlUb2RTcFR6SUMvaGpGTnhMTHVoQ2RHOERac0JDaitTazBVOEFDTFluSGt1Y2Y1NGkKKzNIdEdHZHg2cXJKRUhHWXpSNzJ3R3p1cE9Damd5ak1UdkY1c1V3OTJNWDVYbFVNVDV2VEtrWG5aSDNSMmFDRzEKK0cvRE1HaGRsbDk0dXlOczRPeE1ONFNqTm5GYitseFNRckxBbnl0Q3dMd2toakJBOWxCcTh0cGl3YXMzWXE4SUoKKy96YUZRVk50K3BKM09sZHgzY1BuTkx4aXZvNkFnQm1GNnlWSVM2QnFVejF4MUJTS0NiZWwwbVpKLzJMQ3JwS3QKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgQVRNTCBLRVlJRCBBMDg1NEJEMTk3RjgyMTJGQUNCQTM4OTkxQkZEREJGNUQxM0NFOUNFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbG5HMXlaVXFaSWM4d0FBQUFBQ1dUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprME1sb1hEVEkxTURNeU1USXdNamswTWxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVUZVVFV3dFMwVlpTVVF0UVRBNE5UUkNSREU1TjBZNE1qRXlSa0ZEUWtFek9EazVNVUpHUkVSQ1JqVkVNVE5ECitSVGxEUlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSmtoUllkQ3NhS1NMSnEzCitaR1lqaWdxMkJZdnUvNmVBT2ZtOUN6SG5PdmRPQjNlaHBGQ1UybWRRMXhOOW9aSERFWFVoQStBakpMdHR2UXNoCis3Q2ZZc2FKRDUxcnhiT2tsTHBpNlJIN2JFeHhXVEpQK0ZjTHlZekQvdlF2T2xnRWhUUEo0S2U5Vkk3TkJwRGFSCitpaWNLa0xoN00vWjB2dVpvUTJDZXU4UktPWWd5YnVCU2hxQzBOS1pacFdpNVovek10NnZ3VHdBdzl1RHl1ekhzCitsMVpkVXRreXJFdUJPYXo1ZDhWNVVScEFBR2NHYy9MQU9VZ0trWXo2Y05XWkkra2NGb0VqU0E0b3ZBL0ZLOG1iCiszQXpVSzdoZWE4SzVUYkJqbkFBOEdWTnNVbkxFQ1pNZG9ib1dTWHFUWFZJU0pLWC9CRC9nNURqU2hNbk5MWWc2Cis3RU5ZVDA4S0k3RTNYbDc0Y1VJZ2pNKzdGYzZwTWpoYUNqTHNWaE1zWGQvd1gxek1TTVdDakpuZllRVmN1K3VLCitkRUdVZFhhWEQ4QVR2ZmZJZE5ONzlZMENsV0JSUk8reG9tT3E3d2Ivd2V4eTZFeThrVG9QWU02TXZYREZ3bDRuCitZWUpMWEwyK29IM0N3VUc0REtwMzlmZEh6bi9qSmJXOTRVa004R0ZWZkVINURkVVZnWFdqMTIxR1R5bTJ4bXQzCitlVzB6NStoemxIbkRZSWV3THFzVlFwVmcwMis1b2c4WGhocFpGbkkyZW1BZ1JRcCtQS2pDYnkvTFlMSFRDaVIyCitFcVlXckN4Ky9RbnpCNElOQ3o5ZTdhWE5uUGpKMkNzOGJQeEVhbExGUTV6T2MwMUNycWZnOXFiQWJUckZhREpSCit3WUtVT1ZHM2RyckRpWENSV2lZeE51M1pRZ0Z0QWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRmRzdyNVdObm9MLzBVCitocXRkMlAwUG80MWJXREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFEamRoY0g2dzF3QnBid1pIOCs4Z1lha0FORmF2WmcxQTB2azU4MmR3NnhTCit3c1Y1WVdoREovNUxqbkxRUU1meEk5OFozUjlkenQvaGZXb001M2ZjQnMvcGFKY2dneWk3R2Zrd0xOVGhQTktDCitiUVFDNWtBdU9lbkwzN2QwVHp4QzFTanlEeDMzNHQxMGdqeHB0VkRVbi9haDRoVFlrdnkwaVltT1EwbnRpbGxsCitQcmVVTnB1ZVYxSGVEMjFoMFBKdDhrbXB6cFg5Q083U0x3NzVrclZocm1RbzFocFV2R2NXY0Z1NEdtRUgxVVdsCit6YW5Id09vT09sU0E2YkFjOFB4aEk4TThJRTJvKzdQd0l2RkhvOTlkb1hmdjM2VHBHVTgvRGE4cjYyZ0FhOWwvCitVVlR6UnREN090QWtPRVNjcExQaHFBcU5DNnFxYjRIb2diYk1aY0ZGcG0xYi9TWVJBejhqbjJhekVJaFJJOXJuCit2KzhGMFZWTjJWdGNsNmRiR1d6cFhaNGg3SW1tekJSZjJ2cUozRkRybzhTaTFMY0pUNEs4U0VSdHh6Zkl0QXpCCitoa2ZOMzdUU1lTc3Fza3JFcmhHS1R2R3JuSVhrRDJxWVprZElUMFRGWWFQSVpaU0RuU0VMR0pmWktGUXdEaGcrCis1SG02cnNtK2JERmhGMUk0ajhuZWc5eWtIbVhEQndBZmJyUnQwL3VPdVlacS8zRCtRZXhPZ0Nub2dIc0p3VGVRCitjaHV2UFc4STNydmNxTk1QVm91ZDhXeDRxeEdnTHlCSGJFZWxlcWVGaVMxS09iTWRZYnlUUGF2cWV6TVp5S3BVCitCcURYeis3UGRJVGFGdjVHVUxCNitwN1ZKNlg0a2pFUEt2UUdCNERSN3drOE05UXJoazBBcTdpbWtiQ20vOUMyCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIEFUTUwgS0VZSUQgQ0QzNDAxQUM2RTFDNkY5M0RERDg2OUQ0NkE1MTgzMTFCMzc0Nzg5NSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWxvc1Z5OEo0RDhDSndBQUFBQUNXakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazBNMW9YRFRJMU1ETXlNVEl3TWprME0xb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVGVVRVd3RTMFZaU1VRdFEwUXpOREF4UVVNMlJURkROa1k1TTBSRVJEZzJPVVEwTmtFMU1UZ3pNVEZDTXpjMAorTnpnNU5UQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5uUytpMmxWdUVGaUorTworOFFpZmZldVBzVnRmZmRqZVJjTmxDVlRxbmErMlNTUFJnMWhRYjdHTEcyL29CRlM1bGxlK0Z0QWs5MVgwUkVIcQorR2tmNkZPV0FDTitMWTFBNXJoYjlQR2x2cHYvdTNlcFdMYkRGRjJkcWkxM09JcG1SZnh6MHhTanNId3djNFRsSAorK1NmVERzdHIxMVRmaGE2SkUvT2gzOUVTSThQaVhOV1BmS2VHUFhZdGpHNlVLcUVibzZnZWRSTVBlVUtXbjF2NworeFZ1WndRemVHZUcvMDZxRmhYZnQ0ZnVMdU5wSVJqd3JmTE9PWCtOR3NmbXg0eDFob3ZwaTdBb2NuaWdnWGhrMworWG5qcENyOXdTSEdIV1pGYVhPVzg4cGxzVzhDZU1sVHNhYmtOOU9NaVdUQnlFMUxKSzhON21KMXcyZi83TGpLWgorNDY3b283bkwvT3M4M3FZRWRFbCsrelA2OWJaQ1FHYi9Zem4rdjcxZWNHMVI5L3ZxZDdKcGgzTks1enFnc1kwUQorMVBSeWpUSmdneHpheFh0Yzc1YnJUT0U0bVhoMlFvMU5BT0NGZG9LbEZoTGJvVHp1MkE5aWpVUE5mSzFZS2FncgordGg5REN6d2VWeWdpd1Z1QTFQcXVkaWFJV1ZCUEJVY2dub0drSFFQOG5SMnVybC9BNnk3eHVDbjljZEtrKzI4SgorcTd2SGhXUHJsa0xEQUtJd244UjNTb3dHcklMREZOVC9ZRUQ3U2NVbzJMdENoZXVETjJwbDFMelV4Z0pHYXVGNgorSlFGS2hMZWdDMWE3ZG5GSmlWRSswT2c0bGFLOUQvaklNdEhFVWxtOGlPbE9lbFVOUzcyVEs5eGFwYVdkbEZ4bQorUCtHWVIvUWtsb1dRNmo2b3d0Mi9ERkljR3pyYkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRczVtSGFUVTdkUGtLRAorUUVlU2JqbjkrK3lMNkRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSGNURitwc3hSSTNJTWZzWGg5K0tjMDVuRmhOSW14dW0yMTJTc2NmSGxOeQorWjdFOTJobUZLMWhKV3FhWGpBSlN0ZFRlcXltby9OZnltbVdodkRMaHJjSVMxVWQ1b1I2dWtuOHlDM0QvcU5CUworajRreFZjRldpTEdodWN0YWZYRjV4bUl6Y3NDVFR1N3J0NDg1ZW9ScW1sLzhFNkU2OXlvRkZJcHhSSTFUcUFFWgorRjZIa3pBZDM4VEpvajZUVytYZXJDb3pqdDB2S3RJbkNMaUJtVUgrZWxWQkY4T3NGRHh0dTlKL1FUVXc2WFdjVworUVQ1eGd4TVhmanFEVTBiTVRSbi8yTGVEVkdaQWMrK29WSUtzL3pNS3BEWlYwdW1vYlNaOXBGc2tIVkxXWDJMQworbHd6QWtiNXJZeFc2anRodlM0ZDlnOWFWcDc3VkhxckgwVVJhc0UwbnNJY1gwYU1xYVFvSUxrYnArZ2doTnBYagorSWRQeTdTczMzT2xueUxoVHY5QTdnd3R2bEVWUU9rak1KcGp1SUtOYUR1azdtTUpiaGZIM2xPcGpKWUQyU25BbQorZ00xMjVSMUVzeWZCeFpnK3hKY0ljbmtqYzBxbkRnMS8rNEc2ZGRvY0M4c2xITW1tN3BjU1ArY3FER0NyNi82egorZVE2T2xuaW05Ri83THBMditaMjVUL25kVEc2RVYrSUc4VkwwT0kzUVdENlF1RTYwQVJSQXlxanBLSnBYaDRxVAorOWlXd3A2M1VsSHZ2UWttcnFEdXl0eDNnUWNYeUxDM0sxdUM3STBBSi90Y2JMaUhOKzZGbjNaWTBCbDk1VFoyaAorMTREYS9ONXZCeUpJMVlhYWF3bVFRc1JMUFM4SEs0d2NFd1U3c1RiY1VqZ1Uzb1dlYVk0YU9INTFnd3ZhakhvVQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBBVE1MIEtFWUlEIEQ2RjU2RUNGQ0Y3RUREQjdGRDg3RUQwMUUxMjdFRTAwOUE0NjNCQzkgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFsdDZPMTMzc0NUWmJRQUFBQUFDV3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamswTkZvWERUSTFNRE15TVRJd01qazBORm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVRlVUVXd0UzBWWlNVUXRSRFpHTlRaRlEwWkRSamRGUkVSQ04wWkVPRGRGUkRBeFJURXlOMFZGTURBNVFUUTIKK00wSkRPVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNWVEwTUMrNnVyNk8yMzQKKytvOXZ5aDk1MWxqQ3FFZ1d1aitLZkVIZGl6TUhDWTNYVHBuOHdaNHpucVBMODd3UlV5T1BCMi9naGtqbitjUy8KK3k5WThreThMVnNlcUtvdXdnN0tUWVVBSW5DOVUwVlBieUY1RmNkd3hSSWQwdUowTk11bHl1Lytsb0VOY2djLzYKKzVmcTJsb08vYk9hTkVucG9GVDVjaHkyRkNPNUVYcHFJZXZEZjN1Nnorc0IwUktScGFqYWJaM2JsRHpXMVhZdjgKKzIrQkI2Yi9iUCtKdHdFa0Jjb0FsVmNlQ1MySkRMalRKVWFWQUZaSmxPdXlpT3R4dmRjeUh0Qk9QSTB4cWYwZXMKK0R6ZzdpdThkWkgvZnRxcmhZNTZEc2FGbksybWtucWxMRTNWb0NwSGw3MEkyRnNSajVnTmw1MzRKUm5SK05YK3EKK2FoU1h1c2JjcStCZFJCcEJPb2J1T0pzN0doWUc4Qy9hTkthZnFmeTdtMnRyc0hVbHpaeDI4U1NqOUgycU5IaysKK2w5dDN3K0U3N1FOa1lnNWZDTHQvMWVBY0dwNHVTN2J6dVVodEVYb2llMUhsaExhazdiTTJjNjg3VmtSUEFqb1UKK1dkY3JJajVZNWFvbHhGM1dsRC9DdTVZdFBUL3FVT2V2UDJtMis3ekthcTVOUngzZXNHTXRkRTYweXRKY3FiU0IKK2xqYnAxaFZTamt3b0x3T3NKa0VITjFTeWx6WVlIaUhUYWVmQ0pZdXlUUU90b0h0dEg4OUV4dkJNenNhMVZiajYKK0ZwMDV3Z3YxWjRYQzRNQmh1NnJwYm5qM3NlTy9RaHcvUTZJWklpUHJNRFpDSDBJeHJsS3RJUUVzaGpFR2ZoVmwKK3ZOK1VCSXd3YlM2ZnFSSTc0M0RkRURrbEpoNWxBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU2Z0aHZRU1VFaFJuK3EKK3pFMmF6ellURHNzKzhEQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUpmcis2YWdmQnVmc25DcE8wNnNYKzV0ZHJFckhIMWorQlhSK0RPZW9TN1EKK1lvR0NVQXF4UjVPb09aUDI4K05XYzhpb05GZXlLZldIazIrbHQrenVtRlhFejUvdEpLMEQ1SjVjMGUwTTZJSi8KK25qZm1XWVBtcHFtSEs5TGZHcmhCc21DdFgxeGJxSEZqckZCMVlSc0pMSFlsR1R0T3JDaWUzendISlZJbmFLOFoKK3FVU0xRYnhkZGc4QkNGSkpjSXJNZlJ0VllmZm9RUUNBWC9Eby9WaUFaNUJsQlNTdGNxMXQwNGVTeHdoczBlT0IKK1RrdUFwSW9FeGhjQXd0N2RWT3h5RkVFZjg4cUl2Zm5YdlZYMVpUUWpsUGQvRjdRY21NREhXdldTcEJpVVVsQXoKK0NVaVRXUEVBNmNuQ0Z3ZVNMSW1LS0pGQnF1R00zOVJRVWl3c05QSnJGc05ldk1ZTnQ5MG5La2x6WXdiZHNwc2IKK09PdkNQVy9xRTgzeGh5a3FGK2pCVks0Z0t5Q3Ewc2J4OEZOK3E1Rml1NFJqT3RhVGtNVnRmcmNRMlFEVzg2aVoKKzJJeHFIM3IyZUdwU0dtT1Y4K0d5NEd0bHZ0a0c3ZWdrUi8wdjBSbmR1OFlqSDJ1eXVrUmorZjlXalpNQVE0OWYKK0RvK0IyU2thWEhjLzdKVXdWRzU2dTNXbmJYeVNYTkw1SkdDbVJrQ1pxNm85VjJOdGtPbXJVcFdiRHErdnp5cDQKK01LMlJLVklyNWY3Tkk0K2JxOTJmUEtxejRvUkwzWDZKL3BxdjZVZmlXbDk4eVlNVDRZMG9QRElmV21GenZybzQKK2dPbEFXN3N0eTFFeTF3UjFsem9nUHVoQUc5N2hQa3QvL1kyU3FrQkJjMzRGejl1K2RpWlphU2x4aG1STmFaQlkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgQVRNTCBLRVlJRCBFMDAyOEQ4N0NFNkM2N0E4NzUxQ0M0QjVENzRGNTc2MjJFNzVFNDJBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbHlZSEZiU1dsaXpRZ0FBQUFBQ1hEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprME5Wb1hEVEkxTURNeU1USXdNamswTlZvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVUZVVFV3dFMwVlpTVVF0UlRBd01qaEVPRGREUlRaRE5qZEJPRGMxTVVORE5FSTFSRGMwUmpVM05qSXlSVGMxCitSVFF5UVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTjBBQXFGRW5qdjdHb20yCitEcWZiNFRXTmY5Rnp2N2l4eFdHYm12Vm1BNGd3TXYrUzdYd3JZOTdhMHlUczFVS08vRXZxUjl6OXI1RUhabkVTCitqcVk1eko0dElLYnoycWpkMjNxaktUNnFCTm1zRmpVOE9kZGhvM0VDb20vRHBtUUYzaUJMVWwyOUl5RUphVG00CitrRWwxakt1ZlJ5bDAwOHpvUFhBUlJJTWtuSjRoQUdpQmJpNG82SEkxTThuUEw2eHV1eGpSdlREUVc4R014QUJRCitXZ2NlWXM3OFo3TUREK01OZnY4TnpFanNsWVBkaWNFRFRNODJUcGdHM2UzbjdWaEJwNzlqZGRSVFNXOExobjZXCitTZ0toOFdMVk9YemRLL21mcFFXNlRPOGVLdUovR2VwSFRBMHkzQUhMQ0hIYzF3SXhFUXV6b0JHc0duQ0VVTlJRCitCN2hoakFrck1kcndjUWRGenExZjQ1TzlpVkF4bGpaaHl3VzBGN0pQYkdRaWNMb3F3NHQ2eThMb083Z3dpdmtnCitEeVBaS1didGRrUlZvR0p3dktCTXRISEcvL0N0VkN6TjlQYlpmT1JpekNLM1I4QXJwQWhHMllaY3VhU2pHbXBDCisrZVNDa2JTc0VJMmFsS2xNaHlnYTdUbWhSOEY1ZXJ0cFJiRFBSRzVmMG0zSHI3bk5jUzhzSmtDaWJjaEd0c3lOCitIQWNwbVFzSTlQZ2J1ajI2K3dvTUFUNnpKNWpobXJ6blphS2NrVUxXaW1kQ1dBQVBYQVFjSE43MzV3ckR6d1AzCituOHkzOGIxYjIxMFNCYnhYRU0zd0NUclN5ZytkNnhJMVlETTV4VjFXZVZvbjV6dlAvNjUwVHoxdUFQd3pIUUVmCitTTzl6S1ZYZWpkalErdGhmUzA2QlE4RmlrSmYzQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRGbmNWU2ZBeVh6YkxLCitpblIyak1qUTEyMkJTekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFFZlMvSXJlUHBobzFBVW1ocTBrUGx2ZlZQd3M4cW9PVFVwcm9mWExncmYzCis4Yjg1eFlCYnlPWVVGaHNyS0VJOVl2ejkyTkd1RVVNWXAxV3d1M2NVc0IyWXllSDczMmR1Y0hzRHlYWGNvWllICis1dUp4M3labnE5dEZTdXBrY1pqNlpRV2dLT3dMM1BLZk1EczI4NGRkVHh6dEZQK00zaENsZkY1NHF5aXNWcWVQCit2WEdTN0huNnN5V1BuQUJ1NWdOVWI2ZWl0MWZhNEdObzdHUFdXQ2VYb2d6STZJQTlZV2RscWFieGJNL1psWXJaCit3TGZFS1d1cGFSM0hoVi9tNkRwSVphNm9VRm1xdmNRcWxRaGs5eS9YcmFwTWJrcTAzS2Jucm5rRXQzcjF5UG9HCisveUg1djh2VGw3WVZtU1c5dXk3QWcxb3pCVW93SEpDem82M0puaUM2anRSTzhFTE1IcXZpZk1BbHBjWWJjclkwCisyUjJDS3BWTzJrOE9qV1RvUm4xcjd6TVlkSGZCUEwraHlwZW00Zms5ektlRlhtbmtsbmVrbXdSRHU4Slo2THV5CitWK25kWVM1Wm8yc25Qc2E5T1BGbjNsNnJwNVNndDg2ODNxcnRQejlOMFhpWkRHeDg4bGRER0YzcjNTTjBvbktlCitzU1NEK2UydjhvQU1PR3lmdlBNbnR1S2RnalY2OWxMSENJVkdGcEowbDVGMGFQZmY3b3k4U3QzUUJRTkRLNzN4CitqTlJGbDRYbDNnTjBJeWYxM3duRTdrK0kvaUFRNUQ1V0ZuazJvaXNvSWVKS041UFEzbWV1c2tVUUhiaEpDNFoyCiszN2Jhb0U1d3hhNGFwOXBaSGpUN0hjZ2ZHQXh5OXNHUEMwLzFyYU5FcWU2Wm81ZDJuWU9Vd3lZay9ia25remhWCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIEFUTUwgS0VZSUQgRjc2MUEzQTFGNDA4RjEwOTA3OTdCODcxMjdDMkEyMzk3QzBBQ0EyNCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWwyM00rdjNHNWE5UFFBQUFBQUNYVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazBObG9YRFRJMU1ETXlNVEl3TWprME5sb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVGVVRVd3RTMFZaU1VRdFJqYzJNVUV6UVRGR05EQTRSakV3T1RBM09UZENPRGN4TWpkRE1rRXlNemszUXpCQgorUTBFeU5EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUtYRzhybUxQOHZ2QWZBdworcTNOR1RVYThNTFk4Umo0RzZwLy9HcFJCVE5ESy9VdHY5VTFydVhHNndGbGZKSjIyYXh4RGtyenhISUV3Wk4wOQorOXY0S3ZFQ0lVWk5OZE9lRXBVUzBnc2xUdzdaK2lrSFNCUk9EZk4zajVyblRrd3VnMzFkSjlLbldLb0hxQ0IrYgorVTZEK1kvNUtpYUtKQVRWTGR6OTBvS1hJZmRtK3lzS2FaallBYi9pVEkxQkJPWjhacFBFUnNoV0l1YmNFRGtQcworYkNiczlPMDJNc1BwNHByWi9MOFg3NFFWc3UzM1o2NXFEQ1A2ZjhZTnFuZk1LbUt3c3pVUjl2eVN4Z0dwRjIrYworNFMvRDVidHZ5SytTWUQ0dkI0VG5lWDJLT3NXQmttR3BXbHpjUFB0eDRES0wxRmVNYndIV3VtbGoveWtaWlJvKworSldiTkprWGtPQkRkMS9pWXoxcGZXZE92a01FVHJzZlNDazlyNXA5RjNZd0FSYnRtaHRZQVR0WTRtd1NFaFVPMQorVXA4ejVzaDlCWUtKWXVwNFBDeDZSWVFnTmJEVkowRDlnY3JuVjRMZEZwdE9FaVdkMml0RStReS84bC9GQnk5Sgorak5ZTDRGdEdONWk2MjBGNFd0amhhNHIyaktZbDB6QmFoZ0lFRmc0ejdLak82UXlNbloxNGpmQ2pkRUpWcVN0TworTnVmT1Y2dGx6YTBUUFZWelEyWlFwVzlCVGpOaThtblVvT0l1TWh0ZVhEZWY4SkZKVlVIM1NTbThrNjRIaU9BTQorSDUrVTNhNWMvK0c4bklMWlp5NWpUQmJYVjZMdExEZ005THFMZjhudVNnbjdwNERZcDJIMFdnRjIveWM4ejNacworNkdBU1Z6aTRhQ3dwMDBwUTdVc2I4N1hLTnBGdEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUY3RSMGFGeDEzR05yeQorYk5tWlNFOWhKUk1EWkRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSHljUnVzSjRGbVdNajBJZ3U0YWFYRzFSMXYzSXdiUlpJSmhvM2k0aWRULworajUzM0p4d1hPVGZLOHM2TVZtaklyK0k3K25IdEN4WXY1MmxDY2p4UkovMVJub3owTHljUXV1K3JGdGkvbEpiRQorcmxzRmd4RzloV3U3QlRiR3dVU1B1QTlrTTREVHRFTFBKTnhwc3VlYzE2aE9lYnJ1MW41K3luRXhtODdERytISQorV2YvRzNCZ000UFJ5NjBpZnB3bGRxTjNmMXBKSDhqU3lKZmhlcXF4M2pRYWE3eXRIUnZZS0xhTHZIaEpuNUhhMgorWnVtVHdtSUVzVTZSL0U4R1IxUUpoalFpY2Voc1VHY2lFcDdxelZFZWpLTFhxa2JKTWhvaitHdllOMEJEbjJFagordDI1Y0wraHZVR1JTSlIzVTNqSHdWMUI0VTduYzBvRmVDZFpCY0E0Ky92aWZncmhBa1N3V1ZCNnAvNi84Q242RworcERkYzJBRjdnK0FvK1dKYllPMEtZS1pxV2p3UzVaNmlLSkJZK3U4OGl6M2ZEeDVSbjA4ZGpvTnJvV2N1Yjg4dworKzFXV3V5Q01qM2NlNG9nMXROMzcxeisxQ3k3Q2svWXhWa0ptSkFBOGZkZHlyMnN6dW1xbEtkTGVuOFZFdWZLTworOUtPK1lER2dIUU5teVBPR0VJK3ZqTEN5T0srcXpUb25EZjJhbzc1eGhZRXdSYkNTNDB2djBvMDdsbjQ3VWt1WAorMkx5WW04aVA0aGZucG1IdE1hVVNFc211K0RFUjVKQVE4MkY1UXhFd2tsQWxYdFZDdHRnZkVIQllueVRDVTNLbgorWHA2UTczQUY2S2RpREFvZUN5cWVJTFBzT2Y1dTZXWnZZdmNBTDQ2Q3l0VXdYeE9DU1pSU3RsMU1OWnFhTFBkNgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgMDkwQ0FBRTE4NThBM0MzQTNCNkQ0REY4OTc4OTE2RkIyMDVGQ0E5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFSc1RsTkFZMmNEVUpRQUFBQUFCR3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNak0xT0ZvWERUSTVNVEl6TVRFNE1qTTFPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHdPVEJEUVVGRk1UZzFPRUV6UXpOQk0wSTJSRFJFUmpnNU56ZzVNVFpHUWpJd05VWkQKK1FUa3dNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWlmaE0xNUc0Q1RBMGpaVCsKK0tPaU4vY21VSVdBNmZLdjhUNjlBQnNSNTVGWjVMbDBNV2N1U3gxY3J4NjZxbVR4MUFtNVVSMWFSTSs5M0N5SHMKK2NJQkxTWXEwN1R1N0FTdTJKTXJISldtdy83UWZyOHUxaDd1MXR0ZHQ3MjFRS21tdXpMUFJFNmViYytmd0RXcnIKK0k1cVE0MnpoMytvMlJGbWlaR21OcXJFYXMwMVRJejlOeHhXNHFGSmhhNkFpdEd0cGgrTDRQVS8zeVhmK2lSSUgKK2RoK3FuRVpJYXRuMTZqL3E3QTRnVlUwMm9JUFVuTFhWYitmSUhpK21yQjlKenhlM0xGRThzN0VHelhCS00zaFEKK0VuRFBxazVjOFhSTW8rV0JzeGpzNDRNd2RGUEpvdmdnS1NiVmxOUHFEVjJmVDVZemNmZVBTaFhSRG1vTjQvRGQKK0dOVFhVUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVTJUZlE0b2U5QjQ4c3h3eWVpbkZ4d3kyUGV0NHdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCUHBmQjcKK0ZXTGZWKzFPQTA4N1lCQU9YSDRPUWNVTmVpYmxLcXVSWTV4dTk5UVNKa3AzamFyQkt4L01xMjl1Ly9vRXkrL1AKK01TeW1oQytmVCtDVG11ZWp4RFpnYytzMHJJZ1pvVmk5SER1QkQ0c3E4U3RrVGhzUnVEM3g1Ulk4M2QweG5jTWkKK1puU05QTVY3MjVSeVRSVjBZeG85STV0VE9OR0pTcEJZSlh5eG5XN3hJNzJ5OTlJSFA5VFNjcTlzaGFFTUQya3AKKzRJM3ErYlBUU2FWQVUxaStZaTJQZlZvWWdjQXRySFF6T0ppSWgzRmNCaFV4dlowU2xQSk1NaDRqNkMwUUdyeFAKK2hIbjV2OHd4MDJMREc5Vy9SamVYMTlwUGdrbGdrRDMxRmZoUmtRd1VxM0o3UGtLcHJ3MU82ekp1dHd2RnIvcTEKK1NjT3BRQjVFK051QlF6QU5BcXhqdkZoRCszUktRRzFUbnU3aXI4cUo1QXNMNGxjZ3h2UXBRbzZReGlpazJPK3QKK3JDYW51eFdvdDhuT1VTcC9kZ0QrYm1qWkIzVVYyQ1dqQUlkazhHenhEdU5jQVpGNTZsd1lkYmVjeXdLeXkwSDEKK2dYdGZmOWhUWmtySC9iOUFXU2JXbVJyQnV6OFVCQ28yOXhQS2FlRGJhVlgxK1pjWTdHYmlCQ0V3YUNhQXM4QnEKK0pOY2ZHY0ZNYXk3T3p2NXFhVXBwdGo1cXcyZzdIYXdJTmNmRnlqWGpTVi8ybnEvUFErQ3R4STYxWE9seUdEazAKK2hiYjFrT2swUUpqM1FrVmZvMnpLWU4wUmd0RHJsOFBGcG1xR0pZSGtxL0NHci9wZDlRNDlqTkF3TUxnQ2p6VmkKK0djdTlXTk4yWEFlRVl3b2pxYU1BY0tXZmtEdW5CNUZRakF1dDhRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDExMjI3QUIyMjg5ODMyODlBRDJFN0VFNjg0MTMyMTkwMUVGNTkyRjYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBUnc1aHBERElBRTFkd0FBQUFBQkhEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EVXdOREU0TWpNMU9Gb1hEVEk1TVRJek1URTRNak0xT0Zvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB4TVRJeU4wRkNNakk0T1Rnek1qZzVRVVF5UlRkRlJUWTROREV6TWpFNU1ERkZSalU1CitNa1kyTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFqekZ1N1pxUCsrOFllY05ICitLYXJIc1ZURnVqZE1RVzZvUTlFL2t1VXpxU2wrSVVoZ3dFTjhSWnN2VHRlUldDME51a2hUMU4zb3NuYzZ5ZC9TCitZQk1NYkp6bTVINkpBbG14WHRvYUJmTkxWMThrMUo0RFp6TUZsM3VwYmNvcm4wckd6MHVBaTRIZGlEYWJwT05iCis4dksrcldGUWliZnMyWGpEVm0xSVprbTNNWlh0ZkZoV0RHRHlJWWxRODhweU9VNjF6ckV0Y2kvWlBhWGxsS055Cit6SStaS0QvdWtEYS9LdTNQb0g3YXY1aUtBcWsvd2c5WGMrTmk1STN5ODluTzY0S2hTcVV3YmFIcnJxdUlDMXFwCithcWEydFlXRER2dWZoQlpZalRlQ0xwUVB4aTcvWVB6WUIxOFAvVU9IKyt3aGN5Q1d1SjZySnVCN3pJcmFSdVJOCitLQ3BKQ1FJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVUybnJDSnZxRmg4WGVJT2FidWRNRHFKSUdZS1l3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQTcyWW9iCitCeVFyVG5YYVN0UGZuK2dzV0NVL21FYll4VjVQd1F4aC9SckVvNys2WjJCWjFNQjZEa2FFMG5heWtrdHVlRWUxCituNzZrYkY5ZDIxQk1Cc1lxQ2g5bjVwbXNwNkc5Z1FWS0NLMld5dk0rUzJNc2J5TjAxK3EzMEdmMDZRT0dQOEljCitPbUNRZllackQ2RGFGMjRvbTZGbGxVcm1RaEhsRnNiK2hDbG5DUUVZdUw4OTFOWmFJZ0pTdmZqK2pZbjNiQndQCitKS1poN0t2cU05TGpTc3hDVHJPTi9UK2VoN3Fkc0dQV2xKWkVKVU9BUlArN2Y0cnNnZ0g2N1Q3dkJxalNwS3JVCitTZXNCWnQxSThBOHdldGVhSWVUQUdBNUpzTkJ6c2tycEJPdFNxU3pOMmdiQWNkZFk3a3R1c2NLUVR1akIyNGIzCitnNGQ0ZU92M0hGYVlOeWdXVmVFQ0F0UStwa0VCNDVwUXR5bnZtZkIwaXdYV3RsazFMUEhjOER5MHRZaWo0NyswCitQR01BUm9vQ29EOHNUWVIwYWtjZEtnaFpZR2dpa3Q5RHFseXBLd0dxM2k3Y1FuV3VtQ2YzK1lBQ1hTOFlJSFlmCituWUdvNitObFdEK041SnJ6RnJWRkdNV3huZENpekxLTkhLY3hSNXIvcllCSGNMSHJZWkJnOHUrQTZKc1hjWHQ3Cis4SjZibGQ4M2pLYkJhaTBhQ2Q5NWxsUWd0UDJSbno3NVRCRUM5TFpKWmJCRU5VOGZ3bmdiUzhoYTBoOGlBQzRHCitSKzVpWTVFVEFTUGliOTA3UGo3dFFzVklldFpWTjFIRzdvdUNKQUdndlRlM1lpaTk1ZjdSV2VmaEdRR1VLSThQCitocldpQzI5OFNnajA5RHJNdFdGVmZLd2s4dGkyYkg2Y3lSR0lxQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCAxMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5MkY2IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFob1pKNnZmLzhSb01nQUFBQUFDR2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14T0ZvWERUSTFNREl4TkRJeE5ETXhPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHhNVEl5TjBGQ01qSTRPVGd6TWpnNVFVUXlSVGRGUlRZNE5ERXpNakU1TURGRlJqVTUKK01rWTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBlT3JNemE0S2dxbnhYQzUKK0VVdVk5WSthUldtaS9lVEV5bklkc25QTDdoRVF1M2dKdFFMTXJmVnlmQ3plRnd5Z1pxS0tWeGRjN2hEYTdYRFMKKzZ3MU45bFJxcVlscW5sNDRic0pzNE1uSHkvSTBYUE1JRmlWdFJ4d0pjaFQzZk5kWk9SNEtpdDl2c3hxdUh3SEwKK3BCM2VsV2VEVUVXNEg4bk1ldmI4RDNnejU3OEZkNk5sRlpReTI5ZmQ5amtLOUhWN3FQQmNTaDhSWEQ2ZFRRWGIKKzdKakc4R2g1U1lJMUFYQ1NmMzN4a0orQm96NHBNeXNpOWtXckljZDBRUXE2aHBZMWlFdVhiSUt3V2pNaHVSTGwKK29VMnA5VlBVRm9JMTVLTi9KeFFGckdaejZYRjFPeFF3RVh4VUpoNmt3K2l5dklDeERjMlVNUG5wTHdlbEFHYnUKK2hQdWFZRkNxajIweUNpNjdaTms1QzRrTGozYWMxZVVTTjFJZVhqbDZSZWFnOHlCcmtMbU5UUmVNWG5IeitnOHoKKzBUQkROZnlaQTc4akYwRDdFT1B6cUdMWG1qT3I2b1B4ZlBqUlRERUxteVQzL2ZWYXlnc21vbmthbmlRUGx1bGEKK2JKMng3Z2czN0pPVFVUc2M4OWx4Y2ZCRThqekJ5VjdIcHF4Z25UU0N4M1pnYS9mdXpBQ0VOR1YvTjUvRkpVemEKK0xQaVVXaE8wdDhISkZhM0hLVWkyU1NVR1RZMHBEcm5Penc3OTNFYnE4OFVQNkFLSy9yUkE1VUhxRGJkNy83amIKK01INjQ0TUw4bFowUWV1dUtuMW9qNHdPeXZMMFlDdnBJeU5IYk9IU3FjUWFaaEFUZERvbUpkUlZjeDg3WUh2eVoKK0UyblFpNHhKeXVwNWRZMnZyUDhFTlJIY2FXc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZGQmxKM3dvZVpwRlQxTjkKKzFjSlJkY0tOTStpWU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSGtxaHdtditCQjBBMUxNUHNVTFczT29aNWRkTzRxaVJsSHdJcUMyclNkSHIKK0xuODFHd0IyRUdNMzhDdE14em5ueFN6MEt2YVl5TW5UbFlaajVGUnhWN2paZElwZUpuYjYvcFNZY2JOWDdrbmEKK2YrK3FubkFjY2RXOEIwOXZFaHhhY3o2dEFWQ2Mwb3pBRnJyRkJteEVWcFZGemN1R0hEM05CME1oclRlcmxabVgKK2NKVEx4NzFCS3o2bzRFSVVnTi9tMXVvbU5wTmw3V2RJcHFUQktpWVEwTlkxSzR0ODFUYnprVUdxZFRSblk3cnoKKzAvUmVHdjkyWjRGVXdTS2p5a2xkYkdPQVRNMy9RNXdwdTZEdzZVNVl0Smd0ZzJnVkJtcWgvK0tjM3h0N1Vaa3AKK0FUeHZlRUo5Ull3OFo3Q1dsK2JJdW5qUE53VnpPVGtIRzQ2eG5tZVRkOVl1M0YrUFkrRU4wOWhwbFBpWktvTE4KK1RJcnhtNjNPN0xjaXFJZ0FoVUJCdjA3SVJDVWdudVovdzZFZjI0S1dqUXZEOHNwelNJbFNOZDQzVVg0dnJERVIKK3AvTTJDTk50MzdSMlltQSs0dTNReVRxMjhLSjdJK3pMMW8wRytraFFobUpGRUJ5Nk1qZ1krTTZnZkRpdjFUSTgKK2hhUFZBdW5uMU1QV0lYL2NteWVSRG5NZy9KUUxjNEdmSlFxZHBpM2k5NjY4aHB4TUxQU0RhanlVdFhybEJST2oKK0J1b3o1WFcyQWJFVHRFRTFjS1pjcW9PRk4wMWpZN1lObTZKdWNaZnpoQ1g1UWRoTUdpMXczSlRTdEF6VjVhK0UKKzg5OHBYVW5vNkhGYzcvcUlua1hWazhSVFV3Q3NXd01yRldFTkRTVThIeUhoakxHR0lrUlF1S1A1VXViMjBucz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDEyODQ2MkYyQTBEMTZDREUxOTQ2RjEwMDA1NDRCMDU1QkMxMTNEMTAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWJhOWE1Y1piVVF0QkFBQUFBQUJ0akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3dNMW9YRFRJMU1ERXpNREU1TURrd00xb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMweE1qZzBOakpHTWtFd1JERTJRMFJGTVRrME5rWXhNREF3TlRRMFFqQTFOVUpETVRFegorUkRFd01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcnpIK0Z2QTBJZXU2QTRTbAorWmtVUUQzL0p1aWdDK3RuVnhLNmtHOFljUWxkN0VYUzkrdEtSV0RMcVUrNkE0L3VIb1NWbjhrNDJWMzMzQjhmQgorZ2tjVXptWkFIOWZPdW9YeldoSVlwMzB4VW1CaGI2VGlabi9nUEExenJDeUVYOFo3OFJYazBhbW93S2xDTHlwSAorMlhLSjBIWXBXL0dmSVlyK3Qwa1kvMiszdzFaTWcrSjlGdTE4NnJOaDVPS0lNaWNEMTRzMVhtWnZUQVk0TGIzbQorQmpMUVUwY2dCeEtlanJIL3NHMWtjK3Y0ckhBQUl6Qkt1QWlpK3JKbGxvU1czSEFoeFBRcHk3MEpsSGNRZGMvLworUGtEVFJqays2RDkwbnVQeEdjWkJsdEpCa05QYlNsaGM0TTI0OVFUVjl0Q0hyUHlzQUdiSzRXUUdXazJiejhnRworMHdaUlE1ajYxQWpkWmNzMytjbkJobEdpMitDVzdYVFdiaGRsQTFLNXF3aWN2ZUR0UU9wdjJlYmJIemFEZkpHMAoreEI2OTRQUjV5MFA3bnJFZE1OTGRIQW8wTnYveUZmMElwS3pvbWZGMCtNT1F5MUFpMEtuNnp3YU5ZeTNjZHJuSQorZEVmbzJWQ2wvUGh3dlA5OExHWTQvSnNqU2M0dUdVZEdtYzZYNjlLUCtHcXpuVU9POG9iQml4c1NHZTJnNGNWNQorRTBFVEMzZkhwL084NDRIOWtiWm56WDJ1N3hldGRYWWZMekpPbW8rL1JmZ0RpVDVmM254NUx4eXA5MU5XYjNCLworYmtjbllCU1VzamtBM28xeGJVUjFRSW9BUExIOGRlZDhaRUpCNXlRSHNYRVY0akFGWXc3WURLLzdxai9CRno4MworZXkyR0lQbVlSRHBQR1o0NXE0VUpDQkN6UVBzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkJGZWZTR2VzTmVTZTR6TQorUnVSa1JZWksrUWFJTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFuQkowREpyZUo2SlNrRWMxZXJsdWRPOG5pb0FPdTJyQnNWQlE3cjQ2eWJWNQorN1dKZDdXbWQ3bmJOWWJLOCt2bGJ0cnNhelU2bzVoRWQwWjlsMkFJa3Q3c0x3b3Q1N1dQMmUrd01JK2drZi93OAoreGtXUHUzQnErd093WVJ6UlBNKzVTemhlTTdLQjhtWFVLMGorY3B0dGg5OHYzNUtFNmdJNThLL0lkYmF0WDRDcAorb3V5cXhvVmVXOTBKclVKaTVxR2xwc1M1NFNzSGx6YzlYNE9JU0hVOEhoSDdLWHFIeFNqZ2g2STJpcTdjcGNJSgorNkw1a1pFUTZuYzEvdDJKQy9MODgvdEFaVTBNQThRUmFRMzd2UXg5RW1HQzliMks1R3lqYk9tYVZVUGdyVUkzRgorZHhuREx3WVJRWTd1VXRLbDErNHc0REZCSnhSV1RvSVJYSCtrZ01sRTI2NGVvT21NOXM0akRuWW5hS3ZCazRWTgoraUZhL081NXhETGNKeFdVYUIwUGFMYWRGVjFEbnVHSkY0NkI3b01vZnI4V2tDQjNoWnlaSDFsR3BRL2grL3BaQwordnV3dVZ4aFQ1VmtSd3A0b09yRU9EbUVVRzRTNFZnNkdEOEhCdUlrRENjTmk4V3h4c3VWNnF2YzRIYnJQYlhReAorWDk2TnFweXJoa01TOUJRS2V6alpGbDBhMVEwajM5Z1Ria2V5R1UvT0swVVFITVdaZXdnckgwd0NjY0VQaHhHcQorSUQ4SVFLa29tMUxHbHNlVm1SRklSWlZDSHpKWTdwRnQ3K1c5R2JoZnVSSHBLUUliM2RvUFlVQ0Y1b21HQktXbQorRVhLM1p3TDR2clVsWHRDVWx3TG84VmNWaXBtUVFxcHFtVi9XeUIwQTkzUnZQT1R2c3ByT2piSXVFdjVEdG1VPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgMUJENjQ1RkMxRjkwODI3QzI4M0U2Q0I1MjY4NTlGRkFCMEUwQzYyQiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaEY0WGRwMHNNbFNOUUFBQUFBQ0VUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeE1sb1hEVEkxTURJeE5ESXhORE14TWxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB4UWtRMk5EVkdRekZHT1RBNE1qZERNamd6UlRaRFFqVXlOamcxT1VaR1FVSXdSVEJECitOakpDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvOEpZeWo2bUhBR2lNanF6CitrVnF2S01vYW1iUTJXTFVSM203Y3I3VGNVQjRoV2hBU0paUlNhNGVsSUJ3cjB2YXRjRlNJRnRCUXFTT09KQ3NuCitYYUhoVFZMVERzQ0RDY2FhL0FVMlpsRlJDSHJVcmhOVTVSaDZtdGdLbTk3TUxXY0ZFWTg4bkJ4THI2cmpwL3Q2Cis1Ri9ZYWcybjhmZUdzSXJrRXJOejAwVldiZyt1ZjJ6NDFiKzNoYUVHMFlrOEY2S0hPY1Z5SVp2RmF2V211VWx0CitRS1g0YzBWMGJ5UjJ3ZHN1QXhFeDViWS83ZFEwREdRUjNONkZ0L0lINy9KM3pYYm1nSjY1MnhBMGgxNVpyV0RyCithd1pnUTdmRGlxQ2w2eTZmcDFPLysyRFVUQlliMk9GMExVODB3T2JTRHBhZitkcThsSXpKNzBoRHZ4MGlGTnZUCittdnNBNW1mOGhUY1FVV3B6aVhjTk9sa0VKZExWWFVOR2ttdlVQZ3IrUzIyb3FPeTFHMVpQSEJlOEYycHAxNHF2CitZRDBMeVMzdHVoT1RUblBOQVplVjJNdGpaQnVKclZheGJqMEZlaHVkdTVqc2JGTjlwSXlDZlp0ODA0RC8rZndoCitqR1J2R216aVQ3QjFHWGxuTTRGUWcyLy9RdERKWHE4a1JyQjlXSFJIZzgxTGZOL0pYTHpaQXA2bWRmYnRZd1daCitBaUpUekgzVDgzTkF2SXpjbldmNmlSU1ZIYmxwbkZ1cVdlOThhVnBDcXR3cnJJWFRSYktaQnVIRzM4UElEZldxCitYN2hOK21PcFBBZGpJMStaOE51c3h1VU44bXhWdlNYaHBPWllZQTJ5b2FhU0gzQkE3VlZCYk54Nk9ySS9BbXNvCitZamVTTldLWE1PMm54WGpVTDJTZmRoRi94OHNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRExHQ2pKRXNRUUJuc1FUCithdndJREtRSG12eVNNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWVrVE9sNlNqWlF2VEl1UlZUUVNJeHpIVmZ4Z2FIVzl4SER6UnR0NUVsOE9pCitkOUJLSzlXQ0d4WU03SlNCalRMcXp6Yndwb0Yrc0lMTE5sTXFISzdQZGZTVVN0cllFWmg0c2pGeERwbWtxeVlvCitEckc3QngxYk1KRzNMajFXQVJvajZtNTMwcDR6eXUxcm1GbzVEVTQwV253ZTlGTGdlZG82Y2pkclpNdW9mSlNRCitQV1RrbTdVWTlvdzhGYXlyRFB1N21lenlHWGpudkJnY0IxNEJrREx5bWJWb3VCbXZjaVUxL2w3b1l3NWhzZi96CitHLyt4bHh0aDk5M3MvSmJiT1Mrd3lTcy9JUWs1UE5OK1g2YytiQSs0NjVwQi8yUWxRTUtJTmFTajBWbjMrQk9NCitmK3NJNmUvOHZwV05SVC9xc2lWTTA1K2VmMVo4Uk8rWWVoYUlIaFRDdjFocERTSGtYY0J1M3RGUkNuTmpKZVdPCithbE1Zb0FGMnduSEQwUVJTM3Y0SnorcW9nckNsVHpxWFRweU0wMGpUeUoybi9Mb0JIcjh2bU4xWmxoSnlFMlpzCiszNnl1MzBPUExxdmJzNDdDZEkwY2xici96YjNJOGdFYys0RWlYNGphRmJFcTMxcXhtOExSdGh0MGFZZVBFNUhKCitISHAvUWZGR3NhWEFRWjRxYmF2VkVWV2J4WkdpSWJVTFdZUUp3N2NraWpUR3ZiblJIRUhaa1pLZnlsa2hxcE5ICit6cE1SL2xNUHBSQWRhR1hiMXhSb0xUcGswWldGK3ZGakFFSVdVVWJ4alFzSGdmbGh3T09pMG1Fb1lDT0RWY3BSCit4OWlkVVpuSmRHV042dWFBWHdhaFBJVU40eElUb0ZFZ0cwWGYzM1UxalE0VWlKN3Fid3h0MG1SNVNWTEN3Rmc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCAxRERFMEY0MDZEMTIyQzNFNUE0Rjg2MUY5NDg3NkM5RTFBQ0REMzdFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFiREZPQWQvVVorZXdBQUFBQUFCc0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGcxT0ZvWERUSTFNREV6TURFNU1EZzFPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHhSRVJGTUVZME1EWkVNVEl5UXpORk5VRTBSamcyTVVZNU5EZzNOa001UlRGQlEwUkUKK016ZEZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW4xM1FPUFZ3dzQ5V1hIODYKK0o4eTVONkxYNW14Q3NuWVFZNCs0bTlueVhyd2lRZlpieUxUZlBDdzlMRmViZ3ZZcS9ZK3ZVTUljUVB0MWczM0sKK0JNbXlMekk1Z1pGb2lmZEpTZFdpRzZVb0l4cTV5UEFiVy9USWxaWjIvdUJTZXBtVnkxNFJIYVpGcWw5L3pxODEKK2NtaGx2cm1MemNiWlIwekxlTmJ1SHVJemhRM0p3KzlpODVMeU9zRHBtRitDa1J1OVVrMVdNOGdjdS9iYStmeWgKK1BiK3JvWXJNdEkvVGh3YkcxQTI4ZkpBYzY5T2tpVHJUVzJXc1NMamppRVo0bUo2cFJnOHlXRVk2aWlWSXNhVkwKK281WkFFRzFPeWNweWc4VjhOZkI4cnRpZ09INmRIeEt0UURoTjZJYnRjYXY4UFArUnYyUzBQeXVpc0hyQ2JFN2UKK1Y4aTdXeis3eUo2T2sxalhYNjN1cXlVc1dkNHRPYTlKRndrK05ZcHJYVktrRGtvQWZPVU9vLzRpREZtZnZ2NU8KK2xqckJKaGpwNXJZQmtFWkhoNEcrUlBucnd5azRXSzh6Q2U2V3IyMThNTWZTdkR4VStlZWQ4Z3RyTkZ3bHdVUTMKK0hMQ2NvSEhzM3YzNmtIbFVlM2YwSC9yYzZSV1hTVmZpdEp1QkNDRkhwclhrajluSm9vTExwM0hFT3lHRmVCaGgKK0ZXTHBPN0p5MWx1dnlFWC8xQW1ReGs2bVVRdndkZFRickd1d2FJcS90OHNHM2hCdlBxQ3J6WG1NeE1JdUxhOXYKK2FkbFZkYXlMc3A5MEdjanQ3ZlFzRFZHYmhlcWQ3YUZkaEtaNkQ4R2RFOUx5cFpFVitZQXBiSWR1L2xkYnFjY1cKKzB4bVNWdUI5cDBia3dSYU5VT3I0QkFpdTNDa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZGTEtQOFdxc3M5SEIrTFIKK0hJS1BkWUw3SUcxOU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUEE5M052MkhtdEJCbXQraW5NOCtGaGpteDhyQlM4MnJjUXBsbGtFZVdmbEEKK2VNZktRMWNBVVZjMk91WjJqb0h3bHdvWXVmRGFYSjRzdDFreWUxM0hCeFY5cllRcmRCRHYwb0JjSHVtVUJoSlcKKzhudWkrZjM4blljRnZNZVZsdDJFMzUyVWJwaWhKaUl2Q0VCcTBvVTYvb0g4OWF0Qko2ZlNnajRpY3JtUDIrd08KKzdQQ3IvbDBNUk44cytQeWJXbE1wQkNZVmpJY1NyV3NWR3V6Q1pjYnhmdlZkZEhxV3k3eE5tSERoOFE1czRDaW0KK3JpVTJBOGhVZWhXRjZJYnRWekxRd1NZZWliTGZWRkZkZUg3WmNlQzFzek1ncHlBS3pBeDNXZ3BBYUFhYjNLUTIKK2h6WEJtTk1UTnNWcDJoeUpLUSswVlZxWC9EM0tvUTZ6Yis2OE9UMm1sNGE0YUlqNDEvckNLVGh4bVBsb1oreGgKK29qbTlOL3I3L2FiMk5sOG12MDlJR0F4bENaR0V1WFplN2ZnckRNVGk4bmlYRzJZZ3doUEM3d3haMm9aZ2Vta3kKK1RvbFoxcXJOclRNOGFwd3pwMjRRaFhHeHNFSW9MSWluZk51enc5ZXIwY1Jqd0JmcnA0VTVNNU9ET2dpaDFWMzcKK3NYa1psaGZwYWU2R1RLVnVmaFk1MzEyUklCVXBOaWhacWViWHp5Y21TbGRJSCsvQUUyL2NabGo0YU5kc0VpZm8KK29aNzRXS25lQnVDQXJnWEZ5TyttaGFydHNreld3R3F2dnd0ejJreEpMSWtkV1p0bGgreklheTllSU9yNm9WcmYKK3ZxbFYwOWNGeVcvRUJWd3V2LzBHSkZQMUdMN0c3UTBVenVJVlJSYWRGOTZOODg4dFN1bnBqdzVXek5GbHJTTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDFGQ0RGQjhFQ0U0MDg2NzVEOTYzRTVFNTEwOEQ1NUM5ODRERDc5N0EgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWw0YWQ1TnowZjAwNndBQUFBQUNYakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazBObG9YRFRJMU1ETXlNVEl3TWprME5sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMweFJrTkVSa0k0UlVORk5EQTROamMxUkRrMk0wVTFSVFV4TURoRU5UVkRPVGcwUkVRMworT1RkQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdDlvNy9GTHltanM4MmJBdworbkdzQTRnanZveUljNWpjNllOTENScHpWWk1sam5Pd2p0ZGJJcjJnSFlOMjl6OHNBaUhpVHR6VFZVeEFTdFZJVgorSE1LaWxiRFlkTVcrTndhcWNNeStYVWZPUkVFQzV5UVZDZ25aamp1OHF3VFc3ZnUweE82RWJpeTVmZG5GYXBsNgord3JZc3pQdUVmM1EwR2RzMUpLTXo2QmNyMzVEYW9TemIxWUFFWXZkTTR5K1ZTT3VQY2E0TTRvS0gxVzFydEx1eQorVlE3azc5enoyMjk3QjIvL2YrS1BHV1hsTVF4bjhFVml0dGErREpLZW1TNmF3OW55RzBSU3NCc21zUlQ0dUtQNgorL1d2L0R3WE1MT0RVMm9ibjJXUFQ5TTRyRlV3bUQ0TzNyWkdvcWVZWFRvMnBhSXNNMTFFYUdKUTY4VzMvN3dXbAorVzNwNnQ1bVk5ZU9wc2dYMDhCZG5yK2Zrdkl4ZTBOMVl2T0tJeXFMRHFWeVl2aEM5RlhDVGVBNmhyQzFkVnlNcQorL1ZubjIzWEZLRkxRakpWcEtlYlNvWDJDbklkenVPUFdqZFYxZnNHaXY3UEY0UXhKOVppTEI5cWVSZW9XTElyeQorSTA0UXNjamVIS05oenJreHFBTytyVW9iMWxabTJVOGF0SDh4dFFJZ0tCUlRRa1NKdkh4WXpNWG1HN05sYzVuZAorRmpOYTNudDBvQ3ZLdGV4K1JteEtwRjJMdjQwUnZlR2FaUWUyT3ZSYisxK2ZHVStHaVIwbG1adDBEbWZGbyttdAorKzZGM29uRUFhbThKL0VNMnN6WDB6OFdnQ3IxOUtuRzltR1ZYVUdPaU1rejRUUksrT0o1VDVHSE82dnJUOEJHTAorTzE1YWNCQ2dPV2R3WlkxRTlEbDJuSjBFOVJFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdKd3MwY2hZYVE0SWdWMAorYUE3N3lnbmRGVzAxTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFjTGZaeVBCZUdKRkJkU2VVNGZBeHVrSU1yOGtmUDBwZGV2WGpVS1VLb2dlUQorNHV1bm9qSjY4bEdHanZtWmpSbTV5eFA1M3FkUHNMdmFWblZ1OWFiT283RStBb1RrMW1PazhremZVQmVRN1RwaworQUJ5VWVXM0JocVZZNGNpMkZ4MEo4Rzc4czBHcDhGekZHTWNUUVhkS0tacUVodm54TVdJTElEcU1nNFZpWHMxUQorWm1kd0pNaWhzR05DQml4SHlwMVQvQXFVQWYrNHJkNkJtOUFQMUJsSjFTVVQyVVBvaFc3SDlQKzZ6WTVUbCtsQQorYVVSQmRPY253NWVpUVlTZG1ycTY0MS9HMUlSNlplV3E4ZGs0Mmw3SEpnQ3p2eFNzdS9tS05CTk9WeFBoVlBldQorbncxVWZZWXVVSXVHS2dkREhRb21XNVh2NnpyMDkyQ1NUL3lBL3h4b21xZ1RJYSt3bHVXcU9hd3F4QnV4Nk1LLworRGNqbkplREN5ZXB1bEpxOXFxMnBod3VSMFlZcHVjMVkrVlVVM1ZNTzZObjdxdjYxZS9pZ00remVOY3doNXd4dAorZUQ3dzAveWJIV2hMNk9sOHNzWUVielJpOWZvemVOR25peDladGNLYnNTNTBTWFRseStKb211NWNnNFF0WkVESQorK3lxaHM4ZVo3cTBzajRlRjBrMGdXTXJSeFNMR0FEMGthcjFESFFRZ3Q3TlRwbXE1dDNKVEwyQzFSVVVCZUF4YworWU1EYys1VHoxaU9PendSUEhGL2FOaUM2b1d4cmI0NFcxdHZzSUdpNzc1cWpWdWZEVHBqVnhFd1Yvank2UjJ0Qworai9DQXAya1VNOUNkYkk5a09zdE5qL2VpUFBwUEY5SGpKdHI4ejBNcFJDSUhXaStEd1N2NzNLVjhxQnMzTUhBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgMjJCRjlCRjQ5NzhGNEY0NUE0RTlEQkY3MjlEOEEwOEFEQ0EwQTgyQyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYk82L1pyZDVta0MzZ0FBQUFBQnN6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURrd01Gb1hEVEkxTURFek1ERTVNRGt3TUZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB5TWtKR09VSkdORGszT0VZMFJqUTFRVFJGT1VSQ1JqY3lPVVE0UVRBNFFVUkRRVEJCCitPREpETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFsOVZuQ2lHWjRwKzZyUGpPCis1QzdSWU9yQXhRWG91cjd4ci93K1p3YTI3T000V3lyVzVEWGUvU1VXeGh0Ni9xYkVMcXI1Skd0QlJ4c2Z6S25ICitsOG9kK2tjN1ZHV3FFVTJOQjMxSFRGeXpHdG54K1ljdnN0dGVUMndYNnd3SXR5aFdIR0RtaDJhMC9CN09hS0ErCituYnNXMS9VUDgzaFRrVGgrNmk2RXBIM1FGc0NBT1QvckJhSTJRRVE2bUtWVkV3NlUzKzFNeTl4OWROOGhtR2lVCit3YkgvSzYwVkM2UVZPZitucGpPQmg2Y3BCMDE4UDgyd1NaUEkzcWJVYjNHRVcyQ2JNbFVUenZ3UjdQN0Uvb2doCitqMHFxZ0dkZ093SHNyTkhXU01FVnVDaVdTS1hSVS9wUDkvNXBveTV2d1lOVHlXUHVCMjExK1ZxQmRxVnpLM2xtCitSSk5sTzBldkxHOGhGMG5va2NjMEhvcVJXOEVYcHcxdTh1cHpzUUxXYWx2ZDJHaDBXQjA5allVMzgzSjRNT0d0CitmTVFaU3U3WStYTldidm91RGgyV3UxS2xFQVRxQUxIYVlrVjlobS9XMlhzVEVnNVcwaXoxZUNXUEZGNHYyZXRMCit2WkpCOVlsc3lqVjUzUFhPc3huVWlqRFZqbWlVWkVSNUIrWUIxcEhPK1U4V1VMbWk5VGRudm9ZNmVMUVpDZU92CitOV2NWU1FVRzI5dytsblRuZ3lGL3lmUFViRElhN2NNV2dRd29TSmhOOVhlQmxkalBsVHJBMjY2RlFRcHNOOEpICitRUU9aSHNqVkNJUGJzOUg1SE41NjRkOXY4eDdqSkdLN1Zydjh3eUxYS0JXa2U2VmxVNHRIdzdHRTZ6MFNWM2dkCitpZ0FxOENBUDNtR1RvaSt2aWxuc1VieVVpZjhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRm5EY2MxVWhqWmVhZENICitUQmhldlUrOHFBTHZNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWkzbFAwdE1HdkdickFkTUNGL0Q3dHYraUkvYm4zSTlNS3ZIbUQ3MFlXYWw1CitsSWJvQ0NldW8rUG9NYlR4VW5TQWJONjVIOUsrSnExaERsa01neUFNUkk2eHp3ZXBpM2JuVW16QTR3TFA1L0RiCit3Y2Z5cnpVcnZWNFc1anczRkdlQ3I3ZTc0cGRmZW1tM3h4Z0U5L1pJaGpFdVhXN0pNUE5tQVhodWN3VFNiN3gxCitTY2RhYTdFVjllcTkzR2R6cUc1RWhjWTVIUWtGcVkra1JQQ2VjQVhxNk9wN29ZUjhtZG11bjBIU0hnZHlXK0JKCit5a3RMVzYwVjQ3bExURExmTU5URlVsOEI5eDJnK1kyL1d1aHBXM3pOUG94bi9IVk9FK3p2eVg0NXNCeGN1Y2Z3CityeGhCaGQrMEtLcU1XcHpsdm5CaUY3Zlc5bnY2N1hNR0VEa0ZJWkVyeUFHZEVLM0NqZzl3NFdpcEhMZDY2SHd2CitWMlpLazgwVDloNldXZGp1d3lxY0J6dzhUdFNjRG9RbHdobWZ2c1NLYlBsb2hGcmY1U2U5TkxkOFBYZFRmUFlLCitRN1J6SGsyQzZtd1AxK2prczNFYmhpeEJqdlVobVdPb1RPdWZMUkt4Vjh0K0FqR3g5QitvSzhlYXJDdGR2dVpTCithS1FXcUN4VXJ2SU9KVlNMclc2T21ZN2VIOXljODF3M2RDdkRSYWZYbXFtOUlFOFUyK3JDUmtUTEJ0OXdIdTJICitEMExIQmNQUjlubUVpWVNSNXB2SFZxZkorcG1NYVU2UzAzZ2gzeENKV0lOUkU1NnZZL0RNR3VDekZGdmZGWk5mCitQY3ZMbGw4SkRVN1ZEeWh1Sms2QUcxZFl2ZmhKOFN6bk9wZkZMeFpRcnBBWVI3a3ZnQUMrMXFUMGNUZ1RlNmM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCAyNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0NTRCCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVZ3MzVvKzFIa2lId3dBQUFBQUJYREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGd4TVRJd01qVXlObG9YRFRJNU1USXpNVEl3TWpVeU5sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMweU5qVkRSak15TkRjd1JrTTBSRGt6UXpjd01qSkdRVE0wUVVJMFF6Z3dPRGM1TkRnMAorTlRSQ01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBM3VnRkJPR2JMbDdGR1dRTQorR1lUTU5wUnl5b3RuTWZlWkw1U1RvTzVUQm9qSXZZRVA5TkVnZGVYa1VXZGVZMTJCank5Qjg3V3YrNVY2cE9GNworM2g5RFZOL3poNGk5eDZTNVZraWxTMDhGd2ZrYVNNNEpVcUREWXo0L2w0Tmw1d2JiQXFyQndmV2ZnUGRJMU9wTgorenZ4YVhEeEVOUDhkS25zOStjNlErdFNsanJnZzdqZjd5SEQxaTBlTm5XMm1wWExNQ1BLS29Bb1MyUXN2L1NoWgoreDUzeVFKZXBmK1YyZFhyTzRaOW5mRnhxTFplT0RiZmZKQWRmdzJKY2cxekRkWmNRQlIxenhRSE5nOEsvSkpkKworZWFPQ3ZnUVFidVNPVENVM0swam00elltSUc5WEZKclJ1UFdUcFM1SEt3U0hTWFpaSEFhMzJiK2dRclN3clpCdworNm15dmJRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVOGZCYVFQWmlJYWdpTEdBNVlidWJ0OHA1NCs0d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUIvOVFRYQorbkFwNUkxQzZiTDcwWDc5eTExMzdSVnRUbW94VFBGOVVBand4cVNOdVNxdG13cmNpZ3V6YWxzMzQ0ZnU1Ky9FagorcmdTam55cnBMMlYzY282L3BtVnZxRklCSW9wUmQrWkpDZlM0dGtlWHhBWGpSeHB0cTJYWTRYSU1TKzM2NjMzOQorLzI5dVdiczlvK0JRaTVVYjJLOWFZVmpXQjNja0FDU2MxVUFsOU0wNWFST1l6blRqbjRUa2pkUUlyVlRXTkVMNworNHZybHVOUVd3Ync4eWRsRnlkbXNTWlpPOXRXdzJIZk5HR1RUMndpaXJDR2QwWm5zTlZlRU52bUkvMHVFb0FhMworbGEzTDY2RUt1T1Z5TDUxNHZVVGtqWFlRVDhGdVlEdlBhK2N2cDI5a2FsWTFQdyt3eG5aSEpXQnN2T2o3UFA5Yworcmo3dHNabnd3bUQwRFdxTzlWOEkwUHc3SHZobHYvRlFESENOYWphbi92cmcxaDRRR3ladkRIZGtmeVFTbGNwNgorRjkzZ09HTi9FQ2FTdmZGejh3ejdtUEt5NFBuUk1MNWdBU0oydm4vYlU1TFA2cWNLM0VLejREbnhTV3BsaFd1ZQorSThuQ1UvUi9JdXhpVVVtQ1BYTkJ2RlVlS1hBMitEWUhFRjhBVFB4ZHRMRDJRNDNZT0RsM2pwbkFTYkVhSWo3Rgorc0hQR0RrcnJXeWNFY0R3cVRPN0JTVjVVcmpQSVRZeGdzZ1BUanN4VFFJb2F0cVJXem44clBHaGZZOGhqLzBDbQora09ZUFJjalhnZFRPbXJ3YmlJRzAweVVOY21KR0wrU2xyNDk2M0VFWEU3VGNYUXYvNEpIcFZqVGVuNzlCaUlXZworU2FTT2RSSi9yMXFnL1BUTHU0Q0RHSTBJaDlsUndPZWNSWm5SUGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgMjY1Q0YzMjQ3MEZDNEQ5M0M3MDIyRkEzNEFCNEM4MDg3OTQ4NDU0QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaGdBc25wVFlZdlErZ0FBQUFBQ0dEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeE4xb1hEVEkxTURJeE5ESXhORE14TjFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB5TmpWRFJqTXlORGN3UmtNMFJEa3pRemN3TWpKR1FUTTBRVUkwUXpnd09EYzVORGcwCitOVFJDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE2bk1zUGRlL1NoRnJnM2xLCitCU2N5QjVYZFd0Z2RlZjdzQWFWajZVRG0vb3FVR0RBbzJvUTJ3UkpWOGlRSC9CSVZldk93ZkJsVjhMTTNiTmVZCitMMlhHUElRSGZpbVRMOUhiY3ZKdm1qVGlEQVhycGhDTlNmYmZ3WS9tRjl0OFIvdzhCRXRmMFZZWVUxVDRCdGt3CitOcnRBeVpFOGVGY3VWVDJZdjhYckorOFdxa296VjFqc2NvdmVWcVlySTFvVE5mS1N1VmdOTE83SDh0NFdOZEZnCitNcURNWHFseXc3TjVNQiswbDF1R3VWSHZhaGJkeHE2MCtMa2lpMXVqbEZyakpoVzhQVmZlZ3krYWVqNmNSUkx0Cis2YlcrVWM4R2V2WjF6TGFDWnhkUDBnR29hU1VLTFhiQjY0dWtQcWNTQ0kwemx6V0dZL09uRS9pd0VXMFZhcTc2CitndW16TE4vVC9iWHhyYzMxUDRTS00rcmRYVWpRcjJJSk11a1lRdFM1Q2pPYWYwMmxNZC92bEVzYWNxdjBGR210CittVTN1dExLWGtwTmpXeHJwckNtNFBDMktBMXBYY2pUZENEczhDc3FXdEhma25vbkJJOUhYQXJYUnNCaVlVWU1mCitwS29ZZm1tKzBVMFBWK3g3azVDeU52blRGSEdvanU1OHY4RHVzM3RvR3RkVkFjc3JBUzJ4MUQwTC9WRzl2SHRxCitTZ010b3hIMnFxMDE0SHRJYWFXcDRRQm9CL1hnNXBqUGtMY3J2NXVZRG5ZS2RjVTBJUzJXR1JoeUNIQ3U4RFJtCis2L01MckNSQkxmUStpcHNLNzM3Q3BObWNVUXUvNTcwbVIxeElhM2RqUFl4ZitBOWFLcVBLNXRkVlZZU0V3YVhDCis5VytTWDA2MVVWODdUNkVzU3BEVHJZWHJZLzBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRDdxNmNaMmF0cDFITU5mCit1cCthZ1BaNGxhazJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWxJbmFHTWwvUmU5b2w3aWlNQ3pTTG9aU1NMakhRQzhjd1RCNFRkSk1laVNGCitzdG13MUg1di9QS0dTR0RyK0ZGL3BrbFhuUjdBcW5acVZIKzYrNE1VM1lvVjRTWnlYZzJQRU1kd3RhRkFyN2VRCitDRU9Mc2xsU3NYNmFNOE5ZZUtXRzI5NUJKam43SGhqUnF5NE4yMExsWktwR3lTQXFiSzdxeWZoSkNPVHFUVXdYCiszVERiWHcwMlZXdEZUK2p0UmlJaEJkQ3U3VFVoN2krb3FMSmZkK0tab1BVZDFNWW9EU0l1ZUQrYXo4L050TmtoCitJRjdTVDZkTjlkaEtCUHo5YTJjL0FRSVl0RjFZQ3Z2T203RXQ3b1hjK2QyUiswcmdrWHc0aU9QT005NCt2YStZCitjN0srdkNkTXc4WUFrdWhZUUlnYXg3UUhBdHZkbDZLdW1BMmFWUUJZQWsxdW9yNDNMQWxZMWJ6NmZPNEFodk9xCiswUkZrZXNpZlkzK293Tm4vTWc0M2JFZVVlM2kyUFZyNVFVTVd0RnJSTkd2OWJ1ZFI2ZVFKVXI5SERqbUlRT3JLCitlaWpQbDI4KzJiTHZCTitZQXFBZG1GY28zQU8vcjZKZjlzZ2RZeURReEQxVnpLN3B4anNSeGFyRkN6Yzh5SHRCCitiOWJkcmtzaGxmMUE1L0lGNThycjIrYlV6VGM4SkNCQ2R3ei9DUElmcXE2ek5SY2diQ2hoc0UzUkJSNGwwZTRnCitQOGtSQk94dVdvTEtuSUNOR3VYNkdFTGcvMkRqUGFJZnVqYU13dTNkdC9WYk5YcXRuNmFwaVAzellteDMvOHJ3CitzQmhBSnJTUTNNQ0p1ZEZlM25JMXhPdWxYRndpYi9obEtZeFU2eW5XbGgvYzZTeHlKSmZuc0doZElZWnNpdDg9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCAyQTRBNjk4MzI1QTFCMjIwNDY0RUYwMDlCMDE4OTIyNjhCMjVGODRGIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFlRzVMdnVPQm5Oejh3QUFBQUFCNFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF5TUZvWERUSTFNREl3TmpJeE16QXlNRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHlRVFJCTmprNE16STFRVEZDTWpJd05EWTBSVVl3TURsQ01ERTRPVEl5TmpoQ01qVkcKK09EUkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXF2d0MzdGpjY25kRldTS1AKK1FMVDhJM001UmdzN1VNRGVtTmVsY3ZrZjVub1hxZzFaZGpTd1FrSWtqQ24vb1FWbG5jM3g5UmxoNzVsM2hBajYKK3B6TFNBOTlvUXBSQm9nZGgrdlQzb2NPeUQ0NnBsais5OGphblRQY3lIYzBIYTFNaFdVQnhtblRZaGt4V2hXYXIKK2pIZTYvOFFxWU41RmVQdnErOTFZYmtJZTlndGZDWnlLdzhGcFR6QTYxNzAxWVg1MG9lbEQzb0V0OTBCRFVlLzEKK2FtRXpkb201eGhMU2luQW91cUtSTG8zTFZPV0hlTDBzaklWWEVPeFlSNnpQMTlucXl0TTZMMUtnOWhaeis3NzMKK0JicmNxR3k5S2kvMXY3akExTS9INUtiUk9tTVR3TzE1SzB0RmJURDI5WXBxTW5jU0JKUlF5STNKb0IxbWtUUG4KK0dHbFhEQ0d0aHJaRElEZ1J0ckc3ekdXNlNZSjZhanpVRm4xTzJNUlozUytxdGxrSnliTkppUXFtYmNEWHJ1SEYKK1g0bWdRMGJkaUk0emEreXB5amp1cmpMMyt1WVVaS0dtRWxkalF5a1pwTzVJZ2g4WGthOHZhZXBOMmNrNVJKUmkKK3I4WnpOeXFOZ1dGd1BBdE5WeWhzZnY1TzBuZkZtdFNGOXB1cnpmNSt1dG16QSsvWVpVQ1JJTjErNTB5RHZ0cW4KK281bzNucGtKYlZESU05dGM1QXVhODczcVN3Nlorc2lBLzRGRWhVcy84TEp0QitDWENTRUJWZ1BwNldGR3o1bFIKK05IeERSSkg3VnRQNVVLcVlWcFo1aWpua2lRTzRkZUJwdkxjM2FFci9RQnZCc2ZZOEhoL0RtK2hHMlhQeDI2aXQKK01EQ1BmZzRJenFWTjVReUV4YmUra213SzUvc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZEUnB5M1dqNmlKZTFTWHcKKzVzUEFGWXJtendnR01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBWnMvTVdJTzVjb0M4elpyQW9KL3ZpNE5qSXFNUUtPVURSWmpJeTNncit0UlUKK0RueGc0anZoaDJ5dENaaW5xMG5rOXpNcFFHcWIzdkt1RmQyM2JSVUZkaDJNUjBVLzJvTDU3WGdjcWJVNVdYT3IKK3NVYTdVdFdBTk9LMWV6WDBqN0hzTHhpWHVya0JEbUcvVVFpVWtPNUZTL2NNdmJXaVpJck5CeXc2RFMvVnJ6YVIKK1luQ0xkbkRrOWx1aEMzMHh3NzdtTHFyeHIzZ1FEQ00ydGxXcWdQUVhSV1praXlGVkduNURtNVp2eERCTUdMWmUKKytSWXZTT2svZXN0OEJvcUV2ZVg5TGtaajVTN1R3SDZxRmNnaXdTVWVTT3gvM3pYeGdVdUMyTlZ5UWhCeG4xOWwKK2tvZ09XM00rSlNyeUxYM3VaYUl6Y2wybVZLWVdPeUZtRjFzcW02MGlvb0Fra2pSREt0YlBJMEVkaGozVVRPbnkKK2xubjhNYjRXbTJvSHd4WURrM0MwNDBhMkZQdWdsSWttbU93YU5DNUxxYWFTZXJDZWhuNXBRVUVIemJXVHdyYk4KK0RyV09VUm5MRVptY0c2blIrd3VpcnlGMmRGVUJOSit4ZXhoR1AwcnJvd3lXWTd0YklIdDhOOU5yTXlsa2lWSkYKK2NXSk4wNWIxekpqb1hjaHNrdHF5dThhMkZFOTNRTTRmZmhVZnljUzEyd3hQd290NWJmVmhWL2xZMS9Ea0FBeFQKKzArQzFORGYrSXMrNU51MVA0bm5GL0xaMnROTzg0a3AyUXZoaVBUSnZVclk4czNFQnhYeXlIV2pkempSanZNSUcKK1hEVmZ3SWJGSi9oMG94TW54SkdIN3R4YVRxY3RyY0ErUWRZNGV4YkFjQWJ4dWpGMVQ3VDZIQklPZkNOVXRyQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDJBRDcwRUI5MDk2MkM1NDFBNTVFMkQxNUI4NUJGQUQyODYxNTRGMEQgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWJGWGpiaUNVemw1S1FBQUFBQUJzVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1EZzFPVm9YRFRJMU1ERXpNREU1TURnMU9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMweVFVUTNNRVZDT1RBNU5qSkROVFF4UVRVMVJUSkVNVFZDT0RWQ1JrRkVNamcyTVRVMAorUmpCRU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdXphR2UxU3UrV3JOZmdhWAorb0FGNDRvb1JQVXdCMmFFbUNMVnE2SVpPY0xVaWZ6czlNekFvNDBrUkgrSmJpVUxmUU15NjNDTGxBeVh4Q2pUNQorcXRtNUZOMllqbEhIWHBvclV1akdJd3JhanZVS2lXaS96Q0VMY2h2UG9SSkpCQVhjUTBVQUtXTFRHbmYrSU9zVAorVnFhTlQwVVFORENUMWk5SEQxTXBsT3pJY2VoMlZLNElIbzRNUXRMSGl2MGpUR3ZPZno3RGsxU1dQb3FOZ08yNworVFF5Q1NKWmpkMmtTQ2lDWEtnT3FNd3lkb2gxS3VBRlNXMjdzUWZqbUFGREQyViswMUlZc2hCanNCSkRtRzcvcworbEQ2ckJKOG54QzRxMXBhU0M4YVI5ZTN6d0tLeGYwVzNPS2VRVUt0cFdZWFJFOHFzNGVtMktTSlo0bm0zc283UAoreUgzUUJlN3FwSDh2TU1hSVFZV3RBUlNmMUNlSkU1WmtOWUlRZWh5bFhzNHRCQTVNc0NmL0plQWhudGRMU244VworU1I4ZGt6UkhHa3JvaWZucHZpSnp4Wk5Kck1aUDVGd05wVGhPOFVjUEk4UVNPNVVsbm5MMGV4OEJjakttcWRraworMGJGOGtYbS96OGw3TlJzeUQxQ1lYcXNJeVZSL3NkUXJUdFpQek5hYWo5MDNWVVAwT1V1NlhpdDEzSHZibzFobworQ3daajh1STAwdEg5WkcramhtSDc1aGZsd1dKYisvd2JscDU4aVVaejRaNmozNm93ald1Yy9XNjArQ25YcFFqWQorUHRxalpNUk1WMlJ5VzBoYkdUTTQyMkZyM2VHekIrRktsc2N3YmJxaGZQUXNOT0JxSWVac3pFR3hpZmlEZkVJMgoraXF4YW45MkJzUkVMci81WUM4aCtuMXZ1YW5zQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9KZmMxbFpLOVNkY0hpRAorZWxHU3JFRENNM2NnTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFSa3Rlc0ZLTDEveGdNek5CcmkxRzJyaHNWQksxa2tidGgweUk2NGF6SHpxaAorOThCcXhhbEl4WXZESnZ5cG1MZmFwcWNLQSthVXloL2tmYTE3bXlJYmFiNkMxQTI1V1h5cHVORjhheWNsUVdMbQoreWlEeG85TThibmpmMWRybWRpYzRoNFJscGswMGZQdysxditEaUR1OXFoWlBEeXlPQzZYUXM1TjF3em93dFFlWQorODEzM0g3ZWZGLzFqWHRvRE1zdEFCbVNSa1NHSnhhd1phMW1Vc3ZoSkVwT3RsNVp3ajY0cE1UL2VUNEh3dk1mVAorZ0VwT0svMGVmN0hrSm5GaVBBMEtVRldxeXpGVFR4ZmtEblRGY1hhVzFBS0lOTEtxaS9GZXQyVnJiNGhjNzFhbAorMUszL094ZW9FVXRaZXlJTGlUVDlSVW1Ta2t1L2ltYVNMT1RWYm1COFFHYXRNaUxtTU1YOEFoN3VDWjRab3U3YworencyRHJ4M1NtQjFzd2tlL2dPWmZpSysyZVRvVHg5V3k0OGdTaW5kODZxc1ZlN0N2V1R0Z01VOXk4WDFVZmw5RQorNlhMZUFwN2ZQb2NENzZqWjI2UUQ2Z1ZyUG1yUkc2WjVScVhDR2Npc0hnUUtLSUc1RWVkR09JbnE0WnRzSkoybAorQmV5N2RTcVE5ekwzeUxTMEhPNlBOMjJlaDZZSmxNUnVLUEdDNS9tK0dsMlVKR2VxbC9HNTJqQWVSaW9IMDdYWQorNlhBUkt5TzNPSCt4Mk1ISnhPTkVXNk9nOFljaXM2N09nSjkzZ3AwLzJzWVFUWllkWXVGVXRpaEdTc3AyRC9wbgorZGpNZDRYZzVBYWhkbHJTNEsxcHdGY2s2dFhtSkhVWkh3ZnhVNWJTcnRXcEFWZE1xN0pvdHpGb0lmaEQrKzdNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgMzczNUREQzhFMzAwQjgxN0FFQkUwMzUwM0E5MkVEREZERjFBQzcxQSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYlgzZGZ6NkhzUWR4UUFBQUFBQnRUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURrd01sb1hEVEkxTURFek1ERTVNRGt3TWxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB6TnpNMVJFUkRPRVV6TURCQ09ERTNRVVZDUlRBek5UQXpRVGt5UlVSRVJrUkdNVUZECitOekZCTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFxY0FtZkxWRm1HanZ1MmRECitBVjJrRnVJZ01MZEtyemdFYkRrcnpBMFN3VjJiZG9aeWRqc05ONGR2VGtGaDJkRGMrRlN4U040ZGlnTklac1kwCitFVDFQZVFyVnFvMFFTbTd2M2ZQV2IxQ204SWJ2dXVSdlU5MW13OGZmcTN4Yzh4VjBGOGxhVWl6Nmo0dkhFQ0MvCisxN2F5dXdKcytHWVlFUzNJNDJTN2VEWHBWSWwyQTZYMG1XS1JwN0VvU29yNGZEWW45TENIenVtRjdDeDVqbkZWCitoZUNINzFxT0RreWs5UkdjRlJQUlBjbXVzRk9rV24vM2pmakJaTzd3U3ZUVDQ2SGVUT2N1cnBKQW00WnI2bWVPCitkTzlybDlzNUVseFR3Z2R5b3RaK0VqanY5eHQrdjR4MGtlQU5UdnIzM0h6bnN5REdQMWRxTkNJTHNRck5QQy9oCisxYXE1dXhGWDNucERySnJjQkFod29abXhzSWxjU1JieGVrZ2dGaXJJTVRzK0VaL3BXVlBQWkRobHdlMEw5bktNCitWeDNmL3VTN0VtdHV4eTlIN0x4ZW9tV2hrTEs4c1VvNUJ1TzJIcTJmQjZiaUorSUxDdUFkMTNLeFNDSjMwQjNQCitrUEppbGVEMDJOejNHbHZOQzNZYjhDU0JRaFJhc244eWEyUmFCWjJSYVRMZVhQazExWDJyUmN3RDJNQk9JeW9LCitHTUx3NE5ucDdJbVViS3J0b0sybzNLOFJLOHJPQWJOczFYc2tBY282QnlHRXZWRXNEZFIwMmFGS1VIU1Yvblg0CitIZEw0OFZvZkdQa0dnd2tmOWRiTVVrYkg5eWZWTy9KUXZ2djNhc0hqNzdTY1UxZmF2cFJCS1lkNWxGR1VuWW05Cis1WFVKTUxCTC9vWllHazBPbWtCaW91eXZxSWNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUGlMVm5BSThlU282TXB6CitKUGNaS2lRenV6NCtNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUljNVBYYmRLeG5hQWM0WStJNkI1ajJmR0dCMWFBRnhMUVJxcnlKZVFsZHZxCitNNXJ6eGV0QW4xdlBSYVpnM09nc2xwYWppZWRWODdSM21pd2hVcVpPV1B3T0xRT1k3VkkwQ1cxQVFnRFlURkJJCitEcksrRnAvaFdVMGxnSXpFdS9sazRUcDhLK0hQdUpIUnl1d0pGTUdkZlI4dzdtWUlScnN6Zm1NWmxnVlNZL1J5CitpL3B3a1NRbHA4NEtpUDZGUWZ6TWtEb2FETnc0NTZNZDc0OFA1SlJTbjJGNUExVWVTSEVWUnVRVDMrdlh4NVl1Cis1clIwc1dvZ3lCWnRLVDUzSFA4QmF0bkN0L1N3dGZVUDhJTnExUEM2ejROVDdCelZzdGRUUmRRYlJTZjhzMi9tCitMQ2R3b0pVckVscjNOb2dMSUM5aHJGYTgwdTBvdjBRV3ZJanVGbWFIcEZoKytHb1d5WjltUHA0eFRrMlI0S3NyCitwdXhGSnU2b0ExTkx4czYrNmY4QWlnb3B5QkNTdnpQNURGWGxaQktrNVM3c3FwSFhUbHNxTUhoOTlna09kNmxTCisyeDNHWUpMdDBRZjlHN2VRblJ0M1gzaXJZdmcrOVBOQ3YxUm5yR0hVYnBvWFM3NHprbEcvQXZoUTQvcDBIQ21jCis2UzBjSzVaTENDMTlUbHRxa2d6Ym9oWmpyZXJRVUFmbUFjUlZDZEZMaWdUS2tPam9XVW14TERRaVN1cW1xdFE4CitPRFJEZ3VzbWJPQ0doM2orR3BTRWVjSkUyV0kwL0pzQkV0S2JsOUdOSGxaenJONEFLL2p0REx5UVF3TDQrT3l1CitkL2d1YTNQYW1VSzNhWWcvQTNrTHl1a1AyVURuZGlTUnN5SnNjZDRFVm5aT1Y0OHFjTVhwRGVybm13cVVKMm89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCAzRkUzRTNFMDM4M0VDQjg5OTExODE4OEY0RTJCOTY0NERCRDM5QTNDIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFoSUhSVExiMm42RHlRQUFBQUFDRWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14TWxvWERUSTFNREl4TkRJeE5ETXhNbG93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHpSa1V6UlRORk1ETTRNMFZEUWpnNU9URXhPREU0T0VZMFJUSkNPVFkwTkVSQ1JETTUKK1FUTkRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWsrSXh6eW04RU1oWVZOS1QKK29iNTlBMldhN200NHI1RmJzL3YyVXdlb3BmYy8yUjZzTEc4VmZ2MjRHVy9JSUk3dW5EZis2czZpamk4T2xMMzYKK1VMNmlMekgrNnRadDdSSm5wWnl0citJeVIvSHJYMFhPN1JHem5ocE5CaEp5aUw1cXI5OFBUUlFYNHFsOUVJQW8KKzJsZzg2VllCN0FrcHZDdmV3NHN6M0Y0WVI5dXVEOUxCU25QTWhtbG9JaXhSdjVCa1VwcFhSSmp5Q3RhUlZJVkEKK3A5SlM3VHM1d3RDY1NUK2NhL3QrQ2cyK0lKQmZTRkNVVUt3aE1YTHgxVHFYb2dTamF1Zzk1M3VQbTNPTXA3dmUKK1hEM3R2RmlxQVZvenhxeCtJL05rMmduYkd0QVZwRDR3S21BUEdUU2J6a2NhQVdPZFJIZmRVbm9tYlF2U1BBN1oKK1ZZUElYUzJteFU3ZXN4R2tKNm43T3ZYVmw5SGlJa2E0UGJRbkR5SVhyL2RDRmtpWmRHUytsWG80WURiQ2N4OXoKK1B1Vi9lR1VqNmxLdlNuK2MydW5rTzdLRnRidUJ5clF3cDhnTFo2R1k1SGhuNFFXYjRDSW5lQjVlU1hLYjNtQnIKK0J2NitDSFZ5NEVUeE1ITFlEUHVMRTFHQW9VRUxEZnFiUnI4bFNnNE1TZUFEbDUzbGY0NVEvTW15SlpZN1BmczAKK2M1aEQwcGlWb3RUUkhGUzRIVWFMQzgxTDlFcVJqUU5NalJnSlVUOW1maiswL1IxZXNibktQU3YxN0lmUlFYaXgKK2U1ejk5RytVa1YxVU8wK0NoNVI1ZjlvOHp5c294clc2OXR2Uk9YYVE3T0l3ZFZWTGJodkhFMWVtM012Uk1WVWkKK2hoL1ZnN0c2TllkcENmTzRkYUVTUGF0WTFKa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZEVjlmVjRlUmIxeGdlamQKK3NLYS9maDE1U3FYMk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBTGlBY2h1bE1JN0QycUdET1pHa1c0NWN4ZGFQQW5lbjBpMEVPTnBOdlgxSzcKK0tvVHlES1VxcUpISlFOM3hEdTV0WE0yWG1OQUFLWk9pZlR5MHlIZEFoQ2s2dWNOODc2MVZxQm9odjhGNVhBM3IKK05LOGpPakgwWHZFUkJoS2NUd1NZYXE5bW5tejNmMU5LQkFVTXZVR2RKcGZnb05QWlFtTFJ2QllXa1hPdUJKQTcKK1h1Y1lYT013YmU5bXU5dS90SjlkYjUzWnpldFBoU2c5c1B6QmhaUS9vZ25kY2hCWUdQa2lXZXRod3FhbmlCbFkKK1hZUzhoNjZmelgxdm5HeDB1MGcyZW9heWJNNytBZmpYYUxkWTNndUIzdnVva0p1K0xiMGNxMGxkQ29KZUtiOVAKK2Znak03eTBWb256cEFWaTZZOUhWazE2VXFEdXBxZXFyTmtJRG1LWU5TNndic0xmbG55dU5jYmFHakxTV2p2SCsKK1NyS0ZBN1owSDlMalBDdE4xemkxOEh5TU95bUtLbGp6TVByazU4cElMbVJXMEV6eVk2NkpKcUVnajd3WDZTT1YKK3Z3L3paNXpOVzNZcWR1bGJKUXRvYktrZElCV0tBbVhZZml0N0Y0UGI2bnRTSmRBMGdoYUtEYTc1dEM2SFhHYXgKK0xrS1FyYmcvZ21ON1h3RWhuNjl0Z011MzVJM1huVE5OcDZlZW9BaklkNjByN244L084K3VQL3ZvdTRTbURudzUKK3ZPbkhQd3FvZjMrK0NVd3QvMUNodDFzNzBqYUVZdGJocU5YUXVFNFpaU25iemQ3QlpwaE5KZ1BRK2V2WEZiaVQKK3B0WlJpSjVSWHptKy96Y0hjOW9ZWGIrMmJSQ0tDc1c4MEVJNmVWaEtKOEZmQ3pTZnBnNGU5WHF3UVdsYjBzWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDRBQzkwQ0VFNjhENEI1NzI5REU0MzU3RDJDNDc1ODg0RjQwOUI3QTYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWVMTUpNTmRTVHE0THdBQUFBQUI0akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlNVm9YRFRJMU1ESXdOakl4TXpBeU1Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwMFFVTTVNRU5GUlRZNFJEUkNOVGN5T1VSRk5ETTFOMFF5UXpRM05UZzRORVkwTURsQworTjBFMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBOG83cC85MnNFNkw1UmUwWQorR3dZNmhRSFFYMG9WVVJTQkQwL0VwUGllbjhpTlpBeHgxUSszTkVjTUpYVzh0Nit0QnZ1UEZ4M1Q3eWJqVHg3dgorNXpFSndLMEg5dFlTTHZtczdJMHpBczByRlNxN1cyRW9wbFpTMytVRkFLTUEyV3l4NkxYeHlxZWVicU9NN0czegorL0JheGlidlBMVzNaQ0RGVFlTVVVIQ1pwaVJJT09oTnE5d3d3R1VadnM2dEM2eCtIMThPZDdUYVdoZk40OUlXeAorTVh6d2xuRWdnT1J4VEtzNkN2NE11M0M4SFk2eDh2SEppZUp3ZmgyQWZPTDNLUXlWczFwV3E0b1k2OG82dnBoMQorVjJscUtuMGpFQ0IvNTRRS1lKODZtRHpxV2x4Tkp2T2kvZDNhQU5YODJwUE5WRWwvNEZVdHlUdW53WGkrR1NVLwora0VPR2VCdWx5NTBQUGtEOUZ3Q20vWHRqeDc4SDBzZld6RGNnNkxRQ2hlenVrRTB0NHp3SVExZTZXK2h6VU9ocAorNFZkNmliY3ZVVXFpbVFXTzI2OUl6U3ptR0hiZFFmRUpLdVVVMStTS3ZDMzJyOW1QVXZEUCt3NjBYNkxtdnZLSAorbWZ0NmJKU2NXV0dPYnpORTlWZ0lPakhzWWgrSXgwdXJOek9SMHp4U1ZEZklnSkFIVmdoRFIraGJrL0pWSDRTaQorNmtpY2JES1h2U3JTbE16TnY5T29GempVYmFFZGZMY3QvOVZ5czFUMW00ak9naE00YjI4cExrRHNLZDFERENUdAorM0Y5VXdLbFF4WlpUaldxRlQ5ckc3WGU4enRneWduNzFXLzhqV0FER1J4TE1rdjh4eDBURFVwaitzaklycEdZQQoreHpzeTlaNFpJNHFPdG9sQlcwc3grQThyM0FrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkxXckhYblExK1RPOWh5ZgorTXRVRDZnYldPTmRGTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFWZktCMHVqbXNlMXBEamJEZ1kwSHRsMGJ4UWVJcGR2SmNMNzAyQm5KOGhTWAorUWd4SnBzK09rdFN4U1FpMjZrZDkrWk52T2VFaW9CZ0dDWmNDb2xEcGtISDFGY1kwemoweDhBMk01OCtiOVlWbAorQmpLM2VFc3FCNkNEZFR0OEQ5NGVvYVZNdnJScVROVFZqc2xaYlpQMjM5VVJxR0k2SEd6QTcraThXZjhFbmpKbworSVg5VEVkYzBzakFobUFOY2NEV2d5MGlwaHpIM2k2eUpZZkJyYVVNRDYyalY0eXhOYS9kbmxyRFdkdnQ1NDdKcQorQ01jWjhBL2VMWGNEZURmdGQ3S200MWdtTmFZbTlYT1cxbC9uZVROQWNycHNzQjdVUkZObzg3bmRtV0FVbFNNdAorcURNcS85SjNTT3l0TlJvaFMxNHEwOHV5L05tdDBvU2IrUlNBM1RzSUJ2aXN4SFlKUEN5bWlsNmhIdzg5QlEzQworcHBxV1REZG5wRXQyaFlzVWYraE52Q0lvZE8wTnhhclgxWGgrQkh5ODRkK2RyKzlQNlpjdFJVbEExd25rUTVhYgorbGRobG9zMEJBV3dtQWJab2QvcG9lWVZJYUJUYXVVL1hZUEp1UytTN1lFSDRyOTVHUEIzNVZLM0EwbXdCNENObAorUlNxVFg4NUFxRGRkczFuZlFraHkwd2RRd0dXVEZmMHZiWW5ueHRreVYxTmFlcE1STDVYVWt4a3NSci9BRjlocQorSnBicTBXZTlUUkd3cWNqOUVraUxIVzd3UThlaTI5RGo1UURJQXgzZC81dEdiNURHSjF3MUw5VG0vdElTK1pLYQorajd2bC9laWQvYUVTRyt1VHNJeGhiNjNaRTg1alM2bGcrZjM5Yk1jTFZCUXZRUTRoZ08zUHMrWTB3eFYwMXhJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgNkRFRDcwQUI4NDFBRTlDMjJBMDM2NDdGQzhEMTQ4MjE4OEQzREFFMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYkpvcG5PdURxUWQwUUFBQUFBQnNqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURrd01Gb1hEVEkxTURFek1ERTVNRGt3TUZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzAyUkVWRU56QkJRamcwTVVGRk9VTXlNa0V3TXpZME4wWkRPRVF4TkRneU1UZzRSRE5FCitRVVV6TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE0R0ZUcmpkK1hYVkRqQVpHCitFR1o0L3hNZE1yNy9kaXViVWlsa3JmQUtabE5YMll3Wk9UTEhVa2g5Tmx4dHRkUkkvUEpQemplVHRKUURFZjhiCitzdko0czkwMlFNK0x0OW1tck4zS0h1ZENpOVNFVkc3MVhwelpmOFJPVXNPelpTZGFUdzdKczllZjQ4MFo2a1FQCitZTHpqclYxbCsyMHhjczUvaGlvUU1iUXR3ZVVYbytVTk9BdzRsMXpHYTNMcTIzSnlzY2dXbTkzQjQyMnZ6MkROCitLL3RWRHloZEhtc3J1SUdQRVJ0ZmFiRG9yZ2dyTDhmNU1HR0Njb2kzQlVMaFVVeGljSXZHKytWdndWVi9RckY0CitrRVlFS2xqR3lremVCL2o1Qm1veHEydWVVSDN3NDZETFhTSXdiUnJueG1seUNTZ2dXaFdncHYvZitzRGlmRnYyCit5T1ZjNHhXT1dUeFo2MGlyaE9IQW9TdkE0NWEzRFllNmQ1ZzFneDJXbkxyYUptY0wxUXcrK3ZTRGZmL2QySXRMCitjTGJ0Z2Z4bmp4U0xFbVpnaEI5WUZIeEJHbFlCdEtoMXhtU3hBR3EwbHUrNE1RNVQ1R2oyclNhVzdtWUI2cFV3Cis2M05iRzl0cklnWEtPRVZkc0FDMm9URkpLamxITXd3SzRmbmh6WWIvRUk1WDhOMHFFTVV0WXVSVHZ1bEl4b0kyCiswajNENEIxYytLKzZhSW5yaWtuTTgyL3huaFNLZllNODhFTWxLNFVBVks1dkZNQkVialkzUGxvK2pTQXFJY2RwCis4V3VwWDJ5dWhVdnpXZGhYTlNId0doQ0Z2R3J3WEdLOE1rLzlEandLSzJjWUp6aXJnRCtlL3pkb2hNU2h5b2xVCitHMERqSCtyOGVNR3JwNkI1M0ZIOHU0UkhlZDhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTlRNWXFkTHBiTGNORmJxCiszZzQ4Zk9HZjVIUjRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWlOcUdFVVByL2QvQnRoSnltTEFydm42d0VUcWg3TGVqUjlzdHMrN1NHbWhtCitnMVc2bjg0UkZVTUtNd1VybjY0bkNYbm1idVZSNjVPcjh4aTd0dHlqMVBFTSsvRkoxVVY1TTI3U0JJVVppWjJJCis0UzV6ajZ6VS9OTmRhdjEwV1dDUzVMemNHQWh4NFY4YmpzTFUvRmV5SlV4bGI3MWxsbzYzanNLaG05Rk9Vb3Y5CitDNWpnSFBHbEZDS1RWVVl1dldjN1ZtT2ZzZDh0S0ZieEZMenZxOVlielVka080Z2lKY0V5cCtYMmVRNmROY3hNCitzRThBZjF6VFl0dkhTb0dtdk5rTUpLUmFZYTkwM3djMUZmdy9jV2VlRm90eG9pK0Vra2xZY2VzMG1SY3hvSEY1CitGSnBlZitqL1U2OXF0enBjdm5JcUQ2SXYwWTY5cnhLd2tCZkF6dHlidXBrNktLZlU3ZVVQbmoydTVUQ2tRcVk0CitFd0FpSzFQektYT1I3OG93Mjh2ZHEwN2NaSEdnNnpFUUI2Ulo2UUdCUDdpOTdYWTExNFV6Qm5meEdJYWJoVVpLCitvQzg3aUp4T3E0RDYxc1phektaVzZvM3lkenAyV04zL1Z2enNTajRLVm42RzdXcWVvY3VTSnVncWVxTFF2bk5iCisrbU9CVUJmZDd5bTdqQXdTREMwdk5qcDdiVFNDQktLbzJIZDV4YTZMR0VlYXY5OUoxYm1vcVIwejAwZWVKVG04CitMYjJRb3pLUkFKOU1wWXo5WUVJRjUxSUljdE9OUkVKVkNJTVN5VUI0dlJhSk9xaVNBelJyRkxVeVc2bmt0TVRECittdXhXYTBFK25QVGxkZVlwVExCNVZnazFSNHR3cDJGMWcvOURhMVViaWZQMHd6Sml6cy9VOFlkVVFUVS81a0U9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCA3M0FCQjgxQTAyMjU0NTYzMzdGMDJCMjVCRDM5RTY1OEI5MEYwMEZGIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFoYmRiVGQ0NVRld3FRQUFBQUFDRmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14TlZvWERUSTFNREl4TkRJeE5ETXhOVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDNNMEZDUWpneFFUQXlNalUwTlRZek16ZEdNREpDTWpWQ1JETTVSVFkxT0VJNU1FWXcKK01FWkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTRXOE9jeVdTZHphZVppTWoKK2pZMUg2UkFWcDloMDRXL1dMM0t2SVRFUFZVR2tWZEVvdnlrelZnRFJmWkt3Q2ladk5WNi8rOStDN3RqYVpHTUcKKzkwUHAyTXh5cHl2S1czZEFKUUpZWGJYOC9kemxoZWpEU25RQ05qd2NrOGtzWlF5VVcycDdhdXZKK3dEUDRqaFIKK3NtazhvT04wRFpVbDcxdWlPM1lKVkJid1lHdUw4c0VBNGFFUzF4cytvYWtqKzZ0QWJyaFp2aEpRbEp3T2RJNzMKK0hkY1JIeElIR3l3Yldub3h6U1dZNGdSbjFRQ052ejdKMXFkUXozSHZ6R0tFc0g3L2hhdU4yYWNuaGFJaWVCMVcKKzVGeEN4TTN0dGhSZ3plbitpWW9YTDhBdU5mNmFXdXZzOExwQWxWYVdxaldZZ3BpS0psTldxU3J4Yy9zdmcvUWEKKzhhTTQ5Q1F5ZzdZck8veC90T1BZaWs1LzlnTnFmTXFydHdNeHVSNHZzczZTK05rdGxrU3JBVGR5ZGd3aDA2bWEKK0xxOGxYMDhiWU1SVXdPRFhoWURTUy9yTHgrYXZBMmpCaTVxSUR3NDNOaWxMSkRBa2V4N01yazJkU1JxcUZHSU4KK0J2NmNlclVwRVNXYkpnZ01wL3Q0NG84MTFJd204Tlk3dkMzb05QcTdQZzdPTTAySGNzQmpSbWxXV3ZsYkRuYmIKKzRmaVZhcmVVY2c1YTRNTWlScmorVmNGcm9iUFJXalVCQ2FPYTgrd3gvQXNxUlV4Z1FJU25qc2kxRUU1TFF6UTkKK000U3ZwcHVVaGY1cUd0M3R5ZlJoeEo1UzdBbktmRDBwbXRPSmU3T3p4U1lKWXl4TUtPN09FMUFJc0IxNEVEQVIKK0h3UEFGbHBDcW4rbXJRRzNpUVdNbXQwU2EyTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMVnVobGpObzVYN3N4VmYKK3Rqb1l1VlRrWlZNZU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBYzZDdlBLTjZFRXg1SEFtUTdrcTJFUnlSZERaRFd4WFNuWXBmOGtrU3dVbloKK3pqTm9LWWR4aHYrUHJLOVgyUGpYOWIvdXAramc0RFlqbHBQNWo0ZE9VSVYxd2x4c3NieksrV1B3d2VOZ1ovUGcKK0lPWHlRR2dXeWZtZ0dpdm0zKzZTbTl6cCtFZ2lTZ3J6aWxUeDFuNFBKcVI5WjJkMm5nVElFTVovRFBMYjZ0YmYKKytpcENEQXMwRHRyZFVwbWdObzluVEc2UHVRaU4zTE1zYmt2Y3U0Y2VSWWRtU056NFA0cVZNVjFHaXdQSHB3bkYKKzY0Zk9nSHNDQUVocWdhVHVIa2ZCTEVHQldJYUVReWlickZ2QjRndURSVDNoelBkTXJNdHFhbjRoQTMxZjJDQTUKK3VGall3VW9tOXNRRmc2eEdQNVpKS3hwekVEbzRYWnNrQmRGUHRVQzlYbjJUTzhQL2dreEExL1JtVUNVTEt2cUYKK2IxRXQ5OC9jTTZOYnMzQjM3Q3pkN0hUbzA3MlI2QW45VHlsbXYxOTVyeHhzU2tXcS83MVRNN0JqNDhXd3lnQkQKK2NET0Y0aXVNOWY4ZTRTcEZlYlg5UHMxazd4WEJzbGRFcXBRMktxNXE1RWR3TnQ3b1FCUDRBZ2paWE5NWUJMSzgKKzI1K0hIc1IwaUhnVTZWUHdiTEI5cmpxSEV5RUpuSzRERGY4UVNtNzFGSVVDWWdLa09uSTU1MzV3YUk4TitYQzYKK25ScjFzck1XcmFyangwcjdDdXVBZ01ZUlNWUFJwbDA2bU51cHZRNmpQalY3MFJoYktuRUZhcFJqZGhVS25ZSHkKK3BNbzh0cXpMNGhkb2MyMzU4a0dzc0JqTGpGL0JXT1NWUFdOakFiK0dST3FEb2VTVWZlcUdyWWdoTTZWeW9Gdz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDhFMUYzQjFFMTI5RDRBREVENzYzMUY1QjRBMkI3NTgyOEFGMjgxMjggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWVTMWFILytkWXBaendBQUFBQUI1REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlNbG9YRFRJMU1ESXdOakl4TXpBeU1sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwNFJURkdNMEl4UlRFeU9VUTBRVVJGUkRjMk16RkdOVUkwUVRKQ056VTRNamhCUmpJNAorTVRJNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcjhJbFcvVlBUeW0rSDNGVAorRms0WjhFTlFKQXZSdVM5ZW1kQTI1QWh5OVJPYyttaWkvWWZ3NGZEV2MwYzZ3Ykd1VXkrUUVMZjZxOGsrdDZ1UgorMkQ5Q3I4WlhLdVhtWnp0OHppRy9HdFV0eFQ2aWRqQTFERVk4VUNnazcwNkRuTCtZaXZXWW53cU1NWUVXRWdpcAoram1NV2s1UzNSL21XWjVSVnB0a2F4ZXl3Z1djWW1lMDA5WHpmMFhreVpXSHd4ZjdESE5YbURLUDNvNUUySCsrQQoreklKQzVLZmh4by9INVlxYmRTTXZmTldyYnUza2FUS09pVzN5WnFLMmpvMzRJdU92TmV6R0NaNC9KV2VuYzNmVAorRk9ub1puVEhRZDdPaVEyMDMxSzVSQmwyZ1FnTGlqODltbkdTT3BpWVpMRXgvRUxPdHNPNnlOS0pPdXF5VkFaVworYjRKRk4zWDVuNEhxZHBjV1ZjV055UnBqRkVoUHRjTG9vcFROSG00SDVFeEVZSVV3OW9RQS9tdXNWLzZZdFltWQorc2I4M3NvSWp0empZcEZEenJuY0treUNSZFpUZHFYVmN1WkZGaTZxb2xIUHpmRm85UldVMVNJOEltMi9UM0hwQQorLzZPbVpWNFpXaGpnQVhvQU8vS1JkUnJzc3JjeHZuSXB1WXd2alk3Nnh6YjJsS2JGdHRzcjBQdnAxVXJpSCtZawordkI5eDJIbnl1QTllczE3eDg2T25rRndIeDdRK1RZUnZJWU9vdER0cUxBUWF6Y3lhVnhDakNGWE1VdUNhVWNRNgorUFc1SkZYSjdoWk9JWDJVMHpkRXdLRmx5MncvZkF6VlhpODhwU2F1R0o1dmNUSHlZNWo5SGlIMkpiK1pXbWVNTgorMkNVcTlQZkJITFlOR2JFWjlxdVdub0pvcFhrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNXeHdOeUFqakFIZC9nRgorZnBVSmlncGowa3dITUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFNUzJDUFJwR2tVVnArck13Q1J3T1BjbTd5dExpc21uUit6K01iMmp2NXZDUworQUwxemVpU1lGS0owTnE5TDVHbG84anZ4ckVFOVJSVG5LMkMxMURsOVJRM2kxc1JvcVM5NVRBZTRWdUtzQjArbQorUzhWVFYxYkNJS3ptSU5BYkZseTY5cnBUMXZ1N2loaHF6Rm50dG5tdGt0TW8rdzBiWlZVdFE1ZUVoMWhqdXQ3MAordVliVlRNWjJHMXNRWkVZUUEzb1ZRemp3Q3VPVEtnSkZBVnM4dFYvTFNZZ2pERzJSQm9OZHhlSDVtdExaNFFaMworVFFwMis3T05paGZTUS8xTjBsdldQQmJDZFNPdHc0QzN4VjJjRVhjU3JKS0tYYVZEcVlkREpaTjdKanlnR0ZwVQorTnpiOFBaV3JBODVHK2ZURGYwUCtrVVRNVTc0WEFPQWY4NzJJRnpWcG9idWdCMXlYLzB2T0pqdHloMWdtdnF1ZgoraHpVVmRLdVJJVUxCNE9TZnUrNkVKc2QzVHJrS09VTWlEQkQwYjBiU1o0SjJxUTNxZFN4YnA5Q2xIejhjcHJsKworRDlJSTM5NHRtZTZ3Um5qYW5SNm1yV1FiVXYwZGkvcGNPa3VYMXloTlR6T2lTd1RSUXJZODV2U0N5ZTdSYzREUworNlMwa3QyMVRjdmh6eTgyVDkxRVdmaE9ua3pRQW1za2sxeUJVbktBS1lLeml1a3Nzd2d2M3g5NVc1bWZ2TU1nMAorYTg1WlRqTWtVTWU1aXBkZ1pBSmNCY0liWFlrbVhYTkVOZXJHaXRFUVZtcmE2elJPSS9FOFZjeE90aUFpOGVFUAorY0h4UE5jd2d4QkN6dk1YZ043bWFvZzJhUnR1aXFOcWVrWG9QSlNqZXVFZS9EU2VMUjk3SllMb01jUkxtVWFvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgOTUzMjE1M0JBQTlENzQ0ODJEMjc1QjFBM0U0NzUzMDlEM0NGRTUwNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaHpJSEhRUGMvenh4Z0FBQUFBQ0hEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeU1Gb1hEVEkxTURJeE5ESXhORE15TUZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzA1TlRNeU1UVXpRa0ZCT1VRM05EUTRNa1F5TnpWQ01VRXpSVFEzTlRNd09VUXpRMFpGCitOVEEzTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF3WnF3Tng3SVBBL2M5QXRICitpVGdBVGlYTzc0RHNCdVhHazFUMHAvWkVreFZxR2s1aVZaRjFCc01sL3lROWpHOWxxZU5lSENiNEVVQ2tIWHl2Citjc0N1ZzBIempyQlJlVkNtdmVwZzBrYk52SE8xR3BYZUhhZkNOTWFWclV5VUp5R3VweVE5QVV6Q1BCa1dXOVR5Cis2OGJGc0JxM0ZDdGs4TVNhN2c5bVYvTS9YUldhNTRuWHJKd3NUQ3pyUnMxRG9hN1MxRStubkRCYTVDbVJzRmVmCit5S1U2UFg3a3ZPTGRPczFQbjMxQWxoUkwvUUJnTnhHa1ZQNVlGbmVxT2lXdm1ja1UwQVhBMHhCaW5tSDZIUmZaCituU1pEaU1LejNQRWF6RjVxWnRROE42UEllMkU0MUZ3cHdPeGZkb21ZV2tJUXdMV1dzN041YWx5Y01pSzNvRmIvCitkZzlhcEZJY2tpRkREcnNVYTV6Nk5mc0F2RjZneWZmWk13eFMrT1JZYUpXVXJ2eEoyTUczNGZXQVgyQnBGYWZBCitML05WZHhTQTUzckNkSWhWREJzQ2hnVS8rUERkZHF5VzhUM0luYTlYWTlJTjlXYlNzUlJGVXZvQmFuMEc4M0NaCitLaC9JdUlpUUdmMmtkcEhrc0NucDMrcTZBNXBucEdidWhvQ2R5MlZWVXR5SzFSeTZhdWcwY0hmaGlaV1NaeTJqCis1UXlZVDlaOG96K1lmYm91Yy9FdTh0UnN2MHdUVGNZaTEzQTMvMFRGMXFUaSsvQWFhWTl6d2FaVWhlWi9rRU5iCitkMnRhN2x4WHlaNXl0ZlBBbnFZUXdSeGM3K1VOMlU4K29XRjR3NE05UHJsclFFdzVkbURNMlZDRlV3UnhHeDdJCitvL1VvbVd5NU1WV2tVTEwvNndFL09yVzdhTlVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQWptVW1kNEhJVnZRcUluCis3b08wcTJjOEFNMkdNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWU5L1Y3N3B6WHJWSXdKWXJRa0lmRGVtY0lvS3AweFNkZW5ITGFsME84eW5WCitoMjdHYWFGYXk4WHdzZnBlb3E5WmRTNWdkVm01SlkyUzllSUd5Z2UrK3RBcnJmNG5ZZi92emNmb2YzcFJHNWt6CitGR2dYTUovNk5nenBERjBxR2VCSmprU0V1ZFhyNXRyWmRCUnFqbUsxTUhrazhOOTJLWXlJcUV0Vy84N3puakROCis3bFo5Z0hmRUFiL2dnMGdCc3M2WngzMHRhbjdRYmdjYW1ZcEpnMUFJdTFHY01WRngwL2JndFIraXRJM3ZtNDJmCituNFdHSWw5d3QwM2tENG5ibVlUVXJJNnN0Z0tvU2NmMVNDaEdTVVYveGg4M2w1S25jMVlSaDJoNXBZY08vYW1uCitNazQ5bVFSZDU0YjhmTTNHeVhpb3ZqK1d4R21iSXl6TVNTRU50cU1ZMlBETVhtVldvS1dGZ00rblM1cXpjZWp5CitISVdibEsrR3pXZklEVndwMGpIZXgyRkFEREhzQ01raVgxU3BJaXJkUGhTcFphblYwZGpWVHZpenF4NTBiaXdNCis1clpvRGI3eGR6bHFYeTNySjl4S21SSnozNXpna3NKTWI0MU5pa2tKSkhFR3lGekV4YXlNSjVVc3cvZlQyT2ZDCitGWVlrd1dqRnZzSXpUTk5Pam1TRjRRelRRUStCNmRTRzV5OVU1bkpXcWNBWmtxL29GM21ic3ZTMllycGNaR1gvCithWmRicFhkZDR6VVB4VjZkMDBFZ1BlNWNEZjdwTDNVWVVvRnVrc05EVWJEM1UyWVp0V3ZyQmR3clc4aEdQY3hRCit0N1FRMGRqZ1p6Rmtpc0RBMWJGUTFvM2tVOVJyUkQzZ3RHbWlCdWk4OU5iZXB1Y1RobndZUWxibnZ4MkhNMGs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCA5N0U1RDFDRDhCMDQ5N0MwNEI0NjU1QTg2OUM4RjMwRUZBODkzODhEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFtRXpZSGxSWnVwb0hnQUFBQUFDWVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamswT1ZvWERUSTFNRE15TVRJd01qazBPVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDVOMFUxUkRGRFJEaENNRFE1TjBNd05FSTBOalUxUVRnMk9VTTRSak13UlVaQk9Ea3oKK09EaEVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW1sMUxzcEtubGhPQW5tcVgKKys0NWlUQTlWM1hEaW5ldHFSTEN0WWhTSkwzem1TWURQTEFWZjhVejBxOGU5cHF5TGlnbkc4ZlcwOUxQNVliMzQKK2dIeGdkLytjWUxzUm1KbmxmZkswQ25VMlZzV3ZSWlFWQnNsdHNmeEx6T2FMamc3M1UwQ0F5QTdIU2lnOXBNUVUKK240bUQ0Y1pHU01hWk9Bbld3RXpZbEtIUk9zbk56SzJqck85bWw3VFJ2TjFaOE5iMjdENDNOdjBUb3VNUGp4S2UKK0UxekxITkx5RTVZbHc4b25OV2M0ejRQSC9Qd2Fpb21rRE9vUnZPV1RpOWJLTWJwU3RGMGFweVY4SmIvK2tKVSsKK3JTSGFjcGRWVFVYd0ZFamVvdERVWWdzZi9pWE1VUTN2M09iaWlvUWpwbUVBNVBaT29WcUk1UEZaZG90WTNuVDQKK1lJNUtWWVhWMTFpWmNKTWlyWWN6R0pNUGZwQjdjSnVWTldvL0xReEI0T2dOMFRQME9oYWNrQit0bC9kcU96S3QKK1VGZGdSZFc3T1E2QzUyU2pKK2tOSSs2S0ZpeEh4a0twai9jYk1scVdYYkxCVTRPLytmdklUUHBTY1pXZ1JUMWgKK2JCdHdNbWc2RmkvQURBRXlUZWlHUmt4c0hSaVl4M2srbGRWUmo0dlpUdzFsdzRwZGNxTXVtNkZhNTRCaC81RFMKK2kxekVNMFE1SGF2UGx1UXM5anlEQkVYLzJ6TWpHM1FJZjZOci9zTjhoT0hUZS9kU1VIa29QT0k0UXJzMDF3d2sKK3VQUzlraXhFd0lySU9NWFJUME83THZCenVYazNVa2RHckhjUzFOMUJFOGZDQ3NVUkxjVEpveEgxem9CUTUzQnEKK3hVdzRSWWpveDl4OC9BaHM5WHJuY0lRZ0Zma0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZGc1hhbFFURGpCQzFEZmcKK2djRzJOYytONlpoQk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRzZHL0NGaGFLRm1XMGg3bmd2bHpoY1lkWHFBR1hrQ1VmV0RZMHlaNDJjZE4KK1B0Sm11eHJpV3NxZE1FakNHWU5nbG5qVzBwNU9yL2pyUWNxVDdIVkxXOXQ1MjN4bGNwa2MvMWxVRStKMGM0MlEKK01ZTlpndE1mUHdQU1N1cDg5Ui85YjdNTDRyb05CQWh0LzFQRGdVNGZlOXNUNGdrd3V2RXJxZDdvSVh5UHhDa04KK0x4dkd5ak5jN3BnbG1keGJxSUZ3QTNDQzZMeDloSk9hUFI2eFZsNTNWemFKTkZhbmYvdFY2ZUlsWVVQU2RJTWUKK0N6bzkyQkh3aFZCV3FrbDRNS3dCTXdTVHNMVk1LWS8xNUVJU1p4V25BNmlEODZPUjRjOTM2bCtYMXVIVE5CbWQKK3IrcnEyekQ1UWtEODYwTk02UVJway80NnpIem5CVnVnL0UzT3pPSjJPSHhhN2JGNG01S0d5S09JL1B2RzArblYKK1p6ZzlRZUNicC9sVWEwY0lYdm5oZEJ6TWdzN0MxZjhFOExxMUhVaTFMTHdZUHFzRWhVMUgvVG93Q0hMaDVINm8KKzU0YlpHK1hWdTR1Q1ZpQlBNMHM5MjljUFlyTnhPMmtIN2o4ZlBPbE1JOXVzUXhocURiUXRXRUFUN3Z1SU1qTzYKK3ZKbmpTUzRkVE5aOVBIWTZJYllBWFEyN1ZrQlEwNDdVeXA1ZzV5S1hSUEM4V1IvNUFnMmhueHBQSGhlcG14V0wKK0RyZVlVZG56NTBYZ0hqNW5JQmNYeXpHMlVNdUJwaVlaQWlPTlJOSVI2NXhRUzBnZlhsZmdkVXU0ZEUzbU41L04KK1dqMkVRcURaOW5SV1R3S0RqcXlzdW00em5NMUd4cGF0MDA1N1VnNUJRb3YyRjR3aUFFQXZIY0VEdDhPZjJIRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIDlBNjQzQkM0ODAwN0UwODI0Nzk4NDMwMDM2QjY1ODQxOUI3MEMwNzcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBVnZ3QnlscmxNQ0dLd0FBQUFBQld6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3hNVEl3TWpVeU5sb1hEVEk1TVRJek1USXdNalV5Tmxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzA1UVRZME0wSkRORGd3TURkRk1EZ3lORGM1T0RRek1EQXpOa0kyTlRnME1UbENOekJECitNRGMzTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF2WktUdlBmdnUwVUxvQ0FkCis1Y3hFQlRGZGdneDFKK3F2MVFnRUdBRDIyd1I5SjcrRGpqdnBNdkNZbmJ0L3IxQWs1c1daVk5nKzFwcmVMNVF0CitBVUxjL0RzWjR3M0NVUG02S3FiT2Zia2hnVnN6Z3RHblFDYWRMT0VRM0dyYk4ydkZEeVlZMGRWVzBkby9VSkNPCitPYndKZ0svNWptSHQ5c1hsc0VwN3dzR2wrOEdKbmQ3VDJrSDhwOTh3ZTZnZzlXZE53REVkMERYTVFXckV0a0JSCitsRG45TkhaVUhuazIrTlFvN3prbUpCUTFyWW96OEwvZlJMc3Ztbi9JcEVtUEFrRzdlUjBob1VrdkNQVis0MzFmCiszQng0aDZwZWMyRW05eStZR0NZMzg1WWVQWTBIWWZNUUV2U3Ztdk5DK3RsZVZ6Q1dkNy8zYnZ4ZTE1cEcxR3J0CitpMVJqc1FJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVU4ZlhNNFhMdEVqTmE2RWlqSW10dmdwTC9rZUF3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ0YzL0xwCitwM2x3S0pyK0hib0QyVUM5MitPNlFIUWxaMGlMRm5TS1BBWFdzbktEK3VnNlRvbGltT1NJYlBKTUc2ZlZZNTJwCit1a2t6ZUo1L1Jyakw0Wk5YSnhZMjNKcThSNWk3dWZ0SC9tdCtPaGhBb2V1ZkxsMWk4ZHVZYWtMK1gvaldnZnZOCiswWERYbVg4bU1mSkdrQmJ1TlV1Z0ZWNnZ6OGR3UXVXK28xUFpOcWxpYWtvenN5N09qY3FLMXdNMDVRNDRHU2tOCitEMER4dkliTU1uWm1mMVpnS0o2cnBJNHRxdmZpcDRmZTJVbWlrUUF3bWVOTUNGb0ppN3VvV2syS3NKcHBLUHJiCisyNzNaNllaWmxwa0RXbUJqdnFrSjMyRTFBVERDR0hpS25xeHNSOVBZOFpBZzZObG1kaHpFNHh5L1NOajd5dW1SCiszbXRuSHhuc3ZlS1NobEpBY0ozZHFWQXA3ck5PcnhnRGE5d1ZnanZURThJYmtNK0laVC9QcE8rZjlSVVkrUk9vCit0NzE5UWJ6TGdLRWE1MUR1RjhIV3piQVNtYjl2ZzJzd3JsYXZ6QzlmNUVYNVYyT2pCcEJwMVZiSmdPWmhxa01sCitHQlk3cWJEektHR3NMaTJHbEkzTkR5R2VlVFFxY1R3SndIbzVPcy9zdGcrSWgyaC8vUHRPOGZ3bjhvNkVjY3lqCiszL1JoKzNVS2pSUENMTTNQQUFpUVQ3OXJYeC9kV3dWSUxoL3ZDUXRZVEM2Y0h6eFVKSmdqeEE2OXZzRUFYeEFSCittY3VMaWhLYjlrUVJFV3BkNXlXd3lRRjNnaTB2REN6M3FxQ3lnQkJnUXMrMmRKZlVNaHBpM3VxYVNnTmdzeXo3CitLS3hBQjdNYi8zYTh2VnkrZm1SdTNnRVJPclR1M3ZsTUNtS1djdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCA5QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBDMDc3IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFoVUhNdUcvdFFxZmp3QUFBQUFDRlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14TlZvWERUSTFNREl4TkRJeE5ETXhOVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDVRVFkwTTBKRE5EZ3dNRGRGTURneU5EYzVPRFF6TURBek5rSTJOVGcwTVRsQ056QkQKK01EYzNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXdFR0lNSkhlMnRFUEY4SzUKK2JMS3IyU1d5SWdtS2pYcDVUSlhxUXJCYjZ6NWZ2bmRmc3QwbWpPVk1HL2JIb2JMNFdJSmE4Q0FBM3hEQlc4aTAKK3ZZNCtqM3FyMERuTTgvRjgwS2xvQ2ZoWVczeTZoNnBXN0dHS0FkWVVzVnZoMzFKa1BRc1EyRFpNczgzSnNUdDIKK2hkbmhibU5sQ3F3OFdUMTB3K0I5TmZPR29sT2l2U254U04xdUFaK2FNRDE3Y1E0WkhBNE1tV3NyQXY2WnYxWkIKK0FJQmt0SHc0OGhORDdKZE90Q3hNN2JER1FMWnBxWkMrd0U5QkNidGRaOFR4cERIdEtkSUJYTSt5emNZemJCQzEKK3J2Z1dYVGFTREZFVjNpM0dyRk15R2NoNzZOdGM2RGtIN1FyeElXZ1FpYmdpdS9iWXBodXhpUVZRV3lteXhyWEgKK3JuTGNDQ09WUnZORCtNU0w5WTVsMjRjK0hnNjJ4TTBIbnl1TGVoMi9MMWJ0aWIrNWRnbUZVWXNlM05jTXhxY0wKKzBPeHRNa0UwdGNhelI2Y2tHNTdFVGdmVHlTZTFyZnMyS2tBTXp1a3dDUlQyd0dEQys0MFJMMTlSK0FCZVlnVnkKK01SSk1tT1NqS2VmQUNBQWQxblMwTFQ1WjBTbmExZlZGUzIzMmY2eHJabE9mdkRZenRaWWNQQW4vcTY4clFnU28KK0RJOFNieDZRWUtxQ0RKTmt1UzJJN3BRSjRUMHR4MVRtaksrLzNnaWZTenMzT3BOeXFkSXZJYS9xZll5WmVLZWwKK0c1Q2RKM3EyUExLNEtmSlY4MGhQRXdiSDdyTjR1WEpXWFVrS1FXWkEzQVZxOGtNTXNaQit6QmQzTVErME9jUGoKK0xwQ2h6NGI4dFFnK1FmWUtRR2FhaitLME1Pa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFRXFFcGsvTnFtaDFkWEMKK3kzeEx4KzEwK1ZwUk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBTWtaYVljcFUzaUlhcS9icnNtME51US84dkRXM0x4MHhJWUxRS2pMc1BDRlAKK1JKd1M4ZUNCUUtVaURrK0o0WlV4cCtKbzFNNVpXSUR6N05RMzA5Z1RYVE8zVGRiTFVscys0YkR4TVNaQzMycEoKKzZIRlFqS3AzQzA3OTBINDh4R3BtclJudE8xTExUVDl0Wm9ua2NwNW9PUzZKQVNuNHh5MkVMZE1BSFBFem0rWkkKKzVjbCtoeDlyWHhNK3RMZytuNE00S2pVeXdTdjBrOWVZY1p3Vy9SdENLMkxiVUlXRHFVeVQ1aFlsU3NZaG9oRWQKKzJ5M1JIT1M2eEpzbDJYRmpyMWNhdE5HUzd4bzBNSXJtcENINC9nSDFPRTRCeEZTU1BHcGQrUWF3anJDc0xieHgKK21HdjV4ZGVEZ2FQUS9NM0JsU3RieWVnV1FvRWVJTTZJZnJvREk2T2g2T1o1L0VqZmhqNVd1cHF3R0hqcEF5QkYKK3MweGdOZ0FIaGtLMW53ZDY5TFBDaVpveXR5WTZBTWczZVlsejU1ZmJNSkRyc1pqT2lRNXdaUkxFZzRsTlJxOVEKKzczQ0Mwck9tajJIemZsdEZYTFM1YWFlVzVJNFVQSENDb213MFJmZlZiNENlbU5VbjBCWlVYNmxHdUNTVHorRzYKK3h6dVh4RTE4WmZ2eldVYmFXOEY2NWhQNlIxWnpEdkJKTktpQXhGU2tpSklmZlRiRjJXM1RqbmJiK3doTGpCY3YKK3BkeWRQdmk2bXRIcVVJRHFFLzVXZFBlMDBBdHRoVjhoVGIrNjNSanlMMVFmZGZRY0hZekxsTkpPcDdJQXNoTGYKKzJSaFg4MFA4Vkdnbk52cEJiK0JJUmpiSURtUnlyTlZaUUZqZmxFOGZPdEJGeDZhTjgwaWQ1TzJQNmZlVXAvTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIEE0Mzg0QkVFMzk2NjUzMzUzOUNEMEE3MzZEMUREMkMyMTM1MzhEQkUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWJoRzhTSDVsRU9laWdBQUFBQUJ1REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3dORm9YRFRJMU1ERXpNREU1TURrd05Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxQk5ETTRORUpGUlRNNU5qWTFNek0xTXpsRFJEQkJOek0yUkRGRVJESkRNakV6TlRNNAorUkVKRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBc2dSS2VIQWhBWHNZRi9TTword0R4YW00Sk1IK3N4bmhWVTdadmxTLytSTXYvYmZZWEpCTXY3UForRXZLNXZkdjNwREJndGF1aVk5aDZOVmNoSgorNklKd1h3RW5zV092N2FBTUFVbExIMERxd1RjVURIM3kvYkRzUGdQeVRuNkVUL21VVnF2aTJWUjMzZjRMek5OQgorWGwwRHBQeEpOZEJBUXVBd3RmV2N6UzlERlNKcGo0eUNndnZpYkFsa0VNdU5iZnRzUE5pQkhZT0JvaDZwSFNNcAorYmtqc2t5Z3JCOTFrZSt0WlhuV2NVZ1d0bHBuY1B0N2NJeG44TkdONzBtYld0dFpjZStKcWcvZVE5eEZHSFA1bAorTkNKUlR2dWw1ZUhsUW1WczdKQTBkUlc4czVzV0gzSVZHcTFxMzkzQXd5dEFjb0tmc1pUS0VzNDZBNG04NTlLcworSU40ZlkwdHdNMmxVcDdwTUN6bGRoaWhsWVJjNXFNbEQyUVVWdlNYa1BlR2hmNlVnTHIvUExucWZaOVhoRm5UNQorMWh1VjJ3MG96MzMzTVQ0MUpMSFFsNGJtZUVPUGR2MSthTTR3VVlRQ21hWnJVYnYxL1dnY1dXOEE3UzZObUJlQQorN3BsNEZscFJldFNrMlFvOG9BUFAvTlk5VVhrNHNrdmtnU1ZBQm5HMDVuc3JldmcvQm1JL2hsRHRCU3c1Kyt4cworMUJib0Z2WjdRb2hCSGRUbmRMTnQyejgzQVRhZHF0U3YzVGE2a1hsNXVYcC9RRkNkbnJqM21pN0d6MFcyOHhpWQorRlR5ZmI5bHdrSDQvN0JqQnhuQVZXcDJzTHA3TFdhZm82OHRyZkdGanhtZk5FbDdwcldtN1FXUEs5WWhkZml5SQoreVlTZmNmK29WbGNod0xVYkxxdFlWK1dGSkE4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9wODRYdDViOXlsYjkxUworSlY2MGdhS0JOdGdpTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqMXppcHhRRmlqN2ttZVVueVpTOEY2cFdyM0RxSUlNNHFNT2xGZzhFT3pydgoraTdzbGt4QWRVZTQxTTJ2RTIrTDllZ1UwVWQ2dXFuNjBlNWJ1UERSajhsWWRJSDhsRWg1a2U5SnpYZ2M3eU9ERgorbU5mTlU5SlpaV0Z6WlZVZGpLN1NBeXd6Q3hFZG5nd1V4Ky9KOXRiMEVMOGpUQnYwM244SnhIVCt3V0syOFFjUworb2d2dFpXMXAzR2grY0U4U00rUkdEZjdxMnhaS3hTTnhmK1VYMEN4M1h4RzRKZWJ1ekJ4NDRTQ2FVRzB4Zk5QRgordUZRNVJaU25RWkdDM0VML1FXWnlDYmwxalNHYjZNWHlRc1RjR2ttWHpoTzkzcHFPNEcwcWhwN29pRGdxRDdPRAorL2JiRlBCdE9qb0dsTFhxeEs2a1A1N1A1aWVUdTh4S3FrUy9vUlR4UGxkbmRLRG9TZVcwRFBNVnhvdXo3VjRoSgorejRmZU9mVzZtdld5ZlZ4c1c5Njc2djBHcVo0bThzK3JxSlRRZDhZZ0RlYnF4dDFjRm5OZnJ4TEczYVJ1SGVwcgorV0lSdkUzTmoyTysvYktac2YzTVovZURTNnU4aFVHV1duYXJ3b0x2b3hiR2pBRXluZHNqTGlrakJ3akdwUXROSgorMURYemFqUk9EUlhWbis3N3FNWFd2WGJVemNrU3EzUGxUYjJoMFF1dnJOMGtMTjRaSTlxeWt2dEVFcGhiMU1vRQorMW43d01JSE9WUis0TGdmRTIzQlMycFNTczlyUHl3TXpadm1zb2djeWdDUGJhMkViTHFBS24rOUluejVTb0xtNworS0VWS25WNDNqSXNIdGpVVEJGN1VVa25MeEpSanE0cnFVaFhLMVplSDJGenNCZjBLVGRNQm1FY2Zia2RKcUprPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgQTREMTg3MjYzNjRFQTJFM0IyNzg0NjRDREM3RkFEOTY4RTAxNUQ0QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYmZtb1pOVWI3bUFud0FBQUFBQnR6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURrd00xb1hEVEkxTURFek1ERTVNRGt3TTFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFCTkVReE9EY3lOak0yTkVWQk1rVXpRakkzT0RRMk5FTkVRemRHUVVRNU5qaEZNREUxCitSRFJDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF0amIrVGRZYVRJV3RjTWJPCisxN0t1T01aMzBDSno1WTJlTkhHSFpsRDRncTFUalJpa0Y2MmRXMmRCV09zZVdvVmZCRGdPOVJpVXFNemQ0M2FYCiticDNvMzVEUDJGR3FGR2pVNUxaSkluYXNNVXJRSzVsa200cGhqazZvU0YzYzBMR0lIdWdpT1dvWW9YRklTbTNvCitxYldaaWlHNjZzbldLVWk4alZOd1Ntd1ZHTTc5QWdmZWd2VmJjMVFGcEtFUWR3b2ZQanpRSW55RGF6T3RicSs3CiswK09PelUySTYybkVkVEFUVUtTYlpHVXF0QmRpWlUycnR3VkJVYjByNEs2eU90cElWVWNobG80MXZJaXRzODJqCittQmhYRVlab0Y4VVRRM2Y3UFlPdSs1V2xOT0Y2L3UzZUh3d3ZkdlNwY3pxTGgraW9XdEN6cldMRWgvOTRTMGNJCitiVDBZNlhVelRHUjRJUXkwU3ZmMmVvU0UyN1V6SG42QkcxUzZNbEZNTzJTbDgwa3FnQTdHRG1KVkc3QjBWZkFHCitLRzhuV3dOVExOMmpFdDNLSmFjMFFwUW1kakdBdngzdUk0Y0I1U0FQU0RTbmhTVWZkL0VlN3pEN3M3MUorK2M1CitZbXp4UkhSZGlFOXBwcWVBMnFIU3k3bGFRUm1HOEVMWWhSQk5Uam4rTVROa1l3UlMxNHJqSVNvSDlzdzZQTnZQCitINTBjL3dOSURLOHU3VzAwVVZUSFVXTjJLZjNvUVBrUXZrRTNkZzFUSGVFd25UcjBlejVmR0duQ1pVYVg2UFk4CitQbmNKUk1RaVFkSDNiaC9IQ3VLRTRtYVN0cGpId3kwcGVtOWRjMG03ZlJNa2VSVDNpcnZMV2phZmUvdVAxRkxNCisvbU1ieTlMcFk4TTVoaTNxMzBBTjhwTVc1ZFVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUGwxT3hmYjJyTmZnSWcyCitYYTBNZ3g4S3pUMTRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUdHN3JvajNtdjlLbGxsWXMrenZHU1ltanhGYWxxQjdPNlFmS3hKRE9CRUY3CituZGprZGphalg0WG8xeFBOd29iTVV3bkUrMURhYWY0TW9Uc0t3Z01nL2h0M25NWFdCTDJxcEJ2MUN0R1JsUFhFCit3Y29COU84OHVma1VLaTV1NUJDd3JRbEtYVG9WQ2VIaW1CT0xzcitrdG5Xdm5DWTJsS20rTGZzZ3p6Ylc4WGt1CitlY0swS1BUem5jaTdYSE1ybllyRnFmQ2xlTUdlaVVxS254M0NUS3lnWmVsUWE1ZlRqK3dlQjF5SElIeWlmRDE1CitWMFR4cFp6N21acEJ2UW9abU1tQTFZTXNaUkxKNWtYUWl5K3EweHlrRG00TmIvZStIa1UzNVB1NlpMUjVsd0FjCitjcHk4R2R2VGxvUTlVTlkyZXkvT1FXaXNQbkhsNlA5cmMvS25OSXdjRWtIb1VIc2pYREQyeU1kYzlKYjZvUStKCit3Rk12MmQ3blgwdjlzeDJDUElhekIzdjU3cmpJZEI0V3l1VE54T1hjWEdrZi85ZkQ5clFnOTVydTlIeHVZUHZQCitIdktsTWdPQktDaE5ObWhvampqR1kyV0owK0Vmb001VWR1a1lBU1I4UlV2MldwWE9uTk5WUHhmc3BpMjZ6OFNsCitVWitURmc3WDJ2eWMxR0s0T2FmQXR1dmNPOGxaWnRGZHh4WEJqRk1DTjk3N1g4VXNITGwwNjJ0bENmMTdLeWdQCitqSUw2MzZwbStmeHI2Q2RpRUgwamd4VFltQ1hvWG9WQjdQcnpYYTNoUWFvTEVHQmNES0ZzQ1lobmZGaTJTcG41Citra2JDSThMZHNvc0VzT1ZpbjdXRElkdFV4QlNXMzBlemlra3orL0QvV1FlbWhqUmRMOXlzTkN4VW5vdCszSGM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCBCMDI5ODExNTdCNkQ3Q0MzMjEwMDE2MzgwQjg5ODk1MDUyNDM1MEU2IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFicHJqT3dHNDNwWWVRQUFBQUFCdWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt3TmxvWERUSTFNREV6TURFNU1Ea3dObG93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMUNNREk1T0RFeE5UZENOa1EzUTBNek1qRXdNREUyTXpnd1FqZzVPRGsxTURVeU5ETTEKK01FVTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXdxYWVVQXBwTUFucnl4Wk8KK0RsSmhxbzRmeUx1VnBpZlFFU3Yzd1VxbTdqTi9JRWpReG9CMVVmOXJVY2kvbGVBQWdNSTVvRDNxYzJNSWZlMy8KK1J0YURLV09mdHBWdC9lcUVXZjVsWVJYMk1KVjBTbytHeG4rUHBUazRJYXNOaThsQXA4djlBOUNEeFFHeW9OK2YKKzA0MjZrQzI1azl1cjVaSENZWFFEREFCMjBaYk9qSDRncTJNOXcxSERhUVl0dzV1NmlxWTlyRUVaRCtlNGd5bkUKK2FjR0M2NVZEc0tWUVlWVm5Xak9VT3hoeThkTER6NzJoVHpJLythSS9heHBZVFlXampmcERjQytSYlF3M0hPUG0KK21lbnZzSEpqNEdwT2pqRG9aRW1UczRQY0gya0pIUGVQUUJSeHZRZmgvTGxQam5kbVBDem5OZGFHd3ZEc3ZuL2sKK2l5UUhodGdoSzIyZVVyaTUyRzVacFJNZHVMUXBtYnZyUmovRFd2eCthb0M2OEhoV3lzRUNRY2RwOUZNZDVyMncKKy92ZS9MR3BCYSt0Ny9oNjExMGFaWHdMTTVqYzRBdkY5Vm82Q2pHNGhlWnNRRlNjTHdpK0ZXZk53WFdCYTRoRVgKK3BGR3dpU1NneENVVzd0M29NOVZpV2lFbGpSL0s2QVpaaUJYNDd0UWV3UWUzYk5IbGtHTkxpNU1wZ3AzUk5KMGsKK3RmeTBpbHZYVTZPeTlVUUJyZnRvUDROMjVPQmNGRm5wcEhqby92a2NFVXZwWGtHQWNwbTZKNU5Pc0VkQ2hUcFUKK2ZydDVPRWZmK2k2a0RQb1RqYklsSDFUTWJCWmRYUGt4UUZ1VEtSbTViVTd6S295cSt2KzJENlZhcmN2a2R1VTUKK09ZWWVSSGhhMGQyYlU4TGRsbDRGbkJIMU9jTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQSUYzMU0vbW9IWkxhUXQKKy9oaTlxNE05Ym5Bb01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSG9Kb1VpbU5zZ3BKcXhwWXVKaWNGdXlUaGwveWpYZHlCYXJ6TVAraEMyNmUKK1RISDVrWEc1Tk0rRUtBdURiU0RBck90TzQ5eng1b3h0U3BuV1ZVZk1KZXp5UjlxOEk1c0wwdXJ5OGVKM2dyL1EKK3FCNkNRZWlydDhrVWdtNWpWemExRldCcVJKZUZoK3pVcnVTbU9Dc1lBV29idnBGUzMwZ3BDcDRYTGRSSXNITS8KKzQwa05MVG9PL0d0NnZNRmx0bWpJOWl0WHA1aGM0TWV1Y1Fwb09JZU5wSkxwNDdOaU1hdjBLK1AyeFVGWDlrREIKK2swSlRuSnVISkVwRjJYUG8ybHNaVTM5TXVySEdsREtDYU5GQ2dTSDI4cmVtNWhZZ3BOZVh2Q0tqc3pRNFRjYVoKKzI2cUgrMU9BMS9PY20xS2FCU0I2RGY1R3VEZlIwWk1WMlBSSGhiRUlEd1VSK3dVVloxNWNpVWJTNndId2Zhc28KK2o3V0JvOXBEaHZheExpS2tDNzNpYXd3UUQ1M0t3dXRmcm81RDRxb3Vsc2s4a0kxN092eTNtcXFvNWUxa0lTMWMKK0dGalRwOXZTWTVodTFxRWJRbktiTnBhK05xMVg0eXd6QXcrT2V3eUd0b21JeTJsYzZHN2xvYUhURG01YzNOZi8KK1E1bm1EMExKSzFORmpwVmR1R1pheEhENnRySVRUZVh6OHl2V044ay9GZXBTV2JBUCtMQWdraG1BdmsxeWpUa3IKKzVqL2RnRS9OalZLc3dwbnJhRmRqa2J5VVZrcnBwbCtic09JcGdtWlc0WTlXbWd3OVNzaHRRNjkreGlKM2pXdkgKK1RJTDJCcUVJT2dEVGYraWliVGtqYlNhbHlhZ2w4dytSbG1LSjVZeXgyaHlMVTQvOE5Cbml3dFlsL2loRk1laz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIEIwODAzNTlCNTlBQTkzODgwMEE0QUVCRkQxMENDNzBDRjAxQjFCMzcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWJtWUVsSWJYcFBoY2dBQUFBQUJ1VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3dOVm9YRFRJMU1ERXpNREU1TURrd05Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxQ01EZ3dNelU1UWpVNVFVRTVNemc0TURCQk5FRkZRa1pFTVRCRFF6Y3dRMFl3TVVJeAorUWpNM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMWJ5cFBpNGdTRCtZbkV2YgorWW43VUZ1RzhwNURCZi9BTmxsVDdvZnBzQUF0QW1pRm42SWJocXVlenBiYVhmYlBBV3lXRDVLdzVXOENUSWJBcworYmhsVjRYUWNlY1o3endHSjI5MG92RmFiZEdOalFhdnFGMWYrR1VHK3hTUEZ2Sm5GYVJsdDJCRm1pTi8wdzhWSQorR0MvcG5HSEdyU3VwcDdUZUJYL1lJdUNVMEJZV2tSRk9QSVRqUmZPTUxmSHcxSzY1SnZ2RjJxazRLQklVNnArMgorL2pDZm5RNCt0S0xWNWtyZ3YzTVpZbHJhUVlqQWw0T2t5Y0pYRzI2Q0wwNGVOT1N3UWpJYXpHQ0lYODNaeXdaYgorVmI1Y093S09PWkV2dG9idlJqUkVDNmp1ZDE2NURDRERPWHZyRjR0emRRK3Z4M3djdXl2cENVakVLT2xxOVlRbQorN2xhRU9MemU4bmszTUJqYjFFVEUzRUprTVVRVUJ6LysyZzJ5ZmVnNDFQcjN0QkIra2lQYTFlSTFOQjQzcDVOVword0dJejlBcHh3Zmk2QkhiK2VuU0hhRGZOdERwdndIRlZGWjVzbXZIcjQwQ3R0ZjBxQ3M2cEV6ZEJGQ3ZpYTErVQorZ01pZk9FcHBHbFoya0toejhPOVNMWmhCcFd5QmV6bDF3bEJLR2x5S3NMVHBCZHFZWDlnUnNqek5LRlJrWmV0RgoraXRvdUhnWUFlamlDMGxnSHQvckZuaUs4S3JNd29GRmhuR1YyQURqWDN0U1RYLzRucDFuSC9wSExtLzFocFc5VAorU2FvYUFkc2FRVEN5WGdDSXoycUgrcitMUFNKZUM2eElPeDlOWW01WmhXdDkxR3gxN2Rnc20wa3NEUkxQWTFpMworczEySk8vY0pCTDZjMDF4bG5ZLzdIZ3NCRHBVQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRklVcWp3UXI3VHg3K1Q5UQorQTdzWmVTUUFxWTFWTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFtWUtRbEQ1d3ZQaHZWVkpNS3FzWVdROGlteWFSWXMrZkdZNGF3YWFnbGJpbAorbENobUQ2ajRQSUJhTk16Y0krR3dFQUo3M0FXTlhsYkplTXkxaUJCYkpiTUNySC9aU2RQL05yeGNYSlU1dkg3TAorak56UDNUTGlueEdmVVJkZjV2MHJjNTllcEFIR2tWbHREL2RlNFRNNkhsQUVCTDdsd0d3V3N0NmpyZVdKT0ZxWQorODdmSDc3RksyK0w1RFNDeTNJcU10TFlLY3dJRnFUV3FyR0pvM0V6VEVZN1dQLzhFTlJMdG90emN6Wk9nNndrQgorVWR0L2VzTXpqQzRsNVpEWXVUWk8zSndQM04xdUJYdStDUlNqUGZlc0JLQTBuTXRLeEdkR1o1dEh3RnpHa2pQcQordCtaSTFFNGlGLzRrQWhUNUhPdks0Q3BuRzA2Z0V6b3pPazVmeGhZNmd3dWdkSjV6amJWV29tam4xVyttcmFuSgorYXplYmxPMTkzT1FNaE56ZWRJZWNBd3lMRDJSTFdaRnl0OCt2dUFGdWtHTER6a3pEV29WT3JVRmVhUVBnYW9ObgorRG5yb0hPMThkNkNDV1Q4dEtJWFNaaTg4Mkl5eEg5eWNwSDhKTU5LbDU4T3ZPSXJ6VTFicFNKa3FpeTI3cGhLZAorallUM1ZTWU1FSzJJdkF2NVZxeUtvU280OE9HUXNwdVR5aEFQVTFlSDYxZWpTZ210TEpZd3Bjc1hVVGpmNDRGRQorYlBoZ0FFTzl0aENyVCt0Vk1jeVdBWk9lM0oyaXRqRGlST2F6cmRoU2lGOFBWZ2lwVlhEQVV4ckw2bWhMTEdycworSVhyL0VKbWdzRXdXN3RaSFBENnBjME5qWG5OTCtqM0FydVVPd09YNUhrTzRKeE52TzZuRUM3dXBoSG81WHRZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgQjJEM0NDMDgxNDRDNTA4MDhDMjg5RDExOTYyNzQ3OUJGRkMwRTRBMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaDJucWlaQytQNmIwQUFBQUFBQ0hUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeU1Wb1hEVEkxTURJeE5ESXhORE15TVZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFDTWtRelEwTXdPREUwTkVNMU1EZ3dPRU15T0RsRU1URTVOakkzTkRjNVFrWkdRekJGCitORUV6TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFub3pTc3l5T09MUG9pdmZGCitMYUtXSGFsZHBLQk9rVFFiMGMzaDFqQzhsQTNXSGZraWhINkxWY0pVUWhlcVdJSFp2TUV0NEZVRllNN0JyNTlWCisvSkNmNWo3Vkk2SUQwamd3WjVRcUNqY2tXZ2gveDFpVUIwVitwaWVkREpqMEl1ZVJOZkZnWng1d1B0UEJvbS83CitwSG1NcnA4OEhnZzBlcjBJR1NuSW5wVmVsZnRaVVd6K0tieVJ3RGpNZlFlN0crdkxMMnNmd0JaanlXb2ZsaEFvCit0RUNseEY2dFlRTTlUL2JJL1JsL0dFQ1FzQ0IzUTM3NTFNVG5NMVkxQndxbS9OVFJZWCs1dDQzV1MzNW1SSWlVCisxYzVRYnlMNmo5Z1QxRHlWcDF5MldmcFI2dG8ra0VybXNndDVWTFkwT2ZkT1B0dTh5UEJQRjZHYkNUeWo0MndOCis0dlRkbEsvT0dSVHpuS25mc2h3MDZUcThPclpxdWhBYWdrdmdzVlczWWNJWW9WQ3NJMmtZSGdiMFg3TXcvZmt3Cit4SElrQVNBcTM2cWhKSzd1TlhqNHMyQ05uWWw2Qm1maC84NnJvZDQxUXpyUkJROFdFRitMQVFEOUF4ZVV0YjlpCit5bGpaanQzc2xMZGNyNWpXcWFyWUFQTFI1ak1OQWNmTlFEd2NYdmlnY2lSM0lHL3pmNEFYNjBxdTBwbExmQzR5Cis2YnJuWWZrYjRMazk0MFBBVnhUSVR2UjlXOWd3ZW5ucEsrTDNDUExXWk5YRTEzZkJoaEEwOVJWdFpkWGdWQ1NPCittdU9leUNuREJDNXM3b0VEYVlLUDFUVkdrNmRhQUM1TFY5VHdvMStpemk1LzYzRCtHS3FpT1dLaENyWURRenVtCiszMlMrUCtDN3pvSUtHZ3hIVXlYeGwxSHlyazBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSlhyVnNHMFIvT1lyNzVCCitmcUxuZWMxSnZIWU1NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUZvSlFGMHh5clF3SkRHVCtqb0c0N3poWndwZkl6dHdOQ015eXg5S0JUTlhhCitCK1VxazZzMTIzY1pMYi9NcUM4V0hEVXVpNFR6OWwzZWJ6UDAyTVhCd3BaelRBMG5MdU9manVjWk0wSkNqdGltCis2K0hPVVY2d0Y4djB1ZjVPWHNvUTAwSjVuVmIzM203ZTlacmV5Z3MrUkVMZmlJTmFlZ2twVHd1aDk2MnhlOXgwCit1ZTNpaGFBRTcrNk5Vdys5aDFhU0tzY1liOGdaQ3BaazlsNmt0UlkrSXlEMFh5UnFRNnpORUpDblE4eWZWM0N1CitPYS91SEswcDRPbFNlaEdsQWhJNC9USVdjWTRKRnlVZWxMT2VKU25QQm9KQlp3SzFYalovTnF0eXQxQnIzSCswCitaR3MxQnpmbUZYczBYVE5OVlA5ZDd6T1RZSFptcVJOVmdaSjc2QjFDVXVqK3A2U0ZVaXkxRHVEL3kyOEdBNEIzCitna2dnZ2pXUXpydUtOQ0NCM05HMWN3MWVzQ2E3SjhZZmxjbWlvVGZidUI0enpReVlGRXNUS0RDOCt5Y3Z6Q1RKCithd1ljck1ZZ0NiVmRMUU13cllpWVdSbkJJRlpQeEVnNEliczIxZXJMTzVtRk5DU0pWdy91YjZGNXNJaFN6bW05Cis5YS9mK00wOGFLeHN6azh3aWtYWWFxTU9TN0U0QnMvNW9IZ01hU1g5MDN1cWc3N1dyRmNLdzVpSkRwdE5XcGlGCitQSXAwT3ZNb1hTS0R5eEtQUExxL2g2S012cTZ0MnNneEE5eUZCL0xjY253dytvckhxY0R6T0xMbWZCNFNqOEtnCitDdnp4czQ3QjF1dWFZYlI0MWtJaDN1ZHNoR0c0TFFQK09sb1YwQWJIbFc5WlQwWWFtYVh2ckFseFV5dVhvd3M9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCBCRDZDNjlDMDc1OUVBQTk1REQ2RDE1NkVBNjQxNzBDNEI5QjM2Qzc4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFoNXdHNzNzeVdBRlpnQUFBQUFDSGpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE15TVZvWERUSTFNREl4TkRJeE5ETXlNVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMUNSRFpETmpsRE1EYzFPVVZCUVRrMVJFUTJSREUxTmtWQk5qUXhOekJETkVJNVFqTTIKK1F6YzRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBvMjZLK1MvVmtGL2cxWUoKK283SW4xRGpQMThzbDUyVEcrNFNGdXpUQ1FYaTFucUNabk0xNk1maWh0bFU2Z1hGcXNUOEtiaW51ZzMwc3pXYjEKK0l1K3d2N3d0NEwrT1BqVUFJcWw5T2trZE8xaUY4QWF1UHN1Y2U5YW9KWm9ydkt5cy9GTGJLenoxMXVHOXNJM1IKK1kwN3IxQ2NsSFo1clptNENCM29sTGZUUGEra095VVF1UWxyNTIxVEtRY2VFQmtyQnE2OERXMTYyZ3lkZU1JVDcKK3BMVFBVN0lYcDVUVjRndTduNmF5NWIyU1dBUTlqS0llYWRWdHdMOHg0QlZnbmRvMllQazlOd1QwWEJBY1dnN0oKK1Y3T01kcDMxbm12VGE1RDY5MVRJdklqMnBkTmlTNFNqUWhqUzJoR2t4KzBxUnEycld6ZEMxMldaNGRHZ1N1MDIKK0lFaWpwOVlRYUcxdE5reXJJV2dqazlyUU8yM2xrZGswQmdrM0x3WjZKNE83Q05YTjFLSDRGeUVJaUJheWIrZFYKK3JoWFA2SDRyZUFpZmhwb1ZiSmYvTGx5NC9Oc2JjVmF6MEtzdXNGWHlOSWd4eVRrZkVkaEUwYTlZTU9uSHhrUDIKK2wvSHFwQnF2RFZvZUdsR0t6NUNjMmFvdHdaZVpmL1RqN3FxZ25rOEJuWGNHYVpwNG1QK1YxR1BQTzBYMVltOWEKKzVZZXJ4Ny9tOU1NL1JTOFE1cHpsZTNSS3hJdVZwN2lraDZwOW96RG82RXJFbjJRdENwdmoycnhpcEtlekFybTcKK0VvdWVHdDl2cy9KaldOaWVMVXhqbDhlZldTS2tCZWFxeFNGSFZpamtEanNrblc5RXorTlBmWkIxTEs4dXRCZHEKK2x5VkJwanI2TWpiWXF2blJpTlpyYk0vZzlMY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOUXVxOExGMjFsZCtYSTgKKzBQUERuL1VKVWhsZ01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbTVsblVqT2FPNFdhclY5NWhGYjJGU2VGUDcxbTRZYWNSUHJTL3lQYmJnWHQKKzBVWWNQbVAwS1RLeVNqRjdSWmRKRzNvaHY2S2VTTDZIN2IzZkpMQXR2NUtyWkZydkFUeW12RFdMMVpoTlljSEsKK0pwWXJMM2NtZjhISnFOYU1aVG1Cc0VFamM5M3RwYUxBWW1jQkVsTzJjMWpPOGxaNk0yRmw4SDZHa2hDZW1mbnEKK1NmcFczaWcyTjlqeHJ5S010Y1VaQ25YaE9kZUw5Z2dmYTAyRE5NYm1PMnRTc0NMeXExQXRFcUlnaTF5YjlkU00KKzFocUVEQnc0ZlUrai96WkF1cU8yaW5GT3YwQXd0YVNaVSsxU3E4YlE0bExOQk5ORHJaQnl0dFRmTUQzMU9zWHYKKzBUWW84S0prR0hSSm9vSlZJVERyYWh6UERTTmg5ZURKY1c3M0dwTSs5dGZwenc0eStXZWQ4Qm03Q21paGtYeS8KK3BydDBMSDFyWVVKejNnYzZpTEJaUjZmSzRoMEVOWEc0c1BBK2lEeHF4RmNMdVJReEEybUlPK2lYVzJqS3RaaGEKK3FXcVlLd3JKQnVZQUVpSnpKZ2R0VS85ZjRSdHFDd0JneXFSQVVrcllsL2VHTEhaTmJ2UFFCU3Y5bmVpbHB6MVgKK1IyNTNIa0tsdFZwaStaaEhyT3dONWttdjIwRFQzVjlqWDZGR2dtelhqcXR0bXJacHh6aGhScnNMV1BBM3I4b08KK2hHWnNmTGxraC9ERXN3NHdZekxWUGNvLzMzZm1vQ2R3OTlWZlMzNHpiZmczejEyNEt4SUlUZnRRendoMkI0Q3cKK0hKZ2M0ZHFoYkhOOG9WV0lSa2ZXOGZWdDlRK012ZGJTNGVYUmFZMTVuZlF3SmptYlYvMVM3TmhBcHhUMkpSRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIEMwMDQ0RTNCMjNGNDNCMjg1NEJCNzZBRDRGREQ3OUJDNjI5ODZDNTUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWV3UTMxcG15MStHNEFBQUFBQUI3REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlPVm9YRFRJMU1ESXdOakl4TXpBeU9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxRE1EQTBORVV6UWpJelJqUXpRakk0TlRSQ1FqYzJRVVEwUmtSRU56bENRell5T1RnMgorUXpVMU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBelJ6L0NBYm9ESC9uNk9CZworOVk4VjIxTTlIWVVFWWhIeG5QM295T1N6bmRMeTdmelgyK05lVDNZckxROEhZNVZZeXRja3UyQ1RZZ3Bhcm9XQQora3hnVU5xb3VRQXgrbDZxVngvRjBmRmI5R3JKREo3Sk8wdXg3djZSVTJ4Q1NuL01rUmhsRDV3TTZDamFSeVFpWgorODBzdFZvbmp6ZVMyYTE1YkszdDRtbGVJNTdORHU4K25hY2xjcVdhMGxIZXlreVR5SHIvdTNtMmlvOGVBb0o4TAorNGd1cTNURmJzcWZNQ241Vk1FWmZXMWlUV1RuZlFVYXJabU5RQUxpRENyVDVpeFdBYW95M2NtNGpDQmc4WVlXQgorcjRWZU4wSnZuWGs4S0FvUHpPdkc5bGhibzRoQ29HbVQwRmFWd2N4YkFvck5meitHckp4ZS9ZdGVPdjg2Y1gwZworTllEK25tbHJmenFQUDR5TEE3U1ZjSHoydGs4V2d6TjdWUmY0MXBhMlRiUjFHWWJwV2p4SWFteFpVSHgxNm5NQQoraGpJMDIwU05xZzNtMmNJTWRtcEROVjZKa3d3bGh4VWZEd014TmlXMC9tK2ZhWDJOQnFXa1ZxUGExeGFnajA3ZworTXpVTWcvalBybVJVNElXanBIakJmNkdqU1VlQzZsNCtHVS92ZjJjK0t4MzNuYU5NVnVSV2JCTHpLMVVQWElaZQorS3hJQkVNWVJXd1lPVXlNNm1Ld2xoMkp0K0pZZTAwcWZnQkZxUVlGQlJhendEMkFsdmNjL2ZoVG5INTBhSThUNgorcHE4UDRsODJ3Y05DdCswK3kzN2dNTUgvQXg2YS85WGlhS3N3ajdUZ01ackd3bEpybGd0UUEzR1VQV1pMdDNybgorWmJ1TFByM0x3QnRsN2xrNjFyNjcxQUhUNUxFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNINlN4dlJmMHVEa0EwQgorT3FEeWlYRlNCVndWTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFSUjk0cm43L0JNcUFxeDFjWW1ydWEzNFNBVUJiOXZrRTBNUWJWQklnV0orcworaTh0SW5ralVIVHhDMVBSSGdnUjZDTzJ0a2haM3padzRDeFVnYzR6ZW5vS2t3NHZFMDlQL1BhNWZsNmk3NEl4YQorTUo0aFJ5aHZScVNMd0YzMlRzZytxWnVhd0xLQ3F6RmpLdVkvbGZ3ZEd0YlZNRksvVjNZbmx3Wm1jUEN6aGluMQorT0J3S0hWWW1xQndLeHREU0pwbTlNbU9taFJwR2JMZ0QrNStuNWdTM0xNSmdxby9xTnJzT0xNV3RLYzNYRklWNQoreDlCbWd0UVJHMS9hSWprTmFnTVVUenJ5ZnlMZ2RLYXR0cEhiWkEydFBHOGpiTkFXNC9mbisxSkNxdWQweC9lTworRVA5NEwwNjZ3L0FvaXhJUmgvclpXaW8rMC9oekpmOTlxZXRhcTA1SVVrREZxQUhKekJ2UDF6N3M5S0tSbllYMAorT3ZzT0wvVDhtZ01lRUZXVG0yeGhOcGFNaDhWc2VDZ2ZWVDhnYisrRDZ4SG85TWZuNzhFZEhBRmdDbldwR1N3SgorSU45bGhLS2txYWc1TGFzYVRKejBvU0ttL3NRWURncHFOVnFORm9PQWNaRGVDa1lZaTdrUzlWbk0rZk8yWFJkVQord00rT2Uwd3BCTmZFZGp3cXpNQlVMRGM5MW91ZitaU3pPdE8vdHdwamxESUdmMnl4S01vdldKc2RZU01lVXB4aAorUG9UMkI1Q0UyRGJGdDE3RXZwWDROUVlHbkhCYWR0QTViQnhkM2FhallZdkZ2ajZ3bk1LSnBnWTNYZ2xGOUFRZQora3JBVmxxYm5CYnJOTzQwaXNPYWx0eTViNlMwWkhYQ1RndTE1bHFRQnQwaHk1NzlsR1IwNlExWDVxVHQzbDhNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgQzdFRTFEOUNGNkEyOTFBMDZFNEY1Qjg4Q0VCMjVDQUVFMTJGODI3QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaDlyRUxaUjMvNmR2UUFBQUFBQ0h6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeU1sb1hEVEkxTURJeE5ESXhORE15TWxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFETjBWRk1VUTVRMFkyUVRJNU1VRXdOa1UwUmpWQ09EaERSVUl5TlVOQlJVVXhNa1k0CitNamRDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFqZFZzMnZZcFhYWWFaK1VuCitaRTdqR0U3OGowRnVKbzlBeG9weldLOWwvVi9VYVJOYUlsQ0RYSVZZZnE3TUgycXMxZ1U5UTlFaE1VS2s1UENOCitGWjN4eDM0a2N3MmJMQmk1OWR1Yk0xNjVIQmppZ0Foa2RIUHNNZzBKbXhoUU8yNHJoMlprbkZta0ZWeGZSL0hKCis2Wm1ZS1BkWHZRN2JobUFUSnZnK3NwYWZFTkFRT0NGU0NndldVaDNCUzZ0ditwSmUxYWc4dVQrZTlKVlN1WjVuCitiWFNtWktzeFF6TFpMSEJGVXhEOVcySVVxb1QxZ3N1QTdZdk02R2tybks1YkErK3BmTVh1S1M4QmNLRG10UEhFCitGMmZFNVpSbUJjUjFueTlPR2d3bXhsZlJYdXhQcm9ySGpZRGE1TTVDTGFtOGV0V3dUeTVMVlBFa3c1VU5qUE1XCitFUGZDM1gxT0gyQ1FPL1ladGZVbmxqVmhoOXRSa3JwZWR2UHZRTGxOb2dBQVBLeHV5cVIwK01JaFJ2MWNnTDJRCitZQndQbVR0eGxnMTVZRmdTNmtKYUdWTmFLN1BJcVdUbFdydEhXR0ZmZUwzSlFTbW0rb1FSMUR3aEw3RUxldTdkCitHWFFkWXlVWnVnekxobk5aaDN4WnIwdXNORHhEMG1BRXBWa3JWZWN1TE1yd0RKNjF1QjhndUIyMlBmeVlONjNHCitINnA0Y2JPd0FUWU9qRTJPT2ZLWVRseVEzWHU5M3p6MFkwaXlWdGNyT0g0cVRyMDRudTZIV3RnM1llekxXeE5MCitGVC9CZzZ0V1psVkdtSGRiSVB6NUxOWTlXN0lEM1BGTVcxNGpDYnc2czBMekw0MmJUSS9mc1h6bHdFLzI4QzFVCit0cnJ2TlJ6a252bk5VMEpyQUtYRDF3RkNTb2NDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSk5GWVJNOERqOWNQTzkrCitRenhVcXVnYVgvbjRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVc5MjBIWUw0RHVuK2Q3WGF0alRQczBOVW11NUlIeFNuK0RqSWRicHdhUVQvCitDT08xUFZjZ0g1YzV3Um9QSkVKSGxZems1UFFKSmlYMVZhNzBqMnpMa1M0VkdBMW9YTUw2ZjV2dUkzZ0V1aTNDCitCMzQzTDBFaFBEM0ZxNDlIaFYzOVJ4ejRzekhkMHpTVWdzVkdWMDdDZWxiNWFPM3d6ME40ZDZVcjdJSEs1OENuCiswazhlaDdSN1Zaa1RaOUoyRk54Yjd5SXk2VVA0TmEvclEwM2lqSHVrN1U3eTdYOGlCcFREcGdVb1NCVytZeUtECitvMkxWcTB1YldsWTdIZ2YwSUZ1MmFZeXc3S1JCbjV2a1ZUZmVuQ1hoTkw0OFdaeG1FWVZaZkNONGxvajV5SXBqCitjSGRHZHhuUEo4OFUrV1JZZDg0VTNyd3FJSG1LNXp4SUN0aTgxMnREc0NOU2xiNUphQ1JLOW5rTmtyMjRTa3pRCitmazhvUVhpSDczZUg1VGU0TXhRV1VzRlVoQityek1zZ2tXdlc0amtTOFgyN05WbmFDVzM2NllMdzdPeW9iU3RoCitpc3NROWd3ZnAwWkg0K0dXUmk5aENCeUZIdlVLMXkydjVpSEw0Zlh2WnhKR1AzL3JCRFg2NjlFQ1pTTVE4LzcrCitnZWpLTUoyV05KVXpJajZrZnVZdXVJcXNtdG9UdEp6YTUzbE40MEJiRHZFVVV2dXF0WmJQREZzZzBDZkx4cVE0CitvWkxzdGdpb2ROL3FkOXQ5aHA1aGFialRKeDc5OUhYaWRYdGVOSWdZVVdkQlFybjE2SGZycEY3Mmsyckk4NnBrCituMUNrd1BXR3hpU2Nwem1KYjNSOTlGaFRwZjJ3VklTbkNjbTBrSFBpVkF5NFlqS2dtLzBwYW9CYXdCOE1FLzQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCBDODhDNzVGQjA2MjcwQkY3RUExMjQ0RkI5QzI1REZEMjA5QjdBQkNEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpQUNpUU4wRlAzKyt3QUFBQUFDSURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE15TTFvWERUSTFNREl4TkRJeE5ETXlNMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMURPRGhETnpWR1FqQTJNamN3UWtZM1JVRXhNalEwUmtJNVF6STFSRVpFTWpBNVFqZEIKK1FrTkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWc2bW1yUXVGRW96dTU0NUwKKzRUZG5nZ3VLRGtVaDlJN3dFTUF1WW90RllvMXNyVURvL21abG84MTBSZmVxVWY4ZzZEQmppekRoSUZNcng2ekMKK0drdURRMW9udFZ4TFYycGplMUtRV2loT3dSMThBUHovRGJaZFV6Y2xIMnJ5Q3ZGcFF4bVdpOHM0V1NKV3hJanAKK3U1RGJpMW1icGRoQUM4M3ZvNkVESXg2SExZakxQMHN4RWdZMFZkYXJvaDVDbDJ5YjI0WGtoMko2cVh5SVNabnYKKzBnSE9Lb3gvWE0zRWRNMXZURVpkQjZFa1oxREdXUCs4aFFZSlJGdVFOVTVoNWxFdHBYNkZMOStOekdmRHpUOVcKK0prUjdQWHJ4OGRwRE00K3J4VTQwbE0wRzdRckkxS2h3cFc2dUkvNThTRENuQkxjM0RQL3FvZmw0eEx3cWtITVkKK0RGK29EZkpBQm1QQk1kaVI1VFVpRjZ6clpMK3p2WVdnTjNNTEpvN2ZnMnpDb3pxaXhUSWI4MmpDVm1xaHJ4QjQKK1d5RWkxbkNBaDBBT1RaUVFoOGwvZ1RGV3JkbHFWOE5vZ2tWMVJRSWNsWHFxNHA0TXo1bmtwSENpVUdrUjcvY2YKK2FGdTFUbkY4U0l1akg2eGVTTWpNellGQTlLdTI1eGlmdmpFa29SeHdac1BBSmEyOGVFSlpMQlJ2NDlKNHhHbDUKK0d6K3FPWXdJMFdUWnNUZjRXV0NmcGlzb3kwQmxabkFyU1RlM3VSWVQvWklqbnp6MGxDcWNWekpzVU56ZTFzQ3cKK2tVWTF2VUNDWGVTNXJtNC9sdlp1N05kclh2MkxSVXR3L2pGekRxSEJ0V3cydm9rYzllVVlhLzFPc3B1MjE2aEQKK0xHUnd4MDN4QkxpQ3NVKzdZTFdwRlZhYkhBTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLc3J5RlJ3bkIwUVJFU0sKK1E1dmhKNGpQNGgySk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUkN2NjRtMmFGcXRpOS9uQnQ1WmQycTBFUUVQcnN2ZXNlbVBYVy81L2VUdWwKK2NEc2U0WmlRYUx1ZlAwR1ZFZ09kZ2VjWVZiK2lOQ2xFMVJEMCtvWFRJSnNvSk9Wa3JNaWFjTnZxV21ETERIUUYKKytDaDZJbHp2Q3h1SWVac1loeDd0dzRxb210dzdJNk1STkZtdlp5R3d6S25FVk5pcGxUL0lBS3pwSmNnRGVWQ08KK3VtM1pFVTdjNnplL1ZzZUlvbkJwdW5NVEVXcjBSZGNQa2ZjamFha21mUEVoRHhoS3h6b1UrMUVKbGtpY2VZaWIKKzBDWWhXZXhDU3lGOStoWldxdFBUcjY1SmdrOGxkbGlxWklCdWkrWDNpaitXVjZOaTBJeHVRWkNYN0lPWEVtRzEKK3pVdHk4L2thRzJjRkgxZjQrclZ0YWtXM1NjUG9NZnEzRHhxOFFrNXZhQWhMek8yc3hBdUtlRm8zWXAxWDE5VXMKK3laVDhrOHBNR0xyRzczdFpxUzRYT3Z4SXNPTmVkYkliVmxXQkwxbVo1NjViUWhQdHJESzdtRDgwZ0NHZ0ZCU00KK3pKODVqTVdBaVYzSVM2N0lXTFAxRGxQQjAyMzFXbDFzbTlhT0tObnRPTzJiM25ybTI0SVpBYkY5TzYxSUV6MTUKK3o5aHNlRVd1dzdXOFV0dUV6bHRKdHN4V3NMS2J3UHFKaUkxNCtGeS9hTkRwWUs3MWd0cllFZ0llcWpZb0U2U2UKK3Foc1VtR2kycGtvQzc0THYwVGg2OUN3dmEyWnRlaDd4Q0pPYk1FU2NPcm9lY2xMd2dMREh0VnBGTGlycWpDcE0KK1doaCs3U0FiT252NXl3MnQ1WXFidHIxbTJpVSs4cW51UnZwR2xoMkpRcXBFb3RVYTJiQ0k4d3pFRHorbnlDTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIERBMjA2RUY1REE2Q0Y3OUNBRTkzQzVFNDcyRkZFOTQ4MDE3MkNDOEUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBVjMrTGJucUFVQXZsd0FBQUFBQlhUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3hNVEl3TWpVeU4xb1hEVEk1TVRJek1USXdNalV5TjFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFFUVRJd05rVkdOVVJCTmtOR056bERRVVU1TTBNMVJUUTNNa1pHUlRrME9EQXhOekpECitRemhGTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEwKzcvOTgyRjZGaGdJTGViCitzTCtDNkdoMnZKNWlqaVlEQVhURDYySW4wUlFxN01RNGFPTGc3OVZ2dEV5NW9GUm9Sbno4NGlRdVRZTzRSUGVoCitMNHAwUUlRR0RHVHB3amJMUW1BZ1JtN1UyZ2JtclNKQ3hkNXIzTDNhNE8wVVpsYkQ0MjhYUXJJYk5EZmRQKzhyCit4U1FJWTNvdEgyRTh5bDdwTzRwNktTSW5OeFJ5Si9xeXF4enVVbEZTMUJqZm5BdEs4dHFQVVVRejlTTURrWE8zCit6eWppc3BFdFR1eW0veHF4NGpYL3VzWlIxZzRpeHFOOTVlWTJ0Vk9SSThIa2xDUXpsMjJoKytJNGJpVlcwTEI5CitkaWhQbWJ0STJRRDRlVlc5SmVxalZsajFrK09TYkJjNFVpS0RBakNyNWlBOWFwY29PbE5IN251T3U5Zm9Gb0pQCitEeEFxWlFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVGMHpGbnB6dWNyL0p0eUZlVWZzUklwRGRzekV3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQkpOSi84CitpVlkyWk1Od0x1M21tQVBUVlU0b1VjY2gwQ3VkSnZYdktJa0hMNTJ4SVliWVlQaUpmQWRTU1hWZDlhNm40QW42CitzcytzYldRQTFrYzNpcHRNOTlDYTluQVdnRWU4ZjcyMlVqdTlvUThyMmtaK0syMUhRVmd4dXZTRktITzdjUlIrCis5MWJuRlBiK2RmYUtsbjhLRlJZcnhSc2ZuY2Y2bVRVSEcyb0lVQzY0QnYrY3g1SGpwTDlyT0t5T2krVHN2Z3hnCitHeHdLUitJWXhMVzl5SHRDRmxsUEhxVDJ1bDYrMUZGWSsxWncyYm03SDRYS2taZzNQSTBMcmIwa2pOdTdzNk8wCitLcE8wakhiQWV5NHd4MEw1OG84Z2J3ZEFpMVJOL3B1eVhGZTh4cFRVeEdSVnZLaWlKLzNTTU5XK1dJNjFzTWxuCis2aEc4MnJ3UVBSL2cxcnpSeG1jbnJVTHo0VzJTeHVuMmczRmxDa2VvL05VLyszU3pxVnhLaWNmbGNHK0tmU3NSCitJYVRnZ3YrNTdhSmFGUk0xRnBuUWRHT21Sb1g4RHI5NXlWZ1lKc2g1bWVxZUQ4ck91U1pSSWRUczZQU2g2YXpnCitzUURIUlNKOG5vQmpMU2dyOTJuS09DekkySlQ0UDNReXRZYm5ZK2I0bFc3UWxWSit6bFJtSURGcExva3o3SXlKCitVMUhwSHQ5VzdBd2Z1R0cwQncvUldjTWV0RXNmWVZFL3A0YzV0WENNb0Z0NGJ2bWdNV3BqQTlzelo0aVlzaDE2CitqUEJzNkZ1NWc0eGg2YlBVYUVOdjVEVzhzNEUxRUJZZGVjT3dxdE9UMStSMzRMc0NzanFOa3hDM2o3VFFTRnZPCis3WW1HL0VKMkdnNHVnYTBUQ0hDTWN2dGZkOXZ0UjU3ZzAwYU5HQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCBEQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJDQzhFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFtTDdRS3hyaWNEVEZnQUFBQUFDWWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamsxTUZvWERUSTFNRE15TVRJd01qazFNRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMUVRVEl3TmtWR05VUkJOa05HTnpsRFFVVTVNME0xUlRRM01rWkdSVGswT0RBeE56SkQKK1F6aEZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXFEZzJoY0pJQUp5SmpFUWMKK3RUQVJrNk11OFVqVlRxa29ab21xWUFjQVFtcGhlaGNKVUQ1bkJtV1BNRzY5ZkZFUnFkZ1VBUVgwYWtqc0ZBQkMKK1EvVms0Qk5jS0pxUHB6Nml3SytBMGl2OWpQUHpoVnBhVDdPdW84bUlFRGRsWDUvd3RIQi9iUVNiUTlpS2lZeUsKK0h4SlpDNlk4R01kTzlENHhLL0w4TEpHQ1VCVWR4ekh0SXFzb21iNEN4Y1hETGNPbThsMVYrc1dTbjlZNzVmdEsKK2s4eWhybmlsMWZvUXF0cmhHay9QTVQrOHUrczQ1VnJVZ3RmcWJ6enNSZFNhV1Q5NXFJWTZDbmY5NXdhbzVGMEoKK05OVEdPa3N6M243U0puRXo2eEJLRVJjczhRLzZobEZWMkxJV3NzR1U4UXR6RWFmV2hQb1BQK2tmY2JWcmpJMmQKKzlLNUg5dGNSYmNiZjNUSGREbTRtVVZzUEdHS3BNdkJXdmVuL09GMVd1Q0NvZ0RJNDF6d3BYRTI1MjBCWWZEdysKKzRlWDQwempJK2cyNG9hUGkrNjUzWGprbHYvOU9OYk5qalJMWkZJQ3lCMytLZ08rdnlUZnJwZUk5bm55TWVsK0YKK2lVbmxzcjF2RmFKcVdLQm9GWXNEa0pXY3hMejNTdjhIL29LSGY4YmhzZzFDYUFYNURhZWtrL2RNRFNjQVY2cFcKK3NmMjArQUMzR0YwYXZkTGpjV2piMng3SndtbURxa0Rkbjd5SGNLdXJLWklmZi9mRDJoSi8zd2E3dnp4YUFPTzEKK2NucEFNanJqb0ZPSlNzZUpoRGE5aEkxVkNlY3FFS0VISTVzS0wvQkU0SlVBVnlJL0F4MTY2Z1Q3bjFpd1VsbXUKK0gvdUVyWUY5NnF0bEhKeXIwOTZDZVNkUGMyRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMRkVEb09DaXJydTRhQjUKK2xrKzF3d0E2eklpR01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQzROWWdCZFdPd3hubExmRm54eDhsNmxZY1NFN2FwMXh2SElIeEhqcjRqUGcKKzhGYlZjRE5QamUvSERWSGZEczJlOXZ0YlRzdnhSck05Ny9CMi92YmJSYytpQXJjemZmdndhcDEyeXBxK09vK1QKKzliajJ0cUhQeEZ2S04xaTJIdmhXVDRMSk5vY2U0aDNDSTVYSHJUVFRDZkpTSllEM0VYMmRUK21leExiZTBoaC8KK3N5SWIzVXB4dlJFRUQxS3haNmxPcm1HUXpYK2RXUU5oZW40enBmdFRmeG5LanJ2OHEzdytERi9LbitNa010QTAKK2J4OXRnc3BhZG0yclpDT2xvWXRPb0w5SUlIakFkTXhtZm1zcHBub2lKYTBmOGg4eGtIQzQ1UjRZb0FMNG5PSVgKKzRaMU81SEFxVTF5Wm11ekQ1NnZXM0Z3Z3JjcGRqMGNyT1c2OEVXVFZJUW5Gb1dnTGo2NWUwS095UmU3Rk9tbWEKK0t5bEw5VkZCankzd0FFSjI1Z0FrZVN5OU5XK1pydjFOejBFeG1KMlV1YkdNbzNqRithdC94Z2ZCMCtOUDFlamEKKzhCb0k2QWd0azVqN0xtSXdjL1huZjJBU1FSZlRoRmJXdmwzNnYyalROOGswWUxTVTBjRVZpZWpZQTNjRlJxeHgKKzlJL0JLZWd1MDhXb2Y0Q0hiU0xQcEh2dU5XTDRQUVIrdGVYWjhMVnFOWER1Zmc1K2NlQ2JuR3RZUXVxYXVNSVkKK1pya04zOGFvVzNnSzZmYUdJVEUzMmVtUFZWdmZabG50akFjOHg3OTZQMUhjWFpnaWlqVlpzSW9mVXFoUENvSnEKK3pidm9nQzJlckltVml1ZHpxdUU5ZDlia3BZOThReGFlcUNJOEh0OTd5WHJoM1BJNmtOcnVrSHYzMmlabElMRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIERGNUQ2REFCNTEwMkRGMThBMUY3NzExM0Y0OTgzQzYyQ0JBRjczODUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWU3Wkw3VGZZYUJiV2dBQUFBQUI3akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpNRm9YRFRJMU1ESXdOakl4TXpBek1Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxRVJqVkVOa1JCUWpVeE1ESkVSakU0UVRGR056Y3hNVE5HTkRrNE0wTTJNa05DUVVZMworTXpnMU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcGN0Y1pDeHZXMG54MnpOZworZ0ZEV2M4M29BOEp1eGZoQWlDTlZhWUs5elVzSGMwbURPdG42a1Zzd0tmc3RLNWV0b0dNR0h0QmVJS3NXeFh0QgorSUQzbGEyUE1vNUY2TVZoK3ArSXhxbmUzTjVaOFFzODVmZjhKWkFXTzBqZ0h2Q0RSWDRTc3dNOXFYakFTanNPRgorM2pGbHJMVnBmR0l4dHIzRU1EMm43U2xjNXk4b1E1ZWtCeHNjeDZNdXZZT1A2RDllZGRYYUxDOU12aHQrbnFhTgorcldKcksyMUg3V3BSMGYzd2x2QlZyeEkzWDEvazFCaUttSkE2L3E0ZTFmWEJpMktQRkFiaDJOQXJsV25UZ3Y1dAorbVVwa000K0gvWXBpWndZZ3pUTk5oUDFjUkZVc3FBY2NydG8vL2RYSEtLampoWWhHcHVxV2FPQk8wRGk4bGxGZworY1BXc1Z4a2RpRDZyelZrcmNOZGhDTFllVTJKR2NsSlpINlhpbGkvU3pCWHpLK0dFUjRjQjlTTlFiS0hBTGcvbgorNFVHelZCWlZJMEsyQXErd25qMzF4TUZoWTJSY1VXRjA3ZDJLM3p0eVJCVXBVUEtxZVVYckJRRDJQU2dzckJNUQorWFdYeTBjYUtwbDhuSGVidGVtZ2hPWmh0Wkc1OFRqL0M1NVFLZUdjTU9zcDRQUDZJVlhYY2lzcjdKb2dMWmhZcworei9mSDQ0bi9GcUExSXB4T25SeWFGSU1ZSUptMjFnQ0NKek1NeCtkTHAwTkw3ZVBaVVBpSk5MRGhJQWhkMWNhWgorSkszNlFxK3VrSFVpVnVHNm1LR1pVOUxKczlHa2JoQkc1RGo5am5CTWpIRUVxVEJmTkhXSFB4aVp3aHV3RUtlNgorUmc3bGp4b2pUM3JFSzF1NXdCMzFEUVVvQUhzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkltaXpnMXI0MnpadlpZZQorcHM3Q0Q0d1dabnJ5TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFFUExmYWNWeURmWmhVYUdOQ09USmlYRlUrODZkREl3WUs5aFF4WCtEQVBkSAorNlpJK0xGRnhHTlhUaWs1aTJ1VmFJcm1HN3U0T25Ub2p0Yko2YmlUWHNmTkFHSGNqVE9LSDh6bGoyajlOdlF4RgorbTJlSm5sMUtFKzg3S1RFOUQzb3Z0T2EwdXYzcFVwbTIxYXM5cmRDbWpEUUxDOTRtQWJRTlVyVE9PZG0vYll2UQorc2JrOHp6UUZ2VThyZjlBYkRRQkdvcDgzNjJ5NE1hWFBVeDBSVjV6b1hnSno3bHpUUm9HY1BGVEhySGdNM0RvQQorQk94cmF6Y1RSRnh6dzFXQ2R5eGM5dE9aYmlpNGdqQUFHVC9qcWZ1TGIxYlZBY1hPd2hDVm9xRlpFLzVRVXoweAorYWUxUkNNa1UvVjFnNEdpNEdEdXUxaWgzWWhxY1Z1UllPZlB1MjhWd25TOS94M0VVZzdEYVRlMXYrRXdOaUpHVgorbzA0Uzl5YUk1RWMvNmF3SUZ6bTFybE10WTVyQVBoMStjNHNCdDJXN05hZU5aalNmYTZHaTJpZWFMVUtMYks2bQorVGJnemxYYVB0K05DY0lYRklUcllnMXBwYVE4YlUvMUVySmdvME1JcnU1SE9jM2lnTUN6VkZXLzJ4RXg3aW5pbAorMVF3bDNoekUyekYybWNxMXkxdDhlTXArTVpSb1NGbUhPTFZMQW56cmQ1KzREem11QTg3VUNHZlVQZW0rd0Y5SgorUXhqMTIrMFBiK25aeVRodDdRUkRBc3RjKzdVVDE0anpQenlsaTZaOUZhVmxzODZjSC9LQmt6dlFKRmsrYUd5SworTEt3dS9hSXN3QkxrSngzckxhSXdlUUFCUWIweS9lT2RvSmNwODVsVzFweERTczJneWJJTVkwMnZseDIzR0xvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgRTkwNjE3OTdFOEU1RThDNjhGOTM1RUU1RTk3NkJDOEZBMTdENzUyMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFTQUFPam5ZeEtKcEh3QUFBQUFCSURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3TVZvWERUSTVNVEl6TVRFNE1qUXdNVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMUZPVEEyTVRjNU4wVTRSVFZGT0VNMk9FWTVNelZGUlRWRk9UYzJRa000UmtFeE4wUTMKK05USXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXNJQVIrZ3M3cGhMeEl1RmcKK1owOGdVcVROOGFPb0FaY0xwQ1VnSkRGL1hUUTJGVnVBU3I4RXVoVVRkWHRZSE96N3hCVU9KREUvdndxdmI2RkYKK3IybEk0YTV3cUtydkVzNlpWazlPUG9YL1RncFpVbGF3UWswcU5rUWx6VjlhQW1LYTZvZml0b0x6TUFiUDlOL24KK21PNHJLanlGL3g5QlIxUCs0L2lXN3lMaDlsMER2QlFqMGswTzhWTHJJdjdqM1NpNFdIT0l6TnVOMXhaN3NsREcKK3ZYZThiSGNJNXJZam1RSGVDaWFmMFBDTDJrUWJwdGk0OHY2S2RrTGRxeWxveVhLMnNBaHZ4UkIzT0pubHFEei8KK0pKNjI2UWZ1aXNHUWsrWUJqT1Z4eDZldGthMEl2Z2lSbmNZOXFFTDVOMkV1Y21zNTd5VXlhV1JETW5xVEdxTVgKK1d6RzZwd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVVI2RS9XNEswK3F5aXd3V2E2NG5ZUTNhSG9Fc3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDQVdneUgKK08wMVBCN0g2V3JUbjhPSDFlTE9CL0UrbWMrdDB3azF6Z3BWQmtkUTJTbEhUNkFwSzlIeDc3UzliZzB0ZlRGcEsKK3JkWmIrMmFla1F1OWNQTUhoRS84V25TL3Z3eTcva3o3NXBTS1BHSm95NGdpN2NJanVmTStqditVNURha28zWEUKK0U3YmhIZE5FUU9oZVRDRGVuR1ZMbnozc0xWSVhiMlRubUF1ZGhxQzNRTnA4L0xJMWZMR3R2ZkVKMDVaNFNUQ0UKKzlHcGRuQ1lRVlJPT2dsYzFUR3A4Qy9oUDhmd3VMemwrak5QeW9Cblk3azA4dE9CbExwV3E4RU10a2tUQnRUb2EKK1I1NDBRNS9zMEQ4Z3VtWEVJeExaK0VpMTVTTUpnaHdxS3NaNk8wRXRNNXp4R1cwS0p3R0NEQXhlaU10NGdMZFoKK1FKSE9oWmxZQWRod2JhclZzTjc3cS96ZUJTVWFGTmExK01ndDNXZ1Y3bFNRQ3ZmdmpocDV4dWZLckxQMjhwN1MKK3drdGE0emd5dzM4bm1OSW96d2hrOURZVWxycVgxM2lPektDUnhJMS9JOFE2TWozS3pHUUx3anQySkpJOVBNQ0MKK0pqdCtLM1hCcFFsNDZVTzlsaVFoZ3RPc3pyYlVOR3JWQkdSNzZCYkU1VW5FYk9yQ2tsV3U3TkJqbWZ1bXZITTkKKzZnUXViWGZQczhzZVJVeGtEY3B5QVBqNVVUTi9EdHdRcVN6TG9ocmlpa1BscEk2TGxiVktpYWxhdUFiM1h1V3IKK0FvZHh6UUpKK0Y3NlU3ZUNjQno4UElaY3UrSmpwSFVXdFRTUThaMU1Bek9jR290eThoOWxCdUg1VUJBbkhja0oKK0dEcldQTE1lOU1SMVNrTCt4aW1kVzFQK1l0RWlSaFNOUEhWTzFRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtFWUlEIEVGRkVFQzVFMDE2MTAwODJDMEUzMTFDQkQwN0EzMjA0NDA4QjMyQjggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQW1ONkVFWjJublhidndBQUFBQUNZekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazFNRm9YRFRJMU1ETXlNVEl3TWprMU1Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxRlJrWkZSVU0xUlRBeE5qRXdNRGd5UXpCRk16RXhRMEpFTURkQk16SXdORFF3T0VJegorTWtJNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeHB0WWh1bWExc0lkR3ZwdworWlFab25FU1lQZHNGbHhiSmlBYXpORTJHdmMxakZ3Y2lpczI0blBuM1VUOGhwK3YwR1RMQ1JwTDBRUXZxYVZYeAorU2h3eUpCS3hlS2N2MzRlRmp3LzJhT1VOV2RLcTlXVmxYMWFzQnNnUzZCNEthWkJIcU9LR1FDaVRHYS9GOUVDUgoreVJWNm5nMW8zWUFCK3p3bXNaY3d1V3h0d3duN0pQRTA1a3VjUlZhTDFHUlRzWFpLRnd6aWxPT0daOXBDa05BcQorUnRjWXM3eG5ONFExVXhpWnVYR284OWdYUSttVE9LN3JOeTJJNGhxVjc4dGsyOGdpVDNrN2lJdnNEYkVMTWlndQorb2YvV1BoaVhQZFFndU5UNHVUclJFM2ZFSzFndWx2b1k0MjMvRVhSS2E5SDRvU0tWcTZOWDFrZXUzeW5ZNERDQgorWVd3R2NxZVkxY1o3eEJUdnR4YlRuRC9KS2ZIbENBMk85d3g2RStxOHdCQ013SDJDQ2ttY2xkTVpDamZqb3lpbgorSm1XNERpd2dlOTZTRTJqQnhzcjdzTndBTVVQZnJuN3dYSVVyZkdncDJHQlRFM0NOR1RvYTR4MHhIdzl5VUhTaQorSnI1VDdxWjZ1SlBjQ1VVYVJoREZ2U0Q5Vi9mSnpTaDdGc2ZuZHNhN1MxT29TMDQ1ME0rMzZRUVJuV2trT0pzcQorRHFnVG9IWXV2VE10VU9BckMwdVNLYUhKSXFnVHFoUEpEaE1SN0tFY3lUZVRsdDJNWjd2Z0dWbWJLZ2hDVGN4NQorYTEvNWdmY1ZjTjhMWkYrbG5RMEhlUGRlSmZrVlNPaHdBdS9Qa05oUEdpOC9tLzZYMWZPUWtRdFNDNndYRmdPRworSCs1RW5MaVRNbTZXR09FalRxZ2R1djVTT3pzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5tay9JTkRsaXR6TWhCVQordWU0NWpDQm14NGpCTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFiaXdGSzhsSlllaTdGSHZybjM4Sm9QS3V4TkEzTm5DckRWS0I3L1pZY2F1ZAordXVGUTVQQWsxSU83dmNuSUt3QjBlTEgrcDJQVW9ybzlWelJKbitVeHgwNTB3Y3BqY05waFBBMWs2Z2pSbFE1agorWmRBTHI0ZjJ3dU9wdXRyUzVxdWhlZ3k4QUt1QU5oeXlycnJtZVNhRFZKYUh4M1FDVSt5Z3dxTUpvbTRSUmU5YQorYUZmUkFBUzcrT2J0Y1RKMEJRVGlxSWRwUVc4VVJVVXoyZWlUc1R5cUtiSWtLRHEvQy9rS01RQTBMWFRWYitqKworME81MFZONEIwMlBaR2J5aUFOUm1vb1FIU3hzL2pZM0RVWE9JRHlvTUZvcmIzdEpnL1VBZzYzZlhzUjZKbnFYagorM2ZXNFJBM2UxR0hKR3ByTVdVQ3IrZnZLNStBTWM0RzI5UjFMQ2ZaT3c5NFVueDFJTktuWnRzZi9tNFJxQVY5UworbUFsbThET0djdnUvaHhzNkRFYWtQUmRZOGZhUXFVNWRGQW5xUFBQSnBhcWtWdW1VQ3pnMFdReGRLMS9iaFk5WQorZnlkeXB1bnY0dHlrekZxeHljeUNSSktacW5qMjRFdU01YlNJVWk0L0FtbUpUYTBtZUhvaFh2K3Y2MmNGZzNQdQorQk5qd0tHU1JRNWNNcnllQVRPTnp6NDlDQ3h0cThIL2FjcGIxL3NGalhsbVFpWVNGQ3BoeDFWaTcyQ2lpS1I3WQorWEhQTis2MlBQRE5COERNQjVhRER2SWhrR3VTRWJrTHJGeW9OakdkUG1zbFJKVTA5dGM1aS9QeHBLK2NqeUIzdworaE9Dak9mSjFJVU9KZlRpYkdHK0xGQ1dxNnRSSjVUeCs2d3ZOYmVlcjdMU2RDUUZjaTRNS2xucmJKSUF2UEw0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS0VZSUQgRjUzRTRGNDc1RTBEM0M2RTJCM0U1NkUzQUU4QUJCOTUzMTIyNjE3RiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYnZFUkM2OHlRR0JVQUFBQUFBQnV6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURrd04xb1hEVEkxTURFek1ERTVNRGt3TjFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFHTlRORk5FWTBOelZGTUVRelF6WkZNa0l6UlRVMlJUTkJSVGhCUWtJNU5UTXhNakkyCitNVGRHTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF5QS9sOWxvTFNQZXowdHg2CitGbjllOGh6ZDhrS09kWHFmbnFpcUxiZkdoQWk3S1lTYlJwZUZIajRiMUhiWVg4TDNwZktBdXZFNDJ4a1dDU3JHCisvVCtoMEhMbE1QK2FpbVl1NW9xcUNFMmN3aWxqQ2dMcEJlUEVyT0Vaa0RzS0g4VFpYclFpZnVOamM1UTVuckhNCitLV2loZXU5LzhEV2lNM0pJSUs5OFRiRlQ0eG1TSWN5SUc4T2ZuU1pxYWdxdFhkdnhVQThNOTJyZFRybXhIdW1TCitXM2xndjFMSC9GVHBKS2l0TmZXc1UxL2ZWazFyaUdXSVJ5VCtlQXkzbVhQMHhXY284OVBpUGZZQ1VHcWtHNDNhCitxNTF2KzFqbU8zbEU1NWlwaTIrNXlTOUFRbkNlZkJkTGsrN1A3OGdHckJSQXMxdlFBUVdsRVNrc0JoZm5lbHhvCitXRTc0QkdrektPUUlGL2NiNnNEUDRnakJXeGJaejdycHIwcVRMc2NBeWN4MTBiQWZUQ1M1Wkd5L3dFQjVpQlZQCis1NnhEVnp0MFh5S25kRmVCU2ZXdWM2Tmx1Tkp6Wkh0VmhtcXBBSTJ4akdqb1lvbWFjZ3pGRjVCa0wyMkFSSmpZCiswZzFGWjBpd3lteFBDU3VhbWs4SjIxcERXR2g4Tk1GWmFuNkpaeFB6Ymd1bndvYS9RRG9EY1RpTXBYQ3JwZ2R1CitjN0xiOHUyaGUzczJYZUljSHdNOEx3dHBPOTFyQ2FackttZ29hTU8xbXBxS0hkRjJmOFErOWlkaXNUTkUyZVgrCitmWVpTZ3didWVRU05pWndhNlhteVA1WDRnKzBzSkVmdkdnWURxUFZQVmNWOUVFcDdqUXRoeVM4dW5YSWZKaGtCCitxTW43REoxb3VMTDJVZ3ltZDFwYVlDRjZNRUVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUG0xSHFYRlBsZUVRbHNSCitaNU5mL3B2aUtOdElNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVRiMmM1VlZRMUtPN3RkN3R1eXc3dTlUZmlWaFpxTUlvZEhJSXN5ZjRobXo0CitCU3RsVGJFUW1XUkpVQ3J5VXZwZUxRcm1VY1o3TFRjNHI0OEQ4QWxoL3UvQjJHcmgvbHJveUdmUDlsLytSRVhXCisxYWgxMm1nYmQrYlZkMUtlRFpXWkhRbEtsRFRTcUVyMEFPbWczdUZBNjAwVWF5WlhWNFlBTUNkVXBkczFOVGJOCitXYXhOeGpNdEdkM3ZLd2ExWmVuVjJpMjJ4VWFwejUwcWZwQXlHRzU1TWloc3JPQkQ0cG1NYVZSOTVkek1ia1g5CitNR2ZERDJMV2QzbmRJZ3ZGTnJjVnYzajhxeVR6azUyaGJOcVR2TDhxZlo4cVp4M1ZheHlKVWpYK003MUFvRVRJCitWUkZUc2VCUVJCZENKN2s0aGluck5aU0c4RTFTVXlIM3YrSnV6dUh5Z0luQnQzWnh5Q3NNbHU0bGhtdWkzRXE3CitvNFZFbHhySEd3VEJXa0xYU0EwMzJ6K3JDYVFnVkFIaHc1RGVFLzdaK29kS0tadlkxVTcyYjNtUlhMNkYveGVUCitrcklNc3lBYm14c0pWT0VHWXhXcHNTRUsvL1lPYy92VjgrL2NiNm9HY3I3UWNXdnNzdzdnNW5RcWQ5TzZJNTN3CisrRmJubFd5ZmVWNnJBbmt1VFBzVHVGbnJhenNCc0o4MkExTUhTaFcyRnFkWUdZVzNoZmFmZk9JWTFmWjI0TXE0CitRWHFETG9XQ3huNjJoSGhjNE9wd0RYeWxPekVEVzhGRDFsbjNYWVI0dmtNSmNnMGxFaGsrYmRicytYUFBtSWlCCitYVHNmWjlPdzh1VC9yb1VhMXU3VlJWT0dJYWFLNEhuandscXZhY3RscnorajBmOFJINUpBeTdhd1VoZHFIYXM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLRVlJRCBGNjVDMjg5QjNEOTNCNzhGOTc4QUM4RDAxN0I3OTQ3REE5MzYzN0E1IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFtVFpuNUxDOGd5cUxBQUFBQUFDWkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamsxTVZvWERUSTFNRE15TVRJd01qazFNVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMUdOalZETWpnNVFqTkVPVE5DTnpoR09UYzRRVU00UkRBeE4wSTNPVFEzUkVFNU16WXoKK04wRTFNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWxIMXQ0eFI0SHArbjREVFAKKzd3TnBDMENtSXpCWkcvTG9MdnNqcnVmUi9HakRsdllRQzczTHYrQ3doYU9uSDNKNlkvM3VqSU1kK3V4RHNuVDEKK1ZveDQxcUFpd1hUSWJJTFN1Qmk5L09sQjhlT1VVeHROQk1zc2xhVG52emhLSXl1SDN3WG4wazA0UlgwMzI0elEKK004dVZtbXUyV2dROXJ2NzYwcmZJZmR4M1NNOEYzNnhBd04wclpWTDhXNlBmZ2RjWTRhalJ4TDlqTEJ3cDFrOGgKK2loY1JkL0loR09tbVVzZStNcU5OTWZZSDFyZTNYTXRqVXBMbmNxaG4xY2F3RGV5MzRSRGM0NjlLK2dKRktOS3YKKzhlMlJYVWE3R0xUTHUxSnQwZzM1Um5PT1NkSHhjbDN4alJJWmtOY1cyUFZpNXhmRnRUWWx5RTVPUUhuNXd2TEwKK0JKVms2eDNTY3BnY3FXMUd3ajJmZ0FjWEM1R1BPd25MZzI0aVlzcnhGSjA0M0cwQUVzcW4va0QwWnpuMkg5QjAKK0JMaXN3Qk5ub1hQbU9QT01vN05mQlVNaTNIY3l0RlRWSUlKQ1pqRmtWbjhlRlRLN1A1UlAwcXBlTmNVMXpIV0QKKzZ5dUl1VnFLWSt4MkZoWnFlZWJvSzZkb1ZzVnlvSktjSVVsVXhaL1htQkU1Y0pMdXF6WXA1cFdCbFhEZmpSYXIKK1N5cWpsQ3lYVHRnaDFwbzVHQW15eGNQOEpKVXdQKzZOUExWNkF4emJ2Ym1QN3doWDJVdGwycDVyT1ZrRnlHTm4KKzM3RVBFQk01Ry9TYkp0TDZBY04vNFJWZzhjSzhZMnhGYjJJeHBIelc3VEFoUTdSQ2dUNml3MDJRMDRXSkJjaDYKK3NvZ29QZ2lxcWJ5TWVSUjgyekhtck9GVjNTOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJUm9NSlQ0eHVLMm1TTGsKK0drdlhwSWVrS3loZk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUW4zL056WHdPdHFPRTZONTdTK1g2VFEwYzNETTJMZ3RTUk9RY3p6bUQ4ZWUKK3U2dHN1aGQ4Uk5xN1pvZHB3ZDhoSit6aGM2aFBtMFMwWXpTcHRVK2djbVN5V3AyYllDNElXL0l5M053bzV4UFYKK0JrT0JBK1I4SUJYd0ZmL0lzaXE0UnBnU2t2YmN4OXpFMlIybURTa3I0U2lOMGhwY1lyWXlpREpJT3JZVmQ0VlkKK1BtU2hmeFZLSTUwMTcrVjBpN3pnN29oNHBqSEQ4bm10OXJWVzJiUzNPbzNPSERpOWF0MXkwQXExZkc3VisveUQKK2pYR3QwSmZNSXNmbGtxcWZxUko5a293eVhTWm9OMGJoeWZ2NXgyeDNGcW94ZEFJdmIrV3lWbElLTkxzVTA1Y3EKK1A2eStySmhsMTE3ejJaQ0QrZFJldUl2NVZLeCt5VnFBaFBjUG5jY2J4V2thTWJnL3duYzhmekhxRkVOYjJDTlUKK3BnMTZJa05XM0Z4TmgxSW1HcGE1T0ZwM2c5MThTVVMyODBoSzYyNnJpc1FuQUR6eGZQTm1tOFlDNmlyWmNQNzUKK1dIS2N2a2ZHdzNrR0FBSUlqQWxqY0N4ajRLR3J4S2d3SEwxZFc0Rm5Bek44dDVpOFUwYzI0dUgyelNOdW1RSEEKK0d3VGJmQ1U2YTVGTUJQVjRjMlZiM2NKc1JSRnlxSEIxNzFvdURXVG84aVlyZVlBK0ptUDZOYW15N1RZRFN6M0kKK1duRnBqcUZGOWNpT1FiMWxUOFl5Z2VqSXJEL3dOSHU1d0lIdmNRV08xbEZpMWdueVRFb2g5WEFUQlZFQjFmS0EKK0pGNDh4R3VsRkcrMkZoYnh3T1pRR2NRdlpud1R3ZnBXSWFNRmZtNFg4eDlmano0S0dlY2tROWMydXZwZU1RUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDI1ODNDQURFMzY4RjY5QzgwRjU4RDM0QTQ4QjJERTY1M0RGRUFGOTgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQTdVRmxmakZlTnMvZ0FBQUFBQURqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRneU1Wb1hEVEk1TVRJeE9URTRORGd5TVZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFpYbEpaQzB5TlRnelEwRkVSVE0yT0VZMk9VTTRNRVkxT0VRek5FRTBPRUl5UkVVMk5UTkVSa1ZCCitSams0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFuNFdycDV6dERLTFpOVWRFCitiNlJtVzJmU0tmRWtqanB3S1BZd1JOejRJejlRVExPYVhIODI4eVhVZjJzUXNmYWp5ek5qV3lad3dyRENMSk9jCisraDhQYlcxdTJEMzF4SlVVYTE4RVpzU2lESEZEODBWRnR0RXBOTXVzamdYZnJ5bi9TWVFzVjNtK2JBcThDOGlFCitRbmN4ZGNQVzM0b1BjZkdnaFNHamQzdVRLa252Y3ZMZUVxUXpmQm9WbzlqT09RbDBhcGtXSUk2SjFkeFFDejd1CitzNXE2c0VwckNZMVpwUUF4NVQ3bmMzMkVYU3VBdnBhWGhrSVRIRjJtb3l5L3FCSENFbnQzM0g5a05La1l1L3ZWCittQUZEbWFLVU9rZFd0UWE2bCtHTjdlUzMyVXFZdnRDdC92ZjdRM2Q4TTVRa3RKT0hpUTk5c3dmK1NkclZMaUlECiszem93OHdJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVRWjhOVVVkamNubTVieHhVMWcrazNwMUg1WUl3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQWYyN1loCitES29SbSsvMWdqWFpQUFloR0p6NHU1ZHR0VXF6SWVyOGxyZ0lWTktWV2NjSk5DWGRDSjhFdThUVE1BVGZjbnNLCitOZmszdWt6ckZHSkp6SllLWHJGY3lYQTZjbkcxajFBM2pnbzNpM0d5eXlDS3ova083TG5rTkExVW85YWlFMU5QCitwVmNMR1VXbGc4YzdiK3ZhckdmUDlraVVSNk4vVlN2d3BuNkNjdWw5VE9FOFJ0bVc1M3ljNEI2UzBHM054ZGFJCitKNUtIYXVKbUpEcWpkNGZTWjdaRklTejdUY3VtejBNQ3FyNHp0ZTQ4VE5jRFRkR1BEV01CR0Fna3hrSkZvU3o1CitHOGNWVWdCUjltYWczT0JJMkNoaVJCUFdYMmlWU3ZnQ2lIamxNNFVvNXJsZHVFR29oME1KWXd4RmgzeDR0ZWVFCit1b1ZXbHBmSTZSQThoakliKzE0dXhRZWhOSHBjYVZka0NmTTZOT3VINVVJY09PT1lBUFdDb3FTc1U0SmpaamZhCitDeDRvY2kxdUg2QkoyWlg3ZVpaQ2hmRzUvb2F1SzNERmkvSXcwTjUrV2FSQVUvMS9WQVVUdUVlQTBDaEcrWGpsCitOUDVkZG1peGtYUnNvcjJlYWJoRHNmYktuYXNFR2Z3RGZXUHptVndPU1VQTW8rTkw3QktWTitJYTk0S1VPNnU3Cis2SllzK1N4MS8xRFZuRkF3UnJoWjlJcGtJYkt5RER2dE84NWxXajJYbU00WlUrRUJjeGlxQm1iSFJOOHNydGpiCitTdFJ6VDYwV29Gclp6K1RNblkxNzhXWDBIejRtcnRJaDlsM1dtMmhKbFBrZWR1REMwVHA0TU5seGdkcTJsUkJQCitCWDJpMHFzUHdTdWNCL1JjelQrb3d3V3k2R2JRUXNkdE80NHZWQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCAyNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVBRjk4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFobDVrZWtyazdOc1BRQUFBQUFDR1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14T0ZvWERUSTFNREl4TkRJeE5ETXhPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHlOVGd6UTBGRVJUTTJPRVkyT1VNNE1FWTFPRVF6TkVFME9FSXlSRVUyTlRORVJrVkIKK1JqazRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXM4STdIUDhNcHRQYTdlNDMKK2MrM3VmK1VaeEZrRXJJMmZIaEZMeUdpNmhuS3FNUE1mQVp6M1ArY3Q4NWRaMy9FU0lwMkRzSWRUWjIwQVFBdUcKK1RZTFZPdnF2cDVkZmRxNHhjMmF0UWRGQUt4MFd2Q0dFeXIxVFRDY2o2SkZWQkpQdk5sYVd6WmJnakI4ZnRjcjcKK0dLTk9yMkJxRmRxYnhPZlNUcURYVkJ2ZEZGdWk1d1pPdTIzYjRJMHhUYTRVNWNPaU9Kdk1yL0oxRTdGQzdwN3kKKzFTajE2TmRyR3VoR1hKeWtidTJyR0hzYXg1Q0lwNklRamlwYjZFRE84QnY0OTRYM0RiMWdlb0JFVkFjUUZVUmgKKzQxZUJqa2NHaU5JRjZ0MEhvWHUwTGZWYWVuTkZ3eWc1c1VVZGlyWlFqWWFqTHl3OTJOVkprNSt3K3Z1UHdsbnUKKy9CTm0va25xd202MldtMHowTDRqTTh6R094N0MvZVZzbHcxN0gzdGkzQVE1Vm1Vd0F1ZVdyK1FKTzB6eElVUm4KK0xqdkhpeUlqeGtUUDlNbEdpeURWRkJtWWdWUG9TcmNJNWFTL2JTa1F5RkZvYUNtb29OamQzcDRMSW4vUVc3aGwKK0o4Y1dNNlkyd1hSMWdGeXNkTjRVRWNuS1hyU0ZVc2JKT1E4WndGSUZlV3g4WVRWU2U0N2hjdkdVa0xVV2prSSsKKzJaWFhIaE5qRUljS3J0MC9KYVZBRFZYVHlsc0g1RDNvdW5QUGZyWFpYaGo2bURFdUdGc0d6aTlPNlFqNS9kd0oKK1JuaXJMR0EzTzR1WGJNWW5ORklkWmJyUEJualNtYjlNaG1kbHBrYlNwUWVCbVNtb0Fmd3Y4K3BiZXRMMGU1cXoKKy84dkVxZnZ5SGFEVVRSRXM0RkRobHVGaXd1Y0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZEbUlCZUxyamV3Yzl2R00KK0tlV3JaOTc1MTVpcU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUTBrdzJyY2ErR3FPTXoweTNIVTc5Q2ZGaTVaeDEzL2JMakFZQXBEVnZwakcKKzFJTGtrK0xZUTZwSVhJSUJyM1hGdE9ZcHN3SFZvUmlmYkMyYmt5bnZ6cVErbVlEUGhsUVF3Yk41T1JreFp5R1MKK1BhSEFIQ1NIZ1pjM1p0UDBhcFRnZmRXRGQxakU0K3U5clRyTkNSdGJkRzRnaXdHZ20rL29JWnFXb1pRdmRvYUoKK0RDdmtxTTNzTVM2cjhCS3hjMlp0bmZZSkZxTjBpQXcyTlk5RG0zRHBMeE5CMkVGYTlBeXZqYXJRdjFQdGo1eWoKKzNwZXhKTFRkZXNEdVpOb1o5ejBVbGo4SFMra1gvOGJ4d2F2VGpHZkJYVXovbS9UVmhQTlRlUGJHSHpWR1dJbVMKK05ralczT2xLSHZhZFVpWEJyTjF0ZnBxQ0ozSzRFT2xtak1tSldmaWRwYTExd24vUlV0UFNFdCt0cGlncVMxQXcKK0JrSUQyTUxNVnZJT3lkWE81aG1TSjJFTEI5YklaWmVKczlUKzNLbEdhNXFUS0lNZzBpV1FMVml6Z3ZNbXhBWFYKK1M3OE1OVUJtQjJyaHZQSGovSGN1S0VhQXdBbHpwQzNBWjNkNmNVOXlmSjRtSkRKL25CSDMzcGY3VWlrTSsyN3UKK085TkZuOXQrakdCUkZmTy80S1Nxc29vbFZEc1NFT2hGRCtKeFpKak5QYUh5VVVjR1BPV2hRdWhoVXNTRTlQSGkKK24vRnJkYU5VazZkaG5lcFdJVDZtSlRrdm16Uk1JdXNTQ2dxUGd5NUE0NFVDYXkvN3ZNYy9tNTNEc1JuYnM2SnMKK0ZjRFhuNEg2RkFieExLem40dnN5MXk0dXVpTkNqcnMzKzRNNjlseDlNZHZoajFYNVJpczUwZDAyMHE1NzEwYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDMyQzZFNTc2NjYzRkVFODBENjRDREQ3QjE4RTU2MDM4NjNCM0JDOEEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWViTVJjRHd1aTVNeHdBQUFBQUI1akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlORm9YRFRJMU1ESXdOakl4TXpBeU5Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwek1rTTJSVFUzTmpZMk0wWkZSVGd3UkRZMFEwUkVOMEl4T0VVMU5qQXpPRFl6UWpOQworUXpoQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMmdCcTFXUU00bVFWblM3YQorQWxjbXFVWlZqRGhNOW1KYkg1Y0RRUXUveXBqUGlNRmdMRjhLanUrZGh2MlJhR3NxbTB6VUs5TXRSVkFCNGtPbQorTUhUVTh1ZC9QeU5GZFltQ3VBMkFKWFF0NEU3YkMvdHJBRGE0Wnp5c1h3QkFxbTR4aDk2Z1Z4S21jcnNVcmo1dAorZE5zWmphQmt1Qk9LMy9SRmhpTi96MVRhSGU3cnF3VU5Ldzd6aFhObmRWM0QrM0tNM3BwcDlLeE5JM2hQMnpEcworMzJ1WWNZQ1FNRnlOa3ZmNnc2Sy9TbGV2eTBNNWtJQ1FjUS9IRGFVVFRkYklqRDA4SHkyYjNHTVNENkdiODdCQgordFQrVTFhUzZXRXR5SnVuMWNSKzRhdlBsUEQxaHJRZnNJZzVYRGJWZVJ3S3UxQXdFUm9nRTNFY2dRRTVnaUZjcQorMXpwYllGZCs3Ukd6dHhpVkl5ajh4SEV0dWZoZTl4U2VZRzFhc01YL2FoV2FFVlAyWjNiSGFVMzEwclpUdVZjRAorNUExaVlXbGxuTzZrWVlReXNTWXBBV3IvZnZoK3Ird1FjM3UycG1QbHI5Slg1SFozUDZqK2d1bFU2YThVN0E0UworNkFqZU5oZXdMVmpSa1lJNnVTN2VNZjl4MU1pcDFIYXdpR3pGWkJUdm0wczZGSkRkMVhjUnUxNTJOcVE0VExPNworUEJBTE9jd1BQZjVPYithZk55Q3NTakRCZC9LbmVmQ2swREdIc243T1JHMFFadkxrZWFLK0xxKyttS2hzbi9EOQorZ2VSZW1QMUUxaGJVcTlQM2VjWit3cDZ3Yk1OL2t2b3BqLzZoYy9Idmp1VzVkUHlsTzZKVlBwcTBaalRNNUVFNQorMFJ1WU5pVmdBRDNacnpTSUxadXEyb3l5WHQ4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkFZUGxYQUFyaUpmUVl0VwordEN6Tng4NkdhZnQwTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFoZ3lyamtKdUR5eFljT1R5QWh4MjZuUkpMYkY3dUxTbWdPUkxrbDVuMC9vSAorYS9Xc05QNlBGUWFGQUd3V2U2Vk5KdVR6UzhLOEIwdmJzNm84ZWRxUnhaaDk2K09UVnU0bnZVN3o5YmZ0OUFTYworQVVZMDdDcWQrSGQ0aVArOFgwaURlbmJQK2J3c0xEaGpaTWZMM0ZRRlRTMHRXTjBYTjZlWjd6RjBHa0pZQ0c4ZworMC9JaUg5WVp0Z0J4SGFpUTFETldTS3hHYWcvRVh3V2JvWEs5TGoyMmpUN3RJNitoTC9hZURWU1B3VXZSQVhXMgorYUhtVzdpUUtRbFdXdE1zd1VwenBnNFRKc2JJamhaVFZHMXJlWjFvM3JlbXl0WndyZFpZWC9lNkk5dldMc1JmcgorNUxWdnBsRlVmMC9HNktaWFpIZ2RlMjcrSlJqc09sZjh3bzY2bFkyR2psSUl4bUFSNkZ3a0lOSXR3d1RNS3F2dQoreHo5ekVBcHpZMjRabWZWL2dWQmxBZ0d5aDZRdkJCUU1OUEtYVHdSdWcxYWxxd1dSV0xSdWc0MEN5b3dCbkVUbworMW1hd01tMHErdWNLSXhKcURsLzZzaFVlUHdIMDFUWnJVOU8vdjYzSHRQQW9PcnFqeWtOQzhVLzNQZXJCdk1NdAorVG9Gcm9SRG5XR3FXVnUzbjhuWGlYTE1EMmNXMmlwako0SEg4U3JIVGhsT2lUb0NmYWRGWDc3dGdyRWhlejYydgorZTJIZjZINUh5UnJES3gxUnFKVnRzK3VHeCtOSlQySkRHUG1uQmhiOUJydytCWk1sOXFvY2ErUlhpeHd3NUNhbworQTlPaVpOL0pBOXlXNlZYaVdJellxTm5GL0l2N2sxcllVOHhMZ0xLenp0T1BVYjhYNGhPZDNOTmNqc2ZQRWs4PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgMzg5M2NkYmRkODczYzQyMzMzMTVlMWIxM2JhOTZhMGQyM2NjMTBjNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFCRm1weEZVaHZDUVNRQUFBQUFBRVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGd6T0ZvWERUSTVNVEl4T1RFNE5EZ3pPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMWlhsSlpDMHpPRGt6WTJSaVpHUTROek5qTkRJek16TXhOV1V4WWpFelltRTVObUV3WkRJelkyTXgKK01HTTNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTZPdkZpWnJnY0EvK2VNVmMKK0JxUnBURW9uTnFUUHFUemVlV1Z2ck1sZXdDV0dLN3lmK25nYysxSEhPNERuUVFwTWNxajFFbzRYbCt6dlhMKzYKK0lEUFIvK2RkeldacG5KU0ZHK2tTbkprNGRwaFd3WFhRU3FwWVBUSlF0QzlSRzV1bUpKQmhYQU5RbUlQTFB2QzQKK0tQRFFyYzFqdy9VUE1BZUtHUlV1RVVYWjQxNkdGZzRKNVYxQzArVCs5M1pqeUhtSUJkSVJFcmkzdDJLa1FCblIKK3FiV3JjaDVKWTRrQlZNWlprSXd2OXJPT2FhVS9CVFVSNzNyeFY5UGIwT0JMdEtnRWtVNlJzOWZ0dDloL1hrb1kKK1UvNW9tZitGVzB3ckt0Q1NLVURQMDNQUXJZYW9odm50a01sbmFaY3p3OFF6dG1PcXNRVlM0TzdwVGNRaC82enAKK3VrZXpkUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWN6aFRrMFRUNUVydC9KcnJFNkxHMVJXQzlOOHdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBVmFLdnIKKzlraE9MbHYxQzVHeFZjYlFlVldmSEtJbVIvNmQwUGxaYUNXZWVqM29Ba1R4TG9NM2hyajEybzVEZGROeGJ5L3QKKys2a0ZlejZFWjhFYlBpbldpcHp6NE5HUUFDbmJTcGMxQUtjeFJnMXJ5L013ZjVXQjQ0dzk3TmNsTFJKc2ZQL3IKK0tCVFN4TC9uc0hZZFViWG5uVnBKc2NKOFg2TldYb0RyQjNNNmNDbmE0QUtXRjV5UTlYaUhSeE9KQTBzaEpLMGwKKzVIK2k0WUFTSXpEKyt3OVQxYmUrQjRrQ0N2L3ZrRy91YTMzODh2SkZNK0NVSmlwb3VOM0FVL2pINHE4bmxSUWgKKzVmengwak5vakhZN0VJZnhZeVZSTVNEVHJSdWJ6LzhxQ2Vlb0M3aFFTS0ZDZjlxcU5hRWdsNDJtMjM1Rk1sZy8KK2xiUlF3bHRDUDVyMlErUVhrWnJqUXUyZkxJUlZNVWhNM0VtU2dieGdJblVyOWg1bWRQQkFjdkRMc3h5blJMUmgKKzFBc25RUWFVVEdVaENKNEZuY3ZyRGczbWtUYkdCRDEzNTdoTk1DNGlKR0ZFb2c3SGEycmNzR3R4QkN1alJaRFYKKzhpNzJabnhDMWNoMERJYmR1NmpIUkFUSnBQVDBVKzRRRFM4OU9kSnJxRzVmdkdGdUJNZVhLbDk1RG1ndmtYaFIKK3lySVZhQzZrTVJzQnVTM0wrTktnTGVERVczZjQ1cTNMSXBneTZ5Y0c3aDRGNy9jNGVGY0RqUXlSZnRzSE5ybXUKK1NwMWUxcS9Wc2V5KzJPMngvTzMxcnNmNVVRY3orc3dKcU94Mk5md0FXS2FPYlVQeHo5MGtxMHQxKy9wYW5hdXgKKzNXUDk4QSt4dWZCZ1FPRzE1MjBpdER4RC83Q1hkM0t0bFQyWjhRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDQzMzI1YWY1NTAwNDA2NTQ4OTMwY2RhOWE2N2RjNzgwNjdiOTc4MDEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQmNzTm1SbzF5a0VuZ0FBQUFBQUZ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRreE1sb1hEVEk1TVRJeE9URTRORGt4TWxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFpYbEpaQzAwTXpNeU5XRm1OVFV3TURRd05qVTBPRGt6TUdOa1lUbGhOamRrWXpjNE1EWTNZamszCitPREF4TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFuUE9pbmMyN0ZhRExPMUlaCit2amIvcmNtMXhiVXorZzBuMDZVNWNDTEJERVFpZUVCNERUM2lxbUREVmxTU2FLN3NmVGtlUTVyeVVTWlFyTy8wCis3UU85QW5vOTUvRnk4VHpJRC8yclJyQS9ubm85UmNiVURydytVMFBKaE14aEhSdzlCOXNHUUFSVjZaWkp5UEI0CitqNDM1WXVBYklwQWxidDJ2Y2Vpd2RZbHJROEpSRWNEbmcrL2NGazJhTnYyT1JiWFkwVjN1MDNQc3VsNUp3cGZICitPeEszRDRIMG9RU00rT2FMVzBxZUNzSUxKbU03TkNyRlVJemVkc3QrdnAwU2lPTWRCT1kzSU81amVyV2gzVlVqCityamFES0Vtd2JIa2hBMUxsZlRxOVl2MTVrdXpveHg4UEU5TW5KNmlpeWlaM0srYzY5K0ZkMWo5a3I5MDQzNmNwCitoYWdwUFFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVU1KzQwUmdWY3V5cU9RZzFqREExbkZGb2RDa1V3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ2RKK1N0Citna3FFMlMxSGNBV25TdmJkNmtKN1c0TUp1SnY2QlljSnRlelh5OTNhSnJtV2tpdElKUGtsenNHbDBPckVxMlc5Cis4UGdCSGF0RklBd0FtOTRhcHVzZDhQbzNIdlNGUDlMaVppcmZkNjRXaFFpZEZrRThja3ZGWVhVZEUyL0d4WG5pCisxR3dvRjk3MVVIbGJ2VTJoYkx0bDRZTU9EQ0NHM1hXUHBLaFdIRDVpeXV3T1hRSmRTOXdZQ0NXNGpuMVFPdmhLCitOV09mc2xRWk51UnpWdXpvR0tBdmg3eE1TUkROdjZVM2YzbEJvK1FFOVFSL0l3a3JQNGxMU1d2elg0SHBiVEZxCitZdUljUENLV1MzTlU1ZVRkYzJkcHhZaWhpWEtUSzNlYXlVQ3VpZUowWEZVSDQ5ZlpQbEh6S1REZnR6c2FGelg3CitPdUM1T0ZGYUZpcDRCZVJVVUxqWmFFVHpVSWcrZEVKK3RvdjN3cjhoaFFUbnRkaGdHV3owVURxTGdqNnI0d0FiCitnSUdFemh3UjdkQy9ML3FEMHc4TzhIY1lUTmpWMklicFdOdCtzc1pkamtRVW5GMUdLMHJvejdEL0R5RmVTbmtRCitPNGIzdnp1VFlMTXVWdGhtdU9RajNGNENCSkFKV0dqeW8zb3J1RWxqNjBaNVlNeXFQUWhnb0QwRTd6Zk5lZFhBCitIeEM5bm84U1Bkb1NCeWpCakdROEJKVW1UQXdWS3dHQU1mMTdpZkIwSVpwOU0vTUlhYkRzZVZiWHB5OGNLM2pWCitwOFNXbGFOSGFodFFxazc3a04vcVpMelFnLzRvczlRYUFnR0V6VlZ3aUlMN0pha1hCNExUSUtkWGY3SFdNUHJuCittdHgreUtuRU1RcTE0Q1ZISi9wVGoxZGorWWhTekpiMjFKcmxCQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCA0QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJFQjNECis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUZvTThUK2p1QWJoTndBQUFBQUFXakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNRFl4TmpJd05UZ3dOVm9YRFRJNU1USXpNVEl3TlRnd05Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxaWGxKWkMwMFFUYzJPVVZDTlVRNU0wTTRNek5CTlRVd01FWXhSakk0TVRNeU5FVkZSakF6UmtKRgorUWpORU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcWdlbzVZYVZPVlFvdlI5TgorTEFSb0tHLzlPVzdQR1JaTUVtYTdxTEkvZjZrWFIrb01Tc1Q3WnN4V0g1bDhDVDEyWEZqd0ltVzhLUU9jaGl2WQorQlNXZXN3SG5EZ1R2STJWSitMQkh3VHRzdDBWaU9CR1M3NVlRWjZEZzVZcXltM25xU1lSVUc0WVJjdE45dThDYworM21FNFNCZXRjbnR3akFQMnhmLzVCMzVhb0xPak9tODFhclMzaWQ5d2JsWW9ROTlrdjQ4TmEwRHNobTE0K0VYZAorQXQ2MjhPQlVVeWxnYzFOSXRaaVJHdzVkZ3U0NVpyRVZHdFRTL2lxK3BZMU5OSkI5R2RhZ3VlSW9tK3krMks2NAordzArMVljVHhieHJPQkdoRzJiTGZCYnlON2wxZ1VkaWphTVQ1ejBWd0J1N0hneUtJV3FXUmxjekozUmMxREIvSQorVlJsNGp3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FValU5WC9YYkVHUURkamlxRDVwczRSdU1iOEE0d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFRTjJEaAorUmd3TFdXTmVCQWd0RXU4ZUljSUY2TGozU0w1K1hqdHY2dGlLejZ3RzdDaEhjeitQK2x6dlR4Mm9oeFZLbG5hUworYVd4T3B5NVU2T05hVStyVzVQZ3dYT0ZQR2lCY3plUDdydzkwUi9keGM4U3ZRSnRWNTNSdzF2WFUrbmZEMXZWYQorWi90c3RHcW81a2dXWk84cDJobmFhNlhOZEJlOGtaS1FwMEZYRzRjZFVUdkFCWE5ZdmoxUUhoam02cFFwVXJYcgoreXBZV0tkdmtSdWNDN3lpaHdIcWFMMndwUlZxUHM2UGNuQ2Z0aXZpUmdUR0ZMdSs2SGFQRWtzUUYrKzZJV0R0ZworekhyMUVUVjI0VHRQM1VzUk1XTSsxdTVBbFZqM2xrTkx6bENraGFmTmRYdmlRK1JUbU1WanhkWldqMnV6RzJESgorVDYzdVZwUTBQUjdzTW51dkp4WVJkbk1POUwxNkw2c3hEdmtPN3JyWVBsREhDeVRxZ2xlVkNkOXVTV2NWYzhtbQorWGU3NHM2MkE5ajU5c2JGRUMrRlN2dXVQWFQ0QVU1VFFsbXBWRHlwN0tKbi8vaUVkeWVvdDc2OUlnSDJSNEJ6eQorS1FqQXYzb0RjSDVVYm01bGJMMjY3d2hPNkZPNHF2Z3daY3dqRUY2RUhxUnljV2ZGUi9VRS9hU3pZT2MrSHlWMQorV2k2eWlsS0pWeUxQaHVuMmw2K2hZbTREQnVBQTBhUUhXckhIdm9BVzBmWnlCT0EwSWYwcUpOdFZEbXBOYnM0bAorZ0dJcVZ5KzV2YlJRWG90bEtNcU8wM1ljQ3VISVFTU0pmd2FaNE5SdS9PVDU4NjlNbC9EMlVMbWxGWnZvZzhmagorcmZxTWllZ1RjbWFoZm9oT3FuRGsxYVZndStid25IKzZiOE5aUGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgNEE3NjlFQjVEOTNDODMzQTU1MDBGMUYyODEzMjRFRUYwM0ZCRUIzRCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaE5HdFpWY1VMdDA1QUFBQUFBQ0V6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeE0xb1hEVEkxTURJeE5ESXhORE14TTFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzAwUVRjMk9VVkNOVVE1TTBNNE16TkJOVFV3TUVZeFJqSTRNVE15TkVWRlJqQXpSa0pGCitRak5FTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFuSVZtTFBMRWtnalZYVjhoCitiZGVZU1JxVW01TFhKZHNiN0hreVRmaHBQQmlEL2dMdTZsVzJqUXJpVDNKNnpSdGFJQlBITGpKYnJGRVpuM3F3CitkbVFBOFl3QWo2N1dIVjIyTThkWURvYnhzZUs4U2dXSVlWQm5seExQZUN5UEk5VnU5SUJNVk5qZCtQNXoyR0hzCiswS3FWVDR0OWxDRnlhQm9BR1lkRHpmM1hOYUZ6N2JGa0hXaVZ5YnI5a01RNEVkZmxXL3A5TS9pbHo2eUNyN0gxCitjRDZoN1VoK2tDVncxSm4xY0d4cVlwUWMzdVZGVUFVU3oyMFRtVDFKb2t2eE1OZWphUlFON1hqZEdlQXNHd25HCis0cG5Rb1JJc2pzRDUrcXl1dFFSVWYwaVNzNDhpclN3MUd4YkN2RFRiTmNvc0NtMG4zUUE3MjdEb0pDMU5rVFZECitWS3JXaDVTY3dKVmZtdHBlcWtuSFVUODh4QThTSTc4RjVKTlBDbmxwZHlHdDFZcjdTZEh1dkNHZktUaEMxbGxvCiszbGM0b3l1VSs0L2UzbmErZ3NQelBaQ0M1Vmd4MS94aXZwaTIrMjVQR0hUbUtJdkdHeTM3RHNCbDV0b2Q5RmRICitjOXJ1a0E4YTR1QVdZb1gxUWZCL1NXWkxSRzZuendWWkt6WWN0QyttV240aHlNZlVpaHdqd3kveit5TzlCWVg3Cit1V2k3WTE3RlRhZ2JFNC95dzh1MGhSbG5ZckhYaG1VZXNJOWJnK3pGdlNUNFNSUkJiejN1MFovTzhPYXQwb0ZVCitybWNyY0Q3akxFRHgrZWdOWURDWnpBamFrYi93K2NTS2xnbjR0K1JuL0FvS2pESk0wM3NkdzZwcytZdDNXWG5OCitRdjNXR2xBMzhrYzRLNFdSTjN4YVlnTzA5ZE1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSmdiZkdnRHY1V3RxSVRtCiswaENlcWx5TFJkbE1NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVQvaGRlcnZreko5Smp4cXRzZUFYT1hRZDhWTlkyUzVCbDFHYmhheEVqM3pvCitvK3ZEa3lSKzY1emkvb1ZZbVczUlJYUzJZck9YN0xNVjdSL3BNRXdrcDZHa2tjL0s4cC9nMEw5WXprallsTnVLCis0Y2xQOUlhSWJHRkZsNlltcUFpZlFvRllabXhySlRoSExsTGZQNGlxV01QMUVGWkt2OVhYcUJQWXVXbTNJbXk1CitPQXkxalB5UVM2U2JkUGh4TGFDcVV1dW14VDY1cDgyUUdsUWt6NVA1cDVSbVN3UEZ4em0vVTJmcXE2MGlFZ1N0CitZWExmMVF6TDVKc3pRMmtXTEVkT3doVmJtSEtFcGJYOVJYb29zbkJCLzFRTFpoNldybTJZRjB4NzJWMXpLdW5uCitaTlJXcWdSTHZMa0JSNUUvdisyVC9IZFdRcmN0cmErRFB5VnVQMjNlT1hyV0lxZEE3a0JmQXZwMUhya0hVMUxoCitlci8zUzE4TlNKSU5ZODAyam5sQWJOUDBKVi9UbjcwRDV3UWhONThkVyt6SmlKUi9GWWJVWUt5cGNMUms0OFRICit5K0JpQ2J3TFNHV29qNW01a2RjZXd4N0RDNTRRcGNWdGo5RzJCVUhMRlBXNnMvYVZ1NEtwVXMxRm9STkFGZVRhCitoUjNmbFhaWFlvU0N2T2cvZkRSNXNaaTFpSEt1bDd0WlZiMEZ4bzdoM09MUklwYUdYVkVLbjV1M0VFbXprWHhECitxM1kzQXNLNjEwUDZkcEtSR2NIRkowNlIwNE5JOTVHZ3dYOVJYTlBJTERFTEI3QTNhd1Q2SXdjZUc3NkhGa3VNCitFeHUxODhOSFI3T0s0cGdOMUVWM2lucEhCejhhUTZwdll2YUlWelpzQkplazJFZXBscXBmQlFUSjFZbTRnQUU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCA0YzRiNGQ2NDg5MDhlNDViZmU1YTEwZDM2Mzg3YTY4OGFlYzFjZjc4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUFMMFdtd1V5WjZhZVFBQUFBQUFBakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EY3hNVm9YRFRJNU1USXhPVEU0TkRjeE1Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxaWGxKWkMwMFl6UmlOR1EyTkRnNU1EaGxORFZpWm1VMVlURXdaRE0yTXpnM1lUWTRPR0ZsWXpGagorWmpjNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBc2VVMDhkUThUa1RQNHZuKworNTFJQkhvTE00K0hpYUhQNHE5K2hVSG1TOTltVXQ1emp3RmVQMHRGdERSYUJnSE1JOUJUT3BPQ2ZocGExY0dOaAorUlZWT3ZsVzQwdktEblZzWjdoVkRhcmN6UzhtUEdjTHpucENWZGpQT3ptUnQ4Umo4SjhORkYzZlpKbEZ1eTJyQgorZnJsVnNyb0ltKytmRHdaaW95b29wMDAxNUplMzBTVWxTRnIrcWQ4MU9GT3MxMXhQd0RWMmttdnRvNSt0bm1sZgora1prV3o3YUZGYzhIcXF1K1lYREtuY0ptbHgrNkp6Snh3TGxhTFdRa0RESnZ4U2RmNlc5dkM4R2tmWnNtUjlDQgorTWdGNGV6UVpXYktzWVpzcjkzbkpqSENyZDJmT2YxTkpoV082QzNBdEJOa2JKMEhWL2piSzBNKzV5S3dtc1JvQgorK2lVRjBRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVU1BMSnFQRGxMa0tJdTJRbnhjY0FPM1RLUXprd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNPaEtidgordWRrRk9FT09pcjZCWE9oMWJ2c0RNb2JyMFN0aDA3OWhPZS9OdFBIc1NBSHFCTzRiN2xTRXppeFNmTGhmSVFCSQorM1d0TFhVODZXbXBHUjFPbnVNMlZPRm5DREVwc3FEQ1VvV09nZDBGNWpSVnFaV1Y4TUVJTDdVYStHS3NXTWxxagorOXpQc1drWU5YMGh4MW9HZWpwMTJ3TUdLdllJMCtQRE4yMTFNbU96Rnhrc05vWkc5NDc2bHRURDQ3dzVSVUNMTAorVWMrMWwwMlR5MkFQOEhPdmlMamw2bzVKY2hYYllpS1FXSE1oYkdEOVZNQmxzRU1FNytON2FJeFpvNjJLWFBORgorR2M4aXlMTmZTVGFxRlZzSVJzUlZTYkZDWDNrbEtQajZKOW5hSE14NVhMWjJzbXBxRFd2WVRCRFpWc2hOR3kwdworT2tod3N2bkpMelB5Z2lUeGxaRHBLVXpJeFZ2S1V0MFJzdXRnck1MNjZ6QldSb1JEb08wYTV6RHp4c2IrRjRNdworNUN0UVZFN3ZDbGJkVnhUSEJwK2R4Zytwemd6bWh6amVrWldGNVd6QkdpazZWRkJUZ2Z6OXI1S3l4dEJ5dU9rKworT1V0RFFaVEZudUVGTk5uK0dDYU1nNk5LSE9WazYxRGpSR01Hc1VJOGcyOVZ3UEpkM0FzTC9WNnZmK1NpVTczZgorekJZcHlkQml0WnpyUmU1S1BjMU5rRFBWZ21IQ3lnclhVNzVRMU5YdFZKMlRTaDR3d3hmRzhoOUp3STZUOU9zYQorZU1saHNBWU5HNmJ2a2xyRU9xb1BDVXlUeUNEWUhLTFVGdGRRZmcxdllCQnVZYmhXUEVOR3Vnc2I1V1YxMDI1RAorQlBJcFUvdkpMd052R3BodGlqcnpIN1MyaEJxY3pQK1JIWXhOZEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgNjU5NTdDQUUxMkVGMUIxQTg3NUQ5NTFBOTQyNUIxQkMxRDJCM0JEMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFHQ1BlSnVNdEJ3OEtnQUFBQUFBWURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTURZeE5qSXdOVGd3T0ZvWERUSTVNVEl6TVRJd05UZ3dPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMWlhsSlpDMDJOVGsxTjBOQlJURXlSVVl4UWpGQk9EYzFSRGsxTVVFNU5ESTFRakZDUXpGRU1rSXoKK1FrUXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTk0RUtwL1dwNEdMUE9UeUEKK0I2dEZaZktJMEFValhBRC9TbG9TSmNMb2l1bVc4NXFOQSt6VXd5SlNhWWxldFR5bkx1VWV6amJtZmhyS1htME4KK1ErbEt6WmtQSUFaUExlbWYyY1hlN3NoYXF1NmxHam84Mkx5WlJoK1M5L2UyeXliaUZrWE1KTGZRVWI1cG1PMUYKK09zSlFnTUFaM0hwOXRJb0JjVE1BL3NlZEcxODgvaVEwdmJpSzdHeG1XSkZkK002VFBQSFc1eDlqMFd4b3dIVWkKK0p4MXNIVkNGUVE2RDBxRkpDYUROb2NXWlJCSnV4U1FaeCs5cVcrVlMyUi8zL00zRFZNWWNXVDdFYWdPdVQvYVUKK3VsMnppOFhkS2NCalgzaHRyZ0d5YnFhUXNocm1rM3c1bis5bEUwQ3lxbHR3b0FCQkFCdUpoQXhBUFNPZkcwQSsKK096K1Ird0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWlxdUk4Qit3Nk5sbXBIalJoQXk5YmNlMDVxQXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDUE1Kc2kKKzZ3ZnVEU3IxYXFLRWJZclZ0OXhUS0tjVTdCTm81UWhRcWZYamRzUUk1bEhweU1Wd2RDRkR5R1JJbTIwZnBFMGIKK0RjUms0NGVvNm9WU0o4UDY4UlVvLzVwdUtYNEpra2tLY0FoUTZraFB4VEMxVjkyQkVzS1llZkR0am1sVER4UlYKK1ZDWVYwSmFtL0MvT3RSMTF3VHRWSXA3RFYzTlZZYlFyUnFuZ2d6alRZSnArbFYwRDMzWVRZNDhJbzlRbnJUcUEKK1VaUFl1eGZCc0I2N3l1RzBTRnVoZXJibDBGSzZYNjV1ZkNsYXpqbko1N0xoMTJ3cXRhSmZVMmF0aVZGTnJETWEKK3lNZ1FFZUVGZ0MxbnlxR0JjTVBqdnZuakRCcDNLakJIQkhacnhZNlNFdm02MENvZ3RZVUpNc29ES2crSXVjMmYKKzA4YXllRjFobnJZVDk5eGVNSG01a0FmR0tidmRtWDE0VFluUkd1VHQ5eE5oY0tEYTZIcjNRVWpGK2Ftc2tKeG0KK2Z6TlpVN2lvK0p5V0NvMk8xMlFBL3VKdjBERmsrOWlQamVyOGQ2SkFFelpuZUkxTjBLeklIS2VCMGdTeWJyV00KK3B5TUloM3QxNXJCaUd2WTVKWFR5Zm1UdkFKd1FNYXdsdzlmZHNPUit2TEd1K1pmMWV5Q2RiMExjazVrbURieVMKKzdxQm4xU0lVUitvcVZmRTVRbDZHMTFqdDN5NFFidnNoZFBqVG1zdldrVHk1anpGSW9qN242bjRTekFWS1BvUkIKK0xvdVBaMmMwMnlJeTZQTVg2UnVBSGgvZXFBSXBqWFFWMHpOMmNvODZxOFdjaGVZZTcraGRKSTVHVmhHa1R0MkgKK1NWS205Y3p3YXhYb09QUmJ2RWliN3luTjgrNVhudUtKSWk5VDlBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDY1OTU3Q0FFMTJFRjFCMUE4NzVEOTUxQTk0MjVCMUJDMUQyQjNCRDMgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWh0S2MzK0RtRlpmL2dBQUFBQUNHekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXhPVm9YRFRJMU1ESXhOREl4TkRNeE9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwMk5UazFOME5CUlRFeVJVWXhRakZCT0RjMVJEazFNVUU1TkRJMVFqRkNRekZFTWtJegorUWtRek1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdkZpWUc1U201alZyeDJjbQorSHF3OTYvOTJ4Z09UQWVyTkQvM3pFcW1HQWE0MlpuTDhkTkdwU3lSeGxMcTBIWWJKNHpXZmhTRm1PSEVrelJOUQorQkRlL1RlQXhuYjd5bEUyaHVLTElDUmlJYjIzQVNHcmZUaTk4SVM2ZGRkNzBWMVUxekFiWmtRMUtaTWllRTFVdAorRU02U1VRMjJaNTF5QWYybGVGMnlJTW15N0NqeFh4L3pSR0ZBNkNidkZDNUthZVZxM3R0TTR4TTVLZmY2OVVBdQorb2YwMzhzbW9SczJhak40amxUTDZxbDlybXhiTGNFY09ETTR2bjJkUVMzbzhyK2RpYjdGek1zNWd4aXpkc0RVUQorZGFld0w1MExkM2oyem5odXFhWGg5SnR0NC9veThkWVg1MTMxTmZpaURkUmJLRDFIN3VXVDFtOVB6QU1saGRZcworRnArZEF3MGlrU2pacTVES0VGSytUUVRxY0ZBLzlBeWhVRlZERkhwL1N3Z2N6aVJKazQ5LzF2Sy9PejdPazYyZQorWm1BdytTbnh3RzZnaHdWUWdmMUpJUzM3K1BVem9keXprTlZINFBuZENhTWowKzJ2UWhzckE4cklNSERJUnIrcQorZ0E1c2NZcW90YUdwZFBkaVJvTjZ0MU5aM3BWY2dDZWVjM0xSV2F3aDc4Z1FFdjRKUlpFRFI0Nm1qOXVtTEpUcAorbzg0dlFqT250dEd6b2hNN0JRSVloTUdNRHYzeGozSndmay9GanVaWkFOV1IxbWxwa1haNXVOZ0kxcldnVGVQaQorTjZPN2VOYkNyWWJnL2dnOFhkeEhrMk4rZ0x2OVZzZ2N0TlJUcWRiYm91MWREYkhtM0ZIc2s1UVRiZklQVlJUZQorRlRpWDdRUmk0aWxZbkpYZm9pWitLRlkwVGg4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRwVmpZMCtpai9wOXVWNQoraHVNTm1NVlNsNkVQTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFQNElLL29aYUJIVmhEVUpEK0lWb2FLVXdTZlY3ZWZJa1ladVRFelduUUhrRworNFdlQ256YXFvNHRuc1JoYStTR0pQU1c3YXR3VDE4VUd1Y2ZzK3ZTaGVLbGNWSmQxKzFqOUFXZFVjVEZ6NW9Jagorb3FEcDdocjM3dWJnN1loa3lWY2NsMEtkdTJzK3YyYmZxK2NnTFNHbkJVT3AwQTNHQmZxZFhEWlZpMkdqTVdhcgorN2dNZjgrU1Z2aUpLSnFhbzRDWVZMNWZGMFExa055anE0cXdWa2NVNXl2c0Nhc01EMFRiU1ZPclA4Z2RKVG1MWQorR1lpellJQ08wQ1hHL0w5MDY4U3hNdkJRMFFUS2dxZ0lvdVJqZ0VvSlVVM1d6ZWpuMVBzRVRueXpNS2FySXliZAorbUtWSjg4OGpYK2o1M3dpNVpNM0pGMlAxbXB5ZFVwZ1kxakduVVBWa1VUZUlObTNCSzR2Y2dBMGxMUE9DTXM4SQorUzVXT1F0YVhxcHFEU3FyM3UyN2lTOFBPOFpOM0dXM01leDJWM1FJU3FmWnpHcFp4Q3RBZjUyNXBxck5vVXZtWAorYjVwQit2aXNhNWpRSXF2emVDR2Fhb2VkT0lJQzJsVEhDWEYzNmI5RXJtMGhxcWZWUWgxbjVXTG9XaWRQT0xmdQorM3hjUm5IMk9tWHd5RHAxWWlpQmhuSWhaOFN6a3VkSTJFTTdZVzdIdDVvbXBmQmdyK0pPKzdqaDZGc0l1VER3UgorY0V1SGlKdXEzc3BsTDc0OVRERFBUS0hZYWMvNUZ0QWRQelNOdjFaSk1vWkwxUUVPMTRsUjNFbWtWYkdKOXVjNAorNXVVVHM5WDdEcVR4dlRCblZPbUxodVJEU2g0OVI2Z1RYN2dXQlBpaFBuRzJxVHYyQ29YMjJibnNvRHlBQWVRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgNzAyNkQwOUVEOTM1RENEQzQ0RDg0RDdEQTc1Q0NGMEFCQzFGREUwQSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZWtrM2Nwbmh0ZUhQUUFBQUFBQjZUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBeU5sb1hEVEkxTURJd05qSXhNekF5Tmxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzAzTURJMlJEQTVSVVE1TXpWRVEwUkRORFJFT0RSRU4wUkJOelZEUTBZd1FVSkRNVVpFCitSVEJCTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6SXYyN200YS94TXhnRDVqCitTbStsalowelA3ZExSOEtsT1V0RW04WDNEQkhiYk50Rmp6aW1XS2orTVJpVHlqYUZBbDlpUGxGeHdwcFFGdTFkCis5akFMSk14R21DNFVzU2tEaTVGWTFTOFJoVEo1dWhlOG9rcjlvcWNScG0zVmdxbTlGRC9oNng0clhVRGZaR2RWCitWbnQ1Z1kxU1BHY2QzeVV6TTNYQThOMng3dFl1VUpRTkExOXE5UUlOaVFkOVB5QzVzZ1k0aGgwaSszT2FGdDVXCitJVC9ldExGSGsreDRMOHNGSEJSL2Q0RFNEU1cvSWFPUVByaHNIcVUrQ2ZxSVdkVlJqUG1ucUNpQlUvRzVJaFc2Cis5Y0I4N0p2WGxoSnJ2NVBvYVd6S2NnUWlRdVdjVy9ZRWlxTGE0V2JhRFR3b2xjQytHM0t1MDNvcEZqM0dJQk10CisyVEo2OEk5dG5UVElhSjVHZHhCRTVSRTVRU3ExZEZYWUl1R1c4Mnk0dHpLVStyS1BaeFdLc2k0SVNyTTZwcEZKCitkT1NoWjNEd2MvRERKSnp2c2dxNndWaERIaklBSWZjcHFidStLbVdjUGxmc1NHNVVnUnhoa0lKa29Bb2JRbHdnCitLMjBCSXpPeTRvemdWTUdkWFN1WFZwS2tKcFR0VjZ3RTcwWWdOaWkxOGRVK0hvUXNrVEJsc2c1SjB4c3F6VGQrCitCYkJXdmRpRlNlbEtxVFdsWW11c1djaU9CbElFV0FKZDYzTkg1TTgxTUY3WXg1VC9renduaSs5OUZMSXk4Zm5XCitxeEluMittU2puTE55Tmd4U1lycXpEUExvcUFZLzFwY2sreUQ1RlZHK2RrNk5rK3U4bWVxMzlsUDRwSFNGSGZRCitZRk1SRk1ob3ZhemxDdVdnTGloNlREbWNBMkVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSllQWHlMQXJOSGlJazFCCitWRGtFNWZubDZrenRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQU9DZjI1WGZtdzFFYllEMnFaTGtoNUZOL0VXbDF1Q0hud3VkSitMbDM3UkJzCis5QTZjb0hadm82b09iZGdvTm1vWUhJQjAxcWp2RitaZWpNOWszMGpYNVNKN0Fzc2RLeWNMNHZnb1owK09neHh1CitMQzZlSTRZcnhIdjJsZGI5dWdvNE5NYUp3NjJLdHA2eDJaaEZVWjFLMDJpWUZnbWJqRHBSd2JZU2w4ZG8rZk1ZCitCTkh4RlBMcVJtQlBySXpLVnNqcjlROUkxVS8yZTNGSzMwYXc3eDZnbTFpbVdjc21aZDZxU0FSWnN0NFhCTlNkCiswalllajlKbVRrT1FLbVpWelh4K2ljaUNpNFoxYzROYWNlckxYZGQ5TS9XWGZ0K0w3NE5HWnJ1eWUrWUZ0bUd0Citjd0JkL090MEZMT3FmdVlxWmIrdFZLMWtvQ25aWDZYS0ZEbXZRTXhSL0o0QVZqN0oyM0ZEeGN1SmtLNHZhZWp1Cit3NlZGTWEzUTBQV2tUVERJTWhKYjdvdy9XR04zcWY0NE1OeHFzbW02SUlSQkpjV3hBbktSbjUyZlNFNWJQMGR5CisyRkN1Wjhja2M4dFhVYzhDNXJidUt6eWxRSzJpakJVRG1PRjdwR1ZnYTRMWndVVFNUVFFNZ3V0NUhHQlNsbW8rCitWZWM4TlM2SHdZYjg3dElSWmZBRlpGNEIyczNhaHhyMFBCQlE2dmEyQnVmVVhPS3dCNlRzUHpSby82cm96WlI1CitKZjdlUXBncG5wakd1V1krWUFjMkg5N1JYZ0tRc3Y5UFhJNzAzdGpxdHFKa282MHhQcjNnOXJ6ZkJ3YmpYSXBTCitVS2JibllNS2RHeHA0Z09xTlZSSy9jem1JaGF0Q0RQZDdHMmhDRlNENzMxUlZ2cUNpanJ0SzVMZWJ6YTJmUUE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCA3NTY4RkYyNkYzN0QxMTI2ODU2N0I2ODY0RUM3MkEwOEM4MTg4OTFFCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUJSS2Y3Ny94d3J0K3dBQUFBQUFGREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EZzFOVm9YRFRJNU1USXhPVEU0TkRnMU5Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxaWGxKWkMwM05UWTRSa1l5TmtZek4wUXhNVEkyT0RVMk4wSTJPRFkwUlVNM01rRXdPRU00TVRnNAorT1RGRk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBd1lGdXRnY2s0VC94RDgrbAorVjFqenlLOFVRZlNDSTJCckNiWTM5Qk4wdk1pVG53bmRFR2NvQk5QTzlaVDJWUnNGeEZtMjE5dGlhajNtUGttbQorK2RtMVVPTjdzamg0eTYwK21HYklOZG8yVlVJeWFnYXpnV04zOXJkb2lMb3lzd0NlM2Y4VlFja2w5UTlaRVVTYQorNVNqR0VPWFdNU1NSZjBybHJvTFdUN1ZsQU80cFdtQVFXMHNmZ2ptZCtEdENKNmVBWmc0dkxlQ0NxdWtwMDZCWQorUGlhUTlkOHZEREV6bVBXWE1QVHlnNkNOU0c2MUdvUWx2Z0w2dG84bGJVbW9CaHZsbE5adkhhUU5jT1ZTOC80NQorcFBSRlpRbWlwUWJUQkJTODNaL1Mzdng5V2tZWWUvODJqZ0F6TzlPSzZiNGdaVVVkZlJRQUNSQmpnbnZua3JnNAorZDVaQ1VRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVRVlPZ2lqRit4L0hQSHgwa0JXV1Z4eDVqUU5Jd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFWMml2ZQorTFgxVEtEN1I5VnA2d2IzU2dod2ZYM2VuYWErdTdEM1JkbEN2SDNGcjN5TVhUMmY2VFZER1hnY2haa29laGNETworVEtDTGlHODFnNDhlZFl0ZXkzRzRqYS94NHVpb3JYcGxsRXQweGdHak11dDRyYWl4NlVsYmRZYTdMV2FuM3JOTgorNk5JaHQrQVZ5Q25VMWR1ZVlaNGNmcjZWUW1BYzRzYndneVl2Um0rZXRzaTR3ZG1wa2hOUkJmYWpZTFowUm5aTQorSVVIVjV5eEJsSlVkV0kzblhua0MzTG9mWUZMU0k3TWgvckJxZzIwQjNKbTBXTllyekRlQ0xpby9HYnBrck84TgorSUtZZXpjNW5qeHIvdzRaZ3RrU1VlNjJ3ZGp1YVdQK21tNk9QNUVHVy9DWG9GekZQMUM3YVpVd3lVZFNwbjlkagorTWF2dVlvbldTTnNHT0dXeGY2NkRCbEpnb1RSZE05M21DOG9rZFFBc2RrVklja1VzbDFKL1hhYkwvL1lmRUJ1SworS2o1aGxpK1FRNUpVa2xXUWwzN3g4SjVSOGh0VXBrTEJEcXFMaUZmdDlBdGxDZFA2TXBwTnNOVTR2a21ORG9Ucgord0pXQTJTNFZHanVpOHZEUUtGRzJCZDMvblJLcHZCWnNuWll5Z0t6SmlHdlRqTGFJRU0vV2Z6TDliTUJEeUtOYgorclNsYXJ5eUI2QTRZNmpnSlltVkF5UDFNNENSemZ3MC9uL3F3d2NGbjN6cmlOOFRLcjFoYXZBWHg0dHViZDRWMworV2tSQWNiYW9aN21aUmo3TEg3MmgrM09PZzZWWnEyT2x5Q0NLYkFqKytwOW9HRm0xdGhCalJxenRRS2FGM1VpdgorM2xaalBvTy9jWUxlOWdXRVFyMUpkNk1RemRRV29jdVFxVTVPdHc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgNzZGQTdERjBDMDc3MzNEQzhDRTI0RThFRkYxOTZEMjc3ODg2NjhEQQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFWR1RkcFAwVDV4cHVnQUFBQUFCVVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURjeU5USXdORFUxTkZvWERUSTVNVEl6TVRJd05EVTFORm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDNOa1pCTjBSR01FTXdOemN6TTBSRE9FTkZNalJGT0VWR1JqRTVOa1F5TnpjNE9EWTIKK09FUkJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW0zSS9KWWs5MHpuOVhkdFkKK2tUcDlDZnRnZ3c3emd6NXQ2dER3M1c0MkN5bGtlYWxLWVVrRmZFN2JmV0svcHlhK1lNM2MwaSt0eDJPSHhmTkIKK3d0YUp1UHdIb0dSQmMwQURzQ2l6WW42Y2UweUt4QnQwclN3d0pudjZqaUd3Y3V2WUZ4Zk1ZMWlnWHFvT0w1SnYKK0pLUVU0cmVkTmFLRHlRMlNPRjFQZHhkZUh0S2toaEZrMzFCZEIwU0UxUm9laTBTMUJKRnF2UmEvM01YSzhFcSsKK3ZYMDd5TnlwNDVvNjB4TUVwU0ZCeXNhaU1aRGZubWJUZXUvRW9xQkU3bnBSVEhxWDhqWkpDT1VCV053eUFqOEMKK2pMQnBFTjJVcjJPOHpLVmNKNWUyNm5vVmdXalNORjMzRzFuV1crUzNVeW16Rk9LYzVSL01mZlFKOFU3UjZGUTMKK29odDM5d0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXFPZHBaTFhOdHRiSU9EV2hjallIY2NOcUczTXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCaytVYmIKK0dLOVdIRVVuVjNpTnI3S3dnTFAyYWt0bGFiWVVCTkZGL1ptczBzTWdCaUltV2gwN2phbDdiNVNlaDJqa2EyN0gKK0JLY1RaVG15dFV2dTBrdVo4emFwOElUWXlycGdiTHEwUXhHaEZEZ3p3NzhYc0tCRCtFcUxjelZDSVoxb01FVEYKK1ZUSzhWNGV2V05OVzk0RmR6a2pRVmVObDRLcVpzcmdjTWFkcE5aWVFLcGFBV0FKSEpiRmF6QXVsWEVIOXlGSlUKKzlJUFVUVWJHZFduT2RVYnM0elZjWE82cldPN2xQaHc3a0liOFlEMGlPL2JCN045eGhXOGJneVJBWGgzYkpSdGUKK2wrZytNQ2hpdGJlK1J1eEZXNDlyaGVOMVh4U0hoR3FGaVNKZFhxRHBvZlNJdnNrQi9TL2J5QWJYNEtXc1pCeWsKKzRSenNLQmZtM01oZkxrYkVtbS91OU1QakdqYzlvdVNwWXJNWGtuQmpGT21PbkJuZXIzM1dtZHRDTm45Zk9GcW0KKzJ5UXdJMWdvMTRjaXIyNXlaRG9WSm5ubjFsZ1BRNzM1dG9CZ3FWRWIrWldIOEI0R2FsNmt6SlFIRFNkSG9kVWYKK3VrMnZSZ0t5Z2xWZ0RmWUdaU3lhYllzTm9MRnBpa3QzVktrUDZqQU1jR1pBUG1Galo4b3pxenZaVUFtSjB3eHgKK3p1NE8zQ1pyb0Y4bTUyYWR4RjNJQ093Yk42bGRHd0Yra3VZTERMd2J4NXdwRGYrdE5CQjZlS1pJckIwZGpsUDgKK21WQzBlc2QwL2pmZWFoSkNHMEVYazBCSTdNTFYvWFVpOTRiWkV6Tkg0ZWRIT01tMWNKQlpnbW5ER0JaOEpRVjAKKytNVWdTNm80NU9Pa1o1YTd1Rm5DUllQb2QvNVBBZStrVVlEUnhBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDc2RkE3REYwQzA3NzMzREM4Q0UyNEU4RUZGMTk2RDI3Nzg4NjY4REEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWJRSnhZTFRFTEMzbVFBQUFBQUJ0REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3dNVm9YRFRJMU1ERXpNREU1TURrd01Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwM05rWkJOMFJHTUVNd056Y3pNMFJET0VORk1qUkZPRVZHUmpFNU5rUXlOemM0T0RZMgorT0VSQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBck1vK1BlMjkzUFpTQnR5OQorM0wzNE0yV25FaEt6WlZtOVYxWklOWlFxZkx4cGtlL3R5eVcydE43UU9GZDcvSGwvbDE2VmZXVkxaUTVyTWJ1VQorUTgvLzEwUHZ0Y1p0NEpTMnNGQWVSazZoekV5SHl1Rlo0Yy9PWmJWQmtqYi9XUjJCVzUrdHVEQ2tCdFN0YmZydgorVitEdHUwalU5RWNoY3J3UXJRbmZPQXZYQmZQdGtFQXEyOGNxTkJ1SmNacVpVc2tVamV1Z0VLOGhIQ0pLaDZkRgorTjdqQ0pKdWFzTXdud3BRVTJYUkREV2RUWVF0bmZoSENDdVRIOXpheTFnNFdndjBWUW5FRTFiUXZBYStydTdTKwordkZGU005TFN2cFlKOXNHQ3lVQ0hNK2lKbm42REdkWHpYdEloN1c0Q241Qmp3bnprLzVmU2N5Q2ZXaFlQa1AwWAorNlkyQUhTdmRxcWNZdUtJYmVPLzVtdExEbWNqRG5LNDBzZEZGMDN1N1c3Z1BJSjdNc3U4MlNHU3c1bk9hK2xTMworZlBTYnRMVkVJOFRxYWdES3pTYUUxSjFsZEc0MUtBYVV0SXdyMVF0c0RnaXN1aHd4VWg4RnI2UUVEdFozZERBcQorNlNrK0VhK0JQcUUrUXN1OUJSZCt5L3VEalpPOHFBRWhHQzBqbHVHU2ZydU9LVzBKWUh2Y2k1QXN3a3JYZkdMMgorc095RGRlRER6TkMwcmpTZmh3bEI2VG42YXZ3a3ArL0VWOUN2N0dTVnJzRXJrb3A0Ny96OGNQMjcyREsvNSthVAordThtanpOeGViQ1lkbjZHRHZLVUdETG13V0ExbTJPQUx1SDJDRGcxa0dBU3FUeTRGdFI3RVFCNEVRVGxBQTBmTQorUUdHMUo0RCtTclp6RzdkSnUxUzlqUXdNNU1zQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNzNTAyRUVtSEZOUHIweAorR1lCWlMrYlArRmlYTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqM1VZcE5LUjgyNy9oa2ZuWnNJSW4xNWdxYzFiWWluVDFzd0d5NDBiRVJMOAorMVc0WXhoNEt1ZkJrWXIvWmJkY1FpSGFjSzU1Tks3SzVpUE9SbGszZXBmVncxTUZ2NlZmaUhmdGh0YWcxN0hLbgorQW96dEc2bTZmOGNybWtYaHRwc1JxOHBkZEZXdGNsc1A3M1ltR2NXYytjQVZGTFhpZitoU1pxcGhzR25JWnEyUgorWnYxZTY1MnZOdHBzbVRQQUdBUDRFakJsUGVtOUE4N3pRR1EzZ0dnalpkNlFwTU5uOVJQUzFFeFNWcEVPakd0NQorSDVJcUk1TnI2ZWllUVRzQzdvdlRQSmI1NFNraERxTC90UEdKUk9jSG1TektvSnIzaUFYMEhwV21mM084RWxEYworMnc4RVZzaGpqWmQ3eEpLcDIyelU1R0IwUm5FOW1uUHRaTjVPdHBKWUpER3VJUDJMYjFpMTRTcmJsdldVV0RMTQorank1N0xqd3ZTbGhaWEtmZE50VlVMNy9aeXFFMGFwbTFsd0IxdmdMVWlCdFkvUWI5WXFvcElsY2ozSWFLRW5ueQorVUlYeHZTVk9lS21uZUJiaUNsWnBqRzFQSVAya2dyMUROcG9GQVhXcVhldGhUQWF5OUY4V2dnbnYwVzd6VDVMYworOWZSWG9XNWsvbEwvZWJRcWRyM1JGa3g4N2Q1bC9wMjFJTXluNlhlNjhBbkwwOW9mcGdFZXBkcy9mYzAvMnpHdgorUm9wZjNQeGZVVFRNMVZmVEVJMkFzN2dtM2dWd3kwbkJVcEZRcmY1Uks3YUlpVjd0aTgrYll5OFl1dEEyN25EVAorRHhtb3VCNzJqdFJ4OEtUMytza3ZBRzNxWUF0WEw1TERFbHF0V281VTN0RDZ5Y1lqUk1tc3VGNXc0OE15TDVVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgNzhBNDA5QzQ1N0RFNjkyNkY2REY0MkM2MTE0RUI3RTU2QTlCNTZFNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFBZzNldEdjZ2paWUp3QUFBQUFBQ0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGMwTmxvWERUSTVNVEl4T1RFNE5EYzBObG93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMWlhsSlpDMDNPRUUwTURsRE5EVTNSRVUyT1RJMlJqWkVSalF5UXpZeE1UUkZRamRGTlRaQk9VSTEKK05rVTNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXBDOGJUOTlDdkFLbGk2cDgKKzZCcXdDSVFmVVI5R0JVZisyWDJRTnNyU0h3TmFBSEtpQXNjOFllcW5Pc3ZEY01kUjFmVEx4cFlzY3RrS05Ca1QKK01qV04wb1ZPUzQxVS9CeDhGUlNlK0JvMXp6dFd1ZnJJV0txY0ZQc2VsenNlTFVwb0RPUFNpZzFweG95THVwVS8KK3V4bVZiaUZlU3E1MFVUOWd6WmVZaVlPcW5WQXpIV20vVUx2YWdZTlM3dFhFcGFVMEMwMm03UEVxa0V0ZE5ScEwKK241YmpIUCtaWFpkMDhJb3FmR1RxY0h1b2hzbGlad01oNEM1VTRKbGFIZmV2N3ZOZ08vNUlGVjhaUTF6QmZTMVYKK2pCTWtlWXlBV2RydVB6eENyMy9ESjhhVEdPRnpndVppREdsREZnTHZCQUI4a3ljVEJ2c3YwRlZxTStNSktveFEKK0x1eXNjd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVVFoSThZTmZLUzZzNllMRVhHdkJsZWQwRlJpSXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBZVhIMm0KKzFaWXVCVjExaW1yUFlZOTQwMXFFUUg0Yksxa3NsOHpHcGtQbndabFBpa2VDVzNuSmFWMW15ZHp5NTFaQXhWaEYKK09aOUJnYmpQS292ZjRtTTJuWDFIcmN6dkNTMjd6NnBpQy81UEdMamxSMEJQbU5LOTduUUhVckloMzhISXVnYkQKK1ZPeGNDbG9yd2NFZHBJT2RmZENoR0lDQVBnODFYMFN6bUNqK1dKMnJkR2haclV5a3BhUXd3by9HSDVSc0xzazUKKzZma09oK05ETXBYaXdqaGNVSlBEbklMU1NTZDJ5bCt4bTJLalNLYytiUlM1bnhSR21xTjVMcjVyVlJVNW9nWXgKK2l1YjFxV0JEVkJYU3NaVll4UHRMVktSSExBamJ1dGcvY3hJaFEveXpjaVJ4SEhtalovdUhaalFsWjRHOFVPRHgKKzVWd3ZJSnJ0NmRWeTdEWmY1R3NlVi92aHZaZS9rYmE4Q3JvR3hGamUxS21ialJlT3lhTko4cktCNG1QcVhZM3EKK0V3WlpGL2hGK2g4U1hSanovRnBqWWhuTVlpVFphNDBPYUVYNmkxakUvVnM1aFl4QWs1TFFwV0JFQ0xPdzE0TnIKK1hEYnovb3FHUW5kdTJNU1lMVUtFRU5KbDBDWFJDSUg4ZzJOTHZ6SjdBZDlEQ1BoSHIrcmExbmp1Q09tMFNNOXYKK1F1R1JCcmIzSnUzcmRRcWp0Q29vWWdjNFFQcUxabHh5RnF4RTZYU2h0OWZjZktWdkFmc3AwNWsyTGhwT3FtSFYKK3p5WlI2MWVlZG5sVzJyRzhhUHp1THloWW9DMGZMbWF6Vk1reHg1TDBTR003eHB6cHkwazlHME5Dek9XZ1hPdXkKK1N2WEV0R0FEVUJidXRhZnRhU3V3UTVKREhCQXVDQy8veXF3Ukp3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDc4QTQwOUM0NTdERTY5MjZGNkRGNDJDNjExNEVCN0U1NkE5QjU2RTcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWhjYWNhTmlXRWZhL2dBQUFBQUNGekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXhObG9YRFRJMU1ESXhOREl4TkRNeE5sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwM09FRTBNRGxETkRVM1JFVTJPVEkyUmpaRVJqUXlRell4TVRSRlFqZEZOVFpCT1VJMQorTmtVM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcklhdzZGMDErMEoyUFh3RAorSG1zMjZzVGgyWDJRSGxiMm9Wc1pJaVM3czdCWk02K2VDT3VHeThyUHJ5VXdDNVAzVGtBRHR6SnM3LzlqcnpxdwordCtkSlBROGRHSFFLM21wK2NMYjN4ZjRXRHVwVm5ZT1RjTG1ERDl5cGcxS2xkYzA4NHhRQjA0eWYvRlZIS1BXaworcWRwTk03ck1UQlplcWlrek9keHBIM0tFRHFuYnNrZFQ0amRmS1FGbFg0SXlta3VOWDgyM1hrSkhaZnh0UE9WMAorV3N0RmtUSmp5WkZuK1JLblJNQllNbmp3ekdEUStjTUNXc3hlRUFGY0Z6bUNSVUMyMlZCUWRoN2VKcnhNSFNYOQorT1RFSmpxUTF4N0JPT1prOHVuaW1vR0dDSTJENTZHU0Y3WXZxQUZYbmYxMVRGMzh1aUl5UWtiak5pcEhzemxmRworcGRxMUYydXQ5S3RjbVlNK0N5MTVSOVgzMVBCSG9LamdQdzNRN2dKalZXLzRKVU5DNmUrNDVBSDcyMWJOWjR5dgorWXJUVytWNkVlbzVwdkpESUVscDFSdyt1NDd4R3NGaGdkQ1lkSUFqcnlRZ1dXK3hPSWxIbXVlazd4eFZia0FvTQorc3dsbktOSFYvZU9ZWW9sQ25HdkhKbXhubDVyNk9iYzJxclZQaTVFV0p6eGplVFFlL0NJLzV4NjNicEhrb0REUAoraEV3cEdvN1hUNVdnSkxwYXB0OXNrR1pGdm0vS0w3UExpSU92Sk5JTzV5VXpDZ1N1SW0zNCtGZ3d2SGs3d2gzeAorM1BHZEQvZWt3RGVwazlOeVlCTUFpbUJwRnJhQytaNHE5YUFIY29WOEI3Skt6c2ZBVXBrQ0ZaZ2ZZRjRJc2ZPaword0hZb0F2U2lCRXNkWVpvTkwvejhPU1Bob3dFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkFlMndxNmJ4cjJJdThlYQordjVhYlUzdFhTdXRxTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFFOHF3ZDFVQWRjTUZBdk9kZ3BmOUpuUk5Rcytaa1ZmbWdDZG9HaVVpckNkUQorbDRaT3lpTzB3bXZnQ041RVhZaHZxSTBrRmhKYks5TjNCK1l3TDNuOUNaNE1JR2F1YTZJZiszbE9OeWliZzN3TQorUHUwcE9EQ1cyTWMvMm4yanZZcFgvZXFDMS93a0Y5MXJJc25oeUpoYjJzNWpvbXpCQktSQXFISmdYd0xPMi9ZMworckU1bFFMem9BQXptZ0pmbkM4NEx6cEpMMm5nblYyZW1UY1piTk9UZjRWTnNLOWJOVVVHMFY5SXJMTEFyTU9tKworWW9pQ0s1bmo2MzU5b3FpMGFsbnhNenBmMHFjM3NTS0lTdlA3eHIyaDh1OHRPbWttWkgzWnlUemxGdlI4blBCRAorYUYzQWNLbjFFZG5LUEYybGdybjBTcGtyOUYwSnYxU0tNd29POVhWUmcwSStOUHFoS2ZyZnRnaU85SjQrSmM2bgoranNjTGVDNDh2czc5YVE0aUdDREp0TTEyVmY5YVljQVRnN3RCMFo3Vnl2R0ppbUViRVpMTklpMHhhNTMzcmEvNAoraXZSL2s1cThsc28zRExSVUxFR0hHNDdMOHl5YS9reGl3ZC9XUWFSNWZuU2wvUzNsb0lqUzhpQ2FpNUtOd3JoMworTXk2bkdRNWoxSU0xUVhiQ2lsaktOKzV6UDkzUHN6aUh5MkhhV1NPZFQxbUVKNW8wSElTV29NTlN0VkFPWWRjNQorTnZ2cFlHNks4T1hleWFQdlQ1RUQ3SWE5T0tJRkRUMGsvRGt3b2xTZXF0NTEySlBpRFVJRWZMUyt0QjA5OVpxZgorN3VDa2xPZ1I3RGYvU25NbkV6aHY3cjd5bVRtN0RYT0daRnBMT3poRHR1MTB6ZkFKTmF5Y2dtYUxSazgzL1hNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgODhiM2MxM2Y2MTA1ZDEwNDIyOWY1YWMwZWI0OTk1NjRhY2Q0NzNiZAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFBc3dkaHNwRGoxd3BnQUFBQUFBQ3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGd3TTFvWERUSTVNVEl4T1RFNE5EZ3dNMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMWlhsSlpDMDRPR0l6WXpFelpqWXhNRFZrTVRBME1qSTVaalZoWXpCbFlqUTVPVFUyTkdGalpEUTMKK00ySmtNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW15dzMwWW11bUt4VnQ5YTcKK3U2anAwTVBNNmdxekY5TytMeG40WDc1KzJtMVRSNGFKaW1CRm4xVnFYNGgzdjhmWDk0Z3A4YzE5bFVGOTVOamUKKzVXS2M4RkIrRWhqWnJDZ3ZCU3B6WGY5QkJldEpqYXhUcXlyWmJkMGVubFdGU2xyVmIwNDVmU24vcDhKZ1hUdDAKK2dRSm9Fa0NhQXgvYkxJQ1B3MFo3UFdJeHJTNitLbVBBVVJVbGpYdnNwRk83SzFpYWNMQXJsUkQxWlM0QWJQREgKKzN4UTdRK0t0ZEdWbG5jZVpWTk5tZFExVVFXU252NzNFc2lqNGIwMmRRNE5yUXRxS1ErNDRxNlNVdS92MDhRRkEKK1lQMVVHekZrbW5TSWwyOTViUzBqbTFjTUFlNXY3UFF0MklrK0ZDNjlGaFEwVEJURjBJTE1aSFlPUW9BU21hNi8KK0J1RVlzd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUlaVWV0TW1xY2FjdUlyRzZsUzg5VVZFTk1Jb3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCeTJ2d3AKK25RT0lwREU4c0lVV0w0NFNUWkw5QmFzUFdPTlNVelM0L1ZGQ0hlSUoxS2x6cm9YZStrUUxuOWJPOXJJZmVFTmEKK1N5VGZ2RHdCSGErVktCcHJHWjhMc2FodFhaK2xMZ0NCVUVqSmkzRHNWcDVIdEhVU29nNy9CTDVManRCTW9lSFcKK0xOdFNIc2tGcWEwaGwzUG53NVM5WjdhMzNxOXN0alZWeEN1WW4xL3ZHMklkMFNlN3pONS95TjNBL0plcE9OZ1kKKzVrQ1l4a3VpWFpEWXJwM2tOUFo5TG9IaGNlVDNCQUx6aUluQTRYckQvQ2taNzFuVlBUZld2Q0JiOUt3Qld3Um8KKzdKYjIvcE9CdUh5TG1ESHFBVkkvc1BCQTdBWEc3ZHVLbTYvMWxCaVNFZktXdGY0YXQxWXZ3NEJST3FMNlhISGYKK1YrUzFmSU1ia1ZJRW5yVk1ZU3dQRUZHVGpwVFZRSXQ1TndSWTExSXliUEdPcWFVQ1VOUnA2RCs2NU51S2djVGQKK2xuVC9sWm83YUFZTHkrNDBZdjBqTTNlTjhaWXdtSXE2SWtCcVFiRW9KaWxzYmVyZkRrVkQ2Nm9UNnMrdmNsVksKK2xEMTVFWC9xejM1Z1kvcWpnamxzeFpzR2tNNWpHUGpya3NCdHlDMHM5RGlQRnJNTzk4VjlmcFp4dllpUktod1oKK0tiWWJlWUNwVXZ4M2pnSC9MdnhtT0dEMlRYeUJYZHVhc3NaakNidG1WdWJYb041MEpZUFE2Qjg3RzNXU2lFOVQKK2F1VUZQMkZIUkpZc0JwWWl1MEdjN1k2TTEyc3ZMTXpUck9ETmpzblpoK2FDcU5CRlBOb2NOQ2wrMmlGNzY3WXoKK21JdktINVhrcXZjWkpyQkQrdnJrTmxjTk8yR1NCanByRVo2ZUJBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIDhGRkQ0Nzg4MEUyMzlBM0EzQTIwREUxM0VERjEwMUU4ODJBOUQyMUQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQVNkU0lOYUI5a21TUUFBQUFBQUJEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRjeU0xb1hEVEk1TVRJeE9URTRORGN5TTFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFpYbEpaQzA0UmtaRU5EYzRPREJGTWpNNVFUTkJNMEV5TUVSRk1UTkZSRVl4TURGRk9EZ3lRVGxFCitNakZFTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxVVQ4QjhEWmR3dDR3WE9aCitCVWMzUE5DcmZ1SXN5RW50U3gvQzF3azZtN2RiWVhpV1haVmdmSHNzQ2pWY2poTVplNG91MFAwUEs4Z3IzRk1oCiswZVc0cENnZEdqYWlsVjE1bHJ3ZG1YNUNzaHJkYTF2WGFFd2pSemhzTmtuOTR1WlcxZzN5Y2dHajdwem1XaFluCit5SkRDZkhLMmErOUVBSXBJbG45YmZnbFNOUENwQm5JaGdhNktHeG42UlNPSWk0MktZeExhUGlBcEc0a2pDTkV6CitFbXhsTzAvN1hvczZOYnFyemhZY3FxNEQ5Z3NTeUc2Yzl4Zis3M0hTZGJzS2hVUlZocFpJWUpmb3pCS21hcUNGCitYc0lPcERJV3ZmNjJJK3lwNXY0QmxTWHgxM21nQ0VtSlBKNzZKTzBVWCtvcmxhMVVQTDdTMWJZYkEzOEpVTk42CitwbXVXQlFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVQdXBoWWE2c3VSSVo1Mjl4M1dkVHFzNjhCcUV3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQlZ0aUlBCituQWwrVm9sWnlGT1FWUm9ZbnFXMXllck05SUdiQngzNXZhZm1MWUVySGl6SzlvY3Q1dVpOdmo0ZUlHK3EyNjl5CitnSXA3OHMwZmV1L01td2h5ZVhQL0pWekdSc3FWYXh5UEwvSzZtWHBKOEgyRW9CVVlYWDh1ZHFJZ09LVTN2U3FBCitFOVBVc2tCSllVb0xTRmFMb3Y4RG8rZ1NhOWxqeUU0eU15SXZQODczME54MUhDaGdvQ29sSHRiWGRJUzZDdmRJCitVRjZwaUxLMVRJRE5tZXFtWGZhTDkzckZpenZJQzNwRnZXK2tMZERHU3BEMWZuU0tBd09QcXhhc3ZibzFMY2dQCisxU0djcjlxejF1ZDhLQnAvOXd4MDZQZE1Ndy9zZ3BPVkhsSHlJSVBUcFppYm5kYTB2dnRZSWVYTkc0N0JhS2FKCit2YmxpOEpTVUo1NUh1YllqSDdBeHlReXVuZ1ZOMXp1dEF1bG83bGR6dXNYWTQycHhvR1lSeHR6K0U1akoycG5rCit1YjMvV0haYzlmRjBqUXZseGZabE9ZTGljelFLd1NHNjNFSFFJUmg0OGd3eW1DLzIwNjZlWHB5Z2ZDb1lhR0pvCiswdDZ0azBKYkV5NEtaRksrZmdQNDVJNVJDd3NDbmNIazMzOCtOQkZqSGlYN1NyTEIvSGFXL0dXT0lkNjFORUJGCisxSDFZYmVmczNqMGtVcUZXR0tsWHgyU1pIVG1pQzFnTFE1NmYvdGdLeENmNVRRVjM1MG1hWXlmRzQ5RFVEekUzCitVZnRyYXFoQ2NVSldkUDNjcFdkeTJoQ01PMHE1ZVROZXAvZTJISTBPOG4xSUNVZ3lITzl1UG9VNytoaU8yajI0CitDMHRNUjJyRDhwVllFOHM1L0xDelRqOVRsaGlNcE5rSTlIeXRsdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCA4RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlEMjFEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFoU1l6NVV4bFdyYWdnQUFBQUFDRkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14TkZvWERUSTFNREl4TkRJeE5ETXhORm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDRSa1pFTkRjNE9EQkZNak01UVROQk0wRXlNRVJGTVRORlJFWXhNREZGT0RneVFUbEUKK01qRkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTFmVlpTSDNvSzB0RFlSb24KKzREZEw0eDJkTUtzVWVNL1NEZTJzTVVWRTl3WFJVWW4zYUIrV20vUHJzK2FlcHhlekFWMnc3YmY5dEpOUjhJQ0MKK2Fod0NVaG1ISjgvamMybWFOZFhUOHkyMzdNK2ozWFllRFV3S0pMd1d1TmtxSFh1ak9KbUJSNXJsMHlyZTdvOXMKKzNvbmdLR1cyZ2lhbU9ydW1lbFdOOW5VeFJaMHVzKzN3b1p1SGxIUjIybkV4ZWtScmNDSGRpRGFZSWM2YzduTmwKKzEyMmtIbXdqT0VrS1h6N0x1MzlHSmZOVGZwckkvYzMxQVM1c2pCZDZxUm5ObFpPUEFOcE81aEEwc3Jkbk0wNDQKK0ozYWppVzFwSGR4eHdYbFo0NUhJK3hUNUthODVMTGpOenI0S1VYNThUT2xJemt4Z3AzYXFyd21PTEJ3MWgvREoKK2REQUVEZE1DMjNtR2RMYUZGZWxqWHdrd0d2cDZ1cU5pdG5qbnBLN2hncE51SVN1dDJiT3V2d1N1MGZCVG9ZK0oKK0IxQXBnR3ZJR0tDRy9Nc1J6eUZvT0pxNDc5U240VkhlN3Z2azBKRnJXb0UxR0pHRWVRTUZaMGdBSkdKUklFS3cKK0JpYzkxOS93TGdLVXNtVUFoNHhNTWE3Z3M3c1FZRXRseFZNNmdNNWdyZVdQYkM0bVRtZG42aE5RRUErQVpQVWIKK0ZlaUtmZmxvZm5WeTNTUThCUjJ5aGRrR0xTa1RDSWFTVVl6YVIycVZ0MEVvMWFVLzFNdkZMUUVaZ0JuK0ptc28KK1hOY0NrRFFUWFlGeTlQTVJFR3lBWDVNQTZ1YXpSaGd1SXFGVHpad2tKNlJNZzd2OGlIczV4VHBWT2JjbXZiWDkKKzhRWVVscy9HNXZpV3FNdkNjMVZxUUtqL1ZoVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQOUZ4Q1FOaUpzSkhqOFkKK2VJM3RQSmQxMmJGYk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRTlvbmRaT1RJNTdlWUFSaCtzeEgzQVI4a21wVTZkNkJFUk9JOXpkWTc2MTEKK1RCMktCdEdrSlpUQnhUZGdHYlphTFVMSUhhOS9kM1VsV2RlYlc5eFhpNFZwZVlWSWVscEdHbHVMdlpzc1hmQXkKK29CdmhvWWwxOWZiMXQ5bHF2b2YyRWxVc0hxTWtNcnZmSTFDMWxWM05JSHE5bHJzdHgyUlNzS1grTU5BREdDVXAKK1NRVHZiVzNjYU8rdjVuNmZoZU1xNHY5YXgvSDJOellhK0IzSmtNNURXSXNyZEdYaEg2bnZEUVA2ZjZvWHpOU0QKKzhqQTVjUU1Wd1VrVGkxUkNCYnJUTGVGMGJHNWxoZEVWUTVpSWs1b2dZNGc1c21VUTFKa1VNL0FvMEM3MHdYdmYKK0Ztem85R3Bnc0JJU25YVVlRYUxuajJYNXpGM213dDJsQ3FJQVdVTzI0RWFEL3F5Vmc5eGFRMHlHMFhQUnhWVVcKKy9HeGl0ZnFoWFZMYkordFNFei9ZT2YxaHJuQVRXaEJyOGRqZlEzZzVQQVY5M1d6aGdESHBPdXRTaVNleklubkIKK2NOTExPMzZtcW9McXJIV0QzcjhjYmlTQ3JMdmFnRXVVMHRoT0V2Qk1kaU16QnR4QnZmOWxvZ2lyVm54U1hGaFcKK0dtajVHbGxRVjFpSkM4ZzVneExQMk1adFc5RHJ3L2xpbVd2OHQyaWFNK3ljU1JIbVd4Z0ZLeUxyYzRpeHZtMm0KK0lpMmlkbFNHVy9rQlBVczc1ZEVYV2M4ZUhiY2I4VFJMcGtLSlJ1V3RYMjJZelVwOStObjFDMUlmRlFjekROQXgKKzZVUkZ0ZWo1S1hIYUw4amtDU1RyRldEa2NUbmtzNjBOVmltYitEb2MxclRwODlvM3NFbzhtamMxRjB4RkhHST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIEEwQzlERUMwOEZEMzlBOEI1OUM0NkJDQkU4N0ZEOTk0OEM1NUY5NzAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQm9ka1lHbXRoOGR0Z0FBQUFBQUdqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRrek1Gb1hEVEk1TVRJeE9URTRORGt6TUZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFpYbEpaQzFCTUVNNVJFVkRNRGhHUkRNNVFUaENOVGxETkRaQ1EwSkZPRGRHUkRrNU5EaEROVFZHCitPVGN3TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyVE1kMjZtOWQ5ZjlHd3JCCis1Z1U3SnhRUHExUEdxTDFaY0dmZXc0MUF5c2NzVDRmV0dDcVBmcndHQzZZbGtYV1IrUE5veDBoMmxYa3RSdkdXCitieGhKdzB4UlMyYzN6LzlDTmZXRXV4K2V4a2tvd0g4bHQrODR6UndLS29TbllpaFhnRmhKckp5Y21jeXZCeXovCitxbnNVS3RzNWMzL1BOS3dTdFVzZkNZQjVvekFJN2NkUFFtNHZLNElVRDhUaDFIcGxJQzJzdlFzbGdMdDhLbDc2CitXMXNZMXVrbGcyQmUvanBOaFpnOWF5TVN2bHZtMUYrMFpGekxpekNNbjNSVVUvcWFBNEdOblJmY0MzeWpDbWljCitjRGNCRGQ5MnlBVUlIbkFzc3BWbGlwaHlYbWtoU3A1elU5akRZS21qYnExTDlDeUw2ZW15SWM0UHIwbTVqbDlRCitEdXJSS3dJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVMM1NpVlhyM0draFRJNWNoTHluY05ZYkJ4NGt3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ1ZyMGw5Cit3UnJVak9CTnZLcVhYbDljUnlrdTNMN2ZVTWJ2bmJVdUl4ajhhVG0xdjRnTGhyMFYzUDZnQTJpdXVYMVJ5ZG5aCit1UlNTMzAxMVlvVWVOTzdrK3JxZVJhbXBoWGc4N1grQjVPc2JUMEZLL3VtOS9hQ2xkWGxFNHpqSFc2V21IU05DCis1OTRWYXRNMTA0TUt5RU1QUlJmcEwyK2JDZzNhaEQwWHh0Tk51cTRPenBodGlDVVMzTlo3SHlQMERHUGVNVk9FCis5MTY2bTJjN2xiSWdXU0NYcHR3bFM0bGNjN29ZY2lLVFRsR2UrSmg4Z1NQSHN1Z2RISkllMmpONTlZZnUyYUVECisyNE9RR2U3Ym80a2xVemZIUUtSUGdJWEtETlN3NkEzbHIrM283USt6VW5VNjFvazNFNUR3a0hYK1lpQnlNa0I5Cis5WUlxVHpOMllKOXk0ejhpNnVaY1pMM1VDWnAveWtDakI5a1FYZHFoQXZnbk1WSU9LZmRSeHZSUE94VVJucmZFCitmU2JkVHhxaEw1azFuQnV3Y1VoOTVzVytzY1lVbXNtV1R4V0NJTjkyZHJHUkZ6L0tVK3UvdHhvc0FwT204TmdtCitPd1cxOW1QOGJJQThCSDM0V3ViNXdyRXh1ampYc1ZGZHBrWm5SblBBT2hobkF2SzZXWnJ2cWJMNHpoSXZIRzhGCitDRmxxVzMraXhEcjZnNEJuS0hUUndtYU52Nnk3NmhGQkpLZEpnUUFlN1JEOEJ3U1ZnUE5tcjFPWmk5UWhzdWkrCitDZzRTNm05dVRUclNxaFpiMS9CaWdPa3FHZGdDejg2QWdmWGM3R21DKzUwcWZMbzVHejAzSnl2WVNnTWRTa2xOCitTNjlma28wYjlSOFBocDhqV0l5ZVV0UGZycVdKbkJCbjlzSlhlUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCBDQTY5NzA0NTg2NzM0OTNBOEFFMTk5NEVGMUUyOTIzOEYyN0Y0NTE4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUNseU9SQStRcWlZaUFBQUFBQUFLVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5UQTFObG9YRFRJNU1USXhPVEU0TlRBMU5sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxaWGxKWkMxRFFUWTVOekEwTlRnMk56TTBPVE5CT0VGRk1UazVORVZHTVVVeU9USXpPRVl5TjBZMAorTlRFNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbzhUYmlSVllvZTVLV2IwcworMVFTc2dvNDdJWnRCS21MU3ViWVg3U01ZN0toZEl5UlRFOFN3S2twN3ozbG1GL0NXVVhCMTBnaWg2Y3huRnc3SworTlBOZG8vZE5MY25Db2JMdHFmZmZKVG8rYXVGbnpVMjBoay8wemZKSEZsb203NXdWcW5FQWxTMmhETWx3WUVxNworanhoSis0U3EySEQ0T0lOUzhLMzJrOXozdW9KdENrZnkxZE1KcFJKZ0czWks1Q1dUcUtnY09GK2pCMjU5aTROcQorS3YwbWo1S1JDSHQxYm1QR1hTMkxJZlJiMXhMSWlTNExwWXRUYWRDWUZleUZBTVpVSkdSYlFqQVZVaExxUG5OVgorbEsvLzdTeEY1MWdCWUhaMWM3c09sS3lSbTNxcXZMN25xSlAzektRejZhSjkrWXUzMFFXWEZiUm5od25PSDZ6RQorbDdtZ1RRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVSkx3SHN2VExFMmE5b0drR3E3enhuY3psSnFrd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFUTWRmQQorUXVhdVhlbG82ZHhQQ0RkYWJ0ZjFFVUQ0N2hqRXB4ZmtyS1FuY3hwd0hnVUQ3bTdZRkxxeE41ZGRYd1ZIbTA1bgord0twQWxobG1raytaUkd4SVBBeXNMeVREZklwek5sSE1aWWFKVGUrSkRTR1IydVJGc0JsUTR5Zjc1UzNlUjgxaworMFhHd29rTGlxUFdBZTJPVk5yN3N4WW9JV0pMdVZGd1ZmL1JQZUZjQjQ0QjNqV2pYM0puWFVHM0ZleDJzdWxxNworcmxDWE56d1J3cnBVK0EyQVNNbGZueisyVC9ZSVdmeGNVeHhqUjVsOFErNy9ZZjlwSGV3TzJqOXpEb0RuaUg1ZQorS0NBb0l2cEd1NWM5T2NuY1RJeTFiNDQ0NnljR0NHNllMaWEvbFpJVlE3ZGs2S0NUem1DL1JsaXU1bWtRaklxcQorVlVCUHJVdGhzOWsycXgrdWFYWFB1ZStDNUhRSHJMeWpxUmJFZjNYWVlySW1mVUNmWDFnS1p6bVRFbmdnOE5yTAorV0orZGVFQ2cvNkZqeFlTMmhGVlpmZHUwNHNYS2t1b0g5OTduWi9DRFhwbGg5djlFUmlDRzZQMjBWK1NnTC8zcAorSys5bWdHcWEwZTB2TEY3ZjFFYjl1UEoxTzhSbjlMVWF6MUdQN2xJTXpRWjlYd09LSEphOTYrM2F2UFhxdmxHMQorWC93Um9GSGhTTXFGdFFUaVRMUlNURlI4Rk1Dc1Q1bVBCS2NWdnVUK2hGVENHVzN1WkdrQU9NOEtpYVBzVEtxRQorSldUYTFiTVpoSU56YUtCVUlzN0tnOENFTnp1ejByVkpMK05wMHF6K2VlYWppclJTNkt4NkpOWkhFQ1RoMTZ1eAorQituam15NysyQ2sxb3Q2Mk03TkNlNzF2V0FERThCWW1YTnZ1SEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgRUMzRjhENENDMTJBQkU4OEEwMTkwNjRFOEE2MkI3MDE4RkEyRTM1OQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFDL0IvU2JUTnM3eG9BQUFBQUFBTHpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEV6TUZvWERUSTVNVEl4T1RFNE5URXpNRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMWlhsSlpDMUZRek5HT0VRMFEwTXhNa0ZDUlRnNFFUQXhPVEEyTkVVNFFUWXlRamN3TVRoR1FUSkYKK016VTVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9jY2gyV3c3a3M1MUhVT3EKK3hlaGlvL2Z0SExLUVFUeFFqU1FDYjRXTndMUFdNTXRJWTV2UlRHR0tLNEZ3eUkxTjFuSXZZY2JOSWF5UXpONHIKK1VsRGRHSCt2UTBNSkhqNTg5U3RyWWRVOUMvaGtxb3p1V3NXdFozTlYxTS9QT3pvcTFuNXhBMTRreG9XSlo0azIKK2ZhZEZBU0V5KzEzOUxNUy9xR3lIcDYwS1BVMmZkK05BNndWeEFBWWFndlFkNVhCY1RBVmE3Q3BqVnVZdzNQRFcKK3AxcHl4NVZDUndyVGZ3WCs2cUN2NWU0TENSMHRubDl2TmtkVG8wN3hQSFZsaGo4NVg5Yy90Z0VPaFJuUVFJK0oKK3IxdkV2L3BPUHdSbDF3L1FsQmhscktvSHVlU0tzVEhMZGQyU3hoQlZ3c3BDR2JycitIc1lyL0d2azd4UGF0VGMKK2JXbE1NUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVSt1ejhRTXRIOER0RUFha3lHT28vRUVMbSsyRXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCV3A0YnEKK0hMTUYyN2IvYjlMZnpEWFBpa0FXTmxTR29jREgxVk41NGRZQWU4ZHU1Nk9GT3ZYUmJkNEVieU9hQjJZQUx5MXkKKzNLS1JoWG1xR0JPS0wray9rd1QvSmU1MGl2SlVhZmxsZDhwMkNCendDMmI3ajFKeUVvcXI0VUtyRHdPNE5vbHYKKzkwZUlicHpxeXQveDBSYW4xNW85d1A5UXh5YXdva2wrd3JPdDNFbkEwdThrOVdNRE1ETUM5N0VnNXBaNkJkVjcKKzVXVS9icVVBR0l5bnBodGRadFlTUVkzU0lHQ1V1STdJKzdHdGhKYWF0aUxpcVd2MStwVjl0dkRhd2YzeFByOVEKK1hpRVVKd1hsTjN2NkpBbThTNSt3eEZBd3czaHFJcVJvMGRHQXdWOEl1RlZqdTNwVndZMTRrU1NZTm4rZ2czRkYKK04rdnRlZFpmSGx1MldYbnkrWmhqeVRwc2xhaFFwdmIwZUZEaGRFd1JsbkF5dS84amJKNUdDYXFDZ1lzMmFaM3AKKzltTjJTZmJWN3VvbDYyNDUyZjYrUmI5bS9UenlWNks0OUZEM1A2azZ1U0hNU1pRT21aVE1HVmxlMzdMQlpVMVgKK3FMVW0wSkxrYXVZODZPbkFieFhSbnphWEJvcmt6V2ZTSEwzUjJqQjdyZUgzWUtwUVEwVXZrWFVWaGx2Y2FrZlkKK0h2SWJkVk4vU0ZrQ29vaEJaVGpVeDZQbzBrd1IwYmQ4TUdFeHd1bHNTVGsxb1pFUlFYby9qcjFiVVJWRmQzNlIKK3F3K0N4bGJ6WnZzWFhuNjNSOE1SM0YxYnFJN1lhYXBvSWlZVTZBTXU5UkVSMzZsTWMyTkY3ZDNoK29Sd1ZLdkgKK0g3ak1aZXhCZFZWVEZhYjVTRG1CWGg3c2s5Z1cwSXVRRm5xeHlRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIGE3NTU5OGI4MDI2ZmE1NDRhZmZjYmM0YjkxMDZjMTJmOTZkM2YwYjgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQjBJN0c1VXpka3lPUUFBQUFBQUhUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRrME4xb1hEVEk1TVRJeE9URTRORGswTjFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFpYbEpaQzFoTnpVMU9UaGlPREF5Tm1aaE5UUTBZV1ptWTJKak5HSTVNVEEyWXpFeVpqazJaRE5tCitNR0k0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3VjFHSHNWQWJJTDZFcDNyCitrQ1RBK1RkbGZGQzZqbmRoRGY2SjMvbkJPcXowL0c2MHBoa2RiRm1DOWdRdytFa1IwT2pzeVo2SldCNGMyZHVnCitTQWVCNjFMWGVKc0lZWmxsS0dVR1Boc2N2NGJLY0J4UC9FQkxMNkxvYWRPQmkxc0Y4T2pRcjRlZ3lkMldRZFJjCitBcUpxRjYycTVvNFVQek9Ec29mdGlBc0NQb0JMOEJEUGthbi90STkwU2NRWEpqWFhIQmJROGx4VVBsSHgrM1R5CitGbE9jVmNQdG4vL1pVTE5oMXpQYzNRN3lRb0tMVnZLaE1na0daY1FudmFLU2k0UU1BNlM1NFdxQ2RwcC9FZXNOCitRbG9NUmd1enhTVm5XMkVKeC9UaC9jeE44REEvUFJXRFUxTjFLay8rWk54TFphNUN4ZHBqRStVblgxeHYwWXRJCitlWXlOUFFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVNZVNTVmtqVE5jcWhVRVVOSWFIYUorelNCVTR3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQXJBZGlKCitnU2xmSnJrZmhicmV6WGtzL2djdkthNXpqaHdtRHdFNDJHdjZWQXE4T3FiQlVRSVZyNnVmcFN2TUZtd3pRelMzCitRdEdGVE5nWGxycGwxSkVrR1g2MmE3cVpNakd5UlFzT0QvZWhrNHNFbG4yTzluTmFFZUVzSnIzL3M5c1d6S1M3Citlb0ZTWGFhczRHL2c1ZWxhaTd5RmJqNXNDNEJuQ1ozWHpEcEpYbFhZSG45R0N0Tm5JcTJUZ3FERWxoZGg4RFJECitSK1VyamNQWTFXMVBzZXh2NkhZekxjSUpuRGprU1JZS1JlUzkyZVhFNm5GdFJaU2NXNGg2blJQQmgxMjZNNXMvCityNGZ0VUQrTWZQNWVmQzVVOGNuWDVaT3lhTTFYcG1kZzdkVmNQV244b29lcHdZV0RHT3RlRmpOVFREMlhXUGJBCitJSTczRThReXJvemludUZjaVI3U1FlK08wYTc3V1RVZkN5QkJnMlFDc01OU3JGWkE0WDlzdTVlTWVHemgwWWlVCitaVXhZMm9aVHpweTNZczJwYVJpdVhZcEl0dXN2WmxuckhrWDRNMi9RdmZiVGlEVThZcHZnWjNxSVppZUNUVnQ1Cit2bDN0Um1mZkQrbzV4R2JYeWJJQVNOQ1dhNlBKUU9XL3Z6SlZsMXVYK1BsamJMMGpLZXlKdXRLeFcyYXFYU0VjCitMNU9xYTZKdjZLcERsaTFmamVHWkhFc21YQ0NUY1hjQ2p1c3BITEZaYTJRTjQvSE9OUVpGcjZJT0tub3BDdHp6CitvenNScko3dVJkai84SWdHbGdJT2xsYjZoVDM4Y2RxTTBGanlyWk9vUTJkck5YT3BkSFh5MHhOemhxUTFhOUlqCitKeXdYVE9TbGRuL1l3TVFDQWdMdUhmaEF1Y001dmVvTWd6WGl5dz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElGWCBLZXlJZCBiYmNmN2NjMTg0MjEzMTY2ZGFiNWJlNTNhODcwMTRkZGQzNDhkOGNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUNESVViSGNadENDM0FBQUFBQUFJREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5UQXdORm9YRFRJNU1USXhPVEU0TlRBd05Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxaWGxKWkMxaVltTm1OMk5qTVRnME1qRXpNVFkyWkdGaU5XSmxOVE5oT0Rjd01UUmtaR1F6TkRoaworT0dOak1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBc0N1U05mbG9FM0NRS3lrTAorYTR4NG5IVlhJU3JhNGNTNWVZSitJN3VGZkFPVTJUWlh2aXdmRkViOVp4WGNsdUFkRms4VVZJN1NnY3laaEtvSAorM1dLcXFMTzlyTjZKUTQ3ZTd3cnZ1ck9WYStZUlYwYUhwT01DWG1rVHE2elJRaXVKdVQ5cFZFaFEwdnlqTXRxYQorWHl2SEZUWGtJeWxIeWVKdEFER3B4dUF3eUFsNHZRR1B4M080MDhmMkR2T3VhNEJEbGJhekdNejkyRER0K0J4aworbmlmS2lXNk5WT1VnelFFdDB5Z09HRXdHQ2xwaUlQbHY5MzRHKy9rOFh0MHoyOXBhN2RGVVVHTmpmQ3AwRFpDVgorU08rQlZVRUJVSXUzOXFCZkZBTDJCSnNodzBFUmFYN1FaVE5tNHpLR0VPTEZHcXlxc3JVbm01RTNkSzkxalk2bQorcEhZeSt3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVTEtUaEVvWnU5blpEa2pYMEcwQlZIK2g2c0hBd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJsNWNHaAordkRYcjNVMmZWZk5qa2xncXJuOU83L2NGUklnZjBteDR0SkJXZlIxc3FYbmdJT1hQUDl0U29VdGw4QUU2SmdoSQorUGNJcHdQKzVLSWRnNWNhNlRPbU9MMjhxaDRrYXllMzlsTDE4VjdhTElkaWQxM2t3TG12eXY4SzZHbVYvZGJKTAoraExNRHRyWlRsZ05oOXNhS1VpbmJzc1NGY3dpQlNXSVNRRys0TTFOQmJ6T2cwKzFZQ1lRMTVFK0FwUms0MzZZMAorVFVCWDVNdFVYUDVOZGxZS0lESmkrbFFOekNuUTg1Y3gvUmg3Y0RyMGhUcDdLZDBSMjNGTEduOGNhMktBSUV6TworMVEvVEdGajg4V2RvMk13ZVd0Z0s3TERVcTc1M1NOM0gvV3pQUVNLS2cwdEsyK25ObnNJWWd6cXI1RU45Y1VXRworcWl2OTk1VmlBOFdZMDArUjA5N2p4b0syQmIzRElSeUZVTlJIN3YvOVkyOEVJdzgrRWtDMWRkMVZmWkxrblNGaworMWkwTGsxUkw2ejJlYVJ3MWt0VU9WQXFJd2tScENmby94b3RUWElFZy9TQXNGTiswV3dLUSs3QmMwcVhpcHQwVQorajJVNmVKcFZEUnRDQjBZSFNKY2VqQjg4bG5FVlFSQXliRjRWTGx1SGRCMHJpOFpoL0hyZ0psMjBRQVo0bnpHMQorN1BMSGFhWHFEU2F3RXJNVlBhbW1DekZ2cHI4MU9pd0lxWWZFQXNhcnlDL243MDR4SCt6NytqT0NQcFMzNkR1TQorT1VWZDZMQ2ZQaWV6N1ZBVy9ITG0zczFJdHQxTTFzYU9FSStLZGgvNlM0d1RndS9qT2V6L3ZWeUtMaUVaZ1VtbworVld3SittK0h4aTJFZ2syK0ZrR0pzdHZheVlsdFpBWlh1MCtDc2c9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJRlggS2V5SWQgYzZjYjJhNGRiNzI5NGJlOTExNzI0ZjUwNDEzMTBiNGM0MmY4OWJiMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFDWmtwUTg3YUJsS1B3QUFBQUFBSmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEF6T1ZvWERUSTVNVEl4T1RFNE5UQXpPVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMWlhsSlpDMWpObU5pTW1FMFpHSTNNamswWW1VNU1URTNNalJtTlRBME1UTXhNR0kwWXpReVpqZzUKK1ltSXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXNqWjN5RVU1U0NzWVJXdEQKK3dEdzFSWDBsemNrcC9rN1JOSWJYbUtvNFRBZHRzYmdIS0l0M3MwWTJIVnR5UmNYUDZOc0l5K1A0aDBvYWgzOUIKK1g1cUZYRlpPeUJJYjk2NlZsUURtS2pJY2txaDd0YXZjOER1aDRZK2R5c0lxa1hJcUliMHZ3UUhxa01lMHFLQ3kKK1hhWXZ3L1RDaVpxL2pmYm51MzRtQjhYSERTUEpUZldIRk9BbTBWcURqMVpJRTB1SDBFU0E1ekppbDJBdlpzMGQKK1NNQ2VIZ2Jjay9Pa3dpRFpvVks2M0FtS1VudmpuVGxIb2F6VW42azJzMnlFM1huNUhENnZJSEFzM0g3NWRDL1kKK3JrWVlhQ2J2Slh5SmRGZVpqa3FhamhYZCtUbmlWWS9Zd0ZoUkJicDZ6WlJpMUZqUUVvTkIzSCticzc5TEZzNWYKK0sxa3JQd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXBBL2FFWlQ1VFlYTVJZcWRHbUxmZ3Y3TDM0Y3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBeVUvOWYKK3cveGxJbW02Vmk2SFVSaUJ2amhsSkVDb1NTMWhzYmtXSlUyQ0N1dkZ5V05FUXdTNmFWYnJhZWhTVG02ZlNmT1cKK21pVk0rdnUyM3BmVkxUMGZkMDJLSjN5Z0FqSTF1ZDNMUzJuS2w3cUJFMm8wTTVDUnYyUC82M3QzeExOS3cwTDQKK2NId0lMUFB3cW0zNkcxRDhVTHJYWGhwODhyV3l4ZVNHQ1pRY2dqNTZrT0I3ZnNWS0NuNUNYZnVoampIVFUxb3cKK0tSZEZ5SzBEK2RqSnRma09QS1l5ckg0T3h5cHZpNXpkZFR2T2wxZmdkKzBUYXo5TlJOdXl4T2lxR3FwWS8ySngKK1hKRGtkMzM3a3duZGZmdXVDUFZkUDFPaWZvVDJsRXpzTFFyRnp4K0Job29VbDRjYnhjT0N3MnFXSy9GTE9OSmYKKzkrYlNwdzNBSXN3bkRYejdsdDR4Zm1icyt4K29aS2g1dTJ3cm5BNGcrRGRRN3pxaFdGZldtcVVPSkVodEdmSkkKK0FrWFFpeXBNMEtPTHhuUFRYWmMySlV1TFpySVg3U1NiWXJxZ0tRVmxrZmVYMUtKK2FHM3NGZE4rSUs0dVAza3oKK0Nuc3E1M1M4TmRPUkpuaUZmeEdYWU03R0kvMHp6dTRCbmhuQ1Q2T3p4WS9lZzc4SzNsL000dE1ValZNTWg1czUKK25DZkYyem5SbDBLQlVhdC94UVZhT1pYZE8zMlRzc3h6aGhGVDFvOHFzNnZXSnV6ZmxxYno1RVUxcUh1eVRYaFAKKzJrcmZLdk4zc1F0T0NDWnArTjFZcXV0VjZGNTdGT0JQSnZBaUpSWC9kVm9PUVBPVnJDSmU3ZDZIN3A3bVJoWXIKK3ZGNk83TkE1ZFpYMHRDdkVVYXBhYnhNTzlHZFRGUUJiQm5kQzZRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSUZYIEtleUlkIGU4MjY2OWNkOWYyMDk4MjcwMjk3NDk5ZWFlYjhkZmE3ZTY4YjM0MjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQ3loVmh5OU4xcEFPUUFBQUFBQUxEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRFeE0xb1hEVEk1TVRJeE9URTROVEV4TTFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFpYbEpaQzFsT0RJMk5qbGpaRGxtTWpBNU9ESTNNREk1TnpRNU9XVmhaV0k0WkdaaE4yVTJPR0l6CitOREl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEwTkdOaTlSbG1TYTduRTZuCitaZTZPV0dEVHdubCtJdTlTTHpNZHlxUnZVQVR1NUs0SGJDRU5OUXhXR0IyVlBKck5FSzkrRy9pRUVsVnROakJaCitBMWNKMGh3QXBsV25GR3FVVnQrZ0h3UU56ZSs1dkNaMS9KaEtJa2dNTGx3ZkJFYXNObDlsMTBvMUFJb0JRUWcwCis4cC9pc29JM1UwWDBWYmxNSXJZODJTMmZ2T29zd2IxSnpjcGEzeTRWWDhuSnA4eEFoQ1dwKzBwb1lTWElWeEh1CitCaVBoM3pTdVlDZ3BzVXFiK2YvNWU4bUFMN2U2NllWOHVIZnhZdWdiL2p0d1d6VFJHSXpJakNCVncvdFNDZWVNCitCVlBERmhoY21KbGhwMHVqNjZXNHpHVFFWUmpBZUVLUXdUNjJqZFpUaHg3SjFwV1pESXQ2dnVkYVJLTXVhMFpWCitDaDVhR3dJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVnTFdHK0p0U1BESTRuUnV3a1p0RFNiRFc5TVV3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ1ZEMjRqCitlSXppNTZ6dnNpQmlqTzNESGRrd04yd1dVQjYrUFJHNGhSSVlZdU9rMFNhOUZWVWFtM2IxVHNKMFBCblBGM0xJCis3cWhzVTJ5QWNLQUhSOEpQTTJyTnpXY29tR1liU0FOZlJ0T2NEVDdvbkI5bXlKZ3RSc3FnUldBNThqbTg4TEc5Cit5TzliRmRuZ3gwNGNoeHNvU1BtMFAwdFhEVzN3NEttUU45S3ROaExxdXZackJKMzJZMEZaeXFIMU4yODFlZmxxCitnMDV4Um15ZXNtUzVpMzY3d2FINXJkVFhzaVJXUE9YNlYzSG5hdGQyejRicVpibjZqZndSZ0ZmZVJQbmtSdTVNCitBVXV6cG1Eei94eEI4cU9GNWMxbG9nSjdFS0tDVXhRblZGWVhSWktQc0F6cnRPYkg5K0srL2dubnBCS0lReGVxCitld1BOdmNKdTYrRnpySktoeUs2ak8zQnIwbFczaGNvRmc1KzZJUjdlYmU1Y0V1WHJUNlNSb2FzeVlRL0x6czYzCityR1d0U0ZjMHVsNkptOVVBb055YWF6MjJ4Sm9ubU1LMm1nTFpFbmJBVG9ncU1BeTZDQnk0ZE9xZHdMbTdiVWlECit5STR2MU9lazhuL1N0S2NhZVBuMGFnMlBqL3h2TFRSTkVDdzJhWllDUkxvY1NBclVxK3FENUhJQ2QxQXIrTURhCitDc2svYXhJTWRHdlpiaE0vUDdWMmN0enJvSWpkd3krWjM4V2ZkWUw4VkdsNVdUbXR0NytyTTlqY0RyZk4yL09HCitrU3I3WEV3VUJGanFrV3RtOHZnY2VGVEpmdWtmK1JQQnFFbmVaQURxZlNZOUZWbnA2a3NZN3dxWk1pNzAwV2pPCitrSE41aTRVWTlkTzFkT0JaMnJ1aFRLM2Z6Qm5JVXhJUWxreGhDUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJDNkJEMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBV3ozZU0wVGk0Vk5yUUFBQUFBQmJEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01Ea3dOakU1TVRRek4xb1hEVEk1TVRJek1URTVNVFF6TjFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0TVRSQ09FVTNNVE0zUmtFNU9UVXlOa00wTnpFM1JFWkJPRGd4UWpJME9UTTJRa0pECitOa0pFTURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTm5OektKM2lBNU1ZZzBXCitBT0R5YlVWNmIxSmsvVFUwRWhDelVkL2dnTjJjWDB6Qi8vYlhKd0xrODA5cytUM1NTTkFLQzZKZHRLZ0RNKzlrCit5dDlrWndLek03d3VVOEpZMzZ4aDZMb1RhZXo1MXNwVWsvYXhxc2grRThXMVVkQVJUazVhbkhUOWQ4NGlla0pMCisxOVUxbVYralpHR2NrT2I2d2hlT3pYbFRLL1J4eHhFQUhIQ1p3Wnk5dE9GYzdudVFIL0tLd3FqWXNRM1VWbTA3CitZdmhRVFVuUldVUktTVGxyUjN1YkYvaXJYSWx5TTllZGhPQjNRRXdjNFFLK0FBeEYwYjUwMXc2aE01SVhtdm1QCitYRnRxRFA1Ulc0UXl5YjJzelNVdDNpMUZTd2FLOGZWTzJSbXpETEJGMXJUdGx6YmVNZFRGV0JpUnV2ZkFPSm5wCityZTRWT0M4Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQWRxRlJwcGpSMmFvTFBJRTRLaXBZVHhQMWRKTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFlTktsCit3MGorZXhsZU05Wk1HUEJLWTM3ZDVCYWpCT1lVbmYwNmJLS1FBMkh0MkM5Kzl5anhOQkVLYkkySmlqdjIzbDQyCiszWjAyWENycGtteE4xWUwvT2lEdnhjdlQ4aW9iVjBqWWt2VVRHdXBaV09ubXh0UVpaYjdOdGJNMy80NEU5U09LCityUHlFUjd4a015TVo0NERWSnZCYU5OYm5LV2dTRmVtd1ArenV0TUtrbVlFR0hNWXphRHY2WkZ4TXRoQk5DdEpzCityNjhPYWNSQ1cxWHNTYjRnUUxkZHJhaGFaV1JVWlJvMEowWDZqd1V4bXdMSjVqY1NKMzREY1M4OE8weUFVakh2CisxTnZFU0VpTjNPOXRoNUhydVYwUnZMVFRhTW5PMXF6UEJMUnhvSkNKVnlKSXU5dUNUb3VPK2swWGZZbVBtMlpWCitlWFRydDUrMHcxbnY0K3NGWlFiUXRKeUdRaEcxcHk2RE5VNDdrUjNDM3ZTellRT01Yc3AxaFRKdkFYa2VrN2Z3CitnS3piWVpZbUNpeXdJUWRzQnEvZDFPMS9hVGRJQVBmUjZHSGVUNkdzdjIweDBlVW1hWFpDbzJvc0JNT2FsS29SCithZGJaZmc3WTNzVnJXbEY1WmtGeUJFNE1nZ1F0eTVCdElFdnpKTW5pZ25RZDI3NGFXNEhOdG1nM2pCNVFDdXFkCitmOVdmN3hwbUdvUWlkM3gwR2d4SWpqTDlGYkMvbEFRQVloSWNPcEovQkhmMmFKV3VPTFJ0WWU3bEQ0RTdFMkY5CitUbXpMRVEzbmtWUHhSaWtCcThCMEFXNWw5VVIyL1NmU2c5UCtoOWphOFlaUFUxMHJMc1ZVUU5GY2FkT1ZhTHltCitsaEkyb2ZTb3p0M0pBNU03eWJKOE14WjZuNkdIcXh1ZDBOd2FlUjA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJDNkJEMCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW1qM2pRS1NvcnFXWndBQUFBQUNhREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazFORm9YRFRJMU1ETXlNVEl3TWprMU5Gb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdE1UUkNPRVUzTVRNM1JrRTVPVFV5TmtNME56RTNSRVpCT0RneFFqSTBPVE0yUWtKRAorTmtKRU1EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU9BcXpKVTQ5aTZPL1YyaworVmN4cjhtL1JkaVJVV2tRYXoySk9VTTgwdGh4cTdvOS9VcTZsSjdENGpVeXJUTzNneEZySU9wZWpsYXFVUG5iagorK3JKUkNHNWpwbDJ1RllXU3F6TXErSFpiOW4zSExldThyQXQveTVybHl2S2RTM1VaWktBYzArMmRNTmlHSmtoNworOXo4UWZSZVg4eE1kYjJ3OGFKSlhaWDFzQXFUZk9vWHBIMXRqcXFmMHNRTDZUZk9YNkVXUUc4ZVlmQWN2Y0k0ZAorNWdTZ0tWdXA0dkRyVE5sUDBkTzFZRlF2bDBoTGRMRS80NGhQeEw3VG5paFMvYWZ2bFZEMm5HWGtLZURIeUdaWQorQThBVkw0cVFRRXFSL243TkZxRk8zUUJFb0lyTE16bTRGM3Z5dWcraGFFcFBoTlRYNHgrVkRBMnYybEdKd2pDNAord0cvb2JTWUU4REpHMjFQRSttQjZYaTJwZHZma2dRMHpoQ1c3clE2UFB6M0IxZDF4K0pmbUdGVmh2M1E1MGZLbQorU2dsOW9UNFFhQmpPMHZVSjFlLzhSWG1TRFZSckpvYUNLN2UvT2NadmhadnpkL3lHTmRlWERFbVd1ZldIYkFiTgoreVEvWDhXcTFrdHN0UUMvaXVPeVVuSkRzZ0g1RGI1RHZIckZsRHBKM3N2cjBSUmlqMzNua05IeE5FcjJaQTRLUQorSThEbFJnclBzRXdwUEEycEVMajhWaE5LSFBtUXdVdTBreFlDeGFtZks2eWFJcWg4ZHRhT3RZVkVRZWtXdnpKUAoreFQwUGUwcWdPUld4ek9JY0pxeXpnRHlsRUZwcHdQNDRqQ1NpZU8vMkFES2NUSjZKcEN1YU9WWTBQUE1Qb3lVSworK1d2a1B5N2l5bzY0emRoRk1wZFVTVmg4NUdTYkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSNm9vOWhvT0NXV0huYQorNFhvdmxZQXFEb2NtalRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSW5UMmdvL1VZMGlHQUpEY0k5T0NUM2ZpTXo3Z243Tzdma29zcXE1SDYxRAoreWpRQXBaZHdLdDAvV2x4YTZWQUxCcEdjejhWUUNzdHdkN0NwNmp5MmN6dU9qd2NtSEt0SW5kdkpUSjdCL2NVNworTjhJV2FxNXpTdjdqZzhNOGpLS3VBVzd3elNFbkhGNVFPdVR1K1AwbzBkMFFCS0dwMW5UWEMyRzBNWlpVOTlBbgorSm9zRDJuYlo2OGVLVlhBWTN1UCtyR3dLY2xIcDF1bnJjb0M3djA3WXU4SjR4TStFNEtIZ2EwbXVYTmJ5cjBqWgorUWlaMjNRWGE3OENHRTZGRG9kb3pwNnhabVpXQmZLbWJjTitYU250TkZLc3hqU013SXRjbktoKzRLWGJUSXdVRAorQTBDcDBLdUpCT3kzb0FhZld1OFNaYkk3TlVxRW9qaXkxU3RXeGxoT3NoeCt2YWdiOXIyU0dlTVd2NFJxbmJITworMmFpLzZib2hjUys1WVFDZXNpWUc0YXpKK0tpMERpQTU1bXBkT0Z5OUtwbVVSTEpmVXpoRlVWU3ZJVjYxVW9zMAordUxENnI0a3ZmZm9yWjgrbkxZWWxiTVFoWnNMcGpKOGhnNUtPTTBZQkdFbndqOVFvWVVqa2RYa1FsYlhnaklETgorU1ljUlZCQ0dmbXpneXlWT1NCVmhhZEdQOHRrMVQyd2lvdTk1czhNUjhqVEoranJMV0NDL0JyM0xIblg2c0JtRAoraUVKOVRRSEd5d2VPWXE3TzQ4Q25TbVZvcnFSMyszc2F3dTY2Nk5DS3JWY2RQK21pdkdBQjB3TndDNjFUVWpCYQorVXdWTWdwNkZJVWNweWY4UTk1Vk9YTk5YMTY1eWtUd1ZraVlYVFoyVmttQlZlbWh2Yno3Mjlvcm9NOFBSMXJqSQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtFWUlEIDJDRkNGNDNCMTZDOEJGQzc4MjQ5Q0M5NzFFRTU3MzI0RDYzOUYwNzkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVVHcUFNVytDT2I3Z2dBQUFBQUJRVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFl5TVRJd01EUTBNVm9YRFRJNU1USXpNVEl3TURRME1Wb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdE1rTkdRMFkwTTBJeE5rTTRRa1pETnpneU5EbERRemszTVVWRk5UY3pNalJFTmpNNQorUmpBM09UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxvZXAyRzRGL0NhN1lkSworVEJlTjNRMTljbE9RcHBtVUVYc0kzNjczbnY4aGNBTmVtQjBqakFlQW50K2JGODVXSXk1aGgwWVlSbnFpWDNBdAorR0pRN2ZDeWFCOFliT3hUOVBTNmlrYU1pS2lSY0huMHc2VXoxeWF1RTlvMkNCcVZFcXVDbk41NVBpczl4WUNGOQorSDZxMDYyWFN5TGViYUJ2QkNyUm1TeitsQ3hqbTl2dmQwNHdIY1ArMWVHQnFwZXk0VzRZOVl3UGc2aXN3ZWtGbQorbVpuVC81L05XalZxbjJuSDhBYzdyQmcyeVluVXZiWFVFbzQweGFDMzFJT1cwRXExdlQ4bWtuVUdWT1FvTnJzKwora2VDMjFaZ1J4ZHBRYmpONS9qU2hkeXhvdDFHaVJZSWlwd1ppRHZ2MnpRWjJEeGQrUDN3cTAyaGRVYlhnb1RuMQorNlV6cnQyY0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkFxbG4wdlhCVnNUQW1KNGZLYjAvV0pkT2VReE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBQTNIVAorWFN2OWVIcDFSV2RYYlBCeDIyMlFRRHh1OXpxVnN2VktpUnJweDg2U2NuOEpFdUs5SEpMcVJlNmp3TWZjQ3VYNworak9ydUkramNFUVhXeXhJdUNOVEUrcmdvSnN2S2VQTXB6SFVmaEg3NVd1blZLSHYwYkI5amdCTWVvU0xyZWR1VQorakZJWmN0aHlEMnR2VzlDVDRnSW1HL3VSRW10VVoyUVpvckRRTmd2d0hMZkozckhmbm1QOUR3dnpONDh1bk1OaAorZnBhdURNZDVkdC8wR0FRWTdWQ3BpVWFicDdXUHhHQ1lFR0wzTlJRQWZ6U1BBSklTOHp5RVd3QmVLOE9iQk5FZAorL3M3RWlKZHdEaDkwa2trcGRoSWM0eVNzdTBIVmNlRW9OUTU3YTlpZXdrQkRZcFdPNC9ObVVrTHdUQ1hrM285TworazJRREtTMGhsYWpFaFE3NzNSWm5sN0lkSWFwNXV6NVFZekZEVzVWVzFsZk0rbzViRHluUGhIcis2UmNYNGRseQorYjltMXN1OEdNZUpHSnhEOWNUSitCQ2tGaFBIa25XR0ZSQ3g4TnZJaytERzFNM2RlTmNJbFVhYkdXL2Fxd2dJbworZ01jUXBadmJyQTZ2eHdZMis2OUh3UUMvRVEvanI1U211SnRGS3NNV3ptOW9CbVRDWHM3aHU1YzNRc0RyMy9negorVFV0TlhzNUdkMFh0U3NRVFQxRFpwL0lIVUtIcnZ6K0diUXB4QmVnc2VvWUNkcTdBRFZJRU1SR3ZyN25yQ2p5MQoreGVJbnl0Rk9STGlXbXhBZmdUWWtHcGtsMkZZb3JmeVZWR1U3cTBHNDJoNDZkd0dJZC9wZWI1QnlyVC82d0ZCRgorS2E5cExUS05FeFBKUFdRY0g4M1prNk9WbzYvbEVmT1FtbGRURElJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtFWUlEIDJDRkNGNDNCMTZDOEJGQzc4MjQ5Q0M5NzFFRTU3MzI0RDYzOUYwNzkgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFtWFExVE05d2xaaFl3QUFBQUFDWlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamsxTWxvWERUSTFNRE15TVRJd01qazFNbG93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRNa05HUTBZME0wSXhOa000UWtaRE56Z3lORGxEUXprM01VVkZOVGN6TWpSRU5qTTUKK1JqQTNPVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLWnFXZUdEVHN4UTNiblQKK08wOFdlZnVHWGtLWjhaNGlZenQzVHJYM2hqTlRvMmVJS1d5c0dtUzNWcDhiYVl1TnhMNndPdktUUmQ2SmpGczQKK0xJTGp6V3JHaWJ1ZC9EMEZ2TmVhRGJHdlBsbzVIYkJ5NXhxcG03RTZoU3hWNDFNb3plUFBnWlc3TUNPdHpyRUQKKzljdVlCd0I1VTFBZkFEMDhwN0JJWHFOL1NwaDRMamt0Z1I0NWZKRFVCdTVJL1pnZ09OajdwN1ZMbmh0NHkyZ2sKK2xZaXRqM2dudlFMRG84cDlFRzhPRnZPMWZ0OFN4WUZYUkxsa1hxRXBrS3BwQ1A3L29NOTgxbjNRT1orMUkyR1QKK2hZV3JUWWloY1hkS0FwRzg2QVFwZGEyTjVvUGpOWTFLeGRyd1dSN1c1akliSTA4cnZjazBnakxOeFVMczN3QjcKK2hJazkvdGcrNk4wQjZNL1NMcG5Da0JTb0N6My9ia09MaTQydEFzOTJ2bVlxNUNudFdwZGtURDhSa0xicHUyTUgKKzMzMThJSUNMY1MzOHdGNEJrSmh0eUxldmhMVDZkK0U2ZHhmWmlENzlWYTYrRTJiMzk0NWVTSGkrK0E5MXB6UTMKK1lPOXF6TGViWVpCZE1FRkFBWjBzc0Q0Q1VQV3VjRWwvNy9pR3JpckN0NzY4ZUJ6Sm1ORlJDMmZENlNLL2JnTlEKK1NDdHpXem15QUJ1eXNpSlp6eHhvMG1BTWtqYzRLcCs5VitkN1NPaGgybXRMdWJMRjJuK0JvV0VLeWJoS1JEUHUKK0pRZWtvRXZkWEVEM21Qc3JEa25lbXZDKzYrMExDZDY2K2dVaEZ2VjY1emxpUE8zeWhueWszSkxZTGNNVGxPVEgKK01HTUNlR0t3cWIwTEZ5QVRNNnNYSjJDcld4MzdBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU25vek9xcXpQVGlPTHIKK1MzVjhoN1JlTVFueEVqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUR0MFhUOEtXMlJBckc0bERYNlRtSURpZzFqcFkraDlKVWZTQTlPQjd3TTkKKzdJOHFPVS9tZjFSZnJBdUU4YkwzYUEzVXZVN2UyL1NwMzhMN2c1MDZlUXRKams0eXl6alRKY1BVTEp3bndXcVcKKzhtd0MvVnQzYUpiUGZKMHB1WXhSOEQ2aGN1VnFCOWZBVG9VQnNUbmcwV0QrSG8yVmplcTRCTk5pc09TV1ZTc2YKK0dYZUxid2w1M3hUbXNtOGllWGZUb3pnN0E0b08xL1hXK3Y1ZnVqRU15SmZ0dVpXTmxhWUgxMUp0d1NzYnVONnIKKzh5RStvVGIvUlJUNDd0OVhwekpXRXRHaS80VUJQb2Y4clhLSmIxTTBtV0ZvdkVoNjlCTkI1d1NmQXJ0R3dWeWUKKzhRUkhiamxnbXpnZlFKWVNaUnAvOHBkV3hlQ0puUGdXei9RcmFYKzQ4c3NPQzljTDBKNE5FWFVYZTNkcURlOTAKK3FFWUNEWTRIRFlHVWNPaWtza1o3ZnJCeUl0Z0JiTXlCYXZZSU5PVURjWU1hd1N0Vmt3NmFNRVUvSFAzY0tsRXMKK0xTZ3lKcTRjZUVDblRZZld2M3pUSE9KRUh1d1BRaFN0TXQ2b3NBWDUzVm9lbHBJcXUrTkFXWU8vYXludUsxNmUKK3NmdTBIVVhxaWl6U2xNWCtmRm55VmNJWmd5TGVvbCtSRzRGbG10N2dTMTVZamszOEhEYUlnb2s0NFpYMHg4d2sKK0Z1KzhVV1ZOUmgxK2NBeHluVys0TnVRNitCNU9oVlpZVDA0bFI4cjRMTmVVdnN4NzJVcHVObEN1OHFpOG5BbHEKK1MzZytiQXVKVndUUE1VNG9OaFFmNlJ1Q05zNk9mNVY5R21LcFpQT0VZc0xHTmY0ZXZaUU5LTXVmUkd0UDc4M1gKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCAyRDNDRUNGRTY1OTQ4Mjk3MTlENjU1NkI2MDA1NDFFNzQ5RkM2MzVCCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFTSW9Ib2dlSStiMmVnQUFBQUFCSWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3TWxvWERUSTVNVEl6TVRFNE1qUXdNbG93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRNa1F6UTBWRFJrVTJOVGswT0RJNU56RTVSRFkxTlRaQ05qQXdOVFF4UlRjME9VWkQKK05qTTFRakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMZ1VNYzlMTys3MzhGWFMKKzJJanJBUDBNemZoeGVlQStIU0JFaHpmWUR0WldXeU9Ic3J4dm42ZUthM1J3S3VFSEpDYVpqR1V4V0FhMFVBdlkKK1c3NHo2SmJyZDFJbVpoQ05lYTg1YXZ3bEVMVVVpNytNdlFUcDVBMmpzMmJJUjlwOS9FNUQvNHdYK0huRTNmYTMKK2M5ZXNEYm10eHM3NjBXUWRpdXZ4M05ORGg0anFmb0dzc0tGY21mWm1MUEJkd0ZPWWZxdDR6c2V1OWtFZGR2QWQKK2ZuY2dTV1NUdGZ5U1BkOU1ZQ2lrdXJsWnJWbmpBNlo0d05QU3BPdUdBMHFQbWNjTllZZDErN3ZKNHRBVlBNdnkKK3FsWlNYVG0zMExqSkx0dFFUUnFSWldjSmp1VUdkS1NMWVpJbDZPeklubmVmdWxTdEdaVmkzOXZaS1ZTSFVOOS8KK2VSU2FkRGNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMTXovaFRwd3dLM2lZNittYThCK2s5VWpMMHdNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVBzNVMKK0JVbFZaSzhVN2NSYk92MFIzQUhKM1VxUG82SFd1SThhV241c3ZwMXM3UUt5WUljTS9vYXBWV25HR0VoSUttVmYKK3IrenJMUjM0U0R4MC9XdXAyQWw4MUpna01LcDdUb3NTZXBIdmVNUGNWOHMyV0NLNHhhTGZKYXR5ZjNna1N6Sk0KK3o5MTN1a1hIZDc5cTJMY0ZsUEYvejhaK2VwdWJNeXhLc2tZVU41RE9uOFo4enZiQzlEWkJWaDZqUUhjcnZSdTIKK09SM2lkNC9hbjAzOUZrMWFjQ1lvV0NLWC9qSW8vSS9xN0p2Nldva1NGQm5UUldiRmJzY3RpTVRjbFFVdUFTK1oKKzlld0RqQkxLR2dNby9YRHJTejZCblQ2LzQyaVBQdmFBMWgyUUxUSVYwa05ZU0JvQ2taSjAra0U3TGZKMFRpbUUKK3VCYXVKc3ViOWl2Ui9nOXF6NjRmOUJpRzY0SFNQSzhUV1lzWE0vQklndVBndHYzWEJTdzE0Tkp4ZjI4c1dnOFQKK2R5OVE0V0hIN2RBUEQ1Wkh6ZEh1QzZpSFRLUHI0UEh6MDFncGxxVkNXWFAwYldXUHQ1UGdzZ1hUdTdYMFhDN3IKK2FKeFA2dkZKVSt0TG5seU1NOXlNWGdWZWZLL2psSnRvV1NOaHZJVEFGVWV1aEM0dDJ5KzJBemJwb2JOSkEzbUQKK1ZNczhZWjVscWN3MitzMzUwOURsT0UzZXhmRVZOeEJweEh5Rmt0b09UZkpISmpQaDBtNXhEVk5KMkN0UzJaRGoKK05BZXcrSHpqWHFIaHVOby9WNitpZDc0OTA3RnBsaFJaZUZkc1FiYmFBY0h1emkwR2F4K0Q1dFRBeC9rS0MrbEwKK08zbDhkZS9PaTJVRGpTNXBDZS83eXdYVGRORjZ2SzZ1dUNENkx2cz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCAzMEI4NkYwOTREQTZBQkQ1MjM3MTA0M0YyQkY3NjY4Qzc4M0YwRTY2Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFXMkxnS3NpeldwblB3QUFBQUFCYlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURrd05qRTVNVFF6T0ZvWERUSTVNVEl6TVRFNU1UUXpPRm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRNekJDT0RaR01EazBSRUUyUVVKRU5USXpOekV3TkROR01rSkdOelkyT0VNM09ETkcKK01FVTJOakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMeEtGUlZrQW15M29zczkKK0YrZThma1V1a1Z6bk5pYjZJd3FDeWl6YWxHYTRTcy9HZExPcy9CbSt2L1I3Y2hRb1c5d0g5akIyLzhpbis0VUEKKys3aXQ4UWZhYk0xZzlmbjVxd1o0UnNSNnlhaFYzRzMxTm1jWXRFQzVWT1ZPZnUvUVIxTlk1bWsyTkZNaGRmYk0KKzUyN1VkZkFYa3VVOWhEbkhtVmRyYmkvV0xDNkpzSXVYU2U5M1BrZzBxNU1DN1ZPTmdHbUZZMHBTSmpqMmluMDUKKy9KNkxwOEo2bnlVdVU5TjM1K0M0YWpjVHpkZ0VrcWhBN0treHZaL0VOQkFhd2VnQkdkVmZSNkxja2R5SG1teFoKK05sNmZnWHVKdlAzVmtycTZobk56VkVrK2tUeStPVGFnK0Z0TXlleWN6VThjd1FQV0JHM2FTMFU1Mm5CNVZKVkgKK3JrcUpweGNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJaEdVYUxrVHNDVWh4dG0rSHQrbi9GRm5Bb3hNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQU8wdDEKK1ZQNThZU1cyYjY0YkViSEtJRUc4UE1LTkR0U1hsNU1tbzVGOWZNMGlyMVZ0T01mUkF2amdSUG52QnZGS1Ztd0gKK2UyR25BeXFDU2VLMUZyVFVQcnBtdmJELzQ1ZitpdXlkS2ZNN1pNVzBOUkRTaURtWk5kY3ZzZXFsa3NYbGdib3AKK0owSlI1OVR3enZaV0FubmZoTnRUOUcxTW5JczZlVS91U3lPdnJTQVplWHJWb1k3dHd2OVFwcDExKzVsVUM4cmYKK2xVZC9hRTV1a3g0Y2V1M3hKSTIxY20wMjUzZXIram9CVmVBeEREVWc4OGhsU2JyVWV3K2hFRmpyNXJ4aENwbDgKKzArS1hCazN5LzdaNjNRd2dEVUJlWjlQd1JMdzVZZ0YvVGhFZ1lYYzgwNTg2MDZmWEtzTDh2QW9yWm1COHpiaFEKK205c21lRXBOVGVtNGxvNmRkcmRvNm13dDJPK2NJNGVwTkJxdWxJWkxzZkpJbEwrVEJOTUpJTk03ZHhPYnUza0QKK1pDZWNUcGpnTXJ1UE52MTJac3BMOCtlOEkvbUZVdlY3MHNkNmJsYW90d2ZZT3NSU1g0N2tyWmhWaUdkR3U5dDMKK1NnTGN0clQyaXgyV1VHMGRkQXB0Vkk0S2ZncnFzUHpJRFN1aVpUdUhlMms3RFk4QlRyenY1dU5mUmphTCtvcGEKK3RuSHE3aUd1VFF4Um5mUkhTMko5NHExWmtCL0hrbTE4RStTalNtYS9mWHREbW83ckRRZ3R0VCtGa3c4SzM0ZDQKKzUrWVJVTlNQUUEwU1h1djcvSmo1SmNiUW45UVhXQ250OHBMcndZdlZiUFBlT3FWZzFpTktQL2JQUFpmRStoVFYKK1JXZ1ErWnZBV2NuQXkyckF3UmpTeCtGTE1jZUp3bWM3TE5CUHZWOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCAzMEI4NkYwOTREQTZBQkQ1MjM3MTA0M0YyQkY3NjY4Qzc4M0YwRTY2IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbWxpTWNLQmFEZGQyQUFBQUFBQ2FUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprMU5Wb1hEVEkxTURNeU1USXdNamsxTlZvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0TXpCQ09EWkdNRGswUkVFMlFVSkVOVEl6TnpFd05ETkdNa0pHTnpZMk9FTTNPRE5HCitNRVUyTmpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBT2VoeHhDRFFJd2lXenJZCittcWo0d25WcUs2QWN0c3VLeGc4WEZWeWVRdXd6TXV0Q1ZKTmRTKzQ5ZmhzWGYyd3p5NXVjcmpvYkNBbDNaSERiCitjSHJLM2NZRTZHWkwxcVlWYml5TlZhVUFrbnVOSm5xS0p4MEUvRjhlNlpwaEx2YXp4TGFjbnlPdkozOHF5bEd5CitKd0lTdnA1bDZNZm12WXJGa2FFU2dhSVlsZzVzT1lJQ1FycU5WYjBIM1U4V042UmdBUUx2d1IwT3NwSXFIM1pFCitWMmdsRUxiM1UzMUl1ejRYaTlyWVNwTWNXeU9tcDltODVFa29McWtzK1A4UHB3TTNlSy9yd1JtVllNYXVNajFoCitjWnRIRXB6NEZkbzJUSmFONVJXVDRoay9kdEVLdW5paUJPNjdkcjRTUUNKRS9MYytpdGJDVEtVNURuSjhiUTBFCis0bFVTRDJuUFRlZlBrMDliK01xM3BIRmRpaTAzOEZ6eHYyc05kUTk5TTEvOUhZa3drYzhVbHFmT0hEWUpmajFwCit6MTMzdW1JRFF0bEJNRU9wVmNjcVFaZHNmTUNLbEZUZ2tQR2Fvbk53ZDF3YnVLVkhHRmRHUnBKV09nMmM2ZlpVCitVRmVnU1NaQUhYa3RXc1EwZEZGN0t4eEErTmZldWhOTEk1Vkd4SE1UVklrazRZNXFtYmYwTllOK0RrUDYzTEVKCis0WFR2eU8zS1AxUkt0NG9oTGFVVFRqZDc4bThIME5wMmRKNHFNb0hTZ2wxU2hNZGZxU0J5TXlSdm1taVIxWXRoCitCaCtXQnRRYm9xbUsxNUEvMWlObHc3bElWSkpHa011cGdleGl3b2ZoQzdLSUVwR293Ymo2STdzR0ZCY1B0MFpFCis3cGlJM3Y5N0NIdHEyRGdaQnhWUXlYa2NCYnFoQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlNmb2pWSjd4b1ArT2EvCitlWmtna3NNYS9MZHJnVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGM0FTWVJIYnF1NTU4UWVvWXc5azVFcEN4dWVsV2x3NVlnZ29NTHkvTzRVCitmZmowUXliZDZXYnYwMG1UcklzZmVaVTJia2h6c0kxTTcrQmFQaUxDOHdsOGR2QUdpa1BkOWNHdkdFRVpuRjhLCis1TmRLdmJOMWJBMytMS3gzL2xBVUxiS203UU90OXhMRGx3elVGeFA2UDNJalFHd25odjYza1A1a2x1bHpuWmNFCisrMi93T3pHMEZBeXlHOG1BTTgyd21ReVpYRW91ZW5Md2NhSXJFMWU4UThVbUpXVk1RNjZWVkY4eU1UbnNQZTdvCis1bnZtN3VPOGFFUy9hZ0hJYUtDeDU0VGpzbk43R0cyVzljS0xvQ2lzK0ZEOVROM0dpa1c0NlFOM2djSWl6RXJRCitHQ3l0eWJqZDE3cDBnUVErUS9rUk5ydkxwUjVBaDUrN3BRWVA5WVNSMEVkOUpKTHZKTVpUbnZOeDF0dVEybTFhCitiMUNmQVJ4YnZmQzZ0VDhFQXhyUnY0L3FuRjlSbkNYSXBzcm4wRGl0SkxRRXk0N2pLYTdKblpHeGVkVkJZbVRYCitBV05WVmR5TGx6TW5CYVY3V0E4Q01EZER4MmFmR09NdkFtTFRQdFl6VWFWZW1oa0ZKVHZYQ01EMmJUU1RXN1laCitkYTQ4K2pqSmFEQnFHQWh1ODhJUnY1K0hLY2FmT1M4OXZkamNwcmljYUdONEZBZzdxTndleDA3VkN2U05zd1R0Cis0WWdoSk1GNTNIaVIranhPOHVXSS83TkNnb2U2WWtpN2s0L1hRaHRyNUdFeFV4WWFEUkV1NWZBUTF3WlRSR3JFCitGT1o5aE5FYzhDN1JuQktyRUJMVTFDZzVLdEhYWHBDcGc3T1JNaW1EL2RLUTZVUGhJVXRSMjdRcW5oOFc4aDErCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0Q0M3QgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBUUtZZXhFU2xkWDJ3Z0FBQUFBQkFqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVek5Gb1hEVEk1TVRJek1URTRNalV6TkZvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0TXpFM016UkVOa1k0UVVWQk9URXpRVEJCTXpFeE9EQkNOemcxUTBNd05qTXdPRGswCitRME0zUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS3BkUzVDYjFsK2tJc2dlCisyOFMxTFBZWExpL1dMVjNHaEtCVzlLaUJNT0xlTGI0cGF1ZnNZeEczVVBVaUp0MWRVY2xuUEs1eE5oZElId1hNCitJSkJGdXN5NGNsREFWVmhoSWZRUmlTMHE0cFU3RDgreExvbHhzV01ZNlVOUkdzNE1UbVhTSFBUTHZ1STJhbFhKCitucE1ZVE1ESFFuVjlsS1FFa0NERUlnRXlEcHFFSUhGSGRBU3BmblNpcWxFRXZtVXdUSm01VUJJLzd1TmxUVStYCitNZUh1WXgyUFdoYWdCNXZCM0dWZlVKQTNjU0xEellYWmlqU2NMMXhmZWpvNXJYRVhYSzZRRVNuZEovaU92VkJoCitERG9kWGdiQlFjQms3WVAxa1Fpd3N2K0F1YnNyR1dIOWtSN0hjY1gvdU9zVFJuVSt1bHRqMzBXcXZndjJGZ29CCisyTTE1djk4Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTlFpdkJuMFQ4Y2NJTWhpZWthUHNCbVRQYjkvTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFFSllUCit1djRMN2xrdG90bWo5dG5HcmdKUVBDMU5DS1JvSkIwQmxTNDZJMUpSbTc0QzlYM0JmaktOR2RidWVEUDRBZW5LCitOTnJ4ZUViYi9YcXZ0ZEJkTzFKRHljaW92V0NGczNHWHpoS3RINGFvekg4V0w5QVJvQ2dXaGZ1M0U3aW9vWFNpCityTkpFUk5pUFdvK2xjbnJIYm1ha09UeHZPTTgzSkd5djJ1WGE3ei9KbC9heGxoWVdteWVPaW9vOXZ3QXgwN2NJCitjVzdvQjBaTlhLZXRmTXlob1Uxc2w2WUpFZDFySS85ZGthQzdDeXlNcHZ5NTJkTmRWcG1LaTNYYTEyODVHNkc1CitwMnlsZVFwTlNrdnRtdE1Yc0p6dFQxUGxvUWhodFlhSm5HM0F2aEkxUkJNR1g4QTNENGV6bERXV1BSc1g5RDJ3CitDTDlwbmN5cndydGplWTY0VWZPR2g0OHIyaXlxZkJmRGFGMWVjQ1FSNmRuR0NEaFNMaldDeGtBYXhZSnNSRlhVCisxdVl3OURaejB6amMwQ3FHUGtOSXBFOGxyMzN1K2RoVnQ1eTlUcmh3TWVaZWtxKzFKaVdlNnE3RGNiMjNxdUlQCitJdFY2ZUlLbFo1TlBJNkQrK25XUW5lYTE4RXhLRU44QTEzMmhtTTIrMTVFaGxMSkxoNEZtSmY3cU5zUWNEbldOCiswNUdjR3RVTnpwY0IyK3NVK1pmeWVRck4wUllwSU9LL0FwRXo0OG92dUtrNHpyMUMybEZINnUxRzc1S0NRMzdVCitwY2dUdEswMEJvc2duMmRJY0RGd3YvaGVPMVg3OWp5U0FCVXROdkF6UDNhTTZGSGQxRUtkb3M4cGpjU3BwQzltCitSRExacVFHZ0UzcFF6UlNmUUk0bzM4SHkzVTVKWGhKbTBudGZWY0U9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0Q0M3QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW1xVURLRGV4Uy8rNndBQUFBQUNhakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazFObG9YRFRJMU1ETXlNVEl3TWprMU5sb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdE16RTNNelJFTmtZNFFVVkJPVEV6UVRCQk16RXhPREJDTnpnMVEwTXdOak13T0RrMAorUTBNM1FqQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUo5T1lyM2grUHVvK2hRTgorc1dBT0M0dDZMdys2MUI3WFFEYmhKVWxRMmI2VEg4NENGYjBsZUZHd29tNU1PSTFrRWFCS3BFY2haK1FqUE8vQQorVjNjM1YzdGJxSEZPY2ozM0kzdkJZdWdIdGJiZ1lVbVBYMWtjb1JUZjNNYjhQcVNzTXJKbE9qL1E5L0tHb1g5MgorWmk0WUlUWFJYSmgrdHRMdDdGQjVnVHc0eFl1Nlp5NGNLQnpPTktwdHhjbjUzZDJjTmwrMzA4VXEvK25JaEE5bworSk9nSmpQYjNnOTNIc2VRMS9ycGtXUkNUZGpwUTdoU0laL2h3dWVnVGU4ZGRqaWFDekZrMFY0cGRNdGlPamZTUAoremRiYmlxcFFjYmttMWNDS1cxSmVBUy9kMmdiVHFDSmpyMG0wTDFqRE14eUo5TUh6eFFoRXE1Q2tCZDg5eTRhdAorcXkyWjRPZkswQVZlN2gyeTBwSGt3MlJOZ1dCNFg3bUtyNkJ2TGFUSVRvcUE1Tm5SL3ErQlEzS2R0T1lLYjBOSword2F1OThnYTZJcm1UdTl1NDFSeGpxc2J5d3RWU2M3UnNsblJTOU1ubE1wR0lmQ2ZUd3RiTXl0YlZSbHgwaE9kTgorcUtoQXpmWk5ZbXMvMnRqT1plN3YyazZRVG9MY2pPMGw1VWl6RDRXczBxSml4enIvSkRMYWVFT0RwYU10VW50RAorTTBVeE9ENmkxcWl4Yy9qUWt6YjdXRkNNZ2JTRjR0a2N2bG1lTmhZKzRJSUZ0VnRNaU1yNGJFbTRiaTVCY3VyRAorVnl3RWVxTGdBOStFQzBvdFlQZUh6M0N6R0pydk5sYklvbTdyU05aT3FubUVTcmt6REdybTdkNlE1SHlTWFpJSgorSFBXZ0dobHo1ZXkrZ0ZXY05YaXRKcWZaZ1dYYkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSUDVRbmhseVRyRXl6bAordTVHSXFrZFhEeUNzM0RBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQ3pxQ1U3M0NNYWVJbFFvRXlFZXFVNTFsbHcrSFdHN2JjSlByemxoL2pIVgorSnJySU1TN0lBTk00NHVDeDA4Yk5RQVFScGlGemF6NGhsWGVRQTlSVUlWeHlLOGVOQ3J3UzZwS3lYYTBMM21Lcworek9aQTRnR2tTUjEyZnV1eXZsV2JFdDYrZ2RzTWRXY3FWeWJBYUhtRnJIQ1hlNGZoN2FLY1J5VkY0T3hSQktrRworNHFiTGhna2syMGQ2aWpBb3V3anl4RklJeWw1MEFFcm1iemhZRFJQbVhsaERDcldTWUxXRzlkWWJXZkJ3azkzSworTlVEV1l1bmRhaSsrL3ByQlY3VWo4TVI2Zjd3OGNOUERZWGQrSmVTVWRYTDhrZjlJMmtnZEtMUHJEWk1FK3ZrZQorRW05ZGFUVGFaYW01WWUvQll4NGVwVElKd0hpK29uNmFRTVhzd0dOeHJRZ0Jtd2tJYno2VnE2T0I3eHF0TndTdword0NjSGp0Y0M4NGZZMExqeUZkOGl5Y05RQ1BHN3Q3UUh5azJvRVkyeUpqMGUrZUVlQjh6MTllRktmNjJHWTJhdgorVndiU2RpdzNSVFlHNWdiTmx6U2J2UERiS3IyQWM0OU04ejJtL2dtYjIxbVlac3NjdDMvajVUU0F0dXZEY2RjUgorelROR29vQTdQcm5RL1ZMTFVnekhVTmNjbGtDTHMxQVVqMDV0MG5BWEpBV2ZmOE9QMXV0RHFsN04yTHlIQUpQQQorLzZwVmNtdmJOK0tIVk10OHBoMlVHZDlmRkx3T3A4akZ4c3hidndjOEI5Y3RRM0tuWWxPYkxaZmszVEZBVjkrYworNDFMeEpteWw1cmhrNWVKV0tGcWNlekdpOTNyaVdwekFiUWROZmR4ZERObWtzU0JEWk14c2VidVBWQlB2QmNrNworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtFWUlEIDUxQzczQ0JDREZDOTkwQUE2Nzc0MTdDRDVGNzhCQTM3RDRBOEQ3MzEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVNQaXEwb0hLV3dHckFBQUFBQUJJekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXdNbG9YRFRJNU1USXpNVEU0TWpRd01sb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdE5URkROek5EUWtORVJrTTVPVEJCUVRZM056UXhOME5FTlVZM09FSkJNemRFTkVFNAorUkRjek1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpuZHBZdTdHMFNFbVprRgorWVZzaGxqTzl3SEhZQyt3VFM5ZkRnakFwNUZMZGw0Q1RGU2puSmdQZzN2TENINEUyeFJwaTRNUWt6d1gyRTJVMQorMTFNOS85TS81TmtiZXFPeDR2blozUDVwbGV1VlYxaDhuaXN5WHhCMk1hTUpNZTVhb08vaklKOGRNS3ZUcUI4SQordUtwQlU5Nlp2bWxpN1ovK2tRblhGd0FxTC9aMzdzMzlSU2F2NkhQc2NQZmhQNlcxTWxpTWJzTlhjejlmVXp0MgoreHRmaGJSRHN3MmJQT216ZWhWdysxalk1Y0xXUkFjSUEyQWJHTS9uRFRqVlVCUjJiNnE3eld2QndsblV2OU9zMworOTM4eEtmUm9ZanhzblhHQlNHVzdRUTltYnBraVRsdWVpTWV5LzJpWml4VmFDd3Q5Q2M4aW0ySmF6YXBSWUFOcworOWc5U0lWY0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRlBGamt2YjZtcGJJZGdoeEVVeFo2TGtpbE5icU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBVkJYNQorc1FENHltaGJWeVZPUTYvMXJWNkhZRUMwNXJ4Wko5dkhCMDJFRENqUktCcGRFeGF4ZzE4T25ZQk5zSmM0ZU02cgoraGRlMjBwdWU0ajFLNFVVbEc0Mm5iUWRnZDVXNUZRUFpVV0o2VytLWGM2T1hwaXFsZlBiYlZCZVdDeHZrSnAvLworNWNtd01Zb0lRRjV3YWVCSVlScDZwTFBVSXk4Z2NyVUtld0tGczJtY2lCN0dCc0JKRGsrRDJzcHVxbVpMYk9CQworVjZyZEpLQlJFWG5zUHd6Zjh5cW5vbG03cWp0S2hRdGN5aVVhbDkzWFVjVUl4TFFLT0lwMWU0TVdCSkp4djdUegorckEyZ3BDUmcxN1dsQmlXcDQzU0kzV0pTMUwxZWFrNHJ1cDVUR0Q0L2xsazYrdHdkZ0liUktHYjVpRHprS3MzUAorSGFHV2R0WGpLZmw0KzV3bE9kM0pMQ21ST1FpVnVsNE0xeVRNTW1aMy9CTk5hUHM3ZlZQQ29lK2I2ZXovWXBldQorTUNvRDA0RGRVTTU2VXh1cnNiOW9xeVd4Y2Qyblp4SERiK0hNVjBWdnVQOVFQdHl2QXhXdWwyMXFXeDRRTEY4cworQWp3RjNPVHNudG5GTDB5andaczN2alV0MVFzOVgremdjS1JxVlpzbFJOOFo0K1dRTW16MHBBVG9KTWNqK3hHdworUG9nQjVsRkl3L1FDem9kdTFsblVCU0xPSXE5cTAxWm13eFoyMVFJaVV0a25TbUw4c1JEVHpjWHlmNW1CNmR6YgorVlFBME5UNU15WDN3OWxyM3I2QUhmdFZ1TVNqendSejZZNy84VkFJdHlQNnREVU5sU3FQcW5CdHN1eFllN20vMgorV2ZJOWQrT3lpRzVUQnlaSHNtOEtrRTBDWTJCWWVKVXJFRkFlOEZRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtFWUlEIDUxQzczQ0JDREZDOTkwQUE2Nzc0MTdDRDVGNzhCQTM3RDRBOEQ3MzEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFieGM0N0xHbGUzdG13QUFBQUFCdkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt3TjFvWERUSTFNREV6TURFNU1Ea3dOMW93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXROVEZETnpORFFrTkVSa001T1RCQlFUWTNOelF4TjBORU5VWTNPRUpCTXpkRU5FRTQKK1JEY3pNVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNa0tkWERaa2o2VkFTakgKK1pjRHJKc2dCcUhnWHg4Y0Q3VTBJMklFb3ViYlNvMlhiNGQ4U2ZyeU9ZUWw5QnlHWFMvbndBZkoxc0JGL2xqRmIKK09XVWNxaDBPUEZwc1JzalJnbDdDQUREeEJlR2t0d0hDVTdqQXg3Mk9wVi9Ubkt4ZS9jSzB4RUVIQm9xVWVwb1cKK2ZkTGRTeHVFNVpwSU5XYVhmRGd5amZ1azdPMEp0YjdHVkpRbFZEZVY5WWVybWJqdXY0RGQvWXVLUE1STmEydkYKK1BpODE3aG41Z2hoSTQ5RVVkRU9oZzNzWkhTdFIydE04Ny9XN2tJbVlXMG5KdlBrdnlvN3RDMm9yLzFpWTJxU3cKK0ZId3V4bU9leGxwOHk5NEQ2SHJpSnlYRytEOWVYb2ZHUkUwS21ETzMxeGlJRjFueWwwODdRRVRVRXV5N2o5aUUKK3RKSy80ZW9aUk9JMXNpK0lkT1hnYjY5T1B6WUUzTmRxZldEQjJJUGdCOHlUblFlNVB6YldMQjgwekw2bGRXYTAKK1RTMnV3SnFnTjh2MGZzTWIxTXdlQzhYc3d5bGFOWkx3RHoydkgzRDdaOVZhTUZNcFJmTWdWZzdyUldOVmlyeXUKK3doWEUrbXBVandkeWFxVENCRzZWOVg3NWlwdEMvY0Y4N3VtV3lickpDdndZZ2JGdk1Kc0piQVRQOHBMemVuVkwKK2xKSGlGYUozazJ4MUg3ZzRUcFRzZnBXODZlaGNHenVCY1plUDg3Y2lPSDZTV21Fakd0R2ZKbCtwcG03alRQRnUKK0pKWlRQS0dlM0RBdjR4enFUOUtaeXBvdU5ldHFUS1hjeXRpYmZkUWZxWm9CTy82azg0VlNlWTk3YkdUSkdnUHcKK3lnUmJqTnM3QlhBYmtvaml6UEFhWXdIK2VIaWxBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU096SWxPV0JpS1l0aEQKKyt4NFBTZzhQWTBrSnR6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUZ3L3pOWWN2RGt2eVJ5N3dNSmRydXpBdVMrTGdJQWduMlREajVPUW1Nc0wKK3ErVUprUWpoK21FTGFWTTY5NWh3Mk5XcjVqdCs1VEtOOW8rbS9wa1lEZ2xJR0I1a1BDbHVKZ2NqRzdiVU1kZ2MKK2Y4T0JVSlk5UkV1UWRmRURuT2pJbkJIb2MybTRuS2pXOE5IZFZ0SnlZTTV0a2tMN1UwbHhmekFIZ2VySm1VYlEKKytkU25MV2NuY2tIY2hHMnUxRzYveUFicFYzd0M4N1JMMVhoVTBlQUt2MTlmVnNaWnVkcEJCU1BoY1JtUUUxUDYKK1VuZVd1R0psTUk4ekp4cXlkcGVsalZaTWZMbDY3MCtLYlBlN3UwOXJxcWs0eWkyMGYxUnFqdCswVGVYbVdyeWoKK2dPZE9LQkdac1F6SXIzR0t4TFlLS3JBY1U4SHo0Z01ubnB6cTQzOTdTeFcwOXhyMlZYcnFHN2pHNFl2N1BobVIKK0JuSXh5ckUveVBDUlJMMEdRZkJBYVdxWUlydmZzVytPNzZ6YzNMOVF1bDcydEg1UHMzT1JuMm01R05mN1hDLzAKK3JVWjVHT2laUjR6ckRCREZiR1RaSUpKTENoS2dObEcxQmMzT3EvYVE4TE94ajdqc3dZLzlycnhsQ0g2QzNsL2cKK2l1bGM3a3AybktEaWQ1RlFsS1VFZi9HRHhkdnNkcWxGMldvQjBBTkdOL01aZWg3VXJNMmxET1dmQ1Rub254bTcKK1owYmNXc3RWeHVvQkFmaHFZV1pkNUp4WTZuY2tSZUNiUGZsSFhLSFEvd0g1ZjhydUJ0YzByNGpsUFZhbGRwUncKK1J2R3ZHWFZGNWtjZ1djOTZydHgzaGY0UytUNExJWHA1TXFoVWpYcXpUVzJnRWxKQ1IwYTd4Zmx2NlVUdDhFa0kKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCA1RTczQzg5QUEzRTkwMkIyNzJCOUYwNzQxRjdEODczMEUzRUM3MjRBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFHa1hEQWFkYXpNLzZ3QUFBQUFBYVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTVZvWERUSTVNVEl6TVRJeU1UZzBNVm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXROVVUzTTBNNE9VRkJNMFU1TURKQ01qY3lRamxHTURjME1VWTNSRGczTXpCRk0wVkQKK056STBRVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFPREtEMk81Rkg1U2IxZ3AKKzJZQ2J3STB0OGtCK3hkK0JzRDBaVnlqZkFuaVpKcnF6dWpqMHo4MUZjM29GMFhlSkhaeWx5TkEwcUN3SzI0bXAKK3Rmam9DelRmMzZPbnF2RVYxZHVKWFQvU2l6WDMxcjhHN0lVYmVZZVR5b0I0NVFuamJSZGlVb3dLSCtzR01jSlEKK0RLd3ZlVnE0MW5lbzl6YXFQZjFycG02ZkVRQlFtRllCM1Y1VzlhQ2xlZGd1RXlHNGZMeTUwRS80eVZxRXRhODEKK200UGlQTzk5b2IrNDMrOWxWcERlUytmbFhPOHZxVjUyRkF1MlQwT2tkR0dqVEJHMHY4UXRLekRRZExGV1JPbDAKK0RzMHpVbXU2ZmlDS28wMGVIMUtJcVJ1MVVHWEZVbWIyalM4SVA0ZzREbTEvRloxdDI5U3dMRXBMU3M4Y05VbEoKKzY4ZFlDQ01DQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZNZGs3NDBqR1VTV0JMTWpXUkJQYWJJU2JzZm1NQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWVLazAKK2MzbjhCSFk4SmRIZ1dIT0xGOEN4REdKaXdQWEZvTnFKT2FJci9qNTNzV0lNamdrSFB5TUhlMVhZSllBbS9aUHgKK0QwVURVMFhkMVM3SlRpZHpXdnNXdGwyTmRzSkJoYlJVUU03bGhocUUvQUxaZm10S1VrSnNNdWQ5VThTOTZqVDEKK0U2cXo3VU5yb2J1NGtGWnhpS3poZk84UG9hTDZUUDdDc05tak80aGZMMGVwS2xZWTFEWXhOK2E3bzFvbE5ESjMKK1ZBWmk4eVhKOExmQytwNldNN0FxdEJ3VHU1UUR5bU03K3Z6Um9CUVpFekVRd2x4aWxmT1I2dWVobTZNWGZTVWYKK0pvMzUrb1ZDc255NkhIVDdLN203V2puaHNPRzNZUVJpZjl4eGpzL3IzWWR6RUdVc290VDdyWFJ3NG5nL0VNRkoKK25tV1JoK1pZNmNleEMrTnloOTJiVFkwODY2UlYzUklEaHNseGsvc3pHK0VNa0F6SUtSU3NDYmVxUEEyVFBzczcKK1BGNTR4OTloNTVYKzE5VlFteGR5ZnBLVk5HTjVHNndaSGVVTFpjdHJXNkNCUmp5ZDNaTkxRSjEydzVnVDNLSlQKKzJUNG1DdEVHVkkydmx5V08wOVBVOSs3b3dnK0p0YnBkL25tbEg4dy9aSjBoTCtUajFRSUp6ZmdtRDhOMDZEZS8KK2VtMzBEVTFFdWZyS2J4QnNYbk00MVRpYzNTUGx1ekFwVHJaZUdjRDg2WjdYWlFqY3hhQWZxTTE1ZWFNUk10RDMKK21HZDJkODZHR0VxVXhCNW5Qay94OEZpb0t4WXpHSWNibHM3QmN4WFNYK3BKenZkQ3g4aFlIb0tyMy9MY2NSa20KK0VOY2ZSL3hLMVBnM3VQMTRVMjk2NHlFSi9BTnNwOUN4dmRBaCtzaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCA1RTczQzg5QUEzRTkwMkIyNzJCOUYwNzQxRjdEODczMEUzRUM3MjRBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbVpRd1p3OTBDOUd1QUFBQUFBQ1pqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprMU0xb1hEVEkxTURNeU1USXdNamsxTTFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0TlVVM00wTTRPVUZCTTBVNU1ESkNNamN5UWpsR01EYzBNVVkzUkRnM016QkZNMFZECitOekkwUVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTDE3VkJLZTNtKy84cGU5CitJdURCNFZHVHhpdnREaURMWTNhTzlwd3plNno0UXUzRFZyNk9JWkxlOHpKOHNaWEYyY2NObEw0Z1FsTDN0WDZqCit0N1FUWGxqUlBJbElpTk9ZczErT3J5K0hXb2c0dE8wbksvWURGU0RUMmpVN2gyZTdUQ2RJbWpZcitsakh0Y2ZVCis3T0s0cmtHSjJVYTlpdFcrQnVlS3h6a0tFL0JjcDFEcXA2YnJhTy9RSGxIZ1R6dXNhTGY5clRFdytaWlZSdzFvCisvaVBOaVZmM3M2K0V1OEdRY3ovZmdVVm9rdkIvOTdnd1Q5WENyR3N3YmE0UW0wVjcvb3ppcXR6TTF6OTFuemkzCitLQlE3a1JDRUsxbDJUQXpSZUFTTU9sVnVXSExSQTBoVHNmY25QaU5ZWUtsWVUxVlZDd0FvQzVaclhxaUF0VjE0CisySnNiZ3ZDbWl3NTV0ckdPWUtMcEpKMnJxTzZWRHczZGpGUDZTL3lvTFY3bC9EQUcwOEE0N3BKRHlzLzlwa0RQCitpWnB1aFkxdCtibW02UWYwL3pkbFJKdFpibXNMWSttNmpuaUJPczA3V1Y0WDlsSWJNWldkaHorRms5M21hbndzCitSLzZYQzBNakVoMlprSzlLeUM1UmF2TnhsdU5FUzhFTnR2VmZKSkdEWC9vWjJZbVJXSEFkUEQ4UERhdVdJbXZtCitzTzBtRFBZbEFwb2FickFreWhsMHdyT3RKamxJWVNUOGUwQjVrUGRWR3hvdEpPMU5oY2VoU1oxWEd4aHA4NjhYCitZcnMzYk9sZXZTYXAzUkVYTWRiU3lVQkk1cmFkZHQ2ZzYyVklxUmZPeU9PbmVIUXZIcjJKa0NIdHRsblhpeWg1CiszODdTWmpUQU5KRGFnajZiQ080VThsd0dsTEliQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlROaDFYVzZZcWRYckNVCitUZnhBcG9ibTFUbFJOREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFCc2ZpZzRIZXRjc3lkYmRuN2xBM052cDBFTkdMSmFKQWRCc3ZYS2ZLUFAxCitncCs1OExRMEdvSkgvTjM4QnN3R0pKMGRCczlzU0RONVptVjBPYlp1TktGTkRtV3p0RUdKT0IwbVNEWjJMTGdMCit1c2ZPOUFudEM1Zk42SmNDbXVuUWV4QmpoK2pNN2p0SGRxTjBQdjJYdFhkcGJONitOcHh4cVBXaVhYMjJPMGVICitTdzJUT0FvRzlCTnhxZ3BKdmZoMjU2djRFNTNDN2YwbUF4MnRUZVFWNEY5NlNsRTREVGUvZE8zNGhwWDJrNnphCitOUHBnUjVBV1NWR251WmMvRW1jbHZOank4ZGF0UFBrSXpUd01lR1Q5UWxUUGFoVUxQUDZkWFBUN0UvQ0JaYVozCitzeEIvdXBZa2p1ME1Da0kzZU5LMEt2UkhORHpxU25MeUdnSHhxUkUvdGN5Tk4yZzl2RkZoNXNWdFJGaDdDT0VaCitLUGh1bEN2cFJ0eFBKZkExYXM3YjdQbUF3R1UvUElkZDQxM2JGZWRYRXdHdkNmUnRnajgwa0QxTTFYSU9udXdnCitnMElpZlpJZG1jNFFudXozcHJBN2RQYWhGQnNYblJ6UkZjOCt1RUJKcENsU25jdlhNeTZteTNwNFpsYW1LOVp5Citxei9OZ0tjTEthWHpxS3VCcjhLbXhEb1ZwSEl4ajk4QWRVVkpaVGhBUFlMV0k3WmQ5bVhoc1VwemtKd1RoRWh3Cis2cTY5cW5SRmpvNTAxdkloNFI0ZllWa0haM2o4R3pzUDdOMXZNTCtuMDg3ZFlkSzRMQWhYK1JIMVpyUEZIYXpxCitsQUZxakhsNlFpYmJDYllOOXB2YU10V2ZVQWdrcnFOYmtSRnAxc0dsQVJkRElZRmpHVk9WbWlvUjUzMWRhc2FICistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMxN0NCNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBV3Qxc3lMSjdFaWtwd0FBQUFBQmF6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01Ea3dOakU1TVRRek4xb1hEVEk1TVRJek1URTVNVFF6TjFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0TmtOQk9VUkdOakpCTVVGQlJUSXpSVEJHUlVJM1F6TkdOVVZDT0VVMk1VVkRRVU14CitOME5DTnpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSXNocDBxSVA5eWhHdld4Citsd2UySG4wNmkxeXN5amdKUHJUbVBjK1hMWFhEbmsybUUvZ1Z3cWh6Y1dWRXU1VTh5VngzbU1KK2xPUzJJTDJmCitVSjNFb2VLbHBwSGxrMC9Md1FjdUhEbmJyYzhMSDJrOGhzeG1QZmNEdXUzY05leVd3Vk9QRURhR0V5MjYrZlU4Cis5N2twdWJJN1kxNlptMm5JOWxacm9hWWpKL2hjQmJQSVl4bndRV2Y5UGswN2ROUzhGMGdTWXFNMFVibENsVStzCitxWUhSUjIzTUVnZ2xQTUZiY3ZkbkJaM3llNnh2bUV3K3Qwcm5xSmovWGVjbldlZlIza01wbUVjb1JidjFWYlhICiszZFcxdnMzVzgvRFk0NWJsSWJ0cFhEUGM2V2hYN1BPU01zMzhXNFhUTnZMMTlEMGFkNnJ0NGZRYklidkZOSHF4CitjLy9DTklNQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQVJUekpTZndaK3JXVmdiWEh3Q2hpZ0w3SVFMTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFROUxkCitwRVFPYTd2eUtrV0dwTzdYRHNmcDNwd2NVb25Hd2pwYXRUYUE0N3h0UHU4eVVWUHczMTdGdStkcFJiZFdSUkhHCis5ZnpGVXFRRnI0TnlYMXRHdW15RnpvS0VnWkE1YkFQUmsyREUvRmRkSXFpc3hPcE9aeTNxMTJES0hNOWRFNytKCitZS3d0b0gxVGFjcHNDUk5oMzQzbTR3WGlkUHFzNUt5d2w2MHBNV3Yvd0d5eTNsWDNUR2pZc3VKTTN5ZUZFdjA5Cisxdm1xVTg3Z3VEYzFaMmJiWnlPdzVUUEhhd0JKVldyb0I3SmFqMHJUd3oyem91YjB6Y3Z3cmhCTG9peXFScUtMCitVUHZTYmNsTE5sMkZsMjZXSWFaRU9SMlhoYXFwTnFHL1FBK3JFZTRQWXN0Nm9GbmpMQU44S0NEdHlUaXRpU2dRCis5MDd2WW92UHg5bTJiT2kreC9EOTByVlBQN3Y4TGtqRlpNVUVVTWg0RjMzdlZlbjNzY1F6MW5mbXVtcGM3L1lQCitORVdtOVN0SDRiN1IzSTJXQkJ3bE95WnRYQ0lyV0t2aEVqc2poeW93Zm5UdXFOK1dvZzFnTUxiTXFuUWZ3R1hrCitwdjhpT0ZyK1pWOFh0b28xK09BN2V5UXRTSnFGVkJPbmNhNC9UT3liQ0U5L0dzUTBmVGFNbG5sUHlGeG9pMFNOCitPS1VrbDFoS2k2cnprczFaQ1Bnc05yMzJTRkZ1MFVYQysxNmhpdlVrdVNHWnhXU2NhS3lnVFhSSVhGOEVDdXJnCitDVmZkcGp6aTRjdjgzV1AyNFVGQkg1a0cvWGpXck9iOUZIbWx6cE1ta3hCeW9ESEYwMVNlaGtzSzJ3d2F1bUhHCitBbmlVYjVGYVpGM3NzT0pjUWxKOU1sTktBcGt1dFRQSnRpVHJ3a2c9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMxN0NCNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW1lV212alJHRkF1THdBQUFBQUNaekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazFNMW9YRFRJMU1ETXlNVEl3TWprMU0xb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdE5rTkJPVVJHTmpKQk1VRkJSVEl6UlRCR1JVSTNRek5HTlVWQ09FVTJNVVZEUVVNeAorTjBOQ056Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUpaeG5oU1FWalB1YWhMegorVi9UUStIWkhmSitDVUdTa3E1b2Z2WTFNOXc5Y3EwWkhTZVRIcUVVREVIQ1NQdGpvT3NjanE2NDB4NHhKL1hhOQorODh2ejhrb01iVzhjRjAzSm9WMjFuQ3oxR2NUWHhDaUtNYVlQMzNSckNtYndqMUNjaFROdzNiOFRHUkhxcDhhRwordGR2RUs2c1NOWkRWSHM1RW9jTDVwYkxCR3dTcTZFajdvWEhhY241MDg1b2FTUVI4cGJFSjh1T2tlamVvMWpHTworSU1uRzhNMU1kb2tMN3hDcG8yeHdKZGZwWDJobHl3VlJ3SFdwYkZzU3dUQjhwZGxFeUcraENzaGlhSUVaQTJFaQoram5lSTNUUU1oc3o1VXBsc3NxbHQzN1crU3BhQWZmakFGTWVqNUxxRXFFT0ROZ1ZTbkE0YWxva1RsMU56RTR0RworME1pSm9Bak80bjdISjBUaFoxOW9zd3lRMkNLUCtuUlhFbkhWQUtIazcrZFBJOExiTTZybzh1eGM0MkdzbjNPYQorTWZ1enFxM21yL1JFS0taYnB1a3VqVy8zK0lmSnBTM3VGdUsvd3ZWZFQ1RjBFYjFtUVNGN3QweE5YUHJDK0J6RAorRVZwK2pUSURBQ0orTXdPMjJ6RTk5eXA1QXErK3R3WUlHUTFlbXQ5UzBRdkZMQkdOWDRnWGgzWEMzbzY3Z0RWNAordjhBZ3d4TmJlUFJ1YTRYSWtNbHg1OGVPb1NQSEtUbzh5N0JvdlhJeGFhVjJ2a1A1UHViR01mK3Izb3RUeU1leQorVFJtT20wbGI0OVZ6dHcxSFN0REFtcU95RjZjN29tZ1czMk1HajdnLzA0S09ueXBuZ3N6OFF6S20wVitmS1IrTworT3phSmdiSm9zVFZiTmFQWTBZV0hrTXErUGNxWEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRZk4rUW1YcTJOTVBROQorZ0VndG41RFN3MDk3bGpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRVVJMGw4K3l0dWFwUWlqQ1dEWnlsWjQyM1hsdzh0UjV2cCtONjd1NzVxUgoraUpJeHQzN0ZyOGpOT0YrNHFSaTM5YUlQcnkyM0lNUXdzUWhDZWNiNElqa3lXTHRNTk1LalJpMllENGM0U0djQgoraldpczFZbDBJT2ZiMm5URll0eDJWVjNFOGJtRFhMM2VLbnFtaGgwZnM5Qkl4NU5qS0p2ZzFBd1NnNTluNlRjbworUEMvZnNYZzhOb2RmaHdBNlVQb0ZFZFZRbm9YWlVFeW42aDZLMU5KbjF0cjRTNThLeWFVdldxeHpkWXZ0R1NKQgorRU1mbE52Q2lTeVhubGlNSEd0SVBiWGVQZlM1T080bzdySTlhUDVhc1RWajJNdlhkejhnSi9GMkNwNmU3K1FzUworMXFlNllidGtDZm9LRmlvYzh2K3lZbzR0azJmVzJPaXdjTTNwcTNLbGtKcVR0RlRjejFiN1R1TWtHMUhpcU80eQorTXRhcmxUSGR1Q1lDNlpnVU5OU251VFdJcTQ1b25rc1VNNE5jQXpmV2FqYlZ6Kzg5R21mRWdpMnRJblZpT1IvSworZWQyamdSSWJhZWM5WXdEM2JURkk3QVhKRXJUOVBxSGRMT0tGaC9peXpodTVtMDlUWlAvc2crSitoWWVLSFhqSgorZlFGVTltZGFDOVdkRWlCcnVXUEtYZnFFRWVndE56TEFDclEwc0NsamxEUmR5MkNiVzFpUTI5QjQ5RHRPNnB2ZQord1BhY0dDdkdDTFRNSFd3aHNDemZhMVgrY2llYkZRaUVTa1ZXb3JzQnYxamhqVEVlR3pTb1hoV1ZoNDlQTkhQNworblpMQndsUGdSQ2JsT0xOVHpuQXo0M0o0akZvSmJnUzBZNFhlZDh2OWhYdUxKZkNSbWZlQjRtY0dkdG9WRWszZQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtFWUlEIEI5OUU5NzlBQUU0ODc3NEVBMkVGQ0E5QkY5QUQ1QjA0MDQwREMxMEEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVFPMmdZTEtGS0NUTHdBQUFBQUJBekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVXpORm9YRFRJNU1USXpNVEU0TWpVek5Gb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdFFqazVSVGszT1VGQlJUUTROemMwUlVFeVJVWkRRVGxDUmpsQlJEVkNNRFF3TkRCRQorUXpFd1FUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxtNGpHdFAxdjlMRjlmYworc1U2YSszZnJ6NTFseXB3Q2ZrK1EyMU9jTWNiTmgyREh2ZkMxUTU1ZFR6VFp3cnBxMlJRZHJaTUpMSGo5QlI0NAorTllSSTNwSW8xRkxTM2pxaUdmK3pBTGE0a0hpVXRCekUvZUpFclMyTW9MU3BWcnA4YWI4TDY3RFkrMWFaRnArNAorTTc5ODJCVkZtYWdhNm53MjR2bno0aWNzS2d6Wlg1NldtUCt4U1F6OEdmVkt5RUoyOFRCTDc1NGlaTzVWTVBydAorNmpFR1pjYWRjajlMT2NyUlNyOGdOK1RxQnlMc0R6RWdmTkVwZlIxZHppOGtDeVdtTTMwOUJuMzdwZUZEeGVJbgorUTBOTVh3bjVyZDRJYkNmZFRFTXpYWkQ1b2EvQXlwYkR6cXJ1UXlMRFhaTE0yTWY1ZXlYWTJ0T0RhWmNUQVRVdQorOXE5Ly9IOENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRKTzA0L2YzOGFsVTI3c09HUkRrL1JBVUYwVU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBZGxFbworQ2pKZGtISVBOV0Q3eGdtZjIyNVdnanVrSkhkK0NiWnVEeG1vbnlkVHhtaG1KRzFoUUFMR1lNR05yRlFHUWZJYworY3dMa0ZsOEVUaHNQZjFaS2t6TlVQK2oyeFQ5eHYrM0tmZWRvaVpCUEk5TlB0aW9mcFBpdG95TE5ZTnRuQXdoZQorYWVzRUU5NG9LSVdPSUZFcUpJVWtzZnRFaUp3ajVuN1lqbUcwUEI3MzZETlFzV2NpU1ZPWml2a05NSUNQV0VRYQoremFTM04zU0FBTUwvQ3ZpWnVkOVZRbVJFenBrMlk0V1Z5N1VMbFR5TnVUWjFkMlRzUng1Ym5CRFliZ0FKeVc1NgorRWFaaFZwa1JWNkFkKzZIbGpyL0xiQTJEWWZYVW1qcWpYY0p1am5qM1hLZVN3YWY5aFRqNVU0VERhTUhraU5hSworaVYxWSsvU0t4S1l6bDBuaHYzVGVCWWFNN0NDdHhibENPNWRTSlJrbVcvdXZLcm9sanMrY2ErNkpKOUJEbWQ0VQorZVUvZyswK0VQeWNPeTdtSnorVEYwbUc5SU5TVDRiaEF4QTMzUnRiT1grWlEwTlBNTnpVbHYrUnZrbFpoaWk3TworVTBCZGhGOXN4bE5sR08zSWpLS21ZN3d3L0lHT3JSYUsrdVVBVm9DenV4c2hGYWhkNEFFSS84THdNY29ETDR5SwordEF6Q1Yvb2FQUFk4c0dQUUc5Zkh3ekpDOWg3REdlMHJQbFJXQWkvU016eWUzVUZyUFpyYXNLdi9HWjU3OWptQworT2tFMUgzSE1nVFNPazVhK1lkYi9uMjIvZXhFRlpGbWtYUzUya2EyWld0Wk9IV2ZPS0kvbGp6S1kyRHZpaU9mUAorMjFZNmRuNi9qVXhXOW9veFRRZU1uNE0xSmVrQ2VLV2RaOS9zRG5BPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtFWUlEIEI5OUU5NzlBQUU0ODc3NEVBMkVGQ0E5QkY5QUQ1QjA0MDQwREMxMEEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFtdko5dGNrdytBL1J3QUFBQUFDYXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamsxTjFvWERUSTFNRE15TVRJd01qazFOMW93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRRams1UlRrM09VRkJSVFE0TnpjMFJVRXlSVVpEUVRsQ1JqbEJSRFZDTURRd05EQkUKK1F6RXdRVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMWFJrQU5iOTl1QTdwcCsKK3F1aDRwU0pocGJFL21KTFJBMis0ZWwvbFloZ2Zhc1pNd011ZzQxS01jOCtCaVYzQXRvdVZvakFvVGU1SFlkZ2YKKzhOeno0R3Naa2tZenBEamVFcXhFOUhDeWY5ck5lcnprQUJEQmNLTHhwNENhbFdRNG5iU09lWFR3UWF6T1lqV3YKK2kwd1dLaEpaY1hHbkhQQXVXQTZSekhHUUtldEtVZ2dPWE83VEFESEtwTDRmcEx2T2NoODJuZVBvMU1la29IbWsKK1doN2ZDR1RnRWFQWjFsb0d6WUhWOWZId21BbzVTVUZzcnZsZ2tKdS9SSXRlbGhrQnVVNU9WZVZTdFE5Tk1VU2wKK3pDNTZRL1I1a2dpL3pmVjk2dGF5aGtPTTRXWDU0dktXUVBNN1ZtYWlycUF5ODNLOWZLZzBPR0lUZEc4Y2UvckIKK3pFSnVRd3NTT1JteXhMUjgwNTFaV3RqeFE1MFEyS3dOTm15WnQ0WXNMT0pPalJJSkJyc25oSHp5NzhjeVp4cDYKK2EzaHpNTFNLaGFzeC9OWS9yM3VPdk1FQnpXTVJzNHU2U1A4bkJzTzlwd2JGQVBJa0ZBOEttUlJZZ2IyNTdkelIKK0EzdGRmaDR0ZlhCVkN1UVBzNkFTR2g2cWU1V2pERGE5aTk1a1hMUjhyejk4YXJVZlpPaWJqQUE1UGxEWUdJa2UKK2FJSHBwZldiNnpEVDFpY2ZKSStvWGp5NnpUVWNHZFhGdjEwMWh5R3A4MXlUZEhoQ0ZaQVBBSGQ5Z3hJTVMyaWUKK1k3SFdqNmdsMVlWNm1KcHJYbUd3dDRtcDF2SC9Wb0tQTmtZQ3E5ZzV5VUx5S3ZFdFI5bEw4UUZpYmZLOUNZMksKK1BqNUwvWk9UbGUwcWlkelc0R1Z4VTRkMTVaT1RBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU2ZqT1h2SVN0elJYQUIKK1pBVWFoT0lUY2xqUVBqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUNxRFEyLzRIS2hSZG9BK2hudG9aTUVVNkxRdTZvK1N4VEpRQWNtK2VEbW4KK3hpVFF3c0RqNFc1UkpwWjArcUw5bU45QlU2V1RKR3l2NWxBTTNUaWlFTUxPRVkvcDJ5VERPQkpXVEZUZ3R4QU0KK1dGZkhMaG4rU0JiKzN4NExrVC9IZ0s5LzdWSDdJZHZxVjdBQ0JST2l2MVVhb24rZUhLak03WVo1K1B3ODBvdUIKK0pWb2RJOTkxOUo3bVpSSGpMdDNBeDdqTThWQWo3Y2xxam0yOC9DN25EaE9IN1Z1OEZsQXVNZk1xZXBTNDM5Y1gKK1pBUzh1a3VBMkFpTjBFTE95eU15SjBIVDU3cnFUL0F5UEZRZE5ZN1IwMkhlUllzZ01ON1pZL1VaYis2L2VnUlEKK3VnVU1aYjlmU0dQSXIxRmdlaWtzRjN3aG9LWWZWd05KZjV3MWVRR2hvclJrMkMrN3dvZjhrM3RhOExIRFAvMmUKK2ZobUg4Sk5DODR6VTlJMXZqSTYzcHpRbCtVUlJUMVBRNmZzS01tNGw2eWhhRG5jZTM1MVEzcldWajhaTWpBL28KK2NyN1ZKT3gxUnIvWjlGc0VMbml5SHZMcTZyeDMvamtJeEdPYVNtQitwSHVqM0JxVzM1V1FhczFsVmVSMFZMOTAKKzhyNFVkQ2lMTkdWVTVKcHlhbGRBdzhqSk5RZC8rSFQ0bitJOFBvNC9McU9MSUFBSU9teERqWGtCODJaaUt5ZzkKK3ZsT0ZJSk1QWkxEV3F6ekZ4bzJZV2hkVVNKYkljN0lLWlgySFo1S09CYXA2a2tKWkt4a3BVTUI3ZmlidzR0WjkKK2pPR3hkVGhLYkROcjZBVExXS2RPWCtqSmNIdWtKdHVEZzJLZW9hQTRkVzNDaHhwRHBIMWF3QkxrVTlvZWsyeTkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCBCQjk4MDVFMzE5QTc4REJBRUZBODg4QjQ1NjE1OTU3MjA1MTc5MTgxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFTUmhxamNFNTh1LzNnQUFBQUFCSkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3TTFvWERUSTVNVEl6TVRFNE1qUXdNMW93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRRa0k1T0RBMVJUTXhPVUUzT0VSQ1FVVkdRVGc0T0VJME5UWXhOVGsxTnpJd05URTMKK09URTRNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKdGdJb1B6TVFQZThJa00KK0pPeVh4RzRCVmI3Z2I2bVhkc09vQ3UzU0VPY1plVklUUzZ3dFNGQWs2Y1pyTTYwVDZhYXl1N3JEVWpVcGlIQmMKK2UxUTQwSHd0MFJXV0xhNXlKRFVaMUZ4S2IrV2RrNmxBMjJDZXp3RG9VYkx3S0hBaHpNUzNwODkvdUluRllGSWIKKzlXR3U2N2VXN2g5M2krRjVySEFQaFZ4MEFuM1pYNERjekhzZzFIMnZ6aFYxcjRJWVBzZlQ2NzhmbVkvWU4vR0sKKzZBMlQyYjltQ0xFd2cvaCtiN3NoZE5RSDJubGpwRHdJMEMrWU5xdktmbjZxS3dHandqR2o3Q0JtZUFXMklKbUMKK2tkU2ZRMDF0N1JicVpJRmxTS1dWajRlL0dVeUpNTzdVWlBXMXVyNks5ZDdmWVpSSW9BampHUGl1UHczWmVNa1gKK3NEU2NZY1VDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJNFZmYmV5V0tjVDRDSHFwbXNrWFBqY3p6ZVdNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWdGdlMKK0VHQXVTaWVrUzFoUUJ0bEpQWnhXc1pmRndDbXZjVmwvcHZFMWdQSG5lRS9VRUdEN1l0cytvcWZZajVGSWhpMjQKKzcvd2pqT0hOR0ZRbWpPODRBWGttZTlITmsvSTVhS09PY0VkYTQ1Ym5UZUQ0WGFKTEFNVjZaTk5NbVVvaXRkQmMKK1NGVGJyYmNHbnc5cGxJMHl2ZFpzVXFzekVGcm1WZjJDcU5ZTy9Ca3IzSzFpTDM3RTJTaWJBWC9wQUNMcG53YWYKK1lreitJQytGb1Z4M0VlZnZvbnJ4NEdISjBLaHVKOVBRQlVieEpabHBvSGFJdFBnTUszRFUraXkzNzZhcTBWWFQKK3djU0pzNmRZMkJ1anBBajZLS1kzeHJjUmd0cUdaV3o5Szd0SFFsNU9PWkVyOWZxeGM5S1ZBMWZmTFZuS2N2YkcKK1NIUG5UTkFZdjdqSHBOTlBlLzYzbnNNdTNDT09LQmg1cVhHWnFCbVkxZVR4UllXZFhpMmdKTWlkdTNFWHBtTk8KK0ZheG8xMVl5eXVEY3ZvZS9Edy92SmhUQTJ5OW5JakJWN01BYnZoM2IzS2xsU2Z3Slh5MVNIN2J5QXRuRGJRQVcKK2d5OGZ0NWxXZGFhWUJOSWlsZkZNSGpFb210TW1TbEgwdm0zWlZPem5TKzBYbU1CaFdTa2FlNGFZL3BJOTNpMEIKK1BLR3MvZ3cwZDEvT21oU3lMandpSk4xaXZoSVNTc2l4SStQZU50bFVJM29UNnBtd0l1Mmxtbm5JRno0SEtLbWEKKy9LMjVmZ244bkpNaU5UdmhVR2JaUFZQNzlpZ2lHWkRWUU1BMUo2M3EvK3JQM010b0Y5dWI3RGM1S3diVlQ0SEkKK21YcS9FdTFENnRmMFRsZXZWaWo1T2IvUHVGQW1FQWhzNTBBR1BwST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCBDRUZFMzMzMzkwNzMzQzY3MjdDNzg4MERGRTQyOUFGRUI1NTdBODkyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFTV3ZiWWg2RTU2aVRRQUFBQUFCSlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3TTFvWERUSTVNVEl6TVRFNE1qUXdNMW93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRRMFZHUlRNek16TTVNRGN6TTBNMk56STNRemM0T0RCRVJrVTBNamxCUmtWQ05UVTMKK1FUZzVNakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMb1drcVNRa0ZQRmJ4QnEKK1Mzazk1U1p4T1Q0RG1uYnhZbTh2UDFLSXVvZlQxQ2pLK2ZrT2tYQ1BtVE5LVXZ0REU1Z24za0tkU0RVcVlwK0kKK0pqSGJPdml5S0k4R2JNUWpvYXlSODA2c0hKTGRWRENLM3UrUUlFdDMvN2Ryb3IxcXQ4ZGo5QWNILzRFK3RMSjcKKzVNRFRzZ0VDRzB3YXJHdWNrVFY5UFZwMklLQ3V5MDJkNGlNNytNL1Z6UzIvVXVZV3VUcXJhLzNjdzNFODBlVUoKKytoWU5LanNrVzBEMDdhL1dHYlBrRk5rSllveFltZkFqT2grWnMrNlgydGhzcVhjTVMvdE5YbzM0MUhNZVhINWsKKzF0K2ROWXBzdUI4a0ovQk5iVUJmanNwbXhnYVFLeklYVUZoYWRXOEh0K3ZPYVYxWTNDaEliS1hSV3NyaTByZ00KK2JhbytRMThDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPdXhkdzRNYVR1aVNremw3cmFmbW9ocFNUSmxNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUhpWVMKKzFWTWhsZXU1N3E0eDBNNG9XbFV5Wkd3cjFJZ2RGS3FLY2txS0FReHJmVUVySHZDbExpTEhrZzhFWHExb3B4dTEKK2twRHB0angvekJLTEFzdnZsbXlsNXk0d3F3OUs3M21QNTlFcWJoWk15aHlKUldESGc1UzZmWFFabjd6cXJFZWMKK3FncmNIODdRRUsyWDRMdFdSVk5wRWJ4eGdDQ3ZxOHB5Zm0wUXRLUVl6bWRDS3dDUmdmWkQ1TXNtMUJraHhHSGUKK0x5UFYrRThrV1RKR0FvUkpnVXRKaUZtWitTRDNhMmpsR1hIeE43TFhFL1RjL2VCNVRNZTZ0REN4d09TN21hdmsKK2NHVmQrRHRpbnRRclVjdlFHNmpzQUgwdGZwYmV0WkNoa0FMUHpwbjAvSytWOHFSRjc5amNYSFkrQy9tdEkzYy8KK0ZKNGZ3dXV1TDhYOU4zamJybEwzK3hjTlhqT0tHeDNUVzVTV2FEYkt1YzNJUkhINUZEWUYxakJuaDY0WkNDNCsKK24zUWNHN1VXdVNhWEZwMEtvL2hqUUwxVGJnZDVSU3Zwc3pSckhNUHlYOUQ4UHhCeGVDVFVVTUI0YzVpamhKdVEKKy84VzdOQlZFc3NqZTJUZFhkK1lTVGhWenI0QUdqbVdCOXZUMmpOS2hTRE5KSnFuWmo1ZGVpcDlIajJVYWUxanUKK0dSL2pnSVh1QTBGc09WWWVmSHlHVUVTM3RoRm1TTEI3elA5Y0RuakJCdDhJMEtDbVJOQXVFeFpkby9EV29NZHQKK2VReldIS0NvUVV6Y1BMNU1TZXYwTkp0ejBTZk8wRldkckoxbE8xTVhUWWRocU5STWM5UytLYzViYWs3WHFhOTEKK1dOcEZtT1ArZDVNeVZ5RzFzNUo1cklBZ3VJdTRCVWFpeTd4c0MvTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCBENzNDRkU1QTlFMDE4MDgwMTE4MUExNDQ0REUzNkVGQkY4OEJBMTZFCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFXNFdSZlF2RnZzNEtBQUFBQUFCYmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURrd05qRTVNVFF6T0ZvWERUSTVNVEl6TVRFNU1UUXpPRm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVbE9WRU10UzBWWlNVUXRSRGN6UTBaRk5VRTVSVEF4T0RBNE1ERXhPREZCTVRRME5FUkZNelpGUmtKR09EaEMKK1FURTJSVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMbGFzSzdLTzU3NUVaeTEKK0FuTEFxQUNZdGU3ZUp5K3o3TFN1bmswQWczZ0ZGa2RzbDRncXk4ZmtxTVNpN2VDN003NFJZVStWYVBSME4yejIKK3dLbkRid2FQVU1jUEZFQldLOFV2bXRvQWdQTVRoWjI1ZnYwUTBEaUdXR3ZqZEpuSlA1WHc2M3ZOUDR4ckF0bkUKK1gvTkw1MHN2L3FOUkZiN3dVQlpYRlhQOXVUc21uMXdkbzQ3YW5HczU2ZFYrWFMrcTU0aCtydDFpL3JjSmx6Zm0KK05kQk80eC95cEEyNFkwT2ZaMC9zTXZBc3BmV1pJYVNaMkNBVWViYzVwWldaVFBvU0l6dDhQbDBqVlpWZEFKZmoKK3Bmc0lqOVhRWWgvTTNuYU1NK2ttS1c5YkV6VDM2Z3J3ckZaSitLSENKR3pUSmUxU3llY0FJeUo4OEMvSFRxckEKK3NScDVLeWNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZCWDFLK0ppY0NJL3c0ZDljWEJNdnZHYmRkanRNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUV5MTQKKzZTOXFsakJ3VmM5MjU5U2M4aXp6ZndYVHdEeFltdHQ3TlFKQTgwS3hxRm9kZ3VKd2ZTMDg5VmI2S3cvZk9oTFYKK3VIcklOOTRKdDFlWExPcG8wajNxaWtxWkI3cWtPUnkvRGpzUktuemZ5Rm1wb0F3T1Vad2dtTUJ3UFVEUzlmaWwKK2lsUzVnWFVLeHpHVGRqemJtV0o2aXEwTjJSZTdMWit4Wk9tUWJ6Mkk3K25PbWxCVGF4UGgxSVdwbi9NSHVzR1cKKzRHbi9Fd3BURXhNMU9MN2JOS0pZUm8ySFFybERNbTh3V1N6NnJOeVdKdHRBcmxZWlBUQW1qR3ZObzFueHRRbnAKK2w4STlkUjZJOEx3bkFYdy9qb0c3Q0dtTVYzeFZaak0zM0hhQzU5bnAzME1hUy80TTdrMDVISHRZcitEak1QRHMKK3NBSi9hbk43dk9Zb05LOXgrOGVkWVQ0cUVoWk1nVEMrcXg5VVVaNzdzazVnRWRWWkVOZEx2ZnpnelpsOWkyV2QKK3B2Um1zOUFHbnl4M3Bjd3JMUERzMVpmaUllcWV3SjNJZllhYmt2Q29uU1c5aXByTWt5VkV1bnVidGcrOTF0blUKK203b0RrTVFpY3A0dU5MUDU5akJab284OVlIMDRQK2JDZXl0clNwQ0ROVTJwK0FvNzdYUkYxVkEzRVJMSXRVN1gKKzlKZzhiZUlLN2x5S2hPcDdYYlZLL2VFc3psRllaYU5TMDhpd09DdGRFL3FLSFQ1MlU5WGFMTXJKdDdrdmZjOTUKKzJOenI2VVRYTzV6WjREc1RYSml2SmlLZEpSZ2JmNzNUbFF5MnR0aFR3RnZubzZzUDFPZjUxMUZYeWdXRDAvUWwKKzFzajNEZ09yeFh5WjJuRlVzd1pKYzdyZnVrRkZQQ2tDeTFSMW0yVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgSU5UQyBLRVlJRCBENzNDRkU1QTlFMDE4MDgwMTE4MUExNDQ0REUzNkVGQkY4OEJBMTZFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbXdzOW1qOGt1RG1QZ0FBQUFBQ2JEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprMU9Gb1hEVEkxTURNeU1USXdNamsxT0Zvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0UkRjelEwWkZOVUU1UlRBeE9EQTRNREV4T0RGQk1UUTBORVJGTXpaRlJrSkdPRGhDCitRVEUyUlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTkp5NWJ3L1JQM0w2MmlnCisyeGdaRDZkdTlLWWJyakpBTTdzb1E2Ny9XaEo0aTlHVjZIRnA1MTFseTA3bjJXUXNJK3pUdEdZR01pUWVwZFRTCitmbEFuZlpBU2dpVU1lb2UzdlFESXFZNGZ1NzRncEdqR1Y2TmlGU0JiZ3F1WmNXSkk2eXphNDlOajhsWStTd2h3CitvYUhOdGN3MG11bHM3NnJHWHhvajNyWExZdEcveHFjb2t1Z0U2ZTZnRjFiZ0FaYUVlTmNFVGtxbU0yKzBtVkJOCitOU2ZjUW43R1RTWkxkOEdmd25MNC92Q2gvb0dSTWVnQU9vN1hqM0NiZXhFbExYUWZYc3ozNEJxTlB5QjJwZC9VCitkYkdiUzFtRHduYWRFMEo3OU14NEJDc2JIWFBrNFdhMndIMzdjVTZYV1FxYmpLWUYyWFpaQ0JMWDRudGExajFRCit0SWt6RzRSZUErL0pTTUEwQnB6WXlkYk9oQURvT2FMVXVYOHdsckFaRjh2OXd5T0o0SUlmOCthUHV2SlYyWG9qCisrQkc1S3JSeGx0d2pZQTIrRW80VEczNE44Rkd3WlFoZzdOV2dXUU1SNzVDT0ZtM0xIZkZuY0t4RTQxbDgzTzZOCitvVXJxVmg5Zml6WVY3QjJReDJxYktmcEFVdWxzT1F5WFNYMVR0dUxTWUtPbXl1ZGIyV3dzdEdoSGFSUkp1N250CittZXBQazF3eVRqazAvbWMvSUl6ZEJMcXJnQVg1dm9hLzVSaW00NmpCYk51T2ZGY01FbFR1TVpscEVKZEsxTGFXCitrRlg1R1NYVmp1QzlkTW1OWHRxMEtSTURqcEVQSGhBczRmanEvZXh6SkJHMlgyRlEra29SSHNmcitqM20vZFVsCitVVlpybWNsWkRLZmVFM2Jza0x3WTFhYUNBdndyQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlN6ODV2dXBzOU5wZzNYCitrYlB5NEpBNlgzTFltakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHRlJuRXBBaTR5d0tZRmFpWHRzcWdaRHVwTE1TeVFCV29sdVdndTNpTVR0CitMREVLd1RaT0FGNEFFZEN1R1d1QWdjemNXd01rL1dkblJubXlKbjVlTmV1OER1cURYRitFSjh0TWZsT1c2Z2tFCis3UjVpRkJkb0EvV2FLWE5kQ1JERStqVDgwRlQva0QrbC95L3YvRHBZVGtUWmxZdVFhZ0xnTHFYaklKTEdqMXZUCis0dFEwUUpGcSs1RUFLaVo5cUZnSVFGRXZCSW9OV3RpNmRGVVc5VDZzR1M1dkxTQUZ5RVJ2TkU2eCtVWC8vamFGCiswd3p3dm1MUTRCRjBqS1NrSVZRTEllRzh6MFpoak9WN2NqZzNsS0NSL3RHNngvMjgwV0pzcWFrb2VDWW4vNXZPCit2bEFRcmFhRUJqQXloemx3NkVrNW5zZDBrcGFXNkg3NXFGRDNRY3hPUytteFVxOUhoV2tEbVIzMy92d3Rkb29jCitXbmlGQklQOENFeHlPNUM0Z050WTNXMnBJK2xUYy9HbHZRZTBCRGhqbURIZkNZc2dBZWk5Ym41SjlHRUVwOWh6Cit1eTNQaUJQTUg0MkFRWHNCeWJFaDk4QkxqZTlmMzkrMkhVek9VbjlwQzBoVUFMeUM1b2syRlBuMmRKdVBJY0g4Cis1ejVNcHc2MFZNTjF4QzUwaDFVdE9weEw2T1BFUVhWeG9Oa2c2QURFcXEvY25XbDRZdk9seC9UVTA5NXc1NVlBCitXbTRsVkt2SXo2aWxvN2FMOFdXbG9hTitydXh0WVkzWUt6OFlQZDdEQ3JFdDArNUQ5ZjUyZ0NpVksrZEhHY0FrCis0WHVrTTMrYWY5VkhTVEpaNFM5Z2ZLMTR5RStyWU5teGo5TUpsOWN5VmFWbm9JYjJEWWE4NXF3cjdKYzIzdlNjCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYzMTBCOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBR3FqSDA3cVk1TzZJQUFBQUFBQWFqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1USXhNREl5TVRnME1sb1hEVEk1TVRJek1USXlNVGcwTWxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0UmprNVJqSXdOMFJHUXpnM09UZENSa1k1TUVRMk5ERkVNalZHUkRWQk5EVkdOell6CitNVEJDT0RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTFh6eTVtb2g1dGhBMVdiCis3ekdhTE9HYWh3cm9HK0JmZHhrL0ozRWQ1UDN5b25sbEFsSjZyRXB3OC9GLzRUa1kxdW95Smg0R0F4S0Y1QmFYCit5N0lieDBaWUw4WllzeTNHTWhCOXo3V2drVUt0cTlhclFibU12Z0tCVy9lRW9sdDhuakphd3VWWUZudFBWNkE5Citubkx1bFRFWE0vZ1A2bjdLa09Pb1hmZm5qMTdmd3JVaDUyb2RsR1d5UHBHbG9iUE9VUXZZelpYVHpJWjc5QXVICitQMDN5WFpqb0hrN1FWSjB6M1hpZDBjeFdENm1VWTdjc2FHT0IyTzBaRjVIdVA1R1lUQzlWV3lmRmVTbzJQeFZGCitsendsZGtOM1NpaTl2SEgwTllCb3NpVW45SnZkcERWdjg5WDUrcEVUMFJHRTJMMlpycnpZUzFueE9vay9yNzJXCitudzZUUWZrQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGT2FzTHVBNmNMYTE2WVU1c2NhQ1VZYUQrVUl4TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFBeFZuCit4djlYTHZJb0tCdklGR1c4UkZaalA2QnVhOEE4ZjhMbE55QlRFc29GQ2RCWGdwbDEzZFlYTTQ1Q2xtUmRCdTFICitwVEhqRjZNczNQYzFYMGFFTW9pSUN5UHhTUXBQWmJnNUlQclNic3VIM0ViWU1Zd1NpYy93VXFia2xVdHRTeGVOCitaL3FyRFI4eXN1QWNaOHVyVjltbXlQUlFXOU4xdzJtM200c3dlcVYvYzZVdzdWWUxuLzJjZDVxSjdXOVJBYlJGCitnS1Z2cEIxN1J1cDZpdzJsMkJ6eUpESlVxQ0NXVVhrV2I1UWRyYXBnalJYSHd6V3JvOVVPbGoycHlucjI0dVZBCitiN3I2dTNPQUhodFFvWW9lMXBGNy9HVXFRWU13QS9GSjU1K1JOcG1IN2xkbVVXWFVkVnh3OHU5cm51d0NIa010Cit2T1dsYmdFcndMeXMrdFcrNnVDdy9MTW1yRlVJZSt3L21nbXIzUnV5WDZVcC9yeTFMUHdFejR3SUJsTWNCdDJTCit3MVFlaTNmT0hwTmF3Q3gzZWt1MXB2NERPeEowYUNCeUxhcWZTbSthTit4R01rWEM1RGVRNXJYSUZEejBXWDFqCit5b0dqWmw0WUxZd0xKRFNyaTdOV2JnYTFjRkFiZUlRdXREZE1UNFBCRnRxN2c5VWYzcUgyVXU2YjdKdWl1aEZ0CitXNnF4bS9Md2lSazZDbHFucEo0OFpPdXdCUGMrUU9oa255Y2hTV09SdFBBQWVMaEx1cVd5QUhabE00QnRsV2xPCit0bndFY2loTktETUNIQStWR3BNQklERWs0aWRaTGtNcnN3aDBMcER2UXlJd1pYTHNXUk1hZUlNbkFFZnpUUkFnCitZVU1oakNhQVIvd0JPTnA5Y0xmMVBhOUhFZWhaT0dlQjFzTllOc009CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIElOVEMgS0VZSUQgRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYzMTBCOCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW0zZnVhVWxSY2NGWkFBQUFBQUNiVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazFPRm9YRFRJMU1ETXlNVEl3TWprMU9Gb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMFZaU1VRdFJqazVSakl3TjBSR1F6ZzNPVGRDUmtZNU1FUTJOREZFTWpWR1JEVkJORFZHTnpZegorTVRCQ09EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU9zRHFsNHgveCtQNWdNWgorYnRITU02YkNVZ2ROYVFKN2ZBNUZ5bEw1WW9YN2x0QTVxK0NubU5oakhMcnpTWTNFZHNJZ3BUZHNhSjBJWGU2Wgord1VMU0xFMEg3NG5VSWk0QWZhSVAybHJlSkhyK2tSdXI0VGl2ZFdKSmoxVEVVaHVhc3pzdXIxMjVGeGdFRXRDTQorQWpmd3dtd2UwWS9TalVVSkNsNVl4VTFzeEM0bnVnZ0l3dFRCL1dnNmJaM09SWldOclZ3N3F4RTlWVHFYYzJYWQorazd4c0lydnkrRE1FeC81d0pIcm1iM3VFU2hRUXF5M1JUSmxKVXhRV2U3ZnVMVkV6dG5hK3RSTGhROUpxeWJYWAorZTdnVEFiUnNySWhVZXAwQy9hTHgwUm1hRHFOQzdRTnc0dDYrWGVMM2R1NTdETUJYLzdSQ0FtNjBDSEp4enRxdworeGxTSEp0RG40TkYyMUhTT29Ed1FQN2E5Z1BTdFYwbHFiamsxUSt4cXFQUTFPcm52YTd0cWJWdGJnQ2VNbExYWgorVklYU0Fod2hRVUtQcDZjMFA1TGNTVjRFbkZZOVdzbDVUYWxPTmdWNG1GeGVndmgrRkh1UkNxN1dEL0t2RjdpRgorU0VybUFhOVl4RUtlanNhek1vNWxROGtFaVMwdDRCMHpwejU3c0JFdk1paiszMEpFb09pZWtJaVQ3OHVheWZ2UQorWVZWelBpb1VLR2h0YllwQzFpNitQc2RPZDU4V1FEZGVwNFNOZVpkdzRzVUNCaVlCZDRCUTZZQjBVUkVJczFtNgorR0VQZXo1S1RaemIvUGFWdml6YmdwSDlER1NvVWlDemg5cm1WdlFZSHJmVzFtWVA4cTFMSnNjODZUQVJoWTk1bQorSDFwa1ZlYUdQQWErUlphaVkrMEU4em1zalQrRkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSVEs4NnVab1J6Q21WSAorOW9lajZ1citIaUJKbkRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRDhHRUNlSjRmS09OWkpyN0ViMDZTNnY1clRTU3I1NXh1ZVZDTW9TOE5WMAorMWJERkNsdTdOWGkvc2dzSWxiVERSV2xqOGFJV25Ud2RGdy9abnBNMzRCckRwbUc4YlU1NXlaSGdDeElPU3RCMQoreGQyT05GQTVtNGVxRVM2V2RJU3ltWmhhdi91YmlxeW1UdU02SXdPUlE4STFQVE5Qbk1LT1dyU3JSZHVtclRSMgorSVpJVGROQzFPQVFJZ2dOZ291WGJOUkZlSWVrTmphMldScHlwb1RvaXV3bVVyVklPbGRva25jVXRmRjF5WlpwaAorbmo5M3VyMFEwQmNRZmFaZHNLY01ZS1ZjcXd3U3BYNTB4T0tNV2ZBLzcxbDU3ZVg2RDZZU3RyL3NhZS9BZVFHdQorcE5mU1ZXd0tzZytxL2tCc1FPVTU5U21QeWV4Q2FkZGxWdnVVT3pMbmYwS3VXeVJJSk5WWmEzelppQWJBNEJjTgoraHdVeGI5NWY4TUJkajRHSTE2Mngxc2xSRWJlb3dxRlI0WU01QmtURHlMWkNIN2VSV0Y1VWhRMEttL20zQWtyTQorUzhvZC9yRFFrWUtqVkVnQk1NamJiVkpubjljdFBUSytTdHZQNWxsdnJrUVkrVWNKdm1td3BRMTdYZkNFcFBuRworZWV3NkhTcWR1YjExUnBQdWk2UTdqcW5PRFZuaTdxd21TSkUxelJheTBOL3MwaUNZVjdiMHhFdWJsRnpaanVhWAorRDI2TDRod3pKSm5DOGJVMWI2WmlVR2p2YVRUTSthc3BQamdyZlJsT1VJeUtNLzJpQUJpb1paZWMzc095K2VkWgorMlI4d1lJZzlnM3R3UjlEdytUZlJRbVpyWk15YlFOdk50c1Fub05uZ2RRN05OYnVrd09nL3Vrbm5tR0NtdkhXVQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIDBGQTdCNDk1MDQ4MTI2MTIwRTEyNzMxNjA2Nzc2RjNENjhBMDM3QzAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUQ1bHJHc1QwWmtTRHdBQUFBQUFQakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXhOVm9YRFRNd01ESXhPREl4TVRFeE5Wb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdE1FWkJOMEkwT1RVd05EZ3hNall4TWpCRk1USTNNekUyTURZM056WkdNMFEyT0VFdworTXpkRE1EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxZN0t2VzEzMkt1b1IzOQorSFdwb2grZW5uNVR1VWRsK2IySGZVMjBpUmVaSndwZ0JhQnhBNkN0WTd5VTcrUjV6UVRhUEdIU3FyZDZZRjRFSworTXVyYXFJcFNOK1BIdTVoWTBKUFYxUFI2cUMvS2xjbWNRUkk4WE5maUlSQmd2WDd5dmlyZUZuMnRmVWZsbUZXNQorK2cvb0hxK1pXQkRNZEgwbEVOdjc4WnpPdTQrVHIxZnZVSyt6V2tYTS9wcUJuWW9ka21lbnBnV2YyN3JkZFhycQorQ0lXeGpQVnRqSy8rTzRzZWc2M3EySHNUNjl3c3hqOTRoYkhscTNaRjc5MkRyNlFvT21ITDhJYzJWTVBYYXBlcworOXZneFJpWEM1ZDFON3dWUXVxbDlzTnVYNUpQUks2T0UvcENIT3AyVlpIMGZvbDltWHgvTkNDR2lYck1NMythcQoraFdWRnlsOENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkpUQmRFbmV5ZHRDLzNHNFpHaklUdGVwVWNxQ01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBVk5PagorSW9rTUNEbFhuVDVwa0VWNGUvdVpZdmdzZmlZL28xYzhwNmc1SmJRK0FvZUI1dWRMdjg3SHpQTzFkWGNLSG41WQorYlNleTBWSW53elRhdDU2S1o0aE5NMmRHbldBT2VKSEhwbWdxRWZoaithaCswOWxoMmUyOWZ1UzVmbXVLQllocQorYmNGd0dqaDlsNUovSTlmN2pIMkszVS9oeGtIY29KeUJ2cmlDdFlBc01VOE9IcjNWa0VsWHczMTJnalBGRWVTSAorSzU0VldqUGtZOUNETDhEWk1pK2hXZ1FJNWllcHgrZHBEL1pRY2lBZTA1MFNoYXhzQk9DQ3hTb0V2RDRHYXRoOQordHcxdkczanBINzVEcVByRGxscUtIT0FLZzl3OGZsb0NZd0IwbjFUQ2krMG1WdG5SS0xaR3BKWmYyZXptVXNPQgordmdFbjFaWWdtcXljNmlaTTVXakZwaDhiM0NocFRkWEhKM2J4N1NqOFVCL2VCYnk5ckRHWHhET0FoVWNBRU1WTworcVJYQUJTOGcvcFFyYlBmSW96eFdYU0pXV3BobEJFWC9RYXVUbXBwNkswOXlab2hNN3VjUTRNOXEyKzNaTkRGVQorTTBBKzdvWm1Sa0J2akxVTjBaZWg0NWw2RHU0N0xHSXA0dENXaG4wZ01TMDJzOFU5d25vOHdGd25lOHJDVDRXdQorVXhzWTJtOXpHU2Z1dU1lYUwya0JaZVdCamlKNjZIMDVxNWV3OVNpc2VlRTVVMGE2a3JrYzVvNWZWR2Q0aERlSQorRHkrSnV1L2Z6dHZrQXM0WVFvTmF3UnE3d2Q3bTh5MWdyeHBLNy9UdXJLcUxxVlRLaVY3clhDc3dzb29MOTc5aworUk1wVnNlam93RzlCam5vUHk1Nmg4b2RwYW5raTlYRHRMTW90cTJjPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIDE0MDkyQjVGNzgxNEVDOUI3MTNFOUE5QjkwQTRDNTE5REYwOEU2ODgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVlOE5ud3FiWU9meVFBQUFBQUFSekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlNRm9YRFRNd01ESXhPREl4TVRFeU1Gb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdE1UUXdPVEpDTlVZM09ERTBSVU01UWpjeE0wVTVRVGxDT1RCQk5FTTFNVGxFUmpBNAorUlRZNE9EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxHQ1ZFSG1qZjVJZUowSQorMUtPeTN5VGNpcWFoVnJXaXErVFFMTkttRkFGQ056TEJEWjZvOEl2c1ZFUXpYWXB5Y29pYnBuWXpWU25nY3dNVgorZDZUQXlTZ01EdTBsV256eTNUR3VmVDUxT214eWFIMTdVR2hGRHJ4QUdvbjdKQXhHa0hBa0x0clZXcHVweUQ1bAorZSt3VVlsMVU1N2VsbEdwN0VuODVIM0V0bGVTWnJYZ1R5V25IQllZMlhNYTkxdGZIOEdDL2V2cFltYmZGd3hqNworcm1NeWQzZW4zcEpvdWdpTlEyVjRuanZhZEdnSXAzWkZUcngyWHdGR0JzS2xnbE16K3BrRlUzQ2N6UWViK1pqegorcXY3YzJsdUlUY1dsQ2w1WS9QcUZRbDVpeVJ4YWZocjdRZTFxMjBTRXhiTUxKcjNMWDA1N29nc1dOTzd4cVd5bgorNnU5MHBXc0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZDcnV4VHlERXgxWm9ZTFdQVy93Sm5BOVJtV01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBVVQ4Qgora0N1ejlLaS93ZThGekhEeXBvRW1YNlh4dUQ2UEJpTUFCMldNSDR3ZVhjMnNNeDJCU0RHUHZwcmYvQlhnYVJUSAorb1hFWlYyTVl6TGVpUFZKUG9Hb2lHNnJTcGcrdmxkM216MncwK1RyOHZRMHpoN3ZVUEpOR3J6aDZFVnNpWCtjbQorczM1YUxWazYyMnlVZVBSckdrUC9ZT2xMSmRlcXRWQis2eXpRdjJqUTdGbjlJOVhoR25sVTB4THdzdUtBK3NMVgorckthMVpRR1RmbDN3WjdEMEtsZWo5LzFZQmlZdHVSdHYvMmI3c2tVSFY4cy9QdXdzYVRVRVZ4UGJLYU9FNkx1bQoreDZIKzZZdkZiQWhYWklSY2twK25ObVpkVXJYMWN5bHBvTXNSWHNwdnF2djREZ1RqTlcyM1p2MlNyZXB1Q21UTgorbDRvZjRqdCtjaUJSelNNZjlTeC9zWGlvR2RiYVdDVE1vcFc0bm9MSmZ0ZTZTU3lOdzB2QlIrSElNUTA3QUlBcAorN1FONnBNNnNyd1B0dGorbG5uNDlzYTFjSDE0UDNXZXMxNm5qNGlnTUhwRHkzNWpGc3hZeXppZWJkWm1Gem5OcworSVpOM3YxYUdnTUUvNytpMlV2MmptRnk2OVU3SzE0clFRUnVqVnR4L3pVaFlOZFJlWkFvSjd3ZWJoK3B3UTZVSworMEp2K0VoWldVNnRkOUhsYXc0RGRTNUVhbXdMREJzNGJwMTNCR3VVMmJ3ZWRCRlRwZ1ZQYnNYVWphZE9ycWRtVQoramgxeTZhSWxjOEsyVE5RbjNiamhkY1RNZ2tEcjVRZ2tmMlZkdVFXd1hXakRuRTZ1L0M3aCtBaUpmWG5TMHIvUworWnl2Rzl5UGY5b1dSSllYUzdXRXlrRi9aSzRWV2dIbUhncjJ2cEQ4PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIDE0NTEyNkQwRkRCNTNFOTk5MDdENkZDNkZGMUI5MDQ1NUI5RTMyNEEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUUzMmFJUUlDTDllQlFBQUFBQUFUVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlNMW9YRFRNd01ESXhPREl4TVRFeU0xb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdE1UUTFNVEkyUkRCR1JFSTFNMFU1T1Rrd04wUTJSa00yUmtZeFFqa3dORFUxUWpsRgorTXpJMFFUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5EU0NiMlgwWkJudEZ2YQorZzBzMGo5T1E2Zy9oSjBRUkRVQWRQSmVScHNKWWozRG5CbzRyb1RSRmFwUkpHNDIvSU9XV1JjVGt5c1FNcFdLMAordXA4ZzFtc0RudGdLYklrU1F1QUQ0VE9ZcUErYkFvQnpLRHczUWw4OStSbGJkQ25MbG5UcWpLNG5sRzdSMXNWdgordGwvZi9iR1Brc0dvWWpYQjhnWlNHazNOeFFreVZvSHVVc2s5MlRzcDI1TkRTVGZQbjcxcDdqVTRDQkhVN2ZWdAorclpmc2FhMlRxWW1UUTJudk9lTzRCUDM1T2paOVhIcUJOdWY0ZUg3ZFcySjlkT1AyNDN2THRMeWhmMXk4ZXd4agordlBwUzhBdzhlMW1GRnQ3T1V1NTRaOTZLQnQrK0RBa2psWERibmNuOXZoWjZLWkZ1NWg1MkthdFA1QXhwekxteQorZ0xKM1c4MENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNLbHd1SFFQM2JENStnRVRMYk9jOWlRQTZtNk1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBSklwRworTFJvc1JRcS9oOFlhMEdLRnplajdKYWpHbGVjYm9GUnQvek5uQjd0bDVocUdVMVZmK3JPVncvR0QveDFTWXlaYworUHVIU3dpVnh3UXg4bFZMMUcyeWRwLzJ0L05oVWU3alJQZGZvMzIvdWtCYU5ET3ZKMHVCNHdMYzBNdTVwOEk1SworVGNqZi9XTWpjeForTk1FRVUxKzAxZVJXNkczZEtJdW9WZ3kzTHF6V0o3S2E5SkI5MUVzQmtDMVBBcGljTitKeAorSWhzMWtCZUZaSFkwWUQ4QUcvZlEzWDFYb0E2R0VTb0JsYWJCMC9jOCtlRmZ0d252VG9sc3A4a1hxWHJJcG1BcQorczBybWxvSGwxVE4yVzF3YUlwVy9HQ1pleVp6NnZNMnp2bEphbmk1Q1hMMXlsYmxnY0thdUVXa0w5YVFDZ1FYVAorc2Vmc3ZQNkpnalFEV2VLNWhsMXl3WU96Ti9NeHp5THM0a2Uwck5lVU9zWlljT0M1UEl0UEs1Ni9uaDdJcVVwcworV1F1R0ZIbE1rdGQ4QitVcVBvUHo5MWpUeXd3WXFCODZhZFl0NkF6N3BqcTh6S2V4Qy9mQVNFMVQ1a01jNEwvUAorLzJkYk1mdndnNXVFM3dTWWtORGpIM1Njc3JpYnNYN0NRYk1WZVNMOWdrVVVTaHRMSWorbG5YbEZReGZBcWtMLworam1vWkpUOEFydlhBZVdNM2JES0NpTTJCTUNLaGRGRFFTUmxoOGYrTThEdFdNTXlabXA3TUdGc1AvSk90cTk5cQorbDJDN0I3NmtnNWVPMm9MbUxpWW1zRjd5VTh1dW9vdkZ2OEtHSU80b0R3MElxd1pPMXJDSHVKRUxTU3RuRm5XYgorUUdCbndTMlFiL0lRUkVlWUpnSm9LQUQvN2FsVEdTZ1BQQ21XTVE0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIDQ5OTRDMTI5RjFBNTQ4RDQ4ODU4NkYyMkEyREY4NjAzNzM5QjNCRDMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVUOTE4UWNFTGhIdmdBQUFBQUFSREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXhPVm9YRFRNd01ESXhPREl4TVRFeE9Wb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdE5EazVORU14TWpsR01VRTFORGhFTkRnNE5UZzJSakl5UVRKRVJqZzJNRE0zTXpsQworTTBKRU16Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpTQlpJSGJTZ2czaTAzMgorU2dzMTFPbGpXeGVPdTRCdXQvTVdFK0o1TE4zTzN0YU9FVXp4S3BoQUlZWWZsTXBsYXlXN2dlc09zYjJPSmZENQorWU1Zb2pxR01JVGdHRWh1cmFBbVBCYmR3a091dWpiOXEzem83VTIrOXdpNEFQRmpKOTFMZGhIb2QwZ295d3o1UworNUQvMGpUR3UzdlB3MDZqMmxXTWpYYzdUV3JlNXliYW40d1VvN2lpdUM5Z2wzYWFYemptdER4MElwcGRwcEZsTAorSDRHTDNKclJ3czNFVUFleGYzbm9YTDFkTTFSSWo5Qi9SMHFZSklGQW1lWjBONVlvSzY1aXlnTGxzdTkwemJKOAoreTIxaDhTS2FaaThOUmhVUWpjRk1DWUJ1Vk11Q0ZJcE1iaGFPV1JYTCt6U3JQYTQxUlR6NU1laUlLNjNLNldQUgorOFJuMzhSMENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkp0cXNob3ltVDNhOHBtdWJHR3R5b3I3cUp0V01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBZFhaZAorajBQRW5aaHdEUW85MGRqMlh1RkpSV0xISXF5bEtOVjh0QjFDOHJrSk9LUjFwbG5FRFpGRHM5cjNGckFvR2F6ZgorcjZkbVRlWnNmZmdmbTFwVWZpdEtOb2VTWW5vTkhrelV5bG9YQS9ja09YSGlkR1pQVU8yVWVUSDQ2RWNMaEZSaQorVlg5YVE4R09VSmhRTkJRNVhXSUZ4dStraWZEK2l2NS80U1ovN2x1U2x6eGFRWmV3T1haMk9jWFFmLy9iSzRNZQorZFhmaHEvNmJLWnF4NE4zL2VQcUlzMWJzdHhOU2dxMGdianRNcS9lVGRmbllLOHdBL3YrU2lFUktpY2NiVi9LMQorbnpicmtyV3FsL2N2OWE1VnN3UEVYUFhoc1hYVFhENFhVdGhkcGI5SkdIRU1hd014SENiODZ5cWVNMGJINHoydAorbkNKTzlhZ2NqTFhXd3k2WFE3Z0E1TEpERjlIbUZYOE80RVhINHNuU2hxekVTUmlCNm5JekpSTlk4cUFyQ2daZQorWnhXNWZjekZHZ05naUs4cGJNUXBJelBrL25oRktXUE43UDQyZHRLc0pFMnhTdk9yd3RTa3ZWeWJCYWk3ZUdtaQorYUt1MW9uQ2dUaWkzcllSQnFMNEU4cFBhQ0Uwcis5VytWcXdNdk1FMmRtb2NJR2kxdlVSQVBHblRUb3VOU3NzVworNVdzb2hlZHBmcXdjMVFINXNKak9Na3d0dTBPRk4zWE1kWitvREVYTDdHYTFORkVqWEkxb1RvVFpKZ1VlU2lnMAorM0xxb0pxRU9ZUW5nWDFwYTRaTW0xRGZTZHlZTm9WUFh0eCsxbWJTSVA4T2lTTnpvTXZMVjJZM1oyUWxNQ0dLbgorRXFlMnpwZVBvZDlITkxWejJRWUlMQXRCUFRHUjIxV1lEcHRXR21RPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIDcyNzUwQzUyQ0EzRTI1MEU3MDFERUQ2NUNDNjkyMDQ0OTRBODU3M0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVyeTZRT2ErNGlMQkFBQUFBQUFTakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlNbG9YRFRNd01ESXhPREl4TVRFeU1sb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdE56STNOVEJETlRKRFFUTkZNalV3UlRjd01VUkZSRFkxUTBNMk9USXdORFE1TkVFNAorTlRjelFUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtIYlZJMUtHK3RwQytGNQorV3Q2NzN1RFVkNGkzZ0NKWloybm5TQSthM1I2RFFGSGM5Wm9VY21mOUdvbDVVOElpd1JhWllGTGpNckw5L0pObQorY1U0NmNJaGx1VHA2L0NnWXRlbTEySEFxaUJUR3Blc1NNSThaZUlTQmVQaUZON21xUnZPdWN3ZWkzZ3NxTXV2YQorWTdrR1FNYkpPekRBQXpmcU5yMFMxWkZZWGtOSmVwQVRiRnVNR2dYTGxmbDdGbFQyYXI5QkFzY1pmKy8yMDdVcAorcFVQZDAxRDJyZlBiaUZyQysyQUtjSXFBYmdINW5qUlJNRmRvb05SWVhscFdobG1RL1VlUi9nejNGblVzQ09DQQorYXJhaUFmK3pBMVB6b1pQZW5FM01wSHJrSjhsRVdtUTNVbHZGbXovZWZNWWZONndLTlhZdVNsM2NoMmx1dmYreAorZCtGNU9Ma0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZ2RWduek1QSkdBNE9YRUYvdFdSQ3VGdTVkVk1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBQ1R4NAoraVovYkZlN1FCTWM2cSt0Nno1RWJ6Zm1xa1RqRjhFRlpWTGptd0hPamxpdi9IZEhWTXRjOVZ0a2poblArUUNIYQorR1Q2OHAxZkQvRXpFdGlYOEVmbUVIUkVEa0k5TThzNkJhbnN4azdtUFFTSU83VHlYVFpaVkxFKzY1QmRZNHhVWAorTHZYRmowOXJkV0RldTlibnUxQnJnZWw4a09pK2QvUVk1ZkF4M2NOa2lXeVIvTkVLS29leVVnNVBTODJUd1R1VAorRlR2b1lMNm9CZ3dGclBFZWFMWXoxb2dVenJndUd2eGdhZnA5N2JUSW0zRzMzeVZUUXY2KzJoVGJ1Y0RCT0FuQQorTW1veGR0TFY5ZnEzVGhVdlhJaTY0aFZnMHlHcHV4UkdLV3RHbFQ5NC83WEY3YlRvd2ZnZjFQcGxaZ3NBRHBhYworNlI5V1ZUcVI1dy80eVhDakUzYnp6TjhQZjVBZEtHLzlweE9EeHFKZ3hrNWRUL0ZqMzYvUk1jT1BySjhCWk5qdAorUmNjcVhoMTZvRnQ5WTZST25ia1ZkU3RXcUJhYTlLRUJDbS9EcjFMdlBENWttMW9ibjJ1ZFphbDVhZFhicFJ1MQoreHk0dTQxdlpXcy90N3Y4RkpzRDQvTkVpeEh4RFJEb2xiNDJpQlFTREFnd2dVTkhSbUVkay9JVGJMWjNaQy9mUQorQkJaZ1dxdm5HckMwV2hXV0tJZDhyTkdnRTczZkt5ZE9oT2hZUDY1ZnhwQVRnbE4xbFE2ai9uajhEQURya0MzdworcysydExCaWtIT1lWNTRZNHBSOU4xK002S2ZsV0ZkcVF5TFliOFVQekg1em9nZEpPRzN4OFRmQ3ZJTjJyME5hZQordEh3MjJjUjhJQUNXcWNCREZVYnR5bjlBcitvaU4waVJ4amFPeHE0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIDhFMUFEODQ2OTNENUQ4OUIxNDcyQ0Q4Rjk5OTA3NkVEQzQxMTU0MDAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVIY3FHSUpYcGc1MHdBQUFBQUFRVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXhOMW9YRFRNd01ESXhPREl4TVRFeE4xb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdE9FVXhRVVE0TkRZNU0wUTFSRGc1UWpFME56SkRSRGhHT1RrNU1EYzJSVVJETkRFeAorTlRRd01EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9raDQ3dVFWUVhoTzdWVAordVVCc01hcGlEUXRISlJzcVR4bHJ2Q2NQTzBodk13ejVHbzJ5ZVFnTm56UWhXbjJyRTEyNUtVSGErRWFpUUdOSAorSjVZNUpmNzRIaUcveFg4STl1aUorOXZUQk81S21qcWIwcXRWNTBPcHB6RzNhY252dlJ4U25Ock5zMzlRWDMrQworNC96L1RFU1p3RVdDOC84b21vd1Mybk1vbkU3dEVTU2hhVWk0aXpCdG5ISVcwd2tSRnNWem5UTFRpUk1VZVUzQQorSmFkVTdSWFlUblpOSkVvSDdMckRGWEhZWTN6UnMrci9WQi9MVmQ2ZnJIajliZ3p4WUwvdGduTEVmODhUbXFsNAorRTU2b0cyWlJLNkFyQTMzUWs1S3JWd1pyTUQrOGxYWlpCd1h6bjlNUXF6cjE4OUJzMG9KeDlKUUduN1l0Vm1DQQorTkVPcTloOENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRlBjOEVDc3M1dDNyY2NvR3ZxU295ekQ4Um5iaE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBTktqRAordi9IQ1hLQXR2MTFqS3dBUGRKYldjWDUxbmJHWU8yQlNxTWhDT1Z3OFZBdDJmL2d6MmE1cVRlSjlPRXdUdjJ5RQorcmNwRWFLUWh3ZkVFZFZVNnVqVnE5Uk9mS1JOTEVWUUhyeU1OR0RlRWMydVhkRXQwT1JXa01KbjBLWWNZTWFUQQorNmFYMU1lcEhmQm9tdUErMklJWW4yelVYYnRKK0N6N011TnlZUFk2RXNOaFpENmdESG91Q2syZkdLUGhmUTErOQorZ1hLNE51b3JDVzlhT0FsYXVvVjZmT0tmK2FOdWhBSnhEbXhSVUI3anEzeHVoa1Z0L1N6aHd4TCs1ZEU3K2VwVworTGRVay9VN25CKzh5MWV2cmU0di94WjJhRWVGNE5UL1lRSHYvT01HU2RSWXlSSU01UGEraHBvNTB1Z0lpQVY5bAorUnJnL0NWeTVUeU9VNGx5ZnNoSWMrNEE1aEtBTXZIeWZBK1hsZXFaWVpMYkU2dHd3dUdKSCt2R1I3Sm11emEvbAorSW5tbnZsZS9yUmNuQU5ySjVKb0xlZEY5MVh2aEZoUzVFNVBQUytZMmg4T0d6MmswbUtpWTExZlhSamRNUVZ0aQorZzNLSmc5amQ1cDYreFoxWVh0dEZNWm53WDhRTXh4UHprNEduczUxbjJpb1pSbWI3NkNnb0tSUWRWRnVyMVdrZQorUE9nSFFxcVRDTU9qZFpyaWMrWFlBdWdjdytleG9uOHpxMkJsRzZsbC94WXhwaE1mSVNBOEg1QUd1djBLMWJyeQorRXhSTERzbzRsM3dPbVp4Qmw4TDFXT1N6dUhWWWxmZWR4YkZJaUNGY0M2bGthQk1UY0gxQXliZDdNU2FiSWNWUgorWmNZUHdJM1R5L3RlSG4xWGk4RFFKZi9xQ1hLZExTNHBnOC9zMFNrPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRDIEtleUlkIEJGOUM1QzZGQkY4MENEQ0U3NEFCQ0QwRTBFNjAwNEVBMDIyQTY2MDYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUZBemJpRDZZNFFLaXdBQUFBQUFVREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlOVm9YRFRNd01ESXhPREl4TVRFeU5Wb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFTXRTMlY1U1dRdFFrWTVRelZETmtaQ1JqZ3dRMFJEUlRjMFFVSkRSREJGTUVVMk1EQTBSVUV3TWpKQgorTmpZd05qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUt0dFgrd1hXcXBIRE9rQworNGRXWGh0ODBmZDZmaVRFdlpxUmp0c0dVTWIxY2VYQ1ZGalBYZGErMWwrTUcxcXJnN21HSlQwcVJINUVBZXpwagorTy9TZ1MrNGJUMDBXV0REcTNNY3VneG1rMnR6bktCZWJmTlV6R2dzTVlQMDNJNFNWSjQ1Z3FDa3QwS2pkWWNFdworYWdwRVBiZU1XRHhKNkxaZ3JVRlpKZkRsTjFYNzRVSG83dHI5NmxabXNaeHk4bmk1YnhoYlorT3NpcVFBUjR6bgorUlVWMDViNGVFVDdMSCttSXF5dkwySk5IS0FnRWdBdjExYXdMeE9URDdQT3c1WERWUTQrVG5adXcybys5emJTVgorT2U5bHlYZEpFeWtrMW00YVZHekE2TUc0UVhuM0ErWTNxS1NqYXlBb0hGejhyWnJ1dE9vUlVaQkgyQzNtaUd6TAorcFhXOENpMENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRiNlBsNGVSU243S09RV0duQUVMakFRSjNmWk1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBT2ZPdworT2JUSkxDMmV3UFF1NHl1N3YxeG1RTEFmMnB3c2pUcExONUpVWDJELzdBcEVyenRWQjRyTXRQcFl2T01oY1QySworVjk1Si9TN0ZhNlRNVUQ4aWVMZm1uZ1g1c1ZFSGNSUkQ0OUtHRGZGNlR0N1YyU21OSnZwK3dpZ2YrQ29wVE1YVworSDc1alY0YlhxRHo3c0N6UG9oQUcraE4zSEdaSVVRUURhUi9zT0I1Y3N1UDRueDU5UnBmQmJ1dG1qdjAwNEhHUgorN2NraXhtTWtkeWx1UkV4dy9WU0Z6cTkrMWRYeGVpby9TZlpPK1pGNUk3SkxNYnhBMFpJYlpvSW9INnhmcnRCdAora1hoVDNTYWtQM0k2TVNOcGh2SWM0NDE2cEtGTmVyckloSUNrZE1MUnI4Yllrb0hDd05XNnpzQjVnQUExWFFtaworUTZONXBFZ0diU3VQZVJEYW4zMk94RnkzdnpiUXpCblViVjRwZm9rNktiV05UWkRvbDdPN3VzQWVZK3ZwWi8vaAorU2lhcTV1TmZIZzBSOEl0UUFIM3hSZ251WkJFQlVTMWYzR3BSSkRxZzBUQTlPZ0ZKSHdoZiswQ3l5UkVKLzJzbAorNEtkY3JSRVZmSDhyelZwOTQvOFpoejROcit1bGR5dmtPV1QyVVdONVBOeml0UkRLbXRHbko3V3ZsRmJ0NlBPaAorL3U2ek0rYXdrRXA0L2hXQ0hsNnVQVDVVVjA4enlOTWN0V0NJdXdXWERtS3hkWGNMME1XaE1zaktLRExjdFA3VworTWxNSDRxNnQvMko1VmJVWTJkN1J5RmJGY3BSNWg2Tngwc0U1a1g1bHlNNXMzek9LRU1mSHFHWFN6U1dhdFR2WAorZHNsVG1JcU9PYTZCS2xSWExlNm5TZnRDQXdlMWI3cGhzalBjTUVvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBJTlRMIEtleUlkIDE0NTEyNkQwRkRCNTNFOTk5MDdENkZDNkZGMUI5MDQ1NUI5RTMyNEEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUR0aUFVdkZabi9GM2dBQUFBQUFPekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREV5T0RJeE5UZ3dPRm9YRFRNd01ERXlPREl4TlRnd09Gb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFVsT1ZFd3RTMlY1U1dRdE1UUTFNVEkyUkRCR1JFSTFNMFU1T1Rrd04wUTJSa00yUmtZeFFqa3dORFUxUWpsRgorTXpJMFFUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1NZERteGx1UUVxazJTZgorVjBVRis5ZkIrRURWL3Vhemg3Y2VrQ2k2b1E3MGFuR1pJbnVJeW5pYlJvTCtHNXJ2TTFWMDRzZG16WjNNVE9hNAorVTJWcTF1bkNLbzN5TWNQQ0RXQ1RXaXA5QzIweXA0SnVLdHVpRGljRGhPQTZXSWpWZGdrdlU4cHh5M29wNzZrQgoreE9lWW5maWMrZVVLRDdpL216UVZsQW9tLzdqY0JXQVhyM2lWWWV2ZVUwTjlTbVNUZmw1dW5HNktaOHhLamVGNQoraFZJYXdyOUcrYUhyR3hsYVk0R0k0cXNaaExKVkN5T0hycEVuNUpmeVpjR2xCN3VVVTg0d1ExTUxDa0JpdStuYQorVXJNZmFYemhBNEw5QW5lN1M3cmE4UWNMSmZnR0tER2FFNTFVS3V6VFdudFAvYlFhdGdvTXpqVFdCd3dyeXlrbAorVTBYSGNPa0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkppNkd5VkNuUHc4MHFZbXRkL3pXaFh2QmJhbE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBSjB0LworSng0MUhWTlNNQkZlM216aldDUlNCeFFDYUhsUkNMa1A5bVpHWW9WWDVTUUdVclJLNTZ1Ym5LQWQwR2xKR1dQOQorckk2ckRyYm1IN2tXRjRUTHBmVk5iMjJ0ZUptNFE0Z1dCSHhMNnBXWDdnTGJlNXA3UDhQQ25HVEczTVI3bUFzcAorcWZkekdNRjhhQ0JFQTI4YmFWWnNNRHpLa2ROL0luN3BWaFowNXZtRi9RbU1HNzZLdnZKRVBZY01pcE9MVzRHYQorbVFSTEE3ZXNJVExUcnlFemhqZ1k5UXZKV0lMQy9oMm9nRFZpRkZPWUwrUTBlcHZ4ZGpvUDJPOWhEQUZwNTlDQQorS084aEFNc1lEVjZZckZOYmRvQ0N5ZWR1bVFKZHNzWkpuWUJoYUdJeHh1bUFaak5talNMTGI0UEhxMjBuMWNHNAorSDBsOFR2MWIycTFwWE5xSVhvYzNBNEZMaXJLcGw4ZlVUWDRxMHlBNWsxSXpJRHgzN2hOU05QMWoxazRHcFNTSAordU42cVVuM0R2N0hnT3hMUXcrdjZTVHhubEEwbk1ZQU1Ma1lVbHg5VG0rNnZjamd0Tm1GZGtuN1l4eUorWWVOSgord213d0ZKRkkyZC9EMHRDM3hUZ2xvaUprTzRzOS9Wb2VXM1BqWVppM1BMeE5uWm8zTEx6NzZlY3JTWXA3Z2ZxRAoremVrWVZ0QlNrOTZ2c2c0dEFDSzNDMGZreWZadS9obFhzZFM3c1B3K1lVeFBiN1Y3UjlxYWZySFU1RUE3T09KRQorbkJLOC80WUVSVWhvTWV1KzdkR3M5UExxRDJNcFo3OEQ3dUFlZWJiMW1MUFg2QVZXdmhKSWFQZE5YTGlvNXN4bgorZ3pSamNyU1h2RVZzeHhvSGtlblprZFFsWTVpM1N6VWhzOFdOUnpBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgS0VZSUQgMDgzMDBGNDNBOEY0QjhDOEU2MjRBNEY3MDYwQ0Y1OUU3NDUwMTVFNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFHdEtoSnVtWUJsMnNRQUFBQUFBYXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTTFvWERUSTVNVEl6TVRJeU1UZzBNMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVReTFMUlZsSlJDMHdPRE13TUVZME0wRTRSalJDT0VNNFJUWXlORUUwUmpjd05qQkRSalU1UlRjME5UQXgKK05VVTNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXZvV0t0V1NvOXp6WVVaYkoKK3hXZ2ZVRGhPeWZ3aC95OFdpdTJTUXErVzdjYjlvY3phMDZzdlFpK0pEdnhBV0N4a01WditjcTYyRzVjL0RhZ2cKK2V4YnpEZTA1dlgvdXRsd0hSU3pUY2hLZktFMEt5dm5wZnA0MTFsSkZTR2xkUGtYbG1xWWxqVzdtR014TWRKOUIKK1V6cmplMUQrMURRTUNreHN1a08vSWlpenB3cEw0Z3F3TGszaUFMZmYrc3pTQ2hKR1B1bWVZVGE3dXErKzVGQUsKK2QveFdrY1NpM0hFOFVHK2FoMkdGNFJSbEpiTXhQd0F0bE5jMTA5TnIzVmtUQ1FNSTJnMzgrbVNzRG9vVW43U3cKK3M2NjlLK3BNdzVyVWVBWkE4ek9HeGxvWGhBQnIrNzg2d3hjQVRHREo1cVZ2MFBxOERjOWdIbkF1L05FMERSQWMKK29kWHhvd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUtnWGVtZXJHY2R5cnZKZEh5dlJuSXhxVzZGc3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDY1UzeDEKK0ZtZEM3MDNvM2NZQVJUSk90S3RFbGZVWkE0MEZodlpmeElncU9PZkpEQ3ZLUHMyZzVwelFocDRWM3Vod3BlckQKKy81d29Nd002UGhJdm1aVlpFOXNYdWRiVGtmTGcyWTJQcGtISWdSbXQ5TWxxTUlyWFN2SHRHNWY0ZjZDa1YyWmUKK2FJcXRZSjVBaC96emNmajlNeURycVN2cHFhZGRhQ2d1ZTN3L0NKRy9SZjhBYUlpdkdkWmZ2azZqeThKczZJUUEKKzRXUk4rM2RBSWZacHo0TWdDczlNYVhCelB0ODgxV0pxSXFzU2NiRVBMVzVTSDYvNXE4NWNSc2RLWWV6OTA4cHYKK2JXSEhBMEIxaE9FcTkwellCZ0tNY3VNT0drZkt1M0NsNkxtSXhxNWxhTThwS29aME94d1l1OUhWQjBrby9PK3QKK3dHN0hOOWp5clc1bXNRaCtVSnVRVFVBSzRGQmNmT1dzbXI5cXVmNFRiUnREWXJnNmRvbXpNOEVqL2dTQWtValoKK0R1WUtjazhBWHRDTDJiVWMvellZZk1LdzRXcTBtN0tFODNlVzg3V1lRbnZYbGVWVjB1VExDWHgxdHVSTi9YbHUKKzVlbnd1RmpHWEorbC9RVnh1NFlDc0ZxMWtJdXk5SWloUTVoa1JTOENUeWVPaFZtNWRoREEvNW8zSlVlOFJGdlkKK2VjLzNVak8xZk9CQXNkTnVudXF1L0pCVXRyVXl6SGZpOGZMVldBejNrVFVkR2lxZDFiT0NlaWR3VFFEMzAyRUwKK1Jjand1a256VXdNazJUaGVZbDdPZ3M3RndsT1VLUEpFTk5GVlVkblJSSDVXVFFLZHFndzZqdmNWNGVPQ2VBdmwKK3J4V3lIcFNVYmF1UkMwQmhhbnhQc0dKWTBONnltSTZTaFFDZFNRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIEtFWUlEIDA4MzAwRjQzQThGNEI4QzhFNjI0QTRGNzA2MENGNTlFNzQ1MDE1RTcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWpLcStFZzlmYUhBYVFBQUFBQUNNakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3hNRm9YRFRJMU1ETXlNVEl3TWpreE1Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFU1VVF5MUxSVmxKUkMwd09ETXdNRVkwTTBFNFJqUkNPRU00UlRZeU5FRTBSamN3TmpCRFJqVTVSVGMwTlRBeAorTlVVM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBa2dLT2M1ZlFPVS9Ca0VWeQordVJyMWxvMkNvTE1NK1VBUUhjUUpIREVpb2lza3BlTGsyQzY3UWFRZXFMNThpRkM2c2pxNTNtS0RHQkRyVzNXeAorYmw4cm1KOEk4anVYeEE3b0luV3JWbjRoV2F6UWdIWHB5Y3JSNUpPcmpZUzU0blZDZTgyZjU1RERhb2kxY0xySworQUpXcXlCakVRL1NyUUh4OXFVNU1hS1AwUXN3bG83MFIzcW00aS9MeTkzWGdJdFdlalU5MEZVZUtUR3dwMlp1TworMEVDdXhvTUMxcGNJZjBQMzR5YVAvWlhqK3R1ZStJOXRUdm1ZaWNqWFAzWEZ4aHNtRTFDYy85by9ZbURNQnZ1bQordDdjUWhpbmsxa0N5TWdycUVSa1VyL05KaGRYeUl0NTBRYi94TlByNUg3SVhIY3FUTnk1ZDhIQ0diZ05yOTR2egorR2NoT1d5cFRhRG51UFk3dDF1SkJweENXNXFaTEhLYlViYzA3TGVJcVE1dFc5NHVTSUhnREgzRS9MWiswclVxYgorNDVGeXN0RlRZdnMyVzl5blV6ZlJqdFZDNjlTNzl4Nzc3bHo2OVNzSmRjMnZkWTdGWmN1NGxhUzZEMWgwakJtQgorMU9mVXFaQTQ0R3lsRHlhZGRlTG13ZUl4cnNueThJOGdLdE9UZytOdE9ndzJpYVZMMTdvaWJEVFkzd0s2OXF5aQorNjFNNGROcks3Z2dMa3NrZ08wczlVV2FsYkU3VkZCZC9LVkplUmIyYWNCVVREenZUL2s5cVhXbUplcDJGUnFRVAorQ21YM3hhRm9adys1RHFGdm1hWUZWMlV0RER3L0VoNS96eDd2bUthYURKNEpycDR5WXBtOG40UjcrT0VDOTNDLworRWlJTGkwMVhURFF0dGRjR1BQQkx5U1FjdE84Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkt0czM2OVZNbHJWK29rQworSjdvRi9kc1dsb25FTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFsZlJFNENKRStKZzBaWE44RWlwakdpVWswc0dualhlU0tla3BPTUFXTFExMgorU0NwcGVROVZnaVVUa1NhaEI4dndTMUdzZnhwVWpiT1pCVjFDYlJGR1lsMGVLbmdTOVhhSHBrODNZZ2loSEpBQworbTM1NlhmYjg2S2xWc2lRYzBzU245dGovVGhIWTJkQ1FJaWlaeGUxSWRVMFQwaDU4M1JLbGxHYmpHYXQrQ3ZEYword0lhbm1sanp4aG53SmswVDJhY3FEcEJuU3ZjZHhBRWpUWDdEalkzVkhOZWh1SGtaM09JRGx3R1BUVE9SZmh0aworMG1BUE5MeDZDMkFRWlExeFkvM0lPaUwvZjBjL2EvemtCQ3ZKcXN0UEJNRWpwYlB6MEJ4YTlhTGhMQWZOMEw5dAorNUdPRVBFR1ZyQU9CYXRUR05udVhQQUFZTGNhWHI4RnZDWkJUaGN6d045VTFmdEFySmZOK2ZlV1padC9Wa0I0VAorMXV5N3NiS1BYTmNUOS9XUGkxUlhKcTZPdjBrekt0VWhkRmJrTTd1QzVMeER1NlI2S2NBalZQM2ZkUXdmT2tldgorVWhIL09FV3dNNmFOYWpHdExwUEpyZTE1QSt0VGw1cnZtSitBWVcxUStoTlg2WFBYVDlPRUxUVDZGaWxGbFl6bAorenAxb1BhUU9KTE9jcy9RaStYL3YwelBCd3dGOWhuTDNvWGlMdm8yVzl6MklOT3dRWVBBVDRiMWUvUTZUVkRXSAoraHpndThESXEvbEFGMlFLTlpMYlhuQ3JPY09NSWxzSzdaR1p4SVZCay9RdThSQ1lzeE1ocmVjV3d0SHg3ZG5vTQorK2I2RGY4N1BQd0xQaFlIWWpEQWJNWDBlUW5OQnkzbERZNktFNWlTZTlDeHZkU2ZyNlJZWWRIcTFWeUpkc0xJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgS0VZSUQgMTU5MUQ0QjZFQUY5OEQwMTA0ODY0QjY5MDNBNDhERDAwMjYwNzdEMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFQL0JKMFFieW54d3N3QUFBQUFBL3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURJd01URTNOREF5TkZvWERUSTVNVEl6TVRFM05EQXlORm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVReTFMUlZsSlJDMHhOVGt4UkRSQ05rVkJSams0UkRBeE1EUTROalJDTmprd00wRTBPRVJFTURBeU5qQTMKK04wUXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXhkMVgyUGhIMzBLSUVhbysKK2x1MzZSQkN0ZDl5b2QrdjlncFRva2Ftb0NaY2RIV1ZCZFI5MmViOU5tSXRPK05MejR3LzRySHRhUVlrMXZBOVAKK1ltV1krbGNITHA5bFVETG51YVBoTTBWZ0draEhROTJwZlRFMTBrbDY1N01iOVhzKzlVZWhrUmczTlkybldRR3EKK004Tk84am1KQk5BU3c0UVB3SFV3UGZzd25NMkZaL2QxdVJ3cjFoTkx2L3FuNjJTSlF4aFBnVGUxWWVxWTc5aDEKK3NMSkVLbkJsdU1ONkw0akd4NWZueVV4VHlGc2czU0lTN0FhYjVsQUdFR2JJaWE2Y1IzZTZpTEhmZzNLaC8rblYKK0loeGQ5YmtLeUE0RkxKQnB5Y2FBT0hFVTRLKzdKR0FSNG1YOFkyNk9iR3hJb2VlcjVFYStmaUliN2daK3VRQlkKKzZ5d0RYUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVVFkK2JkTHlyY1FYd3A4Ry9STmJBL0pzUlY5a3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBMG4ramcKK2pJM1gvZU5TNDVtNGQxeVEyT0ZOekUrQWg4WXpDMjRFdFhVVVFzVmozNk8rdEo5OE5TWkFBdXNaV2FjOUJoR3AKK1puNFFkelA5MXhUNFV6bncxTFY5djhmVnI4MVptY2ZqWXFPWk1mdTJIVTNkeERaVDhSQWV0OWd6ZUM0NXFzalQKKy9ydkJyK2JWZi9KVG4yWWROdWIwWGtIT3ErbUFhSzNkNGQvMUFXYnlhSU1xeHpKSWdqL2FFbHFCaUw1a1UxcmYKK01yeXNTZW5KVU01YmN0VWdvT1BrNk40UktZd2UvUE1wSHNzVjBqTktrNWFJVUtpUGM2UW5ES3FhYmFaRU9mQ2kKK0N6WGRDbllBZXZ4Q0w1K3JzSmsyN3BxbzVGOVMrT2hCRmZGUU00YXFpcnVhOXV6c0VFZEw3ZHloQzIzRTJQb1gKK3FNVWoxdnNVKzFPRmJDak9KViswTjcyb1pQTG1pS29uLzNDL1hoRnZnQkN0SnVienNwd1FpbHJLSTRlUGJTN04KK2ZaREdkdVgxQkxObnIxWUo0RGVIcFpVbUNrUlN3UUtxZkxDZFNDeFNHeVp1RU80ZWxEdW5ER3F0bmxZTkh5bkwKKzJuSjgxQ3FXaFBpL1RHTjFVYm42NC9EVmxpWU53Yzh2UllaRU0zRkVZVDZ6M3BBK2pUblZBQWp6MUh5WWlkNlMKKy9Gamh2VlFLMTBUcStGamMwSEhTbFdacUlsT2REM1VWeERUcFF1ZThXUGRNTXJaTHo2d2xnUlUvVnFBb0pTVUYKK25kTTBSSTdUQ0dmaE9uV3psbTdoOTVBdFk1clNoblVyeWd0dnB0dDRFVnhkWGd6OVdENXNLd2ppSDJvbXJhc1MKK3d1NXE1aFF1V3d1WVI0RDQwNVEyVlI1ODdFdkg0d0M5bTVCN1p3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIEtFWUlEIDlGQkI3OUFBMEY1MjYyNzhCRUQxNTA5MjlBNzE3MUU5NkEzNUJFRjcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQW00UElFVlFyUmN0T2dBQUFBQUNiakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qazFPVm9YRFRJMU1ETXlNVEl3TWprMU9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFU1VVF5MUxSVmxKUkMwNVJrSkNOemxCUVRCR05USTJNamM0UWtWRU1UVXdPVEk1UVRjeE56RkZPVFpCTXpWQworUlVZM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBci9lUWt2VjZ1aHpwajJiUworQUJ0R2tjc202RTR5Nzc2cUdyaUJndkFIQ2VqS0VId2xnU3JEYi8wUDl0b3RTY3VEZ05DaWJCMENVQkZMRmpTZAorV3ByMnRQYVVwNDd2N1lMcCtoZmRPU3N5Q24vc25LdGQyLzAvUDBzMjk4cEdaNjRJTE9nQVhpVFNrSmZONWQyQQorSlpWRnBCSG93Q0ZGejJkWHJYYndaR3hlbkxwN3hNdm9IY0h1cVdWUkZaT0hlL1l1eXZweWtRRURPR0xlWFNCVQorcUhsaFR4YVMyVTNLQXRSK0tXdEhyUnhRT1drVHhaNC9XUUZPU1VvVEpLWTNOVkRQNDdoNlRDK0J2MVRabHMycQorOXd6dlErNk1jOU53c0l4bkRMc3hWaEszV1R0WnE0Z040ZEtwMnZLTVZkSVgreGF2TVZNeVFCWnNNSVBFc241SAorRTJpRVhuMjAwRlNWNGlKdWpHOWlpQnIxTnBaNFR4dnJacnl4UUMvR0JNUkNPelQwTDhOR3dBNi8yd2pZZ05DUQordWJtNktXMmhiZ01NQUx5eEtPYjB5MnVSSDlSVEpDVVZIdkFaUnJQMHZ4R1dmQzBRQUkvdzdVNmphOFdHNSttTgorTEtPeDVHMVVqMVI4aGo5SUM2UnRRcktzb0djcWhXaUFhSHJ3WW9KTjhWWVhxTVJrNTVUUy9oWWhiU1h5WUpNdworcmFIV0lXL2VLaWJpVXUvVGZzUktQaEVselN4ZmhWc1ZsNzVOai9LVmFaUDErT0s2WXZINWhGMmorUjNrM1pDZgorSk5ZaFV1dVc4RE9nbHRFWGVhVGRseWViUjljRmpEV250NXNEYlZWOU10ZjlmZlF6UXMzTlA5b2k5YWpzSkJFTgorcnpiVmJueU50VmdSeFpZYTlzQTBjUk9xM1NzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9MOXB6cENqWktTNlZRZworSDZ5c1dGdzA3cEk5TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFDMnMrWlIvdG11eGlzUU9GSDBBMEFkVkdSMzRiVG9KWS9vV0FqeXJGanRGWgorVjh3QUdGcEgvWTA3bCtVbkZ4VGI5Z3ZxdUQxRzJHYy9kdENSN2djUDRrRmxSei8xbzZXdlozNXdCR3JWN1dXNwora1NUUk9ObDZTRlpXczJmdkhUWDVlYktWcTZoREd2ajBkeXZ0cGhaZitpT3FMcHNJRUErUVNtdWNZMkZXRFdxVworb1A2UDdPUE9mL1o4VjN2M2l6QTVtNG9OQnpxRW5uSk0xYWtGL3hkdG8rcXVJdTcwdWNxbUFnYnpsY09yT0hYUAoraHRZWE1rN094emZ1VkVtdjVvVHIxNHRLZThwS0RrdG5zZklub1JCNmIyUWxCSDYxVkJoRGJkV211Nysvd1Y1TgorbE9zNlQvYkJyNWdFZWFmT2pLWjhUVDBkQjdVNjdvdVB3REk3VExnUmx5aGtkNVdxR3BoVlBiTFBSTE94eWFDdgorU3NUbVBFWG1NSm1UeU9XcENHRjBGTUszcWJteGR6VGpKRS9jVTlGRFBXSVpNTVRvdWQvWkJ1QmMzYnlXdS93LworRmpnNllQYS9tTE9uY3RqOVBUNkYyM0RaaTg5N3BzSDFaUnR1b29WY3Fhb014ajlDdFpUSnd5WUs4elVBK3l3cworNmNaalFhOS9zV1pvVlBTMGxJeERWSTdIcytrSHNmVThnV25WQmdSbzQ3RnRDY3ZtNEN0NWRsdmZjZDRwUVZCdworV1NyUHRYR0hrWS9WR1JkNlMzcndWd1ozRVRkTEtWSDRNb1dyMXhrck51MGMySE5TaE5lK0RjK0xaVTNwbWQ1OQorWlpuUUdDZ2N0T1BrQnFWYkhzTlVJZWUxbFFtVnRVUXcxemFuR0FjOGg2dDA2QkZ5YjJBYlJmckdRWmlaUlRnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgS0VZSUQgQTBENzM3MjkwRTE2Q0YyQUUyQkVFNzEwMENGNTZCMkYwNEM1RjA0MworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFRUTVURHlMSGpDSVlRQUFBQUFCQkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalV6TlZvWERUSTVNVEl6TVRFNE1qVXpOVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVReTFMUlZsSlJDMUJNRVEzTXpjeU9UQkZNVFpEUmpKQlJUSkNSVVUzTVRBd1EwWTFOa0l5UmpBMFF6VkcKK01EUXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW4wNk5rSUJKKzZqekF6aGwKKzlwL0lFM1MraVdJS1JKbjc5citjVGFwdVd3eUxLRGFaVlpvb2dqSVlabi90Q2pJc05OMFNDQlhwMW5wSzVaeHIKK1NCTlhxOW1hck1qY3pmZjNNdHNEQy9LMGQrSEZjS1dDK2FnY3V2SjVxR3FORVFBWHlYWEdrSER5Sk9pY1JCbHgKK21FZUM1UmFvL2tXSzg2WERTQjIrY2pYZU9neDJSWVhWOUdxWS9hb0tiWDZJWjFiNWdkMStOVUM5aWV6MXR1TEEKK3BhNWRWalNKaW8zSEZIOTBibjY0ZTVPclRDengzczM5di9jWGZZSHZWS1hEbGFpamtKN2VqS0Y5YmxBS21RSVAKK0JETXJ6aDR3WUd2UFBXcHlTZXNsUG0xWkFkSlFJT0UvZVo0THVBTVV2VUZUbUUwaXNQNVhKbjR2S0hFYVlUTUUKK1FxZ2dXUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUdZL1lld1NBQXdsM0dNNXN5YmdyMFRlbmdpZ3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBOUZiYWEKK1FuN2M3QVVVWWJhOVh2VlZ3RmVhckx4NGVJMS9YMW9iREdyUkJBQzVlSXhucDZkVlQ2bEJIemZvMWExaVNiQ1kKK1VnNXE5Z01vWTl4SzlkS0tyRk53ZXR2bFluV2tIM08vRFBzNU5BV014dFhkeU1zSVdHSEtqb3pDTWJaTDZ0bGQKK2VSUUkxMG5HRjVZTEFwVlRYMjY1dEI5UU1yWjRZcERpZUVuaHd5NUdseUpLR3JCZFBjamc4U3QzRDIwU1luNVAKK1RwNkROSStxTFF3dnZsVWxxSHlCREZFV0JpbXYybVI5L2pLTVByVktabEZEUDlLaWY3Ry9DSmp3SUQ0Q1ZoVEsKK0FEK0dHVytqY3FLQ1YzdHZDcUNlNitjajJxclFPTzh3UEVUOVFHSW5YZS9GMDBOcWZBOCs0djFHVVpBREJRUHcKK0RUbWxhUENRc0xUQjErdTQ5M2FQYlA1ZUxrM2lFdlIwSWlYdGIzVkxXMlkyckt6cmk1NDdsbXd0WHI0NnBMbDkKK3UyRW9kOFptVFNSWHNoc0hka21RQnExVmJ5MHdvaS9KM05MajJ3QnkvU3ZYRUJJaVdrWjBxVDJzckFTTTByZmIKK0l6NW9YRk54NDJqYzZiL2FXa3RmUDdyM1JNUWxVaWRpME9wTEVOSjZTOVRHQzliTHo3MWViMTYrN0FQdGMrRUUKK2VlWU9BbWM5Zm1vRmsvVmt4V2MwenhvSFNRZk1WeXBMTUFHVnFQQ1A0WmZ3aHN1OWwzZjQrYWQ5Ny9NOXZFZGYKK3N0cmkrQkZBaGFlQ3VtUjl2UVgvMFJ0bUJFRThxL3hDRlhPcVIxNHhnRVdtUFFFNWxYK3VFVVVsVCtWblBZN2IKK1pnc3lPN01RRFpMME1vUldudjdHcDQzeFR4VGU3MDV6eU5icXJnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIEtFWUlEIEEwRDczNzI5MEUxNkNGMkFFMkJFRTcxMDBDRjU2QjJGMDRDNUYwNDMgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWpQdEZWZXRpRDZUdVFBQUFBQUNNekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3hNVm9YRFRJMU1ETXlNVEl3TWpreE1Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFU1VVF5MUxSVmxKUkMxQk1FUTNNemN5T1RCRk1UWkRSakpCUlRKQ1JVVTNNVEF3UTBZMU5rSXlSakEwUXpWRworTURRek1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcGsxRVRQby80MkNjNUZMSAorLzh0cjQvQmFSUXcxV2FOaUZxeUtDOWpiVzUxamxveUdJdVp1UFV3YmI4elJCLzFUQlVHWTYwUjhvZE1TckNWbAorRUo5SnFDY3lvVHgzaEZINm50RVkzRlo0TVhDdjd2SDduR2FNUEVzY25ac0tMMTlkTUdoQlBGcTdwK3UzU1hPMQorUGhvT3RvQjBzWHU2eHNYVFJ6Zm9UaVIyb1pud3o2Wm5PR2Nab2Q0NENHOXRKMzUveG9RQk1naFlaR1FPTnlobworM0pkUDZGUEpOUFF2ZzlJZ3hmUXI0L1hGc3M1WjFBOGRZaUhLT3V2ZjRRTFBiRWN4VHh4eVluTUd3WnlNcHYzWAoraDZFN1Y1S0lvaHlHK1dTVm9mL1I5RzVtVHc5Mk56SlMyQ3B3NFVuVHVxUnR4bkM4L1N3RVdzUjQ2TlNLOEV0LworWU9jc2ZkbzFVZnA4WElCTmRqMDdMUTgreEhTY21CVGhsUE1LOW9OaERzcW1XRFlYc0ErTEdYTFpLajdCMlE3LworVHRZK2ZhR1ExKzBZMmxDNFVSMlhUQlMwZ1dCUm5rL1FhcE9HZVpqS0E4SlNvUU5jZ2taOE9QVm9QeDQ0T2ZXdworMm5ZbXFKMms1blQxMlJVek9weVFjT3RiajcwMklMb3hwUWVKKzVJSUxBbHJXeXMwQW5XbHJrbUpHeEE3cEVkeQorMGlhSkV3ZktReHZiNXdoYm1GaW9PVENIYkVlcGVQOEd4aVh1Z0tRS0lLUU10RE92VUxMN2pJWEx2eXJWNXV3MgorY0RNMmJOKzdSUlVKUzJpMHhDSEZ3R3JCNm5NdEs3ZXIxUVgzSS9TdGpLWlpndjBJYy9paEpPWG1UcTlnZENDYQorR2dCQUZYd3lXSDBQNnRXYm8vSVdiQ1BJS3ZNQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9XTTRuQm8xcERtc21TUworWk1Wa0JuSlAwRE1yTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFVVXVUV0ZCSnV2eStLTWwrSi9WanMvdnB6MEQrb0Nqc2FpNExXc3ZYcXdvVworOTJ2Zjc1dDNVKzZ5YkU4am9lSlFGekxacGVMejdHZytuZ0lQb0tUREt2dDdMZCtRUVJLQS9XU3NOKzdSNmNkMworWkZUempKaEowb0tMZk9qVXRDWHFsbE1taWpBejNZRWhXaU45OGZxeXRlbm9jQWF4U1FIcWFVY2xrY3Rpalh4UQorMXk1c284YVF1VXpaWVZnVGFmcGtQVCtoN0kzZmlUcG8wVHFNbm5YQTVyT3ltTEhhaWVQZU5EdW5JalVPYTNnYgorOXB2eXBFQWdpYXJ6YlY1SHdBRnNJU0JGS3RhRGFkRWgwMUU1NGhmU0VQbDVtMlNJVVpKZUtBeGpIamRzT203Rworc0tvNFh3elB1Ny9BNlZ3ck9ob2hZclhEOGoxR1hPQWdycTNwM1E2Q2dNTFFtOVRkUjAvcmV4WDBMeFlad1lTSAoreE1jWHh0VHU5MkhhT1VpWFhLVXFRT010azhKSlNKekk5SktsRjg0L2pabW1KRlErY3RMSzBZS2s5a3hXSnpyVgorMWd1MVJaeDZxejA4OVZmWm1YbnF2b3lXMnlmdjBtem1USkZCSGhXYWhNcGdSUjhqV2I5WklkK2crTlFabm1iNQorVkhpMmpCWG5hcmE5T0NXcEtBd1FFQjdWcnpocjVvKzRnOURDc09RRFF3bGZRaFl3aFFLNnRVZ3VEMGFGNzBBRAorcnpieU5NUzRhWlRrdG5qRkp0bDdzd2phSmF6UFZOK0NFYjgvMkNYaDNTbEVnVVdveTRRdUxOMVBVMEV4WkFNQQorV29JbG5pUXRPUzRZVTViTnczOUoyVnBnNWdGazlFUGV1NWtXNXYwTjhLS0puQnJDd3Q2a1VwQy9OL1lzMnRvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgTkFNRUlEIDNFNkMzQjM1RUYxNDRCMEE3NkNEQ0ZBNDA4MEI4QjdCQ0EzQ0M4RUUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVFXNTJ0aTF5ZjJhZUFBQUFBQUJCVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVXpOVm9YRFRJNU1USXpNVEU0TWpVek5Wb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFU1VVF5MU9RVTFGU1VRdE0wVTJRek5DTXpWRlJqRTBORUl3UVRjMlEwUkRSa0UwTURnd1FqaENOMEpEUVRORAorUXpoRlJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpZVFduNm5aeEJwTlRLcgorTllobGtid0Y3RDFqbUVEZzBsZjE0cjJveHl4WWFnZlJydmNCdUMxTnM0ZlUwWFRSNHVLSzAxbkQyZ1EzbWdKcgorWVVhWGhaNnlUcHFFTU9RbWFVWUR1OERWNG1WR2FVeTczMjE2c3p0b0czTC9hZExnSlE3dFR5RndYQ254WGV6VAoreHMrZHN3L3JVRkxlSTM4L0F2UXBZNmxoWUJnS1lBNmdtNFE5NXpGLzdUd1ZoT2R1S2x2YnB0a0xlM1ZIbDBVVQorY2V6b2YwZDRqTEROMG80eTVzMStUazBHSS94d3Q0VjRkWFhsS2Q1bXpBTVh2cmJRTHlDQmhSWmdodDFQdDZZQworekg2MGFobjZhaVJLTlpyR21RMENNOUNjamtSbWhmd0UrYUx0c2lIUXRtTU1HVFVVRHJRdHowWWNZTGZhaUNJcQordG80T3k5a0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkowTVpLeUdIZDRESkRPUU5HVFpPRnp3bjhXK01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBUXkxUQorNTRmbEdEanI4d0hCVDFuTjUwWmxOaWhWU3I2TnluMWtkd09PNWdMYk84Tys1OVNEWG1Zb3VCd1VVUVV2OGFNeAoraUlxaWpDdHMxV2todHZ0c21abHJWeHhrblBzTC9GWDNlSllLOXFmMnFTVjhEckRDMTBBYWU2Y3ZrTWowT2svdworWDFmeXdlbS9KVTZMYU1VMVVvZGs5SGd1VWhjak1ZbDNtS09mTDFIeXNIakJIZVJ6QmUweXZuRThZaGtxUEZDagord2JSR2NNYk1GZGJGaEx1bjRsL0JvTVhCVHhxdHYxdk00UUVYeU04cjl4NXRBbFpJTUNod1NtNFAwOUpCWUNnKworRFN3cGhNM2xBVURSREdJa1ZkaityNTliYnlyV3NrUi84Y0xyekJGYWlrZ08vUG9rNnB5VTZSaWt3NytnS2RCegorRHFRTHRjaGRkRFhGZlp3ZkVWSmVTKzkxMXpwNUkvZlowTGFQQzBRVmpGTWwvdUdPSjNEZkxxVFcrSHdtKzVTSAorVHg5VERLRU1vZGlqclFHMkdrOS9qTTNISXhoMVBTUVNkTzllblg5aGRrbVRaM0JZOWNYMlhkRGhYTWlCT1g4RworNEZqbTduaG1VUFN4U3RCNjIxMEhmUE1oTEsvRFlXbUk1cGxLRHhrdVZRR25EYjViQ0R6eGNvNUR4OHVacGNYZgorQis0RkdiUjBGYU1scmgxN3dKQjJIWHNsWmMrZmZ6MTBISTYySmlDUmpwYk4zYzBHUURHdVJicFZTR1pnRzdqOAorUTdOSnp5eWRESUlaZURUbkU3NkwwRjZYYU9yV2dQTTRhNjM0NlpiR0pVczJYUEFpZ1NGeUVEbncvM1FLMmtnYQordyt2N25QMG5jYVBPcGI5dTBwSWdDUU52VTgzWTNQdXNWZXBQb0JVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgTkFNRUlEIDNFNkMzQjM1RUYxNDRCMEE3NkNEQ0ZBNDA4MEI4QjdCQ0EzQ0M4RUUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFqUXUxdlF5MDFQcVhRQUFBQUFDTkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt4TVZvWERUSTFNRE15TVRJd01qa3hNVm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVNVVReTFPUVUxRlNVUXRNMFUyUXpOQ016VkZSakUwTkVJd1FUYzJRMFJEUmtFME1EZ3dRamhDTjBKRFFUTkQKK1F6aEZSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLMjQ2cjFtRTJ2NjV6anUKK1B2b1Y3eGtLNGNvS2FnWGw0WW5VZk5UcUhoWmpNNitnZHNDSE1hOFNORnhMZnMyUWc5TEhTODhUeEpYTVl3emYKKzBtbW5saUwraGxHaW9JbTkxd3BBQWxuUXBwTGppSkxEa3hrclNac1hFQi9rUTBURFRDeWRoQVV1NXd0YnJLUDgKK2RURE1Ib1JUUkQ3THE5KzF0SEpMNnFyclJSNkFTNDRuWXVsWU1NOU13OG5QejdZaEcxT1RpbFJuVm9TblgzelQKK2puK0VtM09EMkZsam8xRDBUL1B4WHROeTFUeUhPR2FZZVVjMWpiUFBlcC9EVHh4NUFPN29tOG96K1R6SXJWZkgKK3JsNmpNTlFnODNJNit3Mkc0eUJsazY3ZGhHUG5XOXJCdmc0SU1McTczT211Z3B5eFhIL3FqbGxkZkZmV0M5UUkKK0NNVTFnN3BHUE1YTk1kUndQdi9YYjFvSS9VM0g3Y0lsRjlBdkxkcThxWnhUMTQzckhIV296QkFMQTJvVnd3Y0EKK2l0b0tvSlJRSlJKM3RpSG16QWJud3M1QW9DYTd4V0g0MTFOZFlNTStjWHE3RW9pTlgwMittcGhnM2NXbEEvaFQKK0Z5ck9GdmFaTGs0UDFXbHUwb0wxZVVIZ2dqemxrTzZjVDY4SUFHS3k2M01RZWg2cHJjNzEzN05ua3AwS2dDbTQKK1VxQmNSY0REQk1udGVaQk9kWFhjRXo4OXQxYmxkME9xVUxVNGpFK2JhMGFpTlliQjdGeTdpVXg2OVdMcTIvMGQKK0l0YmZ5SU5TYiszT0VwS0wzWG90WXVpVGIxTVhaTGwxZmJRQVlNTmtodkZKUnQ0QnRTUzcxTkd6VFMwbjZSVk4KK3Ewb1ZMdk1xU052dnNRY3d1M0cydnVMamE4ZExBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUnQ4TE9qZHJVUlNUcEcKKzhpTEdSczIxcUY4bTR6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUR0UFZsSmFmMGZQZ3ZSWDU2MzJxbzZiQkVnOWdmUERRcG0rVlcwQVVxRWwKK015N3ZtVktUcXR6YklRYUpiTUxvOWVSbko4elI4NGR2d3hpcm13NWoxWlJvTzR6TEtFOFBxZEdpUTlVTTVQdE0KK3ErYjZlbUQzWDlVUzZZWllpT2ordmdNNXo3YS9EcWdKbC9SQXJtOGM2TUdpWDZSR3gvTGFRbnFqSEREemN6a2kKK25FQ2ZGS3pzOHZKZW1uU2J1MElPbndYMGZhenVmNk9waFZ0M2NKRWJtS3VGdXR0WWtTUUVUbm11dWx3OFRUTFAKK1lzRldGd05nZVFoanREaU03allYS1pqRDZNTDRieDFRZU1iTzlraVpFVll4cE04aXdkNWlXZlljYWJOa3U0NmgKK3pGRlhBaERZRzEwLy91K2JkZFNxK0d5YUZBeWVDVXI2NEtZY0g2TUJIZUF5WTBrRzJXOGE3WHI0dXJYMlB6RXIKK1g0RTI0NWlzMGw5UkxucEZ4MisvOGc2bmkxL3RWWGFRTFphR08rMkhFdkdjbE9HMURGOUZZK1dQNGZyTDRNS3kKK3NLTFpQOWtJV0UyYzl3cnBadFc4dHBuSnZRenFlY3pnN3ZvZXZMdDdML3dsN2V3MHRKTWJoVXFWSUJSMnUzaTAKKzhXZytGTk1lSys0YkxxcHgwR2VBSDZrS0Z1cVM0TmtMSm1DUVFvZmpnR0U4OXN5NlZES01acFp0RHlKaUN4MUgKK1RFaWNNaTFZazArZjdUcTl5NndQTFl4ZHhTYXZHUERaK0N4NlVNRFNZSHpyQW5OUTFoYVZoemE5d1VYN3NKVVgKK3VhQ1NkMXJiOTh5d21BdzY0SnRNWjd1VTJVTWFpZU5haEFTR2xkdEdhakUxMTJZVWpDSUdRWWR3a3M1N20rNzIKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIE5BTUVJRCA3NzBFOTc0QUNBRjBEQjlBRTY3RTdCNkY1RDQxMEY5QUNFMkZBRDY1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFHeldHTGJvZ2hZSyt3QUFBQUFBYkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTTFvWERUSTVNVEl6TVRJeU1UZzBNMW93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVNVVReTFPUVUxRlNVUXROemN3UlRrM05FRkRRVVl3UkVJNVFVVTJOMFUzUWpaR05VUTBNVEJHT1VGRFJUSkcKK1FVUTJOVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRDU2dGUwMFdpYmM5WFQKK0grQkdnUHRhMEVscncveFdZY3h0cGRKSVVxWnFlaTlUeng3V2cxT3pjTVhJU1hFd1dkU3NDSmZET3dqMVdtMjMKK1ZJNTN6dDJ0UThLVFhyYkFLNzdMVjh1aHZsTkxtU25kcU5yS2RyRGVZR2UzNzFRckVrRkxWSUlMc21UK29JeXQKKzB6aGducC9UR3JwOG94MW1ZOHhkYmRhc29tSzJpN3FyR3Bpc09lZm9Ic2RIZUlhak4wVlR1Z2JjRnZZM0xwTWMKK3hTYXptanJQTUVNSnNDYVJLbnh3NXp5cFE5UkhsVmtkMCtMbFFXeFAvUFNQZS9kTFBYbzloTEV3VkZSbHpBU3MKK0ExU29adFM0eDhtMnpUb0lLVFg4aFUwWHFhS2pNRnZkaW4wTWk1d2l6cisxNWN4dThSdno4aGxOejlTWFYvZFcKK3NKQnNzWmNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQOHBDbHNERDB2aG9QLzVTaGVlcjdlMFpERUNNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWVFSmkKK0MraCt1VUhMOEFTQmlPTHZOd1MzeTc2MkQra1QvdXRtelNIOTM0UXh2T2ZPVlpDdlUvOW1MVThQWFpBSHNJUHMKK2ZhLzJMOG5ZeXI2UHhSYmNFTUQ2b0xwVkMzMXNmaUhLbzlPcTZaQkxINnU0YXdKWkd0L1BJZVNabXNNVHZNZkwKKzMrRmEyV1l2bGZKUTdCaDZ4b1RqWkJTRFN6MTNSZ2JTd3pIblJuOFMreVk2M0pFbDE5MkplNnE5bTBLWmloM0oKKzY3MXR4NTBZSnpvT1NYMWQ2anhQcWtPeFlYZ3hJZWd1OFo0QUMwZFBURVFHRG1BMVRnRTBoYzc3RjVjQk5oQUcKK1lxLzlxOGdMcm84enJPQXI0b3dMZTQ2ZDhUZ0djbnp0N1Q0Y21jSmxIQTdJR3ZPMG1hNy9IOTgwWGxnTnUyZWMKK0RQQ2JJM25ZS3RUYmEzWk1oL2ttOFduN2J0UU01Y2FVVisvc1ZxQmxXNVIxZHh0RjZ5R1ZIb2JmcFpBcXB5cmEKK2pmL3hKUVd4NUc1QlVpYjhrYnRwdnAyaDRVV2JrSmJKYmczcm90WWx5TUtLZEdNaFlLMWF4bXVsQm4xTWdQY20KK0crajFQdjZCR2d0OGpwcmFGdUVQREZqOGRHR2ZZT2xWT09DUjlwVlhoNUptY0cyN1IwOElYVFRNL1hqQmRCSm8KK1M2dk04eVhVVHBIcFN3ZkZxTXd0ZFFDbmp4ZzR1UE5DZXZ5bWZ0RDhKWTRPMzcvTlYwQU9EaDNQWmNOaHUzWmIKKzlZNGgyUy9PRGxvVk8wVzRoOXpLNk9FUVhEY21ZaVc2bXA3UEhsWG5UMVF2M29TZHBkc2tQQUttY0tKVTlhMUYKKzBhUkRYTnpmUERpY1FRQzRlaDhmRDlKWmQ5RmZybGZ5c2NqN0pOZz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIE5BTUVJRCA3NzBFOTc0QUNBRjBEQjlBRTY3RTdCNkY1RDQxMEY5QUNFMkZBRDY1IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBalpRNk1PdGY4eW5PQUFBQUFBQ05qQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreE0xb1hEVEkxTURNeU1USXdNamt4TTFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVTVVUXkxT1FVMUZTVVF0Tnpjd1JUazNORUZEUVVZd1JFSTVRVVUyTjBVM1FqWkdOVVEwTVRCR09VRkRSVEpHCitRVVEyTlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS2pyZ2I2KzlJbXFxelprCitoQ2hIc0NEamVzZFNQRHJ1TUNPZWVwayt1WmpjdFdORVZLMTNOOHg0M3Y1TytFOVNsbGF1V254S0J2dTVPbStkCitjLytLVGJoek1wU1NKTmEzRGVDc3ltTHRBQUJlZG9mRWdmN1o3WGdXRjlPNUt4MHl6RTJaTnRKK1hLWHVqV0htCis5d20wVHVkYlV0Mm5vNTZGTXZqMWhjUDR1NmxRWTVod1NkMjkxY3MzTWFNSUpKTDJkWEJNeW43eW9JQnNmT205Cit4dWc2eTgvU0crWWM1NTRFUk53TEhoV2ltWmljaDVRR0VSYWZYRHFaTXg3MkdzQnlPL2RDQXJrMmVEazI0K0FwCitlN3VVcnd6WWN6clcxM2JKOUdPb2ZMSlFXb0pZMmVFSHBRNU5rWERYbUhMTkxxTUlLVHdBaHhMZHIxdDBnYnJ1CitweGN5RjJONGsyVHdNTldydUtJSFpmckRkb0tSYk9QQkMybGV3elprTlRQb2t3Sm9qdVNmMVZIT3JGd3pKeC8vCituYUhEa0ZOYzFiL01BZjZWbElLK0FXVk5hNzRGOUFWeHBxVEZoZFZzOWpXWERPNi91VFA1ZGM5Z2tSdTZHV1haCitlVlNJTmh4ZEVReTdkaVRSWWd5Q0JpeVg0UUdNTnJ2ZWt5cW45bklVZitkYkhidXM2VUQvaDRVeGY2enlXVVFDCitrbDdqK0NPaDVIeDJ6TGxwNVZzYXpvS01xQnIxOEZETEJQblR5VjBuYjQxL0VKMlF0MlN2dDJjbTBHbFc2V25mCitvYWZjVmk4cGxiZjk4anBIdzhCSTZ5ZFFTa2U4MG5hRFpKck8yYjZkNER6Y3FpVng0TUJ6eDhEYklYWGpyRmxZCitEL3ZvMVhoY1JONnIyM2NqSGI3aWQvNjdKQ1NsQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJ3aElWemIveGVzejNzCis3MnlhQURDcDlpWHF6akFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGVEJpRXMvVFhGOWZTaTdjb3lJVG1HRXF1Q1BhbHlGdE0raVNIUTJWS3J1Cis5VVg2bkV1anBsRVBZVFFPQW9UdmhVbG1zMUh3WEIvdHRucHpyVm8rdU9yOVdOS2t1eW5EOE5NZlFCWjJHT1hSCitiTTQ3Q1A1N2I3bDFFdnFwVzQ3MnB4MjFzRTI3WUNwb2tWZjIvanREMXJpZHBvUkVncmUyNkNIcldIUThoZmsxCitCbGJmd0JqOTRWc1g4d1NDREkyTzJqREhWSkpMa2hqRFh2MkJWNVZOc0NFd1E2OTI3ejJ0T0UxTnV5aENoVWNnCiszNUtMejRzQ0lZUzBZTFZIZnNsVWJmaVhNdzk2cWhKTWZzNlEydEFLUVAwVi9hLzVzeWN1dGNUNTRodnlRSlh6Cit3dXgxY3FaN1V0ZGlHamRPeHI3TzVtV3psS0t0dk9aQzVCWFZnYXNFNUoyVVBpQTdwbEcrNUtpanJxNGVMd3F5Cit1alpMR2FjMDhCbkJwajFVeVVTdk5mSi9kTlhoMHY4bi8xUVRTdGJsVDJpcExOa2k5bmtjRVZSUXBNMGRmSnlpCitHUlk5d2tYeThWbHN1K0taMEhaQ0U4cmFDZXJXbjUwMW56WmpBVVVwbG5WOTFwWDBNK04vWjM3OUVaYUZTMmE4CitlV2FDRGRlUXVrQ3VxaThUMlo3dlZ0V1YzaGIrdkZEa25wdU8wT0hHUWpNZXQzU1RuMjNNUkFIblR3TERrU3VmCitnYTlFRkhTaFdSd2RuNGdwRCtVWEJYNk9GU3hVSXpWNlMza0wwSzZEUlpsWTM4cklJd3hzQkpRSWpXMERtUjhnCitpekRBa0w5akYwZUZhWGpFYVZoSnZDUW5uR0ZsYlNUaXBQRVRLM2YxYVlkdDJDNlFmajlOMlZTRkFPbGt4RHg2CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIE5UQyBOQU1FSUQgQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYzRTMwMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBUWJ3Z0tjRU1QcnpUZ0FBQUFBQkJqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVek5sb1hEVEk1TVRJek1URTRNalV6Tmxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVTVVUXkxT1FVMUZTVVF0UWtORU0wTTFNRE5FTXpsRk5URkNNRU0xTURRNE9VVTVNakk0UlRrNE5FRTNSVFl6CitSVE13TXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSzg2bzE2bjVKYTk5M0k4CitYeE9RWUZlV1puTVBUUWVENDVJWnBwRG5ISzZrRU1QcXBvMW1tV2Y3ZGRmV0FqSWNRNmhxc3FFV0ZNSE5TNjVHCitmTmJmd0F6UkI0RlJuWEFFUGZ4VXFDd2M3WHB0eFZ4VXM4bGk2dS92Z0Ztb1A4Y2x5YTNuZzFRVDFORE1VZ0NECitFSTNhNmtmSENIa3JQekR3MFNwNEsyQ3ZSVHpiZnFvSDgxL1BsMlJiYXlvNzQyVEZCdlFVNWQ5YmdpTHVCWFRQCitQSzh1M2NsSmx1a1BiTWhQTTVZbHRPQXdCanJDS3NGU3Y5UXdPZnpvdEUvS2NtTWYzaWg0Mm0zL3dvaDNjTHc4CitRTzg0T2pqcSs0Lzh4SExZSklyanVrUGIxaWw3V1ZZZTRKYXFxWkdGVHAwY0VtRmpPQjhuczFCTGxIUnpoWmtjCitQODVVUlNjQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSHlPRExxU2kvdk1LNEJYZ3BPcVdoa1ZsamFNTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFtdVh3Cit1WjV0a09BOWFzbmNsOGY2NGZ5d216YUdGdWp5MUZhTjlWTFltcnVjYk04eHRoMS9NQlhzaDFrbmE5emlwNTk3CitIWGwxb1htU3BIQ2F3dVhsclJUZWZSVSs4Vm9VQ2lxeVhrVVIwTXpqVWRPYXBVbFZJWWFFTnByK3pIZ2swL3N2CitLUWlFNi9xY25ac3VQa3dwY3FYQmZWaWlTenlXVzRqeVhOR2tUWnBISyttZTFjbWhBZHgzb25qQXVreEY5NG4vCis4ZWo4ZXAzUk5hQ1g1WXEzaktQZVIxMXR4a3BpRnd5RlhHM1ArbnVFeEptNjBWTHRxc0JXSnIvbnh2NUhDTUlLCitGMFNpWHpPVzhGenBRcEt6bk1nVGkvWVVpcUpsVmpZUmI1TXRzdkMxK3N6ZTR3UHZTMmZScGdXTUpsVlNjNXByCitaOGRYT01ENmxxc1QyazRiY1ZNcDBjL0QxK3Z0Y2ZHaUh6Q2xKN2o1SGVYbG82UDNxSlRTZ0xieUxiRzB5RXdLCitmMC8vUFJxdEdkUUdVcldkczB1d1Nuem9WYU5iR0dadjN2c3JiYmp6VFFMcWRUYXJIWUVjMDVQemFmY2cvaVhJCitqVmJzcHVRdDNyQ3JCcGJZMjUvclFRWjBYejJzYW0xc1hNaHcvbTF2SFRVblpMQVFSU01udTV4UW96SE5xeEZ0CitZb2grc0xDY1hOZi84NExCNnAzK1dOZGlYa0hQenhVTytXempKayt4dCtGZVFrc3BFMzEvUlk2NXAyV0FKU0xsCitBeTlqY0xVWDhFdFkrUCs0bGxXVnIvcC92KzFiZWdBWnNMSnJjd2JmOFFzVWp1MklLNy9zZkN0VFh6OHBNWHFnCitXSkdNR2NVMVh6SWVDMHRmYm4ydTdyczk2WmtYY1p5azQvNEYramc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIE5UQyBOQU1FSUQgQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYzRTMwMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWplMEJMMWNxSHFjMUFBQUFBQUNOekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3hORm9YRFRJMU1ETXlNVEl3TWpreE5Gb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFU1VVF5MU9RVTFGU1VRdFFrTkVNME0xTURORU16bEZOVEZDTUVNMU1EUTRPVVU1TWpJNFJUazRORUUzUlRZegorUlRNd016Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUpVQk9QcVRUWUZ4c1VBSQorMm9yODNUaSszeHBzNXA0azY3d1VwUUlWeDdVQlNPOUkyc1BOSjN5U2pnOGd5R1N1dU1DenUvRkJybnNabzg0aQorcXRNcE9ZcG1CL2dTSmJmRUJrTkpCbXJSc0J2L2p5dUdvbkRMVFFFVkh6UDE3VlpCWlZlNytGRmZPS1A0bTYyMQorZmc1a3dJR1ErTWNVcmFjRVNxY2p1TFNCbFhrU3JZUS9HWDJaZFl1MjI4b3F1dWJOMkFOWHkrRWZ6N0hqb2ZzUQorT0hWSnR6WEVtUWtkL2lEK1podmpaTlFXamM3blc3VGlXSHVoN21WVkJjM082ZDlnb1dScmhWdlpuMjZ2VU5YRAorcVM2alVYaytva2lLWEpRclRGTjdNWGVXZGFKbWdpaXlOdXpORkFpL0QzMjNXSUlZQVBpMm93T0RidU9xMVhTRgorSitiWWZScEs2YnU4YjhRUmpmaHMxOUlaL1IyYzg3YkRTczBUandoSDR6ckNFU1E2S1RUb3hxS3cwTWJ2L25CTword0cySHdsVHMwcjRMT1RRSzI4SnhRT2s5R0pkQXpMbktHcFhmQUV5V0g0akljVFZGQkw2VlB3U2pJS3p6Vk53aAoramRWYXpkLzhMMHZYbWFqUGhrZkhoUEQvUHk4cUlZVWhUSE1QTkMrU3RsKzZtTUVaaTAxazZaZGMyamJqdXFESworc2haWnhoSTN5aktyaU16ekZkblJVeEY5bzVBUUVKS2hZVU5UenQ5VmhINW14U1B6NnRMS29LaTE4R1RjNElDSAorVzVZbTRkU3pjUjdoQkJKckIxNVNDQ2ZCVW9FTkszQVNuRkE4bW1FZkxlQ1lkWHZ4Q1J6b0lHRWRYdFdkSWc4NQorSHlEV0xQd0ZYZ1dvQUpVWk9Na1ZYMmNMeDhzUkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRSjkxOGg0TVNNblIxYworT3pTMDN4bmVIOC9lVXpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQUl4Uk84aHBTczFtUkhCNHNOSGFpaXFrUFQvV2s0Qk9rL1RrWTNhd0lSWQorN09VZmlMQlZMczZxVStDSDhUc1FkYWxvTHd0NVBWL3E4NVo1YkpuQ3NnZDlyN2ZSdG5KVVErQnZSVkttdWttdQorMUVJUmRRQWc2RDU4NG5nOVZxQ2dhSlFiWFJrWkcyUU4yL0taQ1lydzRBbDhhSWRwQnhhdUtodjhqNlF5ZlIyWQoreHZQeUhCSGRMQXJCbi9GRnNIaWM4aDNibTRCUlEyeThYWVFzbTl5Ni9HcVZMZzcvdHN5NjVjc0ZkKzFYR2htdworZldDWmZZZEEwOTVXK0RjbjhvZUFxU2EvNE5uczdwTm05NzdGQXFscWhkVEdrU0VyQmZtcU9ZQnRTUzRnMHBrWgorYUZsSEJ2VlNZdHh1VXQ5S2ltcHR1NHVRU3B6WDh0Sm1zazBCQ1hSV2QvbXZKTjBzaHo0eW8vS0I5ZzJOMFRYVworOVhlY25sN1R1MHljRVN3dkxNVnVLcXFmeWNaRTdSMmdlSm0vUjRsNFA5NGE4c2I5ZWdaWURHbkNpZXZjUUdBSworOERnS1lNcllLa1hleU5maGdxb1RKS1lnYm5YbnVVa2tGeG9TVHZ3d1kzMzRLVUxpbnJBRExyTEFjR3RQRS9hdQorMmJDOUMyQ2tVaU5ZYXM1dVcxSjR0dVJGRTRoTVd2V0h5cXYyb2hqTGdWWW43ZVF0ZkJmRnpkanUxNG5DcUNKagorMThTaTdJdVJKWE9FT0Rnb1BsWHZndWs3NUtjWTBtOFJFakJFWGh1TC9IajMybUpseEZSMXZBdm1TRVBJbnJhcgorNVRiZnV3WHYwdDQ2Wlh0WXVlQ2hOMGhaemFDL3l3ZVdCVWZkU3RyY2lsWW1aTjY2WkVLK2xEa25CTmFYZjhHUgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgTkFNRUlEIEQ2NTlCQ0YwQUZGRjIyODRBRThBQzI3NEM2RDkxMjE1QUVEMkI2MkYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVFkQmdhdGxsM2t3ZWdBQUFBQUJCekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVXpObG9YRFRJNU1USXpNVEU0TWpVek5sb3dRakZBTUQ0R0ExVUVBeE0zUlZWVAorTFU1VVF5MU9RVTFGU1VRdFJEWTFPVUpEUmpCQlJrWkdNakk0TkVGRk9FRkRNamMwUXpaRU9URXlNVFZCUlVReQorUWpZeVJqQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUsrOGo5OW44RjZja3IrOAorNmpQWE56cVFRaHVzUWF1OGhYWXRYVmU0K25hZUVCUlg0OVVvRnBvZ1RxOXZNWElCaFpYWWI3bFB0ZlJXMThXaQorbW1JT3lFaWtmbURGOGpEd1VLWThyWk93dTd2VnZmUldoZUNOczA0dmR0emJiajJTMjRXeGR2a3Jvd0dlY3dBdQorMUdBWTJpMlNYWFhRUUhzY25tTGhqTmFQc0RHdWEweTZ6cCtxT0tUdzJlaGV1UHNYVThja1lPeU5rdXRveU5rcworUHJpK2FWazhlcnpNWDF4OC9EOXFaSExDQ0RaV3krWEMydjFyQWtNb3FoSFNMNzlxMGdUNHRsdjdBS1V2VXhhLworZ0k4dnRxYTZ1Um1nTTRaelJyM0ZrSWphOWNOUC9aai8vaCtWTlFnT0dQKzhsS1o2SURnd3R3dEt1TXN0WW9pbgorRUdIYnp2a0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZ4QVB6cEJHNGEwRW1tQytZbjBua0ZDcUZjME1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBWkx4NQorenRPUWEyc05LUjZSeEVGcThBVEphZVhYNzQ5VVl1NzEwV1pFMUVjMEJtTndsaWZCVkx5eFE0REJNUElETjRSZgorMC9KQTdqQWNPNWpFckpPbytsTjhkdEVtazhaeFFRYjdRVlVFUFBwTWREL1N0dzRodkMwNFRNd0xqdi9DRWlzMAordFNORXZIZ253dGxIVWJ5elc1ejM2MW4xbFlDZSs3OEFmUk5VR0pqZG9jYUVEYzhtdVQ4QnY1bUpUMlVXMW9mZgorZDcxZ2lUWk4razRjR2d4QVhPbGlzbVlNSGpwbWlZY0IvS2NrYnBTelJ2TlZ0N2FEN0ZBanFObm5SQmxFRVlLNgorenVnUXoyd3NGQkxyb3VBWHJmZFRYdURyT2tBSEY4cFR4cHlxY3FXU0kvNXhMeVpDZi91N1luUEJLS2c4QTAxUgorOTgzaWpDYnI3RjhqSlVITHduUE4rZjF4cElobWkvZ0xvZFNCT2ptUzg1TEp6RHBzdWF6MzBXU2hGblNwbklnSgorMk1JdmpmeG9nQW8vazB5SW95T3NGbEIzdjlrWnhLQVNQMVNMYUs1VlA1SHdBT1lkSk55STlkdjl6dWJNbyswdAoranNqanJ1REFVRnZEamhjM0tFck9ueVgyaUthQTIzNm1tOWUzWDMrNnRhOE9iZksyelhmVDlLbGlTMjZtVVh6QgorbU9hbExFSHFOTzN2NElzRzAzS2pRNS9HMW1KR1R0L3FaODQvL2JIOWtxVnNUZldJMTMyQ212NEE2bFM2aThyQgorTzZoRmh6djZVTXY3QzYvWTY3RHBlVUFIREFFanNPTGZMZmt1ZWRpVjkvZzB5MHVuaHcrcE1UM2E0cUFaV004bworK0pUNmhDSDltVTRHakptNWFzTTNHcm80eklsUmZLbDNidTUzWDhzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOVEMgTkFNRUlEIEQ2NTlCQ0YwQUZGRjIyODRBRThBQzI3NEM2RDkxMjE1QUVEMkI2MkYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFqaXR3ZDF2c2tJb1d3QUFBQUFDT0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt4TlZvWERUSTFNRE15TVRJd01qa3hOVm93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVNVVReTFPUVUxRlNVUXRSRFkxT1VKRFJqQkJSa1pHTWpJNE5FRkZPRUZETWpjMFF6WkVPVEV5TVRWQlJVUXkKK1FqWXlSakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFOQ29EaG8rakNvZnRnNm4KK1RtZ0lMVjJWbXQzTHByTjYxQTkxMENqOUlEU201N0x6OXdzSno3WndOTnpKdzUyMTRWbTVRb2dOU1Erd0xrQjAKKzFYMjJrTy9wR2N3dk5XMEg0SUZBN3Bid1R3ZnZWMG53ellYRVVTUmh1dFdMS084ZUxkdmZkTTNDOFF6MkpLOGcKKzVvL0pNSEx4emhKakFjQjdTeENKQ0hZcllvUllJNEwybDA4TUZna3lKY2ZrN3dEeVVnTGgwYkRpMEQ3eUpid0EKK2l2aFRsbkRjcitPSmdtTk9xWDRDWTJ6SnhGMVJNbGk5ellhSUNVbks0SVY5U09DZ29kSEVoY2FTNlNNSWdXZngKK2Y5aWtzMlNIU3pTZDZWR250c1JDMmpUT2tOYkZTQ1BwYlBNR3ZEQ1hOZFBMUytYbzAwWEhZSkgwNUJudGE0dWcKK01IVFhBbm5ORDlRdFJ5WVBkRnBuQ2p0djk2VitlRFAzSVN4RWJDSVM3ME15NUNsWTZJaE9XL1pjRDh0Vnl5eDcKK2crZ3JyZFdEejgwTWgxU0NHelZVUEJlU1dKbnRzT2h0Zk5ZRzBCVTk4YXBPYmRWSWR1d1NZYzRlTWk2ZFR2R3YKK3hIdjBBZVFDNFBPQ1RZQ09wQ0N5empVSkhRZGE1MTBOSk1DY2w1d3VTYzBib1l4ZmRuTVZ5YTJMeW83SEJRVmMKK29LdXExbEpOWGMzUzZ3bWdxN2g1UEZvOWNkNFlPRkdCZlNBNEZKc0RNb0VpTkF0VkhpVzVXcWg4OS9HNVk2RW8KK042eTZVU3kwY1JiOVE0MWp1M3FQVDFBMzd4U0Jxb2VuVG91T21NOFUwRUFyNTlEOFcvTHltYXBzRTVDV2dqeXQKKzNaZkw3WUVML1F5bFZwcXRkc3hmSXZEbW83UzlBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUmtIWHVsME9kL2Nsb0oKK0g1ODc3ZjRrWlIzQmVEQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUE1MmE0RElmRzVwME10OFZDU0hsY21sMDFweDdQSHhLbFVta1VHVEJ2c2wKK29lR1lQN255VzdLUTJYWkJwcDJOMFpVZ1dSSS9HUGFyeXJiYVZGN3NFYm5mTU1BWGhxdFFtNnBjZkFOaysvV0kKK09yMHUxaG1XSGIrOW9Bc0dNT1JuNU9zem9UZzZqcXk3SlZPUUFzcnFaNlkzSzMzays4R1VqTUVwaTlVa1NYMDMKK1A0dVlLcnQ5cEpsSFE3NEpnK3E2S1RkbnNTRzVseGs4ZWdSaEVKZ1FjK2xicFlnRGNvY2lyQ0NNZGNNMmdRUTQKKzdzelhFUHcxdERwaDdUZ3FqdTN3TkpMbitYWlZIN09KcnNkeFpiWEhWdmxHSjR3WUFFTmVCc1Nqb2IxaDMwSEUKK1VOWm95QW1iWENTMzJpazFYaysxRnVxTTBjODVlZEN5TWhxZDRGRHR4RGJDYjR5b1pFNlR2QUNIZVl1UDJWWEoKK0RoMS9kYzMwa3NudEhGRHhCb1NTYlJSZi96NUJ2eVI3MHh0NE5wbC9uU1NiTjYzY2E4VHhzdEVxOE1UcGxjeW8KKzhkZURsVnFnNytzcFkva2hFQ1hNMjJ2dVR6a0NEa1RrU0JQQXJXUWcyWUhheWg1dmx5UitGVFlDTE9DRk4zdmIKK3pPdDVjR3M5RUNRSi95c2xtUURGeW9qN1I0M3ozQitmN1RzZ2t4WXh1UU51QkFBUXJSZVhrVEx6QlNMR2FkUGoKK2FYS0VDbU9LeXlzZHdpc1NpOTB1VmlmSU9XdURNaGRTUG9qVkJVVENNTmFwZHRPV3RXVCtmeElteUpHQzBxQkgKK3k0VkkyQnNqYVZLRndjUElkN0pkSFJuUDZHZzNybno1eW5TSTViY29YTXhuY0VVYnN4b25yWDF1ajJUb0NmYy8KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIE5hbWVJZCA5MUVCQkI3QzUxRkE3Rjc4QUEzRDQ0RDM0MjVCMUQ1RDIzOTc1Q0FGCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFVMUU1UUx5NjZ3Z3dnQUFBQUFCVFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURjeE1ESXdNVEV5TTFvWERUSTVNVEl6TVRJd01URXlNMW93UWpGQU1ENEdBMVVFQXhNM1JWVlQKK0xVNVVReTFPUVUxRlNVUXRPVEZGUWtKQ04wTTFNVVpCTjBZM09FRkJNMFEwTkVRek5ESTFRakZFTlVReU16azMKK05VTkJSakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLVWVMOWpSa2c2ZGszVGEKK0lBQk5XWjBSbWV2VFFlcnJ6QmFOKzNlbTkyQSt0QTdBYS91YkR0NGdGbnh4cDNUY0VCa21Jc0lSNUY5UEVIK1oKK2w2dFNnNUNQYjVQaTJOMnVmanJHTWVVVEZLZmF1c0VYcWkrR21UYWRQTHpqdkRpMGw1NnM4VE1KUkc0KzB0bVYKKzBiSzlURUJIaXVDZGY0YkQzYkhkTjBtY0VsYTB2dlo5bUNXcnhsQ1ZOeUpwSGs1L01lWEc4NDhWcUhxR2JVNW4KK0FTV0JqVUpITFZPbzNteXZDaDdobTdFVVVOU05mZEVURUlITE85b04vMUU1elBJL0RZUXQxbFVHZTJxd2dTMG8KK3lLUkVLMXZqc1d6YUVsZUl3cnorcDE1bEtoR3NlMGtWclVLRGQwMFozVDExQ2NLSlNwSTg4Mkcrb2djVWhaTlcKKzZLMFhNNGNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJUUxGMy9zOEh1VndReDJKVlpFSk1wRk1DaXdNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUxmSGkKK2xNT1NoaW01dWkreFh2NkFFNmRGUUtQWVhIaXFUSTBObmYybTBxSEpWVGMxNHJaY1JtTmxDZlVENW5tVWRFa0kKK1IyUlZSdG5YMk9tMmhYVGdzeVNreU03dVlmVWNIcHQ4OUV2T29xWjNWbSttbFl4T2FFd0pWSFFmSkplM29Oci8KK0t2cVdUTUR5a2ZHeVlsVE9rSFJGdHoybUVvS2xCczhxdEZ0Y1BueDBDb1g0b3dNVjdTVTdEdmxUdFY3Q01jaTMKKzQzUUlQdytpWUo0UTFYZm9acFhjM1c0eHdlQzlRMWVLcmovaTYybjUzVWY0dVI0Sks1WDBmd3h5NE9lV0tOTFYKK1hvOE14bzNrQXFEakRCVm1PNWFmOUVJWGJsK2xJaVVSTkI2SE5rTCsrTlBaZmc1aWVnN3NmdjdtVmlreEtSRFkKK3BKRE5ZNThhSy9OL2MzRkpCN3YveDFoNVNCblVKTS9IMkZRRHl0MlFDc1oyTUozUjE1azMwdDdJbDdFcFBCQWwKK0N4alZJZUNtVlErNGFNYm9VcUpIaS94YmhPTHF5M2lFcm5teGFadlVoalJUSnpvSFJiR1BLQlhGK2NpTlhWM20KK0FFUEtQMGpyaUg3UXRMTE42SVcxYXVRZlc5WjFHUXpIS21McUNWcVE0NlFsM0lPSHpuY1ViZHhvMkptL1FYa3kKK0JIYmUxN1JMcGpMQ0FKZkZCSTBKM255cHdnQnZOeEhaMWtzN00zVFlwSkd6Mi8rN0Qrc0RwQUdIdjhGMkZ5QjIKK21NZzNIc0ROSHFTcTBETlRTbllWWU9PTWxJUjlBRlN2RURkcnc5MHF4anY1a1BpWm9ZYlVGbGwweEtUdFB2blUKK2tMdWl2S3ZDcjNXMEZzWDFuT2dVelFYMUN1NE1XY3lLNzVOY2x4MD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTlRDIE5hbWVJZCA5MUVCQkI3QzUxRkE3Rjc4QUEzRDQ0RDM0MjVCMUQ1RDIzOTc1Q0FGIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBalgvdzkvWk1RbnpxUUFBQUFBQ05UQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreE1sb1hEVEkxTURNeU1USXdNamt4TWxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVTVVUXkxT1FVMUZTVVF0T1RGRlFrSkNOME0xTVVaQk4wWTNPRUZCTTBRME5FUXpOREkxUWpGRU5VUXlNemszCitOVU5CUmpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFZUNU5ERjQ2aDNRUnFECitFY2VNNjBmOGZubTFxcGVBckNLMGpFWXZCR2JNMkNPb0hwb1I2YUhyOWZ6aDZHbDZRa0NwQzUrdlRyV3VlcHZmCitMejAydkZSdmphc243bEFoNE53bGFybDYvR2lyYWFKZGJ6a3ZaTXMyZE5rWjVZZUFPbTlTTDRmNTkxMjZXVXNJCis1NzI3NVFZRFVPNVpoQ2ZZWTkxYm5wVEo5STN0TDVRcmZHdkZSWGZLdi9QKzJVQ1oybW8vRlBXK0dlZCszSXZsCitEMnk0RWxMS3lKS2dzdmZWVXFHaW5HSGhIcTJySjdhZWU2Nmx1YWV1NTEyTGczTVF4Z1l2Qk1PcXlST2d1Y2RkCitJbm9tL2F6UDBWcCtweCtTT2haWFRod0xQRFVSSGRpL1dxNFNOMk5iQmdSUHZ1elcrS3dQSTRmS2R5am9PeGJSCitwWXlIMnFCRjBGUFFMSnY0Qm0zTkFyVEgwcXdYNG9LdkMwYlpzQkZCOUwvVWhEV3AvZ0s4ZkJFams1NGdPZ215CitPMnUxdFdkNGZ4aHB2c1F6ZVpTQWJWUXg0MHFaNWtZS1hJZExjZ0s2SWRBVVErdURzMldweEFKaGc0UWZGVnVECitsVy9makFXMnBiTFB6Mmh5UDNubC9oMWIvSE03WCswcS9DSjBhT0p6aFZ5T0ZkTlR1Tk5wU3FxVkdmN0l0UkxMCitaMzJXRUpmVHRCTW9HZlUzbm9Zd09jQyt0RVFwMDF3NFAwUzZUb0NnUmZJa3dpZzRObk43T1dIS2pSTFJPb01BCitwcDQ4aS9xSXN0REVmaCtzVGhTK3hkNWV2bGhZZmhqQjBBN1VjY1lqRTk0S3F3WC9aVER1bWxSSFZ5VitRK0tUCitGREJVemdaYmo0WVFkRnVheUo5QVFMbWJGNENOQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJsNjBybGxWTzBQazh5CitIcEIyTnFwc2U1K3N6VEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFEbG1ORGVRcDk0TmFSMHdISlUwQ084NlpSRVN4YTFNT2xYemQ2RDVBYTVOCitzQ2hwSXdYUFhVM1IrQkN2OUNEdXhFU2NsK29VelJmREpNb3p2L3VUcUNKb0F4aUNteW5PRTZhVEljUlp6bmlJCitYbUFETVpLS2x4c2NkMFJaWEo2WS9SL3R6ajZxTnovSkxBUmJucllybThmeVJKYXNXelVmZkdmYWR2Z09MeWtYCit1enZranljVkxGSkFabDZkTFBBdU56MVZFaUVmc0p5bjEwQTJ5aDlmTk9aRTZtUVlEcGdpK2pFTGl6eHZhRkp2CitLZmF5cHN0Z0wvcDY2ZnJUbjU4Ry9hazQzQWJRa3VNUzkrSVZCYjNpUktIYkxGc0lVNUhMMWlVTnp6Y05FYTZwCitFQ0pNMDRwb08ydXJDdHpZOFNmcFg0czZSU3JSZmxIZXRZMVU4Z3ZhbTZpZ2xWajhvaFN0YjdVMElDci9OcDBsCityRlVJOHdmNVlBZjNoV3p3RlI0Z2Ntc21saGxxSDNTNGV6c090VStLUyt3eGJlNUxlTCs4SHcyVDJmcXpXSTJNCitGVm4ya0toMGpUNVdKS0NnZGtnZzNwTlY3cWJmblhLWXhMT3hVRWJiVjAzM0sxN2MwLzdVRHBCVjhDZG9jRXJSCitsYXhpMDBUaUpmWk5YMld6N0p5V1hUOWJZRHptTzUyVWtoTlYyaXV4NkZ6RUUrMklQemFDTHRMUUpCYXRLNjgxCitvdWVUbnhrRjVoY0dNVVI2RmdQc2g4eHludDZyUktmdHVOUXcreGZ3MVNQT2xQUFYyb1lYVktOU2NkL29WV2V6CitDYS9SRDBsT2VMRFg2WC93WGhZb2krMUZZU2lxbVdpdlJkR1JEUnZpbytwTXRzU1V6ckNRZDBDZ2hsSEVSMkRFCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIE50eiBrZXlpZCAwMjJjYmVlZDVkNzcwNjBmMjgzM2U5ZDUzNzZiYThiYzMwOGNkOWJhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXNpaFd5M2J0ZDlQdVFBQUFBQUN5REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV5TWpJd016SXhNMW9YRFRJMU1EVXlNakl3TXpJeE0xb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFU1VVdpMUxSVmxKUkMwd01qSkRRa1ZGUkRWRU56Y3dOakJHTWpnek0wVTVSRFV6TnpaQ1FUaENRek13T0VORQorT1VKQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeXQ5RkcwWFl2UE1LZFRGMQorMEpUcUVrd0ZXeWExK1ZaRWZxR3dkMkF1L2svQ1dya2I5d1N0WEMxUFJCREhVdy8weHlzQ1BhcGw5UW1pVk9BVQorUmZNaHlrbkMvL1c4OElRemNZL2R4eW01NU8yUVAvSERjZ2tlR0d4U2JoRmhUUHhiVDdFNGdBRElyelJZSE5VVgorb0xEWWVlZnlMR2tDaVJZSitkazlCVzdHeWdtbTgxOHppSmV2QjFwaWRjSmc4cUFXKzRPUng1K1ZaQjhmWTJBaworc1NmcngvVXREQldjQzRDS2M0U3JlZ1k0UlZCWlFZMFVZUEREN1d1d3BjbGRyK3JwZmZFNjE2SUhFR2NDZFRtaworS05nUG9GQ0dyL3VhOVluZGlNMi9tMTBXc29BbnJZZXAwZm5pTjZoSE1HWlI4a1pTMSs0QWtwaEZVTGswNGRmZAord2J0aktFU1psY1FmSHIzVGYxL1ZWbGpvWWhxeTM2eUthOXlvclIrVlhVa1k3WVVubmJGOFRCaEhHRW1uOEFzRAorSDVHNkRmUll5VjlaQnVrenArQW1XZnN2WlNqZEFneUd6Q0xEdk40ZHJCcjhtVzc4WGJnZXg3SVBJZ2ZGN0FtcgorU3kydHN5U2dTYURPeGlsRHVCeWhvd0xlN0g4RFRrdng4TVBBOXZ0V21RdDIxZmtpSWI0cGxhc05Zemh4YWlDVworamYzZit4MVhxZnBUUDAxOWJFN1UvUmVsM05mNFVCem43dkJsRXRUcFNzY2tWWXpFVjNaa2tvNFQrbGVFRElUegorUnNGeGsxTjRjWWJleVFvc284SkhxL0JkWFh6WHc0SUZmVXFuS2UxV2FkUnVKVG1FWStTME5uajBTeFhleXVvbQordmoyZ0QyTVJaTGVTeVpMcnlsTEJwZzhxK2k4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkh3MHUvckIwR0hKaXo0RworTlNEZitGRXBaN0F0TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFXbXpqUXF4b25IZ2xOYm83WmxOeXFFaXU2UzAxOG9PeEZza256cTdIeis2SworcU4ySndXczdQTzlVWFVCZm0xZUJBMTh4RitkZDRzczRiL0JzS0dmU3JoRXROZHg3a3FrL1VIVzI2Q0NhYlpMRQorNjFOWXAwT1pXT0I5MVRJbGF3MmlvZDY1dTlJcDh1Z1duUktpOHFQbytBODd4d0RRSnpyVTdDQnF1VGhwR2JIaAorN2Z5Vjl2ejZBeEdvMUYycjkyeVBKNHIzb25GM1MraGxiUUhGQTdVVXFTMHR6di9HaWwwM3YrRG5DNy8zNFczbworZ1BsSHpOMGJNK2p5M2UrMlF6YUJBQ3VJdnFKV1dLajJBRUhNM2FnclB6YUJWb2dTSHlwU2JsUDM2TWF5RGo5cQorNWZIak1yZGdLKzRxbXhhdUtWS0szN0gyTEpFUjROVmtkOGgwREFDVWFBTTB2VXdOU0JjeGtES1AxeTRMaWVKNQordjYydHJsMVhYNjdHWkxBS1ZXSEFuVXlOaWdlcjhpRll5LzU4czk0eUs0QytHNGIzSFhkWVJ3ZElTaXhLUEZyRworSGdYWlJvV0diVVBIYUZQZmZXcjhHenR0Y0RWbk1tQWtGOStZSkdqSmZBeURJc0JhTkZzNEtwcDV1MjJKbVpYaAordlRxU0RtRzR0TmxDUzVEdVZpRk1GWmUrVkFCTlpMVGVqeTBva1FSNlluZkljYkNScTFzUS9RYko4Vnh6bXJ3VworenZ5WlpFTlUxVGRYaFBuK0pkTksvV21hVDB6MTlLaGkxc0V2L3huTnl5U0p5eEk3TnJrTTF2Ti9oYnR0NGNwYQorVno5Z3IvZ016SFFXZkNYNGlVMWg1eFd1TlZwQlJVK3FBVlpKVlR5WDJ5N055QnR6VjhWZzFmZURPaGpORmRVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBOdHoga2V5aWQgMDNkMWNkZTQzOGVhM2RiMzRkOTQzMTgxYzFjZDUxN2Q2ODgwNjJlZgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFzZDA4dUpISGxjZVlnQUFBQUFDeHpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVeU1qSXdNekl4TTFvWERUSTFNRFV5TWpJd016SXhNMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVXaTFMUlZsSlJDMHdNMFF4UTBSRk5ETTRSVUV6UkVJek5FUTVORE14T0RGRE1VTkVOVEUzUkRZNE9EQTIKK01rVkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW14WVpQVnQrazQ2TjUrcWkKK0xlQ0FoU3lJd1ZpMWs3QVU5dmtHL3lnMGhBNWttUjB3SXpxVE1SeWZsMTRFK2FUb2dDWGZ3eXd2M1VvOUZTZFcKK1N2Zkw5Q21NRHJaSTRKdG1oaDIweVpCenBWeTQ1bERJVktwMFdYUDVNbFAyRjRlcnJQTHA5NzAwK3ptaS8rdEUKK0EyRTExTlgrbFF0MGtXejRYTWV6RnJHZlhnVmxEd3FSRzdRcjZ2QnhrYXBmRWtJNmhsTzZpSDlzbmt2Tms1cFIKKzVYclloeW9EbkF1aE5sWUJka3ptQThnSW9mOFlpSWhqU0RUWUlOc2hMK2dPN0F2cDE1T1FHazh0OWJJSWVPOTkKK3dXWE13RHNPWFd1Q0hnVCtrZVp6UDV1a3F2U2pBckdEQU8xU1ZYdDFHU0w1SHRYS0VUcWJaMFprcVVMKzg4Um0KK1ZJL0IrRTJWdThqaVdHTjdlTy9iMHVOMUlvNVo5QzVPU1Y0Yi9zbDdublo4bXpnc2JhdWhDMUdZYTUvdmxOTngKK2xzME5xbHU2UW9OTGVucHgrMGZMeGplczVkVkhndmpUSVIrTFpzK09zWHJ3dFdSaC92UzJGeEQ3Wk5sS1NCSFIKK2FuVjRQUWZ3dURHLzZMYkFBOGFieGdXWDJYbnpUMktIc3dFYUpiU1A3emY1T2V0ODMvZ1I3Y2Nwc1FLcFBoakUKKzkvL2lwdUNTTk5hNmRKN3hUMnNOVnlVZnVzcUc0QTJ3a3o2b09PVUI2bjJERVFBbG9hUHZNSVVwNVZCakdzV3UKK05NS3VjRHJnY1JkVHNnYlQzeUJsSGNYcGtQNVc4VG5heCtkcSsrMCswemZmL2pESW9FdWJnTktUMlp0Y2svOEcKK1FERGgrb0VKQjJMUG9EanRUNkZtdTdtWDVLY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLWHZ4RTJFUW9rMmlpblcKK2FFWkU2dHZiQU1UUU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBamVja3dzWUFDTnNPK3JTSkk3TkZmVk5MZVNUR3dhV0VWS09uMm1UclQxaGMKK25Tc2lIUGtUa01DUkIrWFVGVFhSRFJGRGwzRXRmZ2xDZDdjN3l4T2FiQnNYbUU0VzVKMWZYeTlkYVV1UFkyRysKK0l1anNIVXdLUWtpL1ZvZ0FiMjdoc1FWWjE3aFR4YWVhWkpEQlA1TVpiSmd6TEd5ZURrWUhIeFNkTkRZeFZ2QVMKK040VVp0ZHFMeEFvNG5uc3pyUENoN2p6a2JUTkIrRWFnck83eFNsbFdHL2d1TlpFcWxxWmowMHlwYkhVL0RUUGwKK0Mzdlc5blBCclZKdlFRT2tTNnhXS3RuVHZ1MjNWc2J5WnNqL21XZjNERjdPTUZXd2Yzd1V5ZS9tUXNpTGcvWHkKK2RiYU5ybHl0WHpwM0djMkZsd0VHaXZKQ1BEcXFvOE02enFXZDdCdUxScE5PVUV0RG1kTmF3SGNCQ2pTYmEveXYKKytBWHdxSVhBV2VaWUtSRHM1SysrbmxyMW85b2hoRFV2eEt0VWw4Nm1sNG1ORUhRdkk0QWtQUWdkYXRObWdMbzYKK3hDRzhZRWtMUEF1K3k4cEVsTEsvelVNZElJaVg2bGVENU80RjgxbGgxSzJoOGh3OGpnRVlsMXAwbVgybG9FTEoKK01nWUh5c0ZlK0RucnJ5K3ZMTTZ2Qy81ejVqSFAwa3BFa1VoWWxibzJObFZwWVNwY0lqakRLcVlZdGtPYUF2VnEKKzFxMGlJNlVEM25TcXlydUVXU3FOMlNqeTlCQ0lxMVFCS2NUS2tGVE9Oakx5STZsZEJuNUI2ckNKQldrMXJiM0IKK1JDT0JLbzhPU2EvSzRlOXhSakpUazNkZVNKNGtwc1BDaDVGV3dHUlhMeXd4ZFg1bzNqditIZHZ5RFRDZWdCRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgTnR6IGtleWlkIGViYjJmNGUzMTJlNjUyOWM0ZWQwY2RiNjgyMjg1ODBhZTUyMDNkNDUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBc2wydWNuNFpHelRCUUFBQUFBQ3lUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE5Gb1hEVEkxTURVeU1qSXdNekl4TkZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVTVVV2kxTFJWbEpSQzFGUWtJeVJqUkZNekV5UlRZMU1qbERORVZFTUVORVFqWTRNakk0TlRnd1FVVTFNakF6CitSRFExTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFydlhkZlhBN1lCS2VZaWRjCit6THZaS0JIa1hpdmY0TnoyMXU4eTUxT0ZkQUIzR1Q1RCtVWGVHRE5Lczl2cERXY2VaM1kwZWtzRU9ubVZ6V2NXCitwbnQzdXlnMEtpL3JpOVFZb3FsV3dGRXVJS0krU09vd09MNGFFMzJTcDlON0YwTXQzeFlGcW9zSE1nc1JnWVh5CitidVloRlhCdXRPNmt1UFFuN0NLbzFZVWE2cVhtZnFROXNPU0F3UUJ3amZXSXFOVjVRS0F3bFNLZzV1TktxdFVLCituelZlUklsRlhuQU1vaGxvUGJ3ODB1N1pWMzRVdEVudEIzUFBGcEpkcG44eE1PWTRRUTBybFB2ajNLTC9ST01XCitFODFZdHdEQUFubkR2elFwWi9XMGxQcGtiRXJHbXpCSHRUNFd4WXdQRW1yUjh4ZGxSOWpQdi81NGg5SlNtMUU2CitaQnZzN1BQQjRocjVyS2JOak9QZktIQVV4R1Bsd2VBUHc1eFdFdnpWYnVuMU5TOWwwMFBKd1JKRnh1bk02bkVPCitycjF1clNPOWFPRHQvVXJZdlc0Rmh0L3N5R05MYXg2RFYxWEpiUjdYZUFTc2VNbmJTUE4rT3dvMEpJWnhHcnZmCisvc256K1hYemdrcWlyTGdDOHRJMTB2Mm5PUGhLcXdmVUJISWYvTVlkdWw5Ly9MVEdXQTVudGhaQXVBSEN6Tk1HCis1dzlIZ0pqNmwyL1RxTlZMLzBmanlqZitvcHVyckF4TmYzN3h4MEZDM3QxcGJxZGF2ZnlPNHlSdlZEYTN5bTBhCitYVmhYbTRmMTFOUmJZUTE3bmREUGdiRm9qQXF0c21oRURvVkt1WUhSem9uNytZZHRTaTBsR21uQkR6TTk2QVVhCitQZXhOcUp2MFVYeTNqZXV2RHJ5Y1VwSGNrZk1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS25saWxmKzMxK3lYejZqCit5ZVNCcnhobkxHdFhNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW15cVM2cWF2VjVHdmc3TWswOXFnTVE1K2U2bjlROTh6VGt5UXZwNzFFbkpYCit6Wjg0ek91ZFgvcUZpSG85cVArZnNCNDJmZTJlcVlzUnBIZGtMTGRUaUJTa0VOZ2hpeUY2cGpQeStmNStZWFRxCit6QXNFN3JrR05oTkNVaXoyRm8vR2RLUXcySEIzK2ZjOW9ObjE5YWRHbGRMNkpyckVHVWlEOWM2MnBNV1Y0Uzd1CitBbmFDQjI3bmZjd0lhMEFCQmFpYUhxejhtQ2dSNDNieDlvaUhOcmRpNFRFZFgwZW5FUCtuUlYraHpURWpLTnh5CitxZEc2Njc3RDVaUnQvLzNiVzN3OVhjNTcxZnlDU2tBQUhaNmdtcWxmZ2lJdU55ZWVMVXB5R0MyRis5QVJBSDk5CitrQk5CRmlNUW9GeXphTjhUcXFBN3EwYThEWVRKRlpBMERsVGxlK2JSQzhGbEV0Qk92UktnRFB3dUwzQkw3YVdxCiswcElhcUcxODVVcDFLREpyTllOdk53RE1zWEFEYVNTOWM4V01Eejc5a2RyeFIwcVoveG9tZ1djcVFuTVdON1g2CitiZm5RNWdrVUFGdUhXZlZTM3lheUFOQTM2aDBvTWR0ZUZSek9SZ1ppQVIwRHhTeWJ4dGFROXJZSXMvb1VWZ0dECitlMisxcGRlSFIybElLSmlDdGlDNG9zdk53SlhXUTVJaXRyOFB4elE2L1BBcnR2bGpKUzhjMUFYaGVsbzVmWUZzCitmWDdZRzJuSG9aREZ5NWg2M21ZR0ljZUp2WGpCYVZndmpFdWVReGdOTnNSaWpUZkg1LzR0R1l5dlJtd21od3VJCitIdUNocHRmUXZvbzNyblI3RG1GcFBKSFpSYTZNWW1NZmpsSjJNb09KSWIrcEFGZnY0RGhmMFdpSjExS2RBRkE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIFFDT00gS2V5SWQgNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQxRDUxMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBR2FKalovZU9JNm56Z0FBQUFBQVpqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1EWXhOakl3TlRneE1Wb1hEVEk1TVRJek1USXdOVGd4TVZvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVkZEVDAwdFMyVjVTV1F0TnpreE1EQkRNa1ZCTXpWRE5FWkRNVFJDUkVVeE5UbENOVFl6TWpaR1FqY3pNVVF4CitSRFV4TWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVBhWkpkT3J3UUNmSjZ1CitnVXAraUhOSUdscHhZdUpuTkJoMGZjSmFqZ3lZTlRWcEh0MEM1WnN3MXNqUXFMK3NBWlhMU05FczB2cDJYNk9nCisrZG9CaVZVVkJkWFJoMmhyYlNzSTNOUnFXUDZxY2R4ZzhYSlIrcnVzLzlKVno2Snp1SUVGalJUTklxN0pKbjhMCisrL0p3Zk5QRWpGMU5ZTG00dVM2SDFtLzVBNEt0d0cyRFEyb3VQNFFmNGIwUnVxS1BkUUhzMWpoWEJ0VVRBVVlSCitUVGFaSENweW4wY0lRVDRLSElEYzN0UDR4TGtGdXd5d2RoSUE3bGczV0ZtNWgrVDg4K0x6SDhKODJtdEdQRVdICitSTE9ZUGNiOGZRY1pKVmNYK0MzV0djUkJNR1ZKMGt6NjNrSTYwbWptdmtaWjVaNXJDVDgwZzdpZzJ4d2lWTjdnCis4RjhMTE5rQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR092VUZaQlNKK1ovN1FHdXpUWFZhVFh6TnRCTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFkcGlKCitiTXNBQUxJSWJHNjQ0QTBJenF3aTBQbFJjT3RsQ0hwWDcwTkxmVktxblpIVXpGNndUcjVKbUR1TjFsalVPb0RkCis1MDNNLzNtZDlKWHc5OG5CUldHK0JKU1ZLMkpWUUpIRndDTGg0czcwd1BQV3NSSmcrQUVqWG5IeHd3L0tLa2NzCitBUE1jQ1RWaFZSTU5Yd0g3WVFxREpzU0N0dW0yT2g0VVZSMHVZV04wSksydkt4UFVUK3pDWDRYdHMxUForRmhwCis1K0lPZFNPTjA4RkFibCtjZ3FIYkxkTndvSGcwMWRxU3BzU2wySEVsdzFOdlVFNkNyTFFhQ3N3Z3UzVC9ZZGs0Cis5TGczQVpSYU1nNjlvbDJnNlF1YXdUM2VaVFVLYzhUNkZzRFZ0dXdPVzg0TVB5cUhEcEJ4MzgzSnhWcFovT3NtCitxb2lpWHdFc3ZYcjRBVmduaitRSjZoTlRCMW02ZE1JZldjRE9kb29wWlhWNWNId3NtZ1AvbHBRQ0F3K0JNbjZtCisrZlA0Y2VBbE5LUC90Vkx5bXFwMmNMTDloVi9FaFpQam5wL1E3VDNwOU4vdEpSTjUrY05wTjlWK2hmNDR2MyswCitMVUt0R0xuQ0hzNThQTDFkWjd1QVQ1WFQzdFhlNVZZeThsR3BnR2VHbnh3dktkbUNDa1BBclpXWWtyOEZhSE1JCityVS8zVzh2RkMxRWp4cW52MUQyL2tKNHc1bTVMZU1NdHVsZzl6TjhyZWdyNTV5RWVvclFvVVRObzhRQjdrRWNRCitzYlE5eTl6c2RaWVVCS0s1ZjNoUGNHU0N6UzFydVJqUjRpZ3YyUU0wQW12dEVuNTJVZ24vVXZhMUpFbU0zbWJlCitIK1IvemptcXZLT3o1Mytlek9SZWovWG1HNmRuNzIrVVhrMEdMTms9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIFNUTSBLRVlJRCAwOENCQjA1Q0E0NTEwQjJBNzMyOTkxODRFRERDOUNDRTQyOTExMjExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXQwcXRyU3VRMzZjcWdBQUFBQUMzVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRFl4T0RFNU1UWXlPVm9YRFRJMU1EWXhPREU1TVRZeU9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFZOVVRTMUxSVmxKUkMwd09FTkNRakExUTBFME5URXdRakpCTnpNeU9Ua3hPRFJGUkVSRE9VTkRSVFF5T1RFeAorTWpFeE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMEVLMHVSbTlrcGxTcmowNQorQWdob3hZWnJoRjZ6cTRTaDdZa1J5RndnbDg4YmtpbVN3U0JFci90WkFSU2RwNm16T3JYS0VNNzFPSTlsd0NOYgorYmlRdmdJRlp5NDlsNkh4bWNkajE5VmZsbElWeW9jcHFLN3E4N1ZTeUdmVXVCYlhxdXQrSnVDY0NDbkpCQk9qbQorVVZyQmpKbmk5UDVtU1FPeml3WVZlVnZDVUdSVklGZDV4QzJudU9EV2FnMHJKcnIvRG4xdVM2Y0FwS2QrdXRpSgorWDNKMTk2QXNEcmh6czduK3RqVk94ZGozS2s4L2ZtajBrMmJYUDBiZ3lYa2hQc3JCUjZMRSsvcUx0OVd3TWorRQoraDJsTTlLVTQ5ZS9lQkVFV0NnY3BNSUMreHd5eWYzWWluNFdnNHlHbUdOZkwwem9HSzRvZ1lzTVFNYmVKWVlqbQorM2owZ1A1WjB6c2M4cmJ3ZVFvT1ZFamFCNVozeERHQllCWTlRT1QyYlN2cGpsRTRFNFBOUUxJWURsNFBIZmFiNworanJGSWdTZ1pua2lIV2ZYbENVSVNaOXcvZUpLRzdXc1VUVnJ0RHRWelY1YytOSi9tcGtpT2twYW1sKzYxNGcxTAorRnBVa2I3QlhsN1U3WmRUb2x5VXI4L1VmSzg2UFNRd2xBUjlXNlFLYWt4VnI3NCtLaTBNOGgwT3dRQ1JTemZRcQorV3lTSE1VaW56cVA1ZnZaNzlyNGZ2cmRDTnJUdjVtMTZNeFhSU252N2VjU21ubU9vSElzUXZhaE5lNGhoUjQySQorY3BKOEVHUC9IQ3p4eTFhdGNKMndTdGNiT29WdmxaSEk5dndUcUY5Wm44ZzROL2R2R291bUVxM3N1TDFoZmY5MworQ3JvblJUL2xvU0JBZ2M5MjJFQlFtc2sraTVzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9HMTlGd2pyOVd2SXFLNAorM2dLemtJQU1XL2daTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFPeUxZdUMzeG1TNVRwVnVibVlWQWd2L3BZZ3UvbDlEMncwYi9CNnplQWswcAorNG16dDg1VDV1QUhqbjFVMzlHV2dZR2lSQkFxQk13V3N3OFZrYk5BV2p1SFJtY09JaWxCemFXQmVWaGxoakk0VworTUdCVTBndGdiN0VBMWxuWldlSjRTaGNnVk1MM1JsSkhTQm8rYk1RYzJ6WDlSZzUxY3JYOGdsdVJmd3plaCtwMworVm1QMTFhUnpMSGEraHpvbUNmMGdndkZOOHluWlVZR203U01LbkxIZzByMUx0eWE1L2hIT2hrS0ZwSFpUVWJWUgorZnlseFB5WVllN21ZN3ltMVZGa2xOYmdPVTBYK2RNOHc5eWFIeVNQWm5IWHNZdldsMXUrdkxBWTFTMjdDZ2FENworUmhETEV0SUEvSlR2bVZ3TkpqYjE4R29PbHBKckwzVFVmR1VDSy9Sd0JncUJXanFIcVo1Y0g2ck5rUDEyM3VabAorRnhHTGRXZENHOTZ2QU81cHN1ZkV4bFluRDFHQ0VJdzF3YnFIVGlSZ0wvN0hGMFp0eldaRytyZ3FvNkNOdUxJagorajIwZ204QzJQK3M1YWpuWGY5dFFPZGMwdDM2YnBZOG5QMXFFaEpWTFBNRmY5aUN2SkF5Y0RWUnVqenB5cTgzTQorbDNTcVJlVXJMQ2J3NHFHejZSSXYzTEdqb3FMNk9QNm1mekhzdmtpa2kyYVhwMCt0SXlHQU56anU3RXdyK043RgorNm14MEVJNm4yRFI2dTRXWjNtTVFPUzFLK0JrU0JBZG1VUGE5dVR6V3Y0M1BhR3lKRlJzODMyVTZZYmpraUxITgorUFN3cUVqUHMyQk5GYnBtY1VNenF6NHUvaE93VFZrQ01tV2YyS2ZRYkg5UTR5emViMjhuN1ZGMExzcmlYRWYwPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBTVE0gS0VZSUQgMUFEQjk5NEFCNThCRTU3QTBDQzlCOTAwRTc4NTFFMUE0M0MwODY2MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFRakNtTDdFRVdLSHhBQUFBQUFCQ0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalV6TjFvWERUSTVNVEl6TVRFNE1qVXpOMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xWTlVUUzFMUlZsSlJDMHhRVVJDT1RrMFFVSTFPRUpGTlRkQk1FTkRPVUk1TURCRk56ZzFNVVV4UVRRelF6QTQKK05qWXdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW1XUGZaWkVnUEpReUVRV2gKKzRXZ29aMzFPS2J0VjRnRFVmWXJ6T2J6UXJVVlppaDB3SHFLYmpLdmxiNlpuRXJ5ZjB5Z25aYm43UlVnZ2tmdEoKK25NempPbjR1cW95c0NKTVR5YkcxQzEySEhpU0ZRbGwrRjg4SThndFB3U1k0MzZVUlY0U2tIOEpJUVJ5S0gwclEKK1U3RGRDRWMxK1BqOHNxaE9qM3lnOEN4NkpjU0ZFcGJ5R3lxNG1uZUovNStpVDMwdmVmcVhiTXY3UDZ0RW5mYTcKK2l4NkdCRXJsVXlvK2tpcXlHdEsweDVTN0k5dytvTk5NYW5aSGNWWUduYlhWbm93TldQRWE1L3NHNFZJVUpnNW4KK1ZoS0pxMnVLKzVxVGV0ZnF1WW93aHlDMlkweEpLQlVRR1hBR2MxcURaSjZ1ZFJlaWhWL2liQ1l6MXgyazlFV3UKKzU2dzdTd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUQ1MDhrYXYzYjd0bFhEWkNzdFpRUnoweU5kb3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCallOOHcKK0l2aUtoMlNXdHNCOUwzUEVBOWVRWkpQdGhjeW44QmZnZWZRalBUYXI3Ym1UMkIyT1YvMElxcElBdHlUNG5sZ3UKK1czb0k2TThZbEhZWUtGOHZEWUtJbkMvd3FXa09MTm5panpZY0pJa01BRUhpeGJIZ05xeDlFL3FRR2s5dUNnTEsKK01KaG9FTk4rSFRFek9PZUpNcW5wT1U4d21lUEQzZWp3eFYzb0psS1o5alg1RDlMY3VIejM4NWVJNE9lUGdJVmcKK1FiRTRnTHRkQ1N6ZU9KWFNuOEsxdkpndlFjdG52RW10V2RSR0g2MUdRMGlNODQyM3JDNEtBUlpDUXpXR0o0T1QKK0g1dTRqVDU2c25iaTYyblZFczlVMjVjSlhwc3BDaUdzWEtKTXl0RjhDbWZrUG13MWRvdGlXZGFoY3RDT3gxd1cKK0JVZHlaUVpwNEZkQ2N4SFJZa25GQmQ0S25xYm5JaFpFRlFGY0JMSlZPZ20wSmhYVjlqK2xRbzJ2aTlaOCsyVE0KKzZ3aDM0UWhFWmhFOVpqRTllT01tOXI5c3lvVXFhaHZ4OVpiY3pIV0RvWnR6amJDZ296K0I1L2Q2SjFDcXVzL0YKKzhWUTY4Sk8xWWxXbWFQVk9MUTJlY2FBYXJCWWFmUkkvYnBZb09zWDhtN0M4blRUUE53aklKLzFseU9kVFFESEYKK3VIY3YvQ2svVEw2ZEk1VmFVNkFpSWpaeU1MWlM3U2Vqa0R3TlJqMkFQWGljck9tTC90b0RxWW1BV1k1eHAyMjUKK2RDbGgvZTJoV1B2NUxia0pSVWVlZDRVWXFsRC9FUEN5TXZCWmtqaUE0bHpvUlh2dTJyMXRtdVEyeFN0SjE0SHUKK05PYjFsK3ExMVhVVG5QdnhJeEFGRXErTk9aR1FaQ29qL1NrS3ZBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgU1RNIEtFWUlEIDFBREI5OTRBQjU4QkU1N0EwQ0M5QjkwMEU3ODUxRTFBNDNDMDg2NjAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWpuNXUyb2RTV1JIZndBQUFBQUNPVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3hOVm9YRFRJMU1ETXlNVEl3TWpreE5Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFZOVVRTMUxSVmxKUkMweFFVUkNPVGswUVVJMU9FSkZOVGRCTUVORE9VSTVNREJGTnpnMU1VVXhRVFF6UXpBNAorTmpZd01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMitJaitZYVBxWEdmaS9sOAorNlVVdFdWWmVsdlRkbWhMTmtCb010UU8vQ2I2LzkxVlM2RGxNdmlvb2lIZzVwOHY1VEZYU01aWTdTS0x6OXRNYQorZ1grUVlxdnNXc2VnZjRFeUo1c3BkWDBlbHNYNkRuemdZSlo2eXBTNjVySnAzY1I5dTlQRXRHNEFoaCtkSmVpdQoreHhDRTNNQTBKRzczL04wOU1ucERsdGJJZS9TYlBhY2V1azNRT3oyRW10RWxJbDBBUkxCWnQwREZvMU5UcjQrZQorL1k4ZUF0TlA5d25PeGNaeFhPbm9lclZycEw4TDJiYjZKTEROVWlJZGZ1Z1ZMeDVlb3V6VHFBSjN1Vldhejh6WAorQ0NDbDJqbWFNSGFRTjZkZzN4Z1NaUmVxM1VqVkVoMU1nMTJCQngwWWdVQlZZSStqYXpRZTFlYlBVbk4zU2xCUAorR3c4NXd3MFcrYnRNZC9aT3JKeis2THRTcFFvT20vQU43L3R2aVRSOVIrd1VhdlFLNFdCRWMzdWdxMXVNUTZZRgorUW1GR3FoejE3Q3lHaFNHWjMwV085TkVlKzgyYmxETGdvTXhQcmE1RWk0WW5rZjVnbi9Kak1HeGRqYnlyMVBXaQorc25UbzFKWHkxZ09MeWFOUzUyTUZaRkRsQ21xZ2JGRE5ONWlvaHdJNFcyd0NhVDBmbFhSTlJuWXFuV0xVeHh2NQorTWFaUjdudkk1RzQ2ejA5UFNZcjFUeVdUSXdMdmVhWW52bHJuZExmWHFNR3VWWWlreDAyM1l2RDVXNzlIVy83TQorQzRrWlpVdHYzMDk5VFpaQ0RTcWh2VDV3a3JySVdkVWRPcGhUZGFZeXlISURSbDljRTZUYngxVTFJZzNHRjRXOQorUmt2NkhrbkMvaDc1WW9sV2hOK2crLzJUcENVQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkxoZjFXZktrc1FPend6WQorSDIwL0ExVnZPS1pSTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFRYXIrS0d6M2ExUGVkOENBVUpUWjIwYU9hcE9wRURjbkgvVnc4YWpQb1VXRworS3QyUHVMWEI1cytLK2pLaFM3ZWt2d3BJeTBKamNjR1d1VG8zaEE0a09ldFl6ajIzcVVTU1dibi8yeGkrYWw3bgorenUrNFFGT3Z3WnY3UXBsK25RVXJjUXA2ZWtUUk1jcndYM1NGcWVLOHlBeXRWOUhwU0pDSVY0Ylh4Y25tc2w1ZgorRTl3UWY5OWppdFdla01KMVV4NW9GeXNES1JVRHhZeG1QcTY5U2pKK1dZa0xoTUxaa1BvQ0lwQ05uTFlNVGVFbworZHRlQ3d6YkNveXBTNWY0OGorTkwybXJid0hvOFYvcUZqL3RpdzZFNHpvVHl1aEwwTUNwS2xLazFMSDBSeDJnZgorUjZwWFF3WndlWXkyTzExWDgvUEFMTVhlUVpuMjNWV0s1QlBLeWV4cGt4Tkk4Ri9hTHYzN3FSdVMza2x4TjR3Lword2dnS2d5WHhiZ3JqVllXV21pMml3S0h1L2lNN2FTSUQvY3lLM2JSVGpZU21yT0FlQitYWCtjdTU0NXEzaEhDaAorazlZQ0h2N2JLSHozMUdKdmdIWEkyRFVtRE11RTdidVYzMy9WdXdDV2x6TG51dWdwdFJwUmdic0UwU0YyTkcwZQorazVZZmxsTmZYSjd6bllJY09UWlpyc2s4VTBwblpXNi9wcXcrMnJLbll3Y1g0VnZhYWpHZis3VHFvWmNJYnJKbworODNKMm1lZ0FSb2dtNFR3SEszaEoybms2dlcvS1hLQ283VFRNMnhQaVVaczlBNnpIOWpMaEVWM2h4ZjJlZXMwRwordWViODRBTXg5RXFwTzNrQnNHUm9uMjUyb2N6c0YwR2QxRnRPbmVWRzFHdGdLaU8xZW9sOEo1WmxsMWJzbU9NPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBTVE0gS0VZSUQgNjYyRDhGMUNFQ0RGRjE0N0E4QjZGMEVBMjk2QUY3RjI0Q0FERjlDRgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF0L01Bd2cxa2lQZHNRQUFBQUFDM3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEl3TURZeE9ERTVNVFl6TUZvWERUSTFNRFl4T0RFNU1UWXpNRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xWTlVUUzFMUlZsSlJDMDJOakpFT0VZeFEwVkRSRVpHTVRRM1FUaENOa1l3UlVFeU9UWkJSamRHTWpSRFFVUkcKK09VTkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXduQm4yb1BNdVJtSUZnTGwKKzdBbjRHNXFjL0ZuK2l0V09QMEhBZW11Z0hxdHBIT0sxcTFPUno4bm9XQndpc2NLWWdGRCtmcms0L25ZWWs3S2kKK1Fob3NodlpuL3lTcUFnbGRrNkg2enlWU3M1MUpRT3owRGhFUkhJY3dYMGV6cnl1WmJ4SXFLT3U0S3JjaDUwMncKK0hxbnRjMTlIdm03TVhVUGdxR09Kb3BuQ0J4TnlwQ0pzdnp5L3o4MUtsL1Era0xISTFVb21uWURmbTVnMk5ZS3cKK2dKMi9wWEpPTFRYb084R0NOMmF5UkE3Y0twK2xGZ3MrNStoSVNhV1FlT1dCZk05bzUwVERBaWc2aFA4eWZNRzEKKy84R3oxN2JUQVpmSy9QU2k2cS9Sb3JEb0k4NTBvcEdRMjc0bHdDT2VVaWwyUnl1MVJWNExTczErV1NGVUt1QjMKK2hqdTZtdldXS1JYMUdxcUdvRUg5UU1aTjhvUmIzVUlzdXhPV09JUFlDNnZwWE5sY2w5aWEwYXhLOWdnbDBYLzMKK2NpUWtoVVFPbXlCZkxzTVBmUWNYNVppRXVGNGlDTVBDNy9aU1g1UDZwcExHT1pXSjVubWhkQkxIQ2tKaWN6RmsKK1NKNGdSTVAweDdlY3pHNjlZSXhxbXhPWFc4WlN3bFRjRUtXekV0bWhwdVVVdExza2ZtZkR3YmFtWE9HYjlJWkoKKzAzbFAzcm05enV1ejVKWWVCb2JCVnh4VlhneEllaStRK1lnWnlQZG5DVDJYbUFuOFFjS1RtcmRFTzBvL21PU0QKK2YwT0tPVkxDRWZyb1Z0QXhQZTlZNFlrVk1OaWJCZXhyTm1WTEF0Rzh3L0wrRDBUcy80Z2ZFMHRLU05HczIzWkgKK1dLMVVKMHVXeGhiS3BtNzVkNzZmN0MwZzZva0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLUE1RMGhoMDBrZy8vMVoKK1pqMWJSSFB5bGQ5ZE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSVFudFVoVm1IQzl6V2xMbnJUL3FlRndXakhTaTh0UkF4RFlvSWovaGJZcVEKK1VwRmxTeWpKQWl4bk9pZk8vWVFtSGJXKzQzVnYydlhETjlEdXJNQ2Rlb2pEME91QjFjdHozWUZPSjdrN3NwVEUKK21DaEVOSXJJVG9XQzFPN2tFc2U1Z1NQQjVERWR1Y0tEeEFSYXcrOWVlMkRrV3ZsMFdoN1RKbGw2Mm92ei9kYVcKK2xtU0pQcFRra2ViVHNrVGViWC96V0NYbUVKNXByZ1RUb0hlamxEWC9MYmlHaldNYW5IS1d1c3RIRlk1amViWlIKK0ZUOUlUQVQ2a1I1emZTMVdFZkNmaXlPWlFnMy9Jem8yU250c25IdEJES1dvbHhrcnY0ZFBTWmNXb2tBUnRTNHIKK0RLNU1lYUpXK21sTlN0T0x6bmhoZFlrTW9nTzNpaEVtUzQ0ajlnN2t6QXdHRXRIUjlPUm01MnhaVEd0aHgxbnIKKzZmMXBtRWFVSml6QjVVRm9tcXZtbnhJMjV0OVdVTy9wQW9DVHBGMXJXMU5XaWZlUEJmOHMwbWt5MXhkT2tQZkMKKzVHYnIrSFlpSWkza1VhRXNGVGFjLytxRFBZZ0lKMG1SZlB3TzhHdG5YQjY0Zll1aGVXWFZnRVBXbnpWaVUrNFkKK1RSU3JGa3IzWWlOQ3dyMTQ0Ni9QR2JUdEFHTXV1MFhiWkpHaVJQWWJtVFdJZ0dhNHZPa1BVZStpNld5eGV4NUQKK2tmNHRsK3VxVUFSR1N5N2FNNm1XUzVGV1Y2eU5WeW5lOU40TWJtWkhpdUNQSjRvTmxNTkVpODBVMVhzbi81TWEKKzdUdC8zZnlMb2JjT3NsWVU3WUI5enU0TVlMN3loUHFQODJKcW0xTWM4YlpGRGZpaEFjaExlUjdaaGg5ZXYwZz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgU1RNIEtFWUlEIDZCMjc4MDgwMEE5NDFDQjQ3RUZCQ0FCREQ4RDFGMDFENTI5QkYzNkMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdHlTb1d6UWpZMmlqd0FBQUFBQzNEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZeU9Gb1hEVEkxTURZeE9ERTVNVFl5T0Zvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVk5VVFMxTFJWbEpSQzAyUWpJM09EQTRNREJCT1RReFEwSTBOMFZHUWtOQlFrUkVPRVF4UmpBeFJEVXlPVUpHCitNelpETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFzRFlNdUxBd3c3MENnVUJiCitCL1FUMEVpQnZ3Y0UrYnE5cXdLaTFjWU5yZ25wZ3JnSlpmN2RaVUdveWlGSkxzK3I0ODFlbHdUb0FCZmJIRTlNCitmSFc1YVRZakc5aUtydFN1enJFSU9uSEZaVk5aWmZvNVVKYzJBNlUwYloxSWs1cDNsbEtFUVNWMUdpNnJuZ040CitncG8wS1RSdXV5VkFPNW92d0hXaVBNcFJqNDJJUXo4OHRkSytUNS9RZW5na0RGelh5WTJvSnJaTHlmV0o5QWliCituMmU3bmNFTUxrY0tkQlVlL2c4SnF0cC95ekQwSFA3QWxNYjZYaTc0eDV1VlBJdVcrWTBndmhCQmw4MHUzdm56CitjVXBOWVF6Qis0TmFNWHpVN0RhRkFzTWFXOEVHTUJDdUFkZ1EyMHBpeUprRGtIVnM5aFcyOWhMQWRRY1FRUS9zCitVQXliSHFIZjVwNjlFK1UzTWl2MTRvUlhPSmRhYlZaZzkrekVJclBYbTFBcWZuQ0c5Z1diNjluMFhuTEx6NFZNCitHRHJYSTA1QWZ3eDdqMStqc1hoTDJxbVZleHJrejFaNmZ5dUZ0aWRJTG1nQ2dpR2RBWTg5MVl1UFdHYlYyc0dwCitnd1ZsWDMwczFpRFcraC9pUjU4blB5M2t1T0YxY1Fmdm9DWThwdjd6ZXlkYlBtblgyS1JpYndtb3JaVGlxZCtKCitNdys2Z3Z5bkloVytHSEJRRDFSWDdFb0dGK210VFFFZzVnTWt5WVJHaTFjV0QxYWRSV2tpWXlweitHTUJIczQvCit6YVFuUXZwZUFNQkdrRHJOd1dXbW9oblRGVm9GdzVSOHMzSzBlVC9SU3lTbDd4VnJCekxkV2xyUnNiaHJ0eEhPCitrbHBGRktKUEh6MEZicm5VTUJrdTZEUlV6eE1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQ0JZMDVGVXJYT0NVdmxVCitIMHdubmtoNDJFcVVNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWdxVERkdkc5SThiKzNrYzhiYW80WjI5UWpaNHVaZFRralAycTlHWkI4akhmCitma0pUVVdyRHdXR0s2L2NrY1oybnNrNW5NRU9LSU5SODZrS3Fia1FBQUI2aW5LaTgySjFnbm9PRHJ2TEQ3Yzd4Cis0N3FERFNOd0RNMVBlNVA0Um1CVUhvSUR1WmlSRlVwMHlBaW5jWHU1RDFpelZsUndWQ00rVmRpVmdUS1o2U21rCitXMkVzZDkxZzkzTVVUS2k1NnBIN2hCMkFjcE9QcnQvcVpqTGFtMmNHYU5uMGRicy81bXlodGxsOTgwMWVmR21GCitYYXBuLzQrWlVoOWFKSXFFODRYS2tJamZNaXhhUHF0ZXc1OUI0WFFGeWI5clk2d3p1UGJtb0xua0VTY21Wa3FNCit0elhwZEs5RkRUNU45QWZndG9FZ2Zoa1lPNUV2WnFhMFVzS1dISWQ2eHR4WjlqYWFVVG1BMkRjVWJXTS9ZaDF4CitOL3gzeno2di9HUW5LMmowQ0NkV0crNWFLaVJJYktINk9MRUdqNmRXN0V4dEZYaFJoSkxUSWZGRGt4b1NnWkhaCitCaldSRFBrM0gvNVZpVGtCVkQzNzl0RG9EbzUyVWhIYW1vRG9rVmtYSjZwajFwUVNBamw5U0FXenpFV0VpRm1HCitCaXNIN2N4WVpRSFdMN1BvS0gwNWNnL0RhYzRBNURRMW5OZnZ6cWd5RG8yemw4WDJZd05ETS9yZWJFYVIxY1g2CitPS1R2eCt2N05GOGZBUG1NRVQwMWN6QldnS2ZRR3RqNDlORVhDZ3R3NzdkK3N2NVZsNGk3RExkOC9RVkFLU2VMCis0eFpIeHhORmRNMVdaZWptWFBleWNXZHJnU0F3bXVIUnVZTFNKejdibENqaVNTOVdEbEsvU2tHUE8xL0p4a009CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIFNUTSBLRVlJRCA5REE1QzcyQ0EwMEJFMTRCODVCM0U1MzVDOEIwN0M4M0U4NUJERkY2Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXQ1TXVlZ2ptb0ZJVndBQUFBQUMzakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRFl4T0RFNU1UWXlPVm9YRFRJMU1EWXhPREU1TVRZeU9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFZOVVRTMUxSVmxKUkMwNVJFRTFRemN5UTBFd01FSkZNVFJDT0RWQ00wVTFNelZET0VJd04wTTRNMFU0TlVKRQorUmtZMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdmdHMldRK1VXZmRlRm1STworay9XMGVKRFdBcDlPdjF6d01OSXNzclBLTHNXUDBCaTlBY2RUVkFGZ0pBQmlQa2EzaENmMkZocjJ0emN5TkFScQorcHpWc1QrcFUvSk90bkVBYXNWZjdjRzFGMlhybVpzNjhZUnpOV2hnT3Q4SVg2WGcvS25DSW1BaUdRbnZMV0FjVgorZ1cxUlNIKzluQVpiM3c5dWxzWDhnSlhaSlNRNzBmMi9nc1BPZTR6OC9rTnpGcHh2WFlLSFJJdlcwU1dBdXR6VworSDNtUHVtMlRKajRZNmMzNUorV1R5djRGWXJaMm1OazV4ZWw5VDFCa3RkUVlUcEcwdkdtbE5JQWJQdlJ5aVRlNworeTBEVkNzdHR1WTBidXp3UlBES01jcEtoVFZWVERRTVg3R2VyUE14UkNSV01aN2loWDZaMWx1U042Rzd5S0l5RQorOWk0aEYxb3FpNWtRZ21kM2gzWGV5VzFLaGpKYzN3Q0VRdUQ3SWQxQWRjZjcwRFE1Nkp5UFcrWmJEWUp6WHFzaAorVldTQmFkNisyYXRUa2REVTdrUzVRRjk1aUtFMnF2WWExWHhUQStyakN3NTh3L1h5SCtxOXVYNHBab2FDTVZlSAorRUlFMTFHMThPUHZxN2ZLdXVYTXY1a3k0THlaQjdpK3VpQlpnQ1pSaVE3OGNRK1o2T3diTUU4bHBtZEZhY0J2dQorcXc2TVU2Nnlpek50Q0ZoRm14N2s4cW5scldFUURYUnlTc0QvTmxWNVFtZ1NyZ0NXZmkyOXEybHJJVkxoSHB6VQorYUZUeXIyZTFzY2s4NFZ3U0tFUjIzYkV1U0l2cGFGY21uMU5UakpTN2VuNXBrQW9XN0puWWlpaWZUTXRhNXVPcQorRCtnZjVFbkpYekhEcnRsMmlUeVlIQlVvdkEwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNHcUVRTjFpektzUEhkcwordVNTU2ltVnFxSCtaTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqYVkxZ2ZvUEYvUktQK2tVOUhnZ0g1VjVta0V5dzhlenhWOGRORllJODFUUgorL1d4Vnl4U21xVWZTSzZOdDFIZ0hHeXNsNnMxbVpHaERMdWZ4ckdBZitHcUZQV2R2UU0zZjZlVElwbysxc1JjVAorRGRYMnZmcWFPN08vRU1YV3JnNmVQalU4MllkS0xXN2FwR3lWSTBBMjBMM3JsNUkzeHdiOFJ0RS80NXFVM1U0TgordkhzMm9VdGNnb3l2Wm9saFU1SythK2c3djd5Q21QOEwrazc5SXBIWElyQ2RleUFXaUpDYU9BS1VMZE5iUzJxTQorWW5LOVp3N0NEK2g1aHpLS2FSenBIdU5pRGlOeUNIQVEyQ1ZKOHhEL050VGhPUEFOaithbGxRZTV1VVZ4ZFhBWQordFJId0tPd2RhM2ZYSFRIeXNVd1lvcmRTQ3JCekhxakY5NlF2QjZqaHpHNTl6elZlNE1PdGlPQXQyOXAyazNySworaXBueWNFekRsZE03TERJQUp6VnBQcG5HRDZVQnU3a0ZXOG16bU5JVmdialpQNjdWdVpDeStwNVhLMmVWNnJZZworUm01NUJTbjhxdTN6bC80azBjdm9GZmM4YXorRTVLWCsybUtTQUx0SnhCbm9XL2JRZzdPVmFlaUlTN3lpc3lTdQorRXdtcTJmNnF2b1JUSXpUdjNVNE8wVnpXQnpHZGJKNDh0c2tGTG1TMUZTZjJOcityL3gxK01KaHBPeWgzSkVyYgora2gyVGtIc2Rxdk8xcDFCU0UxMk9qbnVmMVFrUEYxNmVCOE10NUlUSVR0YzBVdTFXYTlvUUU4cnBNOGYzQVYvZQorUlBvS1lmOUlqcStOM3dYa04zc1RDSXdzTHNrV0Y4NU81QTFMaG5YVm9vNkpTL3ZIV1ZnQ0MxL04rV2hJaEdBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBTVE0gS0VZSUQgQkQ5NjNFOUFENTc0QUFEOTRGQUQ2Q0JGNDE2REQ4NUI0QTU1OTk0MgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF1QlNMM0JOT1UyQzBnQUFBQUFDNERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEl3TURZeE9ERTVNVFl6TVZvWERUSTFNRFl4T0RFNU1UWXpNVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xWTlVUUzFMUlZsSlJDMUNSRGsyTTBVNVFVUTFOelJCUVVRNU5FWkJSRFpEUWtZME1UWkVSRGcxUWpSQk5UVTUKK09UUXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXNsNGtUMGRIMWw2RTVUVEIKK1FTbk9QdFNyMDZzUzhPeHBJRDFvMmQwQmp2eStJTWNrUVp2REdPWlFmWTFDSXJQWFl1R0RLZnhub2hqWDRMd2cKK0pTUlBQMHNyMmlWdldkbEtpcUtVYjBxTTBtMlAycGpTZUxhVFc0Y0c2SVVtaTRHSXoxOFkxV24zWWNmaTNaNkUKKzNOSW0vV0RFTUplSmhPb255S0Rkb282eFhxNm9VekRSVVZQWXZHd1J3ak03QXZtcnkwWkZhT3pySm5sWTdvOU8KK0t2eVlXWUR0dDNnZHlkSlZFZUpCWXZWODdJRjFDT0RMZnkvOXBJVEdSeFArV2EyYzlSK253MEtsYkdxdUVFVmQKK3I2cGRTcjZjSnFkTWZWS0sxUytXcGZHVWszOGR5ODB3WlJJV3g2OUUxQStjVUtwOXZsQWh3VkVITmdtYm1JMWMKK2VRTzNYMVl5N2p3S0Y3K2pxTUJrT3J0NGQ1aEx2YjIzS25IazRNUTNSRkRVSUZuTGI4ajRqYmpiMC9iYlBnT3EKK1VVMEpoUSs4WXgyWGMyQ1BFdzlJZjRtNElySzRpaGt4NHc3OXpYNVBWVDZZbGdHMUI4S2Jnby9WbHI5NnJhTWoKK0I5Yy81eko4N2k5TjlhTERoNzlnSDliWFJmaldKS0VJUktPaHZzZGlVbGxDRTAvTFZ5SzFCVkhZenZQeVQ0VXEKK0pTQitjVVE0NEdSbUsvR1EvMGFmVVZYKzhtR1dJMW9MWWJZZjl6NWRkU2laR1BlTXpRbHBvNnZ6eUhwcjltREcKK1NJQS9YOFhmeUhIKzg1dnp2SWFlS0RSZTJoT3BoQlJSUTZjNmJ4VDV6VG55RWxrTnJhU0FBL3FTaUtEcVl4cU0KKzllWGhXLzR1M2cyaGNyWEJad0d3dk1DbFUzMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOMk1lTnRsNDNzMDRDVGIKK2o5MkpTL2VTM0FvNU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZThYRTJYZnA5RFlBMDlUWnF5aU0xMVpwRjh1N2plS3U0a0h2Qy9oYmFlSGgKK1BVQWlyUW9jZkRBekRUYkdwcU1HRDAwYUFTMzFoZGs2TmRMblRYdHdIbkZ1NWMyaTJNUkdsaWlLOFQ1SnJWT0UKK09iaitnUnVUa290Q3N6Y3hCUGVJQldrQ0ZmOFhYQmJ2a0thc3gvTnNiY2dRSXF5dm9KTlo5SmlBQndKdjNFWEsKKytKQTlwSzF1NjFCRkJZckFzQUdhbmtmTUxHRkpOUXhsa3NraTIvWXNSV0g2ZWRqVDhPNktpVzdDZjhLVVV2cHkKK2tweVNXSFVSY0RTZUlUYnQyUytaVFFBeUxRVnl5aEUzeUVOY3JwSjVVL2dJbTRLQXFFOTVHZUFSRHZzSnBPek8KKzNWYTNBVDJlODRLcEFYY3BIUzVhWTU1c0luZy9iS3cyZkZuc3A5L3hUOVdpb3crOHdpK1IvNVR3ZG9mZ1VrVzEKK0pSVTVRQ3F1dncrVGhmUmZ3byttVXFpM2RZTXBFZFc2VGtPNVpSbm9tYXY5WjI3Nk5kUjdtV2tlWHBUV2dKNjIKK0JxdVJYbGwwa3V5bGlLMFdXTTJtdTkrcllhaSszd05iSVM0U1c1K0xqbWtmeUVPQitVblRVOFIvTDhiUEJycnYKK2tFNlZydmFSU3VyVStJRGd2eUxEUURXdTZZM1V5YmZCdk1WUTRBTG5CWVR4UUFRVEh0YVFvRm5mZDNqY0RmZzIKK3JCa2hPWno3THpoTWhlRVQ5QXI4ZjBrZmdHbXFTbnVkMVRyVzROcDJDQ3FtOUgrNEpZY3JBdWpRNWtVVGhwQm8KK1hTcEZLeDl1T1puMnQ5aDEwQkJIUU9kVzZQQUY3SXZlRytVL0xMYisydDYrL2lqR1FHY1RqckJpc3cwbUdSbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgU1RNIEtFWUlEIENGMjNFNTk1MjZFNDQ2QzNGRTRGMTNFQjY4NkY2MjRENzA1MzA1RjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBUW05Vm41emZvNnVjQUFBQUFBQkNUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVek4xb1hEVEk1TVRJek1URTRNalV6TjFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVk5VVFMxTFJWbEpSQzFEUmpJelJUVTVOVEkyUlRRME5rTXpSa1UwUmpFelJVSTJPRFpHTmpJMFJEY3dOVE13CitOVVl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyQStwcFlTZXFQS0JkbWd0CitlU2l5ZFNTa3c1S0FXdWdzaGk4aVJKMmtDZThDR1ZGblNzaVZlRzVtbHU0ZitadnFTQ0hBN1Vnbld6YkxwUEM5CitxSDY1cVoyWmVOcEhodTNnQ1dDS2RUeENEcGFtdm93dEJYYURUcEVNejllR01NQ0owNVRzYmhtT0dEWkJTNjY1CitYcVQ5VHZURWJPVnVFMzZXaXVySG82eU9LTTV6bkRkOFlaMjRVM2NscTVLNzEyano2V2hsRGZBSVRmSnlxSTgzCitGNkxxaDhYc2Q5MmFVU0o5WC8vd3c4c1VlL2hSMURBenBYRFJ2dSsyYzU5dmF5LzJhMERpSkE2WUg2aFA2a1pvCitDdmtqbkpERi9wSk0vTXhHa1ZNT0tkT09ST1RwUkRuV0xDbVJ5am4wM3JJUDZXbytoUFIySnk2S3JINTE4WVE2CitiRkNWc3dJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVUxUzkraU5Pbnh4dlF3dXZ1cUNka2JNcjN4YTB3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQitDVDBmCitkWU1nMmtERzh1Szk0REY4ZnFpa2JVclFBY0E3WVA5cWVyVHdKdW54bFZFazNRZ3E0aVI4L1hBZWtmbHhORlpwCitIemVST0NBZHNVNWxKS2xqYnkxNHkydGJEeTFNZXd2dVJLLzZEYWZDQzZIUXVKUDk1VGl0TmtPKzdPb0RzTWRwCitaMzVwYWhZVlh1NjRjamNaQ3FBTzR1M05obVYzQzYrOFh4U3dUSWJZZSs1STZtbnNKV2pZOUMxMStEdndpSnJpCitqMjF4c0szQnB1UHRlU0NJVFpYdDlMZTkrMWNOUm5WbTdBc0tlRHdra2N5SEV1cGR2WFlJZ2dFZ0hQNGx5Z2c4CisvU2h3UHcvT0I2dVVxSVFIVVFZWWxmV2ZyaXBWcERiS3lEb3Fia1luNGNlbFlkait4Zk9xSlgxbnp4bzBPcGoyCitpYWRQeUF1SE54SVdQa0xKT0tncjlRN0hWM09QZ0d2NG5kTXJ3cm43bWx3dDU2b2JGa3A4YXZWcmRBWE12SVQ0Cit6ZHprOGdyWGMvZldaQk9hS25xL3JNTEhCYXZMdlZFYVQydXVlN0FmQk9ZVzNYNUYyVFJYL21MVEY4RzhYTnF0CitQd3BlQ053YUpTS3ZFaTZzL2l6d1M3Y0NkdmpXanpUOVdyd1RKYmZHZ0NCWndxa1hOOXh3R3pqVlYyQXVrMHZICitsNVR3c1I3K01KN0VDU0xCRHNGNWEzZ054VnFsWXE4elBWVVJyN1pTTFdNNjhKRWY2bkIrQ3Z5eWtzNHVrYUIxCitNamcrWExvbUJQUDFQUStxc1Q2emxJTE5HaXBLK0FQMjdHVXNBR3FFYnJZMUU2aytNNElWNWpERFlDSllTRVJkCisvOWM2Qi9SSUVPcmpCQWl6RCt2bTZXOHVpdGREVXRIZGNiMjMwUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIFNUTSBLRVlJRCBDRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMwNUYyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFqb3dWV1dBeVN6UktRQUFBQUFDT2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt4TmxvWERUSTFNRE15TVRJd01qa3hObG93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xWTlVUUzFMUlZsSlJDMURSakl6UlRVNU5USTJSVFEwTmtNelJrVTBSakV6UlVJMk9EWkdOakkwUkRjd05UTXcKK05VWXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW52ellpckI4NDA3Z0FJTnkKK1lEdURHZzNGUTFMaC9zWUtwd09TdW56UmxrUFN6WUJMUGUvS05OQmRmS25wdHZjL05NeCt5bGt4UkpyWmFjRloKK1ZjUlFzckIzQUF2YUc5a21hZzgzRWR4RDlUbFY4WmM0WDBUNUg1dmY0bzRMckwvcExqbU1EK3dSSTZGT2RFWFIKK0pGODgvbGN2eFRUR0Q3YTh0QVc1L2diSEphZ0lYa0tnZEFVYjdybDkzYzRRSWtyTGZNUm85dDFUdlg3R3hTUUYKK0FrNFkySTFRRjZicUtIQkJ6UFZFL09hdFY0bVB5dXM4VnI4a0h2VDhBb3JDcWM0M1czOGRqNW1sSG5iUFI2QVkKK3Jtd3cwTlkyYmdpM3pqSzBSOXZrQkpIVDQyYlowL2NhRlNwc3dwd1NVdWF1ZmdNUGdpc1YrM1oweDlVOXJIRGgKK2d3emNGTHl2MXVrd241dXhGWkp1ei9ob2o5OGlaYS83b3JUR2tOOXAzOVlvVDM0Q2xIMHFyZ1FkeittNkh3UFEKK2s2aWpCbEJRVHI5ZDM0M1Y5MDN3cWZVekpRc3FQZGFsV3lLbmxHUzJuUHk4RFJwbUh1LzhSZEdiQ1JJTU5kZVQKK3pjaW9GMFQ2ck1QdHBKYlNoeHEyNWFwRzQxSmsreEtLRDNGV2U4VEtVZWZ2NThRb3VZL2FVWU1zK1dmRkJlQTUKK01iSm5uamRDaUNnR0FRSllJbTE3d1FEczFWV3RkK1MvandieWFlaW0yQ2JiVmdKU0ZsbkI3RDVYSHZhMy9MUWEKK2pnOExXSkpTc1VXVC9USmh4QnRGRG9obzlERE1nN3F4M0xxcWgxSHQ0S3RsN0dHZ0tXMVRUMjVhZFNQOFVnMmkKK1Y0am1DN1gyY292WVZYdnhzbHZWNVlQUnhCVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJRHZHL1BCQ2RTZUw4VksKK1ZFNFlaT2lqWktxVk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbkk1SEdnZWZuWDM5MVMrOFlUa2JNa1VRTXo1UVk5dUlBQWYwUG9xQmd0d3EKK3FycGp1VWFFc05ia1hyOExmSFRhQ2lIVWdlUGc3M2NVem1VTWZxYkl0ZFppc0E5dUd2eUZqZlNaTENFa3ZkUTUKK0cyaHNWZW10VFBQNlFIRitYbjFiRDFTRWFPb1RwbS9pN1hWSW5UYXArNk96MERSQitkb09uSFRieDdaUmdKK0YKK3BqWENFVkdFZWpyNWEvRzFEZDUvWmp4b3diZjNGV2xoSzFhbGFXK1VtMFYwR21zSk1IdXFqMElMNHF0RStDdmoKK1FvcXFacEVBaWtOcDNkMnVRUitUbzFmVFFkNS82TDRMeUVndTlPNEo5L3NaVUNEVDJTbzg1S3FwRWpwdkNIYmUKK2ZGaUZNUEx2V2RFMUlFbFBnSlR3VGZLNnRvTkxYa1ZnUmhLb2w1UUdHMWtzMDZTakg0OC9Tc1RjNVErajBzZDAKK2x2Z3l2UEVRZ09NbjlTZnpKblluZytJNXFUS0Fad0FSTU5ISGYrMnFSY3hKZ2Q3Zk1yaW02RTJRS3ZDb2V0Y1AKK3RKZnVZU0FMYnFJUzYyR2hRY1dNaXZFU3JhT3ZmZDcwclhRL25qQ1MxQVBCa085dW1pQnFXM1pFdUh3bmhQUTEKKzJ2N3E5c2tkam1kUHhVR1RMWDZtZnFDdmo1WFNaYXRJTUNYV0tKdTJhK1pucGZ5cnFUVy96Vmp1cENRQlduWDYKKzFzWFBRZ1lPU3BZTS81eGIwa2hhSGpPR2RhVVgyZ1FpeUVwOGhVUVkzVHFoemFoMVVVUUlJSG83Qi83eWVQb3MKK2t3TDN0Ry8wSFI1VnR3V1Z2Tmk4UUU2OVowcTRteTZqQk43aEMrU3g2SGdLU2FnNDBtSkhUSE8wNkF3Yld2cz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgU1RNIEtFWUlEIEZCMTdENzBENzM0ODcwRTkxOUM0RThFNjAzOTc1RTY2NEUwRTQzREUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdUZkQzVGRlZodzF4Z0FBQUFBQzRUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZek1Wb1hEVEkxTURZeE9ERTVNVFl6TVZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVk5VVFMxTFJWbEpSQzFHUWpFM1JEY3dSRGN6TkRnM01FVTVNVGxETkVVNFJUWXdNemszTlVVMk5qUkZNRVUwCitNMFJGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFqOVBFdmtsNnNIRTErYWlqCitJMnc1U0F3cWg5UVNZSTh6dlBjMWJBakYzV28wZURUM1dnMWd4WWdHbUNEM2p4NGZ3Q0x6RXF1OWRpZGx2UlZ3CisvTjEyQmt3WDhzdUtLYUowa05zdjNGcDllM0g5OG1Sa1k2eWpGUkNtQ0NxRHlkcUN4cUN5ZUdXU0U1R2pZSGFECitGM2RJR0wvd014K1RKUWxxQWx1TnZjdHJxUWJXcXRrcDd2TG03UFBOK2l0ZjJ2bXVkTkpRL3JMTnpqdm5TS3hQCitCZmhxL0ZLZ2tQOUVpdnpXVi96eHVkTitnSEM5bGdhNVNDaDFzcGxMOTFacFhrZGlaM2lONC9rU0J2V084QzcvCit6aHdJTEJsVlI2cFhxM0NMS0ZTdlBZR0JRMU5VdCtwNEdaT0JPUzFkRkR2dkpFd3AwSHprcnFvVHpGTEdKUmx1CitHVnkyc1JWampIUGllRkE3YjFrd1Zhc2VDUDhvaER3eDYyaHVsYlNjdVBsUkdzNlk3ZHJQREt4bnFFTmlpMUs2CitFd3dFcXprRlRFV2NoaDRJRDA5b01SR1E3dHBhUm43dkVZV2xkU0ptTDRKZlRlSFlQWE1qeUNDTCtqK0FSSXVaCitXNkFwWGpBWnJVT2RLUGN5OEJYVEl5dS9SRDNTclFTU3NLaTY1Mi9aYi9CWmxmbzBzWExvK3R3RzAvdlg1TGhECis1L3dkMHZueXdtbFdUR0JRM1UzeUpmUGhMSmZqSFRic3A2a0d3NUpRdFZXTHZrcXFSSDdrb0JOWEE5eGZxQkc1CiszUnJYNEhaVS9HZnBXUXdoNHhsQ1RZQUNiZUNPZlA2bHNDZlpEK0lvbHZpWXBpWGFIYWhMSUJPZThnOVViMEtXCitlOE5acEVuWjJjdldnWXFyTXBPYjlWSmZXNXNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSXF4RityV3Z1KzdhaWtTCisrYTNoVGZUM3BEbTJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWtJdkZMb015bUZ0Q2lPZ29oNDdHdjlOT3B4a0NPL0ZJVDBLQ1pkTmljVkVRCitoOEVNU1h2eElVRE9MMmp4YXNZR1FFeERvSDBXUmR3a3F1RnhMUFRoTnZwa3JvU1EwVjMvWjdlYjhEbm5SbWw2CitsMERUaURFcmluLzdWM01CM3R1VHJGeW4xd2huT0JhS2l2UDk2NkNYVnkrWWZtWjIxM2JxRi9zWEpRSjNWU01oCitEb0NLbkNUamVObERXQTZJWTZoY3FGRWZ3M0hrZWd1ZnNxcHpTRmxMN0ZxaGtRSWtmaEVhaWhCNmo4VWhCUWM1CitWQVhlVVlvVWJTNHpkZXIwRzErWUp4dDVnR2lCYWgzcFVjRWQ5WTB4TSsxZ1EzSnVsWWM3MTN6SW1wa3RCQmFwCis1Q05CMkVRcWgyRmpMZTQwY3NYK01Sdm1RSnJwcnliQmlhc0lQOUllVldDbkpSRXdicjd2cVB6TWpuRXpiMnMrCiszcmJ5YnZiUk1MbHlYQlN6bW9WRmFTV1o1eEk1d3cyZm56dzk5Q1g1aDNVbm9EVkl0VkpEUTIreWRaa0RwSHFHCitMWjZIVXVYdFFwZkdmMEUxQ2pwNzhFdnYxdFUyMGtXdjJXZGZjak5LTmtIRjBHTWpTbkJBYzJsUmsyYW9vT1QrCisvOWpvRC92dk1taUl3ZU9laGljZEp6b01Va2tFRTdIOWUzcUxFN21xc1Y0MHJmM0ZKUjUyWWFkeUhBOE1LQkEzCitHRmUxclpRRFlWTFFJeTZqTDh3QnRPNU5GdTdVMXQ2UVNnNVZQZFNZYWdjSW82cDE4OEd0ak9MQmVEZjZrNGJmCitqSnRBQ0lIei9lbzhvb2pLNmJzWlJDQTBudUhGYUpGTFBNaW9pNHkyTmF1Y3VIbm1xa1RSWkVrVUJvU2ZlUkU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIFNUTSBLZXlJZCAwMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2RUQwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQURMQnRqUkhHQlkrUUFBQUFBQUFNakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5URTBPRm9YRFRJNU1USXhPVEU0TlRFME9Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFZOVVRTMUxaWGxKWkMwd01EVTJRVFl4TUVRMU0wUXhRak5DTmtSQ1JERTBNRGswUWpKRVEwVTNSVEZHTnpVMgorUlVRd01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFTUGFzb2xxR0trRm1LbAorcXhzQUpSYXdQc1hnR3dmclA0a05uNmZLdU15eVlOcVFxN2pFL1ZpU3lBamFpSWRkYUt2VERLczZGQjJ0cytzRgorTzhpTkpJUlFMTFFEd1l6Rlc3QUovQW5mbkx5TUZHR3I5dW1xN1Q3S0wvYmJyMWtVbGZpSDJUOTFiT2g3WlcyZgordmovRk5lVkVuY0RJUnYwVEl3UVFjRnFxdmRNTG1UUlk2K1JNSGdhVDJTeDlVNTFPR0daaC9UZkVkRVk2aWE2SworYjRoRzNNb3lIY1RhQnFGYUZnTS9OMjhPV2ZWU3g1Q3NtVndtNm5pNWtab3RyK3pTTW1NWmpWajh2bmtObU1rZQorT283Ynl0K0Q5dkxidmpvdHJCcnllRjVvOXp3VnZ2V2pTd1F5R2VaUmJpYS9Gc0JlTG1nc2VXd0hPdU1hUWZzTworTEcxdmpRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMFVhOHJkNHEzUGNzTmg4Y3QwRnFpSmpyRVVBd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFEYjV2QQoraEhQZDR4dmozWnNUbFZHNjFMQkovRFM4NUF2bjZ4c0d1N0doY0VrSFZiOHcxOEcweG9Td0hUcUdRVDJ1alJjKworVDdHWEthcjhLemZnMnBqd3NMRUhleWxNU21KemZ4VlJ0ZlQrVXc1VmpENTVvL0o0WG5XeDVSWW1XaWVKVEZBTAord2lNamNCVXZMb3BrWnQ2dExwRGRLcVNtSnhjZDcwWnJTNC9HUGNnOEpRcmljSGo3Mkc0V0lLVkRIL3JUVkt4UQorSEFNdDYzeEw3RFIxZ0hCdVA0U1NxYUJNQk9CcHpvUnJ3QWtReWtxa1Q5NEYxYkY4M1BTRjFoUzdpTGdteDFiVQorWDd4NDJUNkdHb21XdGowSjU0RXB2K2hzNDhhVU0wU09jcU9CZlV0MlA4SEdlcElhNG43TjJjUjFjSHFsSGhVNworTVJRMTh2OUUyWTY0bkV3a1hnSGFxeXNtbGgrcEJIK0FhS0NMeFVOajR2NytQdkROWml1bXFSTTFLMndTNWxPMworM2V4UlRLTFZKam9EK3QyNkM1Z3c3RGFzclpySWI4Q3hCVmlsNWdRZjRMVzArTVVqaU9jdVJNRHFaNnRTY1FYMQorZFJOYnh5NTV0bnk1clhBbVh6dENwTWNxNHBUSFB5bCtBUTNjNGJMYUdJc29TUTdkWFBRdWgzNVNPdVVkcVMrVgorb25HVlZZZDNwQVE1bGg2ZFZGQWMyckgyVGszRkJXallrUXRYMHJPR2w5Q09XNnBjbEZjZ3FqUmtvdUhHWUwwdQorVDM0Zzh1MVRIYktOTXpTVnRVYnFlenc4emszZGQ2KzdvUzUrbDF6ZTYxd05ycG16d1VtL0w5V2U5NmhNdjgycworcXc5WjdTRmlJOWY0TkttdndzNlRYNlozeHJXWUxCaGcvbEppVXc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBTVE0gS2V5SWQgNTcxZjgwNmI0N2NjZTc5YmZhMzU5NDdjZWQ4OGI4ZDEwMDVhZTA5ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFEVkh2anJSdE5jd0dRQUFBQUFBTlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEl3TlZvWERUSTVNVEl4T1RFNE5USXdOVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xWTlVUUzFMWlhsSlpDMDFOekZtT0RBMllqUTNZMk5sTnpsaVptRXpOVGswTjJObFpEZzRZamhrTVRBd05XRmwKK01EbGxNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXB1cTNkcVdzaHVNN1ZEbSsKK1RZRUY2RlRJRmhsOW45dTVKQkJFcFJMbjkydHc2NWlDM0VyRFprTFhvV3Z2NjFObExvajBKNGkzMG05ZGlrOHEKK0FSbnlFTFV1SXY5eTQ1S0lxTmlpUGlSNzFWaVJUVHBFSTdHSmpsZ1BYVmlBa3NXaW1QT0UvaEdycWVHYXVNODIKK3B6Y2JZK0VSSXlqUWd4b0VCdEw5MDl5anZLcTNZN0hGYUdJZmRIR1BmSjFPZGd5K3d6VlV0QkM1bGpVMHpMTjEKK0dNc29YRzVRbTRJZjkrN1dvRjloM2FzWmppelNNcGY4QU9YMklNaUgrSkFFdHpSdHN2NERTeVpBSDZOUytJbngKK002NHVhZmE2MHE4Q0tqeXJCeHBDYXVWV1JPM3J5REg0NGRtbkRTMWZwUEgwN3kwcWNybCtOc05vNmJ6MjRxejEKKzVTMStjUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVTJnNjc0RE11RmtVV2RpTC9SdVAzbW5sc3Z3Y3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCM2hzTm4KK0tZM1pXMlQzMGxIdjJVRXk4aWlOQTE0Vk9PdW5VMmdtTXVYUXA1MmJBalNQUDNYWWdraFFIYnVxV0JTVzltYkEKK1VIOWt3WWNjc0ZJMUZoTHI2L2twU3VLd0Z2cG42cUxxM2JkWVFHMDJ5MCtJdmJtVGVwZEF5ajVPTWhUSis3ZTcKK1NSSFE2Mm5JTUZEY2pTbEtpV2lLcFRMNjNFWjVydmZqRjVHckJNZnduRG1HbkRwYWc4cmpSbG5iOVlQYlhxSmYKK2tCdkpBQTd1Skk4SDdSUGtLOVhhRTdxODFTS3RVN1ZqcUh3Z0hDKzByYlVoQ3o0Qk9WUmF0MTVtOSs0cUZlS2IKK2Yra2o4VTE5Q2dNaFVUZjRIcktaRUpBZnJDYkZUd3VCTHVkdDZ6OTYwU0QzVURYdlVpSlovY3FKMjY4YUNrK2oKK3hLMDN0N29TUUlrTDMxQ3lmWTlHQnpLOG0yQmVYRVVXNUMwMWFnLzlEUEhDTG5heVJHR1dFSU95VFl3eUJCZk8KK1hMTGpETTJFODhjcEo5S0hLWXZrTjVSNHJaM2d0TWp1bFkrdGlaNW9veFVJeTVjZGhtYmUzUDRJRWdIM2FvUDQKK25QbWQxTlByZVNXYVVJN2EwcXFpVUV5VjBjNVJxRk1CVm11bDFCUTlWL3M4Q2FOQ3k3eUYvTnJYSDQvS21kTlMKK2Z4aDVKMUxsNUFoUlFPS2l3WHlJY0hHSkV4Q1lZalJuTENKZm1lTGdzeGNBd3d5elN1MU44VVA2ZjAveTNHOWEKK3hBRExXdmJpcjR2ckxWbWJQNkJTQjhyWXlMc1V5MWNlQWhYNFpEQjl6NDlNS2E5RHZiTmdSaUdMOGNUWlJvWmwKK1NtQUMzaUJNcytnb0FaMlBhTnV5cjVyS1pJaEdKZlZHdTh2K0pBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgU1RNIEtleUlkIEYzQzkxNTc0QTZFNzczRkYxM0JGMEM2QkFEN0E3QjY1Q0YxQzc4MjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBRGhYTWZpTCtYZk0yUUFBQUFBQU9EQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRJeU1sb1hEVEk1TVRJeE9URTROVEl5TWxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVk5VVFMxTFpYbEpaQzFHTTBNNU1UVTNORUUyUlRjM00wWkdNVE5DUmpCRE5rSkJSRGRCTjBJMk5VTkdNVU0zCitPREl3TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1cTB1OGlIdzN3emZJK3JuCitMUWhJYmE5QWhwTEZGekVrQ2oyZWhscCtpN1A1ZDJsYVc0a2dIN3E2NEQwOFRXdHRkY0lzUWFxcGZ2VjdpcEhFCitxS1NvcjgrUVZBNmZRZDNPVnAxNlRmSkNNSTRiYnRwbFRjZUZ0UGw3OFdFYUdzcmw3S3hURm5hbDJEcTU2d3plCitzblhjRWRLZHU0bVc0NWZPb2JTaWtXbDNSK0xGb0lZOTdsMGFiU1ZvQXRNR25KZEc3YmZpcWxKRUNDUmxtWEVMCit3WkxqWHdaMzdsT3R3aHRBMHdoQTU3UE5Bc2lxVE95S0ttT3dONS9BNmJlOHVRRkNrRzdNWlBadklHU1VPRlFzCitmeG8xTW1IV1MrVXlCTThXS2FYcXRwY1RyQXNKYU90aHNuQTJaRmVpVFY3RHBuL3hUa1Nxak9QK0JMUzdnL2VECitOZVVFK3dJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVVU2dQZ1Jpa25sRC9QMjBvODdpdHNEUHBkand3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQkwxMFhECis3akYveWJKK2tlTDRqSVNZWUZaN2Z2aXdnbGVYZThteTdYaHV2c242bjlXZkFiV0JHUDZJVG1mUW8zOGx0YllqCis5alp1TVpHUHhuOWQ0QngyaW9NWUQ5WG5JUTFRckR6M2Z2aUVhQkVDTmZHbS9BeXcvMHU3b2pjTW1XMjFjVXJTCituZjBka2Zlc1Y1NEtvVmk2SnU0QUFhMEZMNnZNY29ueE10aDJvekpLaXI1aHZlZXp2MGl4SVRZYW9icWxHL29lCis4WUY3eEJ2dVNIZklhekJCdHlRektKQjBHTXdvWE54Q3orbVBmcVYzR3p6VWJTOVRxdUpqQnFuQ25vdzBWM3FnCitDYlVydFA5alRpcjF5Nk1WeUJSUkNLcTUxak9RamY3SERybUVBREtpdzdUWDVvSjFoTmxSR3FFVUFhQjhFSWxiCithMWh6MTNqRE9MUmFsQno2Zko4MlJMR3JaSW1jazRnRVVUdEFPVEp3N3d3dnFOc2hPMmdBcmZFZEFEL0phcUJmCituTzRPRVpvZEl4TC9oT2NCVldKa0JyK2lJNkVGcXkxZllRVWFwZ0tHWlRSWGU1anZQQmcvYjVyTXA4Z3FmR1lxCitHTFVsd0cxTHZwaEJwV2sxUlYvSllIa2RDWWtiV294RVcrQXBaNjd0anFKblpJWUQ0MDNtb3VZOGZTL3ZsQUEwCitsZXgxb09LcGUyelMxUnM4Tmx2ZGhEdUZkSmhna0pJaDBQODRJSDRnVGxOSnlmazJIemwvc09NOXdmMkRlZ1ZBCitqaWQ3Y1prQVduREp1NitCdDBUWnFlRndzOW16TDFoSkF1bHYzRjhTRjVsME5tSUgxZCsyVFkxTGJPbjJDRkhhCitIUkl6U3p0VjJxNXVGeU56aHRSblZudS9HZkgrYzZMNEphT1JTZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIFdFQyBOYW1lSWQgMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1NkIwRgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRk1GclZRNnF6R0JtUUFBQUFBQVV6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU4xb1hEVE13TURJeE9ESXhNVEV5TjFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVmRGUXkxT1lXMWxTV1F0TVRsQ1EwTTRRa1kyTmtVNFJVSXpOVGMxUXpGRk9ETkJSRUk0UkRSRk1UWXhNa0kxCitOa0l3UmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT1g5TU0wWmtZQ0xqK0ZFCit5R1p1cjVyQk1lRkJNYnI3enlNVHBwTnlDMUQ5YWZiaVBjSjlodUJJZDl6RVFTcnRtamc0d1NhOW1rcWJrcEgwCis1ZEN2eXRZbndwTlE0RW1YNzBwWEVuY25HOFpjY1JuTU8rTGdaRjJrSmt1UE1wQUlBc3Z2dmg3WGhQUE5MNFE1CisyWmJGVUMybFBPcHBYWHRRZ3JWbTMzNWk3NUIxQXNDcERjNm84N2hQUS9JWWRKcitLRDNBQkV4cmR5dkZIU2NoCitybWEwL0NwNG1XZ2RWYThJUUJyRy9uZ3JxOGFzWjdDUEc3QWZSZ2ltd3FVTUVWVzlKZCs1R3VpSEZaYlF0ZDB4CisrZ1FKUXd2OWF2NDhONXR2aEVERE80S21LeXBpcnBlRW5zS2FaamtrYmFvMHNDWHVNdFFoUWV5WklsSmthUkRzCitDSWxReHJFQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQUtBUHBGWVBmRWRoZUtXazBoZE5yTWdzOFVUTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFKQmdhCitqdWN3NDE2T0wxNUtsOWlWWWdmVTRjRWpPSDlaeDVPdGxjWDZkNmE1WjdGS0RvdjRjRGVjVlYvRjdGVG9ONE1NCitDTWxIc1Eva0xGemdkemdtdmd5K1VjSVRyUlhBWTlvRURKWDdKNC80YjRQNzIwV1czeEh0K1c1YmlUaXdWeldUCitaZi83MjVIVWhoeStGelNQNW1IV0FMWXQ5SkZFTWhvaS9hQ0xUMkEycDJyVy9OMFRlR0JVcTFBTmxoM3pPU0tYCis5L0xtZFJ2b1dHLzFrVzI5UG5teGJmL1NhZUFDb3AvL2tOVit4QkdydG9DaStTUDNwcVc3ckgyc1B2MXBCWGh6CitjTHBJb2paRmVvMlAxaHRhSnFNQnVSMmxOb2ErRlZpUWFWcWQvMDZnNGpIdWlQbklGNXdJV1ZVRlgyNGcrWHFyCitqcDhBdjl6TVlIMXpSK2h1ZFFhQ3pDemxTRytsdHFFdU9FUTRUaWlJSWdtaU1VVDRMWDUxTDlTbkFwVXJ1N1QyCit6SHNNQ1FDMVBVQVJUTEl4SW5rVUtkWVg0b0YwN0grNUFPc3cxY01CQkQybHphWlkxbTNEOVpjaFZSK21hTklECitUU3pEMHVVcDhPOVhSdTNrS2ZuNDg3aExPaXVrUXRqSWxZdXZEMnQvTC9FY3FZUnpBb2plcVhYTnE1TW1Zc1hZCitTY3JLL3pubVlaZnRVSFhTeXF5cklOY3l4TnFqc1pGUk1kUjIxR2MyUXdZMitLcytNbFB5K085MHplNmhrR0hlCisvVTJ6Y21ZbHZqQkZCS3A3WDI1ZDk0RmUrWGJoTDNzQ0h1dEo4RmlQU0kwNkRuaTRkWGhVWVJWbkpvY04rSG5iCitUcGdSakl0ZFN2VURFSVBNci9YUk9CZ21nOFFIR3VHUzJOM2xMc2M9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGFtZCBrZXlpZCA4YTA1NzhjZjU2MTQ2ZmVhMzk5YWY5MDNmYjViMGFjMzZlYjI3ODZhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXRhTEtTVUlTejRvUHdBQUFBQUMxakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRGd5TURFM05URTFOMW9YRFRJMU1EZ3lNREUzTlRFMU4xb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVGTlJDMUxSVmxKUkMwNFFUQTFOemhEUmpVMk1UUTJSa1ZCTXprNVFVWTVNRE5HUWpWQ01FRkRNelpGUWpJMworT0RaQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBN2sxa2xBNE1aL24rN25udAorOTJPY0d3MUhLQkUrbmtvYlM4d2xnTzZhbWJNRndBT21VenFSK3RFV2dIRzNnaEZzOXN1QmtocXA5UXdvWENWZworVDFMUVR5dHlXQlptbjlLeEpzTzVkSWdGS24vYld2cnNLejhnSENLUVBMSGhiSkUvYkRBS2NKdkg1aGFyTTQxMworazhINVJZY20ycmd4SFJtMEkyZUFWRmZFRlJzUy9pWjB2c0EwOVdoNVNKNEdoL3FlMGZtSEZ1MDhSYmJSZFFFYQorcWZUaWVhek9MSmRZRFBpVE1RcFVveUFZRXdpK2RKQ0RneTFMY2RRZVJmaU9XNDZwTm9oNDNGMCtEUmZ0MjhIZQorMEF5VjdqaDhvd2FnR1ZzOWN5RTVBOUZwWmU5bFo4RE1FUXhUdkM5eStjZ1Z3TDlCZXROMGlkU2wrWEE0Wk5kOAorcTBybE5QWFNYV1BVSlZuZmhnVk8yZSs1NURGaU9FVVp2SEtUaFVkSXB3aWxMLzFRMGxaMTFXc2ZqM25lZHRZeAorUDh6SEdlZExSVjU0WFZtRlAzOW5CS3Z1b2t6TVBZMTMwY3BBbE0zdmFSWG5NTmpMYldVY3RlWEFOdVdWREVBRworeUtwM0FONkRuOElqTzNva2dHRlZ0V0FPcVJVTnJ6akZ3dHRMakdxOHhmdjBEWU5ULzlEUGFUNUE0Y1YrSE9lcgorSExuT3dMNjNsQlJ3R0NXdHBhNGFCS3czRkF0aTVxVUVsMGVNWTJ4eWdTTjNoZ3ZVdlA1dS92Mk5UeFZjQVFMLworQU9telRKRFpXeWFpcHFBbjc1bW1vR3MzY3NZU0YzcHNYcHNJbkZBRHJKSzNEL3c3Y2RhTUZ3bGtwSE5XdUs3eQorQ1hSYVhEcVdBaklLUUtzdVdjMGdCQTVmbTlVQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkpvZVVFSVZ4ajdabldiMQorNElVR0FCY1F3SGZDTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFhYlk5dStkMG5kN2U1WXVrQlN3eGREWDF3TEJYT1czMmpicm9KNEhmT09LcworWklqSVpaeTNVS2RjSmdlWjZjRWxDVGxtZTZJZm1CNHZjcHpNWFhyWS9Vdm5qNHdOaXlZNnNxQ3ZLMWxJTlo4dQorbFRHZTlNTGF3SlUxaUVDNFdzNU43UDlhRWp3UXNsR2phWmNxTU5wRzlETEE3VStCaWxKTzVDTGhvTk9JTUIzRgorYTM5bnVBMldNRStybGdTRGhkd1JuY3RzTzltWVgxWjZ1Z28vYk9DM21mYnBSa2ZhNERGWDZuT2d4S3I0L0FWcQord05SS1NQcEE0L2tNZWZxZzZVUGZzMzYwZE56YTZ6VkozMGVHSTRBZ1RyUGkwZExKK1NkNWhER2tjL2JIUkl2cworRkNTUkR2UG9zZDg5VjNldXEyZHF6YTZIT25CSnNySitSc3FTRUlkbDd6QW1WYTUyV0dGTWhxL0lrMG4wbWdUOAorVmZ3WXpReWF3eFRmWFRHYVlhU3UvMmxVTmhGenI0aEhlbTF4RGpxMFU1ODdleG9TcEJSQ3ZGUW1tTityUldzUAorQWlTRkJCM0FwZ2RLcHFOVDRiNk1iQjZ6cXhhRjVEcEt4emxkOU51bTlOb1BxelBVQW5NeHFBMEpEbU82bG81YgorZ25weTFkNmJ6NWs1bHBnWksyUFhvM3pmYnUxMnRTWUZ3UFZ6RENRajZyamw4Q0hLVVpZRnJON0Y2RmRReW02MgorZHpNQkdOQTZ2YS9GU1hiMFFPempzQ1MwQ0VUTUkxdVE4cjBRM3JPUlJjM00wQUVFTW5kSDZOdXVkTGdUeG5mSAorT3VOQzZXb1o4aGxhL3hJYzlIRmtJMFFWYmtUeUhLbVlZdk4xNFJVN2RNTDVvd2NxSjYzc2VneXpyUGlFN25RPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBhbWQga2V5aWQgOTBlMDA3ZTE3NTU3NDIwMWE3YThkYWM5M2IzMjMxMTRhODg3ZTFlOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF0Y0N6L1FHVG5TRThBQUFBQUFDMXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURneU1ERTNOVEUxT0ZvWERUSTFNRGd5TURFM05URTFPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVRk5SQzFMUlZsSlJDMDVNRVV3TURkRk1UYzFOVGMwTWpBeFFUZEJPRVJCUXprelFqTXlNekV4TkVFNE9EZEYKK01VVTRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW95TFBiWWhXNUR2U1NXNlQKK1BscTdMd2FVcnNzczhmRlRvUlg0ei9IRk5zSGJTRnNVc2REYjVCNEpxVnFEOHpzT1E2aFhUdXJtRUpOcUVEd20KKzNXaHo0VGs2TUxFMEF5UGJIVzdJcDRYd0dtMDBqR1lPVHlUNjd1WmRJUmhVdmpuTUt0ZjNWalFNb0JCYmp6R20KK2YrdU5sd0xGNlVnaWFtMGo0L3N0clBrREh5Z09YVmNDVVVxYnNudmd4a0ZLemJjVFlYZG4yV2pZQUZzZm4vdGQKK0ZwWE12Zm4renNRYWUyeUx6MHBaUFlIZTIwRlNzRVpRKzl1MFVlb2tLMHFVZTJoY0pZN1Mvb0N5TkxVQjhvTy8KK0hsVldYbXR6VDBPaDhuMkw4ZHdSeVloSTBhQWJsK0FWZ1ROYUVDc3N3cG5EQTR6ZUh2VmJ1U1lkSUZkQkJ0L3oKKzdWS0M3V1JPbmNyRlRncG56VmNUYUVJeUdNc0wyRWJDdE1BM1Fac001eEtLVTdUam1IUkg4T3pBdFFCUHg0UmgKKzdHaWlDeW1YT1VtVHBrbjJmY3Ayb0xVd3VFVFVLT0pmRCs1ZUI2TEtOZTIzcWltYU10ajNKZk9MczRpOXdEV2sKK1lkZVg3RXZoK05kSTVVZTMwaFE3WHBOVHpMb2IrTHdjYWU1SmIzd2FTWXJxZHM0UVRBcURDN0RwUkJoeWhjZTcKK1FXV1VkMEo5UExQdkhwM2trakxucklGR2doUjhqa0dEWHhBY21TdHFLWjdXZWFISURnb01iWjVJRUQ3QjM2TlQKK0grZVVzVVkwZ0VjNnlMUE5iWmpRQ2h1ajJ5bnJzdkFMc0drTEY3Z3VLQTZsalRLdDczYnlvQnZiNjNFalZHR2kKK2lqTVZEYVg5d0tKQnY4UGYzTmtmQ3h1VHc1TUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZDM1lNRVdhMWZrMTFJcXgKK3ZqM1dLZzNGSG9UMk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZUJJMnZ5bmY1Q3lsNzV6NG9Ubzc1QXA3ekI4UGVsZlFSU3pVcUltRnFvZWsKK2pURDRZU0NpVENxcGUrYnJMMkdUTE4xak1HbGRHMXcvanF4UVFBUXdGZHZGUjIxeHlYZXdmdDFTZ0V0YktKTVQKK3NhY2xiVHkwQ3dPdHR4R2dOeVQ1S09NckhSNC93SVBMSUxFWlJqTG0vZjJtYWFIb0dKKzhQOFZMZVBoQVVYVmoKK09JcWlCUkpzTW5yc2ljSG53V2NCWTF1LzdnS1NveS9mM3c3RWtFZnlBY2NjNy9SK1N2MmhQUEkxQnQxZGd3MWYKK1Ixa0cydTIrZkhES3ZNYTQ4LytPVWtUTHR2Mmp0anpoTXlTVEk2MTVjdmpTZWhqMndiRGlvZngxemtXaGRFcmMKK3JpYXNnMVZIUjhqWXJnV2JSckh6YkMzb3J1eUhudXRXNk9hZmFxVE9XNjFtTEpCZURndGZDeXQzbXV1RlJ0cngKK3RJMitYd2txcmNYMkFNZytDeEhBMWhnMkJYSWVJK1ZOVHM0RWYwam05Qm1yUFd2OU5NelBZRHVESkhuS3REeDcKK1BIN3ZyTy94cGhWcUxIcDJaZU5LY2p0OTB6WFpjbTZJUXZvTnU4UTJrN1MyNW9kSXpnQVJpaCtCMHR5U0FJdDYKK1FQUktLS3FKYW5EVElpMmU1OU9BVVBnejVCU0pSdzNWUXF0WUdHdUYwaXArZ2hYNnh4QmJWYzRnR2QzQ0lqM2gKK3BzU0p1RzducjBBVUlSM0h6eUFuL0hZRDZlVFpEUVJ0WGR0cjQ1YmlrZ2puYkN5emlCMjNyaUN3NzVyU1dVeHMKK2xoM1hoZWE2K3VvSUUxbVkxNkY2MkE3OEwvYndKNi9xbzFVSmJKREQ2eXBtblMzWThyMVZlQjA1VjBjVlpkRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDBkOTk2OTUxOWI5NzlkMzJlZTRiODAzMTY1NjY0ZTljYzg2ZjlkMGQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWXdiWlpacVpCdHhQd0FBQUFBQmpEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXdOekl4TVRjd09Wb1hEVEkwTVRJd056SXhNVGN3T1Zvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB3UkRrNU5qazFNVGxDT1RjNVJETXlSVVUwUWpnd016RTJOVFkyTkVVNVEwTTROa1k1CitSREJFTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE2MnRUNkFzcG9kVm1DU3p2Cis3YXFvTkp3TkhrYS81R3FUNHBSRzAydDQrWE1aaHFJa2s3OTU1a0p4cmZVT2MyRnNsczMvL1lUYzhrNVQxUC9lCitpUWlKdHBrODBhKys3MTJEdVk4b3FEd09xTmJPazNiK1VyN2tySUoxTDBrb2FWaTdKUTY3Z0k0aldGbFBMdnNmCittM0x0N1JsdUhHbUhDOVpZamEwU0dkVEszcThDNlc3TmdUQzV4ZTJZVCszYzVHeHNYOGJiOUgxMjFNVVdYUGhKCitlWFVvNVRlZjk5eHJMQXZIQ2gzMjNKTGw4eHhVTmVTV0dMTjVCQUJ5WXd2TThIRlRBSWRFUWpSYmxLOEgxZXgzCitNKzlkSGxmV2NoSTVYeXM5a2E1Y05LYkV2ejRVSXBoZHNwUzE4OXBpYlNXWlpxU01HRjVtVE4xMERCTTN4NGp0CitSclpNUzQ4Y2VVb0JHY0UvSkhXNHJkL1ZCSHlIdzFualBBUDlyMTBXOWFTSUZOUkhZR1dBZmRLcGRqK2tZZnI1CitCaytTUDJtcmhtcTlSeVl3NDE2SWd1QVJEcmNyeml4aUlUMHJJaWlVa3ExZWszUUdRaDBmQTNVRnplT2JiYVRWCis1YmhoQXdRSUR4NjJJWWRIc04yS1VlQU5RbHVXU2QySUZpc1RqUEJoNUV5VkdVMVlYYVUyOFo4MG9yY01aNFpVCitJRjk3QUpyYkd4V0VkN28rU3d0eDhwcERXOVBNd2dtN1VpdWZ6WUVkeVlrbVlIMEpOQ1hyQ2tYcTdTbzAvcktHCitMZmxtbTNDOTQ2RFU3LzFESEQ0MjNTb1JvbGZLd0s1WnFXRk1RVTh3YWlicVVBRFhwbWVpS1RJNzU2MGtZd3JWCitnZTR6bGg5TmwxVHlodzl3OUV1UHAwZC92eGNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRXRyaS8vWUIxNnVOaTJYCitCZE10ZGh3VU5iOWxNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVJEcVRrelJLWEJ4OVpIOGtpR0VKakxZZFVobjhCbmgvclBibEs4UTdLdTlSCiszSVlVdE52czZIN3V1bVFkdEN3c3dVTDlMWjFZUmFJK1NiUE5XRHJ5NTBwc3g0bUJGbzdnTXVuckpxeGNNZFF6CitkeWl0R1hLYkdJSjJyVEtVcmhKNE5MNWsrbXRBR0NGem5Xd2ZlemhkSExHT2Q2eTN1eFJ3QUV2Y2owWXV1d3FDCitVb0JqUGRTY3JmNUwvaWpkcXBTWW5nU0wzQitrRm45OHZvNVJEaDFrRFRWSUIxUTc1SEtHK2Uyc054bEgySG53Cis0dHN0cVQ4T2VCUlZaYURxTUJCOFlDbmVFd1BCV29hWHo4TG1GSlpaNEthUzNxb0ZhR0J5ZEhvYU42dkNSUWIzCitpdStiNG0wWnFrRVRKQkFRZEVHWlhzdkRxMVVQd0RkQ1FxS1pxaldER09EemtLaElmZGNjQ2VUcGZPS2xrSDN4CitoVmU2ZkVtVmQyMDY4Ni8vbGhVbTVmSDRNRjJVR1BJRHZkMGVPWjVld1pLMFExWHBFeWtzQ1JlQmFwM1dodmdkCit3SVR2bFBMRnEyY0pHcC9yeXBPMFFFc3ROR0l3YzdWazh2U2F0V0dxb2tjSDNUUWl1THJUY1R5YUFHL3A2UnpHCitNaS9GRHo3aXRwZzBXaklIalpCcTJHUUdocUlTZlZQQlVYRzN4MmFhTHc1NjY5dkNRNi9MbnlGZW9ZbzZZMHY1Cit4eHpNSFo4RE93NGhQSVBWU01iV2NhbDNqMTRKaEQ5cGZqajhyRHNGd2xrSWNVNk5FaE1LcW56ZXVqVUpxcEx1CitCOTZqWTZHVGxBZzgrY1UwOG5vb0ZrMzVWbGRUbnBTSHFISStVbFNRcTRqNlk5Nkx3Q2NiN1pXcFBDN3Vralk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCAxOGIxYWY3MGI5M2Y5OTE5NzJmMzYyNTU2YTlhM2ZiZjRiYjI0ZTBkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVp2V2tvNmZra0F3dGdBQUFBQUJtekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3hObG9YRFRJME1USXlNREl4TkRreE5sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMweE9FSXhRVVkzTUVJNU0wWTVPVEU1TnpKR016WXlOVFUyUVRsQk0wWkNSalJDUWpJMAorUlRCRU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcnA4Si9SMXFPM0RReDhGcQorU3F0ZXFsMjg2ZHJ4bzJNTkxYaDR1a1d4QWttZHZ0R2pnaFVjYWplUUJQKzNYMjFrZm0zcXB3UE1hbzFhZ3AyRworYjhsRExsYTZEUVFYUTMxSndWNkRQK3NpajFVakU4V2FkTndLSVFmbldzbWpudlNJclY3a2dBR2lOR2xrRWpoVAorVmFKUVZFTVJNUUlCMEUvaDl2WjZsMWFzZCtZUXBvZEZRSEpCb0lUNmNIVDVWNWVyWnlXYk1kUkMxUnJMK0hVZworYUlMNU9KalJBZG1UeUlBVE54d0pMOGZBNGFQT2poOEtqZjNmK1hBM2JpclBXVDB2bFNBaVJLU0Vyd0pOYWZRYworalRJMTB5YlMrZ3NhR3c0ZkhuRFAwbVl4VXRXVDNlRHNJT2YxSkIyTUZJVGxBVGh6eXZESlFnVzhJSXUwNitDOQorOGVVQTVlUE5EeVMxdzNxTUwrY3l6eFR1L09XTHVZeG9uaUJTeXdUajZDVG43WVl5RnhoWnZZUWR3UW9HK1FkdQorWGx3Skk1dHlHRW5tU2lkSTRBM0RyMFV1azFzb2Jha1g5VHlQVkxjREUyZExyM3BZWVNodzN3SE12cFNjenFPZworaG45M2FmUVhvdVl5WEdtOWVRS3hpaFlWaHNWUVdFOEd2OER4d2k3dWdlYmRvVy95Q0I4L0NwWUpaNmFJekQwRgorWDJXTUVuSFI4YWliTGo3bnZDaUdRVm5raVZtOEhpS1B3Z1hNZDFibVVVcnZ1Q0Zha3BpTDFjNFhGS2N3WnNxNgorSkpQS2cxZWF0R3FIeDRjNFFTYW5LZ1hpU0trdTArVmhwZDZwbTc5c1hSWjc4VFRvV1lxdlNuNWRBdUtBcGo0ZAoreHpnSWI1TnNnWCtkM1o1UjltbkxjS25vdHBFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRlB0U0haSU8xRmc0WVFkMworTGsrS2FRSm5wOXdaTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqVWZ3aVVNWDZLeDlaWGhJbm4wT3ljcGhKbDZ3TGxwUVZHMkt3M21LbnpYdgorTHpUVGkzM1FXU3l0RlZQZVNUZTRnMmxEUUVJdU5jMUhSbEdISkg1UVdTd0kzK3pUbzVMZTdUaHFiSC9tUVNJZgorWDVpY0pyR2pBNVhkVzZLUElESjFQNzRNVHM0VlBwcEZxc3VXRTJHb0lCK08rd09xN0p6MXJ0WkpPTHd4Rm1TSQorUGcySXMyNlM3MktCV1lvbDczdElZWDBRWXg4dmZaQnNuQ2hGb3dlMkdoYU04SWNIREc3VW5DRTNxYkRVemszaAora1JwMlMzU3RGeDczNWt6K3Z4Q0xYNVVaRFJ2Zm5zZy9aUUZtNXROYUwzRmpCemUyTTFjdDZLUEZySHg3QVV2QgorVzBpbnEwYkFQRHJmS2c4QW9lVEM0bWpSYXhOQnpUbkU2VW1BQjlpMkM5d3ZuM09sRmtObWpNOXpoRW0zbFUyaworQkhNc09vMzFxRUlQNU84ekl0RkYxZHJoRjhKYkdKNlBCc3J4UjZMZlgwcytHYWlqVnlkTEQzd08rSVFWMFNIUAorSkJIRElMZVlHNG1WeXdWRXpKZndaQVdEMFJGVGxlN1FSMEVFcndJajV1akhiVEtvOHRIT1YzQkt6WFhIZEI3MQorek1GclowcEpuNkxhQnVMbk1QNm5ZWWVzVmJvbzRpdmJuTW84NWNmNDk2YWt6bDJBNzBUUXlmVWtzdmsvRmFWQworQWFUelVvOVplbngxMXhLZGxoQzkreEVocElhRU9zMno2VGV1YVBpSmg2U3Rsc0pUeGNqbldETDBiSG9qdmhPTQorb3RPUm1SMkR1QWM4RkJvcG5RbG5EWjMzT1pJWFQ5cTlUVTZIZktIVFluYnhOL3ZWZlBjR3pZNzBhSnJXMmJJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgMjYzYjc0NGQ4NTQxMmJhZTZlMTNlOTRhNTNjMjM1MTg1YmE0ZWVlYyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZWpqK0J0T1dkL1Rhd0FBQUFBQjZEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBeU5sb1hEVEkxTURJd05qSXhNekF5Tmxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB5TmpOQ056UTBSRGcxTkRFeVFrRkZOa1V4TTBVNU5FRTFNME15TXpVeE9EVkNRVFJGCitSVVZETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFwU0dSd0VmRHY3QjJYTnByCitvWVhUTHRHbzlnd0JCNjR3OFF3eWFxamxqMVprd0o5dUZ6WVhZVnB0QjYwV2V6emtUYm5uOFdURXlDdDJuclQrCitSK2FsbHpDZzZTVWZDZDVZT2pWUEE3RWNFYXJJM0c3U3EydTErcjV1dU5MZ0plWFllWjF0U3I5dDNicFFGenZKCis4Sm9pTWRYWE1FUncxL1JLakV6TldkcDhtSjdpWkw2Nk5EY0VpYlJVeDlDSStRVmJjT3FhbTBpSjZGdnl4UzJnCitqdzlpSUZQc2NtV0poR1RlRjFVeHVwSVZ4a0N5Q1hpekFkamtoS29DY01UczR4YThGTXJ4b3owRjAvNWFGeHoyCisvWjlwbzViOWxaQ3NPWDRtUThxUkR6MmRtZEpRQndkcHB3aFIrRm8yNWNDTVc2bnErWndwSUxjV05LaUV5clNECis1MU9tUzd2TmVkK1JBT3Fra2t6SGRNSFlWOWdqMzVpQ1hoVlhXaG9BdUhVSE9XNXdzbEdHR0x2YkhpSk1qam5UCityOWlDZUtyNStVTURrS0U3WEtRMVA2R0JYQlFKcTlRRzBMRGxlejM1WE9jL0lPOGhFNC80aHVHOEg5MEp3NGJpCitQb3VDR0RMd0VoZGtJanBhaDhZa0lCWDZBdEc1dXZnd1dWR3R3MXlBMFEzVUowMnk2R3R4ZHBlVzQ1aUFidUltCitIbmo3MTN6TlhweENxaVRNdjJYTXpHMUgvNzZKZ0s1MzZrZmFqMFMwRStxRDlzOGhSSm0zSEVCUUtObXk4TVNVCit5a1R2MDB5ZTFobndUMk12UlJ6ME9ZcnRGV1c5emtvaFpYeVc1Q29od292U0h6bzROUFFqdDhuRHN5empEbmpSCitOVDZMa3dIeW5aNSsxbDNLdUdOMk9Jb0FtRWtDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTTFhSlVWc3QrNU9xUEszCit0M2hPQmpYNjJDQldNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW5kUk1VZzgxemFlNDlNbGl2NU5XK3pCb1UyTEVaUHoxcXplazVpaGYreFI4CitFdHlJZXFPUjlYNGRhdWtNVWtqaVJUQVZDR2tBeEVPcUtlWmRhVTdmcDlqSmdjMndleHcwb2w1WnJ3ZThwYlJkCitqazlFb3MwVUpNRXRoR2poc3NqWk5VWkpZeGoxTm9qZjB3YWZDSUFCSzZKbHJUQXhSYkd6QVdhSTVzMnB3VkdLCitFQVlwQ3Y1Nm10MWhIUkJCMmNJbHc2VEd3MWFPalhkb2lJVGtaYmNpZHpDQ1dJWGN5RHcrcnUvVHhXVThJL0NPCitRVjFHczRLL2JPTlh1YzlIczRTa3l1cWU0cG83Lys1ZzUzQ3d3ajYwRWIxZ3pobk0reDNhWGIzVWR6a3hRWjJvCit2Uy9xaktOMzZhMFBmL1BRL2NmSWhNSEQ3MzRmVXk1aEVNRTlFd2xsVEl5ZGlnejRBelA0a29BaVd3R3daRHpkCitFci95a3ArMEZQSHBYTHRmK213b040OWtTditRdHNVUm1ub1ovSTg5SlVOcnVHeHJVS01USlJWc3B6VmVxZnlFCitJQkV6WW5kWWhNWEU5a0d1QTU3Z0tXL1cyLzF6MlJRdmFVWXg5QlQ5djk5U0NDdkV6Zk1qZUVYbS8wUHJHdHFlCitPYUN3VElHcUJsTHdzWG5zN0QzL3ovNFNyeEc0Y3VKWUx3S1FCQnVmNnNYOFJzazJLRU9Lck5PbmZ4VGhuNGhpCitSL1J0MDh2TlF6MFZ2R1RtcFdEWkpaajI3bDR1M0pNM1kxdTluYzl6Y2gwSm1zUWRIY25mNWhtZ2ZaVDhwSlAyCitwVnZjcnpOZmVqUjZ3OEIvV3lmY2VjQVR1T1hUS3JFR3F3Q0UyaStMKzVtUWRlMXo3aE1Rc0crRmQyR3Brd289CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCAyOWZlNjk2MzBlODUzYTRjZDM1NzVmODQzOTJhOWJlZDJkN2U4Y2EyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFlVVlPWFB2OVdwaXBRQUFBQUFCNVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF5TTFvWERUSTFNREl3TmpJeE16QXlNMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHlPVVpGTmprMk16QkZPRFV6UVRSRFJETTFOelZHT0RRek9USkJPVUpGUkRKRU4wVTQKK1EwRXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXNrYWpuZ2dMdWo4ZmlacnAKK1k2cFZGNE1JdTkxbERLNXBzbjI1L204aXAwVVEzUFdSQzZSNHR0cmpudzBmOXZJZmlyVWtheHNTVUFZdUZtTUUKK0Q5MVh2dEhvdWowb0NuK0NabW9nVktrdDc4OFhxanhKbW0wVmxadmNmOW5xT0IxQkhQNFFwNUcySmhGSW1zQUYKK2lNcHZnWklmTGRhY3hOS0ZFRzIvZVdJQzcwVlptUHZtRzFYRE5xd3lvUzNhMlNkSHJwcC9kMlFDT0xZVkswTFYKK1k3RkhBK2F1ZXRBRzRZZ0RNU3FEYytWc3RUdlFtYnl2MGNkZXJEMTQrNlNSa3AweFlJOUhpb0JucFpLeUVZbWEKK3RjMURqa3RXam1LbXBCWVlpQXpCYUc2ZFVnV01VODByV2NWbkcrMVhQZlBuUE1vSndBNnFieit3SjhIbUJRQ1AKKzVzMmdUVytJWXU4c3N1dGdyN1dkMk9pME5LOUt1U3kvRnVVbUlnUjM1Z1BiT0wvUVJWMDVkMk52VTF1NXQycGEKK0xkZGVjRlhKR25mb1VHemJ2UnRUOW1YMmUzWDg1NW5ndy8veUtteXdVRkxkYmpKNXNmZjh1WlRyR2trM0s3RFUKKy9DVHlDTjd0NzJZZFJBU0xkL3VlWlNWZFVnQTBCQ0RUTDFEQ2FQWS92TDlOSWFSd2NGcXFtVVJsa3g5Z0tmZzUKK0l6QTJFd2xOQWVTcnpnUUNHTVBLL3B2S2ZrTldEM1BHZytyVnkrMGlnelBNNjRyZUxaZDBYYXE4OTB2YUMrN0QKK2pDMVk5ZlBzeCs0Ulh3MitLMkZBUFQvUEtMeFd4VFNmSmN6SkVGbWNub095dUNkYlIvVndMUzEyQ1QzR1ZFTGUKK0cxU1lnTmRDQmsxL2xObVc5bVM4UHhJekwyRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOVG5hRHpXRjVKWTh2V0wKK0tQN1RRMUJMSlFCK01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRlhKaFBQdTdMTE8ycHJzVzl1SndQN3M0ckhsSU1hQm9renNLTEFYRTJsb1cKKzh2SHlFSnYyTVcrYWh3TmJ3Nmtydm43UFhHRnB0dDNNaXpKS3Fhejd4YnFqZUZNcE5GYW81NUYzc0xjaUoyVk0KK3EvTlgyc3NsR2NDWGNDSG1VQisxck8yWnpVdW42d0dxK3FmVVhjY3RLdEV2Z3Z6N2FCSk9qV3RKM05yTHhYc1EKK2Q3YW5CelVQazRucVBBYUNYUUtqdHZ4Q3hpWXNhT0ZTeXlDQlEyWFFOelNDdkQwYTMyQ3dUUmtGL1JyMXZpWk0KK3N6MXVoQXRuY2EvVTlESHRmRFhlazFBZ1ZEY0c3L0JpVkNySlZGZE9yQVArc1lKMnRpUlZvT1dLeVN5Z3ltUVcKK25IV3hEY2Qvc00yaHRSVER1ajFIT3grMStvaStmNVlkQlZNckpXUzJwQ3VoR3BhRjV4WDBqUUtlZFpUc1NPUGYKKzdjOXlLQjNEYy95Sms3NGlUTFVBY0VXNXNyR1VubGZVSzNPK05lQnBhVmVSM3hpNDBlcHFZSzRTRFg4dHAvVkkKK3RyMktobHczYUFWQUx1aWZZL3kvS1RtVVlhUFlVWit3dnlad2RUUm1TWUZSNXdHdTBJdkhYK0ozaGxiZzhLeU8KK1YxNXJkdlVwYUhqS0FnUS94cm4ya0UvbzBxTi93dXV0Q0Joamh4TFg2TFJQS2VDN1pXUTBMRy9kTVp4RlhpR0gKK1BHM0VsREloSDlCUzg4c1FuTFJuMHd4Ti9JaENsbllTOE5KajRRUFM1SGNJeHF0NkVWNTM4Y1M2OTkra0Jid24KK3BSSkJXU3JnVk1kOXJ4UmJsYzVXa3U1SEcwYUJEQi9vY203TEtEOU41MW0yUDhDTXA0dFFCeVlyOTUvMW5WOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDJhNzdhMGUzNDJjYmM2YzcyZWUzZmFmYzNiMGE3YmNlYTdjOWNlNGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWmpXQ2J2VTJZTERVZ0FBQUFBQm1EQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXlNREl4TkRreE5Gb1hEVEkwTVRJeU1ESXhORGt4TkZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB5UVRjM1FUQkZNelF5UTBKRE5rTTNNa1ZGTTBaQlJrTXpRakJCTjBKRFJVRTNRemxECitSVFJGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvcU9nR3Y2QU5HQklqMm5HCitGSVlRejYyQTFvQVlQOVV2S0k2Y2tHVi9uMU1WanVLazBjSFloVVV3ZkxXcmhNdTN0cTFmRkE2TVA1Ukh5bStyCitZd2owR04yeDJSeERDQlExOFlkWmY3OXNiZDl1Njl4bHNtQlhYVmpDbFlUSklsUjRKdU43NlRxRVluaVh2MlVGCitTZERVOHJvUGp6TVlhZGxQK1ZHNFRjb3Q2RDllSis2U2J3UjEwZy9LYTR3SXFjWmwzdzRZRVBZdXZ5ek04NXNrCisweHo5ekladjRsUmE2RTF6L3crL1E1UmZCNkdhdXVoU3F6YTMyeXBRZkQweFFGQ2pZQkRQVGdESmNhTjZrendKCis2ejI5OEs0dWFzSjhQMFZMeHBUQVFITS8vY0RiWm1DSjJEUVJRUWpxYy9qSlNrajgxYnBQaGFlUnFHRjVNb0NJCiticWRIM2NPaTNHUEk3bjVsWHRJOVovNHRIdDdicThsZDRsOVNORnVkUFJyQWQ1ZS9mM04zUFhLMGlDeWJLUmdDCitkZ3AzT3h2OGVpSDRzbWgxN1NCTFBWazRMQUxob0NpZTNFNkYxV3FSbGZDcHA1MXZRU3d2VmhJOG5UbHo5bXk5CitMMU52OGwzV0hKZld2aEhXaHgxN3VMRi9OU3JRUm9KQ3JqcGdqSkFZYWlyU2c3cWtMQ3FDd0l1b05oR1FIcW91CitkSkl2Q3F5dnlERmo3NlBsdDlhTlMydVl3NjNmam9hSnhuTld3bThnRUI1aS9CQzJteGhzNTR2TzgzMlplWEhKCitBcmhXRmUxbmIrdzArTG9nVVl4bFdPVnhlQ3FsZUdyaEdUeGxWR1VWYy82Q0ZxRmRvc2F1bk5ibHE4YU1vNEFFCitHamk2WGpZK2dmZG80RmRMS1VVREVHVDRmMHNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTS9yTHFtd2xlbGFTYTN5Cis5UEVsVmJKcVlBL3VNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW5VWitvL2MwdTllSjI2UnkwMnR0b1lhT2EzSzYralZsVElBbUw4VEpBeVVtCitNLzdmdmNld1hEOCtxQitnb1F0dnY0MDJ4dDFFWlVHWXprSFdIVUc0cUN2ZW8rbXRLVmpVb1VtNjlULzZhbzE3CitpTUxvU0xFYjU4N051aXBBUUNnYkdFYVVTWm9WcEFjdk5hRm9SM3BZV1ZyQ3BmR0N4UjU4eHBWM3dWWXRmY21OCit4V1RWQ3RESjZyRHpkLytieXgxYXRaOXVnUjVPN1I3eXdrdEJmcEJVZS9HUUZVWHFxTEY3R0pQMmVnaExidDFaCitMczhQeHlaekh5MmxzaThVdWdObEduSEpSdlpOOWdodzQyY05sRTgxUUd5QmcxK0MzK3JkYUVWUVNmMW1leTl2CitkM1dNbjVyNlR4K3M2MjVBZFN0VEdhN1BkblFVVStVR2duY1ZoL1U5YVE3VHY1RHBqbEhzVUhqbHU0eWIrZVgzCisvQTdpNlhVVXdiQzY2eTNLbStmVHhxcTI0eEhSSm5oeWpjV1hpeUNySi93bngxV1hIZWQxM1c3VlQrWWsvUXp4Cit4WFkrQ2g3T2tlVWVmZDF3YW1peHZUY29BbG5hR2xEc0RzZy9RZG1ZMnlXZUFwSENCeGs1UUdvMmNFOWxJSHM4Cis3VzZodFdvaDYxVTZDMDFGbnZBMFl4WTMwYmhtelVmZDNYWTFMSXFXakVPQkZ2dnh2RFBCY2I2d1JnWGkra01GCitUbkRPV25Ba0pDWjNkOGc3UXVEMHAyRFlzbml0TE9UTWtiQjRMa0xGWDZnWEF3TG80OXYzbXFrQXZidHIyRHNMCitzakp6YmdOQ1k1L0JTeFZlZTBGZ0NmYVM1b3FQVS8ycVI1OGxmQnFGSXdhNTNhMTNLRjhuVEdNUjNuYXh6Zmc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCAyZjU3MmJiYWRlYzRkMThlMGQ5MWZmNDM3NWZiNDY4YzYxYjhjN2FmCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVpsanVpQXNsYU5ORUFBQUFBQUJtVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3hOVm9YRFRJME1USXlNREl4TkRreE5Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMweVJqVTNNa0pDUVVSRlF6UkVNVGhGTUVRNU1VWkdORE0zTlVaQ05EWTRRell4UWpoRAorTjBGR01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeHYxbWxnMXdGelNyTlBiYgorcTlEOVowWDRjeU9DOUg5c1lxdEx0SHlSdUMrMDNEV3VPUktpTDV3R2FqZEpwK212MlltOWV1ZWhFelo3TlMyUAorMFFZOGpJbVJEK3lSTTNRdjJOZnJVZ1FQRGlHS1EwOHZqRXBKZ1FCZVEwcVIrN1lIVURHZjhaZkZDbTJkQTFCcQorVDIzSTJFMW8vWWtMUVRXV0Y0Uk1lVVc3ZldHenJGODFuNjB4OE5vRy9aQnlyeGZsdTZSK3JJc0VBRVNmTWg3TworZkhxRlFuOWh1b2tySXpPcCtCbkZDRUFUMUZ6WFBxclFsdGdzNGRWME9pUVF2ODZFSjBNNmxUR0ViQ0plYWtEeAorK0ZSWWFxQ3pta2x3cXA3Vm9tS1JrMjNhU0liOEl1aWZ5bHJEcUJXTDhkelVaYVhVSGNBaG93cUdEa09GK0ZGNgorYkVmZTNYbzg4YUJveVRGSzZ5S254MklrL3Nkek13SEJ5cVJwSUVHSk9ObkFXQ0J4MDJPOHFUcko3Z1Vka25wMgorYUZCQkNZWC9oWU01bnlEamVHcUhVcTVSdFBqTDZZWit5ZFN0SzNuM3VYWHkwaFhVTi9GbzMxbEszWXozZU5OMgoraFNhSTJuVjJ2RjJYT0pNVHR4cFVEWFhkcEZFT3NDVzhaMDdTTmhxWXhEaU0yWW43amRpcE4yZTVyOFVkQmVRaQorb0JmTW5VSlFLZFZBU3BxWWVlS2llczNUNW4yYUIrMGNpd0gwdUx0Y1crM09UNm5IVE4xcExiZUtpdUc1Y0hCNworUU05Vnp3YUNHdzd5M3JuRWJYSGVvMTR2NFJjNkZTSkFoTS84bGxuQVJlR1lGUGlWaG03N0tScmx0NEc3R25XRQorOUpiMW43cEg4aU0zUGxnQXhscm9DSEZsaGQ4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRjMjFLcll5MjN4eDVUVAorOWtMSEVmVWtLRm81TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFkUVU3UjlEVE9KRTc3RitqUmw5dmplRnd1MUhPcWVvOU9lTW9KWTEvQWc2NgorZ3NnOGNDcis2Y3JtY1Zyd3RvSHc0YkNlRS9DSVZrUmgwWHJ6Tm9Ebm4xWFhLWTJBdXdHM3ZOMEZ1eG9mSHdpNgordkhZdkVob3lwZ3NXZ3d4Rys1bUZYalhjVk1hQW9IRDhveVNMdlltSVhCTlIzQUd5d0N2RzRzSzBkNG1iMWM0VgorMEV5K3lTb1BweWVZUC9zNlFSU1JBYU45cmIvVC9Za1RhcVJ6R25NWU1mcTBXUXp5KzBoTFM4anZjZVIvRmNzSworUmQ4d0J1S2M5SWRIL2FlcUR0V0RkZkd5Z1hLWjVBUWF2WUZoL3dVMmRqMEpLWTlhYjlKZURHdU9JcGpvODhPagorY2lBcnp4OFYvN1hKcHhXeExrYzd1RDZ2OW5maUhncXFGeXFRRXZoa2EyYnp0Wm9SVWNuR0NVcjlTQkZCNWJRRQorNkYrSXhOVEdGS0J6clErRTlMa1NPRXpiWnl2YzZjbEwyVlcra0MxbC9GVGIyQjR6cHkwT3dING1Pb1c3cnM4RworWEVRa2s3aENBd2lMdExhL2JUc3lvREJ6SmFNa21GTjEwVHlTd3JMZWp3cDIyVVFnRmVNZnZPSi9HQWxSZDFsSgorRHVQUVQyMWhDZ29vMDNFbjJ3ci9YNlpHY0JHYTJBb2NPcGNnMTlTcXY5djRjOTRpd1pseEYzMlpWaXM3MVJXMAorM3ZaMlRDMFp0TmpwNHpsWHlBN3BUdmpZSGp1VHNkd1B6Y1pBVkE0MUFkbmc3YW9jRHZzVStQOENsdC9CQW1HVAorK0h3U21iQStjZHI4V2hKUHpKMndad2dlM1JjemFhWkE2RkJ2aTEzUUNHZFFnaGdaTXRxRUk0SE1UMjlVd1BjPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgMzQ3YzkzY2FiZGVkNjE2OGM2MWZkYzg3NDBhNzM1M2U0Njc1MTYxNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFaekUzRlFEUWpHVGJ3QUFBQUFCbkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt4TjFvWERUSTBNVEl5TURJeE5Ea3hOMW93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHpORGRET1RORFFVSkVSVVEyTVRZNFF6WXhSa1JET0RjME1FRTNNelV6UlRRMk56VXgKK05qRTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW5jMjlZcjZld1FqWVRlSFUKK0tIU0JlL3dpTjRLSmdDNGhlTUhVeDhtT1ZvZnVDSU9jVWhWRE43VURvejVieDdvS3BueENzaTZhRWRJVlA4WTEKK05LSTJoOHk4anA2WDhHWHZCOFEzQkJkeUZtd1l3eFU2R1JBekJjd01rN2xXU3gyTUk1MHEyTXdNdmY3MGwrNk0KK1Q5RTdVRE1jSlZJWkFicmhBMGlHSjdkY2c5Y1hBY1V3Z1E1N0ZsT3gzUkdOaHg1WjBoYUQva2owNXpkWG9LTGcKKzBBdnVMRVZzb0ViRGZ6WU5FRnV5UUhmM29Hb0xScU1yL1llZFZRV3FRVXRHcXZFTC94NXNuT2MzQWkrM09vRXEKK2VwM3VOcGF2bk9UYzhJb1ltUEFOOGtiVVN6OHQremo3SHpxNk10VnU3MDB2TXF1T1paTGcvTVh2UVJkd3Q3aE4KK3dSR2FIUEI0aUVoN2RkN3RPZG8zdmFMakEwTUd4dHA3c2gyVEFrbkdQbTdiWUJJUDhXQ3FJWWlMbUdDOVI0aUwKK3VBd0dxb29iMWVBTC9JUzRxQ0ZiUmFzS3BPSU5zOG9yQVhRT3FiWTF6QWc1RDREYUpJL0oxZXdoK0V4QURRMkUKKzBuc2NrN1o3VEpqN1NkNHVMeGZmUWJIZ3l5Zmg3R0ZsL0s2UFcyekhpRVlFWHY5SFRNckFBQXk4aEZJY1lDYW8KK3JZeDBwYWdvem9ZUkgrMFBwUDhMbzNZVWVaOEF6aDNYSC9kS1NUT3pqbnBhMmhsM0k4ZnF4aVJrZzZxVDE3Q1IKK2Z4SlhCRjYxUm0veE1kbGhuNExTMDZSTUpSbnVnTFdJUjcyRktzdDVDelF1T01PWjl5bjhDUTBtNkdzckcxQXoKK3NXb2srSm53c3pXNXdkb2xBN3V3N3o5YVRYTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZCUFZXbGJOOGlFelBTRmMKKzBqLytvbTM1NnNtNE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQkhzSVQyZFg3dWl3Q2pEUm5SUHovdlpmbHVHU0duWUZYVG52R01lM05OTXcKK1pDTC9hb25oYXBRcXcvYkZ4VEEyRFpKeUdqUCsvd0dnVFdpTFJ4NUFoemJ4OCs0NlJyLzloTHdmRFZjSk5VMXQKK2NBdExVY08zM2dJQ3VBZUVtYStsbCtqczV0MnVyNWhBcUF1ay8xbDFZQnVEOC9Fc0s0Y1Rpai9NY0xRNG91MTUKK0Y3Vy8wd1U4d2lCVWU5bHJPRmFSMVRZTzk4US9obnhwYW53Y3lNejhRbm5BTDNpOWhKcUhLRHFuS0hIWTR2SVIKK21oSUQ4ZW1IcDBDSy9Wb2dyYjhIV1pBTzh2VSswZ0ltZjgzNU90TU5yU0pNN1JqbUwzN1YwU2dmOTRnWUZJc0UKK1BYWXZ3SE9sdlRvYlVXdTUweERNbCtUK0pvVGVhTjdsS1dYbzl6SkpXczJEbjVDeG9wbjJDVm5Ia1FqY3U4a1EKKzc0TCt2eDRKcmwzYXJwYUZCWDNPM3RNOE9TcmZrWS9qbG5EYUtFblNhSTd2eWdhcjIwYXdjTklldDljeTFrWUgKKzBWNzBtU2RBRTQwa1dpU3l4dUVRZnRnYzJQb3BLSlZValpmWWpiQkZCSmNsWjZXL0FVTSt2b1hDd00vQUIveFMKK1BVWEJwbzZZNXBNNzRXS1BmMW5aSzdTbGVHWGlZeVpnR25sd1dUdDJ1UFRMWTQrdEhZMnlsbXMzampDT3JZUnMKK0l6YlJhNTdYTFczU0FSekNVZEVyNmZBSDMvVy9KYzNZVmF0MzhzVnZrUVh1YzhUQUI2VDdRUUgwdXRLUFBiZUQKK1pHYmt5dDBOMXZueFh1MnEwcEp6eW9qYnRWU0hqOE0ycnd3WUsxN3U1RUxZbUJ0N0k3elpmZ2NsSTNKb0tOcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDM3YWUzNDZiYWE1NGM1MTNjZmYwMjkwYmIzMjFhMjJhMzRhNGE4YzQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWUdKSXZoR2FzMTBtUUFBQUFBQmdUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1Ea3lNREl3TURrMU5Gb1hEVEkwTURreU1ESXdNRGsxTkZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzB6TjBGRk16UTJRa0ZCTlRSRE5URXpRMFpHTURJNU1FSkNNekl4UVRJeVFUTTBRVFJCCitPRU0wTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFxSWFsMEs1TWFlVUFFMmFLCiswbVN6TG1MZUVGUktjOEpmbVlpOFl6V3ROSFpiQ1ZkQVYvZWMwckRnMWk2Y0tCMk9OZ1ExbEV1SHNxRXpoOHNhCitFamRqK2dUQUJKUm9BRXdlT1hWWHlDekR5SmNqa1hTaTRWbko5cDBuazEyQW41RU8reElrckR6UUtJMmZXUStQCitkb3Q0bTdlQ28xTUNsTi9yN3VIaDhYUC9FUXRqTUxBa3lrNnRuaHZHWDdDQmtvcTlNdWtQY3BkOU1qbXd0QWFHCitrUTA4Sklwa1RibGFqUngvVkFGZEUyeFQwSlpxOFE2VkRzRzVkTzBGUkFhak9WWThMdWp5dVFTcmpjZy9MNFdNCitySHo3TUpmT2ZVald3RE1TYXMwY1V6eEFmUUlPUlZVZjRUMTd0aGIydC93V1ZORHh2cFdrVXZHR3A1OW9OZFkyCis5WGhyeVp6WWd5aGt1aS9IaTFxODNMRXoyaGIzVmk5cEoybEU0cjA0Zkh5Uklpb0ZWTlQ2Q3ZLZlBRVFd2Yk5YCitjbkZsWkFnM2owSFlDN2xiREJoRUZwYi9XTEhzcmpSUno0U2YzcW1zLzFqRFN3aHVOS0FGZzdUMndIdS9zeTRzCisyU3RYRDZFa3BMWVJTZ1NId3hqZHlhUmxkdjdOQ3JxQ1czZ3g4Y0Uxc3ZpVDJTNFRDTHBQYXZrZzY4cGdnOG1TCitTWUdYS28vdjFkQnEvaERiczE5SmxTQUp5N01yZ0F6dnlMM1UvUnpwaVBFdjd3MVNOR2NVOEgvNHR6VzQyZStKCiswZ2s0YzczWUNURzZqWERwbCtYR3pUcjlEc2plZkl3K1YxditwK3c0UmhjWDFlOHBXWWcxU3owYUJzT09YSG8yCitVeTR3YnFvS3gzenNPeTlOV1A0UjZ6TnZxcmtDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR2hUcmNEWnhzamdUbDhKCisxOVhXUnJSMC9QbFNNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUZ1ZHZlWkI0ZURPM2ltaFRjZWhpSHQyemFyMmprelMzaTFieUhRdGUwNmd6CitzcXBEYk5kb2dvLzdOc1FBOWJ0clVRNjhXSDZsUm8yTW9YcE5WU0NOamk0RHNIb3VkY3dhQUN3UU9ZZ0NKNG5nCityYlU2WkhwSkVaa1dDcDQ0UzVuSzlKNWF0eW9OeW56eXkvOEc4TGI3TXdtcEZ5TitwNWtPdmIvcXNpYko3VnVpCis1UDduY0VIelloZEh5OTlwZlNsR2trSitUYXk3M3V1WEFaN2x3QytMQ3pZMVJkUU0vOFByNHV3a2t5WXRYU0doCisyNGFManhRZ1Z6R2IxcnRjdnc1b1JIWTNmOFVCTVJoYW9xWUM2enc0dGJwMWRXclB6L0FZbXhvSElXQ3VGL1NmCitFV3Zoem9SenUrNkRaSGFxdGFPbXFoOEpHMXNNTGo5K2NZaWh6VzI0R21lWkZoZHVBTjJnSHAvMHBreFpITjhICitiVEpXWHJINWNiK0hJdnhQMjQwZ1hBRE5GTmlPcVpuU2Vxb2VjdVdvTlMzV0JjM0pLaXh5QzFHNTdsUHR0dFFZCit4clYvZFZ3SVExb3lNMGFlS3RmOFE4MnNGcTNWQW1hT0dqRzdTQ0hrVFlvOUJodU5sY0VEY3NHSzYvVDBMVUdsCitTYmtmM0pjTnBrYmhuVzZTeFR6QWxIdjdNQWxVNENCdnhSV1VHekQ3RXhBREdUa0VXL2VaaDJxb214dzBnR1pSCis5d0EyOXhSdTNkcy9DQldPWEx2SGhGREl2UlpraWlMVUVPMVRzdHU4cHVDSXd0Y2pKR2xEWkw5NUhtZUI4c0VRCitGQmxMTnE0cGg5bmZYN0VCcnJGNExYeXJ5R0hLNXBQaVdjVUs1WDFmYXZrNHV3U0NZQ1laOGNCYzBRM2IvU0U9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCAzN2FlMzQ2YmFhNTRjNTEzY2ZmMDI5MGJiMzIxYTIyYTM0YTRhOGM0IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFtQTRKL1MzMUttNWVnQUFBQUFDWURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamswT0ZvWERUSTFNRE15TVRJd01qazBPRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMHpOMEZGTXpRMlFrRkJOVFJETlRFelEwWkdNREk1TUVKQ016SXhRVEl5UVRNMFFUUkIKK09FTTBNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW4wMXp3WUoybEJuVmJPSkYKK3RDYVJiV014RC84QzQwQVdKYzFxUlFKVjNkd1ZaUTROM0p4VUYwdXZtbE1tZ3hzek5qblhmWDNMN3NheXBOdFkKK1BObURwZHhhNkRnUnorYjFLanhVQzBBTlo2VXpYVTQ3ZGdOZXk3RSt0bzZsV1J5REpDNDRiWmY4cmU4SzRTOVgKKzQwRVQxM215bncwSktKTC9ZTk5kd3hwN3ZVaGhpUUpkcHNHdDFoQmxmZk50ZzFQZytDRVM1ZnB4U3ZBSlNWdm4KK1Ztais4MDdqR0doSllkclZTSnpRWDhNeTNzU0N2cHNib2ZQNDc5c2dhYi83YWRta3VQVWZJa2U2d0g2WkFBbWkKK0NFaDNBUlNqMXdiRlJkUVFFQ2IrZVM4OExjZnljVmFheVNkK1dRcDg3cmUvYnlCQm11THU5b2lkbDQrWUtqdWoKK01Db2NHUWpkNzV1NXFxVzBPTUlxZ3ExM0ErTmQ1K1FLSG9HL05WR0hOZlpma2lMUzMvMTNoSDNBYnh5RGI3dmoKK1g0RmdzZDF6cEg4M0JjeUUxbXEzRmU5aGlITTBPelhJVGNOYml3WEZZQTAyelk3Q1hXdStuVm04TmtFTHJOdisKK1IwQ1BOQjBwcU1OdjBBYVNRZ2lhV0RwQ2M5Wk5CNFZjcXVxZUxDZDRPSkR0WXJSQitYOUVBM04yZVNVVHNFcmQKK3g2Y3NPLzk5VDdzK1NsWnByNXZWTncrZTQ4OGY3bUdEL2dRWEJiV1FXWll0azU1eW1NM0NoUXNFRDV4Sy9EQ0oKK1pZZXRLZStwaGlGMTdsMUg5WFFFTzA3dlRyaFJYYktkcDJPVGduWVoxcFRtak1JQUxNemczTHdoWHJBdW95OEkKKzN4TFFoMjJCbzEwa29yYUhrY0plM3VBdnRERUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPcDNsdWRIS2hCRThhSzAKK3ZrdVQ1YUlLY1Izck1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQlc5RndPU2gvV3BUdzZIRTdNZEVtR3VhMDhqRGxRL0w4Z2I5Wm4zTDVFUVAKK0tISzg5YTFYN2VDMnQ0bU9rVWhjSzdySDVFUzZKN28ySzhBSXZmUVFpN2t1SlBwaEZRTytlcHh2TkM5RHJic0QKK2JtR2gweVd4dnBralNXeHJmWXUxY0VkT0pHRldJY0ZhaVlxMG1TQVVSU2xvajFUYWxmN3kvMTRrYWNtdzBxM24KK3drWFFGUFdFdm93UWZBNzFuTjZIMEdHNlRsNy9EQXBqMHFNOHZraTkrUW5SdDhraUIvcCtjcHVDZ2pMY0lwUUIKK1NLV3FvQUlRQmUvdUtDQkxRS1ZQdnRYWHR6MkJZMERYekwyNVUwZTFlRG5UTjRLdWQ2d0hEeUN2WEJNTmlWM2oKKzY1WWZXd3FST3VRM2J3VWVReG94Q3ROaVVnZmFXMnVJY0VuaXNsak9rN3M5bUJ0bmc4MGVPS0xTZ2dYM2EvL2cKK1Jad09EcVNvSUpMV0ZIQmZ2SjFrcW96Sm85YVBWR0c1dytEbmdmalZ3UnhaVTRUSnQ2WTU4SVIvS0UvbUFJdXoKKys1N3p5dkVLaUNpRGJ3NXVZTzRtaUFDTkd2RXZvcStoWUc0aUk2Z0sveXZDNEthaHdGQ2kyQmw5ckhwSXVyWWgKKytMRWR1cWUwNGN4QmsvUEliY1ZpSWZQclc3VWJNazkyYUdKVFJXRUllVk42VDdtcGJTTGdXN09QSEtSMi9aVzAKK2hIamhYOUxMczRaZy9BbDFCOFJFY1JJZFA5V0NjbGxYOTBLSUtPYUVrckxiVFQ0YWp1SGhzYktGVktkZGMxQW4KK0VWUzBRK0ZsMTlGQnJVdVVEYVViODZmWHBRY3NWTUZYcWNOMXJqQUhVcm42MHFxL25SYlkveDRWRVNGejZKVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDQwYjg2ODJiOGQxODQ1MGEyYjA2ODQ5ZDliNWNkOTZmNGNkZGY0YmUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWVjenlDNVlWME1DRUFBQUFBQUI1ekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlOVm9YRFRJMU1ESXdOakl4TXpBeU5Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwME1FSTROamd5UWpoRU1UZzBOVEJCTWtJd05qZzBPVVE1UWpWRFJEazJSalJEUkVSRworTkVKRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBek14ZGpKKytaOTFaZHZqbAorcFczUTE5ektwNlVaeGlFRW5nU3ZvVzF0SGFXRmZoR2hNNmNLWlJwVGpGUEo5SFM2NjlCaDI3ZjlYS1ZndWxEVworc3cva1pUT0xCaWhKUjE3Ykl0RTF4VFdUNmkyb0hWeXduemR1QXNnWmFWU2tYWXU3WmloaitMdklpU0MwcXhrVQorcUFTRlZTVnE5eXRYMGJnck1YRlpFTG1WR3dUQ0ZHQStLMnkrMmxzdnF3K2JoVE15MXF3enJjTDloMWY4T25icAorWDRmQlkxaHZEWFh4S1RDcUhNT0UvcGh1bzlLRzNOcDZMejIrN2t6L0lWRG5kbG9sVUtKZERVRVZPaGdWM3JhcAorVWZtbVRWaFVrejU1bVM4OXcwZHhaaGNMZDRaU1hUbkllYWdsdFN5bW5ERUpUTFVvT1hWNkJEeUd1dnhEUDFWbworbW1LS0NkcUdVM25SR1A4MFBOemhhdmJqOFVyT3dsbkVWeURrY2U5RE9EK25JWisrMzg3ek5Jc0ZUaXlrQjRkNgorWlJ4bmVzbmY2ZldMWjQwOEtocFJERUU3Y3FIa1ZQZnB3R1hjblBsaEJCZytYemcxRGprTmFnQ0ZwZlJpeStBagorK1hRejVEdlA5cVE4MXk1WDNIcnBBM05OY0ZRZjNxeURmUUROZ0VYeHVMNVNSdUw2bC9UV29aOXZIeUdoc1I5dQorWGRuVlJJMFk1d3kvdVFDVkIxMGtrckx0SW91Szc5UWxmMGZoNkdOQjdheVBXSEJFMExTQjI4aXBRUmx1T0ZXYworUGxLeVBBR1pPVDhOc1YwRTRwYllQM25sWDIyWXIzNFoxOFB1NFMwN1cxMWxmWlFhWjlxbHV4bkVLWDJwc0FHegorZ1dNY0l3dS9oczV1UHppVzJ6U1hIWTlGMWpFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdpZkVMWEpaVG1PQm9oMworanQzV2dtN3RXdTNmTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFjN05HbjluVFQ2WDFXMmV1ZVd0b1NXSEcxS29Xd1E0YXBDSTBTOGl3VGtQLworUzRxOEIwK1VvV2pNY1hUREJHeXBldjF1eUtYY1FBRjdER21XMDZJWHhxYloycUpERGNycGdwZFlDWnloOHhxWQorRDBJTVpsVDZDTGNJUlVIOFZRSHY0YTBTOUJCL280Z0M1SHc5eXlZemlyWnQ4ekdrN2Urb3NNTnI1ejJ4RElZdgordm1JYVZEd01SWVRpeDl2SUxCYjVLUGdVRWxXbEVyMFppL0hWTUxhM3A3d0FONnBCcEF1VmpEWTRZaVh5TmNWMQorUng2RWRMOStLaW1pR2N4RmJpWllHRlhINnZFK3AxY2NlQmViYk9HOXBqNlFzd1FVY000bjdmN0dJQjUySWFDTAorcm42NHY0NGpBWFExZ0RTdDBPRml5Vm93cDZvM3hzTXhQb1RZZVBsbHF6TFJQZjd4NVM2YlR5VHRjckJzaVNPeAord2YvVDFCTmxhUWNjYWYyQWN4L3FEQThWSXFXU05CT3BsVzBZd3ExSG1KdTZaRkY2aFRhMitjNWg3VHU2QXBxSworb2JBeWcrZk16Mjg2NXZPZnBWZ0QzYzNWRDZmUkhDMUNRU1RXOW5nRjI5TVAva05mckRmcjlEc0I1c0VDT1BiOQorMGZ4R0ZsdHYvejB3bFppMlhTbjVIaUgzRkxNdFVmTWwydm95VFEvM2ZLN1E3MWEzKzlWZFpCV0FVTW5qQ09rNAorbnNmZkFlaG5xNStrbC9nV2xBTGx1alNPNHRjc0dDdnJrTDlBajRkR0owMVZJblhzZlF1N25vbDNJQ1g1clQzZgorenQva204elpiaDZzSVROamd6UWViTEY0SkFsSnpiYkhTa3ZBL1RQb3hHd2RpaWtmQ2lTWURGZ0o4OTRYdW1nPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgNDZmMjZmOTYzMzA2OTFlNTYxYjcyZjdhNjNkY2UzYTA1MTcwMzlmYgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFZNkNxSjNiUGh4dmdnQUFBQUFCampBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJd056SXhNVGN4TVZvWERUSTBNVEl3TnpJeE1UY3hNVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDBOa1l5TmtZNU5qTXpNRFk1TVVVMU5qRkNOekpHTjBFMk0wUkRSVE5CTURVeE56QXoKK09VWkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXcyUzFDRmo3VllobEVmcDYKK1BzeGZWQVBNZUNWZTJvc0dOUXFtVVFCTDE2QjlqRWl3d21HTDB6aTArQjhjVlpXZGUxc3NpSHFWa2t6WU1LODIKK3YvRTVHUjN2MS96VWdOWUhPd1A2b3VKNEJmenV0dE0xcnVpOTAzejNYZFpaVTJEeStnaWpkNGU3eVpMTjl3b3QKK3VRcWVSbnFqNGVjQ3F1RlhzVTRYYytmekxNdUxWVkNoRFdaZ1RIWEJlanZ5Q09DRnkvQjdFbmhrNEF1aXFjOEgKK2hROE1WcFFFN2ovWTFkWHU2NjdMb3dEdmpvUzBIQVpCbTFMWXRLdzNPM0VPTGpIQnJQYTg3eGJuUEE5S2ZVcDgKK3pDNGVDWjI0bjZPNHg1dXNpNkJ1WFZYSlJDVHF5ZXJ2QXhzbHZqSkY1Ykt4TDdhYmZwcm5EN0VMQ0RaWStKaHgKK2pBWndqakROWGF3c1FtbGxCZUZGeFIwcnU3UEVSTHpMVTB1cFlHaVNwMng1b05Nd0htRFZwbVRGd2I5OWtpZzgKKzlZTnBBOC92S2phK0treG9sUWw4WVZoR25vdXd2NTIvcTRRSmJYc29EMTZFQnhJNHVoUGE0T1VsYmpjUmx5eGkKKzlKdHRVVld0b0tjZE9qczdoaGFEaXM2eXk1V3YyeHhWOTM3a21VeGZvaW5qSEw1Zy81LzJxUkh1UXBXM2FlazQKKy8vSFo2RnNnU1JtNWJwdHkzdlhuQTkrTjVlYlBtTXlGUXRpUVZjU1hlRXdCWSt5eFU4MXpBeWsydUZjVm9USk4KK0o0dHZ2czNFMzNjZmhQWWNoM1N2WEp2a0tVRHBYZGovTlk0VkJsSVgxMU5LdE1WSHcwb3lXRzU3WVZPaWo1NVQKKzJwYTZNNmFmUTF1ano4QktERy8yeHJDTytMRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZHL2JBVjZHVWh1aDA2bVYKK1B1SnM5OVF0ajdrdU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZk9YRFpQYkRSN3d2SlVwb1RGNG9wQitZRXk3M052SXRSYUFmUENDSW9RU0kKK1VRd1ZqWHNuclFDcVZjdkd6TXF2aGRCWVViaS9oZ2tudllQMGVjZnM3NlhZN0o4TWZ6MW9IdnZaQS9YU3RPdjEKK3o4RHBRZHFxSUNGVVdzaUdpemh2d01ENEZaUVdaQUhzYWhaYWR6NXdKN1czNERGekdrd3hwRXdZQmR2R3JnRXoKKzRuSXhTOUpRN1hXanRqbEtyVlA0VUE5cHVuRUNLWDQ4WjNDV0gxOWJ2dmdtU25meDF4c3NIRHVLaC9RVng2clMKK3l0Wm9pMU82K0ZTajNRcXNTMUV5UzBuTllnUjRUS3gyRzRPK2NQSC9wZXJRb0Z0REJMOWNJTXRjYXNyUWJoVGsKK1NFYzRwSnZoQ09RWFY2QkV0OHppZmpIWit0MlN2UVdvOE04bFVyT25kV28raExnbDV3WGd2Rk5KSVRDZFNkYUMKK3VmVkZqaHF0QWg4aDcwZkFBa0p4QU0rRDROVSsva1ZCQlVscVZrOGtVZUtNaFE2MUM5azlEcXU3am05WklROWUKK3BsNy9Md1YwVmdydENQV3JvUlJzd0ZQanNzMm92Skp0WUtMWEh6eUxZUWNEV3kvQ29malltSXZ1dGRENFZYelcKK3FKZkY0NCtIcEVVWTRCOGZMK0dvT2dmcjdieXVQY2lEa0Z6Z0xyQ24vZGNlTlJDREJkOHc3MnpoNmxYdnNkbXgKK1Y1QlhjTkhCWHgra3pDL2JYVi9DMzRDZTBzY0NGd1hFZldtUDVFRHB0TkdaSGtUdnJwNFJjRGJNVG1XNnh5R3YKKzBlcTRuRWFoNTFTMm56MXJ0WndiOG9aWnUrSkRGOTNuR2NqbGE0UGZINXVvMGE2c3dTTHA1akRMK3gxR2lYMD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDVjMjkyMDc0MjE3OWJjNzA0ZGIxZDhjNTRjMzRjYTk0NDA1NjE3Y2EgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWVNUjh1NTlJd28zekFBQUFBQUI0ekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlNbG9YRFRJMU1ESXdOakl4TXpBeU1sb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwMVF6STVNakEzTkRJeE56bENRemN3TkVSQ01VUTRRelUwUXpNMFEwRTVORFF3TlRZeAorTjBOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcDFHWnhFQVFVT20raE40cworQzVPcmYvckpIWWZqN3pMZ2pEN3gxaVJUQ2JWTWdCY0xPTVRTcHRyNExSK3JVc0cvM2VxWlZQVTVWb2REd2N4VworRmRzdUpsd0NhemhOUUdLVlU4WHZ0VGU5VmRtNm1OeG16TE95a0EyQXZBeW1hY3c2dGVJZyszU1ZCUFg1WVdWMworeTQ5UmVLZjhHNG1kQk5YZ1QyNHQ2dTZCVVFwS0tReUE5NEllTW5tbGo0SmY2OHB1dDhnZzNGYVEwV3JKRlMrUQorZHFNNzNRY1p4K0VrKzlFRWUxeEZkN3cwUlVqSmRoQjF6NFB3b0UxQjIveUZ1anNaSXVqYmFNa3FQS3QvQzlocworbnozTVRZbkpDUGFqZGtYaTVMMGV2S1JBd2ZjZURCazBTcXJTd1paY2FOZjlIZkx4K0RDREphWS85TU96NHNFLworbG1PczNGckhXSHdJeW5qQUxRWjY5Y2Rvbkx4VjgrM2ZCVmxUME5CVHpvdUtxTU1rQm0xU0dnR05wZ3pydGJQdQorSTh3V2hObldFVktGMjB1OVY4TnF6K3JXazByV0d3ZFAxYWpud24wSzNZVVdVV2pQN2pjSlU0eDYzeGcrRTI3aworY1NoeE1BenRONy96eXBvTGFybU1Zc251cFI1KytKK0dBdDUza3JZeWhCRE81Nm9BbEgvT0VGNVRPZVlwSEJSQQorWnJwRVhmWXJyRDNqYzNoVUIwOE9tUVlKbllpblhYUThKdndQUEM3MGdXMmdRbW5wZ2FQNUhFZUEybXE1SEk3ZgorTUlSc0JjVmJSVS9jcy9QcUluM2ZEaE1pNFhlRFJsNGs2dmJpQ042aEg0bHUvLzF5Zm5WYWlqRWh0SUo4WjVobgorQ1NucXhGcXphWTNva2MwOWVXOHFaVWg4Z0YwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9UT3QvTHlkWXc1a1g1Uworekhjd3pyN0JYd0U2TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqdzRTcWhob0VrM0JtRExXZytjdUJTY05nTnJLK1lOUVJOVzN0UmJhNzBlbgorUXlDSUVPVlQ5L0VmWFllNlk5cGJaWVVFMkdFSUNScHJVdXhRQUZYTUFhL013SkNXNytweG5jU2dmN1RjWlRCTworcjVLLzBsazhYYUFJbyt3alpBMnJLSmNpUzB4WVNYZnF0L3Z0WFlMeUpySTh3WTRNTS8zUFNYSVdFOXFYTFpZTAorLytBdCtOZlZ2NTAxeVdHNWpHOW5hbzBMZGt5em55VGV4aTZkTzJUUEdtNnVyWkVyNlBIYktPRW03a2p0cS9EUAorNDdXUEFYNEpRbjQzeC8vRmF5M3JzaDZITGdRN2h6Nk9DcWVrUFFnOUJLb3dKbUwvVVdKS05XamRSTkdVUU9tTAorcVFxSWpVbENNK0lEcDRKYStoN1g3S0VZQjhkVi9QckptSGhaR0NqL1dWYXBTMWxianc2bEJhUW9udUJpQnM2ZgorbFFjdVhLRE5FOWx0Z3VMVUNkcmt3Q3VqckwvdllOd0duaDFCdnFrZUhFc214cG9UTUJFNDNwUXpjZ0ZYaUo5QQoreFowQzR3NXFDanEwWklTZEtFSUp4c0pORE0zTFZQY05hOHlHd3lyYTJQdTdMNjdDeTc3MVVWeDF4TnlmalhvLworM0FublF5b2ozZVYySWhEeU9lNzJ1WkJXUWZjNklleHNVZSsrcWV0MlZpSnhxVUFDNHBnKzFrZERkWXhNMFpWZAorRkNNaWdYRlFSSlVMOHczczNmNTBkVmxWbGtrRUg1b2lkcm1QRFJZTTJSb01vZzBCL25sbXlvUlBEZVhEUDhTQQorb2lMbngxN1JHN0RRTGsySGtVRW1FY21ibUhQYjQvcTBBWVdwSTV4SWd6T1hyTTBseUhMUWJKZUtPU2thR1hJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgNWQwODE1OTUxZjVmNjA2MzhhNjllNzI1MmYzZWM0YmVjZDc1NTRiMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFZM29hZ00reXlMamVBQUFBQUFCalRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJd056SXhNVGN4TUZvWERUSTBNVEl3TnpJeE1UY3hNRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDFSREE0TVRVNU5URkdOVVkyTURZek9FRTJPVVUzTWpVeVJqTkZRelJDUlVORU56VTEKK05FSXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTUzQWhhdlI5RTJveloxRUUKK1NET3NHQ0FSNzRKdzZJYmsvMlFBN3gxL1hzY0dzSFZKcEdsU2Q4TnA1RHJRd1VSNzlDTktub2YyMENkZmdaUWIKK2tEWVM0REl5aVpYdGxoeXNDQnc4OHZoNzAwb2t3TXd0bjhiaEJrdlI5OGdQNWVQUno5azdyRHRHdVBQZE40ZTgKKzBwS3NIYXhFWEpGWGRZblRnV3EvWFpaMmR2cnNIV3lUUzQ3dGM1WnBFSWxKSlpXcEhFNk9raDhSM1UxcFluVVAKK3Zoa2oydnNDcno2dmU4N1hHNzlnNTFsSFJIMGlEOHZhUjF0VGVtdCtBbnB6LzNZc1lXRTczbTFway9pRkk1bUMKK3R5LzNaVzZPc3Q4d2RKMmNSblROSEhVMVZsNjhpV3VuNVRibkwyT0ZUQS9lQXYwZEpRTUZhN1FYZjk2Zi9pVXoKK1hSaUhmRHlqNlNMUmtVSHVHbEYwYkc2NnVCVEVneVBuZjh4SXpPUXBTdE1ZTDR0LzM5NmhxSW5HRXFsNk1pNk0KK3ZobXFrMWdYUmtXOXYvU2txOHF5RTg5YTlMV0RkL1pzdzhhN21tTmkrZkFKWkhTNURSb0kzUWR4aWhpUDBCLzAKKzdpZzdjazh5S3FOaU5qeVhxZHRaeTJlekMyUU9mdHBVUW95Q0dLN1N2SGdPOXlwYW9FUmh4Z0dJbHkzK2JpeGMKK2lFdDZQbUtEY1ByOEM1ZTZPdmw5SGhJOUVjK2RVdnZ4RmVvOEUydXl6cGNVTWtxQ2d0K1ZmUGh6N1Zlc0kvR1YKKzhlTEN4RE9GK254MUlDTnM4eEJNd0RtaVRERmIxS2I5VmRoYTltQllXeE5rYnd6K01wWkpkVFhudjVzVDN3MjUKK2FVeUdUWDFielQ2NThXWjd0ckdMMUJEbSsvTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZIVE4rNkNIWVZ5QXZsZFgKK3BuNE93YlJHcytoN01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQWxqQzl1VUdtU0k0WHV3NVNWVFFTdTgvazhmY1k0K0t1YkNjazFDVUVwQ2cKK1AxZjJmSGRlTUZCR0haTUltUVdGbDdPNEttcHFSaTRsR240OCt3UlZtNk4rNFhOWldSQWp6bjhsL0ExdDZpb1YKK1FiUkRDWmN0VG05RWZlay91NWVUWFlvaWtjSUc1OXFyNlNWa1I4eFgybzEyRGZMSWZqbGovRUhFdUZqbm43SjIKK1M5NWZYUW1yMTVQK3c0MEFSNnNobDNRZ3NuRUJNMy9TOExBRzlJM1l5RkF2aWtxdXRxSjRUVDU4VGpiaGV1YkQKK2QyTUowbGN2NnRXU2R4QkdkVUhTQ0tYb1NFSTEybDNXc1ZHT0t1aWNMUjl4NHdUQUIxVmF0MjlYdFdEaDJRdzAKK1NjNzdONGVPWHVGakdhZDdXOXh3bVJENEh2a3RFQ2RrMmJzOHdUQnFqcmU0cTRINkNoNTIrZXM3czV3Ti9uZUEKK3NjazByUjF0dFNaN2IwSGEyeG9OdHF4SzRJclF2YXh5aUJrdlVwU00vNEUwVTFadDBuMWs5eXZtUE9HKyt2azIKK3ZtTVhtc2pwUHRNUmo3TTEwcWhpZytqRkJWNUliTVdYc3FuOTl2bVJhQ2FZVDFVeUdUZ1hxWUxNM0cxZzhobWIKKzB5ODc2UjlyTzUyMXpxRDNYRGk0QWYvWWpKaE9LQktMampJYU4vRkE4ZVN4MHZoTXhDblF0OFh3eHp1SUNTNWgKK0NwVU1hVGpJb2Z5bTVUaXlhKzdnc1VUNE5VN0JBN3lZQktMb2RkbXlWT1hsOUt1QWNheDNWQ3kvdDNOZTZTbmgKK0wybkdMNjYydExiTWR6L2gxQVp5VXEyOG40OGNIYk8rT0gyYXU4ZEZVYkl5SEFRcmZUVHpJeWpNZ1ZXUjZPdz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDY5MTQ2YWMzY2ZiMzY2NWM3YWU3ODEwMWNjYTVjMTQyNTVjYTJiYzggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWVweC9Md2FKbGFjVHdBQUFBQUI2akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXlOMW9YRFRJMU1ESXdOakl4TXpBeU4xb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwMk9URTBOa0ZETTBOR1FqTTJOalZETjBGRk56Z3hNREZEUTBFMVF6RTBNalUxUTBFeQorUWtNNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBelppWUNwOE5GellyeVpXMworMmZsNnlaQXU0T3VEVmRxUjZGUy9RZjlGakhxU3dYQnNvTStLTFBWOE5ERjJOOTc4OGppOExqaTBDd3dyODFFQgorZUpYbGdyeHAwUC9jZWVRL2VGTUg1M21VR3ZNbkhvNVFPQm1zUDNNTnlJNTJzN3BnMkJEb0tJLzBZTE0xejZiZgorb3RlSnlub0NJblVqcVZtM0h3MEVleitVSkZ1eHVybU5rVFhBcld6Wlpocm9OdUJzM3VkUDRQaHBXYkdRem8weQorblMyMjZIRVN5b2ZndU93ZHBwWXFXMk00SE0wVHFQcjJydEZCVFV5RXRxZVh0aU84aXlYN1V0RUw1T3N2dTcxTworbnlTemxQeWd5WkcwSFg5eE90NnJDRGplUDlrUTRXdURNcTR3c2dFMEFRYmxncXZIV1VoKzU5cVBFOS9lb1Z3dAorYVBiRjJJbHhnMnFtMEpPYnNYbmVlTUQvcEZPb0o5aEt1MDRXS2NBOXNVU3dJRWFQbGRKREMzUjBVV3dBNnBHZQorT2IrT1lFV3RCRDlyQmo5NjdwRmlWNzcreU1RT0N4bWR5MHVxWFpWVXJGQ0NXQWl6aU1GeGRZTDYwMWpuTEJWRQorTER5YW5zbWQ0bEJ1V3c2a1ZrKzBHYTlYUnZoQVFDQlAvb0hmYjJMeHF2ckUvNVlzcGNnTFd6SkJOWE1RaUZsNgorU2Z1eit2Rk92cG00d1YyUEZtTU5YQTUwS3RwRU4vY0pIMjA4SXhSWGM4ZjNVQTNYNysyZGY3SWpoMWhuTUFTMQorbFVwZXF6UHZMVUVDeG5JaXVqR1dDUjB1dE5yZzFEZWxqQlJNdWlVUFNaZk10cXlNMGYweCt1U1NXa0R4VUorcworbUVibVZmTUtFSHNoYmV5Z3dzcHBNZ0pTN2dFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkpLU1RVN0pRSGZlZkx2QQorMk9kVW4xZnovM0Z4TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFrSmhXQ3dxd2dzV3JSN1d5Q1pPNWtVbkRiVmJON0tybDFBRVRiY1gzMHlKTgorRjNuRDVFendRcEpsR3RPOXNMTzFEdFRKbkRWTGlZTzRvVWtZT2g4SXdOR01FaTFualRZTzA2TUF3STkxOW5abgorNmFPNXp1Rlg2b0Q0ZzNyRUsxcGJyRHgySEU2azJsa3dqTW9taXNuenArVWRWS09Sb2p6NjJNUzRQYW5JeExSaworNGVzdjZYS2ZTQnBIRGgrM2pSQlNVVk8vU05rNmZsczdaQ3J2TVJpcmN5L2F2VVBKZU43NmtkR0dPZkU1ayt0eQorblNpV3RvNDJ4c1VPSnc4U1ZrV281K0d6V0V5ZkJ3TiswV1Ntajk3UENHNktoaDBDd1ZvTXF2YmV1bHovd2txdAorZG5EM2VSQldvV2lsOHpBenlQVTNZcGVMSC9jWUpJdUVxUWk3Q0toWS9PR0tSN1hNUXV2MTVJTkNVU1dnaWV4UQorRlIxUWZkNm1CaVUyUHA0MmNaZmVQNzhKelk4aVdBcC9EaFFmTlZsRFVNNk5CSzcwTGFXNFRLNnNENkR3OWd2RAorUTBaM096Zm5TektGWFd6WnFta3M2cUVVblZDZnJIM0xsMVp6UUdGUFdGK3BOS2R5T0wxejFxUEdyT0FQWEhYTQorYkE0N2l2NFpkNkdtZGprTDEybWJ1SWhtWFRrTTJpRTd6TDVYbFV3dFZPdFVzUUgwTU8vLzBmUEtkU2R4OTFSMQoraVJpazN6VnMxaHJDMkZFdUQrSmdxc0pnUU0zd05qTHk4UkpxOGZuS2grN0UxN05ndTlIOFcxMnRUN0VyanFncAorQ1JBN2F3bDBEZTI1UTdDOVZaZUtqNi9nZ1hkUTJuV09ZbWZLOU1RVkN6THE0dkFIWXhRRnh2YTFvMWFVOTFvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgN2NiNGI3OGU2ODg2MTRiZTQ0MjFjNTg1OGYxNWI5NmQ1ZWFiNTFlZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFackRSczB0THFNMHJBQUFBQUFCbWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt4TmxvWERUSTBNVEl5TURJeE5Ea3hObG93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVbEdXQzFMUlZsSlJDMDNRMEkwUWpjNFJUWTRPRFl4TkVKRk5EUXlNVU0xT0RVNFJqRTFRamsyUkRWRlFVSTEKK01VVkZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXVBdGR2ZEI1OXhVZmhSYm8KK1FNUDQxbko5c2FzV2crS0hhMjhkV09IVFFGRGtESUFvV213NXdOdnhVVzJ4eDNFL3A1Z2xCcFpCVlZLTG9TdU0KK3JpUDdKc3hLdW9YeUJyRlJxbWtrMVlFRXpVYWZNUXE0M2p0QVN3WDA2NHJNam9qVXNFV25KWXZLb0ZqNnhRMHMKK3Rxc01BY0xEalBDOEVOdmFXYVpqQXViVXF1eUROQ2kwUVJGeHRSb2NJNGJLbFErczhqMWtRcXRSakpBb1lpV0UKKzdSMnJTM2xsYjV2ZncyMU51bWR3eHNlV2pmSk45RU5rY1gxRHErY2d5QmEwWlgvb3FrWHJTQmh0YU9tVHFDVHUKKy9WUU1RS2E2Y3ZwVHpmYStuVlZ6clp2Q1lNaHVrZGVhRy9rQ1E2UytZTWhBcDhiRkdwcmVEMnRLL1h2Rlp4M04KK2g5RGpndjh5cXZOamJJMW1acmUyNFV5ZzhFQk9yZUFEWTlobWVRV2ZwRldEZHJIclVaUzVYQk55L2JGV3hTRjkKKzN2d2wxUy91aGZmUzRMV0w0YmR6UVk3NnVkY1BxbTd3TTZIOWRlOG9yajZET2dUbTZjUEh2aEhVUWwvQWsxWGEKK2NnY05RVTNBTFhGWm81NTFONnJkeE16b0g2Rmx5bWFuWnc3R3VFWnJhKzYyOEVSMGlGSVJXaS80cGJZakhuQjQKK0tYL29hTkJ4QVNNQ0JSdlU4SWdwR1BlY3lNRHkwejJiQldjSy9QbjVsMlNtelRmK01qVWhuUGJLWTNUTjhnL1cKK2pSMGpYMXhsbnBJdUdvVVh0amVCdEI4aDh1R3lYOWJuWE5iVmowb3BURjdpZkNRa1lCWk9JVGh0akpUa0JkNkYKK3d3WUd3YklGVWUwcnhhTXZPK1Y4cG95aGJTOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPSkY2NTRySzlZUytGVEUKK01nUlNrQTQ3RWsvQU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQWt4bnJHMXA0eUNFTDdOdVlmOWw4TUhEMFZOLzBBSmphcUtGSys2NjVDOG8KK2h0azgySTFJSnZRcGRZbkJrdU9ZZVB6OUZiSFQrd0pmUndWTnAxc3dhMHZOZFZLKy9HNlEvbjJ6NHBVUldpcUYKK0hlWnQ1akhaemVMTUkyZTdOSE5VSTZuQWZKRUJYa0xwVThJUE1DRTYwNVdScmFYaXg5RXZacVVSOUFkTXkxdkUKK3lLMm50aXZLY2tLSXllakM5WUpERUtzUXFabitucWk1WER0eXgyL2cyamtvM2V3cmZ0bzZvaHRROEtseGN6ancKKzA1RHhTYlNiZ0EvRnBOYUFYRXFnUUlyVVJMU1huSmsyc2lKUy9Gak9scnNZMU51ektxVFNlNWNoblhlY0NlazgKK3FOcE5objlvL1cvVkxMamRUb3h2QUVGRTNTRUZhQ1FZU1BxcU1qU2FaODh0NFNIYmJOYzFtOWtWZ3JiL2xCLzkKK29IclYwSUtycXpFVjFXbUFhbnBDWkFBUjRVUDFoeWVicTliM0JKUHo4aVdLZjdMdTlrM1pSUHA2RFYzMHhvSWYKKzBzQTU5ck5rbWtUcWcvc1Ivc24rbHRwRFNxR0FLVkRhL3pSN3VUTW5IbThKbWIrQUpwZEx6OGlNbzJESTNyWGMKK1FDNVpsVVl2Y0JUdG5LZjJTYWRlYmQwMlRjVlI5RFdpaGc1WFlZcnJ2aFVhWEJZRHJSbGtUUGE2RHlESlQzS20KK3NFdVB6NXhoS2R6VGtNY25aRzN6aGJBbTFMSTBHa2Ixd2FuY1JkQ0hRd0tCV2hOeUc0Y2lPUzl3NlltV2ZBeEIKK3JKSjJMNGFFMHF3Y2QrZ2FCQ0xpQ1ErRXZMVGRBcmVoc3BoRUdlTGtJdnptamdXZit5akFzejBsSHZlbTVTUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgaWZ4IGtleWlkIDgzNDNiYWMyMTI5ZDc4Mjk5YzRiNTEzY2MzZGU2MTAzN2JmY2M5NTUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWjBSQXVZZVNhZ21OZ0FBQUFBQm5UQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXlNREl4TkRreE9Gb1hEVEkwTVRJeU1ESXhORGt4T0Zvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzA0TXpRelFrRkRNakV5T1VRM09ESTVPVU0wUWpVeE0wTkRNMFJGTmpFd016ZENSa05ECitPVFUxTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFyZDNIMlVXT2hhN2I1dmYzCitacm54UFk1OXUydm81eWhFS2MyM1Q2VmEyM01MWU9BVXFwTVFtL0RibmI4enNkMU1aTVRZbFAyblM0K2owcWxXCisxaFROVTlPMThabWdSSGRHbXdTbkFELzRDYUY3Tno3TlJRN2gxTGN2akJidUNFUDI4ZUxRWGJBWlJHSWw1ei9CCit5aEdmU0hib2RsS1JqeEJWVXBuN3dROXhCTnppTmlWajk4Qjd1TzRUZlB3QjBrcjBpcWx6K213VzFqUitaWlhTCitaTSszampKZ2Jab0g1bEdEN3Q0dFBPTDFneTNtS1UrR1NCZ29yc3RnZUxQcFlZdm5ZdnNYSzcyV2s1TEZPS0tCCit0TGxkcnBsYlQ0eU9hL1dEcCtVam9NNzBnbkZzYzNUaGtFdkpBSEpYUHJoQldxM3VHU0dPb1cveGlmRXUrcWNhCitiMUEyRFFXY0RsY292QWtLcDhSaGs0Q24wS3drd0R6dTZLVTNqOUlqN1M2OHNGYTFBZk1yK2h6VVJEUFYzNlhUCitDSWVHZmJCZHoza1U0Y205cGd2clZaWmxlMXlobXUxQ29PZzVaQllTZmw0N0NzVXRic21nZUxoK0EwUDdPOFVpCitCd2YvOVBGL0NaakVwUXU5bHlYS2lHT2daQnRhTDgrcUxvbzRJdWFteDF1MTFGdU9BenpSbWoyV1lRT1RrWnZNCit5N1BYNmpnTTAybFFlM096Q0VRSWlaV2pTek82VGg2VkN6bHpydDBBMSswRTRhU21ta2U4MjZyaG1iL2hnb2RUCitmSWpTR2ZIcllqOTJvY29ib21ySmR6YWVhVnp5ZGxuOHBKZnZHT0llbWZsVnVkOUFZYXEvMkZLYWRsVkYvY1BaCitPUGtkVy9WRjc2SWw3Slp5NjVtM1E5RVlscjhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSy96dDdpNHJCSEYxaUJaCit2cGxwZGJaK2NIT0pNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUFaY0I5VjVhekJ6VWIzdUNmaHpYODBMU3U2TmtPRTNFSDFadWVhdFk1bm1OCitMZi94SVdOeGlINXNTa2FpaEp4TVNDKzR4dXY2YkczUEYvNm43RWsyVkt3OCt3QzI3V3JaVTZPbDJBK051OXZXCitBSEViOGJNZXUvRThaZHpRNFE3NnBSYTF3SGNXOVRva2tRdFh2V293emZXSkdBUC9IQ2hlZmhLdzJpNWN3djJrCitTKzdpeE0wa2ZidTNuaTNKakxxekRRNzFFQUdhdnlTY1lqZEg2cHNpVjIzdkxnMVpYRno5Z0cxV0JiS25MQmc1CitWOGJmajhUR1Q4d08zVmdwZG9NT2dlSTkrTEEyM2JkTE5aZm9SbEIzU25TY3c0K3lWY2tXUWJtZDhTNTlVMXpXCitPcEZiS2NnV2NnVUhGRTZXdkVDTDU1M0lZeFRyUVVZcE5aSjNSZ3BpMVcwK1d2UXQvd29wZlE0RlFSYlpENG1JCitvRlJjK0h1c2N5STU4SGszSzRZS0pUdFNHaVMzSHB2UGw1a0I0OU84dDdMOVdqT3hZQ1JCTEhvRDJpTk1URnk4Cis2eDBNNzZPclNQQjFnb2hkdUxIWWI5N2NpTm5OQS9sVDF0NnhiVTFGdlEyZkRFeEUwdXpLR3B3bG8wc051QXpZCitiQ1ZOU1d0VGFGdldaYmlPSTZGRFpiR0RRbEJ2Rk5sWm1kT25OeTFWR0VPS0t5N3ozL2Z4Q3Yxdko0cWw5dlhCCittWFArWHl4OVMzeVU4K2xkZjVRQUtGY01sY1pCN2dQdkdvTFVKMHNkcFEvSVFGWjJ0ZG9Gb3lHVWxuYjRxejdDCit1OG1vdy9hbHFiRisvcGRyQ1ZxbmVjNE5zWmxrQktHVEpiQzArS3J5bmo3Mi94WlhJMjA3b2liL3JLK2RqKzQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCA5YzdkZjVhOTFjM2Q0OWJiZTczNzhkNGFiYTEyZmY4ZTc4YTJkNzVjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVlCMDdnNEhCMlJhc2dBQUFBQUJnREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNRGt5TURJd01EazFORm9YRFRJME1Ea3lNREl3TURrMU5Gb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMwNVF6ZEVSalZCT1RGRE0wUTBPVUpDUlRjek56aEVORUZDUVRFeVJrWTRSVGM0UVRKRQorTnpWRE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd3QwQ1F5NmxKYnRkMndtcgorVXVYYjFyaEt4SXJzZ0pkdkM3ejlnQWRRSXFTbklTdy9aV1IzVTduY1FwWXd4NlJnWitVSFBQbkNyc2RPYW9xYgorZlRuMmhOTllNL0tEdU1mSGZnVXRqYjFIU0p2R0pTZ1hiVm1ITHVSdXpsaHNCZHI3S1IyekJZaFdjUDVwZDA5dgorWVhTK3pzR0p3L0JIc21MMC9XK0pBQzMrQzhQdS9nSE9NWmlQM2M5MUNiaEFkbDJ3WVBUNFRtQ0RZOEUvWmlrTgorTFozVHo1WS8wSk1HTUN5R2o0bmJSTHBFWjl2ODhDUEpvZ292Um1vWW8vU09nazdET1p4OHlQdXBQcFVjMGsrTQoreXlUY0xtYVVIdENVb2hTVFFJL2JGVjRDWEFCcGhFNk5MUzdvME1jV292RTE0MVZreTBZTkRzcDVFSlVVbk1lVQorL0pWT3FVVnBXbjRzTHpGNXlIOS90YjJkYjU3czc4aXpHam9MNzJkSE5aVVdoOUYxWUxscy9UWXRNYThud2UxdAorN0w3VHE4UE1EWWVsUjVJNEtTTWlXOU0wNm1BMURPeG1JMitoV1YydmI4dzZodzJqcGl6aHFnTk1adklINlZVcQorL0ttcDhmMDFmMTdWNEdyd3VnMjdWZStLVTBEMUUyeUFEQ0V5dmljUUplYjJLTHpDQXJmdG5VL0tFU0dHdWpvdQorcW9jUW1BVG0yU2NxYlNFMkFqWVdneW1Ea2M4WFV3WkQ2NVRBTFRiVDUyandDZEplR3FRcWVRYmhIMGtQNHN1TQordFowTlNJSmZ2V1ovekdRWkFCc0VJR01uNDBPd2FUeThrUjFad0hxYnp6Z1hka3RaQ1kzR0dnRkhnNjk2VnQrTQorU0JsUWFaOWlnaXdiWHcyUmRPb0tTS21HT2JrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkR5MUJVQmJrOCtKVXFjVQorL2x4RUJvbVA0cmtSTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFhbWVmYktIQUo2REFXcDIvZi9LY1B2U1BNVE0zdmRMWDVvdVNvOWE3OW4rYworYmVIN1lNTzFRdHIxVW9sQlJZNFJVMzFmc0VwQ01XOW1TRHpuQ3E5NmFQblB4NDN2SkNHZlFyb08vVjZpN2VKWAorSFlpK0x4VG4rNHdOb1hiajBmVnNuRjdka1hkRjI1WlFHT3NCMm1xbXlrNUJaZ0E4U0JvWEowdDZVNWdFcWJoOQorVnJYWCtYM2lTSXB3bWVvRVMvNnR6dnUxRXhHWGpjMk9wTXA1bjByL2JndVZ6aURvakd0bGtTOXhiTXhzUEVzQQorSHdGYTVZejdnSms0b0ptVFFQbzNuSkc5UDJxMlRObXJiR0lTa2pjeDVGdWhWUk1HaEFuK1FnQlR6eER4L2pRdworeTI2N0ljWUlnbmdrZG9xaTBlNk1PWGwzZ1ZQdFZQSFZqWktNSllMS091bjRRYjRyRy9NNnlEbmpnUUlzQXdLdAorVjZHa1ZSZkhRRlpwdzgrU0pNTVdLT3Y4Wnlnbk1BUk5GMGZGLzVYRTBEWENaK0o0WHAyam5zRmErSG5QajhYTworak1HNTF4OHZwemt2UFplZWxXQWhSd3YxNEY4RHM0M0dTVkYxSUFtbWx1SFB6Sng4NXVUem5jVW1XRXhEbTNLdgorMUpVVE1WbGlVWEtyd094SlU0bGdiaUhnUHdtQlZ3S1pISlZqS0dEQ204MkhrUFlPcU90OVZ4NHdvTWpBUU9SbgorY0J1d01wNFlCYmpiZmx4bHR5eTZtb3RDQk9LeVlLSGJ4akpIR2RveFplbERscnpZMW42bkhKU0VTVE5ZbE4wQgordDZXcjlubjVxc2psdXBocEtoWWJERU84b2lYUytqWDhPYVN0MFY1cDl2NnlxZ2V2VnltNmRvbzJuYWs5UW1FPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgOWM3ZGY1YTkxYzNkNDliYmU3Mzc4ZDRhYmExMmZmOGU3OGEyZDc1YyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBbDg5RE5NakNhK2dSZ0FBQUFBQ1h6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprME4xb1hEVEkxTURNeU1USXdNamswTjFvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzA1UXpkRVJqVkJPVEZETTBRME9VSkNSVGN6TnpoRU5FRkNRVEV5UmtZNFJUYzRRVEpFCitOelZETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6S1hFTy91bDVOREx5ZGd4CituRXI2NE1SWWxSNkFzaTJsbUpsSTQ1aWJOWFZxM08yZ3ZncW9SSnUzTmZSRldVbml2bTBzMHhwVS9qNVVic1FFCitWZWhNUXZqeFlmMG5jNDhNT3NKNWdGVjlrQkQ0RWxTMUo5UW9BM2NWRDVLY2Q0R211VXB2bmQ3UkNRWTdSTWNhCitDQ2x3cUUxSDlmaStQOWNDMi9kWlhHaUU2MFhxaitmM0p0Rkd6SkZPRyt4MWQvT0Z4ZWZ4cWFDOU9iM0dHSXpVCitBejVibnpBVW1aZ2EzZXhzemNIU0tLZVRKMWw3RzNTVmMvUWI5ZDZoK0p6ZmlESi9JRUtQa2ZDcEtiSEEySW9DCitWaVJkb3p6NkN0L1pGY1Rua04zNk5JblZwc1JGYlVoa01RbUl6NXMranVjNituL2plRWF6OFhLeENFSmRNYThICitqVHdjYlY3M0JXRzVaVitWL2VBOTlkbTFOYklDdkoybXBPL0FoTlAxS0VoYW9RMVQ3eEsya29EMkZOek9PSTh4CityQ0JPZmRyZnRPVUFDamFiVnBTUFh2NnZadm5QVm43RVB2K1dvd014QTdSK1EzcHl4MHl0Q2JhTVdUNE02UTJQCit0ODlkNnV4ZlE4RUtVTVpKalcvZFV4OGp0RTVRL0NyRkxxN01MWnBBUERGYytDNEVoSTNicVNMZElENE1GT1FCCitZMWlRQ0hIQVpZUHZ2L0NFSVhOVlR1dTFqK2kydEhDdjZMZ0FXMDl0RjR1VHR3YnBHQjdJTEhqTG5MRFF5WVQrCis2OFJ1ZDBNVTYvTFF0S09DdHBFVmFUaElYVjlTRzFkUTk5K20ySERaNDNUR05SekxOY0JmLzRQMTdYOVJodlJPCitaSU5yNjBoOVpyaU1sTFA4aWVSNld0U3ZESHNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTzFUT1ZTMk1mME03TldvCit4Q01sL2kwM0ZiOTVNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUVuUzE5NGswUlRjdFRWNmVDMVhUcU9PSFBxRnpyQnVTYWhNQ2Y3NUcrV25uCisrUndYeEFka1ZTeU9WQzJEQWx2OFZNejVEMHJlMEhZeXh3KzcvZXNXVHpFVk1OWDNUM0F6UXdEYjdiZDJIMzNQCitFQjFPSU4wZTZ5cklEVTkycFplRi9ucUxHSXpLRkhCZEtKTGY4ckdVN0t5RFdTUEIwQitxYkFhaGQxeHoybUZzCitnbEdiZjNIb2NHalEwTm0welZNYlVndDNGcFF5SjFsdEQrTkcwR3QzdWdqZXJoTGt6VEpxZUxBdUluM2doV0czCitQRjBHZzBhcjNPcm9DZWQydmNBaCsvVWR3eXd0Ty82SmUwNmJmQVBxZTJ2NHdYMEo5Z3lOSko1aC9MdEJwalFZCittN3ZvZ2RPT0lTaHVYalRIaVFqMGhPRWsxOEVHWDNPSXBGNlNMbnM0bkxjeWRXRlZ2MXZYaHlLZEdoNFhZYjQzCitoK3B4Y0JEbVZxdlZ5MCt4RE9jMzh3MnJLM2xjU3hTYzNCbzlhaS9XU3loNWNoektyU05sUWZtWEdXdTUwWGswCitFemdWc1pnNmdOSG91c1dMMmE3cjJocUFTR2w0Vk1ZUytzZ3p5YkxlZmlieFJlcVprNWhkT3pDdENwT1hkNGZXCittYUZ2TzJWUGNYYTU5Y2lvS1RvTmVLWEJPbW9xUUdJNUVrOGpqY3V2MTN4NWMrcFEydXQ3RktHZUVXdGw0Mm9kCitkU2hOVmlDbW43SnVTMysrSUVyTVFpVDhXcy9mUkVTbWFpMTIzTFh2by8yL2swSXpYeWdwaGxZcWFya0YxQWdpCitJRTJkQVJkdzdDbzg0S3MybjhCbzBhZytHS2x0anlNaEQ0dHZ6UUNReWdTbEdzQjNnQmQvcHRhcGp3WEh2Q2s9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCBhMjZjZWVhYzk1ZmEzMzY3MzIxOWQwYzJhNzc2MzcxMDJmYjUzZmYyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVo1SjZ1RkdQQVE5Z3dBQUFBQUJuakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3hPVm9YRFRJME1USXlNREl4TkRreE9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxQk1qWkRSVVZCUXprMVJrRXpNelkzTXpJeE9VUXdRekpCTnpjMk16Y3hNREpHUWpVegorUmtZeU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd1hNWDBFczZDOUZGZWpTQworaUdIZDBKM29JcTFDNDlNU2dYNGVPeFUxbFIvS2M3Q00zNTh3TWJWTS8yWlhHd2hvWW9mdlJ3WGxxcUw4bitiTAorRGp3dDRyTHlHbmFiVENTb3FaNFRaRlM3RUZnaDlKMzZZeGpmamdEdWtoZ0dPd2t6NE45VXExcVNXL3p5UUlZdQoraTFabkt2OEo1VUhIMWJYWnUzSk9mVEoxQ21KUGpKSkxSMGRDTnFMYU91d2FmbkM0a3dsd3YzaVA0VW5ocWVmWgorcDBjdCt0ZkxpMzAydnA2OCtSVHlselFiOUp2c0xheDgwdmQ2ekVVSGV6ckUzZFNrL3VQaFl3UzZCcURHdXI1dQorcEdiS2RxTU9XRXBWUzcycnlhZTcxMG9DRG9vMnFaM0tjT1U2VGVyYTNub0FoMjR5NUVrNkc5dlJqQ3BzWUlUQworRkpYdlMxUGd0bGIvcUd5SjJuYU4xREQvZzFkRkNSMEtXTzJROU5xeU9yTUhwZDNVQmw0cCt6WUpBWFhzWE1iTworRjZHMk1aNmlxUHRHaTlPaWxTN0xXS3YzYW8ydnVDUXpzTVJNNWkyL1ZuN0x2WGJYNXRpSVpRVHloc1NaZHVoKworMHRXajRiRmRRWUd5eWh1U3RMb3c1elZIWVlxa0VTNlFKVHBHb3cwKzJjY240U0RLVGUwbStsYTg2RHdBRzU4dAorY3ExNUsyYmZHcTc4alJnWTRDVjlOR0xsTnUvbGQxalhaeG9iM0FHa3JTdFVxN0g5N2xwS3dzbGdxSjl5ZmcrNgorM2VRRWJ1dmlDTk5oNkFmWmdOMUkwMXd2Y3NLRytneEYzb0o2M3dXcUx0K0hhd3o1UENnTXRqWVRYa0FZTTFoUQorZDFYeVJCV1M2WVROR0pZZ3ZUZDhqUzdzUVQwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5WdW9PR0hkMVdkSU13OAorZ2ZEbTJ5QVU1RjV2TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFHNnJieXVucURHS0NCWEZxOUNxaVZISittUTA1dCtpU0Y0djNVOWRFTjRSagoreXhvVng5cVlXcDdVZlFvdmlHRm9QcHlWK1NIMmZMMkFGY2pleGRiNzdWYVc2V0NKNVZCb0JHNnFwbFg0Slp5MgorZFp3aWdaSzFBbXdCYUFqSUxOcXdmM1BudDY4aGgwaC9tWWh1QkRmblNyWGQwTVpObUI1U2J6TDZZdXlKZC81QQordjAvcEorcGliajQzdFdEejU5VnJkdDNNM05VSzByL1YxTTVmTjJHN1RndGY3a1pwVi9WQUtTazRnZVcwc3BLVworVUJHdzhTTXhZSWVUSjVERDVTV2FoNFNhRVlWQ0VpenIzQ2RuL216cEZiUzZ0dFI5QWIydDJnL3JjS1dWUVZFYgorbTNDQkNVeVdKMTJDN053RzFtS2pVbTRWTkx3Y21iVm1za3RNQUozZ2tEbSs4dTd4U0w5T2VQMGExcjBKL09XRworUGY3L0htR2g0U3JiNnlqM2Q4Mk85ZkY1WUJWOVVEc1hxMDFvMUVlK2NQYWg5bTJzQytLSW5CTFNuRUJHQVk1cgorekpjUzJRcWNpaXZibjlTZkxXRVN0bnU0T1R2UitNcGV2T1lLTXVkQSsrd2pMV3IwSzBFaGFtOS9VVXdiakJTTQorMzd2eUlOMVcxODFINzFIeWRQMVcweHZ0NEh5ZXZGRU5USW0yVXVUajc1WldSSklJTVhUSTI0WG5sK0F6dHRsRgord2ROVXRvYVRIMHVsSnRjN1ZRaEZ6aFBlMXI4MGFoTHQrNVBMbkt6L3BkSjZZWjh0d1F5WnpNenVReWhLT0dpVAorUXpHTmo1TW1wVjA1Z3NVaXFESVp6NVBkejgvb05IMi9TMEZjVHQxMENsbXJtMWxhS2RaRXZzVzFLMm5VUUc4PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgYzJlZjY0MWMzMjljYjBhOWYyZWFlMDRiZmIxMGM5OWI4OWMzNDYxNCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZXVGckpzR3JMemdjQUFBQUFBQjZ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBeU9Gb1hEVEkxTURJd05qSXhNekF5T0Zvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFETWtWR05qUXhRek15T1VOQ01FRTVSakpGUVVVd05FSkdRakV3UXprNVFqZzVRek0wCitOakUwTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFzZi81emJZSmN0bFRvYVVXCitzN1RuUkk0azkyU2lrQVl1US9ob2JzZ3BpNzZMczZnczBmdEJPVDJPM29lWjMvYTZKSjJrOXQrcFFZTXFVcTVVCitrSDFFMXRla0Z4L0JQczlaaUoxYTNjblZyTVV1NmUyU1ZjQ2hSbktyMHNmSjJjOVBtd081TVlCRkpYWFcxTm9OCitHSk96Nlc3VFhSVkZReU5kempTZzNPZG4rNzNhT1c4clZjdFEzMEVJVVFXZU9MbDUwTEFRSVZTUExWMUNqd1M3CitFeU5ob2pNNVQ5aXFFM3l4allzY0M4YVNUZWRuL25TWmlYSDdoZGdBS0lQdUs2WUowMVgwbC9CUFZtVjlKWkM3Cit4R1VpREg5Nm9mR3d2aXdvOGg4alAvTkdOZVdyZVB3R0NZTi9XUVhlc1M5U2paTlUxOEJFT2lHNDRIc0tkOElSCitEVkJvcnFnWkFNZXdwMFJyYlVmQ1V6VmE0OXlRdnNpZUVpSDJvWXRwUlc2YVR6YllTeXZHUDNNekpiZzN3QUxOCitERE5XQ01WUVlSR0NTaUJhTFFjNkg5NHBvc1JNUXZJK1liNkM3WnpLVkdKWm5vSGszWE41VFVZQnhIc2MxRGRTCitCT3JUM25jWGZNcHErZjBLQmt1b0I3QzViOE0vSEtqUzBMbHpxNWlXMkE2dHljVkpRRGRGRVByYlZqNlYzVGhrCitEdE5Xb2xWeE5HOHc0TURMT1BXMEFBeDhSWlVlcEZ3TlZWc25oMHBCZXdkaHhHS1UxUldxbm1WN3FGZWFDTEpJCitCdzZiSVQ4M1R6aFN6SkRac1ZiWW80V0NNN0tOZFBXSmxaVGoyUmRsLzc3YTlYVTE0REVKUVprcHA2NXNNaTR3CitoN2xnaTFDVmNmVEIrUVNoMFZmYklTblhlM1VDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSGpUNGpWbXlZcUpOWERQCitRRC9ueHFDVVF0N1RNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWlJYTJxcUdMNUc4RXcyYjhONHoxZ2UxWlRVRHJsMDhDcm4xWVV5cERBTWpsCis1MzZHejVPeWxzUW5lRUVqcTFDWEV0V3BtWHNha0tiYkFzQ0x3WXZxKzZ5U0g4eUthOEV3U1ZVZDBSSDVzK2NUCitmeG5tUTR5WFlyZWp4SXNLZWhmQ0pGd1hubTc4Z0hKTDJYWXFkUTAyVFhxZzNFc1ZDUmhDb3U4MVAwSWpRaUdDCitZZEJubVZvbDBQdWhlT0VLSzFsRVZzdzBoVWc4WFZWdHpORXVINmVqM0JRR2FJQWlud3ZsdEhZSnMvbE9WUHZoCitJM1NIN2FnQ0dJSTZQOTNETC85UWowVVBkR1VQOXMycndpUTBHRlNFdGFUVHdVQjhpYzhEMit1SGJQY09aaUM5CitseFhtcnRNbDZxMHY5b3lwQ3hwNWdOckRkcXZ1S2tuNTlRNG5XTWYrR1g1Zy9VeWdEYktXZG13Vk1HRTNZY3lTCisyZklrbFcrenFSMG9qWk9rc2RkaTBYcEphY1ZsTlM4aDNsWXdCVjdZdG5za3JCbmh5MUFTSGZYVXlUdVV2MkpwCitpZ3dIdlhuL0tsdEZkdkFmMVpjbkt1Z2VqRjkveWloTFZOdkRzRENHd2kvTmtmTkZ2Vkt3S0hnMHJrMk5QNFhaCitJQXpMekRhZ3g4ZWZTb2NFMlFLM3ZYekpiSlNQZEl2eUJUOVJ3N3Zia0d5NlNLbUZJeTRKYVVLNU1md2lKRnhaCitYdFp5c2ZkUTZLRDRxZ1g4eWFTTHltWm9zQXRnd2NncVVadDU3dmdmQ3RwMkFHUFZ2ZXhxVUI2OVNGSlord3lsCitMdlB4aC9JbDJ2WFNRWDJpZGczMFpkRmNrdE8rOUxRNVNoZGJQZWh2bXlxb0dXV2lMWnNWRWdwWE9iWGJ6NGM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGlmeCBrZXlpZCBjZTc3MTUzYjZlMTEwY2E0YWUyOTcxYTA5ODUxZWY0OTkzMjYyMDJhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVovV21qT0tjUFVHK0FBQUFBQUJuekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3hPVm9YRFRJME1USXlNREl4TkRreE9Wb3dRVEUvTUQwR0ExVUVBeE0yUlZWVAorTFVsR1dDMUxSVmxKUkMxRFJUYzNNVFV6UWpaRk1URXdRMEUwUVVVeU9UY3hRVEE1T0RVeFJVWTBPVGt6TWpZeQorTURKQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBblF5WVBhUWd2eWsvdnFjaAoreWowQTdBbCtOS2s3dzc4bXdWdjR1b1EreVFKV0hOTytVZ1FOT01QOWxlWUdsbmZWTDNCbWpOOExDaUtvTnlOWgorb24rQW9pTHZpRFJzRTZrUHd2ZENkN2xCN3IvcXFEVHZPWkVkTXdlS1pGN2pxTkhRdExncFg0cDFlR2FDOG9rTQorNThaUVprL0dNZHhvRi9vVVNrV2pndHJCRGxMQkFUWnoxYXdYY3ZaV0JBai9MdEM0dkhRMHpDNjhvYTN2cWsxTAorUHBQL1dQWHJxYVBmV0RuaGx1LzRGYllaTUE5TW9DOXlpMDA4cFAzaUFFazZ3YTBjOWVVck01NG1tdnhRVjZBWQorYnNzdGlSOVlJMjVvZW1ZaVJaRG55ekovVHUrMTRYeVZ2c2YyTmcxMmozRUlPODV6ZjdtUXpUMHQzTlMzd1ZERworbUlqa0o4ZGUydDlLNUszNzJtRVdqNUx3aXB1SGZ2USsrNGtseWZvWXZhUjR5Y3ZVYlNzN29ydW00Uk5SbzRnWgorOUI3NGtIVFowZ2hSSVJDRytaZWV3YTNMcWowMDVjZEJPejdqOTlOZW8xd2RFUHhCUVgxdi9xUmMzU2M5bFNWTgorVlhKNWhxa0dIT2NFanRXTkkrZlJUSjF2MjF1WkJLekNLYm5lZ1I3TEw5WGo5akpqTVpDQ1pHamhpUHBMcWVMaAorU1c1Y1pjdExKWkdJQStlU01VMFVGd0JWVm12ZkNaa1F4MXNrczRtcy9CcklNSkhCNm01RHozbWtmbUw0ZXlyMgorL2NBU3Bwcy83M1Y1SGx6c0hBcEcrRDNEUTAwSW5MWFhoMHVyUmVFekRIalRqTXpVa2RsODRoQWJTMHlzK3IwMworb3pwOHliZ29RdGZJRS9EZ2dsSFhTV096cWdjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk16TUl3SG55OGlTVDM1VworL2Z4RjUwLzhZbk1oTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFSRDBqYnFzQThmQXhybVMxSTVzanROZUFsVWgrWEw2bkVEKzdJcGVmSDJZQQorR095Y2F4alg2anFXWnhaa3lsZFVaN0lpWUxXbUNIS0dZL1BGdDd5OUhqMDk1OHgwRHgrS21UdWd0Rmp6cFkvaQorcmk0Qzh2VWtaSUZiZVFlY1QzUFNNOXZ4WmJNM1FpZ0xEUVJuUVJlTU1BY2VjR3hOSHZ1KzNxL0lNLzBOT3N0NQorV3EwTnBBd2VIcDVBNElaN2MxN3lwMG9lcUphVTVZT0gxaVNuNTcvT0pDUU82MWp1YXNCWDBtbUtORG5OWG04dAorL3dYd0d3U1BsK1RwczVIeXVUS0pCSzlKTThKcDFnRmQrME1pR3VacmZ6eFBKSlVYT1krRHlqb2FsK0xQZm9DdworUzFmVGl6YzA3Z1B4bXd0TVErdDA3L3lnL25TaTZTYldYaEdyTFBiWjd5Z3dLQ0M2NTNFMWp5TStqU1oxODQvSgord3Rha3hTKzBDMVcxdWt2eEZ0WEdXNGpkd0NQSVRmRXVSeXdISzl6TWxIMzIyYVcwN0lXcWVlRWMxOHZTZ1ErYworR0dvbEZDd3RKR1FkZmdHcHl6ZWtWWm5ZS1A2QVNhRElkbDZZZGx0VHJ5aFpCWGYrdVBUK0dnK2c4bHFBVW1KcworVERBMTU1a1FNTzJvSWlFWFFxMld4L2J1RkRza3RpeXRLRlFVa0NFekhDZlcvWXdQVVFUZ0U2TFkwWlJ5TzFCOAorNkVPQUsyVXBvTENlNjBNRzlCYUNsTHFOVk0ya0FoVWVhUFJYSzJZZndZUUR3dmk1M0lPZWxlMFJ5ckFraW92dgorWmU0NkU0dFhBMTZHdVdDYTBGTVFFREx1bHByaWpYVklHb25ZTmR6UGZNMkNabHlTSk0xcXF1QzIvbWhmRXh3PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VVUyBpZngga2V5aWQgZDhhM2Y1NTYwODVhNjhjOGFhNWQ1ZmUwNzliY2M2ZTljNmQzNzc2NCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZTBhRitXNEJvNVlpZ0FBQUFBQjdUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBeU9Wb1hEVEkxTURJd05qSXhNekF5T1Zvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVWxHV0MxTFJWbEpSQzFFT0VFelJqVTFOakE0TlVFMk9FTTRRVUUxUkRWR1JUQTNPVUpEUXpaRk9VTTJSRE0zCitOelkwTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF1TXZuT1ppREpramxoQ0ZECitGL0YxQVBvZGJoV055Skp4cnBHc1Vzb1Y1THR4K0hvVnVOcjFJeWtjRjRRY1JLRkxJbDU5Y2VpamxRNHk4WmNnCitRQTVQTk5GMU5ER3VpbXp2WkRPOUNVVkp4cnJqdG9TVll0dVdERE5XVmc4bEhZaGZsRG1yN1RBbWJuNG9QOTlzCit4RloxOHF6dlIwVXVoWW9jMWRkU1lEdThhNUJaUXFrNmltN3Y1RnZrWTAyM0dTVHFtYno0Uld4QVdSRWw1eTFWCitOdWw4cXV4SDZSRS9mRGxkKzZDc0JpdWR6UkNRTmhnYzRRREZ3aUliS1MrVklCSXNVOTdJNmhaRkR1UXVQYy9RCitETG1NUUtteHZRMTloQ1V2RVB6WEpPQ3FYaTZFSVp6aTNxYmpvR2xhaDdsbHhNdGZjWFZMTU0yaUttRldzVVo5Cisvc1RwdHdxekJzYzlXVGdUckVHS041MVhxbXlOdEppRURLb3BxcmE0OWUxOS9UNW52dFdDWElvdnRlcUQwclRTCitwODVnemNXUkdhMldyMHRvSk1wWjNvN0h3MVduU2U5eHVsTTBRbElKekVFS1RSUG1JalJUUVJVbzJUYWVqN3ZqCis2T1JtUlZXVXFIRlFyb0lUblpjQnN5MUowNGl1T0ZDR3VRc0lFSmlWVlcxcUdNVU1JbVRLU2d5RDd1dXhVZ2o2Cit5MlZ3WXE1ZVVGSzNpSFQ3V0hKc003U1VKQ3REbzJIbFBZMDZXMVZVdDlLQi9LUDdsTGNyRlNOcUpKMGROTkFtCitRNHhZRzNhRTZVbzVWYWVTRFZPVWdLUEdsNGtXYXBNNXd4cmFtWVozUk1RdWNIY25nM25HMUhSVGFLb3VtVUxQCitSQ1dSWG82ajJEY0VXc291TGtYdWFXQlo5TnNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR1BHcHpkYVVBc1hPT0FDCitiVVEyQnpBZ3dhdm9NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVdEWHdDNDJzNGV0bnJOMms2bTZyVlU1ekJkMUl1QzlZZERRR2dsTDJGcFRhCit5WHlmdkNJQ3ZQVld6QlhQYjRrSkt3QklMdVhJSmZ5c1ZlQVJvK2tIemk0dWFaWGNKMDVzNk9zM0RnKzc2endDCisxaHpsdVNrTCtHUmE0eWtxZXFrNGNXWGdRdVlLWGIySXBnUlBUVC9uYWdjc0FPdElxbE5pczhRcVlxTjl6UE9ZCitqMWRqMEF6TVpPVkZXS1FiNkpQWmxtbDkvbjl6WG05SDFGalc3Qlhiam5EZ2g5S3pQYk9ld21aYkhNWEtlSUJRCitSOHlhc2VsRFZRd1V5NHkwL0xyaVNtdWJlNnlvNWJ4K2llcmQ4dnBiaE4ydVhtS1ZRNEpBV3ZBMTJDMmlEZFNZCitETUtDWXdLdjhmUElpa2J3R0d4VmZ3RUFpcjRhSEtSZEcxMzdvaEpSMHhuWkJHUk5ucHJXMVlEMGpuWUU4eWo1CitXNCtzU0pDY25Hb1g2eDFneTRzQ0lNeStRR2hNd1VBWCs4UXJVVVc1UTRVeE9UNEptamRYa2Y1bVVBTTdmTG1wCis0QytqOHVtNGtwV1FnTUZ2elRuaVdPWHdnV2VpYlIyY3l3ZFgvUCtWSTlhYnZ2azRzcXBDb0hVYS9aSG9oMGRwCitjTUdwQmM4TUtBZXoxRlRvblVqbFlxL2YrVnVIa3BvQ2RzQmFQY3lrUlZkcTR5eUVQbHF1OWlBeVR6UklWVzh6CitYMjZVOXY2a1hyK0dYRGdkOVNiV2ExZEZuZ2Fzd2tjTDdFYzYybmZxUkpjWHUyd0M3ZVBVZkM2bGIxQUY0a0YwCis4c0dJc0E1VVBGMlBWTVpVYXg5ZlpBQXY5SytHMkFJMmJnbUZOTTE0SUlpWWU1MWNFZFNGaDE1a0lLTG12NlU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGludGMga2V5aWQgMTdhMDA1NzVkMDVlNThlMzg4MTIxMGJiOThiMTA0NWJiNGMzMDYzOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBWS9jaGp4a0lxZldYUUFBQUFBQmp6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXdOekl4TVRjeE1sb1hEVEkwTVRJd056SXhNVGN4TWxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0TVRkQk1EQTFOelZFTURWRk5UaEZNemc0TVRJeE1FSkNPVGhDTVRBME5VSkNORU16CitNRFl6T1RDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTWF5WE40ZWd6N0ZtSEw4CitSQTl0SWpuaC9pejBmSkxseVphWCtUYnprcGV1QnlGRkEwNmFmbGtDREpIK0dtR2VnRHp5VWtFS3BHZTlvMk9vCitRUDRKTHhsaXYrZ0RsWjNPYVhsWTVhbDhFQnJkTHArT1JqMVRKVGVXQ2tFUTk4Vkk1WHBIWU8ySkN2Z3FBT080CitaV2NkeUdiU1FLSXE3bnJoZUhNVVZTZlE0cGxWQi9PYytHZ2wwVEFMTkZxTC9ZNkhyaGs1MkZCQ3JLMmVCZkE2CitSendiT1ZBQXU4RFZrT1orUVFOOXFlU3RQOS92a2RwdmN3RXZOa3loTU5ENXF0VXNvUjA5VlI4K0ZDUEthU3ZQCit3bWQrUjdMZDF2d0ZOdHkyc0UvVGdaeUU5NldkcU1Va09HeEtFSEV1dkFlUm50QlBkU1c0NFdidTdQZi9DcWplCiszcGRROVlUaUx5Sk9FVWJ1Z1NmMGxaTnNLcUZndHh0dTRKUjl6b0x6VXlYU3hYNEdjcmVLbjRaV3EyL2JCTnpQCitZSEhTaE9uOEdMM1kvR3Z5T2YzbGFYVXBHOHh6ZUVZZHJKbC9rZy9aY3kvNDV3ZzNiMnRrMHBqQ3pkdW1aZm9OCithVDVhOHJTb2Yvd21QR2pKUUJBTVUxam8wY2xpSVB0NDZ4WG9obzlVSmZQeE1FeGU2U25kVUNxZEsyQUlBYWVnCisxMkNJYnUrYzNUWGFNSEpzL3NzYlRMMG1rWUkyQTJLaGx4Um1uYXFLd0RXMmRwRmxoNktVSnNTOHhFd3hZMjJ3CitpRHBJYUE5czAzM0gzZkxXL2JiS1dkbkE0Vk5NUHYyeU1vSnVoSktMb01zenA1c0JXeDRMY3ordGJsVFArNDY2CitPTG05bXJvVVhMZnhhMThoZnJxSktrUFJRZTZuQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlFES211ZE96eDFOK3dYCitMK0FMSzJMbUsvc0xzakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGdFZvVTE3d1NNY0h2T2g5SGFJY0xWZHo2VHVJQkVSSHNTRVZ5cnVTb0VmCitycmNNZ1pZM2VqeVN6N2pQTGttU0Q2VzdTZDVXTUZUV2VTRlpHWnVLL3ZFSGNKNmhNU0U1d3JDVWE4MkFGQyttCitCTld6YjdHYkFwbUxCWkcxSU1maTUyeGlxSUwwSndzQUtQTloyWXZuUkFXNGJEVWxQWEhDbFYwMTNWWmxSM3RWCittQlhJeE5IRis2c2VFQ1pxbVhWQVY2Tkc3UmlLK3pqU2oxNGI3UjlWMXZDZzVSUC95SFhpeFFuRVdmeHZ0eHhWCis0WFlvQXd0QU90TzZ3dDZXa0dCczJFME5xbHk4bWdLUG5tT1lDazhtS1dWeHN0TkVBS1d2SlpycGlrdjB2b1dsCitSU3hsU2dMSExiK29UbUt3YjlrTGJqOXJkRXJNK0dBbWJqVkFMVU1Ob0taZDhqZVh3eTM0L2RSYk5uenFTa0tnCisxcUsrR0xiMVJ3WXNyd1llc1BKRHFkWUp4Ty9DNFBmNW5PREhteUtBZmVtWVpLd1JCKzdwb2lucEdxaER5SC9GCit0cWM1M0RtYzV5TWMvcXdPWk0xbXdUL0hZZGtRZnVDNnVZMmV6RlFWYVQ5aVJ6TlZKSE1GaDNCV1RuSm1lZmpICis2a2o5Qm1SNHVaOWlUOUNDZ0RRZzdYRGJ4bjRZSkZwVDcvN0NHM1cvQVFJVCsybDdVczduM2JaYUcwTU10MGtlCit2QXFybnFFRExSTlo3QTM2aUtpZDFTdzBWYys3cTBVeU9YZWRKYTUwdWxyZlI2UEV5cGhhZUp0ZVBsQnZFdUNmCit2dm1sWXlOTjd2NXZ2NkwwUk96MkZwT1d0TWJDTHBsa29YNlg3bUJaV0cwaGoxMUNMdnNvWGZGc09pYUlvUmNICistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGludGMga2V5aWQgOWFhZjU5MWVlMjYzY2FhZTEwZjU3YmEwNGZhOGQxZGQ2NjEzZjllYgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBc1dnK291YVpvY3VOQUFBQUFBQ3hUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE1Wb1hEVEkxTURVeU1qSXdNekl4TVZvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0T1VGQlJqVTVNVVZGTWpZelEwRkJSVEV3UmpVM1FrRXdORVpCT0VReFJFUTJOakV6CitSamxGUWpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS0VSbkNjR3RUa21EN2YxCitDdHVnMHhaZmJocDZ6UE5MWjRRV3Y0bGZTTnN5SEViRUMxUXhCK2wvNkVxSkxRNkdBTGFZUXd2c2UxZmh4aGQ5CitvRnVYMmFHWldPT056VmRGRHV6bTRRN09ONFBLUTNSdlJrMU01aS9jZGI1R3lDL1N4SGtYWGtHbGpDN2ZzQ3JYCitCaTEvTU5uM2VTNWgrL25VZit4T2lGS1pML1JUVCtjOGI4UDlQbmp1bS9Rdk5GajlXY0Q0WGlBcnpCbllXY0FRCitwUHZaczN3dlV0SnFLa1hIeG1zYTVnNGRiUzh1VE1pdlcyMG9BVXFGZU4rVUg0dmtMYWxRLzBpbTVBVXBNV2duCit3VWFtU0U2Y09UYTR0N2pJL05wcTNZaG5HOTViSUlVRXgzSEczaUxMQ3NGVjNPaG13eWVvbWhtdzI1VzdCVTJ1CiszSExvS1RxdjBmWWhUVlR5RlFReTdHRkJTODdqWi8xMDMwRnp0cVQxU2l0QnlZamdjLzAybDZqbVA0UW9QdlkyCitPK0RIcWZnREd6UkF3Z1M4R25wcEJ1MGk1T3RJRTJISzhLSVUyUWxnRDV3T3ZST3lDOUU5SXVYK3FKeUVONmduCit1YU9TRHFlQjFKNzNKVVpPZ0JMREM5cnN6bzB4blA2Uy9rT3ZKOGNCVXYyOHRqZHhYckIybDRYUkVNSk5RWlNKCis2ejBZV0daWWlTNXdLL3lQWFdyUm9PQ0puZGNyZk9rMDViTEtDVndVeThBTkRGL080YTRpTWJUNEl3cFd6eDdKCitLdmpPaVNiaTBISktNdlJlL1o4ZllGNUZuZHYyV0xyWU1XSVpXcGtMVHN3L3gzZGkwUS9neXViQVZpYVBITDNVCitDc3Z0TmpTWHpMVXJXd2FucmRyZlZ0ZHFHeXJuQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlIrVWFBaUorMnRrcy9QCitmWGNvTXREVUk3TjVvakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFFQjdqNzI3bFVwdlY2Mk1DMStSMDVFV3BSMGc3Wi9VdS9DWEJTR25iaHljCisrazhPZmhpNlVGT01pK24xNXZxZTVabW04Z04yaWZGdzd3SzVsRGJ3WjdFeU5UMUlQZ1B2NjVyeE5pOUdPNGowCitpM1czSUNuZXpGV3d0OFNPb0ZiVG1KU3FsOHE0bWhmckx5T1hBRzA0a2JEQ0I5SDRnRFR0akxad2FUMStCS3NqCit0V1NkVmxkVHBJWThOOHU2alhaeWhDeDJ2REJmNVAram9CSUV6RmRDVlYvVTQydjlJblFkUXFWT2xzeHByQVplCitYSU5wQ1g1OC9WZTcxcGp1clZ0MXJ5dXM3M0UvWnJGL3VZS1VkV1pTZ1ZGemJqZUNqaUVUMlBPd0J3a3Q1RlA1CitjOWhXTE1vTXU1OXhyQ0sxYkZBQ0dkQ1ZsZDF1dlhuNHBWSHM1b1NGVW53LzQydkJWT2s3QzZXdHVwcmFYOXFxCitvUVhPdUU4L3c3UDZaWWQzLzVGSTFYQ3A5UWFHL09zaUlYRU44WEUyRWI3b0JGbVFJaS94SjVscFJ5eUZ0QXpRCitWMGxnbXBxWU8zcHNkZnFyWFdteUc2clBlbUhvTHUvWkszQWl0RFV0V1RKaFRhSzlHbVFwMUFQZVhaNUpzYm1OCitFR2Nnc0FTRURGQUNzZFM3Mkd3NXl5UENCMTV2eGxUdy93czUrK2k0TktaNThHL21QZmNidFIzNFZnN2x3YlA3Cit5ZU4yN2kwUlhBRU05Qjl2NzN3UWJ2bXVKNWlneURlUnk2TjRqVEFPbGplZUdTODNlOWdaR2dQbkVlTTk4UWJlCitWQmZIaStVWnQ2K2J6SGxKMksyK01XT0pHWUNtak1JZlFTMzdpNXBINmxZN3Bhak1lSzhTRThLMGVIdXZmQzNLCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGludGMga2V5aWQgYjA2NmQ5Njk3ZjVkM2EwN2I0MjVjMTBmNTg3Y2NlZWNmMTZmZmU1OAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBdTRjRFAwK1dGa1Uwd0FBQUFBQzdqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01Ea3hNREU1TWpBd05sb1hEVEkyTURreE1ERTVNakF3Tmxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0UWpBMk5rUTVOamszUmpWRU0wRXdOMEkwTWpWRE1UQkdOVGczUTBORlJVTkdNVFpHCitSa1UxT0RDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSnYxODV6clp2czRMZlRlCitReitlMTdXcmJTMGQ4NjU2M1dEK3NjNUpTNnNYTmtCRCtKYlVqU2t4OGJkMGk5WmVBdGl2cVhxbWVtWC9LNlRwCisrNUhaQ1pIbXJ0cXl1YmVxRXhGNmljeUdTZmR0QTZkdmdnRTdJdFRuSU5oRlJJdGd2amtzNVlNNFFrSFl6cHB3CitadFdhMERGeFBrelJmTFh3Sld6MXBsWURwWjR6a2krakZCVlJwSVRxUTR4dkZ2dElBMmNDYm1rSWEvcDdhOUl0CityaXhrZXJCWWNiODkra3Fub2swWHF0aElNV2lDYnZEZ1lBWFpVcnROMmVLczkxNWpMaWJBbFdBaDgyRzBQMC9vCithZTRiVDJsRG1ZSk1yZW9XR0lNclVjQisySTF3VkZEQ1BsWXBpM3ZLdmoreWtNZE1rK3pMTWIyM2ZTZmlZNFBjCis3UGVZQ083WXBSMXdBWnQ1d05aWkhzeUYyR1AxYTdXWU15eDcwb0l1VmU2VDFBeFd1cS9lNEk3OS9zMFlXOGdMCit2a1NmQTlkQ29DeXFRazYvbXhhekZiVUp1ZVppN0tBOVcwNXlVQnFFZTF6cmNIWFdKM2dOdzFjdmYwRWJ3TmZHCituYTRiZWFiM0NqMy9kUlFjaXpPZFhCSGZRNVI3OXRNOHR4WXNrNXdGTXo2NDNlWmJBdHo4bm1PM1VaSGVLUXYrCisrVm9rbFg3c2d3ZXhlc1BsY3VoeHNyQTBDWFBrRnZ1dmk5ZDdoQU1wcWFudFE4TFdKRTRKKzZBejNwVW0xVFVtCitWUUVpT0ZaVmIxOTd6OWJzdEtrUUloSlJZSjRVa2t4ZkJCam5Bck4rTXlLV29TMFVWNlEycjlJdFM1cGRJbVhMCis1U3VubnQ1cXVCaGxicGk4eVNud1dDN1plYzFGQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlIwTzQ3dThOMHJ3K21SCitadlJYNDdSZFRFK0tVVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHc3JxMzliTVBIZHUzTWJ5cGlHZUYxWUdxU09QM2o3MGo2R1BhSXpjejJCCit3UDRaMTJwOERWS2Y1eDNJUWdGMXBxL0FtMDUwRTFHOUtiVjZsd3pZbE54ZWl3enM0L3dZb3VjcU92Ty9tcmFYCit2aHJBUnZTYUpsdHVWSmoyd1FMVHJQWW5hSjd6clhvMkxKUmtzNVEvUEs3dnlRdS9vcldiOTd3M3NGYit2K2M0CitvaFNvYms0YWpmN25QZ3VSajlSM2pmZ0ZJYkg5ZklEZWczSDhvVlFvcFNLZXY2V2ppUVhkMHJQU0d1WnFtYXpiCitVSjFraVhzcnpSYmowc2Q4amVOeUdac000ZDRKOGprODBXUlhmTXVjK0luOFZhOHRuUEg2NFlqUFl3ODhGVFBGCitJQTkwWHlZRzBpM2xuaklSbVZvQTRKczlOV3JPa0E3bm4vYk14emRmKzRMOUF1ckRtaXdObDkwYzJvaDgrVEpMCitRUEFDU255c3lQOUwrN21saVA1YjVMc2VVZ3UyUHptcSt4Q0owSmc0Q3o5bTdKeU9ENWZrSUhQWDNQeVp3dGtyCisyZ1lMcDZsQlpKV2xsY3Fqc25ZYmQ5c3F1WFBTSnBzOHF0RnQvVEQ1SGJPSkhrZ0tvQXdOdm9FaHhOYUttbDhICitqSUNPYXlNS3d0a1BCamFxajBWYWZhV05qeitWV1FBdE45VkFDYUh3Nm1RYXlsbmJSOEV1Vm1pdk11a2FkVWMxCitKbjM3N20vSkVzeGFxTHdIcW1kOUNHckZ6aUZ1VEpSY0MzeW1OZHZXcmtzOE5jYlp4Q3hWTjhUYk5PMDVNMWRwCitycDFjNll3VG1UV2IwU1lXbzR6SmZ1d2x4Z1VUdURWVDVJeURiNGFvcUx4S25oa0lJZUpCTWYxYXY2eHh5UUVBCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGludGMga2V5aWQgZTcwODNmMjIxNTJhNzQ5MmVjNTliMGM0MjQzNDM3NjQ4YjE1ZGJiNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBc1kvbGliM1RMSERpZ0FBQUFBQ3hqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE1sb1hEVEkxTURVeU1qSXdNekl4TWxvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0UlRjd09ETkdNakl4TlRKQk56UTVNa1ZETlRsQ01FTTBNalF6TkRNM05qUTRRakUxCitSRUpDTnpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSnlnY2RMSGFudWZKa1lVCitZalYyLzBPa29WdytwT2pFaUJ6SmRwallkUU9sTDZNNWVOeFNJend2eGswUU9WOTZWL1I5dk1zQXBiTUl3QnpSCitlbkkzSmFrZHY4SVJPMGZpcmppRFI5cGkvWW55bE5mZG5vWC9lK2J1dEw4YmJYelZUOGN0NUNmYU1EVjFwMHp0CitkKzRScHI2VXFpNkVMakM4WnVNakluQXNuQWFONGtwUitDNE5oOVpYdHlOejFidlNtY0NpbmJGYnltVGsvYnh4CitDTHRmK1FtWXhtUEpneEFyYU41TTAvakw4QXcrbFhGUmdTUlRlUzliTUVuMm5HeG5wUXhoY2ZXVzl3cjJWdTlVCitRQ0RyaTdpZmEvNFVsNlpHTnYyWE9ZUUNrQXlicE42cU1FTjVGRXV5cTc5UTdEWjN5RjRpNmlCOGFxZnlydzV4CitCZ2tsSUVxM1U5K292dWQzMHB3QkRHZlNwN1RMZG15WFE0QThyK1IvRkx4dnN1alpyK0MyYW5CcEdJK1FpRjR5CitWNzNrRUdXUlZpbkplTzYxdFdwRGI2Y0J2N1BwTFBpREJ3ZzRITHdKVHVtdzU0Lzd4S3IzcTZ0QUdSTXYrZlV4Cis1SlI3UG9WT3NqUXlwdTdMcnRkYzA3ckhyQjJqRHNUZUZWZTExdUVqN1dPcEVqUzRUcXo5TGxSMmFVbklIQnZxCit5OFY3M3FGd1I0blBNaFRVOGt2OW1BaGgrbUZsVHcwRW5KTUw3THgwMzBNTUNLbU1naXptR3J3L24yNThSSEdnCitNVUdaZVY2cHpIVzVHN3BMajJ5NlZTNlp0eWN0TUUyN3V4ZUJ1ZXIwL3FxcXpDMWRmaDhyM0ZHR3pOYzN1Y1YyCitMc2s0ZFZOTE0rZzhtSmlpQThORk5FQW5mcUpUQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlR5cWVNdUx2MDZWVXNBCiswUXJVMk1vaW9JQmk2akFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHQm9INGtPckF1UXdNWFo0cnVnbTJBMmdtQUFBQjlqS3BRT1c5VXhGTUU3CitaRGRuVUJKS1YzdGFIOHZ5SHY2WjU1NTg1UlJoQlIwMnVmamZndHBzaFhkTW5nR3ZHbnk5MG1pSWkzRXdQVENmCisvUjVTU3B5T05mN1FBQlovREEzMjRQemk0bmZ3THBiRmovZVFMMzRKOGlMMjVvTERKUG9PTWN5YWVPalBRTUdVCitTaGxIZnd6T3FwN0F0VDFSbjRJSkk4ZmJxeHVqTzRrZm4vT25kWkt2V05ObmgwanpSR1lseE9RQzh5V0RNVDFCCit3MlhKT2FlUDFjUVZ6R2g4QzVlYjJaSDVWcyt5YkJ1VHVaL3R3MGdod1VmR1dXR0RCU25XbTR5SVorSWsyL0hSCitGZGNqZHc4bmdndGJGZE9YeGg0VkNZeU1GcS9oTXNKZlIwdzhRWTNQNHBaNUc4QmIzUkE3Y2tTck10eVpCTkY3CitYOWt1d3kyNzJxYVd1NWxLenlzOVlZeUZlUy8wSnpDUGVsVVJMT24xaUthQlZjKzRwTTFVcmRFRld1VVNEOW9MCitjbzFaR29VTnl0UU1qMlo0MUdPd05reHg0Y1dYbjhWV0JyNUJKcC9LRDdEMWV0WUdHZVVTanpiU0lqYkJmV0dKCis3RFpRSkZPYlpJS0xnYTVHQW1HZzFhS3lRZDNDOTFDWmlmMG1LQzRGL0JodzZWVGVORVhWNDA0TkRTcHpTNjA3Citsb3dTRWVKbC81QXRDV1FxREx5MDBUa3R2NUkxWkw2MzVQTGU5ZEJTRi9GRGRwcjU4MGpWVHo4YVUvMFQ3WEswCiszQ2x6OVZSVTdXU1hjTmpkVEsvSlJGajgvZXdWb0RIbmtKbDVZc2plNnB3aVRiNUpHRk5sckM5ZUhLcmVuSkF1CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGludGMga2V5aWQgZjMwN2JhMzMzNDdjMjgzYTFlMGMxNTA4YWQwMmY1YzhjYTA2ZjQ1ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBdkR6QlBlNzRENS9FQUFBQUFBQzhEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01Ea3hNREU1TWpBd04xb1hEVEkyTURreE1ERTVNakF3TjFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0UmpNd04wSkJNek16TkRkRE1qZ3pRVEZGTUVNeE5UQTRRVVF3TWtZMVF6aERRVEEyCitSalExUlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSzdpNjZ2T2U2bEtBZGszCituSkJ4Uk01OXFKdkZXVnNDYlRtY2xPRllsbWpsZEVUWkx5MHZ4V01YL3lrQS9LeEhIL0Q3RSs5Tnh5SElpTWluCitIcFhva25VOFlUSmpCOTcxdVh2STZ3eDFyN25HMHpja0hlL3FEUXBVajhseXEyVVg4eG1yeWlRTmNRakV0c2ZLCitkVTZaYm5TSTZCTEozR01EVVN6R1REa1FjWTd6dEEvQzhhMks0SCtxdytHUmFvR3FnZE9NN0N1UVY0RXRCdWNXCis0d0d5aFlvK0g4WHM2d1NjcytTY0FPMHNsUGh5WmFJZXNnTUtHeGJtSWJ1MVJQZkhnU1l2THVJY0VKamJtekRoCitaYS84cEd1R0JaQkZnbkt2Q083R1QxQklFMEtpM0dNNys2bHNuZEtnSHhQcXpiUjBXbTQyUzNkOGpBMFlldEcyCit0c0pOSXVYTkgyUnBJUy9EcnFIeG1oYXV1SFBVQTlqb1ovMzZUYWhqTlIxcUN5QmFIVUUxTmkvY20zNktpN0Z2CittanJqOE9PbkZ0VDRFRTk5VXlGbmlJU3QyR1RTSGNNQ3BhZGhQVXYzSmhicHlVaUN2OWNHVDJGTFBVSHNPLzJFCit0bTA0TFAxVncwS09mK1VxMkdRMCtkL1IrcDVaazZRMk5qcTdSTEd4SGJJVitYY2xwT1NXYThSQk43OWZlOFBKCitMMTQ0M3pnY3d0UmE3K0NFQkprTFFiVGZmTEUvdzlYTmRIVkpsRVdXZjZ4ZGRZVi9kMXVxYTdhTkxZMXErWldoCit5U1V1Q0hUMjJSWW1WcU9hL1FCODdmRzhNdklQMHlrQ2MvMDAwanp0WlNVWWVjTTNkVlhUSy85NzdGZGg2bkJVCittZk9IUU5aZ2Nkd0Q4Y3E4L01Qc0NSVTNKVDVSQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlQ1Rjlta0FtL2NaKytnCitKK3NSd0VsbU1JSEM4VEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFFcGgwVDM2T1pLZytlWDFBSEFJdldZQ0t4dWRmMnZ5QmM2V09RbTdIYlJhCit3ZTdxUmszbjVjd2EvKy9veDN0akZ1S2NCbldxZmlISGpxRkNrejhHenRSNFM5T1RvUlNoRzJ1VE5BeGRJRmJVCitwSjFKd0p6Z3k4Q2RnNjZsVWFmQmxERE1FdS9LSGlYOGZRQ3FuR3Y3NXhyUjA4R01qbUI5TThuUUJBay8xOXlJCis5clU0NEJLMUJFc1pNNUdsc0hMVnJMcEdGS2c5Sk8vdHhvZWQ0dXVNY1N2c2F2NTAzZUlZaXlGTmUwQzhBdjY4CitRK1pFZUpNaWVLeEdNTFpBeklYWTRDekJkc2JvTjVGUGFUMW8yWWhzRmgxQ0laZjVHVmFDV3BKT0lQemRVTmJUCitYWHVxUVBoRlZ3cW9pazFlQTI5bjMySStQVDkyYk9USVhVVFN4VVpodVBJRDhjYnBPeFY1ZXg0SVZ0RUVFNTIyCitEclIrNUk4ZXJhYnNOVWhvaTQ5RkxobUdGeTYvd3piQWhrU0Z4SkxqNjgrTU1OcHJGTmx5dkt5cmJubFA2QlNXCitBQ3ZlYUdSYTBiY3Bta3oyYS9HRmxpam5hZU0zVFcyYm9FRkJUanFJMktvY2ljRTBYUCs4TnhMbjZKVktyblJ2CitYZXh6NWtzbmNPUWpUaXQ2b3pTMzgrQkpGL3ZmdmVnQTNBV05iRVJQNkU2cGZrcUR6d2NHeHVKQjZickVTaElzCit1ZmhsaW1VUWc1Ty9RZHdiWWhDTlJCamVtemUrTlZTVGJzcXZLdkU5YTRFV0VPbklHNHNlZFJtYU9aSm5IaDQ3Cis4MkRSdHZwM0IvRlFPS2wxUWxuWWg2UjlNUnRwYW1tTm5OU1ZNbDBCTmp0TkVMWDJ5enpsZ0RvMlJURXcza3N5CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIGludGMga2V5aWQgZjZkY2FlMzgwODMyNmYxMGE0NmE2MmQ1NWZlMGE5Y2JlODQxYTNkNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBdTlxcnU0c0VwRHcrQUFBQUFBQzd6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01Ea3hNREU1TWpBd04xb1hEVEkyTURreE1ERTVNakF3TjFvd1FqRkFNRDRHQTFVRUF4TTNSVlZUCitMVWxPVkVNdFMwVlpTVVF0UmpaRVEwRkZNemd3T0RNeU5rWXhNRUUwTmtFMk1rUTFOVVpGTUVFNVEwSkZPRFF4CitRVE5FTkRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBS2xRSmxWeGtBK0RCTmxxCiswZ3JVb2t0WFk4d3RBc0NRK28vMFRRcmpSSzRYM293UTJRdDJ4YjJMTFlFRGxmMjAwbTZMSDBzSzIwdlNCd09vCitvZk9aVDBCS0xWbXNsOEJFL3lIQXF2NjBwY09FaUdxVTN2Y2ZmQVpsZjVVMisrSy9FZnQ2eFVCWEYxNFA0WUhlCisxT1pWQktucUdyNExQZitwbHJ4UG8rWVoydDVxNjVvK0dSbzhEeWx3UjBteUxXVjd1QmJFWFRjT3JCS3RVeUozCit3Nk53Z0tpRkR6R0lvLytPL3RFWjRTbXUyTSt5M3pSUWFyUjRudmtyYmtKSXRUbEg1NGtTeGRTcG10SDB2NjdXCis0M1ltZHR1bk1sbmkvd2k3cW9tdENqZWdHS3dKNDRoNUdKcXJHM0dZRU9Sd0F3Tyt0M0VzNXNTY1p4VWREQVVKCis4RW5XZ1ZpR1pwVjVDRUZ4MzBxNG5pMWNVSFNTek5aTFVZMUE3SGl3aG9QZTZMeFlFT1lCNFYvWUN2VGg3cnVSCitrSlVlYWRyNFpESzBxYVZiM2NYWEJ6MXpvUXVxYjN0RklYWlpsOWVNV2lTRy9ndVdYOUdKUXhWRm1JY09COTBXCiswb2tnKzRYK1FnTFJQamFkNTdEbWM0UVlvK29hekJOOEcvTHZLRjdNNlZzOEdrUmFCWk1YWTFrVzgxMnlNN2JICitBSUNBdXRKb3pRR2dUUG5IbGVJNVF4UFgvRWdONjVqRzZjZnVSd1FVS09KbDRjRXlWRU82RXYxQ2hoRzBGL2lpCitoMUFvbkIyUlNJWUZyNmJXQVo1VWd1OVIzS1hZU0JwRjhjTXEzZHhWVmlJeU1rbjJzOWMySVBndEVqbXkvQ1dCCitrZG56UHRjZ3ZPTmxCVE9tTjN5WXpoRENlRmE5QWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlQ2aEhsSndVV0R2QTk3CitlVnk5WjhRMlRDalJiVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGcjBsbWIyeW9YeWZYRUw0MkZ1bFJmUjEzbkxVaDViaE9Bd2NpbEZUNkVhCit1NTFCWTNmVjF4Ym9DRHJqK3ZrbTdhZUIya2pSS1I3eUR4T2gyZWZBMm5sV1BYenErdWJ5c2lsbHBFM1dLTUZHCitRS05zdjRWc1NpQzMvRVFtYnJYUWpBMyszUis0WlBDV3dwaFhYSEVsdWt2Um1MTzZQMUs4bkU2bTlkbFpHZVdSCithcDBCUUlNSkc2NU1mL0tldXdOUXRDWm1uOUp5aThDamhUVXZCeUdGR3pCRENzUGhzOGI4SFZhcFhFbHhwUU5MCis5bmJaYmExQlB2M3hhd3lDT1BIU1RoM2xRNHl0YjVsQ1RWWmJIZzJ1dkNSOUloQVg5MjhJdkcrTEtVbzc4bnNJCitXd3luNUJHck5LRTdqSnQ2Qk1nVjk5YUpQSEVjNHZuWmcwL1pzd1E1aUlHK2l4MjdtT3l3MG51ZmwxRzFZZTdxCitOQmdEZkRMMDArckFrUlBJTjUvUlJ3WWNseWFWS2ZWT1dsVUJwNHNEeGl4WVYvTW9mVXdTTnlSREFwdjIzZGZ1CitiRjZXeDlMcWVwZFpXQnNqVGFYWXU3azlWSXdmZFVxSzM4MHJLUitEb08ydU5hczhCMXRFSUt4cFczQktHSUd1CitYOTkwMHptMm9YeVoxR2dBdEU1ckdvc0JVM1hPVW5kUzZhVFJ2MkEyQUU0bVVSZnk1N0hERkI4M2ttWDBKSnMrCitvdHd3YlVXMkRwdUx0dnd3QjlLNjlxOHAzclJDR3FQeklDTksyV0VxUThvMVUwa1lkeENvZnRsb3ZBSzI2SUtnCitoWkcyTWVHaU5rMjNSUzROdFF3RTdNSUF1c1g4cUpQSVpXckk0T0txS083c3M5US9PQVQ1TU1ZazZYMlJVMWFhCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIG50YyBrZXlpZCAxNTkxZDRiNmVhZjk4ZDAxMDQ4NjRiNjkwM2E0OGRkMDAyNjA3N2QzIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFqR3FpTkJydko2UVZBQUFBQUFDTVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt3T1ZvWERUSTFNRE15TVRJd01qa3dPVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVReTFMUlZsSlJDMHhOVGt4UkRSQ05rVkJSams0UkRBeE1EUTROalJDTmprd00wRTBPRVJFTURBeU5qQTMKK04wUXpNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpYRHJLdU1XMlBFNSt5dW4KK1BTV1FVWk8wUmxROXBUOWt1QjBUdHorQXJlUitNWGo3elRlSUhzanNnYjZ0TVhBOU5neWVDSGdBMnV4MkQwR0cKK3YrQnZUWERIZDdtSXlNNC9rSTR0OFg3WkhBaXBLVEFWdUFTdTNZN21BYXdNRW5taEN4MXpST28xcWdMVStsNDMKK1h1RjlHdmw3RjQ1Q09ITU5OeTgzV1k4bWJzb0dGUzJWN0VtVW1JalJiV2Z5RFRTaFF1M2YyazZOMEI4anAvWm4KKzlWT1Q0Q05VNzJBUjIyc2JrZ25oZFJkZC9CdXZwcTBDaHJRQ1lTY0tvVzc4U2xBSlhRaWU5eHhSZjhNRitkMjEKK200d3QwMzRicTRkYUx2cWNMUlZVMnV1QW9hd2Y3L0xNZ205ZFlLV3RyWFhyNXd2c2NpTitSZ1kwVnFQcFVCZXgKK3hoeHErV3Qxd3hkYXJsSVVqdldjbVd2S2hvVXRkZE94N3cvOUs1Rkk4QkVaYVl2Yk84SmNha1FneGttbXJ0YkwKKzViN0lFVWtzaE43c1lVdFNONm11b3hKalhyYWtoczFuQXAzTEtMQXlFbEx6Uk9vQ3ZaSDV3cENZQ0E1MUxEQU0KK2VsZXI5cHJlUmE3T1ZsSWpFZElRTS9FQitWSmpPaEg3amZqK1gyMmZyMzcwYmJ0WGdtYWVFcGJFaDRDa3pHZkUKKzU1aG9MRm1OUjVqYXlKaEFQQ3JtSFdvREk1K1hGdkZBdytrMGNpenBtVGZiMXdaZkJxZkE5R2J1WmxiM25pNFEKK0pINE0zSncxRzhjRlpaTWxuMDBNc2xQTEMzYXVHbHAzeVg3d0dTRTFQR082Ym9kL1VhL01oV3U3c1pMZ0FyTFIKK3g1SHRucEREZE9GT3o4eXNEK1Z5SEw1UTZxa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZCMEdMdTU0Vm56OXBISlAKK0s3UlNTSWxXMEV1bk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBaW54MUp1UTVXSllwcG5WZ1ZZRlcxOHBVck44VTI5eGI1YkovK1BRWEdpaTIKK0Y1N09ybFo5M1VQY1Zyc0J1K1h5K1FKNXViS2h1RW15cWplN2NDUUhWdDJEc1NQb2NrWDRZOGRncTFmMlR3UncKKy9ZWjNndlBTekpxbWNVU1BOMFlCeVMrb2J4TEtLbDV1RHkwTjJIb1IzSHNlcllnU1p6em1BcmQyeEdMRHM1M0IKK1YwSFAwZkRkdzR3ZlJDdDBGU1R3WllsTmVJdVdDdFpnQTlpeTBlb0NuL1BWODV5Y0ZrelBWenNiZXQ3QVpjSlEKK0pxb3dobkRQOExEZkRMU1YyKzRlVXBzNDBPUWtQbmMvUi9zYlJyZi9pWnZiMHkzY3BuRGJZMlY3bGEvbWwwZjIKKzRlbXRUVFFRUWt6S0FpcC9NdWxQREJnVFZ2S3RSRUJmdlIzaG1rUkw2bkNsSVlHYjJtWGNMUWQrUkszWGxOVlcKK3U5TnhwUlY2alBGbDkzQ0tsTDlOeWNvOHp6bCtsZ3Q1ZjJ3WStrOEZVNU9teWJLZXQwTmttczRyV0ZjZlZFcVUKK3N5VFlMZ1QzRXdGdTRSWDNCbDFZR0NXQ0FZTDVYajRjU0hZVEFZejdUMjBNYUFzbUpWK1EwcTNoTk1DbkJhQjEKK1RYZnl1RmRxOVBOcTNqRmFtYjFpVGQvSWRBcjhiamxvdjdsOTJGL2JzeHg3eUlSbDF0aTFTRWNjbVpxQy9GbmwKK1hmMEJoUldJaWlyTUJiT2lCVTFqSExKVXBSWmxpNXdiU0tVRjZ4L0lCbEZEbzA1eGcrSzhZQzVYUEZMdmhsV24KK2Rra3VFRlpzYnhyVGRxSGpPZ2pkbTdHc2VuV0dZQW9NbC9YUEtoL3orckZpNGx6UWlQSC8rQ1JPWmpHRnZIUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgbnRjIGtleWlkIDIzZjRlMjJhZDNiZTM3NGE0NDk3NzI5NTRhYTI4M2FlZDc1MjU3MmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWHJvNjFWQ0pLdFZGZ0FBQUFBQmVqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1EZ3dNakUzTlRFMU5Wb1hEVEkwTURnd01qRTNOVEUxTlZvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVTVVUXkxTFJWbEpSQzB5TTBZMFJUSXlRVVF6UWtVek56UkJORFE1TnpjeU9UVTBRVUV5T0ROQlJVUTNOVEkxCitOekpGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF4aXpGbmZuMWVneU9KNk11CitUM1ZZNUZlY0QyNGtjeXNhUDBUcklsM3dIalJ5U1ZIVzNCYjNyemJwK0Iwd3pBVThqcDlleGd6cys1ZnlaeW9NCitZc0t5SThWTzZoZEJFOEdmWlVSOWtTbE9YM0tGZ0ZHelpxemkra1hpZzV5ellvSlRydmZRTE42U3h6c1dMMWwwCit0YXorR3FmakNTdXFYcHkvMTdsK0hmOEZKTzliVEh2M2tVdTd1bDNTT3JVVUQyaEF5OW4zYlZGbVEvaGY4bXpjCit1MVZCUTg1Z25wak1FWjJIVktncW5rK2t2NFdRUXpiT1IzVUZkMnBlVlN0TjgwOG04bkI1UFVKandMVnhGWm0xCittV1NTYXlwYWx4T2NVcE9lN2Fnd0xFbGVKQ3k0YXRrQzdpVm1ZNHRwd05FMXJjTSswbDFCaFVHSm4yVWVUM3ZXCitNSEN6MGVKZVpWZlN6Z1dUeEZXb1FGeExKVHQ5UittN0s3YkN1NFdBa1BmWk9qVXR2QzlZWnFlc0dHUUpQNTlXCitsLzhPRXJEQkgxck1mNFYvTm4zQjZIL3Z2b1lkTWhDWVhhT1RMZ0VQcDlJak1IUlQ2WGtFMysvVC9hNmphUWNSCityUDFPVVdIakdETlJ3V1d0NWpSVTROaFp1WXdCMWFYSzQzY0x0Yy9oL0FGVnUyc0Q1ejlOSnI4SzZvVWlwOFZ3Cis4S2VLS0g3aHFNSUZEbDNBOHMydUxtRjlBOHZ4RW14ZlFvZXpUQUVEOEFOL3c3WkxqekxjclZIeEZnalB3UTF5CitRM0RNVS9zcDdka0xNVTU4MDlwNE9IUng0V3BGNXdRNytyaDZMQ0tEK2x5SXdoRjV3eDRtSlBYWTcrbUVsUXBZCitsMFBjL1duNzVJRzVWbnZJOFBRVWFQNXBDZlVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSmVocEllQUFZR1ZtbVkxCitWWXhhaXNNTU5PZHNNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVNxZ2pTMEUvWlM2dU9XYUNqdWVJemd5aGRQb3E5Q1VtRERSZHc0M1dEUklaCituNVpObVRmWWFvOFR0Tm1xQTBSVXk1bkFLS1ovQ2xNOHFsc3hxQ2RrRWdnaXhFNGx0a1dPdnlyNmtxazkxaU9TCitSV3VHWXlVNWJSM1hGN1MrWGpHeHo3b0RCRGt3K0gycDJadGVBaERDa05Rak00aFBmeWtLRmZicHI5eDJSZzZYCitOdExEaUJsRzFCN0xqNEJxUnJNamN4ZEFLak8rRmM2cG4vMTd5UjFjKzEyd0ttUVRuYStpbDBZQzFQUWlyS0Z2Citla1V5WWllQ3hpbXFtak9zWVI3eGVVQlovdDgxUE5SSDVtYi9RV3FGcWdOejdEUlhGRkhzTVg2bHdkbFQ0eWJ5CitudUlNdTBYd2hucTZ4ckp5THVjS0RmSkoxdUl1ZFhTaWVaZm0rN21KNHdiNmt2L2hGU2x1R1oyVzhnclRYQ20vCithMUwyaFl4VmE5YjVYRDcxT2VRRGJpVDNDM29lNDdlSnZlejNJcjRocHRFUlMvcGMyUW9sUVRuQmsyai9RZkU3CitVZ3owU2hhQTBMUkFzeWcyOVRQRTBFRExvZkFiUm5Kekk1MGJWdWVUQXhUdUJRYzRZRlcyTDhVSDFHMmp4T25TCitXRlJDQy96NjJBeVlGelBzRDJHU2FKVFJxdzNkbmgzNTdTK0grdTJMNm1Nb2RNak9rUlJUOU9PajQxTjJvRWl0CitpT3RvRUxPM210bUxMQkx5L29DV0FEYkpTUUFNREcxUTFKeVlqcWhMZ0RPcXNyNEhzZWp1cVd1OGVJWU5PZytpCitrVzRwbHlNSm5iNUhzMEgyaFZnUkJzZklIcE9jM0ZIQzJtVE1QRnZZZkVEK0ZzeU9VU3g3aExsQlluaXgvR1E9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIG50YyBrZXlpZCAyM2Y0ZTIyYWQzYmUzNzRhNDQ5NzcyOTU0YWEyODNhZWQ3NTI1NzJlIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFtK2FUMVZNdVpRVGdRQUFBQUFDYnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF3TUZvWERUSTFNRE15TVRJd016QXdNRm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVReTFMUlZsSlJDMHlNMFkwUlRJeVFVUXpRa1V6TnpSQk5EUTVOemN5T1RVMFFVRXlPRE5CUlVRM05USTEKK056SkZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTBlbjJwSi9JeER2Y2VjbVYKK3lVWkd6eG9CaVpVTmZtL3l5cDFyL1JyNlZ0ZzJFNmliRGJqbkN3YjJETlFKcWlVQUY4K0d0YVcxVnVrWVlLazQKK2N4TzNQVWI5Y2VJMmNBL3Y3ZEpYdk9oOWJ4aGk5aUhwZE5iUERJTTNQcEhWUzJUcTNjbDRtT0xUek9SQWpOcUcKK2tmeDdTaG02ZktxVmtsQ0NzZ2Vxc3JjS3RoUXY1TEpEQmdkdVZYQXZ3Wm1NREhGbDZ1eE8vRXhuenZpajJiRGwKK25wTUdlcmE0NjM3VlAxZFVLY0FlS2VQek5mZzJmNnd1QkJBZURiWDFyUmhMQUMzK3VMLy9xMHZaVEgvMTBsUlMKK1R0RFRNU29hcXJtSUMvUHIybFp2UmozK3NQUmRwUXMrWS9kMVdNMHBIRWl4STc0OUhkeHRWbU42d3VaRmJtTkQKK1pnWDhMRlVSM1dPeUg0aFFPUEFsVGt2a1hwMkpaNElSY0NVUlFnN0p4ZzZPRVFrS0lTNUxMRjhzeFZNWGNYeUUKK2I5MGROK3V6cTJkeklNaFlOSFVlb2hDVmhralkwQ0xZSU5Bc2FhQUVKU3JIRGlYZERsakN1Vml3RGkvVFN6cWEKK2picmhZZit0R2dGaWNMY1oySVhLQnJZSmZMdkhXeU1BTHZRUld4MU54TUJTalIyQ2l3VW1LSkV5VHkzVlFwRFYKK2dXRlcxR2dnUjNVVmJaRk9xWjZPNlVzWFJzcjFxTmhMTUJlK0phSEtDMXE3b083ZmtaTmNDak5wTEtjTVZxOHoKK3JoeUNXamFKeDd0RDYzL3dWbjFFZjFPK09hWVNyNVllSENOYnZZcS80T3htUlR0bzFva3VKenk0WFNYOFNCUFcKK0F1MG9MQndOQkFDVG9acHFRYWo3Z3J3elMra0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQSHBvOENWeXR0SWtEY1UKK1ovYlcrUlg5U2VXNU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRVRZUFVDcEE2T2MreEJXVFQ2Z0ovM01lY2Z3MTdGSHl1L3RidUkrR1FiOVMKKzJHQnQrUmhOUWc2VVRGeWdiSXI3L29sS0g1ZUhRckhYZGVyNVpsdnp0TVk5QUt1Q2ZHVEdua0E4NEszVHMrejgKK29FNkpsbllHK1JwZFkrQUw5M0h2WW5MOFpXZ3RMbFprWFJnWk1nK251b2ZsS0tlUG9wR2QrWTJZVDQ1RUx6VGwKK2Yvelh2bTA3endXdnlickRYYkE5aCtvRlhwTFBycjk4ZFU4TjNzdzVrcGN6UisrMHkvYXZlVlMxYzZZYWxiV04KK3lmemptWEd5SnJLZUxMS2c5QXo0dkI3NWFYZy8yaWc0QVBDMzZOdS9VbG94WHZtLzFTUTlLZmw4cVZTeTNnMEsKK1RGeG1qMVp6WUtMYXppdTI2cVcxSGc2OHA5a3p3ZkRMNjZlc3JaMGhUcVNNSW1ZNDdIenN0cm5jMmtSRHdUNVQKK0ZlR3phZXhCWEZUK2ZkMHNmOHpjeElTQ3ZjZFFFaDRReWJ4SHcrU3FFbGdaTmw2emRhQTIrWE9mZ3V2c2xBbFoKK2puUnk1eWNFY0RiL3pneUE1dzJkeFFzMk5GRUlYSzF0UkMwSDl2NndTU1l6NXBMVDB3TnZUZVdLZk5VNEFXVlMKK05RZDNMMU55SVhFa2VVVVpkKzVwMkZodW5rSitVNUYzd09sYkFITWdGQW1PY2xCczg3RU90Ujc3UU9GelkyMCsKKzhmeDJwYWVlQW1rRExxSm0wam9PRWRDcGNyUlJFVUFtRzF4bHQ3eFN2dkczMkMwM1NOMXI1bUFTbEFNQ0F1a0IKKzJ2RGtWU3RZQjVtVkFDMWRSUXNuYy9JNnhjTWoyQnVZTWtTRGhIaHJyZWJkcmtSMWdaK05pNHNJRHc3S0hUMD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFVVMgbnRjIGtleWlkIDg4MmYwNDdiODcxMjFjZjk4ODVmMzExNjBiYzdiYjU1ODZhZjQ3MWIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWHZoM3lwYjBlVFBlZ0FBQUFBQmV6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1EZ3dNakUzTlRFMU5sb1hEVEkwTURnd01qRTNOVEUxTmxvd1FURS9NRDBHQTFVRUF4TTJSVlZUCitMVTVVUXkxTFJWbEpSQzA0T0RKR01EUTNRamczTVRJeFEwWTVPRGcxUmpNeE1UWXdRa00zUWtJMU5UZzJRVVkwCitOekZDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE1R1pXUnJoQ2hXT3JFbnVBCitwY0g2WTh6Z0w1c1pvbC9KaHdnOGZ4NXEvY2Q3Z2ZxWUZxdzFDejdwMWhIVzhjTlQ1NEVzTE1YeUh4SW16QVZyCitTaUFjZ3ZOT0g3SnB5RFRNMUpEdWUxYUx3T1pGc0dCR3hUQks5TFk3VHdPSnlSR013aUZnYXpOYTQzMzdFWWNrCitTcklNR3lrS3NYaXYyQWY5Uk5LUWdwK2FlTE5OSGNuRVVWTS9saHV0aXhzUjc1UVRQRndRQzhVVUlQNkFTMnc1Cit5dHVMbEh4QWpiRFJURmtQa2dpQWExS2VGbUtMU2twQmxkd0V2bnZKaGVqem1qK2o3cVo0bGVHSGhiakpxWkVLCitsRXRLbHl0TnhiR3NWS01mNk52b3IwVGdnM01DRmJrUDh5MUhZL3JhdXk2QVlOeG1zVFFaQ003Ulp0QUYyQ3lBCitpNmI3WkRkeVlKQ005VkhjYytVNEZQL0RGNjlzU09yK29TbmFkNlRiQ2FMQkw4YjA3UjVnYXB2SUlPY2xWRnZFCitQcmZHSXBsZHZZLytibGhwSzVPZVBsZFluL2JtZ0hsdWIxRG1GYU50OW5FcDh1ZFRjWHJJT3NreGxyZ3V3RkkzCitVd3EweEMzU3o3aWhhL2M3TDVHYlBlaFd2U2xIZVhSUk01b214NVI4TitBVVlqc20xRWpPRWtUTUxKR0hDYkdNCitlME5zUHB2M0ZkY1FxaW5wTm9UczA4WWN4c0FEQmFzc0pXR2JKU3phV3M5VjQ2Z1JlaDJQZ1FvcnVoZFdnM1o0CitVM0ZwMTNHcS8zRTBsOTk4U3FmaWZ0cldTNytCQ3FTbmttcVdFZithbG9yY3BOVTFlSWluVS9yUHRqWVZXSTN2Cit0WFlqL3UyVkxkYkcraWxNdUZ4UHJlN2RneVVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS0VuQ2dCWjFXeWVMa1pCCitBV1krQVE4R2ZxYkJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVAzSnFiY2k5TGZGTjBGbzJqNEQyWHdUOUZ5aDZhMEFSUnVPeldHbWZNeit2CitoelQyNmVpUU9rNEJYaE1FdGFuQ2pyTmpZOC9xVXJvclJXYWZ3NHBWalppR29vZ014aDYzYWRLSWV3bXZnOXNnCitaRzFlVVJhdStVNXB3OWNoRlZrMUFKdTRFbkduZGM3eEtRN2lKa2MrREFkQ05BcU0xRXo0YWZleWplQVYzQ0RmCitBcXI1RGo1ZHBJNitnOE1Hdmp3WCs5RVlHL3BRZzJoWWpxbTVpTmU1UVRCZWJwUzFDZmRFbHRUQzNDVTY4YzMzCitaMGVzdVVxaVIyZ2ZHZ0Q3M2hoRnFHWU16eEQ2MnVpaFVEN2tpL0l2QVovQnFhMnVqcERycEZVbkVoN1lXenlECitRZXBGMTRaWnQxbXU1SXh5cFZ5cXdoZkIyRmYxb3VxRFgwcm5kVVpZd3FiU2hhYWx0aGlTRFVzcElUcktQWTZrCitPcm9oeFlzR3pQSWh5WUk5SHdpSUlmOGQzQUJZQUtzUHFjc2dJbUVHVDdSeEc5QTdIRndEWjRYUG1Zc00zRzU0CitOS3Y2RHhicUFNaXdNcnZGUEVTMUtQTUFRU2VoS3VEOVJFL3BYM1cxT1lhSWFVNTFiUFI3RENtbUtHd28wOVFQCitVNFc2SjN1OUY1VDZheTNIOHdZc0ptTUxNUmhVaHMwRkt2bXFFVjFOVlJrZ1RvUUsxdWJrV0VrUHdiT1BTWmhICitWa0laL2lTSXQyUTlSMEpyU01MdjB2Sk56S0R2a2tYcVZQOEpUWUlHVWFpbHg5RE1ycTFocnJCWnY0bWJBMks0Cit5VFJTdkhvSHlrZmg3RmlKYmR1Umw3M01WR3c3Sk1KSFJUU3VYM29vVXN3NXpoc1hmd1pVNlROWHdNcjdyV0E9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRVVTIG50YyBrZXlpZCA4ODJmMDQ3Yjg3MTIxY2Y5ODg1ZjMxMTYwYmM3YmI1NTg2YWY0NzFiIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFuRHZCNWY4bTFnWHB3QUFBQUFDY0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF3TVZvWERUSTFNRE15TVRJd016QXdNVm93UVRFL01EMEdBMVVFQXhNMlJWVlQKK0xVNVVReTFMUlZsSlJDMDRPREpHTURRM1FqZzNNVEl4UTBZNU9EZzFSak14TVRZd1FrTTNRa0kxTlRnMlFVWTAKK056RkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXIyQzRBYU1wSHAzeHY0R0UKK2VPRFdiUFVQMnJYY3ZDaUUxS00rT0hVcTg0UDRmamsrQVVUMXRsc3JDai82VWRoMFJmTURsNFU3RTZLeG1yVVUKK0JjNFRJMXBuWThCNEFYOXhoRXpUUmVadjNSY0ZGVE05bjdTZ2IwVkxNckpNeS90RjRiaTdGaU5RSzhCM25kR2MKK08xY3hUTDZybHdJZE45UjFlSUpMVjdkVy9aOFBvQW81eGJlMVl1aU8yZVphRjc3UjFRTFR0MnFaQ0NabFJEOVcKKzMySklPRzVsNFlHcUc1bi9zVTdQL1pGdlgyMHBjWVprSE54NUkyR09YV2E0R1d3dWozak9BNlZkaDNoV2pVZWIKK1F0L1FYUWQzMlcvZGhwSFFNVFlXei9ZTkJIY2p2ZVFIVnBsUktjaFJDcGFBNXdDYWdWNi9kSzhhV3R3OG94dWgKK2UrTFEwUUczeWFaNVU3c1pGSStDS0dZZkVqRE90MG9uMCtmcVYzZmZzQkZJYi90eVpYSEJIbHQ3WGp1T3E4a3UKK24zTFZ6Y2s0eU1sNTQ3c0tCbTFQVE1mVFlrZklHczExUGswOGZhK1RvZzYyS20zREduV0JvK0xZZXBtVkZFTW4KK0V4Q0NLc3d4eFlqdEVCS0hqM250NUs1Z1NrVEVNN3M1NXFpanBuVmV5WWtNV2g2clRuSUFWK2VNMXRWd1ViQkUKKzR4Vm1EcmEvRDBVVm5tUW05Z0pjOS8waENzYXRodlhlNk8rTGdPSjlreDBPemJsRW5NT0VWVXU0VlhMVVB5VVgKK1hrT1RFbktCT3lqQkxJemZJM1lUa0JWeVRCVzRabDNZNnlVQitldzdJWmlzdkJnZlhpZnkzVUVNYVZwMDRLRSsKK21lcGlwSU5OMU5tWko1UGpBeHVOcVllYnYwMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZETnB3c28vaDVKUmhZcDYKKzFtb2Q0V2tBeEVhb01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSDFPeWdHTUp1Q3RvRjlGNkFvSmlidFJua2xNYU5qV056UklpMlBxTnRpOXIKK21BajhSTzUwNGFWZFBxRnNMTnpxbFJtUEZWajVjYmx5d29aSlY1eXpQMHB3ZElJeUxvWS9hU0laSnVEMVF0R0YKK0pUWjdwOG1GRUZsU3QwSXdPN2g4NytjZHdweGRSRm9vQXJUS2I1UEJkbTNGNU13UE9qZlMycXZja29ndDZjUFcKK0wva1lVMFpYeGtveklqSUhYTmU4TzFrVFRkaWtySGxUN0lpSXp0SmttOExDZktDa21qTTNWcEdJYlk1bk50OWIKK0kvN2FON0tDVXZKbkcrS0g5MXhIM0QyZHZSWmhxN3VWUGRyYWRvQnVURy9SR3lYZDcwQTl1dHE4VzFqR1JuZjMKK0VXQXlOZzlQd2YvMkphQThkdnM1OEYrS0k0K3E0VGtVaXZBR3NLZFFUKzRQWDBPNUUrcE1RTC9ObXdsUmVpTVgKK2Ruc2tjdC9TbWtab05rZnBTNWxDcEVjR0lYSGxjOXRiNnlnUXV2Z05WYTU2OEIvWVBlY0JRRyt0dVU4T1Y0VXQKK1VyeEpPcmxYS0dsTzNaeFoyWXRBZFVVcWFOdWxWTU4xZ1JVOHNLNmIyK1c4R3BvQjJ1ZXZaMld1azFzVXk2dHkKK1RkSnE1MnhmelppcGJ6blF6eEMwdFZRRXJMZDdFVjVTMmtwR0x5Y09BTkVDUGpCMFN2emZ1M0Q2N1FpZWQwMGEKKzlkTVVHZEJIbzFSVFVuL3JuT3pmNWVrZHlWckdYa25ZUkppYVZrc2phVlJsaXY0TWp1eUFBcDBGWGI4OWMvMXMKK3ZjQTBNalNOWEZPMUV2cnE2N0RMbTUyN1dTWFJIYzkzTmNzU1d0T0RwQVZMdTlRVFQ1eFhBazh6REpIWHFyYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFa01mckNBMDAxCis9PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURORENDQXJtZ0F3SUJBZ0lDRUFBd0NnWUlLb1pJemowRUF3TXdhekVMTUFrR0ExVUVCaE1DUTA0eElUQWYKK0JnTlZCQW9NR0U1aGRHbHZibm9nVkdWamFHNXZiRzluYVdWeklFbHVZekViTUJrR0ExVUVDd3dTVG1GMGFXOXUKK2VpQlVVRTBnUkdWMmFXTmxNUnd3R2dZRFZRUUREQk5PWVhScGIyNTZJRlJRVFNCU2IyOTBJRU5CTUI0WERURTMKK01EVXhNekF3TURBd01Gb1hEVE0zTURVeE16QXdNREF3TUZvd2VERUxNQWtHQTFVRUJoTUNRMDR4SVRBZkJnTlYKK0JBb01HRTVoZEdsdmJub2dWR1ZqYUc1dmJHOW5hV1Z6SUVsdVl6RWJNQmtHQTFVRUN3d1NUbUYwYVc5dWVpQlUKK1VFMGdSR1YyYVdObE1Ta3dKd1lEVlFRRERDQk9ZWFJwYjI1NklGUlFUU0JOWVc1MVptRmpkSFZ5YVc1bklFTkIKK0lEQXdNVEIyTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFpQTJJQUJBOHJpNHNNaks1Um9GOUxPQThlWnM5WkhLSjEKK2RYVC93MjhWdHdlNnlCQTRPcDV3MG4wbzMrOU5QUEtKZnN3MVlEb2VLWjlrd3ZweFRWTTdrQnRwS093Nk5SUnEKK2JVQWt6QWZZcUl3cEhQUGhOMjVKU09YaGwzYm4zNmRTQ2ZVQ2ZxT0NBU0V3Z2dFZE1Fc0dDQ3NHQVFVRkJ3RUIKK0JEOHdQVEE3QmdnckJnRUZCUWN3QW9ZdmFIUjBjRG92TDNCcmFTNXVZWFJwYjI1NkxtTnZiUzVqYmk5RmExSnYKK2IzUkRRUzlGYTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZBSXN2dTFkZHdZUEtEUHAxVGRycUx3d2pObTYKK01FQUdBMVVkSHdRNU1EY3dOYUF6b0RHR0wyaDBkSEE2THk5d2Eya3VibUYwYVc5dWVpNWpiMjB1WTI0dlJXdFMKK2IyOTBRMEV2Uld0U2IyOTBRMEV1WTNKc01CWUdBMVVkSUFRUE1BMHdDd1lKS29FY2hvMGhBUVVCTUI4R0ExVWQKK0l3UVlNQmFBRkRxOC93amZYZ0VNSzJRSGk4Zk9sUWIwQ1Aza01CQUdBMVVkSlFRSk1BY0dCV2VCQlFnQk1BNEcKK0ExVWREd0VCL3dRRUF3SUJCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUFvR0NDcUdTTTQ5QkFNREEya0EKK01HWUNNUUMzWjdySDJ3eUlBaEtNLzJUb3BUYldVenJUVGx3eWpIdzFTaE9jb3ZORU1nZXZWTS8rQVYxU0FHU0wKKytuM0xlbmdDTVFDWW56SC9XazRvNCswbE9yblVETE5UNEw3TjZkM0lJRkdzMFhBUmsxUy9SQ0JveUdTbEhVUDMKKzdKaE5kMHZvREljPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0VrTWZyQ0EwMDIKKz09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRE16Q0NBcm1nQXdJQkFnSUNFQUV3Q2dZSUtvWkl6ajBFQXdNd2F6RUxNQWtHQTFVRUJoTUNRMDR4SVRBZgorQmdOVkJBb01HRTVoZEdsdmJub2dWR1ZqYUc1dmJHOW5hV1Z6SUVsdVl6RWJNQmtHQTFVRUN3d1NUbUYwYVc5dQorZWlCVVVFMGdSR1YyYVdObE1Sd3dHZ1lEVlFRRERCTk9ZWFJwYjI1NklGUlFUU0JTYjI5MElFTkJNQjRYRFRFMworTURVeE5EQXdNREF3TUZvWERUTTNNRFV4TkRBd01EQXdNRm93ZURFTE1Ba0dBMVVFQmhNQ1EwNHhJVEFmQmdOVgorQkFvTUdFNWhkR2x2Ym5vZ1ZHVmphRzV2Ykc5bmFXVnpJRWx1WXpFYk1Ca0dBMVVFQ3d3U1RtRjBhVzl1ZWlCVQorVUUwZ1JHVjJhV05sTVNrd0p3WURWUVFERENCT1lYUnBiMjU2SUZSUVRTQk5ZVzUxWm1GamRIVnlhVzVuSUVOQgorSURBd01qQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxxN0gveTZ1WGRrWFpXWWxHQUhKR2phUHNTNgorY25MeHArb01uT1Foci93dVR2aVRpQ1dBN2dGYVBPZUVnNUpTQzk0NFZHNTRNK0pTMGpLbmxNMzhDTVBXQktRUQorbk5FYVdXTWtKYmhJL0R5Y2hPcVo5YkhWTjBEbXNyQldlU3pGZEtPQ0FTRXdnZ0VkTUVzR0NDc0dBUVVGQndFQgorQkQ4d1BUQTdCZ2dyQmdFRkJRY3dBb1l2YUhSMGNEb3ZMM0JyYVM1dVlYUnBiMjU2TG1OdmJTNWpiaTlGYTFKdgorYjNSRFFTOUZhMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkFQUnplUTQ2ajJ6VFpReGdjSE5VWDFvZ0dMdgorTUVBR0ExVWRId1E1TURjd05hQXpvREdHTDJoMGRIQTZMeTl3YTJrdWJtRjBhVzl1ZWk1amIyMHVZMjR2Uld0UworYjI5MFEwRXZSV3RTYjI5MFEwRXVZM0pzTUJZR0ExVWRJQVFQTUEwd0N3WUpLb0VjaG8waEFRVUJNQjhHQTFVZAorSXdRWU1CYUFGRHE4L3dqZlhnRU1LMlFIaThmT2xRYjBDUDNrTUJBR0ExVWRKUVFKTUFjR0JXZUJCUWdCTUE0RworQTFVZER3RUIvd1FFQXdJQkJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQW9HQ0NxR1NNNDlCQU1EQTJnQQorTUdVQ01GV2JodHZaT1AreHFyeEMyTjVBcmdpQkJmaGVGVFdNNXJlY3RMWTUwTFFKcE9NYWlWU0ZzNzJQVXJoegorSUZYNmV3SXhBUEw3SC9oRHlmbHJuQjFrVXJjYk1hUnhqdVY4eFA2aDZiVDZocno1eDRZK25PUktreGJ6MktMVQorRzN6Uy9JREhPUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworRWtNZnJDQTAwMworPT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlETXpDQ0FybWdBd0lCQWdJQ0VBSXdDZ1lJS29aSXpqMEVBd013YXpFTE1Ba0dBMVVFQmhNQ1EwNHhJVEFmCitCZ05WQkFvTUdFNWhkR2x2Ym5vZ1ZHVmphRzV2Ykc5bmFXVnpJRWx1WXpFYk1Ca0dBMVVFQ3d3U1RtRjBhVzl1CitlaUJVVUUwZ1JHVjJhV05sTVJ3d0dnWURWUVFEREJOT1lYUnBiMjU2SUZSUVRTQlNiMjkwSUVOQk1CNFhEVEUzCitNRFV4TlRBd01EQXdNRm9YRFRNM01EVXhOVEF3TURBd01Gb3dlREVMTUFrR0ExVUVCaE1DUTA0eElUQWZCZ05WCitCQW9NR0U1aGRHbHZibm9nVkdWamFHNXZiRzluYVdWeklFbHVZekViTUJrR0ExVUVDd3dTVG1GMGFXOXVlaUJVCitVRTBnUkdWMmFXTmxNU2t3SndZRFZRUUREQ0JPWVhScGIyNTZJRlJRVFNCTllXNTFabUZqZEhWeWFXNW5JRU5CCitJREF3TXpCMk1CQUdCeXFHU000OUFnRUdCU3VCQkFBaUEySUFCQ3R6blF6THhUUjRZR292NTNiM05Ya2pOQmNiCitpV2VDN1hzdWtwWWttNjFkeEN3K2JzUCtqbTFzb2FOOS9XRGNvZHpOOGhsQkZWWVd3TDc5SytTNXc5WG9qbmlrCitycm5hZFdmQ0ovTHdtWTFlc3lqUUVtU2JDWGl1a0NaR2ZCOE5xNk9DQVNFd2dnRWRNRXNHQ0NzR0FRVUZCd0VCCitCRDh3UFRBN0JnZ3JCZ0VGQlFjd0FvWXZhSFIwY0RvdkwzQnJhUzV1WVhScGIyNTZMbU52YlM1amJpOUZhMUp2CitiM1JEUVM5RmExSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGT3V5OU9NUzVsS2NUdEROdG9Jb1dBcmxJRDFGCitNRUFHQTFVZEh3UTVNRGN3TmFBem9ER0dMMmgwZEhBNkx5OXdhMmt1Ym1GMGFXOXVlaTVqYjIwdVkyNHZSV3RTCitiMjkwUTBFdlJXdFNiMjkwUTBFdVkzSnNNQllHQTFVZElBUVBNQTB3Q3dZSktvRWNobzBoQVFVQk1COEdBMVVkCitJd1FZTUJhQUZEcTgvd2pmWGdFTUsyUUhpOGZPbFFiMENQM2tNQkFHQTFVZEpRUUpNQWNHQldlQkJRZ0JNQTRHCitBMVVkRHdFQi93UUVBd0lCQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Bb0dDQ3FHU000OUJBTURBMmdBCitNR1VDTUJGa2hvSDdBVGdDOFo5UUFzV0o2WVp6STl3c1hNY0xqeXRCWTFBZTlnV2tGUUVuZnJ4NDNnZCsvcFJsCisyTXB5NUFJeEFOaEhjNE55UnNGc1o4MjhqT1V0aFFJSDBBOHJja1NEd05rb0dXR1ZBdW55L1M5R3d3Nms1RU00CitFd1FxOVcwU3l3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitFa1Jvb3RDQQorPT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQ1JEQ0NBY3FnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQXpCck1Rc3dDUVlEVlFRR0V3SkRUakVoTUI4RworQTFVRUNnd1lUbUYwYVc5dWVpQlVaV05vYm05c2IyZHBaWE1nU1c1ak1Sc3dHUVlEVlFRTERCSk9ZWFJwYjI1NgorSUZSUVRTQkVaWFpwWTJVeEhEQWFCZ05WQkFNTUUwNWhkR2x2Ym5vZ1ZGQk5JRkp2YjNRZ1EwRXdIaGNOTVRjdworTlRFeU1EQXdNREF3V2hjTk5EY3dOVEV6TURBd01EQXdXakJyTVFzd0NRWURWUVFHRXdKRFRqRWhNQjhHQTFVRQorQ2d3WVRtRjBhVzl1ZWlCVVpXTm9ibTlzYjJkcFpYTWdTVzVqTVJzd0dRWURWUVFMREJKT1lYUnBiMjU2SUZSUQorVFNCRVpYWnBZMlV4SERBYUJnTlZCQU1NRTA1aGRHbHZibm9nVkZCTklGSnZiM1FnUTBFd2RqQVFCZ2NxaGtqTworUFFJQkJnVXJnUVFBSWdOaUFBVHZ1RFROOFROdnAzQTlmU2pXcERBUkxtdno3SXRRckRxL21tdXp2eklud1FmcworWUtVVUp6YTRNWEIzeVMwUEgxamp2MVlNdmFJQklhbEFnYytrYWhTY1FVeTZXMmZ5NmhkMzZwYXptYy92UWZHMworR2RodzU2Z0d3Ukh4NHJuNFR1cWpRakJBTUIwR0ExVWREZ1FXQkJRNnZQOEkzMTRCREN0a0I0dkh6cFVHOUFqOQorNURBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUE0R0ExVWREd0VCL3dRRUF3SUJCakFLQmdncWhrak9QUVFEQXdObworQURCbEFqQXB6cVNtZDRjQ01LQzdzbEo0TkUvN3p3ZVhaeDg5SnpTRW5FV0djcTc4amJiWEN3NnlNK1I0bkNOWAorcGhmbEk5UUNNUUNlRk9BdnlSK0RRdlRoZkdGSU5BQmVqKzF6ZURWSWp1WkhhdDNGSFZ5VjBVUVZDbFBnTWxadQorVG50aXBYd0dPVlk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworR0xLRVBJRFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEeERDQ0EycWdBd0lCQWdJVWVKQ201REpKM0xaTGpmMzFMQlpHMk1PYjdnc3dDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFl3CitOREkxTURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JtekVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOVEF6QmdOVkJBc01MRlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFZE1TMTlGCitVRWxFWDFCU1QwUWdJSEJwWkRvM01SWXdGQVlEVlFRRERBMTNkM2N1YVc1MFpXd3VZMjl0TUZrd0V3WUhLb1pJCit6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVkUHZIc2FXRDJ6eVJSMUo3bXc5QnJPV3hxL3VVS3NJY2t0eHdVR1BBCitoSGlDSy9ZNDNWdjduZG81WHdTQUlzT3lQNTY0ekxlb2NPTXA4UlMrbGowTDBLT0NBWnd3Z2dHWU1COEdBMVVkCitJd1FZTUJhQUZPaFNCY0pQMk5MVnBTRkhGcmJPREh0YnVuY1BNQjBHQTFVZERnUVdCQlJSeHp5ODM4bVFxbWQwCitGODFmZUxvMzFLalhNVEFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUE0R0ExVWREd0VCL3dRRUF3SUJCakFUCitCZ05WSFNVQkFmOEVDVEFIQmdWbmdRVUlBVEJ3QmdOVkhTQUJBZjhFWmpCa01HSUdDaXFHU0liNFRRRUZBZ0V3CitWREJTQmdnckJnRUZCUWNDQVJaR2FIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwCitMME5TVEM5bGEyTmxjblF2UlV0alpYSjBVRzlzYVdONVUzUmhkR1Z0Wlc1MExuQmtaakJjQmdnckJnRUZCUWNCCitBUVJRTUU0d1RBWUlLd1lCQlFVSE1BS0dRR2gwZEhBNkx5OTFjR2R5WVdSbGN5NXBiblJsYkM1amIyMHZZMjl1CitkR1Z1ZEM5RFVrd3ZaV3RqWlhKMEwwVkxVbTl2ZEZCMVlteHBZMHRsZVM1alpYSXdUUVlEVlIwZkJFWXdSREJDCitvRUNnUG9ZOGFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwTDBOU1RDOWxhMk5sCitjblF2UlV0ZlVHeGhkR1p2Y20wdVkzSnNNQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJSHJMYmRtZjNkTDdTSWlBCis3Rm50bG4yY1gvS2c0b094VnBINU1KaGlTYURSQWlFQXRzSVRtdUVuQ1BDVDBYcmVsdi94Tm0xdkQzVllPUExHCitUNE80Smg1c29lYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitHbG9iYWxTaWduIFRydXN0ZWQgQ29tcHV0aW5nIENBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUQxekNDQXIrZ0F3SUJBZ0lMQkFBQUFBQUJJQmtKR2E0d0RRWUpLb1pJaHZjTkFRRUxCUUF3Z1ljeE96QTUKK0JnTlZCQXNUTWtkc2IySmhiRk5wWjI0Z1ZISjFjM1JsWkNCRGIyMXdkWFJwYm1jZ1EyVnlkR2xtYVdOaGRHVWcKK1FYVjBhRzl5YVhSNU1STXdFUVlEVlFRS0V3cEhiRzlpWVd4VGFXZHVNVE13TVFZRFZRUURFeXBIYkc5aVlXeFQKK2FXZHVJRlJ5ZFhOMFpXUWdVR3hoZEdadmNtMGdUVzlrZFd4bElGSnZiM1FnUTBFd0hoY05NRGt3TXpFNE1UQXcKK01EQXdXaGNOTkRrd016RTRNVEF3TURBd1dqQ0JoekU3TURrR0ExVUVDeE15UjJ4dlltRnNVMmxuYmlCVWNuVnoKK2RHVmtJRU52YlhCMWRHbHVaeUJEWlhKMGFXWnBZMkYwWlNCQmRYUm9iM0pwZEhreEV6QVJCZ05WQkFvVENrZHMKK2IySmhiRk5wWjI0eE16QXhCZ05WQkFNVEtrZHNiMkpoYkZOcFoyNGdWSEoxYzNSbFpDQlFiR0YwWm05eWJTQk4KK2IyUjFiR1VnVW05dmRDQkRRVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFQaTMKK0dpMHdIeVRUN2RxMjRjYUZBcDMxZ1hGRHZBTFJHSnJNaVArVHVuSVlQYWNZRDhlQlZTTkVpVm9DVWNWZll4emwKKy9EUFR4bVJ5R1hnUU04Q1ZoOVRIcnhEVFc3TjJQU0FvWjdmdmxtalRpQkwvSVE3bTFGKzl3R0kvRnVhTVRwaHoKK3c2bEJkYTdIRmxJWUtUYk0vdnoyNGF4Q0hMeko4WGlyMkw4ODlEOU1NSWVyQlJxb3VWc0RHYXVIK1RJT2R3NG8KK0lHS2hvcnFmc0RybzU3Skh3VmlNV2xiQjFPZ2FkN1BCWDVYL2U5R0ROZFpUZG80YzBiWm5LTytkRXR6RWdLQ2gKK0ptUTUzTXhhOXk0eFBNR1JSbmpMc3l4dU05OXZra1lYeTdybnhjdFNvN0d0R0lKSlZhYk51WFowcGVhWTlrdTAKK0NVZ0tBc1FuZExrVEh6OGJJaDBDQXdFQUFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnRUdNQThHQTFVZEV3RUIKKy93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZCNGpZL0NGdGZZbFR1MGF3RkMrWlh6SDFCVjZNQTBHQ1NxR1NJYjMKK0RRRUJDd1VBQTRJQkFRQ1ZiN2xJNGQ0OXU3RXRDWDAzL3JVQ0NpYVo2NE5NeHhxUm1jU1ZkVXg2eVJyYmw4Tk4KK0ZOcjZ5bTJrVHZ3ZTErSmtUQ2lEeEt6SnNPUi9qY1BjekFGaVlwRmJaUVlMQTZSSzBiemJMOVJHY2F3NUxMaFkKK28vZmxxc3UzTjIvSE5lc1diZWtveExvc1A2TkxHRU9ucGoxQitSM3k3SENRcS8wOFU1bDNFdGU2VFJLVEFhdmMKKzBtdHkrdUNGdExYZit0aXJsN3hTYUlHRDBMd2NZTmR6TEVCOWc0amU2RlFTV0wwUU9YYit6Ujc1NVFZdXBaQXcKK0cxUG5PZ1lXZnFXb3dLY1FRZXhGUHJLR2x6aDBuY0lUVi9uQkVpKytmbm5aN1RGaXdhS3dlK1d1c3NyUk9WMVMKK0RERjI5ZG1vTWNiU0ZETCtEZ1NNYWJWVDZRcjZaZTFyYm1TaAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0dsb2JhbFNpZ24gVHJ1c3RlZCBQbGF0Zm9ybSBNb2R1bGUgRUNDIFJvb3QgQ0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQ3N6Q0NBanFnQXdJQkFnSU9SZHljakJVVjIxblFSa3VkZWVrd0NnWUlLb1pJemowRUF3TXdnWXN4T3pBNQorQmdOVkJBc1RNa2RzYjJKaGJGTnBaMjRnVkhKMWMzUmxaQ0JEYjIxd2RYUnBibWNnUTJWeWRHbG1hV05oZEdVZworUVhWMGFHOXlhWFI1TVJNd0VRWURWUVFLRXdwSGJHOWlZV3hUYVdkdU1UY3dOUVlEVlFRREV5NUhiRzlpWVd4VAorYVdkdUlGUnlkWE4wWldRZ1VHeGhkR1p2Y20wZ1RXOWtkV3hsSUVWRFF5QlNiMjkwSUVOQk1CNFhEVEUwTVRFeQorTmpBd01EQXdNRm9YRFRNNE1ERXhPVEF6TVRRd04xb3dnWXN4T3pBNUJnTlZCQXNUTWtkc2IySmhiRk5wWjI0ZworVkhKMWMzUmxaQ0JEYjIxd2RYUnBibWNnUTJWeWRHbG1hV05oZEdVZ1FYVjBhRzl5YVhSNU1STXdFUVlEVlFRSworRXdwSGJHOWlZV3hUYVdkdU1UY3dOUVlEVlFRREV5NUhiRzlpWVd4VGFXZHVJRlJ5ZFhOMFpXUWdVR3hoZEdadgorY20wZ1RXOWtkV3hsSUVWRFF5QlNiMjkwSUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFTlRwcworODZGRFVEK2JlcDNrZDFVNXBuaXRhMzE2ekJrdE9WTld4WlErWW11YTBvYVI2Nkl0ekhybDE5ellTR2JXNmFyMAorMVY5MWtrdHhXREo2VUZsM015SDN5WEtzQ0hTMk81dnhNbGZtZFJwOHRwZWJNb3JIdElXZjl1MStjdE5GbzJNdworWVRBT0JnTlZIUThCQWY4RUJBTUNBUVl3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVWVQ3OAorRVprS2Y3Q3BXNUNnSmw0cFlVZTNNQU13SHdZRFZSMGpCQmd3Rm9BVVlUNzhFWmtLZjdDcFc1Q2dKbDRwWVVlMworTUFNd0NnWUlLb1pJemowRUF3TURad0F3WkFJd2QwMmlBYjVhTi9wUUdXZFRKNy9sZ01oRkN1T0xHdFErb2NkVgorL3htb3hkSVdMdGdnQXVxOWZGRGZzdS92emVKN0FqQUdoZGswM0FqSHBMbDBkQXA3YUNJOEQ4cXVwd3lZVEJhTAorclNKQ1pETUhodk5oRVRiYkx1OHVFUEt0L1U2L21HTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJQ0xFUElEQTAxUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR6VENDQTNLZ0F3SUJBZ0lVYTJQVEdoY1cxbnRMRE8rWlZYL3FTOVB4TGVjd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UY3cKK056STBNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQm96RUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eFBUQTdCZ05WQkFzTU5GUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUVsRFRGOUYKK1VFbEVYMEV3TFRGZlVGSlBSQ0J3YVdRNk16STNOell4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHcKK1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUWGZEaDZEVUdudHk5SStNemgwM3d0TXkrZEpZQXMKK2tRMGhTdmkwcjFpNm9LNHhLWTJBTTJ0YzhBdVlrKzgvQk1QT01CUTFTWlEvaC90VkVQOEJ2N1FtbzRJQm5EQ0MKK0FaZ3dId1lEVlIwakJCZ3dGb0FVNkZJRndrL1kwdFdsSVVjV3RzNE1lMXU2ZHc4d0hRWURWUjBPQkJZRUZBbVMKK0ZsT2N5T2U5QTNjRmRRSzhqOC94QnorZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdEZ1lEVlIwUEFRSC8KK0JBUURBZ0VHTUJNR0ExVWRKUUVCL3dRSk1BY0dCV2VCQlFnQk1IQUdBMVVkSUFFQi93Um1NR1F3WWdZS0tvWkkKK2h2aE5BUVVDQVRCVU1GSUdDQ3NHQVFVRkJ3SUJGa1pvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXQKK0wyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMk5sY25SUWIyeHBZM2xUZEdGMFpXMWxiblF1Y0dSbU1Gd0cKK0NDc0dBUVVGQndFQkJGQXdUakJNQmdnckJnRUZCUWN3QW9aQWFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnMKK0xtTnZiUzlqYjI1MFpXNTBMME5TVEM5bGEyTmxjblF2UlV0U2IyOTBVSFZpYkdsalMyVjVMbU5sY2pCTkJnTlYKK0hSOEVSakJFTUVLZ1FLQStoanhvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXYKK1ExSk1MMlZyWTJWeWRDOUZTMTlRYkdGMFptOXliUzVqY213d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFQd0UKK3FkYm5yZnI5b2N5bXpYdU9PMmVnNkNYMWNvNkNsWG0ySTBrUml1Q2VBaUVBN0NvL3l6d2xIbDF0R1J4Rk5zZTUKK0dZSmNJTmVnMWphazRLSXQyb0FSVEFBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lDTEVQSURBMFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR5ekNDQTNDZ0F3SUJBZ0lVTzgxeWxlNTNzVS94NkgwYzJrOWgweEZjRXY0d0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UY3cKK05ERXpNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQm9URUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eE96QTVCZ05WQkFzTU1sUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUVsRFRGOUYKK1VFbEVYMEV3WDFCU1QwUWdjR2xrT2pNeU56YzJNUll3RkFZRFZRUUREQTEzZDNjdWFXNTBaV3d1WTI5dE1Ga3cKK0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaUpwanQ0SXQ1Q1dVd2FjL016S0V3c0tJZ051dXhDS0UKK1FkWG9nTmxVaWYyZ2xLdDRQT2d6SWNKa1ZMSkx5eU0yRWMvMTQwcnU1Qm9aaERNZ09BOVJHYU9DQVp3d2dnR1kKK01COEdBMVVkSXdRWU1CYUFGT2hTQmNKUDJOTFZwU0ZIRnJiT0RIdGJ1bmNQTUIwR0ExVWREZ1FXQkJReG1iWFcKK0xWZlRCbnVWUEJERUQzdDN3R0hINVRBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1BNEdBMVVkRHdFQi93UUUKK0F3SUJCakFUQmdOVkhTVUJBZjhFQ1RBSEJnVm5nUVVJQVRCd0JnTlZIU0FCQWY4RVpqQmtNR0lHQ2lxR1NJYjQKK1RRRUZBZ0V3VkRCU0JnZ3JCZ0VGQlFjQ0FSWkdhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWoKK2IyNTBaVzUwTDBOU1RDOWxhMk5sY25RdlJVdGpaWEowVUc5c2FXTjVVM1JoZEdWdFpXNTBMbkJrWmpCY0JnZ3IKK0JnRUZCUWNCQVFSUU1FNHdUQVlJS3dZQkJRVUhNQUtHUUdoMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWoKK2IyMHZZMjl1ZEdWdWRDOURVa3d2Wld0alpYSjBMMFZMVW05dmRGQjFZbXhwWTB0bGVTNWpaWEl3VFFZRFZSMGYKK0JFWXdSREJDb0VDZ1BvWThhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlMKK1RDOWxhMk5sY25RdlJVdGZVR3hoZEdadmNtMHVZM0pzTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFEeUcvWWwKK2pzcTEwZTJzTC9adDhuTVMzcVgvQThRR0VFRVFvTFhoeWxyQW5BSWhBTXBYZHZzSGdqU2YxY252TkhUZS9BSkkKK0pQdDRPb3VCKysrcGpjSUZCZ0phCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUNMRVBJRFBST0RQUlEgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlENERDQ0E0V2dBd0lCQWdJVUsyVzQrOW1xUkJFb2FWWlJjVHFqVEpHbEcwQXdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVGd3CitOREV4TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JuakVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhPREEyQmdOVkJBc01MMVJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFbERURjlGCitVRWxFWDFCU1QwUmZVRkpSSUhCcFpEbzRNUll3RkFZRFZRUUREQTEzZDNjdWFXNTBaV3d1WTI5dE1Ga3dFd1lICitLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFQVQwd3lPbXpwNnFlaU5hMDF3bmJWYmpxYTdnaHJPVlNVR3NQCitqUFJ1aTlQdjVwcG5lUnBJV1g0NkRScUxsY2N1aFE4enlXVCs4V1J2YVlWakZiSTNZNk9DQWJRd2dnR3dNQjhHCitBMVVkSXdRWU1CYUFGT2hTQmNKUDJOTFZwU0ZIRnJiT0RIdGJ1bmNQTUIwR0ExVWREZ1FXQkJUbkNEOGlGU3AwCitrdXhac01Ra05EZGtpeFhidHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1BNEdBMVVkRHdFQi93UUVBd0lCCitCakFUQmdOVkhTVUJBZjhFQ1RBSEJnVm5nUVVJQVRCNEJnTlZIU0FCQWY4RWJqQnNNR29HQ2lxR1NJYjRUUUVGCitBZ0V3WERCYUJnZ3JCZ0VGQlFjQ0FSWk9hSFIwY0hNNkx5OTBjblZ6ZEdWa2MyVnlkbWxqWlhNdWFXNTBaV3d1CitZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMyTmxjblJRYjJ4cFkzbFRkR0YwWlcxbGJuUXVjR1JtCitNR1FHQ0NzR0FRVUZCd0VCQkZnd1ZqQlVCZ2dyQmdFRkJRY3dBb1pJYUhSMGNITTZMeTkwY25WemRHVmtjMlZ5CitkbWxqWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMUp2YjNSUWRXSnNhV05MCitaWGt1WTJWeU1GVUdBMVVkSHdST01Fd3dTcUJJb0VhR1JHaDBkSEJ6T2k4dmRISjFjM1JsWkhObGNuWnBZMlZ6CitMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTBMME5TVEM5bGEyTmxjblF2UlV0ZlVHeGhkR1p2Y20wdVkzSnNNQW9HCitDQ3FHU000OUJBTUNBMGtBTUVZQ0lRQzFBUDladG9hUmRYUTFQYkRDZFhSVjE4VDZDZ3ljc0VXdUxEOEZNT0g1CitwUUloQUtLMk9qQnN2ZEovMDJuUjJOQS9ubitIQ0U3SjZLY0JHbnJYZ3JCTmhKcUQKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJQ0xORVBJRFBSRVBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRDREQ0NBNGVnQXdJQkFnSVVYa3h1elpSSEp5RkltSElDdlFVU1dRemMycnd3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRndworTnpJd01EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCb0RFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4T2pBNEJnTlZCQXNNTVZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRWxEVEY5TworWDBWUVNVUmZVRkpGWDFCU1QwUWdjR2xrT2pneEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3V1RBVAorQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU0lLZmxCVEhnV0FmeFo3czBEREp6SHI0UCtOUklPaWowVAorbCszajg3WU9RblV1cGY5YjExdW5nd0sxeHU3T0VBTWtYQVpPcmdDNlF1aDJON0QzNUZwQ280SUJ0RENDQWJBdworSHdZRFZSMGpCQmd3Rm9BVTZGSUZ3ay9ZMHRXbElVY1d0czRNZTF1NmR3OHdIUVlEVlIwT0JCWUVGRi9GNXRkUgorZk9BV3hoWVJDMUFVMkNXK01YcCtNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3RGdZRFZSMFBBUUgvQkFRRAorQWdFR01CTUdBMVVkSlFFQi93UUpNQWNHQldlQkJRZ0JNSGdHQTFVZElBRUIvd1J1TUd3d2FnWUtLb1pJaHZoTgorQVFVQ0FUQmNNRm9HQ0NzR0FRVUZCd0lCRms1b2RIUndjem92TDNSeWRYTjBaV1J6WlhKMmFXTmxjeTVwYm5SbAorYkM1amIyMHZZMjl1ZEdWdWRDOURVa3d2Wld0alpYSjBMMFZMWTJWeWRGQnZiR2xqZVZOMFlYUmxiV1Z1ZEM1dworWkdZd1pBWUlLd1lCQlFVSEFRRUVXREJXTUZRR0NDc0dBUVVGQnpBQ2hraG9kSFJ3Y3pvdkwzUnlkWE4wWldSegorWlhKMmFXTmxjeTVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlEVWt3dlpXdGpaWEowTDBWTFVtOXZkRkIxWW14cAorWTB0bGVTNWpaWEl3VlFZRFZSMGZCRTR3VERCS29FaWdSb1pFYUhSMGNITTZMeTkwY25WemRHVmtjMlZ5ZG1sagorWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMTlRYkdGMFptOXliUzVqY213dworQ2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnSVFsYUwyc3NHbHJCTWlndG5qb2FZZEM0UGFDQlRaYWJmb25IL21TZgorV3V3Q0lDUyswV0NlekpJNHE5VWxpL05OZDJRYklPWEN3czZ1WW04Mm1mMXVnM3FsCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUNMTkVQSURQUk9EIEVLIFBsYXRmb3JtIFB1YmxpYyBLZXkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUQzakNDQTRPZ0F3SUJBZ0lVZmlqRW9sV1JJNkRza1N0TndzN3VFaldNWG1jd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UZ3cKK056RTNNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQm5ERUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eE5qQTBCZ05WQkFzTUxWUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUVsRFRGOU8KK1gwVlFTVVJmVUZKUFJDQndhV1E2T0RFV01CUUdBMVVFQXd3TmQzZDNMbWx1ZEdWc0xtTnZiVEJaTUJNR0J5cUcKK1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJGZTJKTkFNMUhaRTdhM0NvdDNpU2lOV1lkejYvdElXSTB1WXBRRUsKK2JUNjlEV254SWQyZ0E5aEJ4ZWlDUHpWVWd3REloTWROSW41SVVZRlFmbmVnQVdDamdnRzBNSUlCc0RBZkJnTlYKK0hTTUVHREFXZ0JUb1VnWENUOWpTMWFVaFJ4YTJ6Z3g3VzdwM0R6QWRCZ05WSFE0RUZnUVVIUGo2Y2prd28rY3gKK0tjMTluenFFWFhIS2NtZ3dFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFPQmdOVkhROEJBZjhFQkFNQ0FRWXcKK0V3WURWUjBsQVFIL0JBa3dCd1lGWjRFRkNBRXdlQVlEVlIwZ0FRSC9CRzR3YkRCcUJnb3Foa2lHK0UwQkJRSUIKK01Gd3dXZ1lJS3dZQkJRVUhBZ0VXVG1oMGRIQnpPaTh2ZEhKMWMzUmxaSE5sY25acFkyVnpMbWx1ZEdWc0xtTnYKK2JTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRqWlhKMFVHOXNhV041VTNSaGRHVnRaVzUwTG5Ca1pqQmsKK0JnZ3JCZ0VGQlFjQkFRUllNRll3VkFZSUt3WUJCUVVITUFLR1NHaDBkSEJ6T2k4dmRISjFjM1JsWkhObGNuWnAKK1kyVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTBMME5TVEM5bGEyTmxjblF2UlV0U2IyOTBVSFZpYkdsalMyVjUKK0xtTmxjakJWQmdOVkhSOEVUakJNTUVxZ1NLQkdoa1JvZEhSd2N6b3ZMM1J5ZFhOMFpXUnpaWEoyYVdObGN5NXAKK2JuUmxiQzVqYjIwdlkyOXVkR1Z1ZEM5RFVrd3ZaV3RqWlhKMEwwVkxYMUJzWVhSbWIzSnRMbU55YkRBS0JnZ3EKK2hrak9QUVFEQWdOSkFEQkdBaUVBamR6dWZuZTBEeVZScDA4SDgrQmV5RFRONFhaTGZyY1ovNGZsWldnZUsxd0MKK0lRQ3pBaUVFTmoyVnN2QnZuaWM4bTY1RXRVbDgweWp4Z1ZTK2ZITENXVzlZbHc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgUm9vdCBDQQorPT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVVRENDQXppZ0F3SUJBZ0lRUnlRRTROOGhnRDk5SU0ySFNPcTVXakFOQmdrcWhraUc5dzBCQVFVRkFEQ0IKK2xqRUxNQWtHQTFVRUJoTUNWVk14RnpBVkJnTlZCQW9URGxabGNtbFRhV2R1TENCSmJtTXVNVHN3T1FZRFZRUUwKK0V6SldaWEpwVTJsbmJpQlVjblZ6ZEdWa0lFTnZiWEIxZEdsdVp5QkRaWEowYVdacFkyRjBhVzl1SUVGMWRHaHYKK2NtbDBlVEV4TUM4R0ExVUVBeE1vVm1WeWFWTnBaMjRnVkhKMWMzUmxaQ0JRYkdGMFptOXliU0JOYjJSMWJHVWcKK1VtOXZkQ0JEUVRBZUZ3MHdOVEV3TWpVd01EQXdNREJhRncwek1ERXdNalF5TXpVNU5UbGFNRzB4Q3pBSkJnTlYKK0JBWVRBa1JGTVJBd0RnWURWUVFJRXdkQ1lYWmhjbWxoTVNFd0h3WURWUVFLRXhoSmJtWnBibVZ2YmlCVVpXTm8KK2JtOXNiMmRwWlhNZ1FVY3hEREFLQmdOVkJBc1RBMEZKVFRFYk1Ca0dBMVVFQXhNU1NVWllJRlJRVFNCRlN5QlMKK2IyOTBJRU5CTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUExeVpxRkZnMFBMRG8KK2NXN0Z5aXMyWGU1dkVSeG5KK0tsRU1VT1Fucnc1QXQ5ZjAvZ2dvdkRNOHVDVlc3MVQ2ZTI0VDZISDZrVVFaQ3QKK3lkZHRzYWYwdGVibUEzVHhqaXVCekJBdFQ2cXluczM1K3NYdUw2dVphTG5qR0tYRHYrdUJ5T3pwbUJYVVN3cTEKK3RkU1RQUTB3V1dRNnYvcXdLb2ZaZHhBYVBDVElCdzYxRzA4cmtVVDQyYTFoUEVTbVZGcm1jNWhjbm40QVFtSkUKK2NqY09oQ2x3SUtFOU9RdzhUekkrN25jZ0NabFkzRlpGS3FIcDdOUk5uYWlocG1LYkh2bjV3WElVbkt1dlM0aVoKK0hxU2J6R0J1WjBvZ3FKMjJydURKaStKV1lVV0JtZ0kxSk84NUNQSjFRNTh0ME1FM2hNM29XZXFWNmFkV1VjSWMKK0lwY2xrWVFXbHdJREFRQUJvNEhCTUlHK01CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRRXdXQVlEVlIwZ0FRSC8KK0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkM0xuWmwKK2NtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3RGdZRFZSMFBBUUgvQkFRREFnSUUKK01CMEdBMVVkRGdRV0JCUlc2NUZFaFdQV2NyT3UxRVdXQy9lVURsUkNwakFmQmdOVkhTTUVHREFXZ0JRUEZQWGoKK0lJaEVGc29tdjQwZnpqY1Y2a1Z2QmpBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQVdLTDV6c1Y4cC9UWmszbXQKKzltOU5BcVhXQkRWSEJuRGdCRStRcGhmMjVzKzNzMDk4dmtXVkxUZGRIM1B0ZGRGM01FWUM0VzgrZG40dHlGZTkKK21RKzk2cThkd0pkTmFid0Jva3JaeTJiZUw3MUNYdC80allOTjBqL045dVlPNHZJREJGREtSTVdDdFVPMjE3K3cKK3hRVFNPdjUrbXBnRnc3VU1ML1FwZ3BkbVp5MmkrZVpQeERvOGR6VCtZSlhDNXZzSFZTb29BM3JXRER6dm5vTEMKK2NtRERpVDNwRzZBZGpBTjYxTWVlSEhtb0phdlY4VHZkb2EzZzE0U24xbEwrVFExeGF6bnloNTIwc1gwZFhQVHAKK0dxWmJEenFFTWlWYkc3dkZFQ3FJTkU5Ni9yd3BwSmxXSzkxRjFNWmlrR1hyN0ZlRjVDMEp1dEdMYjBnYVlPbXYKK1lhdTREUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFJvb3RDQQorPT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEOXpDQ0F0K2dBd0lCQWdJUWMzSEFMd1BweTVFTnJKNDlTK1lvMFRBTkJna3Foa2lHOXcwQkFRVUZBRENCCitsakVMTUFrR0ExVUVCaE1DVlZNeEZ6QVZCZ05WQkFvVERsWmxjbWxUYVdkdUxDQkpibU11TVRzd09RWURWUVFMCitFekpXWlhKcFUybG5iaUJVY25WemRHVmtJRU52YlhCMWRHbHVaeUJEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2CitjbWwwZVRFeE1DOEdBMVVFQXhNb1ZtVnlhVk5wWjI0Z1ZISjFjM1JsWkNCUWJHRjBabTl5YlNCTmIyUjFiR1VnCitVbTl2ZENCRFFUQWVGdzB3TlRFd01qVXdNREF3TURCYUZ3MDBOVEV3TWpReU16VTVOVGxhTUlHV01Rc3dDUVlECitWUVFHRXdKVlV6RVhNQlVHQTFVRUNoTU9WbVZ5YVZOcFoyNHNJRWx1WXk0eE96QTVCZ05WQkFzVE1sWmxjbWxUCithV2R1SUZSeWRYTjBaV1FnUTI5dGNIVjBhVzVuSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNVEV3CitMd1lEVlFRREV5aFdaWEpwVTJsbmJpQlVjblZ6ZEdWa0lGQnNZWFJtYjNKdElFMXZaSFZzWlNCU2IyOTBJRU5CCitNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTJWQnJRT2g3WTFXSGN6eHQxSUduCitybEJLS3IwSzZPWlhWbGxyNkY1dnVGMGxuZWFqQ1JweFpKVW5lN3Y3L2FweGVzcjU5THJRY0RiT2t0bHJHWFh6CitPWGpLQmFYWkJrS09POFJPSUUyQWU2cnNsT015bmxQSFdQNEhLZG9nWmUzTFBQVml1QzE0dWhnejVpWEo4cEZmCitVUWRLeENkS1dUeklDZzBCK2w0NnBwNDJGeHI4M2VSNzJPOWtTekVxaWprYVlkb0R4MDZ5eFdBTGd1VUd6UzdICis1c3ljbnUydEFHREdGcm1zUW9oOG1LNEZVaTV2Y2U4SnVXdWhpckNYWnptUC9mVjR0WW5kdytISlMvRDdYdVdrCitCV2NibTBjbExUYm1ZWjdBZTFybDFYVFA1cGQ4UTNjSEdCNlIwSGNYeUFDeUU0VmpwL2cwSjNISmpIZDNMNlRyCit3d0lEQVFBQm96OHdQVEFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQXNHQTFVZER3UUVBd0lCQmpBZEJnTlZIUTRFCitGZ1FVRHhUMTR5Q0lSQmJLSnIrTkg4NDNGZXBGYndZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFINlVqZGhxCitMOGIzOCtzd1BKMkpvd3U3VXhjZ3pSV3IyYXlMcXg4TXdRa04xZ2lTTHN4Y2o2c0hzZU13cUhMejJmQ0ZmSzJXCitTaTVaZXlJV2xCMVRPSnR3ZHBjbWFmRk5QczBoT1dXeWwzRDR1WTJrZmlRRnUrR2RwUnRNN1QrbHNnRExsWHZ6Cit0Nm5XMlRzY3dHUktaQTM0aGh2dEU3Mjk0Sko1NkRsSWNkU20zQ1k5TUJ2SitwRjJMeU9DMU5kZEhEZjh5d0tFCitYQTlDWFZtdTNkcHZ3RStzN2ZsUVBTMkUreTVFYVdrWHRLc28ySlRhSE1TM1BTd1NKUmhta25mL1F0RWtQWmZiCitqemJoWlp4VnU0OEVaS09KTDhsWHpxbTRoZ3BmN2tYK1dyVnNDQW55NkFKa05uMXhzUWZ2VDBZNU9hVk5IMlJGCitqNE9Sanl0NEE1ZHUzSDQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMDEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVuekNDQTRlZ0F3SUJBZ0lFTVY2NGJEQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB3TlRFd01qQXhNelEzTkROYUZ3MHlOVEV3TWpBeE16UTNORE5hTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBd01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxmdFBoWU4KK3Q0ckUrSm5VL1hPUElDYk9CTHZmbzZpQTdudXE3emY0RHpzQVdCZHNaRWRGSlFmYUszMzFpaEczSXBRbmxRMmkKK1l0RGltMjg5MjY1ZjBKNE9rUEZwS2VGVTI3Q3Nmb3pWYU5VbTZVUi91endBOG5jeEZjM2laTFJNUk5McnUvQWwKK1ZHMDUzVUxWRFFNVngyaXd3YkJTQVlPOXBHaUdiazFpTW11WmFTRXJNZGI5djBLUlV5Wk03eUFCaXlEbE0zY3oKK1VRWDV2TFdWMHVXcXhkR29Id052YTV1M3luUDlVeFBUWldIWk9IRTYrMTRyTXpwb2JzNld3MlJSOEJnRjk2cmgKKzRyUkFaRWw4Qlhod2lRcTRTVHZVWGtmdmRwV0g0bHpzR2NERHRyQjZOdDNLdlZOdnNLeitiMDdEaytYenQrRUgKK05UZjNCeWsySGx2WCtzY0NBd0VBQWFPQ0FUc3dnZ0UzTUIwR0ExVWREZ1FXQkJRNGs4MjkySFBFSXpNVjRiRTcKK3FXb05JOHdReHpBT0JnTlZIUThCQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURCWUJnTlYKK0hTQUJBZjhFVGpCTU1Fb0dDMkNHU0FHRytFVUJCeThCTURzd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTMKK2QzY3VkbVZ5YVhOcFoyNHVZMjl0TDNKbGNHOXphWFJ2Y25rdmFXNWtaWGd1YUhSdGJEQ0Jsd1lEVlIwakJJR1AKK01JR01nQlJXNjVGRWhXUFdjck91MUVXV0MvZVVEbFJDcHFGeHBHOHdiVEVMTUFrR0ExVUVCaE1DUkVVeEVEQU8KK0JnTlZCQWdUQjBKaGRtRnlhV0V4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkIKK1J6RU1NQW9HQTFVRUN4TURRVWxOTVJzd0dRWURWUVFERXhKSlJsZ2dWRkJOSUVWTElGSnZiM1FnUTBHQ0FRTXcKK0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFCSjErQXAzck5seFowRlcwYUlnZHprdGJOSGx2WFdOeEZkWUlCYk0KK09Lam1iT29zMFk0TzYwZUtQdTI1OVhtTUl0Q1VtdGJ6RjNvS1lYcTZ5YkFSVVQyTG0rSnNzZU1GNVZnaWtTbFUKK0JKQUxxcEtWandBZHM4MU90bW5JUWUyTFN1NHhjVFNhdnBzTDRmNTJjVUF1L21hTWh0U2dOOW1xNXJvWXB0cTkKK0RuU1NEWnJYNHVZaU1QbC8vckJhTkRCZmxoSjcyN2o4eG85Q0NvaEYzeVFVb1FtN2NvVWdiUk16eU82NHlNSU8KKzNmaGIrVnVjN3NOd3JNT3ozVkpOMTRDM0pNb0dnWHkwYzU3SVAva0Q1ekdSdmxqS0V2clJDMkkxNDcrZlBlTFMKK0R1ZVJNUzZsYmx2UktpWmdtR0FnN1lhS09rT2FFbVZETVErZlRvMlBvN2hJNXdjPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFbnpDQ0E0ZWdBd0lCQWdJRWFJdElnVEFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncwd05qRXlNakV4TURNME1EQmFGdzB5TmpFeU1qRXhNRE0wTURCYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXdNakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLNktuUDVSCis4cHBxOVR0UHUzbUFzM0FGeGRXaHpLNWtzK0JpeEdSNm1wenlYRzY0QmpsNHh6QlhlQklWdGxCWlhZdklBSjVzCitlQ1RFRXNuWmM5ZUtOSmVGTGRtWFEvc2lSclRlb255eG9TNGFMMW1WRVFlYkxVejJnTjlKNmoxZXdseStPdkdrCitqRVlvdUdDekErZkFSekxlUklyaHVoQkkwa1VDaGJIN1ZNOEZuZ0pzYlQ0eEtCM0VKNld0dG1hMjVWU2lta0FyCitTUFM2ZHpVRFJTMU9GQ1d0QXRISlc2WWpCbkE0d2dSOFdmcFhzbmplTnB3RUVCK0pjaVd1MVZBdWVMTkkrS2lzCitSaWZlckNmc2dXUnZIa1I2UlFmMDRoK0ZsaG5ZSEpuZjFrdHFjRWkxb1lBakxzYllPQXdxeW9VMVBldjljUzI4CitFQTZGVEpjeGp1SGhIOUVDQXdFQUFhT0NBVHN3Z2dFM01CMEdBMVVkRGdRV0JCUkRNbHIxVUFRR1ZJa3d6YW1tCitmY2VBWjdsNEFUQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQllCZ05WCitIU0FCQWY4RVRqQk1NRW9HQzJDR1NBR0crRVVCQnk4Qk1Ec3dPUVlJS3dZQkJRVUhBZ0VXTFdoMGRIQTZMeTkzCitkM2N1ZG1WeWFYTnBaMjR1WTI5dEwzSmxjRzl6YVhSdmNua3ZhVzVrWlhndWFIUnRiRENCbHdZRFZSMGpCSUdQCitNSUdNZ0JSVzY1RkVoV1BXY3JPdTFFV1dDL2VVRGxSQ3BxRnhwRzh3YlRFTE1Ba0dBMVVFQmhNQ1JFVXhFREFPCitCZ05WQkFnVEIwSmhkbUZ5YVdFeElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCCitSekVNTUFvR0ExVUVDeE1EUVVsTk1Sc3dHUVlEVlFRREV4SkpSbGdnVkZCTklFVkxJRkp2YjNRZ1EwR0NBUU13CitEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSVpBYVlHemY5QVl2NkRxb1VOeDZ3ZHBheWhDZVg3NS9JSHVGUS9kCitnTHphdDlWZDZxTktkQUJ5c2twT2pwRTBLUmF1RXpEL0JoVHRrRUpEYXpQU21WUDFReEFQanFHYUQrSmpxaFMvCitRNmFZKzFQU0RpMnpSSURBNjZWMnlGSkRjVUJUdFNoYmRUZzE0NFlTa1ZTWTVVQ0toUXJzZGc4eUFiczdzYUFCCitMSHpWZWJUWGZmam1rVGs1R1prMjZkL0FaUVJqZnNzdGExTi9UV2hXVGZ1WnR3WXZqWm1nRFBlQ2ZyNkFPUExyCitwVkp6K250elVLR3BRKzVtd0RKWE1aMHFlaUZJZ1hVbFUwRCtsZnVhamMveDlyZ2l4OWNNK283YW1nRGxSaTFUCis1NVV1MnZ6VVE5akxVYUlTRmFUVE1hZytxdUJEaHg4QkRWdStpZ0xwNWh2QnR4UT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAwMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRW56Q0NBNGVnQXdJQkFnSUVIN2ZZbGpBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHdOekEwTVRNeE5qUTBNalJhRncweU56QTBNVE14TmpRME1qUmFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F3TXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSldkUEF1SAorei9wMXRJd0IxUVhsUEQvUGplZFo0dUJaZHdQSDV0STNVdmUwVHpiUi9tTzVjbHgvbG9XbjduWjVjSGtIMW5oQgorUjY3SkVGWTBhOUdpdGhQZklUaDBYUnhQY2lzTEJFL1NvcVo5MEtIRmFTK042U3dPcGRDUDBHbFVnMU9lc0tDRgorNzlaNmZYcmtUWnNWcFBxZGF3ZFpLK29Vc0RPOXo5VTZ4cVY3YndzUzc1WStRaUhzbTZVVGdBa1NOUW51Rk1QMworTnFReURpL0JhV2FZUkdRNks4cE03WTdlMWgyMXovKzVYN0xuY1pYVThoZ3BZcHUyelFQZzk2SWtZYm9WVUtMNAorMDBzbmFQY092ZmFnc0JVR2xCbHROZno3Z2VhU3VXVENkd0Vpd2xrQ1lacUN0YmtBajVGaVN0YWpyelA3MkJmVAorMmZzaEl2KzVlRjdRcDVFQ0F3RUFBYU9DQVRzd2dnRTNNQjBHQTFVZERnUVdCQlRHeXlwTnR5bEw2UkZ5VDFCQgorTVF0TVF2aWJzakFPQmdOVkhROEJBZjhFQkFNQ0FnUXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREJZQmdOVgorSFNBQkFmOEVUakJNTUVvR0MyQ0dTQUdHK0VVQkJ5OEJNRHN3T1FZSUt3WUJCUVVIQWdFV0xXaDBkSEE2THk5MworZDNjdWRtVnlhWE5wWjI0dVkyOXRMM0psY0c5emFYUnZjbmt2YVc1a1pYZ3VhSFJ0YkRDQmx3WURWUjBqQklHUAorTUlHTWdCUlc2NUZFaFdQV2NyT3UxRVdXQy9lVURsUkNwcUZ4cEc4d2JURUxNQWtHQTFVRUJoTUNSRVV4RURBTworQmdOVkJBZ1RCMEpoZG1GeWFXRXhJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQgorUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NUnN3R1FZRFZRUURFeEpKUmxnZ1ZGQk5JRVZMSUZKdmIzUWdRMEdDQVFNdworRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUdOMWJraDRKOTBER2NPUFAyQmx3RTZlakowaURLZjF6Ris3Q0x1NQorV1M1SzRkdnV6c1dVb1E1ZXBsVXQxTHJJbG9yTHI0Nm1Mb2taRDBSVEc4dDQ5UmN3NEF2eE1nV2s3b1lrNjlxMgorME1Hd1h3Z1o1T1F5cEhhUHdzbG1kZExjWCtSeUV2anJkR3BReDNFLzg3WnJRUDhPS25tcUkzcEJsQjhRd0NHTAorU1Y5QUVSYUdEcHpJSG9PYkxsVWpnSHVENmFGZWtQZmVJdTF4Yk4yNW9aQ1dtcUZWSWhrS3hXRTFYdStxcUhJQQorZG5DRmhvSVdIM2llOU9zSmgvaURSYUFOWVlHeXBsSWliRHgxRkpBOGZxaUJpQkJLVWxQb0p2YnFtWnM0bWVNZAorT29lT3VDdlE3b3AyOFV0YW9WNkg2QlNZbU41ZE9nVzdyMWxYMlJlMG5kODROR0U9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMDQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVuekNDQTRlZ0F3SUJBZ0lFRGhENHdEQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB3TnpFeU1ETXhNekEzTlRWYUZ3MHlOekV5TURNeE16QTNOVFZhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBd05EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU4zVUJtRGsKK2pKenpKK1dDZ3JxNHRJTHRFOUtKUE1HSHd2Q3NiSk9sbzdlSGlFYjhKUXpHSzFwcmtQUTNkb3dGUlhQbnFPTlAKK1dVYTM2L0ozUjMyeGd2dVpIcUFkbGlaQ3Q4SVViOXFZaERlbnVYbzFTU3FKOExXcDMwUUlKMHZua2FRMlRDa08KK2J2ZVpaUjNoSzJPWktSVGtGYVYvaXkyUkgrUXM0SkFlM2RpRDhtbEl1MmdYQVhuS0pTa3J6VzZnYk16cmxUT2kKK1JDdUdjYXRweTdIZm1vZGJ6LzBUcmJ1d3RjM2R5SlozS28xejliejJPaXJqaDkzUnJtWWpidEwwSGhrQWpNT1IKKzgzR0xyendVZGRTcW14dFhYWDhqNWkrL2dtRTNBTzcxc3dPSUVTZEd1Z3hhS1V6SjFqVHFXS01aY3gwRTZCRkkKK2xESWZLazBmSmxTeEhmRUNBd0VBQWFPQ0FUc3dnZ0UzTUIwR0ExVWREZ1FXQkJTSXM4RS9ZUVhSQkNLZldzRHIKK1NaVmtyTlJ6dlRBT0JnTlZIUThCQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURCWUJnTlYKK0hTQUJBZjhFVGpCTU1Fb0dDMkNHU0FHRytFVUJCeThCTURzd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTMKK2QzY3VkbVZ5YVhOcFoyNHVZMjl0TDNKbGNHOXphWFJ2Y25rdmFXNWtaWGd1YUhSdGJEQ0Jsd1lEVlIwakJJR1AKK01JR01nQlJXNjVGRWhXUFdjck91MUVXV0MvZVVEbFJDcHFGeHBHOHdiVEVMTUFrR0ExVUVCaE1DUkVVeEVEQU8KK0JnTlZCQWdUQjBKaGRtRnlhV0V4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkIKK1J6RU1NQW9HQTFVRUN4TURRVWxOTVJzd0dRWURWUVFERXhKSlJsZ2dWRkJOSUVWTElGSnZiM1FnUTBHQ0FRTXcKK0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFGdHFDbFFOQkxPemNHWlVwc0JxbHozZnJ6TTQ1aWlCcHhvc0cxUmUKK0lnb0FndElCRXRsNjA5VEc1MXRtcG0yOTRLcXBmS1pWTyt4Tnpvdm04ay9oZUdiMGptWWYrcTFnZ3JrMnFUNHYKK1F5MmpnRTBqYlAvUDhXV3E4TkhDMTN1TWNCVUdQYWthN3lvZkVERHd6N1RjZHVReUpWZkcycGQxdmZsbnpQMCsKK2lpSnBmQ2szQ0FRUW5iK0I3enNPcDdqSE53cHZIUCtGaE53WmFpa2FhME9kUi9NTDlkYTFzT09XM29KU1RFalcKK1NNTHVoYVpIdGNWZ2l0dnRPVnZDSS9hcTQ3ck5Ka3UzeFE3Yy9zOEZIbkZ6UVErUTRURXhiUDIwU3JxUUlsTC8KKzlzRkFiNy9uS1lOYXV1c2FraUYzcGZ2TXJKT0ppZ05mSnlJY1dhR2Z5eVF0VlZJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDA1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFbnpDQ0E0ZWdBd0lCQWdJRVZ1Um9xekFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncwd09URXlNVEV4TURNNE5ESmFGdzB5T1RFeU1URXhNRE00TkRKYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXdOVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMNzl6TUNPCitiamtnN2dDV0V1eUdPNDlDaXNGL1FyR296OWFkVzFGQnVTVzhVOUlPbHZXWE5zdm9hc0MxbWhyc2ZrUlJvanVVCittV2lmeHh4Y1ZmT0k5djFTYlJmSitpNmxHMjFJY1ZlNnl3TEpkRGxpVCszdnp2cmIvMmhVL1hqQ0NNRFdiL1B3CithWnNsVjVpTDRRRWlLeHZSSWlXTVlIVzBNa2tMN216UkJEVk4vVnozWmlMNUxwcTdhd2lLdVg5T1hwUzJhMXdmCitxU0dBbG0yVHhqVTg4NHE5S3k4NUpKdWduMFEvQzNkYzhhYUZQS0xIbFJzNnJJdk4xbDBMd0IxYjVFV1B6VFBKCitkOUVoUlBGSk9BYkpTNjZuU2dYMDZGbDdlV0I3MW93NncvMjVvdExRQ2JweTZPckY4d0JWTXRQTUhxRmIxYzMyCitQYWFOenBDQm5JVTd2YU1DQXdFQUFhT0NBVHN3Z2dFM01CMEdBMVVkRGdRV0JCUzd6M3pCaENFeFp0cTF2bE9vCitjQlRkMDBqWXpEQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQllCZ05WCitIU0FCQWY4RVRqQk1NRW9HQzJDR1NBR0crRVVCQnk4Qk1Ec3dPUVlJS3dZQkJRVUhBZ0VXTFdoMGRIQTZMeTkzCitkM2N1ZG1WeWFYTnBaMjR1WTI5dEwzSmxjRzl6YVhSdmNua3ZhVzVrWlhndWFIUnRiRENCbHdZRFZSMGpCSUdQCitNSUdNZ0JSVzY1RkVoV1BXY3JPdTFFV1dDL2VVRGxSQ3BxRnhwRzh3YlRFTE1Ba0dBMVVFQmhNQ1JFVXhFREFPCitCZ05WQkFnVEIwSmhkbUZ5YVdFeElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCCitSekVNTUFvR0ExVUVDeE1EUVVsTk1Sc3dHUVlEVlFRREV4SkpSbGdnVkZCTklFVkxJRkp2YjNRZ1EwR0NBUU13CitEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSG9tTkp0bUZOdFJKSTIrczZad2R6Q1RIWFhJY1IvVCtOL2xmUGJFCitoSVVHNEtnKzN1UU1QN3pCaTIybTNJM0trOVNYc2pMcVY1bW5zUVVHTUdsRjdqdzVXNVErZDZOU0p6NHRhdzlECisyRHNpVXhFL2k1dnJqV2lVYVd4djJFY2tkNE1VZXhlNVF6OFlTaDRGUHFMQjhGWm5BbGd4MmtmZHpSSVVqa01xCitFZ0ZLOFpSU1VqWGRjenZzdWQ2OFlQVk1JWlR4SzBMOFBPR0o2UllpRHJqVGVscHJmWjRwS0taNzlYd3h3QUlvCitwRzZlbVVFZitkb1JUMEtvSG9DSHI5dnZXQ1dLaG9qcWxRNmpmbFBaY0VzTkJNYnE1S0hWTjc3dk9VNThPS3gxCis1NnYzRWFxclplblZGdDgrbjZoMk56aE9tZzJxdVFYSXIwVjlqRWc4R0FNZWhEcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAwNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRW56Q0NBNGVnQXdJQkFnSUVEaEQ0d0RBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhNVEF5TVRZeE5ERTROVEphRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F3TmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTjZlV0tOVAorTVQwaDFvUEdoOWFxcXJKQUpJY1hWWHdIY1dIRjVSWDBIWTc2U0RLZlJXV1B0VkQwUDVIUnVnd2xHVUtmdHUrVworVDRsbGNKakpDcGVEclcwN3JxWWwyd1JITk1SNGRvMjFPMkFpeFZiWUYwN1hSTDF1UkZWbVZ4WE5YTDYzdy95NAorSXFzOStySHM3aHBpakQxVDlnaFpnME1WbVB0a2J3UTBmVnJnQWgxWFY4eHVNQ2ZCNFQ4UVl6cmtpNytZY3l3SAorbkJkb1N3MjFpOUFwR3QzaWQ3QTMzUlA2UGJrUTZCcEphV0lxZWNoYXgyalljUEI1dFV3cm1NaFc1eFh2QzZuQQorSHVIYUVrR0RpaE1IL3BTeDNmcGx6ZmZ1cW41YlM0cVV3OXpRS2J0ZXZQeVRYbFprSDB5TXRlY214bytkMXJRZgoraGdMdmJjZU5od3AzTlhFQ0F3RUFBYU9DQVRzd2dnRTNNQjBHQTFVZERnUVdCQlRvSm1uTm55Q1lKd0tYU1o2dQordU4rbjVvczBJakFPQmdOVkhROEJBZjhFQkFNQ0FnUXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREJZQmdOVgorSFNBQkFmOEVUakJNTUVvR0MyQ0dTQUdHK0VVQkJ5OEJNRHN3T1FZSUt3WUJCUVVIQWdFV0xXaDBkSEE2THk5MworZDNjdWRtVnlhWE5wWjI0dVkyOXRMM0psY0c5emFYUnZjbmt2YVc1a1pYZ3VhSFJ0YkRDQmx3WURWUjBqQklHUAorTUlHTWdCUlc2NUZFaFdQV2NyT3UxRVdXQy9lVURsUkNwcUZ4cEc4d2JURUxNQWtHQTFVRUJoTUNSRVV4RURBTworQmdOVkJBZ1RCMEpoZG1GeWFXRXhJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQgorUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NUnN3R1FZRFZRUURFeEpKUmxnZ1ZGQk5JRVZMSUZKdmIzUWdRMEdDQVFNdworRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUt4OTZvTnNpZ1dGZ08vMXlGaFRMMExBRUlwZkkwVFpuSEJTc1FyVQorZXo2eGVEUVVEeFdORTBmaUZFQUZ0eldON0pOSWpoYnVYNCtkOXpwTjFoL3lsc1hHRGoxMVFZK08ySm5Da2YzKworamRsbENKQlR5Vjl0aWdJa1lPOFo2MDRSMlRsN0p2LzlRUW11aGNSWkYxM3FUTXJPc3g2emh0T3ZwY1grUTI4TAorRlVrYzZmcHhpd1FwVGJCZW9ha0VwbW8yREpRTTRVbzFOYmNPaWo0NHE5VEp5b3lMSWVUTlVweWtJR3U3L1BEdQorWmhnSFNweTJ6Z0dHdHI4cEtNaHp3ckoremQzVXJJdmUrOW9kSmZ6c2FzSUxVNy9ZWExLQWdoNFBCUXpUcS9xegorclRPa0JpeDd0R1ZiT0EyQS93U29Tc2VMNW5iazNnTThPWXh1dGVuNmY1c3BHZlk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMDcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVuekNDQTRlZ0F3SUJBZ0lFUlQySTFUQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TWpBM01UY3dPVEUwTURWYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBd056Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQVBCTW0xdWYKK1BMd2xDUmVmWGc4eDNPc3dLUUQxS0VXT0FDdytrVTFyS2VYZ2trc0x5ckxkQlQ5bDJkU283cWdtbklYRUdkdW0KK1FLaU9GTnhmakl3YVFtbDZXc1JaU3piNUl4RVBrZEdBUFRoVlFNQWFRekZBc0dCVXgzb1VUdU9tcGxsUXdnK1MKK0ZiNDBjN0VBTHJheGRXb2krOEdOSWUrc3U4akNjTVpzOTBtQzRrOEZlQ1hLdFJ3TjJFQ2s4dEJaQXlJNXd6NC8KK1VzYktCdjVKdjA5Z3pDaWcreEZ6MHU0Rm9VSFREby82TXR1NGJCcnJXekNmZHNMa1lwWldFdXlTbWcwN0JLejYKK1JTV1JMSGIzWmVsSXZuSDFCZFlaekdjNmlKOE8yZUhYWHlON2V2YW1oVkFsUExURHFQOFd5QWtkdkwzcUQvanUKKzQ5VzlrdlNjVThXaFhKTUNBd0VBQWFPQ0FUc3dnZ0UzTUIwR0ExVWREZ1FXQkJTblZaaTRBbStsUksvOHZFdVIKK0JzRXZsdFB3dURBT0JnTlZIUThCQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURCWUJnTlYKK0hTQUJBZjhFVGpCTU1Fb0dDMkNHU0FHRytFVUJCeThCTURzd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTMKK2QzY3VkbVZ5YVhOcFoyNHVZMjl0TDNKbGNHOXphWFJ2Y25rdmFXNWtaWGd1YUhSdGJEQ0Jsd1lEVlIwakJJR1AKK01JR01nQlJXNjVGRWhXUFdjck91MUVXV0MvZVVEbFJDcHFGeHBHOHdiVEVMTUFrR0ExVUVCaE1DUkVVeEVEQU8KK0JnTlZCQWdUQjBKaGRtRnlhV0V4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkIKK1J6RU1NQW9HQTFVRUN4TURRVWxOTVJzd0dRWURWUVFERXhKSlJsZ2dWRkJOSUVWTElGSnZiM1FnUTBHQ0FRTXcKK0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFJd3pTOGFmVXpKS2RiWG5OYnpiejFKQXRVUWtCZ2hodGpyMUMzbXMKK1QzYXQzN0Vic1FxTVh3TVRFOXhQTnBmQzFkS3pMSFJqY3pNb2dZVTNSb3VLWGZHb2Z4MEFqSDY0cm1HVVlOSWEKK3d3dWpXanJBZ3RNWEZ1NktvM3lIdk4weWlncDI5N1NTNWYxaGR3clN0U1VsNm9ZN0tvdUF1VEYwZFVmL2RRWDQKK3lNdmdTa09QNEFkdHcwNi9wUFJrVjFKV1BUUCt1R1Y3d0tDNlB6NnluS29jc3NXR090aml0bHhoRi9sTk0zeloKK2twU3RZVjl5WGtiQzYycjM2dkhobWkwRVY0NmlKOFJrelJpRE9JNXdEMTNuSEZhbjhiMDhtNnZYYVA5c1EzRk0KK21vd2o2M3BRbDNNOXlpM09yRmRZYjlFTGhuSHBVUkVMRDhraFZmQmtxSWloN21nPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDA4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFbnpDQ0E0ZWdBd0lCQWdJRWZHb1k2akFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE1qQTNNVGN3T1RJME5USmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXdPRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFPSmFJSnU2CityL2JldHJNZ1dKL0paNWo4eXRvQUE5UldxMGN3NytXMGU1TDJrRExKTU0yODh3WVQraUViZnd4NnNXU0xBbDdxCitva1hZRHRUQjlNRk5oUTVaV0ZMc2xGWGJZaWd0WEp4d0FOY1NkUElTVEYxQ3puNkxMaTFmdTFFSGRkd0NYRkM4Cit4YVgwaUdnUTlwWmtsdkF5MmlqSzlCUEhxdVdpc2lzRWlXWk5SVDlkQ1Z5bHpPUjMrcDJZT0MzWnJSbWc3QmorCitEa0M3ZGx0VFRPNmRQUitMTk9GZTAxcEpscFpkRjRZSGN1NEVDMTBnUnUwcXVaejFMdERaV0ZLZXpLN3JnNVJqCitMU0FKYktPc0dYamw2aFFYTXRBREVYOVZsejF2SXREMjFPWUNOUnN1NlZkaXBpTDBibDBhQWlvNEJWM0dNeWprCiswZ0huUXdDazlrL1lQVThDQXdFQUFhT0NBVHN3Z2dFM01CMEdBMVVkRGdRV0JCUk1TMDFraVFqa1cvNWFFTk5qCitoNmFJcnNIUGVEQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQllCZ05WCitIU0FCQWY4RVRqQk1NRW9HQzJDR1NBR0crRVVCQnk4Qk1Ec3dPUVlJS3dZQkJRVUhBZ0VXTFdoMGRIQTZMeTkzCitkM2N1ZG1WeWFYTnBaMjR1WTI5dEwzSmxjRzl6YVhSdmNua3ZhVzVrWlhndWFIUnRiRENCbHdZRFZSMGpCSUdQCitNSUdNZ0JSVzY1RkVoV1BXY3JPdTFFV1dDL2VVRGxSQ3BxRnhwRzh3YlRFTE1Ba0dBMVVFQmhNQ1JFVXhFREFPCitCZ05WQkFnVEIwSmhkbUZ5YVdFeElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCCitSekVNTUFvR0ExVUVDeE1EUVVsTk1Sc3dHUVlEVlFRREV4SkpSbGdnVkZCTklFVkxJRkp2YjNRZ1EwR0NBUU13CitEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBTE1pRHlROVdLSC9lVEk4NE1rOEtZaytUWFhFd2YrZmhnZUN2eE9RCitHMEZUU21PcEphTkl6eFdYci9nRGJZM2RPME9EaldSS1l2aGltWlV1Vitja01BK3daWDJDNm84ZzVuanBXSU9ICitwU0FhK1czNWlqQXJoMFp0M01BU0o0NmF2ZCtmblFHVGR6VDBoSzQ2Z3g2bjJLaXhMdmFac1IzSnR1d1VGWWxRCit3em16L1VzYkJORW9QaVI4cDVFMFpmNUdFR2lUcWttQlZZeVM2WEEzNGF4cE1NUkh5MHdJN0FHczBnVmlod1VNCitycjBpV091K0dBY3JtMTFsY1l6cUp2dUVrZmVuQUY2MnVmQTJLdHYrVXQyeGlSQzBqVUlwNzNDZXBsQUpzcUJyCitjYW1WM3BKbjNxWVBJNWMxbmpNUllub1JGV1Fick9SNUFEV0RRTEZRUFlSckptZz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAxMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRW56Q0NBNGVnQXdJQkFnSUVNNWFvL3pBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhNakEzTVRjd09USTVNVGxhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F4TURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1JsVHV5TQorOTg4VFZMY2gvN09kb1FwWTAxOVBWd3FuaXVwbG5BR2FTN0MrTnhRb25DY2poNmRMZWtMZEdZa1lFdjhRbG1HNQorS2YyMTE3ZnQ3QUVKUUNTK29hNVRCSm1mSVppbHZsdTNJa2Jzc01rcVI3RnB3NXl6QzVxUkYwN3hvN0lVUmd3WAorNmlTZWxpMmtnMWNQajBsVXd4UU1tZ09WWnNheUhMejgzQmQwaFBpSnpPa1lzNW9SdmJYWnZYZEU3VzF1dW1xdQordWZKUHhwSGV6bGJJSGZNdzFuTEZLQkltME85RmZPdEFtRTYzSXcvaTZGbG91ejA1UVdvNnV6UlNQaXdLbGtmWAorNDR1K0cxVEtmTXpqL2cxOHVVNEltK3hycTA3V3lJWjF0eVRYZ0VIZlVXOWtyZVdIdWRPMERLcGdRNjgwVkdOZAorZFJZallGUE1QQ3p1R3FjQ0F3RUFBYU9DQVRzd2dnRTNNQjBHQTFVZERnUVdCQlN3Z0RXYldhcVRpQUNrcnIvUgorRE1jTThCc2JOekFPQmdOVkhROEJBZjhFQkFNQ0FnUXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREJZQmdOVgorSFNBQkFmOEVUakJNTUVvR0MyQ0dTQUdHK0VVQkJ5OEJNRHN3T1FZSUt3WUJCUVVIQWdFV0xXaDBkSEE2THk5MworZDNjdWRtVnlhWE5wWjI0dVkyOXRMM0psY0c5emFYUnZjbmt2YVc1a1pYZ3VhSFJ0YkRDQmx3WURWUjBqQklHUAorTUlHTWdCUlc2NUZFaFdQV2NyT3UxRVdXQy9lVURsUkNwcUZ4cEc4d2JURUxNQWtHQTFVRUJoTUNSRVV4RURBTworQmdOVkJBZ1RCMEpoZG1GeWFXRXhJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQgorUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NUnN3R1FZRFZRUURFeEpKUmxnZ1ZGQk5JRVZMSUZKdmIzUWdRMEdDQVFNdworRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUkxSDJlRzRXcHYvR1E0MW9tWHdCUEFORXhjZ3haWklQSUZxRndzNAorcEFNN28xdy9SQkNGTGFDSU5yQ0lUYnhTR0UyWWJLT01qNVZVWTg0SWJDa1FxZW1sTFZtTUhvUlptUDZTdFE4LworRGVTZUZxdVZDUnJLQ3dmZEh4U0tWK3NZakNuVm13R2prUWkvVllzSUxzUVVOOFYzbTNiakJwNXhwSmhRWFlTZQorc1JhcC8zbW9aNWxnUEFoUWc3QUMvZXpBVHd2T1NiWXhLbjhJYjVjNTkrYzJxMjdVOC9uTU9qNmVxVXhSalVOWgorRGpGNWlOOGo4Q1FkT3JKSlFwUnZmU2ZsY2V5aDJqVWpNV3dDMmtkT042V3JCd1NrME9RR0s2bGphVUZwNEIwSQorQkU0TXViME1pcnpIcWMyQitOTGVKNWJtZ1BUVFAxQ0tIOVlSNE5uMDRRWWNUNm89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVuekNDQTRlZ0F3SUJBZ0lFYXNNNUZEQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TWpBM01UY3dPVE0wTkRKYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBeE1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5wSjE5Vk8KK2FzRmpkRkh3TlpXajBSV3N6enFZYUZvb00zRXdqN0dPbURwSVdMd05adDVoQ21lZ3RaYjJwSTE2WFhLam1OdDYKK2xQTWsvTitTVTdrcXhWakoremYyNklVYS8vS1BhbHJiUTloSE04cjR1RlFwcXJzbVYvQzVqQS92MEN0c1RGWVoKK2ExQ05oeWZlaURHS09rSm12U1FPNVRkMkFEZzhlRXUvb2pVOWs3aEZ0LzIxYUtGVks1c2d1cXBXa2hTbkpFTHEKKzNYNEl2aFBxY0tla3hqNVBMNjFvdEpvbkxzSlFQU2VTWmNtVGQwOUdOL0k5SVNGd0NMakZoc2pwcmpWaUpIWHUKK1NCWXdxdytmcUFEMUNVQjNjRllwTE1ybG5XK3lKRnh5TFhQQWtVNWRxU3U5WjdLMWMyY3ZGR2t4MmZwOHo4SUUKK1FHcVU5dW1KOG1udkhoOENBd0VBQWFPQ0FUc3dnZ0UzTUIwR0ExVWREZ1FXQkJTd0tZRVZlMjE4d3lFQUZqZ0wKK2lZbFFVa05RNWpBT0JnTlZIUThCQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURCWUJnTlYKK0hTQUJBZjhFVGpCTU1Fb0dDMkNHU0FHRytFVUJCeThCTURzd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTMKK2QzY3VkbVZ5YVhOcFoyNHVZMjl0TDNKbGNHOXphWFJ2Y25rdmFXNWtaWGd1YUhSdGJEQ0Jsd1lEVlIwakJJR1AKK01JR01nQlJXNjVGRWhXUFdjck91MUVXV0MvZVVEbFJDcHFGeHBHOHdiVEVMTUFrR0ExVUVCaE1DUkVVeEVEQU8KK0JnTlZCQWdUQjBKaGRtRnlhV0V4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkIKK1J6RU1NQW9HQTFVRUN4TURRVWxOTVJzd0dRWURWUVFERXhKSlJsZ2dWRkJOSUVWTElGSnZiM1FnUTBHQ0FRTXcKK0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFBbm5lS2NFNlJSeU4rSUt4Q3FjR0svSGZSam4rYVJMVHpEckttUHQKK21qTFNmeldjREdVWlozZ2NiNWNuZWRkdVFZcVBWYmxwT2srazBKemFFcy9iRnhkYllVWjRWcHlOTldlU3VIa1MKKzBuWk1YVkdGTWh6b1lubGJaRlIvelVSZ0tXOFNGUE1weXpWZWoxcnFmajNTSmxEYzdBNm5GZFg5MWY0WlViTnAKKy9iTnZNRnVlQ2lTM2dlWnk4bHprb0hMUU5jL1RQZm1jTGthWSszVnhCcjNDbmV6Umg2dzk5RkllbEw0OXFGYmcKK2pGQkVtbnNoVnU1Z0kwVFA2YXJPVXBQK0xDeXVsby9IYjNsQktMeGdXQW5wN0VFeTRvb0ZMSlVXZEhHMXlXRi8KK3dxKzYyYlVxTlMzWG8wYUhSWW43eE94dkRZTFRVSHZyTEorQVV0Y0FXejdNelpVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDEyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFbnpDQ0E0ZWdBd0lCQWdJRUllL0pLVEFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE1qQTNNVGN3T1RNMk1qUmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXhNakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMVUxzTWwwCitUQitXWWdoelRsa0REWVo0N25DTHpuSlRNd2NaQjM5Y3VFNVdFRVZheWExbnVsWXhaZUQ1d2NEbVJRbm9vdHhECitEWmVmaUZIUC9sY21pV29tQS9xbndvYkZGUllwT1JtdDhKWVRqYlZPM2NqRjF3V2lGOE8zdTJNNmpSRjhyVzJWCit3WXk5N3F2RWFITHN1R2VwVHdabXY1ZDFobnRpekhoMXYrTlA0enpsdE1PNFZSU2ljUDhQZHhTM3Jla1ZtWFFaCiszcUcxNytLQndKSG5ReWlieElTMFZlejdCejZLOURJeU5mblV0clRsd2ZPVndUSk9iaGFJN3dVcngyczdraCtHCit2eHhTcjZSeDc3ZXp4U3JERWptNlhWZ2pMQk1JcWI3c2Uzc2NOd2xsRzZNM3FXcW1aanVGWWtLaXVURHdSU1lMCitkUTdUcldGZkZiRzN4UGtDQXdFQUFhT0NBVHN3Z2dFM01CMEdBMVVkRGdRV0JCUTNOZDNJNHdDNEY2NitBMUE2CitrdTNmM3hySEdqQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQllCZ05WCitIU0FCQWY4RVRqQk1NRW9HQzJDR1NBR0crRVVCQnk4Qk1Ec3dPUVlJS3dZQkJRVUhBZ0VXTFdoMGRIQTZMeTkzCitkM2N1ZG1WeWFYTnBaMjR1WTI5dEwzSmxjRzl6YVhSdmNua3ZhVzVrWlhndWFIUnRiRENCbHdZRFZSMGpCSUdQCitNSUdNZ0JSVzY1RkVoV1BXY3JPdTFFV1dDL2VVRGxSQ3BxRnhwRzh3YlRFTE1Ba0dBMVVFQmhNQ1JFVXhFREFPCitCZ05WQkFnVEIwSmhkbUZ5YVdFeElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCCitSekVNTUFvR0ExVUVDeE1EUVVsTk1Sc3dHUVlEVlFRREV4SkpSbGdnVkZCTklFVkxJRkp2YjNRZ1EwR0NBUU13CitEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSlgvU0c3Nkl4MHN3MER5czFIbCtEeEJVbHRneERZWWVDYTNGYTZZCit0ODFKbXZNbVNvWFJhMTV2NmgrRndpRVRhQUpQNHZSMlZ4U3hpeWVYM21RZmsyNU5YV0d1d1A0VnUzRVZZODZsCit3bWVmTjdTNXdhTFJvVEUxdVJqYkQ3TGVIZGk4dFJ6WmRnQlNidzF4ZVBCWi9xYzFiSkM0OUxSUXFXbmY4T0lTCitYT0QvMk1UaHAyNkF3WmVrYTNxR2h3VmdoRUJkd2d3cUZMSHkwWmVhbm1YMmhSRm4rbGExNUszNW14YWpLWldsCisxcVMvYzB1OC93SVd2TzJiVTJLa1BXdHJLVzc4dzdjbTNodCtsVUVRQU5qb2NuUitnemRrMTRmNkIwN1NZL0JkCitnbXdWTWhjcnAvRTlESzhUUXZqeERiVFRzL2JmSEM2NlpiUE9ncUllWE5ZZ3VrOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAxMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRW56Q0NBNGVnQXdJQkFnSUVXUnhaUGpBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhNakEzTVRjd09UTTNOVEZhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F4TXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSXo4Umx2cgoreEVXaEY4em5JZzNoMnpUN2pReXZLaGdseHhFbWNqa21MN3F2cWVXUndOcHRxU1YyeUlrRmZLZGhHQXYyb0hOdQorbG1NMGZrazlhcGlPZWhWUi92THZvRUFkWEZxTHA4bDUrVHBMR1JUY0x5VHUrT042ek9JcjgyN2oyancxbm8rTAorcWJzQjNDNXU4Ri9uZ2J4K3gyWFRZV0ZKSUdCSmgweDh2NG5HSDhMWldmdG5YSFFrNEVyZTc4blFCemxGOFl1ZAorOFhUWkQ5OUovTXJLMXR3dVlGVCszZkZ1ODJEVHFWcGt3NEYyWlBvemxYK2oyWG5MR1RLN2FyVGtFTXBYMUVXYQorMTMrVk05RnA5bVdtVXJyYWg0cU1vcDRoaFRvZ2MvbC9wMnJEcDlnUDVRUFVtM1JnK1RrRVJLQ3J4N1pydy91MworQlNEaHJQa0djSkdNcTZjQ0F3RUFBYU9DQVRzd2dnRTNNQjBHQTFVZERnUVdCQlFsZzhyZU5vOXB5QTlZMDBwSQorc3Q1bFBmNnZtREFPQmdOVkhROEJBZjhFQkFNQ0FnUXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREJZQmdOVgorSFNBQkFmOEVUakJNTUVvR0MyQ0dTQUdHK0VVQkJ5OEJNRHN3T1FZSUt3WUJCUVVIQWdFV0xXaDBkSEE2THk5MworZDNjdWRtVnlhWE5wWjI0dVkyOXRMM0psY0c5emFYUnZjbmt2YVc1a1pYZ3VhSFJ0YkRDQmx3WURWUjBqQklHUAorTUlHTWdCUlc2NUZFaFdQV2NyT3UxRVdXQy9lVURsUkNwcUZ4cEc4d2JURUxNQWtHQTFVRUJoTUNSRVV4RURBTworQmdOVkJBZ1RCMEpoZG1GeWFXRXhJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQgorUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NUnN3R1FZRFZRUURFeEpKUmxnZ1ZGQk5JRVZMSUZKdmIzUWdRMEdDQVFNdworRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUJRbTN2cEZTRW9VM2h0bFNiUTE4WDdKbnY1RGJlVG1vRWk4TlhmYworVzRxVGFSWUtDMStlZmdINUNoV3BCaTl4cUdyU0s3eGxzNW45eGxKYzRDVnVLa2tON2ZkOUVpUDVNeE5aUDd3VworWitaYmQ0TklkaXl5WHRIZEk5bVFzVjAxQTFxaWxoWE5OVHhTbVRnalFQWlU0aThQdDZ6dWp6bVVrU1pxOEdTKworanVIL08xRmpyOXFlSDh0Rk9RZEhIOTZMMlc3ZVdXNXhIR0Y3dWRVQ2tHSWlCY0xQUGdOeHo0NlZXOXE0WWNqOAordXhnMkU1WFVMd0ZUemJKWGE4dXFhTjhSK1QyUzhOcUpCVk8rZ2toL3B1clhYYnJsa2hMQ01lV3RXT3JEaVRYUgorV3BpVHY0RU52ZDhSUDJ2bHpPMkFhVllSL0V1bW9SL3F3ZEljb3ZwcHdnVHl5T1E9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMTQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVuekNDQTRlZ0F3SUJBZ0lFRUVqcFV6QU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TWpBM01UY3dPVE00TlRsYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBeE5EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5XeTY0K1AKK0k5MExYS0RCWFVOMjRub0RnUDJPc2VVc0xDY05saDZNRDJiOVl1YnRhelpnLzcyTEJ6VVhsSGIxNmNMcVRIWXYKK1grN2RPMTY1RjRXbkpMeE1CaGU0T1dZemJkbmNRSFpBaHh2NW5mVGhjQjYxb2ZWa2Y4VjRlY3U1YzdLbks2dW8KK1Uyc21ScU42cGJjK01xVEk4RDQxeUlOTE9SclRZL0gzMGQ4cjdqa2pQMGM0VHo0dExvNzRQSlU1dE4vRFlNaXUKK3VJdGhFZWRYcjJSdHdCcG8ycWtJeC9nR2lKVHA2WkhGa0FVR2pkbXcrSEVUNXFnS3NFWGJUQnNqL3ppaEJnbU0KK0xoaE9IUFFxUStwb2RUOG1TWm1RU09pancwQmdNcjZ4UlhCd3ZMNDZrK0VpWTQ5dkdQOVFYRFg3Z256bDBNRXYKK0ovUmNEMW5JcEtocGVFa0NBd0VBQWFPQ0FUc3dnZ0UzTUIwR0ExVWREZ1FXQkJRaXY1djBsNDlQUmFUcDIvY3AKKzJLQ0szS0NvTERBT0JnTlZIUThCQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURCWUJnTlYKK0hTQUJBZjhFVGpCTU1Fb0dDMkNHU0FHRytFVUJCeThCTURzd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTMKK2QzY3VkbVZ5YVhOcFoyNHVZMjl0TDNKbGNHOXphWFJ2Y25rdmFXNWtaWGd1YUhSdGJEQ0Jsd1lEVlIwakJJR1AKK01JR01nQlJXNjVGRWhXUFdjck91MUVXV0MvZVVEbFJDcHFGeHBHOHdiVEVMTUFrR0ExVUVCaE1DUkVVeEVEQU8KK0JnTlZCQWdUQjBKaGRtRnlhV0V4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkIKK1J6RU1NQW9HQTFVRUN4TURRVWxOTVJzd0dRWURWUVFERXhKSlJsZ2dWRkJOSUVWTElGSnZiM1FnUTBHQ0FRTXcKK0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFLRStiekQrRzFEWmhxVUNuYUxVQWxOK1pNRkpzUElHd2pQUnpaRmIKK01RTFpjdmtjOU0zS1YycEtzZzNNckQrNmtLLytYRVlMNDlDOWVXUk5yVXRrWmwxU09SelVFTG5VbTJFM2tlengKK3BsbkNVNWx6c3VDUytpWXB0VkQxN3VGWWN5YllNT0FNdWxDUnlqTWtZRzFjUUNkRGN6U1QzVldQek9ONSs2K3YKK2VvNU9nOVJSUHNWQnlIR29IZjVsY21UaTB2Tkt2WDRRdG95Wjc4VlEwMTJjNVEzQTFmRWxkTGw0SUZOK3NmdTkKK0FmM28vYXMyR1FzM0t2Z0NPQjN1c2duUnZvakJ1K01MeHc0cGs2anU0NnJDTlRlMVhJd0hpMFkybnhaYlVvd0wKK2RsZFJ3UUViUWhobWEyRkNlY3NnQm1NS3F6THNpMUIvZmtLZWlGMmZFN21vN1lBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDE1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFbnpDQ0E0ZWdBd0lCQWdJRVIzVjVhREFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE1qRXhNVFF4TkRRek16UmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXhOVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLUzZwZ2NnCitPUVdTb3pWYk1rZGY5alprcEdkVDRVNzM1enMwc2tmcGpvS0syQ2dwTE1PLytvR0tiT2JtL0RRUFJRTy9veHZxCitqSk5CS3o1NVFCZ0tkK01vUTZ0KzJKOG1jUTkxTmZ3cW5tMUM0citjNHplekoxVXRrL0tJWU5xcEZEQXplZkJBCisvbEs4SXhRNmttenhjSUZFNHNrYUZzU2drZWFyU1pHRzZzQTlBNTF5eHd2czh5VXJRRjUxSUNFVU03d0RiNGNNCis1M3V0YUZkbTZwNm05VVpHU21tcmRUaWVtT2t1dXd0bDhJVVFYZnVrOWxGeVFzQUNCVE05NUhydHMwSXpJNmhYCitRZVR3U0w0SnF5RW5LUDl2YnRUNGVYeldOeWNxU1lCZjArVW8vSEhabzlXdVZEVWFBNEk5emNtRDBxQ3ZTT1QwCitOQWo0aWZKN1NQR0luVTBDQXdFQUFhT0NBVHN3Z2dFM01CMEdBMVVkRGdRV0JCUjRwQW5FVjk1cEp2YmZRc1lSCitUcmZsYXB0VzV6QU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQllCZ05WCitIU0FCQWY4RVRqQk1NRW9HQzJDR1NBR0crRVVCQnk4Qk1Ec3dPUVlJS3dZQkJRVUhBZ0VXTFdoMGRIQTZMeTkzCitkM2N1ZG1WeWFYTnBaMjR1WTI5dEwzSmxjRzl6YVhSdmNua3ZhVzVrWlhndWFIUnRiRENCbHdZRFZSMGpCSUdQCitNSUdNZ0JSVzY1RkVoV1BXY3JPdTFFV1dDL2VVRGxSQ3BxRnhwRzh3YlRFTE1Ba0dBMVVFQmhNQ1JFVXhFREFPCitCZ05WQkFnVEIwSmhkbUZ5YVdFeElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCCitSekVNTUFvR0ExVUVDeE1EUVVsTk1Sc3dHUVlEVlFRREV4SkpSbGdnVkZCTklFVkxJRkp2YjNRZ1EwR0NBUU13CitEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBQW5aRGRKWnM1UWdBWG5sMEpvNXNDcWt0WmN3Y0srVjErdWhzcXJUCitaN09KOVplMVlKOVhCMTRLeFJmbWNrN0VybDVIVmM2UHRVY0xuUjB0dUpLS0txbTdkVGU0c1FFRllkNXVzanJXCitLU0c2eTdCT0g3QWRvbm9jSUxZOU9JeHVOd3hNQXFoSzhMSWpra1JDZU9XU3ZDcUxuYUx0clA1MkMwZkJrVFRNCitTV1g3WW5zdXRYRXB3aHJvM1Fzbm05aEw5czNzL1dvSXVOS1VjTEZIL3FXS3p0cHhYbkYwemlwNzNnY1pid0V5CisxR1BRUXBZbnhGSjJSMmFiMlJIbE8rM1VmM0ZEeG4rZVJMWE5sOTVaWjZHRTRPSUlwS0VnMnVySWlpZzBIbUdBCitpak82SmZKeFQzMEg5UU5zeDc4c2pZczdwT2ZNdzZEZmlxSjhGeDgyR2NDVU95TT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAxNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRUpEQ0NBd3lnQXdJQkFnSUVOYzZaa2pBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhNakV4TVRVeE1ERTROVGRhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F4TmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTG1OUXRVbworUmlBRGFtWVQ3UVdodmhGREd1ZmVRMTdGWDNLQlJsSzVKbDdDa0RYVUFiVTRxY2hMdGJoMVJRK3VqNzdlODBNTQorUVFqWVVXUUU4OTVOUmhVdlJ4QVRaenA4ZnlOakJNYzJPNUhBNFAyZng2bnNkUlVocGdwZ1FvT2M5M3J0NHlROQorRDFIMGVzdzVaMjBqYTlVcGpoaTVwSGc4WUxLaHpSc3lFa2tKMVlSR1NlNUZPZGFxQmFXUUxCUjdUd1l0VVVWdworanE0aVRzWmFpMUhYcEJoako5cVBPNTU4ZVcrTExiUFN2Yk9iZ3B2ZXVvMHIrSUxMcmR0MTEyK28rakUyZ21pTAorelNnMVV6bzZhS1N2MzM1WmZZdVdWQUwvSXFXa3BCajl0TFZKOGhqRGtJNW12YzZyUGkvbDdncEtIWjYwR2lodQorMEh0c0VTV0IvYTZnaU5rQ0F3RUFBYU9Cd1RDQnZqQWRCZ05WSFE0RUZnUVVFb1JpOHFEUmJONFpSdkVBQlVTdworVmJ3UlBSQXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdXQVlEVlIwZworQVFIL0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkMworTG5abGNtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3SHdZRFZSMGpCQmd3Rm9BVQorVnV1UlJJVmoxbkt6cnRSRmxndjNsQTVVUXFZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFKakpFTktQV2w5VQorT2xETHd6Sk55QU8rOVFXMzExKzdRaEgyY1F2OExPUFh2K3MrMy81dU1OaE9DbUNmSmllVW9xNFZvNlBpYm84SworYmYwYjBEMERIVk01U3BPdWNqWGluQ2NYMThnNk03SVByMy9BQngwaFdQNU5Ra0FFeGNtNVIyWEdzQnVhMmhVagorQkt6anFlN3pnSEx1Z3QwVjdERFBDN2ptZEVsT0hUSG1LNUNPSXRMMFF5c3JPcldkaHJMVHJQK0hiTFJSSmJPOQorV3NZTldiNHc2bTdYMnJ2ZDlDSm1qcjQzYVNoQVlYM3M0MkVtanZCSTdkZGxIUVV3QWNicmd0M3ptckF0WXpJVworMlpnL0JRQVJmQkpJUHV5dmNMSlZ6RGpKSkJqVXhRc1VZWVNaQXA0STFoUks4dFRXQmYvdGNLTjRqZklpR1RmegorSDBQUXJqSE1XNjQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMTcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVKRENDQXd5Z0F3SUJBZ0lFSkNlNXZEQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TXpBeE1UZ3hOREU0TlRsYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBeE56Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxEenpHOEMKKzZNQklaUUVRSnpFR2xrU29GZll4N1VGbmJBWE9QMzVlWGtEZnM3OXRtWGgvS3B2bytMZ0RYQVBWd2lKZ2NwaFMKK01OVE9oQWVzMWtBL2N1R2syL0JwVUU1Vytvd0lCNmNFVW02c0hqZWE1Vm5yUzdyWjIwNWxLenNVNVRoSmVsNTMKK2FMemd2L3I0QU1ZZkh5SmlkMXhTYmhlUW9yN1BtZ2NxV1BhZzh3UXJVbm4rbVZlOHJjUEpjbFFvdG1zVjFTWS8KK0FNVW9yRWR4YmVhVGdaa1A4anZDanl3enR5Mkp0Zmp1NzVCVHRnMGpCREVJSFdWdXFPd1d4ODc5bnZXcEJobzgKK2toT1UxRlBackhjNWZWbTB3N3J5V0NadlpWV1VhY01BZVlmVnFET09FUHhVelpNREE4TndCOWJoNXNZL05yejcKK29lU1VyN1BzMmFKQWYva0NBd0VBQWFPQndUQ0J2akFkQmdOVkhRNEVGZ1FVN0QrTlRNRXF2b2lnR1FaT2ltSzMKK0FZK2k0MWt3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3V0FZRFZSMGcKK0FRSC9CRTR3VERCS0JndGdoa2dCaHZoRkFRY3ZBVEE3TURrR0NDc0dBUVVGQndJQkZpMW9kSFJ3T2k4dmQzZDMKK0xuWmxjbWx6YVdkdUxtTnZiUzl5WlhCdmMybDBiM0o1TDJsdVpHVjRMbWgwYld3d0h3WURWUjBqQkJnd0ZvQVUKK1Z1dVJSSVZqMW5LenJ0UkZsZ3YzbEE1VVFxWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSjFxem5VSDZuQ0IKKzFha3htaE1ZV0JFalFzcUhkeStsd1lZTU5IbDk4czlBbkhXTVh6cEdjR1VKZzY5NUQ5aFFydzRrSHBqbjlhMUwKK3l4VEE0TlB6M1czazVnazRKdHAyMHlKZUNsR1hFSWNmODZXc0p3eUMxZ0RHUWZWMmsrdmR6bGhwZkNKTFZxMWkKK0VjMEkvQWx3T0pCZ1J2TG1sZFB1WUFxdERURTBkcmZmQWtoYU1vRXI1ZCtYNWNDMWlBc3ZwUHcwZEwrQXFxRmgKKzMrWVZEdHJqZG1oY0h0b3BRZnpNNC92b1pyOUYrdCtXQmRnK05JZlpISlp1ZC9aWCs0RnJOY285MXdEdWVyeVUKK0F6N1cyN0NldDJmVWs5enYvR1lNUlZyUzhsTzdLNzZMZWF3dDRmTnRMREJWUUxsaiszUll5VTVjSzhhajh5QWUKK0tib1ZIQm9TdWtRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDE4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFbnpDQ0E0ZWdBd0lCQWdJRVcxUkowVEFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE16QXhNVGd4TkRNeU5EQmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXhPRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOczMrWHFUCitTL3ZzNGVSOHF1eVhJZ1BGaXhCZzc1Y1diU2psN3lYSHlsdGE4c0xybW9nNXh0TWR0anRVWklFNmtvMzRQUTByCitiMm5MbnZpSHptS3NWR2NFZ1ZxQjVEWVI0cDEvV2N1UVhZK1BPYVdlV25IVVZJOHdFcnZqZnVDQmtrb2ZMNWxFCit3RCtIYXpuVFJFOVpNRnBtUkdHYkM1b1ZzR1NkMU9HZWZqZWFJSzNETVpGUWxlNVlRZ2JGaDVDY2NROG5UT0hLCitjUHFjZ0VJL25jQVpNZWNHTVpGbVh2Z3huMjR0UStQQ3V0dUJ2bVkxQll0NzZVUzVNbktyOXJLcGNCdG15Z1JZCit4VE1XbUVFVHIzbFRsRWx2RXpEdU1taitjanJid2VNWmxkUzFyM1ZmK2hDR3JEaWRjUWlkdTNCWTV2K1ppZlVMCitEYjBla1FCbzJOVkZVVGNDQXdFQUFhT0NBVHN3Z2dFM01CMEdBMVVkRGdRV0JCUjFhUDhtODMwUkpvVm50b1pPCit4eW9JeUJpSkhqQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQllCZ05WCitIU0FCQWY4RVRqQk1NRW9HQzJDR1NBR0crRVVCQnk4Qk1Ec3dPUVlJS3dZQkJRVUhBZ0VXTFdoMGRIQTZMeTkzCitkM2N1ZG1WeWFYTnBaMjR1WTI5dEwzSmxjRzl6YVhSdmNua3ZhVzVrWlhndWFIUnRiRENCbHdZRFZSMGpCSUdQCitNSUdNZ0JSVzY1RkVoV1BXY3JPdTFFV1dDL2VVRGxSQ3BxRnhwRzh3YlRFTE1Ba0dBMVVFQmhNQ1JFVXhFREFPCitCZ05WQkFnVEIwSmhkbUZ5YVdFeElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCCitSekVNTUFvR0ExVUVDeE1EUVVsTk1Sc3dHUVlEVlFRREV4SkpSbGdnVkZCTklFVkxJRkp2YjNRZ1EwR0NBUU13CitEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBTXV3MEU5U1dBbVJvTXlZZUg0UWZBMEV1MkRISHNBVnZwVFdJQ3FOCitZQ1dDbkRrdTNQRVVKcEFTMDJJdTRNTjJFVWp5d2dJZ2NjWWphd2ZpSTF4UStxS0pXVlZYbzFyU2NmUm4zZzRhCitMeWZCelpEby9rYTdkSzFhek5ESTJpZVJyaDZwUHZJZ1lBcmlpcFg2a1ZUTlYydFRwUVZGK09vZVhPdnFNeUlZCitzSXB3WkNJd1NUdmd3TUlRYmxpazlJUXQrcnhoM2ZxRVNsQVo5Tnp0Rm5BK2Z0VFMxWWVlUVIvT2pMeFV0VVgwCitsYktIdGpJdXZva3lFQWoxQytUTUFTdDJDTXNSdVNmNVUwblZBNEVrY2krWHpDSWh2UG5CMjg2MFRNdnEraHp5CitBTkF6TFNac1NaT284S1lZOVpnQmRrc0xwUFByT1lURlNNWE8rb29tNXhoNXIvUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAxOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRW56Q0NBNGVnQXdJQkFnSUVFb0RaNWpBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhNekF4TVRneE5ETXpNemhhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F4T1RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSktHSVZ2SQorV1VCMm9TWG1maVN6SXpLV2NCaVVhYlpSSzl3QlN5aWR2SStFWU9wbFBmdUgrcnpTSGl6L2toMjBwTThidTZjKworZ0srNzlncDVwNEs5UDRlZ0syenNxcGg5ell6RndObUlCak9hUWlZVVBwOVFGdFo1UlA2WE1IMWV5WUs4VVdWcQorLzZXRG1ES0dnV3JLMjJNQXhWMkxZQ0NRYUVhMkxTTjFNa1ZGRWVSQzFsUkRjN1JvQ0VXMmRSNHRiaURDZEZqTworV3puWDFuQmN0VTh1dXBQZGFpUGNsTDhQSDBiWDlMOVh1SC9PSjhITjF6bnMvNnY0YzFTb2tKWWZIcU9Zbjg5UgordXluam5WM1g3OSs2NW1tMkJWWkZzQ1BWMFEraTZkajhmYVZ2akxBOWh1YnBJTHc3NGcvaE9BMUZTbk9mbDk1UQoreVZURWZmd1hpalJkOHFjQ0F3RUFBYU9DQVRzd2dnRTNNQjBHQTFVZERnUVdCQlFkM2c5QWJSSXNQbHBQaGgrVQoraDJ5ZUdzM1RmakFPQmdOVkhROEJBZjhFQkFNQ0FnUXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREJZQmdOVgorSFNBQkFmOEVUakJNTUVvR0MyQ0dTQUdHK0VVQkJ5OEJNRHN3T1FZSUt3WUJCUVVIQWdFV0xXaDBkSEE2THk5MworZDNjdWRtVnlhWE5wWjI0dVkyOXRMM0psY0c5emFYUnZjbmt2YVc1a1pYZ3VhSFJ0YkRDQmx3WURWUjBqQklHUAorTUlHTWdCUlc2NUZFaFdQV2NyT3UxRVdXQy9lVURsUkNwcUZ4cEc4d2JURUxNQWtHQTFVRUJoTUNSRVV4RURBTworQmdOVkJBZ1RCMEpoZG1GeWFXRXhJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQgorUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NUnN3R1FZRFZRUURFeEpKUmxnZ1ZGQk5JRVZMSUZKdmIzUWdRMEdDQVFNdworRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQU5BSDRwR0tGVzBjb2RNR0lhUFZZV21zV3oxekNlK0FNK2UyNGRLUQorU3g2VlhEcllZb01kb08zRCtsb3FWRHMrelFIZ3VKaWo5M1IwazRWZ1pSUklydU9EazhFRGhwcG9idDBib1hsNAoraEIyVTZ1d0VSTkQvOHJVdEYwOFd6QTFvcGF1MVI0NnA3V2d5bzF5TlljWUtTU2QyMStZZ2lLTWdsWUg0YnoxVAorK1R2c2U1STV1aloxQnZUbGZrRkJObngwOXdVbUdhTDdxbi9GRzhiblh5K29ha2tJSmswT2hHalZ5US9uUncxUQorSFNSY0t2MTFjZnBxaEhSNGVrWnNKM1JpSFdSWmdEN3VWWHVIVjZMTmNLS0szcEpIQlNMV2FWblB0Q0czYTVpWgorQWpLUFEzYklPTGZOQytrMVRjQTN6M0ZqWC9TQktvMThEMC9ZM0hXTjhVelRnMVk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVuekNDQTRlZ0F3SUJBZ0lFU2ExcCt6QU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TXpBNE1qY3hNelU0TlRsYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBeU1EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUlTYXR2MS8KK0M2VTkrYlJvR25GSVJKUDk5RVR5UmRCYVpaYmpNem9tSjArbjZWc3laS1U4SHNoRDFENTZlN3RkM25PcU1peGcKK3lnYUJLM0ZxNmpnUjRuRURhZkg4Ylh2aFkrNm5MWXpxZ1d1YjhodHFBak94eXc5QVZTSmFlQnlyMVhvOU9aSlgKKzA2ZXhyZFNpa0FXNkFOY245a2hwRXBsM2tVQi96NHFZK3REZ2FiSVlRb2tWdkVaMUtDWVhiQUtUUWFWMWoyQ0oKK0RZRXhvODJsUUplcEVBVGlWcFhsTTcxVUN4cGRwZXVkaVdLWVJXWTdvVjVFcHlPY016b2xZVmZRNmMvMkVEaGoKKzZDeGxZQUxLenU3eGdOTFhmaFVDSldQakNLN05Ecjg2bjVzMXRLSG1KVWRiSHlxbmVzOGg1cC83TVZBbitCdUEKK2F1azVNUjdHWTVUZmt3RUNBd0VBQWFPQ0FUc3dnZ0UzTUIwR0ExVWREZ1FXQkJTUC9VZUlEaU9hT2pvZzNoUHQKKzhRSG9ncW5TSFRBT0JnTlZIUThCQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURCWUJnTlYKK0hTQUJBZjhFVGpCTU1Fb0dDMkNHU0FHRytFVUJCeThCTURzd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTMKK2QzY3VkbVZ5YVhOcFoyNHVZMjl0TDNKbGNHOXphWFJ2Y25rdmFXNWtaWGd1YUhSdGJEQ0Jsd1lEVlIwakJJR1AKK01JR01nQlJXNjVGRWhXUFdjck91MUVXV0MvZVVEbFJDcHFGeHBHOHdiVEVMTUFrR0ExVUVCaE1DUkVVeEVEQU8KK0JnTlZCQWdUQjBKaGRtRnlhV0V4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkIKK1J6RU1NQW9HQTFVRUN4TURRVWxOTVJzd0dRWURWUVFERXhKSlJsZ2dWRkJOSUVWTElGSnZiM1FnUTBHQ0FRTXcKK0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFKV2VQSVgyOWJQdkc5cW5PV1dHT3VJc1VoQ2hnT3phTEEvTGtKRVEKK0huUk1QVVU4aE85UkdNdUZXMFFONjJlU0tlbC9IME0xdHkzWHRqTU14Umc3RHFKaVJON0ZnUGtFTjZnQ1g5VFoKK2x5Tnl4ejhnTlVMcmhRNWZCM29vclFkME1pd280ekorR2pXM3RtQ2tmUHpvWHo4aDZnUmxJUnRZKzZtdmFWdzEKK2FkMFFnRjNEcDZSMXlZMWptQ0hxRzB3MjZQVTk3RzZMazZsK3k5Y0p6bWdWeFZnbVlkUlhRdnNiMEhWbjBWZzcKK0NZY3E5TCtWWHdSbUxINVlrZWhWUzVyK1ZCWFlDTWlUQ09MWjRHQXRZa1NRSVVxWlprNGxnTTJ1QlhCZHFxeW8KKzBKQVFhSk1teUZHN0drQjFTSXRFbDNSR2RMSVg0cGRid1JjUmVjQitUT0UvZFdNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDIxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFSkRDQ0F3eWdBd0lCQWdJRUFObjZFREFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE16QTRNamN4TkRBeU1qRmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXlNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFJRkpPWEVKCitsMDFzQ0ZESXBnTUU3WDBnbXh1STlEVzJsVGxOclorMDVrR0FBcU9VQ1diUzhFRUR5SVpaWUE3cWppcGNhWHhmCittSjlpMHpvRzJoQzFBSFh6Znp6bXJRY0VFNkRoQ2VGdjVsS3prOFRhL0ZWNXpMbVJYcHB3OWNCYnpnMDBIV3VJCitmMFBFTTB2WTdHb3BQL3EzTi9kNlJRYWMwRFJkUFZOT2hOQXBBcHczb21mQXpDMk56ajRzZHZJYVFQWFkxR09JCitLb3k3a3RnalZvVW1aMVBvOEZIbmkyZ2VoNEVLV3lIdmNaWmlxQ0NOL1pURldoSnFFUzQ1NE5jeTF6eFprSlg2CisvMUs3d09qRnM5elpCTkJkNEExY1VSTHozM3QyWUNxK1hjRDQrSnRWaUpva3hVN2JvU05LNUppK213TExYSUJJCiswZHlRSVFjRnV2d09LRGNDQXdFQUFhT0J3VENCdmpBZEJnTlZIUTRFRmdRVW9NbmV3SS9UbW90WnhHdkw2SC9aCitsSXhWK1hBd0RnWURWUjBQQVFIL0JBUURBZ0lFTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd1dBWURWUjBnCitBUUgvQkU0d1REQktCZ3RnaGtnQmh2aEZBUWN2QVRBN01Ea0dDQ3NHQVFVRkJ3SUJGaTFvZEhSd09pOHZkM2QzCitMblpsY21semFXZHVMbU52YlM5eVpYQnZjMmwwYjNKNUwybHVaR1Y0TG1oMGJXd3dId1lEVlIwakJCZ3dGb0FVCitWdXVSUklWajFuS3pydFJGbGd2M2xBNVVRcVl3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQU12SVNadnQwUURDCis4T1c2N0xjbjZGS2psOTVobS9NZGhOWDNRd2tSYVNZRkNwVkRXOGRrNjIyU0Zyd2x6S29NQW5OU2xwd2Y3TU9sCis5bjVGa2Q0Z1NseU1PZEJJd3RkNTNtQU9WUkNSSWhIZ3JyZm1pNzZzYUxzYU5RY2kza2puQ0RZTDRVNjhvMWRRCis0MXpsQ2tvOHZiN0VPNS8yZkJLRy9EUzFnekdXMXkzY3RFcFlObjM4VHVuckRZZ2tVa3NOS2FTWnRtcmZYTmVJCitaYXZ0RnR4UlFvNXY1Vk5VcU9reWZ2bjRkQi9vZyt4Rm5xT0NwaTdGTE5BZkcvMURuTGh2aGVIazVJaTUxb0tzCitpT0ljaWowdkdpeUtib3psTnZIbCsweGU3VU9UMXMxVTZZZHpXejZZbXp5Q0VqT2t6NzIwVGVuRzk5bDg5VVpYCis3MUZ5b3VZck1odz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAyMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRUpEQ0NBd3lnQXdJQkFnSUViek1hT2pBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhOREEzTVRZeE5ESTVNakphRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F5TWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVAzU3J1SAorWWNERHpEUDJRT3dOZDZSR2hiL0M4ek8rMzdpZlFlaURDNFp4TWM1Y2h4WmlKTjZONjdSOHhkd1dmdG1NN1c1RworZDNrRmlwWkFGd3hESnIwbmRvVnloTUxMc3VnZFYzaEJpMXU1aTJLa1QxUlBzWnVpZ3BFZWtGRThmUi9ENUc2egorYk5sdTlnZWphTERRcEFmR0Ixb3VWWmVrS3VEb0E5blN4S1ZHeVpXSmFPYk1mQm5tVXNlNUtaS09yUWpCdTdzcQorQWxqbGlwcDV2SytjNnBDYi94Mm50U2dMSnplZjdHcnJRRENnVWZzN09McTY1VkFobnlXNWhoUlR5NTJ3VXA2ZworbWFUUG5MK05QV2FsbFZsRXdWZGF5TzloTU1CQ25iNmM2N1ZzYlJRdmFBaTloZlhHWFpZLytXbXBPSXBVZ0IwUQorRXkrOTFGOFIyMHdwdDdjQ0F3RUFBYU9Cd1RDQnZqQWRCZ05WSFE0RUZnUVVLdGNPdVFsaXhVR2xYaTBWdUZ2NgorMG9ZVlR3MHdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdXQVlEVlIwZworQVFIL0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkMworTG5abGNtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3SHdZRFZSMGpCQmd3Rm9BVQorVnV1UlJJVmoxbkt6cnRSRmxndjNsQTVVUXFZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFBREp5VjJTYzFuWgorUDhuRXZUYTBFNmNZdTQrUFJuTExxZERSbUFNM29OangwVmc3bHEvVmRnNjF4dlo0U3BLaWcrM3FWR3NNM3BZSgorSzhCcmlTVSt1RmlVekt5ZU1kejVPOEI5U2Yvb1c5RWlWaWRxMTVqdVJHRUlyUW1ld0EvclpzVGxQaUhnOGdVdgorZ1djNll6TGJpY0t0bHdtZzJ0UUROREFvRGMxMjEyYUcvWEk4Wlh6Z0MrOUlTN0d0Z2txeDl0VjgxZ3cvak81SAorbVdRM3RpMXBzOU9sdmQ0Y1FXbXBZUEZtY0l2K3ZrbHpmbkl1bUxMbDk0SlVMMlpwNzJEOGFMOVpQRGpMS2o1UgorenVFemNpT0hjb0U4R3A1WVIzNXN5TTBzUnpCVU1LS3FDSTJHbVJTT0RWOE1NSTFqblNqSWZWU0F2cHNnYUM4YgorZ0FBNHF4VUNDSGs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMjMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVKRENDQXd5Z0F3SUJBZ0lFWFl3NlpEQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TlRBMU1Ua3dPRE0zTlRkYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBeU16Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUs2ZkZ3TWUKKzFvMlVkRGJjcWNWUEdQQVUvNUU3ajJuME9yVVlPRk9pTCtReEVSM0hTa1YzTkpMdXVWUkRXRjM3MStSc1NKcGYKKy9RODRaaDZ4TmoyQ3o0NG5sa3N3aFU3b0ZjeFVTekpLMjJPSi9IdkVQMHVYazRDWnZ6T3RRNm5MM2xWVWxPL0EKK2orTnZ2S0N4NC9rUlFqUnN3UEhUcXMraUxtWTAyUWxqZXhXN2J3THpVa3BKSTMrWHVZbWZkV1ZGRGc3WERKL3AKKzVESjdoVDV5N2JwZnlKNEFoSmc1Z1RMRzBpd08xdS9MMjg2MW1iU0JGMVkzSzFmdzJ0SlVIMUJOdUV2cys3cUYKK2pRZ0pGWWdMbHA4S2hmVmgrTEpUNUNzNUwzWi9tTTJPTnhBYWNtWE1od0FnTVRmb3hoUndWditKUG5ZK2gyNTcKK2d4TTY0djlLZ3pJMGszVUNBd0VBQWFPQndUQ0J2akFkQmdOVkhRNEVGZ1FVcE5HSEpqWk9vdU95ZUVaTTNIK3QKK2xvNEJYVXN3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3V0FZRFZSMGcKK0FRSC9CRTR3VERCS0JndGdoa2dCaHZoRkFRY3ZBVEE3TURrR0NDc0dBUVVGQndJQkZpMW9kSFJ3T2k4dmQzZDMKK0xuWmxjbWx6YVdkdUxtTnZiUzl5WlhCdmMybDBiM0o1TDJsdVpHVjRMbWgwYld3d0h3WURWUjBqQkJnd0ZvQVUKK1Z1dVJSSVZqMW5LenJ0UkZsZ3YzbEE1VVFxWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSFNKZjN6bDkvaG4KK1hoZkgrSWpxNDdHamlVSkpudkp3a2hBM09vZ3JGdzcvdXVKWGdzVkdLUytqQXRvN0dhY2dxeEFxZG9PWStSV2sKKzFwMzF4NTNlekUrV3BKTVY3MFBvNjloWFBoRnRMby9aMEs5R0N5b2R3OFVSd2F0VlNUSzFKbTNGVlJjdnMvUU0KK2JkTkZ5WDJuenFMTDMyaGt3K0IzL2h2RWFscXRIeGxhcTZRMnc4M0lWaVpMcE04emhCMTl6RHVackhPaTBITWQKK3BqY1QxR1hCWW1VWTlJZHhHVnB5dUZYU0VZa21UcFMveEU0bTl6bXhoS1hDSTFYWW5aVnVwS2ZtVmtOL1pVY2QKK09WM1NYQ1FCUXNOSkU1K0twWTFwRWFRdnpxbEZBQ0gzVE92cjdlZUcxUENlcXJUaENZRWx1U3hZVHYwSVRHeXQKK0kwdW1CNjEvdndVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDI1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFSkRDQ0F3eWdBd0lCQWdJRUZMaktlVEFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE5UQTFNVGt3T0RRd05EZGFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXlOVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOdGFIWGxYCitKcHJWc1dBS292L21EM0pQQ25EOXBLbm9JMU9EdGRnT2ZWTms3SUhISHVxZVg0R2V6SjA2Mnd6VDRIWGZid0x1CitrWjM0K2Z5VWJXZ2FxL0lnM01ZcEx3ZkYvVi8wUytYT2lGcEppSVlLOFZyNzQwNEN3NUludTBna0dVYk44KzFGCitKWEMyamp0dlZBNUNienFIamNBK0tSTmM5UG5UeWhndVNDRk1jVHhwVkxBZW1JbE9YNXV2RG5BRjN5ZkpHN0hJCitRdHlVbStFNzU3RHhSWDJNS2UrL0JBTGg1SWdQeUJEUzM4YjJ0N0c5YzVnQTZqSDdYVk1kLzd6RXRXb2dIaFdFCis3bE5YcWxnSkZ4WUdrRERUOHRveTNxaU91c2FnSHoweVRuRlMyUjRIdjlCR0l0ZG5NL014ekZOTjJBbkl2ejRICitoa3VPdHV0Y2VkM28reTBDQXdFQUFhT0J3VENCdmpBZEJnTlZIUTRFRmdRVWwrWFJ6WXNFbDhCTFJsV29hY2p6CitEdnFKT0kwd0RnWURWUjBQQVFIL0JBUURBZ0lFTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd1dBWURWUjBnCitBUUgvQkU0d1REQktCZ3RnaGtnQmh2aEZBUWN2QVRBN01Ea0dDQ3NHQVFVRkJ3SUJGaTFvZEhSd09pOHZkM2QzCitMblpsY21semFXZHVMbU52YlM5eVpYQnZjMmwwYjNKNUwybHVaR1Y0TG1oMGJXd3dId1lEVlIwakJCZ3dGb0FVCitWdXVSUklWajFuS3pydFJGbGd2M2xBNVVRcVl3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUJLbVkxOW9CT3daCitmSlBoaGpUR214SnNVTTJtWUFiN0h2bUxQcDdpRTBpR2pxZ3pNUmw2eENDcGQ3N2tPK205c3I0T0ZmMkp5Z0NTCit3TzBGK1phQldKT0Z0bEhoeUhHeWp2c3BQM3RicEdxQ08rSE8rSkFJQ2p0RDc4TXpKWkJNYnBEUkJzY2NLZTFJCitXdkJrUDJoNVFIQm1hdzZBQ1RiRkJPclB2LzFWUWlQMm5MRjVRekhmeUhBVkl6ZW14TFZsaHB0ay9GbnI4Z1I2Cityb25WUEQ3RVlUZGM0U2dJeFFhS3VrdHJyblhaMk82WEFMTFVrVzNXak9MZXRDUjFIZG9CcEJpSGZneFlOZzZiCit6SEZaN0hkTFRXbnpWQUhpYS9CaElmRmx1Y05ObzZEckhrNHlLVk95NS95SVhnSTNwalIrSGxSWHo5V0V0VGl1CitkUWgvN2pROXRzcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAyNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRUpEQ0NBd3lnQXdJQkFnSUVTK1ZhampBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhOVEExTVRrd09EUXhOVGRhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F5TmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTVZhRHRNSgorQ0hWbDZwbm5SQVBHR2xaL0xvSVhDMmo3NEZIL2U4Rkp2Rm10YjFGR0RMa2J0Qkp2anltOFFyRkM5ZVU4TGpxYworUGN1L2hxdVpaVHJEbDk5Nzg0N2Z2eEZqa1g0cklsQ1VTam9abHJLaFZGdm9RZEhoRDlYYUl3QWoyclR6V0d3agorMnRnSllkOFBHVk9IS1cyZFNobEF0aENzZnphaFhsbGk0Rzdva2ZIQ2dRcVY2MC91SFhQUThFcDBvaWYrMTE5SQorZ2ZtWlJkUmZRMkh5MWM1VzBtQmxSN0NnQ3R3MGtFMlMweE5Xby91VkJ5SzBJdm12N3RHb1RPbG13dFY4MjVIMgorU2hRTDNTaUhvVTNjZjZPUVY3NngwVXVock1mayttejlnd1hGbTg0a1hVZXU4VC9OYk5pVWl5ZER4MGhiamxyOAorVmp2MGUvcU45RW9XVmxFQ0F3RUFBYU9Cd1RDQnZqQWRCZ05WSFE0RUZnUVVTbmFldGRrOGd6cFZBUEh5Z1RKTworN3dQNzZ6MHdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdXQVlEVlIwZworQVFIL0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkMworTG5abGNtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3SHdZRFZSMGpCQmd3Rm9BVQorVnV1UlJJVmoxbkt6cnRSRmxndjNsQTVVUXFZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFLbUNZQlQ3MTZHSAorN3R2a2wybkF5dzM5a3NKMkFJdXFWTVp1TWtOOVRBVkFHYlN6WjdOZk1QOVdOb2FGRzYvNUNCdnZJU1Y0S0IreAorOFNGMWNCenppd1Y5UlVOU05OSzhyZmthSGhQcVpUUWZRZDJmYUJmQXhKbFA1OUVwTE1FMG1JNC8ydHAyNnRYaQordnhiSEFHQnpmSlFRbU1tSURTYzVRL1F6SUZVc2ZROVoxTGFQb1p3ZzBvd3cwT1ZsVnRXd2JaaDJaZHY5dVNseAorVWdBaGlwMEJLTDlIQ0xTWEJvNzdlMlVwanliQUN5cFY0YVBZQnZvU0xlR2UyRDFRSVpFcFFQTnRTWEc5cTVPYworY3VTZGpmajRlcUV3YUtIQ01MS0J0K0dpRE5MUitFby9lSTBxTURvWXd3MzBlN1Y3Yk1WV0FUaWxnamdDeTdLVworYVdIQWphdHZUbTQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMjcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVKRENDQXd5Z0F3SUJBZ0lFQXhIcW96QU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TlRBMU1Ua3dPRFF5TlRSYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBeU56Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1aOVlHUkQKK3VlTmRYQUVlV0FqUzN5RjkvYXR3cUcvL2tKbCtIeG1nazg0OHF2N0hmUXlUeW1UdVVNMTBsZ0ZkRHhvMzI5R2MKK2UwdnVvMm5OSU5WbEhjN3gwVlROdlN3UXhERk5HNUdxV2ViWDltVVNiSzlGUmRwTnlBV0J2SG1ZNW5mVmVpTmwKK3FRWThuRFc0UW1MbExKTHk0WHd4UExMYmx5dTZPTVh6RkpibC80RHFhQkVtMWxKY2dOTUxRcktJekhicVk2UDIKK3hnNlQzekJ5NUgwRkFSdlE0UUpVK1dqaHc3NEJkV0hudEdsNXY1SHA3dVJsa0VuUHMvSHNCMURaN2h6QldlSFUKKzhPUFR3WklkcG9yVGVZRGt6MnZ2NEsxN2owZTdwaEprcnpVU0QyWTRDS24wMjNqbVBndnIwU2hCRnhkT2hVZGUKK0YxM292elpVMHcvOEdCc0NBd0VBQWFPQndUQ0J2akFkQmdOVkhRNEVGZ1FVWlpWOHJoTHZHeHFIWFpVYWxDV3gKK3ZCMHJPOU13RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3V0FZRFZSMGcKK0FRSC9CRTR3VERCS0JndGdoa2dCaHZoRkFRY3ZBVEE3TURrR0NDc0dBUVVGQndJQkZpMW9kSFJ3T2k4dmQzZDMKK0xuWmxjbWx6YVdkdUxtTnZiUzl5WlhCdmMybDBiM0o1TDJsdVpHVjRMbWgwYld3d0h3WURWUjBqQkJnd0ZvQVUKK1Z1dVJSSVZqMW5LenJ0UkZsZ3YzbEE1VVFxWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBRTVTWXhMeHduZmEKK2tDZm5PUUdQd24yUDdDZjFPVUF5aGVYMVhESU80c3Y4UXQyVC8ydW9iVkNrNm9XMUdyZzFjZ0tMWnpoUG5HN3UKK0YzMDVobHFObVZoTTNrV1hOK1JwUXZBU0hWNXlzenlPVlhFR2FnR1RESkpOc3ZxcU9IVS9vZzRUandEVTRraC8KK1hQWW8vdTN4WlFDc3ZlWFgycHdEMDZOTkNtSnlxWFk0ZlByYzA2cXpQeTNVa3FtNFRvZDUzM2FFWkplaWtPN2wKK2Z2UHAvWDNkaURDTzQreFBkVUxXNzJpUW5Qb293RzcyNjVqRmlLNmVKUGM2OW1sSDdmSEJDbDZEQnBsV0RkbjkKK3g0eUdZTlZJYThmbVdGVm9pVVNGSzk0a3Q4YVFjekJYU1VMUzliMk9qV1RMOHA3RlBxN2tXd0NSL3djRGlnRkIKK1V3cllURit6TjBZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDI4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFSkRDQ0F3eWdBd0lCQWdJRU9qNTZ1REFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE5UQTFNVGt3T0RRek5UVmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXlPRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKYUI2WURiCitzcXh4S3R6bGY0ZTJBSk5FUnZObjhadGZBb2lhMFYyQ3gxT0RQcjlET0JseUoyYXhZK2c1b3JOQ2QzVzdDSU10CitiQmI5MWMyc3NpNzF1Mnk0ZGF2Mk1qeXIvN3BwNmNQVDBCcnBZRTl3Tm1sMSs1Uk9ZYjVPalVHZ012QlVsaHhDCis3dURGV0hTaFoxZmdUS1dka2xnZHpZTjltVUZjMlozY0hybUdwRjdiZms0bUVRZHBiMnFyVHU1azM4SVc0MHZ6CisxVnhJRmxrU1BYdE9heGhqbWkrcWJPbEx6bE16MS90WUFQWGlKQmNyS0VDT0x3QjV2NTJlQWhDRURHaS9TaUs1CitnNFNBRThxSGZvWDlYVlBaL2IwOWJIL3NTSUo1bEpCZTd0L2tIaDR4U0tPYUxaUGVYanBQK0R6RlhmZTFPaFhRCitPZHdxcXZ1aHhnZkxCNEVDQXdFQUFhT0J3VENCdmpBZEJnTlZIUTRFRmdRVWJlMXdxNFFhNmNJcUEyUi95TkZJCitJWWpUMnVNd0RnWURWUjBQQVFIL0JBUURBZ0lFTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd1dBWURWUjBnCitBUUgvQkU0d1REQktCZ3RnaGtnQmh2aEZBUWN2QVRBN01Ea0dDQ3NHQVFVRkJ3SUJGaTFvZEhSd09pOHZkM2QzCitMblpsY21semFXZHVMbU52YlM5eVpYQnZjMmwwYjNKNUwybHVaR1Y0TG1oMGJXd3dId1lEVlIwakJCZ3dGb0FVCitWdXVSUklWajFuS3pydFJGbGd2M2xBNVVRcVl3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUtMRW9WV3VPZG9OCisrZU1hdHo4eC9DVUJEZGJxZ2NQYW1hUjFYekZCaVlFUHg3UzU5bkwzck94YlJseDZZRURxSWgzQm9KTmFJQlp0CitORzVYRVZpb2lBeEpQK3IxTUdTZE9IQUs1NWZFa2djc3V5b2Z6anVXQ0ZKd2dQa0JnbENCMUZzNHpMMzduZ2F0Cit6UHNHbkh1cXlHNGh1Wk44VTRDWDVDYWRSbEovY3BMUDRxclZ4Q0dLVUlRdFpkR2F3Y0dBOVYwcVpqcjJPeU9tCitodlNCMjNKUkpnbHJRM0Z3ZFgzQ3FqYXBEemFsTG5TemFRQkxobElJbGYzVWlmT1JEV3hBRWV2bkgzVFNoa0JSCitsU1ZOQjNHWFJuMVQzNWI4Y2hQS3U5YUlZQ0JXOTR5VkcwN3VWbS9VRTBTbndFNVlJeE1zRzE2MVRwZ1RZdzYxCitRem9LS09DRG1LST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAyOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRUpEQ0NBd3lnQXdJQkFnSUVjV3NLelRBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhOVEExTVRrd09EUTBOVFZhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F5T1RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTTFDUTNCMworYUpDczR6bkdMWCtxNkVPN0xIWmRKMmhjQkVIU2VEWWFrcEJpdE1sY3hYSVR5R1RwSEx1U3NSVWZGNk5HcE9kVQoreG1ieW8rQitxZis1eUEvbFRaUjU5elJZeGt2M3NNcE9PSUlkMHhqb0xXL2poNUE4cHp5ajVaMjBqdjQ3UEh5SgorV1p2b2U3WGtPYWIxaERwQkxVb3lIeFZKVlVTTGNjb0xYOXBIWElhaHlabmQ1NkFhb1dRMjVsOExCSWRNRGJPWAorQlVhOWdHRlhCWXhWZHFYQUN5dk9jWFBJaC9PSTNFMVNaOGFQcGNSL3p1UFlTUkJ4elhkQzFERml5eWhmVzZYZworMnFEcEVQM09WbXhidjNzM0FkVVdZQWtEUkJsZjF5ZUVWcjJZU0RndnhmenE2L2s2THNpTVZ5SnlOUmxwTHBEUworUDRhY05OaXhyMG1kUVNjQ0F3RUFBYU9Cd1RDQnZqQWRCZ05WSFE0RUZnUVU5VDVQUjE0TlBHNHJQbGJqcm9xNworbFRFaVlYOHdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdXQVlEVlIwZworQVFIL0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkMworTG5abGNtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3SHdZRFZSMGpCQmd3Rm9BVQorVnV1UlJJVmoxbkt6cnRSRmxndjNsQTVVUXFZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFFMzJSU2FxS1hRWQorMDlPcXZsMFJucG1ucVhkNFg3b3BkYW0xWHhib2hCN3RzQzFoanN2WjB6U1haNjhNSlVocWFvRVpSQVNoUzl4cAorSlowNHlpYVlCNmNxTVBhL0FQbFIxK0NXL0ZmN0Zyb1JSYXhGNEppYTRFQlZvb1diMTh1UjRZQlprQ3lKTkJrbgorY2gwWWx0VE1LcEJnYTYrbjhuSlV1UzdpZFR5dzM4Y3RzK2dQWklzOGpTNitKNC8zQmtxMjVWMU9tYlF2andjQQorNnhaN1k1UFBHUFVDV2hJUzJDMXN5UkdqT0c4eFZFalJ3QzhLd2JROXRpSCtMamJXc3lKSEM3cmx0dDdicDRMNgorWU5tdHBCRjNzZHRVb3BWYncxZDN6WGkvbkp5ZHFwWEpKaGdwNmdzajFsRnFFOThvQndhbXVBVXE2U2xXN28xcgorTUNBL1ZhOU1uNkU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMzEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVKRENDQXd5Z0F3SUJBZ0lFWDhRcTl6QU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TlRBNE1qY3hNalUwTlRCYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBek1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUt4WEZCbWEKK3Zhc0ZzRUQ1Vnhua1JwanVMaHVFVjZ5Zi9tN1k2SXY3UndabHhFb05PdkxkNnBiYmhaSUhJYldsblJsdXJPZmYKK0EwM25oR29YNzFEZzZ5RzFPUGwzY0hwV2N6T2MxWTBtQXArMCtJZFRjbUZKL25oNCtUUzdDZ0lYQ1lWQjgxZVAKK2M3RExoRmhSVjlCVTNKSmxzQWgwRUVWYm9paXhJZkwzNGdWMFF2S0F6RWo5aTM2Z2J4ZUJYMS9PTFI4dE9aWUEKK3Q4QkxLT2R0NFdSUW9JOVpha3ZzNkJDb3hjZmZ6MkpNeWhBeDZZczkrSC9XQ25sVmMrOXl0Q1N0UTRIbG1mZWUKK2ZnZTRISEpRSzQ1RURGb0l6NHNUZERNVll6M05ObjE2TUpWTnJibGVaNHJMZGdUaWovNTJPQnk1T1JvZ2ZqNnYKK1IzNG9ZeVdtc1R2MUo5TUNBd0VBQWFPQndUQ0J2akFkQmdOVkhRNEVGZ1FVcERoTDdqbG1VelU1elFwemJSM1MKK3doTlRqYjR3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3V0FZRFZSMGcKK0FRSC9CRTR3VERCS0JndGdoa2dCaHZoRkFRY3ZBVEE3TURrR0NDc0dBUVVGQndJQkZpMW9kSFJ3T2k4dmQzZDMKK0xuWmxjbWx6YVdkdUxtTnZiUzl5WlhCdmMybDBiM0o1TDJsdVpHVjRMbWgwYld3d0h3WURWUjBqQkJnd0ZvQVUKK1Z1dVJSSVZqMW5LenJ0UkZsZ3YzbEE1VVFxWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBTVh4czJNL1RUSnUKK3lxOVp5MGZ0Yk5obWdJQ2x3MEZwbkRzOUpsRHM4clZBbGJZc0gxRzVRdEhPb1lTMEZaaU5pb0pNQUVwaHNTSHYKK2cyRlNBMlAyRjhHMm1aUktjaitHUjc3WXdTcFBsbkQ3cWc5d0hYanc5eTBic21VclZxQUpUSnNpa0w1VlZSeVcKK2w0dHpNM1RReWxaV3p0REs4bVhkOVhidGhENGJHeE5tU2VvMWJoQzExdlVOcGxVOHNRTlp3d2hDVElwdGM0akYKKzFNbXVBQzhEaGpNRmRpWERuTjQwZnEwMHRXNnkwSTNTVFZuYklnNWptNHUxKzRYdzh2SkdUMDJTUi90VkpUNFkKK1hNWUxnQ2c4c3lIQWZQWnQrTWNHc0g4T0h3N21ENjk1U0ZOT3Y2eDQxUjlXWlMwNERNL0VUSkMxcHpZTkFjV08KK0Z1VzVkM0N1TUNVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDMyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFSkRDQ0F3eWdBd0lCQWdJRUZ2QzdEREFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE5UQTRNamN4TWpVMU16aGFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXpNakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOWFAvWXRtCitvSS9rSmpBMDkyRUU2K1JRL09oMjRBV3RKd0pFejVpNmNtbEVaWU1jcXJVUjhBbGhxYUpxT1pnWnJUcmg2QS9UCitjZkpUMnorNEUveDFqS0hkTlFIMHkvUDdUZDh1dWJsMWhmWS8xQVQ4bFNLYncwT2JCSFN3UlZuanQ2WGhFTGVjCisrNFVMVTJIaXZOcGlCeHJHU2ttNGhCL2ZFeWZoMGsvV0wzR1hnbWNxWFZ4bHBHLzlnQnVKNEpZUmMxUExaWlA3CitIa2RDVVk0RUJzZVNwVkF5UWNqa0luZ0FRdE54ZWhiSEZDQUtlazNMVWZ4b1RQNlV1bmwrdEtMUlFBMXV4c3hJCitpMU9IWmIwZjBGUlEzd3hlRG1weTJaM0hFTy80cG93TGJ6VFBRRFNweHJPU1ozd2o4dStFUy9tNnRLNUVtK3NsCitsVk5lZmZjdTQ1NVIwTGNDQXdFQUFhT0J3VENCdmpBZEJnTlZIUTRFRmdRVWcwTzZ3aEtkZUNtY1MxRTh3OTVoCitBM3Y4eVZVd0RnWURWUjBQQVFIL0JBUURBZ0lFTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd1dBWURWUjBnCitBUUgvQkU0d1REQktCZ3RnaGtnQmh2aEZBUWN2QVRBN01Ea0dDQ3NHQVFVRkJ3SUJGaTFvZEhSd09pOHZkM2QzCitMblpsY21semFXZHVMbU52YlM5eVpYQnZjMmwwYjNKNUwybHVaR1Y0TG1oMGJXd3dId1lEVlIwakJCZ3dGb0FVCitWdXVSUklWajFuS3pydFJGbGd2M2xBNVVRcVl3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUtwcWJ0QUltOFNyCis1TlpEZURFQ1NDRjNYSE80OVoraWwvWmZ2di81d29UOC9QRlpNZG0zbmw2TDVBZWtxM0xlaFlpdVNmcHRubmErCitFODUwZUpnMUVwWDJjeEQ4TWdUYzJpYWpTNkk4Q08xSStsSU55RXVZdUlRWXNZbGZzZThMbG13K2NjMFlveVpiCisrZnFnWmFTa0Nscm9ZUHBBU2ZxU2phV2pVeFVxNE9mSkZkeE12U2Z0Z2FKYSt6M0R1VU8weVExTDdFa21JQVcvCitNUnNnbDV2RmFDaUd4cEprRUh4ektsZmFTYncrNks5Ulc2aTBlWTRYL0VZMlArOTdUeEV3R01wbVpsb3Z1ejFqCitWMlNIbEFvcE15cUdqK0xUOVdjaHhmR0N6VG5ZUkd1RXNCZlM3dEZCQzRFbVRsRHIxamdFZGkvemVMSU9QV1MwCitzaFdpTWxHKzBCRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSAzMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRUpEQ0NBd3lnQXdJQkFnSUVUaDFMSVRBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhOakExTVRJeE1qQXpNVFZhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0F6TXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBUGZ4eEdlVQorYmxUTnB2Mks5WlMybTlBYnFtM3M1b3VET2sxSzFyTW11TlNCYTFWYmNkRTkvcWFlUjZMSENYSTJqNVdYK2tkdworQS95andYZUFaU1Y4eUE3eWdibFJBbnZsUEN6blFiUTFkWTdRTWNHNG1XMUo3aTVlQUJBZWd4aTNaUkNhVkVEWgorV0NwS2haZnF6ZlJrbkM1dUYwYU1NQWdMOFY5MS9Jb0VsMFlGTzZpOFJnM2pvSkxkTUV2T0s4YllFRmpKV1ljNworWUVPYmN2aWNvbkJBN3U4UDZiMnFkUzNhSWgyZGYvczArLyt1aVBqS1ZqNTFFR2hSMHRJSUsrcE0wbkNLY3BqcgorbU9qOHlUWkVyNm9mZmRxUlIyTkJpWmZCb0pERkU3TEtGcHQrUHpNM2w0bjVCQUNOd0JBelZtWlpUaDVKUW5nYQorcE9LblgvaCthVXF3blVFQ0F3RUFBYU9Cd1RDQnZqQWRCZ05WSFE0RUZnUVVkdnA5OE1CM005eU00azZPL3hsdAorSjNpR2FOb3dEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdXQVlEVlIwZworQVFIL0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkMworTG5abGNtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3SHdZRFZSMGpCQmd3Rm9BVQorVnV1UlJJVmoxbkt6cnRSRmxndjNsQTVVUXFZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFNcDhpRHo3S0M0SgorRTI3NUNaam05d2grTXYrakRVZWcwTFBJY2NoOEE3d253WDFpOGhYbFFVTzhxMCthczNiYkJpekdvK0tVTVRVcAorREo5aHNIN1lxQmJXMVFjTEpuT0FHeW5PejB3SXZRbXFyUFVUd29RVGphb0VLVmpUOFNlTlBsdUZHdWtiMjJregoralcvSzM1ODRKSVhnUkYzTWVWV0FLcUYyU3VIK2FCL2t6WlhaUTFOSDA3MlpFb21WMmkrUjdKUWRSZytBcyt4RworOG4vbzV4L2lQZEdxK0E1dzNscjlWbEhaNUFQQVY3RWlVSmpES0Z5ZVVVMWs5V0ExVG1Ed3c1S0wwSnZOQThmbgorazhjd0hheGRKNjNVRWV2U0FOL3Z4KzBDUFoxVCtLeFROMG5PZmYraExqWXZ0VlU3QmdodCtLUklpOWovem45SQorblFSb081S01oblU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgMzcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVKRENDQXd5Z0F3SUJBZ0lFQjRITHlUQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TmpBNE1ESXhNekV3TURaYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBek56Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1MYWlsYVkKKzI0U1grOEEzU0xRVzFueTFndEhYTzljUWN2RUJ0V3lvSUdkS2JEV1ExQngxcTh3UVFCWWhJRlRRZXBYUG90UUwKK3Zjd0FRRmFlMTRiZExsL2hpN2dYaXF2V0hYM083SFdXdnN3U1czVVhWNkVqYUNINllSdWhmVG5aYXZGQllQNmgKK0RjK2srdTVXcTl5L3EvblMwbmlZY0ZacGJKMUJMKzNHM2UwWk1zeG5xdGRHeGhNUU9yRE5NYWh0aXNpQkRMRS8KK2p2RXNvWHRybi9HWHR0VUFaM254eDFNWUNhemFlVm1GNTlnMXphQnB6dVJqZzB5WVBZVFA2Um9sVEswWGY3NHcKK2hmWTYzRjYxUFNZSEVkb1JqOW1CMEpPN1ZFNmNKR2JHc0dnRUR5THppMkR0MWhvZE1OdG5wZWdkK2plN25zN2oKK3BFeFFTVFlDR2lnNEFlRUNBd0VBQWFPQndUQ0J2akFkQmdOVkhRNEVGZ1FVTDFjcnV0N0UwWTROa2Y5RGRmdEcKK2pHRzR4Njh3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3V0FZRFZSMGcKK0FRSC9CRTR3VERCS0JndGdoa2dCaHZoRkFRY3ZBVEE3TURrR0NDc0dBUVVGQndJQkZpMW9kSFJ3T2k4dmQzZDMKK0xuWmxjbWx6YVdkdUxtTnZiUzl5WlhCdmMybDBiM0o1TDJsdVpHVjRMbWgwYld3d0h3WURWUjBqQkJnd0ZvQVUKK1Z1dVJSSVZqMW5LenJ0UkZsZ3YzbEE1VVFxWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBTDRycTlIYXJTaWoKK0xRSzNoRFNPc29qalJJNHc3SDl2K29ueWg4Q3o2OElWZ0xEa1B0YlZJQWUvL0VseUJ5QjhsZWNhbUhiK3FZNHMKK1NqbkV5ZG90TWJ2WlNlRURNT09XcUJnRHp1YnFOMlJVMkZXRFplSGNNWElydVdWQUtLckIrWXRLb1plTmxvNCsKK0l4K2E2VEQxa3JCeGNXNVZFTnRXbEJkWFV4THFnUnZYZHdHWi9oRzBRQWZ3TkFDeE1sQkFKcnVvTExhdGs4Z3QKK0ZTaml1aXI3YTlhNXZEeWtKQlZRYzdXcDRaUUpodWN0YUdvN0JPakVEUzRsQW1uaUFmN3JZSmp1aXhQYllzcUQKK1hwWnVCT0RrZEd3bnR5OXFjM3ZXZnhEVTF6bHBYRm5CdUhDR2dWZGs0QWIwUG0vMW1XYk1DTGRVU3B0MjZMa1QKK01DNTM0NUVDSURnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDM5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFSkRDQ0F3eWdBd0lCQWdJRWRkcnI4ekFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE56QXpNakV4TkRJME1ESmFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQXpPVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFJb2tsQXZtCitHcVRnZVlrNHB4TFhHMGhFOURVYzhocElDRi9sd0k4MGc4U05VMW1sZVNRcEZxVzVrSzI0clhoUkUvZWJpeDRBCitGaTlVb1BoQkdoQmNXOVRQeXRNV3NVd0d5OU9xVStablg5Q1NHRnRSQVQrWjYyZnBlMG1EY29vWWVUcmlleUtlCitDOW5UNElMYlBScnJWMExIVThYQkxCVm9hcFlrS3JoWjZlUFRGZGIrUkFiaWJwb1FWTHJERXJSRzZSYVRrd0dzCisybHlsZS9NQWZQRkFnTXNvbTV6N01zWXplOER6cWNSQ09MTHhtM1dqOGR2VnN0K1RBNWdFSis0bWNwczMrTW1KCitSRHZ1YkZLMGVacGhJQmk2MC9KcTRQVzhLOE82V1MxWmdHUUFLaVRDa3o3cFJqUnA2eDJlY2ZXbEtqRC96VVczCitaSnlzU29DZ3FzVjl4d3NDQXdFQUFhT0J3VENCdmpBZEJnTlZIUTRFRmdRVVJ2SnZsak1Ha2VWaHR5OTZZOXpqCitvRkZ3T2Zzd0RnWURWUjBQQVFIL0JBUURBZ0lFTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd1dBWURWUjBnCitBUUgvQkU0d1REQktCZ3RnaGtnQmh2aEZBUWN2QVRBN01Ea0dDQ3NHQVFVRkJ3SUJGaTFvZEhSd09pOHZkM2QzCitMblpsY21semFXZHVMbU52YlM5eVpYQnZjMmwwYjNKNUwybHVaR1Y0TG1oMGJXd3dId1lEVlIwakJCZ3dGb0FVCitWdXVSUklWajFuS3pydFJGbGd2M2xBNVVRcVl3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUNJT1NWNElEeEJJCitRNjUzK1J5M0daME1tRURPSzgzSjV1aGptUXNYTWMybVFyODFtd3VKdDhZQWQvZW4yakM1UWNFckI5RlJqL1NLCisxeHlxd2NKSkZocHErVmtHRUpSOGtpZ2dIcmJRUUE3aGhwR0NwcnF6RjE0TXFzTXp6MGJLRnphMXVSRVpDNmZkCitEQnpwdkFERGN1dk1QbTlkM3hLNlljRXB5cHhOOTlFL3loaXlNM0g4NDBGa3F5T2F0aTZIWFRyMHFkY0MrdEFwCisyeU4ybS9pTTRYOG1TNFhmRW1WSFJtdmJsdXRCRU42ODQ4bVFxbS9lYjBYQUFaemdNa0VxdVRpQUV1VGorRkhwCitOTjFxWllrQXFYV0FpbVpjRWVRUVdsa1pJYkdvRDhRT3BIT0d4L3JOQldVa0pLRkk0aXByK09nVmZpSFBRb0VnCiszZ1BwdlBLTVpYVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIEVLIEludGVybWVkaWF0ZSBDQSA1MworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRUpEQ0NBd3lnQXdJQkFnSUVDL0dzN3pBTkJna3Foa2lHOXcwQkFRVUZBREJ0TVFzd0NRWURWUVFHRXdKRQorUlRFUU1BNEdBMVVFQ0JNSFFtRjJZWEpwWVRFaE1COEdBMVVFQ2hNWVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bgorYVdWeklFRkhNUXd3Q2dZRFZRUUxFd05CU1UweEd6QVpCZ05WQkFNVEVrbEdXQ0JVVUUwZ1JVc2dVbTl2ZENCRAorUVRBZUZ3MHhOekE0TWpFeE16TTRNakZhRncwek1ERXdNVGd5TXpVNU5UbGFNSGN4Q3pBSkJnTlZCQVlUQWtSRgorTVE4d0RRWURWUVFJRXdaVFlYaHZibmt4SVRBZkJnTlZCQW9UR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbAorY3lCQlJ6RU1NQW9HQTFVRUN4TURRVWxOTVNZd0pBWURWUVFERXgxSlJsZ2dWRkJOSUVWTElFbHVkR1Z5YldWaworYVdGMFpTQkRRU0ExTXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSldzNEwzVgorVWlScUV1OUIvYUljSVUxOUZBOXRuaHlGRzRtWVRVQnQ0aG80RmZlWWJFM3VBenhwTm84MTlWbHpJZC9wdDdGRAordjQ2RGEzdnMrdXQyOWtlUkVRb3ZuUzFIcE94WmhXVmg4ajY3S3IzQkZWU3pkOU9aUnlDRE1lNDM1Y1JId1AvMworVzBMWGtwQURGd2FGLzRPNy9pMnZ6SzA0SEswV2IydndJWkZJaXhyUUdWd2F2bi83WUZlaDVOUW04T1U1MVhMRQorbjdHSVhoSEF5VVhWNFJwS2NIaGJEUHV3NjdvYlVxa3Z1bHN3RUhlMU0vaHNxdFBhWTVjV2VJbCtKanY5L2twMgorSWtsNmVEY2xwN3lIWGMxM1h2aDJ2cWZyZmVDMkJ6M1NQV0xYNGg5cXB0eUM1dGQwdE9OZkNNYnpFOXdrN0QrQworZWVNOWI2VzlrUkUrZjFNQ0F3RUFBYU9Cd1RDQnZqQWRCZ05WSFE0RUZnUVVLbmVnNDBMTHhzY3U0L3I4T3dwNworenFmSnprNHdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdXQVlEVlIwZworQVFIL0JFNHdUREJLQmd0Z2hrZ0JodmhGQVFjdkFUQTdNRGtHQ0NzR0FRVUZCd0lCRmkxb2RIUndPaTh2ZDNkMworTG5abGNtbHphV2R1TG1OdmJTOXlaWEJ2YzJsMGIzSjVMMmx1WkdWNExtaDBiV3d3SHdZRFZSMGpCQmd3Rm9BVQorVnV1UlJJVmoxbkt6cnRSRmxndjNsQTVVUXFZd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFHaERTb25QbnllcgorZ3lqa2IwRC9tZWpXT3lPV0FsTTJZQ2t0cXg5OWh4V2c4bS9hSU1SQlAveGxWa2QxR1I0cHAzVGRQLy9FRTRKUQorU3d3azRBODFLK0hZL1dSZmxYOFI1K1NkYXNrS0FYV3FJd21YSUxWdXhnWEpDbkFrV0FvWDNaSytlbmVXU1o5aQorcEdwMG4zM2IybHlOaDExMElpdFBwZ2lwNzNBbWo3SnA1b1JmTjdTeGVBeExZZ3huamp2c25XT2QrT1orL0syQQorR1grckd6bEdaMzZSdmFpR1VZNGNKeUhTZG9RaDNzR204eGpxVGYycGRkb1d5ZG94bWdpZnpHKzAxakxSaTVVaAorR2J5cTdNK3d1RzdhRmxadVBNTjR0Qmx0QlpBcXhrOW80VnNmNXVUL3dqZFdqV1ArVjYybHV0RE04bEZkcTNUcQorZWdHSHhOVU41SVk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSUZYIFRQTSBFSyBJbnRlcm1lZGlhdGUgQ0EgNTUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUVKRENDQXd5Z0F3SUJBZ0lFZWtyTkdUQU5CZ2txaGtpRzl3MEJBUVVGQURCdE1Rc3dDUVlEVlFRR0V3SkUKK1JURVFNQTRHQTFVRUNCTUhRbUYyWVhKcFlURWhNQjhHQTFVRUNoTVlTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW4KK2FXVnpJRUZITVF3d0NnWURWUVFMRXdOQlNVMHhHekFaQmdOVkJBTVRFa2xHV0NCVVVFMGdSVXNnVW05dmRDQkQKK1FUQWVGdzB4TnpBNE1qRXhNelF4TWpSYUZ3MHpNREV3TVRneU16VTVOVGxhTUhjeEN6QUpCZ05WQkFZVEFrUkYKK01ROHdEUVlEVlFRSUV3WlRZWGh2Ym5reElUQWZCZ05WQkFvVEdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGwKK2N5QkJSekVNTUFvR0ExVUVDeE1EUVVsTk1TWXdKQVlEVlFRREV4MUpSbGdnVkZCTklFVkxJRWx1ZEdWeWJXVmsKK2FXRjBaU0JEUVNBMU5UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtxcWQwN1AKK2hsZDBsb0NEMWhNbGJBVzlGOWpmbHpiOHV3V2RjM216Q3BtbVBBRTNxR1VGcTNJeUJNeFV6SktpMUFRcmpyNTEKK2N6VWM1VXVrUDdFcE5lRCtld3YzMXh2djVaRHBMYlhtSmhMZmtxOXREL2hTbjNJcGtsK0pINHIraG8ybTJwR2YKK1JXNE4yeitZSmpMTzBZMktLZGNGVDhFcnBRRGNpZXBaVlkvY1BSalllaTlIMkFSNGdUU200Q25BZldkbGkvQlcKK1VrbTJBcERvNWl6MVNpczRleXNVZW42Mk1naTN6RkVuakVhMEMxakxoSkpmclVadlNmcURja1lEUk5yVldPK0QKK2lJdS9Ec285RDliekFmWW9SSzc1NkovbmZscXFhUkxTdFRnUUsvNlJGMCtTSXVSSUd5bHhaTkRqQWlkMU1hYkUKK2xUZzFBbHR3WjVxdXdEY0NBd0VBQWFPQndUQ0J2akFkQmdOVkhRNEVGZ1FVTkh5VHlyM3RZV2pHSDl5SFFLYzEKK1BrWjFGaFl3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3V0FZRFZSMGcKK0FRSC9CRTR3VERCS0JndGdoa2dCaHZoRkFRY3ZBVEE3TURrR0NDc0dBUVVGQndJQkZpMW9kSFJ3T2k4dmQzZDMKK0xuWmxjbWx6YVdkdUxtTnZiUzl5WlhCdmMybDBiM0o1TDJsdVpHVjRMbWgwYld3d0h3WURWUjBqQkJnd0ZvQVUKK1Z1dVJSSVZqMW5LenJ0UkZsZ3YzbEE1VVFxWXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSnpXb0Z3WUV1TGsKK1JiVmprOE9hcmJhUHdOSjB2cUU2RlhnTUNhQ2hvRlRNazdJOTAwTEF5bUoyZDd5bWZNRHlDZTNZUEVpMkRnM0QKK2tlWlFVZUo1MHJraTZ2elZRZ1ZiUnk3N29CUTNKRVkrRTBxMWtTdTRpZkJLSjdPdHBiaXJpNHZPbkN1YzZUR24KK2xzSFFCRlI0OWdZZGs3SDYrbzNEbVVDTmw0b2YxYjYvY3ZGT2wyWUF4dWpqZVFoZCtHNWdZUi9RSVczYkN0OG0KK2RnMkRnTHVWcU9WbXBWcWFqZGFmaDZMeWdmUVBrS3dteWN5VnNUcmxJRHBybnZEN2lYc1JDSlp5Wml6MHU2WkcKK0ZQQmVXaUVVWGxrak9Vb1IxRXZVM05OcFdra0ZYaUxlWndvZzZhTlg1ZFE5T2dJaHZjbnB6L2d6bHRtMzEvVmEKKzRGUXl4Zkd1VG9RPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0lGWCBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDYzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFSkRDQ0F3eWdBd0lCQWdJRUg5QjlXREFOQmdrcWhraUc5dzBCQVFVRkFEQnRNUXN3Q1FZRFZRUUdFd0pFCitSVEVRTUE0R0ExVUVDQk1IUW1GMllYSnBZVEVoTUI4R0ExVUVDaE1ZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluCithV1Z6SUVGSE1Rd3dDZ1lEVlFRTEV3TkJTVTB4R3pBWkJnTlZCQU1URWtsR1dDQlVVRTBnUlVzZ1VtOXZkQ0JECitRVEFlRncweE56QTRNakV4TXpRME1UbGFGdzB6TURFd01UZ3lNelU1TlRsYU1IY3hDekFKQmdOVkJBWVRBa1JGCitNUTh3RFFZRFZRUUlFd1pUWVhodmJua3hJVEFmQmdOVkJBb1RHRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsCitjeUJCUnpFTU1Bb0dBMVVFQ3hNRFFVbE5NU1l3SkFZRFZRUURFeDFKUmxnZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrCithV0YwWlNCRFFTQTJNekNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMa0hSZ2lXCitWamZ2OWFTQVoxKzVqcXNPQnIrMDJLaTJYMGZDWkw3MVlTTml6OTBQMnZ1ZCtpU2VWQlRTakRHckhMZDNEbEdhCitNWXhlMURQRjNQVmswUU5NWFZsZWRUNTJ3T3VHcDVzKzZ1b1NYKzRXL3pVM2VmQzR6RUp2dkd6OXFpd3dETzRXCitINkZnalR2VkUrUnJuMnBicnpXOG4ybEl2SG5KTFZHekhpU1pmYXlRcm1TMHJBSHJyYkpTRnZ0czF4L0FsNEdMCitreTdSeUNncUp3K0t4RE5aMTZ4NGswR3Y5UGhib0t5VWMraC9IbisydzVSY0FsS1RadWtMQ2Z1amc2S1JVSmVrCit2NTFla1BRelJmOG13NHo1eDJCZDVubXhOTldKKzRDR29HKy9OK21QL24yZ2FZTVpkYWRRem42bCsvV3RJS2hyCis2UVduQVl5ZSsrQUtiRU1DQXdFQUFhT0J3VENCdmpBZEJnTlZIUTRFRmdRVW9tenVySlg2TTJjeUdkRENwM1kzCitFQysxUC9Jd0RnWURWUjBQQVFIL0JBUURBZ0lFTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd1dBWURWUjBnCitBUUgvQkU0d1REQktCZ3RnaGtnQmh2aEZBUWN2QVRBN01Ea0dDQ3NHQVFVRkJ3SUJGaTFvZEhSd09pOHZkM2QzCitMblpsY21semFXZHVMbU52YlM5eVpYQnZjMmwwYjNKNUwybHVaR1Y0TG1oMGJXd3dId1lEVlIwakJCZ3dGb0FVCitWdXVSUklWajFuS3pydFJGbGd2M2xBNVVRcVl3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUVWUURpMGJuZmdZCitHYUNNTHZDbndodHFnYy9yQ1NrMlZZR2xaMlFTOHErTW1uZWdSOUxiM3ZaQXNEVDhjMlRndnJuSzFwSHJGYnN4Cit2Wjl4bG9Ka1V0K2FDSVovOFBSK3dGWnJzWDBQN21MVDlIZ0pEckNjaU40Yi9naUR0bzlJUTVXQnRwL0ZyM29NCitXZzkxUVpkT05IRHRSL1g3VVlaTW02RXY2dlFBZG5aa1NIblpBcFIrMHlLb0JKWUlOSU5aZkk5ZVBaK3M1QmxsCittZVRWanlLdENHOExnY0dERHE4VmFvZGwzNlZReWE1VEVrVDNlNnJMdmw5WHloeEc0UjN4ek5FSy8weDVSaDRDCitaUUxCNFYwOWZiY2lTZnNYcE9mbG1PNXJGN2tEQklKeUxod1dPTnRuc1c4bTNoR0kwcWh3YjBNb0xRL09XNENBCis3d1lYcTdURXpLND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJRlggVFBNIFJvb3RDZXJ0IDAwOAorPT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRkN6Q0NBL09nQXdJQkFnSURCNzF5TUEwR0NTcUdTSWIzRFFFQkJRVUFNSUdJTVFzd0NRWURWUVFHREFKRQorUlRFUE1BMEdBMVVFQ0F3R1UyRjRiMjU1TVJBd0RnWURWUVFIREFkRWNtVnpaR1Z1TVNFd0h3WURWUVFLREJoSgorYm1acGJtVnZiaUJVWldOb2JtOXNiMmRwWlhNZ1FVY3hGVEFUQmdOVkJBc01ERWx1Wm1sdVpXOXVJRk5OVXpFYworTUJvR0ExVUVBd3dUU1c1bWFXNWxiMjRnVkZCTklFTkJJREF3T0RBZUZ3MHdNekV4TWpBd01EQXdNREJhRncweAorT0RFeE1qQXlNelU1TlRsYU1JR0lNUXN3Q1FZRFZRUUdEQUpFUlRFUE1BMEdBMVVFQ0F3R1UyRjRiMjU1TVJBdworRGdZRFZRUUhEQWRFY21WelpHVnVNU0V3SHdZRFZRUUtEQmhKYm1acGJtVnZiaUJVWldOb2JtOXNiMmRwWlhNZworUVVjeEZUQVRCZ05WQkFzTURFbHVabWx1Wlc5dUlGTk5VekVjTUJvR0ExVUVBd3dUU1c1bWFXNWxiMjRnVkZCTgorSUVOQklEQXdPRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLZFlCWkpEbTN3aworNGY0M3dIWkZiVXk3Z2F3ZHMwQzYxNXFTeDdueHhzT2JqbzhoRmJHSWlMRXFVM05RVVFscHhtdUM0NWlPZ2paWgorR2NFa2RVZkpKR01ldnliZVN6RFpENDNFQVUrazg0Rk9uWURNMno2U3BKbXh6ZndqcGZsVlI5SGM0U0F6cXBzUQorN3Fybkl2dEJKTlpLakN6TXZuS2tJM2xDWnJTUlMwZlQwRks2U1FtRkNMK29QeStJd1F2U0sya3FrZFhSQmpHdAorS1FQdk1XSzFKY2NWT0dDalgzSWNJUGtUZ2NoZlFDWUJkNzNEYWpGakt4cEd6TnYwTDBSSEovOFJibDl6SnF0bworUW9Sc3R0OVY3dUFzNWs1aXdrMi83ajd6Mjg0aTcxcGdqU2xoeDVabkJqLzFGYWkrdzJpaVpWcHdpWDdVaHFTeAorUWZGRjZGaXVTK0VDQXdFQUFhT0NBWG93Z2dGMk1CMEdBMVVkRGdRV0JCVFJvQVdXcWtla2xiQzNoa29IR2pwTQorcmR1K3V6QUxCZ05WSFE4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQVRDQmp3WURWUjBnQVFILworQklHRU1JR0JNSDhHQ0NxQ0ZBQkVBUUVCTUhNd09RWUlLd1lCQlFVSEFnRVdMV2gwZEhBNkx5OTNkM2N1YVc1bQorYVc1bGIyNHVZMjl0TDNSd2JTOURaWEowYVdacFkyRjBaVkJ2YkdsamVUQTJCZ2dyQmdFRkJRY0NBakFxRENoVQorUTFCQklGUnlkWE4wWldRZ1VHeGhkR1p2Y20wZ1RXOWtkV3hsSUVWdVpHOXljMlZ0Wlc1ME1JR2hCZ05WSFNNRQorZ1prd2daYWhnWTZrZ1lzd2dZZ3hDekFKQmdOVkJBWU1Ba1JGTVE4d0RRWURWUVFJREFaVFlYaHZibmt4RURBTworQmdOVkJBY01CMFJ5WlhOa1pXNHhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQgorUnpFVk1CTUdBMVVFQ3d3TVNXNW1hVzVsYjI0Z1UwMVRNUnd3R2dZRFZRUUREQk5KYm1acGJtVnZiaUJVVUUwZworUTBFZ01EQTRnZ01IdlhJd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFCbHY4Q3lBb1dxZ3lNVG0rKzJDWEVidAorOXhJL1hib1lBa2s2QlI1UUpnYlJCRlZ5YU1QelEwVVpkL0VYYk1MMmkzN2poTStDOFp2Wkg1NWduSlN4TWdDWgorWjBQV0tKTUQrandHQjZvTUdPOXVOcTBKWWlZMnh0bytha1dyUjEyRk80ZEU3SnV1U1FlQ2pvYWVoNjkramwwQgorcXczOGxVRmFkTTloRUhDVSsxc1BtNUNnbkJwM28vNXluRDBET0I1bE9WdUUxb3JIRmNrdnRlcTh5WFd1S1lpUgorRlYwaWluMTE1LzFQaTVTc3ZmS3lJeFI4M0Vxa2xQb3h5bjlnWVFtY0tnNFREY0p3TTJhZzM3QWZ5QXVRRGN0TAorcTRGOHEvQVhCUFdNTVhJZCs2S1BJWURYbjdQN3RPUE1CQUc0N3ZyM293OWtnS0NGNDJsR2IvTTdoUmh3NmdNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIFJvb3QgQ0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQ1d6Q0NBZUtnQXdJQkFnSUJCREFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoTUI4RworQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKUjBFbworVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ESUZKdgorYjNRZ1EwRXdIaGNOTVRNd056STJNREF3TURBd1doY05ORE13TnpJMU1qTTFPVFU1V2pCM01Rc3dDUVlEVlFRRworRXdKRVJURWhNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTAorREJKUFVGUkpSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVQorVFNrZ1JVTkRJRkp2YjNRZ1EwRXdkakFRQmdjcWhrak9QUUlCQmdVcmdRUUFJZ05pQUFRbTFIeExWZ3ZBdTFxMgorR00reW1UejEyemRURXUwSkJWRzlDZHNWRUp2L3BFN3BTV09sc0czWXdVNzkyWUF2alN5N3pMK1d0REs0MEtHZQorT204YlNXdDQ2UUowME1RVWtZeHo2WXFYYmIxNEJCcjA2aFdENnU2SU1CdXBOa1BkOXBLalFqQkFNQjBHQTFVZAorRGdRV0JCUzBHSVhJU2tyRkVucnlRRG5leFBXTEhuNUswVEFPQmdOVkhROEJBZjhFQkFNQ0FBWXdEd1lEVlIwVAorQVFIL0JBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREF3Tm5BREJrQWpBNlFaY1Y4RGpqYlB1S2pLRFpRbVRSeXdaaworTUFuOHdFNmt1VzNFb3VWdkJ0Ky8yTytzenhNZTR2eGo4UjZURENZQ01HN2M5b3Y4NmxsL2pEbEpiL3EwTDRHKworK08zQmRlbDlQNStjT2d6SUdBTmtPUEV6QlFNM1ZmSmVnZm5yaVQva2FBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyOSBJc3N1ZWQgYnkgUm9vdENBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUZzekNDQTV1Z0F3SUJBZ0lFVnYwTmJUQU5CZ2txaGtpRzl3MEJBUXNGQURCM01Rc3dDUVlEVlFRR0V3SkUKK1JURWhNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlAKK1VGUkpSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2cKK1VsTkJJRkp2YjNRZ1EwRXdIaGNOTVRjd09ESXhNVE13TURVeldoY05NemN3T0RJeE1UTXdNRFV6V2pDQmd6RUwKK01Ba0dBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWEKK01CZ0dBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVEKK1ZFbEhRU2hVVFNrZ1VsTkJJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREk1TUlJQklqQU5CZ2txaGtpRzl3MEIKK0FRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXhtaUpFUXNPZkZvWmxSeldsMmp3b29VamNLbG9BZ1RrNHdRbVdacVcKK0JocVk1SEc1akJEbWlrOHNTQ0xUdkVyYU5SZ2wxZmtNUW41ZjgwT2M2SFd2ZUxWNHlLUFp0STQ2TjJuaG9WYWsKK2xpM3NoWlpMZGJsQTJ3OFZzNTBuQnErQVJ5c3NibVNZM24vSzF1NkFibG5FQTZzb2NhTnZ2bEVYOVl6SlV1QUEKK0N5UWtlejMvdTdMRTdIbVVpOXJia1BuemlKczB2NDhOdWYvZjN3SkFKTXlhbGtnazNoWnBaVStLeSticGlhTEcKK3ZjYjRWNy8ybzRLUGR0RkszeGFCS0kyQ3gxanBDUUlSLzJ4N0JONzNqT3pqRFNlRkdCK2ROd0FvUkZOK3RZWDIKKzEvVHA1cVE4UnZRLy9FN1lseWJ1UGQ5TFJHN2o5eWJ2RlBwUEY5M3NnTnRrRFFJREFRQUJvNElCT0RDQ0FUUXcKK1Z3WUlLd1lCQlFVSEFRRUVTekJKTUVjR0NDc0dBUVVGQnpBQ2hqdG9kSFJ3T2k4dmNHdHBMbWx1Wm1sdVpXOXUKK0xtTnZiUzlQY0hScFoyRlNjMkZTYjI5MFEwRXZUM0IwYVdkaFVuTmhVbTl2ZEVOQkxtTnlkREFkQmdOVkhRNEUKK0ZnUVVHTEd2Y0xrL21SbHk4MkpWYXBvL3YwdXlUZzB3RGdZRFZSMFBBUUgvQkFRREFnQUdNQklHQTFVZEV3RUIKKy93UUlNQVlCQWY4Q0FRQXdUQVlEVlIwZkJFVXdRekJCb0QrZ1BZWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnYKK2JpNWpiMjB2VDNCMGFXZGhVbk5oVW05dmRFTkJMMDl3ZEdsbllWSnpZVkp2YjNSRFFTNWpjbXd3RlFZRFZSMGcKK0JBNHdEREFLQmdncWdoUUFSQUVVQVRBZkJnTlZIU01FR0RBV2dCVGN1MWFyOFJqOHBwcDFFUkJsaEJLZTFVR1MKK3VUQVFCZ05WSFNVRUNUQUhCZ1ZuZ1FVSUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFnUWlPekN1djdFTVYKK3Jqd0g5dXNXZXY1YUFWQ2drOHN4VnFLY1NxZnpHemxmOFg3aWhWbkp5UUk1dm1aSytnbzk3ckNPZnByM21PTU4KK0tqRWRiRDl5NW1ZZVFzZWFrclVuemsvL2Z1dGRBb01Pb1JnTWI3aUV6TktZNzM1WWhUbHFxUFRubzhPWGp1aEYKK1NlTWhyUEhVWmZqV1hraU5veWM2ZWFoTkVRNFoyMzJMeUZyQ0V3Uk1JaTFUZFlvS0dIeERlOUNlZ1UwRXU5UXkKK2F4NUVUY01Ici8zUE1KOHcyZ1BCc1FNbkJ6RnlhaFNEblpKQkI0NFhuNTR3ditxaXk1OXhsOVN2YUFKZ3JLMHkKKzRNV0RybVFsckVVZ3V4TEJVT01jdmZEWFpURWg3MmpiRm9WNnZBOUh6UWJhTEZ5dng1RHRlUDJYd1RpVEUwK3AKKzN3UU5hRnN6ZHdMQ3dPSEFSUTMyK1R6cEZXTys0Y1NURmhMeUVXMDA4Q3lZTndBTXgwVUpxRzM5K1c3Qk50REgKK1R0eWZJYStXTFMvTGN6VmUvZUY3VG9tUUNVcmkzaFdXR3dnSFA0SG5FSDh6RVVBOE1lR3BadEJvbUY1aXRYS0gKK3ZwZXV1WUJJSTlDV2dhVmhhSkVzOWpZdThjY2s2MHNUb0x6UUlhWWd5WlE5SUNabzVsU2RwR2Z1WHh1ZnZQMkcKKyswTmFHZUNjOG01N2xUSGdLdVhDbHZKOWxWa0paRFV2QWtIa2pLOGxpeDdOWXMzUUhZa2tlZlMrSG9ieDBnT0UKK3RycDBwR3FMQmU3em4zcEpkSmJ2bW0rczNsKzJuOE5rL3h6SGpVdU1GblpOdW5uWURDYWNyZEZ0Yms0dUZuRkoKK2NOclBlekpTSlVFbmpYbGZKeGN0Situc0ZBcFBSZkk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBSU0EgTWFudWZhY3R1cmluZyBDQSAwMzAgSXNzdWVkIGJ5IFJvb3RDQQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGc3pDQ0E1dWdBd0lCQWdJRURpbWRnakFOQmdrcWhraUc5dzBCQVFzRkFEQjNNUXN3Q1FZRFZRUUdFd0pFCitSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQCitVRlJKUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnCitVbE5CSUZKdmIzUWdRMEV3SGhjTk1UY3dPREl4TVRNd01USXdXaGNOTXpjd09ESXhNVE13TVRJd1dqQ0JnekVMCitNQWtHQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhCitNQmdHQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRCitWRWxIUVNoVVRTa2dVbE5CSUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURNd01JSUJJakFOQmdrcWhraUc5dzBCCitBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxdktTUDhwWHRncDh2c2dvQjYzbUptbFYwdmpOM1BIUFZlVlkrenhuCitLeENjT3dqUDVCWTgwN3RLRG1xcGpjcHhvRkRMTTBxYU1PdWdxbnFrQ1RkUWc2TFRjbWw1M204bjQ2dS9uY1pDCitOWlAxZitvRmU0VGJib1pBM3N2S0xNUzkyT3V1VjI3Zmd5Wk1XSjJWWm1JWHNYZmFPK1V0c05xcFVlMkh4aWY1CitpclNSRWtML282WTFQbTdzWXp4SE5tbWFwVjZ2aTROd0s0b0o3ZmNXalQrWkRjMjFiZWVxQUdRdXVNVE9aQm9WCis2R3V3ZEhKcUhuRHFrZ2Q1N1pIcDZxUTl6a3kxbndSdXp5ak4wL1BMQ2FEVlJNbVRpdzdFRVFYbWR2ZXFQMzlvCis3SVR5NjdQVkQvWW5VZit1V1QzeElWOHdoeUd4WjFVeG5SVlYwaFNCSmdpaCtRSURBUUFCbzRJQk9EQ0NBVFF3CitWd1lJS3dZQkJRVUhBUUVFU3pCSk1FY0dDQ3NHQVFVRkJ6QUNoanRvZEhSd09pOHZjR3RwTG1sdVptbHVaVzl1CitMbU52YlM5UGNIUnBaMkZTYzJGU2IyOTBRMEV2VDNCMGFXZGhVbk5oVW05dmRFTkJMbU55ZERBZEJnTlZIUTRFCitGZ1FVbENkaFRUMUlxd1BaUjAvdnFwSW9NU0dwQXpVd0RnWURWUjBQQVFIL0JBUURBZ0FHTUJJR0ExVWRFd0VCCisvd1FJTUFZQkFmOENBUUF3VEFZRFZSMGZCRVV3UXpCQm9EK2dQWVk3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2CitiaTVqYjIwdlQzQjBhV2RoVW5OaFVtOXZkRU5CTDA5d2RHbG5ZVkp6WVZKdmIzUkRRUzVqY213d0ZRWURWUjBnCitCQTR3RERBS0JnZ3FnaFFBUkFFVUFUQWZCZ05WSFNNRUdEQVdnQlRjdTFhcjhSajhwcHAxRVJCbGhCS2UxVUdTCit1VEFRQmdOVkhTVUVDVEFIQmdWbmdRVUlBVEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBZklmWFZSMENUMnNKCitoVVN4NTBYUDhzMFJQdmhQSWdPU1p1bkJKM3g4SDFZZURHQk1DaGRrMjVnWlk2VnpsQVIyNmhxQ1Q0QkRkczNaCityOFgwYW9hZlBwemtOSWpoTEtkQ0FXSURTckdwYTRnZnJiajlyK0h1MXFxM0ZzbDBkRGRxSE9weGI2eEYvY2I5CitiY2ozYXY5WHpXQTJvc1NQay92OEZ3VjZtdVhqMTZzQ1dUc25hejhxUHgwNjROaEgyUnVFL0F1ZVBIeS9xRFMrCitVUG80S2lkUU5vU2FaencwNjQ3ZkFxa2ovOE1jWDRUb2hqaEdGOWV4QWV6VXU3TU9WbC96SGFSaHUxNkxKUXgwCitPTFI5bW4rZ0dlQXVyVDJzRHlYMUNpL0hhQ29qd2piWTd4dmFrcWZpVGlKOWlDOWJBY0UyaWc0NTlqVTQ3WDI4CitwY2JyL0hBdWRkZHQzRnphUDFhQXQ2Rld4SmFCTXcvZ3VYdzhBRS9NaExYWXdReVdXTWVXUG9mOUNDVzRvU2VtCitzMW84N2p3U1lxNVhzZEtSMjhVTFlLNUsvaUtveUNxMy9lWFFsdFU0RE5IUEFQYkd6V3cyT2NtMVdYZERrcWR2CisxOWpWdjd5L1hYUGVYeGZ2eERnbUdyU0tCY0psQlpsSHkyQngvTTQ4VUFiMW11bkQ2NlpESFRJb29vcWM1SkVoCitsSmFUeElHUDFvUVd1T1dEQm4yV0huYmdBNWl2OHA0U0xvWUMxRk00c2ttQ095KzU3aUVSWTRoYlVLU2JKZDJJCitkSW5UOFROZ3FnTWpHS1gwRSsxL2RWR2ZSOTBNckUzaThqcXRCejRHMW1STkF1WVVrZ1RNWUNoanF3aUNNaDVpCitDVEVIZGo3d2QzODVPeWh3Z1hIUHpmMVhQU1hwcWdvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgUlNBIE1hbnVmYWN0dXJpbmcgQ0EgMDMzIElzc3VlZCBieSBSb290Q0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVSVll0bHpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3T0RJeE1UTXdNVFE1V2hjTk16Y3dPREl4TVRNd01UUTVXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ETXpNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcUY2eUZOWHZYR1F0L0hEdWpmdlh0dnpIWldrdVVHWDdQQXY2Qko5RgorWVpCUW1NdTZUc3RKRFpZak1KUFZPVDNyTm1DZ3JxdDV3U2w3bDNWZUErUjN5VUFlaklJSzd0a1VQcW9SN2RLcAorbW9VdGJsYnRqbithRDFsTVF5cG1pYVd3TUFHd0k4NGkyZEd3UmJRcDkxVzRuMnBwOVpNVlE1ZXV3TWpTc3BiTAorSCtmMndudlhGMU42d1NFTGVWVitQMi9WM2xpU0kvZDRDanIwekoyTkZTWTBqTlBndEJWNHpaTUoxWGhtaXhpUgorSmliM1pMWGpOTDZiRlRLcThKeE8vOU1hSW9jai9aSEdIVDh2QjRVczVyd3o3TjNQWnQxWVBBVG1TRCtOV0hrZQoraHE3eEx4VnRsbUxWUk9LWGxmZWFLblVMK0NIQ1JsaHoyMXdkd21VSlNRNUsvUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVVgrWVlEQ1YvSmhNTG1MRGc5YU5IYURaMzg1RXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWo1UERqL2IvVWZaYQordEVTNkRkdmlpdU8zbEhJY1YvL3B2RzJRVFNpanZnb3FmcUR1QWFOZHFxSnlFakQ2ZVpva09pai9wbVBuQVd1eAorOW5HVGJVV1ltQXBIVzdpUFI0SHZjcDhJWkdSbW9YZkwzSTRkcWI3K3prQTVEbDFRenhoOTZmWmFDRTlxMU9hTworV01rMXlLNG0za3k1ZktIYThLaWZNcnpBdnlnUmwwQ3RyYTBWb3ppSGxvYnlCcExqbmYxZXhDdHpVcGFxbU5lLworZXhlZkJUYnpqbWpLVWs5eHNkeTh4eW5EZVFDczVIdTY1OENpbHVzUUV4RG9EVmFna3AvZXp6aGN1NE5YM3RBTworKzF5MXJpM1Z6TlNTZ294N0hPcWI4Nis1UnY4a2R2aHZLcllyU0FsdTA3UFVVVUxLWGd0M0YxNVEvTG9KTVJGRgordkZUbDF0c3RuMkdxOHJ1OHhhU3JtazVLbkt3UGVSeDd2NG1OZXpqK2RFbWE1THFOZjZ1Qm1IcUQyWEFDaCt4cworeldITnZxc2ZTTmZMeGhSaFhPRTRhcGRYcXdDRWlRaFgvLzhVNTdNei9VSWxCZHFDc1g5aEplV0FnbGVLUWVIZworVmNRekxBd3NOVVgxZnFKaHQzdG9JK1dDWFNXSXJxeDZPWGJ1OHdZSnBzVVVFbHUzd3crekhIVmxDdWJ5ci90ZgorYUNOT0g1alNaeE9TWFRhOUVLd21CbWZmczBPTWxvVWdUZmNDcWNvQ21GNTlmSDlrTGY2azhnTVJObjFJWlA5QQorTStBcXJQdzh0ckFwUEN5RDFvWTF3QVBlcmg5Q0hHeVZpTDFoaC8yTEU4QUVwdUV5NkJIRHpUTktnQ1JoTDBCZAorVW1ma1hGZDh6Y095K09wZ2o3bFFOK09RRENOTkNXYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAzNCBJc3N1ZWQgYnkgUm9vdENBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUZzekNDQTV1Z0F3SUJBZ0lFZklLOXJEQU5CZ2txaGtpRzl3MEJBUXNGQURCM01Rc3dDUVlEVlFRR0V3SkUKK1JURWhNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlAKK1VGUkpSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2cKK1VsTkJJRkp2YjNRZ1EwRXdIaGNOTVRjd09ESXhNVE13TWpFNFdoY05NemN3T0RJeE1UTXdNakU0V2pDQmd6RUwKK01Ba0dBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWEKK01CZ0dBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVEKK1ZFbEhRU2hVVFNrZ1VsTkJJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNRE0wTUlJQklqQU5CZ2txaGtpRzl3MEIKK0FRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlMZGIxVG1QNmZoRWxSUU1xNXZvREt3RktaaGFjYlIxOEdwM0UwMUsKKzlzNFljc2RXbndjWUhodHY3US9MSGtwSTNXYW1SVk9UVEtWTzVJWlZKL1BmL0lubTcxeHoyZmxGZW9yUUdneXUKKy9temxJSjhKd1F2OHpaWlhYOVZzRks2NUZkTFJEUWJ3V0ZjZVhNTWxkK2JQN2cvZjN0TjI2RWFFVk9rcFdHSFUKK1JSR1M2aDZCb1Z0eXNnblZKT1NIcVVtVW51R1I5M0hyYjdIQVpBcWs2cElNN2NTNGVEd1hmSHdDUm95bWM1T0YKK25IekMxaHFoOG9GZDJsSHBNTXhyZzBDVm02M2k0THN1RFVYQ0EvQ2I5clpoemhCYStXTHI4dFluRk1GVFdab3kKK3FHUWszbGQxc2k4bXJ0NEV2Y3VSY2xoSnhzeVFRQjBGMUZqNmlXdXZSWWo0N3dJREFRQUJvNElCT0RDQ0FUUXcKK1Z3WUlLd1lCQlFVSEFRRUVTekJKTUVjR0NDc0dBUVVGQnpBQ2hqdG9kSFJ3T2k4dmNHdHBMbWx1Wm1sdVpXOXUKK0xtTnZiUzlQY0hScFoyRlNjMkZTYjI5MFEwRXZUM0IwYVdkaFVuTmhVbTl2ZEVOQkxtTnlkREFkQmdOVkhRNEUKK0ZnUVVONjQwYTZwVXhSUFA4Q2tMc3lHaUtqU2txTVF3RGdZRFZSMFBBUUgvQkFRREFnQUdNQklHQTFVZEV3RUIKKy93UUlNQVlCQWY4Q0FRQXdUQVlEVlIwZkJFVXdRekJCb0QrZ1BZWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnYKK2JpNWpiMjB2VDNCMGFXZGhVbk5oVW05dmRFTkJMMDl3ZEdsbllWSnpZVkp2YjNSRFFTNWpjbXd3RlFZRFZSMGcKK0JBNHdEREFLQmdncWdoUUFSQUVVQVRBZkJnTlZIU01FR0RBV2dCVGN1MWFyOFJqOHBwcDFFUkJsaEJLZTFVR1MKK3VUQVFCZ05WSFNVRUNUQUhCZ1ZuZ1FVSUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFLVnZWRGYvUzhoNmEKK2tiR3dYS1VZWnJHYnRsZzJkV1ZrTUQ0dnVETXlOaHVHV05UamdhV3lOOW5HZVNmcHBiNmx1LzYwamRpNjAyRFcKK0RueUlQekdDUkN6a2wrN0FBakxBSzVJSDAxb2RlRkVYUkhDUDhvUzVsQ2pZcnJSUktuNzgrajlHNFBscVMra0YKK3pUOTNuWTB0dGxsL3ByeDRWUnJZS1grNTlDSnYydkd4V3V0Qm82MzVBc3RRbzExNXlFZGdIOE9vYlZOdkpGTEEKK1pzSjVGc3NuWmRRNDVkTk5GSGlFWko1Y1FLNVNzd0FQWmV1M2l1aFZ1d29mYW80QlplZENaRStya1VFTDNDZ20KK0lYemFleitMTjZnZ0RDNit2U0hOZ0twd3lHYzNQUjgzQ1F3Z25UMnZYV3NhY0cxcGlsZU9MNklrZVJCRmExME8KK1N3T1k5dHFZMldFYVAxMlQxOS81VUcvaitLcldaYzAxSG84SllKYU1aejJwU0hpTWk1ZWR4R043OU1kZnRubDIKK1JiRWltUDZaYnFKMUprVHNxMGFrdnd5bldoOXVDVG82MkZ0ZGlXVGs2OTFhS3NaeEw3d1k5dmhkbEYzVmE0UWoKKzJhR1lWd3lJZDJCUk1lQ1pUU2RsdHo2MW56YlpnamRhQjcxL0ZFMm1YcTA1SDBXK2tsd3hWR1hBTFpQbHRNTmUKK29MaEg0RCtwVVhLSXlaNTZ6bVJmR0hKZmZpVERKOHlHc2E3Tk93dlU5TnpNL0JMbWRLclI1TzgxK21sNFFlUDkKKzNmSnhMTEdWaGZmY3VFUVc0ekRFOXFtSzhIVTJwSEpwT2oxWTEzWjgvRmlySGRrcVRrL1ZMaGNsMzFRWklwRkwKK1BNOG9GOEsxQXl2VGRTN3FLcWpzQi85a0hVc2h5MG89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBSU0EgTWFudWZhY3R1cmluZyBDQSAwMzUgSXNzdWVkIGJ5IFJvb3RDQQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGc3pDQ0E1dWdBd0lCQWdJRU02OU53VEFOQmdrcWhraUc5dzBCQVFzRkFEQjNNUXN3Q1FZRFZRUUdFd0pFCitSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQCitVRlJKUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnCitVbE5CSUZKdmIzUWdRMEV3SGhjTk1UY3dPREl4TVRNd01qUXpXaGNOTXpjd09ESXhNVE13TWpReldqQ0JnekVMCitNQWtHQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhCitNQmdHQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRCitWRWxIUVNoVVRTa2dVbE5CSUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURNMU1JSUJJakFOQmdrcWhraUc5dzBCCitBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxam1TaVJWQms0TUVNRHpJN3Z5eU9iVmhReC9OTDU5cExGenVZRG5JCitGWDhMZXorWExMQzRGVHZRUUdvdi9QUHJ4MzdaclplZmh5dU5vQjF0VlpDajIyUVpjV0crR0VYS3QxclhUZ1JiCis3L1ZUNzhQYm1aZWhqTWdzOGNHUU0wb1drYnJIcWFzdGtrZlNjbjJOUjZveE5sVUZqVy90bC9DdzZMMUhqdG83CitsMER1MS8wWmd0eTR2bSt0RDNYYmVsemNwOWxwbktDWU9uWVkydlBFK0xFRzQ3MTF3SXZSc3pkd3c1bEdFQkxHCitrTkk3QUxGYkkvU25MSVh5WkZFN2ZHR2lTUEVscGppcmpTbVhzR0RoZmE1Y1FmVlIyOFlENWRwVWgvRGU1dTRBCitPYk0wVGpVdlcrdm55dE9Qczl2aDVoWWo5QUFrOC9YL1VmaGF5RTZsd1lzcmZRSURBUUFCbzRJQk9EQ0NBVFF3CitWd1lJS3dZQkJRVUhBUUVFU3pCSk1FY0dDQ3NHQVFVRkJ6QUNoanRvZEhSd09pOHZjR3RwTG1sdVptbHVaVzl1CitMbU52YlM5UGNIUnBaMkZTYzJGU2IyOTBRMEV2VDNCMGFXZGhVbk5oVW05dmRFTkJMbU55ZERBZEJnTlZIUTRFCitGZ1FVem5jVk8yNFJES1N1S1hHZ21GSHZTWk1tSUNvd0RnWURWUjBQQVFIL0JBUURBZ0FHTUJJR0ExVWRFd0VCCisvd1FJTUFZQkFmOENBUUF3VEFZRFZSMGZCRVV3UXpCQm9EK2dQWVk3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2CitiaTVqYjIwdlQzQjBhV2RoVW5OaFVtOXZkRU5CTDA5d2RHbG5ZVkp6WVZKdmIzUkRRUzVqY213d0ZRWURWUjBnCitCQTR3RERBS0JnZ3FnaFFBUkFFVUFUQWZCZ05WSFNNRUdEQVdnQlRjdTFhcjhSajhwcHAxRVJCbGhCS2UxVUdTCit1VEFRQmdOVkhTVUVDVEFIQmdWbmdRVUlBVEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBRlVvTWxLNnAyOWNSCitWVXBYNjdnMVliOGowZWk2MUwzb2x3R01FTzNPQ3RHcldFRkkvaWNRdHhnb1NMeDFoOEdTVkJIQUpRdDFKaTh1CitPakE0czhHalFRNlYwR0lSSzNpeHZPMTJSaUY5cWpSSzJJZVlMLzRnZ0c3VS94R2hvNzZMaFdyZTN5VHRDd1RRCitzQ244RXRUYmZnQVBNQVJrems5UzV5aUdieG95MldOeFJiRXpjWXJjNk05MCs2VENOeDVSYkErejRROVpURkMrCityRStDREJmK3gzVUNqeFBRZStWTVZoaE5nWXZsZzRTNk85UWwwcUxZVlVXK1FkUjlJUWZIZ0o5UFFIeTFZMFVlCitFdVhHaG5wUUdQa2FnQUVlSzUxdzZBdUZpakFtcjB5MzlMTGMwMFFlMGIyTElnUDExWFpVNjZoNHVGNzRPVkh1CitzOGNOZ3FvNVVQM2paTGQrN1FBdEJ2L0w3Sms0ZktOVC9RZDk4TlNPZEpKdTJNdDRwQWsvbkVVMDdUTmdySzV5CitITnFuSVp0MzY4MWdLOTYzM0g2MVdDOWhIRVBXOUQxV1FsSWhLL0Z6dUNXZEkraEQxbnkyQmxBT3NBQmZheFFSCisyc1htajFTWXRSZktIR0VYQWxBNittZG5FMUdIUEx4bVFqcVdmNnNrRTYrYVkxR2U4b1dkMjBNMEQyZ1UzRUNyCitHbnpCRnQ1NWJDdjNZaDJNdWpPUW1pbWNyc3BhM01wTmdOSzVaNk8xY1dmQlpHZWMvODRLK0p6ODNHS29mek5sCisvTkhGTjV0bzJFeDQ3SnpFQVdoMUJEVUhmSUVEUFo0WlZRci8ybVQvUGd6UHFDdTRzbmFzVldQejgwQ3d5TUFZCitBM1ZyaUNrY0J3eThWc21Kd2VRVVNlLzhKTHhaVnRRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgUlNBIFJvb3QgQ0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnF6Q0NBNU9nQXdJQkFnSUJBekFOQmdrcWhraUc5dzBCQVFzRkFEQjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnVWxOQgorSUZKdmIzUWdRMEV3SGhjTk1UTXdOekkyTURBd01EQXdXaGNOTkRNd056STFNak0xT1RVNVdqQjNNUXN3Q1FZRAorVlFRR0V3SkVSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRAorVlFRTERCSlBVRlJKUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dVbE5CSUZKdmIzUWdRMEV3Z2dJaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQ0R3QXdnZ0lLQW9JQworQVFDN0UrZ2MwQjVUN2F3enV4NjZ6TU1aTVR0Q2tQcUd2NmEzTlZ4NzNJQ2cyRFN3bmlwRndCaVVsOXNvRW9kbgorMjVTVlZON3BxbXZLQTJnTVRSNVFleHVZUzlQUGVyZlJackJZMDB4eUZ4ODRWK21JUlBnNFlxVU1MdFpCY0F3cgorUjNHTzZjZmZIcDIwU0JINUlUcHVxS2Npd2IwdjV1ZUxkdFpIWVJQcTEramd5NThJRlkvdkFDeUYvY2NXWnhVUworSlJOU2U0cnV3QmdJN05NV2ljeGlpV1FtejFmRTNlMG1VR1ExdHU0TTZNcFpQeFRaeFd6TjBtTXo5bm9qMW9JVAorWlVucS9kck41NExIelg0NWwrMmIxNGY1Rmt2dGNYeEo3T0NrSTdsbVdJdDhzNWZFNEhoaXhFZ3NSMlJYNWh6bAorOFhpSGlTN3VEM3BRaEJZU0JONUlCYlZXUkVleDFJVWF0NWVBT2I5QVhqblo3aXZ4SktpWS9Ca09tck5nTjhrMgorN3ZPUzRQODFpeDFHblhzanlISjZtT3RXUkM5VUhmdkpjdk0zVTl0dVUrM2RSZmliMDNOR3hTUG5LdGVMNFNQMQorYmRIZmlHalYzTEl4ekZIT2Zkak0yY3ZGSjZqWGc1aHdYQ0ZTZHNRbTVlMkJmVDNkV0RCU2ZSNGgzUHJwa2w2ZAorY0F5YjNuTnRNSzNIUjV5bDZRQnVKeWJ3OGFmSFQzS1Jid3ZPSE9DUjBaVkpUc3pjbEVQY00zTlFkd0ZsaHFMUworZ2hJZmxhS1NQdjl5SFRLZWcyQUI1cTlKU0cybndTVHJqREtSYWIyMjUrekoweXlsSDVOd3hJQkxhVkhEeUFFdQorODFhZit3bm05OW9xZ3ZKdURLU1FHeUxmNnNDZXV5ODF3UVlPNDZ5TmEreEp3UUlEQVFBQm8wSXdRREFkQmdOVgorSFE0RUZnUVUzTHRXcS9FWS9LYWFkUkVRWllRU250VkJrcmt3RGdZRFZSMFBBUUgvQkFRREFnQUdNQThHQTFVZAorRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHSFRCVXgzRVRJWFlKc2FBZ2IycHl5TgorVWx0VkwyYkt6R01WU3NuVENyWFVVOGhLckRRaDNqTklNclMwZDZkVS9mR2FHSnZlaHhtbUpmamFOL0lGV0E0TQorQmRaRW5wQWUyZkpFUDh2YkxhL1FIVmZzQVZ1b3RMRDZRV0FxZWFDMnR4cHhrZXJ2ZW9WMkpBd2oxanJwclQ0eQorcmtTOFN4WnVLUzA1cllkbEczMEdqT0tUcTgxYW1RdEdmMk5sTmlNMGxCQi9TS1R0MFV2NVRLMGpJV2J6MldvWgorZ0d1dDdtRjBtZDFySFJhdVdSY29IUWR4V1NRVENUdGdvUXplQmo0SVM2TjNReFFCS1Y5TEw5VVdtK0NNSVQ3WQorbnA4YlNKOG9XNFVkcFN1WVdlMVp3U2paeXpEaVN6cHVjNGdUUzZhSGZNbUVmb1Z3QzhITjAzL0hENkIxTHdvMgorRHZFYXFBeGt5YTlJWVdyRHFrTXJFRXJKTzZjcXgvdmZJY2ZZLzhKWW1VSkdUbXZWbGFPREpUd1l3b3YvMnJqcgorbGE1Z1IreHJUTTdkcThiWmltU1FUTzhoNmNkTDZ1KzNjOG1HcmlDUWtOWklaRWFjL0dkbitLd3lkYU9aSWNuZgorUmRwM1NhbHhzU3A2Y1d3SkdFNHdwWUtCMkNsTTJRRjN5TlFvVEdOd01scHN4blU3MmloRGkvUnh5YVJUejlPUgorcHViTnE4V3VxN2pRVXM1VTAwcnlyTUNab2cxY3hMenlmWnd3Q1loNk8yQ21idk1veWRITnk1Q1UzeWd4YUxXdgorSnBnWlZITjEwM25wVk1SM21MTmEzUUUrNU1GbEJsUDNNbXlzdHU4aVZBS0phczM5Vk81eTVqYWQ0ZFJMa3d0TQorNnNKYThpQnBkUmpackJwNXNKQkkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDM2IElzc3VlZCBieSBSb290Q0EuY3J0IEMgdjAxIDAwIEVOCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSakNDQXMyZ0F3SUJBZ0lFZnJxdVB6QUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVGd3TXpJek1URTFOVFEzV2hjTk16Z3dNekl6TVRFMU5UUTNXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ETTJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRXVzK1FsVEZ4UWxtc3lGcDR2YmpycnRRVkpuL1doYXF4WlBEbXRaendTT0VMM2RSTzB2SWEKK3lEcEc3SWY2Nms0amNUbkE3L2JkdS9rU2ZrV21NR2N2cEtPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZEWXJBaFpjcXZVWEVPdU4KK3BFUHRYbm9IcVdYTE1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3RFhUdUpuUFhZbXVTMUtTSjVsb1o0VHEyeWRjTlhGVU4KKzBmUFNUOC9XV3FQQXlpcERhN0gzcTY2c2FibHZOMDkyQWpBMnVGdEJmd05yK1M1S01oOXFlZGtBckc1Q1c2WnkKKzRua01FZXoxNHY5N1NmV2UvTU9OWTBlRmJHTlRmYlNVc3RBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQSBSU0EgTWFudWZhY3R1cmluZyBDQSAwMzYgSXNzdWVkIGJ5IFJvb3RDQS5jcnQgQyB2MDEgMDAgRU4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVJZ2h0NnpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGd3TXpJek1URXpOak0wV2hjTk16Z3dNekl6TVRFek5qTTBXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ETTJNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcTFxRUFiQnhwckdRN1hUWGg4ZDNScktPZGxsUHRBWlBkWHp3QmU1Tworc2k5RDl4d2hWbmw1WWVyNzdLVTBIS0lyeW1aTUl4ZDdMaUoxMStHTEZJcVBlVHdRci93NG80OFFIbWFsUU1DYQorOS9FU2owM1Q1djF5RGU0bDhPOHZ5Y21rR0dsUDU5TUlGcFdDNDFqNFRyaFZZckJza2VVMnpzSDdrQkVVU3pOUgorNVo1ODVzeCtQdk05Zi9zMDZkMkZjamloQmU3elhaUE1lTXRHaElwOEo5blhFSVRuWXdaekorUnNXNGtBTHdCVgorbFpwMUhYdXZHakgzSWhUVWhYSUlFdllkSjdLT2Q0WGh0UHEzNDhvT3JTY3lNanhRWGt3K2tjZ3pEdUwzOU1CLworZndxbzdZUTNxaSs4aHNucWxaRTFVZHMrSUxpR2lLMEVIUThpeEpRTkQvbkREUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVWZMUzNqbWlHRkw1RUljV0ZqeFc1YlY2clVlNHdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQW9rSFEvMVVSK0JEcgorVjc1TWpUaFM3MXgzQ3Y1U1U4cytLR2c0NndFUzg0MXhvNzlmTWtOZlNUNzM1Vk9za1ZCT29ZNEZiS1JmdEhNcgorSUdaQnNWdENaR1NNVnZiT1Z3RWVYSWZMRmxBdysybmd2ckdkcUoraGtxbmRGOTdKUUxuTE1oQmduVzI5L3UzRQorTi84MUdmQVBwTWJReWlJaG1lUkZRR1lnc1d3UlhGNzNYcnd0bEdOR21BZ1k4REZQNWVrS0psZjB2d09NR1MvcgorOXZ0UklIWmJpVkNQRElZMjliQUM5NnZtZlZ0Rm94VHhEb29qS3dybktqbzZlSWE3a3pTVmE1RzdTdjdNVmNucword2RIcVdwdExFV2VFcW5DUER0aEppWE5RNGY5STZCdHdWbm51Ri9RSFBRQ1ljN1drRUtoc3FZcnVFYkV4M1cvWQorZmc3ejF2VGdranExclhpcDZSOEdGbTdGanp0QTMxUUw5YUhjb2o1SlBTQXNFYnV5anYwRUdsUEhHcUFuWkY5WgorcmtzQjJrOFgxd01wUUlsNTNrR1pDNmd4K3J5T3h6R293ZDZGeTZ4UWVqTFV3Vk9qWGsySGJoTzFWQzFrNk5XeAorRFoxWVZQVjNpM3lyZWtRMWRla2hWWFk1MGgzdTM4NWIxbEVSMXpxcmFJUmZUcTRMNHpudDFrTGtodXlacHRQagorUVhSZVpyWjE2S21BWllDbzZ1MGFTbldONVQ0ZzVnTnl6NnlEb25DNzVYMTh1cmgvbTdENmRBdFBoZGE4aVJKWQorOE1ZR3Fxa0RKMmthQ2xlMXB3Y1IvRGRGdXhLVWF0SlhaVTVVUDlFaDJiV2lmLzBleTZqMFBMZGRnL3Z6VW1TcgorOXgzUzVxYWhOOFMzNUo3R1REcDhXSytMMVZnVjc0VT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAwMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJ6Q0NBczJnQXdJQkFnSUVIN2ZZbGpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UTXdOekkyTVRNMU5qSTJXaGNOTXpNd056STJNVE0xTmpJMldqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURBd01Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFZ2pnaUx4VU10V2t0emtmMWdscWJlZ0NTUi9rOHo4cHJMMGJMeGxVLzA2S2xDUitxNmNxaAoreTBiRFgzdTU3N214SlE5ejBqRVhvV1FHN3NVbERIbU1aYU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkhPcnVCb0NKVVZqTi9BcgorSmIwNTVsaTVEd0QvTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EYUFBd1pRSXdHVDRrekp3bXBmdG8yUlIzSlFUVjNrUEowSG9WVUJDZworWW84M2VobkJueGowUEh1ekg5VUJFc2hxZ1RSR3F4dkJBakVBazEwb2Y4eWVlUzhiMVJtazJhU2NlWkRFT0VwRgorWEhXT0JRWVRqcXZsaUJvbWFFUUVhWVBvZ3BIVVRZS0ltK1hZCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMDEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSekNDQXMyZ0F3SUJBZ0lFUlQySTFUQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVE13TnpJNU1EZ3hOakkyV2hjTk16TXdOekk1TURneE5qSTJXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQXhNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRVNBWGhxc09RWkZXejFFSUo3UUZWWWpWaGEyTkpaL3VCT1NSekZoTytha21hU21BTjF4WDkKK0RvOEtSNU9vTGlvZnVuRGlld0dPMUxjU1E0RHAzL0FqK3FPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZEL2o0K0E0UHN1SmtSZ1kKK2owNHJsa1RiMDVvOE1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3RXE0ZzVienJ5eEtBUVhyVjEveFNnNVNUNWR6UFQ4ZVoKK0Z1TjJUdktiV29oMHFWWlN3YWd5dFQ0S1ExSlpydytYQWpFQXJpTTZXb2xlMHlKT1FLK3ZLVkRUdVVWc1JGQ3gKK0M0eHBRQlpNTDNwNUJneCtKTmNnb29CQ2FnSUJTVjlzQUtZMworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRU01YW8vekFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRNeE1EQTNNRGd3TnpReFdoY05Nek14TURBM01EZ3dOelF4V2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREF5TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVmaER0YTFtcE9CdkVNMDNlVTZkaDRCWGMwV1c4UklvRWF5SC9YajU1QjNpOHNQQkk5b3JqCiswQmRlZStGRkJKR29pTFJHTmJuUytqbFhXTERHbXJicTY2T0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGTXBwY0VXR2MwazZpdUdaCitUdkhpa2pqeWYwVVlNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJeEFKblFtQ3FlRzdpYktoZ1F6dGRsM3EvdnlFVCtWdlZmCitFWlpGYWRDem5HVENrTUtXck5vY3FTU3M4c0gySEtHYVd3SXdIZjRtaDVWckRUd0ROQlJMaGFzNXRuM1VVbEVQCitwZlo2cGsyU0RJWDArRzR1dVByMC8vUTV1L0lYenViNklBMkQKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAwMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJqQ0NBczJnQXdJQkFnSUVSM1Y1YURBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UUXhNVEkwTVRVME9UUTNXaGNOTXpReE1USTBNVFUwT1RRM1dqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURBek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFQ2pLLzlGS3RzYm55b3BRR3dva0NtaUpBUnlpeXI0L0c5THRodHRyODZnV2JaM01Rc1E1VgordytBcGk0WnJTMDFCTzFGNTRRYzNhSTJKaTN5UEVFMlUwcU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkZWZDcyd3orREJFaTYycworLyt5eDAzdXQ4ZWVHTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EWndBd1pBSXdaOUhxVkVPVFhBazFSR0NMV2swYUxmcHBFd1FrMi9WUAorQXVRdW1VaTQ4aGJwZks0MVpqQjNJWW9TOWxnZkVDK1FBakF2V3JMWHExdjdySW04UGNmNmlaK3JsSTcyZC8zOQorcTRzSVhObVhIcVVXckllZ3ArdXNEQUdqQVlEcEJmZkVib3c9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMDQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSekNDQXMyZ0F3SUJBZ0lFZnFJSmZUQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVFF4TVRJME1UVTFNREUxV2hjTk16UXhNVEkwTVRVMU1ERTFXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTBNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRVU0dlZ0Q3Urc2MyVmxkVWwwUVRvV2hiZlJpQWh1bWIyUzNTZXFtMVA1NmFnWFBKc1h3MmgKK3NzQThpYzBKdzdoMWJHcE02K0V6TkJlc1RwR2tzQll1THFPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZMMXNhY0IxbnFxVjNXMFYKK2JxWkJjTVM1czJ4NE1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3VEozYXN0TloyaHlSTVBHM1JPMUJlS2llb0FOcnYwanIKK241R09OTlBHWjExbVZaWWdGVlNpaGVCWjl4cU9GTXZaQWpFQTlRaytEd21laTFGdVkvenRuR2VSTHc3Yko3bG8KK3UrcmRoeXZseklPNmFJOHg1d2dKc2JjWDZTVDVRRW5jejk5dAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRU5jNlprakFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRReE1USTBNVFUxTURRd1doY05NelF4TVRJME1UVTFNRFF3V2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREExTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUV1Y0xmNmoyWUVLcW5XQnlYcWNIRUN3Tkt6RURNdHJpUFNjclhhUC81RzZxZUpnellnSUZJCis5a1hlYVRSYTh1R3N5WW5xaElxa2pReDdDS29PSk00MktLT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGQnZXUmZ3ZmtJSjhLRDVzCit0U2FGbi9xdzRNWXJNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJeEFNVGZZRDFZN21SaXF1Q1RSTE1oa2ZZVlVFZXVHcFcvCitmWXdWWlA2clpWVGJQQ0M3QWsyYytHUzdtZGFuVTROZk1RSXdUcWpTajhIeGd0aWRraE9HWGg1dklmZE9aS04yCit1QWd2S2FGb01ld0tyQjlIV3FMMmZ4eWZ3NlRoR0FGL2Y3V3QKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAwNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJ6Q0NBczJnQXdJQkFnSUViUHNwcHpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UUXhNVEkwTVRVMU1UQTJXaGNOTXpReE1USTBNVFUxTVRBMldqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURBMk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFbHpxTnFaMlhnc2FMNmhaaXJ2Z0hyK0UwWGFpZjFCbEk1dDNmTkFXVkd6VUFLSGhJcGphMworN0FvYk9NV3ZVeFlqK09ZczFEdC9MUDNUTnE4bzRwejdpS09DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkxMVHpBZ1VURkNBakNpZAorRVpZblI1di93T1NqTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EYUFBd1pRSXhBS3A0N2dVNjUvdzM2R21BMFNUZTRlSlhjZkh1emt6YQorTFBpbitnVEpCaEh2TkRVQjEzOXRmSFF4QjgxSHczQVp5QUl3YzdrT3p3NXFyK0VudHFQbFdCWmNpWHJ4NUlTbworMk9RZVFpTmtqSTV0OG5nMjIrVlFRdmdVM0d5T2gyT243V3dICistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMDcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSakNDQXMyZ0F3SUJBZ0lFRW9EWjVqQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVFV3TkRJd01UVXpNVFF6V2hjTk16VXdOREl3TVRVek1UUXpXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTNNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRTE3SVRwdmpWNXRFYUQvOVg4M2xOVzdka0V2MnluV21YazZreFVGOXlXYnV3V3pkb2dwT0sKK1pYT0xhVkVHUElpd3UrTXlyZkV1Y2Nna2t3MWMwS0VoaGFPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZQWmNLSnM5azdlUGw0ckkKKzBCZTNsSDJwTmplbE1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3TUFoQUt6b0tiYjBZQjQ4Z1VTTG54SjVCS0hpLzlWb3IKK2gvOFhDWWJkWThtT1JFR0QyaUgrbGUwSWw1Q0RQcDR2QWpCZnNuYkhxcFRzWFdDVWh2OG1IVndvamJtM2U2UDEKK3hzcC9rOENpbDI0dm1yZk5ON3RKT3F3aUIzVTNMN1BuOW1zPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDA4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRVNhMXArekFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRVd05ESXdNVFV6TkRRM1doY05NelV3TkRJd01UVXpORFEzV2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREE0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVzT3c2MUpiT0RrUFdkTTdoU2dqOVJvd0lyR1ZoUDBzaWVoNEhXZ1A5RmxNTUtveUtTWXdSCitqeHIwL3hvSVl6V2RKNWd3blFTTnRSajhDVTFWNHpGWFRLT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGSlV5RlR1cW5YUklMU2RiCitHajVIVXduVHorVUhNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJd0RiK0Q4UHhmY213THJqelU3dWp2K3R1Z0lYaVVlWVVOCitZVlljbUtzUTFaL2RLYjFLcEtnc1ZYMnM2TU1qdHltQUFqRUEyMXNnVVE1ZnRzWFFSTDNrSVJLK3d5bXlCU0F3Cis0SjIwem4zZWVVZjlzcURuRTl0K2lpRjdVTnh1UmROU202RDIKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAwOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJ6Q0NBczJnQXdJQkFnSUVGTGpLZVRBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UVXdPREkzTVRJek1UUTJXaGNOTXpVd09ESTNNVEl6TVRRMldqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURBNU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFWVZrREV2a0czdlhKUUtyZm5rUFhuZGhLRk8wNEJUUXUyc3JQYng0ZmJkQnhqUWxaNU9hagorY3F1Z1hBSnkxejR6a082bVFKTVFnY0VjenZSZmdNYjZlS09DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkpLN1VjdVhrQXhNNDFDKworTDBxeTBxVy9aRjA1TUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EYUFBd1pRSXhBTmlqNmV5NUhGTWNwUDYxNTVCeDRURXpscW9NMnhPcAorQzIxQjQvQlFEcHlzQVJINGNxdER6TnR6M3I2YlVqdnYvUUl3ZjR2Z3JTdFVHak9PMmJNV2Z2a0syeTlmTGo1UworV0RxOHZ1SVJkMUw1L1hkZUpEdUdJdW1iSXRvWHMwczZ1MHdiCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSekNDQXMyZ0F3SUJBZ0lFUytWYWpqQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVFV3T0RJM01USXpNakV6V2hjTk16VXdPREkzTVRJek1qRXpXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERXdNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRW1OTTJPQW0rWjhuV1c4dUhXMXIydGQ3N2Y2bjFKNm5RdDh0VDRQRzZueC9QSW5WVnBvNXoKK0NCMHdsWUpoWlQvYndXTTVmZ2FZQmUvS3NydVk3dFVlYTZPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZCL04rNDdPUUlaMTJXUGwKKzVSQ05WY21FM1hsNk1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3UW0wNzJpQW0vd09YbmhDMFpuNjMyYVVxSlpFU01OZnkKKy9pQTlqbXBXcWZpRHEzbXBJbmkrbll6OEZKMEU1cU0yQWpFQXRGVDZVMDY2QjRqR3Z1SzJ1TURjUDhJSHhTbGUKK3BqSExPVmtPVjBNb1o2Q2tLNGVuUXU4cDBxbjFQcU5PcVNHVAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEU0RDQ0FzMmdBd0lCQWdJRUF4SHFvekFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRVd09ESTNNVEl6TWpNNVdoY05NelV3T0RJM01USXpNak01V2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREV4TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVFRlN3bW5vSEYrY0Z2dnpOR204V3JXejdEamE3S0ZWc2lTWWVaekU5U3ZuOUFkdUxxYmZDCitoaGxVRi9KbnRpdVdnbjVMSzZaM0lUSFBFZzlEZ0NhLzNLT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGSkYzUExob0pPSEJsVW50Citpc0V6M01hbk5wdUZNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhUUF3WmdJeEFQanh6VGxoUHhsZW9RRTlJR2FFWFdQNXc0T2pDK1p3CisyYWFTaytmNDZoOE80RlpLM0NzZjFYeklvYTB0TEc0TzN3SXhBTHNzcXYxUGVNMHJvdHpXUlRqVEY0Y0o5R2ZYCitUdlNIT05ua1p5aWlPeE1KR2dqUG1XNmZSWnNoV1JPSzdlVTd1dz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMTIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSekNDQXMyZ0F3SUJBZ0lFS0plYTRqQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVFl3TlRFeE1UTTFOekF5V2hjTk16WXdOVEV4TVRNMU56QXlXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERXlNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRVlxTDNNQ1RQV25ZL3pSS3hFN21WVTk5RmVvWmNXWG9TdDhjQ04vV2Y0blQxNC9pemZVTE0KK1JHaGlPbmpDQnQ1QlRyaDB5dVRFWTFGR2Q3SVpKam9obzZPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZGVXU0V1R0eUdteTlxTmUKKzdhS0VVU2xMSDMxOE1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3VVJJclMyRWdnOC9jaDNOeVh4TlJSQ1RxamhCMHova3QKK3hvMkhjWVpHUXFRcm50Wkcxakc1UWUvR2tWVy9INWlFQWpFQXN3VWF0MUlON2k5UXY0UzdHcHd4MmRpdUJFZEcKK1BXd0hzTjhpdDl3dWJsVW5TTmJjWHAvbUdFZUhhanptb0xvZAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDEzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUmpDQ0FzMmdBd0lCQWdJRVg4UXE5ekFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRZd05URXhNVE0xTnpVNVdoY05Nell3TlRFeE1UTTFOelU1V2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREV6TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVaMEFZbXlzbzZRUVVmVFVtSldZQ2ZjL1VMZ1BDMXpaYUpsRmVmV0FKZDVWV25XWVMxSFRMCis0MzNqUjdFNzh5aXlRcU1heXg2Q1dzdjVlcENZbDVrdGlhT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGQUhaSm1DZ0dyZUszQTV4Cit0STR5Z0FXSU82YU1NQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURad0F3WkFJd1ZOV29uWUlBbGFkQ1VQWVExMjVjYmdocG5YMncwdDYvCit0TENTRzJ1a0UvS3FObHNyVnU2NVNXL3k1Rk1Pc3N3Z0FqQTF0R2pVTTF4alFwNS9LVkwxZEx5RUN3cHBWN0U0CitQSDBERTJ1dzE1bGlvd1VzTVMwWE8vMk5yZ3VJOUhMZzBGRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAxNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJ6Q0NBczJnQXdJQkFnSUVjNkw3WURBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UWXdPREF5TVRNMU5EVXpXaGNOTXpZd09EQXlNVE0xTkRVeldqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURFMk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFM3czaG9TSGJ2ZDltVHl4ODhrNjIrZVg2ZmY3VXo0WG5Ua1FodHpRRHlKL2NRdTZkRHFtNQoreGdjWk9WMHJzbGZVbzRsd0FsQzBjdVhUQkE5a29oWEQ2YU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkdOVFdiQzNmOVg4UVNETAoreFNDd2xYV0traUlITUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EYUFBd1pRSXdjdmxXVDFvTlhHMWMyeWJ3WitzVHhDQnVkbERRa1c0NQorTUpJV1FLdFgvckFKNC92RHJMNGFSSloxVmFHVFNCcm5BakVBcjFRT212VkZrUnFVbEZrQW42dXdFMjBSWkhhaQorbUZPYSt1QVVOb1F4S3RDRG9CWUN1ZzZTc3FBQWtFYmU5b2xyCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMTcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSakNDQXMyZ0F3SUJBZ0lFS3MrTGRUQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVFl3T0RBeU1UTTFOVEUzV2hjTk16WXdPREF5TVRNMU5URTNXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERTNNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRW1wUUgrOG5NMWNDSFJvSkFJdjhGcGRTQkxZSy9DN09UYkJrWVNBVEp2N3dGZ2xvcE9VejEKK0J2NVpZMy9zektLYWdXSjV2UjBkNFlIY2JVZzM3ZDZPOHFPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZGNm42S3JOTEc5WVIzUksKKzZXREJwNDlHYjkzZk1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3VVUvNVpneDU4TUxGbnZJcVdHRnhGNi8vN1R5TGtycEUKK3d5Yk1EaFI1QUlLbmI2b1dHVmNPQVh1MW5KT3RiL3REQWpCdkR3Y2wvQ2NhNmpqR3JDR1FzS1hpcmpyS3lFN3oKK0ZQZ1ZueTlpSGRGenFwWEZmWmpEQ2NiQXhNb3hTSmJRcjgwPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDE4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRVlmd2JpakFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRZd09EQXlNVE0xTlRNM1doY05Nell3T0RBeU1UTTFOVE0zV2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREU0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVMaEVQemN5eFJwVHhaWDZVTzVTYkJrbm5wRnR2WnJmdFpoeVpRN0pNRGwzVHpuR3N5ZTFKCit4YThQZ0kwYXo4S2M1WHBTMWZJNkVSZnp5Tjd6YmRFMDFLT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGSS9TZHBIMkZNOFQ1WWsxCittbWcvOUNKSzFrQ0lNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJd1ErSFR3V291cldZOUE0VExQTE5VbFIyVFhPNE9BUGF0CitxRjVFV1Z6U2k5OGN6dmZuRjR3U3BqR0lxSlo5Z2FxZUFqRUF6Sm5QMlpXcjB2K1FYWFR1T1FwQU9FNVJ0MmxtCitET0RiL1JUcG00Y3A2QU9Fc2N5NjluVGhPeGhkb05yQnpaQS8KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAxOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJqQ0NBczJnQXdJQkFnSUVHU2lybnpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UWXdPREF5TVRNMU5qQTJXaGNOTXpZd09EQXlNVE0xTmpBMldqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURFNU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFTzRsa3ZGdjlpSDJoUVZqY2xuMXBpeGtmNUczRlJsSUxnb0V3ei9TZ3ZnUzdSb0l0Nkl3QgorYkc0VS94MHY3aTcxVFd0Qm9IaGxVZGJPSEZSaHJhWHFpNk9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRk5ZVnBVMGluNXpHRXBJUgoreU8wMjdtNHh2QkNBTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EWndBd1pBSXdTd0xhZjkyOTViNUh4WkNkU1UwRnlVOW00d1NlV3VMZworZ1NPVC9JM0lTSUhvLzVxd2pDVm14S2N3QlEvaUtrTVFBakJHU0VPUGJXbUpBbW9OdWc0cG8vK0E1ajhBQmdXeQorZ3p6eXpDaWxiYzZDUVl0UTZ2WDVyTXU4dFZNelNLL0NSMnc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSekNDQXMyZ0F3SUJBZ0lFQ2JtOFhEQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXpPREF5V2hjTk16Y3dNekl4TVRNek9EQXlXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESXdNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRXpLVG43blZ6UWUyQWRNZGc5cXhaejBRTCsrVEdjZ0EvcmpCVnZNVzBlRVJsUGtacVhwZUgKKzhnZkJiRUpzaDkrR2JiaTVBL2JDdzhWMXVJRzV4ZG0yTWFPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZBcU1GM1ptZk82WWhYYU4KK3JFQWVBZ3VZVjJGak1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3YitJR2xBaEZnb3RIeXMvbSs2U1dFM25ya3EzVEY4QkIKK0dSK1JWVHdSM0JOUTJxaUV5M3J3cmxpaFExaG9jaHNsQWpFQXBscDUxZG5kS0k4NHRoODJBL2VjL1BwWHk3UTgKK1lXZy90OFpQcTZFblNEaVZBRDFiYThKQTZmYmprNzhpOFpPVQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDIyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRWVCTGNoakFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRjd016SXhNVE16T1RBM1doY05NemN3TXpJeE1UTXpPVEEzV2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREl5TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUV0KzVTUGR4dmFXSEFVS3V2MGd0aWE3ZGJJUVNhVnNsQjNhcUhremhmUzE5MzBQK0ZaQ21wCitUVmJJeFhrRFR6YStXd3Ryb2ZpNkl2K05DblFCc2xKdS9xT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGSXpINHdCOXd4OC9KME9GCit5ekNIa3ptYjFwMGJNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJeEFKUGVPTUpjMGEzSkQwQkhQYkxwaEZITVhsejhjZDU3Cis1YUUxc0ZuVTNEWVNrYXNLY1pMcy9VQ0pOcFBKNDRqUi93SXdKMGdidUwrclNRNkRzQmtKWnZCeXlJUTJid0kwCiszSW5JajRyaGxYT0NxQ2NzZ1NROTNvRStaNHY3clRQam05SEkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAyMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFNEQ0NBczJnQXdJQkFnSUVMejlzbXpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UY3dNekl4TVRNek9UUXhXaGNOTXpjd016SXhNVE16T1RReFdqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURJek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFQ2hDeXhEa1E1Z3FQbmIwcnhqSEMwSjFDVllTNUVvRDNONWhZaWJSTzlDejd6WTFyVG1JZAorOTlocUxSZVNHd3AxTVRGMzNwdVI3aU1obDlKOW1vb01LcU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkpWR0RGQThibkNST1hRMgorSUpXRFlMVVpMRERhTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EYVFBd1pnSXhBTjBzbTlyTTA5TjdubHM2NEpVTnQrb1p3NStMYkdqNQora01RdHY1ZUNlVGY0OCtzaHV4ZzViTG84ZXhWdm8rSGZ3QUl4QUwwMGMzUTIrSFpkYVZ4eHdKOHhUSEhZaDBzcQorU0Z4RjdLbGY2WG0zWWRVYUQ3R3Y2elpuZW51dm1CblhhbmxQMnc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDI0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRVptdjhzREFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRjd016SXhNVE0wTURFd1doY05NemN3TXpJeE1UTTBNREV3V2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNREkwTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUUzTjJpZlZJMTQ3djlPYjQ1TmdZSU94L0FWWXRpTmxCT2VxZGdIRGt2ckdha0cwN3hMbzkrCitvcWdlVDVVUmJzMW5GNERYY0VMSGRoYWJKY3paSGc5MXNhT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGRzM4NU5BY044TUxyRWVyCit5S29MemdXbjVGZmdNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJeEFJK2pINzhISzgxL2wzWS9VbFRrVFZRM3FlZHZTdkxvCitDZ3pvdVQ0cnRRd3NvNkVMSkdtV0dHSHB5M1lHKzRlcnZBSXdXbzlBNjIvOFJBcGdIUDA3ZDM2RVFpZ1k2b0E2CitOdmpHVEt3NGdVMzJRRnRwakZielg4dFRPa3RtVExCWTBhSTgKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAyNQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJqQ0NBczJnQXdJQkFnSUVIWmlNeFRBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UY3dNekl4TVRNME1EUTFXaGNOTXpjd016SXhNVE0wTURRMVdqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURJMU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFbVdlNGhlZU1kNzFLdjhLeXhxRkN1RExwSkhBMENLQ0hVbGZZNnRGMzk3Ti9zZGNIMU1NeQorYVZPZ1pTcGxkcjUzRXZCaGJRVmJ0WGVQWkNRVEJiMkNzNk9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkp3a3RzaTJSYTgxYjFaNQoreVVnclpmRG1sb2pJTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EWndBd1pBSXdmVDZad3VNWlhwNXdNcHhWSTRQam9lMnhIL0srM0tReQorUmhKMVJZbzgvdHdkWVhiSUVpQk9xa0lCT1Z1aEdqd2tBakExS0VxdXlRRWlsNld4MTEwaGE1V3I4c1pzTG5nWgorMkhaZFFUMGptWncvaVdoVGZCYmVuUmF0elh5VDlDbnQraWs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMjYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURTRENDQXMyZ0F3SUJBZ0lFVk1VYzJqQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTTBNVEV4V2hjTk16Y3dNekl4TVRNME1URXhXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESTJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRTBnNFJvbStTSjZ3QXJBVzk0Y04yT0wyZGcrbzVPT1Y3YVlPREpIZVk4NXdFU29jMCtDUW4KKzBjQkdmdXNKZzVHV1dLMzN5RDRhYy9WMVJxWmR2L01EMjZPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZESEZ6a3lUTEdHT09ScUUKK0lQNWV4clJ4UnIrTE1BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRGFRQXdaZ0l4QUlWQUJ4bnNibWpnakpscHN0K1ZhWkpucDZrUzRwVHMKK2krcEJvcytHN1ZiempGNkxzeHVSN3NmY1dkbW1ZTGMxTlFJeEFNWk82YVh4eW8xS080UEZ6TWJ4c2M0MjNDNFMKKzFxRXhLODA5eEJ0aDJiNVRhdUtESGZmaVowbHlKQ3RrdjNja1ZnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAyOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFJqQ0NBczJnQXdJQkFnSUVReDQ5QkRBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UY3dPREl4TVRJME9USXhXaGNOTXpjd09ESXhNVEkwT1RJeFdqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURJNU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFTXVJQUNpa0hlaXgvNnJVOUhmTjFUMzBKcXo2SUdZSmtZbWRQa0V3QXJJdmtNZWlLalE5eAorbmpRSnk2RElpa1JsUnBlWm1xQndVUC9JeUZSQ2Z2V0FiYU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRk85cjJqS2Q4eUxBWmE0UAorMmJvRFprWEFld01CTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EWndBd1pBSXdOL3M2WVJTMFpTS2krdTRmTnFoQWJtbU9XZzI0QXJ4OQorMkVtYklNUkVVUVRUNlVJbEltcTNMOXZtdDBpU3FyQW5BakE1YVA1SjhXdzEwVmJhM1hqaTE5QmQvTkFEVGtnVgorUVQ4TTFUK3N1UjEvTUZYTUZuVGN4MWpQRGNPMUhXUzQwMFk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBFQ0MgTWFudWZhY3R1cmluZyBDQSAwMzAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURSakNDQXMyZ0F3SUJBZ0lFZWtyTkdUQUtCZ2dxaGtqT1BRUURBekIzTVFzd0NRWURWUVFHRXdKRVJURWgKK01COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUFVGUkoKK1IwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZ1JVTkQKK0lGSnZiM1FnUTBFd0hoY05NVGN3T0RJeE1USTFOREExV2hjTk16Y3dPREl4TVRJMU5EQTFXakNCZ3pFTE1Ba0cKK0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYU1CZ0cKK0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UVZFbEgKK1FTaFVUU2tnUlVORElFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ETXdNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkkKK3pqMERBUWNEUWdBRXZpQ3JEVzQvRzZCQmh4ZDlQQ0VPRy8vT1hMK05lQVY1RHJiWmlZL0ppazVkbDBwVk13eE4KKzdQQXYxeTJ2Y04wZTJpN2E2VkdBVURUMHkxUHhsS1F6QXFPQ0FUZ3dnZ0UwTUZjR0NDc0dBUVVGQndFQkJFc3cKK1NUQkhCZ2dyQmdFRkJRY3dBb1k3YUhSMGNEb3ZMM0JyYVM1cGJtWnBibVZ2Ymk1amIyMHZUM0IwYVdkaFJXTmoKK1VtOXZkRU5CTDA5d2RHbG5ZVVZqWTFKdmIzUkRRUzVqY25Rd0hRWURWUjBPQkJZRUZDV2VYTHhQQTA4Y3JlK2MKKzQrU09OQzRrdDJrc01BNEdBMVVkRHdFQi93UUVBd0lBQmpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1Fd0cKK0ExVWRId1JGTUVNd1FhQS9vRDJHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmoKK1kxSnZiM1JEUVM5UGNIUnBaMkZGWTJOU2IyOTBRMEV1WTNKc01CVUdBMVVkSUFRT01Bd3dDZ1lJS29JVUFFUUIKK0ZBRXdId1lEVlIwakJCZ3dGb0FVdEJpRnlFcEt4Uko2OGtBNTNzVDFpeDUrU3RFd0VBWURWUjBsQkFrd0J3WUYKK1o0RUZDQUV3Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3WWxkK3Y4c0U4TTkzbENtK00wNkxDR0hpOUUrNll2cE0KK09sNE56RXE2VlBCbTJ4S3FtZFB4MTJpcW1QQU5XWGRUQWpCNUJCN0gzYVNYdXZpZHhObGYzeTdTYWFtVjVEcHMKK1J0MUMydHJlaDRHNU9nTlUyZHMvQ2haSFZwQVk0WWxmTUhFPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDMzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRU1YZGRMakFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRjd09ESXhNVEkxTkRRMFdoY05NemN3T0RJeE1USTFORFEwV2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNRE16TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVqbkloZStBV3N6SkNDU2dJcDMzRTdKWnh6dHFGVWxkSTFsSWtWYVBHRlFTdjRhSWVFbmgyCitzMGEyeUpxRThiME9BME9yeThGaGVoKytMYi9RdnhqT1BxT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGQkF5ZUhtdjhxY0ZRT0JmCitWUU9lTVlWSXZpV1BNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJeEFKOUh2QVVQNXZ3Ukp1QjVKOFVYNHBwSHNFU0xJc2NPCitzUmthMVIyNk1PNGdPUWhtaE1kMzEzMi9LM2dtMGl4Uit3SXdhWEdYM2VlTzZXeC9RRmhGTy9yWmdodytrVUpLCitMbXpzejFHNDR1RHYxWkV1dWVCR0RYOTdWcG9uczhUUnhUaXoKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIEVDQyBNYW51ZmFjdHVyaW5nIENBIDAzNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFNEQ0NBczJnQXdJQkFnSUVhS1B0UXpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UY3dPREl4TVRJMU5URXhXaGNOTXpjd09ESXhNVEkxTlRFeFdqQ0JnekVMTUFrRworQTFVRUJoTUNSRVV4SVRBZkJnTlZCQW9NR0VsdVptbHVaVzl1SUZSbFkyaHViMnh2WjJsbGN5QkJSekVhTUJnRworQTFVRUN3d1JUMUJVU1VkQktGUk5LU0JVVUUweUxqQXhOVEF6QmdOVkJBTU1MRWx1Wm1sdVpXOXVJRTlRVkVsSAorUVNoVVRTa2dSVU5ESUUxaGJuVm1ZV04wZFhKcGJtY2dRMEVnTURNME1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFTEVPU2tUY3BubWRWV3ArVWZDOFhwa0V1alFyVnBRdU9rVWRheEp4NFlWSUxCeEg2ZXVIcQorQVpTbzlOTWZ2TkhUYTVRTE9tMW0zRFFKTGF4V1ZmOUp4Nk9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoUldOagorVW05dmRFTkJMMDl3ZEdsbllVVmpZMUp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkdTZHBiZGhuNzNUbHRudworNkcyMWNXNjhybmVjTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVVWagorWTFKdmIzUkRRUzlQY0hScFoyRkZZMk5TYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVV0QmlGeUVwS3hSSjY4a0E1M3NUMWl4NStTdEV3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdDZ1lJS29aSXpqMEVBd01EYVFBd1pnSXhBSjVuQnA2N3o5WmhSLyt4QWQ4UU1KT2lRMmJ5UlZ5YwordXhsUmtDMSs1NTFaL3B6ZGRRejU0SVhPa3JjeGpoUGs4Z0l4QU44NmJoMVFwQ3VuN2ZZenJ4Q254a1dycm9BLworUlZ3cndLSGJ0bXUvWWdVbHFFTjBXS3VEZUl3Tzc3YVk5U0tFcWc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgRUNDIE1hbnVmYWN0dXJpbmcgQ0EgMDM1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEUnpDQ0FzMmdBd0lCQWdJRUg5QjlXREFLQmdncWhrak9QUVFEQXpCM01Rc3dDUVlEVlFRR0V3SkVSVEVoCitNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlBVRlJKCitSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2dSVU5ECitJRkp2YjNRZ1EwRXdIaGNOTVRjd09ESXhNVEkxTlRNM1doY05NemN3T0RJeE1USTFOVE0zV2pDQmd6RUxNQWtHCitBMVVFQmhNQ1JFVXhJVEFmQmdOVkJBb01HRWx1Wm1sdVpXOXVJRlJsWTJodWIyeHZaMmxsY3lCQlJ6RWFNQmdHCitBMVVFQ3d3UlQxQlVTVWRCS0ZSTktTQlVVRTB5TGpBeE5UQXpCZ05WQkFNTUxFbHVabWx1Wlc5dUlFOVFWRWxICitRU2hVVFNrZ1JVTkRJRTFoYm5WbVlXTjBkWEpwYm1jZ1EwRWdNRE0xTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJCit6ajBEQVFjRFFnQUVJbktZSEx4dkpjclluODhMa1Vsc3c1cXhiL3RadDZJUG9kdHp3eHFIeHJwRElqbEVQcXJVCit5c3ExMy9nUTBnWlFNUkpYNllhaUU2amdobXZQSkRGWWtxT0NBVGd3Z2dFME1GY0dDQ3NHQVFVRkJ3RUJCRXN3CitTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdmJpNWpiMjB2VDNCMGFXZGhSV05qCitVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwT0JCWUVGRFpaanlMc2hNUEU5a0RTCitIQlo5QzVFVGU1Q2tNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNRXdHCitBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bGIyNHVZMjl0TDA5d2RHbG5ZVVZqCitZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZElBUU9NQXd3Q2dZSUtvSVVBRVFCCitGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1K1N0RXdFQVlEVlIwbEJBa3dCd1lGCitaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJd0Ftek8xQzhnaW1aY0ZuVjZLMHd2dGRsYWprTml3KzF5Cis5eDNKM2k1NDdodkd2b2FDS205blRrY2F4Y1MxRmlTbEFqRUF1L3A5K1JKS2hHVXpMbTduTVhmMVlxdktrQzdHCiswdmp3S1FFb3RueFJXdkd2RCttM1BWN3NKdnlyWUJEVkRWTVAKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVWdVJvcXpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVE13TnpJNU1EZ3hNVFF3V2hjTk16TXdOekk1TURneE1UUXdXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQXdNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbFQwL3NTUVJUUHhtMmpzM09heVdxelpRWkd5eVYyNTZwQ0tKWmJKZworWUh5THpPamx3WnZlbmFleEk0cFBuOGFldGwydjAxb25zRlNxc29BRDM3VVcyRnRmWDM0UE0xRkF0TDZNWUxwWgorcDQvQjIvOENIbFhpM2ZQTkQzZkJmUmFNQ0hOeTJKYlRXQjlkVWFhQUhqU0w3RGxPRFlNZVdyNTk0L3diZkRleAorL3gxYjJBMEhlS0ZncUlhcFQwdVlvNk1MRnRRT3RkUmR5ZjBvY3F6QzZ3SnJIWEE4N3haaWxLcHd1R21HK2hCTQorSi9FdWdrazNyWkxTV0ZHVng3cXZhSzFZN3B1cm5NWEcrL2JrQnlScGtXSlBiSDhFODY3RERyTU5tOHlTaDB4ZAorN3VneDNoK0JNRTNKeGFwOHZOem1BNzRvSGxsdUNUbkljWXVsTlE2aW80alR3d0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVWFSUnF3OCt6Wmx4NjU0RUJ6S1hCUWxYS0s4Z3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQW5LR0lxRFFGWWxEaQorekNQdElVcTRwWUJwcXJsSUdDSUszQ2ZjZmJnYzdIT3BvVDI4TXBpZlpmMFNqaGRpWE52MHMzdXI1MXRobnNTagordDFNME03T0IxTFA1OGNyQ0RQTUFKSGZhZkhsRVVDVGtXZjlQRDU3OFlJWWVwWHBIWHZYSkpHbGVqSzQ5cjNWLworSFRkTksxRTZ4aHJHUXRVSHdhZjJmK2ZUMEJuVTVrK2NkdE9uNVNHNzZONVdwL3dCWFJPVFdYOXVBZHhQZ04reQorayt1MjBGQ3MwT042ZG5ucDJkTXlFQURCbjN6QmdIcUdMeWE1b20zWktpM3NrckU5Wk9GL1AxeS9TWHZzWGNidworRFJMbXB0dnVLaVlnKytxSmh4QTNiRXJIZnZwbzJ1bnVxMUpvWnNETzk4Q0JsMGxxbDZiZXEySk5CWWVtVldpcworN1A1WUJTSjdvS1BiOC81c3VHSG41Z1lsSjZVZmNzSG1jOVFxa2kvWGJZUVBqR1hzcXRsZjljbkNpbXJ1ZEdPTQorenR2SVhxN2E0SDVLaGltMDI5cDBSaWZvYm11N1pianZyUTl2eHRaRGhETjZTcVFHaVpoc2kwalQ1QmlzakFZNgorWE1mWElGbUl0d0w4R0VGRU4yQTA0djZBZ1FmQklWUi95NytwYUlOUWRnTlo2cy91dExWWFJWanZGT1FPQmw2NQorOHJ3NmsrdVpNTUM1TGtTVFlxRlhyUm9ES0laTXBLRVpjUHNIUEUzTEh6UUJkK0VXR0FpVE9IUFZhdEJJaWdhbAorVjFNdEhPcFV2cHZpbndYajM2S1RONTJPcHZvRVFBZDRpeFc5QldTTC9kWE8xQk8vSG5YQzRBdkdjN0VBVnVMNQorZGxxZ1VvODI1R3F0NUJCbTNPT2x3VlRWWS9zYUJFcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVEaEQ0d0RBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVE13TnpJNU1EZ3hNek0yV2hjTk16TXdOekk1TURneE16TTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQXhNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMDZxb1VLQ1lrV0FYTUV0UDd2d2pOd2lFWVkraW1hbHppWTlxNXozOQorNlVsSjFBVUU4K2dzeERCVHhlWnpLZ3NEVzh6KzVJbzdVcFBETExOVFZ1UXRxWkRzakJmV2gxaUg0RmNRbTF5dAordHJTMk80SDV1bnRPOUhVWDl1R0hacFRzeFl0VGVyaVRmRU5uTFJzd2VuVGQyR0ovTk9wbDdXVytZSkNGcHZCbAorUTlGMFBIRi9OV1pyaCs4aitmRkowcDIrVlJ0MEUxSTJPNnY2bk01RklLNzdHMXJYQ3ZsMkk1dG1MczNHUzloagorUkVJM3djLzZzSThVdSttN2kxWHlNQWtRM20yVFl1Z29CekR1TVZEYlA5c1pjQVFTVnlKZXFjaUdMdmNOQWszTgorWTFJQW5xbzJyOXUyZmg2T1dBbTRkY2c2TWY4czlqRUhJd0hyK09CS1pmNXdUd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVXlJeDErd1luQy9mcUVrVDduQ1hmMGdtM3E4MHdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUxGL3AzdXRjZHBrbgorQml1OG56N284K245L3YyRjcwY2RlZWNFekpMM1ltWmlhcGJtZW9hczdYajFiY1ptbHl1Kyt0YTJ2Mjh4OXZ3WgorUm1aandxVkkzVmNzRUdYbllxQVRTTFdVSE8vY05JOFUyMEpFL3hlWGhPVjM2Wm5UamV3Qkp5WkdjWCtKMUo2NworWDlHa2Jrd1RPdmV3aEo5UEE2b0kvdVhZOE9RNDNQUlNaWkhFeEEzVHRudWNjdWxnQmhCR0pOT0NsTTVQZkx1ZgorRzNXd2FKRThlak03RGVOOFJTbXc1YnBhdU1iVXc1SjAvTnRkREFXQjI1dUlva0t6UVM3VVVMVlRSU2tTcVBqMAorL1lWNjZzRk9jNmk3bEdmWVljeFgxeGxMN3hlZ1c4N0l1eGRRV2U1ZFk4Q3pDTEM2dDVqV0t6TWROQno1dEtUYQordFg3M0dWSWNYOFd0aGE0Vm1aMXdvZnRqWUl6N29aNE5ZM0ZXUHhZeGxOR3J6WGo3NzVqbnhLaXB1WEZpQjhhbworcDJTRW5FdVloMXZ0VXFNbkgzNXh6SExWUWgxbWFnQVQ1N0grZUtDeDNkWjR5OC9iY2tzZjV1QWpySEJpenYzdworVC91ZGQxUEx1SjR6RXRmWFRDYU1WNnllU2hJOUZBbzFld09ERFBPeCtadUNuNElvdjNsN0lrWFZpVnVDVFdscgorWkpiNkNTaG5DdHpjZjBoc2ZYVmdLSmJZT1kzTXhJcFl1ODBINitRazFBNjJDT0NlY3BBQmlnQ1Fxd2p0dkpGdAorOGxMMEFKN2xvMG5ad1NTQmpCUWVjclovRTdiTTFWeENHZC9IY1piS0J6eDRQbitTbGE4ZVhOQnhENFROQlRqSgorYWRJbkgyUEJhVlp3eU5LaU11YWRlbnpPcldnMGs0dz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVmR29ZNmpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVE14TURBM01EZ3dOREEzV2hjTk16TXhNREEzTURnd05EQTNXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQXlNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBczNTY0FCanppbmkyZFVxaUduK2kyRW5pcG1hTUp6OXpLaGU1cVh2QQoreWgxa3AwZWtyVllyODlsUnEzam1JZU9kd0REKzNBeDc3QU5MSFJkQ0hGSWhwc016SHZsdFU3MzZ1bk5mbU81QQoraEFBeGNYTndFaSt1N0l4eVBNMnNxY2pQbTJhQ3FKb2lwaDluMnJJT3M2T0pEOU5iVjJtc2R4c0c0b24vMkU5VQorSEh2K1BnSGNnNk9xcU1vdGZvSTJYWXI5V1lXWGdsL3RwckU0Q2NwTTEzZld2WjBSUnlITmV4bFRnMzFzK1BKNgorYlhiZGYydzNPYUlzcFNCaThFQjRKdHdLYmhoalc2Q0h2bnEzeE0vMDVTajdyT1JNR2M5bFhhOTBKdXpqQXh0SAorUnppMkRiUlJBcGlRSFA4RENVdENSUUgxdlh3cTVPVXlKVlZWR2FEZ3NBeVVKd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVXd1OWtIREtjc0tueTZ1QkwreERKbTRuRFJoUXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQXNlNXFkaWdXY3poeAorSmNhaHhzYnVXek96bE1OUlBvNDJ6a1FtRU5uYU5rQmFDSVdGcVJVODJSRWxqdU4reVUvY0x1ZDAxc0tOMEtxVQorVXR5ZVREbk9kTlNXUEJDUjBWZlhneG9yNjhucDkwYkdwbEptaEZPQWFoVU05eUZkSXpHZnUvQWt6aWVsb2hucgorUENSd2x2Q2NDVmx2dU4rOXVvRmQvdk9pSU5SMDBFc245L0lUcERNSGdHSVcrZEl2b0RDbTNHdXU5UTlSYlBzbworQzQ2ZlBQTjdsZkVXN0J6eE0rYlNxQTJ4UjdOclRKOUhGTVZ4MEZnTTdEeDNhbWZMOWNCVWkydVp3U213RHRDTAorQU1qcURVaXUxTGl6eXp2bC92NEx4cEs0WmZKUWxiVlpyS1JjVzlVdXlXWU9HZ2Vna01KVFNkTk9aMmNERk94egorVDFtOVNDNHlGTm9QR2dPNnZBdWZ1SDN2OEJEQkl3QXZjK1YwemYxTDVYS2lEdlhqVTJ2Z3FjdXNubG95OExRSQorRXhoWm5MbzVGcmk0SWRqSnJsQ0ZTeXNnRWR3TEIyVjlOMTFnb3haYWtuUHNxZzErTU5KcXJiRnY1QkJQYWF3bworWnh4Z1JLbFQrYTJheEZRYzMrakEzc0MzekRackJUWmVIN0NLNE1QbmRCWVNyc1U1ZWRFNnlscmlwYVVpdk5DQgorVFE5Y0JIbzhsN0krN25lU2wxVjlVN2cyT1h0VUtFMUNjbFlmS0NlZHVSZmpYR1VYU3RJM3Q2NE1tdDVYcVJFaAorV0V4QzZsdjNVVEdZcmQwK1dZWVdjMzRlYlFQVGQrNzNPQTVMOTFMMEZFMjlGWmtVVWxmcG9rWHh2Q05SeTdNYQorQXd5d1VBZ0hPUmQ2eTJjWXNOYTlXQ3plQkU5Vnhjdz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVhc001RkRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFF4TVRJME1UVXpOekUyV2hjTk16UXhNVEkwTVRVek56RTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQXpNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdVVENVNMTFZZUm11eERqVDNjV1FiUlR5d1RXVVZGRTNFdXBKUVpqSgorOW12RmMyS2NqcFF2NnJwZGFUNEpDMzNQMU05aUpnckh3WU8wQVpsR2wyRmNGcFNOa2MvM0NXb01UVDlyT2R3UworL014bE5Ta3h3VHo2SUFZVVloNytwZDdUNDlOcFJSR1oxZE9NZnlPeFdnQTRDMGczRVAvY2lJdkEyY0NaOTVIZgorQVJEOU5odUcyREFFWUdOUlNIWTJkL094dSs3eXR6a0dGRmowaDFqbnZHTkpwV05DZjNDRzhhTmM1Z0pBZHVNcgorV2NhTUhiKzZmV0V5c2crK0YyRkxhdjgxMysvNjFGcXZTclVNc1FnMGxwRTE2S0JBNVFDMldjci9rTFpHVlZHYwordUFMdGdKL2JuZDhYZ0V2N1c4V0cranlibFVlK2hrWldteFlsdUhTM3lKZVJid0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVVFMaG9LNDBZUlFvckJvU2RtMXpaYjB6ZDlMNHdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWVVenJzR3Ezb1FPVAorbUY3ZzcxVHRNTW5kd1B4Z1p2YUI0YkFjN2ROZXR0bjVZYzF1c2lrRVJmdkp1NC9pQnMvVGRsNno2VG9rTys2VgorSnVCYjZQRFY3ZjVNRmZmZmVUaHJhUENUZURjeVlCelFSR25vQ3hjOEtmODFaSlQwNGVmOENRa2tmdVpIVzFwTworK0hITTFaZkZmTmROVGF5MWg4M3gxbGcxVTBLbmxtSjVLQ1ZGaUI5NG93cjl0NWNVb2lTYkFzUGNwcUNyV2N6bworUnNnMWFUcG9rd0k4WTQ1bHFndDBTeEVtUXcyUElBRWpIRzJHUWNMQkRlSTBjN2NLNU9NRWpTTVhTdEpIbU5icAordTRSSFh6ZCs0N25DRDJrR1Y4Qng1UW5LOHFEVkFGQWUvVVREUWk1bVR0REZSTDM2Tm5zN2p6OFVTZW11K2J3OQorbDI0UE43M3JLY0Iyd05GMi9vRlRMUEhrZFlmVEtZR1hHMWcyWmtEY1RBRU5TT3EzZmNUZkF1eUhRb3pCd1lIRworR0d5eVBIeTZLdkxrcU1RdXFlRHYwUXhHT3RFKzZjZWRGTVAyRDliTWF1alIzODltU203REU2WXlOUUNsUlc3dworSjErck5ZdU4ydkVydkI5NmlyMXpsalhxMHlNeHJtNW5UZWlBVDRwNWVvRnFvZVNZRGJGbGp0L2YrUGViUkVpTworbkpJeTRmZHZLbEhBZjcwZ1BkWXBZaXBjNG9UWnhMZVdqRFF4UkZGQkRGcm5MZGxQU2c2elNMMlEzQU5BRUkzeQorTXRIYUVhVTB3YmFCdmV6eXpNVUhJNW5MbllGTCtRUlA0TjJPRk5JL2VqQmFFcG1JWHpmNisvZUY0ME1OTEh1UgorOS9COTNRK2hwdzhPNlhaN3F4Njk3SSs1K3NtTGxQUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVJZS9KS1RBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFF4TVRJME1UVXpPVEUyV2hjTk16UXhNVEkwTVRVek9URTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTBNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBaEZBRWFtRStBR3RLbHBDRFUxSUxVM05VVmprclUyTWlEK1JjWU00NAorLyt0NkhvOTBsVkxJYXJ3cGpVQzlFNnNrWkR3U2ZqREZ2MXlSK3hKNm5uZkswNVBYNkNjVzRJNnhJWXNQTEVTUQorUGU5ODhVZzlGb1R2cWdRL3l5KzVSdTE2eEZOV1dDQ0YxS2dNd3l4Z2FYMmhua1VVN2FPSVZQRDFwSFMvMTdUTgorNkYyemw0Nk9MOHFYOXo5eUhpK0RSdGpXWnJRaFFRNmx2aStoVStmZ3RGS0dVVWRaTC9qeVpYQUxWTXZUdDloTworbzdIUEpEYnpBSWZDWTVUWlFCeVRiVXdOKzYxdHdQdzNtOFF6Tkk3OUdsRERld0QyblZ6b21ESlV2VjAyRGJyYgorZStOaUxuWi9qWmNIeldtRjBFUnFYTS9zTm5zV3hTeDdFQ1FWOW1iNExQc2NDd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVUpqdDBUWVZCSzY1dUUrbEtVOEkxR0Z1azd1d3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQU5ZNDlpMS8rNlM5SgorVlMveWFIZnhuNDl1VkZNd0pOZU03RXo2c0FOTXhaNlVsU1c1dHoxeGN3Qm85eXNWaXl0OVc0NU1tS2JYejBqegorSFFCVHVxM2pxK2FEallKQXRwdmxRb3FBUlNhMFA2aFhQTVlYWExhczd6L0R3VWVXb21WK2lZY3pHMDY3U3dzaAoralE0V0t0ZzNvNGY4MlptZDM5b0pwWWdJYkpKUEM3S3lhTnVEaW9uUnc1ZmlWZmdFUFJtVXNCMWpRR1d6L2QvcgorWVdqRlU2enI2a3FyVm9vc3RHbHM2UFh4ZnlZY3c5aWlNc0hXZ3Nla3lXM3ErNG1EUlNhTEpNeWl4dzFWd2Z5MAorVG1ZanJ3ZzZoaTkrSnJJSnBuRkNiOGFDalp2WjBKWmordFdnakdubXcwYWNlajJTRUZJdE1CejBVSFFOWG4wagorQkxWWWZ1OVJ3dWxxRldkNTJwdW1KVkhFQ29ERVFuOTNNZHppcHBZQXFFRTlrYUVsNXd0OGNkKzl1UkNjQnV5MgorT1BsZUtYV3Z1WUVFanFIN1NiQnhIaVp1cWRIWnZGa2ZSZFNOYzFkVzdzS0U2TjRVWitiOCtVb0NoYTJwVXpFMgoreVllRTNka3YvRTFLKzZ1cTM4RmU0Mkl6MjJobFpyRWVBM2FHckhvcE9GdlVZMk1PTThrc2REQndRWjVZekJRNAorSGNENVJIcnZzWVVia2NQbm5WVmtOK004SUtKKzZMVm93eDNFRyt5dHpWaXhIclNWSjkxb29HOW9jRDJ2eFpBVQorYlk4Z0x1Z1dhUmJPWmtnWWFIVGo0UmpxM1p4dUVQWEVES3JTbTduVWdNTWxxNUJEWWhWekJXWHJKdHlZSXYzNworUUhhRDBBZldHeCtDaVBidFhXbXZraEMrUUx6WW5XST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwNQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVXUnhaUGpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFF4TVRJME1UVXpPVFV5V2hjTk16UXhNVEkwTVRVek9UVXlXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTFNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbGZ4ek9hZzlsYnFEc3pFSk9OZVVGdUk3aTBhaTZrbllsR3lhaUFpVgora3hUM2RRMVJOSWt5cHhheXJac0o3a29zUTJBdFM4OFl6UVVwa3E2aUJxQU5reUg2SGVkWHRaZzVwbktZVXJ0NQorYWxJY1R4YjVTUWk2c3dva2tCdURTK0Z6VysvZTd0dy9Hd2hHVzVtYmFDQVZURTBLQi9lZmU1UkdrYnBCWlVMQQorUTVCSUlBSmR3eWxHcS9CalBCTEVsTmE1TDRXTGJLSHNFckcxVFhLakczSngwUGNTSXBYTnhlK1FPdjh3ZlQ4QQorSWZFdGxhVzVrcm9LcGxPL2RkOTVnQ0RwR3JZbUtJMmpFcTBoN1lSL0hCek5GbkI0MXYvUUhtVVltT3A5S282NgorNkJublA1bEVuSzRXZEdtY2VYK25RWDl1b1hrUVF4dktyVWJEcXZjWkIzL3Rqd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVUtmNXBZdzZGT2t6VFYxK0VPU3FiN1MxK2pLSXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUJ2UDlUQlA1STNtRQorTjNreDBOSlZmMXVnRFdMVjltV3p3QzFzTTZwVEgxaTdWNkd2RDB0TUZpNmhDbnd1ZzREVVpWNndDT2J5czJhWQorTmhwN2tBcVNzNnZ6Qlo5dEZNZG9pWFg4b3pxQ3gxU29qZ1BEcVhkckJzalkvdjhDT0JLZkR1S3VWWTJTbG1nQgorb0U3bXNGRlRJaG0yN1NxUFM3by91Mm95UUN2SVZqTXQ2dXptWjFsVkl4dGpDRERiM1BzMVh3cDBnMkJBSnIyeQorLzJFSkI1V25SVTFGRzByakcrR1hNTVd4Uk1aYjZVVUZmT3VXZG91ZW1IQmZ2WnFlc0FWREJScWQ1SFlYOXhLRworNkFibDRZeGN2SlVZU1B3d2hBMXlzeFBuV0xRbXRKVzl2dExmdWFvUGFkREVUd21aZFB6NjllUys1TWZWbVZOaQorZXMzMzgvQXlnd2licEEyZzR5bTBsZTBuVEt5UFNKRGtESHRqZFFLUUx4S0JDWk5RTXp1em41RmRqdVU5VG1weAorOTd0TkVnWWJLY2pRMW9PRDBFamk0aWszRVZSdWxiOFh2WThERDdTWHpudEhUUkhmbVdSNTJBUXVYMDZHaHZmVworM0VOaUNRUHRncm85anM4c25PRDJDQ3ZLT3AxZVc0ZVQ2L3QvNS9QYTBZY2J2Y0JCeko1VWsrUWV0YXlqTmgzeAorb2pUbU5WRnlYbkw4aWh0NVM1TWgyZjQyUlBoTXBOK2xOQlFyTng2M3JMOUlSdUM3ZlA1TVdIMElabDBuZ3ZXOQorMHRjU0luRnFkdzd1YnRleTZPMkRlZVlRWnM1dXAzaGMyRElTbkhvaHlwZ1NXMWdxa3NMMm9HNG1GL0ZKTzZpbworaDQyanJXeXR6Rzl6UFhKMHk4YXZpSGFxRGd6N3FKUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVFRWpwVXpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFF4TVRJME1UVTBNREkxV2hjTk16UXhNVEkwTVRVME1ESTFXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTJNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBa2pYekV2eGRva3FRRXZkbkw3bXNzSjhmSWtCWUlsZVlIallwQ1lNeQorelFHektYakE4RzgxQTR0ajZ6VElxOGhmRUNuTTRjYWZEb0p3L1J5cHZiSXBkQkJsZUNiWnBtNUNZVUtMQjR6WQorYWYwcnU1S1FRYVF3RHpZYURMQTQ2NmwzOTRzOXI0L2h0TnA2RkVUTUFzdVVPbWVmRmZpeWZlL3A4emVPQjRXYQorSTJSZWd0UmZxWnc0UDZ2N3pveUhTTHE3ejQ0QkZ3dVFiNkpxMU1uVTA0TlQ0OWRwQUdhYnZPSXljSlBXc3ZsaAorZzN3blNXdGFwTzM3ZFlaeFlrVWRSbUwvaWhwNDlkM1FCWWx2VW5aQ1ZRZUZFQStYL3c1NkxBTnRNSkgvOERReAorR3JkTW5ONzhUdzEreWpvcW13OXJscjBxbmVoZ2k1YkJQbnoxV0I1cmJFUi80UUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVXgrNGRuUGFpa2FCdVQxdUl6ckpjcnVFdmduc3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVA2ckthQkd2OUF2bwora2pFWnZEeUJnYWp1WmhQY00zaUQzQWVCc2xVSW1TbnhYUG5sbTJveVVQdEV1bnJpUFU0UW1mb240UWVETXZQUworMnRpZzJHQW9rbURQbUZaeUJVUmFPcGMxdURhOHQ1VEVLeVpxVW8zc3Exbi9INXg0VkJKM3djN1Z6ZlVaNTFQdworTjVzWXFPZnR1STBSNlZubEZlVWdjZTRqYmY4bk1FU21QVUFGcXhZa0Q2a3E3ZzU3VUdRVC9OYVRGYVVJdWdGWAorTCs4UnhDWEVoWllEUWdXeVFUUUZsQkI0OXhaTWRxUGJuTUkwOE5wNWdGVlhlbzRIaWdXNnBaTm9oQkRndDZjZworNU92T2ZQeXBFL2tOS2NXQ1pmaWhPSGpkeXJJLytGV2dUaHZ6Y1pZbUxYMURZemlOcWRaT3N5WnVzaFlBem54WgorckE2SHVDaDAxdk45ekdyYkQ4cSsySHQzQ0ZDdTlmZktjU3FEUnJjNHhXdWx5eXNEY09XOHZQZXFUdUFsRjFIMgorczcwaXdFV0Z2TW14Ujk0M2lCci81VE8yZWc2Z21aZGJWU0VreEtZbm9VMTBNdUFmYWpRZHkvUDdLSzROaG9lMgorVzg3aDNOTmdWaWNrRmZLSWRpR0ZSSHFidFZPeE1FdmZNcFp0SUFDMThsUDJzRjVpblNBaUx0RlJTa21VWEx3MAorZFY4R2NDcWFYd1lnYm11REhnRzhSbFlYT0Vra25NdFQ2TU94VTNvY1FiOTBIVEw4aG5xRUVWclZmd1N2RzFyYQoraEpxQkU1aTlSRkQ2dFRlRGw2WjROTkM5VXBZWFlLMXNsN0twM2V2RmFnbC95NlRMc3BtakMxL3pwMDNhWmVhVAorYUhWOUVSQXA1UC9YYVk2S3BiZ2RpcUhhczFnZEFaWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVKQ2U1dkRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFV3TkRJd01UVXlNek0yV2hjTk16VXdOREl3TVRVeU16TTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTNNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBaTNjeXRZblBQZ09GWDNkekVSd3h0dmo3c0o3L1p3QXlTZ3ZVYzIrMQora3ZQeEhxMGx4b2FMTmNEZW4wdE1hVVNjRWI4VGtnUktLOUhPT1Z3cE1tOEl6eFRyNHMzU0Z6azlkUVZTb3VOdAorcXFBcmdhZ1BWZnZnQWVHdy9remRRbzQyV1djVUNkSzVCU2F5bXY4SFFCSVVSNmQzekUxTzV1L2QxcFdhWW85eAorSXNtTGovUjFRMWtJN0tjTUYxTFdrU2ZPVWcrWXBaTytxTCttS1A3cXkxZmNmNE9ucWZkVnI0ajhka2NoQ3ArRAorai9hVWtzS2x6cldvRkZaSDVBeHNDWml1NDI0QTg4a1hIWGV2VnRxM3paOG5aZmFWdDRGRWd2M2RhRUhhU3plaQorMnoraTNsZE1Kc1czKzVYdzY4QXBHMkE0UFpIc2lSTFd6MGNoSnRINDVmakl6UUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVW5IMzFxUnc5U2J2bk40MUt1aEwvam5paTExd3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQW9VSzVVWkExUDFRcQorUXBBT0FBbHlrQzdFMit4OCtyamZ1YlJYOUJZc1pqT3VNV3RKQTVwYnRnbDB2aERRZDVsbXJVNkY2TTZIWFdpbAoreE9FcEowcnRUZ092RFJKTmVhVnpBc3J0akZvOTdtL0gybkFhQmsxRmxWT0luNmZMaXA3ZlJ1UHdLRzVtMTlFMworRjJEUEMzc3FsdFlIODJZYVNCSXRZRnJPV2JkeTZYekU5bDBDeWRNWUtOYmYzMytLQjZUK1dxZnJXMFRXV2xBUAorQXlseUc0RU43eWYrZXRXNFFZYkRPSUpLUHFlY1BrbXMyVWJWNlFXY0RvVkkxRGFSK3ZPVnZrYUxjQ1JPRFRVegorajNnYTlOVGVGQkU0dzlCVUV0bmdOTUsrbWFuN1d3QVBMdC9uenQ3L3V2M2hKUERVVlRkRkJKQitEaThJa2U0MAorbTR4QnJxcDV4c0hkYU1MNmNUbmpVdWtVWkl1YWNJaUxJajlCMkk1ajlLaCtZdFZheE8yM0ZrcXYwMDBmdjVCQgorTFFZQkVsZTAxdlZtMGVuZnVKYXdIS0lDemdHSUl5bGZ1SzYydXRkZ0dORmt4U0RWRDFsN0M1Zm8wdlB3Y1UyUQorN2orUkFnOG4xVVZ3WTVYVHo0Z252ejFxYnk5TGd3L2g3amZxc3dFT2dZYTVJdDQxY1N6c1JiSlhhakV2Y3pQQgorWFhrZUE2Uk1FdGIwZXdFamNlV3NxdnhaOUlEV2xFYmFoRldQOG5Iblhad2VsY3hMVFdHM3REaDZQZTl4UEQwRAorZktPQkV3NXZuQ1F0aUhXK09JditvQzhiRkFrRExlNWRjemNrSWJ3ekRkRmhuaDNqK29wQVRpcmRqeVRzbWtwaworTkYxeXA0ZHRBL0NRN0VPTmtQdTc1bExGeFkzVDB6QT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVXMVJKMFRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFV3TkRJd01UVXlOelV5V2hjTk16VXdOREl3TVRVeU56VXlXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTRNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcW1qWmIvTWdYYWdOMXVRYUx0cm9OdDZVeTk4U1JzV3NKU0VsclZrKworeW05SlNGdU56ZWkwV2hoOEtqTU8yT1ZBSGJWaVpNOFJ3NEN4R25iVHFsdTVYNXZqTFdoeCs3ZjlhL0NzaW1LTworWEFlVThjbWpPUlJQQW5xcmcxMlE0YTV0S1lML2RzaVJvUVRLL3UyTlovRzdmN0RNbTBNdEN1eVVUaFY4U1BTcQorOG9EWk03RlhxbXdGOVdDTFJmSGl0WEFjQXFvU3JGcFJTWi9yVG16OWJpbDU4TkUrNU1EQitjQXdzRDVTTlhaTgorUmM2UTREZHI4UGl6d1cvZGsvdk1aNkJBYlM5YllVbXdHZGdkWjV5SjVzMWh4NUhxVHZ5OVJWZkczZHh1SlgxegordlpqdmFseEJlQ0pvcUVEUGpYdXdQZDFva1V3a3ZmWHZ3ajBNekgySm5pLytod0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVTcvN3NYZ0ZoQUlMQTR4SEwwSG95QkVDTE1yZ3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUJFMXNSSzlSWWJwQQorZFBqQ05pQmQ5U293RU9ob1F4OWo0OHNuV2JjdjZnTWF0Y0N0ZGdnVVRaVUhwVkIvSzR1VGptNitZOUpYMDRGZQorWXJpWGtTMjBVZGJSejUxWHg5Wlp5VHovN1VoSVNrcG5BWjRuUTZ3SXFkT2xOL0RiKzBxOGkwakJuSVRQbXcrQworMjFxakhjY2JXSXNGY3BQVXNYV25pRzQvcFVmbk1oRkJTdTl6M3VBR0g1cUF6YlF2dnR5Z0FhbXZ0VVRUdWU3agorMGZvOFNPbXJjbW5IRFhuRUpkWWppSXB4aDU2K3JKbmNQYUpxM3hGVVFuR3orTWw5Zml6UUNnd3VmNXBVOWhUSworbitNZFo2Y3FaVnBEOFJ0Smp5UUFyMkdjcXZjSnc4MzR1aUtwVHlPQzlxSStMTTBmcjBsZXZrR0RNVVcyU1l4bQorTE0zK3Z2ZnJVSXAramJhSFlpcjRsM0RVeDVIVGVGV3NSalhkTjZ3bjk1NkZnS2Rqdys0Y01sdGZxZlZySVcrYQorVExPbjVraTlqQmwzL3luS0pjQzMxTERPbEtJN2k5SUJITU9TclNGZjh5OGtINUt2TkVLbWJlUkdTeE5wdlVZWgorSGFHZW1yb2VWeVhMRGQ4VWxmcHc4MkVtT1Q3YlpuUGllU1pSam5vbkJBNnR2Nm5sdnB2RExsUVlidUZ6cG5OaworaUZjK0FYZ1VmcmRHc1VBTnp4YmpZQnhrV1JTNUV1NmZLVXFBK0YzSWkwSWJWQWRFcXdPY3JvZ0toNlBnUzUxNAorNmdKNjY0bGxteDNtOHRCc1BQZHpRVVNVeEtnY1ZjbXdMa0tKR2VHVG1WOVNtY29DZDhMV3ZaRERuMit6RnVnaQorcVN0ckdQVzltZEVwU0t0UXhVVnY2dUx4VktWNnV4dz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAwOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUViek1hT2pBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFV3T0RJM01USXlOek00V2hjTk16VXdPREkzTVRJeU56TTRXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01EQTVNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdWtVWTRBbEhFaFg5Mm9hSmFFZGFnT3BsMUdEM1NXWjR1a3V0cnpwYgoreXc4S2JxMmxxUkZieDBXWWVQSGxNTnFlMzE0d3BYaHRqTWNKVkc0MlJwWkRDVE9aeGFGbnNHVGhQcnBMbFRsTgorZTBTU0liZWs5b1U4K2EwS0xldDc0WTlLVEJGMzJTTHYrNktpYnQyUE90TFZPaVZUZGVaZ09aNjRqamIzREhRYworUFNHTlRXWi9PaElxWFdSSXI3cG51dnFsdEViZnRtRk5CM2tHb0ROV0xJYXdQcWZsTjRtSStZWnV2MXhQejJNOQorbGQrODNsMExtcEdvUGJtZ1l3TWhLRmVWZllJNmppRFBGRWsrSS8vRnJYbzMwR1o2d1pVWDEwb3g4YU9hMlVPUworSTNYUE5PQmFZeU96S1FacjJlZDhqSzl5U215VkFxa0lrWm9OeDF4eDJPUm42UUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVUNReXE0WVdLUERvN2JVMzRsNGtXK3lCZnlwQXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQXBVcG8wVmtaREZESworZ1VVNWZLWS9aYjE2SWtUVWIvSUZ0NlQ3ZXBHQittVHYrbHJnM1JQV05ZZWNXY01HRkZZTFNEbmtlWVE0RzdDNgordWJrbmVCaU9xOVBLRUpwdjhFaXAvc0lENEpjTGlWMjhOQ3BxOEVxcUM1RlJ5Z2NBYVBSL0J0cVAvWmplOXNKTAorOGZqbDlQcnl6ZlY3bDQxdVRJeG44R3UyT01ucXMvb1RVZGlIVWNMWVZUYUJCb2xIaHNKMjIrK0pmeHZrMzJxMworVWlYNVg2QkRuNVlYSHJTU204OWxzWGs0UDlmZ0xtak9QVnVuWWVqblg4SmRlZG9WL0pDRk82WUpEYllybGxtVgoraGI5cy9wV1dLWWNXY0xDT3VIS2ZCZmJwb1A1d1NFZzNpUFJBVzhMN1NFYzlKUWs4a1ErWitXSnlSM0RrQmUyaAorRTBSeVBiWldlZlRZOWZuWlBJM0xTWXAzakNDd056NHRqYjE4d2xhUHo4eFMyY3FOZEtIdUlzcndoWE43N1hLWgorTnpTaUhSRWZybE9RTnpzQzJNMGY4VFBxaDRCMERYSDZjSFpIQ1FPay8yRkJ2dGRhbGxSV1IvVWVENVdPT1VROAordXp3aTJjMXZYVEFaRFIxYk0vbHhpdGcyM09ycVF3YzZQRENOMTBtbnJxUmRhRHErdUF3ZFNwaVNqaUlONkFvTQorQ0c3UTIxdnNidlQrSmRNNXJoWURMUXVIeENQTTR1Y2ljbG5DREhzT0JqUFhLVy9GekFJdDZsbGNTRzBrTGxwMAorTWZ6QThQOGt3MGJjZVBGcTh4TXI2RkRwZDlFOUNHQ3hrWHlNbjJqTHlPT3ordEpCL3J3VEtpZmhXeXNjVWwweQorOVlZdW1iSjZ2VnEyZEF3eWhBV0w1WVlXMlkvelp3bz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVKbCtxVHpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFV3T0RJM01USXlPREl5V2hjTk16VXdPREkzTVRJeU9ESXlXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERXdNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBd0V0U2NLUUI0empoMkNpN09PeG1uSWhTVkNuY0VaWVljOWRhaWV2YgorWFBuOGZzV3AzOU85UkcrMjd0R1dRZ1RyeHRObm0xMmRPRVZVV0NHMmF6cjNvMURSRXIvRVNPSFE4LzNrWGhZMgorODZEbUdaUzRNMDJyeWE3dXYrRFdjS3VaaTlLUjNObWJGSGZxcDJ6cDlTOXhqVWF1Z0RWUVlxc0ZKMkVZQzg5SgorN29iRkhjZncwS1lpVWlsaTFOREd6Y1lublRTS2hLUFRzVmxvVGV6cTZIZ3FlWkFya09YL08xTklaWDlSUnBBYgorRG5KOEdnVkxxWjRnQ2tiRlRiQTlGWTFTNWZRc1RUVTNudjdIQjdMa0FzWStCUE5iT2pZNG5xOG5MYzNMUDR4MQord2o3aWlzeDlJY24vZklnRmxkWUZESHkwOWhsT1FudFdNOTRoTFhJVDBuYy8xUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVTJLUDFWZ2hhYU1pcVhWL2dlYnpHNmNiVGQyUXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQW8yQnNCUFBCRWlYTworL2ZwNExqMDBEeituYjRnMFNaTEMweklwMHh2ek0vaWJHWnVmWWI4NTQra3E5UlkxU2VGejdJdCtEVk9nZG9DaAorR2RGYzZDWEhxWmRab0ZwRmtRWTdJMzFPUGt6eTY1dVFuSXpzUkxjZStDdDRMdHM1K0kwWEhEcHh0R09DTGFXbworTXMxYlRsZVdsanN4Z213M0NXWTlWMTR0SUY1ZEVFbW5VZ2pnYkRvN0FpNW5MYWhnZnFOVTRYZlhLOXpTUlgrUgorVjBJaVlEVkZEUXFmeko0R3JvQjR0dFl0aHpyMXgxZSt2SmQ0Qmg5RXJGM3Y5TDhjQ3RoS3l0T3d1NjVucFlCRworVUdIK2FXUm9hWC8zcFJPalhFWkZoRkhmTkVURmMrZ1ZYZXNJZlllSkpRUHlndWRBRE5ZZlZ0QXNERjRxeDNKVAorVVVsZ216QzN6N1lpdkdHQkQxVW9qMmI3eDFEQ0N5MHgwdjhpYlhiZ2Q3blQwZzZhMGxaR3Q0aTRndmJVVWJFbQorNDYzVnI4QmIxWGdBNWJzYmV2VWRSOFNtdUlZMFBpUzdxaW9RczRjUkdhZ09TVkcwTWxLdEREOUUvalo1UFVaSQorUnBUZHVLRy9sTHdIMEhIZU5nS21EdC9wVFFXYTQvc1VncC9LSHFnMUU4Mko3c0N1NHZCL0JrMXBUeWJlNEdWLworWURTYzFOR0FCc1dSelpucklIcklWc1hZTTVyUXpWOSsvK0J4Um1oRXFVVlVHTnpzRllXL1JSaWVOV3lvallHNgordjU0SzlCdEFFTHQxdFdYQkRFLzJOcC9SRlpRTmVFRmgycGtMeFJOT1h5dHVWb1h3SUk3UU5yNFREZWYyUG1FKwordGhzdk9rQzYwRThaRXNLWjhHVTNRMzJsVDVDRXhXST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVYWXc2WkRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFV3T0RJM01USXlPRFUzV2hjTk16VXdPREkzTVRJeU9EVTNXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERXhNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdWUxTm5QUDdaV0RSajFvZjRoL3Z5YWJWWDlaTEhpd3VCSVpraGVEaworTkY0anNuK3VSOHh1ZDNSWFpyTmQ2bGdhNmttSlBCd3dhNjBITmM0YkoxWHVGVnk2Q2gyVjZ5WU5xenJJSGdUQgoremZjNUdxZmpWWGlyNDd0UndzMkVtMDFsditoTFBjeDB3ZEpMdzFXVmFkd2pQaktEVmF1Tk1UYVdjWmJRcnlYbgorWlFrRFRsTkpxTUV3Q2RZcm5TeHBOdGd2bU0vT3F2ZGdReUdUVitOMUExdUhHVHFNeWFSVnp1cTlCR3lMZkxyZAorYkNndW00T1VUbHdtaFZrUlhDb280bG9hNk14M3FsUDRXc1BMZTBwbkduQk5YelVPMlkrRjJZZTJTNDVSNThveAora2VQMmZ6bkhZMHovN0ZEQUpTWVpTbWZuakd3dU5HQU5ob3F6a2ptQXZmRE9Yd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVVhDa2dkQ0Y1dkhCTnNkakZURFRLbEVCV0Y4b3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVllVWJuSldQSW14TworeUdZZGM5a1BqOXhHZDU5VTBZNGJ5cG0zejJZVzR0UExyMmM1TVA4VHRlMENwcTNBRCtWOU1sV1FXM1ZSaGN2OAorQVRFY0t5V29PRUJTUHpOY1NNRGVrandBblM0bUFPRWRsSjVyRytiYml4SDUxMTZRWVVDa0p2ZFZZSWIzc1pUeQorMDJoajJaM3pvZm16LzlDU0N1S3FlUWRvRjRsLzNvbFI4azQ2UGQvWjlEVVpTQ3hXMjZXWXp2aVlPUnpBdXNvaQorSDlxR2dPN05Ma0ZlWUJsS0Zya3BsT1dsTlRwTTFwc2ZBWWhJdWhobklHYXJjcCs1OW93Yzk5bi9mM1ZTNm1RbgorNzg5S01hVlBKWXFPQzIvdDFSNVAvaGd3b0R4YmpvUm15NzRmK25VbU1kcDdsRjU1R3NOL0FQUTcxTGdxRGc4VgorTHVWVnVhRlNXNWtiOERXRGpHL3o1Zk5SNDYvVEJJMlZGQUFhYnVZbWZDMnk5bjRDWVJOZFNISDhGbkRPR2R4bAorbGw2VkppM3g4NHl3UHhOZjNtOW9rOGorbG1vaUdtODJZVWxaYkFuakZJb050TnZGSWg1Tm9QemY2L0xIRUtZRAorek9hSzNUaW11SkVTelB1eGpUdW1VajA2cmNlT29rY3psMm9Wdkd6dkhxV1lBV1U4Z0pRYTFhWTNMa1EwZks1cQorK1ZjLyt1ZW5pbEpFWEVRWlgyWTVQeDhkTERjcjlyUGlNdXhZNzZzRWNnK1BGdkpMZzlRSWhLa2d6dDc0djhJaAorYWVEaHJoQXdLZ0RLY1dBb2hZQS9XUWx1eFFvbW1LcDBOMHMvT2k2eUlDcFY3M2w0MWVhN2tLenJqTXU0MElVUworYmVmcXNnbVhPY3V6K0hIblRzSU5BZDFFSytrTW9GST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVPajU2dURBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFl3TlRFeE1UTTBPREF3V2hjTk16WXdOVEV4TVRNME9EQXdXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERXlNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbVJvZlg3cjM4SEYxSGZ4Z01nbWpTdmJVVEEvUHpKeTIrY0ZsWHF5UgorVXpxaDk0RlJ1cEFEOHpwQkQxRCtxeWpyM1ZEaEVoZmMwYUJtaHBRVHl0TUl6V2I5U0psNVpEWFJscVkrbzk5MworNGJrcGV0Y0NCRnZmVGhlQTRkSW9wTnI5K043djdtNE12V3JpVGM0UUFRS2wwNFFaajBORXlaU1c1ZSt5RDN1NgorNGQxYSt4dzI1YmFzZ0pDQWdIYjRsNWJra09MNURWQUlNbVVYaUZXRlJYYTY1aE1TbTFZQkd6UG1maTd1ZmthVworZG9rZFhaSmpWNmFzZmY3OTl4MzlZMlBsdmlzWmNXRXZMN3FoU1V2WHZ3SS82SkRVMVJXb1R1Sk13Nk9rV0dZNwordDhoUCtJOXpGU1hRWlR3dUVSNW9FNEJTcVpVOEZtS0lVdkoxT1ZaMnBtVHVGd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVTMxMXRxMUVDM3hpaDkzRVQ5Smc4WXN1dmM0VXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQW9mZ2tqUjRYUU14VgorODkxSVFzM2pLamllMkladkVxUEZzQk9ua013cDBZYi84MmY0SFZlM0E3YzVZR25tck4wNHJPQWwxeEIwNjN4SworbTNCZm02eTEwcDJOSHlUYkk3amFwdUlUWUcwZlpQNTBMRVFUK0F0TnlVaDZpUlhMeGVHUk9ENUhNTGNGL2sxbgorQnVaOFNKMlhPK0hUbU1xc2FBc1AvbDFFVW1oTVVsUWtnT2h3ZE4vRUxuUnFNOS9SWVZkU2s1NkkrUlZwK2I0RQorenVxaElGZmFzNndmQytYb1pJcVhwVmxqdXgzM25hLzZ2K0EvZFN4UjZ1RmNjNW0xTlBWdjVLS1FhQjRKa3plKworVWxhVm05OGpLSmJWMU4xRnZMNVQ5RW9LTjVFWnEyS21PRHZxaG4wSk82Z3U1RC8zNWFSODdCSFV1Vzh2RG9TYgorRFdrYmkyWTg5QkozZU5UUFIwM2s2dW5pQnpId0ZZdVR2dUROUElWRzIzN0hzUW5LMVBUOTQ3YUdFNTMxTTRqVAorWWQ0RFFxU0JDZ0tjM1QyYTg5TURmb3NON1FnK09xbEExbkExZUhWV3lSdVJkazNrci9meTZyV0s0RG90WldGSAord2tOMDI5RTVQUU5kMWNBVkZpb1NUd1BUMzRxUGQ0d3hFdzlGTW5aOWV1MFFweVhCUXdKTzNzS3JOOGN6eWs0MworNXplSXVINHdSejZSQzI1UlZxUkttL091ZkljSktSQWRzdXJ5VEJiOTdLd1JSdFZwRDdhbVBhY2VHV2tMQ2NnSAorLzZpR25zVlArTUtEQTNXencweG43THhZQzI5L1RjTlpaYlZYY1Z4ZS9OK0lVU2VaTmhla09xdmpwUXRQc0c0cgorUkhhQi9maHlCam9zOEVtajl5L2p2TGJNUS95cFlNUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVjV3NLelRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFl3TlRFeE1UTTFORE0wV2hjTk16WXdOVEV4TVRNMU5ETTBXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERXpNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbDJFaG13VWpTMnE3VjZvRktjbkJ2QjFOSXpHV1V4Njl3RjBGbi84OQorZGdvdlZ3WjNoWXF5R3ZaYU1hb2pjSmE4VXRkbEZxMEZyUzNHMzBWWmxJd0FjYVZRQTJJNkxqZnR2VmRZVWlDMQorbHZteWpWRnNPOHBYTUlOOGF6YmhEQlRBY2xPcUlnQVdUb01Lam1vYUxmZ1k0YzQwMCtHbk9sTUZlelVBd0d6ZQorRWRodjdJSGFWTzJrUzJmYkE5N2J6QXpYSmlGV01XMUEwVjQveUJyTEhyN2hCbTVTSmRqZ0ZZUHVBcWZyN2FlQQorZG1XblI3WlBsY04rNDhyMks0SkFqaWM1cWJRQVdKOXBVVk93OC9pMUtBeW8vSWNoREcwc0lENGRISTJhdE9MZwordWtlamxVYUlsR2lVYnFDRWRZMWpCMEdaSUN1eTR3ZzdySXZ5Tlp2em0ydVNJUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVUVTSjZzaWlZTW9tdExuN21oQk1oa0I3MWt2WXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQXBmeloySFJZcFB1YQorSDlLTFJmWU1nMkFPTHh4Y1pmS2h2QlBJRjJFOWpRMkk0SDB3RTIzbldSSFdicy9mUjJMT1k0dEtUdEtRa1NwdworbDdMdS96QnJpMmlvZ3AvWDBpNC9GVGx4ME9US2tmWGJnb01hNFc2YTg0REIzYkljcHgrdVdncVU5eTVJWm55bQorQm5Kckh5Uk5nbG4zcnh1YWxnVGtIOVNKMmRnQ1dqVnhkNGVrTTl0Z0VYcnovRE5OMEF4a0pxamIyOUF4Ym9HcQorUENPbGI1YkxWT0RVYUM0VWppRU1UT2xYUFlpdTZjZjB6dG85S0NrVjdUcHZsWDhTZkZZd2RzNmRJamNuNHB4KworaWJuRms4T2RpMVpqdi9GR3UyUUMvYjI5amhFZ3pMUWxoZmFCQmhPY0E4Y3cyN1hpNks3UjdveGxzaS95QzduWgorRkVYdFIrU21xNEhFMUZGV0dRQ0J6ZytrTjBUMEw1bUI4dWQ0NzJjTUo3WEFHSDdvZGxIQWJGOGtxSE91VHlxUgorQllOZ0pBNlNsZFZGTHRhWGFGLzJKOFB0WmUrcVFrYUhxVzU1NEdKUktTUjFZNkQ4Z2VXSUZKa3YrM212SzFyQQorZHZ6bWVZRWYxUGNJN1BSOEplSE1PRXc5SndFOFZxdFhUSDMyeldKbitkNFF1VTNwZ1g5SWNiKzJ5SEhDd3o4aQoreVNHQXZoSWI3L2gvbldONExtSFEraGRRMVVGeHZZUU9NU3NMMWM2OWFoQUFYODRzOFhacnY0bGtUaWdGVjFnVgorSHBjTUdqdGZLVXNvRW82Z0EwNytEVlNNOEMvMUY2WW5FbGlkZTNHV0xFWStMbkJvbG9CMGthOUs2eXRYVGpZSQorSmRwcXA0QmhibEtsNDY2TE9LbXNLbTNWcUtzaGVoaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVGdkM3RERBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFl3T0RBeU1UTTFNREkwV2hjTk16WXdPREF5TVRNMU1ESTBXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERTJNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMDdibDEzWHBJMXVrOElPY0o5OVovRzQ3SjdTRlRMNWNyMFUvbEFPWQorZDNodTVDTHl3dG9Ydi8xQlp3bGZsaExBKzRPTFgrTGZub0dUTHlyN0tvWEJzSnlJREVZZW9hL2VkVHBkRWhSRQorQ3AyelBLYVNLUWlDd1FuY0dnRElqQllyMGJvcDJHdFpvVG1iM25qQ0EyN3ZJRUtvMWlOM0lLSnJIR2RjUVpINQorcW9DR1BWRE1qNkxOMGZNUjl5cHpoaTZ4ZW15ZTZGcm0rc1JFN3ZkellzbEhpelFJaG11eFhHeVU2ZG1qNWFWVgorcnFtZmRLQWhHL0FJdlJZcGY0bnd4YmFvWE5FeGFFSXhBM0lOa3h3UDgvZFBFajZWZGpsUE12OEV1elRaNk0xdworT2o0dDNWUFNNK3dVK016UW5uQXdVbytlOUdSU01qR0l2Zm9jZ3EydmFiUFpVd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVXhtNzlMRWtrYm1COTBKNFhMbHAvamoybUQySXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVg0RW40OGRubGprVworcmRDMU9FQ3ErNm5GVGxQUERZcGZjWHowcktqR0Mvd3BLVGx2V1ZWQTBkTGo0MXk3QXNldjgrYkFSN0o2N21hMAoreUR3dkFZc1JIVW1wUjJjTjhWUFVQcDRoZGtzQVFXRDc4bGFXTzMvb1JTamNUakVuVE4vWjh0TXQwUk9HNnlHeAorMXZoM0ppZEV6MG56QkdoeXVYMXlmellsRENlQ1daUVBKVGdoZjQ1S1JLc1pZcTZnYlNQY3ZXWDNYekhEbXpkNgorK3kvZldpdmwxTFVxcUJXRDdGOW5Fbm9jQ2pZcUdYSEhKS2pNQzYzWExyazRpbGMyVXJOcERKdW84ak1kTU0vdworL2dKams4cVdNSjlCbEdveWJzODAzUVl2MWRXa2F5RE5UT2lxVTFGd29kOFNqdFYzOEJaSWYxRHJ3VnhOUWw3UworalFpY2JoNVpyZ3A0VnRITmFaV09FMi82QjhQK0tpS2Y3TnpvbGxiK3RuNWM0Nk5GMEE2UEp4a2VrcEl0QUFMbgorVStBeW5HTUxJZkR3MEh3ZForMU9wbjAyWWJDaDNybm8zSmJ5bUpQMERMT2dHd3RTN2I0RUlKdVE5RlkwMDN3ZworeUo2ZzViMjR5MktzQmhnZEVEWmlIb2RpeWxqZTZVVmtHTU1ydkhkV0xFUEd0TlV5bHpUcTlzZ1hvSUI2Slc1MgorZDJvTTJGR3Bkd3ZnSkJjUDB6Z0JsRDBKVUcwVmdvcXp3VUFYd3pPV1dDdjNUdHdBbmdNd3BIOGI4N2FxOERRTgordXJLWkpLUEkwaTdtaHcrMXlRNUl2NVFiQjZINGQ5S3d6UzAzSXFrc0pEK0h1QkdMVHprV1RaajgveFdPa0Q5MQorNHRSUllYaVM4S05oWmlJYWhPQno1MmROdCt5UHk3Zz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVUaDFMSVRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFl3T0RBeU1UTTFNVEF6V2hjTk16WXdPREF5TVRNMU1UQXpXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERTNNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBNUEwQmtqWHNIL1dOVUw4TytZbEFQUWNYd0hiTTJTQ3Q3amZZK3hBMAordUN6QkFuNmE3cTFnZ3l5SkhxSUVXZFdFaGxYeUU4RVlLNC82djdjV2cvaCtUZFptbExQRi8wWWFGMXpOVjc4VgorVzJTL1owd3JnSGZaempWajhpaGJTRmQ3QmRtYnJTM3NLbXlmOE9XazNMSmdvUlk4Y3dpS3YyZnNUUDNpQzF0eAorMDUrLzJUc0hQSTFsbmdBNnRhU1p0VDZrQThYY2xkNm1VbmJ6R3doUnd0Wkgvb1BhRC83T0FxNTdwNVZrZE13cworcUdCank5Q0cxVVhVc2hMc0p6dUZWZXpUN0p4RWlVcnhoT0ZiQzRObGhoRGhlRDRqWlhNTlBGVXpJaEQ3OWc0ZgorNnJQbC8zV3RiemRXak94WmtTbG5BUXNNVXNRR0d3L1oyc3R2MmVZQ1JCY0FLd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVXdBUk9PeVAwT3loVXUzYXRUOTE1dkdLWWJGVXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQXRISS9PMFJnUzhIUQorMlFJUFdGM3pqV0s3ditUTi9SK3Q0SzF1VFNlUzlnNVB6ajhKTVR3c05BbWpVK2tnWlk1V3hiQ0lWc3pGOHNYaQoreVRBSkl6MkcyZ3d1RXFobm9ZUTVKS2J6eG9sOHVscE5FTGZFeHRNc0F2ZVgvdG4xTWJndEJwY3c5NFZvTkRjUgorNFAzUnhwWWNaOXFnOHZBVjd1dlVEMUpKbmk0Vm1VTEhHR2R6WHZ0VjJzQ3czT0d6cmxlM2xmSW9CRjVWczZPZAorMCt3SGIyaWdLNjJhSlFrZ1FJRk4yWkJhV1J4U3d5clpnWGxjN0NUWDdvRVYvS29IZHlKSDBmalZ5TFVBcytZaworWXlpcmc3ZUYvQlBEMXN6dFZRSTMxZWFiYWlCS2srYnJVWmtGeWlCSFRzTG96SDVzbnphQVFTZXNTU0YrT0tIZworTVoycUgveGRsMFh3SDdxRFc1aVNmOVJ3K3ZWbm9maVgrVElTOEo1aU1SVjVQTUI3WnEyM2o2dk10ZjRCTjY3cgorUjdvVWlvUHkweitnY20xMkd6VElaNnlac1gwNUQvUFE5S3NyZU8xTFAxU2VxWjNyR28ybXpGR0lQSXVLcWtWZworNDE1cElxekFyRlNUaTM2NXU0M0tSaXRXckZITFZxYk5JcmZPNWlCRWp1ZnV3b0xjaENVZksxT2lXNnU5WWNqMworTC9YZ1RtK2hHeG55YzZESUs1UUpPcWJFRm4xbklJY3hJSVJkWHpEYjU1SUl4MytMTGNOck5xWS9wd2U4ZzRnRworWGw4M3RTSUsyci9DMThQNy9KUk5ZU3AzOThMY04vc28yMUkvWGNHNnF0RnNxQ0Z3T0RKbngrOWVkM0ExYmNnMQorQUFrMHJBMDZxR3dXMjdRQTlOR2ZXK0Jvems1Tk5vMD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVCVW5iTmpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFl3T0RBeU1UTTFNVEkwV2hjTk16WXdPREF5TVRNMU1USTBXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERTRNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMTNkOGJoYzZKbEhaYVc1bGsvMVc4allTRnhBSlBmdzh2Q2ZiYkdsUgorcnJsZkpqSHBsY1JUaXE5LytZSUpuS2VweXU5WkdwZlZaUjgrK05jeEowZ1B3OW9wYVE0QThMQytkMlpMODBnMgorUThIdTlaTmJDQkQ5cC9lYXU5MjVkOFowMjNKeFZaa1NGWUFRYUFIR2JpWWJmcHdXZ3lHN3gxT2dFTzZrcUtqSworY093M2t1dSt0RFFCVndTMzlCOVNCQUxYbFk0NGoxQ3ZCeGE0T2tHNDRTcTlTdnJUVEJtakNzTkJybk1JYmpXbgordDRjVEhNc1pNVDIzT2Q3SGQycXZQN1psMk1sbUFsckEwQWlGclhKOS9XWHNnbE1FQTZIMTZqbnpXdmwvTlE2NgorVTJhL0FjY3NjK2o4Z0MwSGhlR0ZJUDN6dVB4VHVRR0ZqdFU0TzAvTGl0VU92d0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVWpoODdIaEtkU3Q3WFl4OWJTaXQxZ29yeWdTZ3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVBaSVMraTM4cDgwWQorV2RxY1NlMGROMXNlcEU1UTdpYmhDeTgvNnNmWFBTaDRIOTZ1c0JSZVltZkh6eDQ1Nml5OHBrd2FCQlJERzlPRgorOFU4VUREU0FBcmU3VmVjMnVTQmcrTjRkeXpGVFUvODJIaG5wcFlkYjBLK3MzakEyc3VIc3o5ME9SWjR6YUc3MworMzIyYklYbkxtajFmdFNGcmRDUERLYjRiOWdZNitBNG5HK0prMGdqR2JscjhXSnFjYnE4blEwYk1idG9xV2d2UgorcWIxRkZBcXRnS0dCNGtycjl4ZkxEZFRXSDNYaGEyNHF6a2syczBOb2xsN1k3YUF4L1BmUFRRT1cvc1dneldyaQoraDI2ZTZFVWJnVWtLTDJQdzBLYnN5cHFWQktFNEJoTllmMzhXRlE0S2NVa05IMDQyQkFsd1UyekZXWHZKNm5oaworbFhPTjdZZUxUNWJnK2ZiSWpVNGUrakVtN0lyb0NLOXA2S1VSV2pvT3oxRXJkdmFnWGNYRGlmVWY4V0xWNXJYMworbU9vdVBZekRieFBWS3NRcWV0QTJrS0UwN1FDY2p1TkdkREFQMWVNRTM0bnRMKzNKYlVwUTRKWU5VdTZOZFhZQgordHdWd0E5MVcwTng5SDFSbGJmK0dHcTcrV09Hc0VQa2RuUk4zenlHVEpzdDBlYVlaYlJadElINFN2Y2NERlhyKworZEZDWlF6cFFXM002cklmOEtLUzdJa3F2VURxZDk1U2l5eVZmTTVReEZFZWZ3ZU1GbCtFTWk0OTdnVkdKUjIvdAoreWMrNHpyWE9td1hFSnhkSVp1ZUptU3lPMXpWa0gwakY4Rytza3lKNHd2MVpYZ2huL0NobTlJVnBXOTVKVG01YQorSGwzSUNTVllCYkdGRFVJQzY3dDZCSnByWHkzM2Ztcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAxOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVQSFpyU3pBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVFl3T0RBeU1UTTFNakEwV2hjTk16WXdPREF5TVRNMU1qQTBXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ERTVNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMjEvR0Q1Sms3SWd5dVZpL2NvVUhIWU44OTBIcFNoQ2E0OFdWaGkvKworRDlQdmM4YXZvNTg1TVlJSEhxRno0VlpoNlJVeUJQTEl4eHZnNFp0N0UzUCtlZHh4NE92NkRybnVJR3VoQTcyNgorY0RMbjl0eW5Xb25hY0ZHNXErWGlMcHlIYUVteGRXSy9MRVdLTVQxVGxFd25TRFNCN2NGK2VPV2JyQ3Q5dENRRworK2dxV1ZqNlNBdlRxVDM3WkdGT3l3VTU3OUthWUVhSTAxTGY4MVd1NWJpZm9Id2ljVjQyMFBxY0RzSHlHNCtxMAorTG50RWNtWkNjazRYRmNlMkt3azBydDZzS2cyeUtmK1BLVTA2UWJBR1R0SkVNWTlxN2hXTGJvQXVaMzF0TWZWOAorclFOMWlmL2RKVmVWdUdRZzVlMWlEa0MzQmt5S2VmKzBiUFdLTU90UFE2aXJNUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVTZRWVhsK2psNk1hUGsxN2w2WGE4ajZGOWRTTXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUp3Rkd4NzMrWk1BcQoremFhOUVyb0toSzdFQ1N4KzhJbnBqZFNVbS95OEdSVXRSNzBTS29KdUpISzE0cldWT0M1TGFucndwMGdYc2EwUworcXVpR0JETDBiekcxSlR0TkdCSXZ3RDFDLzhMNnZRbHhnYndGdUIyRGFoMVlkUGdtdkNjazR4eVl1YTRxbHdhdgorMGhGMW54Y2NZem1HdmJ4eFlKSDJ6eXo2L1RlZXMzUEl3MjhaaHVqc2EzVzJ4VUhkMWxxYXp4dk9jaERSNlAwdQorQnZLSVpaMVhYbGdNbmhhVmQrWllXNm5ZQUtyR2g1L2Q2ZklwN0NKTVAxUUZUSWo3T0hrWFpQQXZFYXJqbzhJdworNTRVZUtNL3Q1YXhMUDdoWEJyWVM4NHBibm5pNWFKMUMwTHNqS3NpL2dvTVYxTzE2ZVErVU9nN2h1SlI4clFtKwordVNWalZhSTVjcTR0ZFJ5dEdOaXg0MDFUUkxIZm4yWFE0ZWE2RVVTYmJGUjZTVGlvS0I3SHJNcUlTcmJid2ROagorYWEyVEZOa2NDL0daNzB2K1VzS29ZbXdxb09oMXJxUEdsbmFqYVNFN2JVKzJ1TFhEWVlxTHRzalBnNHZORTlJTgorTFh3RXZXK1ljS2pCOFpNUENmaDZnU2JVbVowajg2V1hYQ2dQQ1dVRVFnZXlUMW9Sb1RrQjRJZTRLcGtTQlVzaword3lnL21LSEZOL2VkdjF3WlBVQ3ovbnBhSy9YQlFka0hpR0xtcDNvTXNjd3VQZ0JIWE9sVTFFSEgyUXBuUXIwZgorekZwQmd6ZUMwUDhkMGZLMkxGajMzdHZKY0hnWm5MTEkrZDFadzFNQUpMOHhuSDdRUitqUm9OUjFzTlJqcVVHNgorRXFid1ZNMFRvWG5aL3VtSFhMSTVaaWNNYitmZHoyOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVVRlU3dERBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXlNVEEzV2hjTk16Y3dNekl4TVRNeU1UQTNXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESXdNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBaEx5UGhwZTNDY21CRHF5dWZ6WXlYMTU5RVlheEN4ZU8wR3NTUWt6bworSzUwM1VhdWtWcXhsYkxGbWowV1Z1RHZESzNaMFl6RUxxM09GQ1psSEJPUm9rNHVVcFdGWHRXOTlhbkRTVzd4UAorWGZRN1grSkd3RWkvUkFHdzI2VXdqSG5mWXhXcHhUUG16bTJOc2ZYdndFVkFBMi9oMXl2M3d4SW50cTBjQitTcQorNTJyOWtDQUxmRUVTY1phb08wZjk3YTV3eWlLbm1Ia1A2V1ZMVkNtNkNZckJSa2dBZ0JUcGsrTzdJbDlsOGRnKworLzI4YkFQdDg2ZXhCVkQ0a1R2WkRxKzNPTHZpUXF1SHZPT2JETmwxRlppbXBKVjVvVkt4anlqRS9tZjBGbU5QcworYjh4amNJdnBXSFFYakRBYXhCbzNXUUtkRktVUVcyVXpxeXh3NUdIQ3VqcFYwUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVU1zYmxkbVkvN29EV1ROMTdHT1ZnT0dPenZJb3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVFCclpWWkZ6SFpkRworMGRKUHdwaEd6c1hWNWIvekJWWDB3QTBCR1doMFRZemZmcWxTT21rck4xU1hjZUR4Z2FVeWkvWlE1YkVodkp5cworMEJzSGw2T3ZxNDRYazNoTGZiRlZLUThhTFYxbWZ3V1NFWVJFWk1DbGVKbWxlQmkrRkQ5ZER4Q0ZlbTZVQmUyYQorZ2lpYlg5QW02NVhZdEdHTDlGNDhBL1dIcTRiY3M1ZnJNK0FxNkJxRk5VVTE3ODVjTldDVGpwTG1DYkRWeHdZcworcHJrNjFkR0Q4TDB1UXJGR1pXWkhKNEVVbEJ0ZXpIQUhUT2F0M3RnNVNyeGtDczZENVRoTmwyN1RESXRScUNDQgorUk9odWVSMlREQXZCVkpwRzNYZWc2QUdoTndEdjlNV2Qva1FGalVERDBJOWxlV2hwZFRRbVJiOERwVmhYVHh3QgorZjh5aU9JR2gvUnk5bTZrZHhlTWNiRXhVeVcvWFpCaUVYRkUxcWxQUHVKc21QVGRkWXRMMVgwYWFlZmVOL1dpawora0tvRTN2S3ZONlFkdXlJcFBJMjRweWJnenlFeEp6OU42YXNMeHZONTlFQ2I0SHB0L2RrSlVoQ1U2ZCtlQjJPVworS25NTGRUSExqeFB5NWlqSk4wZnJuWDJzMHArK1RWNjkwWlB3SkpoUDMrcUd6eTdwazg5QlZOUmJLU0VmUkpDaworMy81Z1dvOFM1TzJVczFQRnNOM2drVEc5d1VDYWtobU5SSmpXRE54bVUxdm5UdEJQMlozellwczIvSzFTWlJ4aAorOHZ6NWlUOGdveGk3aVcranBTWjVQYTEvcTRybVB2ME9CYmtVZzVtU2YxRjY4ZHJHZlV0bkVraVRSbzRnM1NHWAorSEpzZkxHcTVzVFlpdnFRT05vZ1RZLzh5R1Q5YkxEdz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVCNEhMeVRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXlNakV6V2hjTk16Y3dNekl4TVRNeU1qRXpXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESXhNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbEI1RWJiSEpsVU0wUHVVZU5WUWZQckdhVm03dDVVd1lyYmdVNGxvaQorY2pZQSs3cERKTkQzOWczNExKZWNCWGU2Y3NyNDhRbVdjNWdqK3dhdHpJZWxyL1hCT1NHZlhPOWZYNVV1ZXVpcworeTVybFFIMGpvNlZEMnFDWkhjRjRHVDh0aGVDeC9meE5kV1grVTdFWWpibWZ2VEZGcUVJUk13dmpHZ21VSEdvaQorVzkyeG9JbC9UZC9oNnUvMklHL1c5bHVkMzNnaFdkVlBuTm84VXlOeURTK3pwUzdDUm8wdWZZR1l1bjhJMEx4TAorSUxjZUt0VmRIZHpzZ0EvVVdYeCs1eDlkNHovNU54TnVteUJHYjJ5dzNxMkZMVnpXNmNER1BDTkpvNzFuYlhYOAorNk1jTGRvbzYvV3FQb0FaMzhMbWc1dUUzRVhHTUZMeHZRbFF1V0VUVWJqUGwzd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVTJpQnU5ZHBzOTV5dWs4WGtjdi9wU0FGeXpJNHdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVN2WW9RRDVQVks5bgorNzB1UjhrclVEWW9xY1crSlB2SzR6WW9QTDltanBGZldHTXB2UVdheHFxZ0p1amI1MlZWb1JzNXN2eWozbStsdAordjRmK013YUI1TWJOdDhSelg2UHFGU2Q3Y2tBdWFNQW5FZThqdktBQkcya0hBenZFQ0tRWXR0RXQrTnBFOU8waQorUVFxRGlDWEJVSDMyRUZmZVhrdmNEVHdVRitobkJMWjlSMWNnMGVRZm93cjBuK3lxa2JXeGJvbjYzV29JSlZOSworcmN0UTFVem44S0lPWm5aTlFZSXFoTEVlUmFUWjZETUNSRVRMWUlJbjYyL242eWE3SkNSdDIzOXJRQS9qQU90NgorL29hS2l0L00rcmZaWDd6S1ZJbHA3THc2dEZWa04vM3Y1U2RVam1HcTZTbTJkOG1tNExPVkVjTUlOdUw0UHJTbgordUVNdkZlbjdUd2haYTN1NjhkTmpZdWJCMUM3cEtCRFpDdmdTMXIwNzQvR2orZHdHaGJTMTN3REhhK25lNE1IQgorV1grOGJqN0lPUHF0N0hJM2FHMDdZaGpHZ3ZaZm5KN0pEa3pIUlhvMWFiNkZBZzUvNm1SYWdXbnd5bjZURnNQVAorZi9PMFhvN3R4S3hhaG5kbG9saWZHS1NPNzRCRXdaeXRDRDJDcEM2TWI3VmRMUmN6UXJnczlsODFMcVcybGtYZQoreEdtb0dtcGU4WnVOc0VvQUtNYlhtalZlM1lkeUJucHkwZ0hzWXNlRk5HdFhSS1JiNW10S3lRZ0tpSmZxd2prSworSVlwVUdhQXM1Z09RdkpzZUhiU0F6K2s5UjN5QzZQckpwWDFGWFVLOXhvNmRSOEl2R2tkejdORUxQV1o3VXFMUQorNTBCS3hkNmdDWUpwVzc2UmFDOGxBb0NKL0k3VVZiRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVkZHJyOHpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXlPREEyV2hjTk16Y3dNekl4TVRNeU9EQTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESXlNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbkZwRlNBK0RHcXVNVUJGWHdSUGZ1cUQ3eHQ4aU0wUDVlckZDa2hxVworenQ5RFJ6SHQ4WlA2K29QYStybEtuY1h5dnBQQVpja2Noa01SSTljNlZSTFdNRnRNS3hnbnAxOVoxYVpLSFdObworZGNMQUNtSFFXVmF3N0tScmFWckdMZy92N29aQjdIbHFkL09CeVA4M3IxV29SNGhXemhZUzk4YlNJWUFsWllPaworYnZHcHlpbHdrS0JCaXVoeUJ5bEdnMVBTMDZiNXNiRVVneGxiMFlBOHBXcldJQ0RZSXdRVFJYY3JYWnFxWGN0NQord251aG9USG54R25oQm1icm5Ha2hBb1RvbVhjRmR6QmNoay9OQmRVc0lXWjNKMVJFKzFyTGZ0Y09EcVo3OWhwZAorSXhpM2x0WWZWQnJCc0FLVHJQKzdRaDRvL3huY3UxY1pUWU80S2o0ZFErK1JDUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVWNDYlFudGsxM054RTJFMTlwMXpQQ3J3ZjNnb3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWlQcEZYSHJZMkJyOQorejRVdzkrN1lMbHlFV2daZkg2QlJyRHpYVUh6dWVQUlNhOG9kaWtPckRYL1VjWllqempKT09tRFpoTURIOVJHQworeGY1Wm1KZ0RCaXJnazZHRjI3cWdLeUdpNlRNMlNNUHAxRWZQQy9RaWdBRWVCZFNlSEpQcWZEU2lhSGFGUkN1QgorTVpTZHk2b0lYWmhmYUtkNmlULy9tMmVZTUh1N2JWV0JCL2c5ZndUdm1Ta2ltOEVHak1Pa2lCclpXc2Vqa2J3dQorL1o5clRUdy9mc1pzMWdDTExJaUNCOW9RYm5zejA3VklQcXVjdXArcmh2OVhWSi9jV3M0cW8wR2VXS3VFeEd1aworWmZqWFNxSWxtbGRiL1NuR29YOFUrR2h3ZUVsTUxXVFlBUmVzQXRhRU1EZzJ2UGVrODdQWHl3blJXYk1FdDY4dAorUFN3eEFNNWJxZUQ3ZVNsNFdSK2tSZ3g4aGFybkRyQmkybXdjaDRDNElxTUhuNmJQL095c0RPRHc3Mm82Mm5YdQorNWpxUjBVSXo0ekd2a2tZbE11UGNRMWl6ZlljZDdtK01CNXNwWmU5dnhiVmFYa1BhK1hGMmIwdVpOTXl5T3VNRQordk11YkZ5bG5OaXFtY0FsOFUrOFJWUmxMeEcySGgzNUtLOXFJbFEybFo3aFRQUm1RcEZDOVM0dVJJem9uWG5MOAorN0w2QlZrbjh6akN0TDN4dTlTN0JyNzd5NURRQ1IrK1dMQUNTK3RLWTZOWG1XNHBYRWNEQnF3V3NLVHdhWGp2UAorSUNBR2ZMR1FaK3VGb0toUk01dzNPeVN6c1dWNWwyVTdoeEJycmFnMkw2Y05rVWJWdlNyRWpYeGFEcTl4UVRTNgorOE9ZL3NtOFpPVnpnZlhLaWh2UXVNcjl1RTh3cTNzND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVMUWQ4Q0RBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXlPVFF5V2hjTk16Y3dNekl4TVRNeU9UUXlXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESXpNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBckM2RE11WEFLQUhGakVmWENCelNvbFhhUDd5NDVYUkFaZUVKOWxxUgorc2o5REN2U0paWXV0dTg4Y1kvWlMzYk1HbHRlUUwwdWdiOVZ1YU5YYjZhUFUveWh5a2t4K3I3SHYreGl2SWNJbgorOWNwVGdwNGZ4Sk1jb2FqV2JVeVFmOGlSTEY3a09Ecjh0ZHFVL0JZSkFraGM3Q3BLSTk1U0JGY0NaOFpwOXdwUgorVUpWNW55dVhXWWVsdVRJckFZV2x6YThQVHFzK2NRWWkrZVhrYkVoVmF6b2wxZ2RoRVA0YWxQa1pFbEp3S09HYgorQVVMR0RSQXpaVjZrQXlqRnBSMzZlUUhGOG1QbFZQNVpha25vRVhIaW1LcmQyYVpGRitwcGp3VXVGc3V3ZzMzNgorbFA3R3R6aXQzZ3RBUVhINjVuWHorVUVUZGNiWElQMTh1R251M2NaV09mTEVhUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVVNza003bWpVdFhLZDVEVjlMRWRZaFBRSnQ2WXdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQU9Cci9wV0h2OGVadAorUUxlbWE3UVdKVUZHNkNrVjY0M2MvOTR6Tk1NRld4dmt4NTk1QjJ0N2pac3A0MXpCekVHSSttN1hZRms5SERWRgorbDJaSnJHWHdNRVl3TGprckRKN3VvckZ2bUN2MEJ5Mkg3WGJDMWVXQkFyOGVGbCtBUXFyLy9NcXQ4RmpGQnM3QgorTHZLOGNVTVJpY28rMzkvYWFhNmlOVEphQXY1aEJqT0JrTU5RT2FObXNJN1hQaDBUODdycGNEMHBLL1hFcHJnMAorL3hpM09uamtlTU1USis5OFZhNFVkZy9FRmNnL1BTd2huUU9pMHkvdUV2ejhnM3BzOFJTRUFWRncrNGlzM1ozegorSjFZUStPbWI0bXVrMC9NNm4xQVoydldXZ1RIVEZWL2EremtTNHAyZmN3Ny9wNHUzVEhERmlHcnhTODQ1UHMzZworZmxyZDA5SHR1dWtrQWwxaUkvVXVoaWdUMUNPR2R0YVpxN3BXVVBtcm04UXRGQTZ6TlBjT0t4NU94N0RaMHhKYworSzNza2ZJSmIzQm1xSWowNk1ZRkViT0pZWXQ0QWM0Z2ZUV2crSlBKam1FenFDcjArc05HZ0dtQ093OFNlbFR0YworL0tJTjhNaGVzSUZ6dVJucVlKMVNySUJMT1JPZWhZYkZFZEs4T1pFR0NrUnBZa1ZxWG40Q004eXB2eGE1d2dnTQoraWYxdDVyRFBWUkFaZGRKajd6bFBtczRtRWYwbng3SER1YTE2Rmc1VFlwYjVSUDdldjZrK0VtdnZQSW9wSGsySgorU3J2TVZOamxNaWN4N052UENhM29VTWZmc281T2pRSXYybkUzL0ZtVmRWdG1UMlJReEdLZmgvdldxMGttR0YwdAorVk1tek1TYTZkU0x2UmFESmNsNTE1TGVWUzl0WnZFcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVaRFFNSFRBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXpNRE0yV2hjTk16Y3dNekl4TVRNek1ETTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESTBNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbHhGaXR5Mk9qK25MRFlidm9MTWpxbWd2My9VUUZUVldmaERVcHl3dAorK0RlTVFxOEp0ZUpteFdYWk1Lc01NUkhHLzFGek9Xam5xQldjeVVDcVZOQlNGcWtVNUdPdzY2WTFhaFZyZHRGZworYkc3RnFxT2NGT0ZITjNSbGpSREVib2gyNk9SbHJNQjloOFhrQjlWYUhrWWNMdld1NXcyVnRYeWlQNkxTVldxNAorc2JFcmNZd3BzZEZ1cFI0N1BLYnFVZzZEU0p6WlY0M1UyeXBpR1F4dzEwWXoxS1hHT1haaHRvelk1bm1YMVc0cgorNzhWYitSNnQwd2ZGRTlCcHJhRTk0TnZ6S1VNQWtaZGRnZjN1REwxQnpLYVRDTWU5cEs2VmtXblVVOVlmbnp1NAorU0JpRzNERjFQOFpGQ1h5aUpsRzJpc0Q0TG51RXZXMXkxMWpwSlNqWDlKUVlPd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVUpsenpKSEQ4VFpQSEFpK2pTclRJQ0hsSVJVc3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUlWSk5jZTJqcmxuQworblhjMVRaMDl6dHI1M21WQzhFNVBKd2xmOW1vM2JNMURRampjSzZMcWVobS9PKzJweEVPbGxMdDJ0eGFZQldVYworYW51RGRMaXR4YlNxMG8rQ25RL0tSOG5meHdFRXV4STg4NnRsSUEzNFVJaDRGczlPKzZ3S1M4eG9KNXF1STV3cAorUjRtK2hBeThiMVFVbVRUdW0wbWJCZjBWRGdIVzJLbWNhRm5hd2pqQXpHS05RUmdxQUkzV2ZTS1dGaUltVFB0WgorZU1iNjVVNVd4VkM5VnYyR2Urd1FJa3g4MFBwbTFqS1Y5alJhWEcwQzBzc2NpSTJJWGRJY0xMTURnUkVPQUV5dwordjdKTXUvazlWcXIybmo4aFRrNFpqb1hPazRLNEd4T2IzcW1UUktGS1kwUExJbitDNHNrUG95K2wwNldnQzYwUAorYmNQbVYrVXhZYUtQYlRLOFh1RHF3anJhOGVaakUyZ2xVTnZZOFZWUkRXc3FSNDNFZnFmN2RBTTltQzVodTJ5ZAordDMzQkpIa3dlT29zb0pmdURWV1ZabFFCcXJSdnI0ai9QN3JWVzE2ZlN2M2RkcVVsd2tWOS9mRTFwRzNLMWFrOAorV0J4bHgwakFSQXQrV3QzQ0hZWjZlUyt0eGRuU3lSRUR4Rk0yU2VON1BSTklLT2VPYjNXS1JMcnNoZExhRkgvagorSHVqeXNndjJUbkVXSm93TGUvS0lQeDNTWW5hUkYwVXZUNTBsYldBcnlJamE3TEpyRk5sNEpBYXdEeDlBTkMrWAorbXdjN3lLbzJ2ZDE2emNYM3BHMSs0c0FEMSs5SnlxUE9NUDRWVThWcVdLejJjRDYxQ3d3SUJZblh4UzlLR3orVgorOHM4SzFzS3p2OXJ4SkV4YkZ0QmhUbE5pVktGSnZkYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyNQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVHMkNjTWpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXpNVEE0V2hjTk16Y3dNekl4TVRNek1UQTRXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESTFNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbVBHREhMQ3cxbXViam03bTR2bEFhOHVOMUF2aVlnRndqaWFxakJnNwordWJ5ZTU2VXNrQnFTWmN2V1ZhUDllcDU0dnhEWkUyTDFSclZ5NDdrR1FNYzRIVWpyTUF2N08ra3FKMGdaS1UvUworcGltb0M4N1JpWElMdVFyQzNTUWZXaWFqSEFNa1ozSUlVejh3d1RIU1I4NmdqZ2MxL2ZqOTBza3dPTDRNRzN0UAorOFJxaDM2RVR0VmZUYWVMZDI1YmhnY2tEVnc1ckxIL1BpZ0k3ZDNXRmg2UzhlRSsyMXdXU2xvSExNcEJxcUtvTQorelllQklubER0QmZucnlwczhGQm1oYmJPZzBSVUhjVFJLT05XN0E1VDBhSGd5ZjJiKzdQMGpseXdxRFhSV2k1TworZmJMT0lIVWoybFp2YURjdWZFVGV1Q09ib3hUSFdMUmJaRFNseHVScXhQOEJhd0lEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVUtrcHBneVdoc2lCR1R2QUpzQmlTSm9zbCtFOHdEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUlXWE9sdTA3QVI1aQorYmVmSC9KS2JKVlpLeXd2UURuNHc1UGk1U3BhVjk4ZGZJQ0ZNTkNDRDBJM3U2V01UQTZVTkFjYWQxWGZQck50NQorMG1YWVp4aXNwSU9UeFlKNHR6UTBZcHVhQ3VsVUxrbEtvYVdENThyUGpSTWJMalB3Smlhc1YzTGJEbDhXVmlsbworRHJ5L0JtS2lCVXJQMzQzeG5nUzVUa3lGN1hwbDJOWGtxV3lWOG51WU9qcUFBWTVwclhuRmRhUENhbXlhMU1HSQorL0hoNmZOY0pBeUxseXJ4ZkR6Sloya0pLaU8yS3RkTklhNzd3bDdZc3hpYlc4NVdZdWR6TTQrZ2JLZ01oYjhwUQorYWNITC9jTDc4UHk5RGd5S25lSHorOExiV1lIdUxON0JSNXZGYTNDMUZsdi9lMjJ5V1V3U0k4RldDZi9veWY0WAord1BnSkdXb1c2QkgzSFlqcmZ6anFMdU0vcjluWkc3RmZNcnZBb2lEK2ZWai9PdTIxN2J5bnhBb1FzemVHak1EZAorVngxTEZWamU2bTdkaVBYaUNhdUxPMCtKRkM1MGM1MW9VV3lvWXR2bDVjWDF3ZVdhMEU0dlNlSi9oYzYwZGRmUgorM1NibjI5OGttV0llMUF4VzNiTmJmelBKUkRheGtlQUNjYmpUY1hwTHAxQzB1SzNyQlVyYmZYMnhYd3N5UTBHRgorZlIvY3hBRmFBaEpoUnQ3SzBmaWpoRW1hSTByL3BCdHNLQ3drY2c5RTJIV21laU1DQkhjVlI0K1pBVHFXZTZ1MgorZWo0ZTgyYkFlM1FvSC9TenpJMkdpcGoyMFlFbmNJdU44S0hGSWc0bWp1TUxSRkQyYkdIR3gydUtTSkFPU2lVcAordWNiSThRSkw3Wmpja1dYWFI0Q2o3bWljZ2xYSzQvaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFJTQSBNYW51ZmFjdHVyaW5nIENBIDAyNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnN6Q0NBNXVnQXdJQkFnSUVVbzBzUnpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGN3TXpJeE1UTXpNVFUyV2hjTk16Y3dNekl4TVRNek1UVTJXakNCZ3pFTAorTUFrR0ExVUVCaE1DUkVVeElUQWZCZ05WQkFvTUdFbHVabWx1Wlc5dUlGUmxZMmh1YjJ4dloybGxjeUJCUnpFYQorTUJnR0ExVUVDd3dSVDFCVVNVZEJLRlJOS1NCVVVFMHlMakF4TlRBekJnTlZCQU1NTEVsdVptbHVaVzl1SUU5UQorVkVsSFFTaFVUU2tnVWxOQklFMWhiblZtWVdOMGRYSnBibWNnUTBFZ01ESTJNSUlCSWpBTkJna3Foa2lHOXcwQgorQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdENPNmJNNnd5MGFORW1ZTlhLMzRiTWZpbUdRSk1UbGZ1NzJxcUpCdgoreXRrUkNsWVlsNTBteUFBR3U1L21Da3pqbGFVckdTbGQyZjhNQ3IwNTE0TzNsVmtGUU9kYWY3ekhGQnhjRWZ2eQorWjBmdjhPMS9PaG9OTis5R0VuUGtYZnBvTnlzUU5hNUpBcENLWE5yRnc4Sk9mSGp4UTV0elNaMWdvZDV1TUNTcgorRy9IMTBTUC9ZRGpwV0h3OUJnWWRoVkUrd3ZKU25zUGEzazNrK1VHUUV1VWRtN0xPVEZFRWxDVXJMRVNUQ2ZvNworTHM5TjdkeGRQM09HVVpRVzR0Zmt3L1plYko3YmxjUVR2azk1Uk9oL1NVb0tNUkllM05Oa05Jd3laTEprSGErTgorSUtJTlo3UHZ1UjY3RUh4Wm9jQlB6ZjhGZlJWa2xqUVAzN281TGFrUytMVHhJUUlEQVFBQm80SUJPRENDQVRRdworVndZSUt3WUJCUVVIQVFFRVN6QkpNRWNHQ0NzR0FRVUZCekFDaGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dQorTG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWREQWRCZ05WSFE0RQorRmdRVW1tUTd4SUFINElKSG1FTUFOclpZUVp0d3dIY3dEZ1lEVlIwUEFRSC9CQVFEQWdBR01CSUdBMVVkRXdFQgorL3dRSU1BWUJBZjhDQVFBd1RBWURWUjBmQkVVd1F6QkJvRCtnUFlZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFVuTmhVbTl2ZEVOQkwwOXdkR2xuWVZKellWSnZiM1JEUVM1amNtd3dGUVlEVlIwZworQkE0d0REQUtCZ2dxZ2hRQVJBRVVBVEFmQmdOVkhTTUVHREFXZ0JUY3UxYXI4Umo4cHBwMUVSQmxoQktlMVVHUwordVRBUUJnTlZIU1VFQ1RBSEJnVm5nUVVJQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWt0N1dXWlFldW9FYQorS1VnalRkUitoRm93WURtb3dhL3plYmMvZzdrbk1PTDJHVngxRjQ3cDkzd2lSNHd4TXNmWVViOWdKTVhKMncvRgorNGU1eVhUSmF2N0YvWUlkUnhSQjNMTGFGbFQva0JjQ0NmT09zRE5pVEUxamtuK1phVFA0bWdBN3ZNb1piZWo5bworbjg1bW9xWXpTeGo5Vmo4ZnMwejN0QTVsbmJwWDNtRGQvWVE5aDdHWlpWcHNKODk1ayswMzByNnVQK3FmVjdoTworeXpMWVFXYndmNzROVWQ5aU44Uyt4dk8vSk5PV010cmdhWnM5UFFpRHk0enJLMWYyVnZlQ09xWVhwRWtIUVpZUworczZWVTJ3dmpwTDNZQWR0eWM2ZGpDRHg4MzAweFNueFN3Wm4ydEV5cGdHakJuTlhCRDd6d2w3b2RiUkFXajdIcgorV0VQQkV1ZVNGUXpvalUwVjBZbW5pZFNweC8rSHZEUEwyRnYvN0hRYlNKNnJpZmNLWU9PWS9MYk15bFdZMjA0YworNjM0ZUFQMW5mL2UwZVZvTzJMRk04dmN3SDU1Q01HdG9qeVlPWG9xV3ovZkltYkNtOVRzNUhJRCtZS3dZUkUrdgorMGNaeHc2VXlpYjZpYnhiaU9zOHc2VnFYMUp4VVVhL1o1b2NsNEhQOVY1dGt0L1dpSytJNjdaaHBLaGN4ZXo5SQoreFFjSmo1NlArVzRGM1B5VkFoRlV5RTVjRm9KMExkWjc1NnE5T0sxZ3pVVms5MnIrQ3ZaQ1hxUStJaTZjMzdhbQorWjlWbSs4YzNDSDFkbmU0b0xwWnZTbnJCVTZOZGpiMDJhM3RBRkdJSnFYUUF0RzA3Y21CQmJtOE5QdlNFKzY1VQorNG5sZjJXTXFvbS9xbnJFeEtBcVZGb2pPSEFLZy9Qcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFRQTSAyLjAgRUNDIENBIDAzOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRE9qQ0NBcitnQXdJQkFnSUVKRUJlZmpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UZ3dNekl6TVRJd01EUXlXaGNOTXpnd016SXpNVEl3TURReVdqQjJNUXN3Q1FZRAorVlFRR0V3SkVSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUk13RVFZRAorVlFRTERBcFBVRlJKUjBFb1ZFMHBNUzh3TFFZRFZRUUREQ1pKYm1acGJtVnZiaUJQVUZSSlIwRW9WRTBwSUZSUQorVFNBeUxqQWdSVU5ESUVOQklEQXpPVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSC9WbUFyQQorTENNRjh5dDRmT3BnRkROdFFJQnlNY2hVTE9YZkFpWWFRUmZZUTRqU0RmdTVMNVVvbVhwc3NkRmNQU1lkMmEwNQoreG1kMkEvSGVTbVAybUM2amdnRTRNSUlCTkRCWEJnZ3JCZ0VGQlFjQkFRUkxNRWt3UndZSUt3WUJCUVVITUFLRworTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmpZMUp2YjNSRFFTOVBjSFJwWjJGRgorWTJOU2IyOTBRMEV1WTNKME1CMEdBMVVkRGdRV0JCUTV0VmhMZlBGbkFlY3dtT0lVdXA1bGVoQUpNakFPQmdOVgorSFE4QkFmOEVCQU1DQUFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQk1CZ05WSFI4RVJUQkRNRUdnUDZBOQoraGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dUxtTnZiUzlQY0hScFoyRkZZMk5TYjI5MFEwRXZUM0IwYVdkaAorUldOalVtOXZkRU5CTG1OeWJEQVZCZ05WSFNBRURqQU1NQW9HQ0NxQ0ZBQkVBUlFCTUI4R0ExVWRJd1FZTUJhQQorRkxRWWhjaEtTc1VTZXZKQU9kN0U5WXNlZmtyUk1CQUdBMVVkSlFRSk1BY0dCV2VCQlFnQk1Bb0dDQ3FHU000OQorQkFNREEya0FNR1lDTVFDS3lWOTB1TGpZWGVHK3dhUWp2OEJic0xVYUdHYndnQ2JONnZuT1NoRThlWk92K1VJOQorbHBuZGR6UUFPdkgzRi9vQ01RQ05EbjlQZ2J3QWE2UGRHNHdPR0pvMnFvak1Yd1JMejU5U0hwR3ZSWWkySnY4WAorQklZanZhbS83dXpCelgvYjNkOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFRQTSAyLjAgRUNDIENBIDA0MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFZUQ0NBdHlnQXdJQkFnSUVPQjh1NXpBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UZ3dPREl3TVRNeE1qSTNXaGNOTXpnd09ESXdNVE14TWpJM1dqQjJNUXN3Q1FZRAorVlFRR0V3SkVSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUk13RVFZRAorVlFRTERBcFBVRlJKUjBFb1ZFMHBNUzh3TFFZRFZRUUREQ1pKYm1acGJtVnZiaUJQVUZSSlIwRW9WRTBwSUZSUQorVFNBeUxqQWdSVU5ESUVOQklEQTBNREIyTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFpQTJJQUJDQ3c2R3BnZG56RAorcm1qcGNkbnZlUXV3V256aTNQekM0WndZY1RISW9JY0ZJdlpLbmZ5TjBpQUJ1VS9ETkVrSWlCdWZOcU5rMFZCVworTnp2YTFrWTdCd3l5eWZIUU1EUUY5L3BJVFlmRm5INDZZUFE3M2hDOHo2V1F2R3k3ZldaaWxxT0NBVGd3Z2dFMAorTUZjR0NDc0dBUVVGQndFQkJFc3dTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFJXTmpVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwTworQkJZRUZCd2g2WWZqb2pYNW1MaC81eEUxMXhzZitNMk9NQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQgorQWY4RUNEQUdBUUgvQWdFQU1Fd0dBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bAorYjI0dVkyOXRMMDl3ZEdsbllVVmpZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZAorSUFRT01Bd3dDZ1lJS29JVUFFUUJGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1KworU3RFd0VBWURWUjBsQkFrd0J3WUZaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURad0F3WkFJd1BycXB2dmthQWJzdworbW5FUi9WQW80ZzdCdUgrc0hwbHRkL3B6MjZleUN0cjF4c0hUa1FyMTRqTUFhQ0NGZHcrakFqQmFQM3ZHUjlLVwordlNGbzd4c2dvaHJuTHdXL3FtWDVNd2VQMlNVOVRqZkZwZk96SVI2M2hrVnNvcDMyRmJvVi84UT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFRQTSAyLjAgRUNDIENBIDA0MQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFZqQ0NBdHlnQXdJQkFnSUViMHUrL0RBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UZ3dPREl3TVRNeE16QTJXaGNOTXpnd09ESXdNVE14TXpBMldqQjJNUXN3Q1FZRAorVlFRR0V3SkVSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUk13RVFZRAorVlFRTERBcFBVRlJKUjBFb1ZFMHBNUzh3TFFZRFZRUUREQ1pKYm1acGJtVnZiaUJQVUZSSlIwRW9WRTBwSUZSUQorVFNBeUxqQWdSVU5ESUVOQklEQTBNVEIyTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFpQTJJQUJNU25XdGhGQS9qcworMnRWYW5SREI1amZqZVMyRkoxV0QrazVISCs1Mjg3ODJLMHNzSUdBTU0wRWVrQk00Sy9zYVlBNVZqWHVqVmg1MAorb2VqbUJpNFNMTWhlc2dNWDl5VGVkYURRNjdXdGduQ0VLR1VsNkhDNTlTUnJ5MFh2c0dZdDZxT0NBVGd3Z2dFMAorTUZjR0NDc0dBUVVGQndFQkJFc3dTVEJIQmdnckJnRUZCUWN3QW9ZN2FIUjBjRG92TDNCcmFTNXBibVpwYm1WdgorYmk1amIyMHZUM0IwYVdkaFJXTmpVbTl2ZEVOQkwwOXdkR2xuWVVWalkxSnZiM1JEUVM1amNuUXdIUVlEVlIwTworQkJZRUZCd3lSSy8wRXNSVEJNRElkZ25zUmVjZXdsWVFNQTRHQTFVZER3RUIvd1FFQXdJQUJqQVNCZ05WSFJNQgorQWY4RUNEQUdBUUgvQWdFQU1Fd0dBMVVkSHdSRk1FTXdRYUEvb0QyR08yaDBkSEE2THk5d2Eya3VhVzVtYVc1bAorYjI0dVkyOXRMMDl3ZEdsbllVVmpZMUp2YjNSRFFTOVBjSFJwWjJGRlkyTlNiMjkwUTBFdVkzSnNNQlVHQTFVZAorSUFRT01Bd3dDZ1lJS29JVUFFUUJGQUV3SHdZRFZSMGpCQmd3Rm9BVXRCaUZ5RXBLeFJKNjhrQTUzc1QxaXg1KworU3RFd0VBWURWUjBsQkFrd0J3WUZaNEVGQ0FFd0NnWUlLb1pJemowRUF3TURhQUF3WlFJd1Q5c2g2bTdSbmRqeQoreFJIM25qYXpScllnUXdJQ3ZkTkRROVA4MHoxQkUzMDAzU2tDWnhvTjIwSXBEZXJjV1p3WkFqRUE5Y0h0RmNiWAorN0p6VGhENXNYaWlicS9jd29DRmZxWStpaDRpd3NRemREaEFaNSt3MGZUUUFQKzRINmlYeHE1RkQKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFRQTSAyLjAgRUNDIENBIDA0MgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRE9UQ0NBcitnQXdJQkFnSUVKbmhQRVRBS0JnZ3Foa2pPUFFRREF6QjNNUXN3Q1FZRFZRUUdFd0pFUlRFaAorTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQVUZSSgorUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnUlVORAorSUZKdmIzUWdRMEV3SGhjTk1UZ3dPREl3TVRNeE16UTJXaGNOTXpnd09ESXdNVE14TXpRMldqQjJNUXN3Q1FZRAorVlFRR0V3SkVSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUk13RVFZRAorVlFRTERBcFBVRlJKUjBFb1ZFMHBNUzh3TFFZRFZRUUREQ1pKYm1acGJtVnZiaUJQVUZSSlIwRW9WRTBwSUZSUQorVFNBeUxqQWdSVU5ESUVOQklEQTBNakJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCSHk2eXEzRgorM1RDdkJYWTYzQUdKekh4UmY0NUdpcGo3QytXOW1uQXl6M0xBRU1USVZCdFM0WGN2SFI2b1FCdDdSUnZycHdMZQorVEpqZzFOZ2cwRjR6SFBHamdnRTRNSUlCTkRCWEJnZ3JCZ0VGQlFjQkFRUkxNRWt3UndZSUt3WUJCUVVITUFLRworTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsYjI0dVkyOXRMMDl3ZEdsbllVVmpZMUp2YjNSRFFTOVBjSFJwWjJGRgorWTJOU2IyOTBRMEV1WTNKME1CMEdBMVVkRGdRV0JCU3hIelBNcGdaV3VpV2NMcEJhTzFRL1VrU1hrVEFPQmdOVgorSFE4QkFmOEVCQU1DQUFZd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQk1CZ05WSFI4RVJUQkRNRUdnUDZBOQoraGp0b2RIUndPaTh2Y0d0cExtbHVabWx1Wlc5dUxtTnZiUzlQY0hScFoyRkZZMk5TYjI5MFEwRXZUM0IwYVdkaAorUldOalVtOXZkRU5CTG1OeWJEQVZCZ05WSFNBRURqQU1NQW9HQ0NxQ0ZBQkVBUlFCTUI4R0ExVWRJd1FZTUJhQQorRkxRWWhjaEtTc1VTZXZKQU9kN0U5WXNlZmtyUk1CQUdBMVVkSlFRSk1BY0dCV2VCQlFnQk1Bb0dDQ3FHU000OQorQkFNREEyZ0FNR1VDTVFEdGlkMHFVejhyTlpNNlJMNnJaSkZrcC9UbkdLMDJOREp4YWdHeEFMWWIvZm9wT0ZUaQorbzd2UGE1dEszQWtVVFlrQ01HUFJPMTg5QlhhMXBDSE4rZjU1MDRXYWxnUXR3Q1hCVkd1RFJpa3lNR1FsUStwbAorYmoxV0lIcmFFSGVtS2VtY1NBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFRQTSAyLjAgUlNBIENBIDAzOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnBUQ0NBNDJnQXdJQkFnSUVSNDRlS2pBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGd3TXpJek1URTFNRE0yV2hjTk16Z3dNekl6TVRFMU1ETTJXakIyTVFzdworQ1FZRFZRUUdFd0pFUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJNdworRVFZRFZRUUxEQXBQVUZSSlIwRW9WRTBwTVM4d0xRWURWUVFERENaSmJtWnBibVZ2YmlCUFVGUkpSMEVvVkUwcAorSUZSUVRTQXlMakFnVWxOQklFTkJJREF6T1RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQworZ2dFQkFMV201Z3o4OEszU3kvaXN4a09PSTZDZ3dkTWFyVkdXeXBsWTVsQTRJdUZWQlhoekFQa0o5ajdWMkoxcgorME1ZV0ZOMzE2QzdDU3EwRWd6bDRsaG9yQ1d4QndBelJ0Snl6ZTFPL3doZmhESXQrdno1WTBvV1pmNlZKK0htOAoreFVHQzNZNGtpT09veHdjUmoyTzZqZTRwRzJJUUZOT2pXSlJwdGVkcFZ4czQwRmZ3UHpReVEwMlFsYktDaW14bQorZnYyajJRV2JlNS96WFpEdnUxdGl0K1Zwc2RBcmxWWS81MGQxeVp0cmlzdFNOQUpEU3F1all2OWUxUDdwM0hXbgorMHUrUHUzOVJMbVZVZGt4WmhtYzVCbEVqc2ljQTlKNlZjNDMvT1BySFNiVGpIdFI1VGp1UUUrSmlrdytxT2xzWAorSE5TdSs3SVg4ZkpEK1ZMVVdwWUJFTHJzZUJVQ0F3RUFBYU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoVW5OaAorVW05dmRFTkJMMDl3ZEdsbllWSnpZVkp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkEyWmFWR2JsNTB5N2t1QQorTVdWbVRwekliNTBOTUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVZKegorWVZKdmIzUkRRUzlQY0hScFoyRlNjMkZTYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVUzTHRXcS9FWS9LYWFkUkVRWllRU250VkJrcmt3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRVN4ZkZHSUxlQy84MDBKRTN3azZkOW4vMW1pTFAvVAorcFBEZ0VUMmEyekErb1R6dXdUWXdVUk05emVuWUZKdG9vTjhXV3MvRGJZVWJVSmxJSHZuVURIdHNCanljQ0hyeQorZEdxTHpLNTY5NVlaalZPZlFRYU1BWlRZWCtEYlFuRC95R084ZDltT2Z2SjYwZGFha2pBTS92VWN1SkJXY2tOKworeTZ2VE1NTk04WE5YNmc1Q2xxMXd3S3FKZlpyWUdjMFdCQWw3Q2UxUG5XM0pyTDhmRmpnaFBLSnF4MXR5RVVJaworMDZEWWt0aytTTXAyblp6cHF1L2pRZUFETm5UV05TNlU0a1BJTzV6YTlRZmxrbk1Wb09jTEh6aThSMVZldWhDNAorOUpIYVRqdlFET0czdnU1Y0FJM0IwUGN3anJhN0QyWEloZXZaTVhLRndHMmM5MTdMdFRCczJlU2RYOTZ2ZXUxdworQVVjU20wbWRrSnNhc1YyR3RQekJ1aWRBMWRhMlZyZUhaYmorK1dNRkE5Yi9SUHZEVnVaYjRPVFNSbFo0YnN5MgorSGdabTllbVJ2ODF4UHQrdzdGUnNEdkhSaDlJWGV1UUxTdVJUeWFzdWl3anV6R2JzaExlWiszVGdIL0QrM0FodgorZ056Q3RRZ2MzREgvemtsQURuYm5kVlM2QjZZKzhPb0N3aEtSVE53aEVTUE9iWXIvakQwTHlVOStjWVc2aEhHLworTXQzdzMzT3Q0Wmw1WWxHSDV0V0dPcHV0YTA3NVBLR1VLQjY2dE9WTHF0aVUzQS9UOGlPNFR4QWs1cjN1K1djTgorZHAvS1lsWmZIcGhUeXhMNzZqVXBkaE9nNXZxM0tJaU5PbzBCMERQQnJJOWh1MHp2Mml4UTlWcnJUTm1TcVBmbQorbFMwaEFFWE16aDFUCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSW5maW5lb24gT1BUSUdBKFRNKSBUUE0gMi4wIFJTQSBDQSAwNDAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUdwVENDQkkyZ0F3SUJBZ0lFRXBsK3FEQU5CZ2txaGtpRzl3MEJBUXNGQURCM01Rc3dDUVlEVlFRR0V3SkUKK1JURWhNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1Sc3dHUVlEVlFRTERCSlAKK1VGUkpSMEVvVkUwcElFUmxkbWxqWlhNeEtEQW1CZ05WQkFNTUgwbHVabWx1Wlc5dUlFOVFWRWxIUVNoVVRTa2cKK1VsTkJJRkp2YjNRZ1EwRXdIaGNOTVRnd09ESXdNVEl6TmpJMFdoY05Nemd3T0RJd01USXpOakkwV2pCMk1Rc3cKK0NRWURWUVFHRXdKRVJURWhNQjhHQTFVRUNnd1lTVzVtYVc1bGIyNGdWR1ZqYUc1dmJHOW5hV1Z6SUVGSE1STXcKK0VRWURWUVFMREFwUFVGUkpSMEVvVkUwcE1TOHdMUVlEVlFRRERDWkpibVpwYm1WdmJpQlBVRlJKUjBFb1ZFMHAKK0lGUlFUU0F5TGpBZ1VsTkJJRU5CSURBME1EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0MKK2dnSUJBSXZDSEtlc2JsT0ZaOHZtdTArRTl5bURMMWViQVhTaGppaGxmUEI1Mlp1bDFHc1N6a0daamlrSU1BVUUKK0U4V3NTQ2w0bU5JekRLbTc2YmZUUGZqRW8wNlp0cDMyN0x3R29yNDlzdWNwOFM0YVM2V2lFSjlOaTJZdVArdjQKK3BQU2Nrdjd0OUh6ZjczMllESXJhaFpBNlJTYytWemErZzNqN2JmNUo3RjdNL09vS3JVRGxnWFhuYTR3bWpzZ0sKK2tWVHYvTW5xYzFpOGVFTWFLSXN3bXIyWkQ4a0V0QTZPSzk1UTAvVGFCRG1Jcy9rZUdpRnRva01UMC9PTDN4TG4KK25vSThkVklTV0tDeTRKWVlqNHlZczdJVG9BejJOaFgxaVMyVC9MOTlBek5aSWVndzFoUTRjVVR2TC95SXVNOWUKKytlMytkUXdzME41VmdjdmZwL0tNVUtQcTlha3U4QjA1M0d6M2ZMM2pOQ0YrYlQ2dUJ4QjlPRTBkVFc3NGdvOFEKK0tPOFRBQ05yeWpwR2UxTmRaR2NuTmptWTNMeVNETE1Ud1B3QkJqaW43QkZZa1FZTE1UMzkxWkc3TFBPN0h2MmgKK21XakdIWi9GanY3U1kxeFNDdkZMMExsK1I0WjdXTk9LRE5JSDB3U0VIT1c2azN0QlFrWWdhUU8vK2JsYmtXc24KK1lTQ3pMQ3V4bnR3MFgyajlNU0hBQlJ6eWN3K0pmanAvNnlhL2JqTDMyRlU5UkdRUk8xYU92WXZPSVd2T0NyL2wKK1pOMExabjIyQzZMV2krSi9WM1A0Rng5Q0ljTzBkYU53ZG96YkR3S0JERzNPUDNnTFNGYmtzb1NnTjN4dFhiZW0KKzM2eHVKQ1JTanhsMWxTRmZiSitHbWpXN1UzaEEzWjJxbzM1dHFHTy9VRWtJMXVVTkFnTUJBQUdqZ2dFNE1JSUIKK05EQlhCZ2dyQmdFRkJRY0JBUVJMTUVrd1J3WUlLd1lCQlFVSE1BS0dPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWwKK2IyNHVZMjl0TDA5d2RHbG5ZVkp6WVZKdmIzUkRRUzlQY0hScFoyRlNjMkZTYjI5MFEwRXVZM0owTUIwR0ExVWQKK0RnUVdCQlJFOWJ2VXZaQkJwT2hiOTR2VTNkQUlCVUE1c0RBT0JnTlZIUThCQWY4RUJBTUNBQVl3RWdZRFZSMFQKK0FRSC9CQWd3QmdFQi93SUJBREJNQmdOVkhSOEVSVEJETUVHZ1A2QTloanRvZEhSd09pOHZjR3RwTG1sdVptbHUKK1pXOXVMbU52YlM5UGNIUnBaMkZTYzJGU2IyOTBRMEV2VDNCMGFXZGhVbk5oVW05dmRFTkJMbU55YkRBVkJnTlYKK0hTQUVEakFNTUFvR0NDcUNGQUJFQVJRQk1COEdBMVVkSXdRWU1CYUFGTnk3VnF2eEdQeW1tblVSRUdXRUVwN1YKK1FaSzVNQkFHQTFVZEpRUUpNQWNHQldlQkJRZ0JNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUIzQmo5R3pLTHMKK3k1cjQxbk1hNjlqK0pnM0ZQcTB1UWs4WFFZOXh6RHNlckYwa0swajZ3RUhZUDQ3T0o3NDlweG45YStlLy9WTUoKK2NkZncvZERGL25QRmxaMHBPQTFYc2RFcEpaVHQ1aitPSERnNFowVG9BV1NidWw4Z2QvY09aYTU5UkpsbnZxamsKK3o4NjI3WjNML1Y5b3BJY012Z09OZ1UrZTF0THZqaHU4ekxMMFU4RVcrbkhDSktINGJUWTJyMzZiYVd5WGE3bloKK1hld3pGbDI0enE1cXdlTFJmeDZmaTU4bUV1OGNxekRSd2ticWIzb2J3WlZXOWZSYWd2NVQxQ1dRSW5sTWJiRVQKK0FsbjBXSDFLdzFYdnFPQmtRMDBkdzhFT3pieHh1RCtKU3FqQmJxR3poMXFlTC9IRElSaCt2NFFwYmNhejZyNXkKK0NSRnh1L25FY2hJQkdqZFVrVmRHRDBBYmxIVjdqb0JXbnI5ZUsrcUQ2dUJOeUFJbDNyZmpWTmdHL003N1lyWlQKK2FDRjI5T05mWG9IalZQTW92REpBakNKeVcwL0haa1NLSW9QSzFaa1ZOTm90SFFDSE9oSFNOU2N5L0IxSHZNVGgKK29RS2tXTGVnb29uTVZEd3pEcUZUMkg2NWUwRkxWTy9YV0tURVcvejhXUmJRODgxMkoxQlNYR2RVNGpMV3VubVIKK3hsR0RZZHhhZXQxajJMWHZPT3N5eGZveVZpNVNnRG5IV3lIR1g2MDcxczVwM3JRY3BpeXhKRWgwKzRraHVWNVYKKzFQN1lYaWc1aGlBRVhsWXJOQnlSR2lRZzRoVVNFQlFlaHV2bmhKQjBaaUx5b1hhQ3VsbVQ5bzRjdHZNMldUaGQKKzJzaWVUbjYrRFc5bG4wSDI3QkJOK0F2a0loVEtQMUNoTXc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0luZmluZW9uIE9QVElHQShUTSkgVFBNIDIuMCBSU0EgQ0EgMDQxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHcFRDQ0JJMmdBd0lCQWdJRVNjWU92VEFOQmdrcWhraUc5dzBCQVFzRkFEQjNNUXN3Q1FZRFZRUUdFd0pFCitSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUnN3R1FZRFZRUUxEQkpQCitVRlJKUjBFb1ZFMHBJRVJsZG1salpYTXhLREFtQmdOVkJBTU1IMGx1Wm1sdVpXOXVJRTlRVkVsSFFTaFVUU2tnCitVbE5CSUZKdmIzUWdRMEV3SGhjTk1UZ3dPREl3TVRJek9EUTBXaGNOTXpnd09ESXdNVEl6T0RRMFdqQjJNUXN3CitDUVlEVlFRR0V3SkVSVEVoTUI4R0ExVUVDZ3dZU1c1bWFXNWxiMjRnVkdWamFHNXZiRzluYVdWeklFRkhNUk13CitFUVlEVlFRTERBcFBVRlJKUjBFb1ZFMHBNUzh3TFFZRFZRUUREQ1pKYm1acGJtVnZiaUJQVUZSSlIwRW9WRTBwCitJRlJRVFNBeUxqQWdVbE5CSUVOQklEQTBNVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DCitnZ0lCQUlQNFo1Vm9PbEZKcXZZOTY2bm1yQlJWNFJIMEtSQy9hVzZFMitDcSthVDA5K0pTQU9xRURnMFRFNkZiCitUYjdRL2ZuM0ZsUkNJQzBNQ3lsN3A3eTVFOCtWRGQrb2c2Y1ozRTBwcFBWc1RFakhwbElxOVFueG5yS3U1RDhvCit5bjlnL1ZHQm9nQXNtMVVUTk40RzNmNWw2ZlFmdDNYc1g4dkg1azFnN1FjRVZOWE5FOWE4Z3c2TkROcjhaQ0xPCit5dmc1U2E4OHY2a3E5Q2doTlZqaVNJUWxLYUorOXV3Sk83U3lDQUlObEw5Q2hKTk5UUDJqRDc1SC82WkNHWmRYCitjU1pOTk5QVy93QXlZN3prWjU3QkZrQmFrTVZlS21tTW5hSldGMHhWMkJsYkhGZ2NtMVBITVRjMnFWMzJoQmVKCitwQTRTZWNnci9SenZyQzZNL1ZrNGtnY2x4SVFVODY1VFAwNncyeFRMVng5YkU4NDFjaG85TkNpWEc4eGdFelozCit5T3VRKzk3Sy81K0xCTkdyOGtPZFl4RVhraUwxeXdqRVlLUUR6ZlNRSk1qSTZBdW55Y1VxTFFna0g2VDM4ckVjCitGR0pRMi9FYkFEOHpqL0hrTWpQelNRZHF6WVNscWNtS1o3NEZCc2ZsN3lmNEgxZjhyaisrTmxJTDk0VkFtajlXCitJNFdtbk15N01zZ1VmUmZhWk4va3lUMXMvcXdLNWJ3cHY5b0xmSVZVNzgwRjJGanZCSkZTeXRQWkdqS3NEWWlDCiszd0l3MFhkV3Y5Vk13czM5RUNpSWQ4SjZkK05uYWRDVytKTFZMUGwvQXNrZEpoc2NFTFFkZmdGMi9UeUkzRXFTCitBLzJVeVNlRjVPWjM4NVZMc1hpRitBU05LanY4bnd3aGVRc3F4NS9xc1J5ZEthMTVBZ01CQUFHamdnRTRNSUlCCitOREJYQmdnckJnRUZCUWNCQVFSTE1Fa3dSd1lJS3dZQkJRVUhNQUtHTzJoMGRIQTZMeTl3YTJrdWFXNW1hVzVsCitiMjR1WTI5dEwwOXdkR2xuWVZKellWSnZiM1JEUVM5UGNIUnBaMkZTYzJGU2IyOTBRMEV1WTNKME1CMEdBMVVkCitEZ1FXQkJSVzlyV1hPV01CR0Z1UjJBQ3M3cEZpR2VPbXV6QU9CZ05WSFE4QkFmOEVCQU1DQUFZd0VnWURWUjBUCitBUUgvQkFnd0JnRUIvd0lCQURCTUJnTlZIUjhFUlRCRE1FR2dQNkE5aGp0b2RIUndPaTh2Y0d0cExtbHVabWx1CitaVzl1TG1OdmJTOVBjSFJwWjJGU2MyRlNiMjkwUTBFdlQzQjBhV2RoVW5OaFVtOXZkRU5CTG1OeWJEQVZCZ05WCitIU0FFRGpBTU1Bb0dDQ3FDRkFCRUFSUUJNQjhHQTFVZEl3UVlNQmFBRk55N1ZxdnhHUHltbW5VUkVHV0VFcDdWCitRWks1TUJBR0ExVWRKUVFKTUFjR0JXZUJCUWdCTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDcU9wUFFmTGlsCitSYWtVOVV2MWd6aENLMVVaSnNMTUR0azFhRDR0UkdnRnFaQjlRc0JqQnBhRCtMd0NzZ1NmbVVnQ2RpWW9CWS9kCitOTVJEeHFhY1hxWDZGUnVuOXY4SmpmQmQ1aUZEWjhydFBUTlp2MmdyV3FjOUh1ZzdtZ1lJcDMvKzZiVElpNmMwCitwRXErbnNLSWtIakl6RHZncXY2aUxHeHpnSm05T2pEbVlwN2sxenVheDhkSUNWdmFmaWxwMHJLMXlpZVdwYUFqCit3MzFuczlUeG00SHJ1aDUxWTl1ek5GTmo5RUM1U3RialZ4ZzhxZVpDazVoUzc2bVUyZlBzYTE3aUhwTFU3VmZ0CitWdkt5UE1qZ3BTeGJJVldMdCtYUWJuVlpkcUF2YTVnR3p4RVk3VE9sVFVxNlk3VmpDM2sxUjc2dVA2NEFYbUl4CitPcFo0d041Z3MxdmRxczFTakc2cVJMZzlxbVlqdnhiREhsSGc0TURSVGtMeERqdmJsbFdTMkZpM3ROUFUvVTQ4CitlM1pBM04ySlR4RDR3U2ZpRk92V3RZSVVna3lIVlZnWkZmSk9ZL2pDcENuTVZKU2J3NFpXd0RkZW1zUVgvMGN6CisrVXlheE0vRm52WXVvUUJCenlQMGtJU3doZjdOa3F0S1dzYlBST0Z1YXNjNVFvRUwvOVhyTHltWGZHdm5INnl6CitpOVdyMnZLTGtwUkFTejNUbzBQdnIvZlhNSDdmeUZMNndtdFB2WW9aNnhjWFFkUFJDNTUyNTRvRHhHd1kwS2JHCisybTI3OTNSSkJOYldWeTVJV0hnTHBSR3VtNFBwSjRMcTY2U1lLcUxBRU5xQzRCeXR6Y1crcnBvOGdQbGJIVnUvCitselN1WmdvZDNkQUpwYmRpWXNtNkdxUm9rWDMvWDlVd2pnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitJbmZpbmVvbiBPUFRJR0EoVE0pIFRQTSAyLjAgUlNBIENBIDA0MgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRnBUQ0NBNDJnQXdJQkFnSUVBUEtlMGpBTkJna3Foa2lHOXcwQkFRc0ZBREIzTVFzd0NRWURWUVFHRXdKRQorUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJzd0dRWURWUVFMREJKUAorVUZSSlIwRW9WRTBwSUVSbGRtbGpaWE14S0RBbUJnTlZCQU1NSDBsdVptbHVaVzl1SUU5UVZFbEhRU2hVVFNrZworVWxOQklGSnZiM1FnUTBFd0hoY05NVGd3T0RJd01USTBNREF4V2hjTk16Z3dPREl3TVRJME1EQXhXakIyTVFzdworQ1FZRFZRUUdFd0pFUlRFaE1COEdBMVVFQ2d3WVNXNW1hVzVsYjI0Z1ZHVmphRzV2Ykc5bmFXVnpJRUZITVJNdworRVFZRFZRUUxEQXBQVUZSSlIwRW9WRTBwTVM4d0xRWURWUVFERENaSmJtWnBibVZ2YmlCUFVGUkpSMEVvVkUwcAorSUZSUVRTQXlMakFnVWxOQklFTkJJREEwTWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQworZ2dFQkFJVlVlS1lSblZ1MmJaQ3dLS2Q1ekgzb09ZejczSjNaUG9NdmlxOTB5NTFtY2NuQ2l5ZEF3UjVrK3VTcgorTkJqSVVVVnBRYzExSzAwNUhiVTQybEEwMlhIQmxjaEhWQWQxckhQVXA1NVF2c2NzaC9PVTBNVFY3Q2I3TExuUworTW05aEQ3SzVid2ROam5TeEQ2Z2F5b0J3QU9hNXAyM0ZCdXFDaVVQTnpVRCsxcnRya1l5RkQzdDhXbW5EYmZ4ZQorVVdoNXdXeklWMFBHVjdzS1BPb3YrSVhFZlhGRitmV0F3c0dYVFBpNStjaWJSTHdveTg4UmsvK3ZSTFZ4ZzBlWgorT254SDhCK3FjcEVJUG1YZnhiZEdxVW9ZODJpY1QxTmoxRWpDamt5TVRBeEg1USs4UFZESERqeVJMTmcrNmFZdAorTVhZVFgwRDZNeGhvYk9WallMZ1pBblFQbGtjQ0F3RUFBYU9DQVRnd2dnRTBNRmNHQ0NzR0FRVUZCd0VCQkVzdworU1RCSEJnZ3JCZ0VGQlFjd0FvWTdhSFIwY0RvdkwzQnJhUzVwYm1acGJtVnZiaTVqYjIwdlQzQjBhV2RoVW5OaAorVW05dmRFTkJMMDl3ZEdsbllWSnpZVkp2YjNSRFFTNWpjblF3SFFZRFZSME9CQllFRkYwSUZaVWZYMkJqaW1ubgorSlM4K3hMN05kVlN5TUE0R0ExVWREd0VCL3dRRUF3SUFCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUV3RworQTFVZEh3UkZNRU13UWFBL29EMkdPMmgwZEhBNkx5OXdhMmt1YVc1bWFXNWxiMjR1WTI5dEwwOXdkR2xuWVZKegorWVZKdmIzUkRRUzlQY0hScFoyRlNjMkZTYjI5MFEwRXVZM0pzTUJVR0ExVWRJQVFPTUF3d0NnWUlLb0lVQUVRQgorRkFFd0h3WURWUjBqQkJnd0ZvQVUzTHRXcS9FWS9LYWFkUkVRWllRU250VkJrcmt3RUFZRFZSMGxCQWt3QndZRgorWjRFRkNBRXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRWJJdElwWUFPMmpDQTc4b3FLaVR4dU1uVXI2dVV6aQorRUtyektlOW5zczRGZkpicXg5czdFNFdLbFVXNTFUbkoxcnlzRTE1V0hpNzFrODBxTlhod1pUeWtCbXptZDZxSAorSnNSMTdlMUpxbm90ZG1BMTZ6NVk2dkMza3A5Z0dhNDZKeHF6KzhTRmtHZmt3S056dkJ3amxpeFdNY1dkV3cwQQorYUJLaG95TTBXR05aZ1V2dVN2Q1NMOGw0cnd5dUNjTEJwMmxzN2huVTFwOHR2dmdaU2xiQWpwNHVsU05VVGZJSworQTRQUUdMVzlZTUtoQmpxK3E3UzZabVdwNTA4MG5pa3lrN2J2Zkkxd1hXcWxQbUl3aVNuOCs3ekttZ2piTXhkOAorSE4vZ0tOR1h1TmhRYkc5aDB0S0Znc0R1ZlFJZmZ6RVpZMHJOclJBa3VuT0pUWnJDRzZQVkpudFA3TUdmcnRiTgorUkpWQXFiNVQyK1dNaWFKajRpYWZsUDEyYVN0TDBEb0huTTUzdU5RNmxjV2UvdXF6TEhNbmpjNDl0WVdDZi9VbQorN3llYm9aRjIyYmViamtzZWVLaGpvT2xtK2xubSszRmNKcmd3WEVCcTkvNUVucktjOXp1WmhtdXdNQjVKRnRPbgorVmhSeERYdkkzcWo4OFBSdDlDTm9RTVYzTUZTNnhvZllUeW9DcWNHOEZlNVhwWmhMUlJLTGFNYUszVlcrNG1NagorNjcvUUdYZkdkRjdmNzlTclRqc3hHTThMTnhjUW5xVVJiV0VidzJMUTI0QjVxZHhqQjJVbmx6eFNncTlMRHBteAorV1VjRS9nd3pIeGxVL1ZPc1laUHFwWm9lOHFIWUFMdFpnbm9OSzhVNDlUTXovbnFXcFJwL3J3MFNrSS9IVEZwSgordGN6clJjbm9CMVBXCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworSlNMRVBJRFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEM0RDQ0E0S2dBd0lCQWdJVVR1blBOUU5GMDJyRExLbmx1K3BiY2ZZZ3JSY3dDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NakF3CitNVEkzTURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JtekVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhOVEF6QmdOVkJBc01MRlJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlFcFRURjlGCitVRWxFWDFCU1QwUWdjR2xrT2pFNU1SWXdGQVlEVlFRRERBMTNkM2N1YVc1MFpXd3VZMjl0TUZrd0V3WUhLb1pJCit6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVuWUIzQ3dXa2ZGZG5KOXZISXhseHk5TVliYnpCNmpRMFB5VXpsa1RGCitHWmdFQWFmYm1Hb1dkb084ajVxUUh3VExlNDQxZE84ZlR3eVJEaktqeXVOZFphT0NBYlF3Z2dHd01COEdBMVVkCitJd1FZTUJhQUZPaFNCY0pQMk5MVnBTRkhGcmJPREh0YnVuY1BNQjBHQTFVZERnUVdCQlQyM0s0NENESnZFS1JxCitZdFZmNEtuTDZFR2oxREFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUE0R0ExVWREd0VCL3dRRUF3SUJCakFUCitCZ05WSFNVQkFmOEVDVEFIQmdWbmdRVUlBVEI0QmdOVkhTQUJBZjhFYmpCc01Hb0dDaXFHU0liNFRRRUZBZ0V3CitYREJhQmdnckJnRUZCUWNDQVJaT2FIUjBjSE02THk5MGNuVnpkR1ZrYzJWeWRtbGpaWE11YVc1MFpXd3VZMjl0CitMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm1NR1FHCitDQ3NHQVFVRkJ3RUJCRmd3VmpCVUJnZ3JCZ0VGQlFjd0FvWklhSFIwY0hNNkx5OTBjblZ6ZEdWa2MyVnlkbWxqCitaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxSnZiM1JRZFdKc2FXTkxaWGt1CitZMlZ5TUZVR0ExVWRId1JPTUV3d1NxQklvRWFHUkdoMGRIQnpPaTh2ZEhKMWMzUmxaSE5sY25acFkyVnpMbWx1CitkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRmVUd4aGRHWnZjbTB1WTNKc01Bb0dDQ3FHCitTTTQ5QkFNQ0EwZ0FNRVVDSVFDMzVrL3BjazI1NnFBbjNwMEtWc29kT2sxUnY5VXc2b1lld2pKU1I3ZGRld0lnCitWekpoM0hzcHlXZkNNMFJXQ2ZSZW00Zis2dG12dS8vNzQ3YWdOcWNISEZJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0xCR0VQSURQUk9EIEVLIFBsYXRmb3JtIFB1YmxpYyBLZXkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHZEQ0NBMk9nQXdJQkFnSVVKTWFPbWtCYWUwbTBNM29uaFRHTVN5aTVVUkF3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRVdworTkRBeE1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCbERFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4TGpBc0JnTlZCQXNNSlZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRXhDUjE5RgorVUVsRVgxQlNUMFF4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQoraGtqT1BRTUJCd05DQUFSajF3SDN2anB6MG43SGl4RWR1L1E4aUEzWGpDY0R0ZXJHaHdSQktudUZ1L3VRMjUwagorUzNWcmY5VllsVG1VUEQ5RUhkVXd3Q3JQZXVSYnJKSjgrREttbzRJQm5EQ0NBWmd3SHdZRFZSMGpCQmd3Rm9BVQorNkZJRndrL1kwdFdsSVVjV3RzNE1lMXU2ZHc4d0hRWURWUjBPQkJZRUZDejg5RHNXeUwvSGdrbk1seDdsY3lUVworT2ZCNU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CTUdBMVVkSlFFQgorL3dRSk1BY0dCV2VCQlFnQk1IQUdBMVVkSUFFQi93Um1NR1F3WWdZS0tvWklodmhOQVFVQ0FUQlVNRklHQ0NzRworQVFVRkJ3SUJGa1pvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZRMUpNTDJWcgorWTJWeWRDOUZTMk5sY25SUWIyeHBZM2xUZEdGMFpXMWxiblF1Y0dSbU1Gd0dDQ3NHQVFVRkJ3RUJCRkF3VGpCTQorQmdnckJnRUZCUWN3QW9aQWFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwTDBOUworVEM5bGEyTmxjblF2UlV0U2IyOTBVSFZpYkdsalMyVjVMbU5sY2pCTkJnTlZIUjhFUmpCRU1FS2dRS0EraGp4bworZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzE5UQorYkdGMFptOXliUzVqY213d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2RmUFVoMXdIL2VLY0J5QjJCeHJFUDcvNAorYnQzRnlWSnZRQmhmUG5CT21rb0NJREZrWm1iSURoWGRsUE9BdkppZWpVZ0hHK0thUkVuVXhTS2VEaytYZ01EUworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0xLRkVQSURCMFBST0QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUQzakNDQTRXZ0F3SUJBZ0lVU3VHQTFVM3kwWE1jcWJHc0paWHZ2RmtmQ3lRd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1Ua3cKK056TXdNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQm5qRUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eE9EQTJCZ05WQkFzTUwxUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUV4TFJsOUYKK1VFbEVYMEl3WDFCU1QwUWdjR2xrT2pFd01SWXdGQVlEVlFRRERBMTNkM2N1YVc1MFpXd3VZMjl0TUZrd0V3WUgKK0tvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVqOVdFWit2ZWNUd2tOTVBmQ3N3SUxyMlA0cnFkRGR1cS9HZFMKK2tLWStVOEFucWVPcFdoNHVEYmM4Vm1TWjlyczZ5QUc1ZHFkMTJyNGgvb0tkVWZRdHA2T0NBYlF3Z2dHd01COEcKK0ExVWRJd1FZTUJhQUZPaFNCY0pQMk5MVnBTRkhGcmJPREh0YnVuY1BNQjBHQTFVZERnUVdCQlRLY1NxZmgxNUkKK3plZS9aWCszSml4d1B2OWY0akFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUE0R0ExVWREd0VCL3dRRUF3SUIKK0JqQVRCZ05WSFNVQkFmOEVDVEFIQmdWbmdRVUlBVEI0QmdOVkhTQUJBZjhFYmpCc01Hb0dDaXFHU0liNFRRRUYKK0FnRXdYREJhQmdnckJnRUZCUWNDQVJaT2FIUjBjSE02THk5MGNuVnpkR1ZrYzJWeWRtbGpaWE11YVc1MFpXd3UKK1kyOXRMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzJObGNuUlFiMnhwWTNsVGRHRjBaVzFsYm5RdWNHUm0KK01HUUdDQ3NHQVFVRkJ3RUJCRmd3VmpCVUJnZ3JCZ0VGQlFjd0FvWklhSFIwY0hNNkx5OTBjblZ6ZEdWa2MyVnkKK2RtbGpaWE11YVc1MFpXd3VZMjl0TDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxSnZiM1JRZFdKc2FXTkwKK1pYa3VZMlZ5TUZVR0ExVWRId1JPTUV3d1NxQklvRWFHUkdoMGRIQnpPaTh2ZEhKMWMzUmxaSE5sY25acFkyVnoKK0xtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRmVUd4aGRHWnZjbTB1WTNKc01Bb0cKK0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUd4L2labzliUW02UGpaTmxra3Z2bHlzMkw5WnZSeG56ZzI3elZydmtPSUsKK0FpQU1NY1hIZGdzdUxmUXRVTmVwK3V5Y0c5NXVCYzZ6dTA1Z1pNVFZNaEEyMXc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK0xLRkVQSURQUk9EIEVLIFBsYXRmb3JtIFB1YmxpYyBLZXkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRDNEQ0NBNEtnQXdJQkFnSVVBdTNabURzaTFLUWVRbDljTTZpZlVIdXVwMll3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRndworTkRBME1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCbXpFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4TlRBekJnTlZCQXNNTEZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRXhMUmw5RgorVUVsRVgxQlNUMFFnY0dsa09qRXdNUll3RkFZRFZRUUREQTEzZDNjdWFXNTBaV3d1WTI5dE1Ga3dFd1lIS29aSQoremowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVVWalUzN3JzbUxDb1E3TVllT0NYeGJPdkU3eUpaNWpZa0Z2RjF0TAorc3RaeVBrVlBUVVM3d2tNZzcycHdlV0FWQ3VOWUJZKzNPZHRUM1hFekwyWUovcU9DQWJRd2dnR3dNQjhHQTFVZAorSXdRWU1CYUFGT2hTQmNKUDJOTFZwU0ZIRnJiT0RIdGJ1bmNQTUIwR0ExVWREZ1FXQkJUeGkvZ2NjWUM5UVNPRworUnNJVzc3OXVtVkxQR2pBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1BNEdBMVVkRHdFQi93UUVBd0lCQmpBVAorQmdOVkhTVUJBZjhFQ1RBSEJnVm5nUVVJQVRCNEJnTlZIU0FCQWY4RWJqQnNNR29HQ2lxR1NJYjRUUUVGQWdFdworWERCYUJnZ3JCZ0VGQlFjQ0FSWk9hSFIwY0hNNkx5OTBjblZ6ZEdWa2MyVnlkbWxqWlhNdWFXNTBaV3d1WTI5dAorTDJOdmJuUmxiblF2UTFKTUwyVnJZMlZ5ZEM5RlMyTmxjblJRYjJ4cFkzbFRkR0YwWlcxbGJuUXVjR1JtTUdRRworQ0NzR0FRVUZCd0VCQkZnd1ZqQlVCZ2dyQmdFRkJRY3dBb1pJYUhSMGNITTZMeTkwY25WemRHVmtjMlZ5ZG1sagorWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUZTMUp2YjNSUWRXSnNhV05MWlhrdQorWTJWeU1GVUdBMVVkSHdST01Fd3dTcUJJb0VhR1JHaDBkSEJ6T2k4dmRISjFjM1JsWkhObGNuWnBZMlZ6TG1sdQorZEdWc0xtTnZiUzlqYjI1MFpXNTBMME5TVEM5bGEyTmxjblF2UlV0ZlVHeGhkR1p2Y20wdVkzSnNNQW9HQ0NxRworU000OUJBTUNBMGdBTUVVQ0lGU3VBVFphb2FXRFJ2RkZOKzBXdnp3ZzFySnF6UXZOZHRMS3JEUlVlUmxzQWlFQQorbEtvNy84MGIxeC8wdzdyWVlZM04yNlpkM0lXVFlNcEpHTDVPQ3ZqVXpmYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitMUFRFUElETFAgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHZEQ0NBMkdnQXdJQkFnSVVSUjJNU2lsV2puL3NoOEx6ZGhGeTVLRWRtMll3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRRdworTVRJd01EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCa2pFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4TERBcUJnTlZCQXNNSTFSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRXhRVkMxRgorVUVsRUxVeFFNUll3RkFZRFZRUUREQTEzZDNjdWFXNTBaV3d1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSQoremowREFRY0RRZ0FFY3V3dnlOSUsrb0pVMVVvdlRQMkwyUVhWUWtXbVdwVU8rUXJOTms1RjNxNHQ4UGJuRWlGaQorVFJqNVNVY0txNmxjZnZMenhKcjBkN05wamZJQ0F2QkVMYU9DQVp3d2dnR1lNQjhHQTFVZEl3UVlNQmFBRk9oUworQmNKUDJOTFZwU0ZIRnJiT0RIdGJ1bmNQTUIwR0ExVWREZ1FXQkJTT0d0aEdrOVhZbXhSeXpZK1prSGJ0eEJGVQorQURBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1BNEdBMVVkRHdFQi93UUVBd0lCQmpBVEJnTlZIU1VCQWY4RQorQ1RBSEJnVm5nUVVJQVRCd0JnTlZIU0FCQWY4RVpqQmtNR0lHQ2lxR1NJYjRUUUVGQWdFd1ZEQlNCZ2dyQmdFRgorQlFjQ0FSWkdhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObAorY25RdlJVdGpaWEowVUc5c2FXTjVVM1JoZEdWdFpXNTBMbkJrWmpCY0JnZ3JCZ0VGQlFjQkFRUlFNRTR3VEFZSQorS3dZQkJRVUhNQUtHUUdoMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlEVWt3dgorWld0alpYSjBMMFZMVW05dmRGQjFZbXhwWTB0bGVTNWpaWEl3VFFZRFZSMGZCRVl3UkRCQ29FQ2dQb1k4YUhSMAorY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRmVUd4aAorZEdadmNtMHVZM0pzTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFEbm9aMXVMRmUzNW45U3kycGlHdmNKajZNYQorbHBkUEpmRW9nbVpMdStTckFRSWhBUDBCNGpQbldjRkhQRElsWGgyV29PeXNSYk9Pa09mZjc4VzhhMi85dGQ2OAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK01DQyBQUk9EIDAwMDAxODgxIE9uRGllIENBCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDOERDQ0FuV2dBd0lCQWdJVVppK3h1MFQyWjlaM1FtQlo2aU9vdmRJV0NjNHdDZ1lJS29aSXpqMEVBd013CitRREVtTUNRR0ExVUVDd3dkVDI1RWFXVWdRMEVnUTFOTlJTQkpiblJsY20xbFpHbGhkR1VnUTBFeEZqQVVCZ05WCitCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRrd05UQXhNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1CitXakJJTVM0d0xBWURWUVFMRENWUGJpQkVhV1VnUTFOTlJTQlFYMDFEUXlBd01EQXdNVGc0TVNCSmMzTjFhVzVuCitJRU5CTVJZd0ZBWURWUVFEREExM2QzY3VhVzUwWld3dVkyOXRNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lECitZZ0FFQXl0OFBVdk5hSEIwWithOGxaYnpydU1NVFNaUmRBUGJ5UDVyc283NVg4ekQ4YlJhTGQySW1qL05zcWZuCitrY3dlTEZqcC9EU1FyREVyQk95OTBEQnpMbnZMUVV2NXRjbTduQm11WXVkY25aSEZtVFlXbThwMWFQeTNsUzlyCis2SW9DbzRJQkpqQ0NBU0l3SFFZRFZSME9CQllFRlBNSHVqTTBmQ2c2SGd3VkNLMEM5Y2pLQnZSZU1COEdBMVVkCitJd1FZTUJhQUZHR2FDbmlXaUFQTVlaQ29wVCtRYlhWOG4ybHFNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEZ1lECitWUjBQQVFIL0JBUURBZ0VHTUdjR0NDc0dBUVVGQndFQkJGc3dXVEJYQmdnckJnRUZCUWN3QW9aTGFIUjBjSE02CitMeTkwYzJOcExtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwOXVSR2xsUTBFdlkyVnlkSE12VDI1RWFXVmZRMEZmCitRMU5OUlY5SmJuUmxjbTFsWkdsaGRHVXVZMlZ5TUZZR0ExVWRId1JQTUUwd1M2QkpvRWVHUldoMGRIQnpPaTh2CitkSE5qYVM1cGJuUmxiQzVqYjIwdlkyOXVkR1Z1ZEM5UGJrUnBaVU5CTDJOeWJITXZUMjVFYVdWZlEwRmZRMU5OCitSVjlRY205a2RXTjBMbU55YkRBS0JnZ3Foa2pPUFFRREF3TnBBREJtQWpFQWp6MVVuVDRTZ0pnbEFnSnRTdnBRCitlSXJ0bU5IZUEwM3Rsd054Z0dvVG0rOGpQTGQvNTlFLzJtd0laVDJlZVEyWkFqRUE5MURiTW9XdmZJMG1ZUjBZCiswOGhJeDNBNEMwKzM5V1BjTnYrdWlyTm5CT24wOUVBQ3hmVmZXaWpZTEZsalhMMEEKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitNaWNyb3NvZnQgVFBNIEVuZG9yc2VtZW50IEtleSBTZXJ2aWNlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUdDVENDQS9HZ0F3SUJBZ0lUTXdBQUFGbTRLOS90NndJeVBnQUFBQUFBV1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTURNeU1ERTNNekV6TlZvWERUTXdNRE15TURFM016RXpOVm93Z1lReEN6QUpCZ05WQkFZVEFsVlQKK01STXdFUVlEVlFRSUV3cFhZWE5vYVc1bmRHOXVNUkF3RGdZRFZRUUhFd2RTWldSdGIyNWtNUjR3SEFZRFZRUUsKK0V4Vk5hV055YjNOdlpuUWdRMjl5Y0c5eVlYUnBiMjR4TGpBc0JnTlZCQU1USlUxcFkzSnZjMjltZENCVVVFMGcKK1JXNWtiM0p6WlcxbGJuUWdTMlY1SUZObGNuWnBZMlV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXcKK2dnRUtBb0lCQVFDYmk1ZkFURFhqbGV1WGMyMVFpTXlQbWVVQ2pGNENKOFZIRnZKSHhsbHNncE5KSjhXZ3Q3d2QKK0lGMUhNYmxkQ2YzRUw2SEl6Ukk0UFNaWUQwUWRPOVNrRFJINXB0UThGT3JTd1lIYU5oMUJJZHVZazhMMHhFcmUKK3EwN3p3bW1VS01Nb3l5QTNGbmlTMVZiWU12MndGekphcXM1Um9mRHE0ekVacTBXVkMrR0l2djg4c1VvTW1zVWcKK0tnakIyVmpTczl2MHRKbWk3NEhRTTlSU2F5QW1ualVIZUZBZWdwWWtYQ2ZyQitPRVhlZm1qTkJRbE1lRnFZMDAKK28rTG1md1J5b2UzN1VUd1hvMkFpWmVNVVo5bmNjUmxDaTg1cFN0eDR2Y3d4dXhKZ3hCNWNqbERXNHhIUlUrRUwKK1hURXR2Tm1JZk50UVJiY25nVlhoalVmWVQxM2NVYnpiQWdNQkFBR2pnZ0ZvTUlJQlpEQVFCZ05WSFNVRUNUQUgKK0JnVm5nUVVJQVRBZEJnTlZIUTRFRmdRVWVSQU1McU5jVDhGTDNoV2JWakp2dHpIUjFSSXdFZ1lEVlIwVEFRSC8KK0JBZ3dCZ0VCL3dJQkFEQUxCZ05WSFE4RUJBTUNBWVl3SHdZRFZSMGpCQmd3Rm9BVWVvd0t6aTlJWWhmaWxOR3UKK1ZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXUKK1kyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3VW05dmRDVXlNRU5sY25ScFptbGoKK1lYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCQlFVSEFRRUVjVEJ2TUcwR0NDc0cKK0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk5sY25SekwwMXAKK1kzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXkKK01ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ0hkVUdGMmdIVjdUVzE4RWxack9DUkJyVkoKK3l1M3dEbXQ4ZHNUbFRIYUZ5VUExY3V0M2JhSUFhbnNQRnVlNWFmYldwWE5PZTlWWmFrUFFBQm0yUDJCQnRwRVYKK3RWR2w5OC9JZnhncS9RUnlsbjRnRENHV09iNDlobkRteVgra241NGNGbkxMYjQ3THhTU0VwbkFRRWZyUlR2c2cKK2tzN2IvZHJ6UWE4bHA1a0prVytLeFBMMHI5YWp2Y0EwOFVKbUs2em5LQS9PeWU0VUJUemF2czJheEtvYVdtK28KKzhLM0VCRE9TQWo5Q1pJYUxnQWVKTk8yREdBeUZCZ3pHYkJMOU1aUjBsTXlIZU96V01DU1QzTDUwZzN5ckNpVmYKK1g4NmJVVjNiQVlFM0txYTNvQ0h3NU13NTBndmNGTlBIbU1ieGNWWFJsUTNQdGZ2ZFNwdzNtREdHbTA1ZkZ5Y3kKKzJvbU9TZE1mS2o2UGd2Y1VrTGV0MTJ4ekFIZVcrSzhpa3BaZEhOSmtRb1JvQk5jWlgxRWsxYVR1QS9obiswbS8KK1ZucWQ3K29oTlZwa25wUmNyWGp3dVdOckRMYXZrY29RbFkzSlgyZFlHME5jNlFIRWpzVkVpMDUyRWZJdDV1ckQKK0FVRVhjZFl5ZEJ4b01mLzZNTFNHaUtpU3NmUWJPcllCei9ucmJSc29XZU0veGYxaVFEMDBRdzJBTnczVGRUWSsKK2ZpNE1pd1JlVXUzQjVvMlNrZ3htSG5WMXk2SCtiUXFrTG1PUExjMHF0QVdGcTgrUGtQbzVHN2ZqMDYzZGpUNU0KK1VrY3crZFo5aU1hd09BeXpQMEViTklnWTdHYUI5bmxWNHp6SVpscXN0NEkxb3JoRzlodWphT2pXR1l0QmZUWnQKK0psQzVJTkN4NlhISGQ2UTI3QT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTWljcm9zb2Z0IFRQTSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0ICgxKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGOVRDQ0E5MmdBd0lCQWdJUVhiWXdUZ3kvSjc5SnVNaHBVQjVkeXpBTkJna3Foa2lHOXcwQkFRc0ZBRENCCitqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1RCMUpsCitaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUVBeE10CitUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTBNQjRYCitEVEUwTVRJeE1ESXhNekV4T1ZvWERUTTVNVEl4TURJeE16a3lPRm93Z1l3eEN6QUpCZ05WQkFZVEFsVlRNUk13CitFUVlEVlFRSUV3cFhZWE5vYVc1bmRHOXVNUkF3RGdZRFZRUUhFd2RTWldSdGIyNWtNUjR3SEFZRFZRUUtFeFZOCithV055YjNOdlpuUWdRMjl5Y0c5eVlYUnBiMjR4TmpBMEJnTlZCQU1UTFUxcFkzSnZjMjltZENCVVVFMGdVbTl2CitkQ0JEWlhKMGFXWnBZMkYwWlNCQmRYUm9iM0pwZEhrZ01qQXhORENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFECitnZ0lQQURDQ0Fnb0NnZ0lCQUorbitibkt0L0pISVJDL29JL3hna2dzWWRQelAwZ3B2ZHVEQTJHYlJ0dGgrTDRXCitVeW9aS0dCdzd1ejViampQOEFxbDRZRXh5alIzRVpRNExxblpDaE1wb0NvZmJlRFI0TWpDRTFUR3dXZ2hHcFMwCittTTNHdFdEOVhpTUU0ckUySzBWVzNwZE4wQ0x6a1lidlpiczJ3UVRGZkU2MnlOUWlEanlIRldBWjRCUUg0ZVdhCis4d3JETVV4SUFuZVVDcFU2ekN3TStsNlFoNG9oWDA2M0JIelhsVFNUYzFmRHNpUGFLdU1NaldqSzl2cDVVSEZQCithK2RNQVdyNk9salFaUEZJZzNhWjRjVWZ6Uzl5K243N0hzMU5YUEJuNkU0RGI2Nzl6NERUaElYeW9LZVpUdjFhCithV09XbC9leHNETEd0Mm1UTVR5eWtWVjh1RDFlUmpZcmlGcG1vUkR3SktBRU1PZmFVUmFyenA3aGthOVRPRWxHCit5RDJnT1Y0RnNjcjJNeEFZQ3l3TG1PTHpBNFZEU1lMdUtBaFBTcDd5YXdFVDMwQXZZMUhSZk13QnhldFNxV1AyCisreVpSTllKbEhwb3I1UVR1UkRnelIrWmVqK2FXeDZyV05ZeDQza0x0aG96ZVZKM1FDc0Q1aUVJL09abG1XbjVXCitZZjdPOExCLzFBN3Njcll2NDRGRDhjazNaK2h4WHBra2xBc2pKTXNIWmE5bUJxaCtWUjFBaWNYNHVaRzhtMTZ4Cis2NVpVMnVVcEJhM3JuOENUTm13MTdaSE9pdVNXSnRTOStQclpWQThsamdmNFFnQTFnNk5QT0VpTEcyZm44R20rCityNUFrKzl0cXY3MktEZDJGUEJKN1h4NHN0WWovV2pOUHRFVWhXNHJjTEsza3RMZmN5NmVhN1JvY3c1eTVBZ01CCitBQUdqVVRCUE1Bc0dBMVVkRHdRRUF3SUJoakFQQmdOVkhSTUJBZjhFQlRBREFRSC9NQjBHQTFVZERnUVdCQlI2CitqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakFRQmdrckJnRUVBWUkzRlFFRUF3SUJBREFOQmdrcWhraUc5dzBCCitBUXNGQUFPQ0FnRUFXNGlvbzErSjlWV0MwVW50U0JYY1hSbTFlUFRWYW10c3hWeS9HcFA0RW1KZDNVYjUzSnpOCitCZllkZ2ZVTDUxQ3BwUzNaWTZCb2FnQitEcW9BMkdiU0wrN3NGR0hCbDVrYTZGTmVscndzSDZWVnc0eFYvOGtsCitJam1xT3lmYXRQWXN6MHNVZFpldityZWVpR3BLVm9Ycks2QkRuVVUyNy9tZ1B0ZW01WUtXdkhCL3Nvb2ZVckxLCit6WlYzV2ZHZHg5ekJyOFYweFc2dk8zQ0thcWtxVTl5NkVzUXczNG43ZUpDYkVWVlE4VmRGZDlpVjFwbVh3YUJBCitmQndrdmlQVEtFUDlDbSt6YkZJT0xyM1YzQ0w5aEpqK2drVFV1WFdsSko2d1ZYRUc1aTRySWJMQVY1OVVyVzRMCitvblArc2VxdldNSllVRnh1L25pRjBSM2ZTR00rTlUxMUR0QlZraFJadDF1MGtGaFpxakR6MWRXeWZUL043SGtlCiszV3NEcVVGc0JpKzhTRXc5MHJXeDJhVWtMdktvODNvVTRNeDRuYSsySTNsOUYyYTJWTkdrNEs3bDNhMDBnNTFtCitpUGlxMERhMGpxdzMwUGFMbHVUTVRHWTUrUm5aVmg1MEpENm5rK0VhM3dSa1U4YWlZRm5wSXhmS0JaNzJ3aG1ZCitZYS9lZ2o5SUtlcXBSMHZ1TGViYlUwZkpCZjg4MEsxaldEM1o1U0Z5SlhvMDU3TXYwT1B3NW10dHl0RTU4NVpJCit5NUpzYVJYbHNPb1dHUlhFM2tVVC9NS1IxVW9BZ1I1NGM4QnNoKzlEcTJ3cUlLOW1SbjE1enZCRGV5SEc2K2N6Cit1ckxvcHppT1VlV29reFpOMXN5ckVkS2xoRm9QWWF2bTZ0K1B6SWNwZHhad0hBK1YzakxKUGZJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK01pY3Jvc29mdCBUUE0gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY5VENDQTkyZ0F3SUJBZ0lRWGJZd1RneS9KNzlKdU1ocFVCNWR5ekFOQmdrcWhraUc5dzBCQVFzRkFEQ0IKK2pERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVEIxSmwKK1pHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRUF4TXQKK1RXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFME1CNFgKK0RURTBNVEl4TURJeE16RXhPVm9YRFRNNU1USXhNREl4TXpreU9Gb3dnWXd4Q3pBSkJnTlZCQVlUQWxWVE1STXcKK0VRWURWUVFJRXdwWFlYTm9hVzVuZEc5dU1SQXdEZ1lEVlFRSEV3ZFNaV1J0YjI1a01SNHdIQVlEVlFRS0V4Vk4KK2FXTnliM052Wm5RZ1EyOXljRzl5WVhScGIyNHhOakEwQmdOVkJBTVRMVTFwWTNKdmMyOW1kQ0JVVUUwZ1VtOXYKK2RDQkRaWEowYVdacFkyRjBaU0JCZFhSb2IzSnBkSGtnTWpBeE5EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQUQKK2dnSVBBRENDQWdvQ2dnSUJBSituK2JuS3QvSkhJUkMvb0kveGdrZ3NZZFB6UDBncHZkdURBMkdiUnR0aCtMNFcKK1V5b1pLR0J3N3V6NWJqalA4QXFsNFlFeHlqUjNFWlE0THFuWkNoTXBvQ29mYmVEUjRNakNFMVRHd1dnaEdwUzAKK21NM0d0V0Q5WGlNRTRyRTJLMFZXM3BkTjBDTHprWWJ2WmJzMndRVEZmRTYyeU5RaURqeUhGV0FaNEJRSDRlV2EKKzh3ckRNVXhJQW5lVUNwVTZ6Q3dNK2w2UWg0b2hYMDYzQkh6WGxUU1RjMWZEc2lQYUt1TU1qV2pLOXZwNVVIRlAKK2ErZE1BV3I2T2xqUVpQRklnM2FaNGNVZnpTOXkrbjc3SHMxTlhQQm42RTREYjY3OXo0RFRoSVh5b0tlWlR2MWEKK2FXT1dsL2V4c0RMR3QybVRNVHl5a1ZWOHVEMWVSallyaUZwbW9SRHdKS0FFTU9mYVVSYXJ6cDdoa2E5VE9FbEcKK3lEMmdPVjRGc2NyMk14QVlDeXdMbU9MekE0VkRTWUx1S0FoUFNwN3lhd0VUMzBBdlkxSFJmTXdCeGV0U3FXUDIKKyt5WlJOWUpsSHBvcjVRVHVSRGd6UitaZWorYVd4NnJXTll4NDNrTHRob3plVkozUUNzRDVpRUkvT1psbVduNVcKK1lmN084TEIvMUE3c2NyWXY0NEZEOGNrM1oraHhYcGtrbEFzakpNc0haYTltQnFoK1ZSMUFpY1g0dVpHOG0xNngKKzY1WlUydVVwQmEzcm44Q1RObXcxN1pIT2l1U1dKdFM5K1ByWlZBOGxqZ2Y0UWdBMWc2TlBPRWlMRzJmbjhHbSsKK3I1QWsrOXRxdjcyS0RkMkZQQko3WHg0c3RZai9Xak5QdEVVaFc0cmNMSzNrdExmY3k2ZWE3Um9jdzV5NUFnTUIKK0FBR2pVVEJQTUFzR0ExVWREd1FFQXdJQmhqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUjYKK2pBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQVFCZ2tyQmdFRUFZSTNGUUVFQXdJQkFEQU5CZ2txaGtpRzl3MEIKK0FRc0ZBQU9DQWdFQVc0aW9vMStKOVZXQzBVbnRTQlhjWFJtMWVQVFZhbXRzeFZ5L0dwUDRFbUpkM1ViNTNKek4KK0JmWWRnZlVMNTFDcHBTM1pZNkJvYWdCK0Rxb0EyR2JTTCs3c0ZHSEJsNWthNkZOZWxyd3NINlZWdzR4Vi84a2wKK0lqbXFPeWZhdFBZc3owc1VkWmV2K3JlZWlHcEtWb1hySzZCRG5VVTI3L21nUHRlbTVZS1d2SEIvc29vZlVyTEsKK3paVjNXZkdkeDl6QnI4VjB4VzZ2TzNDS2Fxa3FVOXk2RXNRdzM0bjdlSkNiRVZWUThWZEZkOWlWMXBtWHdhQkEKK2ZCd2t2aVBUS0VQOUNtK3piRklPTHIzVjNDTDloSmorZ2tUVXVYV2xKSjZ3VlhFRzVpNHJJYkxBVjU5VXJXNEwKK29uUCtzZXF2V01KWVVGeHUvbmlGMFIzZlNHTStOVTExRHRCVmtoUlp0MXUwa0ZoWnFqRHoxZFd5ZlQvTjdIa2UKKzNXc0RxVUZzQmkrOFNFdzkwcld4MmFVa0x2S284M29VNE14NG5hKzJJM2w5RjJhMlZOR2s0SzdsM2EwMGc1MW0KK2lQaXEwRGEwanF3MzBQYUxsdVRNVEdZNStSblpWaDUwSkQ2bmsrRWEzd1JrVThhaVlGbnBJeGZLQlo3MndobVkKK1lhL2VnajlJS2VxcFIwdnVMZWJiVTBmSkJmODgwSzFqV0QzWjVTRnlKWG8wNTdNdjBPUHc1bXR0eXRFNTg1WkkKK3k1SnNhUlhsc09vV0dSWEUza1VUL01LUjFVb0FnUjU0YzhCc2grOURxMndxSUs5bVJuMTV6dkJEZXlIRzYrY3oKK3VyTG9wemlPVWVXb2t4Wk4xc3lyRWRLbGhGb1BZYXZtNnQrUHpJY3BkeFp3SEErVjNqTEpQZkk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIEFNRCBLRVlJRCBDQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFGQzRDCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVdrY1lvSUVhSE4yY3dBQUFBQUJhVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGd6TURJeE1qZ3dNRm9YRFRJNU1USXpNVEl4TWpnd01Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVGTlJDMUxSVmxKUkMxRFFrSXpSamN5TmtVM01rTXpOMEpHTjBVNVF6WkRSa0ZCTmtWR01EWkdPRGhHUkRGRworUXpSRE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcE1zbXBOeUlzUmF2WTZiSworU2dxOURVc3hCelpwckJYaEgrOGxVVGFmNEsrSC9oeE91b01VUnUrUFFJNmNCMk9VUU4yL0JiRTZMdExxakUyTwora0NwZHluMlhpNFdaL01nMHZVTUtjWXFtSDNMQWRGTXp6ekhZQk8zRjZTUzcwQnlBdXc5aE91ak9YMHpSK0FjMgoreHpXOXFyRTJFaGhudEtnUU03bWVXYlRvY1puSnYwRzMreVZwWjVqMXlyTmhxMGF1cGpOWUY5L2tHeFIxWTRyaAorTmV6V0pyWitsWllTb0xsWEVDNlpKYWxiQWFWVzhRS0ZSWE8xV1pQK3l1djQwV09naGhjajdwR1lEd1JBMGxxbgorNVE0a1JCaUF3clVOb0VPTXJNSEtqZ2FjZ3V2TlJvOXNZZ0tUNEFNVnVETU5HZ1JxeHpNaDd3YlNrVUI2ZHZ3NAorWG0yQTlRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVd2Rua2ExZmh0YzVqSkg3b3Rtb3VGemRuQUtBd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNMdUR2NAorVFV1ZVNwNXh1NHVYWnVOWTAzT09VaHZQRDh5YWJFcTlJM0JYSXhvUTVEVVFzS3BCckZqbDBNbk9RU1grRmJvegorWWl0UGczbWswZVRkUHVCMk4xUlVyQ2d1ZmIwZ3RvTlRjT0NtcTU5VkVRWU5wb1lYdmhFaHMwS1dnVFNQY2UvbAorUzF2QldxcTBmRFJFVCtWeTFhWkxqRytkV3JDZmh5UlhCb0V0Ym9GaEpYTFdLdmVyZytwZFIyRERhZ3B0RTBtbworK3F0TmVqU0pxUEUxc01mVlBURFp3MHlXN3FFY0M0SjF1S3lXM1BZR3RoeGMycnFWRU56UG80RmJBZTZSRE9oZAordGJwaHd0N202N1Z0V0VFR0IrQ3FTNU5jUTNwbWhxc3NCWlVjbHF2aTdJalFMUHBuS284dWNlSWVaalhnMERBSworOVpmOXhWckM0My9XcGpZZlNsT2VVUFQ0Zms4MjJ1UjRtNHdxaDlSZDJUbzlDQmIxRksvR0kydlowNWVNZjVweAorcE1ReGNuazA2Sy9Rd3oxZlBTL3RGTzJHeTcrQ0FlcjRsSWdSakx2V2w4bCtmcWVxMnBiSElPZ0Z4K05qQmx0dAorWFNJc3RrTGx0U0NtRU1pcFpRVDFoa0xGOW8wbmhSQUtQMndNUWZkQ1hXUy9MTjFTdDd1V2NlT3h1ZkhiTWxyNgorY1d4SzFwamdiMEsrTlB2RUpLbnZPeFcrTUszVDE5dStGQzFNb3BLUElsdldMVnhUNXFuSzF2QUxxajlFU0xsUQorc2QvSTlZU0RTL1NvZkhJZjdpaGhacXBBRG44RERDWTI5Ni9WVWZoQ04vTEs1VGtnNG9pUnVjNGY0RlZDNlBWRAorS2hUbk5yQjZPOWVCTGxpa3dPbExpRXhEU24yRVp4V01NZkVMclE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBBTUQgS0VZSUQgQ0JCM0Y3MjZFNzJDMzdCRjdFOUM2Q0ZBQTZFRjA2Rjg4RkQxRkM0QyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBanZ4Sit6OG5GZWxWd0FBQUFBQ096QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreE4xb1hEVEkxTURNeU1USXdNamt4TjFvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVUZOUkMxTFJWbEpSQzFEUWtJelJqY3lOa1UzTWtNek4wSkdOMFU1UXpaRFJrRkJOa1ZHTURaR09EaEdSREZHCitRelJETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE0NFlzaC9KcVpHQVg0ZWZvCitCVUVLbWRkY2ZLb2Jld2Jib1RtcVdvaTg4RkdWSjIxTmlMakh2Yzk4RnZML2N0MVZlNVhaZTBkNTlYb2dMUkUvCitWbmNtZkdRbncxbEdnaGR6TzUza2h4bXFFWlczMWY2L3hDbkJTRXZDU25yTkpZYndpMEJGenZ6ME9VcSs2eVc4CitaZHpwUXJBR3kzellVUnY0MTdVWGJsSWtKMmV2ZUxUcTNaM3RpaWIzZ21JTlU4YUpDK2hGTHN4Y3VOOWhraTZLCitWbEpxM2xoMTJxK3BiWkpFZ0F6aDdBcHUzUkFOTmxjWlRyTWVQUTJCcnJoTVl1R2JRdXg5UzdxN0NyZWM4QVowCit3YWVuNXllYkg5WE9GTE9mdDVYZzdGclZWK0ZJZ2hFQzJ0WkhFWFlwNzAyYkNRSHNTRVJPRnlMOFhTVDBtTDArCitTYkp3REVPMUhiVStPRE5tRnNrbGR0YjdONVhvRlpnb2R1dEMyZXRwaWMzVWdxbWhsdHFlZWNLYkw5QlBZais0CitmcmFKcGJkekFrUFRsYlNkK2Vnb0IrZHNSUzRYdmx3M05PY1FXZmtTbDZ5VHF2ZjRPczU3MGpKVjBoZVlLdFgvCit5cm82ajVHaXc0L3RFYVZjbjdVN0xjOTFNWExqRWM2QURyY09ZVmZzdGlqK29HS0VDYWcra0hoenl5cWJCL2ZQCit5eENWVnRWdllub1FxMkRyT2dJT2tDRGhkR1dJM3JhUGpjVUNwNGZKK0M4NC96TW4vbGZyNms4bkRlZFFoNUVBCiswclBHQ0d5cDJRSEIrdWhHQVZOQkZlQW5oeUQrejBhZWxpK29zSU82TGRETzFvcjF5QU9qYy94MDQwWWh4MDEvCitmRVdheVU3eEh4MURYOHl0YUszZ0crNTRZcnNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQ3dvRk10MW1LKzViRDg2CitFaUlDVVZ4Q0R0cWFNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQU8zUUswbXlqWFQvSFZWeEdQVjFzY1JFNkluS2tNd0FuVVBkL0dDZyt4MEp6Cityc055MU5BcS9oNTFvS29rMzZsUTNVd0RWT2Z2OUFFSGdSS2x6alIzZlMzOUdRQWttaDQwSzU1ZFFxK28rSlFRCit2bUVxTk5uUHJWYUdRQVNBOE0zZ0ExZWxaL3FHR2xnZ0Yremp2dDNhd3RNdG5jTURwTjlDVjVFamkxOHk5T3RyCitmM29ZTmNWTExCWUhCMUFKdHB6NUMrL3NraTc3Zk9RZ1AwTWlhYlhWVFpjN2xGU1ZHczFkMlI4QnB6WXdhNnAyCitrVFNsYXlnMHNUOU5sNHVQb1F3bjZBRlNMaWtVNUc2bFVqbWZtaCsvWXdQTHdIUVN4RWtLR0g5cHpFOW8xN01ECitNRkZhbDgvMXVMcmJaQmJTTFJnN0E4c1VFNmE1YnBFSnpMSEFBZkxVbHVnbGtXOGVmVkNBMWNRMEY5MG9yd21UCitqY0NsZ3E4VEx6OHc0cTNUbE91cjRMTU1kL2RwZkpvVGxqNS9GeUZsbzEzeCtCZ3FGZEdGeGovZkVpYVNBckVFCis5L3ZqcFB2QU9yMzVVZFJOb2lKMFBKWExCV0duaHhBOC9SalA1Q3pXRlJwUzI1aFcrRE0xcUhhVlZXZG9vTUdvCitUVXM4dm16UmZuajdLb0JSc25Tc3BQMlJtWGd4QjBmTzVFV3crWVhhUkxBSkpwU0Z3SUg5Mng3WUE0Ym5aZGxQCis2ais0OGpZL1htaWpXZVd2REt1ZHFCakVodjZwRVFkS2ZOV1RYT2JnQXNIQlMzYjM1Y0w4a29yTjVydE15eWtTCitjQ2F6UDhoanVEWmk1NWN3Ty93WXUxSVpEN1JNc0tCTWI3VXdTRnE5UVFrWGtncXh3TUh0dGlnRXNLZnljK2c9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIEFNRCBLZXlJZCA1NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4OUM4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUZjbXBlak9oVnlFNEFBQUFBQUFWekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXpNMW9YRFRNd01ESXhPREl4TVRFek0xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVGTlJDMUxaWGxKWkMwMU56aEROVFExUmpjNU5qazFNVFF5TVRJeU1VRTBRVFUzT0VGRFJFSTFSalk0TWtZNAorT1VNNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBb3VnWGo2TnVCcmx3elhJSgorOE16UFZINnphU28zN3VCblZlUnNGbm5jWnFZZ3o3aEtrNjZVL1RyTXhoa1JOOFNHblJDS0J4K3NOdWp4Vk5XVAorOXNIMHArTERQM0VsRytJWjFtUTRFd3pJaGp6R08wQ3NHTG5LUWJFbUFLVmkwWVRUcjM1VGJxTUZsVDF4T21IbworK2ZtWWlaU0ZkK1JtN3FsOG5PaDVpcGJrYU1tQnpVRDArb081SytET205WTNOQzJOOTcrbnBPa1BBbEdNNmNJQgorR2M2cmJOZjlDVllCKy9Qc0ViaXQ5N1lCMTlQclZoWU5kMDBSRXlueUp5T1MyZ2lLUTNKL1F5TEZuaURHeUJ4RgorQ1RRUVk1aXRxWGxNODE1TkJTZEk1anl5NWdyVDRDblh6YWJlTTdHUU5oOG9abXlwVm14N2o3TzdsVURiN0pUcQorcENWOFN3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMEVWUlRQN1psM2hJek5zU1lyNldVV2NQVmZzd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJWb1dycAorc1dDNVJFVmRZWUZKbzZpYWRPZ2RDbXhEeEx0ZGJCc2VmWlRabzRFWWtjeUlTYXZ6ZjdGRDJWWUpsYlJEUmZ2MAorTTM2QXFmUFBRaHlpMEgxMG1WQjdwOGtMQ1FVak8xUnNaekxLd2JSMTV3NWgwSG9KVG5qVCtyLy9jaFBObjZ0NworZHZJQVJDVlhpeWptaFZNMWdnUHRIZGw3QzNDOXluNjFIbEtQNzlWdVBBdExCTTBreStUUGowRGtjZ212RnhUOQorWGhYZDVyazFXbTZkazJMc1lvQ29NbTJSY1UvVHA1YVZ3VHBkdWNNQkJQaVpYWlZSclZYbFRJMkplbnQwL2dyZAorN2ErQmNiWFdMQkFkaEYwWFdwQjZkMElISytRUnlGMHZUd2ZXanBpcmRmOTB3b1hGWnJJVnF1ZktKWkNPbU52RworZkIvdUQ0eGFMUTIxMDZJWjVhdmw5U1RHU3NqUnM3Q1NhdHMvUUJtYkF1YVpxT3NOYm1QKzVKdm5BQndWWWlOZgorbDFqNzJwR0NSVDVqRHg5Z0p3VVY2ZzY1dXJHeWRPd01IN3dOWUxZK3hBaXlpcXo5bXlrUmVTLzE3RlhTa3pHUgorWXZrY1JQU0tZbCtDU3E4MmQ2N1NlejhaVXBuTVlnS2RubVBkL3FCYjB4RkttTlE5WEkxaDh4RlpkOWhzN01OMAorelphbklMaWVWN1FkbHlydG92eTROZ2VxaDlkSnM2S1FSQlNBa2dLQmNBSzBraVRObEJxTDdTeisrWStOaTVMTQoramlxM3g3dWlMLzlIS1FaYk1mQWVISHBDZy82YmJUdWZkUUFIK1lYUVFuR0c1MVhmUmw1emxsVVkzUFh5aXIvLworeGRUbmpvMHh3bldERW4wVElubkJFVWJSV2wvY1RnTzhnVVlTeEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBBVE1MIEtFWUlEIDE2QjM0MUUzODFDRDVDM0U3OTlBQzgzOENBMTdGMUY3RjNGNzQzMUUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFqMGUwZWRtMDRBTW1nQUFBQUFDUFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt4T0ZvWERUSTFNRE15TVRJd01qa3hPRm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVRlVUVXd0UzBWWlNVUXRNVFpDTXpReFJUTTRNVU5FTlVNelJUYzVPVUZET0RNNFEwRXhOMFl4UmpkR00wWTMKK05ETXhSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFKMU02TitQYjJYd1VqMWkKK1FvZk1mdjlWQ3Q1RVpjOW1ibk4xUkZoVnlvTHFlQXNHUTBzR1QveEdsMTMvSmlaNnNxVUM3citrcHhVSkZqblAKK1ZOYmNIWEZnOFFZRmtHNEFWYmo0MUFiWTgraW5SWDVsWXFlUWFmdTdFWldNMnFoQURGamlQbEcxcGhFWGFWbkQKK0ZSRjNBNXFsZ1BWWmRvNDZ2R2pITE5XRFA3MVhsWFBqWlZRTUp5ajV5c2RkbWU1UTg5dENKWnpVcEgzL1FpWlMKK0tZZ1IyQWRNUWFxT0ZJV3V3WHJwd3RlWmlJNDJpS1YwMEdQUHZnWDNmd2JrYkRWOWZMSWp0emdHTUo3NDBhekQKK1dWNG8wci9MZUtteDQ0OE8xaHIvd1lMa3d3QzMvRnNnaUdZcVdKMENmK251a01XS2Nkdk5Wd0x4RGJLRHlVSlEKK3l4czRWSmZoQkdZQy9pcUxMbjJROVdqOGtad2lacERUTDhVVHY5MUpJeEZpbFJZaWQxa0pvTjQzVnBSclVTMWoKK0xwTnBHVVZYYmMvckl4cUtydXZvZFhLdXQ2MEdUUmlCWFdwcHdrNmVONWZIWVlvYmtRTTBHbnpTWjhwcjd4bzYKKzNqWEhPTklRLzZSeUJpWFg0NFh0WDljeEdNdTBENG41Wjc4ZlVzR3ByOFg3QWc2Q2JKbktiL1I0SFhoOUJLM0gKK0NnM2lKcmhqYkNEcTlXQi9XZWg5S1VZUXRxOElaUkdUT3l0ME9ZRWEzOCtsTnIxUkhUcVdnWVZNTGhPNitCUE8KK0lNcjdJaW1lUnZSUlhieXlGK1BXSzB3ODFhSkcySm90WlVSM1I3am5Ram9MMUh6WkFqeU1sbkVMZUFGNEV1VU0KKzZzR2lSbDhMODZoSTBEckZ1VTZRSzNLL2dDSWJBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU2ZLRG05RUZidlE0WUwKK2h2YTVYdTJKUEZ3TXhEQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUcxeXBScUVMM3phWGVRN29xb0NQV1J3aFBjd3JSSVNQbmhlOGR0NUJvZXcKK2lZd09Nekxnem15emxsWmlNRHpKYThrYWp0NXJHUHJENGxpMEpqK0RzVkRhOWNwU2xoSkJ0Vlc5RzFjQU4vVGQKK3hRNkRKRUtvU3c4eE5peGJiMXNDYmF4TGZoemFPTEJsSzZYUkU2bmgvdEY1aXZwbVRvN2s0QTFCNk91akV0N1YKK2tjM0p6b1cwS2hhYzdYUHZ6ME1nRjBWTjcxSXVZVGFXbDhDclVhRXJjNUQ0T1VsaDFneUZkcVpYV0pXWWVnUU0KKzdkZDNPTldZZkxhaVh6MUdMRC9XZGNvTU8yaEFYSFpNckpkU2JlWTRLN01CSzdYZEQxN0hkWkFWcXRDZEdMa2sKK2lWU0dJMVlHZXhwRGJpL1dadEgxMFI4QVlVS0s1cGhhU2VMNDZhZ0k0anBPeWQ2Z21xbitPZGpoUG0yUG9sa0QKK3NCT053VmVxQnpkRWdoaUlYUXVOVjE3Rzl2OUtmcVdmS1ZJZTFkMEFUQjcwOVJVT3dmRStDNWJZQTRUek13TjQKK2UrRjdEUmdiTktiRjYzOThNVFpJeHo1MnBkUXVBZjdTS1BuRHEzWTIwalNmSURNUWR6UjNsdTdRNWR0YVA3WmwKK2kzQk5kZmVQZHp1YVh0N0Nha0xIdGVza1gwRjV1cVhQSTRmN3NtNG92L3dDLzZiQjlPclU2TjZLb2l5bU5vMFMKK1VrTlZ0OXdIQ2hvQkRobjZ2RW1mQ01wZGZkMVBMSGZWUDlTRHFVTUpCaFFTTlRjTXdsQ2RnNkxUNjZrYTJZMk8KK3BHcEs4U2hxQmg3UkZRY1VvTE4rNTREOVR6a0xLSnQ5Z3FwcW8vY2RzdVZ0bWNHTFNDYkp5NFgweXNVbGpiNDAKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgQVRNTCBLRVlJRCAyNzc2MzFEMDU5RkE3QTk1NTNGQjU5REZENkU4NUJDMTIyMzAwRkYwIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBa0xwZUJHYmNrZ09YUUFBQUFBQ1FqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreU1sb1hEVEkxTURNeU1USXdNamt5TWxvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVUZVVFV3dFMwVlpTVVF0TWpjM05qTXhSREExT1VaQk4wRTVOVFV6UmtJMU9VUkdSRFpGT0RWQ1F6RXlNak13CitNRVpHTURDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTzdPOWYrb2UzYjIwbGgzCit1SFRTbXV0T0R4dFY0WFRTSDZzeTEwbmVqa2JERXdYQXhncjZ5d1c1dkxvVjZKVk5HN2l4YXV3RVU0Z3lESjJRCitOT1hnazN1WjhadGErUlRZeUNpRzg0Qkc0bkQvbUxqSFlCOUJYczM5NlNndDhHTWpiVGI1Q1hrWDNMb01oc1p2CitwTUxpaERCTlZYQUgyWU1oSGxpOWg0MHNkTGRwcHlrNjdGbjBFTjErNmdKck91RTZrNyttMHFOckc4SnhudUhHCit4SHJwNW5QSmRRcFJobnlKNGJmS0ZpcGJoczFGcVcwQ05WS2JOZTNNa3RjRVR4K2pQLzh0Rk02K0NreHh6aXVWCitwakdHZzdzZHZpakI2QXFXK00wVWpDQW1OYmZHS2EwdVd6ZVdaRUZEQjFuZDBjK3FNNE1Db21EUTBKZEVqUUFDCitoOGVGTEdReGZGYVZkSU0xRjFQL3I1azZrWUtEWlJpWnY3N1VXWmJnSGlMNTE5OE1GVTN0L3BQbExSM0EzUUo3CitWQlpzV3VZK0VsYSs2a2R6YUVCWkZLRVV0ODc5L0JLTWZ0TUZNVkNYNzdjeTdJZEpPUVl2SU1DUmtQaVVHSUltCitOV1hldkU3Y2taV2QrVFVpMWJMZ1JiZm5pMXcwUkY0NVZpT09xYTgxbW9WZnU0b2wwQmZLNW9XWEZsVExJWkQzCit2eUk4bmErcGNqUUoyREhZeCtaSkFRa2hqamd5bjlIaUwwZkRhVTI5ZGVnSk5uNVF3K0ZLbEE1TGs1cmxxd3U0Cit2TUd1WlZ1d0xQamJoeWdIanY4N0dEN3FheU9ROGZ4cDRxd2pVdmFDLzFiMHdSZXFueEcxNlVxUDdJV2srK2R0Ciszd0xiL2dmaldGZzljbU5mMmc4cHlPVzl3ZW8vQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlNCUFArOVhiNFFPRXhQCitnblIxaEx0eld0TS9NREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFIb0o0a3VNYUhXMlpYU2luZFVTd0tiLzNianpVOVdVaVY1TjNKUXIybU0vCitYRStZb2FzeTZ2SHJ6Q0M5TUtaL21XUGlrQUR4dlkxdFhLR01uZWFFczYyaW0zU3hQaWprYmVLYUJ5RDVjR2tQCitRMGVCRStsTzYrd2dWSDBKb2ZEeGlNSjRMa0dLcTYyaGZ4Uk5TSElEdmlwWVZsTnd3TjhaVmhsTllic0R5SkQ2CiszazBsSmsvSGhsNlhrRVhDY1pRR1VJb24zUWVsM1U2aWJlcVAwRHB4VlE5WGNITExKVituL2swNEY0YUZ1VHNECisvZXBhZWlKUXI0bXhaRW5wQ1pCMzNBaW1Iemo0T2hWOThuVldRRVRaeVEyMlFjbFVzUlV0amRxUXh1OFR5c1ptCiszSzhMZGJIT0gwVmlXaG91ZFVWTTdNbjJ3cXN3RWtBV3o1MSswd2d1MUJRNzM0MmJ2UkFCMzczZkJwS3ZIMkI2CitFYVRnOUEvdkhlZkNTQkkyMURVU1p2THAxSzVQWnRscktlWVBkTmRNODYzTUhkRUw2L3V4K0MzeWE1c0JqRnNFCit4RWJVRHAyRTNrQzlzUzRyVkdpREZpbCtoekU2ZGNaSkVjdng1bHZGdGZIVGFMdW0rU0JGTUc2bE5LWGxBTmRpCisvWFZGZTFjRGZBd1lnZzhOZ0Q0djZZU3JkcnVtZXY1QjE2cGszdUZTV0hQTis4aHYyOEpYMHpxUXJWalJqNWdPCitWUVRrWXk5QlFwRGxNcFlheDFGZFpDRkovQ3B6M01pMVlVam9kbksyREFsQTc1QUxPSkhyTk53dkNKRFpidStHCitlL00vcHNrbHl0clZRL0x1bmJPNG9qVGRncmQ0ZThjaEhnMFllVDlONXVjNTZ5eFREY3J1OUpVakJxbzExOG1mCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIEFUTUwgS0VZSUQgMkQ2MDVDRDg4MkIyQkQ3MTZDQ0U3MUM5MEJDNzc0RDNENUJDQjFENCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWp5REtPWkFibGFENmdBQUFBQUNQREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3hPRm9YRFRJMU1ETXlNVEl3TWpreE9Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVGVVRVd3RTMFZaU1VRdE1rUTJNRFZEUkRnNE1rSXlRa1EzTVRaRFEwVTNNVU01TUVKRE56YzBSRE5FTlVKRAorUWpGRU5EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU1wOGsxRDc2cUlsR0NsSworRmsyeUtJcnBNd2h5WStFT2d3N0NuNHNvVC9WWWVoSG5uUmdjaWtHWmpiR25USU1PUDdCV0RhM1RkSWRndXlwMgoreG81b3psYm92YUN1SmlOODN1bFFGVlh1dHVXUTNpbEx3QmtLbldydU9UbTNWZ1VJUCs1UDA5cWkzUGNYMVlYMQorTXZxUHZ4ZjEzd1pqaVZWc041dk14QkVJQ0g1RDJXYkZCVm1YZituTXliSTRMYlB6cEpyOEY5UXRaNWFLS0dmZAorNnlKOWlWS2Z0aG05NGRrR1hXTmZVTjhGSVhOajR2UFBOMGVMOVZmRVNEN1BhUHhNWmVacXFaRysrNzRZNjJ4YgorUnNnWHlyK0hWN3ZGUy94VUErSnRRM0JDWFUvMmlaU0NOZGdrdDg2TWUvU1Bjc1RiSHpzSkV6d3dIaFNqQXpPUQoreW1TVTRBM3FiMGhqaDlBMjd1WHk1bnRLUy9zUjNOZWNNdXhucWsxRlZCcFdlNm5IR2ZKTlZ1M0g2WE5sZXE0WQorRHdTV0crNEZzSDZKY1ZxaE83Y2RGYlVmM1pnZ1JIR0ZjeHBrYW1rclE2MHc4NGovL0lHNGEyaGZaYmU2N3NEUworNFUrcm1QY1k2ZkIrbUlRRWN5Z2o0cXYySzl5RmJMc1BjS1pvZWx0Z0gvMHBDRU43dnlMc1JTN1dBcmZaUGR0OAorWFFYRFYza2N0Q0hKQUdINGtTZVkxS0I4Mk5wTGhhL05rU1ROd0x3dDh2OXdRMzdhZEIrMnpjVDdCTzdnTFpCKworUmtvVmowRmtFYTRWT3ZEdkR0cjh5OVdRZ1RsWWpWem9LNUVRNVBsbDBOYldOR2wxNm82T29uaDl6NDl2V3lJSQora2JNM2RuZlVaZFc2Y0hSUHdYcVVXRU84bm1nakFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSQ29EVVAxTlZjMUtuaAorMkZiUHNBenU4R0NJQnpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQkV0aTYzazFWMVdRSkVKQ2RVWVdzVVJRQ1VLbGlTKzB5aUl0YzdvNXdORgorRjRNK0hUekVxN29aSDRlRjdaQ3YrRlkwbXg4bEt2UXE0amNXOWF2dXMzd0lHazdDbEdJU0xyRDY4dldaTWp6TQorSmgvY3lEcE94T0ErbVY4OTBvejBxaHhQWmRLdFVaVFFXanhFNzA1TzUzK1VwYldVZXh2bWp2MVlMUUY1dmx3TQorVFVJUDl6MUJwY1NXRlNtL0RCK205V2YyK3NyNzNNeGdmR1AyVEFIazJrRkRsM2ovbXBkOEhCSjVTYXlpR0lMZQorMXBvNGx4bjlkaFFBWWt0dnpjQzluVU0zcTJ0ZFZoQy9GSlNHRGk5NWpjYzlCWHNvekhpdzc0NTdYa3RmNXBTegorbmNQUEE5NU1PTTV5aitWQmZRUVd0RDFhMVFxeS9HTVFIaUw0TU9DK3FTa3loeDI4dXNWWmhYMTY1aHJIMlQ5WQorWlZ4RUZjZXlnVVYwK0RaV3lvUTZlTW1QT3p4UGtNcHZZbCttb2hRdkI2cFFrajJRUGp4UWpLVDJBN0RZMWx1OQorRkgxTHhsSVNGQVF2SFBRa1BhY3Y0S2lZMUFPRmtpRW0wNHpOU1dOMk9vMW1kTU8rbHVXY0x0TXg0SkVFNUZlTgorQXE0QnFCOU5DZzIwa3o5Y1NVcGNwTUJPamZWdGlDYXBMY2lrcWZGdEE4ejQ4ck5hdHNiZTJWZkxQazN2WlFXbQoreXB1Uk5LS2tlR2hvaCtZa3UyNlRaZXpvUUw5TU14QXNya21wZUU5bzdyeXhhL1RlTDY5MmlpRkFZRzVVSW56dwordTVSR0tMV3BpYXpKWnoyaFZGMDh5SW44UzdMd2lGVUtVY2F4cmF1VUdlS1FkSHU5U3RPSzF5c0swdlQ1YXRZYworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBBVE1MIEtFWUlEIDM1QUVFNzM2QzlCNEQyODYxMzA5RTc4MTVDMEZBNENFNDBEODY1RjYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFqN3hxWUMvSFo4MUtnQUFBQUFDUGpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt4T1ZvWERUSTFNRE15TVRJd01qa3hPVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVRlVUVXd0UzBWWlNVUXRNelZCUlVVM016WkRPVUkwUkRJNE5qRXpNRGxGTnpneE5VTXdSa0UwUTBVME1FUTQKK05qVkdOakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFOckNYQ2p5V3lZUlRta2QKK2RTUTEreVgyVjRGY01xT25qb3QyWVNuaUZmUFo3Zkd3ZkRmWGZKeWVUNUNWWGNWMHJPdnRTdzVoU0gzUWI5VjUKK1VnSjk3M3draDZiRS95OHBRNTJLelh5c0dmNVZBQ0U3Y3hBNExyNXJYQ1JSYmFYM1JpekIvcXR2UzNkYzRNVGoKK0l6M2NaNXIxTlp2dnVGMEVDaktzREFiNlp2N3Y4eXdiY1IzT1dDOG45QmpWRVo1SDQwb2hoSWMzdGdHbGJ0cmEKK3JCUSt3WmF0MXJiaHpoNk1wM2tRT05BUHV5L1plSzNQQ29FdklOZnNuZDlKS1VKT2V5ci9KelVUTHdCbkRTMHoKK0hqajBFN2dzcGRSL1ZwK2VURDY3eTRjemxZaFFRM0xISUMyNGRja094RmFSZkFqZkRVR0U0Nld4VVlGZitYV1QKK1JtSGZZbzcrR1JmYW5sUnNDWWFBTE1UMWdCcXlEYzJkblRaSlBpa2Q1N3dGR2U5cWNGUHc2UnNOSHpvcEFVcW8KK29ENFJoVk1TQXZHQUR3dnZpWitBdlM2cjZpMlhDc2lEZE5sdWpyOXRPYjFBZ0RZNThvVnkrYzkyM0lUTlc0TzQKK1hLVkJ6K1NhZ3hhbzBtNnVJazRCdDRGU3VScnZ5MXRmUHAwLzNieHlKb1JPdTJtekxid2pRQ1FHazZxbEpaTGMKK25LT0JXNkR1bmFYbURRdUppdmFOMGIvelR0Y1Jnbk1ycmVibW03aEJiVXNwemlySGhTVko5cjZIb1FWQUV4ancKK2kyWFpVQm9SRzNtZXc1S1BZQitkMjZDWnQ3NEdwTi9jRytLNXd4QlZpMTh4akxXSW5NZW5peVZudjdNQlNCMVgKK2srQWJjY2dMSWI1RitRQlorRmJReUowZVF0clpBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUkVXMjBvYkhKTjA5dzcKK2hjOUxMTjdsTzZlYmNUQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUptbXdqNG94Wm5vSXVENmJyeFJaaDZWUDhEUSs3TjB6cGFoWE13Q1poc2MKKzUySkc4eTBlWTFnVi8wVkc1YnpKRHJKWUZRaW12N1pQY1k2dTBXNkpsMDJGNm9udjZQbllKcWNPd1JmbllrengKKzhBNGFBUHhEQzUyaThvOWJOMTlpd2VYSWpqcWMyaXZhVktQU2FlS0g0bFdtY3JncTVvRCt5TFlKbmhnWVlsdzEKK0p5SEI1RkxQKzk4TUczYTZiZU0zWW9zN1FJL1BqeklGUXg5UHhGekNpdldaUGoyOUIzbVZUTHBEYUJBVDF2MEMKK0dsWmRtRVdXUDNzQUNjYWU3RWNHRER6WFduZG1hZ3hXYjRGN3g0a1J1R3dWNGVTQ2IxUXlnYVplVU5jdlRjZVcKK1pUZ0pkbHA1ckFuODlDcHlpZUJBWXdFcUp1UkU0TkRubnZpL0NMdmd0Z09zL1dyVE1yTHI5aGlMdWZvWDhpTG0KK29YWVBraDZ5WnpaL1dtZUhiVXp2Y2RTT3RsOTcwMDFqMVhLRk9BWXhqUDZDUkJROStPdUt1Y3h5eFhvclFON1AKK1h6WDhMRGx5MFc3VWo3Y3JtaTY5TU1NRjhjbFpVNUQ4YnV5TlNCanZudUxMSmZVbmo5TlNWUXBDWGlkeXprYmEKK1MrcmZXMXpyL055MWRxT1lNQ3ZZMTJWMWVQbWNKVmx0bEdSeThEeE90aXluVEowQzdPYlBlMjJWR3BKM1JJamoKK01WdUJIZ3BxZTV1V3RZU3pqSDBPeCsyUWRFL3l3Tjh3N0FmSWNjQ2o5cEM5dXZmemlTd1l5VmdmUWpreHZ4OWcKK1ZPTjEyNzg2emU4V003NE5YL0Q1czdzajI5bE1SWm9VM0xOZlVjSTZla1NvYlFEVWwvSVNwOHh0aDNBNmt4eVUKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgQVRNTCBLRVlJRCA0NjY2REU3NjYyMDRFNzRERDI5QkI0RkRDNTg1MjNBMTQwM0Q2QTMyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBa0VWaXpjYUFqSWhQUUFBQUFBQ1FUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreU1sb1hEVEkxTURNeU1USXdNamt5TWxvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVUZVVFV3dFMwVlpTVVF0TkRZMk5rUkZOelkyTWpBMFJUYzBSRVF5T1VKQ05FWkVRelU0TlRJelFURTBNRE5FCitOa0V6TWpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTDdmZ0NZUzhOSWxSU2tICitIN3J5Y3NxVU9BTm9vSXNXbEQwMGFSVXVLakNPKzhGSU5nWnNFVEdkVzhzb0xybXNjZkhHN3dnOGMyM2J0b0NLCis2VEhSRDJjdUd3RzhnbXVaSVhpNVZrdzJINmxMS3FIeGo0SnFRb3lQOTkwNFhVNlBzQW1pcHliT3VNMVNhcXdRCitZT0k4MEFhNnc5QVQ3TjMwUXZHL0FzUUFNdTQweE1zNVBtcE8zVDNXSlhVbk9CMElpQmdxQnBWSGVzUXBRNzlhCitkR0dNdTAwZ3Y2RXFXS3BqczRJbEZoVXFtL2VyR3h0VnY5dEQ3OEV0L3FUTUg2dlIzUkxXN052aGVwUGgya2VOCit6ZVpqVy90YnlhTm11dktvYzlwVUtvTG1KeVdCc0ljU1pFNW9VSnl1WUZEVEphN3k5NFp6MkcxS0xnTVIyNnkrCit6d3ZWcTZXYzFablZCOTFxeTM1TFMxWXhMR29LMGs4OTdFZ3RYaFRpZEE3ajFmWUFkb0pGOHkrSk4wNDJrWWtoCit3Nmh5bW90a1JjVjMwRzZWL1hLZVRvTEU0Sm1hZklkWHpIcTdYZ1V4K2wxaGhWV1JUVFZuamI4aHo5Z1o2aFh1CitBNlAvKy9jMlNwSHBYdEtTcDk1bVNwZGc1RGw2Y3JzR0cwQ1BpSmlXbGtjYUZudkd2S0lpaEFpWVdraGdHSTY0CitMMlFUV3R1RzUwa3Ayek9WTnNUK2FsYnFFZW4rc0x4Wjc4Rkx0OUlVQlA2SFJmR2tBUUp4UUc4ZkR2cDlDeHdjCiszb1dhY3dJM085OHNkU0pCbm51ZUJJbDdYZFNoekhXeTBtRnNrVDhFZzlSZTQ1SE5EVnJXQU9CMnBVV1Ivc0NWCis2QUpOMHpEUENqM0E1UDNlSU9FWE5PTmh4bWdsQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJZR3N2MFlzT1JoWkl6Cis0Vm1PcFF3M0hDTEZzREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBekRkQ0Y5WkhsTWNCTHp1OURDejVFS1lTa3hvVjJvWTlGQW5qbmpDYmNKCitkMnNkWldjTWRDd0hHQVVtdis4aGVDU0sxMzloWDhHQmZISHVuN0M4alNBUWdMWFRqMUF2S1JyZkFHVnJkNFdiCitWTkF6OUprR1l3OFFpZmdjZ3RaVjE4a3oyS05rM3p0K1g0WUlxSFBLWE5wemdtVUpUM2ZBcGJvNWZtVUREVGQwCis0ZzVtUXNqblVsNkFKMlJDOEZBSUtCVDhBVnhWUzhjZjI5Vjh3ZW1jcTJRaUZLekRSc2RWd0kwdDZ6cktsMEZTCitBbkltUC91WXV0ZjdFT2FRV0JnTmFqbm5UU1JxMGVrU3RQeDRLTkxRZ2lISDdCMjIxSlVLOHQ3cXFSeWltb0g1Cis2aVQxVnlrd0dFRFc3WVhVdTR3VDhPM0xiTU1lQk5UNzJSLzA0aW9FT1FIektRa2x0aVBEVmY3Z3ZZc3I4SDRCCitjSWZjTlhDVHFpOHV0ZndNdVZIeGI5c3NVenJGV0JRQmpIQmRLbnk1aldCTTFvZ3ljUHpKZzVGMWxzUFArZkkrCitpKzlldzYvTWRnSTRDTm41aVAwT1huU0EvWHNGVzFLMVdHYkJpdXRjSXNVeUZacG50VDdqZllwM25ycHBsY3A5Cit4WHZiamNGK1JuZ0Fpak1OZndRRGxpQ0tDSG9yM2l6NGdRSVhrRHd2b0pLZStkV3BveURjZm9zZ21pZHh4OG5yCitrZU0ycFNkdW14UUFzWkxNYmlwMjQ1bFBSbFdYSjlsclB4ZzhyUG1BMnE0dGZPcHJjZXBZL0d3ZjdyRTZUekFXCit6N05CVzFWMnNFbjBWaHM5elNrc1ZJQU9sVjBteGNSblR6SENLWThIM1B1K2lSN2U5UHRIZTFucWZBK3hxVU5MCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIEFUTUwgS0VZSUQgNTVGNERBMzlDQTY1QjY2ODFGMkI3NzExQkMzRUYyMDhBODY3OUQxRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWo4TVdLcXZkNHg4a2dBQUFBQUNQekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3lNRm9YRFRJMU1ETXlNVEl3TWpreU1Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVGVVRVd3RTMFZaU1VRdE5UVkdORVJCTXpsRFFUWTFRalkyT0RGR01rSTNOekV4UWtNelJVWXlNRGhCT0RZMworT1VReFJUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU90RGhEdEl6dS9sK2swSworSHFxOVlmNTZ0Q1Q5V1N6NmlkY1JyMXlJU1JRV1pqdFFoNE84ZlpDd2I5Mkt6dTNIZDVPeXNLbGpxelBjTVo2KworTnF5NWxhRll0Qzdpak9mQ20veVR0ZERPaWRIRyttcEdNM3Jkd01EMnNQdTIwTVpIdDVSUkxXOEFKMHpNNnUvaworRUgrQTVTNDUwZ2xuRXl2RU90djhITzRFcVJDN3IvNldQL0toQVIweFNZUWViV3Z0TEg3TFQwSFFoNXltbk5OTgoremR2eFJCS29mMytGNFh2RTBDR09JUnR1OFFIeWFyTVVISkp1WEhkNG5wSUUzZ1FIQkhBa2R2YzMzcUNtNE9mTworaUZ3TkJaZ1ZXVTlpZDlTVUVqWG1VZ3hqU2duQWJsVzJNcUJKTHRWS0tMdnZiZHFPcVpsYk9ZSGZHMXg0Z00wMgorTHZVQ0lhSzRYaHQyQjJ6WXNXOUNoWktaYi9tT2J4MFhuN0VvWTBHM2oxYWJySnI2RXpnNmdNcnpTMG1vTUZUVgorVXNwQlRMS3dncVY3M3lka1lVb2lHQVlyMHU2ai9MV0pSZG9JVkJBVGlJQ2xHa1ZoYU1SWmFTcUlHVEE1bHMyVAoreFc4dzdXWDdXdW1XWVRxSGV0UTMyVlZlamlpc2tuTUhCOE5MZXJBZFBONFFiYkdERS9zNmJhdHBVeTMvRmxQVQorOWJ4ckdxaUNnYnZtcE1jR3dKcDMrNUsrQW5FeFdNd01Ua0xTdW5SMGNjU1lYTHRFdENMVmVCUFdSZlVoZFNSUgoralFkVitQRUhjZnhKcmNyYjhNc2FDNlBKa1ZwU0UvVDE2WU44WG0xRHBqVDczcllGRXV3czRadmFGLzZiaVo5TQorQjBPWGowMHFTbk9Vd0pkR0tHQmU5SWlabHZRakFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUNVgvZWp2Q1FkajBuOAorQlNydkZlL2FyT0k5S0RBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRjJlS3JqeXFXclMrYVdzWStRdWlDOFAzVDhCWWh3Smg2bUZPZE9vMExRTAorZU4rVmNqWFZwM2tWODE4QmRtampSekVLcDVGU0dxdTFPL0M4N1N0VGRVd095RUNiSmFCS0lnc2tZQ1NJY0oydQorRDB1OWtyRGNzWmxObitTbDA4bzVIL2VPUjJQNlk1S1ZXMUtJVldiM01JMXFuSHB3S3pxdFdwbkhNbVdzSUZxcgorTlFUYlRsOGJMdXBJWEpvcndyZTNBd0FuYUFqaXdKeFgwNjliRVlsZnI3Qndta2ppQjMxcVJROWk5cjNVc2c4UAorblBZZmdhVFl4bk5WOGdLTHY2N3JSKzVaK0dzQ3ZZOGNZZ2xaK3NGbWZZRW52NVFybHAwNkM4M05DQlFGRHFydgorYVBNVkMzbzVZb0RQRTNJVFpsVkJ3K1FUWkVPM204b2J5OG5rcW03UUk5NVkzM0ZZSUhPVndIV0l4ZVpuSWhFTAorSUU5dWJZZXVyS3F6Vk5SMGx5cW9xUnNUcW0yRnVQZ0VSTmlwMkJLMytoczlPaXFuQjl0R2wyY0RvSUhSMGlUSgorV2ZvUGZPdCt5dVJZTm4xWll1eERxN2xvV1p4THprUlhpT0R1ZWJraldUWW1TdXJMVWlNZEVtNkNDS0xmZjVKbAorRk1hSy9LWGVFU0tja1ZGRjB2UXpjZkJzTTg4K3NSdDhzcUpMS1p5Y0VjbU5WUUdvRi8wU2NlNmVQSjZHTzY4TwordWowRUg2ZmpVZmVndTJuc2R2empPdmZmM01kRU85cmE5OHVzOEdIYUNSbHU2QU1GSGhPTlF0bVpIeVBrWW1yRQorYy96bVJ4Ui9YWklrS3RmVWh6cmRKSCtHVDFQUVN3ZHNvVXRTUnlJTG01V1lQUEVpc2VJRmpBMUFrM1N0TXp5NQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBBVE1MIEtFWUlEIDgxQjVEOTlDQkZBQzk4QzVENjFBOEVCRjI2QTg2QTA4NkJGQTNFQ0UgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFrQmUwcWtVaGxQWnlRQUFBQUFDUURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt5TVZvWERUSTFNRE15TVRJd01qa3lNVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVRlVUVXd0UzBWWlNVUXRPREZDTlVRNU9VTkNSa0ZET1RoRE5VUTJNVUU0UlVKR01qWkJPRFpCTURnMlFrWkIKK00wVkRSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLR1hoSUFUcExlNGd0UTYKK1EyR0hTSkRQc000RVRWdlBYTnhOQzFRNDZyZUJBTURPektzbHBUUHNFNTRrcGE0MUxBVGdNOFdRVlp6L0tTY3oKK05lRUREeVEwc1RBV3hVR1FjbkVuemRJS29CVFliZGd6Z2V0ZmQwZVk5M256am0wZE5BTWE5b3NqWTBGVEkxcjkKK0p6R0VQb1pVaUVhK3JlanFDelZaZ0NPcGF0UVZ1bTlqWFMrL3AzeUhueGkzMkt2VGNjMGtzWXRsZ1JicXpJZFYKK05OUDNGSk9Wci93d01vT1poZklnNi9iYnlJampSVWNBK3dYbUcrQ0FBS1VxeGZhZGJLSVRaR0p0WlkwdllXcTcKK0VtTm1BTTFnTFk5RnBQcDF5OHBIb3RLUU51UjBwMittcExwNVlIZUpubUd4Nm5YbmxpNjBTaFRnKzdTTm9YcHQKK0V3aXN4SElydkNLNm9DSzErS084cURrTGRWemVUQ2RmSG5ONXhaWWxlV2U2VFIyM2xwRkY0b0J5VXViWnJlN1AKK1J2OGV5d2Vsd2I5Nm9ZWGJNTE9vMlVCRmJmTUcyZnp1YWVJSGU5VHJtVnM1dFZZcXVnNzAzOHR2UXZ1aVlrZFIKK0pSeTg1VWdvaDhkbmNRRUt3ZG15Y2w1Qi9sL3MwdjNoWDBEcXVIcVNEUzdXWlRDOHZlVnJTTEdQbGtXRGhydjEKK1o0YzQ0M3BRUDIrUjhkODVnMS9WK0VJYi9iQ2M4UU5JcXpXSVMvOGJLSEhsU0cvN2NGRmZNWVlSVGUxaWdaMFcKK3lqVDBUYkpyWUtmZ3FyQXRLVlcvY05SZERqNUpCRnNwUzN5NnZmK0ZIQ24rQVc4dlRuc1gxaHQ3eVdCOXpyNzAKKzhXRmtkdHR4a2cvaDNvQUlNckNhbWZIT1pWenhBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU3JpbDRFMFBGRnFWZWQKK0tibHhDK0JnRWpsSmlqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUFjS3Nwb0pNT2ZOWEZsRE4zQU1PQjJ1c3pLVzlVY1p0S3p4MTJ4L1doSW4KK1BKZk5xbHVDMHN5K1U3S0x4Uk84bG5rbzNvMzdTSm14enpUb1lLcDZrTFU2TXdMandLNktkdzhmSjlBT1NObVgKK0wxZjRJNEcxVVZqdmRjdHFIb3ljTmJ6QlJHL1FHb2h5eWs5MUlzU0o0bW00ZmlWU3FWUFdHZVMrTkVpT3lIVVMKK3ZOZ0swMzNSanVEQzlBajQycHVBNmJLK09NTFFLOXBEY3RhZTVKSGZqdVhqeDdmTUh1bW9YUjhlSWlaUEtlWEQKK0dkTFZPT0g5MHRsYmgrQVIxNUo4dnJNVlc3RnV3ZkdLVThzTUdOV1VRV2d1ZGVBYmNaKzlXUHVYa3VvWDRudFoKK0szRHhDRFNrZnZDODBuRFlmVEVqVzJ6eTJsM1RIaXNEWTZnQVdkOUVtS1F2d2sxa1M5SC9zbU44TVZKaVJaRFgKKzZ1YXZNampLR1ozYmhhc3ZUUTNmbnFodnNUUzN2T3hPSCtsVmRRanpEUllYNUwwMFlaVEJuSFZKUVNmRGdaMFEKK3BZRWxtdUQ1WEEyQm04NXlYckt1OE5QanpiVWhhR0dWODdNSEdrbmlnZTd0bkRuZHJGUDMybzhpS2Y2ZFdKWC8KK0h1Sys4eTlLWUwyMTYyWmxhMlJMclFCcnoxSjFyVitXQWtETFgrTFpSbWlWQnlpVUdCUjVqdGp3QUl1a2o5TEMKK21vNE9rYVVibVlyZ2poeFpmb3lESDRLcVc3eGlwM2dOdFVkSmJoQ0Zad2VvVW1ra2JLekt0dkNTclhIb0dabnIKK1I0eGx5WXQ4YkZoNEVvTExYSDR2ZlJWNW9RN0lTdHhBdGhRWEQwVlZpa1UzbEhWTHViQ3RHVFRJTU16SU9QVVcKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgQVRNTCBLRVlJRCBBMDg1NEJEMTk3RjgyMTJGQUNCQTM4OTkxQkZEREJGNUQxM0NFOUNFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBa05ZOWpISFdKUmcvUUFBQUFBQ1F6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreU0xb1hEVEkxTURNeU1USXdNamt5TTFvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVUZVVFV3dFMwVlpTVVF0UVRBNE5UUkNSREU1TjBZNE1qRXlSa0ZEUWtFek9EazVNVUpHUkVSQ1JqVkVNVE5ECitSVGxEUlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSngyVXc0QU5hQzFiU2ZsCitINkJMaEI2U2Q5WlVrbkVDNGh4c1JoQjJsSDNLeEFQZUR4SU0vNFp5U2tJa1JoZDZ1TWFqSklrVlBvblgrMlJMCit2bnpFeTJ4Skh5UXZiV1Z5WjZnVlhpL29PYm1tTTJjTUVrQXlyQ0JYSXAySlNYTmRhV0RvenhGV29SNG5MaG5RCit6MEtqMEVCdjI4Sk5XODcxOGgxbWk4SXRnWjNDODhDZWo0S1BtcjZLUkc2UTZhaHE1T3Yxa25BalhQazVXcm9XCitSN2o0S1FvTWtHS3FZZjBSM2xwemFrSlVFTWtwdmNieWRBNklLWXlkbDcya0RIYnFObVNXNlpVN1lVaGVGOXhaCitZUldPWWdBaEVwVGN2ZTVXWnhzbjBPeUhMbXFqU2oxNTBFRGJrVDVrN28rWFp2SWRlOEk5TkVQYndXMnVzTlB2CitQOWsyU0Q2WEduMUJDTm9admhRTnBWcTBMcG9HYXloOENSUkc0OHZFa2cxSzUySmo3aVp3NWpZdGVJcm1pSlJoCitxeE1pSEZESDA3U2QrTUhERDVLTjRrRU1CYzk5WmZkdEZZd3RmT1dBTVBYK0w5Zyt2UXBsSEV3cGMyNmV4VmF0CitnQjF5WkJnNDlXU1oraDIva2VsUE1jMUY5T0NqZXpjUGNzZEhpdWVZV3JQUzdPd0o5L3d5dnZzUW1IYWFyTHkzCitwaDRrbmxsUVY1bXlXdmpxRG5VRC9mMWI1dHhQMmRYZFlOQnhCZUIybkVSZllFVUVldkNWckVyQkNOTmJpb1ZQCitmckM4N3lrNGFlOUNYRVM3MWdQRFZpMWRtY2lPRWpGTzh4TWZPYWNZM2o3cFM3RnVGS1QzaG5QRmo5MDdyZE5mCitrUjVGZ3MvZGxoY3pWY1JvUW5TSFZoWlJvaDVOQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRPdVk4emNKZUJaWHJICitMMHErVUlSWnhROGZPVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFJL09BUXd0TU1DYnBmSkx6Q3FwZVZPV2hmSXhPZy9ybTRlZlluZGdZMTcvCitIeDFZRGtnSm9LYldINWo0TmhkeHFXektnZmlXOS9ISjJhNVNmTTNlNzc4TE9JVHA3OHM4ZXNvNzFxaXFUa2dICitLQkNnelQzdWFOdDdwd0xNTk1weE5qUW1wQnlHZmx6TS9BSlF1WXNhNDF1SE4zWngwZ0pTUENvelpDNXRiNUMrCis5blF2VmF1aGZMaVNQaFhlNmpmbWxWYXQvSG5sVFdWcm5iMk5UeHNBRk90T2VzMTExbXhxR2xXM0RrY3ZWd0gvCitSVXNSUG5ydjYvam9sanYzdXhqYk53Yml4NWt2eFVhMkQzSHNsQVBaRkR5enQ5b21iM0hKQjRLNEZEWjlzTVgyCitTVmdFYVlJb1ZLZUZTcWtlSzVSWjVXTEp5NVlhSmgzYkxPdllHZXFQWkFzNTNFMUlmY0xLN3VkUkcrT3JaMXFzCitJWmpaTnQ3eGxRK24yRE1JZjErczBobWNuMVZ6MGpSOFIwRlYrQ2RXNmlHWmwzZGlHVW5Vck9IZ2grZTg1alhRCitBYzFublQ5UndmU2oxeUN0eU5OcUxibWcvM0hTMnlkT0FSVklGdTRGZXdSelVIWTQzMHpIOHlINHZjVHY3aU8zCis1dmU1RnpjRHVnSVc1NXo0ZjgzVGNLaGVJRnM1V0taVmd0TUpJaWsxKzd1dEF1N3R6UTRoYlFaUUVHRitrWnJ5Cit1VVE4NmVZUWpzNXVucVB4a2NMbzFiNEVsL3hscmxPSDFSNWFWaTNuWC9aZ09ZNFdTUFIxekxRK29UK2tQbnJFCitGZmhCemVadE05K294L2pBOXF5Z2MvVWFqWnRRYVo2RGJYNEg4NVJGZWRmQnh4ak1PTGtwVjE2WGIvKzBnTTFFCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIEFUTUwgS0VZSUQgQ0QzNDAxQUM2RTFDNkY5M0RERDg2OUQ0NkE1MTgzMTFCMzc0Nzg5NSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWtRS3IrWlF0SFdNRGdBQUFBQUNSREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3lORm9YRFRJMU1ETXlNVEl3TWpreU5Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVGVVRVd3RTMFZaU1VRdFEwUXpOREF4UVVNMlJURkROa1k1TTBSRVJEZzJPVVEwTmtFMU1UZ3pNVEZDTXpjMAorTnpnNU5UQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUo4TEZsOFVUWjJHYTZwNworcFdjZGVyRGhrYWF2dGhtVFVFSWNrdWNyTEVqNTk5QzlnZ3dZNmNCK1ZJeVZVdXk5ZTlManZDT0thU0FZYmxRMAorTFdJRkNmR3UwN2VCdzVMRThicEVzRHJxdzFBSFNhcHZSRldzWVpRQTE2Q1gydmh2VWd1eHJXMFVaK0xLSmQ5UAoraE1QRmR0TXVLZWFzMjRqYlJldUUyRjk4OGxEanBHMHFsdFZWMjlCZDZtN3VTa1lUMHFCK0RoL25FZVl1S1MxSQorMm1FaVlTOFl6TzVzTE9LZzdmQTFVbnJTUDRTdG56Z25XdHVKWldZT2NycFM2djJlRWtPQ3BQd2N3Tk9LNmEyeQorVkRoT1VndC9FRnlaTFl3RXdqclpSRE90dC9LVDdNT05HbG1qdXNOUkN5eVM1eVJINGVNT2ViWmZ1SDNtekQzZAorTnl4cGlpS1RhU0pnaGFuNnl1dFNRVEkrQXpqOTdWcmY3ZVpFU3NyZG45UVF0VW1sekxpSUlSRm5Jck94QmdkbworV1B5aUgyQk1scFlSdXRjSkMyYTBPQm53TnFSaWhPZXlKV2hlOGNkUFRKZE5QQWxDU2Y4K0UyQkZNK3FSU3NPcwordFQvUEVhMzVYTTdDUlhPVjhLY2F3V05JTjUzMHZvakU1VGwwbmhrQVgvZ2htNmFxandYc3laYlJlS0l3RTBSNAorZFJ4ekhOQ1M4ZFEzQm82bjl3aU9FUnA5WU5LUGxNY3pObDBJbTQxKzhMOHdINW1oUjcrNzd4T0N2R3NKS3JnWgorYVFxaUNqVDEvcTRVeXJjM2VXK1U3dHNVb1crWC9jQ1BGVW8rNU5SbEpKRWNDU3JyNkZXMFJyN1BaZjh4ZjBFRQorZzNQYU16aFp0cTlzbWJlbWhaUS9Nc2tkTlVBTkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRM2d6TkZ6cS91aldlQQorNFRZbU5EbUdvY3YwUmpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQVIwZWNwVmFRaE1DZ2NBSG9ON0RxNHhoS2xSVFNqMXVUb2V2eCtSY29LbAorNlR1eVFDa0FNWjZtUEMvdUFKY1FLSGZacXMzK2U0a3A1cjgxc1NzNXdBS2N2ZTMxQWNZN01ZMm5SQ0xtZGNUcworNFVJb0NCb2ZZYWZtSXRMTHN2MjlnN1pGWUhSU3V6Z0VyRnJ4VEhxaitIY3NVOExsVFZ1UXprcjkzeW1mSnRQSgorc3dJTEh6Q3AwWHR0WmU1R28xNnhVb1dhWnFMbDFjYTJteVcvVnZLQVp0dW93WG5yUm1jK21CNDZEZHhuSXV0UgorVjVrL1FYN3EvcDZEM1dBaWJjOC9mUXd6b2tycTJDS1pGR1d1ZVBFeW16KzVjNVkrVWxsOGwxaCtadXlndlBzUAora1BSUmx2RDk5MFVoT1V3MWVSVzJaT3d6MFVHSnFCZHVXUytUcStaelpyWTBnTC9HMlBLc3hKcUhwaEtZV29rOAorMm1Pek5xZFZETjhWSmZTQ2JhRlp0UFdhVW8zR0tsbkMvOGJZaXNDNEpYT1dRMHRkandsMG1TRmVSdk1hU0h5VAorNnJCY01QbFFMUkJqYkJ5RnlmV3BpSHdadGlCb2JJUW9DTHNIRE5MUllWZkpwelE4WnA0bmtwYVZCS2hFVjh4MQorREdoYjZpaTRwS0VIZFNWeENrVWxNa09vU1ZjUGp0d0dzQ1BacGt2bWZqbjREMThmT2pIeFRkTnhBcjB6L1o1VQorM3Q5aStTeG5GRGJFNG1PNXNjcWhCV1NjZzVlalgyODROeDRjMTd5Q0Y3TzRXMDhZTmhpRThYZUQwM0FnOUVjWQorM0U3UVFpMnU4SVZ1T2R6VmFRQVcxN1BRZmJIcS9URTlrQUV3UjZpZGJtR01USWcyY3gxQ2ZIR3hKYitlL1BwTAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBBVE1MIEtFWUlEIEQ2RjU2RUNGQ0Y3RUREQjdGRDg3RUQwMUUxMjdFRTAwOUE0NjNCQzkgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFrVjVZY3MrSXVxVUNnQUFBQUFDUlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt5TlZvWERUSTFNRE15TVRJd01qa3lOVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVRlVUVXd0UzBWWlNVUXRSRFpHTlRaRlEwWkRSamRGUkVSQ04wWkVPRGRGUkRBeFJURXlOMFZGTURBNVFUUTIKK00wSkRPVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLQ3hrVUZ3UVVpUnNROWUKKzV2dml3WkZ4WXJFd2dGWUxaYkhVVUZ3MVdrQStHSDBwZnZFMFJlV2xHU3JqbEkyWmlwOTc3a1BxeU1KeGg3Z3cKK3JXc1FibEFUTy9PbTRXYXh3T2Juc2ROKzArYnRNT2gwQzJyVFk2MDFZUmp1VW5KWFBkR21RQmRjLzRwRkJqTHoKK2FrTTNMdkc0KzdjYWFSSGwwbGZTSXdrU2hvRnJnaFFGdmpwWENaV0QvL2cvbWowdEZ3ZXVsWUtjdnlwbnBjTmMKK25Gd2M2aml4ZmY2L0o5SWtjQWRFRHZUT0RuMmxYNTl4Smozc2NMMlJoNEVnOEVBQTR4cWpsSy8ycXM0TmpXR1kKK2lFUXlSaHBvSWxPRlg4am11WlJNVldYL2lYaG9oTUdCd3RnZEQ3NUo1QlpNemxTcFZtTFFMRFU3RXFBTG9JVmIKK3VPRk1veUUxdG9sdElCbFdXU2ZyS2lFbU5xYlRxQkR2bE9qWGxDMTV5NXpXbmcxR2VpcEhpWlFvTWlwSVFaQ2cKK0g5bGh5L0lTcWs2NTBxa2ZteXJOdXF4S1dzVE9LVTg3cUVDM0JyWDNKQlFzNk5JTnowa2NQc2dsdE8zUE9VZWEKKzI2Z293dStFQ1B5ZVM1WkhPU1NVMDJVcUZxRkFSdzFXK1FscjdHUTdUOXhiTzJJd2lDbzd0Qzd4N3YyUHUwRTYKK0ZRM2JMU0VyU2N5cXpoRituRUtVRE1adHVrdytBU0Q0eE80cjU5eHp2a1dQZXJ1eUVMM1d4N052TVBTZ2F0cUEKK1V6NHo5aHhyVzR0cVhvYTQ5N3JoYUFJdDRWanBFRTRNN1BWM0JaVDg2MGc5eFJ0MitkZUp1a1MwelMxZTJHZXcKK1ZsTjFrNVozSXRxYzlBQTh0YVVYMWZvTXhRcERBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU2tCWVZabEZVdnlzeDEKK3FMQ3BUallzVU5Wa2p6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUd4WGpsdU9JS3hMdE9uYVFqZFlucERIdU5vR1hKREYybTdDVmVkVjVSVG8KK1pQOXR0eS8yMEJEM0RQbHR5cnpxTjg3RE5tbU1HeWNWYW4zRFphS01BVElJSVpGNzNUNEozYml2NnJtNlExVmoKK2xkV2srdUp3OStzNHlVc1Rla0Y1aVVidUVVOHZ5d05ZVEYycGp0TUw1ZXQvRnhVMzlGd2l3Mk92RFFudGJLbUgKK3MxaTZrUDFRbEJ2bXhYa01QdWQ1NkRkcm5ITUpPUGJRb0VJeHhZcGUvcWgraVl5WktLaFBrdE9Lb2JpRGZxVFoKK0V5d04rRTdnemJCM056N1YvUDRxWkpPVERWUlZ1MnR4ODFNczN6cGhjcmdWOWdMNGUxTnlWY3VuUVhIZXNQR0UKKzR5TXF2dExmRVVZYUxzcHhySXRWMStWa3M0dnNhOTlKRXFFbXlKSTBLd3F4dDBTYjN3eWtkcnpQZWxGWVo1c0kKK2RWemczSGN5V1lyVUtvdmpEY3VONDk0RHpZZWFFeUk2OUFQOXFDd2lNT0U2MUlHQit3RitPNEhPTnJqbzRyVysKK0tYSno1SmR0ekR5bE1mM1h4N3pEcWhzV3VZYkFSbWxkcUkvdng5ZStkVkVwd1JpTUJybzh0cm1sY1dXUTVudWIKKy8vbkJac1RlZTJ0QmVvY21IOXpoT2FlMFlFcGpJeHJKNFdxK3lIUzFycE9FN3d4T1NlL0lmQzRiNVVmbmJTS2MKK3Ywb1UzNjBQaW5OR3NsT0daUjRaaUpZazkrMldnVGl3RG0yaU1Kdm9DTVpHWlBoV1owTEViK3NyQVc1SXRVT0QKK2thc2NrWGp3blliZ0NwSTBnWDkwRnZiRnV0UWlqK24wenorbjRWSFNSTzFVclFLM0ZkelFYeno1ZjY2NDFWeVkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgQVRNTCBLRVlJRCBFMDAyOEQ4N0NFNkM2N0E4NzUxQ0M0QjVENzRGNTc2MjJFNzVFNDJBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBa2I5M3BtZnZSMjhiZ0FBQUFBQ1JqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreU5Wb1hEVEkxTURNeU1USXdNamt5TlZvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVUZVVFV3dFMwVlpTVVF0UlRBd01qaEVPRGREUlRaRE5qZEJPRGMxTVVORE5FSTFSRGMwUmpVM05qSXlSVGMxCitSVFF5UVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTWYzcm9mRS9hUWdsU3BCCiswTjlKVVlMb213WDdUTGRDdHpDSlNjQ0tmVzVTcHRnWlg5N0t4aHVGYmE2UjJxcWZFMU5iQUJ2dzdaSzg2Y1kzCis4RFJOdEtGeEc1cmNBL01XNVFZMWZoTXJ3c0kvMnlMU3dSUHJnVVVtaXA3TkRUV2ZqS1NJWU42WXNvNzJ0L1pmCityM1NUcWNrZCtWWnhXYmhEY3NUUlc3dU1Kay9VQzY1QTlvNVEwajBlUXlSdEtTcmdpQk9Dd0FYSFpDWlRNTitqCitaekpENFJZNkRYRjRZdXNqbHJ6TXdzWThQUjFNdFV3YzQyNVZlS0g3bTZOWVg4OWxLZ1VJK0VhWVc5TTk5dXV5Cit6Nlc5RFI4eUtRMjlhSVIyTEpIRWRCeVRYeDN3Q3JheUxpSGV3VEdlZ1ptT2I4L2d0djZVUXQzVEV2VkFUbGkxCitMb1hXcTN4Vk1DYlB1b01aUVBBbm1FbEpiS291alg0UTdBSnJadFVTd2V6SFcxRWxVSzQxZXdtNUhhUjNsUS9YCitIKzFkdExmaWpQMGpkN1p0THdrcmg1Q1NTT2RmbG9sNm5PdVBjc01EN3RtOGJoSlhGcG5Ed0djeit6UVlLZHVaCitDNEhuWTVMTTJFTm1TOFRGWkdldmZudEFVT3NYa2t0amtsWE94b1RyS05qUHkzNGFLVTVkc2V4NXRSV1pIWDdkCitsc2N2YUJsZmd0MW0rSDFlRVF5Qm4xZmM2RVcvTmNIeDhHV3hrK1RubDlzZ3FVaS9oZG00MlZxWEhhaEdxYTAwCitXZTRpUVJTR0RQSDgramFjMEdMQVFrdkJUeGVOTTM1djBUQ1VIbXdYSUhZV0dvV2FaOWNPQnZSVy8vL2hYNFBICitFNFBQdTBkYW5ERy9pQ2JUUSt3Z0RiT0RyYTlkQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlFjTUtzZjV3TXRGckt3CitnSnVpRUNSejBMWmo5VEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBVG5HTUx3V0JPQ2hLSk1uUGFjQXlkVHV2SUlKZVcvZ0ZaL3BZSXFtYWFQCitPM0k3WVd4ZzJsbW9lajM5dWFCME1kciszWElOcmo5K1hOd1Jud09zNWphbWRVNHRLY2NTR1lna2IvVUdJL3hLCitnK0tDQTBSRmY5OGROdUtqd2U2R28wdlhyeUpkZHcvK0NFTFIzRkdKK0JGREsrL2Z3SVdpbGxOZTVXclZHREFwCituS1B1MlcrOW1IZThTUGpDOHh5cTRJRlpKdFJTQXNaWDBrc2txcmhEMkxNbWZkREI0dmFid3prMmM4NnFjdU11CitEVkxtT3N2aHdCb2djbkNla2FiQnQxN0xQRU1ueHVFZTNBd2xuOE9mcmhtK3d3SzNZVk14b3kvN2c0Tm55RkIyCitvell2czZMbDV3ZkZ0dmRDWlQwUG1WUS9XZ3pZQ3lqaUVOUnFNV0xJbVExZklRaE5hSzNQT2JPYSszY1hrR3BQCitmNVJGZGJmNHRsY0YySUNLbXlDZjF3YmJ2VG51TGo5eU93alJBV1g3bC84RFRnMG5xNlFPVENKYVNPODRWbWZHCitvK1BUUlpxN0tpeE02cmtrVnU1ZW5MdkNhbUZzY1I3V1lKS2xjamREL01ZbHk5ckEzNlpWUXBXSUJHbVRDVzB5CitSRHhndk1jdXBNNUFXbUVMbENrU2JSajRSNmNFcU1sK25qZ0k4aDB5Q3J2OG9lemF0Q2Z0YUNaUVlXRFA3WTNNCitFMW1xQmZhQS9CMDlQNGxwQnpzcGM4aWEvNTR6cWRyak9ORm42a2p2TjFqeTAwVFF5b1IwN29QNDg4elJjY2dICisrUDFzREdYcUVML3daaTlwcnh5cXo4dElsbjNCSktVYmJ5dXZteFp1YzA5WCtXSWI0MVRxcC9WcGhpZVhIeUt3CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIEFUTUwgS0VZSUQgRjc2MUEzQTFGNDA4RjEwOTA3OTdCODcxMjdDMkEyMzk3QzBBQ0EyNCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQWtkTkZ2TGtyeXZHMlFBQUFBQUNSekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3lObG9YRFRJMU1ETXlNVEl3TWpreU5sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVGVVRVd3RTMFZaU1VRdFJqYzJNVUV6UVRGR05EQTRSakV3T1RBM09UZENPRGN4TWpkRE1rRXlNemszUXpCQgorUTBFeU5EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5zOGxEUzJHYkIwTlR5RQorYnNYSG5tNitvL09iWXh1UWlYbURJUnJFS3hFOVFMRUdOQUpVbWtHOEhHOWdLcHpjWWp2Q0lSVGp3aDNIaUdYTQorcUdxcUY3b3BxUVNvRkh6aVhXRWFtbkRSSHFBM3VPZHAzelA2MUN5c2UwY2YwaHY3VksyMzdQRHdmdzEzOGEwUAorZ2xCNkgwWTllZmhYNitwQ3BGbmpFY09rcjR0NlFId0RGOUNCYjBGTGxRejM5aEtPOWhzMmo0MTZiMG5DT1ZuSAorblJIQUNqc2ErUDF0eHZJR2JpSVIrWjg3KzRqLy9JTnh1NUZkdFRsbHhDdlZZdGJObCtpSlRhTjRmdnlJMDRNMworWU9hREZUWHhsMHk4RDZvOTh1cHdkS3VTOVB6RklXMGM2ZTJMU3RlMXhMVjcyVmNmK3RURDErT3hNTU1EdDdPbworemcyK1BVUm5vNWFRU3EwaGtKeFhyQUJXU3IySktzbnNXbkRGUTNUcmMvZ1Y5WmZDbDBmd1dZQ1Y1QU1BWmF1eQorZDFUNENRU20xdDlCM3BZR2JYeFZEV2plZnpHcmhOY1ZhS3EvSE1JM3FEb1U4RHpuaEsvSFhNUHVUMFBYMGVkcworQTA5UE1sSGhlYi96S095cTNsUGsrYmxTT2JEcHZyN1pCVnBTODl6eVVUM3J3eHBBUTd6OHljVWFnTnFraC9vQgorTFpnZWdMOFhqZzhQTjVUZFlwTHRXZjhNcFhWOGxEWk1WaE5OUWR1VTAyR1krUFpFTUpYQWpjVWczSThxVDl5KworaEU3b3h1MGNnb21lYndBYUN3SlBPdURaQytjWlVNVGwwdlBLSEltMG5CRHhtQ1BUWm1kb1lsOXd2MkVsTmZmRAorbGhyZ0I4WmdmWktVOGdvVEIyUzRjdDJ3S2dwNUFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJTbS9yK2pUcnpCdmtuTgorNWlNei9pQTBlMmxvK3pBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRE1CQXhOTTNtRWtUbEY1cm9BUEFwci9CNjFlRE9JUmRZYXNiQTdGRWxsagorc0puK3d3WEc5SXRINmNoZmxNL1dzOEMxcWxML2MyN09hd1VuRGZ5TStDWnZZOXFiVXVSaHhXb0d4aUl2bDdSegorNHBXTngrSHRNTU5TaExqeVFxNy9YVXhnVWduakpIVDVpcm83MXQ5NjlzOXpGaE1KSUN5Ym5nRE9ud1V4eEM5aworVWU1UlBCV0VFWDNJd0tXUmlMQkl5S3JhV0FMTldFRDR0alVLR1huRXlPZ2hKZFRCelA1NElUZHo4K0FzcmVZdworUXFQNmo0QkhzTlVGZ0wxUk11b0t6d1hJWU9ZZE5aTUFRbHlydjNLNVkvU1ExMGlSSTl0MjVuSEREb2VWcExVMAorT3BWWUpHN05hK0RENDQ3amtDMVVoUEZKRXhnQ2ZTRGp6NkdNS3NIS1NBckxCdm1OdVYvTTNIdGNjejVuMWI3bworQ3FNdnNqRHEwZ0M2aFZrSXdVVFB4QkZaSmdNL1ROa0Y3ZlE3UEQxUXZiVVBEWnhyN3RQUzNVaFNZaERqWG85cgorNlFGcVZBS2JNYUNLUFV5MlBHNWJ5YkYyTTUveWFKR2xjTysrNEsvOVJFMHZ5N0QzZjllckhxazVuYzczUi9JdgorKzdhd2NFeVhJU0lkRXVDMXp6THNhNnBWTitTQmpXdVBwTGRSUEp0SUxxLzdnL1ZMVkU1UnNHT0NFRHpMdVRrWgorZ1V4ME9HMU54ek4veHp4U2xJcEx6bERtc3RFSFQ3Y0JHUllhQkh0SEoxd2wxbDd6NHZUZ2ExSWF5dFdCU2JRVQorL2FYd1R6TGV0dFhsNGF3WnRXOWtWay9LV0JFNW9MSU4rWVlVZmZkM3d1a0huOUxLNDBpamFVMnp4bGJkckxXagorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgMDkwQ0FBRTE4NThBM0MzQTNCNkQ0REY4OTc4OTE2RkIyMDVGQ0E5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFTZTZLRGJOQWN3TWpnQUFBQUFCSnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3TkZvWERUSTVNVEl6TVRFNE1qUXdORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHdPVEJEUVVGRk1UZzFPRUV6UXpOQk0wSTJSRFJFUmpnNU56ZzVNVFpHUWpJd05VWkQKK1FUa3dNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXJVK3NWUTN2RGpmMTVJcVEKK284aW9ta3hZWkxtSlFkUHNYbXhTakx0VGtFRUF0TGVDSFZ5bFU0ZlhrWWFHUWM4MjBUeUk5dldIMDFzTklLc3UKK0M3VkRpWXRBNWhoMmpKRUVJTzZneDBCNUNsbEdJcjRlamdvSFZGOXVJdEhnazY2UlFGNFdUb0V3SlB5ZEY1b2cKK2VpVjFrUzJOZG9NdXlxSlRGUUgrUzMwdWRHOUFvQ015TGdma2J1eVVLMFl4ODJYV2NJR1BvV3VKY0FqK0kra3kKK3lzbkRwSE4wV3U2U1JmckY4NHpLT0RtL3dSZm1WVHBCaWw2MVE3YXpod1R5UXR3Wllia21wQUZBVkpqeXFDM24KK0hYVVpTNnFGR1Myck50OThKVHY3b0RPYjdGdWRiK1lPeVpraW1CdjdqR0RCMFV3eEpaNGsyZVZNc1BuaURuVTkKK3hSWnozd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVVE2L0M5SkorVEtTN1FTbUJ0OGRkWm1sTTVNSXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCenBkVDcKK1U2UngrTURvZ2FhK2FCU0ROb3VxZE5VNzlLRnZ3WGNGVGtQTmVCNitBejd6N0VqLzRNOFBCdThTQXlWMnczQ0QKK0dsOU9YeDBpODBDVWFUYW1VQnZEa0RtbGpNQUR1YzUzNThyNG5PSWxPajN1L204RTMzT08ycEVHdUNVbmxhdlkKK3gvVjZ3a3FEWlVWdzN2eVJRc1F1emIxZmtZaXhxRkJ0KzVQeVYzVkZFcjl0VlZrYUZ2ZUZ5NE1VK2VnWU5LQzAKKyt0bEkxMUhETnRWdHhGbjgvODJRTVRseXVvOFg0bzZUNXNXb0k0ejV6N0w2SHlFcGdkSTN6VDk0aURkKzZFbkQKK3pHRk9TUFI4bVJ0UFdodVdHbjhnMGE5eGVmU0xNRGZWRUZNRzdtUTdyaXBrRGxLbUtFMVMyRjFyMHlvWlJrQTMKK2RlUDJyODhlaCtvSzJGMGZ2SHBGZFU1Vi9jSEFkd1RQcTdDMEZvckJKRUtaMGdIeEcxdFo0ZFllSU13WmdhSzEKK1plM05nemx3cjdJNjQzUDg3Zlpab1d3KzNrU2lyYUU3RUE4ZFdpSk1acEQya1VHVXA0UjVDRERkYm9XT0haUnoKK1NLMWJxNE9qdjdtVm1lSFVMQkJ2OWNoc1pybWFEUlU5aDZBWkZrTnc0eEdDVno5KzF0eVRvNlVKRzVMM3RQbGQKK0xkZ216S2c3RjVXQVFLcFhadytIbjZ4Nm0xajdESXVoTUpySURSZyttQnkwTGk5V2Z2clQvQXdQRkZ4WVMxZloKK0J2WmppbTg2dFA0L0xOTTNkUmRrdGZ3V1FER0JtaXdITHNkSVh5UkpMRmhoUlRoWkNadFNqR0NuZkZUS0tONEYKK0NSSndOZmxoZ2Y1L3NBM05jeE5Mc1hWdkh0Zy9KOHJ0ZXhhM09RPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDExMjI3QUIyMjg5ODMyODlBRDJFN0VFNjg0MTMyMTkwMUVGNTkyRjYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBU2dJUm8wQzljNE10UUFBQUFBQktEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EVXdOREU0TWpRd05Wb1hEVEk1TVRJek1URTRNalF3TlZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB4TVRJeU4wRkNNakk0T1Rnek1qZzVRVVF5UlRkRlJUWTROREV6TWpFNU1ERkZSalU1CitNa1kyTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFwM3lTYUp2ZDFlV1VUSkhNCitsaVlVaHk3cTR2SjQ1WThtbmszRzZJS1V1VkhTWjVJRk8yVWxCZWJETTQzM1Zuam1EeVpsNnhCUWs1OHpqdkg0Cit3RldpZnRkSGpoNm1YWHNxY0c3NDRxSFlxSmRNMGRFdllNelZNK0hQRENSQnlYL0wyRE9OQ3hYZ0d3bzVUejlUCitBS3Exem9xQlgzd1orQmtwZ1RqM0xPQkcyTVhXVWEvVzQrUko2alFWWnlDZ21HV2VLd2MxbytTM0lzaFd5d3dTCitSUjNtR01xK1lrQVhhUTA2cUdDNVgrR3lFN3NNTllGUUhaZXhTSllzUXBFSUloNzEzTWs4a3YvOFlaOWc1RHhFCituOEZRVkFiR0VIYVAxV1pRN01yTXZoMEtmWDh5ZUV6L0ZFbk9hRjJra2d2MG5VM0U3SDRsZjZFNG9sZGxkK210CitVU1VsMlFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVxR3ZOc1ZTSFFDVExzdzhxUUdVd2lhYlNGNVl3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQmdiSmtLCis5VzM0TkdGWWNveHNnT0tISHpCc2xqSFNnQ3ZYRGoxL1NwdWxieUw0bFgxME13TEJWd3VLWkszQjFYR3hnUVIvCis1UDg3Qys3TFBSUTVlVUdiblBlR01jR01SbDU4QnJ0NEZiYVBkd2pjK3Q3ZzdtLys0NlR3RHdpa1NSYkErVHQyCitGRloyY0pFV1Z1cUtXMllWRXdqeStxeEJWSSswTGtGNWFCU2VVREVpVk15WndwcGZNU2srYmQrQ3pFcFlJUkNGCitTcDBJalBwdHVORDZ6elNqQzhndDdYbkVXQ3pnMTRWOTZubHc5QUNvUDZMWHFkUVJNR1BPbS8wUVp2YkNzaTlECitydmJKNTQ1NUkzZG56dUtKRmRDbDNDdHpMZkF0Zy8raXVsTWhvUkNXZDhRQzg1ZThKY2hXMGpuS3hWbnBNdnA5CitNbm9qNVRXYkRCQWFYUlEzTU8zMVNoQWpMLzBhUnFFdlZYN1BCL0k2SC9ib00vUFRwVjFOZW1nR2lSU2RFUldqCis4S2xlZjhCdkcxT1B0UWdYM3NCM015TkJXN0JUVVo1R0V1VWNFRjBBRnVBV21DTzJ2aER2VnhUc1hFMXY3cVZMCitsSEJnT0czYys5K1dDR2R1UWpkclg5ZHZSYnJUZWhzQjR0bDE5WEFoQ2MzRlFLQ3dKZFhEUkRYaDBOT3dFcEJkCitTRldGbTNkaDVyWWE2NVR1YmI3K3VMVVRVMlJ3dnhmeWZOZ0N0SXVPc0thRDdNdXBoOVdqWm5BVVpidDVNaUxJCitmVTA4Z1U5eW54bEoxQ2wyeG1Mb0s3MCsrZk12Yzg2T0JvcGlOZzlJbm5ZdGV1NG1QWFFnMzVsVFczVjdLQUozCis5SjU0OFVHa29EUDI0cEVLWjRYRFJpUzIxV0JYcXZQUk1QdDc1UT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCAxMTIyN0FCMjI4OTgzMjg5QUQyRTdFRTY4NDEzMjE5MDFFRjU5MkY2IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpcDJ1ZkJPWE1UcFdnQUFBQUFDS2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE16TUZvWERUSTFNREl4TkRJeE5ETXpNRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHhNVEl5TjBGQ01qSTRPVGd6TWpnNVFVUXlSVGRGUlRZNE5ERXpNakU1TURGRlJqVTUKK01rWTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQThrYzdvVlIzV1AvK0VHaTkKK0QrVHVEazVZckg2bUhibEkxN2VTZWxLRGNQSmk3N1J5NzVhc0owd2VDLzRuM0NLc1dsajYrc2ROc2xjdzNQM2wKK3FMWlVpWDlGTVlNM1JrQVJaL0YybW1EbHc3YnJNNmdHSWE1bTNUMXJHWFU2V05RcWFvSHNqNUxSRG5SWExUdEYKKzN6U3dBNFNVZm5jbE5xaEVKdm1Ha1Y3NE1qamVlZHoxZ0hPMWFiaHlXZWlIaUFjWTh1R1JDSjI5Rzh5VmtVZ0kKK0hCQy9IR1RyWUVLTkd5d3ViclQ2ZHcyMkxyekdPd3BLSnloNXRhZmZNNU5DMW9hYjRPdlgySGxBZ2pDK2RSRzgKK0djU29EMVc0eWlHcFBSSmZvVEhBRC8zZ01POEcweXhYM1RzNC9KeTI1Q2lVakRWYkUwTGd3ZTk2QjNua2lhRS8KK1Z4V2w2Wlc1dFk2VE10SFMzaUwwcmdwSnIydGtlWWVYeTdHb2NZUUNLV3RJVnFRNVM0aFZWb25EUHdYeTIrTFkKK1c1VkRvWkV1allOL3BtVTRYV3FLYm9xQVRGYllSK0NsZ0UxNzdlV2lHTFZsNXpHTm5ramFsTkJxMnFyYkczUGMKK0R3NG8xbVRROFNtSXhjRFV5NWhlVHRkM1dPZEdxM2pHOFlscXJqN0VuRXM2eG9uU3pmWFJqU2RmZU5HaDNWa00KK25RTWZFR1A1SkRLYlMxVkdXakZyTmFNaU1YR2U5YjI3MjlSSE5SUVl1OGc3N01SLzRYd1J6U2FNZ2hrYWw3QnEKK0kyV21Icit4TWFsdForVE80Z1RqUHcwN0Q0SXJpUlBvZS84K0FVNVU2Z0J0WDFzdnF2bFVIVGJhY24yWDVzNkEKKzA4NmtpZUVuQWx6N3dKQytpUGdYbEhrZUhuc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZNZUtpcWJpb2Q5ZHoyMHkKK2dldjlzVk5KbkdJSk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBaUxZZWNzUmNGRXgxVXpCdHBnY1J5VEpEZjNPUnhxOCtGUFdkZmNEUXNjS2gKK2FyV2NVN2ZUbENYc2NIeUdSUkNNWnlXZUdzVUV6dVpWb0JETCs0V0hlZEFDaUEwdGZ5TVZQR3RLYmRGNkNpclgKKy9HZ2J4SjJqQkI4NUMwZzBhcE54Z3FIaXVsbW1FT1lFQ1NEYWVEdmpuZThpWE9Gb0wzUSs2OGVTUXRaaFNEcmgKK3c3VEtXbXRwRkRIN3VDUW1pY2wxZDFEK0Y2LytNNVRtSHJjQlhGb3lNNURaMTlvS0dTcmU3T3BvSHQ1ZC9LMjIKK2tKVjZUb2htL1lUWmhBUnl3RTY5YWtVR2NRZTlFejY2dUtvRUpDei9ZQ2djRWM2K2R6TXFJT3V4NURCTUlkbWoKK2xKVzVJKytwcEZReVlBV3BOREluVDdmdjJmaC8wQlU5T3ZvRWdGQ1NnRE52N2h5OXgzNmJGa3d2SGNYVmNQaHEKK3FqaE1BVHA1bVhjWGhDRml3dEExN0I4eitQZE10MXVJWDJnT2NYRzIzZEp6aEdZd2F0YmVTTXN0aVlkTXJHbWsKK2pJYmtWOEFSWHJuWUQ4Z1B0eXgreE01T1czYnp6aDNrVE1CZll3WWROVW1IQVpvc3hlM2VUR0h1bUx5dEVpSUYKK2IwRW9GR01yOXpZOUtWRFM2SmpIRFBhUUt5RUJEN0c1YkIzVjErUTIxWkpYWmJwUDNHNUc3QkJpRU15ZXB3N1IKK3FhdnZ4R1dXMTNmNldPeUw4YWVjZG9HdGJlYnI3STRSazdqL3ZtWXBjeDlEWitYVDc1OEVCdUsrdFludkJhT08KK2t2emFKcnlQQ2tGZ3h6MUpZV1Bvb3hXVGJoT3UyVmVPZlduNVVBQk44emRZa2JRYThyU2plZ3ZzbWpxY2g2WT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDEyODQ2MkYyQTBEMTZDREUxOTQ2RjEwMDA1NDRCMDU1QkMxMTNEMTAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWNOZ1FocGJSM3hYY1FBQUFBQUJ3ekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3hNMW9YRFRJMU1ERXpNREU1TURreE0xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMweE1qZzBOakpHTWtFd1JERTJRMFJGTVRrME5rWXhNREF3TlRRMFFqQTFOVUpETVRFegorUkRFd01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcHZsT2gvQUVRZjdKbDlRbgorRTJvaXJhcHZwa3NBcFBxYmZkUVg3S1plZXdxdWR2TnlBSlVIbzdQTVdPclVBcm85Y0NsMEc4Y1FaSDFIRUJzNAordUdxRDkyTTJ6SjlZdTNPV1ZsUFY5ZTZwaFI3anp6QTRVa3ZmVEl6NThOcUNFcmxEQmtMbk5OZGVxeTlBcDNXWAorWmtLbDI3bFBLbUVWc1BBSjgwYjI2emlWU0wrRHNXczhqTTMwdGhnS0Nxc20rdnNoMVN5QTRub2oxbThKYjBPZAorN3VuenpmM2QzVDZKdm1XZUJEbTcvYjUvbHplcnExcVNQUUZyTVpZQWVkbUFseDNvbXZEbzFacWhMbm5HQm5KZAorbUVPREZid1pyRHdOSnZHbkZneFhwdVV3QmxWQnpVMXZjd214VWhzOEtRNDdBVEZTQzNTeDNVRWhlOGVUNVdFRQordExXT1g3eFJ4LzhIZWtNUytzNnR5aWZFS3k0dEY4c0hScGlWcy9WUk01NnVmZGtHWUM2S0U1WFZCNDVKb0xZcworeERhWXlWMkRCSW01cTRpQ2dIQSswN2NpM1pnRytBNngxT3Z1VFdTdEZlb2pEWTh0VXdjemt4RFVTWkFTcU5KVQorWWdoNGMwaE10OElMNVo4aWcxNjZNSlJST0pXTFBtSkw5U29iTDVYdStKWHJRSENWbDgyQ2NybS91ZG5VNHpJLworWDRSSDV4czZTcW41dU55alJ6QnJZQjdlWjVjMHNZejllMmdQYjNiVlNNZlBvM2RKWnprVnRsK3o3US9xOVRCcQorSTNNTFlzaENieTN6c0pNSTJWMkxRRTdNUGxzN1VrMTNqY1NXSHZmMXlHRCt4TlhtQlo4OEdubllOaStYaHBKZAorSk1PMVQ4RzBlU0dwakI4L2RNQXVmV2xlRDlNQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkR0R0hLck8yMnNJd0xBRAorNVhWaDlxTUFoUTM5TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFDUDFENkhSclhtWnRzYWE5dXA0eEhQV1pYRmhEaTYwaklTWjdZbHFvdmd4bAoraE81MnJNNkZKcGVkS0oyQVhTelNyVHl1dXRaV1MxYkhESHhtOFgzakRNd1BRS0ZkNW82b3BKNW1Ka3BVU0RpVAord29CU05Wd29sbnViWExvQVUzREt4OERaZk5EaW5Na2xNbVJpeiszd3BRT3U1aEhwTytSaU1aTGczSGxiWDNNaQorVitPaWJlQmZDcDRxNS84L0RPbllNNUtRcmx3RTQ2K2x5UElKQU45RE1oZUMxQUh4a2QyRldieWhZQXJFaGs4dworM28yLy9kcCt2a1ZUYUFDMlZaakFQR3RMbVJzRS9VSnZUekFNNmNzQ0Q3dkJ2YTJlMEVmS3pjZVIzY1RRVXdNZgorekkyU0lPSWRabndzeUt1MDBCdTZQNUZ4bkJYeFJEQmxubmhJdXoxSWI3cm9GNnUwNXlWcWxxR0ppaWNlRkJNVgorbkdDSHFsb2N2Ly91b2RvS2FtdUREVThMVWtzMUdDL3d2ZUN1aHczeTVPSXBkMDA0Y2JSUERvR1RXN1RtRVdCMAorMDFuY0ZOK0lVMVhQTTVyWUgvcXljamtTbm96bkpKd1cvdGFWTzI5UXZRQWpOZmJvMWozc0trSnpRaFF0d3JDTworMUFHNExLb1VlNVZIVnpia2t6VXI0cy9ucnMyY29RMnN6VVBtOW1YUVFCVXJ0WVRtMnA4Mjd5TjRtclFlRTBGWgorMDdEZm84aWxDaWVvK0FVdFdPeGdxdVA1T0dlUWQ1NzlNWm9vOVBnL05pUmsyUlFoUC9RVmcrbks5L2h3YmNZMgorMTZyTWhzNkltQlJQRmdkRXdkRlRLd1BPZVkwd1hSQnJsa1ZyQThmK09DZU95TE1uMDVNY3lkeTVGZXRQZ0RRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgMUJENjQ1RkMxRjkwODI3QzI4M0U2Q0I1MjY4NTlGRkFCMEUwQzYyQiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaUhwQnFramdzTHZOUUFBQUFBQ0lUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeU5Gb1hEVEkxTURJeE5ESXhORE15TkZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB4UWtRMk5EVkdRekZHT1RBNE1qZERNamd6UlRaRFFqVXlOamcxT1VaR1FVSXdSVEJECitOakpDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvRmpwK0l5Vmhka2NEaXdOCituYzM1WUllTTJhR1YyQ2ptSmVDa3VXb2ZnZzZkbnVyZHVVOUx0QlZyYmthdlJ5QUFtMzdiR25XR3dxd1Nhd1duCitLTHJyQWNRMXBURUg5T1NES1NXOGg4bXI4SFFZdmsyVFFNQlhzdWxJRHBkZjUzSE1wM0xjbElveTlvQWx5Ly9vCitHVDNOSW1YMGI4SzA1YWh1emZETmpnSE9yd2ZPK2tvT3Boa2w4QUdMUVYzS0lBVEpHb0NwTjUvSnd1K3NiZVA2Cis1c1VrbWhOcUtKNVpYWWxobEN4MWNsY2thMUNXRDhqN3REb3NWb0VPNGJ4aENSRkJNeVovMjUzcDBocTNoYXZ1CisreThHVDFsNmV6WUNGanQ1SHlOMHNzc25aaXQ1SkV1c1JNSHpyekxMVVdJZ1lGNWFpb3N6YVgzMEhsblRmcDVpCitWV1FJZ0lYVzVmUVdaTm1MUkNFWUVZUHVrOFgvbHB4QThjVEdPeVRPOUZtdHRzaGNQZTRoaXR3aThjTUJtMFhoCitUdUkxamt3N2paSXd1d3pKQVNhSmJRYXFqS01DQ2tRUDN1eFNubVoxL0ZTd1JjNjF4OVFTRFNrNWpmNDZjYU9iCitKUWdJNytSZWJjYUtzNmNOTmc2akN5RE9BSTNScEdEUFVDNWFReDZTYUl1L05NM21DS25KY2padU5IbUlQTWZMCitRWko1V3VCTFJ2dTJzY2NGQ28zb3R4dTFrL3FMWjlnOTFYenVZM3F4MkJjUEZ6QStqU3JleFBjcFNlZEU2UmpjCitLaEdVNnlWenpnbnFHaFAzZ2NxRWlRa1IxZlJldEtkeUlQZEFScWQwTW9mSzYxYnhqT3pvWko3VVczZXdFai9DCitXY25DWXM1cUs4UDBvL3JiUmFmbVRBV2dRTDhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSkVuT01Ebm1RdXJwZzUwCitVNjlhZWpwTTVyWWtNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVROVzAyaXUyL2ZtZjl0RUNqWjJ1TDI0Vm83b0pqRzhrNFJybVpWNnp3VUxhCitiS1BzSW5xTCtseVlXTjVDY3YxOGFQWnE3aVdVcCtDSk92akszTWgrdzQ4Tm5HL2ZrNURTQlpGYkk5OVhGMmNYCisxZEtJTnJGK0RZSEVNN3o3MTgzTi9hR0V5bTlMK1ZuSytTUFY4bjVIWm4rVkFrcFp4a2pXTFVNZUNQM1pMMHNXCiswM2p2K3ZtdU9NZk1IUFlLTXUyR1hua2xZc2JYVVdsVnlzVStWRUk2bkZGdGhjV0tKL1FXeXp2a1V5cEczdHJqCis2Z2diVzlMZjE0ZEVUTE1Va3h4Mkh3aUtiZzc2VkhPL2kxT3NKRW1rbmxybWF3d0VON2lXWngweTJqcFFYbmNOCitWUjBuLzgzS25zVGRZVkZIMzJBb1MvUFM1MzZ4M1RsZ0N2Y1JyV2wrbHdYNmYxTjBtY25laXIrYzNNTnl0MERzCitYUldTTmh5d0NUUEVxeG82cVMvRmYrczRFalFwOEc0NmdnMjhnWFJRb204ZXNVMmVyamFDbzNyMCt3bytHYzFsCitoYkhCejZmRHVUV3Buczd3NUI0TkdadWpQdjRNNWF5VSt5c3ZIV3pLZjlZN1dLQmlIVndtTzgyNlA5dWdPRk1SCitZQ0U1WlRoUHpjekJwVzRvWTRXaVpucHZodXdPVHNlWFVnZ3k0YkxRS0JXeUNLZVloaVF3R243TVYxci9ZWlowCituTHNHTHpTUkR5ODh4UDFxa3M4M3Q2WHFKUnpqamZySmlXSDNlam9qcFl2RERzVzlhTkp2bk1YWEs2YUNvTVN6CitsaHVGdHgrOEdWSlFSZkRpaVQ1cytHSlVFSkM1ZmZKQ2hTK3Q3aXpBSzhyZ1lQNnFDN3pSaGxsbUNiaERMa2M9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCAxRERFMEY0MDZEMTIyQzNFNUE0Rjg2MUY5NDg3NkM5RTFBQ0REMzdFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFiMnVpd1lGb0d2QzZRQUFBQUFCdlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt3T0ZvWERUSTFNREV6TURFNU1Ea3dPRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHhSRVJGTUVZME1EWkVNVEl5UXpORk5VRTBSamcyTVVZNU5EZzNOa001UlRGQlEwUkUKK016ZEZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXk1YVBhT25hRkNQZEJSSkUKK3ZrUk5RdE5KZTVvZE1ZT1hRMGVMNmtZdE5ONlJuZy9VUkR6WnZSUHA2ak45STZmeDU0S2crd21RZnRXK21BeEgKK3ZRT0dkZForaWFDWmNLdU9PaFRFRmYrbCs4aW54TFVSK0xBUjlMTER2SzFTWUNuZGFUMFlWVks5NTFyWXIvUWcKK3hYSngxcnNPOGtnZjE2M3ZiQ0tQdzhzSVEyYmh5bkN5cndOQlQ0QkhmSHduK3Nsak1SOWpvZW0yRUJpbGN6N1UKK2RIeDlqQ0h0bHBkK1VWYnovQzJXaGoyamVFV05TNWJIWEo1c1ZXWGVjQUxFcXQ4QzBhMUlBS0FUVFVlYXI0QlkKK1JqdktPTVNvMkNxdDJpYm1yYklkMWdqZm0wZmhqVWYzU1IxTjVBSkNtcG1kSHZlTlN3TW1TdE11T1o5T3hPYmcKKzl2anJMUDRPVURQcm80WXowanltWUdiUGZHMUphRW42SW43T0puQWg5dUQyQjlSV3p4cHJxNEJnL0o4QzFLczYKKzJmYWZUU0NiR2RFcEdkaVVXUG8rdWcyQ3JBZ2NXdlljUGo5VE5jYkFlaUNMYlhqKzVIM2dkZFpwSWpDWHdqWWsKK2ZQd1cra0s4QkwvWDZwL0xVcU1ZSFcvRnpmVVZzR21XR0FTVnErR2JrOGs3OHEwazB6Tk5xdFdOQ1B5aUh3OTcKK1FUOHdEL0ozSnlLRkhMajJlTDFLcVJaV2tmem45Y1UyRU1PWFY4OCtYUDY2Qi8xQTJxQkk4a0NaaUZyUmJ5QWsKK3JkMERjczViRjhYcGdoYVdpZ0pXcEx2ODd4WStVNFp1T25Mcm9zLzQ3UWRFaGN6dGR3YlZ1NVdSMjZwcUQ2NisKK3FOQkNLU2g1aHh5NldlYkhFSm03b0I2ako0VUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLSllGQUV1NlpiNW9BMEkKK2g3NlAvRHgyZ2NhRE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRzVuekZkeng5cGJ3U21DUnJvZXNsdUJoaUduWXMzWkRzK0ZjT0VjODNVMDgKKzBNclRyVVMvSllJb2E1dklnWWJ4VUdMRXZsY042UDEvc0x5Rmc1UThwRjZyRm5ZT0YyZ1BLWnl3Mjd4VEgySi8KK1FJSldNbGNLRjhTVmVOekJyRDZkQVg0QXFzSVM4Wk1iRHZSM3AvMEJUR3pkU25xT2t2Sm5OU2hqZnA1dGZoYm0KKzJxM2k1QnprWCtsTzQvNUVvZnpDUFJLYVE4eDRMeHFnRUVuUWtTKzFzeitVYW1QYkkzcnlMTXZjekJlcks5eHkKK3BwRDF1VGlPVEpxdmFFaEYwQTFqRTducUptLzBncUF1djRxM0F0NE0yS3RkY0I5VGpjYkR2T0xUMkVIckJ4WW4KK1VJbEZwRElSZ1VsOXUvWW1EaEsrRFV0TGZaK0xmcDlYVWVrNW1Gb2Vva3Iyb0xVNVlqS3dYL3AxdUlhS2F1MGsKK0x0ZUhrWHdoS0IzNXI3ZzZJbXlXTDgxOGNMSks2c29jTUE5MHUzZVZRVVFrcWdxcW9sOTltWTZUQ3Z0SHVlTEcKKy82bDZYWUQreWFNbndXRGU5eThLSk5aYm5kQzNsUythaE4vTENjSG0vWGg2bW4xaHdYdUNxRnVXenU1RVdmaUUKK21FV1M5TlJ0aW9kZk5Ma3l5RG9IME5OTmdkRzBrcElvMUlMOVdNTFZpdVJOUStMaGFNYVVkT01wTFhCMXh4UkcKK3ZIQlZJT2Z2V1Y4VHc0dElrVlZwOVRHMTdpV205QU5YVDBtRld2c0RqYUVxK281QjVUTGcwYkJ1Y0NNODFqWGwKKzZEQThkQ1N3dVFrWDJxb0F3ZjQ5ZnM2RHZCaEw2VnBTWlIzTjRNSkF1QUNRcUgvb0lBRHBWdjlJVjNldThhUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDFGQ0RGQjhFQ0U0MDg2NzVEOTYzRTVFNTEwOEQ1NUM5ODRERDc5N0EgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWtqMlZpU1FXLzBsZUFBQUFBQUNTREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3lOMW9YRFRJMU1ETXlNVEl3TWpreU4xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMweFJrTkVSa0k0UlVORk5EQTROamMxUkRrMk0wVTFSVFV4TURoRU5UVkRPVGcwUkVRMworT1RkQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNnUyeEI2ZmFpVURydDNiSAoraTFFV3B0cW9SY1gwME8yR3FMaTBNVGQ0S2M5elFxcDFaeGFMRmIwRGF2SnlLK21qTlU5anZLRlBxVk1TR1lRcworWEJCWG1oYlg2ajlkNTloOHh6Uk1VUEg0empueTQ1dTVCNVRubGVGajRHVDVqTGZzOFVacTcrRlFpczBqNE9veQorZm9XODBhWFNiOEZoeFdjWDgvZkYwcUpnSEhSSk9pRnhuMTZTRWVGMHhJVWZyTnZjc0RmRW9pVGxpRGM2RzB5UgorZjBuZnJQSkdqekg1Z0F3Q0ZCZmtOaERwWE1DYTNwS1RBOE1Cc0NsYThja0ZJSGZUZ1FkLzRaRzZMeXVQS25DVAorU1ZXaTFmZzNyV3BVZ3dCRmpzMCtpMlhseUxpVmJNckphWEtTckRjUDhONzJrMUlqYnN6Y2Q0b05pNGlsYkw4TQorSEVLVm9pcmU1RmoxWXI4S3MzK3V2TEN4SW1jQlR4NVNURVU2alo4b3djUHFjRWFxV21DR21RMWR3SGlZRWQ3dgorSEJqTjRQamt1Ujk2eGZUbENrcVo2TTNuL3dXbEJaRWNKbWZDcSt3VVFUV1MxM3J4NXZzSVRSYWRKaG0zK2wwRworVllSbWZoVkVvSXZjRjZjUnFKUmJVU0pBMmRMMloySXJGVGZDL1AwcVJiTjdOVFNzQmQ3dWFKYXVMSEltQWx3MAordlpaM1VtQVRHd1ZtdklDTHhvdVBXa09ZV3VsL0hLamJjeXh3ejM5a1g5RDVTelZZYkxwajU5em83eHVPVVlaSworOHIvQnQxb2QvZlY1UFlvMzllWk5LVnc2VEQxNzJXN0ZSR2pQV24xMktxa0VJM3NLdXdDdGhjNzkyaFlDdDZOcworbFU3MWpsTTFVZUdqY2t4VWV2UlZvaGdDWUJrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNWUFB4M2RYUDRIR0pHegorWjVMQUliNGtBWXovTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFYZGxnOG1ja25WcUNHTUtjVk5QYzY5T09VYXJtc1hnNkFIVjdxdDZKL0xMcQorV2ZmR0RxYklBUkp2dDBETzNGTkJpUnFjN2ZaT3pleFJCRmFrMHhOcmlvb1ovdjJQTkNjT0svUldlZEp2RTh0aQorUjVPczJWSGR1RnF2U2JvUlc1YVNhZ3IwOEJhTDByVitJSlRXZUhaSzU3eFhrczcyMHRjeGdDOWQ3TVJCS3htcwordXFYdFY4WU8rRDBGdVM1QnhMNTNxMzJhOWFtZStWY3Rwemh2TlZDOUlJcEVXRVNjbzBHeHpXYlVWTy9oeFF1UQord2R6VmZ6SmZqRFJUbUxNVWc3Y1dTcWNpbnh3TlhhQnZicVp5ZkRaTXdqNjZsUTN4UjQrT1pmMUtaK2ZZVnkwRAorOFRjT3NNa2swVkpyVG9PRURraXhSY01UUTlBa09zSTVqbXhzc0hSSm1Nd1N3SEtJU2tSemJ0Yjd1MkRXUFFsKworSG9pZEN6OFQydlZKeCtCam1Sak9lSkxsSzIxRW50RDVYL01nQmRMdWZWb0JnamxEREhseU9XOGpBS05GbnNpYQorZlVhYnhkeGJFTDA5MUN4SlJja3R5dTZIRFVVV1daWEVpWGwxOGQ4MUFOaVVaS083VkVlM1RacHdjTVFGSXNISAorQmIrTjhPOWdXeTlFNHVJd3FsMlZkUXFPaXBMbVdiRGdCMTdScEl0R21zdW5zaHhmVDFHeHFFQlFCVUxSclV2KworU2htQlhQbTU0d1dmbzY4TkhwS3d0R0UzcEJzM0ZhYnl5R0s5R01CblExL0trTWdxcU5WbFBZNVl5eFFQeEdZVworbHZRdFdFSGIydWRzdS9tV2VzZXBPQkxacFh3SkxlbndxMDMxMVRQZW5JdWFoRmhLVlJCSUJOeHR3ZFhmR0VvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgMjJCRjlCRjQ5NzhGNEY0NUE0RTlEQkY3MjlEOEEwOEFEQ0EwQTgyQyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBY0JVeFFlWHZGQUd1Z0FBQUFBQndEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreE1Wb1hEVEkxTURFek1ERTVNRGt4TVZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB5TWtKR09VSkdORGszT0VZMFJqUTFRVFJGT1VSQ1JqY3lPVVE0UVRBNFFVUkRRVEJCCitPREpETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFrTkpuUUNXdGxhaTN3VlB1CitqVW9kTkkyaGJ4cmhXSUg4STBhOW5OdHhmcG1FNjRpZlJJZ2dpaCtXVDhvSnlac3JYNU91ZFRVa0YvLzdrdm9pCitJdkE0UW81M0xqVzI4QU1WS1ZUeDVZS0lqSjdqQjNyQlJXbkVtWnp3VlozWEo5ZXVvMGppUXZMeTRCVXRmMzNYCit1aThQMUR0Tzc0MXE5MkNHMmRkK3huenFOdExqcjZ1VHhKQUVnNEJpMnEwTkFjU3BpR3NJbWtTZjJyeGFHL1R6CitHUjVXeDNnNmFZZWh5bllVTWZpNW0rbWdGZG5SL2swWm92TTF1bUEzWTZ5bkNrbWt0RXc3MWhJTkFoTlVaRENmCitmaDFqYWxsR3dNcTY2aFVpZFJDYXhtUkxkWEZoUGNsMVdMYWpTRHpVaVYxY0RJbjNBV1o1S25LcjhHS09yd2tUCitZVGpMR3hPTHd0UWVzV3FOMWRUSVh2QlVmZHhsd29HZHRPVHRsekl3WGRxTUxJRi9mNE9TQ01zRU9mM0xaaGRhCitIMjUzMHFydEVBdTZZYkszMXAzbkJIcVdsOWtYTkMxd2prM25pUlNROE42UE9id1gyeVpPRyttS01KQnIvbjg4CiszUGV0ZWd3Nk5VL0dKdlNyRlp4SUlJQ3Y2aUhvUzJNM0VWKzdmeW9kUHdiVjJrRGZkTFVPbXYxT0FqU3Zzcjd6Cit6Q3hhY3l5ZnNnYjMyS2hSUG9EOEdMZmZwVHNxSVhTSVc3SFJFVjhERExOTkFLTERzalA1MHZDTTZ2N3JxbmxUCitaR0NPamxIMDZFS2Z1bkNWZTFSUUlmM1hQRzFNSTZuUlFVc0l1QUxaek1IZFpkQXRDVGRHUkkxWWN0bjluaFhCCitpbFlEN2NwWjlyQ3V5d3lOb1YzV2NGT0xQa3NDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSHVxNjd5QTFzdzBnVGd5CitCT2Q5N3oybHlPaDBNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQURNZHFiT1NlT3MyRzNkaFUwRU1vaDMzRTRvVS9sNkJ0NUV4dGZ2NHB3NHh6Cit6MVcvKy9CU3ZHalhHUE9NaDVZTVM1Rk4zdGdFZG1EaXJHNW4wRkNpNU1UTGJROUJxMG1pcjB5SFk1ZkdlSGV2Cis2STFXaG1IK1BhSXQrbXVIVENTeURTd2pXcDJwZEd5NTkycklZK2NrMFU0T3hkZ2IwK2dBRmpPTmU5aFh0RDVZCithSXU3UHlMT1FhelBvbFRvaVFzK090WkdFeTcrbklJd20zOS9IWnVTdEN4bVVzbjNZM0VkQ0dDdXlxRzVsOVVsCitqSWp0eGdHNXM2MWJFemlpSHFISXJJelNnVlVHUm9nTVlvdmdvTUQ5dGJyU3Jpek4xYll6N3I1ZWRncVBPQUlSCitQUWdzU2NKTXp3S1E4bUhHWjJDR1BlUmNwMC9Sc0c1WnEzYjZRRlhtRVFCT1RYdkxuYVNMNGFKU3NVcTYrWlJUCitrUFhPbWxZN0FVRXFjck9UenlIZ0ZoV1RURy9VQlFCbStTenk1dVdSNVBnNENXR21jTE5PSEhBajk0ZmRsT3FJCitvdnJ1RmJnT2FvaDFPN256SHpJcmkzbEdCUnhXVWswaFV1RHh6M3A1bStqVFhPSThxN3N3TDFvVEF1SGY5OFhmCitCTk9MdTkrT041QmRmTWErS25tdG9zQkZEN0NqcnhWazVEQmg3dGIvYTBRbktJL2I3bEdPbkNUNnJhTWZidnIwCitDTi84NVZXRDQxbUE2MXZFdHE4K3JWdWdhbU44MWhPbklEWVpNRjgrNmRGc0tFTWRySGJ5dEh2YXgrTG50am5VCis1VXhRbTNYaUwyYnZLYk9tSGlsRC95UStHSDg0TGZhTzhDK2VNdm5Gb0xhS1RYWk83cGhKSHZFd0VhOTA5OHM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCAyNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0NTRCCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVdITXJhVXF2SXd0ZFFBQUFBQUJZVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGd4TVRJd01qVXlPVm9YRFRJNU1USXpNVEl3TWpVeU9Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMweU5qVkRSak15TkRjd1JrTTBSRGt6UXpjd01qSkdRVE0wUVVJMFF6Z3dPRGM1TkRnMAorTlRSQ01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeldzVncwa2lZMkZtZ3VGVworRmMxZUpDbXZXUGRQZ3ZjUU5qc0pLUFZTSUpNdk51REhGa2gxbnRjb1BsMExPYk52SU0rQXRCYkc2NGJQTGxkKworMkxPdHRhTmlkTWozdm1ScHU1ektGcElEYUlZSXJoQm1XcEFnaDdJZ2Z6Y25hcFZqSTFOQUJOMXowUEV6dU1CbgorTW80VlpadHBodCs5amVBQVNTdmJaaExYZVJkOHp5dHgwWDlPa2FzTjhBWjIyZWppU1FRbkNmUXUxYlBRSUtFaworSTZxdElSNTE4RDhIOXBQSXZpMHJ4d1BQbGJna05NdW0yeE9lZHBoMHdzc1VYUDg1RS9kbzZETnJKSXdEbEhkQgorR2xOM1pYUTBhRlBXNGlnWGV2WEVGNkR5NHpBSlJRMWNldjFvRmpNSWVIS3pKNXlkdlU2dmRCcmFzZkpYQ1JiRAorNFhZWVd3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVdmorUmU2OHl4Si9oa3ljajN2MUxqOVZXNHBVd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNZOTFEWAordU96dDhCeUVQcVhXL01KdkVOOW9YNnlQSFRSdkswc1prQk83MFh0blI2QnRabUNuNU9HY0s4SzlXSDhBSm5GSgorZHdtRXlDOWlTSnVOa05aVkNhcXhqRmZtRHpROElqYUFIL1p4TTdaL0pGNFRSTmZFSTg0ai92Z1I2dkRZSEJVYQoreXVHNXBoVUwwaFU3Y1FrRGlXeEhwL2EwelpyeTRqT2JxNHRRN3JiSlpUTHhreFNzZU9FNnZPbmRWaXI3bnFFQgorVXVIWmR3SDdUdm1TeE1PWW9LTExMWHBFUXJsVEkvWFl2QVlTdE5TUm0wY3ByelZTa2w3bm16NXMyM1BTRVQzNAorSFA3MUM0dk1yN3NTWUZQeGtEMmRXNG5RWVZJZ3VpRFdGd3pvUkVLZUNXYnBGTUdVSCs1Yi84TktxajNSOFZpYworWU93ajA4dzNHMlMxK2hJVVc3enNQNGpma28zSHF5Qlh2VTkxek9GWVhXc0dpR0huSE9YY0d2a0lwNzVZMzljZQorNHJoZldJa1p3K1kvSUZOcE5XWFBHNDhNaGdTL05kdHNkREpnTmQ5NEc4b1FEYlhnTVB3cnhzLzRiRDg0SCt5MgorN0IzNmMvaUJRU213azQxMFh1TENCcDh4MUphMVZDQm51dlc5cGtmUW5Nd2tzR1J3SkUxaUw5amJ0UmdHNWdONAoreDQrRHNHaWpjY1BlQzZOcHJHRktjTk1nYklPRmRSbVFzc1ZJc3hER2tYeWpvYnB6SWYvbFI2enY4WUkvemQzUworWVR3bUJuUWpPUkhGMjhSL3htQXJISkJ6MHBwZFlHMTVrNHM1THd6OUdJQ2ZvVm8xZ0tQMjJpM1p5VU5OMisxQQorRHJNSE9zV2g2anpLTy9IL0xkQkZSS1ZlSjlMTURoOHhkYnhmanc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgMjY1Q0YzMjQ3MEZDNEQ5M0M3MDIyRkEzNEFCNEM4MDg3OTQ4NDU0QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaWkyeHNaNU5aaTJ5UUFBQUFBQ0tEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeU9Wb1hEVEkxTURJeE5ESXhORE15T1Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB5TmpWRFJqTXlORGN3UmtNMFJEa3pRemN3TWpKR1FUTTBRVUkwUXpnd09EYzVORGcwCitOVFJDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF4L3lqUWdHV2VuVG9IWm1NCitCTGZrVk1iei9ndy8vMk9pODgxanBhUlRxQlZMOHNZQ1BDemlWSjM5SzRxQVU2OWR5bUg0MlhoT0lpaS9jN0tBCisrSTRYU3YwUUxqWjVZa05Rai9CSHp1dHo2dFRjVm9sVkhkTEhIdURqbUorRlJxbmFqbThtQVZ1ckxFQWFEckw5CitZdkUrRFhGSG9uODdoRERNL084Zlo2OHZrakIvaXVFL0RJT3VabzJMOGdURHJEWGFJajBxVFlEdTNSelNmWDloCitoNjRDckFaaXdOVzlmM1NuNUthaGsyQ2ZNbHM1Ulk4Qk9wdjZuY2N2V21qZWpNWVFLVHMvMldjakhJMTUvL1VrCitvMktNVk1iQzAyTlJUTjJyNk1KVnVMY1N1dnU2ZE5nK0pNK0Y4bnNKcVcyUVk3TFc2TG5tK3FaMFQyczM2bVFGCitwMW42Mk56QzNLMDIzbll3YnZqeUM4Q2VVWFluZ25ZSnhCNGIxKzJzaUtvN05sd3VVdFlKT21lMGljdGdsRGpOCit6NWZCRk0va3Q5Ny9hQWFXZGl6cjgrVzgxTmpGaE1xMlErU1ZzRHI4UjdBQ1hlMUNRM2RpdWlhSmNQWHc2TzhlCis2QktiMkwybmxhSk9DWGFrRVF2T2hNTURRTkNuVkRNZVdTVW8yMFJSYTRTOTAvL292TnBkTXJzbytLaW1ZeVRjCitZMThFREZzTndmNU5VM2JLdkxxVHlJUk1XcUhIK2ZkbEVOcmN1NUdlRDQ5M3I4RHJOQmlpQmFSTVIzalRma0p2Cit3elhEeU96NzRvVkd6anJjanFCSFFEY3ovVW11bjl5R2VtTEZJankrV21jb0dWOG16d1d0MjQrZ2pSQWRtQ1Z0CitieERWeWZ5b2hqeWwyWXpUNHNtUVpGV2lYaEVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSzhHaTU0ZUxxUmk4eUd2Cit2bkhvMGptdVFONlRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWtmVC92RlN5N3JHaVBpNXJlK3MwemlMczg2dmFJNGcvMS9lVXVraTR0bU9hCit1bkNHanhXV2I1Y2NzSE1wRUtlTktSWDlhNU1VcEYwalZoMUZPdVpKc2wvc1pkYm9NU2dNajJiN2FJTFN3UUFtCitsalpybWx6d2ljWnV5dVBaRGVmNFdEMjd4RW8vbTJlT2RqZGswaUE4SGxPWVZ3Ull5T1cwdDNTbEFwWjhhREJzCitkQysxMUJuZ0pMcWN5dWlXZ2tJNXY4RmFVK21qOFFtRWNrd3hVVEpTTk01ZnRnQUtmSWhHanVUc0h1RUxQR1hvCitsTmhRcm9Vam1ZcmpBK1lvWmJDc3ZneDNaY3E2MjdUaHZ2N0tWd2t3Zi9MeFlEcEJlRjJ2U1oxMThPc01zWG5nCit1WUM2VXY4cnpFdWJDSERBdEUxNzhkYXJWaFZpZ1FNa1FSMXlYUThBRE1JdEo5V3g5ellmTDJ0TVJpRHNJbThyCitQWnZMNmJ4MkF5Q25POUQ3dExibCtBMVlISEJqNmlXbTV0YXhQOGF5WmxjdTQxZUJadmRIb01GdjYycTVjVVRjCitBQ3MxUjNkNXo1M0NOV1RxWGdKdldicEdtYWtoN1lYdEM2Mms5YzBRMnQ2SWlzd2pVbDRKdGxnaFJZdEJ6L2J2CitLdlVWa1U1djFOaTk4OGJkWDJkeitoSkt4Nm9uUGkvMFBIb2FZV2t2RytyNkIrVHZ6NHhQazBEM09BN3JGKy9CCit4OFZSUTQ2QldQSERGVWp1TE9RU0JEZ1VCaCtUdDJhMmQ4UUt6cTNhTmcrM0l4cFRIY09nUjBLNVZQM3FsODl3CisvaVFBN2VqNUtzazBGakpINlZYWkFQY3RPR0ZXVnZQcmJyNWhqblFxWU42R1JadEpKYjd1YVdBazNuZ3N0Qjg9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCAyQTRBNjk4MzI1QTFCMjIwNDY0RUYwMDlCMDE4OTIyNjhCMjVGODRGIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFlOEJpMC95WlJyb1l3QUFBQUFCN3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF6TVZvWERUSTFNREl3TmpJeE16QXpNVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHlRVFJCTmprNE16STFRVEZDTWpJd05EWTBSVVl3TURsQ01ERTRPVEl5TmpoQ01qVkcKK09EUkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXNXam1Id0dGYjNKRWRmNWUKKzErVXQyQ3Nhdk1DOTJIWno0ZHFVdVVzK1FhWVREbytVU0Vuc2xtdzV4T2hSYUg2V2RIT1RTMXVYWExCTFAwWHgKKzFjbFdqQXF2dlB4UWxOYjNhMnJueTMybEYyYlhaYWFnRUpodzV4N2pYUHJOdDFsZkM3cVpBc1ZOOHFtQXN0QTgKK3JHK0sxTnYxM2JRTnZMVWNueFM3RHFPVmh2OEIwclIrbU1jbk5QRVNGRXRBbU5nMnRaUGJUYkxPR3QxVHJmK1YKKzlzVkFtVnRPSkpac3BnSnROYXJRaUNvSXplREoycTZ2VE9yM1ZwMnEybXR2QUVIUnhOVWdPMkNXalRtRnJNS2QKK2l0Tmx6OFA1OElMNCsxZm1kRGtjSGYwdktjRVdqUE13YXB0b1dCd3k2alA0T0Vkd1huOXlCUlpPUmZvZ2dqbmsKKzBzbS9WVVRXMVdWRU9qemFNbTZidlB4N24yTnR2N1ZiczJmR3VYNnJrRklxa0VRRll6ZkhmNmVtRm9mZzYyRHcKK0dBVk1ZUnFmSDdJT3k3bjBrc25uZ0tMRHlLQVNwcDJtakViMTZGd2pWRDNVR2xZYkJiRkdaMVRndzh4Wmx1WXUKK1h0SVlOWHF4ZGJySTloMW9qbUpmM0NIUkwySjdpZTRNN200UXhyK1J2amhGUUUyczNXWGppRk5qcDczd2JKalgKK21palpBbEM0cC9RN212bzk5SllwV25kcG85RnZncGNkd3RNekZwbmk0QjVVNUhHTTM3c1hJeUgzMEozR1NqSGUKK01mb2JvUDcwT2dpVzhOZWwvNUlNd2hDSVE0c09vZGh3bzVUSi8wNGs2UHp2NDFDeHhLa0NFSVN2N1ltL0I4NVQKK0hSaTlqam40UWRueW40RCtJMHBJTVZvY0pNTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZDM3dvUEdvSW5zUUpqOTcKK3R1S2lZM2k4TW9TTk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBWERZaVowZFh4ZkhiN1Z4V0V6RjJYS0dDMnpkK0YyUnZ2RER2TzRtK3VoWGcKK2s3VEkyWExnbW85MnNsRmhYemh4L2lvUmlnNmczTXlXd2FGMVZzS3Z0M0YrSDlWdFloKzlFMFNYaFFGemlsWmIKK0Y1elU1VVpFTGozZ1VRZ0p0TFpQWFV0bkpHTFFBSTJsV0x6cTFJSWl1TFhuZ2RRQ3FuUjhza1VhRmVvVVdGOEsKK0FWb3E4VkkrUG5IaHEvM1NEalVtNEJRaFFFRHBVSXRTSVREcFJoTXRjWnQ0ODZlNmk2MkJva0dxbHgrdkQ4Q0EKK09RMXl4czJ6K1RGOCtPVzNMbXBqbldhUDBmeFhjYSt4aWQwV3FYczdZNERaMVNrNkVPRXcyQ29JT25ITC82V3AKK0tEdHIycVhSamp5dEVhYVZNNFJhZlNZbU4xc3NyQ1l0Ri8weVovK2lIcjY5ZmpiVkYvOGIrZklMUTJtVFU0aW8KK1pWNjhJV1BTdWo4NU5YWjFlK0VtTy9VOUdXU2pYU0FRQU9VRUVwVSt2M20yeXFqS0RGU0pSVXRQWVVPMHJwRVgKK1V6SjdwczZmcG9FMjRQcFZzY0F0QmErUGFDbkNsLy82d1hhZHZmMUtXN21RSU1ZYnN1dldPaGRkY3d3bTFEbnEKK0htVElsR2ZxbENFeHorN1RWc3N4dkxmQkYzSW4vQlNnUENKTEtoNUtpT2VaSGNWMml4WERiclBTMWh4VVZkWUYKK1ZmYUpER1dCbG1zczBtSWhrY05HWVVFMXd0dnlwKzZoM0RPcnZRWWd6NEJIM0JBZHJXTGMzZFJCUCtsenZyTmsKK0FwMnh4cUtySW5TeVA4M1RsQmpBQXhSdnk1VWsyMmhjRURnc3ZySlpQUkE4S3dmb25IYWJjdENGVUk0cUlkRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDJBRDcwRUI5MDk2MkM1NDFBNTVFMkQxNUI4NUJGQUQyODYxNTRGMEQgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWI3QWhQWWlaL1NsOEFBQUFBQUJ2akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3dPVm9YRFRJMU1ERXpNREU1TURrd09Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMweVFVUTNNRVZDT1RBNU5qSkROVFF4UVRVMVJUSkVNVFZDT0RWQ1JrRkVNamcyTVRVMAorUmpCRU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBa0gzVnRYWEpBZnNmeTRLbgorQnBxdzdkMUUrT1JNMXM2UnBzd0xRT1FEQjZXMmgxYis4L2J0Zjh0T0cyTnR0STZrUTVDcDlHUFY3YTRmdXBGWgorMzJWdnVKcyttZGxyMFhBYng2TmVDU1RmNmpXZWtQSjRvZHpNRVNBblloeGt5Yk9pSmphZVlpKzNGNVRsTnRWdAorK2Q0K2hWbkUxV3gzMERlRkFnVmlwdEszSmxwRUI3cVpGbTRQZ00rczVlajU3WWpZQkdNUmtOUTM2SkRmSU92ZQorOWpRR3hzOU5rMFdjV1JVUWhvdTRwdFVkd0duOUVIdXkyTHI2RnJKYjVmTXYwWS9oRnVkaFlNTjNiaHhwM21VZAorQmdHU0VKQnlGT3lOOHZkTXQ5anh5Q3hWRmNWMjNNc1JqVjJ2TGR4WlNJTEFFQzZ6VlFxVkY4WUFlaUhvenczRQorRGFRL3R1UVpKQVZzeVo2V05tcXphdkF2MzVLeFRYVlR2MTh3L0s2RDJjUTVSSlBXV29LaXpmT0E4dDIyQloyUQorcEdLeVpjUDcwbmJ1L202bkhqdFlQbDQ5YmVGeVRwZlpORmU1REFKczJ3TFdyZUVWcUNhSVFIdkY1U3IyWDVuWAorc1hrTzcyQWcvQUcvVzB5blBvUjdsTEx1aGh0S3R3Zk9oRFpvN2JBTlkxaEsyaGxkNm5BVnZ0QUcrMFJOUE1rVworaU1aQisyUmtWVi9mbkxqc0pFSzFVaCtJTlpVTVN2N0FFMUEwZXpEbUFqM1lSM25NOGpPWWVBKzdUZVZmQ2ZIMQorQ1pDWXNhMjNSODVPeGpOaXIxZHFhZHB2V1BWb1pmUTdXdm1WbE85STRvQnAyUzMzWlBaSTJzQjNkMUxMK3BLMworUzZOTkxRTUwrcC9oR2UvSHBIdGdiaGFvSUlFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk45K21lZlZMV1BJcC9iRAorVHFGbWZVZldHT29wTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFZeWpEeTJKbVJwaXU2NUd1TXArMjdGcGJUZzBuRGVtUDAzdFNORWJ3UmlCKwordFBrVU1nRzdYS1hiSnAyQVArM2VaN1FVWjFDd1plOTZ2OWFOWHU3UXp6VDJEN0FoN2lVdG9HTjlEUXhiOVIzUAorR2s1cmN0bWQzY0VUNjZqdDVzZUhTekJhVnlRcno1V01GUGVJSWxuUzIwN1hMOEZBUUFiRzVqbkp1OXFiMTNwdworZWlVZlZYeE95RithY0NRRm1qd3o1dVJxTzJ5WFZleFdzci96dXM3N05iTDlwdzFMck9YVTRPQS81R1p5YVR3TAorZzFLcVB6MzhZUkNMenlpdFVFTHZZUk42KzFoMXBrUlcyL3FIUld5d3hpRjRtZ2lTcjVVbXRnaHRkRi9FemZXVworcW1INGYrZTlCdmVlYi81V052eDFrcVllV2JIMDVybkJ1WlBVZDkyNFZpWlkxdzZ2T2VCVGpURHNQVVdrWHp6RAorWWw0MC9CdnI2K3ZQZVpnVUxMT3VUdzM3d0p5OEV2YmRxMHNITzhYZVZwK2YraCtvbVhpZkcyWXpJcGlkZE00egorVTB5eXp1SCtFTkZMQlZuOTBka1ZPMUM2cEppRXB4NnpPNWNwNmxVZ1JjaEJNVjFxSjR1RHl1TkRNVWZ5NXJTaQorWHlGTkk2RFgwWGIrZUZ3UEFZY3NLa3F2U0FqUnJ4bURZN2JQazcyaFBsKzlJNmZQMS9QTFBtUXB5REVyRmgwMAorNkhzQ05CM25OUmZXMi9UMVpIZTUxN1g2VUFsWGt5VWVORkE4bjBNZjlKMzFXVGJKcVhxL3ExS0pEUW5RWlRsUAordVQ5WXAwZ1hJdXVDYndtQVUrUzVFVGpHcnRhRFNsajg1WXVCV1hBaHF5WHl2eGJwQ0JyMmJSYmtid2RvdFV3PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgMzczNUREQzhFMzAwQjgxN0FFQkUwMzUwM0E5MkVEREZERjFBQzcxQSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBY0txT3RMTnNtaVVzZ0FBQUFBQndqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreE1sb1hEVEkxTURFek1ERTVNRGt4TWxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB6TnpNMVJFUkRPRVV6TURCQ09ERTNRVVZDUlRBek5UQXpRVGt5UlVSRVJrUkdNVUZECitOekZCTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6YkNEN2s3Vjh1RVFTakUvCitHRFN3UXhsdVI2NEZ0VGN0azhPZVdLOU5OalpXaUF4d1JJdG0wZStadVN0SjRzbG9hZFZ6TEp3ZDhUSlE2aVJwCitwQ0FPdng1blBHVE1CZTVjbU1UaXM2cWpxZSt3OHMvZEtJUjB4aWc3cGc5aTFTYVJOZVo5MHQ3WG9FZWJvOUwrCit1VVAwREgwL3djMXMwMGR3MVg5WHBLcDdNOXBVcGZBWktmV2lHRm9BS2tKdmV2cFRicUNhaVoyeUpGcXMrUTZ3CitmNFVza3Q0YkZRK2RwcjJ5L2x1ZXZ0dE9tb29oTkJzSzRadzdCdjB6RWM0SWhXbGhXYjlTODVwTXh1MTRpN29TCitDNVo4d0x5YTJncDMzWmYvenV2TjgrSlVZaDAzZ0ViNUFKVnE5TGJqeFlRTUFESkFwdENTSFJKV0puSTZuUHJ6Cit1eDBuVVJDUWhXQkdOQVd5b2VENnVhWGowV1FkaXZ2K0d1Q0plZnYzRlhrZXZpUHI4Qit3UkdUYWVFbWIwTHVBCisxVG5iTG5KcktIb0ZjYVhsS1o5M09yZy9VN2g3TmxJRjAxTThtZHF0Mkp2bklOUzBJc3RZR09zUlhNSjRLZmd1CitKVkFNWC9DVy9jMGlOdmRaSnZKWnkrZmlWTHdiSFhWTHdKWkxwZ0xVZUlNMDI4aDhraWk3akFMM2hyUmVzOWFwCit1bVRUZVpQakgva0hjRDJ5ZFB6Y2JRUW1vR3hLTjc4dmxWNTJLYkhJRnJpUnhvR0FkaU5temZEbmdvbm1RUzJJCitJNDU5YnRuYzA1am0vQWxEZzRWS2ZMRzNBMjJKa3dNL2pkSGl2VVdZNThRWTZJVkMzT0Y5K2NVNjZINDdrZjJKCit0by91WGY0eElMSVRzOVY0OHJyMlR2VUpTelVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUEpKV0dMeUtsVnNQZkErCitvT2wwdzgrNDlrbTBNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWp5a2hOMWV4WTdNakIzRHZVaGV2bnRoU2xZTkF3SFZ3NHI0N202Wi83VVN0CisvVWVjQ29xTmU3QjY1ZUpyY1NRTUlnQ1hPQ1JQcHJ5cXJ5NDlQSjVlcUltWmFsd05aWWRUKzBZeWF0Yk0vVVJQCis4OGtzSjM4YXNVSVpEbkd4UWtEUnAzVmVCV0NUbnl2NlZzRUxPcWo1YjN2OGltbXJVMXd3dC92OXFlNHRpNXRNCituM3JUU213dE1ReHdweGV6SmtKUU1OV0pxL1hnc3RpSklOcExmS0VqaU4vTVByLzhCNW1zcVdVRU95MXV5eHFPCitwbllNSjhUd0lPLzNVTkVFR2VHTmNsMm13SWh1eTdNTHBlTFZjRmdFVFhRLzBCUC9jS0FmUjVjcUtGdXhDNEpwCitCNEU0WlhRdXhMNnB2Y1ltdHlTaTBwd2pjTGQ0Wks3ZWZ2UHlHQVRmZDVyMUdYM2NVNkhlN3NvSGM4bnljTWViCitSTU9hbVFVbFBPd2RlcWo5Si9pZnJHMkVCbDQ1cnJ6Szl6MC9NMWtpa0JtRGRXUm5kdVQxZXoyemU1YzN4bW5CCitldFBkb2kzYWJETGMrWGN6WU5VSXFWRFJlbFNxcE9tSmZBUklxS2laa1hva1V2V2gwVHl3SG0wSmpPRS8yNW10CitYSm9wUTNBSFduSzlZKzNMZEdVeHNPaUJhenpqT2pPa2RQMUxEQVVNYjFRWkF2aEhORlJRaExiY3MxZWloTFdyCisyeGlPTmFWVTZKNkI0YW8rdnF5QW5CMnQyekJNSXpsbThHN29sUlVrUWFFRFJUNGlFRUJnVTQ2RXp2TzF6TEZkCitRVFhsNGdIdmVCbmJhRkpsdnhkSXNVaGRXY3NNaW05NDUydmlkM2EwWG9DSlVwSUlyU1pjVVBUVkRFZEJ0ZHM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCAzRkUzRTNFMDM4M0VDQjg5OTExODE4OEY0RTJCOTY0NERCRDM5QTNDIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpS1BoaFpKYTB6ZnhRQUFBQUFDSWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE15TkZvWERUSTFNREl4TkRJeE5ETXlORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHpSa1V6UlRORk1ETTRNMFZEUWpnNU9URXhPREU0T0VZMFJUSkNPVFkwTkVSQ1JETTUKK1FUTkRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXhnSU9rdDZkNEZ6blZLSkMKKzVtTU0wanZZUm1wM2Zsd1ozQ2VHeElGWlcxNTVMb1FJYWZqRWtqajRRRVpjWVNkVWk3dUhGU3I2eStVY0xZYUsKKytSTExIbDZJdHZEYk5oTy95Y2o4TGI0dFAxVW5TSVRack95R216d2xSRU5Eay8wdTZsQzhBWWRYUXRxdmNZV2QKK3pxZFIrOHRVKzk3QjN6dXlEalhJQnNvM0orN3g5VUdNeXJMVjVqc2IxMjhzSHNVUjJjb0g2b2pHNUtiaUVyUjYKK1JvTWFDSGRzdHF4Y2dwc0wwZHhTQlFZQnhEZ1ZXSGp4am9UckpFTDV5RGZmblpJcVlvWWRnWi8vK0syM1dCQzMKK2l5aG5Yd1I0VndxYUFvMGFYMDlENnhYNzlaSXJNNTd1RVZvYmJIaTBncVJRRlQxTlVkcGt4QmU0VklVYjdDUzMKK3FwVzdERUVlWjJMLzhmTWc3clRzc29kTzJkaUNKU1lrWWgyOUh1YzJFZm4xdllHZ1ByYU5IZ2hIWEc4ZkcvR3MKK1d5U1NxcWJqM0JLbUczVUtsOXQ4bzVxeXpWczhXWk1aMFdDem0vZ0dEWkNZZkdLWXZDRjNTKzVQdXF4UVM3bW8KK1BsOGZPMFZCTGVNTktBT1dKeEViU2lHbzBncTVHd0VFbS95dlpGWkVRd1pyK0VsV2gzZnBuRHRYa1lhQ3o3Zi8KK3lJUTBUaEg5TzI5U0NxVFNjejFOWEhmUm9kdGRVNmRvYjMyNlQ4ank1MU9sNnUxMk5GQ0tHSkRGdFVXS1lDNWgKK3JiNlhLUXB1dkxPcERrRWFIMHhjZHcxSDhyQTVad3NkUFdVWlVQSGRBdDVhWmM4OVNYRVdySkdMNUZCV0NOMFgKKzZGSUYweGdFNU82czJMWFdoZHFNVStGbWRja0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZITXFoazlWNzdsbGFKUEMKK1h0TE1WYXN5NlhvZU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZS8zU0ttam5pbE0vdU1tVEhic3lWMytWMzM2SXhmRzc1a1dwdlZNUUFHR2wKK25hNnppYWIwWHdoYUtzbHd0RldxUnNqQXZmc29WcEsyOG9MTzJsUm04L2VmQ21DQlpjUDV2T0Z3dXlNb09pWWwKK1NJVUpoRlQ4NFF2UEd2OTdxQWpaU3BaWGUxc3pnSWVoQnQ0Wm1majBFWVdtUkl2Z0ptcWFkUE5wRXJ6c2M3T2EKK05MdUZHdFd4eWdIMWlyeFVsYzRUeG8vTUdpREhTVVRTRERxcllNUGVvZHJtbGQyUUZSeGNpbHg2Nis0RU9wZWgKK2VqcUZpUldzQzVDZWRtQS9zMitNMmZweVhSemVCQmd1VSttU09SeWhkb0FWU2NMWTB1WExIcXEwQ2kzYnNtMXYKK0gwREZGQlhyL3JCeWZqdmYvN0o2WXJqU0g2MFNKcWNrTXlyN1BQVnppOVRGTXR0WWowcDRUUzlkZXJjRmk5ZE4KKzRUUUpXN0ZrZGc0dmRyTU1kUFM2WlprUWJiOGhMcHdQUWcxaTB2Um12RDM1UndTSkVaMVdkVUEvYlpORzNJYVIKK21WbVdiOXZoVWJSdytmRjlQRHJDODA2RUQvaEhRU2N5cFZ6YkR3ZzJDTXFTWlhsWlh5YXhLazlUUEliVkZRR3QKK1BhRURXTWwxRHI4M2ZiSnAwRFBudjlHY3grQURrVHFRQU93K29Sb1ZlSUM3bkE2L3FrZ1NqdXVSc1Q2aFlNYWMKK0l3QUZITUM0RmNqT00wMUt5MVRUanJFeks2K0xuNXBJRTZOZVpPdU50OFBhV2hiTGdva3ZhZjl4Q0gvcEtyYXEKK3lUdU82WDJlK1lkRlAvRC9wekcvclNOU1FJcFA5L3l2U3VqWklkOUZYZityTTVhRUhCTVZXV0ttZSs5SXBETT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDRBQzkwQ0VFNjhENEI1NzI5REU0MzU3RDJDNDc1ODg0RjQwOUI3QTYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZESGJsZm5uM3d3ZFFBQUFBQUI4REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpNbG9YRFRJMU1ESXdOakl4TXpBek1sb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwMFFVTTVNRU5GUlRZNFJEUkNOVGN5T1VSRk5ETTFOMFF5UXpRM05UZzRORVkwTURsQworTjBFMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeDQyY1BaTUdXaHMvdkt6dgorbHFSdXdSZ0VPV1hhcEVMNjlOdW5QQ0l4NnUwMkpJbDZ5VldIUngrZEwza040SG1NWm5HNkRrK0k5bFVmVHRQYQorc2JMUUlwNENHTTIvYWkrVGZ4U2tpR09lM3ovMzRFRlpGNTJPNHVEUHZVTzJ0N1IwbSs3Vnc4aTdsSWFaQnBRVAorMFI5U0ZLMU0wVkdvRitlaFhPcDZyWGs0N0VoeExKYi93cGhCRVVSV1IvcUsxYVBjVHpZejRvU21wSFBMcTJvdworMFFuRFJ3TWZ4TGYrdjNEZWk1NHhxOW9PTXFTeTBLOFdOaUk0cXBrUjcvcmZ5MzFqQW51Q0huR2NhQlIxNFdRZQorMGo0ZVhqVC9Ib3hGbFU0MGtzNzNVbWtsRmp6YUFIRXNoa05UUHBqNGN4dmExalVaQXF2WnNNUTlDZXVPNEpTSworc0s4MEEvcWdKUzgzOExxTW5JVnAwdHNXMTQ1dEUzbjhRUGhzUmFvNWpsNkExOWM5bXJ6di81Z1BHRU1ycTdCYQorQmJPZGhnK3NybTAvYy9VWkFndzR5YkxnbmhIMllOOXhuZ2xOMmNTajdCYkoycmNmdXdESzJOYTh5YVdLcm1PdworT0kwVVNzU1FzdVVkRnZlSlhnVlkxNGUwUG8xd3pRN3dzYk1CUGlHVzNIaENMZlBJazNMcFZRMnZJaWdWbmN4VworUUhvTXJ3RWJneksvRzBVZDR2ZlpsMlVRL01xWHRqbndjb2dkVFhQQkNOU09JSnMyTnloQVBqSUJ1RmtUNy9NYgorcDVYTWJOc2ljS3VqRjJpZzgxVXlrM1U2VkVDWEtqQzRQYTVuNFJROXhQRE1XMTZJYlMzcTk0VXRRbk9xNkFqaAorV1YzN3RMOXdDVlkweW52Wk8ySGFBVWM3S1RzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkM0eTBhWWJCTTNCZk9lMQorN2hSNFJWWGpRa01BTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFreGM1a1gxZnJ2R0gyOW1uOENKUHJBejhoOXBaN090ejZ5YThBeHhOYXFFLworY3ZMS3Z1VUNhUDE0NVA2MGRKOGpMODdLV1M2aHN0dTBobU1FNm1Md044S1NqMXJrbUh5SE1KVW1YSUh3MGVmTworU051YW5KODB1bERSOU81N3FHM0hoMWJ4L3NjQTk0Q3pUTGttNXNEVTBPcXJlTEV2cWJvTzVWcU9ITXQ1NVRpTQoraloyRVVhZUlwWDViVjNXcUR5K25EaDNlS092dDRkMDBLZlE3TFNUNDV0QzU5S0RWdEc0NnorTXQ2VndLS1AxRgordzdBK3Q1MVhNQ0tFMWxZYzk4TWRUNlJ5U1NSSExJcjhRbTFZQXJjWm85cGZaYnQ5QXlnb2VLNVFNOU5QWkRPbQorMzFPMWVDc24wSTFlM0wrWkxCaW1CN2lQTDE4R0VPUkRhaTcxNHFsZjQweVR2VnNrUGxtWlBJUkhVVnE1ai9rUQorYTIrMFhDYmNuTW8vODhxUmlRL1Fuc3NCZXprSTU2dWlHdWNhc05uOFcydkhucXBEbVRHRy9LWmM1bTU1ZTJpaQorRWVpM0FtZ1RVZ0R1dU80SjVCZUtDYU1memlZRWNFWDliWk9zMnpUNVp6SFIwVGJDU3hGUTFBVWJpdk53TVhBbworWXVnTUhwWWsyQmk4cGJoa00wVEVQQzMrLzlVZlZLc3ZiQkwwbnc2bkpqRTFLU1dXWnNKYThhcFVFUXdsdDJZRworVDFUQmVvYnROZzh0UXdZdTNTdlQzekgwVE5OeGJIUzJpTHQxVUJDbVlxeE9BQ3ZnNUR6UHFSNjV5eGIwUVBwMQoreHdIbGxtbGppSUJWSWNsR3ZxT3lWL2JQbGt4b1ovbERzU1UyYVlTMTBKR25LdmNPaXFMUmZqaDN5Z2tpVUUwPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgNkRFRDcwQUI4NDFBRTlDMjJBMDM2NDdGQzhEMTQ4MjE4OEQzREFFMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYi8vRERzZFRhM05SQUFBQUFBQnZ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreE1Gb1hEVEkxTURFek1ERTVNRGt4TUZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzAyUkVWRU56QkJRamcwTVVGRk9VTXlNa0V3TXpZME4wWkRPRVF4TkRneU1UZzRSRE5FCitRVVV6TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFsVjR6K3NWZ1dRUU1LWkZuCitqM25hSjVGYjdaelUzSmRzWVZwSkM0VEZHelA0RzNldHIvdnFndVB3bXhBVU1EN0IzMmx4NTRoLzJkUVZXc0FLCitIeHdLRGxaOVpoS0x5a0UzcE9jeWY4dlRtQ241bGFPazYrMEo2MzltMitEL3JsbVBQd2dCVHU5R21RKzd5UmJ6CittdFhnU2ZPeVljVjg1YStIbEpzRDRPZ0Fsc1dnTUlpaFRkRE5JRzJydHZ4SXpReW5xcjVseTU2VHUybUsrRXBXCitGY1dnSVpXZlhFWEVMZDRIOEVqOU00TmIvWjVoVVJBbGppa1Zmeno3N1oyUmt2WVY5QlR4UnFFVjRWa053QW9kCitoWUlWSndtTGpjdDUrWGVGSEI0bXNuNTZpU3J2ZWRoUGt5b1puWWFHZ08xS095ZWF5dWVQRmx6NStVMkplZE5aCitiZm9VZXYrNlJCSXpkYVlNc2lBWDZvUkxTS2IvZjdTNVcxVUl4c3drZ1R1NDJaVlJtVmRWT1VSYm11NjltU1BlCitRRzZ4YStUZWJSbmU1L0t6WXNuTVhhWEIyaDJBMUxCQlozQXArQ0ZvOE0zSFJQR2wwM3lsRlRoZ3JRd25iRktQCitsQmRHZGV5YVBtUWlWRnRmaUlyT2g1RHRFU1dFNmx1Tk4wN25UQkYrY1JXWGhqaDB6ODR6cFhlQXlqWlZLY0N3CitwU1l1L3BnYXZKbHJnTWlWemF1QkNVejZRSlRZR25KYlRSOTZUUVZGYmVMOG1iQzQxR3FXL01jenA4UmNRZlR4CitRZ3JhMWUzTjlJajg0c3hHOGwxRmxPVXp4U042UHd2c2lIQm9RRWUrUFVUT0pRalN1S3U3MzNCaEdkSjFRZXJQCis2VXZTUDFieTJ2QklwMlkwNU5TMVJGSlI1OGNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTldtdC9RcXNSMEpMZjdpCitWYVBzNUI4KzNnZHdNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW5WaXlSTVJtNDljV1NyVHRkSWMzKzYydTJTWHZCM1Q5bUZxdDJPTW9UUVFmCitZZWdFa09uMkMyTy9Sb09CUGJZd2xSQWYrNnBHeGtaaS9nQXB3enpwamNVOVQyelV1ZGdQTENGQnJlQjZoSEtNCitKT3lvcENycmc0SDVjSzFrUFZCRnFSZEZBUkpYUFBIdDRkVUtiSkFXUjBxcmFmVmZ1MWJxNkhsTnhzZUs1c0ZTCis0M2VrY24xdDBVUG5HYTdFcGZsSTZNYW1Gemg1V3YwTGtyenhDVXJ2S0hmVXNPYUdJcklCYnU4VmNpOHRrbGNSCitWN05PNjkwNTN2UHBmWUNacUhybFE0SjVXMzVIZTlCVkFTL3ViSFF5RUNSV2ZpZGt6NDB5L2JvWWV3eUkyQXpqCitIc2NSQTVYbys2K3JtRnROdU9KZDArSUhWZ0swaGNlWk5Rd2VyenV5bHhPRE83NDR4RWVRcytzZ2E0ZEtkdERnCitjYnFueHNQNFJGMk1WWldFSjVUdlVEc3hjM08wS2pwZmJsY1pHTDNma3kybk5GeUFNVHk2ZlpnMEtEL09ZRmY4CitzYTYxVGlqM0FzTTRSVy9RTDBzSSsxQXlWaXY3UDZDdXdwSDVCcklrU0lhZkJCY2R2dHg1dGI5WVVPVjVsbThOCitaUUhVZmFCci9vYmg4MU9uR0pPZTVNU3BacTJFNTFTNEJML05LL1pBb2pYZm1OVGp4RlI5aEpWZzlLL01CSTBYCisycW50eEFBYWU4cnMzd05PWnFjZVZYWGRoS1pTVTFWMXJJL3lkTXpoNXkxNUZ6cFhWMEJselN3ZkhycEdvZjJkCis3S3YzVENSNTh3Rld1WGdqUDN2N000ZmdFb21QN1JlN1JZbTlFZHRjSmZSK0Y2NU9ZYVY3R01mUTlNNG1YcTQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCA3M0FCQjgxQTAyMjU0NTYzMzdGMDJCMjVCRDM5RTY1OEI5MEYwMEZGIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpWkF6Vkdpby9TVkVBQUFBQUFDSmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE15TjFvWERUSTFNREl4TkRJeE5ETXlOMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDNNMEZDUWpneFFUQXlNalUwTlRZek16ZEdNREpDTWpWQ1JETTVSVFkxT0VJNU1FWXcKK01FWkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXRNS0hFemRuUVI2NEFrcEQKKzErNGs1TE5LV2Jac040cFh6R1EyU2xGQXVpVmxsc0tENk4vNkg4WmI0WTNWallQNkRnTmtFUm9yYWJGdnM1dE4KK2VBQVJwVVNQN293QjdIY1RoQU5pa2JFSlFTd2hlRVAvYXVReUtZdm42L2t4N3NObHY0d0EyajczWnUxeDF1SDUKK2Jka3JUSmVVelRYUXRxRUc0ZC9KbXFkdThFWjNoQWFhcHJaRTUycDRFbGxXdGh6QzBYNndDbEMwWmNmT2FSWGcKK08vZElVSTJaS2FoREN4cjFVSjBDZFkrVlMwUGNWY0tvK2VWbjA4YWplU0E2aC9jQWNXMzJlY1R3eHVsckFMTXYKK29IRXV6Yjh4Y3Z4TVI4b3J6TkE5MXIyaGc5ZWpETzRyYUMweWQzdS9iaGhFUVV3WVJ0emJNeGtLR2xlSDhZeTIKK2dycnNYL1UxTlhQMEI3UHZUSlZaY1piakc3NW5oUU1CN2t6L1B2WjdVY1FEM0JkQURCaGNYRStNcG9OSUZTRUUKK3NtMVBkRVpUajB6VlYyUlU3RHVLUlhhUG1SaVRWaWdZOXFWTkJPUFZyY3hBZnBFNmxNLzNXUW5BNW03dFRLcWUKKy9seWJuaTk2eUlJS3Z6WmZqM1ZtbW9sT1hkd0xxaVJoemxOK0lJeml3d0x2cktxMWZhUFdYRE9veENMb3ZoZGMKK0Y3UWhqWEtWbTBQV3dYSHpGOG1Tb3dBTFhISDN3a2w0dUVZZUtpKytFa29JR0RWczFVRkd5QzA4U2lXdzQvTm0KK0EvN095eGlzSVlneC8yY01seWw3b21yRTVoMEp6anNrZE5lekNGMWNPcWJCWVhtME45dnhXSmhlMWRUcWJFeVYKK2g0cThVUWRvRmFQQzBSQWFDOFQxNFN0eWp6TUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFWllUZlFHVmdtaGlqOGMKK1hmUU5iQThwVkFFd01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSmRYWmJad29Tb0tjdllIVE9XamlnRUxJRlVGeWVHeENnRmFuOTRUTEJGdmkKK2lRR0RiVHhHV0U4Q0l4UEpIdXZMRmJBcVFWLzU4UHZEc0ZHTWpXQmpybFJGVVJtVkhDNG1mcS80V1JyMVJFdi8KK3YxMElBcFVpQTl0OGx2cWpPeklLcGE5UUdFQnpQL0tQY3g2RGtwbmhSMVBEZnVTak5NTmc0LzdpVFRYRDJJSUsKKzlyVEpKay8yQVNWaUp6bVJuV2ZZa3pnc0dJbFR1bWFLeGQ2NDNlTEtFekNDQmNtSmZyL0JSdXBKYmZMdkg2SVEKK1hUTm5ZOE5YajE4NGlWdzl1czdFd1NET1RXT0E1R3FCZWw4VHFNZ1ZBa200T2hobVMxT2FoMDMwTk9GTU1WQ2kKK3lvL3crWnZvMmpxa2tVTlhISkE2SExGNk1hUnllSWxxZERDUURLOE4vMlBVYVBxQ3BFR2poenZnTjVJbW05UFUKK1Voc3ljUmRqaUxtaXN0ekRxMlZ4eHF5UXRaR3RCZkMzRk04VkUwT1pmUDI1VWhuZDU3WUJCek83dmxpUWR3cjYKK29Ga0FHSkZUalRtaEFuWTRvYWVaeWJtVTdmeEJGN1pOSk9BVE4wS2ZVdFAwRmo2NDlkMzhUbE10cisrakJJa2MKK1dUVCtvUFI0UGlpKzhMNDFzZHF4dUM5cWVCZG9sM1NRM2hOZDFHSzA3VnV0VG11KzJlV1MzY3BCeW9lVG5SWUkKK2dtR0U5Q3NKYkFYc3NsZ2Qxdm9kTnZRRmdiWHp4QUpabzVwMFlqSXg1VWZRQ1lqYm56bXhwOVQ5UXYycWJjYkkKK01yZzJtcXplZjZnOWdsbktsM2V5alhIZTNWeUM4RGhKUGFOOVNHOGZYVFRXVlp5OC91TXNGSHNxcWhvcWhrRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDhFMUYzQjFFMTI5RDRBREVENzYzMUY1QjRBMkI3NTgyOEFGMjgxMjggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZJNXdIeUZYRm5MdmdBQUFBQUI4akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpNMW9YRFRJMU1ESXdOakl4TXpBek0xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwNFJURkdNMEl4UlRFeU9VUTBRVVJGUkRjMk16RkdOVUkwUVRKQ056VTRNamhCUmpJNAorTVRJNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBanpPSmprY2FrT0c2OXc3UworOGJGb1hsUWkyT0Y3M3VpbWdTVXdsNXNrQUlmeVdaWWtObHE0aEJJeXVzdjBqZjVpdlBtamMzR2hJNHRCaTFjbQorRnZacVhGVis4OGxaYmQrMk5veVBlT3JxSFVZVUpDYnpVM3B5YXhXUTg0enY4UUZRM3ZqcGM1K04yVVNXajZPOQorMnZ4bm8reFRyU21VaUJQL0crZHVRZE1kOE1EdWJ2cGFPL0hrN01GejkrekszSzQvb2dPcnVMcUJTT3plb0NhdgorSzFtc25nVE5yN1hJUEZKcUplZnZaRXY0YTQ1UWxSK29xV25ObTRyR1h1Mi96MFE2SDFrNEpJSXh4SU4rTVQ3ZQorUmFsRzZ1RFEwT3VsRWFCSTN1MStJTFdjU2g5MU96Zm54QSsrSzIzbml4U0ZaUWpkTDc5VVRhVkpJNi9FL3cvbQorY3BBSXdqaWw5eUNGMCtFSjQ2UkdpeFJNaHJUTGpBa3BEMTVJWGF6UDA5eDhkVkpwdm9xSEgrbFB5Qnovb2dxMQorU3haMElFNlIrbmV1WWU5dzBzRytEUDZlQjRIcjVRMVpqbTR2SVdmUm8xYm5YbWxmVnhlNjhQblNQdmNpZHgwegorN3J1UkdvWU4venA3SVFnZStKUjh5aER4VjZZbldyZHdwUlc3Zkc1eDBkcGFXQW1ueTNVMzNhdkc2ZXhDSDFndwora3RnSGNiUjVpYTU0Tmt3alE1dW85UkZlN3BNenR0VUIvZEc4ZEdNbm5DYVR1NFYrQUJndUxha2VVRVpmNEtoaAorUVlEU09GZ2FqYjl2S1pMMFRZVVNZRUo4QmV1dDcwck0rOVpYNzFGS21kZW1UcUZkcjV0Mm4wSGVsOExob3R4VgorRzhEWWRXeWQ5UWtLemNWdUYzejZ2SzN1dFkwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkFYUlNZUVpIaURaQlBmVworVm1sQlNET0hiN0lvTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFGS0NKVUtBckVrRU1vTUt0M3QrZHh2QXRXeU5uUDhhSzVpM3V3OFZ3VWQ3MAorYUFDcDJmbWlEMWx2WWlZQVN3cDNZUzQxWnNIMTJzVVBQZ3k5c0dOZGJ4dFVOQ1haYmt5aEx3MWZySTNjMlZ3WQorb2ZQUDF1ZUFiQkU5Y0hBQTl1bjgxN25rOUNITGpITktVYlJiOEtXTWRDbUJRZ09rMjVDazNPdHRSay9rSjFMVgorZXJTYVBFRUIrVjdYRkoxbG8yL2NMSVc2Kzl2V01YcDNuRi9VY3k4MkNnYTlRZ0NiUWtnbnM0cnhGZURnOC9IUworb29kWXQ4SG9hMkxNcm4xRGFlMDl0cUx2M0NnUUY3T1JNM2htb3NVS2JESnBWMTNBcXp6OGZJbytEeDZHSnlZbQorbWcrcU0xc0hSZytMSWdhRDdkN3FpSG1BdUtSN2hpdXFlaENON3dvZ2JMQVZoSVo1SGF0MmxvaE80bWZuK0pBagordTBRNTZYZ1pzeWg3KzNmUHRvWFJUbURJYzNTZzJkM0FlY081ZmZmOXRhSDQyV2lHZkRMaTAvY3krUXladjJ3dAorTGRLcDFEL3R5VTZja0s2cksxYVg3b1l0YU9FV2NHNkNlMmVwbVlFRVRpbWFwT3dlQjcwNmlZQ0NSRk9ad3NveAorY254eWZXWTZRRExtT2p4OGxZM1lpL0VDbWpuQnFCU3ErK3ZrTjJkT0YzTW56RGNScGttSVdwL1AxYm9NdCtPaAorUisybUpNNlZ6K3J2UHdtR3BYaEFtWUpqTVQvWHpXTTRlbkp6RDRTcUl0M1VZZktBWlVyMEt3UmJyRHRZd0FsRgorOGZiWFhaUlcxL28ySml6bkJ1bytqKytsRWJPd0MrQ3kxSG9wcGlUaWtSOW5HbUJzejNrL2NlMFNyZHJaazhFPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgOTUzMjE1M0JBQTlENzQ0ODJEMjc1QjFBM0U0NzUzMDlEM0NGRTUwNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaXlGaVUva1pjTUJpUUFBQUFBQ0xEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNek1sb1hEVEkxTURJeE5ESXhORE16TWxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzA1TlRNeU1UVXpRa0ZCT1VRM05EUTRNa1F5TnpWQ01VRXpSVFEzTlRNd09VUXpRMFpGCitOVEEzTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFuQUNXaW9NK1d4a2NzSEVaCitVZFd6MThadjZMQXR1Si9Pa014QXdlTlQ5U0pralR2NjlQSHZHSWNwZ1BCWHd3NjErMGZCTVJTSzg2RDBOMVdGCitNcE1QWHovS0lCK3NteGRrb3U4UjFOdGZiMDM3N05IRXh3UGMvUzg4UDl2b2RkcHplYkFFeXAvQ2ZYR1hMRzR1CitQM2VpUHdmYng2OUxqeGwyc0V6THpieVBvcE5lbEZXMVBKcndET2srY1pRWjRjaEN1dllSZUVGQUxjZlBMb2tCCisvWndKakRCUjg3eElMM1RlWkg1bHBSYXpSRkdDYkVZSWpCdmg2TWw1NkVRODFkc3IzWlhJWkk0T0VUV0dEQmRzCis2R1Z3aUFoRXJ4L3Q5Z3g4YnpsWmEycmRTYUJEWnlrRW56Q1pBOStUT3pwbUhXMlRRSkZvVERFT0k4QlNueWtaCis5b1VYTERKUE1JS1B2NkR6NTRSUk95cTgvREYzODVLRFBNMEZPOGZWN1RjMGhwK1dRNktuUHNtWXp3WWxkNExZCityYkJ2UUdDUU9IMWdwaFI5V2ttdmlGS0J1RzVESHdsSWxqTkNyeFhBRXZTaFl3NWFGSG1WTzcwNmsvblJyTSt2Cit0d3dyZ051UDl3Z1lJUGR1U21ZRjNwSFgvS1daV2ZRV2lKR3hkajRPbjZXVWdFWTd2SGpZTnppN2ZXMlk2cktyCis5ZFE0TTgyRElrdU5HUkNqSXdKTVd2TXh0S3JOcG9wRkYrTXREUnhQNEw0Wi8vVTVHQjFkZGo3UGU0bjRSZU0rCisrTWUzeXZxWnJLbGd6ZWJrRXZaWWRLZXduK2xBRjJQVS94YWpWVTRzK2d0bFI2NFJiSHZnL2tiZHdkK2c1bnBJCis5ZjhJQTNYeGt2NmxSRVlMdjQzMlFOYnBrUDhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS2x5aC9hSll5bmYxTnI0CitBdHVCT3FNTWtJSk1NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUIxaVF5OWtSQjVqakM5ZFJITmttQ0JwMytKRS9pR1J5R3d4QUtVUmtnYWwvCisxNWY0eWhGRWhlNTNndm15cFppbXN5TXhqWC9VS3hRYXZISS9XTml2ZDlueHY1K2ZBU3ZEeEpwSGNVV0plUGtQCitaeFhsZWFmbHRod0tOdDNxZzZjeWxHQjlkOXNySFI4dlBwWit5TWl4NGg1b1AvT29NT1F3b1BoTXdBZHBtUnZlCisrZ1F3Z2ppaVpXOXEvZFR5Zk9EMXpwSEVUb2JsUDNqeDlmU1FVR2F2MU00MndzVDNvb3h3YlJZS0pvc2gxVHh0CiticVRSbGNrOXpTRUhDbEVzLzFpTDhLbkxBQXFrUnBIaUlYK1JLcEpIVG5oU0JNOEdZQTFRQUZDdGVMUkRpYXhXCittVlRVWnVmbHBFYndLaGhXSjB5N0hXZEFlcklSS2dkSGxqL3cwanJNdHREYTRqd084dHU1anJwWUlqMmJ2bUk3CitHYmZHU284NEYxdC8rRENoSllpMGxHVE82OEVBTms3dlBkVHhISHhvMVhYcTdCMkpPZnlOUGFIclRSUzhublNyCitOUW5NaE1hSXBTeUM5bExzcVdTTXBpQ2p3YzV0dmo1VHhKRTFCQjg5U3JQN3dFZExIaGl6Wi9RL1luS2hlU3JtCiswbTM1OEVEaUc5Vkk5bXNvaU8vUmNJTFpEN0FWcEg5aWxIOGo2UURkeWw1ZXY5TXNJTGIrYXArTExvYkh3Y0g5CitUSXpNSWFSTGRZZmhOV0xjU3lmcDJiYzB3eGVkbVY2UDN4N3o4MHNydjg5UmkvNTJ4YnQ3S0xGbDlqcEtBQnIwCitnbmlER0gzZTJibmNiZ3FMYVR1R1VPaFh2WGRsSDZibDEvMDNFSDlHQVdRd2FsR3JKSXo0OU5nMTh3RTdHRFE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCA5N0U1RDFDRDhCMDQ5N0MwNEI0NjU1QTg2OUM4RjMwRUZBODkzODhEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFrdkRDTHpyT1FWZlhBQUFBQUFDU3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt5T1ZvWERUSTFNRE15TVRJd01qa3lPVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDVOMFUxUkRGRFJEaENNRFE1TjBNd05FSTBOalUxUVRnMk9VTTRSak13UlVaQk9Ea3oKK09EaEVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXNFMzROV2IvVE1FVXdjSzEKK1k1bmxrWEx1TWtYelU1OHdBZ09CRDVIQU94L0NqR1M2bjFoUVZRemVvdkVIbC9zNDNLaGhROFlkSHFZeDExM2oKK3Zuc3RtRi9ORmpBeEgvQTFMTVBLbTRDNW50RXFISER3Q2Z6YVpsaWdvTzRxR21zek5lcnN5RDZBcDlMdkFvRm8KK21HWmw4VVpvWVNCSWV6Qnc0T2h2ejVzaEJ3dGk3a0E2aDFTeVdEeWpVK1BJb3ozeGJ1U0RieVU4aU5xb0EvQ0sKK29hUHk0MGhFU0JGZzc0NEhWWUdCYzFBSDd0bDRqT2YwamVoeW5PUXIvc0trRkFtazd2RDNVZVBKQWV5aTIrSmIKK2JYTFVmb0hmQzJ6NWhpdWJYWkFvb2ZnaVQrc1lqNkttMUJmOXNZRDMyR2gvMkZOMWtwd3VkUXl6eHk1eDBMTHIKK1FtQXRicjVRRS82WGVwbUY4SjJLWFpLckpUY3Q1RndwMEdsUnJBbVd5Qyt3MTU4RGVyc1FQQTVZT2VNSE5tWVQKK0M3MVJ2dDNhSjgrV0t3b2p2dUxCbmsyaWNPZllMNnZ4c2VabEtwaGRpdFQ5Z1R4L3RDRlhQQnRyVDBmR3BSVXIKKzRXMmR3WmorcGF4VGZlZlh5V3RkYlZJbTZWTHF2SW5DNTZkaDg3WWhrVGlGcTFMVy80VkUrVTBEa3NLa29Db0YKK0JRbzVqcDQ1WEVKZVVnNXpVekJiWW0yaGFySVJ3cllIV3lnOHA5Mlp3V3d2RXdHYkdIbkJacmlPK0c3alM0a20KK3ZWU3E0L2JCNnpDQ0o1LzZMdWNmTjdLMGptQVJtZzVSY0NQb2NoWGdaQ1hFL2JLd1N4dHFqUUFaVmFsdGNSaUkKK0c0d0RCOHMvRkM2QTdBL3JjTzhTRi9adGdra0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZERGtSMG5UcUFldlRmUk4KK2VJeU43bmc0VDZDME1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUnZESW0xaDRQWU9UdnJ6Z1hvUTl0YVJXTldMS0d2Qm82R1U5b3UxR2tOVG4KK2VlejRTOTdCSU1Eekl3OURPSk9TSlpWWkUvWUI1YlJkY2M4RE9vb2ZtUmhIZVE5Y2YyYmdodlRjMmZFbGJTWXIKK05sc2N4cy93N2hrNEgvN2tWMy81elE0WGRIaWpLUUFORDhENzg2UFBINUFkMGVGQmdmK3RrZjFBazUrL0NxbEMKK3VzSFFTZVdRSGU0TTFwN3d0dUloOFUxbzRMazdlcXdFcmgvZmdtRnRzektlcDBnQkMyRCtYbVlDWVd0K0E1akUKKzVNb0YrdW1LZG1yQ0h2NC9KTjdzS09yZjliVVBDQ0s4ZnIrRmhQbG9pMWhPSGJJN2NsaVNDWmlubCt2cTZaSG4KK2JkOTRHbE1OTU5ubUJQZ09iSHE0WkNHd0N6V0d4RXVhNG5McGt6WXJvRWx1TWxkR2M5amNFU2p5dzV2QW1LczEKK0M0alhOangyeHg4ajFGSzV3MGJydkNTS2psUDdEa3lQMmRDTmhXRlVGeHRWUzJkbE9GaWZLNzhLdDE3Z1M2UzcKK0pscGN3bitqTFRDYzdFN0Vyc0ZLUzI2VktHY2NWdnFaMStpdTE0Z1B6ZFFrNlBQeHZQWWhUeEVIbVFrZ1dlODIKK3N3NDFXeEM2WUxpNHUycDJEY1VSNkFkMjZsZndpNjNoT09RNHdUWVd3empkWWdLR0QzZzVrZW9WWUMvaTVVdisKK0NtTmlPTEx4MVp3NmtpWlhBa2xEKyt6UG4xRTVKUVhHcm1EcW51d0ZBWDZtTmJhSWpyaERsU3kyWGc3VFZHWkoKK3FDNzB1TmFtTGtzZzZ1bW56VHU0Yi9vQ1VnNmZsbytwcWZuV1cwcTA4OWU0c29POFZHR1dyNkxJdXVPUnFuST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIDlBNjQzQkM0ODAwN0UwODI0Nzk4NDMwMDM2QjY1ODQxOUI3MEMwNzcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBV0JIT1p0MnQ3Wk9xZ0FBQUFBQllEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3hNVEl3TWpVeU9Wb1hEVEk1TVRJek1USXdNalV5T1Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzA1UVRZME0wSkRORGd3TURkRk1EZ3lORGM1T0RRek1EQXpOa0kyTlRnME1UbENOekJECitNRGMzTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFyQkFuc3RDTmtiRTVteDFCCisyMGI1UnZCQVlPT3ROV3RGTUhGd0I5SWl6OTZNQXJiMTdWRXZhTVl1YlBuMmhDNFdJczBhSnVhL09EakZzYXBKCiszMDRYaWhQSUNLdkJMZ1I1eWFyVUptNXpPNjM5MjZHRjExWXUwR3loalhiaG9tOVdVQURyZ1Y2U3EweFM3QUtFCitlYnhzR0M1azhGUmlzUG5OUy9qQnZmNlZFaHM1S01HZk9haGZPUlVpNytlMkFhWHQyTXhWMnJQMnAxZUZGdW1KCitSYU5BMW1FSjZLMU52b29iREs4RmRYSHZST0JUMnlVOEg5Wk5LbGdWQ2RaV0ZhMGljcE1PbkpaQVU4U0FQbm5iCitXblMwSDlmeE9UdmRsajhwZTI1WW5HWlJ2UThQd3hSbGtDVTNUaW5yTWNGeWdNem9tZ29WTVFBM2ZLQ1ZCa2JqCitHN2xrZHdJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVqRk9jOTRtRTFaaTVEL3NDbUFSUmV2UzBWdW93SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQTk4T0lFCitZdkJVWVZuNWZodWxGTnJmYnd3c2N0QzNxakxCUC90UmJlS1BrWkhtR3lUY1NvaUxabG9ocEhlRG4xbmt2SEgvCitncXVHWnBpcHN0ZTFsYWxWc2YrSGhCVUk2NGpONHlTVUFweElrM2VGWXRDc2pRb3JRMHp1cFd6QVJESS9QenJsCitWTng1cHpwemJTZ3BJMTFxQ1lDeFdVb1JTVjRZaWF6Wm16VlRJSVdLMm41MGRKOGwyR0J1aWg3bGFOM2tpaHBBCitDSXNtZ0c1aUxtWCs0dHZSQzc2Z1VmaEJ2aGtjbG1zR1ZmODNEbVZnYncvRFJjLzlROHJieU5ybzBxbmU2aFhRCitrSFMvdEZuZS9IK3o4MzNZcHY0b2Q2bkNsN3FGUkZSTDRTSHI3bEY3RFdQNmJSOG5saWZjRWFvRHhFNXhwOU5tCitlV0JlVWt6bVorQk1uZnc0V2VVNkwrLzBCU2JvalMvMllZbjMvMXh2eVo3Ulh0NVBtVUZUSy9OaXZOeS9xR3FaCitlbDJZRlJQSGlmMWpuNW5xNzVTdkVjR2Q2T2tDTXliS1hHSzZVTy9ZR0RnMmNnN0ozSUFYNmk0L0c5ZkpRWGtKCitCNWgvd0FKRlRGRy9nUUNXL0NMMUhaNHd6elQyVE4vYzZtdXQvZk5IV2JRdkhTSEphSW1FZ1ZnZXVKQUhYdVc0CitLQTBZRURSVDFXdHJmQVh1cnVZN1pEendYbHU2dk03WDlvVlRMaGJXeFFpWUNmRncyTldZOHZUWVdDMW9zZmV2CitBVUlYMXpROXBQUHdHdy9EQlB1aG1rZ2VkM1RiZHZYditYVU1lampVbCs0b1FZRVl1elp3dEk3bk9wZTVscDJpCitSRUFtQWlzV1kvT0tNbEMzTUlpR3pNR0tXeFVNMGp3TVBYWnpPUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCA5QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBDMDc3IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpWCtySXlVNnIrZEtBQUFBQUFDSlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE15TjFvWERUSTFNREl4TkRJeE5ETXlOMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDVRVFkwTTBKRE5EZ3dNRGRGTURneU5EYzVPRFF6TURBek5rSTJOVGcwTVRsQ056QkQKK01EYzNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBMd3grZDBmdGdOWDlxc0cKK2k2bC8vWFJ4bGZTNGsyVjljUUZuOHpDQkhkajlSVDcycStLZFh5VG9qTk5UWGlQZjloU3FwdWFQMWc3cGhoaisKK3BYRXB1NG0wbkRJMW1YTm5vM3RQWG93RnpsYlFFMnZtUEF0cG5FQmRESEJKYkp0aUR3UzN6Z3pxWmZUdUNnMXIKK2VXVjFtZG9tdTYrdWJsaW5GUWlwUHloRnJlNE9jcDZYcm9PZ1dqL2piTC9OSS9LSG81KzZ3Vks4Q3AvYmNnWDUKKzhoMnlqdVRzSlFCTmFlQ1k5VEFCcmhpR0tud2NjR2lYV2ovVnhXakxxbmxxZFIrN240TGpEeTg0U1EzeWJFUlYKK1VPUDNseFhDTDhzMEx2UFIvZlREMkZoMkdORTlqVHBIdnBKTzJVcTRrRkZvbGZ5ekhnSFp3TzVOdFpOU1UyK2QKK2NMSGtqazZOSUxzZklzUE14cTdmTzlpZWV1ZWt3V0RqNFArSnUwVlFETjJBTTE2bVFGbzh3aE1uVjBGRHFlVzYKK1YrMEQwNWFmdTNRRXlhcEtCckUwRzZBdVg1YWhKZDFWTGhXaXgrQkNGc2dxVTIrZDMwbk01cmFLdEFVTXd4TkkKK053SVVvU1A0MHdtWUpTN2dONHFUcitPMDd0aUd3SmpwMTlMR3hQSUZsMkh2d0JyT1E5bU02dEVSUnBlWEhTek4KK1hndDNVcXlldEYyazNLdGlaOUVoOXlnYVR2eGxhTm95Mnp0cjlDSjd1eGE4K0I2VG9vN2YrZ3JmQVVURGV2MXQKK05QWm1lNlBidUJmSzYwNWp3aFM1YzJ3VDZHeldsWjJCMVorU2dnZ1ZRL2Znd1FBdzVTYkpvUE91a2liNGZVMjUKK0FwWXZScVRITW9EZ3ZKTE1hOFZnY1k5K2lYRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKN004QlcwVVlERFp0K20KK3E4OHZ4VlBtWTNteU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVzVVSFRNQk5JQk1COUVVbm1OWTdXYTY4aTh2cHlhR0doWDVieHNDR2huUDkKK3AyckFmcVQ5R3lkcmY2ZFVYVWk0MmpwVXBKU1J0MFh2Z0FaRDRpUzNxbXBJYytRSmFCMDl0WTAyTENUOVNWTkoKK0VlWXBnQUFWcTNidHhxUzY5TkZuNlVZL1Z3MkF5Z2pYcUJ5WlFSK2E2TmZvclNxbFBEZUZoNU43dFlXR1k4Z1oKK1lQc25aT1hWYm9nSFBnc0x3RDVtTXlTcGdsNm9XTVVRd1ByS2tBVVNVQnVOdlJCVFNqQ3BQaTF5ajNDb1pjU3EKK1VGVElOZmJLNXFWR2Z3Nmozai9KSmZIYVZEejJEeDFPZTlXTkdWdXBrUW02dzhHU3B4ejlXdnlWTDF1dXJ6cmQKK0VPcHpWYmphWTNLWjVTenBSUlJaSm1mZDV4QldHWmdHVGsxd0RWdlZCRU53Mm9FanpVSDRXOVBQQVlVbXBpNmsKK0x3NmUyd0tpQnZZYWtoZWtBeUNsQllhWUNDL0VVY1RDK2lqZ0FFVzl2REovU1V6OUhKQ3hSNTZyMFpQWW9TQXQKK253QWVsaU16VHZFR3MvaHJHQlErNmNXRS9hdkRyZkYwVm9wcEx6OG5wbDBFUFpYVjJNd2tMeUMrRWRLOTNmck4KK2dHUlEvelNWZnFEU1FybGJPWlR2MmRYTTdMdHFyWC9IcmZYMzVIaSt6SXp6VWM0VGxkUG5WZFc1M2VVMjVJWlEKK0xFaWZHUkJhNHM1d1lHYkJtSXJLTGdFTFp2MHVGUkgyMVJWSlBEclpGVFkxSForM0Q4Z2RzMC8xOUZDbEhBVTgKK3psR3FFOWlaTVdxQkx0b05rUE83UEJXQXNHRHh5L0Y2YmlPMW5XUFJ3V1VLRkpzbW1STDI2QTc5NUtCdnRybz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIEE0Mzg0QkVFMzk2NjUzMzUzOUNEMEE3MzZEMUREMkMyMTM1MzhEQkUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWNXTDR0bm9YZmpIYndBQUFBQUJ4VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3hORm9YRFRJMU1ERXpNREU1TURreE5Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxQk5ETTRORUpGUlRNNU5qWTFNek0xTXpsRFJEQkJOek0yUkRGRVJESkRNakV6TlRNNAorUkVKRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdm5STFRzV2xhTURjTXh4TQordzRkaU1OQmpyVENETDVWdjM3ZmNraEd6bm53OWVYd2xSUmZvK2paTUhoYlVxZ1BSTGdyYlRKWTZUZFVWVEtEdgorWC8xU2Y4OTlzUlluYzVjK3NERTFOTUFBWFNwRHhLdlRJc3BoV2xWck1sUlpwMHVhTVQwYVNBQWRDRzBLb3RnVAorUTVhV2RJNzFxbzFxeTBYSUdjYUlaUTBPdWNBZ1FGUDhWSG9TVVB1SUt2WHhtMVNKMnlhVUZOQlVpdjdjcXQvVworRE5aVmdYZEdUdThvb1NMc1pZRTdNT1ZHWkNLT2EvSEF1SVRJZnlkU2xua3RsMjlJc1RhMDBDNnBSU0N5empYdworby8yMStCZkRtT3NUSTVrL0s0SS9ya1BBK1QrNVV0OFY3MmI0RFNOVklLaExjS21pR2hmQ25pa2NNTzV6dzZ4agoraklqMzZubitlSW1DTlM1elZXMytDRkZKQW9wRzVOWWZvY0E0alZMQ3ZNdU1aS0luN3VsOTMxbWtaQlNrV214bgorS3JJb2cyZjIyM1ZmUTRsR0VVVEpMd3B1b3hpVDNVZnU0QlliV0xCYUpUakczL0Y4RU5WZHRnSkdnZ3M4dFpsLworeHV1WTFWRDJnVUxWdWo1WXA3Z0F0ZDgrK1lYblJpUGF6dkVFNVlXQTZ6dHlta2xWRENvSEY0TEJJUlNiUkZWOQorVW12dGMxZ21GSlVUeWswdVp2VGFrSEVFUmkxdzU4UUZZd3F2cFJ6RWNPZmUwNlZHZmdTeEZWcGJYMldvb1Z3RAorVVhVUTlrbTExMzQ0OXVHUURsdm5YYU1VQmU4UVN3ZlJpa2RzOEFTZ21uakpJd2dFSWZCTkJmK0tHdjR0TXZNLworWEdBa0NWQTJoK3VtTEtKMkdJQUZiWk8vVVA4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk13MHVqaFV1dDM3L3ZVTgorRElEQTRkaEtaUzFhTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFtYWxCSTUxMVh0MUlwd3NPN3NSMDlwaXRucEo5NkJvOUZTQzZGM3NyVm5jbworcE9Ja3JMbVpkdFhIR3BkdTlFRG95UXRSdU50SDdJaDF5NFFGRzB2MEFzV2pDWkFEdi96anpoVGlrekQ4MUZ5WQorNlRIVElZYTczdXBsM0tzRUtkUFN4TExxdjhNWDVIdnZzNjQzeTRCSFE1L1ZLeWxpdG5QTTJELzZiNzRmSzUyTAorOGtrZmVOOXFIYTBVendvUUcydXVSbmg5UlRydXhzdnhWblhVSWtObk9yaWZCMElsRGt6dnNJQ3gwYnhmV0l6cworQUV2dkJPZE1ETFFlK21vdzd4bGFaUHdHTUR0bTV1bDNzZDBDRVRmbkVmN0x4MVJHWkRkZ1luRWVUVDBLRUQrUgorUHA5NWYyaHhPRWNqdnBZMmR6MjJEZVkrTnhueXpVSXNBOFRXVzJkWTNrcFNZa1lFTUhTL2lCcDdhUnpRWElJYworTTN0YnE0Q0pnUy8zS29UWitxUFpPNWRJOUwvOURVTlNEMFoyWnQ3amZxSC9VZG1lcHBkQkE0UnFNLzFxd2RqRworRHNDQlFjRHBDeTJ4V0hYWGx4OVVCZ3VvVmYrSit3OSt4VllGS0ZOcHZlc1l6cGZnRm1vU3JDWkdUYVVwVjVVNAorYlQ4R0c2emF5Rm5GVk9HbTRrdXM2QWlHaHo0Ly9vTkJQb1JrNW5kd2NwZmdseDFVM0ZWRm5jUXhIODFKK21xQQordWhuekxIVER1dk9Jb3NacEwreWFpVnlXRnhjN1RKSWZUTXJEcVkvQmJSWDIyYUg3eHMwaVUxaVB2VVg3dEpvTworUGRSSERzNVhURnJRbU5rWlJUVzJzRnJ1eFZENVZESjdEVnU4cXY2NXNUWW1VRUtaL0xSZVRiT09HeURLT21nPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgQTREMTg3MjYzNjRFQTJFM0IyNzg0NjRDREM3RkFEOTY4RTAxNUQ0QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBY1N6SW13OVh6ZTFSd0FBQUFBQnhEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreE5Gb1hEVEkxTURFek1ERTVNRGt4TkZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFCTkVReE9EY3lOak0yTkVWQk1rVXpRakkzT0RRMk5FTkVRemRHUVVRNU5qaEZNREUxCitSRFJDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF3djJLV2xqdzI1MzFHV2w0Cit5K0FiVDlwTWFFamVBbm1xTGNJQTAvSzJucnYvZllaOU9TOW1ZNEt2UDltUXRFamFTWWc0bHBCSW5LS2tFNGxhCitJVmpLSWUwWkZpby92VUIybmQ5MnBLU0xuenlxOEh1Q2NGemtpYjNKRURUUFRRLzB4T294MDRISlFHMWNXT1RyCitKamdEemlWWHJHOWgwYlNrNUJIMkJMYm9GU0l5L3lsTTQ4bWhFMS9BclFsdmxJWklsc3grcHdKdk1SUXgyVVpVCit4dzk2YUJPcUpqNXdhOXhtb1QvT2gxSkxaSWlyclZmTDhuYXRiNUdQQ2hvRXp5cGtuT1VTcnU4WkhMQUM1YUk5CitobFk1eGM3S3N2M1VRV1ZIbFhmZGtqWnpCQXY3eUFUQUJ2QU5jeG1rcnI0QWJxSWR1MW80ZXorUWllYWhraWdUCitzRHRJdWdXSS94aU15NmU5V05ESHB1VHdQZDN6Rmh2WExlQlhvdW5USlZaaG9FakZYUHJud043Y1AydngvNnp3CitFUTJlMUtoMHV6T2tqSzlhZnowdmcyY2U1aFhyZGJSQVc4Q1RNaGorZ2dtZVUvbVBpeTg5ZnBHWFFyVUJiTG1vCitnbWNTb1hyZlg2NXZVdXFwc0V6WHZFdjFBMStzelNmSWt6L0xhQTBVVWhVWVNJa2I5VlBxaS9iY0QwaVhCSXZ0CitnKzFIcWVDOHNQdFNIbTBFZys4SFhxdFNpOE5vaDRUbm8wMlVBNDA3TTgraWM4NkFCQkQwNEQ3cEhwREd3c1V1CiswNWlzVTIwL2FYbkZWN1NCSUNuLzJFMUoyNDU3MVVGZnBPOTRBMUdkVWtrNkwxdDFic3hTNlFmQnh2NGFNWFQ4CitwVm1DcThaVk00eHc1UVg0WHNuS1k0ODJFczBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTEtIcWpZemdoT1B5eWcrCis2QTNqYWpNbEVEYlNNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW5WNWlTOG9UMDVTdExqdUFKbUtTQVowaTdYM2FTMnZ2NHd6VEZjektuY1U1CitiZTZjUjkvTHA4TXhacHpBT01VQnFxYXVkWGZZc0RpOE43SFhhYUJRdWRFRkNRcjNmdUdFdmgxUWpTUDJ4NWw3CisxUU1jQ3RsWFVmVFpsMTZPK3krT25xTS9FUHdXWlREQzBLVGllOU5idzZUVndZakgwOWg0TytPRTNzSU9zYTB3CitHWDJHaTkxL2lxalN2c1B4OU9WcitISHlvaEJhQUtUZ2FML3FnbU51cWRvOWpKa1hZZitjWllpaHNveFVJNmI5CitWMU53L0xPbEFyUWdjSXNzcjRvSStPVXNWNDJtNVA3YzA0RW1uNmtBYmh4d2ZXTmZHM0xoTlN4eTNtZkhXVUgvCitkUkY1NVduZDd0MkRxMXg0ekcyOWtvMm5UTVpVUlo1MmNUMmdiaXlxYW9ibk5oVk5rR3VMSlpveEZFL29ESHRrCis3Vmd6MFZZNzhkdHdTVnJFTUJjNzMzNTJDbUt3bzRsdVNLejRXejFNREFvTmVuTGhLdHF4WWxUQlRTODJ1SDVOCitCUy8vdERBVWFvdzB3Wk9hTlpIUzZlMnJZS2VDTEpwVHN1SS9PZU9TNGw0cGxHUFR4MTJCcHBZb1ZXR3ZxOEQvCitWTkRYWE4vdFN0OXRvK29DY2JvdStJSkRNWUM4Y1lsWEVkOGRRRTlndHdaQmdNbE40MjBGaStXdTVQczBLRjNYCitJV1h5ZkFUMmp1ZmpSMWJHV09kOEM4ck9mK25GTjFrdHZiYnlJZzUwRk9idDZlMjJoeHNiWmNYMmFTSXZsSVpHCitNdURlWWxEREZobGF5Y1dEZWFaMFdkL05TWlBPNlc2THZLcmt0UnZHVjQ1ZGlZR3Rna25INHBzRzc3cUpIaTA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCBCMDI5ODExNTdCNkQ3Q0MzMjEwMDE2MzgwQjg5ODk1MDUyNDM1MEU2IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFjZkJJcGlXdThTTGtRQUFBQUFCeHpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt4TmxvWERUSTFNREV6TURFNU1Ea3hObG93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMUNNREk1T0RFeE5UZENOa1EzUTBNek1qRXdNREUyTXpnd1FqZzVPRGsxTURVeU5ETTEKK01FVTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW0xZHVpaHBIdmpvME8rOXYKK3ZRbjQvTTZ2bmhiSWZoQmJKODVJZ2dDMWIyaFFMUWlxaUhhS0VwVURUMWt4Y082bVRGQUNjVGdPbVRjcnBZN0QKK203TS93anEwMGU1NmV1a1JwTTlLbkQ0ZWZUd09rQzBmcDBWM05mR04vY0FUUFB6Sm1YekZDZTBKWTRUOHF1ZGoKKzJDZE5DMzVzcDVxWTFYMUEvdmdpMGxkeEhuTmFpd0VPVC9IRVF6ZGVGOSs2TXFKcjZMajlLQnhlN05iRUlic3cKK29BdVpqWkRNZTJWNUVMNVd5NUp6QkVZRjREQ2xNTTk5U1hZVGRPajdnbTVYMXdVOG1VejM3YVVMem52dC9Fa1UKK2tXM2h3TlZucVk2MFEzRDFtYjNsOStJMHBZMC9UUmM5NlAxVGc0RDhPRlZEaGI4UmEvLzNDbTBEelR6QWJhYkYKK3Y3MHJTZWhvaDVVQldwYmh1M2hwZ1VmbnlNVnRMWkNwS3ZqS2NaYWVWTUNJSU9FZVhhZ0FDUno0cHRldS90TVQKK2J3dWsxTlhXK3liMVZ6QW5lYUt6ODBDWVU2UTA1ZjBlMDRLaDJLTnpBdXZmRmJUNUVvWEs0OVRKSCtGM2xZYmUKK3lCUllJSjhRVVpKdGhoQ2VEOFFqOWZ2WklWNnZ0ekNjRWh0a3RMYmI5anBiejIyVm9jZzlwVlJMeU9yWU1pL0sKK3ZPMEFlWVc1bFQxbGdBbzhaOHpTVWlyS09FbUNocXJTTFNLcDJoSGhnV2xrTU5kVTBSSUdkMmIwMzkzWnhOMXMKK2lpQU5YamxPYkxGTG02czBzRFZTVlZvWUdXSUtua0NqNDZsV3NrRkU2ME54OUVoU3dTdlBYc1JaUnBhY21lVWwKKzZGQjZDYjhiajFWNkJqLzFldGtuTlRNQUN1MENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPUjJ4VjBtUTVxTlFHcVIKKy8zM2RHZGdVelFBRE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQUk3bFRGQ0lRVlA5b3RUK3NEenVGMjBwaFYvY1ByZ0xaYmllU291cTFGZzUKKytqTkxLWENTYlRYRUZVd284dGRQK1pIZkJveWZ5blhmcVNxSXhRR2grdzlubEFVMmdTWGFXZ1cyUnI5MkpmaSsKK3VZY3A0SGhjZm1ndFBTU0N6OS9CUlc3REdDUE5xQ0ppKzZ1TXJRRTBNMEROWDlwd1NpN1MvWXRSelVybUQyU0EKK0k1c3BDbVBGeGhTd1ZJdDU2enp2dG1vNndnRmg4UGVZWUlVTHUwM2tGZFVhNDgrd2k4K3dLa2U0UFY5aFdPbXMKK1BCSVlSKzBnd0RCdTRDK0RFcGt3cHJYV3JaYko2SWhGR0JsQWVaRFEvQ1VHRk52bmJkKzM2MzltWk9DSUl2TnMKKzJ2enlSd0NiSHk3UmFLNEVMU0xlbk4zajJLMEluZlVSZS80L3pTMEZIUW9oQWpqdVc2WHlQYm9CV3NSdUFGZWYKK0E0UXFWRDRESEEzdGJVcUtGWlFEQUQ4WVFHRTNLQU9KMzZ0OXlLcVlmVWxseVlERHNIQUdlR3R4c2IydFY3RjYKK1NVdjlzVXhPdk5BS2VNazU5SHQ3RjkySEtEVmZ5K1VzSWRKc1d4eEw3UUl1TWwxajQ3NE13RmdEbWRoSERLR28KK09iYlhGbndKZHdCanh3OUdJWnIvakF4eVRVQTBvQ1M4OHNXWDdQdDJUNzRrcWkyejlqdGdWUUJMTVJLQVExMm8KK3k4TzJvNDdvNjBwZTREN0RMVVM0MnpPQlBzWEJMSGlkRHg2ZFZ5VnoxbTBabE1XQTd0am5OdFV3SU9SbDVnaEUKK1dqUVlmYXFQQWQvamdKMlBUaWdzbGk4dlhNM0RrazVZVEc2N1c4a21sVElreEVaazNMTEFlMWo2aFRmSmFyRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIEIwODAzNTlCNTlBQTkzODgwMEE0QUVCRkQxMENDNzBDRjAxQjFCMzcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWNiZXpVNWhQK1Z0K1FBQUFBQUJ4akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3hOVm9YRFRJMU1ERXpNREU1TURreE5Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxQ01EZ3dNelU1UWpVNVFVRTVNemc0TURCQk5FRkZRa1pFTVRCRFF6Y3dRMFl3TVVJeAorUWpNM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBOGsxV29TOTYrZUJkOURCWAoram0rVnRibzVGQ08wN2ZObVh2YnNJSU5VcFBKcjliNWpyb2FUVXNFdm1WVUhkR0ZRUkprbk5lZ1JXR1JHQzVMSworL0lMSnBqaDl5V0t2L05pdUFDOUxzbEx3WUdQbmpmeVg0NzNIdnh6WjFxY0R1S3Z5ZUZVdEdRSWlzV2dtTDNMNgordnJKKzRJbXhSdmRlVDBqZjJ6R0xiQ0ZZNnY0OTVDY0pFWk01Wk1NVzV5MFdPdWtqTU5jb3MyL1U5YzU3MHJHagoramc5WVY2a3FwUUJIK0N3VUxwUkhha2ErRDNMQVNMOWFhTDdEaXZzOHJQSmZDMzJTOEJPZWtxVlhGMkRCUkM4cgorLzIva3dYanVYNElSOTh4bW5TU0g0YzN4dG5RZmxxS1lrSDNXcjhqUWJDcVpJK1FYQ1JjRjFvVmFUSERwbHpzdAorTTJLV1RBWnd0V1ZPY01GUnpEN3BJeGV3RHE1WC8yL3ZzYjM3RjJRTWVUNmFYVXFDd2tCc0NmWlEwT0l1VjhRRgorY0FpM3p6Sko3TzFGL2w4SkpJR2liYW52THRJTlUzR04xRHNURHYramtPY1FoTkE0bWxpVXhTQWEvSUpCamhIVQoreFRXNWJ3d0VsalhBTVQySWRWK3hZOUVoZFMzbGh4MHBUOUdyQzVMK2w2MjZzZlBUZnVvdXpjT3pJanpTK3NUdQorbnRTZUNRN1B0YTY5NVBCbHNRayswc1BCTW9BWGpsR09UUmJiUk1jODlYbjhtOVZ1TDUwbFhTSFhjZkRTdnQ3ZAorWk9ld2hqUWh2eVkxeTFZUVBnbE5YcmQ4MGwvYzcxMllseVJ3SVhkWTZSOUhhNklBZlh1UGs0dDlobjFyS2VJZgorOGJLRjhRMEF3WWptT1FkOFpBNHFMR0hLVGVNQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkw4VkpOUkhQL2FOdk1iTgorcDZyeDVHcTVGRkNrTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFDdGFDb0NIZ0FRSVdmM0Q3MmNBdTFMUy9jTXpuQThETjRNMjlzMEl4T2EzRAorTUxuOWg5TjlnY2FCYVhLZWNVamRkR1RXS1lIa2lDQ2FJT1hzOVZuRmZ1R3U0cC9mZTAzbU9jbGRKWFFVRWlQbworWDIzRzArTUxaRWxnSXZNcjJodlVaRXhjK211cVVmOGRBcStzUmxWWVJtS0Q3czNlR3J5aHpLRWdBZTFvYWJkRQorOERVYW1QM2JCSmFFaUtNQzBKK0pDNXJOMjhaNHViTndYb3V3WUowd0RzZ3pXT0xFbXliZU1vWGJmQjhrWDF1YworYWVETDFlOE45MlNnYTJCQjdsSUh1b2dRa0huTmVMMzNmNU1HR05CS2J6amMzaG1IeGdwQzd4OGxpSE5JbVlWYgorWjRhNzVRWWQyZ1I2VjJ4STRwRDdEcWtQWW93eHFmTDdoamdSdlY1cmNsWHRKSTBRZW9MenJSNUhxQ0ZRS1FkYgorc2ROcExLZjN1UGw1VUM5UFZYU0tWT012THo0R0lhN2M2azc2QnliZncyVDd6ZEdDZVZrL0JocGVmc3hzd1RaWQorWTJjQjYxZ2Z2M29TRllzVlBqdUYraUtwSVRPZDdFbTIzOHR6V3JseFIwQWRUa3FpbGR5dERrY282V3Q2cElMVgorYWlUOXI0WUdLTVhDczlhQ1JQNE5Hek5teTBIYmNOY3AvSFdxWTV4cnFqUEVaSk81cEUzQ1pMRVltQ3p5ZU5KUworZkUxcVUrUzNadVN1QyszdjNXNVp3SG1qcGNON1h4YlJjWk1iVDVtaWVKcHluQVpTdDB6bXFnYW9NQkFWU25HTworZVZOa3RqS3QyZU5FS05qenVMYi9iUllhMk1SSUlVR1JpMEJvSFVJREt4OEpoaDNsQUM1WUIvZ0pCS0VuZWdvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgQjJEM0NDMDgxNDRDNTA4MDhDMjg5RDExOTYyNzQ3OUJGRkMwRTRBMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaTBZWjRWdTlhNVJXZ0FBQUFBQ0xUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNek0xb1hEVEkxTURJeE5ESXhORE16TTFvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFDTWtRelEwTXdPREUwTkVNMU1EZ3dPRU15T0RsRU1URTVOakkzTkRjNVFrWkdRekJGCitORUV6TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEyRDZBSkhoOWFPcUJyQXlGCitYL3FYNzYwNHlrN2s0NEd4bnNtVDFaSEEwb3dqOXVudWo3d1FEdGRmbjVGalFLaC9SbjFFUk5nZlljY21Bd050CitXSWxWU3JHQUJMLzJ0S2xIZTlvM3RrSzAyNjJoWitXUjlhNU04Qm9iMExWOGlzcWJCY3JtdmVsUG9NRTlCaHVtCiswSGFBd2g1Q3dIRFV2QVFpd0F1SDRMdVUrZ2w2Y3NJR0FTcHN5dEUzL09PcnV3RnVvYW50aHdsS25mVkhFM0xUCisvVEhEcWxFOFhuN0w0UFdSMWtKakFSUFBIWWVLZnhOYkJnQkVyeTdFTDcvRjh3MGxWZFhsMng1WGdRNC9qYkZJCitFOHNsR3dJQ2dTL0lkb0lZNC9kMVFjTFVWeEtlSGUxQXY5R083cFlHdXliSHZFbUt3VGVtTVBRKzAwTjNKVElRCitVYTNNdDlGamtUUFJrNlpHZG5YeTNkUTJVMzRCUWovbFFDSmRSZmdqcVl1U0NWTnRDUjZtVit2dGEydWgwZjRHCitsakxNNUp2aHpqRVJwU3B1T2RGaXRobllwdGFOaElCODlRY2FXOW9KWU1GNDA3TFJyWHJEd1FxM2hKTmppSFhsCitoc2RsQm40MG8vb3YvcnRobjY2RHZQVGUrNHJhYmtMWjBYYkZ2R1hTUzdNenFlU3pBTkxkaG12bTQ1V3BJMlVJCituNFpUdXRaNmQ2QloyRENNdHY4YUlmbGdmcWIvWFRML3laNWVueXFvZWNtN0RlSHZvem8zV0U0YzhRclIvWGFqCitVK2kxeDFvVFNrNzM1dVVnZS9RZ3dmMjVib3lzbjM1UlNxMzdkWnZ3VVRTUEw4T0R2elpPUzJOcWxlK2RQWk5YCitLWFoxbFlqMVlSenZkeExCTFBxaGhWMVZZeGNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTEZRV3dtZnZmQkxMR1FtCitGVERhOWFoR1lOMm1NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUVXaWFMR0p0ZDR6WDZ0L0c2Mzk0RDA3SFBQZmJSR0I2eG5jSTNmK1BVaXkrCityS1pnb0hKdmpYdEQ5MjJ1THVpMDB5N0dnM3cyUE9FQTdqSys5TEhUOVFFQXNEcGRIYVZpcU83Mi9GUVNhTFAvCisvU21mNm1qcGZJcnEzNWNZMDFjNFllNFlEOUovU2pLRTJVZlAyWUI5enpLNlBpV0xNbHlhZEFRelB4Rm0wcnZGCiszS1lGTFdwTjRxR3p2di96R2tMM1dwOG9VVngvWS9iejFNTUhPTTBjNENJWklBUDN6RUQyNFJMb2tmdmJJUEhlCitEakNCdEtqRE1Gd1JHcWpWd1QyUi9rSk5KUzNPMUZzS3VVQU1CcEx0QzN3UmNIR3pGSThuWW5vcE1LRzNsWE9RCit5REFkOFRlREdhaHhwc001bEZlMmRMZzFndHA5TXpHWEovbUozMURIZ2tCNGQySzhhM1dxUGkxYncrQXR1eEtVCitGU1BIMmN6dHpmcURyOGpSQ0dHUHdPK002dWsvbnV0clV4V3M5MTVDU2RFM2N0TUI2N01ZcVRWMFBQa0VTNWFzCit4bG5BL3dNL0hhWjQ0Vm04RGJlMFJBTk93YTNnUmt3WlB2SWswQXlOUG01SkFaVnpVTERzaW5HTkxNcmhNZnp6CisvS1JDdUlGZXF2WDludjFNdU0yd3Z3b0l4Z3J5TE5ybjRCSlgvb1pENDVObDUyeUF4N2lvY1NIOHNGbEdPQ3lGCis3U3puOUFjS1drc0p0R2lOUTFDMm5ZQUZOczdKQkFmdnhBUmpXVCtSTTVoSitlK0pPUnZHRm53YmNZY01IVlVTCitGV1dNdWhQM2kzQkhRQWp4UVFDK0VEblUwdXZ1c2hENnQ0MGszMkR0Z3VSK2ZhTlp1MUh4M1BXUUU2djlhTEE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCBCRDZDNjlDMDc1OUVBQTk1REQ2RDE1NkVBNjQxNzBDNEI5QjM2Qzc4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpNUZDNVdjWktUQXdnQUFBQUFDTGpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE16TTFvWERUSTFNREl4TkRJeE5ETXpNMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMUNSRFpETmpsRE1EYzFPVVZCUVRrMVJFUTJSREUxTmtWQk5qUXhOekJETkVJNVFqTTIKK1F6YzRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTFPMUxwQm53L0xGbitqMTcKK1p0Sy9ETHdweVRzWVlBeUVuNFlWWDNyYkxIaHhWVEQ3eVg3ZkFXWTN5T2hCN1ZSUlI2SDBNd2hQVFhuY0NsbVQKKytNc3dnSGQ2ZmVMZWcycUhmMUU3SVpTS0ZwYkpXOWM3MUsyWTRyYU9pV3JDMnN6UzVvdGw4RlEzSGhleUVYcE4KK0tHWVNsM2paVjM0b0ZpZENyK3ZFOHJuU0Z2MzA0SnR1Z2QzMWZDUUNoR2ZvSnprZzNsUCtwT3lMM1NZdkdGd1AKK2p3Z1NrSUFJQ3d5bURWaEN0ckIxRHp2L25wczd1eXFGRmxQMUdJSVJHYy9IeEt1d2dQU1RaM0ZUWUdCZmVtY3MKK0kraWdRWnhZVjlMNWNNVW9LeWx6ei9leWJVNWwyaTlNQ2xBeEFOcnBTTDd0dmhkYy9HQVN6aW83SXJ1Y1A5ZloKK3lWYjJjdFhyMlZzMlIyOFlQUzFlUnVJRzV6Yyt6WWh3QndwTDhlTndCcGRGV0RGVENtdFVCamVFMDhzS1EvRzUKK3puTmM0Qnp4OUMwbTE3NlNIam8xU0sxeWtRKytpeE5qYnZ6SVNYT0tvS2dTVFNabThHbmNRb3NtdUkwMGVROFAKKzlvZlFWWVlvTjFUdmZUcDhQRE1hTGhsb0xQeFBhZEZHWHl5UzV5cWtOWFBZZ0RoOS91azV5aC9GWFJwNm15YnAKK0pYT3VjYlNab0c0Lzc3S2M5NnFOKzJ4azRKUFU2ZGNwaXpyVjFNaGVPRkFSWjlJOC9wYnBYVWJTa2FwM0Z6UzQKKzNqLzRkSGxzOWZDaFVNZUprcHlvWHdjRUZIei9hd2d5UXJsQWlMdnlWdmxuRGJqdXhRTUdDeWYwOWhhTWg0WlMKK1RTbEF5SDZJaDg2Y24vanBLeFFjS1lsTW9SRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJWHBJY0h5cnJvWHJGMlEKK0NWR0dyWU8zano5Tk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBT2YwK3ZTOEZMbHZsbzhmU24vZ2R4UnF4b0tIRXJxbFQwOGtiM2lPbS9RR08KK3UranlLUXV2ZDNseWNRNkZPODdjajc5RytwS1NSYVdyc1lPVUlDM3h0dmdySXdKa2dZbU95OXBpYXBLYldkOCsKK0kvUVNGaGx3MUwySktzbTRSZUFMOVI0ZTZJamVFdTlDTE43NTE4d0FORWdXVXRLT3hvbllUTjJHYTBlam80clUKKzc5aFdRNXY4Tm9JN0MvMjVWRzNQUEg0ZHJrTHl2MlRUZ3d0N05ubk9zZXhEaWhCVzcvY1NURS93ME82QkhNVFIKK0ZJN3dsUmJoM3JGSDZscUNhUzhXaDRRRzVqUFVGU3VydTVxbzFrNk01WVl6RWVRZXF1OW5PRHV6TitLZUlVRHUKK3loTHp0ak5xS3BRUVhLUzExOWVvVG5qTCszVFh0NDkzd3RoVXgwd1ZJZ3NHZnZNZThNZ0dDcWlieFBwNkgzRW4KK1hUbkFEQjI3VHBjVS82YzlxWmswVmlxRElFb05PUFhuM21JWW5nMCthcUo1U3dQOGp4WER3c0NnZkw1VE1INmoKK1RCRkZSVVIxWlh1SXY4WU1Pd2cvaHJBV1BZQ2Z0bGt1ZWVUL09VbUFNUFlKMC96andKb2J6QWJYN1JUTEkyYmkKK1RvRE9saHJ4dm9FdW9NUUQ0Y2lvQXZ4Qy9zc2RnRWlVZ3QvOVhnTnlmRVZBbWNxUS95UitxSWdpOWE0d1JldmEKKytLc1hmRGdsNFUrUDFlTFBiaVFlbEgvenF1UzZjWnpBaHN3NklLU042UWxCRHdRYzM5a1RzWnNPek5BV29DZk4KK28rQnZRYzVSY0hyVVRETXZwSUNkbHIyS2E3WWJJQlRjRXRLRDV2SGg2c0I0ZnhEU3VIR21nbll5alRDUThrYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIEMwMDQ0RTNCMjNGNDNCMjg1NEJCNzZBRDRGREQ3OUJDNjI5ODZDNTUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZxY1RyQVFqL3FQQXdBQUFBQUIrakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QTBNRm9YRFRJMU1ESXdOakl4TXpBME1Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxRE1EQTBORVV6UWpJelJqUXpRakk0TlRSQ1FqYzJRVVEwUmtSRU56bENRell5T1RnMgorUXpVMU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeVFCdmk1Q1JSUytRdEtoTgoraUx1VHBNUSt6Zjg4aFVPVFJVNno2UUZ3YytiajlXMUUzOHdjSElBYUprMFhDWEFhdm5wK0hrdjh3bEpaU0QwcwordkMvL0FMQ2lWMHI3cjE4bU1XZU1Mazg3RE42c2tSb0FieXdIV0M4VlEyZzNzQVRFMUZveDFJT1cvWnllSURVWQorVkhha2syOWY2cWNlOWxIWW92Vlptc3h1WXM3TUN1MGJLZjRjVmxGTEdJVmFWL0xzbld0dnRQVlJEV0lrVkdSZAorUUVJc2NkSytmV0xzV3ZTMUpJekZIK1pVLzlTeWFLSXpGRU1EMUNWMEpqeG1QY0VkRUZtK3VUOHJzTVF0RVpNRAorbzBQTWdOVmRpR3RNUTFsM09ZanNZeDJxRngwT0lEd2FrVk55WCtERVZ2Nk5ycEozQllvUHJTbGpaRmtHU3M1TAorK0JIVVliZWIyMVN5UElrSDlieDJ6a3NSb0R2MHFNcFIyMUpCSFUybXpmeU1JTW1SczdiUWE0bFJYTktBMHYzbAorTld2eDl2THlpL0hQVFN0MmhMeW85ZHkrQVBnVWhnT3NqWWw5aGl0aU1XdllPYTJKZ3A4TjA1czY4MHIwNW1IMworQ2dyQnpSOXd2Z3BlQysxTEJaQmFoT3YzT0hLcmtTTkszbkFLRG5lcUltOU42OHhyTXdBWGFXUTBOUDBXWHNtWAorQVNWbFhvZVU0R2JTSWtmWTFIQmJ1bkoveGtHOG93NVhvcnFqeGFwU0FHKzJaejZ0cjJBa0J5YUo3OWFSTVVHeAorMVRjT2dNRCtoekVBQ2I1K3V1ZWdnTVFxZE9EdFplMlVFVm9PMnQ2MWVlS0VRT3VncjJ3UzJYUEp4aC9oMitUbAorOW9ia1FaTnp6SzBUZVVsZENyRDdvVytqSU5NQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNLa3lXQ0ZxUEF4eG8zcQoraE1NQUV1RjJrWnF5TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFMaGVhM3FJMC9sYmxmNDhJeVVPejBBV3g0UFR6YkFEc3h0Z0VNMUIzYzBPUQorYWY3bm4wak9ETnhlRWxxbmlBMmZkUCtwSVNka2wvZmczeHJvRDR6dGFSaXpsbVNIZlpDYkRjMWlkUGRubTFGMworOEJEek1hWU91VzUxWUJhR3lpNnR5bFl5ZFRVTUR2cjZVNUxSSVBEcGZTSEt6RGUrZnNYbzRzczJjRmVOVDVRYQorQis2QnV0ZE9zYWZ3VGg1QTRjdGViL3lpYXRMNWVZUFZoTjFlcy9GckhoeCtxR2JPeGdaQUR6NTlYVHMyWVpoZworUVA2SE9ZRDgxc0hRRHhmWWZ5UlBqSXJFTGUxd2FqM3NLd1NvQVU4OU95RkxZdUIwb3RDUjZYSkJrREQ1d2NreAord0JYbkZGMDBtREtDZEloWGRvZVhGbjd1NnduL1I0VTFiV0VBcGh6eHdXS21nakZCdjBKQkwwaGg4Y2RYNHZIVAorVnVHSk1iZCtlbE9pdVhpTDBieEN2OVdlWmZDdHI3RDNIcm9GV29uN3BhZDVsakdmYUsvQ2kvV3UvRFlOVm8vSAorUVoyRUc2a2hSV1NiVDIwWVNXSnAxQlpQSnNFWVI0cnZFMjk3ZVJLaUdwZkkrclREWmhPaWE5dlYvdlpIdThOUworUTBRK09id3JGcFNxVUZ0VndnTENhekd4MXk3MkxRVHF1a1o5ZzdRK0VUQXIyUWNzT3VMY3Jna2d3aFpERUx4ZQorcy92eUE0UnFLWFRJdkFaaE9FeEpEWVgzenRVVVo2bGpyNTFWUDJyN1A5SzNmNDRaMnY1NjRVc3pqKy9KeXVxeQorYVRSN3MrQkZFUVdSOHB5NVdtc09Ua1pwTER2cGF3K1V2M3ltR005clQzODRTTnRjWEJod2Vic3NRM1kvSy80PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgQzdFRTFEOUNGNkEyOTFBMDZFNEY1Qjg4Q0VCMjVDQUVFMTJGODI3QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaStlVjBxYng2SXdUUUFBQUFBQ0x6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNek5Gb1hEVEkxTURJeE5ESXhORE16TkZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFETjBWRk1VUTVRMFkyUVRJNU1VRXdOa1UwUmpWQ09EaERSVUl5TlVOQlJVVXhNa1k0CitNamRDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE3SGx1VWJ0aDM4OTUvNlV4CitGcnlvN3pwSEVGNVpEcEZJME1rdlN2bStGSGdBUTJPWWc0ZHRLWDBSNmVmMjYzaWQ1VURYaCs3Y0U3ZnhQNEhICit0L0Q5SHZYQjF0b0dHcExpN0ZqK1I3MkU1Q2ZYak10NUYrQW40OWJXODhoUFFiUVpJS2FLdDdSREY4b3plTU5zCitNekR6WjdWWm5qS3ZyeUppUTRLelg0RGlXY2grVXpHSWpjVHd2WWNOc1lHcnBHd0llUmZ1Y21TSE9GT0tWZTg2CitGQzU4eVpIcnQwVytSamxqNEFPM3dqc0xQa3JGRE9wcFNoN1JnY2JFZi8rTGp6b3diTjN5SG1OTGN5K3BIRVFvCitlaUZiTFFsdkMzSUxTK25YMnorc3p3eHpjeG4wK3d4aVFjVWI3Wm5LUFkyVDJFemlQTVl4clZqaDU1M21JdElBCitid2pGVHl5N2J5b2VNekhLd2ZGc3dkcnJHMGgzUkYvM3U2RThpV0xoMm5mRnF1U2RMTHFna0o1ZDNhbCt0Sjc3CitLQWpyeWhYVHIxUXN6d1R5aGFPWGxqc2tHRHV5SHFRdWY0Rlpac09JK0xmRDczS2Z5cXdlMGVnT3B3OEVDSHBtCis0NVdKdlVxL2NJMVB2SlJjTkFlMVJaM05DbTllbDhMTk1TdExqL01Vb2VnODFFZUNFdUV4NnNrZC92eHl1MExRCitydUpweC9RRkNtQmVSSEtORW5tNmhKOGpWalVtZjNLdGJ0SjQ3M2tOenhXOFpMUGFYd0p0OWg2cnB1Y1FhYmdOCitZa0phTldGenZZdkJiQWNmTTFxNmp3RUFnZ0RwdWZqUmhoMis0K2RiTXJTMDdiMEplc3g0Vk90cFhoZW83RkpwCitQeVdhNG9WaTBGU1V4b0RiL1BkYndaZXJEOThDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTXVXY3k1M2tRb0JFR1JXCit0Q3hIeldBZkxrWXBNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUdVSExsRHh6WEUwUk91c3pMSWxHeDkySHp1NmlXV1N3enF3Z1N4Q3RrMmNJCit5ZFU5TFBXdW1ieVQxU0lVVkxaRDNteUJ5Q2ZMWnBFOXNLWEwzTVVzT2JiY3VkbnZPdHZoT0pma2Jna0hPV3dKCitlek5GYlVnOEhqZ2doZGNOTlZLeDNwN0JGVVFJckEwc3h6NXFoNFJGMXRuQ2Z0NnpObUpvQ1FVczN1cXN3dEFWCitVSWNXVGhqbGh2TzJsRDArS1VucTZTeTl5S3lzWTR3R3pkamx2d2VGVXVPQWVkR0wxWWxZWGRseEkxSk5lNk1GCityQ05PRUhvb3ZkK0hRdVR3ay8yYUpheFlzbVJJTW5YcEZ4NkJaOUVIODNQN3hacURMSkFqSjJhR3l6TTkxbGZlCitTVVc2RkIybURtSVgvZlBpa0Q2TTlKOVlFZUlBWWRuZUNHZlN2cmlQMzUwNzZuOTN6dmlXUUZzSjZhbFFKZTNECitlT1orby9FRlpKbTBTdjlpQWtrUHplRU1vaEY1VXE4dzNuOS9lTW9pdmZzMFljSzBnc01KODJLZkU5YjZ0aUxGCitOdWN0Y2RQa0tEa1c5MklqMDdWWE13bHI2ckdDUlVvb0trM09aVU0zRHhwYXBQNWJYQ3BTT29KNFNoR3haeHlXCitTdFA0QSttKzB5WktkQUFGeFFtQnBqZmlTTGNDUDBLM3RWc3l4d2hjUWdtN2NPSTl3VGZOdXVDdStzaytXYU9FCitLQ2tUSmtwNzJGNmdFWURoaEI1WFNEaWlWNFN5aktoZFByeEdtMHlTYjIzNU9mWk41MDQrZ1gvYkU3MlZjS3M2Cis1QmVmWG53T1R0c1dLbElIeUNHNGl6L2JHMnQ1OVVGMkJ5VUNiMXpRczVXY2ovWUxvL1JSeEJTM3RTY3VSR0k9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCBDODhDNzVGQjA2MjcwQkY3RUExMjQ0RkI5QzI1REZEMjA5QjdBQkNEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFqRDFXTzhmalpYemRBQUFBQUFDTURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE16TlZvWERUSTFNREl4TkRJeE5ETXpOVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMURPRGhETnpWR1FqQTJNamN3UWtZM1JVRXhNalEwUmtJNVF6STFSRVpFTWpBNVFqZEIKK1FrTkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXo3cnAvdGF4eDFyUVlVRysKK01kZ0xKUHFRU1JFSU5KcVhCNGhucjY5SDhwZkJZMmVheXU3RDRZZDk4WndTdDBTa0Vna0M5VGhEUlBtTHpZMisKK3pNL0pXczA0dXlaT0YzcWpsNjhLZFEzZDRxY1pVUlA0ZHZ3MlNzVlZINWlvQ05zY3FwR29RU3J2QUdoWWtIYnQKKzRxQlFGY3RaYWlFL2preGlMemtNTWNXVzBFVFMyczQvZkVTOXU5WDVqR0E2Y2ZldjlZOFM5dmJZa0V3ZTdsSXgKK05lY3FMbVhxdDFQZ2NuZTF4a0daSHBRSmRiVHVYQnBwckFNYjFpTmw4TWZlTndIWWUyVHpMaytKNGVKWVp2UkkKK3dEOXFNbDNuQU5WNEtaSmV6NEVoRFM1S1JTcUtJSzFZN01UczdWQitYV1d2dUwyR0t0TFNQR210VXRGL0UrTUUKK1hTVDI1eVg4MGFyU3hnU3FGaG94L2NoeGZrMEQrTXdJVUFiMVAyc09naElUUDB6d21aSFZvVFllQXIyemVwOTcKK01WbmN3UDhsaDBTYUhwZUR2VlpvaXlRZHdNNDhEYXdVOHhXWm1DNFpXTWpvQ3NyUWFzaGRLQzRoc01yaEordmcKK3hzMmNsTWVMdkN3dmFkVG9IMW8zWTJvM1VZL0RIcHRYUVJ1aXFrOFoyWXFQcHNDdFhiMjRTbjZyZXRJVXN2YXMKK2RBYldPZHEwZmRqRSs0dEh3M05rRXFjWkhTK21CWlc5MDV6U3RST2JobzVFelVDLzBvczRqdkJRVmk2OFU3bzIKK0crN0ptWTZpSzRJUUpSekNoNUNSMnYwUmF4QmVUQTZvR1orc1ErbmViL2lZdnNzMEV4Smpzcm81Vm56SW5uQmQKK3Z4RHMwYURwa212azdwd3ZoaVRBWlcyayt4OENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMSWQwTXNrQnJ2dXE0ZjIKK0lsMGdyUTVnZGRwM01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQTJGMGd3N2ZhRWhVb0lUUnJWUmR3VVJ5bHhwODBHZU91bDFRdlVobDdXS1EKKzJnVVZQeEh3cUo5bGtHNlVBUlpjY3dmVXJxbndsNzZ3Q05CakJkVXRSa2VzVUc1MVdTNDlScEpWcmpUd2NZVUQKK0tDeHhaalVCSXR6Zmdpenp3VXFHUEh3cW9ONHNucXNCendDaFRYQ1d3NmNhem9jTGxZYzU2dGFoMDRIYW9kRG8KK2x2amNySzFiZS9LUHVUSFhlNFlFZ3VMSW4rNVJDV3Bya3ZvaXZ1Y3NRN0did0VsTTZzWWRFTlo3UngzQW9DVTAKKzQzYUpZamQ0NENUR0RoL2owV0VxR1NFWVU2N1hzdzh1eEU4a2lkaXRTQmFqcS9xVW4vSTl5WmFNR0RVV0VJcXcKK1NIY3NleHNEdVpLRExNdTFPK3FEKzNIU2lWYlZWd3QxU05McG16M0J0dFdhcEpzOHNzUGVPQU4vQzk3aTRmVUoKKzNmeXRhc2tsckJ3YjZHSzN3aXUreE5XNEs4bDVuZU5ZeUJCWXNqdGtBV0MyWTNwa3pKOWNtbmNmdWROZ1U3RjAKK3grNlZqVjZuYmlvTTVDN0VDMEl2VWZYY3R2S0QrekdIMDZaZGpYOXRna3VMOFVLZis3ZjFoVU1JdUUveDhoNGMKK2FJem9Sc0ZOZ1JPdkJmT3NUTlhtUklZamxTbmM5UnAzQ1cvRXBCRk9MTVNOTlFXdVVHcnV6UUZEOW9jd2lDbzcKKzFTOWF4NGRBd0tXVkcvUVJ3L2ZYQno3cEtoL3hlNFpYbEdsdFc0NDZ5UUtoMGtYYmlkaFVKNlIvNFpORzJzMEcKK3ZPRHJLQVZFbWdTZGE4bDFEblJIYXBoREtBNzkwRHVobHRhcFM3ZHhYbnB1Vlowcm0xVlZmb0RGQ3pLUGdzcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIERBMjA2RUY1REE2Q0Y3OUNBRTkzQzVFNDcyRkZFOTQ4MDE3MkNDOEUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBV0pzWDB6R1VhTUFQd0FBQUFBQllqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3hNVEl3TWpVek1Gb1hEVEk1TVRJek1USXdNalV6TUZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFFUVRJd05rVkdOVVJCTmtOR056bERRVVU1TTBNMVJUUTNNa1pHUlRrME9EQXhOekpECitRemhGTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3YllIeVhscmM2ejJpV2RmCitGZ0E5RHd2NDJXUkxlaDdlZWRER3NDeVMrUHc0b1F5d2g1bjBFeEtzZkhjYUVta0pZR1psQzRZaE1qY0EyVkh5CiswL2RHR2YzcGNtWTBtUGt6UjVjUHlnb3JkRnJHTWsxdk12MUpqbTFtbjJVVGRUUWxMWUhvMWdrRkcxZVg3blE2CitCc2Zzd1dmcnhpWjF1SWpleTlmdkVsRmg5OC9DZ2FCNkFqSkhuM3JRTXVaajZFdFlvY0FKZ1drNytzVEVJQ1I5CitxL3FjNlE3Nm85QXZQR1ZDWVZsTjFHUzFSUEgzSmhIT3dIc0tldUs5b2gyMDd5ZVd3R0ZCYnBVdEIwenMxY1BCCitzYjZIbmRNT1FpWkh0Sk9WR2ovMG54Q2hHS3RISSs1TGlNUm5udXdZTWRKV1J5WWhpQmE0b1JsZVJTU0UxSk1XCisyOFZhRlFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVVeit2SWlTNWl5QUxIRUFKOC9tT1NZWVM2RkV3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQTVPZ21YCit3YldOZE82U3lqbTdycmdiZStGZCswRmd5VEEvMHRma2NPcHN2bytjd0ZmbXB5OGE0LzNQOUVwbS8xaEZXZVVICitTVXd4c1ZmRWx4ZlRZZENQV2R5ZFkxeHZCRzJ1N2dLSnlhZ0dXUWVLM0NMY24zdndOMUhkRU0rOWdaZWlPclNOCitmWU5UQW9IL1J0d1FFeURXNnMyeW92WElCREdUTVFua1Z6T09EbTNreEVRQTErbGNReEF1Ylc1eHhYbC9PcWcvCitnMm9EZVhRSUcrYVo4UWZENVduekJQSUpEeC9qQzJyK2ZUZkhzV0xlQ1ViZld3ckpOWnRkZ3pzSXl2dHpUMiszCitiQ2duVnEzOEVhd2RsVWxhQ3ppV0VkMFZJVlo2ZGJvM0t6Vk1mc1UzamhiVUNHZTFmc2hvRkVVdlZQZ3RtVEhuCit1aDkvVHc4Z0lpZzJZbFlnL0dTVlIzZDBtRStjd3hRVXR4RFNvTU43elg5SW5uSGZmOEcrZkpmTXJSUEpXdWxyCitXWFVVNmhUQys3Qy9YWE5KZVl5czdIeC93LzZxWlBVeTdSMVFnTmR6dUM5WUcxN0lXb2h6V3FVeEs1Q0w5aFlECitmVDRFMUtqNzV4TkhlZWdEVlVHdE96YWtEOVpRL0xiN3k5R2ZVcEtLQU9sRnM5cWlPWWsxN252SWdsRHRiM253Cit4V3JmN3hMcEZTcUxVYkJESHJiSENXMmZ4V1hNMFlzMVVjVzJvOVJTYjUzdWNic0ptU2x1MHFjc3p5aXgyK0FBCitmZlFHaENvSk1LRWY2M1BUTVZ3QnlVclVQUzJYRmpiOVliUjdrZ0dJUllZb2JLNjEwRTIyS1loVUd5UmZwNzlICitPS3NDNUJWOUN4eW5Hd2p1cm1rY0p3U0tGNDg4TUNWMXZmVmIwZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCBEQTIwNkVGNURBNkNGNzlDQUU5M0M1RTQ3MkZGRTk0ODAxNzJDQzhFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFreCtPOU1WWGd3cVhnQUFBQUFDVERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt6TUZvWERUSTFNRE15TVRJd01qa3pNRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMUVRVEl3TmtWR05VUkJOa05HTnpsRFFVVTVNME0xUlRRM01rWkdSVGswT0RBeE56SkQKK1F6aEZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXF0VTlsczRyalUzejhzc0YKK1I0Z3RRcWpTZHRLV2k1ZEpQY1YxeExkQVdUTWJJamxLT0poYUxqRFAxd3VMWWpPN1B5MFNVQmIybXJHMVdMR0QKK1lpNXgzRUg0M09TVXdrWDhibEQ1TG0yRWFucnRSd1RWZ1Z5QUFwTnlVUmlET0dsVHBEVU93SGQ3S29vbW85NEkKK2FTTHRoZ1IydHZ6dDlRczlBYm10N1FuT2FXc2kvY2k4WVlDU1JIb0xFY2pEZ1FJS1dIQnZ4WmFhcDFUd3JmQ2kKK3hqSWVWZUg1TDRYVVpGZFFQbEE4UDhQR24vRFdpMkhVUjR0NnRrZkZlZVZpREdrZCtnZHJoZWw1TzgvSFgvdHkKKythUHZqSlZ0MVQvamlBTmJlNDNWWHpCdVFqK21pckQwRXdOODkzLzM4MEd4TS9jYlZ1ZFpBZFZ0cjVZOEl0WkEKKzRBT1Q3elg3YnUzdmFUdnYwSXFMZUljakw2eUlLdGZJTlVFTEtpMDNnSXlpa3QyS0JzaXdLOVFvRWFJZDNMckEKK1lLVFY5VGM2YW00WXYxWTFnbW5nZkluR3I5bHJCRytzTXNNZHJGb2oxUlBqblpUTTlCb1JBdytpcDdTWHhBNTYKKzdVaFZNSEw5Q3ZjMTZpalk4eSs0Q3NIN2doaCtQb0RuZzBZNWYvNWgxY1Qwa2pGMDQ2S1gyMU5rWVJjeHprazYKK0o3MkR2enlHTmJyTFJVYUoxVnlVdVVFVGhFVXlsNHRGTi92RnZBcFRZb0ZzdkJvQ1lYWjRLYkV4SlJVTndtNFkKK0V0ZFRsQ25YazlPQTY5UHlPMlB6TnhwQy9mM3VHdlNnSFZhb1prR3hSQlc5Wi9FUm82Z2RMT3pqeGpsS1VvcG4KK2JPN3R2aFArbU5NT3FOWkh3RTlmL3RzNUN6a0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZERVdweDhxdW1UYloyVksKK3VRVHR5bW1vR2F5SU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBTit0OE9mVVZDRnFHeEJjMzY3a3VHOXJrbE9jcjJWcU5VcUtiNUlUUzRlUUsKK2dTc3dXSndLbXBnS1BFUkN0TTBoR1J2akNhZkZBTVZNWjlqZEMvZjlYL0NzcUJabFhVYlJxOCsrQXZLS3JhZlIKK1JkYVhmOGhUNmRaU0VrZlphL29QQVQrMlJ2V3JFZks0RVFlQ0VwZ0oydHJCVmpRclZGa0ZleGxOZ1U5bUxoYUUKK3pUOVkwdUxTRE9NLy9acEF2VEpIeGg4Wm14QkFwOG42RTBTazdSUnlFSjNYa1lqMExjTFZPemVYcDdvdEpOcmIKKzJ3TEZYWDJxZGRoemkzQ29XT0xpY01Ja3J1T1FnREo5Qmt6SnRmbXdJZ3premQ4QTRlT3YwdkNleFRZRW1aWEcKK2Z1d1o3WmFEa1RBZWJRa3dnMDZ5ajcvcHQwTDEvQmp2bGFmaTl1bDVRbVEvTStuUVdxazZrSFhjcjBFR0dvMisKKzdEOVZQWlNxOWlybUxJVjFDaEhXK01mbXkrMDB6QUtUTTBQR3dwcjNXQi82QkdVNWNTN1lBRTN1YWVjN1NiMVYKK1BMYWRxVnFobkxiNys5eXBYVUhqOEdjZUYzQ0kzdTUwZW93Tk9QQmNIV3RjY3pQOTArZlZUOXoxVG5GV2h4eC8KK0VNTjFaMXlCdFRjaEhuVThoWVZobFlXVFhBeTFGOGJKNmRudk1qMHRBTXlyeVFHZ2NVQWV1cGk5QWQ4NXVrbisKK0NYV05pUUh3cUNHNzFyVitOTmJ0UEh0M3BBYkFndlA0T3EveWVEN3l1THlxZmRLaEtMb3NLKytYVHhEU2hLVjcKKzR3ZVNHNnFhVDlEUDNkTE9qNDMyVElNcSswUndzek9hSjlYSFpSK24vQzBERVZNOHFkN3E2QjEzV0FmcGUyST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIERGNUQ2REFCNTEwMkRGMThBMUY3NzExM0Y0OTgzQzYyQ0JBRjczODUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZ4UEpTN3c0WmljZWdBQUFBQUIvREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QTBNbG9YRFRJMU1ESXdOakl4TXpBME1sb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxRVJqVkVOa1JCUWpVeE1ESkVSakU0UVRGR056Y3hNVE5HTkRrNE0wTTJNa05DUVVZMworTXpnMU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBczRhclQ5NEVVZUYyZU5xQworUm9EeDBNZDBxWUE4ajR6Y3NzdHI2bDdRbzhCUzBFbE9KMXE2c2FMM2FhVGlNSWw0TjNaNmdiWStKWmJNUlNlNAorTWtnd3pDWGJMckZpS0RxNnZFMStaSW9pRFo5SEplZml1a2huN2R0OUpEQnVwUFI4K2NjYlpQYUNkb0ZqSGxodQorOW0rQ0dWNHFFejFmQUd3T0JjWURtbG1lcktKSUhwQVBGRzZqeVZsNTBFS2dvQ2FHOUc1VVR2dFRaWldVQ095SAorc3NJampHN2NkVS9iaXZlVzBCYm9GN0JmWjBUY3VERHBHcnFhb2FIM0dhb1hSc0F6V0VLb240czlyNmRacC80OAorNCtLVlplRUlOY3Uza1hRdHZJWVBreXFrQVRIaUFMQnljWEtuWllaamhJMWxLakcrZThCd3lRTm5uSVZoM3UrTworOGtENlVnTWU1azRlNFlsNzJENnJGRWg2R3EvVWJKWGFzOHBDMGpmQ0FwTXZNd2RVWHZoQWhaWUsvSmRqOEsxUAorSVVpTkxNUk9uRXVsLzBGUnhySWJ2T3BwQjZMaVMvb2hvTEk2LzVuS3Niek9WSWM4N3p4cW42ck9SVlltVGUxaworUXMwSXRiem5rMDIrSXBBZFl1NnhRWGdTZHZZUEY4TXVIaWxsbjZSa2taNUxrV2JGOWYyOVB0dGdsMmd0RkU1agorYjdSK0dmVUNRYkI1cG5GYi9Wb2RYV0paOE44bXVPZWlRQ3lkRXowdXA5T3R5b1ZCc2RLZ1RQcGFSME9TN28vSQorRXoxVm5mcTdzc3B1NDFWakJMbUdzemdIWFVvaVZ1eXlIcTN1U0J1MzlXSXZYUTZUL0U1TS9rNko3Rzc2TnNpQQorTS8vUm5nL2FFbDlHb2hZQWhVL0xubVkrcFVFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRklTZG5sUUFuUys4NVV3MAorbHg0czJTc29OWjRZTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFiMGRkaGdBUVh5UkttUHk1N2lKZ0hMOTROTFlzcm9nVDNxN0tPQ2d0Wi90UAoraG5PMW93Tkhmcnp6OCtKNmZuaXBNaDloZmNQeWxnSURET1ZCMlNFaG94UHRvUjJ0akpEQWp6NFJWVnRXM21MTAorUG9nekxhcmVUZTZFV1owaFJFWTUvV0ZWVHloMGUyZ1IrRk1lVWpuSjVwOWlmWTIrUlVxeGN2NjdpQVZWNUt3NAorVVhQRWFiOUVBbEZWNkc3QXQ4WTNMSk1mQnBmUEFOVFNIVEEvYVBiZmx6UG5QTGJzRHhESzhwL2FzOEJQT0lJRworN3NuemxZYmQzYmJVY1BoTUF1SkQyRHU5UTVSdGhGTFRBRzNUMXFqdmdYRUFOVEIvZDdybC82TVJXQ2MwYkd2NAorQUhQSUhkS3luNDNsUi9vbW5HSXZPSkRKczJSaXU4NWl5V1l0RnNTZytvcUJjVHhTZm9vWU9vYTdqc0k1MGRRTworaE9EWXdJbHJMOTJNZHJ5d0ZKZnljTExzaFdVQWhaRXhQRHBEM0VDNUZUUG5rb05STzlNcWF1azZCbnNFUUlVSAorQno2cStxQ2lra2ZhUGp5dHZ6RU9aUm5zdVNVM0dzZ0hqQUVqbDRkaGl3MUF4M29udFNzQ0JDUnltb0JBZkR1NAorWUx3a1JVS3VWTFJCT1NmTVlMckZtSHRoVEdkUk13Vm9xSmlySVR0V00zRXVhOFhpTTZBQjM4aHVzdkxncTdsNQordFFpZzhRYkNISFRsTnNGQWdvTXg5R1hucXFlc1dGZ1NFR0J5aW82R2JRR2FBdlJiMnRpVHhqTnlIMkp1d2E3cgorU3pZclpSU2JHYkczTzBaeEh0ZlU5aDV2QjRlNWdXby9QVUJCSXVIVlZydDNYTW1hL1hqMFlZODJVaXI2MmVRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgRTkwNjE3OTdFOEU1RThDNjhGOTM1RUU1RTk3NkJDOEZBMTdENzUyMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFTd3d0Q1QvRG5GVlN3QUFBQUFCTERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3TjFvWERUSTVNVEl6TVRFNE1qUXdOMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMUZPVEEyTVRjNU4wVTRSVFZGT0VNMk9FWTVNelZGUlRWRk9UYzJRa000UmtFeE4wUTMKK05USXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQThIQmc0MU9tdXd6N05waEkKK3gyZkU1dVg3N3hZMFlzSFpBVWhZSTQ5VjZid0RiN0dGZU80Sm5BZm43d2dyZzRUa2RBaFZGUnN2aHBDdUc2OFAKK3ZpenFlNllUTnNxYms3RDVrRXF0MjFzNEJNeVYyZytsWmdyK0g3V01GZ0d0Zk50UlFCVWpLckZvelRSUkRScVQKK21CYzRIUmpEWGQ2K1dGSzhYR3pMcjIwZllsNmxHdmlOajU4ZzRER25lZVBnQ2dnbi96RW1YUllCOXlsL0hoangKK1Exbk1FbHcvQ2pBZVNJaUVoQ2dIQjhEWkR2U0tmZ1pIRldTdHRjaGRQVXZ1Uno3R0tzaXM5Qyt2SnN5S0wzeHIKK2hUQjVqNmo2dWxlUHlxODh6VDN0a24wajI5anQ3d01IOHFKSys4bjBTWDB2bEJ4eWdUUDF2a24vM3JNY2wwV0QKK0hBREZMUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUxCMzEycGUxcyt4dVhPdEhZclNDM25DYThNWXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCaVNBMDcKKzBUYXlKOUwzbHRMeXdTb2xtRmZoRXRJNHNCemVpT3U2YzVNeFp5TFErdUM1MGdLVmdXcllDQkZKMHRkcVNURm8KK2RGNVlsUEErVThqUnd5c0xBTkMzVVJpVTFlSDZKaXIvUFJJK1N6WXUxTWlrQmQva1pMc2FINHlTTWFVRnFOR00KK2dLSmx5Z0J4OHJHekkxT3d6aWpWQ21YWWY5WmVZbkJrWTRCSHNzOVpHNUtDeEp0YmZ3VjBJaFk5Ym5GMzhRUzMKK1Nubm5LYUNCdHJIazB4VXhJNnN1KzByK2w2M3VBN0c5RWRNcmNoRGcyOTQ0bkZFMndoQVlhaFh2QlcvdmlDVUcKK25nV1VSNWthL1VWclAxVVAvc21hd1J0ZDFHWFF5TzloU1pKbFA2dUdHR0xaUGlzYnJ3V2taOWNxVjl2c1Fza3MKK2FhWUFDNDB1bFpZL1E2dGZHYUVpRTlsaFJNeHlhUEkwcWFNc05KVlFyYVgvNWhWclptakg4WVIrYUkyaVFEYnMKK3huVDA3RHAvYXBYY2xZVTVOOXppM1lKTmFxckVqVmlkclUxT2xBaTA4dlU4ek41K3F1VFRYWjZ1TjF0UTlEYmwKK0NjelJoVFNSNkZaTUIvelZOWlE0d3k3TXkrUGtsUzFubGlXbUVwdDhOZnlxMkZWRHZ6clF2Q0V6b3M5bENMbU8KK3hBWXdTemVVWVdQMnVsVHd0N3NUMUcxbDhhQ1lsS3VRcUl1VEg0cUN4aUVGaEt0UmRQcXdHY045QmRtOWhyOGcKK2ZLRWhFbVJtVHNDTWt2TDJrYld5TXIzK2YzdEZ0eno4TzNheHRpeWFnQnU0QnV6QjJDY2x3b3dzTXRxL2pYMUUKKzdhSGc4Mk80SXgxTitlcG45NXRFRzhPcmhlcmtlNEUzZkQvbHJ3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtFWUlEIEVGRkVFQzVFMDE2MTAwODJDMEUzMTFDQkQwN0EzMjA0NDA4QjMyQjggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWswWHdSbGZLNktCdGdBQUFBQUNUVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd01qa3pNVm9YRFRJMU1ETXlNVEl3TWprek1Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxRlJrWkZSVU0xUlRBeE5qRXdNRGd5UXpCRk16RXhRMEpFTURkQk16SXdORFF3T0VJegorTWtJNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBb3Qzdis3Nyt3MThHMUp5ZworbUhESjJuOWcxZ25ka1BVaTQ0dUwzbXZEY3RjUHJXaUZnYXhSN203Q2V0K0xmVHFEcVV5ZzRvS0xvdFIwbkRrMgorR0pFUFRtQjhxd3l2eStSdXNRN0lzWFI1MHpJSnh2SHFQeEJmWkU4VUNhcmhqZ3BkbnBtNmNZRUZjVURDN1llNQorNUxLNHlvNTkxM3Q5UUFTd2MwcFNmUFRIckJxbFZkWjJMNlpYNCtEZFhwT3dEblpKZ1BJY1Z5T0dBOGp6RWdOagorSmR1Uk8rT2lpNlhFUTZDRnhnR2c2VStvTXd6SnMyNXFKZ1M0MXg3WjUydFkyZ1BYWmdrV3dEWmZncktPMnFMSgorcW4rb1ZyOXQ4QU5DRkVJUEIzVUJKemIwcWd6ejFDNkthWDZ0Q2JwNVR2SyswZEJmdHgvR0g0Vi9nRUN4T2lRRAorT0UwbGZ6d0NZMVczT3REWEw3cVFtSVdYUXZmSVVhWkZqYUhhY092NnJwUlg2TGFGMEVNYWlqakYzdWJhU0didAorQUFIWFJYTHQ1NXhaVmMvUVE5Y2JEeFJhYzUwMVVtVlEvNWc5RWgxTXBzVUpvRGxxckFJVktkZ3oxQUlzeHQ4NgorRmNDTEoxSXJsT2wvKytZRHZTYllRL1dpbjFHbUt0V0hlQVZvT0N5UjVyVnYvYkwrMm1sOEZ2Z3Y3NjBld2ZEeQorcG5pNzBDRGo0b1RzaTJuQ1pBTnhaVXRUY2Y3MzF6YXpHTkt6L2ZpbUY2ZUxmUUE3M1A2OEsydHN2amRRaEYyaQordU9sWGhYYkVlWFZ3NElqU042Nldob1FaMEU5SlVVVlRxLy9ueGtEWnpMMFdLRUxkeU1IdEs5S3FjTTNLQW1mSgorYUhuOVljZHg2djZPa3dRTmYwazN2QUlmVHEwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk1adEY3U2dKQ1RDL05xSAorTnEwQmlESFBMZzlwTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFEYTdnN1Uvc091dkF1OHRTdk0xZHc1SW1zVk1ET0FFM3YxVlkxaEloOGI5UAoreERNWkFpVHNrdDNVaWNZanZBcVVYME9ybDZqVjBLckQ1S2VSbzdpbkJYNkludkZTTEJQNi9tM2lWSklmbXJULworck94NzlyRGxkVUtvajhNUGFaeHJSb1lkek5kZHB5amZxUXNwV0xNMHoxbk5rRHRna0VaUHJCWDhYUDBHRzhSUworVE9Ja2tSK1BpSnkxL2piYXNFa2dYTHVOWS93UWNWTXdld0h0ZUpGNWwrWXdrZ094RjFFZXd6Q05JWFZIMVZCRgoraE1jWlZjK3lLMG5zaHRNbmY1UWE2aW5nWkhvT2NGMHhhMGlBcmd4ZEFtVTlJZHp2SzU3aS94c0h0ZU5sQnpjZgorY3VKWnVUQjVNNmU1dkwvSVU3UXN4QXZSaVlGUWVwUmdySHk5dHJLdUdReGc3RFJldXY3WHgrd0RQQ2dIQlZSTQoreW5QZFlWVDRpNTFmeTh6VkRRMW40RXBKdkt1L2pTaEFyQjVIdXNTTTNtLzVmb0xrTmNCTi94aU1VL3dPLzRLYworZW1tcGp1eElqQjVHWk5wTWlRZmMrTGFKUUNMUXljcUkvVHZtaG10VW4zQkJnM2NHZnNEVCtxVUg0NUNZeWg4WQoraHgyTytIcXc5VGpWRGIvUjFPV0RTL2I2aExYRDE0TUtEUmU3NERZbEJYU29idHBEU1NuUGVRWEpYckhhc1lqRgorTmJSbzJJaUt5ZkVrR0F1MzJtYXJUSXYxZy9Hd3Rhc3NTc2NRZXhsNC9TbDdidy83bWRrQVBUWExVaHFkWDZVRworcUJXSWdDQ25aTk0xUWY2TmIwODNyS21UYjUyeWtJYTRkL1gwb1NhVitjWFd3YXRKSDgxSWp4cGRtTlBNVXNrPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS0VZSUQgRjUzRTRGNDc1RTBEM0M2RTJCM0U1NkUzQUU4QUJCOTUzMTIyNjE3RiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBY2hIdFpBaktHQkE0UUFBQUFBQnlEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreE4xb1hEVEkxTURFek1ERTVNRGt4TjFvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFHTlRORk5FWTBOelZGTUVRelF6WkZNa0l6UlRVMlJUTkJSVGhCUWtJNU5UTXhNakkyCitNVGRHTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF1ZjVna2dsTUFoVm10R1JSCisyeVMwdlRaN2Vad3dCSHNIWWVsOVJCZ1BKdWRGcVFDWjRQb3ZKZ2QvNkIwU3VSaVo0K1JZamZTTzNLSnRzOXZRCitTcHdKNk9ybW52R0FkUnB1aEVCdHAybDhnUVJPcC85Y1pMS2ZkMjNLdmV5eFhnYk5rSHVqN0FSZkpVNGN3SnUvCitBQm5VUXBSTjQ1djErYmZPRTRoeFBlWENhZWNKdFhnZ0lFV3ljYXVhUlVKMnZSUENMa1hnU3kreDBiVkF2elNICitrNUFibjhvOWNYS3VkRVFpeGhCTy9XemZmUHJ0RVJmVVNYTjV1U0QwL1RnVytxY25BWktyKzZDZElzUXZ6OCtICit1U1MwMFN5dkFhbnhHc2NXRmpjT29aY2Jxb0M3ancxdXBiZkZqQ01tRG5ZYTVZY1pvUVRpQnhkUG1vbm53cUNTCitwYzQ4UVdzUFR3a0VNUFpqeFJ2d1doK3BRUFVKRC9XZHNZOUd6OEg3cHVGcjJ6eGpvWG03NHRwQVBXYXRlYVUyCitOQ2dhNVZ1aFZTdkFuY2oxckpXUHhGdnpQS0o2WTZSazFoVytCYVk0RG9YdVdhRWNnd1h5aWJZWCs2Y0ltVjZyCitoVCs5VjFiZGNJelBPSDFNbVRsTG8vQWNyZnB4ZzlhK0FPUnE0Sk5HNHFuQ0tCKzh1K05YTnlSdDhabU1DYXo1CitabDZsYVdzc1doTHdmVlNOS1BHZTFHVHJQWUoyYy9vMFVTbGtNc0VZOUNyZXpJVDdqMk9SVXZzckxubEs0T1QwCit5Ry9hczJ0aHFOZ1NXT3YrSE92RzloQTgxdTBGOUJVOStVM2d6NDlPWVVWUmJwQ2M0Wmh2QTRRUjdXVWxVNHZuCitCZXZEOFJkQlRHSWtnbk5ycFdkZXF5ZGNJMmtDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS2dDRUZQZVQydG14MmxBCitaeE55RFo5NE5kUlZNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQU1NUlZhT2puK2F6b0JXVkJqMnpwOTBFck9IcjZVU2JvWWxjSkZXWHJnZVkrCitzTU9aenlVTXFHZ0E4S3E0aVJsU1dvOVZFdjJpOVJlc2xGaGd3c1U5bmQwT3RHd2dhaW40algyMWtFSHM1QVVKCit0NEpFNnRxL0pycGlXdlI5Z3ZyQUxYckF5SFRtelJTbW1QdFJldFhqN3YwWnhWa0tObHhrbmJPcnQyRHlGb05ICitKL0RCRVFJVldPQlR5OWhFWDN2a3QrM0ZDUERhTW9ySnIvbEU4NURvVk4yQjhVRk1JYTZieE4zRXdDaVZPVU1kCisrUDE3SWdhaU9xaDRtZW9FYkhpMGtzdENOL1EvK0NCOVZSWm8xV2RLaFdDZXZ3SWU2VWJFS1R2a0U2VTZJZlR0CisvRkpvN0lXTkNSMkVGQm5zTUM1Zjl6TW90MStNL01rWUtMVHVHNzVncTF1SGpEV1krMEgzV3VmSEhkb1VtZnNBCitrVk5UWklQNnByNW5KQytBMHkrc09EQys3dDVEd0dnWGFROVVXS0JpVUJkT2NkazdlcVRFSWExVDU4VGdYK2FrCit0VTNTeVd3MXdoL1c4Qm5GOTFiZzlFc0EvejFEcGNPNGZKeDlhWmNMZ3duTTUySk9iK3g2cDU5aCtMY09OdS9ZCis3OUNHbWZGd3g0cmp6dTAzczJEYm1mYWM2YkNlenFYRjR2VTcyQjRhVHB0Kyt3RDlxekovcXBGbWF2T1BIZUwwCitXMU5neXdhTG5WZFI1UW9zRnl6aXYxY0VBNnhOS2V0eUhaeU9PTmZiNWxBRzRzVm50Y0R4Z1JUT2FVZnB2ODRSCitFTWpzNmlxQStwUmFjcTY2VGw4TzZzOFoxWXAwekppKzRWUDBuOUhLWXBUbnhCWTR6QzVGVHNYWjBlN2V5RzA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLRVlJRCBGNjVDMjg5QjNEOTNCNzhGOTc4QUM4RDAxN0I3OTQ3REE5MzYzN0E1IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFrNWlQcElOZkZvazRRQUFBQUFDVGpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt6TVZvWERUSTFNRE15TVRJd01qa3pNVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMUdOalZETWpnNVFqTkVPVE5DTnpoR09UYzRRVU00UkRBeE4wSTNPVFEzUkVFNU16WXoKK04wRTFNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTBIQzVZNWdlMDBtQVNKSEwKK09EbjFlUkVRcnU1VHFhNkUzNGhVWjFmMVFBYmpEdHNGaW9xenpnYnBIV1dWYmlsK2Z2MmZQNEVKZ3MwRmdrWUoKK1o1dVRKbDBRUk9iV0FiRE5rd2NpWk5zWGowWHdoRjgvNjc2bzNsZ1dVME5lU05zcTdQRWp6bGt1KzdhV1pwRi8KK3dCejVJc25hOHpORVJBZVcrU3VZVUcxTVp5TW1tbk85VWNwQWd2YXVjRVNsUk1uVVIrNlpyZzVKb016QXdBY2kKK0pVTkpyVWJ4V2xXVU9wQ1R1U0pvUlZRRCtudUpTUXhRWVJ0L2Y0U0FJVHZ1YzVUQjFRZ1dwaHhrSUJPVysyeEEKK3hxYmRWTmNyWEVOYkg2Z3JXa0N5WUNOMHJBS0p3NkhMMFRJZ1RKOVhCMGZxU1VMZGR3NGRDRXNuOUZYd2M0WEYKK1pMNWpQaXJxN1o1VzR0WVFMZTZLdGtPQzAwZ3E1M2JwVlNHR1B6MHo5R3NEbG4wRWxxZUlPOEl2YzQwWk5oaW0KK1A2cmNHd3ZnRVY2ZVFJUmNUaTFmUnhwMWp3Y1FocEZPYXE4YkxjUE9EeVJwWWJmZlJVNmY1Z3d4SGd5Q05jbFIKKzF0QTlyS1hOWmRKdzdORnFCdXdKMnpJM2x2NkczSG5pak1vdVp1VFRiK09Ea1RSUCtwVlBLRW11Ym5abGRTY0gKK2d6Q0ZjVnQ1TkJLSDRlM2w4b1ZKcUJCM1FoczJJUCtkRkxQZGdxRzR1Qlloam5DdzdXMVF4SThRMlduN2pnNTcKK3BQb3FUa3R5K2hJdnJySlhvMmxFakNNbTFiN2FyMG14YVFkaGJCQ3cxSXI4QmJGeWhmU2gxQlc3ZXhhVWtFdHEKK29HakRnNUwyOWRzNlhRY2p5TUt3MFJ0dFFsVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZBZWl3SWpMdmZscXdOMDMKK2pDZk1wQ1RreWMwRk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbmRtRHY0YXV5WVJHWlI1S3FvMHdLOGhxT1JDN1I0UVNIdERFYlRMR1YrRmcKKzRYZDR4MkFHTzlsTzFFTks1Z3VYb2xxK2Z2aWJWbHFnVXpDWEptQVU0SmlNaFZqNmdyQzBINC9vcFUrWWFRSjQKK3UxUCtRV1ZSRERJNUFZazhBNjUyOStoZGpKRWhlMVVSYU5LR1BsQm4weEZ3R1FLdWQ4cE53N09nRWkvdS81SHkKK1AzYW4vM1VGdHMvZG5Rd2J2OVkyZWVkZXhnWDk4djJ3aDZrNUNDNHVJZEtLMVp0THBHYkw5ZTVwNUs3WXhUbVQKK2hjeE9TQ1pPRjRJdElNN25nSXM0TVZJM0dxbXZXK2k2am91UElaa3htYW14TVVOMm1seXFRc21oS1dvY1E0ejIKK3JUckdYNHBRZEorYlpFN1Mra0djSWZnM1NwOCtvNGJtZVVvNEtWbHZ1a1RLQ1hDL0ZpdDh5eUlFREoyWHF3RWoKKzBFLzNsSGxzaHpaV1dXOURjbXAweEJHbk9ReWRtM2Q0UEpRQzYzNlp1OTVBSStmLzlBMWNGeU9xaVVudGJwZW8KKzVEanpsOGVscytuQVNybEFGZ1FwWWkzaEM4eGlyUWhXeFdnNkl4bGZia1VDeEp1NHY0VnlNQjU1U3R3TEVUamgKK0ZvK0ZsaDcwK2JLeDE1Y3VmZnJDdWY1bmszbHdkRFM2eTlhRDJGMDE5ZzVWd0FBS2JRaGZmeXZkbjJsWGwwalUKK0kvTFJZNSt5TWlvRkh6RXpwY2VIT3B5WUJHM3UrMHAzQzljT0M3ajNkV0ZiVmZnbnYrMHFlNWRwNWVSQStyR1oKKzhBZnFnbVI2a0wva1ZuMnB1TkxBQ0Vxd05McFhkL0UyVzZJb3M4U0NBL3orbHJVZTlmTExHVFJnV1NWdGJmWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDI1ODNDQURFMzY4RjY5QzgwRjU4RDM0QTQ4QjJERTY1M0RGRUFGOTgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQS94VHNkRnZ3MktHUUFBQUFBQUR6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRneU5sb1hEVEk1TVRJeE9URTRORGd5Tmxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFpYbEpaQzB5TlRnelEwRkVSVE0yT0VZMk9VTTRNRVkxT0VRek5FRTBPRUl5UkVVMk5UTkVSa1ZCCitSams0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFrSGNzTzIyUVVQOVdUWnVnCit1cXBwUlJuNWNWS1EzYkxNYmtKTXZKc0h3bWtQZXZVNUNIcHpHQlhDQ3NUT3dEVjN1eE53TlpXM3VZMzcyVDNhCittak8rcnBYTll0ZXVuaGFJbWpQUmErdndGUklwczNza294bWdWWXlCYlo0cWd2eUdtekNITEFRb3k1YkpjZFVuCit1dHFzYUNaYWdWL3g2Y0JONFYwY1k1ckM0bjBDakpWWTB0bkt4SmRkdWhrTUE4WVVCRjArTnAyTERYMFhxNTc2Cis4Zm5YbUJvSTVmVlU1b3hrMEpkcU9pZlRjR0dFSmZxbUVQUkVJQVVmYjYrTkdIOGYxRSswWm1jUUtOVkhNYlZvCitVZGhBeGpTeVU5VlJLZXgyZ2FzNXdzb1FQWnQrL2xFWUk5OGd0TmlVczhtNDQzUWU1NzB3Um04bzJKL0g1RHBvCitvRzBnTlFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVJKzl0ZUFadzRVdVJiTTJ0YUlTdXRjNldXLzR3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ2NvVzJsCitVZVJVVVRaQ2Y5bGh3WFlvZ2l1V1RXN0lDRDZTYmRSUXhieEFBeGx2c0p6dUZicTBlalNMSllLckpLQ1JyZEVWCitrN3QzOEhIaVZ6Um5RSkFwQ2VVSEFtY0ErSm05R1RjYnJ0QWlxblNFKytZOEZUMTNYVFE0aVNvNElacEZPcFhBCit5M0pXVDJpYzdUazFBRk9CS3k1eGhrOUk5ZkF1Mi9MM1hrV1ppSDJxUWlKeU5uajBGL3hJd3VjdnpIZ0MzbVhvCit0MXlnYTRxc2NqTTJrN2w4Nm5OeURDeGlvRjBRU1lZekhYTGNMelV0VS9ManNKbEc3N3VidlVSaFd0bk5SVENCCit0NFRjWmFxREZId3AvZkNpbE9oazZ0Tzc1MzVMUzhwdjlGZE4wVkdZM2xwMmw1bnJqa2hiYVMzSStUVmMwWlVKCitBeWdCdHNVa3lSUzdmTExuUlQ4TU51NXBScVVPNFMwTTY3b3dvK2ZNQUIxT1l0N3o1NTZzeFpiejJsS0h0OFJ5CiszR0xuZ0JHREJnbTIvZzRPTkd0M2g5REpPam1pWGZ2SXQzb1YwVTNxL3dsU1laYWJGY3VVY0lKdHRxbjM2WUNrCis4cHQ2aEI4djBkTWRHc1pXVE9kRHY4aDBWRXl5WU5xTmxUbkR0cG1PWmNvUSt1MExiTkpRNHh4RDI4WE5NbUFjCitWd2UyYkNoV0hweW0wUS95SEovOUhiajZITmxaVzRFZ05ZR3BiVWVXRUNnYmJKNXJ3emkxMml0YWlxUFdzNDhGCitHT3d3ZVZjUEp3dlJaQXZtZUhBdlY5Sklvb0ZEOFlVZ1lmMWR2SUlLaUhXV2pONFFnUGRQWVZpbVVudDl1NnFaCitLRnZGQThVQVd3eENNc0s3V3YxNmJwQldBTFRnV2hMNUw0VVFzdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCAyNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVBRjk4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpbVNUVmEzVjNKaUFnQUFBQUFDS1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE16TUZvWERUSTFNREl4TkRJeE5ETXpNRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHlOVGd6UTBGRVJUTTJPRVkyT1VNNE1FWTFPRVF6TkVFME9FSXlSRVUyTlRORVJrVkIKK1JqazRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXcrUGRzaDkvNVB2K3phT0oKK21kRDlCMGlyVkExN1p3UFExWEttTFplaXU3OWlDcU41TUxhcEVxSWRQbTVyVFJCWDg1QXhCWStNYWlLdjFWdUgKK1JPOVNnZUlwVkhyQVNLbzBtdjdMWFJOZlhSUVZ0OEhUQ2tZVmNaOTg4MkxodzJRNGNtbXNtcURLMU9CRng3R3kKK3UxU2dCTFgxTGxPV05LdmZrMERQT0loaC9OYmZCRzhoSUJPbThYRXd5Y2tUd3RXd0dZanhrSDJZNWdlRTF5dnYKKzYvNngvYWE2b0o4NDUyMDRLdlR5VVFjS3Jwc3RZelcxUVIrakhjcWNzaTdlNE9yT1JGdTF0VWRBaExFZStaRHoKKy9kdFczWk04Vm40L2FWZ283OE9aSU4wcVNQbTJLRWJjMGYwZUVWeW8rKzdVZnNXK1djbnZTMlBDR1N1U3JsMWIKKzlwTlZDUTZsV0NXWUhMZC8wOUhiZ1NpUjY1alRnUy9NN0NvZ3R0L2JWaGVINjhvbHROblhJZU81azRlV0dSTUoKK1VNYVZTRks2R2pYcnhvRFpvb0t4Mkc3UWFkWWpodURFUURKQnJRT29lWUloaWVZUVQyeVI4RlJoTVRuYUUrTHoKK01EMDF4UEhYTzRZVHlQUklERkJFNGpkUW85N2xkK3hBZFIrWERITkFEYTNsd3lFeElKSE1TVnF6UnhDR2Y2bDEKK0lqb1lHVmlhVlQxMVY0MmpuTmxNSDZLdEZhQng2ZGhacTJyYUczRi84SVFuR2gzcXpLWGZCc0ZJWWFLOHU1UlkKK1hxZ3dKeUZVd2NPTjFRMTMxS29uZmVFZWk0ck5yalFqUmc3c0lNVnk2OEpLc2toK25jUFZFaFNSM3lrMndlVUwKK3c5aS93SE1RUEM3NUtFMUxRZ3REblBSbTRnVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKMTY3NGlPbitjU3h0NXYKK0x5aXJGV1RYQW00ME1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQmJkYUl6ZDN2R2JaUXJyZnk0UDZ3dGUvT3JpbExXZ0Q1eUN1TG5xbkovN0MKK0N1SCs5LzZramcrU29RckxjdzZEZ3E0WUlPQ1BuZjZzbEhZSlE4M3lCeDR3YUs4WkVjWlNtQ3ZVdWorSHpldU8KK0RkY2sxOHVVamtQOTF2ZkhWUTE3dEtudERBZVloSi9PWHlZejlkV0Q1c3g0cTV5VjhVRkUxWm81d2dMTk5nV0gKK05HakFoV1ZiY3p3NloxSEVTV0plbUtnam5rMjM3ZmdyR0YzSndpbHQ0em5pUmx6WkxJdkQyWG5YN25QTWRXQXkKK0d6OVdUV2dubnVmUkt1YTBYNDl2Wk8yYktUS2diSHBPdDR6ZVJGTVhVL2dEU0NtV0U4VHkza202N2JsdUhrZWcKKzkrVzZOL3p1SmZNRU5kUmRVRFZOR2l6aFoyemcxV3ByRlVBdnNRQlRLbDlOYnFMOUlSZ0hYZmFCYVNKV2gvd2EKK2tZS3RYdnNrRDFZem1VVTE2VDhmL3ltZGhVRlYxYWIwT01hRTBvUEdhNVFyZmRTSHFuMnJWYjJMMjFXbW4zQzMKK1lrd24wTmFuaUUyenpqaGxKR1hDRW5tSjIzTE5LSll4OElWcmtBa0VDNGpsMUpXZHBSTVF5NEhWVm55SnVVb3cKKzd1TEYybnVvNG9NdkJEeDh2bTk4UnZOaVRUUm5jK25sL0Z4WGRQdWM5aXpMTWprQ0JCejlsOTRIbEJjUkg0QkIKK3pIWFZwUllneHpwc3RvTlBTanQrUDlvRTBlcW1HOUE3RXN5YlhZNHRqdzJtYVF4SkYyRFVtY0drWUlXeFpCRm4KK0UxZnYyVkl4RUJVYXBKOWNHQmM5MnpGcUkwclVReEFFZDF6OWxuQzRTVFdFbEtkby94aHBST1hXQXVETFpDTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDMyQzZFNTc2NjYzRkVFODBENjRDREQ3QjE4RTU2MDM4NjNCM0JDOEEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZSMFlHZEljTXdtY3dBQUFBQUI5REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpOVm9YRFRJMU1ESXdOakl4TXpBek5Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwek1rTTJSVFUzTmpZMk0wWkZSVGd3UkRZMFEwUkVOMEl4T0VVMU5qQXpPRFl6UWpOQworUXpoQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBem1UQkh5RUxycExFdmJOeQorU3l5eEt2U244SnJvaUY3U2JreXMrOEhvNmlCdnpacG8yWWV1Rlo1QzdxVmhPb2gwT0kxb21BNkwyYWx6NFpkRQorT2pFUC9jdjh2ek5aSUpqd2lMblQ1dW1pZ0lFR0s3UXZBMlFweU5FSFoxZWlNa2o5MWRFM1ZYZlZPN1VXV2xhNgorL3F6amM0bmhRelJ5TmlBVmZwZjYxRHQ0MnNCOTJqOWM5dnU5NDQ5WE5MVmhHdzhtcTZ1R3Azb3NicWZBeElzcworcCt0cmtvTUJEVkJxcmRCTWlCcHNQOURMeGY2ZC96RGxDV1RPWUdWdXZYTEdiR21hZzFyb3ZJOElrMXJXYkwwbgorTjlPN1pzZ2pPYm9FN0NWZHloWXEzTmdMKzBHblllT0JaR1M1YTBIVnJ6SEdmVmpGeStweDlpZFdiN2hHRmlRUAorcm5xNHRjenBLTVR4TGhKdy9iKzg0c1BDck5qd2d5MlVrZ0FRa1NXM3VuQUhlNkdaQXRZdG91c2RlYWE0NVVyVgorNFVNNC8yZWF1bmUvM2NQYm11N08zMWlLU0d3ck56T1VyMGhxdGc3YXpYRmY4VXc1d2QzYUpMQm9na1QyZDJYdQorOU5iUmRBMDl5MWVtVmZmMU5KZTd4S0k2eTlDYXBNcjlOMTdPc1VKOTcxQ3dlUzlDVXJjRW52STRWRE1GaXhubgorM3J0NVNtSi9TNnBRV3huQXMvKzQ5ZWtsRzhMNDRkV0JTWjB1YzJxY0kwMElxTnYyMHM5WHBYcnI5aFNKYlFRUAorRlRQenRFcWpkSEZTc202TW9DSDNNc2xpNi9GRHB0ZVpJVDY1RVoyOVRrZnptbnZnU3VUYnloZ1pHZmljcHpvNgorSTVvd1ZCby9vMnlJb2VvRUF5a3d5bVZCM1RzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhud0hWK2tVRHJIWGo5QworcGJWU2g2dUJxK3BITUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFNR2w3T1NCdktlbXEvWlpPc3BvY1FFQ1JJQTY0SEVMbXJnS0MxVTJyc0NGUgorYXRWZWVhaGdhQWFzdDgxT1VESm1ocENLZVZJTGk1L0kwd1hmcjVNMHJTWkU4cnl3RENzWWM1dk5UdFBpazd4SQordHMrb0tQclZWVjhjeU9FNlYyRzZWdVBIb3RuUTNqK2Mra3F4cEMxVTdtRHc3NXlTemlWcFNYRWdlNTRKa2V3cAorbisrS3Erd2JCcW9XRXBxMFNHWUpBSE5VbHY2OWpra1ZUV21INENBVnliL0dlYVJMT3dhcitmWFhPZ1REN1VscgorVFA3L1M1ZXpKMXk5LzRCMkZZVHNyeG03QndxS3YvMzA5Mk9oUnRiK0R6V1hJQk1nU1NyRkhXdEJnUjAySUMycAorOUdUZmpDZStYbFBLY3lXM3VWQldmV3Azcis3aUI2UkZ2bzFZZS8vS3V0cld3U2FsaHRSNml1elZTWkFhMzZCMgorQXhUZEhETGtjMjkrdmdZN0ZPbFRHalNWN1VGbENNWEp6OW5uMjNrY2U2RENyeGtDZ1NrV2o2L0x1cG5EWkt1OQoramZSQktlUmwyQzcyOElKam9FM205Q3l6TXN0RTFhRHhOSFpBRXBWUk5JaWs0cEtFL1V6bFlDRFRyZm9ET0VjMAorY3R1amJ6UzQwcURyeitTeHhBMTF1bElQVWhhNmFvRHN5VFBFSnp5b1FESUNQZ242dUlidnk4TDdhSzhEVnlEaAorQllycEdwKys4TEVSRGs5OThtbmRQOWlsTWV6Yk81MjlFZ25sRlFmcGxWamFQWkg4bk5Xc3dlelRTajB1MGJGdAordTdPV054ME1xend0cWRRVTNGcXRpelZOdDFGNDdXSHd1STN5MHRocUZDTTMxNldtQ05TSUU1MGZzR0pXYVVvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgMzg5M2NkYmRkODczYzQyMzMzMTVlMWIxM2JhOTZhMGQyM2NjMTBjNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFCS3lidDZzVmJUQjNnQUFBQUFBRWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGcwTkZvWERUSTVNVEl4T1RFNE5EZzBORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMWlhsSlpDMHpPRGt6WTJSaVpHUTROek5qTkRJek16TXhOV1V4WWpFelltRTVObUV3WkRJelkyTXgKK01HTTNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTJzQ3dZSTRqclUvL3FHUXcKK3ZmeXBTaWZIbHpNVTdESDJDYm5MdVd4aVVsaWZ1bE5IVElOZUMvSzBSdDlWdk1Xc2RweXpTRnNDVnVYai9ZaEUKK2RXSk1FL3c0V3ZTc25QUTY3VE4wNmVpUVlYUGFPdmZwR013RHJLQXlWTVFJS1NBNmJsRlBMRmdPSXV1TUxCdDUKK0RsSHc1Q0w4Wlp0bTlmTGY0eGZXZ3hlRGtZTXdjeGdvOTFocWRMbFczUEh1Q1dTUVZFRGpQRXNzVFMyWGFUSHIKK3VIcVVFWW1CdnpDbzdnUWlSc2ZVSlZIb0plNmdUanZBbUIxV2c1MjBueHBkRXdRc056bkxYVzFhNnNNMi92VVEKK3dROW52QXFzVFhYbWlLVE80b0RSY1RybWNWYjZpbTVIVTZ0NnBoTW1xakxKdEpUbTB3aUxFdVg1UURhTERhd0MKK0pHb2tmd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVVFVNWdwamc1YkJsUHgvVENwV0VRK2xxMjJmZ3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCUUVCRTAKK0VrbUR5Ym45cGErMTIxWUFMRzFBRlE2bU9PQWNvUXFmeUt4S0Y0NVkrQmlxOVBDbmRBUWZndVBGLzIvdWFSRDkKKzJvNkcwc0FWQ2dTMW9UTzZNYWFlWWJBSHQ5ZjJVb1RFaFFyNlkyUGQ4cFRpZGJ3UnA5Unk2bWkvWU1ESFUzVmQKK0t2UEVTYVF5cEVwZkY4RFhyZmpCQmRGTi8zTHdCN1hFSDl6K0pQZGt5QkhoaUprZnRGWUl4NFF1a3BTT2lucDgKK1RxQTNjQXNqWkk1VmRtWjdwTEFSbUdqU3J3RFRscVQ1QlBHdDJHVHIzWGVQaDNqbWpINTNpbDVwUFpkendXZTEKK3k0c0RYbUNJV1B4MVdSaVpibHc3NUVpN2J4RzZKdTNGSU5ycFN4amhab0o3cmVvalRidmt6VEQ4aFA4N1JiK3YKKzJIcXovRDBlbVRWNGY2VU5MN0FUNXNGaVRHK0hpem8vM2RWRUhqTHp2KzAzQjZ4RlZla1dZWVB3a3ZyUkJ2TXAKK1N6RFV2dHJ1NW9FSjU3QUszMVVyWVR3bUFRQllGbis1Slgzd0U0ektGb3RyUmtzZmcrMS80ZHA3ZlhMd05CeEEKKy82bllGOVl2RXF1TWNXcStxSUMraW9aZksrWUhkemsyME5lV1lGSWVTYW1MWEFnOEZibW5kaFpUenZuZThqaDcKK2RBa3h6U0ZkTGpPcXh2bzRRUmI4VmxLUUVBcy95WXVwL2x4VGlveUdJRTFjMlFicUNQc3pRUzJzYlNQZmZxQUcKK1M2ZHBIZkVlNlRLQUFBSWJJcW5nNGt6bnhaNjFtWTlxZmQ5d3R4QjY5YWRpVWx1WExYRXBVNFhQbW9sTTV0dXoKKzZBVXhLVlQ3SGZRWDQ5cCszUFR6S0FlYURxZnNLRy9mZlBoZWFnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDQzMzI1YWY1NTAwNDA2NTQ4OTMwY2RhOWE2N2RjNzgwNjdiOTc4MDEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQmpSSkE2UDllV0Rrd0FBQUFBQUdEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRreE9Gb1hEVEk1TVRJeE9URTRORGt4T0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFpYbEpaQzAwTXpNeU5XRm1OVFV3TURRd05qVTBPRGt6TUdOa1lUbGhOamRrWXpjNE1EWTNZamszCitPREF4TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUExU2wvYjBuQ1BUOWdrQ25NCit6TFE3RjNyaHMzRDhKeDFlSDZTZ0o3b3gyZUtKUUsxVll1MkNJMFFxZVVtL3JKb1ZMWW5Xb1ZtYlk1anl3UmwxCitBbGlLZzI3R2w1ZlI2VG9vOVByMGpYeWNkNnRScGI2ZTBhQ09OVDZQSHpacm1uY3U4aUdRV3l6UHMybUJsMG8rCitSV0R0aTZXV3ZzMERKYTg4Znk2SVorOVdGelJCWDcvZnZobW84djRZZUNaVlJyTWVmRDBLUHd0Nm15Y0FIOWZWCitPa20vYlljQUVicXA3dDl4RVc1Yk1iRHVUcXFSZjBEeVlBc2d3Qy9EVmtOai9rUjRnMXUvY3FFMnQyT2dHUGQzCiszbnUyVk14OU51dHZBQnBDQjY0NU1qeU4rVWZkV2ZmS1NnSnZseGdnSVpUYUt1TlhVU0Z5SVNndDVtZGRqM1dHCis4TTA5S1FJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVvUjI5M2FJMVg5SFhBeC9UaEM5dE9Lb3h5UHd3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ1R4dHRUCitCc21ldEpPeGl5MXNGOXdCN2hYajFxWHdEaEhDQWR2REZBUXhtYXQ5UU5ycFp4S0tqUnduOFpEUk9UZlJDcm9YCitNdWU3d2RGNHlGOWRrUEFLTUg1OXNFcXRKYlQrWkUvZnhFczFHaFBWa1JWUTJKbHJINTBpeWg5djlYUTdyVlJNCiszekkzSFJqeEQ3bW9XdUpreEtoeDUvV04xckU5YlgvU3dpbkI4bnRwN1NJMkpZMFU5VStHaGR5WTdXNmMvNWNICitjcUFXZ2NPUGh2YXI2MnRuRm94WFJkOUdiSDV0b2xNYlZKZFFUcUpoOWlOR3NqOUs0UGJKQU90NEk5QTR5TVZ3CitjZXdEa1ZCaTZBZTA2OGlHUXlySG1NbkFIa2pjaFVVOW8rSTdDUms3dFBpVFdjSVVQclpZUXZ1NjZoS2NtVUdWCitSVzJiRW56Q0VzWTBqakNGbDgxTnhLZXhBT3ZiejR2Y2tiSEJmcmpPOUpEVi82UXRpQTY4ekhyazUzaDNybzNVCitNUmdpWE51T3VDcWduOWRCTnVSM1BsNFlDelQyT0NRUGVBVnZMK1loVUM0bUtyc0ZDaG9XVzhBYUhQcStQN1RpCit0WXF5dDNtVXY1SkdGbFVBbFFIa0JJRnFRaXZRdFErVGh5NkQ4VlVOQjh0WUxlSzVnWTJhejU0TTQ5a0tVNVVOCitsaTl1VFRiaENpcE1uSlFZR3JyU2RBUWtGTlJQcytvUFZ6NnM0VWZEOHMvcHo5SDJPbVUvRzNlM095b0lLejV3CitMMjJKSkZTcFN2eTBSL2htcE5vUWFkSEZmalJlSnB0ZTZVVU50c3A0NmkzK2xtcVh1azV5ZkZrSmVjMEZHSkRiCitRQnUxeHBYVjZJMzZHdVBmMHA2T05VcXNWRlBzcU5BbWtxTElaQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCA0QTc2OUVCNUQ5M0M4MzNBNTUwMEYxRjI4MTMyNEVFRjAzRkJFQjNECis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUZzK1poTldhcnR2bHdBQUFBQUFXekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNRFl4TmpJd05UZ3dOVm9YRFRJNU1USXpNVEl3TlRnd05Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxaWGxKWkMwMFFUYzJPVVZDTlVRNU0wTTRNek5CTlRVd01FWXhSakk0TVRNeU5FVkZSakF6UmtKRgorUWpORU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMENPU3pnaWtyTVd6UVQzeAorUzdFd1Boa3ArYmRST1QzSGtON2tuQ0xrSUV5REd1M293eFBXWjFoQmlSbzA1Sy9JdjVVYUFSV0FpTjUyNWtXYworVVdzMHlNMUlQWUxUTkpWRUdNUUdvWlJLc3dlSEZRQjBxNVYvQksxaEQwdTJ4d2FDYmxCTlQ1WmQvK1NlcTB4WgorbnBOc0Q0VHNVUFJ4TlNUK3hiSGk0b2R4clVpelN3bGxYZXhJbktnNDQ1dmRHNnkyWVcxUEV2ZHdCTWkwbExSUAord2QxWWQ3ZVlvMFMrcVNCcnFUU0doQmdDYWw0dk04UkNlM0NBY0x4Slp6cTM3TUdyTWtQVzdIWXQ3bGF4S1Q5ZworckxyV0d5ZTU0LzhpZzRNYWYxa3ZDWWJ2dFdhcFpGSU1jcE5pbENpb05KcXlrcXk2emtIbzRicWQyUkQ4aThNYQorME84ZHZRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVWTZxaVBONmlkN1FSL1M3eElpdEdqT01BMWtRd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUE4amR4UgorTG5LOGZCazVDTEMvOWNQTXcyVGp1b2lKbDU3Zkh2Kzl4YWpjREZDSTNaWE9CSWhQdTJTMVZYRkZKTnNtUlJCVQorYkUrWit5ZVJKRWsvWCt5SW1ZMXJrYjVmQlViRjNRTWthcHVYSTl6a1l5dTk5TG5NZCtEMWp6YkpuNStET1BkcgordXpaS0N6Y2lQY2o5bk9UVExOdXZnTU9lSkI1NTNoVDVIMzByZ0hoRWFkOW51dmdQZVVRUWROb0E5TVBqSUU2UgorajVJSVlDTzBqd0Z2b2szbmpDQ1pkdGovSTBpNEtxQ1N1a0NQTkxvazNnOTV0NHhPc2FHK0VnM28xSkt5T0lhcworUE0xR2diOWFJdGJ0elo1djhYLzRud1JIZWZHWTluZkQ1aDhSeFhZSXVIVk5RQWkzRThxMnUwbStTdS80dm5CYQorblJIUWtPWkNaV0IyYjY3NzBZb2hETVlMRGpQaEVoblRlSDVEcFd0WmROd0hoTlp2b0FmeGZGTlUrdnhZZWpiMworOUF2VHJoZVdkajVzV1VQS2MzWVJhUTRlM1BKSXVzT3ZVaTE3UERoYzZPbk5IWWkwSFUxZzQ4dkM0Q0kyUHc4eAorc1VhVlU3cExsRjZJUDZuYnc3V2tWRlhQNmpTV01vQ2hKc2ZNaXlvaVZlNHdieTI1YytPZXA5Z2R3cU15ejloRQoremovaWNWcy9scXV6cXc3Q3Z2dVRiTWNzejhBKzBOS3JYR2pRRGgwdFNlNW9lTmxXUjFJSkJFdzVGSnhFMzdOdgorUEJBVzIybEJWU0t0UHliWEhjUFpleS9QZ1lqYTlBdXc2OGUveUJ1bTI0c0JNZm5VZnhMUkFBdE1iNkZWWkdVdgorQU1laS9RQ0F6WlBDclRkRmZRcGR5M2pwQncrdnVkS20rRm51SEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgNEE3NjlFQjVEOTNDODMzQTU1MDBGMUYyODEzMjRFRUYwM0ZCRUIzRCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBaU9FUkxGSGc3MjFTQUFBQUFBQ0l6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeU5Wb1hEVEkxTURJeE5ESXhORE15TlZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzAwUVRjMk9VVkNOVVE1TTBNNE16TkJOVFV3TUVZeFJqSTRNVE15TkVWRlJqQXpSa0pGCitRak5FTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFwYlNoYUUybDdnYlcyUXQ2CiszRFpWcVozbFJzekowY3ArWUFnaWYxL1NSZTMyRWpMdjBWSjd4bFF4SWJvaGRWN1VsekY3Nnk3akpOUEtESXBzCitJbUJXamFjSjBOTHhITms1Y0orVWl2NXQ5SURGZnBDTVYvMU9EbVRsSkU0MS9LZW84b1hxcWlWaDFOOS9GSjhCCitZY1BLb1Z1aktHWklXcEdqbHlyVlBTZnN5VzQ4Y0FTMlJYNlpmOWJwWDBlTHlUTFlEY1VGZnYwNytCb3c2RlBRCitaLzNqWmtWYlMrNk5UWTRMSkNVclBZWlR0TENEcXNXUFJNVlBPNCtpZkpRWVpVQk5LYWlvOFBla0dhbGlJUDJDCitLMm44WE16emE3NWt4NHJ4c0VLMlpKSi9XbVc4aE82SXlkVXFDYzlCQ25VdnhYQUU1d2xWRlhHd0x1Nzh2cXRLCitPRnBUTGMxeHdzY2ZkMVVrRU92ajdPazB5cEdwbnc5d0hBWmNSMEUvRndoQjdEMk5NekZJZVEwOG4vNjNHOEY1Cis0Z1oyWDlhdDZHaUw1SXRobHNhMGxJVVFPajR3MUx2OGFHZlV0QllwdWRpZFBiTFFTcUkrYWFpSzYvU1VYcTZnCitPZXZ3ajFnZWNEQ2JKV09iNENFaWl1RnhXWU9Db1MwM1lOT2YwWGNqbWR0cmsxSkowOE1pNWZEZEtxN3lOTjduCiszY0FqaG9teVdJTklUekdTaWVYMkdhdFhySkY3S0RvWEQ3TkZSb1dqVnFqVmM4S2JmSXVEMmQ0bGhnTkxmN1lRCitjcXFzeTRpTFAwWTRSQlFtMHc4MGVJZUVrWGpuUXNBdkJBdkxuWDEvK2dKZnptalVBcXhMcnBKRk9NTEpzVXN2CitqVys5bUkyb2hPcG00WVhGVE1zZU85TUFUMk1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSHV5bTk2cU50SVl4cVFnCitScHJ0M05FZ2UwMWtNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW11Tk56UndMNEpTaWNwUUN5emJMUGxxeFVDb29yeGV0RCsxQk1qbUdtTkUwCit5aVd5NHlsWUo0TGJaVmYrRytteWRTRWdQNTZoSmk5QVZjMDNFZitaV1Flenh3WDNSVlFVeTBSZlo2OC9OK1ZuCitvR2Vsa2pDK29rM3NURmcyOXNUTFVaNVhJcW92dUtzZ2ZzOEsveEZHRlR4d0dzOEJPaHlwbVIzMlh1Y2txY0dnCitSc1FNSGkxRDdmWm4vV0d5V3pGMTJWWmYyeDA1RjdOSVd1Nm8zVXJRc0tTZWtldDFLNWkzRk9qWXFERVVXWVNaCit4YnVaaGlTY21xWkpFd08xKysydkU4Wi9QclZnMnZIUWFya0tiOEJFS0IxVTE5a1BBOFRTTHh3dUlnWDE3ajNICis0YXdxZ05OaFRoODNHa0NKcWJmYlBmWUpSUHdoWWtiNkw0WHVwQi9rUTd0RzVkR1ZHUnRLdUZ5eDlUd1dRaTlOCiszRGxkM24rdk5ESnYrcEc0b0F6b0VZa1JNb09mMzBNUmNYb0lGN0FFdmdiZXlHRW5IWUN2dVFhcWs4alo1UlRoCitRRnpTaDkwcjJJcnFkQjFYS2c1MGFJL0JQTGswZzAxMy91dnUyRWM4VDdTQlA5WGF2Uk5tVm1TTDNFcTJzOTJwCitFdk5jc0theURsbk5EVk1BZWJHd1ZDUlcwRkp6VldsU2JFNUlBaGFnNXJPKy90aXNLTDJmMkptK254UUR0UXZpCit5ME1JM3J0T3lraHlTTDFjT21RQWhqaHllWjhhaGVQK05YOHd3c1d3ekhnZEZjMVFiMC9LMVlDZHV6T3ZRWGRoCit2THZENU1RZnIweEtWMTNyNEdwMUNWb09JZHQ2ZkZrYTljT3ZQMDFRNDMrVzFGSnRzekp5Vk5ybmt1VGFkOTA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCA0YzRiNGQ2NDg5MDhlNDViZmU1YTEwZDM2Mzg3YTY4OGFlYzFjZjc4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUFPN2NKQm1XM1RiZ2dBQUFBQUFBekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EY3hOMW9YRFRJNU1USXhPVEU0TkRjeE4xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxaWGxKWkMwMFl6UmlOR1EyTkRnNU1EaGxORFZpWm1VMVlURXdaRE0yTXpnM1lUWTRPR0ZsWXpGagorWmpjNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdmRoZ0FLYlM5bXJONyt5RgorSVUrV3F3OFJsVSs3NUwwNHpwSVkycDZBU3dSem84b1YzZlV3eE1vb1g2Q0t6QURyQ0t5cExSZCtUN1V5VDRoZworS0F0VlMzaHZ6ZWFVMUZaRDRqbTcvMkN3ZXZGdERxNlZxamdtQWZmU3VxczltYTVoQ0cwVlpkM25neHJLdkZhRAorOXM4dDRhMDk0ZHVzQ3JkVnlMdUNLTU15M0dXRlNzZzk5MTNxU3lrSkNsZ0ZzRUJtdFZDUjFGNVJ2V3pacENNegorWWdxNmdFc2hNNUt6VzlKRWo1Z2NmRSswZ2tRelVOaHZrOVhNNy81cWRPbGc1ZnVDZEZodmg2UGNJbjFaOERlMQordnpUTjNQTVl5a3hLTmEzWlVTeEw3RktadEJGeWNLbnlsSEQrWEtFOHNiTm9CbTU5L0xxYXVRTEZ3dW83WWZlVQorUjRNVVFRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVakFWT04rdmo0d2YrdnNQUUd2L0FiaEpmQTJrd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJHMmxVSQorMEg1dWVSL2VGWGYyZVllUzdLOWdNYkdqeitPM3RET3JXQ0RMdWs3R0VPRDJUYUp2OVowRmVUUk1qcE1zZzNTbgorSldhM29SYjZ4amVBN2w2b2poTmg5bmlvN0VIWnBpSzZ2RUNDdkk0bERVOWhqTGRXOGRNYU8wRktPTHlPUGVZbgorbEkzNlJQdFcwM3BFakdpUTZ0Y3dGMjkwYzNRRjVXZHB6QU1JcWRMNVJsSXN3ZzFYQ2RFSFowWHlmbllOT0ZaVQorWDdyWGNFdWNtVHpaaTVHY1dydDZiRUNWK0VmT0ZLQXM2ZXlJMnVEeTJiZHB4SG9HdWd3WnloNDlZbUJpN2crdAorclJmTXdBKzhqODFFZkFsdUM4dXBvanUvRG1zMzltZ2FaWVpqVEFvOC9IZUNuZ29NdkV1U1VVUzFYVTlOai9KeAorS1hXWlp3Rm1GRXAyalJBMWgrOGQ3WFY3cFdycTVhVXQ3dTFVRU5oeURvaUNTRWEyUzhlMklaelRmYXhva3l3agorcjdRVmFyWVpQcDZNbDhjWVZQQ0xBR1pMSU9WRnNVakxBVVIwazJPNm5ia1NLVXRIODVZU3NkcFRBOTE0Mkt2cgorU00zUk5kYTlzK2NPelVXK3E1NUIvdEsvV2NpQlQ3TkpqM2tmUjdieFRpL2huQThxRE5udHJoUHlTVnJMOWUxaQord2FmZlRRTGhnUWVJWmZQMEl3bmtzS01PQVBxVEduc1JXMWNPRTNENy8yUm40dEtESGxKbWlJM3BMc3k5UUJNSworU3l0b0VkSGR4ekJMSUlibzV6WHM1Rmg2dHJzekVXZHFoNEVXbmJRT3Z0WUNTeUpURVlRM1ZFTDNndVVxa1pvRAorNEprY3AycklrN1VPUkhZTjQ3QnFTK1orR1BNT050MUQ5TW5QSnc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgNjU5NTdDQUUxMkVGMUIxQTg3NUQ5NTFBOTQyNUIxQkMxRDJCM0JEMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFHRXQyM3NuNm5mN1F3QUFBQUFBWVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTURZeE5qSXdOVGd3T1ZvWERUSTVNVEl6TVRJd05UZ3dPVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMWlhsSlpDMDJOVGsxTjBOQlJURXlSVVl4UWpGQk9EYzFSRGsxTVVFNU5ESTFRakZDUXpGRU1rSXoKK1FrUXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXRNeGNIODhaQjloYmx5bEMKKzRmblBGeTR1U01ZbFZOUng4Z1RpNTFpaUN4TTVMLzc4M3h2Z2FlOXJkaUdQOHgwQkRqQk5ISG01LzJtM3lHb3EKKzBxUHYzbVc0S3NGdW9acUZlOUxTbG1zWFVsc3RDUzlqcXVsbTZtQkFDWDVqbUhIWmRmWkQrMS8rM3ZsVjRQN1oKK3hiTHF5Z2NJanFPLzY1OW9PWFAydnZsWlRpM2VBOFFTR011b3doU0RLV2tORG15Nm83bnRCR1pVVGhXVzExcnAKK3gyazJRYTBXcEl1N2twbjFvSDZQRy9FdWx5Z2FMM0w3dnBMWnRFb0Z6WWlPcS84TGtzZ2FEaEVweXZLOHdBYkcKK21HV3Zrd3E5UGRUbG5DU1pQME1mTGhkWE5yUk9SRU5tS0t6a1FHREN4WEFpM2dMcDZOME9zYkJRUkk4dEJIM3gKK0pUbEdxd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUxHcC9FVVpKMG5zQnpEUWVGY2tBc0VyRmpmTXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBZGs5Z2MKK091OUdibGFVOFJxWFRnNHF5UDhXcXNTV2g4dEZLdUw1dk5YK00wVW53YU5YVkZ1Q1FzeDVIREg5Y1lZYTluL2kKK3dLZVQ4S2U0M3NoWDRrcnFMSEJqaWd0S092VVh6a1lGeFI5YkZncjlVZ1pLUmtWbkR3eVI0djljR1Vod0prZVIKKzgzZGJLVXltYVFiSm9pOWlFWnY2VWtxd2dZblFqR0FvNHBLbW12THk3QjYrdllpRVg4OUVjTXlydGxwcjViWUMKKzQyMC8yS0ZuZW1xNlFHMUZKMDBIQklxZENrNU9PYVBBaUhBTlhQUTNWL2hNa1pyMUxsWUhnWHRzVVlpT2V0YjAKK2NEVVAzOVR3SkNoa0t2NUhXYlV0bFFwYldiN3VNS015U0U2KzhTdWpDWGttSTNsc0F2aVhDNlU4dnJhTllTajMKK1V6SHVENlhDZDVxNUVVcTNXZ1p6cHl0U3dxNm5YSzFxeGE1dEVsU2ttRHMrMkhlQ1QxT1lEbTcxa2VqRk1mM3gKK3N1RlJRYTkxb01MdWw4ekZhZ1oyWXhIbjFHWUk2bUZqZzhMM0JFaFBreU9zZlJBQVlNOUd1V09memR6ZHhIWVEKK3BYRVV0dkY3Qk9pVG8rS3NUN055alJUaDJMb01iNncxZGl2TlZDVTJoVjhkQzk3RDltczQzR3diWXFudlZTbm8KK2oydldvZ0grODU0NjZkR0Nic3hCYmo5TnN0cmZZemw3VTJUaXFBTnNsS0N4cXhYZ3VaR040c0FsaXJZcWdReDkKK2x0ZHBTQzhmdnZzMlhWWXk5VWZiSHliNlFkbUovenpsSjdGU2FKL1ZFZVBYMFk1ck15YVkrZWZFR0VVNXdCQi8KK2U3VVE5SUh4U1p2NjgvdDNXOFhjTFhhZlZUaVB3U1lsT3pMOXZRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDY1OTU3Q0FFMTJFRjFCMUE4NzVEOTUxQTk0MjVCMUJDMUQyQjNCRDMgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWl0Y0UvR3ZSRG96dFFBQUFBQUNLekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXpNVm9YRFRJMU1ESXhOREl4TkRNek1Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwMk5UazFOME5CUlRFeVJVWXhRakZCT0RjMVJEazFNVUU1TkRJMVFqRkNRekZFTWtJegorUWtRek1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdEJGdVg1MXEvQ2Zrbmg3TAorY0FtdXRCTTZNOVNJMFpNZFNEYjNuQzA1WThLeTRpc0dSQzhTVTV1aUFCMUxxUXk0SnRhUWtFd1pIRzlINWQ4TworWEw2Y09keTRJbDRRczVXNUFadzhldDVJbThLeVF4RkUxbzZxVncxdm1NckcxdkgvaFhwOXQrd0c1aGwxVVRhYworbnFabnFvWjI4ODdnUTdWb2RJUkFDZlRIU3FMTHNXeDFTUzExRTVobGUvTWhDd25MSVJCdWlwREFVbm9iSDQ2YQorUHdTc25LM3l4K0VpbzMzN25FZ3hQZE8yTWtHMWtRbmY3QWlmQ1VnSVRkR3UxcWdEdzhJeHY2Z0dCRVFRdXhDWQorblZZU2I0allmenk2TTFCZG1hZDUvSEZKYnJrZUMxRXd6aWhUS3FGc0xpb01TUnorc0VZZVBBczZYMVAvWE9RUgorWU0zdU1NTitRUjZ5R2NoWFVRdHZxZUNkTitKSkd3ZEdDNXJFODhxeTJUOE8xMDVNaXBHNFQ2VTlaVTZ0N01oaQorbDNNdTY1b2lrWVFPSU8xLyt0Z3pRK0ZiZUdzQTNsZ08zSGdXQ1d6dmtFWitIZW1Zb3hYdzArRTNXdHM4UkxGUworaTlGdk8vYWh0OFhLK0NzNklmbHg5dUFMcnAvV0UxRW01VFVNa200QTZNYTNQdDNHTk1DRy9DV3hZSXNMb29ZVAorOG9Wa29PZzBOOW9KS2V3TVl6M0I2eVdZMGpZTGM1QUJIQkYySlVlQ3kwTFpTQzdFWHdWOFl0ZGZ5aTlnczFQSworTnFVN3g4TlJ4cG9HQ0VuR2JOUFVIR2NFaVVIdjdZdjZtazRIaW0zM1k5NEtyb2Nkd1hIWDlUa08zZEFIbU9BMworcEZKVjc5K3hnbXN4QUs4ZmRLWjZhMDQxN2NrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRzMzNyTEJ6Vm1PejcyZwordG0xQ21WMGQzekhaTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFZZmpNV3lzTkxpaEZFRjhmbUQ1MzNlUXJ2VXdhVUczQWlIa0ZLS1JXUXVJZgorcjhURVQwVnErOVRabU5VdWRiUHlnZEtsS0t1REtSbGFIblk4eFlxRDBUSDdqc29scUQzVEZTZlpoYlhpekpOZworSlh4MUdXWTVtSmFiM3FQTUVLSmlMQ0Vha2tHYUhjenlIay9FWGE5RmNEQ29TUDI0dzloeWhIQjZtQmRnMldqcworMkNkUjJ5Ym5JLzlOck5zQVBWVE5hdmRtaVJ1RHc1UjlubUplSGlDUDVRdldWd1doeitkWHpFT2tTalE4Uy9tVAorajhzVlpBRUJValFHVC9LVnRvOWhqMDVvTU52MkRKaVkyQ2NKTldBRitRUzZXTDNRMWlEdnp6SlJXblVjdVVOYworalhVZWlVWkdPOUxqZjRNSFJTMnRxTGxnakpOdThKdlJoRG5hc0hFZ1lNSWxkcWdrcmJqaWhTdnhBb09DMGFEeAordEFhQjlRa2t1SkMzOCtqTTRpdm1tdkFnN1NWTXJjeGhNSGxBRExyN04wMisrMElLd2w1Ymc4NVJjd1VWenR6cgorNmUyZHVqNzZYVDFLdFZ1WHNnNkthZmhSVVhMNGl5YVpWa2c1M2hkVjhOaUlkcXhueStDbjNJejBreS9oUU9VOAorWXlmNlBQK0RYWGV2dTBIVEF2N1RSblRtZ2drdDY4Y3FyUVdsSWhkY0U2bTBFc3dlb1MzOEJrdVoxeFhpeSt0bAorcEF2b1ZJdm10c0IwVkREU3lMUnVhZXZSOFFsWlNQWkZ5NC9ySTkvV2FjVDRFZldRWGE4VFNlajkrWWFtSTBabQorWHJkVVFKNlhZWG9RRGEyVGRzMGRRaEpRNFhCNlpvY3RtbTliaytWZUtIQnExeE1ja2w2V1NiNVpUUlBIVnc0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgNzAyNkQwOUVEOTM1RENEQzQ0RDg0RDdEQTc1Q0NGMEFCQzFGREUwQSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZmRLcC9XY0grcjQyUUFBQUFBQjl6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBek9Gb1hEVEkxTURJd05qSXhNekF6T0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzAzTURJMlJEQTVSVVE1TXpWRVEwUkRORFJFT0RSRU4wUkJOelZEUTBZd1FVSkRNVVpFCitSVEJCTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUExSkdNMTUvZWtYZHpvemhKCisxaWRpUG1qOGpZTXVLaGVZMngvVjBBYml4ZUQzWkgzTmRDNHRuYkdhcXljTlBLdjlhbk9nVitGNkNNUE1pcWE2CitwdXBGSUY5MGtzOWZUZ1h0azAwbGVaOExScHkyV1c1dVFRUExwckpIOFZadzFOUVM1QS84WFBZSDNiaUNHSlliCitBbFA5YkVKUG1XOTJMVXFrMXJPeTIyY2Nxa2hBTXFSc2Nrc1puMGlWdHM0ZVd2MG9MZXY0eHYxTjZVeXIvdGgrCitJWmFqMzNsTDNETFh2cnN2aFVJeWx3VjQ3c2dWd1JDMUtLNnI5UDMvb21SQ2grb1dxNGs4WHZVdkowTHlST3RwCitQZmY5YU1GMU1EMDZkTWtMSWpsWC9wT2kxNng2eUVOK2FxWmxrRngvL1dCR29rZUlBRGFmNzV3VGwxYmo3SVc1CitVRndRUzl6d29IQS9GanlJUTBSWUpjUXBRdE8wdHBCaUlYbFNoektqcmJBRWhrYmFUczNyV01QMklMVXlpZEpECitETzBjYkZGV1dCYTlkK0FqQVZFeGxmNUVZUkIwWW9Ecm9VU25ySDZFem1VNlVTOVFZVVFCb2FCTUhTMTk3UktiCis0OGFkNEJ1bTQ4RjFtUXVTdlJxMDJ1YVVyN2xvcXIzaDdNdTRWazNhUzZZd01XUVZxMGtEMUEvOVhJUE9nQ1BmCitDTW5GZTEvb0lqdVJGYXh1MlNqOVcwZlhmQkZpY0pDS29TQWM1ajY1L0hpbDBWZFNmb1RiZmc3UjBKeTM0QmFmCitPT2h5RTlpbTZsczVrUG9oNkJSRDQ4VnBHaUYrWlZpUWQ4bmg1cEsrSEpaTTNuRDdueDJDeXlzZUVZL082RjBqCitWRjVmOUdyNDFNNThmalo0V0lFRUtydDR3WVVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQVFVTGNxYklGVG0vMzNMCitEeFBxZjRqRjAwYnZNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUFqYkNLdlRvSlNDNVVCVUlIMEovOWtmN201Rk9rMW9Ia0RIN1lIc3AvM1BrCis3Z3ZwWTQ0dUt1bVZZMXVOSy9rby9JcmtGZlIvYVY0TE5WdVY0M2dNVUMxZ3BqekpuL3N4Y0FLK1lPQ1UrUjRICitud3cvZUtsanJoNEtRM3ZqYnFSdkFWY3FBc0lzVzdRYUN5MjRjS3hxbm9taVd5L0JtVjN2MHU4a3dLWUQwUUJoCitwNUNXek9FaGlWZE9iWGwrMGFYeThhT2I5NEhTQzFBeGtVM0NxZFJCMklUTUZveGNPNm9XUFQ5NWNkcy9EMVVvCit1dllXZ3RYYWhVOUNjcmE4YytpeTRPWnFOS290QkF0VU5hMmQ1MnNDeERRbzhERGR0RFJ6V3Y2MFltSzNGOG1MCit3SUtUTWJNVlQ0Mm5SS2VBNEFrWVppR2JvYWY3TThVOU1rSlhHSlJpenJhK1RKNmFnclNXeVUyby9aWWdjS3E5CitWOCt4OHJzMVJrd2R1MUErVlBBN1VER0xHZEZRbG9xcW1DeUMyWTU2bnFYeWVhMnJ2MXJqQ1lvN0JMREJYVG85CitmTkY4b1lud2ZhRFA1ditJUGcxT3FtWmFKVERlNlczajVjMmxaQzRzWEs3QTNYVzV5V1kzM0pHeWczaTVVOS9yCisreEk4TVNxRWZTUWRXSnhWcXhWZXVlQ3RVcVdib3BURnNTY2dPdThNdU5kR1Z5NkRVUURnbEw3Z0NGZVc0SlpTCitGRzBHOTRrVTJDbXZDU28yZ1pBSGo3OFg0RmxNOEZyMUdKSERRbk1admg0OXRGeUk4V3YveEdKTlNnQnF1cWw0CitXRWduOUhmM2dCSmlyWTNXNENNalRaWGE1OFpWS2RJVUJTSVVETXE5YjhRM3RWSWlqbFlJY1VZSzU1OURjd2M9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCA3NTY4RkYyNkYzN0QxMTI2ODU2N0I2ODY0RUM3MkEwOEM4MTg4OTFFCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUJVb0F3MWQvN2tqWXdBQUFBQUFGVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5Ea3dNVm9YRFRJNU1USXhPVEU0TkRrd01Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxaWGxKWkMwM05UWTRSa1l5TmtZek4wUXhNVEkyT0RVMk4wSTJPRFkwUlVNM01rRXdPRU00TVRnNAorT1RGRk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeE53dHBFUkFRaHhsZmFzWAorblJ1UlZhV2R0TExNaklCaHppQ1R6bVcwbkN5YlpycWtxeEJCem8zMXQ5T3FZbEFObW83cjZ3VVlNWER0ZVNGTworblpPYUVPWHRFdEU5TDFnbHhvaHBKMkRRakVVVHJuLzRmWlFzb0JLdHRZd1dqb0xyQUkveUNsNUdqQnh5aWcvcQorSkdOTFREaVlhclgzUGhSRUlYY2Nyd3MrdEJLaFRCK0tPWGxTdWZEdXNrOCtjQnRWRFc1WHpOckJWL2V1d0p3eAorTXcrbGtxNjJueW5wOHJ2WWFPNFhuSDZvUGFaZDZZRU83ZjdFVTZBakV0VU1meVlxdUhRampRaWY3VEtOMEVlUAorOWZhWHA3ZjVqWVZkRmpZYVpRei84R0IzbHlyczArMW9nZlY1d3JqVzl2K1BhWm5NTVVZVzVYNnIxSjVSY0Z6ZQorVFFLTTZ3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVelJ4ZTlHaElPODRZM3lmdEl1ZkpLd2NwRUZjd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFPOGpnbAorU1duNExRaFJQZ2g3SzVUekdnWmhoa1J4QUpMVWVtV1ZkOEl0STI0cnJoTjd2V0RFZGVsWmJPS2M1R3Vybzl1SworZnpuSmlYb2dSU0dBNVcxdXBkVHBIT0R2RFgwTTlLZzlVbjBBOWtTbFhyeStUR1A3YlJwRUkycU9DbEJLZ0RjUQorZjJlUHVtNlpXRE1qbzIxSVNWMU5ZdGNJcFN6TmxVekFaelQ1NXJvSEtFbXNFb0NpRmJvNXRjckxyUkx5aVJueAorNDgzK2g4OFlaVTZGVjNhVmZUbmtXUkd3ZTNjL002R3ZyTWRrNTNqeUFpeGY0ODVuZTNFaEhWT1RsNS9KVCs4OQorbGZrNDlTaVM4N0tqVGJ4WklJa3NXOWhLanpTdXROZC9lYVJXWVdXOU0vRk9Od0FmdTYvS3lpdzYxTkRvaW9lSQorS1NGdC9NbGFBUVUwbThCL3ZXUHowbTkvRTF3K1FFS0U1RjhBNy9uVTZwK0VwSVlhQStPeGZzSGtIWndScVRKTQorcHN1dUs4VFNyT0MwYWUxUDRXVkxlN1R1aXM1ZlBTcUQ2ZkZNNWxTYWxwaDJXYlJaU05seE96b2xQYTlkY3R4RworaUhKRU9Db1dCQ3Jid0RkTkVab0NNdUtOVXlkZ3QvK3pyZ3FCR2pGaVVMMVJrWnB3aXNUUVduUlVTU1dGR2h3NgordnBWYkg4YWIyOGhYQXVyRzJ5QTAzQmNJMFhrT2RSY21xbjE0NnYxM2pSZlFRSjZpU3d1c2hRUHM5NU9nMjhxNAorUXI0K2xqbkRpYU5PdWJTUmN1SVpuVkhjRnBvK1ZtWE96b0VidWhqOGJQV2NLNDZvV0tqeEJxeEp2dVl4R0RzYgorcURQZDMxNHJrRWJLY1Z3Wm11SjJIVkt6NU5YUnBKVURGRVFvMkE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgNzZGQTdERjBDMDc3MzNEQzhDRTI0RThFRkYxOTZEMjc3ODg2NjhEQQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFWUlVyRFFRWUl0cjlBQUFBQUFCVkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURjeU5USXdORFUxTlZvWERUSTVNVEl6TVRJd05EVTFOVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDNOa1pCTjBSR01FTXdOemN6TTBSRE9FTkZNalJGT0VWR1JqRTVOa1F5TnpjNE9EWTIKK09FUkJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXphSzdxMlVmWUZNN2x2MkgKK3hoek9ENy9hWGYzUU5yTzViM21GS1JnZmVZdU9DT1FvMjFqZ0NzUWlRbk1kU0ExeW85emIwN0RiYThMdHZ3Y3EKK09pbWdYU2Z3ZkZrdjNaYXpUSGNhMEtGWjVMWU1MekRCaEFQQkFtTmdsaFB5MXNRN1BLMWlsTmdQeUprWjBVNmwKK25KeEpnZWVFeDB4NmtsVEx6SXlicllKaEZhdW5ieUZaM05QR1Z5Q25wYmcvU1JPampxOGhxT01IL2lLTE9EckEKKy9RdzEwVDRrSHh6S05OeTJUQ09id2loVDgzaTAxNEthT0pVQU8vTllqdUJFMXNuaWJSaGlWYytaMVlUR1J3UUgKK3RybDZDQitlOEpodlUxRkJXS1NQWkJkZ25jdHo2UVlvZVhWN0pUL2M5ZFkrQjA0UG9JdmJmWkd6cG44NGNkL2oKK3BFRG1jd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVTFmT05xdVRyajMvbmZUVkpGYXo1ZElad1BFMHdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBazRFVTEKK0IvY3YxNUgwajIvaisxVlN2ZUEyeWhNNm5NaUVaUiswcE15UXdsdmZQdmVIVVV2czcxUmZWYTBUOEZDMHcxNVkKK09uS3VTMzVMK05NZUxKN3l0ZUFKa1VVK3NEd2FXNTNQdnluVEZ5VGpHRTFKTVZuNU1ubVVEdld1SXpBYVRwaWoKK0JqNlp5cVNydkZYdmRPYmlsdThnU214S2ExRjlWZ1k3cGdHOU1yQXk0VnAxa0lRK1lQQXF6SEpwaDRZMDJNMGIKK0swUGJaQ1ZlTzdKSUowaTJWMHZ3dDNjVHB1MTljL3hCd0ZJdURUQldUUTk2ZHoxdGNncHcxUjV3NnpYWUltcHYKK3hJb3NVSkVCdE02MTBYUjlVQ0xXT0VVcDV5d2F4eGhtelVicFRRbWtKS2IyK0dOcDNBS1BrTHl4bEhXakhjeHgKKzRYd3AvdDRlRzcyVGQ2dnh1WXJ4MUF5TUE0MFcwSFVMZ1ZGbmlLUXRXalh5aUpQVGNYbG9WTWdKQWd3c210VTMKK0RTTVEwMEc0SWc0V0tGMWZSUjVJWG9UNit3NVYwSGtDdTlCZnJZcVQyQzNZREFkcFM5Nk5aZzBrWVNvVHJUcSsKK1JwdGZzVUVtOWRMd21JaGpFeUt2YXRxZlBVN3Q4WnhxSTRIeHA2SVNtL1hQV203NjNGajc0QTVxbURnbno3YkQKK3VuZG1waC9JWFNBMEIzeWowN0hhYVRGNnczV3g0QkJsS2JGM3hDSVYrSzF3VXpoSlJYRzVGWnZGanVGWVNXWWIKK2tubFNtQWxjVUhMaDZRTUFzSENpc2dzMjg3ZS8yS2YyaEFQckJsMThFUmlDeThKVDJ5Z2lmUnluWVd1N05zd28KK0FHU0t4Q2lBdnd5c00wOE1uR3pTT05WNUhvWVNPMi9qOVlyTVB3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDc2RkE3REYwQzA3NzMzREM4Q0UyNEU4RUZGMTk2RDI3Nzg4NjY4REEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWNFRmFYOFJMbkpWaEFBQUFBQUJ3VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3hNVm9YRFRJMU1ERXpNREU1TURreE1Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwM05rWkJOMFJHTUVNd056Y3pNMFJET0VORk1qUkZPRVZHUmpFNU5rUXlOemM0T0RZMgorT0VSQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMkFuZXpWVnVzNkVsRmgzNQorYitmQVY5MzdVU3BHQ0o4bXNLVTJBekwxdjNGR0hvWG15NkVSUUZORnk4bkFPdjdUNDA0VndKRWRMbG92UTFYZQorTjdmM0xJQXloakN1RS9wOFFMMitUbmFGd0trWmRwQVJMK05Zc25yQTBuZzFSclB3R29lbGpheDZTaW8vUCt5YQorWTRGM2JGVWFDL01ZQXVSUXB2L0hkSzFmVXNGQVpwa2dncE9mU3JaZ2xneDN0bUlhM2dJRlNmQjdqdHlSdzBCVworckIxY0ZXU2xLTktjeWZHNkZEb3I0S3VadlZvbDQyM1UxTS91cE5pTTQxUGxqSzVIUytZdU1kbjdaZ1BZMmhnbAorL3hQVlVKRDNwUGdOOW85N1lhaXdiSjB5ZVdFNzlHZXlLamM2VkNrU0lQbFhUdkFlZ1YzMEhYRzFSQW5ENDBPWgorK05zZWJwYUR3djFEN1dzZHdua3lxd0ZyU3NCbXRCbmREUFBVNWUxa3B6eHltWUExZWVGRWtaUlBWWmkzLzdEMgorQVQwNmZZYk14YjhnTmt5QS9ZeWVIYWRPWUtwT3FPVjUzeDlvTXZxbnoxcUpndWp3Y0M4RmlncjJFdkVocU44VgoreXk1TThaYTcwOGFOaWdBWGJ4V2NXQXZPTy9ONnZtejNqYzJBNitPcnVsSnlDZFpUTmYyNVlJUnZPMVVvdDkrVgorTUFYS25zRTdjVFBoMVpNc0Mvc1FaSlE0TDVCREtacVByNnFoMm5jdlhaajFyRGZQRmpFd3RYWFIwRDQrUU5ZTQorTitKT2JrRkcxYUxUbG5CWVBaWk9rV2diTlF4bE15WWszUWVFM2cvTlVCVXhvaW9TbzR6cTAzMzZKNCttTGN2WgoreVU0QW5JN3RVOFF6d29vV2c1cjBybmx2VVdFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZFM1hUZlM5NUdIQlZnRgorN3hpWmNtek13VlRTTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqclU4UjI4L1BkbUttNFMrWFBRS0IyeGczb0ZncmNyMEdkSHNKZUZEeEgxRAorcG4yaHM3RkYwQWJxa1NMMFN3SzFmZG1YOHdIODhMdkFDMzdzbzlPb0x3djQvZno3c0FvS1p6UVJic1psQlhTUAorZjhBTE4xeGsxUFZ4aW1abndDT0NMY2QzcDVMaWNxd09wd0RzSm83aE9qMW4vMTBJb2NYZ0dRNjJiODl3UjcvbQorTHlKOXJ6NGlMeFBCRFhMNzlWS2pzRFpwemRFZ0VZRWV1S250VDhYanB6ejJMY3FEWjErYWJjRkFvUCtDem4vZQorb05zcmpwK2swaStkYWNyaFJBRW9NNVB2UnplMjdqRER6VWR2NjlpMW9qWTNKTWZNMGppdmV4UFZoaXZScG1iVgorOHFoWm5uT253Q1ZTU0ZEVnhFRkIyR0k2R1lrTm1FeEdjWkhNSU1YOXNXeWNXandYZ014WVlldFFudTNtSlUxQgorNWoxL2NHc2xFc0h6YWVlbGZIUkt2bDRUMjlScnZGZit6WkVnT2plZ1k2MGc0VU44NkdwdmovNk5ZQUd5bSsxQworSnNYTWdwbzNIUGVsRCsxcElJWTNET3pPeHYybytrN0NySmFtNDNrekNLN2hvV1plMmt3ZFFvWVc1RDNkTG5RYworZFRSU2hkTmpPZk9mUm5mcGVjamFzTk5sYWt0Y01lVGpjVGJNcGtqaUgxMCtOM0hsSGZQSFpmSTR2M2x0UUkrWgoraGtmYS8rVER0WFpJd0srY1l0M0RhcTIwdTR2Wk9KYk9hS3dwUEoyWHIxUjgrU0ZoSFRwUU9TMmdpUGwvSW9ZTworc09ITVhhSzRQRm8vWGNiZUZoYXBFMXR1R0ErbDM3Ky9wNjIxcEhJSWJDOEM2YS9GbHB0eGY0YTJiWGFFNi9VPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgNzhBNDA5QzQ1N0RFNjkyNkY2REY0MkM2MTE0RUI3RTU2QTlCNTZFNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFBa3QzeFBLVFdwMmlBQUFBQUFBQ1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGMxTWxvWERUSTVNVEl4T1RFNE5EYzFNbG93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMWlhsSlpDMDNPRUUwTURsRE5EVTNSRVUyT1RJMlJqWkVSalF5UXpZeE1UUkZRamRGTlRaQk9VSTEKK05rVTNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXRsT1ZyYzRaT05Gd29mNGYKKzBmT2QxZW5oTGZpRzN0RXJZNFk1REpPdThQK0V5MlNXTlM3RkN2N3VsM3g1QkR6QXF0ZVZNSFhwRXVHaVNEWjYKK1VuZ1RUNnB1L1ZjRW9JK1hlaks5TEg3M0NtcFlQY3ZTREhERVVPdHBiek1ma2FGWmJUbEwvcE9Na3hlelRwSGgKK2xMTFVXajUxdllGeDdtRHROc2NJSjVpMWJ6ZzRjTEtOVk5hRjJ5RnE4N1ZxdUhJdEpmQVYvMkVyWVJhRzd0eFMKK2E2eEVQemJNSWVQKzVYcGZ3K0Q4TFY4dWVqU3FKenRJQXJ4bWxVUlJoay9BVVdRaU5wbDRVd3VpUG9uNjI1WmIKK1RDcnZ0YWtxMVErcmlrdFVwWkVOVzlhdkFzMS9IZXR4R3RXQzIyZVNVK0NkVUFaeWFIMWl6WUJaMGl4UE5rdTkKKzliNEpad0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWFxNG1MYlpLQ2tqQnFlYWhZYzZHV3N3Skh5b3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCS1pDQ1gKK1lhY1FhU1B1RzRtR3NZNDkwRFJHczBoMUN1QkU4cGduL2VkV2IvQkFjN0w4UTNBd2hLVXliNWl4SDZkVkYrNnkKK1RLSFh6by80UVdOQ3lyYzFXNGF0SFRKZ2NJaThNR1NXUDJlSSt5Njh5ODJaRnJUcHJtWGMvaE1kMStPQWtiSXEKK1U3cnFyS3dMTWJYVTRCcXhSUEJIZXZ2a0tTRUFCZUw1c015bmlWcDFvbkZJTk5YczlpQWQ5YkNqbXdyWVE1aFcKK2s5ZC9USjVyNXA3L28ySnQ5ZVBRR1dtams3emE2U25rRWdodEJUVjlJenJpRWxPT2F1QzBDaHZlM1hBaDdaQ0oKKzA5OThiWXFET1VSdUgrK0NMWVB4RXNnODlLdWFuVVVaMXlZT2hqUXEvQ1VWNU5rbkNlakZMTnpsTEVneTkxdXcKK2hMVU9rOE9hLzZsRUpBL3FFUGRYRmZoUG1aVE1KeGlINDZXWHhQWkprMEwvdW5pRWxKbVVxTlMzdXoxWGFXVW4KK0xMcFpONkhxcTN4VTNwWUpBRXVjTmloQVZ4V3NjSC9SZDdHa0IvLzdTaTk2OEZQRkZoQ1hzWjlTMFM4RmlLZjcKK2s4MjF3RHZkcE5McytRbjBKN3dVUGlVREZ4RGVLeVZHZyt1NGl5UHNTSnhBekpyeWNoWlFVa1ErK2RuRFlRcDYKKzIzRTF6bXRQeVdFZDNNN3ZvbkhXTXZycDZ3ZG0xeVRyTUtXaW1YRm9Mb2Z3RFJ0UzdiU2MzYVFtM1dKZ2RkbEYKK1h5K1FWOHUvT0dMVTdHZlNWdGRXRTBteFNsbXRPa25FL3loRGcxZkpZeUhtaTZIajk5d1dpM0Q2QnAvYmtscWMKK3RzbGh1NDRrd2V0V1FQTUt5TEMyT01kbklUcVliWmh6QzZ1WVFBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDc4QTQwOUM0NTdERTY5MjZGNkRGNDJDNjExNEVCN0U1NkE5QjU2RTcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWljNzdKeUxjeU5HYkFBQUFBQUNKekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXlPRm9YRFRJMU1ESXhOREl4TkRNeU9Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwM09FRTBNRGxETkRVM1JFVTJPVEkyUmpaRVJqUXlRell4TVRSRlFqZEZOVFpCT1VJMQorTmtVM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMEVsdythckw1b1VsRFQxMQorR2lmVkJVSU1CZW8zRWNCRXRTampKNW1JUnNFdDhVNENSdTBVTy9tZnJheVE1Wkl5enQ4ZUVwb2Fua3NTWXQzNQorM2JDaHVVdGlKL0VtTTVFbTFNVVpUeDJ5R09VYk5taGdyTGgzbVBXZ0dnOTI0VUlMWjlTZ0hLQ04wTmVZcUZuVAorY2R6cWlXeVNlWVg1R1NRbHBvYzZqUW1BNFBCcEp2MUpZLzRzUXhpN1hyYjVKNjhvc09tQ2ZsSC9HdDBIaG5rbgorWUVJNllYdjl5MS94TUZjT0N5M25ZRTUzZUN4dEFGeUJ1MSs5ejA3Z3l6d0JSZGJnTXJWVHBxSy96WG92ak5TTgorRXcyc2hjVUNtVUZHd2pSd2RjL25JNWdJY21IaC9FZEVkaERJMWpNTURVOWJmZEkvRzNpV0ZzTzIzWkFqbXRsTworNkdNU2d6bVJHOTE4OWFsdjFsS0svZ3FGWnRxVnk3NmVkTlpkbzRsdGhUempMMGlOTFZzVjVnbnh4d3NWa1Y1dworaWszZkdiVDAwNytOVk9nNUUyenBTVzA5U2t0Q282RDQ0OXcxbm5lcHFLZ3p5eUJJVDVaYmZ0OWYwUDNpdkxudAorWEFRQWphcVBBTE5qNHE4SGtiZGtmK3hoSFNTTjYyZkpwK3QyNHpYWXV6Zy9rdmlnbHNoK2h2MUhaS1huclZ0VAoraDNDVGo4SU4rSXZWSHJTTlg0aENEK2F4SWJyUmlNU2xuYmNDYmhRQjIvaHZ6aXVGZXZFeVI5QkFXK1JDT3VtQQordDB5TkU5ZTZ5c3QvbWhML2ZIWnNkNDlLTEJMWWM5OGRXNzc1Nk01aWtRaVZTaWVUQXpEM2JvWkR3K2EzR2JHWQorNVpCcjlQL0xBSjR4a2gxTlNQQXNvTWY2UnJrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkgzN2tvckZnS1F1ZnByRgorc2FuSlpPc1diU2E0TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFKK1pTRGcxSmVpMy9oR0ZIajBKdFZJUjdhNkxjK01GMTNneVI2ejFzSTRIVgorRFJlcWJmRjhRWTh6L3pZKzI2eS9VNGNDeTdCcWdZY09NUXJCNHM3cmN4MVRaeWdhOTQ2bGVVbWJBd2tkaVArVAorSFUvWjlBQ2hMeGZqYTMxa1haL2lXZGdQMUlKeFdiWFBKTjJsQlU5T0RuSUdEZlVZK2VGd3Z2VDBFMnhLSVloSQorM3diMnhQRXYyNE4zUCtxT3g3cGYrd1IxaUZ5WHNLYjN4VWlPNUFJWnIxMWEzU1gyVVpxZlovLzhKMkZiSDMrVworUEtUSXQrakQ2a3IrbGVpbjNFVW5BU1JNMzZERGZqaXRiZit2SWV6aWpwQ05YcE5pM0t0VEN1MW9wRXpDUkkxQworaWExOHE1OEp1SXRKRlpWZDk1Uk1RNkRKeWtINFovN3UxSHNTNDVzMXI3R0FGdUttcUpxRUxYT3RqbU1xem0zSQorNmRZKzRYZHdFeHBRSlgySTlRbWlvRmZJOEpyNmluMjl3emI1SjBJQThJQ0tOVXBEUXdyZkluTzFHYTV6VGhxYQorclBXVU02YldKbUZHNHlHakEwcmZHZjRRK241enBjUXpDWG40YXNYT2hPVm5yb2tqT2Fna0kvaWlkUmh3WFAreQorRGVYQ1h5UzhWNUpSREhYSCswc1pMemRNRDdiZGkwOXp6dmFOdFE4d2c5dllObW05Yis5anYyVTg0VlBlVUVRZgorVnRRbHdDVFhqSGIwQzd4V0lSL1pjUlB2c3A5dFNCR2VFRWQ0SnpCQXM4UlBUcmM5aHV3VjVseVY0Q2Frd1h2RQord25qOEkrRXJoQmxhOEE1UkxFYXRhQXhVaXZ0Y2Q3VldweitINldyWEw2R0Jqby80Nko2MmFEbGt5TXhnemd3PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgODhiM2MxM2Y2MTA1ZDEwNDIyOWY1YWMwZWI0OTk1NjRhY2Q0NzNiZAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFBeEF5YjlPZ2ZiclZ3QUFBQUFBRERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGd3T1ZvWERUSTVNVEl4T1RFNE5EZ3dPVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMWlhsSlpDMDRPR0l6WXpFelpqWXhNRFZrTVRBME1qSTVaalZoWXpCbFlqUTVPVFUyTkdGalpEUTMKK00ySmtNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW9zajJJUlhIWFBhTGE5dHMKKzlHdFBFa2lRMUpDQkhSVmRhQklWd2NXZW9YYWszaTUyWGQxSkIrVW5aWTlIeXo5OUxZTDB0NEpFaG5nTkErNnUKK1ZpQzBSMFBPVW1YOWVvanNEWUl1VHFsZUtGWHFyOXlCQVAvNjFzOXR4bnRwbVd2RWU0NEMyZkdEOFBuY0RXVDkKK1JqTVN4ek9sa1d6VnFMd3Z3a01DK2JZbnN6dGRUSGN5cloyQ0VCRmlyTXRlbTc4OFBRL251Q0dobURQRVB1V0oKK2w0dDB5b0NEQTFNS3o1Rnh5RkhSS2pjdHdtVE1GK3BKdEt4ejdPSkdUQWNHZlZubEZQNnNLQ0dMK2U4eC9zSTMKK2hrUXlPOCsvSjdlTTlEeUZxK0Rid0tyS1duSmwyOGdFT0szZ25taGVzV0VwbjhhTXpVbUtjSWt3RkFCMUU4VWMKK2p5dEM0d0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUpkT2NuRkpTM3REak9EeG90SXdQUUsrRVlQQXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBeEp2Q1EKK3Z5OTNYRTNrSC9GKzVWMmhwb2tzSGM4MTU3YnpaZCt6Ui9iaXNHOXljeGp4TmFhMENlbXBEK3MzRzRYUFk3WDYKK09VR05RWkpLQkVFSzlOdFpxcmMycXFGTUVUZy9hN1VObGpMV3FYc1Y0TWRlbWsvTGZxeTYwdm1FalkrY3ZtNW8KKy8xOG1GY29lVmdCZ0hQWC9ZWFUzRy9tOTVsSmlVNlJyZm93RVN0MkJPN0dvc0lmVzN3bkg5MmdwbmFTbjV3L3kKK0phc3pJNmV6eDRKamhOUExIZ0dyaDFva2lSN1NadHBSZURoZE95RXJteTB0K0FLUDdzSjUwVkRWc2RxQ1BoRHgKK2xUM1lKeUp3TlVOb3gwQ1FscWVvMDJ4QnlONDNOYVdUbk5KbllLc0VKSkRqUVBYSnZzNTR5TTg4RU15U3ZqMFUKK2NYRU55VlBHQzVzOENFblZVek1pMjRuNHhrbnVmelZFeU9hazJpb3k5MklxUk1TOUpDWWd6TmM5SzVMcjFJSkkKKzJMTG9SMUNqNC9FVktOOXljMGVoSHJpUStzaUNiQnl6aTI0VW9MZ3pvVWFyM2tJMXBIQVZtUFovVG0zaDc1dUEKK3hNbjN5WEZqTTFnVTdyQ0c3S2hxMzdtVjVRODdMMFpVZ25KMmtPOUQwaDdvNGxtTnRucjRhY3NNRVFheFcwamYKK2NGd1h4N2xwVzNhc0k5YjJ6V0U0QVVMM1l3ZW9pdW9EN2FHSHBUSTNzeDFzV1hDdjZPQlRjdDlyNHFoaGdZV2EKK2lzVHNXUm8xbHhpQSthcTJVa3ErMVo3dkwrdnE4Zm1qUitzTGh3TUlwZldKaDNhenMvNkRxTDd1T3NHZno3TGgKK1JrV0g3eWUrbUJMNThmcVFGbG52cVNudGc5Yk96MFQxWGY1VDl3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIDhGRkQ0Nzg4MEUyMzlBM0EzQTIwREUxM0VERjEwMUU4ODJBOUQyMUQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQWI0MXJ1djNhc3g3Z0FBQUFBQUJqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRjek5Gb1hEVEk1TVRJeE9URTRORGN6TkZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFpYbEpaQzA0UmtaRU5EYzRPREJGTWpNNVFUTkJNMEV5TUVSRk1UTkZSRVl4TURGRk9EZ3lRVGxFCitNakZFTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE5K2d5VDRXYUkwS0xJRVBkCitEZzVmQXhqSVcwM1QvY1B6VmFnUmJLK1c1Vlp4VVIrWW9GWXlSQzlzNThGWmJqMzlMVUxCMXB5QzN4YVhzT3BTCitYUVBOM0F5a2trYmhzWkZMUXZ4bHVBbk9laTdxWThRVEVCNVpCUHR6Qi9vdUxmVnQvSHdBS0E1U2dnSnIxSHZMCit5aG4wYXVzUDFLNnBnMGFVaUhHNXJ5UHRwSzA3YjdXbFUzRDMyUzVPLzB1OGZjNG1keEdHNEFJTlk1ZW1DejR5CitnZ01adC9McXlXcmtVd2s2Z0ZLV3ZaN21LM05kWHl3Q2N4K244azhhQ1lsOE10OXJyYmRwMEdiM2ZZbTBNT21CCitjbXN4ZFYvQlRDdm8xMlFQMzlWRnRRaWtTNGFXMkN4TFdMQmdjUHE5ckNTWVJGU0p1Mzdubnl3WTV1V2ptSHNlCit6R0pLWndJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVUU1F5bmo5K0ZjNDlvU3FKQ1poZDF1RHgvL1F3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQkxMY1U3CitzeHk5RFpDMUdxUVVuTHg4TXIvd2RkYnRDMUhtZEdqTnhpTDd6WEhKSElaNi85RXgwVWVtQ0g1UVROWHFRRzhKCitjU0lhOUxaRFNndE40NzZGM0VmSTJSYVNncTJSUmo2Q1A5OWxpUEdpNzVKMHpJdFZzcndzcUwzYmZjamJZbnNXCitqM0UrL3hWVmNSLzdCZGRUYm9xOXFuR1MyUGNDSUpTcW1oWVJNM1FMWTRBQzZaZnRDQTdWZUZrc2RMTzVLby81CitkR2lRQThhNXZWMVRkUWx1cyt6K3pGVDduZWowTm0vdXJhVTRrVFNZZDlLTTlsNWM5cnJWakJPUDVEc25VWkNMCitwYzl0SGhvM3FDQ2JRWWVTZDBoYXppazFRc1R0TDlBbGFnbVo5bWFIUW9tTjcvTEVrdHJ4VXpQREtLOWJ3SzRkCisyUnRydDAxbFVzdTVvQ3hEY2NzQ0ZteXhraXdxZEdZRkpWSnQ0NUM0SWpodEVxKzNRMnVOYVoxZjM4ZXhKVHRrCitqRmQ1T3ZjSWU1Q2NTeWJhaEhaVHF0OFo2RzMxNzRQNkRzRUpmbnpmS1NDeWw0cytYZHU1Q2FZYkk3NEtaVUxUCis4ZEVwUlBWNmRqNFV3Rm1RL1ZlZ0tCUHBhdlB2TGZDOGxWcTBvcGtLYVlYTWZydENTdHdFSmczQSt6c04zTEpECitnQzVSNjdocis4bTFOUUtFTVVYYWxRRk5UeDR2QU4yVHVUL2pCUEJGc0JiTWxvVURHVUNMQXh6V2puZEwrclBSCiszNkdEQ296cUZGQVNuOFBTY3Mrbm51RFVjL2Zsd1ZWUlR0SWRZZ0RjMnUrWWNGQ2ZwUTQ4d3I1M21VdlRPeWRxCitTVzRzL1hUekVGcW9SaXpZYVFYYmc4V3JqaFA4TGtib1ZjMHlVUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCA4RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlEMjFEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFpUXgvck90QktkQlJ3QUFBQUFDSkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE15TmxvWERUSTFNREl4TkRJeE5ETXlObG93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDRSa1pFTkRjNE9EQkZNak01UVROQk0wRXlNRVJGTVRORlJFWXhNREZGT0RneVFUbEUKK01qRkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXRDaTJ0UzAwNERITDJhMDYKK215dDFqZy9XVnVuOGJiNUlvV3IvZkJwZ3g4MGNxaW1BSUMwU25CYkNBUGVLc1pSZWV2MWJiMVJBN2RwVDhVTnIKK1c0Wm1jSFkveUlaSnZCUDlZbXdOcFJaVThYTVoxVE5TRnFkSG13dUFCMWhkSlpXSStsNWw4YVQyRjFGeDZvaXUKKy9SUnlyVDdGSXRQdEhRQ1h6VFFlZ1RwM0hjRU0yUzR3bGYvaHRxVzZiaVk3Z2gvSUt2KzJMSU1uUEM0MkF2ZEoKKzNZYkhDMjRUYjhJamt6bnQwN0VCYTVqMlgveVEvYlBFeTJqNDZjc2JQdnFSeEFGMXd5TStHR1VucW1MZnpvMm0KKyt3S1BnYmMvRld6SkxTdDN5N2dPL2E5LzY3QjZZZlI0aDBzaDRRM1F5SjdrOUVoVERXRHQyNWRTNnVxeitzc2sKK0R1c3liY1RMYWEvMjl5bXljQ2RFVkRxQm9ka0tzK3lQbkpocHF0TUJock1janZrd1VaeEVaekMyVmgwYVBQN08KKzdDWSt0Q3ZtYjM3MktYVTVIWmJMb0ZrSFNocWlpYWpZbVM4Qjg5MlFjbWlQWU1XNTdPUnBQNFdwc3JDRERsY3kKKzBvamR6cm04QnQzMFh6d1dSUkhpeityWVUxb1k0dE9xbUd6Y05NWW83SnVhY0RzeWNoaFA4cG1HSlpUYWVhWnIKK2ZDMUwrNC9WbWdhTnRGQ1pZV1NKeHlCOHRoMUdreFRiNmd2MXlrWnBuVlkxWHlnK0RZRFJBaEhaZ0VVUkNldHUKK0xWb0hDSE8vcTRGTFRCWkN4MVN0a2JRMFUyRzFPUjJZMXNrSXhNeC9KVllTaFZQWllEUmFBZUlyWithQlNUK0wKK0hEMlFXenZCWFlTdFBCY2tQaDcvNGtQVytQVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFUUtSWERUMnd1WUxlV2oKKzhWVnNmbmhQODIrL01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQUF1Z1REWHg0MlhsaXVKVUVONVJZeGkwVUNqNTNsZjIrR2tXbGdNOFBZRnMKK2lsQUZlY0U2Tk1TK2ZBYndrU2JWTlExS0I2RmEraHRpamNwL3B0QlBRVWNzM21Uelk3YnpvMERFZ25rWXFpUHYKK3BVT3hub3FQbG9oZWdhWU1aU0tEeG9nVUhCUTBhTTFzQ05xdkwwVkVSZ3prMEoxZnJmcEZDaERzbVFyemx1dGoKK3l6M2hLNklJdk1SVUlVaDQ0NERuSEtFRDVucVAwMTNzSDZZV0h1REhPQk83cDErYTJLaFNIeHBLdkhsNGM4OUkKK3RZZS9IZjNpOG1DQmEyTmwwUmwwTCtDMFlENzNPam4razJiWk9yMFNCT1hnSnNFeXV2Y1lHZ3Y1YXhIT2tLSU0KK2RkWmdBSCtHeHJnekFaL3hCaVFhd2M3anYwdGhiNUJhcjdPM0wxTWsxbEU0Zi84T29lcFF4R1R4VlBPNm1iUzQKK0dXNWZuYzFZMUEyQmFNckl4ZjF5LzkvcnYvRWYrV0VvL0FOTWs2Wk1tNmIxRzBabGJza2pkcHVPVm1SYTJHTUoKKytKRTdRWVJKdDJYRjhXOUxLSGtXdG1Oay9rUkxOQ2VzOFBLOVJadCtSTW02MXJqRTZuWk13UkpiakJnYWxKOXgKK3NmOGdRdFNrcEVoNzhMbFdDUTRXRHlxbWw2VmNBREVxRmxnV3BLd1hydnMrOGcwVERQQU1KTXl0L25JRVpiQTYKK29kYU5RYkd1RVVZWlJaeFpXK0hVeEtYbWJVeFVFTFVzVFpKeTF4NENGWDJYUDM5QnRta2lJVXJrUlFWUXAxRk4KK0hEYWR1THM5SURManhkUjMxcCtjMll5ZU05cFozeTRiTHhzRXRlNHlRM0N1S3BST2hhQkdxUnBkWFRzNG4xcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIEEwQzlERUMwOEZEMzlBOEI1OUM0NkJDQkU4N0ZEOTk0OEM1NUY5NzAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQnZoVmN2ekhyT0h6d0FBQUFBQUd6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRrek5Wb1hEVEk1TVRJeE9URTRORGt6TlZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFpYbEpaQzFCTUVNNVJFVkRNRGhHUkRNNVFUaENOVGxETkRaQ1EwSkZPRGRHUkRrNU5EaEROVFZHCitPVGN3TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3ZkVGV3dpQWFua2xkUFVaCitGQ1pZZm0zUWhQdUZtOW9jR3dTZlpXZkRyTlU1SEtTYlpPakhWNXhtSGZaOC9mUVZOWElRY2JYUjN5YStpeVVkCit4SkV0RGhuVUJMdU9ZYitNVU1WUk50bVF0dUl4eEwxeTFhRDBORjVvRWhIR25NR2JTd1puVlhLK1NaUWZXZ3c3CitxMHRweVN4SjJKSHNnQ0krTFZHU0ZNb0JLU1hxR01xSkw4eXhoVFptOXZwWlFoZ3NCMnFxMVQzTkFOQ0lNeDA2CisrbWJONTQyUmg0V3I3eG1HSDVTVzBqOHdMWGlEL1d1alR5Qy9YMnVvMGJxZS9PWGdicGRDUXVIUGtxL2U1ZHV3CitkNEVhUGh0YW5YVGt2aU15V1NiNml3VVZwbmJURUg1dTBRZXNiMnpTeHRwNTB4U1lkbkE5R3hsejI3SHAwc1Q5CitNa1RKQXdJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVnN3U4OGdlY3YwTjlxdldmK3lsNGUySnVaeTR3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQlNSTnIwCitLaWNPUGdtejhCZkVUMVU2UFNHV3FtNXd3NVUzOFFjaDM3Kzh0dGRDZFpBRXpTc0ozdTdTL3VQSjRBdlpMdW9lCitjTE1rYzdjNUZSRXp1M1A0ZkNWblhVZmFTdEhSMzgrQmo0Qy9kSG1OWThCZE9Gd29GMWpTT21rVE5xdzRlZndKCitNR2Y3ekNvbU45ell5L0d6Z0Y3bFcvaE05cEhTUHY3NHErejVlN29LeER4MHBsREVHMkxVTm01N0kyaENqTVhICitMY01wdUtNQ0lhKy9QZjZMRFJqOHpQejZkYmVVanB6T2dXZTQzSWkvVzhpNEptMy9adjNmTFJoZjE1SkZHQ2tGCis2YXBBMDZ6SjBBWEhjeXBrbUV0N2VIMnY5VXIzMDJOWDUrZVB6SUt5akJNeGNycW9VbU1LTEFiY1lla2lXSDYwCiszbEJlajhoTExGWER0Rks2STloam11N3UwWlh2alVWLy92bWljSmxUai8xc0gxa0xoSkxlb3NMaThtM1NXQVBuCitQcjF5VVNSWGp6VkkyRnEwRlovMURsV0V0UjJabll4SnVkRVVVZWw3RUhiTDdmNXZEcjNMK3ZlbUhvT2xxeXI3CitzTExEZDNuVkFieWdNbkd3U3M3TXJLWUxWQXRFeXBIVGJqSW1yTlIyZFhCL25ZQXVtNURkR0xRejEzNmo5bG0vCisyeTY3OVpEaHBpUEljNVZ3c0Q5N0MxaWZpL0NJamlwVWFZK3Q1L0dBSG1LbUxVQUs0NGhINWkvSHcvT0JVa1BKCis1ZUM1d0VHV2QvYnJtTG5sa2hQdmxIRjNMWUU5YTV2YnVtbEJlTWxrRDZES1I2R2xyU253RFdUbjRFSnA4cWVDCitFVCtoV25NbmIzMjlkRzlOb1hTSzhBVmtUY05NT3M4UStNMUpmZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCBDQTY5NzA0NTg2NzM0OTNBOEFFMTk5NEVGMUUyOTIzOEYyN0Y0NTE4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUNwemdPNFNwWUhselFBQUFBQUFLakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5URXdNbG9YRFRJNU1USXhPVEU0TlRFd01sb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxaWGxKWkMxRFFUWTVOekEwTlRnMk56TTBPVE5CT0VGRk1UazVORVZHTVVVeU9USXpPRVl5TjBZMAorTlRFNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBd3A2NHJFdUwrbmt0cTJORworWSsxT3dpNTVNbVZDYm0xOUFQSzl1WHB4TTFaTG1DaEV2NkhkNmZkZEFybVo1V2ZudjgrVHdTN2QxMEVKdTVBOAorOURBd1lyZ0xYbWN3STFMaVd0VndROHRTNUJ3eS9wblpmUFhtcHY0alB5cmdxZTdOcHMweVFMOWJFQWUzMlJiVQorSm1mclcxb3BobmZJTDVqS0hiTDBUdG1uN0tma1pSbVN1OXpPb3huZjFwT3VVNklqSkxIUXpVTTlETHNrUGVLeQorWGppQkRGb3hEWk5WaDNLcytWWkZ2STloR2g3UllXTlBSYnQ0NTV6MHdWQ3AvZ0FuTjBGWlZSb2FjeCtEQmcvbgorWEt0RG1LQUFXTjF6eS9BTzAwdnJVcHJ5UEwvazBoNnYwK1UvUFNzdTNzc081SENZcU9oNm9nR0I0S1lqQVdwcAoraUkyWDBRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVdzJEZE1DalIxTE56UzBZQlVyR3UyTlhOTGY0d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFaeDdkUworVlVQK08rTUdySThERFA0eVRhcCs4UXFuWUFXOFFKUUt4OForOGgxWHR1VE9IdTM0U0xCV0N5UjZjWmxRRXhrbQorQk15cm9HdjFqWHhzbk0yL1NJcnQvanJ1YmpnU29QUzlmVHZvdERFMUVSL0JWNnkvM3hDQkZZbFJ5dkd4WlRCVgorN3VHb0VTU2lqK2ErZ2h2Sm1GR3JVYjdKY1ZndGw2NlNVZlYrU2lSQnFPSk1FaGthSnJFRE1Id29oZXdPdk54RAoreXZsczU4RDhrSXl1V0s4N3E0OE43TVJ4ajU3RHNYUGt2OXRjK1lJQ1JCdUs4MUdFL2o3M2JtSFJiREFaWDNlcAorendUMDVUcXJZdENoWk5mbSs2bFo3aFVSem9WN2VHZTBpeGxXazBadEFpS1BDYmI3ZkIwUmVQRjNKdzZTNk1JeQoraENTWDhxZ1U4S3VLTE9iejZOS3U5S1dZNCtLK3dtbFBBS1p3NzN3THJjdWVqRFY0cjRQMnVWTEtJRENwbUU5TworZFFVNHJvOTAyYzdlTjJxMzBqeUd0WXlXQ1NUek9tVHQrZGVOdEJxOTl3TUg2UzNuL1dzdXFvMVYyZ3g5OEx3NgorVWNyZHFBZXRWMjFlWUQ0MWJwY2thR3BXRnVFZy9vbFZjWlZrL2tVUGZVbEVKbURaZ0tkMThYaURNeXBlcExrLworNHZUSitNaUxidy9XS3FZZS93dDVDNS9NbGZSM1BURWZRMmQ4Nk9JWGh4V0Ywbk92djhFaWUzRjhyRHNha2taeAorNVFvaTFXK3pEUk5LWm8rUEM5R3hvQW4vUk54dzdJczYxai93alhXWmpLZTkvNzlURFc2aDdPbGxSbUEwRnRJVQorbktFTFE0MXpyMHBxRjZFeE83ajdGdDEzSVUyOVY3YkQ3K2Y0NFE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgRUMzRjhENENDMTJBQkU4OEEwMTkwNjRFOEE2MkI3MDE4RkEyRTM1OQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFEQ1RVRjdVSGFIU0ZRQUFBQUFBTURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEV6TmxvWERUSTVNVEl4T1RFNE5URXpObG93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMWlhsSlpDMUZRek5HT0VRMFEwTXhNa0ZDUlRnNFFUQXhPVEEyTkVVNFFUWXlRamN3TVRoR1FUSkYKK016VTVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXM3VGdkc0ViRDhVY2M4d20KK0J6LzM5UlNkS0dTQ3ZpdnN0Y25UU0lYVkhta09RMVZodlhaOHZ2TlBjd0Z5VjhqdHp3VEFBbzBYWTVuSlhKMlgKKzU1bURnUExSWVI2VDd3RXFWUFdxcHhraHc2eXZyM2dhR1hYRVJ5U3dqYzRXRGhuOGZpRzVZTTZFbUt2ZEtMQTQKK1hUQk9MUWVoUk9iOEtaUUE0dkE2Y0h6dnhqV09qYVlSYUFrNkxhTlBNYlBHbHNhMU9vSUQveUFFWFkranVackYKK01IbE9lS0xJcm5OS0pVM1dVclNIV0JmbHZVcXBsQ3BHLzU5Ky8vdFdhYUdtMzkwd3dxVllIZGJFbjdTTG1jZE0KK2x2WXVCbzgyWG0wYzM0ZkxCQjVuMG5EV2w1NEJnNXdvaW9SbTB6Qm9zQ2ZUczFXUXBiVktVMCtpUmJXeXk2TjgKKzNhblhVUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVWY4ZU5RTE5JQ3dKS0pJeUVwOVF2YkVxSmdzSXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCRFFvYTgKK2RCWXZTWFNoT3lUSlh3Q1BEbm8yc0U4a2NTejdPZDIydzNhMlVoOVNnR1d6N3N0bHc0WkIzbk1Qa1lpK2wvYUgKK2NoeG9Bd0sxdm41SUNmRWhtQjNrR2U2dEF5Tys2NERlNnNlNjZ1cU94azRwZHlTaU5mdFhySjl1Y3FEODVMVTEKK3kzbm14cmZPRnl3U0tIK3hVSlhPSHMvd3VkZzNiZmU1MGhScDQxc1A4eG1WalpzWDF6UDdtZTgrL3hpM0hvcjkKKzZjMWJEYTNoZmVndUphMnBRdDNaaEdLbVlNUEg1RDExM3c2bnp6b1hHQ3JXdEU2bklydHVNMndERXo1S29mUEIKK21rSkViL1U2VXdwVnV0dHZtVXJIaWhiRW9IY1lWVUhpUXZsZlp6UXkwdzZlc0NlS0R0cDhXNHdFb2R3eTlwNmUKK0tmcWFBdURtd3BPaStxbHp4OUNjZGhkc3dpckRwZFNVSW9ROEhlYkFTeGZOSTNkRXBjZFpXRUFSM0kzNGZLcFIKKzl5bzhJUGt1MXJsYjVDdE12RHppRkVNcXNXUzdkdW5zZFRnS0pIK2g5NWI0dzl0N3lGYWlzcjNVOW5jSnk1L3QKK0JTanNTUW9ZNStiaVdQMllTRnZjWlF0WlVMcENPTEZMTS9Ydy9LNkFBcjJpU2pXbGw4bTRnd3pMNnF0UzM3aXQKK0N0TEZDM2NCNjVORmE4SXFKdlovd1hvVDVtMEhPeHFhRk0wMkQycEZzbURuaGZ2bnhLOXBQTHFIc2F1dGszVkoKK2t5UnZSbVJFWExJcjg1dm1DNzJPQjBMMlZseVFvSXpLUTZXSGxEM0lzM1FhbjBFbVRyMnJkaWovckZWelpleG8KK1F1aDFmYi8zWjdINnZGUzZWR0JUZlYxZHFVcWFQOVAycS9qL0pRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIGE3NTU5OGI4MDI2ZmE1NDRhZmZjYmM0YjkxMDZjMTJmOTZkM2YwYjgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQjRLLzFtZDJ3STRoUUFBQUFBQUhqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRrMU0xb1hEVEk1TVRJeE9URTRORGsxTTFvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFpYbEpaQzFoTnpVMU9UaGlPREF5Tm1aaE5UUTBZV1ptWTJKak5HSTVNVEEyWXpFeVpqazJaRE5tCitNR0k0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFweEh5dmtBUXo5aldXd0pRCitxYi80RTVZRVRYUHd1K1RqM0hxL1JZdzVzb1ZDMDRURG9sS01HUFp5eEgyQU1za0FWeTE0cllyRVNMQXhTVE9wCisrSUg5b1VtTWsrL2JmMFlVUlQ3RjJwYldEaUNxOHJleUhrWitWVUdZL2VCekMzUVJMVEVTSlUxcmhwQlJaM0VwCitCU0NyUEtyYXlMTVB5OGgvOGpGK0h5MU03ZUpQaEl0U011UWlFWUZSbFNyZEJuRXA1akIyMU9PcWk4b0VUV1U4Cis5SVlsZUNQMDFFTmw1RWlRWVlONUtScUd2a25IRmFIVzhJTkNzbW8reVdGbUJtMUpRTTNCdDJXSXo5RTlTVmV4CitBd1FlazhIaEl4M05zaUc3UEhRVU1XaXZSL3NQaGFwbHdBWnVLWjE4czN1ZHF5ZTQzZlcvZVMwRkJ5c2UyRDByCit5SVlOQ1FJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVqSmYxeEVaYWR4dGhXQ0h5TmFEbG1OZW8xNmN3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQmxOckZnCitFbDI1aGhMQ21rc2FONExOTm5qeXRHRmJoNW1mNW0xYmM4bkhvVDlQaG5FK3BXZjN6VWl3cTNOb0ttb2xCUGMyCitVRWhkc3dFNm9ZMjEzajgwNGdhL296aW93MXQ1dTNoMURNVlVydnJKaVpUdUxxZ2g0bVBGT1VpK1U3cmo2KzRHCitMbk1EM0RXbTZEVjZobVhXd0tDQmVqdkZySktQQktsUXBsdGNZbnFDZW96U3NVYmZUZzdmZHpEMEU1RVFLdzg5CisyWW1qMU93cVRtN29jNGdHZThxQ2JkMmFIN2RGYmNldlBSTjh0LzMvaUV5Zm01TEtDbk5iZ3lvVW9KaTg0SWJSCitVRlJNR1o4N0h1OEdISWU0VVFqMS8wMFpwejM4WlFLVUxwWU43bTdMVEJ3UTNibWowNjlOQ2ZTandBNEgzUU5OCitKZmE4aHg3c3ZrWVhxc3J5enBlUEVRdHRoZFhMSzVWSkJ4eXJwSGp4TG1JdzNpY3NhNVA4TDlDazkvVEwxUVp5CitsK1BNd1owUkdwRFZuS3J6cnZIc3ZYZzVUK2xhM2pwS2I3NUkzcGhTcEhLZnhXd3pzWTBRc0wvTFdqdGcxTW56CityT05naHh4VzlDVnVBcVF4Y0xoeG93SnhOS0VmRkhOMEtpOVc0UHlTdGE2cThMVFJyM0x1ZDJZSlhrcFVWSG9CCitSNHlYc2ZYMmhTSGdxbkM4bzdseURLV2FRWWFWSVdGaC9wU2ROMXdPUUU4dVNMZTcxUFZMdEtOa2YrVkE3UW9iCitRTFFNa1hSV1VDQ1ZncjRjOCt3QlYyVnh1TDJxTS8zNk1RQnFWeENhWTNMcFBXbUxtSmNEUk1mYm5kaUpJZ3VKCis5RGlHZUJ1VzdNUHB3VG9kaTgxekNwTGUvSHRLeUxlV25wYjJpQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElGWCBLZXlJZCBiYmNmN2NjMTg0MjEzMTY2ZGFiNWJlNTNhODcwMTRkZGQzNDhkOGNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUNFRktqSkdrRnNtYVFBQUFBQUFJVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5UQXhNRm9YRFRJNU1USXhPVEU0TlRBeE1Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxaWGxKWkMxaVltTm1OMk5qTVRnME1qRXpNVFkyWkdGaU5XSmxOVE5oT0Rjd01UUmtaR1F6TkRoaworT0dOak1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBaUxDUFh2QU00ZDFDMjZjbAorQ1BScXlhL1dCRElRZDJsQ3R6S0hnRENuM29EUksrR0ZBaURETExZcElCb0RrSjIwYkpPVkhGczhBOWxudCs5Wgora2RqdUpjUG12ZHYyV2pkWmZCaUY3SEJoL1o4T3JHb280eE9mQXZ1ZFVEdExuOWRsYzJWM0pzOTVVaVBBRjBJdQorSmZqdXEyVjZ2UzYrYUV5NVJDdDkvY1ZpN3AvL0RPbUQ1NDQrOHI2ckNEQmhUOUdhVnoxSVQwN1RSWHN5VEFIbQorOTNtMWdqVzA3cmlGUEtFZ3ZYNE90Y1YwS2F4Qzd6OUFZcnE4SFZJYmxPa0xJWVlZc096ZURPR3RnczJnWHU1MgorQ1lGZ3dVb25Mb0JqcnZSdnRTSVZ3WjNnekhVRFd1K2FPeVZ4ZTBleTlEdHZkS2FqZUdXaFlYd2VGS011dmhOcgorbmUvRE1RSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVcVFJQVdoTzZkN083RVdEbXZVdzhaWFFjendJd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJLbURDQQorT0pMN0NoOHRFK2xJQXJlSDBDNEwyZ0xQQWpSV3p5TWIvZG5menhBSi9rMlF2QmZpZnN6cGZsN0Z5RVROOHcxTAorT3NJRlhrWUpiVHhoSVNXREo0L3gwQWg4UGJYZFNPSXhCVEllbC9ReDY2bUpPaGZSZVhOc1Q5M1prTUplVGpBVworc3drbGRpU3c3Slhxc1JvaDZWTUdodnZXMWIvOHdDK2hxZmNQajQwS0EvTFFIN3pSdEhpeXN0VTFtYXRBbDZMSworRDdhVjY5dzRyYXp0MHZFQ0pPeEQwQVpEejFNNnRRTGlNTzh2Sk1pVWpTVXplcDRwUmZIQmlaSEpURTF6cENCQgorWExRN3Rvemx5dFU0VU5iNFFQVkJ0Q3BFNDZQNlpKcmR1UzFscmJ3cVd1QTlpUCtJRTQ5VURCdVd4dGtsKzU1VworMllQU2pkcWpxWjhHVUlvd0Y2MngwdE00WTl4TEpxMnZLNWV1L1d2NXlKbXVWQWV6azBWaXJFY1dvN3RmaDBqWAorcDhQSTgvd0dvWWVOL1dxRzJrZ2h1QVlFak5OL05jeHhqalBrL0lTOW9oR1pIL2F6WnN4NUJML29LZjhhY1JEdgorZS9TRVBSSXdzanc5OTRSc2h2bGRBb3AwcFZUQnhsWnhZZzFZZkpEajZWejFOQUxnMmNuZS9wZGRVU0tOaVNxQQoraHZiOHljbUI1SWtpNzA2dTBIdzhBWXYzVHl3MG1RVXFodU5CZ2dDOVF0TWlMYndRNDhxb2dUSUZYbSt6eGZGeQorbGNjaDZ5Tm5Lcy9jOGV6cTQ1V2I0NDd4N1FMTnVwWHhXckxGZklmVGFVSUlXbWFFRkdGMk9mbFc3ZWMzUE1IKworNnU2VGRxNHB3N2pVclZBLzJ1OGRQNE9qM2YzQ0hhR3JubHVxN0E9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJRlggS2V5SWQgYzZjYjJhNGRiNzI5NGJlOTExNzI0ZjUwNDEzMTBiNGM0MmY4OWJiMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFDZUFFSUhsdFNLbVZRQUFBQUFBSnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEEwTkZvWERUSTVNVEl4T1RFNE5UQTBORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMWlhsSlpDMWpObU5pTW1FMFpHSTNNamswWW1VNU1URTNNalJtTlRBME1UTXhNR0kwWXpReVpqZzUKK1ltSXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXd6QXJ3TzdremlYbXNXZmkKK2U2VnJmaFdZbTNZaXpLV21IeWIxWEx4UEZScHUvbXdnSW5lcmRJZjcvcDY5Ym1qbmhmYm1DaDB4UXdjTCtzVTAKK2tRK3NwSnVUU05PazNnVXdxdE5Da050cjI1NDdNZlYrRENQeGNFN0Q2T1g4WGt0MHBiNTNLU1JCWU1Ta2wveWUKK0Izb1Z2WVY3WkN5ZDdDWVpBUnc4QVRMS21CVURRWnR0K3dBZVpUN1lnc3dKQUxFczJqME1OUXhyQURQQnlIdXAKK3RHS1lrS08yOUV5NGdqd2ZBdzFETmRLNFRUQzFDL0VhWndQeHlhSG5TR1F6K0ZXTGJ5QXVxVDRPQTd2eFZSVVMKKzNvZDh1VVJuUWJzU1AwSjM4T0dGcGc3alJwYk4wZFo2OE9vc1pCekk5VFdvL25iV2ZmM2hSakJ4QlZCdURMK3cKKzhWUVhrd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVTVGZXJVaSt5ZXNHL05RMEhZRWVQSnFWUmU1Y3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCSnRRNXYKK3JjSjVOVmRMSVFrdG5zS2t3bDhpSUg2VDRaZDdIN0sxdmhWYWRwcVNQVkxZOGVVbHpWZnNoTVlidjgwdnI0YWgKK0IzcitYYmRaZkkyZTZOQXlYZUQzNWNOeHhlYnNOdzlBWlhLSGszeTMyUEMzeC9hV3I1OEt5K1ZET2FUbzVkQngKK3o0MUoyK2xia243azdhS2o2dEQ0OElKUWNQbC93OXU5L1c1MWtTNGVSNXNiY1FwS0ovK0ZadDBtYk9QdDdIL1MKK0dNUTJJaDFTSElqVnJjVStRMWM5cE9rNjI1VWZTZGZQNVBwRlMxZHVWMHBZQ3JSUHlLd0RuWjVEdlUzVWdEc2QKK05qNThNN2JwOXhqdjNWOTZVOW9ZUWtGeklwUnllTFR1bmdqVUZNMzZzbDRXYUJOQmFQWTRBVGxLOHNUa1FxMHQKK1hLYnRLaUR4NmdrbmlqdXZOanRhSzMyVFQyMWdlZXJmam1sbTJoclRJTGVhYUI3bXRDY0x2UXBOWURLRGxsOWsKK2xOVUZtcXBYQlVVWkpMZlFhU0Zad2JoRHZxRXB6RHo3dUJuUnZydnpJUnU1UTFWb1QraXhuVllzOUdPQ3FQVmQKK0ZRWXBVTTgxcHFrTXU3Q3BOUGp3bVNRQS9seDN4MWErS3JuKzJadUpjSWFvWm9raVVaQ3JPWk9DN0Qza2tyaHQKKzNDL3hTT21nZ2pTQ3F4diswdUhBb3MwcTdtUE1aTUdEQTBsWXczemZlUXJObWtYTGJyemVaL3QrMHhmbytGM1gKK29ZN01WWUxuY3EyNXVaMGhxci8xQzVYdE13SjBIbnByOHdkZmZCODJualBYcTNhWldrVFh1bzgvVGlOS0tMTjcKK044ODhuN0hyWUNITzJKWDEybG9oakQzT2tXNi8za1RYTjNyUy9BPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSUZYIEtleUlkIGU4MjY2OWNkOWYyMDk4MjcwMjk3NDk5ZWFlYjhkZmE3ZTY4YjM0MjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQzNjQTNZd3lEcjBBZ0FBQUFBQUxUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRFeE9Wb1hEVEk1TVRJeE9URTROVEV4T1Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFpYbEpaQzFsT0RJMk5qbGpaRGxtTWpBNU9ESTNNREk1TnpRNU9XVmhaV0k0WkdaaE4yVTJPR0l6CitOREl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxTkRxa3RTeTNLYXdZNjFuCitNMVQvY2MyUHdjRzI3OVo2dzVZdHRkMUpjdkkrd2d6ZmdCVXR3ZjBibXBCWlhBNWhLbmJ4ZTc4bFRBcWZ0TEdvCit5dDdaTVZwdm5oNTFGTUtuOEFkUW8ybkdYTG10S0ZiWURpSUJYbktISjdrWTBzQTE2M214bHBoWkpjamhGOTRPCitOcW1vTWk2SDd5Y2ZzcEZEbjVtOTRmUy9YWnpHWTE4TDcvLzlyTjg1QjZtMjFaSTNwczVobDYxd1psdzh0R0Z4CituS2pQWE9VUDAxRWV6NUpPWEhrcjdYbllGYmlqNkJ5bDZOVGZHRVppbkd4MllrOElyV0d4WE5rbUt0bHB5TFVoCitkdE1KcmtqcC9UVjlPZFBjSHBuRjJjSTg1Qk4xZXJGQ3I3WU1wQUxVQkVRWjZYRnAvRHQ3eDBYbWd2RllxZmovCis1a1lBS3dJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVoVnlGcVArOUppcXlQcnR0d004MEtRbmZ4Vkl3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQVFvZTNhCitFdUd3YVRxTkdadkNMNFhONnpNN1RmdkY3WG5oWTBxdFRCYmlyNkJONE04TnJ5bk0rbkZGSjgvbXV2VHIwenNBCitaZisxVWFCYVhEa2ZFVEU1dlhndEFKcjhtSWtHK1VnSHFLbGZyc29odTlYTHNQRlZFSVNuNE1PRGptSmtkQ0diCitSVi9XTGJVYWlycHBQdHBadE8zYmh4OCt1Z1BXVllCaDk2VnFqZG9MSCtNdXBLVXA4Rzd0SWlQRW03bHkybnNDCis4WnlYNHJvZnc3OE1zcENNWU4weWIwWWtCQ3MyMmtITHBEcUZNclIxbVZUSytacTMvbk5uVkljcG8rZzdiVHJ2CitFSDl3OXk0Ymh4SytvVkhzTGF0S3FJSEhQNlZMSEJqU0VxYkFST3BNM1hZWFRXbld4YkNsZFpOMzkrNkl6bnAvCisxMjlkRkV5T01oUmtKQVpZL2hVeGZObGNtMXQzTFZQak02MmROSlJHZ1ZNemE2Skh6WjZhS2JvRWt3Q0xvaG45CitiV3JPUDNTMXNXVWZPN0tFb0RVOXJiUkZUaTVmVXUyZDE2eVhocTlGbU5GVFZlQnJ1V2VKN3R3czl2N2duR2xxCitDaGRWUWI0b1FCbEkwL3NWV0s1YUdjcG5qcTZnN3BRNXNxU2xxTy9NVmVHTXhzTDZ5R1Y3dzR3c2hqRUdyRHN0CitlQS9KVGlMMUl1Z2Vva0FZY3hiUDBwTjUzNXV5NGduTGF0VXBjSXB3SWprUWhHT2JmcWZpc2tYTTZuQ0orRGdyCittTWErT2lVc0Y2T0wzUVNZRjl2bVl0dHBEVWJjQlZqbVVPSURVT0puMnpEQjFzRjJLM1ZEZ0l3dlR5Q053OXBwCitqMmRCVnc1ZnNOK1lLdDBNQ2VBU3EybHpKbHpwY3BoTko4VWl5UT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJDNkJEMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBWENoczAxTmlwZ1Awd0FBQUFBQmNEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01Ea3dOakU1TVRRek9Wb1hEVEk1TVRJek1URTVNVFF6T1Zvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0TVRSQ09FVTNNVE0zUmtFNU9UVXlOa00wTnpFM1JFWkJPRGd4UWpJME9UTTJRa0pECitOa0pFTURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTWdFZU13bnFNUlhzNHhKCis3TmJSWUdKckplQzJJblM2S1oybzBXNnQ3VmVmcmFZVzMrVEJWTld0ZWh5K2t2bThlM0p0KzMwaGxQKzFwNUlnCitsNHFja3ZoY3BXaDVDUGMrOTNzdGw0T2dvV3NFUm1mVHd1dWF1UlBoVlVnMERhZ1ZhK1FaMzRpUVlSYVZsSUJGCitQVDhLaGxpUmFoZVJIa05xa0o0bFVhZ1ROZkNaYXRPd3UyZkJFUWtnYnFTdmZtYlJJMzhuakxlUFk0UHRUZzUvCithWkNxOUZyM0p6SU00S05RZ3JjTzlrU0E2QVdiUStPaXl2Q09VQ05UbUpHNEhSQmJVOXh3aWtqcHdBSXAydWE2CityN1R1aUJYSkJZay9IVnA4U0NreWErQ3UvWmR2bXRjNVNSdVIrVllHVmhOZlNqc1ZKNjdVMmJoL2Z5OFhCQ2hCCitsbDY0Z1hrQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR3UxMVo4dXVDaTBCUDQ5UlB4Y1JEbWorOG1JTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFHZlo0CituZWNleGdXaFZydkFiV1ExQ2k0dFdwWlBqWk1HcnRlaGQrZFdqeE9aNTV2SjhKdWlBaGhRVm9Ybnp6ZkpvM0U5CitIdkd5YXNkT3p5KzR5Rzh2dmxvclYvMjB5cTJURzBIemdIaW1OMzJRVTIxdjVTdXMyMGNyV1R1c3JXWUxIQUh0CitxOFh2MzZoUFIxY1VZdStEZjYveUhyMVRXL2s4b1FxRzBYTUFuZlNkdSsvalJsRlJLeEtxNzRFR05zZjJlRm9uCitTR2J2OXRzYTlmVURBaks5RHlxWUlSZXdzRUVDODFvam1xTE9WMmZLMzIyWFRVcDF0ZEF0RlpoVmp5eVVTb2VZCisrWkJ6M3VOK3V2ajB2a095ZkZJR084UE9jcnpzN3pjSWhWd0tzYmdneE5aRXhPTkNyRDFldXBDRkRJNkZibEc4Ciszd0dIdmZUaGREVlZ6czh3dHV4RWR6TmIvZHVTY0tlU3d1TE5uVWMrR0VGb09DZk5wVGx4dDlWZS94NTZ6dXNlCitaK2kxRm5qUHc2d2tzbTNXMkJlaWZseXdHb2hYLzA1Rmo5Q1haZmpHNm5mV2d2NHRSWFNCUVRjbDlVTDJwL2JoCitRalNHVTJLdy8yeEZOekJXVjJSYlNoUERTcTRRR1dvREljb1NRQkdQOXFkNTZhTlMwb1RvWm4rS00xZ2FlZVpzCitZVTRyMEQ5bVRnZW5vZUUvY1pZVGpCRERxMXNML1FzTkRJWEg4VkhnWEV5NVg4TGU3U0hnYUlybXIvZWJZVERzCitadWIyUjdjRVZwVG5IbVo2a1p3QU9IY1BGREg1WitsWm5mR3oyN0VPR1lOeUlXMXZkZVQ0dG5OWVdJN2JBRWRxCis2SHpHUXRWTTdrR1luSTFNYjdxTHRmdlpXZTZ4RW1aUi9QM1VUNEU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgMTRCOEU3MTM3RkE5OTUyNkM0NzE3REZBODgxQjI0OTM2QkJDNkJEMCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW5JRkMzZDRneTBRTWdBQUFBQUNjakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXdNbG9YRFRJMU1ETXlNVEl3TXpBd01sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdE1UUkNPRVUzTVRNM1JrRTVPVFV5TmtNME56RTNSRVpCT0RneFFqSTBPVE0yUWtKRAorTmtKRU1EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUxKUWYwRERKVmlGdnAvSAorbXlNekk4MDB2V1hCWU5pWnNJQ2xjcGRGMUZDcHFlbXJ4dTJyNjg2eE81WGpGcTk3a3F4dS9iMWdyWkZ1aENEcgorTzhjMDlGSjE3VHdyTStyaTFaL01yVzE5bFgvWVhReEVsQ3RnR2JjeEVOc0xjbmdIWVdrMlNRL1NlZDJPcWdscQordE1taTQwM1EzV0Evcm9uanROY29zTi84RVJyZ2xDTjZZK3dYTXRxSFZiVFY5QUpkeEVod0c3MDRhbmJ6emdBTAorM1p5OXMrVWU1dThQSVhrWkM2NndCRmJzalN2VDQrVWdzaW0xNmRIbUdXOWNhSVVYOHdWamxib3AwdzY0V1l3egorUmphR3pVTnRsL0czUTZ2Mi84OTRoZ0s4b0N2YmtzN3FoVzhsZW5GcllNNEw4R3hsMkZOMHVzS0lCT3N4eXJMYQorN1h6c2dlVWtERG8xSmN6UXdVNVN0ZW1uK2E5QzJkSlJKeDdpMWw1RndDU0hxYytPL044MHREZzUxYlFndE1JZworNmNvT1NKeTVHMTBOdmtiNmNpbzNsYnZFc0lIQ0lQeEZmZzBSUFc2WisxZ3dlUWhQMWZ6YnhNalZEbEd1aHZ0bQorbm9aTzBwWlJpeVlqeWdGb2YxZ1B5eWFxWmtDa0NtblFqK2Z6d3hldi9QcXpaeDlnRHljVmJIeDVZaWJUc3BidgorTWh2R3hlNXJTbFdSakJLemZ2dkpkazdTbFNoU1hvaWhDQXBEa0didFhtcTlMU3YyaTdFMzByVDZJb1AralhEYQorR21hQy9LLy9CSkY0bk9uRDZsNzBEdG5IOElieHY4eUhlcTFsakp1MWtJUDBSWWtEVGtQY3diaHBISU9KMGJOLworQ2gwRGNLeU5JS1lFZGdkQjMzR2NaUlhWdHdpeEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRUFFLcStaUUk1S1p1Uworejk5eW1mUXo4dC9heXpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRUNmNG0yOHF3anNYY2hEaXFiTXhFS290R0FVa0hpVGtEaFUzZlhJcDMxNQorRFhnZnpVdVR3Sk5aa0d5ZSthVUFDVEFVM2t0RUdxdllRbjM3RFlXRVRpRmtXbHJFL0t2MWZxN29jMzEzb2E3eQordkNLZE1zdHZ3bGRnZzdabm8xTVVjN1J4NFJvcHNacVFJR1ZMaGVVbUtxVVg0R2pDZ0Q1ZXBQc1ByTzRqN2xxSQorTWxad3NYSzVRckZIeEhnbDViaVh1dU9NRWNzSWVSeWM0WXNiMlBXaTh1OXpaZnJFZDNGVE1PNWFxOE94YzNQdQorWklxa3hMNEJEY2U0eWFqTmtrMk5CV25wMjNZMldldkY5azVkZGM1TGpVWFpsbTdtYTkvV1c3RzU2Q285RENvaworMmZCdzNHSS9WdzVuMFphVFlDRTRTVGpKZzUxQ21mKzYzUEw3U1poVHQxYkdQNFQ4NnNqQnZpYVhra3B6cmtDUgorREZaaTNGZ3N4NFl0UytPcVBlajY2Uk00MVQ3N2d2ZWQ3Qk02R0hCbE1qc0s4L0hlY01qNmt3MDh5WkpwcTZRdworY3VTYmY5WlRHSDVVTXhCaHJQaTAzL040NkwyNVFja3EvRkhpb3ZLL1RLK1F4bUtCd3ZPMElpRi9xOFV2Wm5HdQorcWM4emd0YUpJOEF4MHJtckc2NUU5d1hVb0ppSE52a3d0VDRjOFVUVlRLbWp0Z2JWN2tRb1Q1WmtjNnJjL1hoSgoreEJXelZacEc0TFNxRUUvY3BENE5zZTFoaktFOHF3MTh6dVAvS3ZEWFQxcHFjUUJCdHNqdDdrN20wTk1MYTVnaworRW1RcWdRT0xlSDVidVR2MDRRTzlPQUNsdXd6clE0TEtOR2JsTndmeVNkZ2x2cG9XbEhMZm1mZ3Fhb3QzUTYxVworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtFWUlEIDJDRkNGNDNCMTZDOEJGQzc4MjQ5Q0M5NzFFRTU3MzI0RDYzOUYwNzkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVVVY2N3VEU4L1UybGdBQUFBQUJSVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFl5TVRJd01EUTBNMW9YRFRJNU1USXpNVEl3TURRME0xb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdE1rTkdRMFkwTTBJeE5rTTRRa1pETnpneU5EbERRemszTVVWRk5UY3pNalJFTmpNNQorUmpBM09UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUx2R0ZMK3o3MTJ1d2NVcQorUEJ4SDJOWmQ3SERyamVLWHV1WHB4ZlQ0Yk1hemRaV240UFYwOTF3Q1daSHc5UTVGcEgwRjM0S3dqRitibW9RZAorcXpsWi9LMlhMbkZZWisrUHBWY3NqVXZNa3FlRGlHSVNxNmJtUTE1MW9LM2wzK1BPbEZBd3pKZ0VOTjl0MFRrdgorWmlVK212OWhWZEcyTTBtQlZ0MERxQTg1UkJaZnYzWUNDQ3FrSCtKMjJxN3c3VmRWb3hIMGIwc3VPU0VkYWxPWQorcmlySzQwZkZTTmhMZWJBR0IzcGhJMnF6OUlNNm43a3h1SlVULy9rNnBjbVlxaGcyVW1EWXYwMXlHam1zMTNFNworRks1RlFRT1UvY3FmeE44UWFMNjdmV29xbzVRVVV6Q2J1bXBUMGJGUmFSd2FPSmdXVlIwaGtKdkZ3REJjTU1vcQorN3dtRUlWVUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkpzL2YwckNhRWU1M0ovWUU2OWtRK0pxR3hxcE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBbFlXQgorYVV2blpSMFRkOVBveklMRkJXWVROTkM1YUdNejZDQjlyQU1PWkN4S053c0hydkk5dXA3bVF5dUdhS2VrVEJKdgorN21XWTEzTXRYMVFON3dua09nOWRNall6QVE4a011b1FWRjFNalBDbGMvaUc5N1pUNHdZSjlnTlZ4VFhmUVlIYworZjhYSjlHenlhMWRBQWFJUWRqc2N2dVd6Q0RxTWJxQUtzVkNMZHB3V2NzSXh6cWRsa0tpZmtMdzVQTWxlUWZaUQorVHJldmhjQWJmeUlFN2JmTExUcVZKT3hwZkc3bVdZcGIxNDRxQktoTjdLakFZK1BSRTdCa215ZjZWaFFpYzltMQorVlY2MllHQjAwb01ZN3VxazZBQURFK0pmK2RGYXBVY29Wb2g1UEwvRkdhQlUrSHFSVE94QmtFbEVGcEJsTTNCaworeEM2WDVHZWtRNHd5MlQ2dUtSWnoyTUJIVkl2Ukg2VHFlNDVESUErK0lrcEhtandjUVFFajZPS0QrK0FYSE1GegoreFFPYUFuVlZiNTBEazBFcDg0WEwzKzZPTENVU1d5ODZSaGNwZnNIOTFSYUllSWZRdGExRktlOXkrZDZPYkc3TQorbXVvRVFpcGV1YWlUa3hPYWpOK0VHTWtRSUJOKzd5R2R6akZ0WHJXWklTQjZBQXJLVzczS3Q3dXNnbklER045VAorUFdoK2RJY3E1bk1Ec3hYZlphbjRXMEJmc20rdGNMUVdFbDZxYTY2NXhWTlJkc016Qys5cEhCeCtqTlo4THhnKworNWgxOW9JUnZhZTA5VUt3NXFIN2JQY0V5TElqaFcwOTY4cEFuUlVoREtkeUVRdWtLUEhSTURUbEhOUTdRYVpHVQordlZQTElMNWt0N1p0S1N6NVQ0RjFudnRjMFZMb29ZcGF3ZlErdk1BPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtFWUlEIDJDRkNGNDNCMTZDOEJGQzc4MjQ5Q0M5NzFFRTU3MzI0RDYzOUYwNzkgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFrK2pTdGhESUdHaVZnQUFBQUFDVHpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt6TWxvWERUSTFNRE15TVRJd01qa3pNbG93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRNa05HUTBZME0wSXhOa000UWtaRE56Z3lORGxEUXprM01VVkZOVGN6TWpSRU5qTTUKK1JqQTNPVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNOERoSjB2OTN1N2psZGwKK3RtU3VFMWVOeXAwZW00TXhLUnN0YnN1M25JdXJib29YYnRpVjVkSzVhaDkvWkJaZkx6YmllcCtMaThHcXowNTcKKzU3NzRJcGczalRBekYvNnRMeHA3Ui9oQkNCQnY5TkZMNE9Wc25PdjVTZ0VkWXEveU1oMUZIcHBua1RXUXJuZTgKK2RURE1tR2NyNzNUNDc3SDZmbGtZeEtMaHU5YWlmQXY4cnlaWDF0VHJNbWhSdUZLZ1FOUHN0TG1ZQ2U4c204OVMKKytZcFNYRGRkbUVwU3JqczgxQUlzSHovR21ESEhobmx1RzY0Z1JpS3FiOXpINUEya1FzT3ppOE9LVG1VTkswVHEKK0JJZUptb1p0Nm5Ebnp3REt4SEQxbE9Jb3VrQVdUYk8zSW9tTGp2YUlyWng3aUhGUy9wc29jdURMZEZKVERyU3QKKzRIRkFZb09lNkJ6b3EyQW44d3Q2Rit3S1dxWjQ5Zm4rTDl3T3ZhSURCYnVCUlNjdUdSRlBpc1NsT1o2SVJRWUkKK2c3ZUM4Y3dkcU9oWTltekVGSlZpNEhCcUdIRXU3TUhCanJ0MlBDUkRDZmp2THJjaGl1UEhJMVBmMHhGK25DSHYKK3ZpZHdrbEtPZytXRUlxOGJsZWozMTlVWE4ybGVrZzQ2OU5naTJVNmt4a2dremo4NTFlOFpnd0xMMmt5M3hGZWgKKzExK2swd1dhVFRlL3l0WFNnSEtBZDJoZ21QNWRrUXkybGhiUkNSMUkzZ2NJOEI3ekxkQmtBMVFOZDZPRVorYmMKK0VBcDdVSDE2UlpGYkgrRW9CWENqbVREQTVtRzk2U2lNVVJMc3NhZDJuVGFuZ1ppeGl6ZVlWWmhIcjJodEFXcVkKK3I0dzBuYnMzYjFyRlVMc2VhM00xaDdBWWxWQTlBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVHZjWmNoUDVES0dvS3MKK0RMWjFkZUorUEh5a0N6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUIrMDRuYUs4eHVjZ0RhNFoxQnY4cGp5QUJQYXNZZGozZU03anVUYkpCTE4KK1E0TjJNYUVTUW0wZVpwNUxINkxBYkRQc2VYTytkZGFEcmRqWmhWZWh0S3lOWUtzcGNLZzNBQkUzRFdoYTJ5WXQKK2VqbWpiWkVDTW9yeWRqNHl2THZtNXprdVRZc3FXbnp1UW9Zc1ZQSU9wbDBVWFdzWHltWjU4NERYMHFpTEdSYVEKK3VDTlg4VEZLTjM4UHE4bldtT3dyRTUzcmlyTEdSVmJwQytqNFhwTmNLd3Rwa2psaWkycmJ6T2lLS29tUkxibTcKK05vVk53aDJHdWVIZ1VRSGJXZkFBS1JxczF3YUV4dHc5dkhmbi9NbnJ3RUVORHZBTUlHM0lvVnBDYlh2YWg5WXkKKzV0T2JUY0txKzZEQ056b3NSaGdJRFBqcnBCUk1SUnQvUU13dDkvTmpMVGZVZlN4a1oyTmtoeUJZZVRvSWVCTUkKKzloY00veGdNWG9aSEhFWVE5ZUNQVnBYWVQ0Q3JHTGVWVHE4QjJ0aFlMSGpyT0Z0cnVveUllYmxMdUFYWGk2QysKK09CWjNCWDlBVk81NHR5ZEhqRG92ZDNVRDVCS0tDSHdZWmhQTUFkeXYrd2s5dGYrUjgwdDUyeXpHZ2tNbTZpMkEKK250N0gvbEVtalRLY0ZmZVkxOVBJaVFoMFBNSnBhWHJsNERyMjBBUHBpTDd5VzF6WWQrTWFURVM4a1pyeW0weXEKK3V6VHZEV3lwNUNrRU95ZkRFd2c2VUVIb2tUeklkS0ZaWVB2b1Noekg2WXp0ZkJJbmRpN3BPYXhvK0FaOHlvc3UKK01Ob3BsNmtjQ3JDOXhIWEZsZXErMXVncHZSeE5NQnNQNDNweE1SZm5FV0hpcEsyVGNWc0wxMVo5S3VlNzBQd2IKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCAyRDNDRUNGRTY1OTQ4Mjk3MTlENjU1NkI2MDA1NDFFNzQ5RkM2MzVCCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFTNFpVWjZKTXJwOGJ3QUFBQUFCTGpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3T0ZvWERUSTVNVEl6TVRFNE1qUXdPRm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRNa1F6UTBWRFJrVTJOVGswT0RJNU56RTVSRFkxTlRaQ05qQXdOVFF4UlRjME9VWkQKK05qTTFRakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFObHF4NVUrbk5LOXlVbVYKK2czVmFZZm1BMDdDUXNlOXNTRzlObC8xVEhoSDFHSDZvMGphUFJlQlFuVWhJZlQwL29MRDhPUWtEZkRyUVJGZ3UKKzNhZkdVWDdNaXdEbnhlRE9LN1RtMUVEdldnWnNVR2xvaW1YTmJnYjlXMzBCV3phQUJPR3RxUFZ2bGgzM0lCQU8KK3FaRCt3REMydFIwaFhXVWJHZ25aREhmbUE1SFUvZVNBSDMzNDY3d205M2lmMERrVDM2V0NjdFlneXpFOVF1YnQKK0NMVzVRTStZV2dsVXBKeEh4SStuU3ZxOWlOdHErM1VBL1FmUmpkSWsxYklBU29ScDFyc2h0ZlJCWVRmb3c1UkEKK0xBNStaMmtKU24vRStxMmxpT1lEUmxUMHlEQzJIUFZvWGYyT0hYVzhyNGxiWGhRWE5sekgwMnZlZGJmKzBoc2oKK2tVclJpOGtDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZHTnJtZFV3R3Vad0hKR20rOGJHcTQyUDBPU3RNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQU5zVTgKK0huUWVaWXB6RmlnWGc2ZGIwM24zdldaQ0toQ2ZEQ29JYkZRK05FNmFmdnMvYWxMNmxTK0tMcE94R1ZXQVBKM3oKK0diTUJlS3RhbUZWY2dDUVhVNVNoam9nd1psTzMwc2ZJZUgybWJIMEFyRVhGOTVXOWV0WkFZTXA5U0ZtYks3NVoKKzZ5NlkyOWErVkJWRzFabzBNQjRJbHpFV0FBTDkvRVJFMTFEbngvTlprWnorbDczdXY2UEs4RDdJckxpYUUvYnEKK2NucXY5UmhmNmMxNHdXNmw3UDBZaEV6Sys1STFYbmR3aDFJbXdGNExjSXl3NlNSRUNhMzJGQS9UMWxITDI3Ly8KK09rVHNaQjkyTlZUcXdKMU00Z2hpd3BTaCtWdXFKWlJNT2JmQmxsb2M5L3dneG9IOEJGaXIwamJwWm1CbUhNbEgKK3Z4ck82L1Nwem1uempFcmUwWTdyWjdHL1RHOTZPSXpPZEVtWTlIQUpDMkh4YVZPYTNBL2ZxT2U4dUVnd3lSeEoKK3FvWlk3dlJxem1EbTZ6NzZySmlqbXUyT3NNQ1c1bUtoSWFVaCtWdnpleEhFM1AxV3N4dENWMFBKS0VLZ05aaXAKK25LWm9XS2RSWTBaSkpESVhVZTZ2bkplRHNaejRzaWpWSGJvZ2xDZkh0T0oyY3ZxZ1ZmRFJ0OVR4ZGlGV3NRckIKK0NmaUxEb2lCMTBxQ1VUaC84MHVET0tqWlN1TVdJckduNHN2SGdta1FWSnpFdVNEcGFrUVJZalY4RThrM0lNb2kKKzhGQmpjTEZ3TWw3bUZlQitZSHc0QzY5SjBGaGtjRGI1c2pjVmR4OS9zZk1HcnBSbkNxdUNJK3lTRFlyRS9VcUgKK01wMS9Qc3Q4RGgvWmVKTk9zWDQyQk42ZEJveTh6UEx0RVZXclRHYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCAzMEI4NkYwOTREQTZBQkQ1MjM3MTA0M0YyQkY3NjY4Qzc4M0YwRTY2Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFYRjByYkppTUNZRDFRQUFBQUFCY1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURrd05qRTVNVFEwTUZvWERUSTVNVEl6TVRFNU1UUTBNRm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRNekJDT0RaR01EazBSRUUyUVVKRU5USXpOekV3TkROR01rSkdOelkyT0VNM09ETkcKK01FVTJOakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLYURKNW9VT0ZkWWUwMUUKK28vVlR0WTNJcnduSHMxYWRwRVYyWDZjYXJ5M3VQYTNsanhwUEhMVS9tc2RBcm4wdW4rTFJSVHRGMTJpTkVZSkEKK2h0SHpNYzhvQ0krcmNRRzZNbU1tc1NuUTJxZ0M0Qk5rNVlMb016K1NNSDBEQVRxRVZtQ3lqa3ZybUJwOEpvcVQKK3gwTVdXSUdBVTJ4YzF4WTVEN1F0TDdlaWl6ZGc0S0dxNWpKWm5jbWR6SGU0ZTNsT3Q0aTcxa3Z1cmYyZFJFMFQKK2w0R1JDTHVFcngvUDgrOHM4WTlXNEM1T2JXYWRXSk1RTkpRUHNpZEIyTWtSaVYxMWExSG9ZNXVXZHpwdEtaVzkKK0JVc0lnbHFSUHV3bUtjZ2hNYTZmS1F1bXRDUEZPMTJ4d29CZHMrUnJWOU42TjBCK0hIYWpOZHNTRnVTbStUTmwKKzI1eUVoenNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZNeUtsNG1oOURsK3lFQkpLOEExTVRQbE52UGZNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWQ4ZlQKK0ZQajRjcTVVSXNIK0I1K3Q5QkVZZUhhNXFoSjlKOHdsNkdnN0R5WmdaamtONWhpTzRYSUJZRDhOZkxSeVRoRFcKK1RjNG1CTjhqRHJLd0Z3OHpsSUN6VTMyaGMzcERRVXVEVnI1YVVTR3JLZGk4TEtCSG55NTB0N1dRUUdYTXZtSlUKK05vc2hvZXhWK1laNExnMVZLemV4WitvbkhNdlI0R2ZYRGxzUnR1c0ltOEh6ZTNtcTEzd0czTkFHVXUzQ3FlUUwKKzZEMXEzNUwwSnQ1SXRlMjNtTG5remhIQTFEamRIZGk4THl4T0NHNXB6Y2xpSkRyejFDMktkTGthVnlQVTNaZjAKK0FJOWUvS1VmUkN6TkNlN2ZoMlVuU1ZsNzU5RVpYYVJTSGFWN3FSQjVQekdabFRTTDRKMVBGTy9TT3FmdkdEYTIKKzdNUEo4QitseVJBSkI0ZTZCeU5rMU9DY3lteUxDalJmOW8yOERITkpoTDVmb0QrS2hJWTQ3SzdwUUpwMGRSQjUKK05TSGR2N1kzaU5XaGl1WjJ4aDJ3L1UzTjlISUNFUVRkQm50VmZRN3Bud1RidmtyaFdjejhkYzZ2OUExelJKdFEKK1BjVVB5QjV5ZmZGcmc0MEx4MEZ0TlR6WkhTSHBQUHczUEZMTHVaenVwZDR2aDdzOThOU2JLaDRxZEMwTWhuNmEKK0E5WDJJVmZUOXM0dFphczBBZlQxTHRNcmZqVm5HZUE4NmNiWUdsUWhkNzh5SzdPR0x1S3FoQVpsWnBjQjJtNUkKK3lGeTE5SmZqV2Vza2JqL1VNRkxSM2JTZzFyWkVaRDZsSVJvRDBJTzludTlRUnBsWGFYK0ErOHNabU1ySkZvWkgKK3V6UW5jbUM2WWlJRFE5Rkd6R3VCVWxjcnpJMEc4TkYzSVo4bDZTbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCAzMEI4NkYwOTREQTZBQkQ1MjM3MTA0M0YyQkY3NjY4Qzc4M0YwRTY2IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbk15aVJoQ2dDZW1UZ0FBQUFBQ2N6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBd00xb1hEVEkxTURNeU1USXdNekF3TTFvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0TXpCQ09EWkdNRGswUkVFMlFVSkVOVEl6TnpFd05ETkdNa0pHTnpZMk9FTTNPRE5HCitNRVUyTmpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTm5XbHVQdlhKVHZZTXZ6CithYnpjMGFWVzhlRHNJMXFXSHBVdjBzb0JhUy8ra204d2ZNMlhBUHFOcTM5OUZ5MVJmb0lFZFFZT3o3OWtwZ2hkCitZWW9YUnJKRDdVWGFubU9DVmV2d3FaTk1JblJqVk83U3ZIc0ZETVpsM2haMmZ2NXpvNVJ0V0dzSnNPSUdMSG9ECis5QnZjeWNMMmN4d2d5SU41L0ovbEtsVlRWVG1qNmhaUnQrekZwY0I2cnY3R2dhUTJMODlrRFNCNHdadW00UHgwCitQa2J0NTBsQ1ZDNS9xRXNFUmpHVkMrc001REpmV3hyZC9HLzlFeWVSV2YrT1BIKzUxc0t4bEtjV1o4bHdhUi9XCitVa2lTRk5lWFk0S2pUeUl6UWszZUZhWEVaV1dMUlY3V0N1YjVRdlJxdEZmQ1U5MGoxTG1rcXJ3S3A4cVpyL0ozCitrWDZFL05XNjFuS29QSkdRbkdNWGpPSHIveHhDSnRiMU1Pc2hFRjAzaVlPcDFDMmM0Wit5WlNUdDRmdXR3amhICit4Mjc3Z0loZHZSTGRZZFQxZVBmUDJDK1hGUHQ0VTJwYjkvNTlFQzd4NWtJeUVsQVRScllTU1pYN3hkMFVDNWdqCithVHV6Y2FOTncyUnV6MmRDMkN1VzEvbzJNUEtISU9OTElrMXdTUldhWXdrQmVzVnhKYS9iWjBPNWdJUHFHUWFRCisxYnUzSmxGTHlNc2x3SmQzcjJzSXZ1R0YycFdGSjZ4eGRlSTZFcS9kYnltSVZzNUplWjg2Tzg4dDdkVWROWkFlCitkT2E1U3lqL0d2NmhFV3pNZ0RlNkJrbm5jS25HaTlDbSs4MTR1T1dQaHMrS1lpT1k2SCsvenl4MkFlTVN1elQyCitBNlZzTGR6Ti9tTUJxMzhBVHdmWkxwZkF3OEVyQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlFlcDdQcmJOWlUyM2w1Cit0NFBTU0toQ2hUVUxxakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFETTBTNWs1ZnphRmxNZ0djV1lkNElJQ0FYbnV1SjY5QkZoZ2hqTUw4bm5vCitjREZCVUpFYm90WnpiRms2clRMQ2dhV1Y5Vm80VmZpTERiT3NyRFNWREJnWDQ0eEI5bTVnT1BDOGFOcno1dDFHCitPT2F3SnJHbFdZRVl0K1FMbU5ONkVacWw2bXpJQ1Y0VjIyUEJJNGRBdVRzUmlmck1aWlFZVWt4OXdlZVFuRW0yCitFdnorVDluUmdvNitpNjMyTXd3VEVpSExNVUV2cDJ2aEZYdUM2UmdLbVhxeTc3VHBydWplWk45dGQwdlJqQ09KCitGbVBYSCt6R0lIbHB6QWo3VjR4YldBMSttalNCbmJ0VkhDTHR6WUhVK0ZVWWtvMkM1UVVDZUlQVlpSQlFONGtOCittYVRDVlJYZ2VOVFp4eWhOZWVITC90b1RSWTV4RVhzTmczdzVRUmlFdHZ6S1Y4bUp3RnBRSTBlTm5hZEpxaS9tCitGMWVDampRSG5uQ0tPN2puVXNsVmtLd3ExU0xkdDNKd0lTb0kxV0hJZkJMckNGS1VSaXV1cWR2NWpoWGJWN0ZkCitUeUNqdGVVZjFRcVMxUWdHQzJtMGR2OXpSZzVqRW9aUThiVjgyalFoa0xiOFgycVoxSW5BcEdCK3JRSjEydjNoCit5WC83bkVVdEVJNHFtOERXY21STllnUERQL0RVNGd6em5yRURaQzVHdG0xd2Q2MmVJTnRvVTJhRnJoME9HQnk5CitjQk5CNDBoQVpWdGNzK0tienVsbFIwL0Qrb0ZZaXpBaUNPS1E1RmZqVFpGTTRoRUE2bmNDa3IvMTdHaWVGS055CisrVzNkMUdUSUtWcXptOFd1djlHRGdHUHVtZUc4ZFA3blAzc1d3aVRCczNUa2x2Y2x0UGpaVmF5bEVqRDFsUkgvCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0Q0M3QgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBUXFNSkVOZmRhR2Fvd0FBQUFBQkNqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVek9Gb1hEVEk1TVRJek1URTRNalV6T0Zvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0TXpFM016UkVOa1k0UVVWQk9URXpRVEJCTXpFeE9EQkNOemcxUTBNd05qTXdPRGswCitRME0zUWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTFpZSEpSQjBvZWlGTDFXCitoNm11akI0eGQ3Y2w5dW5qV1dyVjY4WDdBL0N3dlJEanlkZSt1Wm84eTJnYzFMRitiUXQ3WnBFbDdOaW5NblV6Cis1ckZyUjBsaitOTjNxVWd2VnZjdWFKUDRiVWx6Y1JwbTQxTUx1dm90Y1VpOSszWC9UUHlTOFhibmdSQUJlMWZMCitKMUMwOHdPc05Od1FnY3dzTngxdjlWK2RadDF6b1pqS094Rkc3emNYdERMNVRBMUx6WForcG1wVUIwdnJlM2JHCitRdERQVmp6ZEVGSFQ3Qi83Z1V4Ym5Qb1d1Y2lrcTgwREFQbEN0bFpyTjBTRjFOemZqL3pvcFV3d1VRT2UzTlMrCitpOXI0eGkvU2hBbS9kWVBUUmNOL3Q4TFcvMzVBMkxIZkFYU2g1MkJHVmY5WXFLNE1jTTlKNWYxUEQxYmZVN2NkCitqZ0R0OTQwQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQVh6TDhkYWpCMXJDRm1MT1JFSGM3ZGwzWjhJTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFlVFM0CitTVU13M2MvMytUQ01GclNzYlJnSUxhbkZGZWxNaytROGNFN2dNWjJDWitiTDdQd09lb1pHU2ZCbFRFQkhmYWd6CitjVDI1MStKNGFweGI0SU5naUkxK21rOGdFSkFwdHJuWlpCZjFJMWhrNUhNRWs2QktxZEdzbUUxeERiTDdNSUpiCis0OUxqNFhqaFROa1QwZ2pnMUt6T29ycG5ZZjhYb1pYUGQ0b1IraUl1d3B5bjlYTnhoTXAzT1J5RVVYY05Kbmd4CitiVnhWK2Zkdlc2WWxTa3dPdStTRHVBL21lVkVhNHlTWXRvK3cvNFdyYVdzZytFL2p2dzBQSmh6cGllcStmUXMvCitqSzlSRGpNRlovRElMTnVEejdpYWYyUytUM0tGUTlPdDVhVWswMUVydVhpVnc0ZHdCUVc3YUw4MmpLM05KcW5KCitPWXdSbkMwN2hMS2VZSUh4SnB6ejdrYnh5RkwxUnJOT2d0TG9jdmU1RjdMQzFDeG1DL3pFYzFaMlFIelh4Q1gzCitSTndUT0llRDYvaktHbmZvcCsybTVyTGMwQXBrc3ZMWmlEUTFVYjNydUVydERINFM0eGNZcDRkU3diQXA4cmNNCitUN1FrVGh6K3VsYzNpK2lOZjdmTjB5S29KRkxuRnZ2REZuOEV5cFlqZzMzOTVZaVlrNHllZEZYS0lzTjdXVm5xCitRcG0zek9VY21EMkMzYm5VdWt4bTFEK2FydTBWMGpRN2ZWT3B2aUtUaURGd3RWa3hYcGJWVzgwQ2FYWTJPN2RuCitnVTlpY01vSXJ5TWVweExZbHdaKzN0SjhndjJGdStPYjl1NlN5dWNmanY4cDJoUGFJbnBFd0s5Mkh6UWFZd0lTCitGRURWemV5TXpwRDJjRWs3TU5NU1ViUk85eEpTU2tvNmdzbHhjVUU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgMzE3MzRENkY4QUVBOTEzQTBBMzExODBCNzg1Q0MwNjMwODk0Q0M3QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW5SdWR6YXQ1cUVsTlFBQUFBQUNkREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXdORm9YRFRJMU1ETXlNVEl3TXpBd05Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdE16RTNNelJFTmtZNFFVVkJPVEV6UVRCQk16RXhPREJDTnpnMVEwTXdOak13T0RrMAorUTBNM1FqQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUtQempKaHhSMVUxemFuNworNjlXdG9VcEN6V0YxM1kxakF3REdyK25uRHh4MTRPS2MyWGpVUmlwOEwwLy9oWjNhSjE5QjJpTmZ3b244MWNmaworQmhJSTZoK0NWWTNoVkFodnlzMnlHZE1yU1JhajJQbWMrZVRscEc0YW1EM1ZsZXFuNW1lYTFaVzE0Q21YNDZTUQorWlgxR3lyUjN6Y1RzTERyT3dhNVEyaXRnL3l2UFQ4ajlCdStHNTJGSk53V0lJT2tqWTEzYnNEeHNFMVpheFF1WQorcjhkMkpyRjV1MDMyRHI5THRzL2c4d2NWOW1LenJFSGhKV0xrbEVXYlNORlJzQjllRC9IV3cwaXYyV0p3TDJBWgorY1pGNlZMTG5KL1puNkN2SEhwemh2UW52VitXMFVlRnhodkVZdUNVZ0VIdGo2TGF3dURmZmJtNmI5NEhjM0k0cworOVlwZy9nZnBjaktwTDgrUFB6MlE5YkNrWWZXNmplaE01eEpmNmtZcTZucU16VjRJMFUyQkNqYnVkN1BZaTRBNAorSTlMSFgvREpXSWVIMnZzdUFleVdPMUljZDF5aTFiNmFwYVFESUZPMzcwS2NTWjczRjJwNnUwRnNONm9Nb21EWgoraTRpbC9wbVNvcG0yUjZyQnRuTStIUkFHK1YxSmowR2ZxL1ZrTGphNTJHd2VWQzBwbDlyb1pUNXVWdG1wZjk2QQorZStPTUVtOTB6WVRHS0FZZ2ZONHVwMWtFTmZwVURMYXZLa3NXVnRFalZXRmJKMUJaaTVia1pEV2ZyekRlYlNDWAorOThiZnJobUQvMGtaZG91UlVSR1NnOVhVWUVFWXJRR2NpRG53djNqUkFWQzErakNZSWU4SE5oaktkaVEwWmhFWgorNXhpeVRxQXFya0pmNTQ2RklqWVpZSWxmNzZvTEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJTOGx5OG9ZdGw4US9GdAorWm1lNzZvcE1saUgzeHpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQWlkNk5IUU9UZ1BBa3dBNXk3eDJuaDZyaFUzWFd1Y0Z4NytaZjJPMm9jaworL09CTkU2Z1g4OGRSeGhTbi95M1RDY280bC92bVVsMyt1akp2bC8vRzI3aExpWFhiRk1hUWRtRFh5ZzEwWktCUQordk4zMGYwcTJYWDUrZTZHdS9Ca3BZd2NBOWhySWdxNlJHZlZiWGh6MFdJcUdXS3hvZFQxNG1nNU1TS3pvQnlIMAorTkN4aW1LbWZpYmk3V2U1TkFYbVZXbmxYZVpuN1BaZ3V6TGlYWDFKV3FhancrV09tWUk4SUVuNml2RERrSlg2RAorbEVKQTNMN09oL0UzeXFSRDVLQVVxYTVndFgzZGFhczdHUFMxSEIxWXRBQ1M0dmVGc3dJSFdUeU1iSWtlK2VhZAorVUZZT2J0a05DMU9ua3dLamxocFl3OGYwYzNwbnFVYzQ4SE5UQWRCYnZEY3dVY29wc0E4U0VqU0pEdFNkd1JLSworK1RkbFdDaXhZTDB0bXdqOTR3M2sxY0d3bzRFZ1M3NUlGSDBYbHNTR2N4R1J6Z21Kc29VMzJZQ3hYcGpWQk5OVAorYjgyTE5SYSs0ekpYRktwZmJzaXRZTmhuTit5UDlBbXZrU2UwWnFzY2w3UER6TldzSGJWZk9Rb1prd3lkYXJCZworNVRQUzc0OVBqUFRET2ZRQlA3UXprYUVjUUl1c09lS3M3YUtVT3B1UEFNam1qWU8xZkYzM3AxcE1YT0F0OWFHLworMlBUYmxVb0wxWVB1OUtzTklobHptMm96dU1hbUlrZnV2czVxWGhhUm12OGtQTHVJMC84UkpaaFo1V0xYTndtNgorL2ZVTXMrbmVQL3U1UlBDMUwxVmhQQlZnTVE4bkVFZHVVWlFBLyt3RjZTb0dJMmI4NjVDSGx3M0J6V1NnZXcvRgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtFWUlEIDUxQzczQ0JDREZDOTkwQUE2Nzc0MTdDRDVGNzhCQTM3RDRBOEQ3MzEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVMvbnhVRWJDSFVFS0FBQUFBQUJMekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXdPVm9YRFRJNU1USXpNVEU0TWpRd09Wb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdE5URkROek5EUWtORVJrTTVPVEJCUVRZM056UXhOME5FTlVZM09FSkJNemRFTkVFNAorUkRjek1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQVBicCtKVjlxM05QakdmcQoreEJ4NXhYeFNnaG81bG01bXcwQkdpbFRSUkp2SXlyZHU3SVk2NndtZ0F1UUlYSE5DL05VNXpIU1Iwb2UyQ3RyZQorZERFRVhTbFpVM2xWWE12bWhLckdtZ00rUzc4cHdnS2J1UW0zRWJWZmxrNGVDa3RGSGZzTHl5T2ptMnRKRUczMQorWWJFVEVDSDFnUG5kcW9XMnRRbkYvdDVqYTc4UkxzS0pOVlpRK1ZlNFpISC9seUE3RDJWWnpTUyt5Y01PQUZzbworZFNSbkZBVWdrWCtob3NZMWtseE9uODJUWTJJbEJvV3R3Z2gxUS9iOWZYR2M0c0xkbGJvTnBScmZhaGlhRk1CYQordGd2bWVoOG9nK3luOEd0VVYwSHdMb3hPMzluUWd1VVBwNjBDNzI4WnZFRFZiUFQ3L2U3anVORkhnY3F5VW9WcAorWlNuS2NCRUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRlBDTWtpYTJVZC9PbFlMcUtITlNPR1BsV3plNE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBRk5TUQorakFmbWxRZkcreS9WR0JLSmFBdnNiRXRaVGd6T2RCZXVOR1ZITkFuTHNJdTNvbGZhV0tPanhNalA3ZnIxcjh3ZAorN0NHYUpuTGlGN0o4RFhnb3ZrbFRkUW5lRlVQektXTXFFM2N2RG5jZi9NMmZkemsvcEtNRGthb2pZbzA4YjhVVAorQkFVVHBObEZDOU9OcGhIemMxTlpiZnEzQXhOTHQxLzhOSHZURWgybXdxYzJLL0JwMGFxbVQ1bDc1SVpuVjJtYgorWG43cFFJUzA5RHM4eldDeXdrQTRJY3ZpVEt1UWN6WWJGVitaZEp6WkRxeVZOVlFMdFNodkhJYnAxMG0yRlE1dworOVJwYmF2cnp3ZW1Db2k1amsxVFlwY1I2RWZxY0RkNUFVUDVjWk0vRzJsT2F4NVVBNXZySys4Smx5WkVtK1pBYworUFE3aG5QckI1S0FjaXVLdkVqMUhoV2xERjVNbHNvUGF1VE5qTjBQWitubG84eGdpOWt1N1pzc1NEK1UrQ2lzbAorenpwNXNlWGI4dUNxK1hNZjFuTVVGMGk1R2VTSTJmYnB0NlJmaEFwVW9SZm51bXNTQnRaQmNmTU84K2Y1WDRlbworMlhCUHc5clFmajc2MmhiK0owUyt5VVhvc1ZHeU5UcHE1cmJtTVVHQTNxMU9vUXY4SFNWTlhXZ1FsU3VMUXMrNQordUc1c05jMnpSaUhiVWttZGJ5T0todTRQenY4YzR4WDBqaE5PcGxoRXFmZi8rQnJOUHlFU0YwMnlnZkdCSlpWUworSVVlYmk5RVAzMlQxN2hHaDZTbG1GOWNuM2ZMQVpEQU5uN1p0R0UwbW5HUllJRnp3OW9DK0ZMS2p5VHVrZ28zSworYjNWNzdaUnN4VFFVVXJNWDdHbmlvdzZaaVFoQ1NvY01RNGVJY3FBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtFWUlEIDUxQzczQ0JDREZDOTkwQUE2Nzc0MTdDRDVGNzhCQTM3RDRBOEQ3MzEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFjbXpRSUY0QUJLbm13QUFBQUFCeVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt4TjFvWERUSTFNREV6TURFNU1Ea3hOMW93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXROVEZETnpORFFrTkVSa001T1RCQlFUWTNOelF4TjBORU5VWTNPRUpCTXpkRU5FRTQKK1JEY3pNVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNT25xZ2xveUNMWW0xM1AKKy94dFdFRVk1N0thQTFvK2kyd3JkL2hoYmVPVU9DWVJJd2hTb2llSjBzTkV5OUhRVmdZalpWR2FaWmVJUDcrUEcKKzJhUEpYOWZDMDg0YWtxZ1FKRTc1d0tuVlJzWGFwaGFYRUw0Nk5yNVRvSXBtWTR4bUZJZ3cwL09mdWZrbmlqSlcKK1huN3dzVkkralYvVFd5RURSNFlOZmg1YkxmcVhQRXdVRlNZWm1VQ1JOck5KUHNqSjNUNUdFRDBabWpLNGc4WFEKK1ZBd3dGMFZZcjA0UjArdzl4ZGRoYmtnc2hNWWt6UEZuUDhNZXhPclkyWGlBbUFkcUtWbEJabWw5V0hIZjBya2UKKzVQd1BleFNWbThXemRPaWFZQWw1R3FJZURXRk00dHRhQUNIdkhTT09EbHJyNGtqUnlXVFRpYWw3SklNb1grM3UKK2JmYjcyZ1Bwc1d2VFJIUG9EZk1QdkhaS2E3bkxpdm1NcmJxMlhJWitPZ2xPRkU5RXNSQzgrSUNNQnJZZXhta2cKKysyWCt0Vm5CK0ZJelFzWXJ6cnFjdlF3QlVnNU43dXR2eFBZQWxoWmYyejZ2Z2xCbjZtN2tKNVBqY3dCQzh1QlYKK0F3dmkyK0VtOVZVd2dlUlB0Z0dHcGZYam5QWjdPVG9IVEw5cjNyZkFlaUpKbDhwQnh6UzEvTjAxZUVQdDJwWGIKK3VxQ0VoOE8xS2twNk9rTkhNOG1sRExZRTVWcHJYdFk1bHNIZm5hSUVkSEZvNHM1ZFhEYk9EcVhnZlV0cEVNODQKK3M0S2JSVFpDa21ySnZFK3BmMmIxMHB2WG9LMmdoUTFyUkh5ZHdmYll4cG85SHZCb2tEV3lOVUhrUkVjcXZBSzQKK3B2SEEveENrSWhGcFJxamRxaUZzMXQ1ZW93dnBBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUkdqV3h1ZGZObStVZEkKK3d4UEs2eGx1bUYrR0dqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQURMSVlZTklpVVp1TXhKUFRJSzVxRHV5V2JHdGVUNVU3dG9RQ2l6NzVaaXoKK3V4QU05a3NtRHEvbzNVYm55ZUNKZldEN0pZZllHaWVuOGFmWFlIaEFQNmk2U1hGSGo4UGo5MjZMblFabjdJdEUKK09VZU9zaU1naVVOUTRLdHNDTWY2emQ2ZXE4aUwzVW9EdmxjeVpjWk90NkFaNFhISlkyT1NwUUdpUnljck14a2IKK2czV3ZMNWxUd2VUU01aL1gyYkFTLzRTc1lNQUIxK0h5bkI3T1k4YWVpQlFjUi8rSStiNUtBcVZtTjJZWkJhb2UKK3IvTkVJbW8rNXUrdDBNeTdWdkg4VHNkNDFWNXhTdzErdjRaT1o1WVZYR0dway9na1BxMTRJRUxSUGc4WG9qRlEKKzB4eCt1NjlZaWcrdFJxck1TME0zYlZvUy9sKys1OFFBcE5ScUFKTVk1NUsxNnI0Tzk0Tlh6WGZRNm9PRFhJYzAKK1lhRmNwaFN6amdTYmFjcGRZZ1lFWVVOSFRvb1ZldWpwU0I2TVJqZHJqME8yMXJkb2d1Q0dMdTNpNk4xbTlSdDIKK0d3djg3cm1tZjMweEFYWlpVcmtoSS93Ky9zRHVzbmNtZE4zRXoxa3JiQkhDWWVKbVY1YzRscW93NVcyQS9kRnQKK2l5Ym96Wjk1bnk1MWRaUGsvdFIySmxvd2p1ZHV4U3Y3VHhzK2NZakF1RWdpYzJvTmw5b21nVG53QWdxT2FJRjUKK2RTTTEzVEZtYUtnQmxjZlRSZkpGTENGMmx0T1N5TWZiYWlhb0ltQlVsZytNNGh0b3Iwd1R5VWZSbnJTZDNkakcKK1VERFgvWUo0MWMzeEdvRlc3SHZFZjZwRVhvaE53MUtGQ21PM3ZOZjF1UjdxTGlHQkIzb2JMY2VuVHl6VU5xb3gKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCA1RTczQzg5QUEzRTkwMkIyNzJCOUYwNzQxRjdEODczMEUzRUM3MjRBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFHMVJnSVBOdThURzRnQUFBQUFBYlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTkZvWERUSTVNVEl6TVRJeU1UZzBORm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXROVVUzTTBNNE9VRkJNMFU1TURKQ01qY3lRamxHTURjME1VWTNSRGczTXpCRk0wVkQKK056STBRVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLeEFNZ1FBU3ZqdHJmSjQKK0FOSzBSaWhmTWprVlR5MkQxWkxpMGFDWWNSUlRmOHRvbzBmR1BZNDJTbkNOVEVHNjVKbmRBaGhRZnlXS2M5WUwKK3BSTkNoZ3dMQ2liRmFYWUJQcFhIcUZ1aDc5WW1mdFNsR3FFejNtWm4yNnlzZjFKMTF4d1BBWDBXMGdRQ1dOdUwKK0VhNHdHemt1SkN1QnQ0WjNpK3o5ZEdSWHVlbUZNRUJ0Z1hYRDYxQUk1REhadG5GQ1FSNjgrZFQ4NVQvNnd4WE0KK0FSd1V5bFd1Qk9lSWd2NkxrLzVoWmxDVGwyck9MdDJLN1o2YjIwV043ZVpJd0FrVjZkQWJrTU1rT01CQlY5UmQKK3RTTkkzbnFRUmdOSGd1blJNV002WEJPR3pTdCtwai9KS1pJSHhSeW43N3VDWUo1SDE0aURDZ3E2Uzd2NjN1KzMKK0ZIbzF0Tk1DQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZId09hVTdMdmhRMitHZUREaTlzOVROa2J4RmZNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUV4UzQKK1RpcUwrY1Q2L1pmeU5jd05uckF5Wm03dUtvZW90RkpaNzFIN0dya0lnaVhwWERnUmdUdVRUeVN2dmwrSGFVQ20KK3ErWklLR3RES0NZaTZyTUNxVGxVNkJzVXNGZTRKeTJtWDk5MnNSeXh1VUY5TXBZK0NyVDJUZU53R3kxTGlmNkQKKzlRZUZyazlVZzNYWmI0d0JmVWR0ZTVlcWdSTUJmcXd5QVVGdjUxMndLcnBKZFRNZEcva21NTmt6Q1QxTE5oV2wKK2ltNVpvZXBVQTE0b01NODNYYXYwd3VteWtVeWdYUFN5NlZqUzgzUEovWXBVV0RyV1NMdFFhUk9WUGUwRlFRNUcKK0tMdGozRmQraXQzcVU1dUJ4RHdtbXNFV01mZTVjNncvdVhHRTRmOEcyYXdsb2Flc1ZnWlNzeGZscCtBT0tRaHAKK1J2NkNuWDlQOUhiWmJWUEl5NGJRZk0ranBaZ09jbS9iTGVxZUFTK1hxWXdnR2UxWkVkWFlJWDhic3pqQStySHQKKzc5d0ZmU2s3MCt1MEdzQ1daaUFPMXhrVGlSQUlpYm9LS1lOZDRyaE8yYWdjVnNaYy9YQ3Nna0Zobm05S2ZBRVcKK243WDVZeUFnODNMWVlCc0hKZWFmdVN1QkRpeGRJV2xlL0JWdWlReU96SVNoSmZkaGc3Qyt3Y3RYSVR2QnJFcXYKK2ZEQjJ1Q0QyUDRjTG9hSWxVOStRb0tUSGlqM1pkSWl0eGoyL1lrQ0lnVTRIbW1mSE5ZUkE5UWozOXhxR3BlZU0KK05JZGliQ0UzWVBpc1F2UGpxSXkrVTRSRTFISlhmbUZ0MW1yRHlEdTFycjBnKzBnZjhab044OWgvUDVjSVdQZksKK1RUMjVSb1ZTTlVsM0NqWWJOSVoxd0Rsd2lEOWFQcTF1LzNxdVlXYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCA1RTczQzg5QUEzRTkwMkIyNzJCOUYwNzQxRjdEODczMEUzRUM3MjRBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbEMrbDMvelVhZW1YZ0FBQUFBQ1VEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWprek0xb1hEVEkxTURNeU1USXdNamt6TTFvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0TlVVM00wTTRPVUZCTTBVNU1ESkNNamN5UWpsR01EYzBNVVkzUkRnM016QkZNMFZECitOekkwUVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTlBtMG1uWmJBZk9vVGhZCit0dHZuS2xlZzV3T0R4azJTUk5FNlR0VGg1dSt6ZEcxZTk2c2d2YzVrU2Z5bll6YWNUOERNVW5pTUJlUjM1ZWhoCisvbmNEVkdIM1dHZ3QrRmEzeTVNbzZYajg2NzViUHBrRTh4WGk3N1BzWVpJNE50S3VkZVZxbFpXM1JUMFhuS2VrCitFTkxiQnRGU2lIU3FQWDY3SGtZbGt0cFB2QkxlS21MbmJVMkR6Sm1kVDJZVVpmOThSR2o2SEFhd3Z1Vk1Fa0tkCit0RnlMTzZKZGxMSFRQNitURk5JaG1kR05RMmNFODY4Q1FaNmUwS0JWcy9lb1ErWktyblNTMlpFSHBzVnNBWUl6CitKWCt6eXkxU2I4NitHVHMrU2RhcU9nQ0pYU2tBZnhqbmVBWDVhaUpGbldRazdxNHNSSG9xUG1WTWt0QUw3cURuCis1SG4zRUpZSTVmZDZlYUpYR3RHcm5JT2dQUEpQTURPMUJEVk5TWWo3SUNZUXVVR1A1VGJmNFpSMlFwdkNDTkh6Cis3VjRwTEg0Y1VUUEJ4QlRyZTN3ZVRWYlZ6d3JJczN6RXZIb2owZEx1djFpQXFwUkZ2TTA5SEc1VWR4NzZLMWtSCitrY09xd1pkSTNscE8vNUV1dlRuQTU0NUZLaDlGTmdRMHFHbEh3Z1RSOThIN2tzT25FUjZPUGtxdlYyYWdZd2FCCitYcnFGZGNjVEc0Vlo3T0tOS1h3dGJjU1paZ011eGJGZ2E1MTlpOEg2MEphOW1UbVg3cDVzMEUwbE85UmN1OGx3CitJaDdTZVZKb3hLSmI2ejdvc2dqMThKeG96eCt2R040VkVTK2g5VmlDdnV0b0VsSWxmYjhsWWhYU0JIcy9rU05sCityQnp3bW1XcEJlcm5Eekw2TWJhaVFMWUFJRmZOQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlQyd3FXM0liMHhsL05hCitob0VCQmRCOTR0bE0rVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHSGQ3WnZJamNoeWdxTjVzUkJNS0FwYmxMdEZ2cWZnVlF0QUFidzZxMUROCitLQjQ5NVp3eFVtbTVQKzNUbnZzbEZKb2pvRHNBeFFiRnhLRnJRREJ1Z2pzWnlnZktnTllLamREYkRQcVltRkJNCitlTlFDMUJOMEF2SlkzZCtRWHZpZkNOcUh4NkdISUdtRG9JSGg2cW85WHE1eXBad3NoUEZnUjFYRFIrVUdObXVpCitva1J0WTBDYVlWY0h0OXlnS3dEY21BNFg2ajhXL0Y5aWZqaE9aN3IzWVkzemF0UzZTU1RVWlJGa1Y1RlFkbkMvCitmeEM4NzYzNjM3bXpsWUk2aXh0dFRNeDlJa1JHUUFyNjNzVk9aelBndGMxRTBQanVGaUJwcnFQSkV0dndBQWU1CitVWHR2QWRuQWU3QllVMXJsWjBNUkVGc3lpWXhySVVJNVFoUmkzQUtERkFXRjVDeFdrUmQ2UHYyTXFpSHNjeXNtCis2RVJmVU1aTlRFdm14MUw2UEJPUzZaQkxya2hwMFltQll4SCtQQUZvMkZwWjBVVXQwUlo4V1htQ2xsWGQySmxlCitkTWZyQWpjMTBpNUYrS3IrTTE0dG1Zc3pPZW91Znk2blRHR2w4aXVDT2RJRHVGUmpOUGxjRkhESFUvNytEajdOCitGQXZ1NUVZQzBKc2d4ZDVJZ3dMTHkwczlhOTBmdk1PNkdxMSs0L012cHpkak1XUXpoTm53Z3MrUnJqeHpvbTJHCit6cVMyditxZFFvUFNZZndqQ3IzR3B3b3k0TTNoQkhYUXE0dU9VTUNIcmtlMGd3K3NxdG9ONksyVDIvempMajZVCitoRlUwZTNpd1hJMVFoeVNtK1U0enF0cmkxdEY3UEFhUGcyMy9XNmtBUTdQYjlxOE5Zb0thMk5FZzlway9vNDZCCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMxN0NCNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBVy9CZko1VTg2Uks2QUFBQUFBQmJ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01Ea3dOakU1TVRRek9Wb1hEVEk1TVRJek1URTVNVFF6T1Zvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0TmtOQk9VUkdOakpCTVVGQlJUSXpSVEJHUlVJM1F6TkdOVVZDT0VVMk1VVkRRVU14CitOME5DTnpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTnRwbGttaDNpVkthdXZPCit3MWE1UEU2SUR6Wnh0dldFaFFCSWl1V2FsdVlkbW4vTHR5VlFxclpjaFZUMEpUSVJ6a2xUY1JEc0l4NU9PbUtSCitWYkhwTk9TMUZDTkwvUFVrcFVkcDdvd053NVg2WDJBVWVzcWZIWUFZZ2VRaFhJUkhKKzRkTzBGR2FuL3JUNVU2CitQTC84WjhVY05YaW9QWWxLM2hzVk5IV0dNeGRWL216Mm5NNjRuSWRacTBtQzJ3U1NJSkhXUWVyRTFNTXdSOURvCitQZWR5OFp2L3lWZVJmSXlBOFR2LzlVbXppRlp5Q1VNMWZ1bUlYR2FmNzA4TzVsOTMzQ3RMR2N5MlEwdnlYckVuCitVR3pPWjhkdjNlUm4yUnVqK0dyRk5aNjRhdUtHY0I2eVU2R1AvbzRteE1VRG95dVRpaEdaajhCTGV4U3VuTkMzCituN2pkWjQ4Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQ1BEQm1zekhZRmtoc05icjlOS3o3T2tGNTJMTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFmdEFuCitjd0pwaEdnck5hUXczYWVHaW9RaW9VR00vd2drS1IwYTd2UWxIMWpMOFVlbmpXNnUxV0dnSGt4cGoxWUorK3hZCitpdUN0bHBRSUpzbFBYTWs2Z0I1QWdFQ2VkVWk4allrZ1FscFN5bHg0WXFKT0cwaDNjc2pENDFzSjYxM2JwY2xxCitXS1hFV2FCb1p0cWlIR0kvbGhEcGhOMFNjdEJiYVhra0dqWEhYNXFoSEkwUHVxdWl5ODRtQ3lwUXRuQTJQK2V0CitUbkdkS3o5ZDlEdXdsSzBaa0NhMXR4NVg2SWVJcnlOSVVocGswbFVXa1FyK1NCRWFGWkxaNlJKWk0wbGtBRGM5CisranloclNvNWhuSDZxbW5ncHRWdjdJYUlvcGRNTXNoZ1JUWlFNNlowQnpTSjBCZEtxbVdxNlZEbXpTMTdrQ0tzCitMbkJIbEVoZlhXQXQ1ejdWUStJMGw5a29DcEhlcm1SWGRYdUROU0I0blRXeGtBM1dzelFIWnBZanBoS3I1WHFLCisyRFhtZEFCc2VUOENPNG1oVHJGSEFTdGljcEZtQktqczJIUGYzelp5anNEYnhTR3ZrbldpR29WeVArdWZLNm1GCitCRXdBV1JZbjJaMER5eXBHUlhUK3RmcHMra3N3TTR6Q1RTbHlrR00vTVlFck5xSy80Q3pIL0ExQWgyc2FXMGVDCisySG4xSnR2dXNncFNiVm9KL3RBOUhFdHVBL3JNbEhWaDU0U3REY21URnI5bjVwZCtiVXBTVysvSjJ0RXJtNUp2CitRQlEwNG5WSFZOTy9uWVZIMXNHZmhNd1F1dlZqR21XWkFhbEVPNHJiS0xTckZXQk1KWlR0Qi9oU01Cb0hUVWxOCitMZmxFcC9jT2VhMDZjZ1FuREs5dTZmWHRUOHBldHVxZzFRQjVxTGc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMxN0NCNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW5GU0lqZURDbnM0cmdBQUFBQUNjVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXdNbG9YRFRJMU1ETXlNVEl3TXpBd01sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdE5rTkJPVVJHTmpKQk1VRkJSVEl6UlRCR1JVSTNRek5HTlVWQ09FVTJNVVZEUVVNeAorTjBOQ056Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUpncmE2MnhOYU9qWFpyNAorYk41UUJYcFg3UHpoTWpSNUVSM29FajhIbkxFaWw5WmNONVhNNklFeW1tbUEzYjZkd1RRd1FaZGErakNnR1lZdQorSkUxK01JSG1mYXk5blBlVEgrOFU1azRFa25zMnJhL1QrQko5VTI0bFE1T1lBSG13cGxmNEh3T2I2eldHQ0duVQorOU8rcUtWNjNVWThpd1h0OXV6Q1ZPMlB3RHlac3JNamVSajVpVUtNZ0V4cTF2NXlMK0w1dWdUakVNaEJaajVZcAorck8rSVFaRUFYZDdpZGRDM2RGV21YZmNYSjZlQ0wwbHhHbWJGWk5Td0lvOWlhUVhPd25pK3lURm14eG1oNWd1OQorVjd4bXF5dzN3YlRRclByV3dpU1VjYzVRbjN5SDkvWXpDc0xNNkN3aFFMYy8wZUZJdzhGSFphN3hLdGxjMW5YSAorWlVzcWtaRzdjWmFLSEQxNm4xYVlLVk5CVUo2bHcyRC9oeUphb1VXdFNzYVRZRlVvWklDL2h3c2JWcFdWRW1lMgorYnY5SEwrUHdEa0tKKzlQZHZ5S2RtT1o1d3ltVXNOdUdQcksxV1FlbWIxRlYzbFhhWURCNGgyTjNQS3JzSWltdAorRTF1TUhOd1VqRWZzZFEzUitKT0NUWDBMYlk0clg5MzFta2o2bUNSclRhK0Y5K2xONFhzMTJSQW4yaXdIWVZrUAorOFFjUHVzempoTFY0UHRqb1ZDMk84VmJSL3YvUUxWank3OFlmTnArSGpoRTBqanArVVhibkY5RXdDMURDZlBqTgorVUxzTXBudFpyOG5VNzZ4TmwydC9YS0VsOXRIOXBnam1tUTQyYjYzVUNDbzhzYjloZ2h3enNpaUJMck1ZTFJvWgorT3oxZUJKR1ZLajh4OTRoK0JjNW1zUndhVnBRakFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJTVGswMUNEcmV6b1FKdQorZW5FakJoQlM2RmhZc3pBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRW5ycGdjUVdZTXlReDl4c0FrUTBaTG9mTnpzRi9rUTFmYjA1NVA0alYyZQorb042eG9IUEpFQXZrbHhYUlByOG1tVit5Rk1xV0dLcFZaSnRzZU12eWxlMUgvRWVWOVJMZW0vWTQ0blQxcjhTNworZVFMVWRjSGVtc21GRU9pcmxmL1d4dFRGUVNJYk54QTJXL3RmTkkxeDYzZVRUZ0grdzN2d0MwKzNpNmZmWTZ6eQorNWZ3d2ZwSUJxbS9Zd3hvSnQ3SWd4VjQ1SVFHbE0zay9CRFVrdzJwRkYvUktBRFJkTGVnUGtPU2lQU0JKbkpNTAorUmV0N3JNK2k1T3FnNnNFanZVYmxmZ00vc2cvZzYyZkxTaVVsa2w0cmU3TS8ySmFReCtEL2VZUW1QQUNySCt5bworL3F1U2RHTXI2N3I1c0lmRG9ETW4vTTFNRnIyTjhNUUNkTUhUVDBZL0RpVTFxdUR6aC90VmpwcGplanNBWU5jRworeXNhSk1ub2p3aEdBMTRINTNGWGdHaGdJeU1ZTmFTQlJDQ0xHSWQ1UG9UeW5hZmJEOGdWK1JSYzJUcWE1L1d1WQorcFE0SW5zMVJjUkk5WlY0SkpNdm9ndFBtTGRFRFpBV2ZRNWdhWDd4OVhJMzdQa2dveTNSWkRvMEllT2dUNjFVagorWlJqM2xjWFhaQllsa0Q2dFQzdkdQNGpzVWZKYTU3MHB6SU1PbGtOc1dIdlNuZGo3SU1GYlVnTnJ4N1NiOHd3WAorVGFMbjQzaElJMTVwcUdZakd3RExhQlBVUzdHdEprU2NrK1JRMTNuNm96SDFtd0lQb0RGMVNtUXJkeVVhRjJDOAora0p2VHVhWjcrdFB5d1hwRG55TkNJWmw2NmFDMXZITDZScVZpSDZWVWZpMXFwTjA1WkpjWFVTNTIreXRreWN4NQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtFWUlEIEI5OUU5NzlBQUU0ODc3NEVBMkVGQ0E5QkY5QUQ1QjA0MDQwREMxMEEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVF1eEJPYjZsQkpjbVFBQUFBQUJDekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVXpPRm9YRFRJNU1USXpNVEU0TWpVek9Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdFFqazVSVGszT1VGQlJUUTROemMwUlVFeVJVWkRRVGxDUmpsQlJEVkNNRFF3TkRCRQorUXpFd1FUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpMcEJVd0NycUI5UUJ1NworWXY4aUhabE1tZ09jTVNaTGdXOFdpOHpOVmNkaVQzaGwrczhENW9hTFMveXVUNVd6azVSek9SMWRJaTE5STBnMAordGhQblMyaDBFS3RrYWQ3cEVoMnU1L2lVSGY0ZzlDOGNxbk9XSlVhWEptalp6dlBOZFlVV01NQU9YUnZGdVNyZgorSGpWUVpkakt0dElKcjRJUDlHN2MwUjUwSnJXNmlwMFRpRHYycmZxc2ZMT08wVEVvK1YyN1I5Q25qNXFkV1dLcworWmtaUERCTk5pYzBBOEs5Y1lrckozQ3hzc2JtQVRQTFZoNUNnQmRINkEzMWlZbGdYTlpIMkFQazlXdE1OOTFPKword2p0TTZPK29DMkh3cFV6WVFPYnc4ekcwUGI0ZFY5dlk2cStrKzVyZG1YNTFtdTVFMDVjVDIyMlBsbVNHb0JmcQorTlEzNWhkVUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRklhZ0k1d0JLM2FxNW1OSTNMTE9raE4vM3lMVU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBTDhiSworbjhXYWJieCtCL0w1b2dsMDZEekV1M0pTVkRBWjJRUktlY2JDd1BuSVk0ZXVaUTY1S0ozR3pUWlFrRHJ4eElseAordW13ZlBnT242bDZ5UERxcjZhUVFVYldYU3JWVUZXbE9hQ2xhUVBWdWh3cUZLNmJJaEUyUkoxM2hycE1MQktyNgorbXEwTWkzKzYzbm5yRjEwNi9nV01nbjdFci9zVDQ5NTRRdEo5WjYxbzcwckNyWk9nSTE3eXAxTVhPejNqamtyMAorSTVRdG9xQUF6Z3psVGVnWlRoN0Y2R2h4MXp4Y3NCSWlSZXArQ0N5Q0pxTWJlVTE5UnoxNkFzWDNZT1huSmNjVAorOHVVU3ZjMU9adjdrR3JPZTNYQ1Awbk9ieW1XZUxmWkwwYXZxS1YrUzVza21kWUcxSktRNzdJOS9taUZoZ3JlOQorVDJ0QmVENE5SdGEwMGFPbzBBWFhBcW1qTVc2dW1YMTRmall4MjF5bFJxTExYMEs3VER0enhvV1BNZmdyR2dEdQoraEg1SVFCMmk2aXFsM0R2K29sWjg4VXJjMjZPS1g0aWZxU25YZlVxREIyTjBTSDNLMWM3SzJsc0h2VWZ3a3h5QQorV2dzREVBblNOSHEwSGttQmJYNGZNbWE1V3F4WDdoS3ZhYTdHQlVNWnhMVm15dlBqV3Z0SjlYNndYbjhKN3FpaQorYTFUaFg2WTA1a0JaVEdWbmR5MFp4S29JUnZnWlFlTXVQOWlBQlZEajZXbTlDTE90ZXk0Rkxmelh4SEM0K3RBLworQS9TalR3SlVaMnNHTzlRWDQreXlKN3gxcVBrOUFjKzZtbHV1OE45dUd0dFU3cjNPbjFyRFVPaG90R2tsR1Uydgorbkl0UkM4dlUwbzBmdDhkMUhaNHYvcFlxanRwQitwaGhqUnBKSW5vPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtFWUlEIEI5OUU5NzlBQUU0ODc3NEVBMkVGQ0E5QkY5QUQ1QjA0MDQwREMxMEEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFuVXhITkloeHNYU2NRQUFBQUFDZFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF3TlZvWERUSTFNRE15TVRJd016QXdOVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRRams1UlRrM09VRkJSVFE0TnpjMFJVRXlSVVpEUVRsQ1JqbEJSRFZDTURRd05EQkUKK1F6RXdRVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMZkFYTXRKMm01R2tyMXYKK1JEVzNmcmtneWUzQUJkczhvMXFLY1RuK2txa0w0d2tiMjRCd0xHclBaVW55T0JFU1ZsZ1ZYN3hob25KL3NIS2EKKzdIQnFkaS9OWXZiYmhLSjloM3hyM2NWVHNSclVpREg0VEh2cnIwbkcxSXYvQ1pCQWlhWlJBUk9GUTdFQmQ3dTgKK0MxYldSdGhIM2NkOFhRV2RPTkVHTGx6ZThHZjQ3OEpiNEdnV1NlZ25vN3hxSkYvbEl0Rk1QdlFSZTE0QzQ3K28KK0FwWklBUDZFVDIvYlJZUmw1VUszdDBNdENCV2Q5L1pla3VCVXBPamtjenA2bUFMN2Ftb0RpUGNDRHRoZVVzSmoKK1JHTExjS0ZDZFFBK0RmNTZiTHA5M3JSa0xvUmxQUGdsUWhydS9OcFFaRTVvd3o3bDd0SmlXSmxINTB3M0FrcFoKK1ZFMXQvN3JvQ0thZk5nazREQncxYXNTRElrNytLaHJxVWlqbUlaRllLc1pwZmRIUlF4elZiTnlJQ3Vra04wYUUKK0hDalBYMU04enkrZ1ppN0d3RmFtVEFRdzZvbHlBeXAzVW9CRVc5Tmx1cHF6YldHM0hxWXluVnVWd0k0dHRkaUEKK3QvWC9jNUE5a2dxRTBpdWtTdzJ3anM5eEI0cVJFRm85eWZENGtyK3lqZDI1elJFTFBoS1lSUkJPcXh1UGVkQ3IKKytsQlRFdVRYaWx2dkdMVmU5K3kwZndHeFZUMXlpQnZXd2k4RkJvRzlxSlV5QnpFYTRGYUVncGNiQ2syRm1NOTQKKzR6M3FLQkJ2bkdDb0xMOGdNM2VqUFFJbzk3R3dOZGQvWHREM0JkeExSZDRtS25DWTJIZTdvRTdxd3J6V1h5dE0KK3hvYkN1Ujg0a1dhcmpXOVRmMzd3M2tOSHkybFhBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUWdaZy9XZ2ZEZ203QVcKK3NIY29xckMvcGdYRFpqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQURGbkwxZWNyYWlmc0VtU3R6MGc0and2VFZ4aWFjTmRCQi9ya3VEaitUR3AKK0J6L3lOSzF3VjJqMG5pSDFvRnkxQ1M0dU9jUmQvbjF4YmJ3a1h3Mkd5SDUyL0RCT0V4cTVEY2d1bHZ5Nk43UysKK1JqREphNll2aWtaQVNyTDFad2N1SmMvRmM1RG01THBpS0hTWUEzRys5SDFDcDZHS3B0b0pxc1dFd3A1UC9qWVYKK0ppMmpBUFpwUTdraEc5cVhXNm0wY3BqNzZkN25OZ1FQcFdvYzRVR2Zwam1WYytPZjR3Rm50cWtNb2RXeEs1Sk4KK01RYkU1V0ExdVFiYTkycGQveUF2TWpqeUFoY2hhdEVxTmV4VGJFdXVkc0JWdFZaMWh4U2NjckFYbkNaZFpldnEKK2xmdUFDTXdsWlJGMG1DaXFqblVhVWVHSkM2RTBPK3dwR3daVFN2aVAvRXVzL0JkRVE3NHZ4b2wrRzhEVkpqKzEKK0dpaGJKVWtYVXAxRjA0MGFpUS9LS0dQbXEvSTgwNkMwMGZxTnY1TnArMzJucG5XLzJEOU1NQlJXNlNpa3hkbmcKK0xneHlBQS9xK1U3MTRpNjJlNEJUcnFFdjNNQ1IrTkpNTFpIS3VERm9xZUhlNzNnSlJuT1k5WDlNVjZWUC9OOVIKK2xHTnRMV0VCWDB6S1ZYWENTOTRwVUlYTXllVUxGVTBxR1ZkWHZ5TVhhQ1FTYWJSSTdPdGY4dkgxZkxwelVURUYKKzVKckVHcmVaQzljZ01hYmZsZ1IzU2JUaHNHVU5qSXNlNU4xVUd3dHlQZkFsQTIwMkdHajN4TFdaRDNtcVdkY0oKK0ZYdXc2RzdDWm5rUS9WbmhTNWZBYVpucGhQR1lJWXVNdzNNTlI1eHRLYnRVVjhOZHdIMU83YjQ1RkFCa3E4cUcKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCBCQjk4MDVFMzE5QTc4REJBRUZBODg4QjQ1NjE1OTU3MjA1MTc5MTgxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFUQnNxSVJVQll0KzRnQUFBQUFCTURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF3T1ZvWERUSTVNVEl6TVRFNE1qUXdPVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRRa0k1T0RBMVJUTXhPVUUzT0VSQ1FVVkdRVGc0T0VJME5UWXhOVGsxTnpJd05URTMKK09URTRNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFQSWZRL2dxMElTbFlieTQKKzYyMnQ2THBIK1prcGNuNzMrbnZkOG83R092Z3BVVDJOUFFhUU5zaURuczNxNm52YlhlRWVuK2QrM3VjRGJNRlUKK2FPKzdnK1BzQ01pclYraHZ2dElQQTBsVFF3UW1UZmtoNkx2UStham8vbVRMSUJMMUhZRG53TWFqSms2bXRNdHAKK3dnditlVkpjbEFYYnhsVyt4THl6K2JFRDUwdnFQVXhnelhoTHpNMjFsYm9qcmVDNUcwNDRkeFFidnhjbGNRNlcKK090V3FpTnpHVUtVaFl1aW1qeDhOekoxb3pzeGpBL1ZNZHhuMTArQlAvNlBFOTFzcUdtMHBYK3d5Mm8zSGR1T2MKKzBmbXR4aUVwMDd2eW5yS1pESzBGNXpXQWptbHdWVWdpR0ZiRUZ6RURWdHQ5WFljVllrSjZGcWZMcnR3dm9NU0cKKzhzdHlBRUVDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZHMURrTm1QcU0wSU5wSVlNL0hjd2VOV3FjTkZNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVlkK1AKK21vVmdYSEx3NzJadDlWMEJ0bHBCUVZmVUxJNWJtRVBIOEp3cEJnOXRYS2xmZ0d0eXVpOXZtT1ArTEh6U3A5TW8KKzY3V1o0WWMrdm9XeStMRCtUR2cxeml4QlAvVkl6NFZtRGJrYnBVTytSTi92aU1oSmhLZVRqdGFoWUFsZ0htZWMKK0VuZW54bHFZeFNzdzdGdTRxY2xFMExUYjkvMDlIdTVrSFZIWXh4VmVPTUVBelZwME1LdVF6RHdwNzVYRHFvYU4KK3h4Q0h4VE91MVMwWXVscVFMS0xTK21rNUYwdUhOcHV3TFYyNmRYbjRjUWlXUmpoQW90bjlSbFpWbk03aHRWZHcKK3cyZ1RPVTVJVlVTa1FUZmpFclB2M1JweTZURGxwaHoyMEY0dEdYRTJGSm93bW9kR2V1ZXhDTTBWa0UybnhKdVIKK3JtY09jU0pPQ1Y2NFpjaHphaFBHc0ZydDlnSTRUVFV0M0xTemFkUVJEMmcvNHN1ZnNhS2tubHVKbVpJU0J3YWgKK3hmUG5Jd0NCQkRmQ2MxTGVEOXFRMElSbSsyRjNHMHczK040NFpCMlFXNkhtcisxYWliRnBRKzl3MDEyR0hTUmQKK2dZRHpsODNqd2U0NkxtVkthTVlSSTZ5bWRtb3JNUU53NXMxZU5WWittMVRrWHd2TGNWWnBZclhjZXQxYnU1QUsKK2VoTTZEbkZzSGRMRm94NmJEaW5wTUN6QkhCWnZIUEhrNUo3dzY4b3FTckJsUUcxNEJZOGhwdmovUXlzdXRwK1gKK1dmbG1JL1EzZ3ZhNDAwODc4WmVNL0NFdlpKMDFIZkw5aXhBcmhjQkJIcUV5eVdSUDdFNmpsa1o5SDBwVnhaYTEKK0crN0YzY09PczBCT0IvWnNlV1J1eWVHZzVUSmZEVnlKTUxyV0tKaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCBDRUZFMzMzMzkwNzMzQzY3MjdDNzg4MERGRTQyOUFGRUI1NTdBODkyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFURWRBQnNtSHNoTm1nQUFBQUFCTVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF4TUZvWERUSTVNVEl6TVRFNE1qUXhNRm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRRMFZHUlRNek16TTVNRGN6TTBNMk56STNRemM0T0RCRVJrVTBNamxCUmtWQ05UVTMKK1FUZzVNakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKZVlwOVNMLzkvOEtia2gKK0NML0g2RWdzNU9zWGo4eThKTldyd0NlZnRoQS9vbGtpRlJMMWhlcVNvTUJ2dENxMEF4aUtqVGI1RXVTQmRxTmoKKy8xaEMrZ0hsbHFSSlg3VFdKUlZ0QjdsU3NhZEV2bnpGY1ViZEh3SGlZZlZoa3ozWCtkdzMvdmhOQUpVSDhSbkoKK3ozUmZ1NERVczNDeGl2alJ4VUtwdmFKZDFZM0k5MmN3ZkxlclZXemVWbDZyUXBNdFJBVTUveTU0Vi9tNkg0cisKKzlvSjlDZTh5dm5zQTJINUJpV1V6SHdwVVNJZk5MbHBFSzVUQzZKdnFsK2Q4RHl4ZlFMVDkwTVN0WlZuY2NHSzMKK3NzcW1zb214b0E2L0NIMHlxRTBONk9TSlBJaVVqR3d6b3laZ3pEVU5IanBVSTVXMWlwb0lCWFUyT1NaSlM3UzgKK3BaN1V0VWNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOdENHZ1M4Wi9QaHU5VitmZlBVbWlpNDJwOTNNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWtmdk0KK1RZdStGVTJkeFpGekJ1MkxFRXBtZGRjSGF3NzNQYm81VDdrNmRydG9Ma042Sk50ZERnT0RBZHByVFk1RXYwMVgKK0xTc3FRMWZQV0Y2KzZoQ1liTThESDhPc3IrN0NQRStscFdjTzZkQStHWHpCVWxPRC81eGwyaG9hNzl6RzIvQVIKK1VIcFgrSW5sNlhLSEZlYmpxQ3dzRk03TFJVY2VqazI1YmtrWVo5TWJaSGpYZkl2WHo1dlQrdDJXak84eGI0ZkwKK1I3ZmtPb2IzMUVFSFUwR3puckZnVERFRnhSUThlTG1xcnRuRmFnaXVXQ0JDUlhFUER0bzkzMm5adTJXK0g2MGwKK2cwajVCTVRwRTRpN1hvbWV5WEFVSmtTNjZrM1NSWU1jM2NBemhlKzcwUWoxZldYTXRwR0ZGRHJwK1hIaVl6OUsKK296VEljdmN1bXhOQzFnNW92S2U4SCtlVDhGUTdSWWlMbThoQ0I1VWhrU0Q5TldPTGlzM21FcEJRWkxMY2JSRGwKK2hkaGpRd3RHaXUyRmw1cjR1VlR6Q2kyOEtQeW5YZVNHTkdkbGVFdW5aQm92VFRkUFlmc3J6ZjdJR3FnTjBwZEEKK25PYUtWR216SG9BQ1JKbVgyVGt6S0U4ckVMUTNaOTl4cW5uSjVOaE9XUU9LeGNpTWhJTmk2WkRySDdkMDQ4bU8KKzNXRDBwU0xsNTUwa09rUE1hWGFYSFFwMTFjdVA4V3FybkJ4VE4vRzJYblZ2bDZzMjlRRlNKbzJEWFUwZktqVVAKK2NhVHBheEVmZUY1NkRPeWF2R0RuUWpCRnZjOHRocXhmNDJ4UHo0MlFBVTN1Q2xwN29yZ0FhRjhsWHpKMWJNd1oKK3dYRWgvUDBBT0dmQmVGSkIvUEhWRDhmSHFVZGZHeUJRTnNhakwwVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCBENzNDRkU1QTlFMDE4MDgwMTE4MUExNDQ0REUzNkVGQkY4OEJBMTZFCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFYTHdNTXRraDVmaU9BQUFBQUFCY2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURrd05qRTVNVFEwTUZvWERUSTVNVEl6TVRFNU1UUTBNRm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVbE9WRU10UzBWWlNVUXRSRGN6UTBaRk5VRTVSVEF4T0RBNE1ERXhPREZCTVRRME5FUkZNelpGUmtKR09EaEMKK1FURTJSVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKUUxEN1cvbnF5Z0ozSEcKK3RUMnBlcGRUZm5zZy9jUnF0WE0yb29yNXp5L0RWalNYcWZjUzIyVVJXQlU5MXVpWmo5QUt5VTBGcGhoZjdFTy8KK0dYazVabTJBRlJKRE42S3ZQUFplQk5hdVc2by92UmJLUWFVQVhmU1ZmZE9Vekcra015R2lPa2FGc3JneStrUSsKK2tlKzJVaFBEb0xpeWUydDJHM2ZZRWFYdEkxNTBNNWZGZE5NTTZyWVlEM3hUcUtlYnIzNGRnOFp6VXpuSEtPUzAKK01iZlZ4aEswb0J1TWtWaXA3eHI1aFVseTJ0Wk0wb3ZxVDZqK0pBYzF1OFY4VnlrRUtlWDNVcUNNNXRBamJza08KK1BrbmdPOEpNZURoTE9hUjZHU0dIajRRSTFVb1BlNnZSUFdOYlo2M3NRTHBaY3FhT2QrczZkWThWSlNqa2xYSUMKK0JpSnhVQk1DQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZIT2NsdnJzeVdNaGloUE5DL1RUVGpXNkNEKzRNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWE1VkgKKzZXbWZQK0ZUcFVRaWo2QmgvNi9vZ0ZXSVV4cEQ1MTNmRkw3V2sxSkNlUTNjTENGVjcvaHFJY0ZvQ0tvaVR2Qy8KK0lnL2x1Z25QYkFhUlFwdGxVN1pBNzZwRFE2cDMyVStYUGdzWVUzOCtXNkZETm1nSlJUMlkzSmxHZEcvZ0NERFcKK1hSY01ialNMN2ZsaFlLbnluOWxOMHQ4TUtRN2w0VUU3aXlDciszTjRmQWxFV2R4cGl4OTMrMHY4MjRWcUxnOXEKK3N1WEU4YWIxU2p5eFVCUHkvb3pKS292UUdqU2hrY3c5c0RHY1lXdXpSVHlIRWJjQi9qMmd1UldmMjJWOEd1VUMKK2dBZndwMEpaU25iNWhsQzRmTzdGNU04RnVpN2lYUDZqdGlXcFNvSVdiQi9mckh6bmR0a002RUd3M05VUU9zK0wKK2d1UUxDY0tVcFI3MDl3N0Nudm1IRTlBdE1BQjNaQXlnbVMvcy9vQUVmMDlmZDJ5aVN6UmMrZnpVUHhiWWVXY1AKK0ViUHg4WUNhZytzeC9aZmhDRFhzaTRtNHRZN255djYxb1ZXdTltMXZ3bDNha2w4WmVpU1B2RndYamszYTZPT1oKK3pFNjlsSUZjUEU2SDlyMlFYV1lCa2MxTmJxdUoxMTBmSGNVQkltaDhscEppZko0aVk5anZvbWVzMzFCMHZOdmEKK2J0T3d1YnFLNnhDazhqZmJENzJ4RlNXTk8vMzNVc1hEVEV4TGl5WW5HZTFUTnI2RzMrUFgwV0QwTkljZUk1OE0KK1E2eGJNNVZYRVYxZHlMc09LWG5UdlRMc1FtZDloZEU0OU9SVW1ZVjlmSFVjUWVuSFhCUzlrSmJUUE9BKzVIcDAKK3J6cGRwOG9sdjhIRDZTZjRQKytyeTRJUGNpYSsvQU1vSk5kZFkzUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgSU5UQyBLRVlJRCBENzNDRkU1QTlFMDE4MDgwMTE4MUExNDQ0REUzNkVGQkY4OEJBMTZFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbmEySlRiVWFNZm1PQUFBQUFBQ2RqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBd05sb1hEVEkxTURNeU1USXdNekF3Tmxvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0UkRjelEwWkZOVUU1UlRBeE9EQTRNREV4T0RGQk1UUTBORVJGTXpaRlJrSkdPRGhDCitRVEUyUlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSlBmamxkcTJZUU5BNXhuCiswcXk0aGFJY0t1akRibm9OdnhpbDVsZWJPWFJnQkl2eGc0OVlJZXovZGw3ZTlmaFJkNHBUc1VyM0YrY0RGUFpmCitTWWtzQ2hGT0JHTXpoS3IzckNvZTJveG0rSmdqSTBvNGhOZnBNOW9oL3NKNk00ODVMdWlkZEpVdHYzOUw0aE1oCit0Tk9WT0QzWjBNTlptbUVNdU5qdnB3bG5mYi8xenhxZHk4ejJsRkpKL1EyaHdnRGVMS0JINnl5ODBldWZ1NExoCitaN1hoMk1QbU4rYzFBQlRrQmp2KzJGd0lLeWxwbXN2WXlEVUlsWXVxSzd3TXgrMW9GN0R6VHNHbzlzdTJsMHl3CitLT2tZa1NiODJOVU1GczR4WjNsaXNDd3Y0WHpjQnUyRk1Yd2tyYUVkNE94bTE1KytNZmtMckc4aStQcEJRaDIyCiswbnFId08xRUQyQXhGaWxKZ1o2RGJMOWRudVVWejVLcGVBaHlQMGtCM2t3VnAzSlI2NzRnYWhBbGppWkFTbVNtCit4c0VpQjZQY1ZjeFo1UzU3RE1wb0pQRmhqaHhpNnl3RzVpbFFJUDJveklvcWlGK3NXZkllV2NqUU1PRFcwVERHCisrSytnTHZKQVU0OVFITWdxcDFxZ3Z5UG1QenZyVUl6T2xXRGFTWStkeHVQQnk0eWNHWlB4dGhiaVJRMUVhK3JvCitqYzdIRGE4NkVaUnNKeWxMUFVEdHZzTzBhaThlaGNHZWs0SFdUMEpockVXR1lRSTRHcmtEVmxaQjVzTFArL3dLCitrYjl3SDV6NFR1ZHZpVG5GQ2NtWmhOTnRiVU14MEdqbm5iS0RQV1h2OXQzMkpIaEsvR1YybzB1bWs0SnFWSmJvCitKd1FqdmFuQ3BtNkpOQWQxbnRHOFlua1RDaW5OQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlM2Z24wdlJCckxqWUczCitjejg5V1RDY1R0Wkw1VEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFITmxrZDltb3dMRW40eFdQdDdPUTZ4eTlFeFNmQVNOUk5zamZKZnZ3cVBGCithT3h4Ni9NRzhSMXFBZkZlclUrMmdOWitrQTRkczZRZGZaRXRENzJpZGpGVFdFWndlaEVEdk9EVmZqSVlCUnRwCit2eEROaXVlRWRpeWUvRFFSc0pocmRwK3hSTG8rbG4yWldvSjdrQUl2WERnUlpUN3FjL1RpZkRkS0NST2xlMU8vCitvekcrN0ZQcG0zTWZsOFMxWEFSeklmY3dpRDczZzhmZWxuczdhU0hDMGlaN09jSzNBRVMzbEJjR1htb0xvRUU2CitDTUNCaWVTMFNBU3FBYWJvSU9iNmMwUnhIZmtjQ0JGL3JoblptNlFNcjVOWkpGSWEvSm5nd1hPRXpoVStRLzJDCitRaUZiZHJIM3VYbXdKQkc2dWF0TzFGb1VtNVRQRTJXUW50eFhPSkg1OHNuM29yY21RdUtLZ2xQQk9pVFBVTkNqCit5M2psa2M3Zk5ISkVLbFZVNzBHMDRXREgzQkQvT0FhTDlVT05oZkpEblNwK0o4RjcrcCtiWTlUMmEybFpJdmtqCityeEYzV3A2NUlEQzNOb3ZDazZydzd6b3NLSHVrNk5xQjVpU3JMK2hRVVZxNU90ckFNTHJadU1uMVUxQit5a052Cis1SnhLeXFPK3VrcU5adFQ4cDBobDc5SGpMUnJrRU94bjhHZ2M1MHBaZ2xRTEljVlZzNlJkczlsN3VGSGxMY0VUCitQSXVmdk1tZWVFQ2Q0VGJZU0pJUUh6eW5CK3JuNitkZ2FnNDhuYUdlUVo0VUR5c2cvR0RzTFVSQ0RCZWgyNXpCCitVMldlRW94NEVFdk5TQ1JNTmFXSmpCWEQ1R0puWUw5V3VBZFJjSkwzdVh1NFZaS21rWGUwSWtpditrT0o2RTh6CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYzMTBCOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRzdjaUtweDBBdnBjd0FBQUFBQWJqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1USXhNREl5TVRnME5Gb1hEVEk1TVRJek1USXlNVGcwTkZvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0UmprNVJqSXdOMFJHUXpnM09UZENSa1k1TUVRMk5ERkVNalZHUkRWQk5EVkdOell6CitNVEJDT0RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTnhCL2FGZ1JWS0Zqd1V1CitFTEV3WjBqRTVhSGF5ZFJWZDlUNCtLUUNOa0ZFWHcxQ0FzMmNVMDNnZGZ6OTIwOUVpUkFNSmM0SGQzRFdJNVJ1Cit6OXVTRDgrQ3ZaVUx2SDdFcjdHYW9QcThrQkcrZDJUSnRiSElUR3ZYMTQrK3p1dnpVQXlYVzZobzV2dUFJTzlZCitJTldZYVJkbGpBeFVPMlRndnhHWmR5K2Jac2Y1dDdnbStjWmo5RG5HeCtyMkFsM2k2MXpnRGh5VjljaXgwYWhuCit6V0Vrb1M3NVV2WEliNlNXbytMME81Vy9nTnVXckFrT2Z1NEJNWHpObmREUldDTHF3Yk5XVi9pejAySFVjaTZvCitHTFdwcjAxVkZMR2lIOHZRTDVDR21IN3ViWU1MVFEzK0FEQlduK2R5NkVmNUFTQ1kwWktKaWJPRTNCcGpUaEJHCitzWTJGMjMwQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUGFoaTNjMzdVWnVYTFUwV0pZeUxqNU9rNncxTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFOUU1GCitocDJpWHIwWGk3bkdqTDVkY2xPUDVxYTBkNHhwNzM4ZGloM0Z1NFlWNmZ6WDljMXdZNkVXVEJvaVRFVWZmNExHCitQMEIwZ0MrK1RGWXk5ekRBWU9vdm9WWXdxL2lDVzUxOERUUWdJWkZCdHJ3Z3JlcnNXbGlSd04yK1lZdDc4YkV3Cis4ZTM0WDJ3T09zUGFjNXY3YUdVK0grZGJBM0xTbG1WVytwM2d4VVhtLzBWV2ZCY1FPc0czMFBTcUY3NnAvUC9FCitsV0dqQ21IQzdtM2pZUnh2UWJtN1lHZWZ0Q2dlYWFDd3ZjOStzU0t6R3F4OVBxV0NPemszSVQxVHVCODkrNUR3Cit2ck5xN2wyR0ZWQUVqL2xRN3NaSjA4YnBqbzRxemozVlM1VGlPaENMNVR3NGxlY3lxQVRzTlhzdFRkVkw5VlVoCitOWmRLMVhodlhHdmZlSkZoNGxFTi9YOWE0SGpCNGNsQXFNS1Y5NUpjdVhVRXBOTnFQcjBDZE1xZExtMnlBOTBvCitsVk0xT09XZTMxRVp1cEJoTmh1dDRIdUtpUEYzdmIwYWs5UTNBc2YrYnYvTHR1enhHQXVuMWNDemZwRmhFYzFYCitjcXFla09oK0dqcVpHYUpqM2o3eXZMZ1B2cFBXNm92eUxoU0FOa2dUR25RQnVjbWM4VnphV0VTVkNKZ2ViTXBqCitRRW1uOHJBcUtXYWtteXl6bzRETGVKN2MyNkM4MHh0eGhhT2FuSkpWQVUxaGY1L3p0OGJPVEdLaTJMTHhpN3Y3CitHaFBRbkw4MDJpT3RtK1dhSzFUcTNFUFRBY2NWb09XS3hMR3FRcyt4eDV2dVU5Z0tOMlIvckllMGpad0lybzByCithTXdPcUNDOXZsM3lOY3FWaFJBeW9PV1BTWTlBNkdGL1puajFMUWs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIElOVEMgS0VZSUQgRjk5RjIwN0RGQzg3OTdCRkY5MEQ2NDFEMjVGRDVBNDVGNzYzMTBCOCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW5kd2ZEVnlSd2RlWFFBQUFBQUNkekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXdObG9YRFRJMU1ETXlNVEl3TXpBd05sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMFZaU1VRdFJqazVSakl3TjBSR1F6ZzNPVGRDUmtZNU1FUTJOREZFTWpWR1JEVkJORFZHTnpZegorTVRCQ09EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU1abitCdExSbndkb3ZSQgoraDhuRjE4aFhhSHZQeVdrUXhLaml4dGtHYmt0aTBQN2xDSmxzc3l3cnpOeW9vRU9zQTFsVWJDNTZqRVZXYW1CaQorV3ROaFZkSW9ZRVBMUGhLai9vK0tqTWRITExEeHh2NnI3MzY4WTM3dWJpWTZUejM4KzVsY0tGRzN2VjNGQ3lleQorbklvbVE4Y2JLR3N1M2o5c25IT0hSOGhUTkZBa0dLVlU4MTdPYVhyRk8zQUIyN3pVUk85OW9CZkZuaFQ2SWpxRAorajk4UWV1NWwxU1FMOEE5SElna252bUpDS0VNenYzUzVURktrekhRT1hzcld4dGE0WVllY2dtSkdYVEc4dEhUaworZmV2ajI4UjRDUkF1dWxkb2xlcmNkVEowWFIvUTdHN3lsUGVYbDZteDViS3RwZnhQUUNjeEpidEVsOU8zekJXdQorb1IwaWl5Y0cwZENpTlFZdnllbGlwcklXQ0I0Tkx4cWZWdUhjbmhzd3N1L1J0d1hXYVJYOE8xTG50OFBSYkVtZQorcGN0ekZBUi9DdU5YY2FiRUhISjU3Mk1iL1c2SU50d0RjQ3E1RXR3UG5ULzRhWkVyM1ovTlVtNEsrRmJOSWtkdgordmJaeFVvclU0OWF6aUJJdTFMUDE5cGJ2aXJLQUNQbkZ2VFVlcnAxbXdJa2J2SjFIRHdJOVF1cWFSTHFhOGtwTgorTzFkeTdWc29SSmRmL1R2Ti9Sd2tGUEg1V2JIVm5CdTgrK2hoOUZuQTFsWWVyTVE2MEdWeGx0d1VZVEFQSDVleAorRUFjUFpoK1JpQlBIQ1JQTzRmNFRxOSt3cUVmSmhmOVRzTW9IenJWczZnR3g3cjJKbnQ2L09QNGVQQmhoWHJoTworNnBVS2NSazMwQlBuamRUdTB5UnkrK0x6OFF1SEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRQldqOTN4aU9vYXJoZQorMkk2WlRVWkVnOXpOMHpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRkludDdLTlBnWVhZOUpFK2FDc1BFZjVzRmtqek80UkErZGtVbnRubTJuSAorWFRtTmhZaFVwTDFzMm9sNEl1QmdRQ0IxV09uMjVaK2FjSUhQOE9WZVpuV1N0UzJXYzBFK2p0T3I0YVBaWEp3YQorZzBrOHFjL3JHUGdTSFlDYnhIaTlWR0EvM0Z0OUJVRjRLOGZxeHRQK3NVa0FLcXBPcWhFcFVYbE16QWxSR29pLworeVdneU40ZWQzRGZBRFBsaERDNVRHSEhHQTVCMXV6ZGh2NGh2WDRKSE5nK3JXNE9VUzJ5YTRDLzRLcnJwU05CNgorNUNCUnA1VE1maytYZm9RczdJcUkzOWhaTGw0c09JNDY5OVRHbVZ0NVltT00xekZTczRxd0I2d0w3akpKeTRFZgordzd3NE5xR1g0VHBWSEVsV0FMd1VpOFYybVExa3FxSVVkcmx1S0NDNlhLa2JMSm04RTErMVJ3MDFVVEk3cEpUaQorYmlOVDl0Wi93M3pQU3VZc1pmdTRnV2RnTWhrTzZJZE9SaDdUaVcwM0lPL2lGeEZOQTBaV05Vc0phUENoQS9ZMAorb1RPRHJDVndmS0Fqc2VaTnFqMHhhdWt2blBPWlh2QXFTU2YrcC9Hc1IrWUxKa2QyTmVkTGRCZHRiS3VFU1FQVAorS2pIUkRyK3cxcE50WlUvZXRaSzU5SmZoUGVkMmZZWmQ2eVBDb3UvSDd4QWRtVlNOdC9Oem5yMWVJbnZSMmJUOAorb0R1TEdxZ3FSUlFCeXljUGVaYmJBSzJYVnBUMmlZZkc2cGpWT0V2bHJiOGN0UGJWc1lpK0JsVzYvTllqbHhwQQorYW5TV0wvWHRQbFVMeGlFb1l6ektyZHhad2pyOXczeDUwdEIrOFcyMzVUdEc2Y3lma1ZtUUowVDVEZjRRRFhGSworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIDBGQTdCNDk1MDQ4MTI2MTIwRTEyNzMxNjA2Nzc2RjNENjhBMDM3QzAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUQ4UzVwU0p6dEVDTXdBQUFBQUFQekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXhObG9YRFRNd01ESXhPREl4TVRFeE5sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdE1FWkJOMEkwT1RVd05EZ3hNall4TWpCRk1USTNNekUyTURZM056WkdNMFEyT0VFdworTXpkRE1EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQVBTam5ESzdadTVhdUlTZQorTlJqbXR1OG51alhtOWtHd1Y2emFveFFUSlZEbVFlRkR5UHorRVFPb2g1NzdLZFNkWEtoMGVxN2pVclEwV2txVworZjdFQkRQb0RsKzVuMmVqc1NDckJFazVPc2lndEw2cFFuSG82cHNwR09IdnJGc2loNHJ1UDV4ZkxLMFdVajd5dworSXdBVGxFTUZlaU9ZdTRSd3lnQlowWmR2U01HWFJnc1VqSENUTnYrWjVlWkpkaUY3b2U2a2oxeXJmcTNqRFNUSworcGVCa3Iwc0dPTjlRekU1Q2dTVkpOTnlHUHJUNDlQRmZ2d1NFeGV6V3NYR2V3ZmNLbnFNQkNqTko2TGcwa2FaQQorQ2UrQTRQZEYvTTFuSFpZNURRZ04vSmptLzJxZ0R0RFZGc09TOXdIaUVVT2IzMHRtOWNWNlpHdUFzK2dqM3hvbQorT2tGQVc2Y0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRksrUFluc1FraDE5RkZrbHRxQXYwb0pHYzFsSE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBUmptOAorbk4wTVljYWtEZUFHRE80MGpiTm0yRjlTSU5WRUtqU0doaWhpcjhpM0lIYUpiZ2ZXVXRxUGFOUU9aZzI3YWUyQworOG9oYUowMzRFblFoNnkvckZucVpTaTcrTFhGTi9ReHVTdlBrallPK3RWSFVzSjNqaFpCOEFCV2szQ1dLTUYzVQorTisremZCV3hIOFFVZy9UNFNWLzlwQkxHRXdtZTdMYzQ3SnZFY3E1NzhWaE1oSElRODNGTEtlalhjNGhsL0M4bAorVHhGSzVuQmRKUTZzRE15QXMxOWd1YVRDcjhhVUhQQ0hSMGJMb3JQVWZzdHlzRXBoQWIyNFk3U2IyTkxIZTdHZgorcHJDdGFta3BySllwVkUveG5tM3lRQXEyK0FmWGE2cmVYZ3ZiNzdlZ1YycjhoSXp0TnR5NEFpNE1nemV0Y2lqaAorN3ZKSlRPY3JvZ1hrRmxCTTlHRXZ3enYxTHBLZkp3Y3hwOTJKNE5kYTUwckVpQ3NaK1dyelRUc1JmaVVtTW5MKworeWpXMDZGcEp3VVhjZDJHS3NBektLc1lvMHVGMW95UTlRV1dBTVUzRGpuaERIN21jMDFSSEFSaFZHby9sSmVUdgorMXB1Y2ZTU1pKRWp0T0pZNDEwK1MxSFUvV1YycEp5K3FiYWlvNld3dEoxQTV6bU9sZ3phbFRtS2R2QVoxYk5lbgorNElWT3JlNE5Dc1BqSmF6YzhKZjVFKzgyY05RaWU3VGh6WEY1eExGbXdEQStoUWZPOVdYRGljUGZzSW9nUEQvTAorbWUrTUhGWU5qRy90YmhnaEpEZWZHbnhWVVJ0Y2ZycnFSWUVmTUc0a3lJSUFxWUFJbitVWTVSaWlraTlEN1haZQorM2xPNENlY3c2dTNvSTMvZW1BaWk3cTUzay9jWWhpT29lb3VBelZBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIDE0MDkyQjVGNzgxNEVDOUI3MTNFOUE5QjkwQTRDNTE5REYwOEU2ODgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVqK2o3UE9CRTZXOUFBQUFBQUFTREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlNVm9YRFRNd01ESXhPREl4TVRFeU1Wb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdE1UUXdPVEpDTlVZM09ERTBSVU01UWpjeE0wVTVRVGxDT1RCQk5FTTFNVGxFUmpBNAorUlRZNE9EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtxUThMdXJ4WXpCN0NocworNzhpMGNhUHU1R2o3ck9TK0toNE96cHowQ1JnanFBTjd3aVlybXFiazI2TVREV1cvZG94NkpicWMxS1duckc5RworTml5TTlheXhBTENweTQybDFldmJpMjRHNXlaQUpwRmxzQnFOLyttZjBZcWVTUS85WkRKcUM4bHJpOFk5RndvagorUy9hNHFrWG5DT2cyOENtZzFQcDZ4ejJSYkZmd1o2VGFaZFJKSEJOVEFOdS9BNFlieHJqdzJFVW05U3pIT1ozWQorZnVqY0Z1cWJSZWJISS80ME1KVG1scU0yWEFmK2pGemllN0IrVlVXdW9IcWtxREFHWVZzUEluY2trSXhHV1ZpbworNHpFbnp5eE5SKzczYW9YWnU1eEExWXgyb3YrNVRncXAvaHVQY04zL3g0QlQySmdvMFhQWUZwTXJWSnV0dXY1WgorWndFZ1A2MENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRvWm1vQ0RLWFlWWmRtbmkyRFNTd2RhTHlXaU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBZnlWZQorT3lFUmVJL2ZRMWpldElQZmo2VXlLV1lhNUZodlRKSzc1WDI5MDUreGU5THdrN2RjY1NFUjE2aHhpeHpFeUFaMAorc2xhb3E1NTd4UGRNVnlHY3VOdmxmRHIxSFhkRXBKcWhPay80aHNKQWZJNlZld1g3aFRybVdkUDJtRmtqNlYyWQorWGFoZUx1azBQRTBocU8wSEJnQU5jWDRmYkRHZ0x1TjJqMTJCMWxYdWoxTTNtUGcyTnkwemJwcjU0aldFZFM1UQorQVY0bXo5WEc4TXVnVXZlUEtRcnh2WlRvNzNNbkt2cCtXanpkeUNJaTk2RkMzTktCeVBLOTE4RjFUc00xcFRydAorMWliQkdJbXpsK2VVOGl0TzN0UHRyYmZJSEdaZXJtR1FoWkUzSjQrMFB2S240S1RVTURFWDVNUHdGbEo1OWdtVworVTJvbGR6SmxmbEppa1F1SWVTcG9STDFzdCtSN0ZEZDdvMUlmMmJCa3FFL0FrT0QrcWlPMm9sdXgvSFJXcERzaAorRWtUMkpzdy96d251b2kvSU9HSGZKL3Z3V3U5L0JXY0djS0FQdjAvem9HVzZidTFGV3BXTU5jRDF3bVhxYUpEdgorVnVUOUs2WUFxbU1RaC9xUUhZUjQ3YnVHMkJJYlM2N2lUTkwxakVIOG82ZmNlUWt3VXZPc1NrUSs4MHlVZXc2MgordnRPVk5nL1p5aS9vbVNMaEhUVXZ4T3JNT2NnWnBpa3FzN0RaMmIrY2lwdGxpM1ZHME1YL1dHazRUSWtNMGNvSgorWXFNdVY3Z2VCNm96THBBREJ2SFRmR2diK1Q5cEJINFJFSGtBSUhtT2x0TDV1MlZyWThSUjNUYjFxbDVzcWZUcAorNHRydFF4Y25wd1JRMlY3MjVFTy92REQ5VVBkV0haM2hnQXhGQVJrPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIDE0NTEyNkQwRkRCNTNFOTk5MDdENkZDNkZGMUI5MDQ1NUI5RTMyNEEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUU2VU5IT1QvZXoyVndBQUFBQUFUakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlORm9YRFRNd01ESXhPREl4TVRFeU5Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdE1UUTFNVEkyUkRCR1JFSTFNMFU1T1Rrd04wUTJSa00yUmtZeFFqa3dORFUxUWpsRgorTXpJMFFUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU04ZVVjck5NclI2NCthWQorTU5WY3FRQWIySGw3eEczMGtKaEd2eWNleFFQOHZkNUtHQVNrbkczaEt4Y0hMTlpKZVhPSzR3NkZNdGR4dVo2RworOE9KVlBVYzZQbW56dnF0SlFoaWRvVzdYa21ZbWVvL0l2SFpjUzFRTnEzUUs3SkovMWxaRTA4SU9xSjFMQW5nbQorMi9oVUdORHFZblFDc0orYnRyZW9scTcwM0lzS25iQ3pPdFR4amhMK0VCNnpVV3MxVXdsWGpuZ3AwVGIzNkxMMgorRVVqWDh3ZDVCZ3RkZ3ZiZm55bWdheDF6UzBuMjh6cm5BQXZiMHdLQVl2YXhubWVmVnpuS09lSkFNZVoyWXFiTAorT3YzMFVQcFA0bjI3TmNoK3k1YXllRkhCak5GdVF4aGI4UmVlakxQM2R5NmZxZEd5S25BNWRkRTNGZmViOFI1ZQorZWFrOWM5Y0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdsVHh2R1J6MERvNE0wYjJDdnJzaGIvSFcwdU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBbjRFNworbEx0WlhoTGpOTXFwL2pScnc4NnM4VVdWbVNsZy9OQmIyR1NMbjFkQnJ2NS9UZ0pUWlFheUhYZDV6ZytZZzV5UQorL1loTUU3SG5TN1k1UTVMUkFGRFczK3dPZEs1R2JCWStkYzlxRDRFL2FhOWRtU091d2ppQUE4RXo2bkFkSDdvbgorK3gvVWtUUWg0NFVldkl5ZjkybkpvZ0xsNUhETExEK3JnWG4xc05VeFA5RXAzRFdOMGdkckgrOXNESXcybFE4cworTmc4bDNvNTV4M2hHR2NOcDRQSFRxSzRhM3dJUUhzWnpOVTBkQW9mRVM4ZlBpVjZEWHpQYWFGUEllTTE5bEphQQorc3dtZ1dyUkprUWNJaGhQaXFrU1E2ZFVESlc5UmIrWUR2S0doTE1YOGEyMGFRRTdlYWUxM0lCbnRGZ2xGakF0VAorN1ZpdFRkNjhTQnNBY1U0K1J0M25raG5Pd09uak1INFBjZlJDRmVheDBNdzFkdHRvdkhWVnRPZjBwbFpBTEYxMgordUJBeStHWGFPOHNjRWRVdlZwUlQrTS9yVWtORUZidmwveDg0ajFqMStuWndRSzhOZDUvWFRBdmdsdlBKc1FMOQorRGtKZDlIdHlzclNDbE5sZmxSNXNSc0JaaC9LL2ZwUEMwaTcxUTMyeXNnSUFZeW1KUE9SMnNlZFU2YTg4TXg0RworRXVHRVVGMXNhS21MSzRZWkFBbGNmWjZVeTEvVzdDaWZMRWpJTEJRcG9waTRnRUkzUnE4QWlvRitBanlEVkN3SAorclJZQWhxeEVYb3BraDArOTBuR0pXRllsdk44aE5wN2plcnJKTTlWZkZ5VFNtd2pjaHpFUVdyV1MyYVNhT0NvUAorZW5hZTZzYjVRUDlTcElGRHdBRCtyWXlTNXJDU1FUTytrMmFYV2o0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIDQ5OTRDMTI5RjFBNTQ4RDQ4ODU4NkYyMkEyREY4NjAzNzM5QjNCRDMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVWMTVIK2srMUswMndBQUFBQUFSVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXhPVm9YRFRNd01ESXhPREl4TVRFeE9Wb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdE5EazVORU14TWpsR01VRTFORGhFTkRnNE5UZzJSakl5UVRKRVJqZzJNRE0zTXpsQworTTBKRU16Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUp0bkRpQW1WZjdIVU5TSgordEd4QTZXMDZNSlk4T0VMdXlEQ0FSVjV5VnVIQ0ZMendIbTNWUTMwN0NJcmRvMHYyOHdsR2svekxtc2lzUkptVgorR09PakRFekxlVU5ub0k1dmkrQlNrRG9VQlk0K0lXMlNEUzlIN0l5Y0k5RTRZWUdnbU96UWFZL0hKZERwaGNZSAorNG5HZXRmRjA3aUorakp4NTZ2c0t4dmZWcURRQ0VHVUFSVFdzR2NNdVA2YkhrT2tLelhLZURNMGM2Uk9KNWRodQordDNBcXk2WHU2dWFXTmx2YlRvVVB6aW1wN09HNnpZOWVDRmZLMmJ3Y0MveWY0NVVob1NBQ0dsT2hIRnhLMThGQQoraXhEcSs1NFZjQnl0clA4MkNXdDNNRHBnOTdKb0VGSlRZYjBIdEVtZk1GRDhrUEREVXlWWUJ5M2NKOVNvTHY5ZworYWdXbThSc0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5EYmdyNWxYaDh2cVZrczhCQko3NzRKL0F6WE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBSjVuRQorYjRHbmdWbXJvbTNKQ3ZmdWJQcXI1OGhRbDB0cHBRUzlhYUpQWGh2WHQ5SHB5OGFCRGs5S0FVU0RiWGtUQ1lhMAorL1RUbU94bWpzcGRLRFlkdzREakdWK25ncDMyUEQyMkRIc2tja01RMnljS1k1eWhiQXdWVDlRa01UVkFYUmxORQorNHRUY1EvMWhZaEE4WDl4YTBnK3VqcGF3eWlMbkdtSHBCdkhXbzRwMEdzc29LdVl2dS9mSnZHVjY1UWsrNUdlNgorS2VzR29ERkZCK1BUK3RYeS8rbFhvdlFNazJ3eUdaT3dldVMxMjZmRHBoVVdma3lVdEh5bmJxcmtBMFN2YUIybQordnRZc1JGS2NMWW1EbWNWVnhxOVZlVi9aaFFkd0NUMGw2Z3c3WkVsTzhmLzBMdUVNelByMUNDS0thRVZnSlpXQQorOEpKaG9qS1VoSEZqMmd3Q2J6TXZpTGZLWnRETEFiUGo0MWovTjJ5Um9qa3IxZ1JSK0JFK1I5bWsrOXI3ZVhVYworMGRDbTBWQzR0TXUzaFB3bnh0ZkVHV3hQM3J5bFNYV3YrN01RcU9yRW1MUW5tbXNIMjNGdFozelkxdXo3SGMyMgorb2I1SDlZRUdOaWZBeWVLemhmWVBRV2VoRjNwVzE0MnVQcnBGbXV5NGRNdzM2SURhbXp5NmpUM01ieEU5SzVFNAorVGZlMnA2c2NnY2F4dTA0bkp0ZlFWZU81d3k5K1VRaHY1WUFwN1J2YjFNUHVha01HTlJ2emI1QmplVk8wYm5YOQorTkVMbXFlUEtQNUNFeHlWK09lQ1IvLzBPZ1lleUFLeXlaOVZYbjZ3TEdCMVNHNUpMWEt0Um1RcVZ3cVhTZUZOMworcDBFZzdFQlFkWkVPUFhoUm9lamJQaHI3dU5CMUlmMUhHS0hIVFljPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIDcyNzUwQzUyQ0EzRTI1MEU3MDFERUQ2NUNDNjkyMDQ0OTRBODU3M0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVzSnRhSy9JbG9BU2dBQUFBQUFTekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlNbG9YRFRNd01ESXhPREl4TVRFeU1sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdE56STNOVEJETlRKRFFUTkZNalV3UlRjd01VUkZSRFkxUTBNMk9USXdORFE1TkVFNAorTlRjelFUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5rSTZxck1EWnRvNmVWdQorc2ZzcnpzbEl0cyt3RXU2a3Q4QUxpNjJtS2JRWXlwM0w3S0h6Q1doME11cG1vdU1tMWFuNk1EVTFQMWowbFVsYgorM3VvdlUyNDZaZzBVNFhmTmpxaVlPd3hhcEF2TmFEQ2JseXRwaW1weGUwUW9NYXNwUXNGU2thYkhzMVVUYmw3UgorWkhLcW0wV2g1K3JEamlIRGUwZGJDd0dFUExSaDdGNzhpdnIvNnNnVmJwbUhmWWRwVndXYmtnd0UrVmZ2Umx6bAorVzF5R0JIVk0veUtWM29KSWRiMWYzQ2pWSHA1QXhtQzBYTHdZclQ5ak5mNzcvbi9BM2JtME45TkhzR2dtK25DcworcUlwREhoU2Q5V0puaW53TzByZmdmVXQ0R2Y2dThXcmVlTU1OY0pnek5QVTJHMUx1Y3lINGlFRVY5NERKVit0cQordzN0Y2hRc0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkxRRi9CSHNWdU1RNlVQU2ZlS2lzb2toT29kQk1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBRXlRZworOWp0d1dST0o3SUJxYUg2dEN5WVJKTklSbkhURDhqYXJWOEtKVU5ZVzNxMFB2aFR2bzRmNzZQZlFJT0YrdXI0cgorTDJ3Qi9jalU4NCswbW53aEZwVjdVeURWbUFsTjV5a2tCa3l2TGlQb1MrdzVTK2hsWHRPRHN3d3doaW5mWVY4egorLzVHNXJuMU56YTFPWlFydm9hNGo5S2ljZFVaVWpOemFiWEN5TXBWT0M3cXJDUTNjSHg1aE1WRCthdWlZRkxOYworQTZDZ2FMYk9wemhVZlhrbkJWYnQ4Y2pvY1FYbVZIU0VBTjloR3d0eUlGSG9KY1d5SFdBNk15ckZ6cllTYmJDRQorc3piOTJqYVBFWUtGMjR2MVFJV3FUM2dydVZTNDdYWEd6VTdoS0hsam1CNVRVN0drZGY5aVVWaFZKbmllVGl0VAorUDByOVd1ZEk5ZUovc1VNMldMTVg4bjQwcEF0clc2L2RwRVRHY1Z5VlJzKzA1a1ZnWE0vNUJWZTY5bWVtcHBFTAoraUUyaUJVN2M0NlpSVkx0R1hCZFRwWURmWVc3aDE3cGNWVEJRQjBwNU1Gc1IyaDlpblNlbU9FbUFXZHFzcUNYdQorOU9hNzRQL0M1UHgva09WcW1MUGFFM09oOHd1M2RRU1hWWXAySDRHckpFRXc5NDBZT0tGd1Z4SC9Sd3UvZG1nRQorVDVBS0VYZWRTN05GekI5OVNvWHFPVWlDenRwUnFZdGFndlBkRDBmaWVkbkFlQXJaQnZPNGd1dG1obFdyZFNxSAora3FnaG53MVYwQXJsQ3drMUJzcXoxVG9nOWRvd210U2hndlYyeFcwOEFsMHBMTlNiRzJhbzNCYmJIQ0xxbGJabQorVTA2ZnptQXRvWDREb0VZY3RFUFNSMWorR3hPd3owWklTZUhqb0F3PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIDhFMUFEODQ2OTNENUQ4OUIxNDcyQ0Q4Rjk5OTA3NkVEQzQxMTU0MDAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUVKQ0VIUVRwYnZvRUFBQUFBQUFRakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXhPRm9YRFRNd01ESXhPREl4TVRFeE9Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdE9FVXhRVVE0TkRZNU0wUTFSRGc1UWpFME56SkRSRGhHT1RrNU1EYzJSVVJETkRFeAorTlRRd01EQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtmcDJIUDRNTFJKNmJtbQorZmdDSzNQeGV6eS9XY0twMVFSdkpENU9LVnowN2NJc0JrbE81L1R3YkF3WGFSRmU1L0VmREhHNUZ1aGNROE5VQgorVmJaUTZtaDhjYndMWHZVMm1FdXhLcmpuODVBcjY3STNnL3dPTE9XMEhnZVduM0p3WXlycHZQRGFjMitEY3pjcworMzY1Zk1jdmVTYlQxZUhnMmRLMnp1RVBBK2tJRm5EOHJpbElUYzhjaFZKVXRsUmFQMUJnQVgzb3RFSTAwdTU0QwordVFYTlpMUjYxbHd3Z1Y0L0R1Um1XdnFGamdwWWYxVXRjVVVxRU8xd1R1Zmo0VHhqRmdua3ZQQXhaeHlFOXcwMgorQVU2bHhFMlA5ZWFVclJZZElGSjVYQ0xNM0kvcE91b0s3VVVwNnpxV0VBcldLMVFFTHk1eTNSVFpQM0YzRWFYNworWE45TUt1RUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZFbHUrZDcvVkhtU2RqZk9ySGs4dkFuZkloM01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBVFlhRgorVUM3R01QR2lQWnJ4V1I2REppaGFJT2crMFI2eENRdTlzdElpZFVoTEZ3TUFUc3ByZ2dYblQ2blF4K08xNk9xQgorUnIzUVp2SWdlL0hNTlhKWTlhRnBFWVlMenJOR3NBUkRCK3hCaGdBZzJpSzhxSnZwbDBuMm8rYmQzb3FTZHRYTworMlBrR3pQUFlHVWVBRk1QZzQyd01Fem9NSHhETVRGUUxwS3UveWZWbHJuMTN1UzFWVENVWFMwTWV1d3gxcllTTAorMkNac2JVdjVFNE53OGZUZ3V3ZU9zNFNHcDhSMW43UmVobjlhQUNZSXQxTnIzUFpYR3prUUM0eDJoTWpqVzFERgordTdCMlh0L3habDBGekZPT0ZheGhHTUJHb2d2MHBtY25xOVQwbk5ibWtWaThkdmtSYWJwV1JBdFBqbDA3VUZSdworV0xObEJtcFlLSmJTRW5QazRxZXkxTW9EVy9Fd2lyaHhPb3Qya2dWUHNrYkxxQzRDbEtqaGwzaVo0cU1SaXhCagorVFBBQmFlV09jc1J5bXRTdzZib29lOGhrbjZGYmRXKzNnWEdkTkRReUt4cWVXUmdyNllzQWxjdnpYc2hqeGlOeAorTVgvOW96SjJtY2JqeHd1S01qRENldkRMYXlYNXV0blFtWnZqZ3lhR0IxRGZNRnZDQXRpZVBFNGZ5bGdvbmtQbQordzBnakVRcEMyditKSTNpQllFeWNodzFoWFBEWFMrMWlXYnluR09JMjliQkRXVFFPY2txTi83akR5TFZ5RlBPQworOGY5QU5LSVpZWTRoZzlTZVk5M2RHZ1NWY0tFL0gweWdqdTJjcFdydzZoVXg3eFE0SjFHMkcvRXRxQnR3L0VmNworSzE2TC9Jak42TERYelRpSDlDM3pDZVBCcUtiQklIckFyTG1FWlJzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRDIEtleUlkIEJGOUM1QzZGQkY4MENEQ0U3NEFCQ0QwRTBFNjAwNEVBMDIyQTY2MDYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUZGQVpNYlcxQWx0QkFBQUFBQUFVVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlObG9YRFRNd01ESXhPREl4TVRFeU5sb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFTXRTMlY1U1dRdFFrWTVRelZETmtaQ1JqZ3dRMFJEUlRjMFFVSkRSREJGTUVVMk1EQTBSVUV3TWpKQgorTmpZd05qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxMMjByeWVlemsreEozeAorMDdsZjY3MlBFMmYwaHBvVW9QbW8yRFFoVkpSUnB1Q1Z2REpoZGRobnJ3YTkxbzBjb1AzclJHMThNa2NOMEU5UQorZEFiZ0k3aGVpT2tlbFAwWVVlOStqdEswNGRFamJyVy8zeG9Db0s4MGYxMzhMeElUeS9IRTFoRTVDV2pWSUJndQorV1NrQ1VRZ1pkY1I1WVZicFVsanBuSXYyalZhWnhxc1BFbEpMY2tvNFhjUW5FcVlHMjNxRjVlKzFKbzh5MnNrLworN2ZqcG93VCtRREdWTFVVSXBSUDFZTEI3c29oUWk0Sk1FT3hHdGl0ZitESjNXWGhNTHNUMCtTSjhnSitlM3l4UgorUmhVb3QrZjh4VnpnYmtNdlJsOEkzK3ZGekF3OVo0UTE2SXVjSTZKWDNVMnlPdzhGYTE2NnpudUwxYmNlU1BUbAorKzA5UWh1a0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkYrMC9WM2JXcUxBRm5uZ2VWdjgyY2xiVG41UU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBazRuTgorRjBnWURKSEdGUGdGcnJCdERHbjlxOWhPMFhLQitocDI0TDBYakw0NUtsbkx4UzQ1S2Q5T3A3eGZ4QUo0K2p0SwordmUrcVlhREFkeDdlY3JOTnErVHlHVUNTM0pnWlA0SmhzT2dYQ0tvcU02eW5BOE82Qlp5eGczOENydk5hdEpZTAorZWVUeFd5N0kwcWRVOGZ3eVM5aTc0OUFUb1FPTUJUTVI5ZHBLSy9EZmYySWR5cHdKdjFqbFhQTEFUSllMTWtDUQorUDBURURvLzRlTWlNa1l4RWl3MmtaQ2R4clZGY1NYMzN2TnowREVaNm5kZWVuSm1kTXNSalc3WWROZGtpQzR0egorOWI0TENadlhLOW1uWVNpcnRaU082WXc0enRERTFYcmgwMjQ4QVBOOUpTUkxzVDR4cmthamVwK3NZclB1RjFqYgorNjlZdXpjeHI3VWJaYTZadXpVMFNNRnFXeURKcVlZOXZZeHhyM0s5NnhMeFpUdlk0U1dPSE5DUkc3L3pubEd0TQorbWt1R2llTk93b2d6dzZBKzVzdWpjdlA4N1M5Tnh1dzR6UEdaZldtZTZ1ajJLMjc1R3lzYTlhYzRPVDF0NVFaWgordTM5NWhIUWkxd01CZEhmSm9GUE5jVlpnS0V5S0o3Sk1JaFJrOVBuZ1NrSEZZK2dpVHZqcWxxdDRMcStaei9HMworR29jcTQ2bzVwTUpUVDdWUElPM21iYkRXcXJDb01hWjJ4Snk5WDR3QTRHdy9IVENMMDlTMFd3VVNiVUxYakJDNAorTUo3VHNNSDd0cG9XUnYrNnFTNExDTUUrdkN1UTBjVGk5aDltS2EwaGpxOXVUSkhROU1QeEFyZkRtVGRQU1ZoOQorSVBSc3Z2SXNiMW5TR1JhbEcyRWlhRFNUbTZuWDBTWG85OHZmMGVjPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBJTlRMIEtleUlkIDE0NTEyNkQwRkRCNTNFOTk5MDdENkZDNkZGMUI5MDQ1NUI5RTMyNEEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUR4dEJTUG84M2dOSEFBQUFBQUFQREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREV5T0RJeE5UZ3hNMW9YRFRNd01ERXlPREl4TlRneE0xb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFVsT1ZFd3RTMlY1U1dRdE1UUTFNVEkyUkRCR1JFSTFNMFU1T1Rrd04wUTJSa00yUmtZeFFqa3dORFUxUWpsRgorTXpJMFFUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU4rSXl0SGw4b01nSEhhQworSWx3QzROWEd4NzdUMlN1UnZVTjREMW9hZWxZNkMxTkR4T0VSVU91Zy95Ykd4YW5yT2xYcHAydlFhNWNxeS9SdworTmgyYnh2bFdEWU9BRHgvTHdEZXlaYWxtdTVmOE16U3pVMXNLRDhnMFZWNXVHeTVBU0gyRm5KZWtWck5xbHRpZgorTmJCUEp6alhpQXEvcCtzRnR3b0RjZEJ1bXE1WmRoL3prd3lCcFV5TFNtWC8rZm9iRGVwbzEvZUlQYzVkUnNkQgorWWJLTURBak5kREZzNWVGb3l5RGNCMm1LVFRycXY5K21sYzJOZXFlOG9QZWlXVy9tTjBSMU82YUFtdFJEV1JraQorVUJiZzBBUFdZTUVxcnpVMWx2QVo5Y1NRTnhDbTdzRm0yeC9aWDk1RXNLRFFVeHJhR2xMTHQ3YWdyMDI4Vzh1egorSmk1WGR1VUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNOOVZMN243WmNzRXZuQVN3RW53VFYrSkVsVk1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBWFNqTQorSHdMeDNCVWthRVdILy9rQTlXTEdyQzlaR3hoZ3pHY3pqZFJxS0hWZ1c5VkU5bGVnVE4vMkRicXlBQnZhMUpsKworaThQZk9CWnFUUnhPV1pKNlBRZ2JpWnNyZmo0cUsvSFJTd2hOeUg2L2N2K2k3Q0FUTUI0aGc5WU1RT25Yb3Y5ZQorYjlMMmNqa3FwT1lEeDlpcS80L0VlN2N2eWhVWHgyVkE3dE56ajlpcVBWSWtPRDV3YmRrWE55Wk1VOXJma2tTUgordVRUbUFiUllmR2JuVWRVS0N1RThaWlprZGxHNUhNeE9qaXRsc2c4WGY1S1pGckJLSGhxZGVmZzcrVXJ5VlBLOAorQmhvcVRDTzBKSmVkdEI5OVBqTlhzSDkvMjJJWW50ZEJQWlU2Z1JzN2tHbWJQSTdsOGF0S240SUNkTWk1cElrZgorMlh3T09RRWVyTDFySEFhUm1SOWJ5YUZlSzZCYkVmNFgwSGV3cnc0ZEVzbURpS3h2MkUyUTA3RHpwRzlvL1dwYworbHJLY0twbEYvMFNtMmpob0ZtNWhYVFZSS0VSTFhPclV2S3F4c2xkTGV6Q3hjVGNmdWYrNmk2My9rMDA4TnhnZQorRmV5d3QwMkh2KzNIdmZMNEFWSVEzTkliV1RUS3V3dnNMWXpVRDk2VXcxcUR0NWVLV0lJTmVDd01UOUJPMVNXTworeHQyMDIrVVJ1TmF0TVFycUVaakxYMG1MaEtKY2tJbTZaQXpySlVUVWF1cjY3azV0TUhpNHBJdENHMzlRcEg2MAordzdtdmJCbnRPZVpFdTcrYmxiZzdxN1Y3NS9WcTdHVlFkL01na2htRnVydm9qT0ZjY28rdGk0eGhnN2w0NUhyUgorUGFabUZMbU9rS1Q3RWVZTENzRDhyb0s5TzdmUlZWUEJIdW9nQVpJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgS0VZSUQgMDgzMDBGNDNBOEY0QjhDOEU2MjRBNEY3MDYwQ0Y1OUU3NDUwMTVFNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFHK09LQ09vb0tnb293QUFBQUFBYnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTlZvWERUSTVNVEl6TVRJeU1UZzBOVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVReTFMUlZsSlJDMHdPRE13TUVZME0wRTRSalJDT0VNNFJUWXlORUUwUmpjd05qQkRSalU1UlRjME5UQXgKK05VVTNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXMzdlJFUWJXNm5VNXlCTHMKK0NkdkJYcUpDTG1rVVlVdDJQelFVZzlhMmV1VC8yQ0RCQ1ZOQ001SW5zdmtSM3NobWdHUDAwRUJEdUtSUy9NZ0gKK2hzZVFON1ZPZVpwSTRPSmtsNGhkNlB3eUtPRXdiTEJoSzU4L2hPbDgrU1kxWVpzcFdReFZNMWFXZlJUQzZpTGEKK3QxREZVbm5uQ2tNRjRqejE3VWxXNlVYS3NhKzZhY1VGYU5SM0hNTVhuZ2dsN3dPQ0IzZVMwRHhxVHdZQmN6ZHoKK3hyYnVyVWlYT0JzV2VBNkxrdUg2T2dRZUxlcFVjQnByQmhSemtEYU9reVhhSVdzK0JtVlplYXZOY1crbXlNY3EKK3FxNmVMZ3FUekd6ZFlucVR2YTkyWjA5YWVPa3JBbHBnRW1uVHNDdEhXNGU3UG5oZW1wbGJOaFFtUWI4Mm40Y20KKyt0ZkxnUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVVIrSVNGL1YxcSs4ZW1SdVFJaSs4TjlKdTlGRXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCdmR1OTQKK3RuSnJ0MUgyVGIyaHErK2VsYWNkTVdQRGQwbk5mREVCM0N1NVMrOGVyRTNRa0JJLzdTaVZpWWVHTGp5N0JtQnkKK2VEaldWeC91ZCt2bWplSWJLUiswTW1VTFFBVHA4cGQzaHd0elM4bVRidHZuc1Fnc1pBZ3NTZ1luL20xMW94RUcKK0VJa1JzclY2c3dFSHhsSFVlZ2hLZ3hLblJDRjV1YnRSV24xOTI1Rm1SeHJTM21lQVRhRDhJc000Z2xTWnpiNSsKK1ZnUlo0U0sxUkxGSWQwZ1E1cWpzdW1pbEZQVmlNYzFGUk15a0xsTG1Ob0RjaHcyOWFMQ1hteEoxNU5lUThEOFUKK2VVb0FhUkpXZThyaUxDdyt5MmRHbmVzUWdVdWVWdzV0ZUJjVnJYRmk4K2xja3FaaXF4N0dXOXhuM1hRNXQ1S2IKK3FjZ0x0YUtITXBxY29ZbnMzV2tUbEtZYVVtU2tFdGZiZkdCZGpRWkh5d05rRml3SnhreGNOT0ZSeldqOEhidU4KK0RLcTU3cWVBUzdkM253eTBoZzRKSDVsbkxiekh5WlJ3UnhzT3NFRlNMaytzbHQycVBLblJ6QXo3MlRjRm9mS2YKK1RZQXNIZzQ5ZzJzZ2VwOEhnM1hBcGN5QkJxWVF2d0lDdlZZdTFXd3lMblJITDZ0cGY0Q3ZsdnA4STd1RHJ4OEgKK0daVnFBVkZvbm13V3lCRzhHRE5MVHc5SWo5LytBZ08wUGM1SVgyRDJhNVpUVFV5c29qNFE4WW5xU0ptSEpLekIKK2V3VlBsZlpNc1p4Q0dQNFV0N25oK2xkYlIwaDdvbU9zdUJoOGNmVUc5U1hVVjN2RkY2V0dtZGxVN0pXWkJob1AKK0NWZVFxbU9NdWx1aEw5S3dHSWRBanFkOU1iZ2JxQk9Ja1F1WDBBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIEtFWUlEIDA4MzAwRjQzQThGNEI4QzhFNjI0QTRGNzA2MENGNTlFNzQ1MDE1RTcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQW54WURTdnhzWmRqMWdBQUFBQUNmREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXhNRm9YRFRJMU1ETXlNVEl3TXpBeE1Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFU1VVF5MUxSVmxKUkMwd09ETXdNRVkwTTBFNFJqUkNPRU00UlRZeU5FRTBSamN3TmpCRFJqVTVSVGMwTlRBeAorTlVVM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBeE1iaDdwZTJZT0FHV0Z0RworUjZDQjhRUVc4U0crWk9NNTFzRjNHb1VNWkFka1cvT0lYT3pXd25wR055dlNBSUNUUyt6VlpmaHVOU09ibm9ucworT3JIUzd3NWZ0UVo5UzY1ejZXVDl5cURYNFdZSU9GYldnZXp0L1k0OEdMTjdlUHJWNmdFR0hFUkU0a1lXRVdjUAorY054VjRZRnBzYW5LeVhRTjdrdUV2QW1GQTVkY3lUUkNEOHl3Vm9CTVJ3ZWxvaGJnWmhQNjNTbzZIVzZPVkhGeAorNHpyczVCVGphOFBKZ0N2VDZBa0dyaGNmcWVwS2RBZG80dzlHSWI1RzZ0S3ZCdEJPVGNrN21vWDl1TzIzdU1EWAorZUxxWnphYkVwblBrdjUxOWxoTW4vOVlOMloxVm9vUmpZSTBqMGxjVHA3R3BUZGF2UW54QUpBVXVMSURzSDk2TQorbmlqdUpFaXFYVHVScStXSlpIZ1BKZElNZWZmSXVGbVVyaU1ZM0VhVGZNYVB5U1Q2c1pFQ0Rjck9mMGZNYk95MgorYVowc2V0RUZlb3BTMlNmRC9hKzdYd3llS0NoQlFPQVJYZDNpZ2d4UlJ3VkluVGpNOWd3M0Y0ZE9XT3JwSDBNQworWFgvTEw5Vy9GUGcwQlN2dEhrZGhsL2M1bnlCeVhSZEZkeks3UHJXS0FqS1ZDdlBHYWJkTXpVaVYwaThQekYxbworZXd1L3VuMEhTVlptUUNnWW45c1Zna2JDSzkvYUxWM1Z4SkxQSVAwWXdKVWNEUng2NC9jTi83eDcvdmkrVCtQZAorTnpaTGZqbnNJQ3FCZFRxLzBJL2lLcGxWM0dtL1Qwb1dmRms4bkpobEVTeGJlTHZqdlZkNkNnS1g0aGYrRGR1cQorUTBIMkJ4d2RGWE11SWY4cVNoTFdhd25QOVJFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhaaFJZVWlWTkJXQ2FQMgorMzdzeldnWHBHczZGTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFGbVovOFhRNVVqZEdoWkUzRUo2eHpGbzRhbmlWbTF3MkNmRVFUVktlWmYySworVDM4QzUrQU1FdUQwT2wzWW9IZWNOcnNWYjJSWFMwdkdxd2xvWkxTUWZ2ckRUSmNmQ2hya01VSklZOXVTTlQ4NAorc2g1VXJ2OXFtTHdEM3lic0gxdmk4QnNMRWZhU0tWL01mbHdhaWIwVjROZU8zSnNOTU1jNHY0d2YveHZWeXcvRAorWTZyWGNMVit5cEszd1N2OEdYbVlIbS9Wa3VxdE9kdHNlbG1UNHpmK2k5ZkV0M1dxYS8yYjNUMzdGMVFlM2tFTAorNU9OREhxZDFoaFZsdnIxdy9ocHdxQkpIY3BhRmFUZmw0Q09hK1czZDI4aUhaMk96VnhwTE9mM292NlpDQ1lTRworV3c4SWNySnQ1OXdEQ0pMTWliRG5kdDdDbGJxTEoxeVpjSGllUnFWbE13QWltWXMycy9Vb08vT2ZqUjZvR25DKworelFLUG1mcDkvWkN1SU9wemdWMjBrUEYvMGJUWUtQc1JEb0U4SFN6WHMrblEvd3ZVakI1ak94eDBCYTNEZmE4SQorNlRoQkVFOGlCMHQ5dGFuYWEzYktIUUoxVW1mNmN6QWNZUmZ3WXIzKzBSUGNZSDdqL1pqakVCVjlzZk4xcXd6bQorM3M1OVhEcXRZWjlCRzNsZkxxL1dRUEVsQ3FlMFgySXoraXlCWkNiUW00VkxMcVJRbmd1VFJ0cVZteEVFNk4xZAorcDMwZ2t4T0xraldKUGNXQ0d2WU93SW13QU5SWUd3VFdrSmJJQW9TNDVmdnpwSEV1ZEthOEUxNGdGZ2d1YUE4NgorVjZyeUY5SVZKUDR5MVM3dS9JSmhPelphdEJIR3NvNVhIaDJjS202QisrVFZpSC9NNzZrRUFnNXBBbS96UVVnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgS0VZSUQgMTU5MUQ0QjZFQUY5OEQwMTA0ODY0QjY5MDNBNDhERDAwMjYwNzdEMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFRRGlCc1NST1ZHWGh3QUFBQUFCQURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURJd01URTNOREF5TkZvWERUSTVNVEl6TVRFM05EQXlORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVReTFMUlZsSlJDMHhOVGt4UkRSQ05rVkJSams0UkRBeE1EUTROalJDTmprd00wRTBPRVJFTURBeU5qQTMKK04wUXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTlJd1VNU2lRVWJyUVIwTkwKK2tLUis5UkI4emZIWWRsbURCMFhOL204cXJOSEtSSi8vbEJPUittd1UvaDNNRlJaRjZYM1pad2thMUR0d0JkekwKK0ZWOGxWdTMzYmMxNXN0alNkNkIyMkhSUktRM3NJbnM1QVlReGcwZVgyUHRXQ0p1SWh4ZE0vakRqUDJocTlZdngKKytpYnQxSU85VVp3ajgzTkd4WGM3R2syVXZDczlsY0ZTcDZVOHp6bDVmR0ZDS1ljeElLSDBxYlByempseVZ5WlQKK0t3R0dTVGVvTU1FZHNaaXErbS94SWNyZWhZdUhnK0ZBVmFQTExUYmxTMWg1Y3U4MCtydUZVbTVYemw2MVlqVlUKKzl0QVYvWTRqb0FzSjVRUDNWUG9jRmhyNVlWc0JWWUJpQmNRdHI1SkZkSlhaV1dFZ1ljRkxkQUZVazhuSkVSUzcKKys1eEx1UUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXdoS3BXODc2VnZqQXdXK3hXOTBETkVlemVxTXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBS2M5ejEKK1VVQkFheWJJVm5LOHlMMU4xaUdKRkZGRncvUHBreFc3NmhnUWhVY0N4TkZRc2tmYWhmRnprQkQwNW9kVkMxREsKK3lrMlB5T2xlMEc4NkZDbVppSmExNE10S05zaXU2Nm5WcWsyaHI4aUljdStjWUVzZ2I0NDZ5SUdkMU5ibFFLQTEKK0MvMjhGMktIbThZUmdjRnRSU2tXRU11RGlWTWEwSERVOGFJNlpITzA0TmFqODZuWGVVTEpTWnNBMHBRd05KMDQKKytRSlAzTUZRenhRN21kNkQrcEN4K0xWQStXVWRHeFQxb2ZhTzVORnhxMFhqdWJuWndSalFhenkvbTkzZEtXcDEKKzl0YkJ6VFVLSW1nVUtMWUdjZG1WV1hBeFVya3hITjJGYlpHT1lXZm1FMlRHUVhTMlorZzRZQVFvMVBsZXlPYXYKKzNITkI4dGk3dTVIcEkzdDlhNzN4dUVDeTJnRmNaUTI0REp1QmFRZTRtVTVJL2hQaUFhKzgyMm5QUEw2dzhtMWUKK2VneGhIZjd6aVJXL2hXOHMxY3ZBWlo1SnBldjk2ekwvelJ2MzRNc1JXaEt3TGJ1Mm9PQ1NFWVloOEQ4RGJRWmoKK21zeGxVWVIvcTFjUDhKS2lJbzZOTko4NWc3c2pUWmdYeGVhbkE5d1p3cXdKQitQOThWZFZzbEMxN1BtVnUwUkgKK09xUnR4cmh0N09GVDdaMTBlY3owdGo5T0RYcnY1bm1Ca3RtYmdIUmlyUk1sODR3cDcrUEpoVFhkSGJ4WnYrT28KK0w0SFA2Rnh5RGJIeExCN1FtUjQrVm9FWk4wdnN5YmIxQThLRWoycGtOWS90bXhISDZrODdldU05OWJCOEZIclcKKzlGTnJYQ0dMMXA2K1BZdGlreTUyYTVZUVpHVDhIeitabnhvYlRnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIEtFWUlEIDlGQkI3OUFBMEY1MjYyNzhCRUQxNTA5MjlBNzE3MUU5NkEzNUJFRjcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQW5oZVVkWHBkdXJ1VGdBQUFBQUNlREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXdOMW9YRFRJMU1ETXlNVEl3TXpBd04xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFU1VVF5MUxSVmxKUkMwNVJrSkNOemxCUVRCR05USTJNamM0UWtWRU1UVXdPVEk1UVRjeE56RkZPVFpCTXpWQworUlVZM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMk05akY4dEJ0M012ZzAwVworam1TeVpIeFYrazN5OCtvSi9DRmg4cUxGTE5VOG5FUVpXRTJ4NzBkdjhmdlNCRksxUkVyVWNFeFJYSEJSaVJtVQorVDBrbDlzaGx1SSs1dXlCN1dObEN3Znc4Y251QjM1OEFJQnJ2UW9NbG5lZ05kUE9xU003aU9sWDAwWnhZTUwzUQorQ1pwUDFNM1Q1R2UwQlJDWTlXc1ErY1AwZXlWaW5VWC8rdWYyamFIWlNmcDBZbkkxV01DT3RPMDM5ZjVDeEpQbworWTFTTnJNQmIwN21IM3g4a3M3c1pJUVFqMzl0Vi9tQVBZUGNwcHFxQUlQVXlVNHRQbTRpUmpTZ2swcnhPNzVYeAorYVhSTFhBSEtkNWh4U3k2QlpYdG50amlaNlNMc0ZSakZzbXJvczhjeWZSd1Erb1hYVVpIdnJYT1liNjJmWEdrVworbHZRVzd2SmRRdEQvMTBNb3dYZWlDb0xxdEhSNTB6TUlxQjFxTjJrWXp0R0FLdG1yV1BXUDArMmJIUTZ4U3VheAorT0hZb0VCYm5DRWlHL1JtZ1k4aXpBN0Z4L1o5SEpuL0hpanhNRFlYS2k0czkraTBEK2x2ZEpUdUxSblpKR3F5SQordjRVWk9EMkw5WXg2cGd5OE5UaTNDd3F3SjdiR0VpR08zYmJnNXhvcnpnWmZmbWJTZjhNSDhBR1QrbXFBdzVUTQorRFUvd2pqMjBxeEFQSTlETnNEbGdPdktJUkppaHJJck4zR3ZPNWIvbWxnemxCT3d2dVNveUEyRXlIeW5iVGk5dworM2dRbEYyL25IbDVBM3JsVk9VR1loYitORlluQWh0eHRmSzVNcERJTkJsbUNTdGx5ejZDYXZIM0FMUjNXbElUaworakhwaVViMkh2ZUZ6YWRQRGx5Rzk1MWFJQ05jQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZnNkduUm12ZVpNdTVnKworQ0FBbk9XMkUraG5jTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFkZ01hOXloNmQ2MnZpRnByMlUvUWkzL0JjTjQ3SlM4NHhQUkZmRlRJTWFWOAorcjEvdksxaDkxa3REVFBuakRwSHp3OVNBRW81SlA1czFVcHREUldaOVBERjQyaElkNkhCVUswSjcrWkxqZlk3ZAorbzQ3MmFITkJIVXpKMW9GemxPUHR5SlphTnZvUXV3bVVOUVJ6Tld4MDhKaEhxSitadnFXbWcyLzd1SjAxbytDaworMW5Eeks3U3NPa3k1SFlyTlJnaHBGaEExNWxxdUdPeEVjdG84V0Z0NFhGeUxzRlZBMVV0UkltNUcxL3hqdkRRNAorWHk5Q2Vmdkg2anFSQzNqMkp0enh2dm85ekNvMy9KM1VIWjk0Y1RqbWZqNFRCRnNPSzF0QnQxdVpZQmozVkN4cworMFlBeVBRS2ViZkdSZklYcFNzWjBHcEUvTGR5M3FFRVRBZFM0bmpKcE5OTG9Hb09aY0RJYkVySnNnTmVPeVB5ZAora3VxNFFhMGFFZlVlQ2FlNkl3eTZNRVFsbXdxeUVYaVFyNm9LSVB5ZC9lWFFYTWc3UVNYZzNaVDJUVi95ei9YWQorNzBtQUgwNDhoblBVRGtjb3lTYmFUTzBBK0cvVjRqdHVLTVBMTGdPdk1LekMvRW9vTVYrNW1ick8xakVEaDFXagorOGNHZDVzcnhyZ2YyTFU0czVySnNZc014RXVWY0MvZGl6T2dDa1dmQmp2T2x6MjNvb09HS1Zqdit6d1VoWFlpOAorc0ViQzlyWDVEYU56REhIZXMreVhmZ0lscEZ2aUg3N2VoSWE4ZDlQd2JiRGFWNWxCRk5XYVFzT0JRaVJGeXhnTgorM2Rydys2QldmM3NBQjlEOU8wRWdLRysyd051Q1JZdHF6MWViYmY3S0thQldCRVpaUkRYcHcvVmltOWcwTFNJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgS0VZSUQgQTBENzM3MjkwRTE2Q0YyQUUyQkVFNzEwMENGNTZCMkYwNEM1RjA0MworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFRemVqbkkzZGlNdjFRQUFBQUFCRERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalV6T1ZvWERUSTVNVEl6TVRFNE1qVXpPVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVReTFMUlZsSlJDMUJNRVEzTXpjeU9UQkZNVFpEUmpKQlJUSkNSVVUzTVRBd1EwWTFOa0l5UmpBMFF6VkcKK01EUXpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXR0RXRyUjZ2MzJ1OHpYSmoKKy9sTnZqY1RSMUY2SDhyc0crY3pUUnlHd0gxdnJMMG1WMTBIV0VrTkhVWmRyU21kRkJwUURmSk5Cd2JEalhzTkQKK1lqUWFEVWUwcG5DVmRnc1EvdGl5RlN0M2hsNlA1Q0xEeDZrS04zRGpmNWNzL1p4RE9ESldaa2JJUGhnNVNFcVoKK1gvTHFHRGZ4NHpuZmllOU9zaGRDdFdmNHNLemdKdHdyYzVRR2xJZUgrNU1zaWpiRWlLV0ZxRDdnK2UzMVhWSGYKKys1VmdCS2hzUGRid0REaEdrWFVQdURuWHZTU2M5bk1Oc0ZUVUNXN0NIWmVGVGFxdDRCMXg5SXcyYWRDNVE4ejIKK1FIcW8rRzFodUZGc1ozeHhRcEVVcDhNY2ZvK2ZiTFM4bmdrOC8wUCtIYVZocGhncFdTWG56WU42alVoRHhkZEgKK0xxRWJWUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXJsWlJ6K1NjbUI4Tnl0Ky9HVUgyK2FQR1o2SXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBODhUcXEKK3N4ZUtkUVJLN0hXcjZlWGNFUnYxWUozc0JVYU93WGJwdWZUL1hqVS9kUFNDZS90bVhQVXJ0NHRqRUJ5WU5TenIKK1NpaFB4OUV6TnRscEprY3JuMXpGT24zSWFWdWlqUEVtRkFvU0RMK01yK2V2VWlMblRWV1FpaEV3OG51SVZRTDgKK1psUHVEbmNZK1VxZGlXd2tibGljeFNBcldLWTl2V1JVZ1pZbmhHQ0lSWnJ2THdqZUFJR0FmK3ExZ0dRa09VVE8KK2lDNlgrZ3d2K09qY3ZqcXRTWkEzNEZ4ZTMvSEZYWkRIK1lnRTZMM0hkUUNJS3NhM2xyUFltRFF4K3hQT1RsQXUKKzdzam5XMWNEaHlWUWp1bHRqRUs4dlZBVVlwK2ViRGxhNE1TQnlrZDJCOU9jdVNFSDdjejNZQjJ2R0c4YVNPZlIKK3hxakt2WlFkQ25VZlFISFhZREtFUXJMOHVTOEZkdEhtS2U1dXpMSkhVTkhvZmNyQWNid1BkbE9qbGpYVXo3Vm4KK2ZGVkFrdVZLTkZULzlJeml5QWZ3ZHpYV2xsRTFrNzc5ZDFtbEo0OS9JeFUxV2YrcVRhWjVWRU9VdHhKWXMyc3YKKzNJUUxaYnFRSUoraHhFZ045UkY4Y2Z5VFdXSWgwUEFXSnU4dHRaMlBhd3RjTFRIcmxRbXNLMkVsQ0hoK1FJTTIKK0tpUzB1eXFBSTRXQ1ZteEJ2NUhuVllnVzRxU0xDbWRmY3BoU25ERkZTNWVXWkhrM0s0OGdqRHZHd0lpdTllRmUKK0FsbjJRWUZWWEg3UjNLRGFyV21SRUkrSDBJOEIvMU9GNkNUZXJaOW9OZmFIS2pxU0NObWxKemo4ZVA0aytBeFoKK2tLQ0k1Wmd3Znk0RkN1N0o3eXpVczlVS3NGWWM0bjY5cFR0QUh3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIEtFWUlEIEEwRDczNzI5MEUxNkNGMkFFMkJFRTcxMDBDRjU2QjJGMDRDNUYwNDMgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQW4yaEZaeUdla3hDemdBQUFBQUNmVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXhNVm9YRFRJMU1ETXlNVEl3TXpBeE1Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFU1VVF5MUxSVmxKUkMxQk1FUTNNemN5T1RCRk1UWkRSakpCUlRKQ1JVVTNNVEF3UTBZMU5rSXlSakEwUXpWRworTURRek1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBb0s1OE9QUUJwMUFHaGk4LworU0ZqUEF4bndacnZVOXRHVGhwOVFGYXdmdFZRVDcvRUtraml6WGhnWmMyVE1uUy95OUhJa2RIOTJ3T2wzU3ZWSgorQ3oxNnl1Q0QzdldENXVYYW5YclU5R1ozRC9ZWXppeWF6bHB5MzVFYlUvdFY5NjUxOFVYb3V5M1lqNytvZ283NworWkQycHZoM3dsdEVTa1krQW8wZGllREZ6a05pN1ROOWpaQlR2NVZrV2ZCTlRabzIwQ1RxMURZcHdMUDQveHFWegorT21MZEU5RmFXYTdXWG1wUGhjaisxVUg4dEc4WU41dWpmbjlCTFd5bE03YVVWNkZqQjhjVGY0TkpMRHFjTU1yQQorK01vRDVHZW9mZ3lveWNCNGp3emdCZTlvZzZxNy83OE1BY2cxaEVlaVIrcnZXbVorS25pVXFPOUZSMzc0aW9Bdgord1o0Z2lGWmpPWHJnVVhmOXIrOVJpSHN0YWlxaGVxQ0JycW5CdWFxcnM3ZHE1WnNHd2l0NnRBWlRuYU1EK3AyUAorTDcyUVhISmtrMW1ac2tWdVZra1QwOEFHWTNCU2N6aEVkcFErOU40eHFxSHJsVm00aWV3WHBtZTVCMDdMa2wzcQordS9xcTlncEpsWXhVMFI1YlFTQ3FhN3Q4a0tPajZhSnc2UHhReHBpeE9vOUptcXZqVmpkZkxYaUN0dmE0VSs0YQoreFQveFAwKzBiWERxNzBzNzlTSE5UZzMvcFZKa25BaXZXNzdnN2lYTUpsekpLc2owSnMwenZvM1hOdkFqYUJrUworRUY3UnBEYjV5c1V0Y1JCM2ZoMGRpeFQ0dWZFT2kxcFR2VW14TW1LL05VTmd6bFlXVkRPRjNjZDlsaW1LQ3gvSQorekE2Z3FIS0ZiczIzL3NNZzFHckw2RmlKcHJrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5TaUxsd0hobEIxMW5yNgorVFg3OGFidmJBS1ptTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFMc1d6eUlvanZ1Z3JjSUgxY3VsYnFvTCtvOTNNM1VzYlRHekV6bkd1U0JpTworWDJDNDRORmhwU0lKNFJaZUZSREJSWVg2blRncXM5UHBaU2Y5S0NUQlFxZ3p5WDBMNHhBNW9aelpCaVcxRFRVegorQWczUFVEaUJMOTRvNlF5blppY1Q4cjJVMTh4SzJzYVJLdWhOLytyTjNlQ0h1TG9pMGRwSDQzeDZKL3Q3YlZGQworeVlsenRhRTVDd21vanlnMW45TXRmblViT09EWmU4MGoxYksybnk0VHl4dkpza282UmRPU25vdkhmbHFZdXZoUQorMHRPTEZWbm5nRWNPMzlaMHh4dmF3WTc1bUpPbjJkUXEvckhmdEo1MlMrZkEzQkg5OUNLL0EvbkJOY213UmhxTworUG1KTjdKSGZmUEVpamhiOVh3R3BUTFFHbHozUEovTmNLcVdEUWpZM0YzcUhDK3NTbkQ1eCtnNDZhWDhySTNKdQorL2w0TTNQZTVJMFdCV0ZXbmNGQUtKeHdReVZ1SmZNb2kvdDhmdm0wcEtpcVV3UGIwRS9MVEJJdUtkNTcyTnNpbgorUklOeCtuaTRzSE5udkI1OVRNNnRvWVg2U1VXVXR5ZC8vNlZtUElvWE42V0JXc3k3MGFUNytZYVdVOW45bHp1WAoreXpyYWE0dlBabGVhUExtc1hOc1dad01URG1LRDR1MG9MWE4vM1Y2L3o3WXlJNEJNOEM0WEl0Q2hpZUh5K0FQNQoreUZkZURBbHRQcndSaE9rR3BzeUgvRHkyZUZXNzlocHZZUElRTFdFK3Jray91dE82Uytkbkt0WmRxbVJGbmkzUAorSWZHTWVVY01wdXdEVC9oRG5UVnZjZ1BpVURTeEdVeDJpaGlqTEdVZDRPcU44bVhEWDJWTXg5UW1JdFRxNDBZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgTkFNRUlEIDNFNkMzQjM1RUYxNDRCMEE3NkNEQ0ZBNDA4MEI4QjdCQ0EzQ0M4RUUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVEySmdqOS8yeG1paUFBQUFBQUJEVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVXpPVm9YRFRJNU1USXpNVEU0TWpVek9Wb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFU1VVF5MU9RVTFGU1VRdE0wVTJRek5DTXpWRlJqRTBORUl3UVRjMlEwUkRSa0UwTURnd1FqaENOMEpEUVRORAorUXpoRlJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1NOHA1MkdzUXNYdDVXZAorZnowZElvc2ZsWmVwcFhmYkcxd05IaW1Ib2FBRUx5ZTRQSEFTRmJaVTZCNDRHTHNqWjVYR3g5dXpRdmZkMXlOZAorNUdjUWF0SUhxN3V3RVFrN2FBOERwanVaRElBT1E1cTErTjl0cEFRRGVwNHZhRHlMdDM0bGI5bDI3TFl5UUpFbQorY1NvREFSRHdhQ3JNc2VVSkJqWmE0amZhS0Q4d24rTkF4RDlnM1ZyeHVTMGo3MGV3Y2JXTUFxN1l6RnVSNS9LKworUFdoSTIzTG1SY0hJNHNCSWZqT20wOE42TGNFMU0zYTM4UkdZcC9UY1pld2lGVXphVDVwa3JxWlkyRTZjSW5hbgorOEo0dGNyeWtOcFR2SWZSR0M2WVRBdWtEWUhPVWlaeW5EMzJhT0l2NjRnRnBMQVNFdWw3Qjdwd1JLYlFsQit0UAorbUt6bG9EOENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZncDNDbjJKVjg2aWMrZEpyOUxPQjBzSjNMNE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBSGV4dQorb25VUXJXV2IwZkk5OWZuZXpHWkkvL0VOZzN4OVRUamJ6aFVRemFBOVNpanRhcFRsbnJVckRzVk1VQkVKbFZUZgorOHpLNy9FL0VQNm9zN25kcDFIMlBva0xXM081V1FBNWNTRmdXMFdQZFNhZEJrWW9NNnVqalpySlNCZ3NFelIzaQorV013R0w4TEJDdjd1V3VwRVg3TGNJVWsxWldwVWhOd1Q3TUZBZEY0QnQxRlZjQXp4U3lVYVFsWlI1L0ppNk15dworSHNNdVVqbTM1allCcHBNaVRUbFE2bkl4VjZmL2ZGclpuN2tBZHJwUTVJcWpXTGtPOUpKN24xaXcwNkFrc1pSQgorWlJJZUNTM2lTODREVE5TRDdKTXFvbVk4RG1LNThkclNnWmdEVkI1dTcza082dUZYZ1RYY3dIQXV0emlHVEVEaworQ2lEbFJSREpEOHJGbWlaVWVnL1k2a3o4UDd3bEF0WC9RRUVXUFRFYzBDaWZPbklGNVhZUk1QdldNQWlQK1oyMwora2VkdElyR243all4WnB6elVLdEE2NVBtUXpLSTFkUTY5em1PVXFrLzYzRUgxMnVWbUlFMHI4bmFiSUU0WUt3RworMkNtclViSE9XYmJIV0syNzk3cGI3RGdnbzJlZjBsUlRLWGxISzZNc0ZSTzc1bDFCK3dnQXFsVjhUQzZTcUZOSAorc3NXSHJYMHRWbzF1QkVYN241UkhqSXlPRVBjZjhPdUI1cFhjK3ZPODZRSW0rQnNCN043R3JRNzE2YkQyQ0NwTQordCszSEVSMU5EcXBRZHlQZmJBSmt6em5aU0pLRU05ZDdiY1daWElRcmpraUo4U25EZzZCQVFXd1AvVlRVQUI4aworbjI1VzQraUhGa3kyQ1ZsRFBCZVZJemo1WFFVcGx4bS91Qk1uR0FzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgTkFNRUlEIDNFNkMzQjM1RUYxNDRCMEE3NkNEQ0ZBNDA4MEI4QjdCQ0EzQ0M4RUUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFuN1lSWDEzQXJpcGhRQUFBQUFDZmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF4TWxvWERUSTFNRE15TVRJd016QXhNbG93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVNVVReTFPUVUxRlNVUXRNMFUyUXpOQ016VkZSakUwTkVJd1FUYzJRMFJEUmtFME1EZ3dRamhDTjBKRFFUTkQKK1F6aEZSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLVm5YK0VLblNEc2lTUG8KK1NZZTNkS0VPN2ZMOWp6L29qT0c2RmJldlIyK0R5YUZ2SWJSQzl4Ujdidkt0UTBwMi9uN2I1dUk2NWtzT1pKWTEKK1dUQWVqTm1uMW1uNU15WVVqdVl4THBUdzVvb1lZd1ZXK0JuaTExZ0ZET0lMZnR2UERVSkIrZHQ0ekIxZmhrekQKK0N1VjR0cXJONFl3V2xuRTdSV1hJQXNKWWNtbkFrY1MwUlVpdlV0eXJhMW50MmZEOTRpTnFJNlA4a1JEcFlBSGQKK2JOcFdySklZaGg4ckphNzh5Z2J1aE1ZejJIWWI0K1RwUlZ1MjlFTVhsZ1R1NTY4NjFpMjRydUFvczlhQ09OdXUKK29LN3VkL3VETlprMG1YVWh3UTlPOExYM2xDd2N6ZE1paDFqTUR3dFZwL29GaVcwUVlzd3FGY08xTFNBSDVXNWQKK3Q4QTBHV3BrMTlSRE01MjdJSUlqTmlOcnR4R1FPVXNXTGsxTFd6dHc1bEJOc0NVS2krT01jbkFKcGJBUkozZFMKK3pNaVhSYmYzRS92RmQzNnhIRzlKNDNqZkI5bTVIWnBpSVFOR2RvMW05b2Z5MkJjTHU4a3UzSlFVNFF3QlI2OWUKK1I2djVYZFJtY0tqUDIxeEp1QTRCQUpWcys5Y0VCK2Zwb0RINnVGNlVBU0pxcVZDUHl2NTBRcEowakZrdVJxRTMKK2pZcmdTY29YeERHYW9xN3NGTENLUTEwVHZGbkxUaVlDTjhiNTRzRGFPWDlkSTdCT3VxK21heGZpN01BZ2Z5UkMKKzhhcnVWTUtlUHZZV3FVSTdWWFlmbzQ2OU1ZRW81KzQ4RFpQOUFPblZHaDNPdnhCRHFBdHQyS291MjlXU2xncHEKK0RuSi80Z0o5VDhCQVZIZnYyOTZ1V0NRbC9ZZXJBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVEJyclY3SGdhYzViUzQKK0pLMEpMamJqeTVkMkJEQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUNBdnhjakxvbFBBZEJhMkZhZXp5SmlScThXVTdJcGVPWnk3b2ZTanRGZlEKK0pBQkdkck5kZlhHTjRxVmpwdm5JWVlINHBZYmRaTWVKOHAwSjVxNFpnS1lGUWlvaWt0ak9RSzFuY1I2WlpyTnUKK1pOWXBlbDU0RUUrMzMxb2xFZFN2ZkJmQnBZU0w2RUVjS3hCRVZkZmtnay84RUxlVy9BbFhQcnBSUWl4ODVMaVEKKzdZamJvdWt5eEZnVzl6Tk56Y2xEUEovQzZ2NTJGS3BtLzhYT00xS2g0Qm50aGJnZ0N4bllxNEp4d2Z2RmlyVUUKK2ZTcGxGTVNlNkJaamNiSnJBNFVabTY1OFpQamtGRUF5WjBKYjhEcVNxTWRjSXRxL3l1Qkt2cWFmRVduVEtXUWYKK3gyZTl6V1dwL2I4TFQyNHBzMU5oeUtIcEk2c0R6N3YvMEdCekc3NktmVXAxV3VTZE9GZWZ3NlRlYUhsa01hRksKK3hEQ25kWmtXMDNyeWJKM3ZYcUR6K2hIcStKMWJLYkdFUzRaSmFrRVJoVVpiK0NVSHRaQWo4TnQzRkQrSHVCTHQKK0kwYURKbVdGeWFjMTVqSGFIU0hYVWY3RmFRaVJ5alNhbWdMeEU0TTFzZkt4Rmx5dTBnZytxYW5CM0VYZlVJU1QKK3J6cFN3RVpOZW1wdTd5VjhjTTdndFIyMWkrZnF2OENKNHF2OVhEQzFaL3Awd24vRzZTZm5NYmh5cEE2S1JxQU4KK1p5T0MyRXZ2NkRvNkVTZTFyNU5IaWQ3UzJ4MnhHMWcwQXMzNDdTQkxBK0w4NisxdmtRNnB4Z092WW5RamRpajUKK0VjWlhzbDBiWWdWK3E5UFVJdzJGdzJEem9oWjJ3NHJIU0gwS0wvblQwWjR6Nmd1dTVsYUZPc3o4NjNuV1hFM3IKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIE5BTUVJRCA3NzBFOTc0QUNBRjBEQjlBRTY3RTdCNkY1RDQxMEY5QUNFMkZBRDY1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFIRDVUL3Nyc09iQUxnQUFBQUFBY0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTlZvWERUSTVNVEl6TVRJeU1UZzBOVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVNVVReTFPUVUxRlNVUXROemN3UlRrM05FRkRRVVl3UkVJNVFVVTJOMFUzUWpaR05VUTBNVEJHT1VGRFJUSkcKK1FVUTJOVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMV3ZHbWtkdXBPQng5RU4KKzhvbWU0VVpBVFFvQUIvNTNnMGN3WHgvclJudENiYmQyck9GbWppakZKU2ZnblNjYnJYVEs3SVBYTDZMRjZTWnQKK2FNSVpnVUtUN1VBS21nT1JYWlZFNDB4NjlnOEFoZ252aEg3eFJtRkhlWEFzaGkva0ZpWjN4WElIVDFRbHBQU2kKKzJZOFJjbWl4cUk0UTFKOFZhMlZ6OGNET05QanJOdmN0NURpWGxmRERPK28vVDZKaEc4ZCt2U3A2elArL0dFQlQKK0J4L3dtU3FsMnFXRnB5NDZQRU9YcUUwMEhhV1NnUWUyS2JLSGdVTG9vVnlTQXJocy9IUUhBdGVaUnQrWWlyeUwKK0JQTklJbnB5cE1HWTNYUEVDN1g5eW5qVVBZeVRWcFZySE9mRklPWWVSK1JoeFkvVHBnejZBcCt4U1pvU2xUWEUKKzRXT2dCcnNDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOdi96STU0ZitXYUE3UHhSV0FQZGMyaUtwYUFNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUlvWWYKK21SRDdtYmVVTUt5NkRSZVdVbzF3MzlzNmgyWWJZQVhwOC9LM29BdGxiMG9HaUhJTmVtZXdYVk8zaktLTG51U3oKK0IwUUpyUlZ4TVY4VUY4RDVLQUZoZnpOYXhOaDMrR1dhbDdyNlJkQjBFSTVJWWpIRGxmWVVOeGlCZWZ0WkNLRlgKK00wdWtlQkxIemVyb0VaWlpWU0xScG51bjB4RzlTODMwNndQK2hoM1pvYkhObDh1T1JsSW9sK3FyMFRyV1Awd24KK1Vja3JwRU9OOEJXeFZNQzg2bmpyRGNmNzFldVpSakhFRmJUQ2JTaFU5Z3k3WEhEMkJpd0NSbWREcytCNGZlUXAKK1dqdzhYeGZqQ2lObFR1SmNicFlyNEFaWmhtMEVXSHdQQkFYY1MvYi8vTUwxYUptamZXZHVRdlJYY0dEblZkai8KKzNJYXZ6bWUxdm9pbVA3cndWbEVyNkJpZGJDdFErQ0VtZXlia1R2cmpjK3l2MzcwV0tRd0JIbnJoOFVOTlJHckEKK1B1VGdnYldUZTRXekttK2FJOGM5R0NPbXN1M2xrUVNPWHBibXd0S1h0VVZ2bjhtTllwdkZhMFRSTG9HU0xoUTgKKzRTNFkyQjI1dnY1ZVdYdFhxMXpRaEpEUUhWbmo0Y09rR3RKbHBIbE1GU3V6UjFTL0NXenpRTE9pa0FkRVBDSU0KK2lJclg1UGc0RlFkUWtnSmU0WVZuUk9MUUFKOXJGVGVtZVlGTmZNTG5VVC9lN0FvRHNNbTlKOGdBK003OUxEVE8KK2JYOHVBWGJHZS9adlZJWnlxam5CRzVDNUc3MjhIL281YmNvVndrUkpDWUJ2UGI2b0xyYWtvUXVrL2ExVHk4NEoKK3JNNWt4aGpmcVZPbmZKS3RUYU9ZS3ZaNHNldFhLZS8zQ2Jjd3p4TT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIE5BTUVJRCA3NzBFOTc0QUNBRjBEQjlBRTY3RTdCNkY1RDQxMEY5QUNFMkZBRDY1IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBb0FOR05UUk1Tc3pXd0FBQUFBQ2dEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeE0xb1hEVEkxTURNeU1USXdNekF4TTFvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVTVVUXkxT1FVMUZTVVF0Tnpjd1JUazNORUZEUVVZd1JFSTVRVVUyTjBVM1FqWkdOVVEwTVRCR09VRkRSVEpHCitRVVEyTlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTURXUm9DTCtLZXBIck1oCitOdTA3LzEvM09nclR0V0ZsTUIxV0dvd0hNN2xLRFpaZ0J6a3MxZWlLdWxQeDlNRXdJbU9FRXpGQTdlNHNzeGxlCitMY3N4OXBkeW0rR0tCTHhFc3QzckcvZkFrTG1BbUxJNlRWTkF6RlVyMnZzNlpPQTJTdnArbGRLQi9yNnRwUUMvCitYUXFBVmQ4MVJSQkFXOEp3Z1JqUjNPMUNhb2JjbXlUdVEwK2cxR2djV2FQcnArSVgvd2hNcnc1WklNZlpranRHCittWkZjb0YvOFc1aEx0by9tcDR4dXZGVWs0U2lHU0gwY21VSmJvQTNNSFphUnpQV3RyU2NFM1FsOFBCdTB1bXN4CitITTNpS0VVNC9XMjBMNjNnaXN6NWM0NHpsbmZQdzlUWnhBMndXSW5oZVFBaDVTSUFKaGFOTkMzZzZpNzhWd21qCitKMjVleGkxekFKYzJvckZZbWFyWWxLZDVkdmtHWFlhdnVwOVRCbko3c2tBbDM0SUt2LzIxQXJ2Vlh6bFBYZFRHCitoY1VhS1NJdDkxL1BLWmVjYllaeTJidFhONElSdFBKWTZib1d3bWlUWndhbEt5YVUydnhuS1g1NlVRMmZxYUZZCitqZ3FKMUZuQWF3eDgza0U3bmtEbHJWQXFYN1NYbVhaR0tCeXF4VWdRVHU0SGJxL093R2RGUW1FdURiTTFzRzYwCit6K1BTSEgyVC8za05INmhobjdTNkl5MVQvWkUvbGtTQXptTlFOMEpBdzVnNzdZTFlSUS9RUXNGWVJnMHBzWTdiCit0VDVkbjZJZk5IdDdZUndNMURwaEZmY0hRbjhoRVl1Sk1JcEtHcmRsUTQ0bHpIZDVJWW9RVjlFYTRDT21DaDlpCitGdVVtemdCRXp5SlpoVXI2MzZyak9DR1RpRU1mQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlM0WTNsZVdweVRiWnU0CitCSlVUU1Y0YmFQMFpkVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFCMzBOWTNicHV0c3F0bUs1QVQ4Y3AzamFiR2ZyQVNCOHUwR05tdkRGNzZDCitXL05VTHk1a3lJVUlHVi9NZThwRjZVSmptazZCS2lrYWNrajlPMFJ2KysvTnlBYjlyM1VGUnQ4MFp1MktIS3RVCitBamhmRGJONjZUeFBMNi9aMTk0WWswV3hsZDNUN2lhbW1TcUUreUxJNENnNFgxdVRKeVNoYS9zOFlaK1crRjFuCitrREVRSHpGWlI1NGNvVmRLYWM5UnE5QUcyYXNGaHA5WFIzTUpiSDU0b1lMUnIvQmFoQ1V3OUpON2ovTnFDR0J4CitIdkNjd2t5YTlmT3BFbTFZeHlNK3E5cHFvYXBPMHA0QWxQVTRJTk9mRkdrY0l3NkdXZDVtOU1hT1VHSHZWOXRhCisxN01hL2lYMXN1Z2VEU3JudStGV1hSc3lTRzQvU1hHM1IvS3N4dEZSQ011MTU0ZURhajFWck5XQnk3MTNSQmtzCitiN1h5RXpyVTJzZjA3eEU5Vi9meE16WVd0OXptL1FWZXdUNEttVVJFVjdRNlN3SmtyOE14TjFXdjUvWUkwZEtVCis5YzFyRUN3eldzb2NHSzZSeUpneEJSbFN1dis2dWw0SVFwcVl5WU5qa3JGNDNLM29WY1gxd0F0Mng3RzFodkFWCitpZkFGcFhOT00vejFJNTc4YlAxclFMbWZ6bEV0Z3h4dDdRZHhNYytET3V1SnptbzltTWlOMm1SRCtFQmh2TnBKCitTVjBmWDl4SjEwV1IwRERPSUh5R1g5dXNqaHRjWkRzcmhUenU5Q0N2dXBXeEloeUtrTXoreVJpU0lQSmxIdDdECitUR1BnbHZoU3hxaUhwUHFsUmw2WitlV1hvbng1RmEyRHd5NStoK3lXblJ4VTQwd2o4d0lFZXFRSi9ndUg2N3p6CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIE5UQyBOQU1FSUQgQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYzRTMwMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBUTRjVFI1c0s4eU9aUUFBQUFBQkRqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVME1Gb1hEVEk1TVRJek1URTRNalUwTUZvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVTVVUXkxT1FVMUZTVVF0UWtORU0wTTFNRE5FTXpsRk5URkNNRU0xTURRNE9VVTVNakk0UlRrNE5FRTNSVFl6CitSVE13TXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSmtBZHRKRjlMSDNEV2x4CisvalZ5MXgxN3h6OGtXbk9OS0lSRTl4TmozMndob3lSWm9nVk03emhXVjF2VWRXU0o5ODFhWm44WHVTUERORDJoCitqOWt4eHZnT1R6aTJ0QlQ3WmsrcXo1M1hYLzVpNWxkNk4rMkJmUFJJMWI2V2JydDlnNXFPekxKOWFFcVBTNFR1CitBZnVWd21HZFdLcFJCcnN4bFlnc0krWCtlQzdtbEl3S0RqaFFrcjBwSlkvbWVXczFzUEp5T0dRMmd1MXdUNWpqCitBRU9JWkpmVXh6dWpPNFBKdzlCY3RJdnQ5WHhhY3RmM2JjN2NxUGFRV0dBSlFGd0JXd2kxM3JsZWwwTE1CYTc2CitIejE3OHI3enBzakVjV2Y2eHYyOVZkeEVCT0VxMFNvcFUySUE1UXZ2YkViaDJFdWJsMU15NHdtSUl2RHQ1bFBkCitPRHpTc0RzQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRTdRRlMzMGRaUHV3VTZ0eFBMYzMyVnBsWDRsTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFHVDVRCit1R3hEOEs1TkZjVjJLc1VPL3AvV29CTFRYYURXUHVYUUdjWUZTSHRXZHZmZHJ2MWNqMDNzZzQzK3ZoejFVK2E1Cit6L0gzUVFlcWFNeDJ0WDZETS9JN21IckR1bzQrQm82Y0FzaFYraWs5eldkaUIzbURUbVg5T3Q2VGZHdEFJbldFCitxVk0vNU1zQXBaSk5pZmVBWlA2d2c0a2EwUnZNTFR2cWUvWlZYVlcrZUVXWHQwN1BnY0JyMWdvNFhsUk1RNUpkCis5RDVGVVNrVnRWbVlCNUN6ejg2eVRTWmtXNkorUWVZTEtWaCtORytNUWxsYTRZeFZxcDZvVEpkN0owcFNLUzNFCisyd1hyczFqUnRyekl6Y3RXZGZRR0tUMmV1Z1R2WHVZOE9PcjExcjVRSTRDekVGNFBUMG1wRFYrK2dZSUFqV2J4CitITWhuL0o0clF4NmEwUitOK2Y4bXphR2djcHVrMzVWR3hpRTR1OFBEN1NpbUxxWm9xNE1RL1VJeUtaT0JGSlgvCit3QWl0d0Q4d3QrcDFNTDYyQ1dST2l0cm1pbmlwa1c2NGova3JnbTFFbytYZFJWR2tDL2p1VnNVVTRPN0JoTXVqCitzN2dYc3BYWUVqd0dvTG5ia21HUGFJb0FQTWdWOTg1VGxWSVRtTWx1RjMzYnpJZWZKK05DaUdFRnhhY3pvMVBLCitxZktzbUtVMTYyZDU5OTdLM2J5bGQ5Yy93dGgzUTNIVE01ejBPbHI3ejdIWnVFcHRidFQvZFVEM1NMaUIvOGNvCitiN3ZSczdINnYrUS9nYzJZd0JKZEVkTnA4akh0U1FoNjFhTDI3azRqZCszemo0cGFSZG5yNDhjUEhhMXg0d2phCitOdkRVM3FxZUVNSFhkVTI1bG92SHlycXBBeTJpWjhVQUxDYXBBVUk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIE5UQyBOQU1FSUQgQkNEM0M1MDNEMzlFNTFCMEM1MDQ4OUU5MjI4RTk4NEE3RTYzRTMwMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW9IQzJFVkFaUm1TMHdBQUFBQUNnVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXhORm9YRFRJMU1ETXlNVEl3TXpBeE5Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFU1VVF5MU9RVTFGU1VRdFFrTkVNME0xTURORU16bEZOVEZDTUVNMU1EUTRPVVU1TWpJNFJUazRORUUzUlRZegorUlRNd016Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5iU041VzdRTWE4ajk3aworeXF3a2xBc0Fibi8zMDQrVm1NbDJ2T0laUDVNb0xZQmZDR0JnSDhRTUpHdC9EaTZsVWgzaHQ5Q2lUT29WaDU0dgorbDZQVXZ0NlNvaW5BWWVUa3pEM25zVW5rRjRXUWRXTkxvVlNab0l2cGVvd05jMXdQd3N6dG5BdkxvaEtBdXBHTAorYndrT3ptV2dHQXlXZDlHT21ncDc0L0Y0SkZuSzM0VWRBcDdpTW9SVFJKQ21nZ1N5Ui9oTXFWSUhybEN0dXVvZAorc1gyOFFOV2ZQWnVnY1NFQU50Vk52Zk9EcHp1SER6UFRvY0kveGNHRkJQcndja3FZQTQ4MlF3bmZoMHRLMWcyaQorbGlHWFkzcHp5UW5RV3FNbDNyVkpIbVc5clVUOEQxWUF4RDdtNEFHdXdkK1F4MmgwY0lnUW8zVFpnVktKQzd4NQorcCsrT2x2eldSZEF4U3VuTU1YaEcxSTYyZUJzWEdoNldLQVNIS3pzQUpYL3pwelNXd2dYY0pjcXBlWExaYWNGMQorV0phdU5uT2lQUzJPUkVZMjZ2V3VxNkMwNVcvSjZOR1crZW5iTnhHYk9kNDJKYlhhcCtoREM3VzhXZCtOa29LdgorTTlUaHZ0Qi9rSEhBU0kwWWNKam9YVG1KMTBaOHYwaVBpa0VhZkx4ZE0zT0xzb3BrbWVZY2taYXdKWHMwTTI1RQorYmg2OXltcmVGenN4WmFOTlFlcmVtUzRTeTkySTVDVzlFTG85L0NiSFB0eHdhYSt2WWFQYTIwZ2FVK0o4cytPUAorVmNRcEtaWWhQbjdhRUI2Z3pubzYwdVF5Z1pFelZUTG9UdWNla0RIN0ZidmtFVzNyS0J2MEZLdWRWZDI2d1hXdgorR0Z1Qnp3WXhrbWYveS84M2VQdldPZzMzWld4M0FnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUSzAxSVROSjVrMFdYWAorUEVOZGdQcWlvTkUyVGpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQ1U2NW93ZG43eWpXeDRiMnE2M3NRa1VteGRHbmEvdFpRNEN3WU8vQlpSWAorKzgxNkpnMDVXRkkvN3o0MHhxRThXelZEcnpwRnVoM2QzVXBGd3NzS2lxN0s4UDNTYUMwRkxNSWhrNGRZR0ROcAorR3pETXhnZTFLeUIvSVkrMzRiTVRxSkxVamJVZnhsNC9Pb0FhTHdPMk1FajFUQklKbXduV0ZVNHNzR3cvckMyZAorMk9iY0s5MEtDZi9OUnNVUXI3R0h5dDFGbXZ0dGRwTXpxOE5ZeFJLbWZ1NVo0NVBTZG5mUnN4K3JMQWVxS1FYYgorS0UwY3FMbUhGMnRLTFRKTmcrVEhpUGo2dW9UQ09sTkxhNkJZQ2VGOWIzR1hIT0dGQU1sWVFyM0Ftbmk0VERsTworL2dHekhwUDdLY3k5c0VMb01yajVsY2trMS9ZSVhXWTlYMng3dVh4bFBRemoxZUxaVFpaLzN0MnlyNWkyNEZXVworUUI3b3pBdEVPSlJGb2V1ZmlnVHIxbFl1cHFlNzN4SnRyL1NvT0Z0VG1TbEJKdlNFYTh5TEdYTFB5Um1uMWVDWgorZW14NXhMMU5UWE40Z3dpMU1PRGZUMldGYitKUXVoeC9jNDVhWmFtSXdUTEprRW41QzMrSi9FLzgvOUxrMVREdAorMVBkS0dtL01UOUtDbjBtMmRRUWVIakZHNjhERWpYdlR6TFBJV2lPbmJ1L1BEMEx6TkFUemhUL2V3ZmFrNjZJVgorY0JTZFZ2Y21JWll3R0xZcVhsVElDdTBYblF0SWgxZmt0SzdtY29TRTFHajI0aEE4Snc0QjhGUFpyQmtPQmQ1UgorMEtzc1R0OTZwZHg0L0Y5N1RFc25rYUIyMUV3dy9EaE13ck5ZR2lUWnNoMnBDcTlaU0pRNlA5dmN2eDNuakNISAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgTkFNRUlEIEQ2NTlCQ0YwQUZGRjIyODRBRThBQzI3NEM2RDkxMjE1QUVEMkI2MkYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVE4QnBhNXNtcjl4T0FBQUFBQUJEekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVTBNRm9YRFRJNU1USXpNVEU0TWpVME1Gb3dRakZBTUQ0R0ExVUVBeE0zVGtOVgorTFU1VVF5MU9RVTFGU1VRdFJEWTFPVUpEUmpCQlJrWkdNakk0TkVGRk9FRkRNamMwUXpaRU9URXlNVFZCUlVReQorUWpZeVJqQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUwva1RDOEpaU2ZTRlFPWgorcHVsYmYwUkpiRDNRdGhUVGFpcnVWbzNHOTA0bU5NK0JnOXdNY09HSVVvbUVKb2tOWVYwazVwc0tNbzNZaHFkTQorUW1GZ2J4bXpkL0gwcDVvZkM5L2hWMHNDbTB5TVZwV2h0N3BwU3VYaUU1K1BENlBTamk2WTBUZHQrNVI1ekg0aAorSDRsT2Jtc1NLSEU2VzZFLytYNG16WU5iN29UYm1NLy83L3R3NjUzSDZyMlQ2cnF3NWdzTkNMKy9IdmpWR0RwegorWFhRRytlY2pTL0poRldaR2MxRlMrTGhIUGVxK0dmRHFzZjJPL2RNUGEya25rN2tsY2tCejlzczhvSlowME1MSAorQ0FrSXpjcS9DTVBuUlZEQzd1V045TStxQ3ZFYWxTbmVBMlFQdGZEZ3B2YyttWDZZbXZtczU5QkJZYkpJMCtGSQorZzd5VnZJOENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRDemQ3eWw0ZHQxR1VwM2JIUlVjL3NiUDZkMU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBZzcrRQorL2ZmTWN2Yzh6UDZPOTVNQWkrMFdNVDBHd2YwZ1NXOS8zMHlVaFh1NGJKSllWSnpDM3IyTGZwUFJCWGFUU2ZhMAoraEtHaDl2eFlRQTN0WmlWS2tnOFJtaSs1OGlYRXBkcHJoaXdVY1JsU09hQkxLUHUrd28yeDM0anVFNDgvK1BHagorK2NBempXdjJVWmE0T05RT3dyQ1RsWGtLMmZyR01oZTRWaFVVRnNWN0JYQjNCbko5UHZWcWlrZ1lpT0Ixc0VlSworQmRhL1MyZ0MrbDJLRC9BS01qUkJraVE2VFBNdTB1dXBpTE9iQnRKZUs4d2JoMFc0RzBMTlZaQWFQRWJSK1llZgorNUg1UmVWekFpc0ZyZWdQQ29Dd3NKUElVUVlCN0xzSysvYlJTaFFrRjhaVTFZQkxUclJLaEZHc2FHTUhNVWlQMAorUURWOUpmYk1MeVBuendVYm9CdmdtT2w0RXlBYks2cXEvRW0vRFhlelkzOWF2Yy9IYXQreHRoOG8wYmRQZmdoRAorVVpIMUNyVmJpdGhzRUlPUzF1OXFrZ0RUNm9tL1MyQldXTXJJWW1rNGtsZnJKVVdaWkRMd0x1QmNNQ24wU2VGSworM0lyT2pTT2xNbmVRUkYrRkVLV2IwT2RQU2IveTB6OGxIRkxRQjhmMGtHdlpacUErSUM4SVM2ZWFoNjZRaEF5KworTzJCZWJrdkxQZmVpaE9ybDhmUWMwRnliOE51dW5KOGUzaWdFcjNUYk1vdG1ycG1WR29pdnFsWnArQlEvWnRKQworZFVEQ0lEVysvQmM3Z1M2K0Y2ekZYZk1kTUhZd0REQm0vZWFrdjhZSEU4dWswMStZS2ZoQlQ2MDFPQ3VDS3h5NAorWG9oMUVUZTdDbjAzdTFDNmp0dGhlVU1BOTJiUlV6SjN5RWNvajhzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOVEMgTkFNRUlEIEQ2NTlCQ0YwQUZGRjIyODRBRThBQzI3NEM2RDkxMjE1QUVEMkI2MkYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFvS0JPWHZrbVdnQjlBQUFBQUFDZ2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF4TlZvWERUSTFNRE15TVRJd016QXhOVm93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVNVVReTFPUVUxRlNVUXRSRFkxT1VKRFJqQkJSa1pHTWpJNE5FRkZPRUZETWpjMFF6WkVPVEV5TVRWQlJVUXkKK1FqWXlSakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFQa2xuNnRIVEdZd1cwSzkKK215VkFMaGdWMmU0dm82bENoMURjU3RIMmFVOHNpQXlRQ1cvYkRUU01ZNForUmkvSFJ2dFhFTU5zSUZqcUMxbUMKK2lQQjBpeGo1WTJQZ1B3N0Eza1lmZlRuSWVlZFF0b3kyLzJYT3ZiSVUrdElkMzdLUnNoZ3c5dDF5SWx6V2U0SkcKKzljK01FUXNRalNUTmg5c3NGTWNNQW5qNVBuTmk2M2lJK3JzbXc1bThUWmtkNzhENGtaUE5maVhRb04rZFRrTEYKK3R3UUMvMEo2MkwzZjdrdWZSZTFOYmpmdmlwaXB2aWlWazVQN1VQbFo4bVNnZlVTWE4yVExTR2F3L0psY0JTYjYKK0dRZTdFdWo2V1dHZnhva3RYMVMyYVpBWlhOREw2Tm1nSEoxcktyby91RHE4MmxLdzgydU5td0RObUJJU3R0UVEKK1ZzU3Bvckp4UUV3dzRFKzVvTVJ1RGNISjRiMVNsa2ZIMXhUcnI0VGZqTmhoYm9ad1l0YmtSc1REWDlvVlN2c0oKKzFMcXJOSVRxZkZjd1hwVVFCSkFQZCsxMzh4ckZCNlNuWkxOVEZZQTB4dGx2em45alpFOWN2Y0xLYUwyb2U4VUkKK2ZjV1d4YS9JclNxTmw3MUN1U0REWldJRFBjTjhhVlVSNi8yLzJjcmxBdFE5TlJOai9qS1h0eVlKQmFkWkQ5SEQKKzRzYUhLVnJlYVlxTnAyY21obVlnZ0p3eENHVElZbjkzTFYxNEU5cXpmVVJwUHVCN0dpUnp4TDl2OU5ZNU44Q0oKK01wZXphWmtwRHlUVVl1VHVaN2NKRnhEdUdSbC9mdkc5ck41elNYRmJPNVROZm9BU2FCMXFwTVl6L1U2aExuWTMKK0VOZSs4SCtDV0lSa2NMN25hYTZIKzFxdXIrWTlBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVGhKSmFYOVRaS1JZb1AKK1N2U0w0MGIzeVJtaW1UQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUZTLzZMQzVDQjRVbEE4MkRKUnNKMjkwRW9POFF6dU95TThPWVlQNmM3ZG4KK2tqSkgvSjcwMHJHdXlIdFdOVUNKU2RyVFV2djl3VG9KMTh3RG5VRzR3Yzk0eHlPaEN2NUhYWlNhOVZnblYzaU4KK0VXdkMzR1QrTkZKTG9jMWpiR2JHYWtpYVRtUDUydFVkRWwxeW9BTzI2WHlVMmZzWjVJemhLeW5mY2V4cldYMTcKK1IxWWM5aDZObkJFK1BTL0duTkxVTVZMeUlQWTVFbVhnNmI4d3FhNHhBcFpmWTFQNVduWHIzeUY5SjNTWHNCMVgKK2U5YStEaUNMMG9wckI3L0ZqRHNQUk5qN1BQalhVRGVudWJyOXFsSDRHY1hjdDJLamRGYmlmVVE3OGtuMW56REwKK3NVdnY1cjVCQUFkODlEcVZCQzA0c2pKMDRIY0FPSTlxVzhhTlc3N25nNldQci93TWVubWVGa1haNjYrQW5iYnUKK0R3WlRuL3I4MEQvWXZZSWlaUHhPUmVwRmZWNFhEWEhaUE1DSEZMOEJZTi9hRmhwR0RzblZYckxoUFJxc2hpNVYKK05qRTFCV1h1aFlSd1BKMHdrTU80Q0J2L1liZDJDdThIZ0dMTUpkMi80N2VRYitrMGljRzlFdWFkZGdDMzNzQXoKK24yNHdpWkkxU0pFSEZjSHJEY1NPT0tNS0RLbzNvL1ZQTXVZQ3U3ekRYRHJ2OTQrR1RDSEtBcEh5WG1leXlmVlEKK25Ua3ZIR0w1WDQ1Z2Q1MjBjZ0o2STVGS3N4VjEyeVMxalFtWXdwQlpMMm1mbUs1M1JsZVFTYlVBeVI0elRBTEgKK1IvSjdkSXF1eHdqdmh5WlRtMnhKTUhUL2ZiRzNLMnIrRUliOThLdGE5cHluRExLMHNZZG5xcUhPRXFjeDhoUnoKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIE5hbWVJZCA5MUVCQkI3QzUxRkE3Rjc4QUEzRDQ0RDM0MjVCMUQ1RDIzOTc1Q0FGCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFVNDhSRGphN3lVZ0FBQUFBQUFCVGpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURjeE1ESXdNVEV5TTFvWERUSTVNVEl6TVRJd01URXlNMW93UWpGQU1ENEdBMVVFQXhNM1RrTlYKK0xVNVVReTFPUVUxRlNVUXRPVEZGUWtKQ04wTTFNVVpCTjBZM09FRkJNMFEwTkVRek5ESTFRakZFTlVReU16azMKK05VTkJSakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLRDdFck9SVGRiSnJnVlYKK0l3SDloMEhoNFhhSG1lcTRLL2pBOHJWaWZiN1F5UDlSOG1SeXhSdjVvMi9BVjgvbmdsdndzNytsUC9jRTN5S28KK0taZ0RlbzFHTWZaZ3VIaG9RT0pzS3pLVUZSSWN4VUFBWWkweVhsTWwxOTNOOWJ2NzlHZE1ONWVrTXFrRlc3R1EKK3FtcjV3alFwNTFqb01kaGNPbDdtWUN5NWJuRms3aUdndHdPRG14ZitacWZIaHZDN0prc0k5b0d5Z1pvR3hjRVAKK00vemIzek5xL05LK1ZNcnEybHZKQkJxY1lVM2F0bVlwMklwNXllYzJIMG9xZmNJbDNXRW1lSTRPa2RKUVBsVEUKK3NTQ2JrQnJFcHY0MmpuL3BXVkRGTTEwaGxiTWhJVm0yWE5ZTVFvYUQ4Zjg5Z3BMNUQwNGNwbmM5OGNuY25BTFQKK2p2R0hTTFVDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOeFdtWTIvUTZEaVFScE9nUGpUVTRRclV1SjBNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUdsRVAKK3hYMmdaakJBVkRuSm13UkZLZGNVSXA4WmR4YkNLTGVOQWdHNmVBckZLZnFnK1lqanpSK0VEUnFLVEl2a0JRdmcKKzF5U2pSc0M5V0VNaXVKUmVvYUxJYmtGYVc1Y1E4b1pLQm1vUVlueVNVNDR4enNYVkQ4cGZWRGtub0x2QUdUVUEKK0xZR3ZHVVBWckpST1ZTWU9jMm5oNlpETWtxTHc0Z012SUpMbnYybnByZ3NYWWxmZGdKeW8vLytaTGI5bndPYlMKK2RLdVZMWTdiV3Nnd2RITWU3VEREZHRMWjJ0Z2FReWxJbnlITlpYSVBkRmdFMDNPUERncjRnMHQxcDRWUjVNbEEKK29RemdzcHB2TllVZmNBdlFzZ2ErbGRreDkzVDlEOWU1OWxkYzJyOG85Tm93WjZiUzUzL3hFNms1NjVsN1M3emwKK0JrU0NVay9iRi9SLzFXSks0LzdZdGtmYnBVRG9SOGMzNzNqQTl0TWFaRmdzaGx6YkVRQlhVaDl0UTJQakc3ZmcKKys1N0VVQk1PeEN2aWpRVnNyNzdzWEE0c0hudFMwdzNEa09hNGdQaE9jd3RlYjc4NXEvMSs2NlBFVHBZVjYvNXIKK3RkTk5Ud3JsYUE0VU84R1hrNGVCa1NTcWtlQ3lodGx1WHljd0pTUlljeUJ3bU1sS1lQRUI1RUZldFMyMHRQWGgKK2EvaFpUYlJDdGJwTmt1dGcwbk1rNm0vcnRJcWRQenJZNDlkQ2xyWFVtVHRmaDZON01uOE9aODRtb25lU3EzeTgKK1dGVVN5amxkU2hJVUZQUHU1cnJqcmhidzZKMmxKQ3ZtYU5oL1ArQlBWRThIbW9uZWZoVStKa0VtTTB0QWpvU3QKK1hUU1ByNHNEMjBPS29BV2p1MG41cjV3VDdFdDBGQWxHeURkRnBVZz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTlRDIE5hbWVJZCA5MUVCQkI3QzUxRkE3Rjc4QUEzRDQ0RDM0MjVCMUQ1RDIzOTc1Q0FGIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbjg3MjNLR2hVWTl0Z0FBQUFBQ2Z6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeE0xb1hEVEkxTURNeU1USXdNekF4TTFvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVTVVUXkxT1FVMUZTVVF0T1RGRlFrSkNOME0xTVVaQk4wWTNPRUZCTTBRME5FUXpOREkxUWpGRU5VUXlNemszCitOVU5CUmpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSk5QWXhNVjcxTG9DWG1FCitlRlFmNHNmZUpRSUpReWRDUFJvRlFSUExCdTdMZHlGWmVCcElpQW1sd1B5a3Y5N01qOFlzWUlBYWtISkdLSlYxCitGTmlBSXVKNkg5ZjJ3dzhwZGhwSUl3bFlyUDFQOTJsM1gxSFhMbDJWbHg4Vkl5S0U5WStWZ1RKY1YvbGU4SmRCCitLSCtzQWhkMnV0N05oejFsMDVyeFJFL3B4aDM4N0wvbU5XRnNKT2VEYUo3RUNkSXdEMFZQRndzK2xTWWRNZ1dpCittZ1Y2SGJEYmdlN210R0hBNzZWVC8xZG5TSE5uaEI4U2tPSFhZeXMxZjVhR0pQY3NCTlpBRy9WZEtOOUlzTzlHCit2a1JWTldtMFhUK0VqeFdnbTVONlhsTlNlRzRkOFVjTTFHc3QwaE5pMldTM1pGL1RYVmNOOG1rM216Zm4wSkIwCit6aS9qa3pzKzJuK0hraFRwK1IzazF2Q2F6bzFXcVZaZXljdTdPNTRZODhMTFZ3K0E0Rk9pYmFTRFVURnZSKzVvCiszdU5ZTzE3ZG1TeXczUmY3QmpxTi9OS1lMdUszVE4vL1J5cWVSUGphMnNQTHFhdXhxSEVSdnltWVBFZmZncnArCitiNUxXYlgvbDF2ZkJEUE9rVkQwQ0ZBOXhlaWtMNzJRQTRLeEprbVQzOUUza3hES0p3SUxHMVpuaVdUcFV6TlFICisvWWJUR1hKTlRFNlc4eTlyZmFWaGYrSXA1Q3NEOFpETXNqZnFvRGxFU2RDWCt5d0ZnT2ZVdHRnU3poSHBkd0xhCitaQ3FYWkREcXhmTVdsL3B6QlZRbjNINmY4VTJ0bWQwZGw1SVhuc3JNaTJzeXZnNUM0WldGYldBMTUrME1sMzMxCis0WmV0Sm4ybXRJWjM2REtPNm02OWFocnV4Rk1SQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlIreGNpT28zWnByZVdHCitoeUlTa0N4b1NsQWcrekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFJV1NUZnE4L0wweHJrZ3A4WkN1RDZER1d4Uk1nYTMzTWE2RlBoRWhwMEhoCityNUk5bHFDWlFKTTkxOUVtc1k0WUdZb05LbFo3TTY1WEJVWTA2TnZ0THJQdFF1SkpYdDJ4RURxSkF1VFJLZ2NvCitrY1BaSVdPMEw4cmg3bm8veVhtWE8zdzZSSDhlQWlIT20rZVExRUx2NDFNT1Q4Z1I0V3ZObXNDSG9VN2xEbFIyCitVK3RrRkVqTUhOZytnekpibWRiQlZ0bnZLRTJkMFlsT3lod3NycXZzVk1DdStCL3prMXY5MDc4RTY4RG9YU2gyCitLV3pjdkR5dGZ6djdnVjJyLzFJWGxmRzJ0LzdSVVVkdGtyallNTDBLbFhFOHZPSVdabkZNVjFwdysyaFFZRkxZCitQSHl2QnliZGZqRWNkSTB0V3ZnWXRDa2ZWc0NlKzBkV2k0VmhhZEEySzg4RFhhZ0dDelM1RmZMeXJ2NHNtaklrCit0N3V2dXRNUFM5UjZNc2FLTUM5TnpzUTVsbktXVWZtRW02dERzeDJzYjNacTBINkVwY2g3b3g4T1JLNjNaZGJNCitlREVUTUtuWjhSL0RMNTRBQmMzUzVtSmtmdEJLLzNTdFZEVnFvMWtzMm5uZG5qV2M1T1AreDFaR2l4dTlLUE1JCitBTURZUDVhbmdPakw4S0xvYUtSZEg5TWtGK3hDZ3pOdjJYbzBDSlVVU25yR01XYms0Z3UyNW9sMDFyeTV0VG9MCitiQTk4cGlIL2tFRW5Bbi9YaVNvRU1tdlFoajlEUm1NeW5uUC9FMWJxT1duSTRaYUJ5cEYzcmNuVy9BN3lyWVVxCitqK3R1eGhWaHJzTE90TlE0azFDY291MU1adDZBUXhnSks4TnBiVHZEQUJWZWx1V0s1d29ta0VNcXlTUUUxZzB5CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIE50eiBrZXlpZCAwMjJjYmVlZDVkNzcwNjBmMjgzM2U5ZDUzNzZiYThiYzMwOGNkOWJhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXMwT0RYRG9GMWNMdGdBQUFBQUN6VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV5TWpJd016SXhOMW9YRFRJMU1EVXlNakl3TXpJeE4xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFU1VVdpMUxSVmxKUkMwd01qSkRRa1ZGUkRWRU56Y3dOakJHTWpnek0wVTVSRFV6TnpaQ1FUaENRek13T0VORQorT1VKQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcUVSYjk2RmtLS0NBd2VWSgorQ3VYSFdCR0Q1OC9KbEtSam9ER3dPN0xsNGZmMHRXSUoraW9BK3czZVpHckM3OUxZeUtPc1Z1QVZSblFSMVRJZworZitGTWpkNXp6UW54amVUdEVESm1sQ2MxVC9XRHlyM1FlbkpRTGhlY2p0MTJTeFNjVE1nQWVsblRQRDJPeUxkRQorNVJoeEhEdSt5WHVvV2d1NGRKK0RoYkVtT1c4RzFrdEtMaitKaTB6NWdsdXRQOCtxZ3phdEs3NURIcTdqajlXeQorMFBxOEpBYXlnTWhwWkNnZnhsdVRwZXcxQU9yb3ZPZERKSWRkYlhUOEc1MnBMaGtXRlkyMHNjL1dLT0d5YlRuZworTCttOXkyQmhuUEI4Wkt0Nkl3ZGlqWTlHdXIvS2xEUEdmVWpWNHdzVFB6cTRhVTE3NjlMY2NhbTRjT1FjZU1DRworTE8vaDhRRk5xdDNDZzhNa3ovRHI0L2hCZnBOR0M5UlE3R280RDRFZktib054djNyODViUlVyUVgvTm1ZMHVmZgorNHZjdTZuSGYwbG5HNDBDbEV1YnRGNUFrTUJaVkJ1VWdQL0NQRXhjbTBHUENKRlNub1Voa1RrZXQwRGtKQThtcgordDlyQ3YvMjdxQ3FlVWVub0VwSUo3YjVGMGNaMFZsRnlCc2ROWGZjcjhTTFViSXh4YWhOR0Roc0tCN1VRajhSWQorQlAwdlZsSzlocWs0NFlvYWhvU3B4QVU3UTg3VGxZSXdqdXJ5cHZoc29tYXZDY3VlOHNIYnR5ZUxzaWJVcXRZeQorTXRuaDluTXJMNk1RMmVEV0g4UlZpOEJ1MjllUTVFTlhMTExLY3VGcDFYZldreXNBVngyQWhkZTJMa0lsZ0dlQQorVEREaFB6dUZPbUNnSE1nN3k3VG1BbFBHcG04Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNpQmdob29yM05yOHJSegorc2VDWk43RzdEcTB6TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFIV1pBRXQ4SXgwSUdjQnNid2hSeXVsMDBQcnpBU1p6K1hOK3E0SklpY1hZcAorWGZiODRDRWlzdUVGcmxHc1dpdlpCTXR1RVNuREFWTmNPRmpsb01OYTRDZURQSWhSMjFIeWlVcnJqZUt2Z3QvOAorcFVlMCs3bW02SitRdzZDRFVtZG9ieGhJRkVxWU5qMDZLQ3BZelJRK0NJdkZCR2VhRm90bzdWaFFvdk1jdVZvRgorS2lvVWdkRDhIMkU0TUx6b2gzMFluT05RMjBZOHhRaFdMQm9VRlJCSXFqUjNXZDNSWDVVSWx6d28xVS9DR0dPdgorZW9Sei8xa29MMHB4UzZ1UkM3YnRJQUNlR1h2Z1NRNFVuTFFGQzJHSGxhckE2d0xhNkx5VXd0NDJzYlFJcGkxZAorYnUyMWRhM013YTVMT3BIZU16MFVsd2thTTM1V0VWaTV3SXR1QUh2b2xtSTV2SUpIUHRyangrNElBSFk4VGlJRworZnE4aXF0OGw1aElyYm5uOTVidDFwSVovRC9XKzNCTGtteHpkdmc5VFY0Y0NocDhEaWE0RVRCWlo3UTFsbUpDMQorNC9UVGxBd3NGTU1mUmNwOTRWdVpaZTdvMEN5MjNWczVYMUhOSjd1ck14UWRqMndRdnZJYzhQYlYxWmx3RjdwbQorajhIZGFKbWdYWXd6M0F1Y0lMYk9xUzM2clpRejcyYzBjT0RGYWpTTHNvM0huMlNQLzZqRndwVTJiZ0VEK293TQorNXRac2lkeldYTVFSS0JqdCtjc3hLaCtYN0lhaUhFckQyNTk0T2s2TmYrVzVoOXJ0Q1UzYytIV1g4eldiaEtWNgorL2RzQk5Ec3Zzek8vZEVwbXkrNEVReDZjcHFkWHM2VC9zUzN6NmJCYTNIMWthSWRNSE5Da1J2ZTlaM0pNTEdBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBOdHoga2V5aWQgMDNkMWNkZTQzOGVhM2RiMzRkOTQzMTgxYzFjZDUxN2Q2ODgwNjJlZgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFzdzgvdisyTDJyOExBQUFBQUFDekRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVeU1qSXdNekl4TmxvWERUSTFNRFV5TWpJd016SXhObG93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVXaTFMUlZsSlJDMHdNMFF4UTBSRk5ETTRSVUV6UkVJek5FUTVORE14T0RGRE1VTkVOVEUzUkRZNE9EQTIKK01rVkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW1DNWNYZFNqeGo4K3FobnYKK21mWjg0MHlUaEl5SjdIUlFQV1M0TmNuaWx4U1pkcU54cmdNT2o1SG1EY3EzcVpSbEc4MGI2Q3kzOUhuUFJha1AKK3E3UmlVZ21FMEs2SGo1dWg5NFVaWHlRYmw0YUlUV1pmeFhDd28velRUUE82MCtncURyQlU3TytMVGtqZFh1dWEKK1U0S2xBNGJUMFg2MkQ0aFdnaUxDQUE1UkpXbkN4VFgyZE1HUWpKMDcrZGtOSTlWRWRQaGRTaDJWcXNWbzBkSSsKK1g1UHRiVGNkRDBwSGEzS05tbUtFWVRwcmhwRWM2WUNrVHBnNzh5amFGWW1PdE5aRHZaOG02a3ZaeVRrYWlTY0EKK2tTZ04rNTlPQ3BlbURIdVpIR1VYVmZlUnV5K001MC9PWmNVL1NnMUd3SUVSbHkzbDB1WVhPYkE0SkFDMDgzejcKK2J4cHdoMlk3M0g3djdCRm1CTkNydndvUXl0ZWtRTXd2dmhOcVN4UWlpL1U0eXY3U1BaZ3Mrb28vZm1XUmEzV0kKK2pIZ2dUVUZsaXMybmhuQVVTSDVYYlB2R2dGbEZhdE96cmpiTmp4bUtaMW4zNjc2Y1FrUTYzcWY2UmtKdUYwOE0KKzZwNjZ0WVZvbEdzMzdBblpUUlZuVW05eFhoWE1UVXgwNU95U1c4RkViRkdMeW05M1pVS1Z4ODZyZTl1ZVE2L3kKKzVISUxndGdTZlVwTlBzZ2ppL080WnJqWjVwMHAyWGRIYzlBMG9vcC96ZVQwZ3VsVTllV0NLVWxNRHdobjhxdXYKK2QyaDdZY3NaT3lXM2dwV1hmRTd2SklLTCs1TGZkdkY4eTNHV3JnWGo4SHp2bkpzVWc2ZHBINzcwdnROMm9ZL04KK2xOTTVLSnJMdlk4bm5mc2JVQkRGck45QWY1Y0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZBRFdVb1E5a1VqdTJGNUgKK3A5VmVERmVKVGxLbU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbkpaQW95NlNLRW44ZVV5TDdkd0czS3VqMjU1L1hvMk1TNm1iUUk0V25UclAKK29mdWVjVGhWTWhiUjUxTVkvcGJpLzZMTHl3eWQ4ekE2NWZPbVVIbjFEQWNWMk1FUnlPMGx3WTFmMnJpN1RzdjYKK3RDNlVBVzM3ZFdhZEM4dGUwL25ZUXcwdlE4RFZjOHBZUGdHTklnVmlZdXcvMUZuK1pHRU9NMUJJQldTWEY4SkEKK0Z6LzRQaVl6WjE3Q3VyN3pxTFFrN1NwKzVNekYxQXFEN2RGRDlHZ1dyUWE0ZWNDdzhza3crdVRSOHhQWWhjZ08KK1FLNGJpRHRaUktDd1p5N2NFMng5S3IwWVBYRUNibUlWWkk3Nit3Rm5UOW05d29sdUVKS2lzMmVMUEZwaXc5TVEKK09FN05WaVZuZDA5ejBsazFjTENPeDMzNm8xVktEaTJoanNGYkVXb3FFcDQwT01JbEtPT1JTRlZsdVZTQk83STUKKzRFTHVDTVNCNmJ1L2JDU3N2aDIzQTdmZXdiaGQxQjdyc2NiWHBaZVc3U2ZpVHhIVUhDODJiam4rRmQ4dXFBNnQKK0YyYVliT25RZ1pkcEIzOGFYZVlyaHVNWjltV0l5WTQzQm9lNW1QcEVHUDJCbWJGUjAyK1ovUlI2amY3S3U0K2YKK0UvK2N2V2FOMkh2SFlOVnp2VlovMFJ6R0t3bjh5UmFkS3FQM3Z6ZjBuRU45NHZzdktEYUp4c3hMYkc1NUQ0cisKKzVqeGtGNXZ5ZmJHaHJlNnpNakpjUTExQU9GemZxM3hjMVZIWmFzVnM3SkhubUNzSXo2R2xxVmZsNCtQRFYzL3EKK2VUTHhVdmdYMC9MSEh2OXY0K0hhNGxibWdhaXpUTVFPbVRqTW00UnhpUmpoaHBKdTkvWEZUTHUvbkN0MHFFMD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgTnR6IGtleWlkIGViYjJmNGUzMTJlNjUyOWM0ZWQwY2RiNjgyMjg1ODBhZTUyMDNkNDUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBczRubGdhUVhrQW91UUFBQUFBQ3pqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE9Gb1hEVEkxTURVeU1qSXdNekl4T0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVTVVV2kxTFJWbEpSQzFGUWtJeVJqUkZNekV5UlRZMU1qbERORVZFTUVORVFqWTRNakk0TlRnd1FVVTFNakF6CitSRFExTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFuQUtNeUJxeE04a3JJdHVOCiswTHlCTFVaYUYyaGZrdVdvSjVRbDVOY1JaakI4S3N3YVBwSXJYemRFOEJhbGwzMmQyN3hVUkZUUGsvTjlGakwxCis4VlJudkM5bzdJbjFib2JidS9nM2FCV0xJUVNtcUxWSUM3SFo2aHd6c2lZZ0tyRUJNNzEyY0ppYkUrRkRXcW1PCit4aG54MU5QM1k3dGtscmk4TEpjZFZvV0FMalBiU0FhWUFrQ2dHK0VIek5jL0dXSW5mWWlwdUJvV0gwTVRiZ2JvCitDVG5RaE5sQjNNazgzMEdaVkdSSVE5Z2lmbTFGajdnSXoreUxaWVIxdklhSXJ2L1AxdW9DbHRqVEZWeDk5dzVwCisrOUQ2Zzd6NXMwd21tNEZ3dDNWNjZyQXBBNm95RHpBbnphZ3RxUFEvUFZ1d01DWU5IWDV4bTRra0J4clljWHFnCityeG1oZjBDcWJ5TkxybnNQUW5LS1IrdytqanhXSmNHVk51SDQ1M2xhWlgwdnNtMVJRQ244c3cwUVRGWTB4VDJSCityRVJzWXFJQWUycVFFTElCbVVHbFJJMStzNkI4Q1hkMVpKUXpkSjgrU0tWb0k1V1ZKK0FzSzQ5ZTYxdWQ2NlRZCitHVHFtU1Z6V25US2dzQ2UwbDg3UU5CZlRaNGRMMkZQQ1lXcmU3TTRmS1FKVXJHRXFvNW12b2tnNk1qRS91R0N1CitGWklhK3pvL216T0JwaG10R3I5cEgxeENkRTU1aEhqOEh0UlFRc2RueWtvMzIwZTZ2eWZqdEZwajNtb1p2UXdFCitiWDRLVUhwcVc2R216VjY5MFNaelNENUhVTW1mdjJ1Mi9SVjN3YnpodVVOQUM5R2E5NzU3MjdOQmFJejFxdVh4CitqdnVaMnM5bGpxVnhTQkRFdUE3TFQ3Wmk4SlVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS2lLOVpEaGtZTDlLcUNRCit5cmNkemVWUk1ic1RNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUZLdjkrNzlmdTM4QlNsZXNjQWNkK0tpTFFDMExYUzhvMzlCdVhuektvcE16Cit0R3ZLaFJud01aWVZWNWFudkVRWW1kckd6aGtPRVRDMkV1WDNZR055NjNPTmM3TTA1NEJHdnZHVTZUenZUNFZwCitUSkxLeXVoSWRnWlNybkVPTTloS3ZFVWEyUEtJbWQyVklnMTNiOG1XWlZKeVp3dlZsQ3p4MjNqUWlIcTA0M1VzCit2cmdzZGUwVXBtUW5ENDFzdENkeUhsVVNtSnoya1VJZjVlc2xtZURlY3dHbXZsRldBOFZsWXkwdVdMQitXeXVPCitEZ0RqQ05Vc2RuUjJycmFoOFV3dlFQdm1PVCs2UzNVR1VYRU9tVUZLbnVJS1BMbjZMMDRFalhod1E1eDVrNDZ2CitCSHBOYnhMemFMeHovODZIZDlaU3IyYUs2NjRvazMzbmppSk9FMFBTN0Z1OTNWS3RuUmlmS1dJSFhwM1FZNllPCis5Tm5IRjA5dzg4T3BzMHVHYXdwV09BNVlnNi9EMk9QdHBPdUJETnVCY1NrNWtWODE4b041ZGRUSlRRWkJQWm5pCis3M3lQMHVsK0hmMGlDWlF3RSttcjYySS9sUHFQNXFubmNuNExCZ1JBNVlYQkY2NGM1Q0lPcW5CRzBMMkY4VEd6CitnbFVEdzYyRlFzeFE3T0JxUDBxWE0xSU0vTE8wV3IySTYxRXBzT1pwZHJ6K2tuQlBtbGRxcWtxQ3FHR1NWQVNPCitWTUh1MWZkV2IrRFhkLzhPcGl1RzllNTBrQ3NWbU9ienBpRVlSQ0hYRVhTdkZza1pZQURqa25zeHJlbFFueEs5CitPS2xzemY1OGdZRHJGNmN2cVE4ZHRmV2lkTURQaXNMWWRUenNYMitHZ21TS29PeGh1bnhHZzVpRFR2blNML0k9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIFFDT00gS2V5SWQgNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQxRDUxMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBR2VzekdXWGN1SHhKd0FBQUFBQVp6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1EWXhOakl3TlRneE1sb1hEVEk1TVRJek1USXdOVGd4TWxvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVkZEVDAwdFMyVjVTV1F0TnpreE1EQkRNa1ZCTXpWRE5FWkRNVFJDUkVVeE5UbENOVFl6TWpaR1FqY3pNVVF4CitSRFV4TWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT3Z4L0Q5c2hjSStsY3k2Cis3R2Y4TllWQitoSkU3U2Z1VTJPMFJpV21mc09VVFgxRnNnTldxeitweGxObGQ5LzZpRGNRZE0zczRjbmRxMzV5CitTbThjTGp3aFlaVWdzOC80d0o5R0RhSUV1SWxKTTZRY0NkQzBxNFZYSlpPc1h1N1JlczJVOHM1dXlnVkZBNitwCitncFBvNjQ5Y21pTUp2VkQyL0czMWJHMGRkSlpFb3NoZmQrOHVHVXpnbmYxQWJtK1dWZExOK1VGbFdVaFJXMVFhCit5d0sxS2Jzdmd6cUg1QXJYMGJsR1crLzFKOU5MTm5FUm5TQndtSHdJREd5eFh1bXVERnRaNkJ4eFZ4SmxNR3pKCitieTBwT1NyM3MzYjc3NW5UVEJpZ1ovSGpNT0Mrb2ZlY1ZDSHMwOG9SbjlZdjBqRGNpZ1J3Mi81WnhLbDVSTkV2CitlVk1HV2I4Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQVJsdXRjZnRxcURwZjlIUGM1TStKK2prVkl5TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFPTVZSCitSS284UFNWd3RsK1FqakFJUUQ4TXdHVHprLzM1dDh0U2VPYVUvcWlwZThyQlVyT2RkdWhFZ3BoWFJsYlhCTmpjCitzek1WTUpxd3JEejJKZmhxaWZSR3VPZmxmRlN5UVp5WnpXN0NUckV2MWVhQ1M3TVM4RXY3RGVkTlZhby9jT3lKCis5ZHdEeDBUNksza1hkVURqdStUY3ZRYS9JSFRRMXYvQktkelNtd1VQb0Qzbng2UXFOdkx4b3B3N01WNnlrUlFXCisybmlVUXRkaWo1QUl4c0dBcEZidzlmZlVuT085bXJ2MnZlaW1yY0djakRYazJRREYyV1lJZmcwQktsaWZ2bWtxCitibVJFdmE4QjZ6clg3S25XZ0ZyTmgyMDgwNUpSVllmU053QWl3emFXeU1NbU5sUjlvZDcwTmtSYXc5RXBlV0p2CitVOHRjV1RmNE9lVXFYNklFWUZCZG1CK3piRWc4TmY4VitiTjZ4LzRYU3dwNXU5VDNlNzBZNVJGYTNaamxBdHhXCitERTFqSmRVVkdlQmxPZjBXSGVaN1pRMkN2bExqRS90L1p6bmRnTldqM3AyMmNGRStPRTU0U0VPMVdjMERjeHAvCitGSEFLRW5GWHl0Nkc2S3pkL1BuQXZ4Y0hvemdhZGVrUVA4LzdjQ2ptbnhCRS8yQWs3bXNiNmtJTkdPek9Gb0VuCitDQ0ZMN0hlRi9vWmdVOXhDM2RxUTdTeGQ4M2xONlNEcTdmV05IQVlxMUwyU3E5ZUlCS0dWMjhYd1dKL1pxVGNDCit6ZFlSN0taVUFuNE1ZSXdhZVpkQ084NGVoVkNpMjJoY3JyNUprZ0dOMnkrd3hJVkZvUUhLVTBreE4xbC9QWHJuCisvQVg2V01KWjJGV09GaVpVN0xUdnlrYkdCb1o0bjdvWE9uZkpRZGs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIFNUTSBLRVlJRCAwOENCQjA1Q0E0NTEwQjJBNzMyOTkxODRFRERDOUNDRTQyOTExMjExCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXVQT1RrZlUxdE1nU1FBQUFBQUM0ekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRFl4T0RFNU1UWXpNMW9YRFRJMU1EWXhPREU1TVRZek0xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFZOVVRTMUxSVmxKUkMwd09FTkNRakExUTBFME5URXdRakpCTnpNeU9Ua3hPRFJGUkVSRE9VTkRSVFF5T1RFeAorTWpFeE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdEFWOWc3VER6ZnplcDRiaAorWDQ5QkZmbkpLaHhSTU1hWi8vVjRoOVk4ODg4U3h0ditvRVlraEliVE5yTHJsL0JYb2xjaldORnJ3NnNISUw2dworeFM5TUVqZ3NhREtSU0VkbVlSLzkyNWF3SHVYdlRFRGx0T0lqdTNUblVTc0RSalkrTjhOMTk5M01PUDl3OHlvRQora3p2UG9yQTdMQVJpWSt3QlE1bjdxUE9SUUJiTmpPOUYrR2w3bS9HV1NieHJiT29adTVGSzRMR2dvVjZHVmFSYQorUkpSOEpJMW5sNXltbEFxTFRYQUxkYW9vaEozeTd2R2F2YTdmRmJjaE1tNnp4Z0xISjltaFpwNTdUbVQyWDhBVAorSDIzV1VGYXN6TVdhd1pBSjhqM2xwTHFsMzF1Wlhhd21saURaeHJmNmZnOUdyRXo3MXVQbFFzWFl5eG9DMC9KbQorNTYzTGdJc2J5T1hQSVJHeDNsZjZseUZRd20yUElYK2ljMVdUMUVETGhSWkhMYU5BY1B0SWdpWXV2T3I4VkdSNAorb2tlNlBuSXBKSDNTKzRxZnJQQWJ4aGprQ1dZVkt4OTYxUFpiRUtzRCtQaThNamNzT2lNUkhvZG0wcVR3MUhHcAorb2c0aEFMZ3JDZ3NjNS9Sc09NeXQwTG51V3B4b1FHODlIWHlHaU1IcDJkYmNxQ3hFWWU5c2xkc1MxbzEvMXdCdgorUVJuZmVPT1VHMXRRbjQxZWRSSDdHeXhoZlBTcmVwSHhFUFYwUE1MZjBJOHJkNCttRGVNajc4ejVIeS8vTUZEeAorTEdXbU1uTTh1Y09vUTdUcGZ2Mnk3SGs2dklCSE1ZWUo1TEwwNXpNd2pYby9TTWhHOTFlRUJVOHg2NWMwOUFoVgorWGZxTG10ZnVXeU1RUzlyellTM1NYbGtQb3BzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkFEMFJ4MmRIRk5tOXVvRgoremhHdWR1OUpJekNmTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFoRXhFcS9oazNuaXFmUWtUbGZ1bVJXdU9OTUZUbWtGem56N0NISEpqZjVvcworWWgwQVZzaXVoUzMrYzQ4SmpBenYyaFpVclo5ejlmTGdCa01xcFcrN2VFczk4U3E3bGgrcGx6M0MvSmxZU25KZworbUc2WXdoYVdpV1pHdkxCc1hLM1YwcGk5T3A5T1hEaDNveEpidzd1UjZ4WXNUaUkxMHpPZFZ4NTA5Z2FoYkt4dAoreFFUbGJIZ2dVUTNlNnJRMDMxUUZnRFNhZVN6eDJ1R0czSmlQb3FZa0ZjcFE0QzYvZUxvS3NTbUd3WndZMDRIUworTUtBeHhYb2R3d2pTMFNXU0lRblpLWVljQTdJS3lkS0hSOWlOeFY3MkZVWUpkeDlZbW1ZU2llN3NxWU81SVYzYworbURMa0VQVFNaNnh4VWlxSXNPSW14UGpXRDQvbjVSOWkyd3VxS09INE11VXJXYkRzTTQwMnBsQXpBZDBCWTFlVgordlpZNlNXcXJJUVNNUVcxTmovTmk5cWxoSXBZYTlScWJKTTc2eWRERm54U2lHVWdicU90TE15djU0Q1FHMXpqZworSzgydzZFSjVnVklhUXM3YXd4USsxWENWNEY0MklDRGVCQzBFVFB5VmtMbkxRbUJrNXRjbW1mNmtxRXBaaThFVgorQmpldndnS0lQMFVuNlJKdlp2OXdLSm1hYXZPczVoMXRtZXo0Y0RjcTBKS3ZvM0lzc09RZGRjK0JmRkZFYWtQUQorN203UU81d3Z2c1hhR29KSkZnSWV0ZDJNRzBsUjZUbVhnMG5QZXB6b0dmU1k0TkRObFVwVEN3OCtBZVFaZEJlNQorWXp3dXZMaTFZM3h1eTIxVndJTEtSZnBibmxpckdPdHdjenlJeDlCc2V0TmtyRHQ4MFVMamRRUmkzT0tibFRBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBTVE0gS0VZSUQgMUFEQjk5NEFCNThCRTU3QTBDQzlCOTAwRTc4NTFFMUE0M0MwODY2MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFSQ0N4YSs4ZHc4RlJnQUFBQUFCRURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalUwTVZvWERUSTVNVEl6TVRFNE1qVTBNVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xWTlVUUzFMUlZsSlJDMHhRVVJDT1RrMFFVSTFPRUpGTlRkQk1FTkRPVUk1TURCRk56ZzFNVVV4UVRRelF6QTQKK05qWXdNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXZELytSY09PczBtaHkrUnQKK3BOcUYyckVUTERPN01FRXd4V0tWNUgxL2VDM2laR1FyOHpYazNORXkrQ21WNTlRM3J3d2E3TWxKdHdLeENrakEKK2dhV1ExTXRueGl5UERPMnNhWlZLZ0JZdmtKUHErZlBEWnhnVFZBeElpT1VFbG0zS3lQUnFKMVJFdEpXVnZ2ajMKKzQwRmdPbFBzOEpOaW9hTzZuN0ZmUGluNHNGOHV0VlNDOGVrNFdDVEIyL3A4TnZxaUpKTXdEdDRsQ3pqSjA0VXAKK3F3alQ3MkZjWUlad29hRitET3hnV25BQlg0bUdiUytvMnQvMkh0RFVVRTRmNndyWU9CYlBxeXFuYU41VXlvcHQKK0d1SThkb0N5cEZIZzE3UG93aXBhaWZSMWdaTmpUVTNCc1hmTjVKN2gwNlpuYjBBSjkzOXR0YUFCK2RLWXRESzEKK1VIejc5d0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVW0ySmRBSEVLT05Db1doOUFNMlVMcUFiVm5XMHdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBcU8xa28KK2t1ajdDYnVTaGdxMVZaZjk1aXFUNjRPbE5zUVBudmtDMXVzQ0RPdnZGUjEraE9KNzE2SjBxSkJEeDlIbHROVk4KK1FFOG1rUVVPektGTGdwdTg3a01PbGFwQXY2NURtRyt5ZVBuUXBiR3A0cTRVc2RHMVliVy9EZVJDWHZtRUthQVoKK1k4d2xzZW1yOGZmZFRDS3hlNjZJZVo4TzV0RUxnV2J3NzFhc0l5bjZOWFdjZnhtbFk4cVp0QUxITkFzdjJ5MWUKK2sxOWlhb3dnbW1BbkJIMkxkSHI1WU52SElCMi92N2RHMHMzMndvL3FJTUFkdDJzTmlsdzJrNzRMcTR0bThzMCsKKzlWK1lTdzkyNTBRcE85UVNpeGNCTHZzcGN0cHRFYStnblc0V1VmM0pub1ZQY2VQRXNVZThjdDNPNldLYzZmdWIKK21CYTNsZXVydkEwd3loRzN0R0h4cVZudTM0bktJMURObFQ1ck8rZ2ltR3pkS0xZbmJkVTNQTEg5TllaRGcxOCsKK3hIZ29ubVdjUERTTE5XemJQKytKcElrcGNnYW45L1pUZ2dmKzkzQWJRTXc4WDZjeTR2N3B5djZFc3kxbHExZmIKK1cvYzY0N1NkRTBkaVI1L0x0VVVJbnhiY3c3dVFCZHdhUEtRMGNtSytCTm5zeGxiV0taT21ydUZBNlgza1lDTGgKK2tyditJVGk1WUZRR1RWWFRyVjRZZmRmaVYwMnRQTGdyQ0F6YXNPd21NL1lKZEhUS1ZPOTZrc1JlZzdWSGl2Q2IKK1J3aFJUYWVSNmkvRmFOd3FPaFJTU0p6aHdvYm1CM3RRcmFwOWN1TG9UZ0tXdXYzSVF0VHNHWW9TNUpDSmhvZUwKK2VrNHd5ZHpYSmt1RHVoUzkwa0hCelVqQjZGZkpmWGRpSWkyUUh3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgU1RNIEtFWUlEIDFBREI5OTRBQjU4QkU1N0EwQ0M5QjkwMEU3ODUxRTFBNDNDMDg2NjAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQW9PaHJoUm1HSCszcGdBQUFBQUNnekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXhObG9YRFRJMU1ETXlNVEl3TXpBeE5sb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFZOVVRTMUxSVmxKUkMweFFVUkNPVGswUVVJMU9FSkZOVGRCTUVORE9VSTVNREJGTnpnMU1VVXhRVFF6UXpBNAorTmpZd01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBejZoRU0xTHlnRDFKY2Y5aAorRXJ3Y0FReHRQNUdyVGQ0aGlDMVpMeW8xMkVHM1hqaGJFc0lSanVTZ1dGaE5VcjNxZEFrVEFSVnpRL1hmVnNwcgoraTgrUVVQVTZsOHdtVU5Tc0YwMEMrd1REZFFlcmV3Ris0TWhEKzhnNThRK0JlMHBlVGI2V0RJdUc5VVRCSFJLeQorbE1vK2s2aCtaakdPZWRXVVdoVFE0QzljeXJPOTAwU2hQOEduVG82a0V4dW9FQkhidFlFYmF1ZjlrL0dIaEtEaQorVzM1NkhHQ0o3dXExbWlqanFCaEVVVkovcWV1OXVxRlFkOGR2MzFKcWdQb1h0ZGk4N0xGNCtGVHJFY0VyZmdXMQorcW1xK000dWpFTklMdWNPekQ5S2FiL0tlVVhPb0VqSVNDaE4ycGh2QkJjd3UxRXdlZmdESnJ6T1NyNXhnWWNFMAorNGpJMEx2ajBiNFhlWlFKQ2xCOHJYNmM1cGVUbnBQTG5aV1U4cEk5VkFjb3k1VjkvazQ5aG92S2dodWhwc3lkUAordWRsNmFVbjZRQ09ZMjMvNVd4YjJLZSt3MWZMSnk0M0JoRWlSY1NpMGtoOW91WXAzZWNTakNlMXkxV3hSZ3VXVworSkZvQTB0ZkhUUTMyYUcxNzdxUUdmbUVQdFZXOWFNZFN2ak4xQUlDTWN3eDNTWXozU1ZtZmc5OHlhTFBrdjg5WgoremZWUnN3Sjk3L1JNdjNwMkg2elk5WUFnSWFtajViVjY1VTlrbGQ3b01kRXd6cG9FYyttTExNdTd6UEpKYkZteAorTjY0UVBGVW05aEJnYXRaR0FQaHk3Nm1TN1IzdmN0NktwUXlKZDJmSTJvYmFBTWRSRXhJSGhHSE0wbDZwUmlSRAorSlNXVElMRXk4S0dQVnFSTVhYb2FuRmFuWEtFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkVoME5xYWxCMjlGRWtIZAorOG9zbVF1N0RnSkUzTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFPRUdmVEFIcHM3d3p5U2IvaVdPUkJrV3I2NmlMMXhjSElzb2x6SnFKZnBJRQorUkxjMkJ2YUhpUlNyR3Y0QlNHNEpqN1ZEbDdTRHBXZ2JoeU9paGFvdSszYm5weFNoRGhqN2RLNmhGTjB1UUJ1MAorSjBYajRkcWlaamNJSGZzRHVqdnlhWUNxd1FyQlZaM2xPbzhGU0NOVkVuZWk0Uit2RHJtQndtTEdnNVBOcFhXRAorRmRFSmRINisvUnYwMWxTbS8rVkRlRUFEZ3FiemlMRmZwbW9TMmFycDZxVUpXcGR3UUxZb0ZteWVBZDFmWEZvWAorOElHcCsycUNmY0UvUjgxTW8yZ25JSjdIU0t3S1E0bFZLMUlzQjdRTEhmNmJnYjlCREdFNzRyY2VLQjBoNVRIKworTkEya1FOeUpNT2RMdjl5RkZyTU9vcEg4M3Q1Q0ZtY3RwKzc2RzNWUWdNYUFDRE90MW1OWFkwU2NHNkhiV0l0ZworWk9yUlc5WER5M25IWVZTbXlMR3dTb2tPMFpkT2VDL0RocnBBUkthMnpsSmtPamF1cGlHSG5sdXNrSlZVRUpzbworeUdSTXEvL3pFdHJpd01RaVBjWENLZGpCclUzWDBLb2pUZy96Q01LWFloeW04V0I3ZGozUW4zc0pDRi8xemJqUAorTUVvZzFMNzRRSitSSXdhUE4ycm56cnpoL3FjQnZaazFBZHBvdy83WFFEeVR0WlVQdUl0dGRrTFlqRzhiZFM3QworZmlwbmRrUlRpVmV3bVJjWGxVOUV0SmUvVmZVU0dTUWRpU1BySHBLSnNFUDRnc29SSW9TamZHaFhYei8vSlp5SAorR2p6TzhnNVhDTDFCM2JxZ1RPWER3alJoVmNVeExVelpMQjRGaDFkVXZoNDIyZVdVS1NTTStTdTVSWGdSeUJzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBTVE0gS0VZSUQgNjYyRDhGMUNFQ0RGRjE0N0E4QjZGMEVBMjk2QUY3RjI0Q0FERjlDRgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF1V0ZBNlhCZERFMmJRQUFBQUFDNVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEl3TURZeE9ERTVNVFl6TkZvWERUSTFNRFl4T0RFNU1UWXpORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xWTlVUUzFMUlZsSlJDMDJOakpFT0VZeFEwVkRSRVpHTVRRM1FUaENOa1l3UlVFeU9UWkJSamRHTWpSRFFVUkcKK09VTkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXVFbTdzaWxSOVdYQVlrZWEKK0Q4cEhRM2c2N1J1RGZHYTRLTVp3Z3E3MnowYmErY20wUE4zZmtqVGlmOThXbmpCMGFyaTJ2OTlHeUdYaHVZRTMKK2d2N3FvYkxmMXlBOG1sZGEybUpPS0NiNElpMkdnZzI0ZDIyOVFBZnBacVk5Sk85bXlIYVY0R3EyMHZlYzZHL04KKys4SUZvLzQvV2hoN3dpTTRHT2pSM2MzNDdFK0NvTmFveWsvTXJraGtYbUpYSFlWZjFWeXBqc1lWZjV2MG1SaGoKK0NQZk15V0ZkZE55Vmhrb1MrUWo4bHhrM21UM2pHMjdoQ3VSdkFsZGpMWTBUMmFDWW9DcGVscU5Zd3NSMnhpY0gKKy90V3N2N0NvN3BNWWlubUlSWVkvbE5LclF3R1NOV05YU1JRUjlacEU5UzZGem1qTklsU2dYWURxWTZKQm5ZajAKK21NbGN2MVhidWVzM05nQUxPc3E1cE9Td2Y3aUo1L0YwQlVpTXFpZ0QzZnlwVHdxT3RGR0pjbExPOVk4eUEvamYKK0xVSklvNXNNaEZSNi9iSXhjRkRONWJjdHBYcHh2ckF4VXF3alN5czNWanJydlhoUUxmd3dLbm52S1RGNTFhUlIKKy8vNW1zbW9IWWZPb0c4WkJGaW9aaEFvUHk2ZmdzZGtsdzJkVXpEbUgvaXlnamZqT2pLSXBkb2VuS1lwSEpEUGYKKy9TdjJOK05oWHc5eDFMQ2JWbS9SNlJEZTRqbFkzQ3c1cDRuaWZsZmFhekVDSy81N2hoOVVTcGVvbThOQVZreUgKK0pXNVBBd0JJazZIY3RlT2xHRUtYMlRxQldkYmp2d1pieWtaYzlqNSt5Ty84N25uRjZKV1lHZDJUMlpWOTJta1gKK1Y5d3pHbkx1V3RCTmtoeUl4RGxSaVgrMFFTVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZBL3hEU3c4ZzVjVmNUSnMKKzVFNk5EcGNaQ2YzR01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBaUFSU0F2WXE1TDZ0VDdaSEZ1MUhCSEdoSUVJdHJxSExUeTRyS3VtWXBMb3oKK0FZZU9yY2I5NER6bkE3bTJnVjYrUHFtZWtJVzljMS9hR3h4T000TGhVek54dGR2K3psYU9FWXM0dTFFZDB2WGcKK0NjOEs0bWYzUVl3enlZNG5rc2gxd1hYRnplRmNFQ3ptTFZ2Ui9MelZIM0I5ZEVYODFPbm1ReXgvZjQ1WWpNc3kKKzQ0anVWRGxVMnNxS1hZUmFuK1NOcERSQzI5R0RlU1FwcjNxL0w1NTBGelJjUDBXKzBINjV2RnhNMTM0K1R4aUkKK2srVTBXU1ZmeXR4dURQeFV4dFZSekFkdFR0SmFGRWlaYjl2MFh1RGd6VXJpdUhZMmRYRUN3MzdsWjRjY1I3VWEKK01wVGZLMTEvSWFyZituZ0o2NXNtS3BaU0VvbFB3cTNLMG8vSExaN0VuZGt5TUFXNEtOemsyLzg5MXNzdTQ3K1kKK2F5VXc4dXM1THAxME43SHkycmtOVzB2VnV4U1MwRGM5NThDaDhCL3kxeXU1a3pqVkl1YVRVWEsxVzNRbUYvb3EKK2FPbTduOTVoT2szUzRib25nNTM1ZWZnamJIcDNwVTNuZTA0UklsMGJxckZmQ0h0dWxSNi95Y1ZKaXI3MEtSbCsKK1N4WFZ1TFU4c0pLWG0yZmRiblgxckNEN21lUFNyd3dMclFRem5FZGhISEpVdG1qQkdhVjdJOVo2bit6SXdXVHoKK1RVeEw2NXd5c2lnMlFXeDNGbnhRUENrMmp4d1pPd2Jud0FuaDBrci9oTXRDaDc3a3hlVnA5RERqMnlEb3UwQU8KK0RDcDNVam9QTVd0eEZGekxmUzBEYklxNVNFdVlVUTJKSVVLWkFOR0lhZnNuM3lFWFlTNG45aHl2Rmo1Vk5kdz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgU1RNIEtFWUlEIDZCMjc4MDgwMEE5NDFDQjQ3RUZCQ0FCREQ4RDFGMDFENTI5QkYzNkMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdUovWll0eXBpdE0zUUFBQUFBQzRqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZek1sb1hEVEkxTURZeE9ERTVNVFl6TWxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVk5VVFMxTFJWbEpSQzAyUWpJM09EQTRNREJCT1RReFEwSTBOMFZHUWtOQlFrUkVPRVF4UmpBeFJEVXlPVUpHCitNelpETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFzYXdERldpLzBxUHBKekNICitkSHdWd2UyZ1pvbGxsMlpkMDJqYWJaR2R5RDFKa1hHSmhYYytEZEpyY1NVd0FES3FPRWpKcHRHMnZBUlBXQjBuCitsejVoU1hkSGM0T2NEeThMVXhvaUlHMHdVeXNNQlVXNjUzWUQwczhRM0F4ajk3RjJBYW5TT1N1UTdNdVVYcEloCitPaklJNDJTeFZWTldSV0hiNG93Z3Q2WUM4OG9OaXRrb0lObFNabXZuemx1OW0zeTBtN05DbEVkbXdNZ1AraTRhCitHNVFud29IWDY1aitDdE5rekk0Sm54WTl5bkZwVFZjRkNUeURRaDRjb3V3QkYxMEU4Zm44U2NtQzhFbDdtOUtpCitkSkJhV1BNSFNQdjRZU1ZVSE5PMjZ5N0NBTHliaG84MDA0UHYyeHpmdU9UdkhLRXVhaW5FcGo0V01UU054Y1hXCit0ZU9xTFd2UCtSeGVPd0p3UmJhQkE4OVpDZUxQd0czZ2RDeUR0TkdjT0xJVUs3cmgvTG1mYWtiQzlXSHlkTU9OCitCVkVHWHdGbEJyMTRkZjRTbkUrRGVaMUdFdXFFV0lsNmszMFhra1lUdjE3eStrd0MzdE9uYjFiRDY2ektZOXdBCitkM0FkYitHYmVzRnVtV2ZtT0I2aWtjNkcybTNpcU9UcmtadXVkUWg2Yk1raUZMQW1sWUtnRUhOcll2TlNNdTA0CitKa0NIYU5xN3JyOWt3bnZWU2IrWDc5NUVRV2c1Q3owTUtjWDc4SFFLU1RvTmxWcU53ZGJNUVNqaDFxclB6LzNNCitSOU5uRWUzL2JrOUNkdkNYbEhERlI2eHU0dzZKVWYzQ1JwL1owUWZYRzZ2S0pCbklRWjNZVnc1NmxSOHVSVFl0Cit3TmJubjVMcmpjWWxBS2hwVVdoY1RrSWJQQ01DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUGxESXlCRXlhVmFuMDByCitseTJ3NWtKaUk1YVhNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWdhaUFyeWJNTit0SXBsQWlPTGt1NDBOeW1FTlA3WmhnMEpQem10ZE1RWHllCitOY3NLUEpPaGNNRkk5QW54RUd5NXlqb1dsWDRGWUVEa29sTEdXcW84VlJLSDgxMko0YjlLT3pqT3prMFE5NzUvCitZVEZUOWR3djBlL2o0RXdrUmRVak5aKzBLcWtacFRxSExpQlJTdEdFZXo3QnZwZWdQNlFvTjVwckVvNUNUZ3ZhCitJUndINUJxU2syRDd6QjU4S2tFWU9KOUVSUHFFNEJQYjdxaDIrMEU2b09ZUDRaN1dKVk9UQjY0M0tIYkpFKzdGCisvZ0FyVmd2bmhuOVdlNXNnSVNjU3o4aXk2Q01XUzNwM09LbHVCemhvVEhMSjJKdTNmbEVTY01GdlUxd1VKSFJaCis4Ym9OeTUzRnc0c1JVN3RZUm5TbHJMeXEwZGdkNEJaWXBLRjVra1Vna1RWekZOdmxPN3BYaXFWdnRIdDh1ZkIwCisxTFJxZzVlYUhrU3V2WittUnlBN280UHNiTER2NFNoeEZKOXZuVFQ1NGhHNWlJMDZZOTdvblVsYmlmUmhsYnFSCisxR3RkWEQwRGlTN1hVcGF6aG1UWDh6M0VkZVhQb2psTUVpUXN2TExCR3MxQjNuelhscXhuNW1qTTZTSzBISmdsCitqc0RQeS9MQ0JpcW5WTjNjVko2NCsya3dUUVlVc3ZQdU9COVl4Y0dPdjBQTStEaEJjYXE1S2lkMk9ibkF0UmhnCitWV0dIQXlObk5vUU5WYkhvWFFicStNeHhEUDE5ZWd3Z1c5MVl6TUtkZkVXUjVWd2ozUm5tU2xHdGNhUFUyQVFDCis5ckI4THJTMDRGQzVnOEVRYVhINzFuQ09DKzZJTytJY3NZb25qYVBYOUtPZzNtbWZRRTl5WXFkU1lRQ1VqODA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIFNUTSBLRVlJRCA5REE1QzcyQ0EwMEJFMTRCODVCM0U1MzVDOEIwN0M4M0U4NUJERkY2Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXVRc1VUQ2VJUWU5QUFBQUFBQUM1REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRFl4T0RFNU1UWXpORm9YRFRJMU1EWXhPREU1TVRZek5Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFZOVVRTMUxSVmxKUkMwNVJFRTFRemN5UTBFd01FSkZNVFJDT0RWQ00wVTFNelZET0VJd04wTTRNMFU0TlVKRQorUmtZMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMzFnNHNKRWJBV2FZclUybAora0g2UGE3K3hSRHZyM0pQN0pzUUZHUlNWNW9rOXRvbHhKMTYwUXlOdVdJcTBjNDJOUnN3T0d0R0tiSS9LZ3F5MAorb2FZZCtRcy8yOVlVUmlpdTJFekVoRFRLRHBjb1BOa2haeXMwYXJ0THlLU3kyN05qSVlzMU9SRWppazJReUNSTgorWm5SL1hSRGdUMmJpN09qNW13TVN0L2k2Ums3VW5Wa1JDY0phVmJjdU1CUHcvWFZDTWpDV2pPcDI2R0d3bEVJMgorWlR6M2NvWFFiYVErK1YvK2pBL2JsQ1ErMnQ2YkNWZDFHenk1WkYrV3BFNW1Qa1ZWenRjcWRpL3lMRTN0eHFkRgorc3VSc1NyVzZ5clM4dzBzbTVIc0pEc0xmQXVDT2JnTDRGbmVaaTVNOXQzdTZCc3RTT0t6clB5ZHNFSElnQ2Q2OAorZWVIM3hsanEvQS94Wm5RMGNtaS9mdHNCeTlNVEowcTVidkVPV3c5YWdCZGZSM1JoZXU1dzlzQmVJZisxSlVFSQorS0dPaVkxNXVCcDA5aklib0lyOFd3anp4V0tmRHJCUGhkUDkyWnNtcnIvVVgyazJOVzZrTjhGeEs4eWlVUTh6YgorOWlVdlBxaDczS3BGeXlpWjcxYzAvTFVHR2hIZ2pEZ3hYUTB5Y3B0bzdSM1pkWjQ4bmJBakQwRVRCTGZPTENoRAordEtRTE85cnI1U29BSWFjNnIrSS80ZkhpbjRXR212K3hpMzV6SHk5eVBBYmg3WEw2TlVMN1A3aG5zUE54cGJ5cworY1RXUkU1Z1ZuU1BYVDZNWFF1MFluYnNQZ1dianZqS0RLdXljdUgxUHhBMXY1YUdmekVYWXZ6SVdhU29oakVuWAorazNReFhvNjVHMi9ITnc0U3hmQ1FqRVNEdDhrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5QRDZscVlWYVdQUTlTVgordjNNTEsrWnN5clIyTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFDVXVWNEJwOGIyckwxRWt6dThlUUVaQmQ4VVV1aURjQnViSFlOUmpjRVhqdworc3RIejh0MUFRemUvM2VWaFJuRmRjbnp1SVRsdTFaSkNhM0lLN05acndzOERlS3VnV3hPU0h3ZUFUSDJ0NXY2TQoraW9pUjNTLzcyNVFGalpyN1JDWkRWSCtGWGtqOHZWeEdtVTlOcUgxa081NkpPMGdtay9uenVQczJDN1N5ZXZiWgorWHJCKzJCVDE2Qkl4R0xWVnRoVWNEZVNWNTlVOS9Bb0UvRDc5NExuNEFKZSs1Ly80R3FXTHBXVTk2c05udFhINgorVzFQdUI2WnRVeGJMRXkwdGpXYXNoRUJJSURsNWh0bmN4dDNDTThKaG5HYkFwQUNvYitCSXRia1VIOWc4Y1VXcAorQ2MzOHQ4WmhnbkJGNVhKNFBCbzI2dk9YcklEQ250aUw0WG5jVTMxbUpnOUpLSzZJSzJEZElWbjJtUjluWXNQLworcVprVUh3NW1zM2lmZ0xuL3JvWVJxMG5MaVZXYU1rUzVnYVpSbnZwTXRrQ09pMWpyQVMwVUlodUdOeVRHekZCWQorazBFVVNCVE1KcFRTTGt6SGNVbnpZdWVOaWpheEdTRDljdjBNRHdlQTFsTHBCMnJhZXVzdjRKMUtId3NlaDVWVAorRlNFa1o1Z05XdU5KbDRYVU5xclc4aXMwcWU4c0gySHI3VDNiY3gzRDc3Z2NNd1lHSVFLTUk4VjVHd2MveWdweQorTG1wQmFlSnJONlUyUWhlNTEwMXpvamR1YUF3bE1tSWZ1RjJudTY2aVlRendNNU1aOU5jRDA3ZTdWVVZBbFlISworVXpCZk5UNTNlb1cwMytDWmx0QlVUUDNTL2V3MEFhZWdqK2FWZEMxZHY3TUk4dXRnMXNFY2JSSWcyN1lzS2FBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBTVE0gS0VZSUQgQkQ5NjNFOUFENTc0QUFEOTRGQUQ2Q0JGNDE2REQ4NUI0QTU1OTk0MgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF1YklvbHd5VDdaVDFRQUFBQUFDNWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEl3TURZeE9ERTVNVFl6TlZvWERUSTFNRFl4T0RFNU1UWXpOVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xWTlVUUzFMUlZsSlJDMUNSRGsyTTBVNVFVUTFOelJCUVVRNU5FWkJSRFpEUWtZME1UWkVSRGcxUWpSQk5UVTUKK09UUXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWx1dVljWWFNK3BiKys5VFAKKzZtekVuaWVtT1BpcE8yRjczcXBLMndZTFhCTTN1UklMb2xSaktYenJDeHZZQWZZcVo4U0FhWS9tSWEwSEJRYUkKK1VUd1F1NkYzQksyUE84ampZZUovMUhBZFA1NVVoLzBwMGRzMEJwNXNTNTd1a05wamxCMXIyZ2dDcnluZDZheWoKK0FPM1NwakRYOE9VT2FUeUZPL040UFp3MXkwVEFtek9JekN4amZRckFDTXMwdmR2QWtLSjRVdmVEc3JzUnE4clUKK0lZZXFETUNQSkRuQ1B6SHh2UC92TE1WVjhpOWh2YUhoTXl3NXdpQ3V5UXRya2FQY3NBem9yL09zMXkySTl3c04KK3BBeGlLSDcwdW84VGd5VEhOT2JBWTR2K1N0SXlXbTJKa3g3UldPY1R6VitwRkdPQm1JYmF2TTJDTHZpUnE3eTgKK285MEJkWmgwYWtOTUdDZmdjNkF5K0JsVUdhc1Jhc0MvN3AwK2ZQa0NVY3I5ZVZ4WkFtTS9QRkIvRTRpSHNJTXIKKzNJYVBTeUJFY2gySmp1aEhheEgyeW1ZNUdCdmg1V1lkU0hDWnFlejZNK2VmVG43b2hqajAzOXhaaGNyOTQ2aHcKK2xXdWhNN0Zla2hEMHdKQ0FCMnBuZ0NHOS84cllmcDRUc3dGMnZjOGMvcDJWTlV3TXVBaTlOcmo2c3BGbm5sRTEKK1NJVlhSbUIrUDhqRm9mRGxLUnlreG9TOUVTMlR5cS83K0llU0FjWkJOd3gxTTRUL0FRNXVVOW1rWjdRN0RvN0sKKzRVQ3IwZXZ0OXNHdUY0cjNuN2p6bS9hcnVQSGxmZjFOdXh0OCtJNXY2SnYycDNGZXBWekwwWHFYaEg3Z1JiNjUKK0QzZGhuM1IxT2JZVlFsckdrUHZFT2lmWnpEc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZNQThNREZPOGh2N1dmRlMKK1liWE05M0IvcEVZUE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQTRQRWdNd2VsVVRhSHI5YzY0YUZ5cDltcmVhQVltQnQ2ZU96cklsTU15eHUKK0ZMc0NOanArblVkaFVSN1NsbzFkRXVCL0tWaFJRSXNLNkQxMithY1JSa1Bpakg4b3JUcEgvakRubklnSnkxd3kKK1RDTktkeklhcXlHRGpJelBWWFZSTXFDemhWNGxhaXpUQXB1dm9UMkdkUmt6bmFiRis3N09KSkVaTFJzQmFqMVYKK1VPWk8rS3ppTnQzMDFKKzY5OGdyOURGVEZrQUhqUXhvcVFCOFV0S1Bkd21MMTUvK1p4b001ZHZFY2tDZXE0cjQKK2ZHVHFsSE9aZDB0NlhpN1lOZyttS0Z4RUMvNXpieVlEd09TRDF4UHY0a0tQcS9lbE5YbkllUzk1QXVOQmI3ejAKKzA5NUVjRktaQ1NHczVLK2JOUVFBSjdoRVFITXpwT3ZvdTlvV2cvc0VvbzNCc3MvUVhQUUtJRU4zYnVZV243Wm0KK3ZjdVN3ZjhvMERqdnlWMWN5QUVXWnlpMEp0eFBIWjQ1NlVCc3lIaThhbGJSbXFGZlN5VkJlaWRIdG5rd1Vsd3cKK3lSTm4zazZOb3ZsRkRuRUthSWVacjV6WC9ERDF2LytwUDlkcVZtMUxRUUtMQU5kdk0zeExLTm9heElZcTNocHAKK1lzNzRoOXZJWmpwY215REIxNURBZzlNZWZlK2NmdmoycU4vUThJVmM0OU4rMnVDZzJzYzlzRTV1NG1OQlFxMFAKK2czV2EwV1BBamZOeEtDK0JVR2RnRXJtTUZTclVmZEQ4cXlvdmhVSzgvVDFmVXFIRVBWTmk2Q3lzUzc4NWVyZmIKK2FucnQxRU9kdHJNMCtWd1l4cWl4TlNsVjV5ZllBSFUyQlE2MWZpME9WVHVKOXNkZDljcmhnczJkK1lZS3V2Yz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgU1RNIEtFWUlEIENGMjNFNTk1MjZFNDQ2QzNGRTRGMTNFQjY4NkY2MjRENzA1MzA1RjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBUkhoNU1xaHJWcmJ0QUFBQUFBQkVUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVME1sb1hEVEk1TVRJek1URTRNalUwTWxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVk5VVFMxTFJWbEpSQzFEUmpJelJUVTVOVEkyUlRRME5rTXpSa1UwUmpFelJVSTJPRFpHTmpJMFJEY3dOVE13CitOVVl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE3a3VkRmZvNVg5R3VXQ2hpCitQb0J0QzMxSmNjN2phS2pzWWIrWklPY0lhMlJOQkl0T1VzWjJ2VnIzK3htYllWeWc0bXJuRjdaZFhqNnAxMkxKCit4OHdGRy9aY2p6UHBiS1p1Z3lzRDYvWmlENzF1SXRvNTJjK25taDBkS1lxYzdKOU8zUU01TkVZNk91RzF6NUdpCitMeFlnNmxtd3o5dXBSUzVwTzRUbkRXSkE1a2JiVHJ4UllhMFp5ZmY2MDZSejN1SkYydytzVEp1QnlpK0hCSlUwCitWS1piZ0d5QWN4YStjcHExV0tXcTczdE9DY1Biem5YV2xFSVp2a0FKYmpMSTJFVmVhU2RxNEg4UnNrWDVuSlFNCitVYXh3V0JMNnJSMEhJQ3QrcUhZSlIwcGNTcnFVbXBDcG1TTWNERkExK0M4L1hFUFkwd1VvZzc5NDZZaVJlL1lQCitCNkk2MXdJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVOZ2VxcUllN1RPOVA1b1FSVFV4Uys2SklQME13SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQnhwR25HCitXRjgzZmp1QUJTb2kyZCtUekdJSDVNcmQ1dFQ3bVNVZjA5WlZmeTNjcm5CMWwvdldDWnBNUytVZVpiQWtmS0IrCitFbDU2cUJhRkJHWTBCZ05Pd0tTc0xVT3JXSUQ3MjlhNTJWWDVQeXpaUWg0dTQ4cWJRYmVpU3RSOUEzUHN0ZWRRCis2N0p3djVVNXB0WkdNNytOOGNsV0o5ejBBR0Vna1FDbjVSMk1QdEIrUkVmQmFFTm52WWVwQmM2RE83MkZjOUl6CitTeUl0ZHNqTVB3eEdyVlNNQ1p2V2lkNUtzVEs5b01mMFUzd3EyWkN4Q2NYZXk0RThpTnN5UGY5MVpxM0lRWG9nCitvdDBodjR2S3B0MTRTYSt0b0NQTDhXblEwQks0SW5YcWhBNFVBa2RFazE3Tjg0RGJkRERxVXRjdU9hODkxTWF2Cit6MWNPU2M0aVhNRUM2VFE3Q0RjczZxNThvT2JRN2tDNDRIZUhoV0J6YXg1WG1hSGZXYklnbE5LaVBTeEh3eXZOCitkMnBiRjZna2hncWFPRzhudzhmRXR5M3J0SHk2b3JxdUZMeDIyVHkxWUdnZWk4RzU2K3NuVWlQOEo3eGd3eWNICitvdVMwSE5ZYVpIay94MFNVbmJzdWZ3YWI5SSttbnU4UUN0MTVaTVFwK3Q5V0tUNW9Hb2N3b2tTcDIxS3hxTTRpCitrNnNzYWl1SW1mZ3JpOGQ1d09DejdMNEl6UDQ0MXRobkI3OCtRNjZTUFNMbFA0aytrN09sa3JCWTg5ak4rQUhrCitFbnVyd200bFpSZDNJaUxoQnB6WUtBbzR5dUNmMEJSN3NwM1I4anJjNllLeVhsM3VnSkZ1Nko3aTF4S0ltbFhRCituZDBBV3hud05VK2NQeDB0Ry9jRUtFVUhqLzhDNzJjUFJMZHAvUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIFNUTSBLRVlJRCBDRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMwNUYyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFvU2xzc1VMMFdzNWR3QUFBQUFDaERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF4TjFvWERUSTFNRE15TVRJd016QXhOMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xWTlVUUzFMUlZsSlJDMURSakl6UlRVNU5USTJSVFEwTmtNelJrVTBSakV6UlVJMk9EWkdOakkwUkRjd05UTXcKK05VWXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTVQV0ZidlM5Tk1wZTdXc1kKK2wxMUs4bFFORUtTL2pmbTgyY2ROY1hvUC9ONmRObGtManlBWDF4RUV1M01NR1Zia3hMT0o2QnpoVWxXYjV6aCsKK1NUaGtycFNWNkRLUFlQT2FEM3hCV210aGsrQzkrVCtSK25yY1FjNnZzcVp4bzZVcm5jWE1hVEsyNmg4MjFEeGIKK1lQNkdncTVwbk9wNmxSQ1gvRDl2akhnNFdRWHE1ejRvOGxyc1d0MFQzeVRTVm8vSGdWRUxqckk1YkpyVlBHR1UKKzh5WDBtWlJwWXdDUERMUzJSbllJR3B6cFZTZFloVlp2Nk9yNERPR0VQUXF3UVpnYW9kOVBsbHg1OG5RVlRESE4KKzdpV3Irb2ZmNzh6MC9vVWpJK0gzVWZMRWRicWdPK3VUcWNvaVVHaHRkRVZJVHVlZ0dJdXlSMlhSR01Ha3p4VHMKK2xjZFhpWHZ6WXkzQnQ4aWdtZ21tVCtDM3dRa282T21NNnY0bkhqbXJ0MnRvSWdWV1JONkNjbStreUt3N2ovM20KKzd6TWpDMlpyRGF6dlhNNDFpdVdXRVpCZUtTSk5sVFlmdUd4eHVMRFdIV1VQL2tmejg4ajFwVVZoTDkwSS96OWsKK3daVFNJdTNTT2tSdkp3N3BXY2h2YmY4RENBVnRMUWNoS1RrZnpVVzNueUJQRkV5TkQwUVpuVHpUT3dOeGhpYlgKK1F5K1F1UWl0dDFBcW1iR1ZUMVRUR1pSUXpMYk9Wb01mbkgyZzVOWHV6bCtMZjlOQVk4N2x5V2ZJUWM3Q3k4Y2UKKzdITDFSTFVPMFM1S0dWZndRUjhiZTJKS2pzQ0dINFBlYUpENE50N09DNXJaUFRNeEZYdmVwb3hzTVhydUtPVlIKK0U4OUsyRU1aZ3FoSUVaenRuYjlvU0JrN1hwY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKQWRhd0U2MVV3bk9kNXQKK3hNS0szWWVBQ3dxb01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBaDlXb0RjTTZGRHVXZVJMRlBrMER0VzhPc0VGN0t1bzdHM0pWdDZKVXFhZ1oKK0MwUWx2dEZvYmpUbm5nNEVTc1NyM1BTNU5TZllhYlU4bVBLcGFrTFhBb1VtQWcrT3JKVHEvL3lXRytnNjN5YjcKK2N6NmRndFowSHA0SXd1MlViVFVJTUcxbEdxcmlzY3dMUFBucUtNUUk1aFpCZ2x5MGJseG9xWHFJQ1pkcFhGejUKK2RIOEVzYWlnN2NzVWpMZjNqM2gxc2UxSWZhVHpVTzA3aEFFQWt3MmVSTHhEaHM2TkdIeEdQc3dRTFhWaEdVWEQKK2Q3ZEpTSzVJVEdPZTgydFFXUXdwK0ZvdUtwTFFvK1BhNmpoc1ZWZ0FMcmxpV1p3VWdVNUtuSFVoNVg3UnFwcHUKK0RFVnhuM2xyYkF4V0FUY01XU0VqRG15cTF3NmtEOFh5M214bStKS1F2eHBtVHpZSUI2TGk5YVArdUxIR0l5dGoKK1VJRy80VFlZZElDUGpwVzZIVzlhNFFYU2F0OEhxSGhPbC9Xc3c0YUxsbEpYQ0lqTmhlR2M1SHk1QUhUeXQvZEEKK2JaQm1Sd3ZkaTUvZWlJbFpIYk9CWVhpKzZEOC9iZjNpM0FKT2tQQXNZTEVPWTJLR29YYWY2Vm1Oc0VEV2ZxcUYKK0psZDlnZ1MxNittT0Q0bmxEZTRzemFUa2U1TnV2YWhUaTFnd0FQZkFlbW9PTmJFVEM2d0gyUFNXV20rY0I2aE0KK3VRa0E2UFhrOEV1bnBTZEplT0tKaWtheko1K1Jrd3AyQkwveU9iSzc4MmpyTWp4TXphazlKL1RMaDhRYzVJS3YKK002MVJNcHRkelA0dStjc25yTEJ0dVFaMUFVSWdkRXk2QU5JcUJ0dDhqZ1ExOFJxdU9tYXpWRGZYYzdIRXcxQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgU1RNIEtFWUlEIEZCMTdENzBENzM0ODcwRTkxOUM0RThFNjAzOTc1RTY2NEUwRTQzREUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdWRpcnI0SjdtK3pSUUFBQUFBQzV6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZek5sb1hEVEkxTURZeE9ERTVNVFl6Tmxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVk5VVFMxTFJWbEpSQzFHUWpFM1JEY3dSRGN6TkRnM01FVTVNVGxETkVVNFJUWXdNemszTlVVMk5qUkZNRVUwCitNMFJGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE3b3B4Yno3UmpRQmloV1RRCitIekxTcUlLMU1ONExNUytsSTVUS0VCd2pYaytRaWVxTDR1UndaNmI5WE9LbFZQQ0syMkhza3NlQ3UrZjN2NVpBCitNMWZiNGpuem90YmJsVWgrWG1WRFhvanBKS0cxVHArZWxxcHhhdDN3Z05CRm85ZUJrV0dMaWlGdDNaQzhUMGQ4Cit2eFlCT0hIOGhndklTY1RCYnFkRzNROXZTQ0tWVE1RTUMxNENCZFZxUTE3cjJGdU92cGhIck5Ca2ZHdkU5VEk4CitSZWhkRlRxUHl6TjFHU0k2OWVkOUNxTU8xbU9mcEh2cTFta0plaTlDVm5PT0JvYndDZ3lWaVQyUC9vZHpkWjBiCitFK01yN2srczN5dGVxR2Iyc25VUXQvU3pDRG5vV3ZGZXQ2T0F0alhmVDgvak5FYmRVYVJmTXYrd2g5K2hWYTA3CitjZVFaM0hySXdwQlNzajNHN1VacW5PamE0THVsZ0NuSnZEQ2pXd2xWb1F6YXBFcThvU3dwOFhKdDIwYkkzV0hrCitmTDArVjQ4aUNDSVN3Wmx1dnk4bE9EVGptdGJuZXFLODFvSENkVkx3Nk9qb2ZSSzdqVEp5VnArRHVJVzIwbzdLCitHOHFmODRjcURkY09KRTdIRm0yUm1DTmkvdW1WSGhtNFVMWVloaEpEL2hrWVc1ZVdMV3VURUFpRndJZjhIQTNICitVblhMMlN4UDNwOFlaT2RubzdoczN0Njk2TTJRSDZCbDZxdTc3ekhQZ0dORmZ6cjZuTmloY3hDdFFWQmloUnNmCis1YUFGMlE5dCtnMWZmN2dESDBjWmp3Wmw2S0V6VmNPakNMbXZVSTVzaWhFak96V2pMQ0RlQmJHRldES29Na1FPCitrRVM4alBjMzF3a0w4RjBkM0JtNFFpNndjQU1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR3hqd2c5alcxNkJvNkhECittcWFPWnFpSGx3UWlNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVNETjRNUVhPU1ozZmR3aklSWUxFL0tzTWpCOVRxbnBlSXBlVUNLVEZUdlVICituSC9xOUJINVhZdHFPTVg0WGhiL042cXdZT05wREs4TjVVRzdZa0thcUlFWjE4U256ZW8vMlJuSzRzZHAwRHQ3CitXOFlGdzh3TlBNalVFd3A4dlhnZWxuYkpHTlBuUTd2c0w2Uzg2eElFcFB5emEvdEJkckdSMmxrTEJVT1VQSFRjCitrWndVR1phMzVmVE5OWUJGTE1TRXRmaDNOcEh5UWw2dTh5SmYvb3l3aHVtSTdyOVZLZ3pMb1FZMXo5ajRzenpwCitWWkRlN2U4QWVuMjZBMTdwQTROWVR6UGZzbTJ2UER5WWRscDUvSHoxQ0o3b254bjNXOWhBSmF3eGVzMVVSUjFpCittUVhXOWJPYzgrQ21zeE82ZUpMOFQvVE5XYm9tVHU2eERVT3gzZVhESElrdEZBTlBxZTNpOGlKbnkxRmFucDRyCiszS01sQjhXcjc0VzJ0N2JNSm85dmh4N2VnTWdlSUhMNm9FK2hoQ3FRR05lY0xSMURxUlZyb3NvdVRBMGNwM2pMCitQZWN0UkExTHFhZGZmRVRHUzdLV0loQWo0WXZ0RWhvbjBWa3hlRllSQ2g5ZU9VMlRsOFF3KzJCVDRER25MR3B5CisyV1hPQmtwendQRnpxMmlBQ2JhYUJBd090RUdTY3VUaFZqd2xXc2Nyd2h3d2FWMmxiWW92ZVdXUUVaVnQ4U3NSCitueXlLYzE3Q3RPMnk0UVRqSDl0WkVBSm1Oa1F6Wm5uNXFpOTZQR0MwRlZWQUEwMVY1OG9jY3JmV3ZlalVHeXlJCitiRDZNcUg3RythRmVwdmp0V0hhcllhQUpLMlJMVmhyNVR1bk0waDlaM0M2NHNmV1kwYXROdTRkSVVOakx3YVE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIFNUTSBLZXlJZCAwMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2RUQwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQURORjMyRjJ2NUljVFFBQUFBQUFNekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5URTFNMW9YRFRJNU1USXhPVEU0TlRFMU0xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFZOVVRTMUxaWGxKWkMwd01EVTJRVFl4TUVRMU0wUXhRak5DTmtSQ1JERTBNRGswUWpKRVEwVTNSVEZHTnpVMgorUlVRd01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBN1JwWjZaeXZVS2xBamtWMworVWY5T1JBaHBFVEhzUTIzWXBhT3dMVWYyU01OTVBqUktqKzEwUkhaajF1N3BBQjVSZHpGYmZWdFBIWWxBb0UrNworRElnQWF3YmhPL1hSc2l3UHNsakFldjV0ekxOOWp4bXhlRTJZM2JkeWhsSzBmdUt3SElsMHRIMmk2UnNtYXdnZAorL0Nzdkh6K0VySnI0ZkxpdFdzZkdwbUo2WlhzVTZVREk2Ym1OVnAzK0R1a1dwR3dSb1FySjJ5aDlka2J6bW1rdQorb1pPVGhMTTV6bTNhV0xCSnFOdXMrUVVxdmovOFhtMkMwdXp3aWNSSkZBNE41MlZuOUE2ci85bzB5R251TVdoaworTGJoV1JTY2t6VHcwQVR0blkvNWFqUHd4b2pjQUhFQVNSeHVKblBydkhxYm14U3FwWVYvWkJFalY2aUpTNTJSTgorSUJoSHV3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVQmpNMUhFY1RuYkZHYXhrSWsybnZYOHhTaElJd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFBZ1MzcQorditrdkRIZTg2dUx1RCttTjVTS3YxQzZyYnZBcDM5QzhweWxoZDRGWHF4b2ZZaHE3T1hHc2xrOFozYWJMRnZRaworbnIvNGtMaC82L3NuZm9xWnpnaFlYMlp5ZTNkaUpZWEkxRVdnSWRsSGtTWVVCYUE3UHBiQWhYc0dNTGZ2UDUyZgorRE54THpGTWRDcXlpZWk1VUZwUGRvbW1ud091RDZBNk0wREp1WStrUHUyVzZBek1XNXQ2dlplam9yVWY1VFpuZQorS0RvTXlPdFY1cW93OXZpdGQrR3ZvcERsYXY3Uzc0Tnl1dm9HTDVmV01OMVVxK0Nvb0oyaWY5VC96N0FMdnpQeAorKzNDZVp3RnRVemFYclcxMG1UZjdIS0lseVIyZHV5VGFHc2haMThQSXordXJxK3hKd3dEdTBXWDVWUHNTQ2ViYworQ0hlS1hKaGNMUHU2NFFsK1F3SlRlcERhRlBTVWJheXBHeXhyZ0x4MnRGTTkzem5vdEswSFhkRHN5aFpFcjlJNworL1RXVmNkd1A3a2hiTm9sVjZuem1TdFhWbGNYaEpROEYxS1pYRjh1SC9lYURHd1BzZ1JFblVjaWcreFk1R0p6LworTXN6MzAxcE1aS2tnUldEb1NlZzUyU3U1czhDM2toNFBwWDlDREk5bDMwQTR6TjlTSDFYYnVzcnBnMXJ6c2wwVgorelR4QUdRL2IwUjRXS2VIanJCcTM2L3Ird3crTFJLMzBLaVpuc3dMZWFFYzBCelM0OWVwYnlvY1ByUVBEdEtIcgordFBQRTZ3RVc5YWV3S0o3L1RKYytBbld6QXBVU3J1akxmcnNUQmNSNkM2UXpCbWl1czVJelhRRzNIU1dRSGtPVworWVBDamNjalcvVVRoWUhkUmMxNTdiTmFiM2RaaVdVak1STitWL2c9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBTVE0gS2V5SWQgNTcxZjgwNmI0N2NjZTc5YmZhMzU5NDdjZWQ4OGI4ZDEwMDVhZTA5ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFEYnFkOGk0anV5U0VnQUFBQUFBTmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEl4TVZvWERUSTVNVEl4T1RFNE5USXhNVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xWTlVUUzFMWlhsSlpDMDFOekZtT0RBMllqUTNZMk5sTnpsaVptRXpOVGswTjJObFpEZzRZamhrTVRBd05XRmwKK01EbGxNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXRVYzlRcklnZTFwcjkxUkoKK0EzR21WY1VUeHNtSUJMb010bFFxZVNrbGRpQUdUUXVsdnhyUkJzWVc0T24xL0t2VE9icnlOcnBKeklVbTlGWlMKK0VuZFFOS3pwQm0rbEowcTBCRVdDanRmcUZHR0RIOEUzMjJ0VFZrb01QSFNxbmcrOWlzcnZGQXgzZzFick5EV3EKK3NXZ2c4TS96VFpITms2RDBKT1Ribml3TmhUMVZBbGFxSXp4SVJ4Sk9ua1pqTU5ENTkyVmN2UWxvc21GdG8wV3gKK2dvbnRORHAwYmhPNWtUc2Y3MDlsVjd6Z2YvRjFlTlZYSDNGY0ZLUk9zWFNtbWtESzU4Vlh6N3RRVTRTL0gvMUgKK1ZjOXBYUi9STTlHc1lJWkoyS1FqVERPTHAxdWVGTUNsUXZnZjBVVkpLYkdxb0FnOEhaMytBYXZWK1NiZzhMaEQKK0ozaXFTd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUw1dzBJMGZyS09UTy80YnZ5YzJGcnlxTzFwOHdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCVWQzUzgKK0VmWHZTSFNlVHNSbE81U0podFR2QkhLdGdNM3NvT2ZndjlKTTlRQ1Z2LzMrTnZXUWdGZWlLRUF0c0ZYd2Z5M24KKytKQ2tVNzJrZmdxd1VWNTNBY2p5Z3dPVmFXdCt0dHFYdkVTL1Y0UEZKRENCRUxqNmVHbWszaXUxc3grRktqTjgKK2RqTzVBMkdmdFZ2dlFhQ01TM0RkeHdFdUNkekpLc0Z3dVQ0dWdGeFFmeDhhNk9oWUxhaGVKYThmUjhoc1ZCWjkKK0NSV2ZnVUVwdUpKUDUxSHRydDZUUm1HakxxQmJzMHg2d1dHNDIvUkMzeFZUTUt6YXJSNzN4aTJhUmllWGZlcUsKK2p2VkZtNldWWXFZb0FWUEV0N25JemNzb0ZkNGlkQ0Jyd1MyTStUNEE4TkYvRm90L1FZMHUxclBmWVhhK0NnVGkKK1llUDFVaVJlMkRWVzFTa3BBRWNLd2ZRaVZuemFYYjFETWJkcVFyOVJuNjZNQ2d6cDZUK3dkVXUwUHp0WGQ0RTgKK3hiMFE4VzVaOFRZaEQ3RXlmRXRyUHBxeVp6a0d0VDFMSy9JQXlOeGlORkdVWTVlRUlXZEg4MEJOejdzemFid08KK1hiTUI3eUVOeUpjbmNlOVBMRWgydEJZanNqVXQyUms1TEJMeEFWWUFIZmhDdkNlNGd1TUMwYi9aenlWNkx5V3EKK0lDQVpocVNoOUZ6RVQwMEVPdFNRbkFHQWE3WHJkbjB4eXpIdnFHVkp5STV3ZGZoUXN5TmF3RCtIZUowbUNXMFEKK2NNQ2lVUDVWdnhLNFRQQU9XWXdlSm9meG94Z0w2WHpjSWNWcnpNRHlnbGNid0RTSUJxVUJhTjdvaTNlZFdVQUMKK3lRR0FGWVY5TTFlZHlNL3gwNHF0SmpFdnFDc0J2Z1JDVlFmMklnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgU1RNIEtleUlkIEYzQzkxNTc0QTZFNzczRkYxM0JGMEM2QkFEN0E3QjY1Q0YxQzc4MjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBRG1MTERkcXZnK2VYd0FBQUFBQU9UQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRJeU9Gb1hEVEk1TVRJeE9URTROVEl5T0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVk5VVFMxTFpYbEpaQzFHTTBNNU1UVTNORUUyUlRjM00wWkdNVE5DUmpCRE5rSkJSRGRCTjBJMk5VTkdNVU0zCitPREl3TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3a3hOWHR2b1hLYWN6NENZCitVcVFXbWpqYVp0RGpTVUVSdHR6amg4dG4wait0N1cyS0NZbkJNOEkvcGxpOGJxNS83ckRhMkhjYW1zUXh6YktDCitsaUdTSUQ0WHFLUHhBaGU5aEdSTFJldTNRclpuZG5qZUd1dS9VeHEzcWhiSTdsWDlZb1JiZFUwZnFtK0diNmNICitIem1LSm9zamptbmNEU2hiL3B3RDFNRlBLL29VUkE0b3hxNmFHR0lQRE9zbm5VOWt4VTRwN1BJV0JpaXV3ZUNLCisrbEtaZWU2TnVWRFJWcHJNY3JQTUVoUStVcGtvdkVMVktFV3NzTTVGdnQrSk0vRmRnN1ZLQUdya1FPNTRzbmRDCitBTTBxcnFyZlFGNER5MU45N09VdlVXWi9wRUxUOTJYcmFVR2lpQXFYckJYa28wdXVrSkZiWnJBSVBsdzN6aEpOCitTUWl6TndJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVDZ2pVSGd3NDZVZDJRQ0JmOVh3b1dhR1QrK0l3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQlBYMS9mCis1OEo5UmZHTTlORmFqYkgrZW1zZkIyV25oVHlwaWJVZEZOQ2RvblZxQzdQbmJPbDhzYXlGYzlzVnZNazJpa2ovCitMRWdicExIOVJQUnUwRkRxYjVsdGxLenFlZkVXM2J6SFBvdDNCVzcwMytudHJMdmd5R0ZVN1RweTBuZm9McVh5CitZZG1LRVp2dFlNMGFGMUVJUkdkYmxUa2V4emlkSDFyVjNrazBmdlM1S3JHckNEcnRSV2EreWR5eDVwL2dYcDl2CisrUzZRN3M1U0dwTHZseTdQUkVrc0ZlK1I4c042M2FiZ24yeFJNcUxpN284Q0o1QmFIZ0pjUUdmMHhqZVBkS3pKCis0c2JML3o1aXJVUVBOUHZzRGsrQTM3TVI2L2V2S3NJQ3NPdXdpM01WYjFORHRMeUMvelRKa3Y0bzF0bUFlVVpJCis0UmpCM0ZYZkxBSUtYR1FYcU1oc1B0anRUeGlHYVIvbWk4SjAySTExZTZNT2RMWHFsVUlWZ2doOW8rY2ZVdmQxCitMVldVTEtHTEVsa1ZMN1ZlU1JBWkVnM2YyU3VhL29RaCtwMDFBdTdSeHJOOHU4ZHhMb1FpdXg5c0EwSGlQUlFPCitSMVlGUmowWjZTWkpqajJnNUxXak56NUZVQWdabDh2dTdXUzRGUHJLTVZPcU85TGJ1QU5kandZQ0FsZUlhZXdECitIMHBGYzd0MGhKNjZ5NUJCYWtjbVVLdWNSVE81eWplWVd4VXpkQ1ZocXJvZkhac2NnbWxyLzFhei83YVNEcHlLCit3OS9QbkV0VVNnQ0VxM0k0WjhoS2dZUHhaSXZrUFVlanpyVVlnbzZhbGJra3AwdEI4dkloTHJtdWs3VGhMOXdtCitqMjRzNlQ0ckthZ0ZBVGNuUmZJS21NYktyb3hhVG8vR2RNUERMdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIFdFQyBOYW1lSWQgMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1NkIwRgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRlN0bVlzcHU1RG5Yd0FBQUFBQVZEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU4xb1hEVE13TURJeE9ESXhNVEV5TjFvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVmRGUXkxT1lXMWxTV1F0TVRsQ1EwTTRRa1kyTmtVNFJVSXpOVGMxUXpGRk9ETkJSRUk0UkRSRk1UWXhNa0kxCitOa0l3UmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTHo4aU9GeEZPenZKWnk5CitaaDRKK1lUdllzd1FKUVBxMWpManE4OHJGb211alpSaSsrWmJvQ2kvaEhtanlKTHJhNUZ3UGhWbGVIT3pvQUd6CitFOUtsbDkyYk5uOGoyRUpxRVZjUUwvRys1NlphZ081UG02bzFzbGxHWkVsbWkwcm9mTFpIRmwyUGZseEZNM2RxCitPU0dweE92N1FqOEhMYW91anBEY2dXWjROb3pyeHR6dlJoZ3ltMXFnOGlQVmJnTWE1Rk5YV0RZTGpxZFFpNGVBCis1MCtCSG5kbTcveVJ4aStJbVRoOGhnY0pwQVFUU3o4bzJmSXJaZ3gwcHkyRm9wcUt1WHFVR21lL21Nb3dsdFdqCitQVDJOVGZaZGtNalp0Rm9aTThBL1RxK0lPbnRmK25KUENLZ2NadFNTdzZzdE9xRHFDVTIzQi93ZlFoZ2p1N3J4Cit3MElvR2owQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSHNUOEVYRWMzdjg4WllwY1pqQWpUUGs1ajBxTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFZaDVDCitXQ1JyQ215N0oxeExBcWNCa1BLSmI5RWZ4eXBqT0NrV2FnT2JaK3pUc2hpdEdFZkRjOGlWUGtEaFl5cE5idVdqCitmbGRsRE04SkxWdDd3VWY2TzlNNElBWnBzTDZqUW1tZXAwMmN5RWZVUkg1Ty9BUXBvcGRXQTlhejVBMG9hWTR5Cis1VWtNQ3c4b1FkM0xLem55RHhaaEZmSUtMajZzNS83L2tvUTFhdUtRQ0JoU3ArRXVSNEdLcDVkK3V0NHRzV0tFCitWYjVGY0paV3VkMGttV1FYcUFKajRwQy9aSG5ibnJWazFaUnRYNGdyOXhTYlZzdjFsWVY4ODdoSHY2cEwyTFJICittZTJ1UjN0N2RoL1AzaEVqNUxBZlN0cGlpV0NHS0M2WC9yVWx4enZHWFhEcXEvWW9nbE1MdkNMT1NFcjBnNzdXCisraHpEdFc2ejlHWVIyOVlWM0dIR2tRZDJPRWFBb0NNaTdPSzJPbVRreTBkUVdEWjR6TndYdkZNbSs3bllUVmQ2CitlemdwdUp6bXhxKzJKVG5LeDR4bFdYWFM2YzNnR016WUQ1K3RyZVRKY1M4c0VUMlQrWTN2M1dGd2pablNKbWNHCitIMFc3ZU1keUE1Z1NuYjBmMVdiS3c2aGVjZllNSlRCbGxST1d3eFNrN1AvVHhNY3JqUmlWQU94anRFTnkvWTdKCitpa0RjTmRkcHZTNzkrOFBPNlZvYlNycEhRcHdoWmZydjRINTYwMWZaTkJ3WWJMRHBHbkIwRGVOd2VFUVpJOWR2CitvT0VnMFFvbzAwYnRERUFZTzhsQ01kbmFpenpvMm5zVHQ3VFhZdlptemtSTHRxYlVVamxHOG5FTUhpa0xkbWl4CitvOVBWUWxIVmptY3d0S1hKVnA4MkYrQlZmSnNWb3hXNmpKb0pUVVE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGFtZCBrZXlpZCA4YTA1NzhjZjU2MTQ2ZmVhMzk5YWY5MDNmYjViMGFjMzZlYjI3ODZhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXRnYzYvbjI3ZmRHVXdBQUFBQUMyREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRGd5TURFM05URTFPVm9YRFRJMU1EZ3lNREUzTlRFMU9Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVGTlJDMUxSVmxKUkMwNFFUQTFOemhEUmpVMk1UUTJSa1ZCTXprNVFVWTVNRE5HUWpWQ01FRkRNelpGUWpJMworT0RaQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMEM2NHNrbkhjVFZVTDE4bworcmZBZzlCSEtHVjJ0bnYrZFMzNkNSMTVnNlZ6OWloL2F1c3RvbVFIdkowakk5Y1hHU283V2duYmMva2hlSHRiNgorMTNYK01JNFBvdGY4RHU5VEl4Uk03eE5wZTlzNFFkY1lyQnh6T2d4L0dvZ0Q2RXB5RlB3TVkrRzE4bDNJc09QQworYlQzQkp1ZnZRZCttWmM2cWxSeWpMSEtOTkJGbGV2MGhleDFnZWllQ082Sm9pQ0Q3U240eUpyNzMxcHkrVlI2VgorNDBPY0lxSVlOdXRpc3B3QVlVRkFiNXNPbE5qRDByZllHaUxTSDZkL3R6U21veDlMbTlZZWlTWFN5dW1zUEtyYQorM1ZLMllXZlo2ZFIxQUwyLzZKVU9UeUo5RjYwRUZNS1ZYbGFsdGVaL09WM2RFRitmMTRvUDFxR1hZV2lHVXA0VworUHpnVDNmRjRZY3VtTGNZWExnQTFZRVpWL1RpeEpqMVBCdDM2MG5TRGFOR1JOZ3BiaG91eTlLdUJCd1NNcGdUVgorcXRCUjhud292U0c5a3dxWGJybDJNMW5OTFZLL0pnTUpvaWpQeFNJUHEzQVFZcUxEWkJrb3E4YW51Vnh6YnZxcQorMUc2ckVBVy9LQVNMMDdnUEdMV25OZ0JYVHBDVFN5U2RUbi93eFRxdzJQbnJHSkUyNWNnN05ud25IRXBRdUtvcAorRFFnSmhMdWN5OUlzbFVHK3RLVGNyREEyZjdsbEIvdWJIRHE4UjBuVEMwQ3FBS3lTUk1zMjJBM1ErR1ArY2JhWAorWTZJdTlQVGp4NFdiR2NGYjBhQm5VRi83UVF5aHFlbjdjNTQ4bEQyajdGY2VHUGR0SUdON1VyRFFpc01nc3JQMQorZWtqUHF2RjlkaXJjdFpCUUltZDByK3FKVmVrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZBYlVNWkpaVVVweTRLWgorY2EyOEpnd29Mck5sTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFEejlJNmZhK3NXK0kvZkVQRzRsTnFadmxVN3pVK2l0R2RDOEtCUzFmTzJmegorejJLV1RmZzJqTWJVZHNhLzBKSWFLSHlyOEVWcmVBY0dMNzJMNktFR2NwMHVEckczWTJ3L2JQVUo0RldodEI2TgorL08ybTYyanI0UVN4MlhkV2dERnhQelZoR0tScUt6bUpPa0pCaTUxb3ZIZm92VG94b242c1E2SlVmUVJLTm51VgorSUU5YktiWW5uNXpvb1J3dTdQZmVYd2x4TjUwYUtYano4Y2JNdlB4TFFVUUNRNHBZc29nTW9WejVkaWY4Z3lQSworRk1KcFk2ZWRhcEpJenovZ2ZkOG9EOXpFT1lJME00T2NBSGpDL1FUdld3a0xPaklXclcxOTJYdFZwYlMvVjdCaAordWhZdWpHL2dqR0pDN3VpY2Y3NERKdVQyRnREWkNEekM3bjA2NmVySE91STYzbzlRY1cweFRUUXFENHg2MlI1NgorZG93bEh6NkovQVg2NHdyMjRVN210MFRsMkVpVkg0Nzljd1ljSExJc0cyazE5UStSOVY0SG9ZbkhxUzVnbnp2cAorRENjZGozalZiQzZrZSt3WWlzY1hZeFliSGlpcHhIQVp0ZlJmVUJ5bC9TbnlqbUpqS2ZMTlhlTWV1bnpzS2hjbQorQjdMZlhsaWZ4M0dlYXZSY3ZEZjRKVnFtSk9Gd2N4SXFVc1J5cFpXa21JVkRKYVY2VENoT3pjQlJMRkR1Rkt3SAorQ0tTTkdYR3EydTJQRDc3eVg3eFlxanJSREt0UmlCVGtmM3g3cFVGNUhaTFZFcEd0QldOV21QVXY1MnNDMHhWNgorWUtRd0ZDMmhmcU96N3JUOVFzbzBSR1RPSkJJZWFGNlRiUm02eXJkK0orMmszVEFYTDFGZ29PUmM3WjI0MVJRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBhbWQga2V5aWQgOTBlMDA3ZTE3NTU3NDIwMWE3YThkYWM5M2IzMjMxMTRhODg3ZTFlOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF0bFZiRVV0eUZCNGpBQUFBQUFDMlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURneU1ERTNOVEl3TUZvWERUSTFNRGd5TURFM05USXdNRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVRk5SQzFMUlZsSlJDMDVNRVV3TURkRk1UYzFOVGMwTWpBeFFUZEJPRVJCUXprelFqTXlNekV4TkVFNE9EZEYKK01VVTRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW9zR3pLQ1h0SW0zRFZ6NHoKK0g3NU4rcDdKTm9OSkVpOWh1MS9pMlZqakpEc01QcitiUlhzd3IxZDFhWVpqYTRLYVdIKzNpcTcxRmk0dXRocGkKK1krbm03UFNrY084MDhoZU5ZZ3ZqT1BYWDZhZUR4NkwwMTlTSThWaWRMS2RLWGNVR2NYSTF6OTBXSmJ2bXZSRXAKK2pkQ3V0aitxTEVCemFuVHVqTkVSaVNEdkMvNzRLOElwa3RDdnNPUHJ1QVRJVTJmNitzV0FQSGVvTlpxL1p3L0UKK1NBMzlBdzBndjBVRmkzMjJEa1BBRW1GSWh5bzI3ckMxUFFvTEtLclpmUWZxRm14NDg2bTRFWlRzQ0IzVjdHQmkKK0FscThES2oyTXRjYjZlWkM2cjBCS2JDVHh3eUFmaDhjZjg4aStsYWJzbWxDRWpkK1hVRjVDbzFjSGNONmMvWksKK2JWdDFDWTBjR0FNZWVMTnVZYk5FcmNxd1FQbmxJNVNlRDBsbEl5VFFFQlFQMWt6ZUdQM0xTSjhXTDJybDBuckwKK3VNdEdhVkMwbStPWFgyeXFqY0Q0M09heERwUzdIcDM5eHU2NlM3ekRwNjhDb1hwNzh0NnY1WGJQL0ovNEEzLzYKKzlBT0FFTjhSRzY3OGM0Q3A3eGZ1TU5ZaWlMbUo2TjNDQkdLTS9rdEtsdGNQenExNURMd3MyRmJ2dThheU1wYy8KKzlEMjVFYy9XaUJQNkhIWXVFUGZLUXF3WGhjNHdhUkhpOTVJK1RZdWl2VnJ1WTBVWGZtR01ZbjBjc09laEFuWjcKK1Q4aVVpMVdkK2tHZGFXMVZ6UG5mN0hJVlBXbzZDVzVHMTd3elBMcW84clZFODh1ZXF2RytMbUIwOHV6YlJjSmcKK1R3bGRwd3hRWUh2T0ZoOXBsRDNGT0lzQkJVMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQL2hSUUw2S1haNVN3ZTMKK3hheEROeDZ5YmIzV01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZk1VQTNSdEpTcGs3enluRENaUlFDcjFnMlR2SGJYMExON3VuUUhlUFBMWHUKK2cvaEdDWWlDbUxrMFFLWnRuOU1nMmhheXFkZkN2Y04xRUlCV0NEQVYyU1hkYndTalppUEhIZ3JEZFA5dU5nMDMKK1ZGUzduYThOSGZZNzRNd1pqVjd3VFFBZm5jRG5UMGNodGtzTzZuNitrZEduVlByRjRIeWJNbDdQZWJhdWVoQkgKKzRaU1daOExnNm0wLzI4ZmNMSXZiRjFiYWZrbzRpK1lxR1ZCSlRRMmNvWVJtbE0wYktoSlppVlhvSU4yWW9ZUkEKK2pldUxjN0daK3UzMG5mTXJxWGJMMFJqUkpwaWVsclp6aC9jR09CNlgvc2FIZE1ia04xbVBhTWNjQnJDb3dMSDgKK2ZZLzVNcU5TTlhCSXhFOHVYa3JXMng1eW82RWVKdEVIL3RTSU1vUUx4bVo2QnJnS1JRSzF1NVRJckUvWG5IeUUKK0sxK2JZUk1aVFY1OVRCaGoxdldCNm95NFFyMXpaVEo3d0NwWFYyR0piTm9BcDVVQmRjVE9SUFU4djdleWRRZ2kKK1RmUGhiTVFiL25LRFFldjBaNlZ6MmxqSmFxMUtZNGt0VmtqUXpoMmlvM0JmbzQzdkh5bTlGNjh3T2dVTE8vN0sKKzBsNFFoc2RkajNla2EwNFFHVlVERjFOVmU0RE54T2tsYUFGa0kzRzRkYVR3VU5jeVAzZk9HbDg0VTBNQlkrdkcKK2Z0bm9GVitLUEtTZ1IxcERpdnc3SDZyWlBwYzdFSzZoZTVTbDRnQ2pyd3VpdU9LTzZ1VCs2c25jOXhNRjUvS0QKKzBBZTVGbUhoUjJSM0pUTHNUYkxpMFZXZGg1Qjd1TE9EMUJPNmp2RFoydTM5OGYvT1NnQkhsWFo5VWFJK1FNWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDBkOTk2OTUxOWI5NzlkMzJlZTRiODAzMTY1NjY0ZTljYzg2ZjlkMGQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWkFpd3pPMEVHRnIxQUFBQUFBQmtEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXdOekl4TVRjeE1sb1hEVEkwTVRJd056SXhNVGN4TWxvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB3UkRrNU5qazFNVGxDT1RjNVJETXlSVVUwUWpnd016RTJOVFkyTkVVNVEwTTROa1k1CitSREJFTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvdmIzMThKSk1KS0FQdG51CithMVAwM2tYZGg1dlRpTldNb0E3OVNYNjNtK21vNU1ycEoyeHVxY1U5TUhHcDFMaUNtMGVjaEM4VGRxQmh4WGhGCitZTDgrQ0M1OENDNW9FcmpacE9Ca2dhTzF1ZmpKYVdCUW54UEFkKzh4cjZjL3ZaQVNJVGp4SlNWN1kxZzBnWEhaCitrb08yR2xTbHBFanROaTFZZWRKY0hOTGRocGlLYXhKemZTRks4VzdMSG5Gc25JcXpDeUxkeDNyZFpiVFA0Yk5aCisyRTdxQTVzbldlUXNmU0VOWmk1WFRVTitFcDZ6Q1J3WTIxRXBPamh1WElyTlc2TStEVFNQNjBpSHFEU2hZeHRwCit2VlNhQzMxSXJsV0FDbWpTREtQVVQ3STJ5eFNBUWtJMS85ZUxVc245R3FralAyR3pKeno4cG5nRWpuTkF4eU8yCitnY2xOdEsreFM0RHJQRnRQRzQ3dGtTdVBkbHZ4aldza0ZUaVdHRElHaTF4eEhJL1krOGp5OWQzNjRhdnE2eWNxCit5QldTLzNEMlVXL3M0cDliZ2pMdEpNczNmbEYxS0xkby9haGRIckZYQWwwUDVzMy94eERSSTlJb3g2M2FXbmNKCitlVFhZREV2RTVvR1JHWGNSK0MxYVdHSEhsS1Q2YkNtbmFJOTBqWkhYa2ZjT3FPczVrM0orYVdIbnh6Y3puenh3CiszZVZ2dnBka2dPdjlSdDdqNEt3MU1Uazd6V1FYSEhMSkwxdXhDWXFseC83bElTMHVQNm1OVzVHWTF2b0pYREZTCitjNVUzZER5ZmhKWDlGbElNVzFIZFB3ZmNFWmRzeUZONkprN2JYOXlTN1dIY1hGK09DMlJyaHBFMnEyZisxbUtzCitQSmlmbjNYQkd2SW5mQTVUcitWTXJNMnV1enNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTmpzMlhHVHg5VkFuc1EyCitHbUp6aTVEWlZ2TytNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQU1EOWpmbE5RR3pPcjdxY1IzZm82OEhhZnNJempjZW1QM3lqMTU4bEVEVlFyCitLZ1FEMmNCTmd3aTFSaFlpRUFWS3BGNkc4b21WY3NPanQ4c2YyUXB4ZVM0SWo1MXlvU0NFWVJuT0E4c2pkNkNpCitFMTBjTTlMNXFvQmNQWGxnY3RPRmFqb1IyS0VLRTlDK21Pak4xN096TmpqNlhpUlA4cHRBbFg4bVgvMVREczZOCisvYXFScnplMDVXZEh4MHhWMVNtUWM4dlBMd2hseUZnMWQrUGJYa2VtemtQeUlpNW9YTEliNnJiKzBrNEJyL3M2CitYdVVyUXZqdjFIcTZIQmVtK3lNM1NhTVRvZWJjR29zMXptbkRsbWdwcVo3NmlDZjczNFY1RGV4dnVka3pyS3hLCitxTGxJaVgwZjE4TFBOZHR6bkV1OVVtYk5LYlloTTlBZS83MTgra1l2YkhmVTB3R0oyZHFUQ0YxZGh1UTBnbnhPCitZOVJLaXdHdUgzKzJFdng2c2FZVmc3SGltTENDMHJINGp5UUpEZW9XNWVjNFpZaTRTbm9hTTV0N3VvL3RIM3dqCitTMVNuelc0UzV0ZU03UVZPbHpKWk51ZFNFT0IxaWdiYXB5aXhCTUdSNDNPQkEvSjFFb01Kd0JqRE5OUXAySmI0CisvdTJuWjZCVW13UkpKeW85V2t1dnI5T1pheHY5T0Nsc1Z2ZVVaekZoc0NxeWFHTDBNQyt5eHp0aFNwRzJnczNZCitHb1dOWUdLcHdUTEQzS3pJRE5GSWw5U0puK2RQZ2RmVmIyMVpMOE1BRVpPM2JldmtFYzRaYlhyekx2aHBBd3doCisvQmRYTlNTWG4yamM3THlnMU1aNFRDWi8xck5RcTREL2EzNFhPWFhCS2xRYnNxK1JJQ0VqVmx4SE1KUFNtOWs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCAxOGIxYWY3MGI5M2Y5OTE5NzJmMzYyNTU2YTlhM2ZiZjRiYjI0ZTBkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWFQRnVPeTJPVDdFbWdBQUFBQUJvekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3lNbG9YRFRJME1USXlNREl4TkRreU1sb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMweE9FSXhRVVkzTUVJNU0wWTVPVEU1TnpKR016WXlOVFUyUVRsQk0wWkNSalJDUWpJMAorUlRCRU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcTB1NEl1d24rQWJRKzU1egorSTg1VjNXTVR3QmpSbU5icTlLaUhUeEpRWnJDL0hWN2FLS28xcUVHMUVsaFFSTU1iNDVGSSs0WGwrUmJ1N0VXWAoramtXNzM1VWJRWDlsdE81Wmo0bTQ3ak5VOTJ6SWg2dEdWak9YaUwxeEtseHJqZUVhMkVwSVFVYTFBTEpJY1htSworeHhKenY5RWlzUmZUYXV1Q1I5dGQ1c1M0MHhmekMvc3VwREJ2NFZ0Vk5MYURsd3lHOUdPWGFlOVhzU1FSUXlYeAorWFJ6dDc4TklIR2R3Q0I4LzB2TmV3bCt4d0xXL0g0ZHFPR0JJdjVwT0lxdE1VVGhUK2hFZmZzQjk0TVQvclpraAorTk1takRSWmRqMTcwa1llTXBwY21xWnlZZDV6L2FFZlh5M1J4VXFmdmtWZUttYU82MlhhU200OWxOd25zY010bgoraFFKQm1yOWduVU92Z0lwcHhoT0h5UTV0ZXlmbDhVMVFtZHcrM0dSZEl0c0Rrb3Z4elR3a1B1T1ZYKy9xMG1rVworbU54YlVKVzRDeWFMaXZhU3pMOGx3MXMvbEhhejZUV0tLWXFZYk9GODhoS3lxMGR5UTVJUGNaTTNMbDRMNFoxYQoraFJna1dWYmxFWEM5Z3dJUmdyQzFLQmpoVFMvcmZPdm5ES0xQN1hvc1ZDNlZDVjVDTUQ4UmtyTVdSK3JxU1VOWQorK1h6WjZ2b1l6ZWJYR3JWaXMvcFJCWjJ3YzE0aWlHaTRsY1dGU3pZTVczN3NKWVNWM0JXRnBiOTNEdUp0Sk9xOQoreVRQRkc3V0lCUnNYWWF4SEJZVFNRenpTRXBya1lYZFdZZFdXcnd4MXIyQkd3dDBOaWFWL0RhdHJXVmVUcnBJTgorYjRJOWdISEUwclZ2cVpSNGZiVTc0Z3R1TCtjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhwYmlZVmdqWkE2WjBERgorSGhYWWllVWlSVGVhTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFjbm1uN2ZjNnlmTzd0V3hFT0kvOWJzVkFBQ05lOWw0QlBRWDZTQ0pxc3l5VworaThuTm5PNlc4Vk5yUUlFWUJxTTZDQXZsRS9QOUhEVXJuc3BSN3MvdVBsQksxR25OTE1RNEJMY2JFVmxUSGs4cAorMjlDNXUwTXNOeXBveFRIMkR1eXlNNEsvWnFxejl1QmZzTmtTR0VWa1E0TFBxdG1WNVhrdythK0hyRTVFOU9tRwordVg4cHVXKzU5MGkxQyszYXpEQWRpMFVqQmlENlYvQXJjTEFyQ1U0Yml4NmVRSnlKc0FDZVF3TjRzYTBBaVBOUgorc1JSU3EyNEE0RXowa3dtcy9qY2VBeHlyS2ViOVFVMGJZbEUyQWtObFl2MStOVjkrdk90S3NqL2N5TVJtcjFvZAorQ21BMGZHOXJKUk5LSGYzcERZT1NHZUhybVg2WlVHQTF0RS9UWm96bERaRnl6dDdGMWlWcWZZVloyNldXZjlYUgorZndVbFByeGJWaFZ1R0hHdW1XREpMalMvZUZ0ZUhMbmVidElkUUhveUoxQzhrcGJGRG1XSUpLMnFsbHpWa1lVSworREtPbXJzVG80ajgzVE1aY1QrKzNqVWVaZktVRDRnSjBhSDNBTGtYd21zQ0prMjBlTVNLYnRrejVFYmc4QzdWbAordGs3R2g1V1FnZ3lac3RWTE9TUmNZZ1dPWTJmZ1RMSzFtblEwTTVsVk1ZV2RTTEpHbVF6NWlpMG53Q1VUVXQ2UQorandmV0IrRG41ZXY2dDNEZXVCUC9QUzhCWkZBUDd1TFltcHdEdUlBOGlIY3VaZGJKTlRpZWkwOUd4OFlpdjlNaQorR1dBRzRsSDRxYmQ1MFpKK1NJUjNtWXFCZ2xCTW9qRnJqMk1zU3ZFbmhVUTRVdmg5MTV1bTdIWmRuVGlScTU4PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgMjYzYjc0NGQ4NTQxMmJhZTZlMTNlOTRhNTNjMjM1MTg1YmE0ZWVlYyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZmJLRDZUdSt5eTU5UUFBQUFBQjlqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBek4xb1hEVEkxTURJd05qSXhNekF6TjFvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB5TmpOQ056UTBSRGcxTkRFeVFrRkZOa1V4TTBVNU5FRTFNME15TXpVeE9EVkNRVFJGCitSVVZETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUExVTcyZHRvNFlXRTBuRXphCitvbWtOWFVyeDhibm1xM0NJbVBwTTgzVTQwYkdpYnMzbFNzWmI0SE52MGd6bVRFQ3YyY3R4UThkNGt2WGJ2cWtyCitWQXVvSXVZeWl1ckJnb1JVdlpjemEwaUFUZWk4Wis3bUlWWVV0ak5BUWV1bFpIWEtsQjN2UGRacUw1OTFvbGpUCis5Q3VPUFkyck5ZYXJjN1U3MHRVa2JVb2swaWtPU21vYkoxWDBtRlNmbDNGeGkzYS9kd2UydTJERnhNYXFyZzBmCitKRjc4bjkvYUVtbGpvRENNZXg2MERpYUVXTVFqQVlSMXBIZHkzbmdlSFRaRGVqUVV6ck0vOWlDbkpwWDFqN1RoCitzb3pXK1lCZE9VL3hjdHRSV0xuVXo3clFMTzhzR0FFSnhMYnAxWno4YmNWZG9DWHp3Q3paWUNTWmJ3amN4VWR6Cit0VUs0YTJOczEvUTZhN24wOFNYcXExOWVaZVVCWk94MUUzR09YQjYvbWx3Nmg2U0hqeFEzd1Jpclp2d3Q0NlpqCit2QlRhM2pOUnZDMGs3QzhWMGx2OHN4eU9xa0ZRd2xNMVY1UGFDTDJPVHJoYnE1R0J4VzZwYTh4ODAzc2dCcGo2CitQelJCSFhMeUdPeTFCeTJJM1NOR29PRlVPRVo5VWI1SCtiVVRrcWNDd09kSWtLVUYvVmhYdnNUa0M1Y2N2OTYrCitTYXJoQXcvU1c5eUJVU1RvOUVYYmxDdVZCZjIrUDh1OXJaUmVpdFV3VzBNaytBdGxsODRNRTJOMDNmblhNZzF3Cit3WXoyVkY5OTVDL2VyS1lXK3ZBbWk1U0RoclJDdmdMUlliYzJZTytmQ2poKzZJN01oZGkxREZHZE5CRlpHUkRMCitXNmowT3BNWEY3MExoK1Y1b3ZubVlnUEFMY2NDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUHB1MzhTL3VSUzFDUFE1CitQYTNValpMYk9aQ1lNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVVhNXdnaldaLytXTTBqYWRMSFc1TWdwVnM0Nk5idjBkc2lwUjg5Tk1Oc3hpCit3VG9PNUVjQjZPZGtXWHhvOHhSVmlwNllON2tQdGpvbnJ5cmZSb3NCTDBCaDBwOWdsWkY4K0ZtM3BFUG9BczdBCitPUTdKa1BDV3E4a1ozWnAzdWlDbXFwSDhjeXhZMEhVMmJBNzNEd1ZaN3ZiSTY5L1NjVTNDSzBIZ3ArKzkyWlFiCitkWmJtMUpSL09nT1hzN1dxTHh1bVR5VFNMMDgvRG9vZlBpbmNCOVd1VXRhbnhUTDQvQnl1eDBZNVpBVHBRaDQzCiszOTArQ1N5dExGS2VWL013bW9EakduQkZhaU94WTJIVHAvckl3TXBWUVJ4VnZIVElyWVRwYStYa2JXOUNGWFhXCitSTldCUDV3aGJtTmdmK2JzbVB4cjR1SGgvVm10VGtlSmdXNzlaZmwvMUsybXlKa2JZb2lYYnB4Ym1OQWtjQkZwCitaS05pZHIxM0FSZEJ6UTc5Vmd6ZnFGd1hxbUpLdUFQcXMyUWdPcktSQzlENzFzMXhsZmVTQXVGT0h6clZ4azhxCis5YzRMbEdSL2RwSUJ4UFB6VlBKdGFGVU9yQVpvYXpEWDJPaFR5MnVpNmlmUVVTaUs0MUs3RGhNMXlSU3R4Rmg4CitVWUV5aEhlWUFydXVmMENXbGxlN2pXUjRYM0d2NXd0V3RiUjR0amJldVBoNmpHcUQ4MGdPU3BFaUFMMHdsMnVtCiswVlZPRkZnRDZvemE4VC92UTJwMmI3SmtRL2l6V3VKYlNVYXF4RVV3MkU4Y211M0ZOOVhkSXFUN0VlODBWRnYwCitjTy9aRTZQZEpZaG5hS0RibWNQU3o2ME0vMzhXS1EvSWYwby9VRE5sU1M2NndTaTRmbW5RT1lXbkdJZzJyT3M9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCAyOWZlNjk2MzBlODUzYTRjZDM1NzVmODQzOTJhOWJlZDJkN2U4Y2EyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFmTXh2WmdaYUlJMzRBQUFBQUFCOHpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF6TkZvWERUSTFNREl3TmpJeE16QXpORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHlPVVpGTmprMk16QkZPRFV6UVRSRFJETTFOelZHT0RRek9USkJPVUpGUkRKRU4wVTQKK1EwRXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTE1eUdtb2VUUDMwZkNLNEEKK1hxQ1JidDRJL2ticHZvb3dqRkVEUGlUeHVLekcwS2U0aHZLeGt5RGdlZkdHeWVXMkIvY21DTUJ2emp6MWJmZG8KK0lCZGVKSDEzcjkzVEFrTUs4SVZhQTlOTTZzTEhOVysyTTVab3NHWmRTRndqQUY5SDlORUY2ZGdaZ1c0dFQzOHUKK2tZY3oyUmJlbnpZdlNLL0VNVERMRkpLTXNhZVBjZ1lpSnVRVFRLY3VMMThJbmVTRFo1ZE9COHRnZW5wWnJ6RUQKK2hwcUNYVVFCdGZwRXZvckFJMkxTSkF5TFlZN2g5eklNYnpua3NJMlpNSndweE1PL1hwTktiV2VyWWVYeFlycEYKKzY1cVVuK2lNZHNnS1FNc1pzbmc2ZnY3RHJjYnhCcXY3U09WVElwYnIzdnE1SWxuM25wbzVzQzBheGlMSjVQbGgKK3ROMm1iRTdFaDZ3cHNWNmVtRHZuUTJVWndKUGlzUk1ZOTV4OFZuNU1reXpja3dPTTB2S2FhdVA3QXp1UlQvOFcKK1luOFF6WmdIeU85dUNLcmhydVE1UWFZRUk0ZDVSUWs2S1lYMzg2bklvMEp3OEMzb3dVdDRkVFkvZXQwNWo1WloKK0FEMHFIajJHc2dsYkkvdXhGMzNSSVF3VjJHbEk4aUkyUExTVzJtMmx4WksrMXMrUHpVYVRMQzdLVnVFcmJZajYKKzVwMWExMU1JWXFoeUU2bW8xSUVDMk9RV256TWhacVFaRUczUS9wQUZCNXdHejQ1alI5T0VFNVRaQzRtOHhqN3cKK0lLREwycmhFdm5EL1lIR2ExWU9WL2Y5d0RWSTZrc3ZiTXZJSGs0OTNEU1AzZXBtY0FQbHhYSVlFYjNWYVFqa0QKK0dLMmd6aXRjbVphMkFoTXUyM0NGUnFMTnVra0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZEZkRJMW5zWDdlS1B1QUEKKzYwY0s0QVE2TUEyYk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBYTVHQnZNL1dMQWx5MHBmRGdGeVhpL1JFNUlKdm9paHRTY3Z4Zi9rbWJKT2cKK3FkRGcwV3oyOVprbHRWbjU4dldVTy9STE5uWFVBbjFUb3hVYWl1ak1GYUxjMHowKzVvQ0xsSGdWcUkwUU1EbVUKK3czNXZNRWRCMGxzekE1S3J6QlhXTkVNbnVsbFcwcVA2ZUhRWkVpTVVCWWV1VUdiYmp0Rm1DZ0oxd0xPbjhkYkYKK1c1MUNvR1YyTmhHVWVPcE1JdUVLcjZOayticFFRZUs3N2o0VEsySzdOTjEzU01JU2k4RHBuZEJMNU5BNkw2SXMKK1BYbk91czdFaWErOTZtZHY2WkZWL1NDTDBYdllBVE13RHlJaFFjQ1pLcHlOOXRsQVUwTGYxcmd4ZFNEam56LzgKK1NHTm51NkYrUEwrVU50SWp2TVNjRnZmUlVGVG0zZ0dzTUJTQUtLblBxbERmM01TL0RLMkoyV2MyWWllVWZ4ZnYKK1BUc2kydnJFYUE2WFkvY3ViNjlvYzdvNWpvbEs0OWFUeFpMMUY4RzhTUXYwOGllV2d2OTdDOGdRK0VTQ2Q3RlkKK0QzUE5vL1FzbkJYSC9oSjVhcUtKVmtPWW5lYmRaUEZQSTAyVllNTFZYb1R1a0VJb2xUT1d1WG9Fd0Q4VnVpS1oKK2lMYTBvZ2ZBem5qRFM4UXJXRkhsTnRrSjdVZ1Mzd3pTRm44OS8rclZJMHNMZFJudFFxZ0gxQU1JTFBxMnhabXAKK0VTVUZtRjBUT1U4S2dWUVFkV3pKeHVoL29KL1k1VGN6ZlZibW9lYmZVT0RUeHRsREdNcURxdVd3cjY0ZmllSzYKK25ITWZkNzdpZnV5V0lFNmhBWlNPSUVnRzhWMlArUE44OEJlWXZGR0hOdUVRMmdTVWRvVGh4eWtHQzZqVXdlND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDJhNzdhMGUzNDJjYmM2YzcyZWUzZmFmYzNiMGE3YmNlYTdjOWNlNGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYUJ6TmxOcFJ6ekw2UUFBQUFBQm9EQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXlNREl4TkRreU1Gb1hEVEkwTVRJeU1ESXhORGt5TUZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB5UVRjM1FUQkZNelF5UTBKRE5rTTNNa1ZGTTBaQlJrTXpRakJCTjBKRFJVRTNRemxECitSVFJGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE0NzAwbGp5WjRhRzVUK0xYCiszOGJRa3BOenJYM1dIY2F6dWt1WFJzQnR3QllFSFJiMmgwR2svazJLZ1MxVFl5b09JbzJ4Z29PcytoTlliVnpSCis5d0N6eTRNMmVlQmJUMmVBWmk0VkJ4RlpGMEpRNXo3S0NOcDRlNm9iMWNGY2NZeldWT1dPYXlNZjNuZDhCcGxBCitoNFlrcVBMUFlIRi9DSy9xWUZya2xCUVcwSlk1NFR4UGFxdmlkV2tHSk45WXpXQjA1RzloSTk2WWd2OUVId3EzCitGS2Q4UDQ2ZGFXUVAwZ1FuSU85UDZNdFEwbmd4RW83Q2tYTlBsVFM0UTBUNHpRR1VQU05aMnAyQjB4K2JVSDllCitpbCtMUDF4VWVPUU1mOUZ0a3pYVkczNzdXVjQ3U3NHM0pFOEg3K3lFd2d4NmkxcHd0UnErMnBRSk9hK0ZmeDY1CitDYnFNRVJOaC85SVpiVTYvY2hqTlM1T2p6Ynp5dGRkZ1BDVzFvUDlWQWtRSFVmc3ZMMVZBOEtraWpHazFEVUJQCiszU3E0MloxZDVWeEh5SWw5TGFVUDhYRHBuaWxrQnFyeTJ1czRoMnNXTC9FZE5QODQ4enJjMGNQVVZVQnBzR2tWCisyQXZFVkZ6dUg0bm1FRVVKR0VTMEYrWFQxSk9mK0cxTVFiU0Q5dzBsQVZtTnJkWXdZcmhDS2FPMWUzalJvZXJSCitIOHdscjdYMFhXbHlDVmU4TXYxTkpDamQ2SWpYSlB3ZHFsSGU1QmNtZFBBN0ZMa3dLRWo4N3cwTE56YW9Icmc3CitaRmNwdVY4VFhmdzlsTkQzYzNTWnBSSDFRd0VKUXoySmNtWjFiU2xmQ05wQ1g5S0M4WnpKUCtId0Ezb3ZHZWlRCitJakR1KzhiUFFLajR4WjZQaENzWDlVSGdBYTBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQXRadHBkZFBWZUtzcE9RCitXdlNDRTNzMTB3QUpNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUhid3VTNG4ySk84YTRQcjEzVXowWTlzV0lSdmI5OXdoY2JISnBudE1YNThBCitUL1NHazBtUGZpWWZMSmgxdnFDTDNYMXpoWHR6Z3dZckt6RUY2UzBtODlnV3Nlcy9Cb3RPV2ZYT3liYWswdS9FCitPaWZPMFB6bERFSXJUUGl3R2lybUlpZ2VTZUYrMWdaMVBzaWxvbTNMank3SWRIQ2p5YTB4T2IzSTZpd2RnMnJXCitTSUl5eGd2czBCWHJ3MGhXSkZ3ZXZxR1lYZGJGYndTQXl0QmhnTFM2aWFiQUs4dFlOMGpNMFp3dnFrY0pPRjB6CitPMVZKMW52QnJPQzBab1BUNXp5V1ZybytXbkNtSklQVzl4VGowdjRKMjg1eVJRZ0UranA2UzVnRWRxdVRJS3B3CitBUnVPSXhad1E4c2dtTEJVOHlsSGJxTm5tbVd1Z2hxQXZyZFV4bkRlbVBaYVgvWUpOSXFCaXNsU2JYWURYbDlDCit5WllxZ2VGNHljOTVwdk5OV0RyYXdZQjVYTENRYnROQm04UkJpT2NuZWU1NUFkVkJRQ0ZCTVVFV2QzcmMwc0YrCitvSnkzMlc0V0ZmRFdaaXFsNitnUWtQZzB2MXdFbzhuOHNGZUZNS2NseWRJTDFtZzVYWjE3SXhIaDdyeFg2UWo4CitacU9yQW4wR0g5TjErYkZuMWtSSHQ3ZWFGejZUK2UrL252NEtQcis1Zm0rZWU4NHlZMEVFSkxRQ0g1WnBoN3ZBCitUcld1NkFTTi9ybG1GZndsK3NndlBMTUlEQUZsaExTZDhGa01kQnNOcTVsRTdyaDNmS3ZzdGJlTWVFMjBlWFlxCitLZVBXK3drL1hrcng3NEVNOWRFemkvM3FIbU9adCt4SFo3YTlvZ3YyMmJnL3FMZklpNDZremhIQkVJSitvVVE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCAyZjU3MmJiYWRlYzRkMThlMGQ5MWZmNDM3NWZiNDY4YzYxYjhjN2FmCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWFFZEt2eVNwSVpLWFFBQUFBQUJvVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3lNVm9YRFRJME1USXlNREl4TkRreU1Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMweVJqVTNNa0pDUVVSRlF6UkVNVGhGTUVRNU1VWkdORE0zTlVaQ05EWTRRell4UWpoRAorTjBGR01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMk1YcnAvUklEdk5GUkhyaQorM1AwK1Ewd2FEcmExQUk1L1FOSmV0OWlnZUpuU1k3WGkremhDd3YrRGcvRCs0RzZDckdNRjJmL3dXZlVOblVQUgord2xDT29EMTA0c04zVUhud0VMRG5HeUw2VjdBVFZIQjlxNk1SNCtlZEhwNldSdmNON3Z4Yk13MG5NaFcreGVNTworYTVZb2l0QTEwNzJGR0grcmplRGFxL0IwOFhuSHEvcmNNVkttRWxINDJTV3dyaUxpenBjSmpUY0hSUjUvSERETAorL0lhZklSeFM0L2duNTFtMlovU0gzSjNreUxBdW5DR3VLVEMwektIc2tsMlJZTnhFSnJDRDV2Z2NHMHAzWEVPRgorVzVrMXpKbmlYV1QydTlRc25DOFE3YlR1bkFramx1UjBXcGMyVDNOWEo5ckpaUlo5OVRJNXNXU214VXdFSWs0ZworSHFNaGVTRlBNU1JkR1dwM3lzdlM0R21TWnV5a3Bua08waEpyTzBZWEJKOUFaUlRabGIxakoveGs1b0M5V3RLeQorRkFOZFFEbnBHbUpNd1R6R3dORkNpMFAybmk5K3ZDVUlxNGF6TFpCQmVCTGVLNEVXZXZyanZ5N2JQMC9Oak5QZworSFhEUU9XQlphalkwSENUQkpBVEozWWRUWmI1Q0tyY1drWWRrbk5JY2hrWmN1WXFjbnlrME9VMWIvYUJUbmFhZAord1JNVi9HUFRQT2Z6UncwOUk1ZlVJUlVPdTZhRlpIbkM3b3dma1BFd1RCRi9OOHFHOUxPUWtMUExhZHlDZ01NRgorNlc4OWN3eG90a1RCZzdSOUk0elFTajF5TkZGeTNhQjM2QTIvdGVScE44bk1iMEhjeWY4a2IwQ3BlZFpjdWJydworUlRlQ2ViYU92cWhoWWVxaUZ2MzJydExRQWUwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk1pMG5KdHpKNEZYaEltdQorM2h5cVZFd3I1R2xCTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFJYU9uQm1LMURZTWRqOFVRSG82N0llRndjbkZaL2E3M1BrNDhoZ3R1OFhFTworRnNQckNjZWdCejUzS3V0Yjh3bjFNUVZlZDJsSVVSSzZja2NqMXpkQ1ErM3F5Yk0yRGFEL2F2Y3VqZnpHdzFFMQorRjBrRnJvNWVJcU1kc3NXNzBaakJzaW5mQklzQ0xWTVEyMVp6SUh0QUJ1c3RiRlFucVRvNEdmZC9UdXZrR1FpVAorRUJLSE9CYUpQMmlrT0s3aVE0SGF5Qzg5a2ROODRtOEtTTkFoYSt5Wmo5TXYwWW9FN1RpQ0NRaDg3cXZaYm9YMAorbzBFM1VSbnY4aU9EbGpaeHhtMTRGU2NVVTl0MlhYa2hWTGcyakJJMHNkQ1VvbFZUbDB0NVlPdkt2MWY1MnRBQgorNWFzKzJKbE9oUUpEMmF2c2VmWDlVa0VocjJwL093ZWpqNWkrU1UvTllTZG1iUmxidENMSTF3ajhNdk9zRU82cworNlVTMmJyWHE1TDNNcVBmVzBDNDVBc1FRUmtBdHQ5OXloWTBtM2NtK0hCbldiM3V2UHhQQlJKa0hQRUlLb3Q3QQorR3N2TnRYRXpaSXFDeUlRL3NaOGZaWm9WSkU2MkIrT2xBRFdLVkkwVko0S3NJblVwZ0kwdlJMQmoybDl4VEZnUAorUkJrMHlqV1BzaXNLaUFnVGZKVUVVMDlMSlN0RVp2Z1lyMk1CSHZwZFN5UjlGTkxvRE1qeThCcFJubjB5dkZiUQorNTRlSmF0T0MwU3h2V2NnQzRJNFNyUm9mOTY5RFU3OFp0QnNUcDBvbmtoL1lNbm9kekNhRXZyRCs5V2xCSzhDaworNWEwazNHekx5U1VIMlZXOFFtc21ucDFlWDdKQTJUVjJQUW1qMDJ0Rzc1TnlIUG1JM3ZQWFY0MEIxOXpDTVpvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgMzQ3YzkzY2FiZGVkNjE2OGM2MWZkYzg3NDBhNzM1M2U0Njc1MTYxNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFhUjR2U0IrMlJkYThnQUFBQUFCcERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt5TTFvWERUSTBNVEl5TURJeE5Ea3lNMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHpORGRET1RORFFVSkVSVVEyTVRZNFF6WXhSa1JET0RjME1FRTNNelV6UlRRMk56VXgKK05qRTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTQ1VUx4cmkyQjZNTE8rMXMKK3FKbjFXdGlPdWoxRERrZkFqZFpHWnFoY2hEekZ3RzFsZ1NBRURRRnJJTVpBcnJHajJUNk13dXFZL256OGNDVzAKK25qMVJxMXN0RFR5U0RGb1F4NmNVK1ZpVHVRQm5lYjdDeDA4akY5WTBlbVR4WWltcmJGVTZaK2NYRUVsMWRnUTcKK3lCM0Z2MlJoRFpmejBNakJ2RWMzb1Q5MkIxc3A2YTIrQUxNMVFqN0JNYmdsR2RBdUpLMEJUdGlFOE5hdmt6emQKK2gzbzVXazkxbVVoVG4xU3BOSEg0UXdMazY4NWkwcHJyTjBwclNZU1laUFFNeWU5am55eks2bzNuZFFXa1ptMWUKK2ZSTTdZbGFWSDk5UVJBOUFmOHBCWkdSSlJWellaUFhFVGs2OUlFTUJBTzcvTVFGQjhscituaDRaS2tJR3dYc3UKK05JU3J0ZnNON2lzS2hpN0lUSFJobm1rdk5mL0lzWWZQRHpaL0RLb1N6VUdacmxMVWxzZmh3OTVKRmM4VG1vL0wKKzJoaVcraDltZzBqUzROL09GdVZXbDl1T2RvYVg1V2ZKRWtTSjRzRTBnUDJHYU9SV2RvRVlxY2JvUXpMSjZ5RE0KK0QydXR1TVFkMzJ4N3p4N0pRdFBsSG5rd3U0OUNBSTh2K20vU2xJTmd5SithZHlHUmF3cEhhVUZSdHBNVTI3V24KKzBidTlnQTFLaUhrSjNhTEtaajJ4MzNhSnpWR1J5VmFVZWRSTEVwNEVHeUszeC91UFpQRnZOb1J0Rk9tUm5SRGwKK3Y0OUVEblEwUmE5R0phYnoyRjY4NHBhZDkrSHlJdHNkcVVncEk2THc1VDE5OFlncm5YQWRvQVpDWnFUWFVQUVAKK3U0K09nTWgreGJubEh3eFVpNlBNbDVncldLc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPUENlemd5VjlZN2NpZzYKKzR0Y3QycG1haUgvcE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBTWkvZ1pTY2JPWk1EMEZTdUhLb0VwaUVGWGJnd2F0YzFiNm5jaHpockNRY0EKK2hsUWdickxuRzNNSTkwRno3N1JTTzVoczJwWkYvQ1N6M0JLWllPT3UvNDhjUWZIOFN3TThwSHl2b3I4bWhZbFcKK2xtOGZLamF6KzB2Tmg0SDRtbU43NExXSCtkQlhWUlN1WWxtakJJVW9tZjVpZVUxc3pIcjVPSHdYRTM4ZUNFYXUKK1JUcFJjaGNXanBHS2JTYWtjVzBIa25ZSkNJazhqQWo4c2lUcEZRUDZnVEs2SnBqaFMzWTVLSkJ2cUtuTXNQTW4KK1k3U3I4dEdVY3BDL3daWXBKRUw5SFhWSmM2b0ZqMEJpbEp5WE9CWjRQRmlGTm1sNHNkYXRuVEJMNDkrV3RCZmIKK0RtMXVSN0g2N1dqcVVmU0pOd2FzeWF0YUZrZGxvTVdKTTZQYVdQMGdhaEQrT3VSWjhRNjZYbEJicUpyb0R3QzMKK0VVZzlXeVpwV3g0Y2g4VUsySDNlcGhrZjNDcC9TQW0zbGtOai9INjkveGt1ODR6dy8zTzhXbE0vQzdLY3RwTVMKK0dhTkpxYjZlTWt6eWR5bUlKcEcxQjBpaFV0MzZkV3hsWUZaeGxLQWdFdnpvRzd5ZjJzaVdLa3dyU2Q0ZzBLeXYKKzExeFRNck5kbE8yZDNmanpEQ3NyY3M3Y2JzdTFFV2ZWazVJbFZXY3daaTlVb1h2ZVoyMEhiV29wc3BDOXgwajYKKzZxaS9KWk14ZnZYWlQzbnpFdGRUbmt4dUt2OGhzMS96dnNReXJVdWt3YXdYTjNIaHUrTjJ3Tm9lQ0xJVldkODkKK0ZwcHQvNTRCL1RTQjFZSXRTWjczZFBVcDRrYWh2amdnUHIwYXJRWDViR05yOHl0S3FYTGlxSWNnNm9TajZUYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDM3YWUzNDZiYWE1NGM1MTNjZmYwMjkwYmIzMjFhMjJhMzRhNGE4YzQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWVhTVmhpU29aYXNSd0FBQUFBQmhUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1Ea3lNREl3TURrMU9Gb1hEVEkwTURreU1ESXdNRGsxT0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzB6TjBGRk16UTJRa0ZCTlRSRE5URXpRMFpHTURJNU1FSkNNekl4UVRJeVFUTTBRVFJCCitPRU0wTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFwM0EyV09EUDRMcTZMOEYzCitOMTZwVDdROWovck5XOTQvaFd4WGtONWxkeEE5NkRGQW5lWGFCZjVSQ1Bka3M0ZlQ3ZGFuTGNPL2k3TGM4TFhmCit1RS90WVo3NUVtNVlGUHJPMzN0WEI4SGNSSmxtb0xPTzBOUTRHZkFWNUhRZnJSMEVKcGRVTy83L2lqZzBianBuCityNjVPcEhYVjZvcDdpL1c3a2N3ZzdyUlpQMmRMVjJ2RkNFL3Y3bFVRMFIxV3lSRFl5NjhSeDVzcGlJNUF4cVhICitzcFpxaWEyNzA3U2lXdTNDT0syTUdFdkxvd3hHcVl2eUFNelRHeUN2YmV6dld6em5reVlwbjYrZzd3SHJSdzJKCitmd0FiUzNKRXIwdGhrMktjNzVUTEx4cW5vWEJOdytHNUgvVFk5ek5XcVNNN2oxSVpIZWZReURkcXJYTFVBQm1FCitIZkNxQ1UzZFEwV1dCQ1ZCU1NDVjRycUFTT2dIMWxWbmZuVTNVbE1SVFo0RVVwRmpzemh5Z1VvYjFub2RSMGVKCit3SUo2c3M0RHhwbmd3TzJGR3V4eXZUcUVuaElHZDQxZm00TTNZSjlNT3F1QWZIUkhtbzhTR3hiaUU4NXB1SDJ2Cis3TmovZEdYRUZENXdiMlY0cEFYN09WQmxjR0dsbnJKQmhBelJXQlU0cnhjY0tDeCtjRTZVU1REMG1ENHFNZEs5CitSbUJ2RDFiK0tqS3JDTjlRejk1bXpyQnFrL2VzZzF0N1B3M1lVRDBmUFNWSnpreHk4OEgxeUFhT3p2bVpYRUpzCis1d2ZpVnRKWmxSUXhkYWxod1Axcms4OStOTkR5OEkxYmFMdFdpZzMrdjFsWHZVWHhyanFsOVJCN0M5eDVSNk5kCitaYmJZWFRYOWtnL2JzNnNFUlBkYWE3Y1VRcmNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSnp4WmlDMURKWjBpMVF3CisvRW93MDdBZTdmRGdNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW5KeEtlcGhqeXJiS3Y3V2FyVFhOdVYzeUs4QU9pU2c5YUlEYVM4NmNoSkdYCis3RDRkUUF6ZHd2VlptVk55OXVBd0JWUkQ1NVJYTkdSZjloU3F6QU1zYnV1dFhRdEdqb09CYVNoMHhXd2NEVjJYCitiL3JGOGdqOFZCWFdFZW11R1pwcjlOMWxTVlhqTTZOUlBmNi9veU1UMUJoendrNUR2Y0VKNWtXSDJXVXBZZnJjCitOTUxsbHE3MDdKRVg2bFdadmtENW5GRlBzQlB1UStsZmNMYWZxNlU3dUEyRFdPTnVrNXZxZHd3OFg5ZkJ3MnhmCitPZ0docVAySWhZeGdJeG9lbTlHMVNTL0liRDdYOHFnMms4aFVXTXhDMXN5c201WnlYVC93NHgxL0NFYmdzZDhnCisxNVo3SVNNdU1SaHNIdnZWUG5DMXNwMG1PUEJLVFQwMlBiM0lhOVBVRUVKVWtvNk1yMWhoSjFGVUYydUg4YlRnCitkMncyL3FlVGZZQW1Dd0VnQWlsZFZKVW9DVXR2VDIvUmV0SGZ0OGJTSnoyeWRSaW9nczVJQnFJdU1jYlFHT2xKCisyYVp4bDI4LzJuMW42M3JyVEhyUHNTVWFleFFNWENzUnFGK082cU9meEZzRTcrSVpESzUrNnZEd2RIcTd4aTRTCitNTTFvL2poZTZydnZkZzRRZkZ5K2VORG9lMVZRU3d2ZVhxRVdDTlhsS1VEcWtEVk9INERvQ2NQYlJTK2h5WGRhCitXalBDSllCTW1kMzZOWFYwR0poYXRIUS9NK1hTY1NkeEdOVlBNemNZclZJNmxTS3dTd3JkeGRRNHhaSmQzZmFICitvWGk1NW1sK1lDSTd1bGpSejBzMUN4QVRzN2ZQSEN3L1A4Z1NVOGRrK1VrNGxhNkczdFFsQjY2Z2dUN0hoRkE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCAzN2FlMzQ2YmFhNTRjNTEzY2ZmMDI5MGJiMzIxYTIyYTM0YTRhOGM0IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFrcmVNNWJQZDNWM0xnQUFBQUFDU2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNamt5T0ZvWERUSTFNRE15TVRJd01qa3lPRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMHpOMEZGTXpRMlFrRkJOVFJETlRFelEwWkdNREk1TUVKQ016SXhRVEl5UVRNMFFUUkIKK09FTTBNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXNsVldZbmtHdWROdGJTS3kKKzUwR0IvKzVtNFpKS1pKbHRvcUdhTEZEK0ZXUE1ka3FubmJiYmtha0htVW1PV3dBa0R5RWUrOS9kVWhhS0pBeVkKKzVCNmt1NVBLcENYZ1ZaVk0zSFNVL0ZJem5BaHYvTytMeE54V1ZkQVNWSStucnMyVDVrUlpSQjdiaXgxMnM0N1QKK21HSUdJMkt0R3l3eUp6Vzh3dkJnQ09XQnVBU1l4bVlRd1VxKzVqSHdmQWhpVFg5eGVXTWlSY0drK2l5RHhzMmQKKzFzTEJRRXhWV0J3bVVFblE2R0ZnaWpJU1lGQ2syWEt2SU5ndStkRnQzUXd1V2orblF4OW93bHJuV1c0ZTdBamMKK0ZOM2JicG8rZ0lJQ2F0VUtLY0svVU5UNzZoZ2grbm5iM2pYVnd0Nm9hclgrYVR2T3dVWkxnV2VBZS85Umc4NWoKK1BCSm95bzNvRnVEMUtqdWFEN2dPcGZBWXNRYjBpdm5aMDJsOXhFUVB6bzJYaHdrbzBFRVNzanNGaCtGb0YrVmIKK2hPdFRRUU1QM3Rac3d4WW8yT1pRZGt0VllKL3JxdmtsRExsN3BZbGZPOHlTRUd3RWlHckZyODJXY1hqVnBreDgKK1ppQis1aUZqSkdKd09KdGc4RmY5VjUvamdhSkJtd081M3NOVy9MQjg4UzRmdmlSb2QxU1NnaDIyYk9kS2djQlIKK0tCOHJ3bTFhMDBGMWpHRWpZQ05aUmR2OVNlN0JoUERObkphaVMwb0dGQjFNM0lQSDVTM1lITnM1SmN4QWh5bWEKK0s1eVNpRFppdzNTbTdPNnJtZDVHMnlnMnRaQUJDNk84Zlh4bTRZdEFYWXpPOFAwN3JkOHJKdXA4Y2p0MHZ1TUEKK25nN3JlckQrdjNkUXRkR1Q1NktYL2ZLd3NMTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZBMmlYeTV6VTBhYmFvUzcKKzhiZk1qdjZFYkxiQk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBWk1aSWFtUDZwd0pBQWIyWVJZNkZFZGEwTlkxeGlkS2dab0RQYjNTdVRZT3cKK2R2OEE0Tyt0N0VXb3AraVJ4OUtkT2NBYTVna1Z1cGdsYnVEaFNCWlExeDhodnVXTis0ci9nV2c3N1REdE9kaDUKKzNvMDkvSnhPLzJhNXhhOHozVC9JenBKRS9aS2VJS00yRWtUdkNtMDc1WlgyY3k1UUNWRXBKa1dnRjRGZG96VmsKKzkrcE5EVEU0bjhIcDVuVzNpREJsYW5ZUTdUSWZRVjVhZ2xKOEhFaURkd2FmYXNjTlp0N0dwZ0FUOUFEcVFqNTgKK2RYWU5wMFJBWWFSWkhJRUNpMitKcG9ZNSt4ZzJkeVBuY2lDUkVLLzVROVRVaVc0SERxaGlHbkp6MDkrTVNIbVYKKzUrcEtmZ29SWXNxeDF6bDNDeGNHUTdFS3pFZ0tyMUw4TXhFclBONlB4dW96bDZYUEQyYWVmVWt3VUJwbEh1TFoKK2JLeTNWWkZja3RvV2ErZXU5NFRxWEZxTUZwTzBXQk40UUlDRWg2S0hFUXQ4aW50VEVQbnVBYW9mVzJqdjJzdWUKK1pNS0tyOEhHQzFUR3JDR0hyS2pEMHNtWU5qOHpqeC9WNFd6K3pEZUxKTnJlVUhJaWIrVHBTZWJjSEJ0QldEOTIKK1lFRGJDeWQ1bmlUZUcrU3NxN2JPNlhMVVNpcGVtQjNiSThHV2xjTklYTXRZRTN2M29Ed1Jqek8xVmlMZGdGVE0KK04yY1FWdDYyTWdBbENiN2tZTVF6NlJxRjF1S20xUlRhQnM4aEZVUnpnQllaYkF2cStaMjlzWDFEL1J4TERHQXUKKzdSclRRZzIvNk9VMS9tdW12OWNZUUIwd0REc2hyUTk2dGJGcVBEcFBPNHo5d01DSnZDc1MzZVo1YXVNcWtnaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDQwYjg2ODJiOGQxODQ1MGEyYjA2ODQ5ZDliNWNkOTZmNGNkZGY0YmUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZVUkltdFZPQWpyN1FBQUFBQUI5VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpObG9YRFRJMU1ESXdOakl4TXpBek5sb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwME1FSTROamd5UWpoRU1UZzBOVEJCTWtJd05qZzBPVVE1UWpWRFJEazJSalJEUkVSRworTkVKRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBc2RoSWNkeTVKcGtZeWdkaAorQzFmemFlcTdSbk5DckZkQ3gvemE2a0R4cTliWVo0K3hFSXd3UER6dUNBR2lIVXBONXg1WnRGR1RUN1R5RjY1YgorUVZ5QkN4cm1BcDBRbHQ5ZjVMa2ZqQjJrYUN0dnppTVhzeFV3UUhiaG9wSVZYdm1URmxIUXJwUEdoRWFZUEhQdQorRFd4cE1VRnRsVUQralFwUDE1dUl4c0dHa2xCTVJWbXA1RDJEVEZFdG41V2s3bTUrZDJXdG9TT2VHaWRqbkFqUgorVWRQL016aVlwMnJQMXEwOC9Ua1FDY0ZGRnF5OEZvbkdMS1BLMU8yRkNNd21MKzhJQmVZK00vUVlwRjRrdTRTQQorZWUvYjFjR2hDM2ppM1h6YW1CdmhXQ0JnVlhwYWxuNHV5S2psWVZWdFhWMk9pSXdTK1hGSUk3d2VzZUhtdHE0RAorM2RxRjBiLzl5SDBtMnp1S21MVEZIVGF1SFJVYXAvbTNQK1JDcFAxaFc5LzU4V1pqazZCM1lsZnZXbWwvbWgrTworNHpiTnoyRE5wZ3BxRUpwVDN4NHMxMlc0bVpiVHJUSVZWWHd1RFVIUFZPRXVOU1NFcmZocDVwcGJSZXZiK09MUQorTXIvbFNQazJFeXJudXlWSTdIL3Voa1pVbzlXYkFIUUEzUUpUN0JPeVgrYlZ0NEJrNVVEbzIzMmhYa2c3dkpFSAoraGhlZ1VYbXhMaVRMY2pMQ2dVNzlRZnAyTWxJbVFMYnJMckxST1F3S3RWTlZhTnowRHJZTytWRGhBUmZXY0FOOQorY1NucExxUzA1d3FUdEwzYnd6bmNhN3FMYjloU01rWSt1M21EQzdqL3hwYUQvZGF5SXB2dUtGclVmWmJzTnhuYworS0t6RWkwL1FkNmFGclBrbzJuKzlMYTRDY0RVQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhUTStPUU5yZUVkWkdscworV1FOakJNWGxzNDNKTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFLWjNTUFk3SXVYaVAwSFZqdGhuZ0xkUzlXU1V1MWx3T0hpcXlmYnV1alEvVQorblZ3bnp4YjcwWEtJeXVtMHdsaDBoSjB3YTUxZW9XTk1LaEJsSXZyekJjRjFCZklTV1dnbWxjZVRyZ2ZuZlZnMQorMlhaR0dGNjhqNVRZYzBQRHg4cXVvbmh2Y1BDYnhCL3BlQ2lzMGhkSFVKKzhUS1c5aW43MmFTS0FsUW5aQXR5RAordzlNdTdMblpScjhIWWc3S0wyRmZDZzJXNTYvY09qc0k2Y3lsYWpBeGxlbVY5ellLbjhwcjkwcWgzWml1UUtqSworM1ZPZU5xSWJ3SjhXbHRQZ3RDVWNBWmZteFJCSHR0dC9PL1lOL29ZQ29sTnB4T09iM21iSko3NFYyeGtSNDlGSAorbE1VaGhJOWxqVlErd3pqZUVvWENLSTZSVDFFOWMyVk9tMElNaWZQWUlERE1vKzZiRXZ5Q0NnWnNyOXo0bXM2VAorLytVUDZwRENDVVpaVTVqeXhIL21KMmgrTkNsVXNPMTJHdFlNWjRQKy8vNU5NMFB6cnlDVkVTYWJOU2VzQkRNagorRVBNQ1l5YjhHZnhYRGNtbjFLUEx6VTZ3SDVsMlBhdksxMU5SNDFzMDZuQVRLRlZpMVNhRjlCWFpVZUJITmRlYgorRUZ5a09iOU1LS2JjQm45RHRXU2Mrb0NFOU1uR0t6cmVab1FGU0cvT2E1cnNrRDJuTDFZc1h1MC83QkhseUJxUQorbktKZWZ6aTlFNXJubEtUS2VOOFNZSFNIUUlDVVhtWU9zM204Tzh4bmdlUmFQVWZQS2dQVzNvbmdUQ0FGWGJQRQorN01WYU4vVHRnMGdQUlJ2a0pFQUJRdk5WRW5qRzN3QTk3OHlmc3FxSStmZHNwYnFGVzNGMWNscVRKOVR2YWJFPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgNDZmMjZmOTYzMzA2OTFlNTYxYjcyZjdhNjNkY2UzYTA1MTcwMzlmYgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFaSUxpbU5FblJpM0RRQUFBQUFCa2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJd056SXhNVGN4TkZvWERUSTBNVEl3TnpJeE1UY3hORm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDBOa1l5TmtZNU5qTXpNRFk1TVVVMU5qRkNOekpHTjBFMk0wUkRSVE5CTURVeE56QXoKK09VWkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXVtQzVET3NOMHlEcG5NbSsKK2tEcHdnRmJ4U1ZsV2U5dnRCclJTOG9TTDVPZDlTUHJYQjF5dEFSajJyendVLzYxUW9DZW1hR045MmxHcUNtbWoKK3lyUC9tUUFGd1Q0anJSdnNBMDlNM1gyWk5uK1Z6T1NFZ0l0cDlzQzYyY05NOVo0bTdtbnowVkxJZnRKQkRZVWUKK0ZKeXVINXlUK2NpVHhkRnd1czYvUk9VUTBIU0IzT2xoQzd3QUdJYlhkT0hEVFhzN3EvSnZwdDFjU0c5aTdsZ00KK2UxQkRhK2tNbUpZdE9LWWpScmhSSXI2WXNSKzQ3N0lOUFFlYkhFdGhjUExxcEJQM1VkSlJ4WHArV2lVampPNVYKKys1Z2NrcFhLN2RmRTdnWDNUcVppbVBxaHFIWlVFQkRieThtdGNpc295M20vU0lRcWg5UVl0QU5lQXA5N04waVIKKzdvNGZkYXZxTjJnaVY3U3NJWFNKTHNaSmpwRjB3Mlg3c2txNWpmVmJvS3N1bDhYZDJqRzR3ejRjcFdJN0daeDYKK3VPQXBEcHB2QjNyWStoK1dHUlpMSVdYdStWTEM5ekljb2t0WlRhdlBoTytZVG91TUJlTXZzOTA5K0t5RUUveXQKK2ZxVUs1ajlZT1Z1bll2cTZKdmpZYmg3MWpVWnh2TENET0RobThTaHRMeEtOYjdvUzdsdS8xckxJcFJKdngzZDYKK09MaXZTblpsZ3h2MHVTL1lWeFV2eExqQzUxaG44RVJ4b2JpY3lINDhiQk1udytmRDNFdHg1TnFFUkZtcUtocjUKK09ZMDczb2N6V29VbUlPMmIvWjYxY3lZU2p3MlQyYnlLU0xvWWFqMURpNHpVZlFmc0xXdFNYcjJkNGhXYjRnU3gKK2xIUkhWNWRJcW1wM25pRnBiMGgwWkJoL0drY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMNGdlRjUxVWVtVXBYV1UKK3lDa1d0STNkNnZEQ01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbGpPL21pV21hTTRRdnkvVVJMV3l6SDZZTWlsbERmaG1qQUcvNzdoRldZZ3IKK0QvZER3ZEtpV1pibHYvOGcrMmNuTy94aTVLMGQwRGFBbHRmQk1zK0U3a3JSNDNKWXhEbldkVzhDSFFOQ3I0K3EKK3BEZUIxWXVJVTNYQjR3RGhwcVVWQU1rajdZdWhEeCs3RGFvcUlXKzI1ZWFhVXNzbXkyT0ZjOWhQeVhwM3hCODgKKzNqZ1lDSFJDcW1PNFAzYkJoclZXclREMjlvRk13OGJlVm5MQ3FuSk8rcWZaWGdSRWRRV3puOCsvcnlsVWt0ZTcKKzZLZUdIVjRwU1EwTlBNWUlqOVVlR29Sc2JhTVA2UXZJVzJVdWdJTDlxYk9DbG1HTWp3Q2t2S1ZpT1d6eWNkWGwKK0pUQ3dvell1NW5FbVZuZFpqRFV0SWJzRkw2RURPL25iZ1l0dC9hbTIzeXNFTU9GYnFHRzBpVFovSTZJc0NBM08KK2pqeXBMSTdXQ1pESDZLTFNIdlRMdTRORG9LOVdXWHpZdU0yOVJJVFZZMmF3dVpMcGJHakZjenVvdjg0N1pVamsKK0VqT1IyRlZ3OGZ4MUNFeEVodDkwd08wZGlwSzdPTWt0ZndwY0UwU1FtS3VycWVEMVNJV2NwY0FtRGZsUkYrdzAKK0VWVExFSDE2aHhSVndhcmtsZ1l4WG50Yk1xcGo4eUtUai9yRTVQSy85OTFsR1U3MUFDbjhDUWI1YlpzMEFITmcKKzZLZzhON1B2R1RYOGFlK1NzRC9YTzlvZmlwL2ZzZG85K1k0SVB1OHRCNm04QXl4MDZCQSsvZ3lNMWJBRUNHR2kKKzAzV1BHcFJWaGJzV1JrblpmL2MwRjFaMWsyZjN4alNwZFhjcWJNdzFPVjBIbE81eG84ckY5d3RGZ1ByaDVzST0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDVjMjkyMDc0MjE3OWJjNzA0ZGIxZDhjNTRjMzRjYTk0NDA1NjE3Y2EgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZFYmdjMkFQb2pyQndBQUFBQUI4VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpNMW9YRFRJMU1ESXdOakl4TXpBek0xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwMVF6STVNakEzTkRJeE56bENRemN3TkVSQ01VUTRRelUwUXpNMFEwRTVORFF3TlRZeAorTjBOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNXcyUUJtSW1oMmNMV0hhcQorbmVoZitJUmxFNlFkYVhUSGZ1dmVVaVB2ZTNzN3F2Tzh4cDFHWlZIZ1hEckh0aG5nVGsxTmdNWklnQU52QlVOSworbXg0ektHbzB2RjhtN285UnBtd2NhRlRZTXRLMXF4SFRpNUJ4S1k3S3FNdDYxbTZLVUZKbFpvOGw5VVR6QUhvSAorSWp5bjU1NngxcEdZQWE2U3l5YVV6VnZmTDdnbzIxWFlzTGkzQmt3NjhJRFViYTQ1Q2QyZlpxQzUzemQ1dFB6KworelNWMCtMYnBzb1BFS3VxdlN6YmlRbUdLV2FEcTA3NE1QeHUzYy8zc1g4My8yZnh2WnlUTENrYURXYVhiMVZvMgorVDRFYWJDNHU5V0JaVUNjYkxVY2x3OGc0S2E0dkZLYURKSlJZbWlkeitXZi8vZ0JyYUFYU3ZtaGNaM3lVZW1aWgorNGFPOG51R05vdzVMQ3dqaEZETHFvc3VKNTA0bGxhZ3JnVkJMUk9zUmh1SXdOWHB3Vkl6Yk40YWZvYXl5RDFOMAorcDdtSUsyL3Aycks3Y0g2elo2SnZGck9RM2pUUXdHbG9QQ25rUENmbXFjZm1XcExkT1dZak5Na3UzMjFXZlpMWQorUzRCQ2V4QVZ0WWIzT01pbnVIZGJxR3VWanZtcUt4UDhwblA5VmMyeXo5RHBMTlhsUnp6YTN3b3d1M3ZFWWFaWQoraVJtaEFHVnE3WTVZOFdsTEh2ODJROSsvUk5CeHdYSzhyUGRjMXZNMTJ4dExMRzh1cnVXT0VJNXNWSEFlTk4yVAorM0RvRzBOalU4eEFCSFdmbDlOdUlYOUdUYVJUVmRTZnlyc1VrODJ2dUFnME1zNlVZamhLYW9MNjEyZTRwVTZrbAorb2lUdStERWUyYTV2cmorY3lIVG5vWlMwTDBrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkY3YnVScW9ZTHVTZWxkWgorVlNOamNiejNHNFV1TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFpYkorVmdaemE3TS9FTXJQM0FkRHNhRUZJSzBwZ0dvYll5VVA1ak80QzgwUgorMG83Tk1KNVMrWitTNG1lUHJOemJIV0M0ekFYclE0eWR3Q1B5VGUybGczaTN5ZlFEaEI2bWZ1b2tyc1F1elMwQgorYXM1eFZXUER6TjJKTkI0akpWQytQdDNpRTl1S09YZGY1c25iRHhpeFhlUzBxREZaWjhpUHMrd2pRcEpsb3dCZAorZi8xQ1FaMXFqTUNBdlN3NzNZTjE5OVVPUzR4ay9Qb3RoTHJUTEowRm9OcDZUUytUZHVuN3VqV251VVZqaWFxSworTWl5VXhZOGV5ZDRlSFZ3Qlh6anlPY3RDWmliSU9LU0FSQTBiRGF0NlJqVFdBY1RzQWxRMTMzcithTGx5UXZxZworbkpVZ1kvdFpLd0FjMFk4YStzRVBwRVJPSVZUZWRFOU9HK1htT0duNzVydmU3VFVMNUZob2djT08zQ2dsODFrNworT2NQZWd2WVhYRzNhSGZwTFk2M3lsY09sZDJldTQyandBRUcwVjdDSlI4aDZzN1RPakFwR2tTQjUzMm5NSDZ0NgorYkxYQi9vcFhjZEJvOVJESFVTWXlDaGxmWUE2b24yRzJvNzVCd0FsOUh2Z3NmZkh3MFA3cWVPb1o1L3NzejJhbAorZlRuWHIyQmZFTUlYWXlDRW9zRXpEdklXOHl0ejR6S2NjZ2ppa0p6S2NhZ3pPck5XQlpsOUt2SHpYU3A1b1BMSAorV1k0V0xXR1BxV2d4NC9yNmFQQkh6OXBzMkYzeDR0Sm9COW5QL1lGOFB3ZWRMZHZJQklUUm5hdDViNnZINk9RNQorOVJ3dTZTU3dqL2ZoY0tRRndIVTd2bUhCUnNhWDdqV3RmRkFuYURKTkE3TXc3T0luTmNPeXM3UjBuOGdidFVjPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgNWQwODE1OTUxZjVmNjA2MzhhNjllNzI1MmYzZWM0YmVjZDc1NTRiMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFaRjhUck1hRmhFMVhnQUFBQUFCa1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJd056SXhNVGN4TTFvWERUSTBNVEl3TnpJeE1UY3hNMW93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDFSREE0TVRVNU5URkdOVVkyTURZek9FRTJPVVUzTWpVeVJqTkZRelJDUlVORU56VTEKK05FSXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXQzNFE3VGFWK2VtQUwwbWMKK3o3a0ZJVUtsOGJRVjFiSjdzL3FGM2RjZFMvaWpSckxQRUM1aTZMdHYwTDRMSE5EcXNIK0VkMEdmUng1cldHZloKK2pBbmFmRjdkbFE2eWl2V1ZuYjdzV2NYSUlmb2xCeGNXT3Z0OXMwMzZIYUpRb2JNTUxFeFRqakFoRXlqa2Q1eHcKK2l4Wll6cFkxUVpia1MwUWpMMUtXUWhQanJFN0tRZzZudkJSL29BYmU3dnljL2NZbDNNaWNTVWczM09HcmxLM20KK2x5RTl5RjJZTDRiK2d0TnAzemF6K0xGWXVwTHVyVzd5STFYQXNZZytTTkpITkRMcUVUV3NiRjdzZFdKaVV5RFUKK2Z4RXVmU2NtNXFwQml4VTVHd05SeWdqcmhCdTZ6Mm84Z25PUXNVZnh0QmhRTHB3STZSR1dtMGpYN0RsbzRXbGIKK1gyZEh1ZXViR0hSZ3hmdFRUam5vUDVwLzNmR3NJbVpMZGxmeC91Mjd1QzZueDF1R2xpTXVJeXZ1ZTlmbGdZdUkKK3VGc0wvdHZFMFIwa1RHQisyWktEako2bTJoU20weXZOUHExbHNrdVVyUlBGa2xaeGVSOWJKTnRYM2VrWnB0dHkKK1F1ZGtZdnVKb28wOEVzUVJoWDVSSjhvWU1aNm1RSjcvMUhXWE5lbS8rUXNZbjA2dEdaRTROSndNdE1vdyt1WEQKK3prWGtndHB5N1BHZkI5YlF2bEJwQXg0bzVJNzNKREJwUnp0dXlEOGFpeHNnUXp1WG10Wi9pUEd5NnZ0a3BvMXcKK1NzclkvZmNGK1JCRTEzVXkwTmU5UDBDd0ZlMHhjOWlpNUJmWkYyQ1REY2UwWmQrbUV4ekhaL3NCQXQ0UGtEV0IKK3VsT0NxbkRHWnlNZ1lGYWhRQk9hNXZNRE0rRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQWW04aWhnNEpNUEd4U1IKK0pvYzlZdk5FUklMU01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbkE1RDJPRVlBNnlLaTNDNC9XdmszRWE0Z3dTMTNIRHNSU0VNTDEyblJXWWsKK1EvSWxDNm1nQ1Q5bEhVMlhGUXE5SVFQaW1OQlhuZVgwOWIxeExEbzRQaml1azc3Umw4MlBjQzNvTzFnb3VjcnkKKzRKQkVYeDlaekRPcExFM2VwaCtoMHhGTGdlLzkxQXlBTVBFeTBudU5PTjZWby9QdEl3QzFRUVNmQVU3bGpYeEQKK0tmcTNTSGkwVElEL2paMXd4dUMyYjJydzRpQXhoY1RkTklYWU1DMTZQbm5aTjdGTkw3cWRVVmZaOXltTnJtOTQKK0J4QnVXVjUvM2NSYWFkaE5QOXN3MkNiSklRVmFPN2JEUFdzZllDQ1FmNEhPSDN6SWRCTk9vL2k4Vk16RXhwbUUKK3Y3NGtLSDBiMmgxUEVZdnZ4WHhaMzAvNmxaL1N0SE1SZmhKbDRkcytUUUt1Tk9wdlRiVXlkNHArNzNMV05NY1kKK0pmbEpWaEN3SDB6VVZDM1QrMFZqQWpBMHF3eUxML3FVazg3NHp6MnNzcHdGQVlMREpMb2o0bi9FcWhnSGEzcVoKK05tNnZRYnFYTGIxdXB5R0Zxd3dCdExtMHhJNGJzN2R6ZnMyRk5RdlZRYmFoZDR5TDBLWU9VSS9QN294TlVMU1kKK0RoQSs3dXdrby8yNWRwQ1R2NElYTXIyMkdyTlhFa0YwL3JBS1pIYkhxNGt1MFZLd1NPM2tURGI4MER5Yzk4bVQKK0h6MUJEb01VcUZqY2phaXdDOGJDWlVFSUtZUEN6SXYwL1g3enFCQ1k2eXVLaEptOCsvS0FQazMrc2NhdThRRDYKK045a2U3bUhZZEMxTzlEL0h4L3lGNTVNSWN6Ui9CeDIwQ1gzNUZjTCtrTVpsVTVPcGRlK1RYTERyQ3BpZXNaVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDY5MTQ2YWMzY2ZiMzY2NWM3YWU3ODEwMWNjYTVjMTQyNTVjYTJiYzggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWZpMXQwa2x2cGxDMVFBQUFBQUIrREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXpPRm9YRFRJMU1ESXdOakl4TXpBek9Gb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwMk9URTBOa0ZETTBOR1FqTTJOalZETjBGRk56Z3hNREZEUTBFMVF6RTBNalUxUTBFeQorUWtNNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdjI3eEMrT2hRZXNaSlhvWgorckVhZjBRWnM1c2szUTV2MHFNSDd0anUzcVBVSlhzM1M2VlpMckovWTltRnAwd1BvMWs2ZzFUV1NKNU96TmtsUworVjlLOFFobkpTRFEvWExqc0JKOERXWEZRUXkxQTd4dGRvNFdrOGlXenlidXBKOHdUbUhtZFEwU1FIRmVYbGRzdQorbEEzbkVNTnpWcjduREt3WXppbzliY2JIcGVXeWpWWGptYjVWYSs4UG9xcWp4K0Z3L3BUL1lFWU1BU1BCV29TZQorNDVMNXRjTWJqbFg5S2VsSGUwd1ZYdnd6VCttaUJiWDMrOWhTTGNXQzdWeDFuU3kyVjEzdGgzUUFnU0lYQU1NMAorTG5NdnI0OU16SFE5RzlQbWY1dDVNWklrVnJxNjdVQjVQRGxhZEt3U0ZwNjdzbWFOTE9GQ3YzNWxIcnQydzVBYQora2JzRzc3OEFWQ2dZSFhHMnZsWTh2S09JSmg4SGVRbW1ydHhvRS80NWplY2lJRjFUdnkyclZ4RGkrbHNSS2R2OQorcXVZODJCM3dGUGVGMmE3QU9TdUN6S3ZlMWhBNmNWc3QxcDA2R281WWVoa3pneDRIVmVZQWdoMHNoWS8yRDQ3MworN0dwdzBZME5xTGJLRVhyR2Z2OHdWZkFkN1Q0QTRncWhxbVJXTGNTUGNzV0FXYkIwYVE3bjBwbFZpVHJTZnMzSAorRTVYdlpCd3RKUXFZWldCTm5kYVNvbFNzd3hnZGNDYWNFeW9JMjkvMXh2VUoraVk4NitTN1l0QTRZZ2hRYldPYgorYXFJenpSMkhRTXZ4b2QxeGNrYitxQ2RWSmhFaXFQL3FhTStDbGEyc0ppR1ZlUThWZ3lldVVnSlExZkQ1SzdQQQorenR4Zjhya1BkQ1NMY2NWRzVEQ2doZHJZL1U4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkQyQkJtV3VCR05wRmlISgorL3JpWjl0cjVhR1hzTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFJeU9aeW9jRDFTTE5yVFVlUmxLVSsvZ3ExVE0wNFpBRGVCcHloTlNHcDg4YgorZ1JNSjZuWDdHeFZuZG14MmxyajdjMFM3Ui9wd2h6elZRZ052dGhKMXJ3YXVoM0xLVnhsVngyTDlOcmpEV0w2YQord2RzQ3lkYzVxRGdGUjVKOE9ldVF3ZS9sSFllM3h2bVV2R0x5V3ZoQ3l3WjFVVDN2RTUrRWQ2d2JHQmVObGJWMgorWWJoaFVDUnhBRDgxZ0o4RVR0WGVuTHpFcDJJKzRjVHNKc25hbTJMZFpUd2tHT20vdmRBYVZBOEpqZmE5ZUd4WQorMTQva0FDQkxkQVhSSU1uUDREQ3hPRzFUSGZ1ZHg5QmZuRUJJT0dTRG04N1BqazRVRVFvWlBNRXpnVWpJbGh3UAorS2xyVWZzSUc3YnNqd3pkb0YyelEvVlBFQm90L1h5OVZReUFlU1lUV25PQTc3cWNBRk8rc0xXUWsyd2IzaGxHRAorNEpualZlU0tKV0djQzZlNUhxeUM1QmIrS1h6WUVoSlR3RjFRVDEwTHppTENJVkhyLzJza0VOMEN6WUdlSERWRgorNm9lMThtdDNoZVRzNnJDSVU5Qk1zczJMcWlnb1FJamQ5cWF2VU5RS01UWlJJbk5TUnhlNTkwREo2NE80N0hpcQorK25ORm9LNG1Dc0NqTDdCR3ZNdUlXRnNYSEFncXp1K3E5UGVGNGNQQ3FES3dtczRCYkNXM3hXdEhNMWR6eUNRQgorZVMwWlRrVzkrVmhYN2pqTnZaZ01sZ0tibGtWSnBKS0RUVGFCODdQbG1RdnV2eVE3UlVmeHpLMjNZWUFxSTZFSQorVXByWTBMeU5HVmd4OVpsQkI2cWYvSTVoSk1JYmpmK1BMV2JmVFYzWm5BVkd2Y3JObW9EZjlIcGx4Z0J0N0tJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgN2NiNGI3OGU2ODg2MTRiZTQ0MjFjNTg1OGYxNWI5NmQ1ZWFiNTFlZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFhSU5iSDhDT29sZWN3QUFBQUFCb2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt5TWxvWERUSTBNVEl5TURJeE5Ea3lNbG93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVbEdXQzFMUlZsSlJDMDNRMEkwUWpjNFJUWTRPRFl4TkVKRk5EUXlNVU0xT0RVNFJqRTFRamsyUkRWRlFVSTEKK01VVkZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXU3aDNSWC9yc3ZqOVVRYk4KK2x0M1ZpZU10ZjZKcVpJYU9iQThudGtHQWtCYndncmQ5cmRKWmdjRzN1d0NtK1RLRlEzU2Rycm9hcW82Qk40ZkoKK2w1U3VnMmNSSVNOS2lXQm9BQkFmVEY4bzI1OC9sU3lCVTVoM2pPNy9VenJnWkZ4ekV4YmhoV292TGgyUERMWEkKK3NkZWlMQnE5NlRDNmdDMzZHVyt2WTNiQitGOFpYWXNrQXhodjFWWGIwOTNvUm5tWllvaFhMdjNzRHUxc25nNGUKK1hmVzZ5SmVVejA0NFVJcnRCbTZsYTNoaWg0TVdOK2hEM2pia29Xbjlwd3FiTFJudXJNOWFzSTRTSktqV29JalUKKzJIRXRKRXFVaEN5ZXdJZlpkV0J2c0pOcE11UWsyaFJ6dE5rNGZmZWR3WHpERjI0b21aZ0pndUN5OERDNDFYWFcKK1lkeEtSNFZMQm5GYkpqMHZWNWtjdm5aYWFxZm9sNW9OcjlmVy8vNGR1K2hsSlhUT25Zb1QwbnVSSm9hejIxU04KK1BXU1RkaHVpNTQ3M1lMeVY0RXBHZjQ0SmZGOGdsL2tsTjBEaU11ZGt5dktLaUdoRnQ2R2lSaVBCSWp1NFd1KzMKK2lBMnlNeGhiS0docTlvd1U0ZjVVNDVsbjY4c3J5OXFDMU1ZQnVRbWNWZGVKQjliTGlVQnJxYVRiUTBja0xxVm8KK2xTRWF1ZjJaY24zb05zNnI0cDRDWU9sWFlYTmlJS1lobTdHci9wT1ZCeE10VStuYzJyZG1OUU5NQ1Z6ZjhGR2wKK0Q5TzBrcUJtcXV5Mnh2ODh1YnN4aW9kQndidmVwaWYyVEpHSFFkdUZNeWxoK3djbGUrdVA2SDZkNWZ1SzdJaU4KK2ZnN0xyTlZHdWgzRGpVaDI5V3VCbXdzOEovc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQeXdzOExsLzZUanZuLzIKK3FLNDc3bUdZMGQxdU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQmV6a29pRllrT2JqTExhS2Z5a2pkaGdVMUhLTWd1bmF4azFHWlk2NGtEOTYKK3VBTGdNWnp5ZGV0RFNQSGhKUENCT2pOTGt0bzRGSE45cU9RSkhMVFEyY0dmQ2xtUDR2bzltQ0JKeThnb3Vyd3oKK1ArV2dkQnVFa25ZYXpCVkhkUzU4RzEvV3NIRG9senZyeWtzaDEzWVJuTHZhZk55bUd2Mld5MGI3UGViV1lOcGwKK3VOMFFDaU5idDFTZ3cvSTRzOEZyVlRaNS9HYy9LV213SWFQSXJRNXpqRlMxcWpPS3FyemtIc21RWnBkbUlEQTkKK3hyVG1mMTU4SmRpVU5Ub2d3dis4eG9KZW80SkJzdEtSN1pLRzRkZWJNSUlpclA5OVNaUkdGbmc3Y0FBdURKanQKK3U3UFdOSkRoNElVaTIyU1A1Q2podkhiT3djQm0wdVI2OWViL2hzMDVIN2VFTTBkaDdsS0FHWHRSbGpjdnU5K3gKK3lxQTBiMFZWL0prM0tta3BhOS8za1o2VTJlbnZQdUVCUmtWd3M5d1BnMXFHelpFcStBTXVqZmhZMmxYRjlxbUkKK09kbzIyQ08weXdNdDBkKzV5aTZzQkphekNGT0o2czdjeFI5SE9qcFQ0SnpQUjYxL242OTMwV3NoWkFrRHVDTkIKK3V0cVBOeHFBaTlYRlNkc2V6ZDdCRm5OL0JyNmFqOGNUTDFQRFU3VkxtTnk1T3pZOTEydGRDQ2dON0V5eXF2MSsKK3VSbEFCNWZtTzdFNWZRbHZwVFlxUmllT0NZdnBuV0VpRHNNb3RJTmU3M1Z2VUdES00xNytxVVlndllreXNtMlEKK0VJZFFSZHlQZFY4V2NPU1llSG05VUtIYWo0RkRIakJDZW4vVm9pOXBMSDZudllMbUN3bnhOU09QNkVtTVQwWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgaWZ4IGtleWlkIDgzNDNiYWMyMTI5ZDc4Mjk5YzRiNTEzY2MzZGU2MTAzN2JmY2M5NTUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYVVwOUM4d2NPbEtuZ0FBQUFBQnBUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXlNREl4TkRreU5Gb1hEVEkwTVRJeU1ESXhORGt5TkZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzA0TXpRelFrRkRNakV5T1VRM09ESTVPVU0wUWpVeE0wTkRNMFJGTmpFd016ZENSa05ECitPVFUxTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFzWlZlODg3NTNBVU00Y1JmCitLR1pzN0M2dC92by9BSFhKYVdEanRUT2g5azVQRDRCNlB5d2ttbFZXZnBFc0pWWnR5ZUhtRDlsTXR1aVl2bjZKCitBVFBQWGlJMXBtRDAwU29nNmlkQkh5RUhYLzhnWVZ0U214YlFBNFAyRzNpNmc2TWxERWtNb2wxZTdMd0hTcWZBCis3ejc3M2NZcm9pdy9wekh6Z2doVk54alI0Ylc3WTZkVVlnVUtKdjFLVHYwUm0ydGxJNXpVTEt5bERJUnZydFE2CitRWkdwNVpocE1NQk5GRnFPYnY2TmRBbUdXOC9QV0VRbDk5OVpMczhwWEpUQWxEbEIyMTQ4NW1BYTNSMGhwbTNoCitSMFVDcVZYdDJFdFRWaUtZdjJaUlRmTVdpeVAvRjBpcWsrcUxrYnk4N1pxSmdWWVhMQ1lBYSt2ano4bnAyOE11CitHeEczaVhnU0l2U3ZWRTkyM0VrZzByMU11VVd5RlVSdnFlQStLWEdOU251cFBEK1lxL0Z4SmEvVWtJY05FVUcxCitIZ090cjdaUjZzUWp5UnBUV0NkVFIzTEVqWTg0bVBLYnBHaGV1dnJoZzR1bitXSk9RaTMxUDA4SjRPSytQYXhNCitPQi93S3FWRTVOSzI3dTQ1UDBYSi9yaVZBVjZiWktJVERLajVRbFFwd0JUSWpleDBtNXZ1MkpvZkg3QSt6c1BZCityb1g2anZnaEE2a0dSQXoyeVlpRlg3ZWhDR1BSNkFpVW43cTAwRktOc2tFZjdTU3JjWHhJZFhpQ0txVmpnRTZZCitXVUwybzB2RHFHSlpHY3NGWWhPbitnejF2Zis4akVETVlQVFI5am5RMkFSdHMxME5GQ2N0Ri9EUWl3SlBsTkhxCitBaHNwWlpiUG8rQllVdTE5NjVtQWxIc1FnbDBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRjdzNng4ZEI1UGRNaU5sCituaXhnanNFUEQycWVNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQURMK2lsWTkrODAwMmRKN2NMRFlWMnlmL1FsLzZIWGg1LzAzd054bHVzQk0wCis1NlBOSW1UVDU3anhZenFVK3JWUXZlaWprVEdXcnIvR0dqcmNEZlZIeng5aGFaRHlvZVJSZEtET0g1VVVPTS82Cis5S05CWmdleWVVdUxOUjNVcTZYWVdEME5KdmFhT0R1UmxtUE9RMWFrVEFaaG9nN0llVUpNdzByWlVoWnFBM3lUCitpNGo5WGpSNnRqMmlFYmRoYm1OWEtXdHVGa0EzWG1zaVp6S1pPYlNsYWQ1eXBhcHpPSmRmdjJlK1RaT2JzbVk3CitSdnpybUJVdlU1QlArMERFTnkyK0g3bFZ4RkJ3SUZMSit0eTBHb2xCVEx3RkdnNG5mcmJlTnd4S0tUVjk3L1V4CitIYXU1M3VaY09ZM1lUWStEYmpDOFZsUW9jOE9iNjhHMDNidGFFckNoQWdnYnhNTDRaWmFJb3IzUHVRSUtjMWl5CitWNnc1enFTRS93ZVNNeHpJTDlEVEpubk9DUFpmeTNTR21aK0tSM01VTGNDZ1hady9qLzJ4NzRqd24zZEFIWTViCit1TGw0N1R0a08vRWVZdExtRitqM3hEQmlNaXRyRy91MWlpRUtFM295emMyak5kUTdYQzhiSW5KQTJmdHBZUGNNCitESEU5UGliMUNRbkI1S0pCZjRKZ3hHVTM3RGVnQ0lpbWgxQzljZDRrTDNwNWtreXN4dFprK2pMMU14dXVPcVdtCitWajN0aHhSRmVYc01qRGIzeXpvYXFEeFl1SWEyVXVUNitydXlnZi94MkJ3VWhacjVUZXI0TGFsT2RMaGFKSWFECit6aUdrSU5jQjBtcyt2UHVXeGpBTkt6Z0FQQ2VRK0lXVXlQRDUwVXFMZ1E3UENxQS9CdTVEUjIwdndkYzRSbTg9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCA5YzdkZjVhOTFjM2Q0OWJiZTczNzhkNGFiYTEyZmY4ZTc4YTJkNzVjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVlTblczVkxCV2E2M2dBQUFBQUJoREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNRGt5TURJd01EazFOMW9YRFRJME1Ea3lNREl3TURrMU4xb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMwNVF6ZEVSalZCT1RGRE0wUTBPVUpDUlRjek56aEVORUZDUVRFeVJrWTRSVGM0UVRKRQorTnpWRE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbWR2OG1JU0VvZjlCYTJJWgoreHljb3R3T1h0T1JjeTZDd0lENjdzTmVnMS82TlJvRnVxMVo3VGk4Y2laS3ZKeWdHR3dUbjh3REIvQnNoMGk5WAorV3RVdEgxbFp4ei9QNi9kU29IaFlJdk04Y0V3UlBtd1NDT3hjelMxMTFvcURxNDhRSUlYU0RCMXdid1AyeGxJMAorOTlPTW54NWlhMDVpSUE1UVQ1alYzYUJPck5TcVcyVDVLeVZnY3M3Si9BVmlKb0RmcnVzZyswL01PRVhCcEVodworWTRObHRndkxNWVRBVWcvanZuMXRJekJQT1FoeWdpQ2lHa0gwb1E3UXdPc21HNHEvK3FyeStrRDBpSjFwQ3cycworaXg0eHhSZEg5QVByQkdYV1NyRDZ5ZDNoS28wb09mNnp2SFVIZWJyZmp4VUgrcWNFczZyejA2aUIxL3pRazVOcQorVXQvdUludmJpWWl0bFVaMW51TVJteXNMTWd2TldjeXZuek4wL1I3aVpsKzFRN3JmNVF6RmlUdnJad2RrSE10UQorNlE5VjFxclJEazVEdXRYb3NnWHFVVXhXRzFmNlBhSGorNFhSSUpScXBkUXRBWUs2VEROck1OWk1NUzlRNXNPTgorK2RnKzJNUlJadCs2VzJuVkdxSk5Sb0laaVlrQTVGMkIrekhYUVk0RFZ0NUNkQmJZWFB4SWhwcFJZTW9GdVdjRworNEd2MXgydUJTRHV1ZVcxOURKVG54OXgreU42NzNiQlVmaUt5SXRXeHVNTHRDbElsQ0NtQ2dGRHo5a1d2ZkRhWgorMGtkSmhZbWx0NTh3blA3b0pTY2RNQklEWEpjRnl1cXF2UVgwNnIwYWdGL21nVWRzYjRLbEF5ZTA3cEx4a2dWSQorQXNSK1ByTnMxajYwZ2lQUkpWRzRXVElDd2RrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkkxQlVwMkxpVDFBS1ZMWAorU0g4bEhmeGxZeUhxTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFFTjZVaHFneVVPMjJQeGcwcU43ajBqbndoNXpjSUkvOFF3eWVTam5SdWpEaworOFBXeUU3azJ0cTVoMmQ1YUIzNkh2dVlCUzRPZXhXVTFQemRLcCtWZDN6Yk5PeWF6RUVtaExxQUJiUC8wbGdHNQorQW4ybXArMkRXR1pkeUZwcnhMTUc4VE5JakJlTmNaZDQwNG01QWFWUmMyQmhWT2FJVzJVUmt1eHd5OHQvQVN1QgorRjFCQVEvM1ZFeTE2MXhOZlFyY0Q4ODlCemgvSURpSVRlQUtEcFNpWXVESGVhRStzbW5wZjZVL0IzMUZMTmlxUgorc3EyZXhEK1U3OVRxME5WUHFpMFI0ZnhiYnJSSDZ2WUVRQVFITVp5cHhHdm1sQ0Y2TjZQY3pBUmc1aS8rWFVqegorRFR2aDdDalFmUlNaR2pmK09aZzRvejh1Tk56WmNiNk0rN3BZWThRb1hTNW5nRmtlSk9iN0FLQW42cHB6ZGN4MQorZWVLYUNzd3RqMS9JWUlqamVsNEVESEQ1WXFwYk9mSm12dy9Zd2FzK0NpR3A0SGl0R01XMldLc3VHbWF0TEpKTQorVHdYMnlYRElOanZ0MTUyNVZzbWd3a2Y3cHdBN01pWGMwMUZzYm1ZRDZWZW1YRWtyQjRyb0ptNUNXZGQwU01vRgorbUowd2ZxWGhKUEI5TklQWHg3U0NheEpwZzRCMDBzMEt5N256SWo0dU1OaWhJd2xIN3BxdHgvZm1kWGhWRndSbworMDBLaFo4L0l1TjN2RDUrZGpTUkhaRlBwSUpBTS94SWRvYTRiTWZZNUttemFWYVNzRU5vWk9iK2hhSGwzUlV2ZgorQ0hTdytudXZRTEhDeWdoc1Q0QU5GNGNCM3pwTjRTaWZscTNjcGtmQngwaDFXRlBVZlEyendxcXFUNklodXVJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgOWM3ZGY1YTkxYzNkNDliYmU3Mzc4ZDRhYmExMmZmOGU3OGEyZDc1YyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBa2xRK3JoSmdRZWRlZ0FBQUFBQ1NUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TWpreU9Gb1hEVEkxTURNeU1USXdNamt5T0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzA1UXpkRVJqVkJPVEZETTBRME9VSkNSVGN6TnpoRU5FRkNRVEV5UmtZNFJUYzRRVEpFCitOelZETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF1RmN4SWg1TVFHbjNZS1BjCitLbXJQdWhmaXdwOVpaZGxSZHhGS3ZPNG5Lamx1d3ZvZDNJNjcvMVhVTU13VjNxZFlJNzZXT2dobGZIYzBjbmxPCitqRFVOem8yVWJJblFZYStFdGhTNWxTNWcyVW90TVNQSFpGaEk4TFdiYUVtSjhXZ21BWVBBR3VFNWlraGs5dzIxCit6RGx6Yk5QVHIrOE56cFhnM25vTDhrTkpYMmFHL29lRDVhdVREeXY4enlKVnJRZEVtUUROOUp0V01SWjQ4d041Cis0NTBmTXplTVhyTGNOUWphUTg5WCsvU09JQjFwM3NLRmlzeThMY3Z2UFAzcElHSG0zbjVuSU40V0ZwT1FFUEJCCitEY1B6akNpaFpMcnVXQnJhdWJaWmJrQ3BGbjREYkUxNzMzU0RPaldZTGZaQTN6N25PK1kvbGZ3SzV2N29IR2RzCis0N0REYVAwNVpJOGxOM2FOeDBLMzdwMFBVb1liZ3o3b2NSWEcxSGxvdHZ6cERQTFRBMGljbW0xOVF4UzRsTlBPCithVkMxVmx6THFxZy9OWUY0WHgzMXdmVVVJRjNjTnRub3c2UkVwN29SeUlNN0MxQmdCakp4WXA0RkNDY3Ntd0RsCitDeHVxaUJHOHB6Q05QYkRocno2SDNxRW8zUW51TkRObDlWaHZwK3JrdThXU1NaVmJMWnZhbm52bjBCTm81UWVQCitKdUNMdHBWV0Rwck5qMmVjUEJ5TTJQNjBpREM5TFdyeXBBbHNnUUZ1TFQ0OE13VFNleFJqTUo4KzVXWm10RERtCituZXNiNnlWdiszNnF6eTd2VGFxRm10L2dKVVhObWhFajJFazM4TXhidXJSUUh3Rlh1Qzh6dWN3bjhwdDlMU0NWCitrQ0tQOHlIUWYvSFcrZU1tVnk5MzNzNk4rMUVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGT1VFSkFsQXorY1NtcG10CitJMmhZV3hJTEthVStNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVdjdUxVR1hOZi9BMCtHdXMwcGtSdzNaWWFjS082ZVFQZERkajBsc1lXaEtpCitOZ0x4RXNDc0R1N0toRFl0U2psTlBINmtLR3YxRmRnMHkydWJwOUtkNUlLYU1tQU5yZitqazZpMmZLb0I1RWxkCitqWEtBVXhxSmJlbnByd1VEajZOWFY1c2lwUU94Zm9JRmVacWMra2JjYjNsS0tDcENaSG9qSkl5QXJvZHdrSUNrCit5dkx4aDZRUThaRjhMZlZQOWVyMGlYVXA3S0hvUHo3dDE2UnlRR3BHUHh4aktMYUQ3R2VNR3ZkSGxadG13K0kzCis1Z25GR0g4a1VMZzRZcnRYSzZGY1QyOXE5ZGNabnNwR3FOK3FNRGE1VzNPcElLOVVyR0VvblQxT1BETlhNR2JTCitzMjhhZG1BTzdhenoxYXRxTVE4WmNRZFhtRzZZVUNCR2dCYWhwazVNaDAwNWF1bEg1dXNHemlOaXdjLy9Wby91Cis1VGZ3K21GOHh6ckZ4NTRTdEl0SG1iN3VjdEhBcklvNTRCeUs1Mmh4V0dUTU1XWVdST3Z2aGxTYnV6QkNRc3ZMCit0VWZWMENMUHJ2RmhTdVBUT0JJaGhsVEM4RGs5Zi8ybWx4NHJEVE9CdVRhNWNJTEtaekt3MUJoWk01V2hWY0crCitrMUlRa20rYXV3WXZ5MkRmK1BxMnFCOTl4QmcrT1VGbGNUMXBYeE8raTJ1aU1tUDhwYXNqd0k4UXkrSHI2d2lnCitwcmNlVVV0bFg1ZExEbUNyeDB3Vll1ZlBtSm1FeDRTdHExM05GTzNvVHp1QmFlQnJIZkZRRWFvY1VpYmMrczl1Cit4blZRRGpYTFc4NVl4LzcwMlgwUGR1WTVqRGplOGRzZi9DUE5LdktvMUR6Ty9qNVZBSTZ5Y3NlWlpIWVl3TUU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCBhMjZjZWVhYzk1ZmEzMzY3MzIxOWQwYzJhNzc2MzcxMDJmYjUzZmYyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWFiU3Z0bmJ0cXNDT0FBQUFBQUJwakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3lOVm9YRFRJME1USXlNREl4TkRreU5Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxQk1qWkRSVVZCUXprMVJrRXpNelkzTXpJeE9VUXdRekpCTnpjMk16Y3hNREpHUWpVegorUmtZeU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBc3hSRm9TWkR4bFd3MExKYQorQTVaTVcvMFpxZXZXaUJwV0h2SG9QR1ZDK2ltRkt6V1I0VkJCUVlyRSsrTzNaalZKa1M1NHowYlZIYzBKT2NkWQorYWNFajZZWUpCeUpXTmlML3hGWlErYTdWKy9RMWE3TE9GWWNDT3Z6TTZydGFQQ09GVFpPU2hwenRuL2o1N2pJNAoreVo2MHVHQUppQno3TUsrT1JXcGtxKzJ5V2FuUVlIVkFVcUVGeVh2MU9xVzloWmViL3o1Z09aMzlPbTg2YWkwcQorYWhDSktYa21JTFluazc2aTNVRndLNDlCdUpqOXJaZEEzSitmODcyRFNwUzdHeFQ1TW1NdjBkY3p3Wmpwbkl5TQorYjBjdW5zMlVQQzBmcG84dG5KeHhBVDRQLzFBOFBRTnpCSGFRdExEbUhBTDBiTVFtV3hhRXZnd2VpTmR6eGMzWQorM1JDNFJyeVovU1JKbzZBOWliWkxXUlljTkNRRnR1dEgwVE1IUVJWc1g3LzlDSDFMbmZ0d0lDcGF4MEtvdDIvbAorZi8zU0Y2Qm1vY0JsRDI0UnJTTldaMU1xeE1hbEsvNmpSRnphZ1JSODhxaVUvdmhSb0JzNGNsNXZzWkFEdENFVworMy9nNllBZkoyTFNOTTlWcjd5aXlaa1ExSUI0ZFBPWGRJTWpUQmR2OWwrc3dFanN1RkNBTUl2WE41UUcydXpldQoraWhkazhmbCt4enkzbUlzUCs2dzZqZmozbCt6T1hYZnRqSlU4M2ZqWUtySzlMRHdpbGZCaDhWcjZXS2t6Y2JDdQorSW9IMTA0b0ZzK3R1RHFNRENqWnJlMG43MXlHTU9jMU5Cam5PYzZjTVR2OTRwRUh5dk1DaG9LQ2RZMlFyUmVJdword1FIWUlXMDJnZ0ZCeGVWaFJaUm9pTXF0S0tFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdZYkpad2VqNkI2dlgyWAorZnNtL1B5R3p1U0UvTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFNNnRPZkpCZmk5dTA0SXNRM1FPMDlEV09SNTcvQm1PNys3a29JVzBMVDdoMQorN3NSUEdEYS94R1hVa2VYaEVoSG8xclA1YmJrcjUvdDFVa2l0QlI2anFJU3VJNTdXS1NJY3VpUE92RnRmdWgzSgorSTJ5cWExeVRIOWp5UnV4YnhxRDY0enNBZzNXTEtrYzdQZktyY1FSbnA4SzlKbjBhV0ZuM0NRWHMrVW0zZXducworVjM2UGtBN0JPMnlvL0ZyTUhxYjlwbU5wOHoxQmtSazgvNGFRbDZGUHgwT01DdFBHQmhKWTFGNjBGL2E3TGtHSworRUw0RUVYcm96VWtwWXhPM2ZWc2s3eTVBQzhhRlI0UDd2OUd6c3NsZC9EV2dacTFwTHA2a1habXg0VjRPcU9uMworSTZ2bFd2OHNvR29CN3h1YUg0YXhhb25JY1NmQkJCOFlINmtUaThwOE5VRm5DdXlDSFIzMXJXN0pUSW9CdjFoNgorbGRLdGI5a2c3YWVjQVhuUjZDM0w1TUllVVlUUHVKQnMrczNybmZXa3YwSnh0dktQNlhDcWZoNUFvdnNQd1d2bAorb0tqcmV5MkxnY29iOGR1NUZqQmxhTXdNenBDWmxVVnErTnFpbDZFd2N0SkNzOWZMUFpsRVB1TjREWlRmNmdubQorLzVCWUZWM2szTE9uUzFLYmdHVWkyWWtZZGFzTGh0aFZ3NzRSdU5RbHZ4V3kvd2E1TkR4YnZkNDEzYmhsRENIOQorbDRTREdMTjRSd1YraWhXWUFOUFEzRnZBYzdZenhUVnNRRnRVKy9XUkNVUFRIYzZIdEZOblZHRmNYcGxoSVZ1OAoreTVSM0Rka0Zrc0JRRy9rMzBxaGM3QmMyQTFFZHAra0x4bkxLRlhQYzMrdEJuQURMNHZlR0hUVTltYjFta2NBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgYzJlZjY0MWMzMjljYjBhOWYyZWFlMDRiZmIxMGM5OWI4OWMzNDYxNCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZm0vdjR4Z2RNVUJiZ0FBQUFBQitUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBek9Wb1hEVEkxTURJd05qSXhNekF6T1Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFETWtWR05qUXhRek15T1VOQ01FRTVSakpGUVVVd05FSkdRakV3UXprNVFqZzVRek0wCitOakUwTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEyU2lKeW9KWk9Bd3VvZnZiCitYSm1zcnFodDJRQkhFVmJnbTRPMjZkR255Si9DMXJ2c0VkMmtmYzJxRkJPd1lCRDEwT1U3dm9sdDhMcHlRVzFzCitFbHZHd3ZDK2tBQ24rTkJJUUtOSU1MaXBXeVpaeVhGZS9FVm81WEx2V3JaaHVKdEgxQUNnREFrZ29aR0ZyWXhMCis0T21lQ2RFY3dNVXpZc2w1bnlrenhCWld3ckk4VGJnRzdFYldXZEcvTU9kNDJXMHBzRWF5eFcwdkNGN3gxMUNPCitURlhjT2pEM24rY3ZpTXAvVjlWQWk2dElIZ2JCc3hjSU5ncVppa3NCMWgzcEZhcmpKY1MrSkVlUFlQWlJRa2hvCisrUWNDKzFSMUc5VVVzNWpVVzh0TWpBeG9INTgvRGtTZzhCeDVFQ0dJUGlXVTNHaG9ybENlZ3FSdWhHS2ljV0NiCit5aXJzSm10RlNpaVBieEdvei9GUnpJUUtSY0w3V1RlWnlxdUxwY0tLMmUxQnFlVDk2RCtTS21ucFl3SDhYVFZMCiswbm1KRFA2Z0tscVZuNi9JbHpmdGVrOVNOc0lMSEEzZ3Q5V1pZQ3ZJUXF5MGdhdGRFRndTdWM1MTlscEIyeE1VCis4dC84Q01peFR2SlRrVG1TcVhiNWpZOFdscVlQNGYwek0rei9DR0VkeTZLQkNCaEtJS3BPUUdEVnUxRTFuMWM4Cit0Z2paMXNDTTNHeUtyQlNhZkpqcWZ2cEV5QW5FMzBISjFDa0pEQmtFQXg4M3UyWUR3SHFHUklxQk9xSkpDa29PCit2bnluZ2c2c1M4UTJ6WFBYdmI4Zk5ObGoyaVpVa08wbk9EdnQwV1o0aEZIU0hMMUk0OU5ycTJ6K1JieUZMMUJrCitBMDdncjB4VXQ4SmFIQ2ttVjhnNTFlOUJhSDhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSmF5WnZrd2NUdE4rVXQxCitTRmFQTk1OT3BIM0lNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWZIdldsUmdjTS9qdkFwcVVubEJRUk9qd21qMUdnYjVJd3E1SkdlZVFPU1RqCitwa2FrRXhXaDZPQjNKV1FHZmlOaktvSXJOR1g3OFZVUllpSEJ6M2ozZm9mUVpkcFFsUGIxc3ZrZWc5Mys2dDhCCitLTFJxL0d2TXVmQ3B5cFNIQTVLckY1TTNxdlNtK1hYWGJMV0YzY1pGdHpzM1N0RVlQM1JaL2tQUm80ZENyQUQyCitiZHYyOWFabWNzalZqV21vZ3lPM1hJbHZLbzJ2dFU3Qk1zSlEvWDJHZ01yK2RGYWk5YnRsSUVZMzh0eWFFUE9SCithdklBZndQUU8rRi9vSXFNRko2SXpNUnhvcDV6QXVQUHYzY25sLy9TZkpGbnVxTGd5dXpTVHdJUXdsRzE0cVNCCis3U2ZpSEE3WHFCM3k2Zzk4UkhneWg5OW9jS0orMGt0K0J1RjE1WVFycWJyemVOWElTckE0bEZLQXpNNVN1SlhsCitLS2t0SVg3V0U3MkdwbXdNZ1FScGV1M2RsVFduVGpZNjRDQ3c4WGdJYU1PWGdCa1lKTzJZTTJoNjM5WjFBNGFxCituOVk4aUtOQzZWN1BzWERCdmsycDlPQU5jcUdmL0N3VExEWitoTGNnK0h1ZnlZbmc3ZTNEQ0puRTBXUUxDbGNJCis4UDZCYmt5bGNWYk4va0piZmoydzBIMTRyNFdJbEV4WkF2aXBGajE4WWtoc29CK3FsVXRsSEt5aDJOOGxmZjI2CitIbzYyZURieHZzTTc5TGNGQmoza24wQTNyeFIzOVo3M0Y4Tk84R1N4cFhreGtqSHF6ZFBqQkdLUXlzTXlBS2FNCitVUFJaZGVXWUp0bVhnYUxSYnN6V0hORmJUcWM4QUVQMm5YS3VzZXM1ZU5pOVoyVW1TZDhZSlNkWkVTamVhamM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGlmeCBrZXlpZCBjZTc3MTUzYjZlMTEwY2E0YWUyOTcxYTA5ODUxZWY0OTkzMjYyMDJhCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWFjMmtQMnlpR0VGQ3dBQUFBQUJwekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3lOVm9YRFRJME1USXlNREl4TkRreU5Wb3dRVEUvTUQwR0ExVUVBeE0yVGtOVgorTFVsR1dDMUxSVmxKUkMxRFJUYzNNVFV6UWpaRk1URXdRMEUwUVVVeU9UY3hRVEE1T0RVeFJVWTBPVGt6TWpZeQorTURKQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNkxoMTFBUkNLSG5LQnJsTQorcGNWUFptbEZVU3VSNVMzZWYrZHJSMTdDaWNzZFFQSzMrV1FDaU1LdE1JNjB2VzE3YldSZmwwTDhVdDNzdXh4UgorZm1CTU5jMllKbUNPUEFlSHVPKzNRSm1QeVdtYUp6ODFKVUVJL0hzT05QVkFRUEFOT28zZXg1TXVJUG1ka2xGdQorcVE3QThPbXhWaUpDNDBraDhHZ3JWcTg0M3lRYm5FZ1BhMzdJVXUvNnlNaHVHM2FWTGhIQXlLdXVnQTlNeWhyWQorRVBRUTVNZGMrcy9GNzIyZDkvSmN5SVlJdThKQm8xUzd4MUM4UC8vdnk3MWJOaXEvS0Q0L0x1V1ZPQTU3dnFJagorbDQ0Vy90Y2lOVWJ1WkN4SUlnaFgvcllsRlVQTUpyNUhlT1BldUxSV2ZyUFpJNm5Ya25pVTBQQXBzdDV3cFhBUworSmpvLzA3TElQVDI5OTlzN3ZDUW9hdXQxSUo0Rmk2NnBWa2JxYnMxczZjOU9jeDVnL0k3T2laelpXSzdpeHlncAorQ1QwTUFtMHR6M1JlelVEOEV2VGhUcHlwZk1KMURsR1BOUTR1cGJJN3VyamdDNi9ObWh2Wm1iMFRBc3lodmwzSAorS3dBRUFuNnVqRnlOZ1k2bXowQ3JraVhUZjZKVEUvdEJDL2hLVVVPK21yNTd5MWlsNHo1Vk1oZFNqMlgvVm1maAorbjQwajVqVyszRGJhWitjUkQwbWR0dXE4L1dpaFFEdVpvT1duT3J2TFJ2ZE1sTUhaNGJsTTczcWRSbjZRdnZTaQoraHd3ckxENnBZOWxLREcvbVEwVTBPM0drK0ZrSzJORUJ4UnlHUlV5b0wxVHc1bnFseElIMkE0QW5nZHJGY0c5ZQorRzlXK0ZxQ1R3TVV0cFpKeWdqUGFSaFVneUtNQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhkNHlDMkJ3dnRXS3BURgorUnBVSTg2RWQxa1Q0TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFQTkE1eENMTkIzcEo0Yjh5WTRYd1ZxTDZYVmxGYlBKRHUvMUdKRjB1UWVXbgorNmYrZFhraU9TdXE0ZytSMDI0M0VoZDJ5ZTMxUFdZT2RnRmZBWndpTmZ6TDRlYldyRUFaZVZXd0FQRGU2RXM4MAorU2VFN2VBOFZBcEY3WkFweTBvaGV0RXRQdWFqYWpEVmdHQjhJZjdIdGRFdmZpQlZFVFYzMFFKS3N1Y2NkajFoMQorOW5XbytPV3dPQ2JXTWFERjlVMjFid0FpdjR4QVc4c2NGd2tvbVRRc3pRcTVoTXQ3amUvMWpSZ0c0c0dYdFNEUQorb2ZyMzVUK3ZkN0lwdVFNYWxEN1ZsMGp1RzN1eVZ2dGtjRTlhenEzczlNbkROeDNNbW1FWE4yOTNMcXQ3RDc0TQoreE9NWTB3UTM0NGJZZG9rNU9UWVU2UjFqWndTdW80cXFscFJwOEFQMVRwRUdsczU2dnpMNGFYMGdjZ2xJOWYyZAorUXd6R2VhMU85NWppSU5mRU1zV0ZKN2hXTFJqRGZWSjJ3MmI5ZDFiTnpyNGVZa2RxMzdBRXZBYS9OVythQ05CUworMzNUcmdjdnJEaHJObzk0NzBsUU5iSklxM2IzYVJ0Ti9TZ3hTSmx5cmZTSTUzdUJLdjlEckJ3MEg4YnFrbDNwcworVTdib0Jkc1ZhK3hRSitTWFBiQkpsVzM2VnBCbHA1NUJwd3hXOG9xUVQ1czgxQ2FyRHJPbGFOQXo3Z3Nvc0tDMQorL2RwbHNMZVBoNElFSjFrZG9JMzNUYmoyNk43V3hOVVcvUmhvZkFCREVwTjRLMnZTcnkyKzBuMDVYQzA3Y2VJWAoraDJIeW9kdnl1SEJ4bHd4MVh0ZmlUVUs4NDEwL2NLcVBDZVQwZGljVGxRdDJPSnpwQjNSV05JRmNndmkrdjlVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05DVSBpZngga2V5aWQgZDhhM2Y1NTYwODVhNjhjOGFhNWQ1ZmUwNzliY2M2ZTljNmQzNzc2NCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZnRyUzEvcTh3dlU4d0FBQUFBQit6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBME1Wb1hEVEkxTURJd05qSXhNekEwTVZvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVWxHV0MxTFJWbEpSQzFFT0VFelJqVTFOakE0TlVFMk9FTTRRVUUxUkRWR1JUQTNPVUpEUXpaRk9VTTJSRE0zCitOelkwTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFwYXZJMktlanA2TElVVGR0CitJd05sNnJ1SWkrZFJIdXpncGl4SWJoaTI3UjB0YlhKemt5SzYvVGxnT0I2MzJxd2FBVzUwamV0Y3h6NEpCTlJ1Cis0R0RZbVo5SlJQb0VybURsMURhQ0RJcGsvK3BBNUxBbDJza1JHcnppdFYySEp6K3JvbW1WR3BNWGhQMUhYVGZOCit3UmtMNUdhU1VKUVQ4Z0E5ZVVDNk5JRXJTUkt2SzJrV0JkbkppdFAxaXA0SlRwK1FSb2d0b2VocTczQ29HWXRkCitFd3BwSDQreXZpbVdoZTdJa2dWMEowUDJhT1ViZSt0OGJERmMrOFFhZWlRVVlIcDdKc0Q3dEdydXNBRkpqUFdTCitzU01sTkFBc25iV3JiSDl1LzVjZGlXbVNMUEVvbU53WWpoRHV1VkJlbzNUb0xTV2NRUFBrVGNaT3h1eXZIVERhCitBaXdEN2VXZThxTUpOdGkwUG1aMjVkMHNQVWU0NEtTZ0VzNnhVZDNjWVBkdGwwWGd3TGZ0MWxTaStuelpGSHpBCitxOUkvRWdRUkcyalBXSFhOYWNLbkJ2YlpOUUFVelhOTHJLL2R5VEs3RnYwdXVCSDNOWVhZTDBFMzFka0NnOXMxCitGMnluYkhtL3R1K2RKa2VCcjdDLzlnZHRIemM2Ylo3eTJLMWRpY2VaY25CVVl0MkxURE42WlhIOERYYUJaT1FaCitrTFQzV3BVQnNwcDF1UlpzbXBMNUpWMm5MN2lmV0hoaXNLUzkydzRmQldYTzNVUk9UNTJSWk41eE1EcUxqNnQ2CitSUTJ2RE82NGNRQ3NsT28zbU5OZjZRNlNtZVpzOVJDMi9WT2pzYkhaQ3hweTFUN002WndqTjN0TEJ2cVZqWkp5CithUTIwTSt3ZXl6V3lKd29lZHZaL0JtYVk0a0VDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTUJZWnlXNUdpYzR6aVpMCitGYVR0ZlMyZHdPWEpNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVgrWjZ2dXlwamEwVXY1QnJPMSsyQWkyZ1BDVVN5b3RLL3NtT2lOT0NmZWxxCitmQmZ4Y3hsNktuTUUzVjhVUUphNlR5SFV6SHh2SjlXaC9TYnd1eVEvQ08rOHkzOHZZbVByWHRidCswR3BJQmxKCitzazEzQmppOC94RFJIZVc3eEZvcDV0KzdiMVR3WkdmNmdPZEIyRUloVmh1VENoTkhuRlF0dlArbStIaExnYlZkCitJUG8rS0JYcHZHQm0zTE9EZ2FJMWgzcU1oQ2xkU2M5czNPYWJxRC9SZzZHZVBRclJnRS9xZjZFR2VUM01ZcGowCit0ZnMva3BlVFFQT2xtaXNsWlFzUG5CME5lK09nUDRLUmQvOEdvaFNVY3JvZDdZT2ZXM2ErY3JCMnpmWWxGM2FYCitCeVFUeHlYdzNXaGJTT1ZkMjZYTVdhcnhPaW1EcWdzNURWU1U4bEhtRmJ6K3pmSzZRWXppd0ZDZ0duemNtZzluCitEWW9YejMvUHRjTitrLzlLeDFDd2NlR2svWnY0UUpkSEJQcjIxK3R5NkU3SVJCeHJHYVJjM2hLbW1xQlZHR0RaCitFbjBlbi9Jdm8xS0NuV0JyQWJwSll0ZmJSZEpjYjJ5c2NnQ1l4ZWxNZ0h1QVpLaVh3bXI2WVpvOFpIM3FzLzhZCitBSW9sS0h2S0MxNGQxWnlqQys3djhGeEpkZlZIQkxkNTJSRWNkZDkyTE9nSUEwdVh3bGl2eEZrS1VuVy92U1pHCitiWnJuandUSWNNZTY4NXJQK2NoNUpIOVREUDkxZUM4QjM2TlRTTXFJaHVZRFprNEMyanVWQVZEZjAreVlFdWdMCitMT1d0REY1a0ZVNndWTXBGN0dVdys0V0MzSEpvbnNoak9FMVc1MGZCMFQ5T0pXbWV1Ym0xREY1MFNsK1dNbjQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGludGMga2V5aWQgMTdhMDA1NzVkMDVlNThlMzg4MTIxMGJiOThiMTA0NWJiNGMzMDYzOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBWk5TN2MyODFBT3VvUUFBQUFBQmt6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXdOekl4TVRjeE5Wb1hEVEkwTVRJd056SXhNVGN4TlZvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0TVRkQk1EQTFOelZFTURWRk5UaEZNemc0TVRJeE1FSkNPVGhDTVRBME5VSkNORU16CitNRFl6T1RDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTUV3MlRvejVsTFN2NGVxCittYXZuTC9LcW1BVWxVSzVIZEpEOUZ6VUNad3RQSEtIUHNSVlNvR2M5Mm81eGUvdDVFbThSU09PUFRXS2RKWVBMCitjOURiVGpXRUxqVEdSVXNUQ1ZhQnVVYi93RmNwdjUwSmxmRHVMdFhyUVlWdmVORWpsQnVxVXc1NWtEdlJGd0tsCisvbnA2QTJhRDMvL1hVVGRCZlY1VCtsUXhKVjJhczdWSEY1ZEFoZ1hvdEd3WWc4VW9XeGRKY2hHNWVJdGt6MFRqCisxUExzb3lWSWorRm1CWGpwcjRpclltc0xjb085QnZidWt1RW1ocU1EUHBrNDVrcVZoZWc3V3RMZ3VxekdscXhJCis0R2ExN2dEMUZ4SWF6TzVoZmFJb3ZSMzVRYjdyWVNuNlQ2V1d3RkN4YmZjOXhvcEttUE9PWkxLbXU5cGRGcEJXCitVOTg1K1lESXlhV0FTSWRTSFNoTG8zSmNOdGkwbGo0Tlg5dzY1bW5iOGt4d3FLMWtCYU53NzdlT2huRUpueFdnCit6THE1ODZ4T09DWU1nU2p3QkpGZzRhR2hMOHlTNnhhZ2lIOW01U21lRlZ4WEFXM1hRRkxpZnBMVDhrSmt2STJ4CiszRTFBNzVocmRVbjZ1MHc4bk1yL1loOTN0Y21oN3lYQnRQMXZxQ1RGelYwclp0bnhrRFcwdm5JSTJYbGhvSnpwCitDM1lyb0xBNlZsYlBBY09nWlNvY0NTVDZ5ckxJZWd3cnIwNW9UeHBtT25hSGxLajNiOUJ2TldHQllWMDEwUmkzCitCOHZxdnFWYk5wYkJjd1QwSUVoNndiL3V0UjNVNy9IeWp2WGZtdTZHUG1hc3Y1QUIvYmlGUXpWKzgxSkVUMUJuCitscEw0UlVCSERRTVJ5NVZDVWdnN0ZIY0RyaFcxQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJQakJ5UWI5NW1qdE5xCis5ZHBmcVJNRmkycHlFakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFKek04UW1IMkhab1d4TkxmRHg1T1MrdGFsdkRTVlhTU0dJaURlakxLc1QvCis4TzJ5eHRHVk1UM3ppd1lNNHVlZkZSYlIxZHVneGhzT2loWmEyc21OZHoza2RndWlzL2ZzTmQzSU52aWVYbUsrCitNVHZCWmNxWVpMZ1pQNVl6bkIzMGRMck1WSk1UZWZLamszVGtWOHhGMlNXWjRUcmJGMjJiU01JLzlFQ3ljaWdQCisxNlBpaFVVdmdLd0pQaGpnblp3dkFWZEFZdHA1eHRmU0lCenRLQXJESVVtdEdtTmRXcnRZWGRNaGdhVnRyRWxkCitBL2NwSGN5VWcyT1E0d3lzdnVrZjI4RERseExYM0Z0SDR4SXZmOXF6eDBiV1ZKaWRCL2JYb3g2eU5GOWJ5OWovCitLYm1wZytrR01QZWtqc0oyMkk5Y3YxWWFMUjB2YldkcGFFWUluVlc0MDl3YVVraW5JSlQwSVh2bGZlY1JqNFFKCitjaTB3R2NudnlKUDR0b051V1Bwb25XaStiajVUZkNON1NWeUxHcENWcHpLQ3BIS3lCODJrWWJ5VDhXc3Bna1U1CitzNVIrbkxZY3hTOVRVR2kzZDFuUnNFN0Nndmx6bzJNcXpCT3Rmc2NqVDRMQmMxOXJDZjFWa3NCc296ZUtCdXNnCiswTjJIdlkxMzdpSkNqYVpFZU9DZUp0M2lNdDdDNFh5ci9ueFJuUG5lNkRGVVRhejM0ZTdPOFZlME1kRk1vbk0zCitXVFdkendNTW96Y291RU9xVkJSSXdWY1VVb3VNUDJlNk9CaENVb1J0S0ZyK05STUdzblNyRys0UlJkS0FLQjY3CitPdS92Z29FQTd5RTJuYTlXKzVZbStWSSt5bk9ITE9FMk1DRjYza05yS1BnZ3hDd2RVVElGSllhN2tVVnJYT05wCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGludGMga2V5aWQgOWFhZjU5MWVlMjYzY2FhZTEwZjU3YmEwNGZhOGQxZGQ2NjEzZjllYgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBc29PYVNSL0cyeHR2UUFBQUFBQ3lqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE5Wb1hEVEkxTURVeU1qSXdNekl4TlZvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0T1VGQlJqVTVNVVZGTWpZelEwRkJSVEV3UmpVM1FrRXdORVpCT0VReFJFUTJOakV6CitSamxGUWpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSTRQcGNYSDRvc2IrL25nCitKQ2lwTTJiK1JpbjVpU1lpWTRUVVBMMWdUOXM5UnhEQncvdE15MTF5ZEpVTDNQYzVEOVhaV20vaTNFYm1PcWlRCitQcDNMZjRvdTBxazJzVkFPMElMbUl1WWVpRzJlQm9yakhLVllCY1ZPYnZuR2ZTd3JONTBYWG5XRkR5Ly9IMWNJCitkRkNycHpsVmxlSHhJbFErbGgvSHhZSlZjY2Z4YmxUd0RQeGZXTnFQUUVpU0lMem91aDhBOHFYU3d2c0xMeW16CitubDdncjhkcElDYUQ1SmJZN2hPOW9aaDhRR082Y2hLdmxsWEh2ZlNXNVlxYi95a01rVFVBNkJkYitIUE5jZk9UCitDeWJDNENlVXl3SGpZcjQxdldYeUs2T29tWG1hNGRFZ3ZnNU9xdXU2MDNxWGpPcDBDdUxTQk4zYnpnYmR4WitPCit3YWE2Mi9aZkR1Nnh5UVZweFNic2FFTGg3YklsYVdmbThPM2tqZFNHOU1yaWRQUkFLL3JGU01DdlpBZUhYZ2tqCitrY0VQQ0s5OWtwazhkK1Q4U2ZkaWo4MmxxSjFscS9WRmxUcHVpa0I4V2UzeDdVN0dLZGFiY2g1UTBFQ0JnLytwCithdmpuSGRaK1IyNGJadmUxZE5KVUQ1T21RQUFRUFBQMDFDMXpiUlVvZjRqUk1oQVZQTTBRS3dpTHUwazVzK2xkCitXVTZFYW1obUs5K0x0UlB3TGFVcHNPbFhOTk9QUmRaWjA1bWJJb1ByVzBzNzJNL1pyaEpYMTJxNEJqUkVlNVpuCitDWEtDSVdldUt1TWQrYm9sK0Z3enBnVDN6bGJ3aEljRi9pd09DNys3cWd5NDJTempLV0EzK1BwMFYrZFZVWFVQCis1dFgyVWUwTnNTOW1lckVkb2RhRUtDVDdDVGZmQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRELzl4RTZtWHlyeHBLCitXYVJNRkRzUC9uVmVlekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBQ0dkS2pZWXNYbzVFQllHYmNYT0VMQnRSamJISFpramVkMGZrL3M2K2NECitPN2JWKzN4TUpjZ0RWSVFSVjBWd0RqOUZZWjNFUnpweDFLZFJ6UjlWeEdwT0lPR0h4UWo0MVFVTDZwaFowZ3pkCitPNW9rdW9GeEg4RmhLL0RkbkI5NzFjY0o1cVl0VGgzUktyNmovNW13VnVkbHJxc2FYcjRoMUc4VnAvTHNCQWlqCithelZTWURaTVdGUFdCMzVWQXJ3YUNib1lEbUgwVVR6QzdSbjduWjdweE00UjB5eGZmb3ZabWRqVXQ4cG40SG1qCit0NXJPRHRwUGNjZVRqYWFWYmxzZHA2VEVIUHR6eXZESnhINGdvZjZrWUNGRkNvWW9xVUFXeDlZMzRtaS9mZ3dtCis0dU8yK3l0d2VnUG9XbW54alZJdHduZGVCVFlUb3EzK28yNGFUTlpJWENpY2tzVUd0NXBucGRZaFFDOUZZZzBwCitSaU1VN0RScjRadk02MXRqQTYvQ1d0RHJJajRxOEhCWjFGd1JjbGhldm9oNk5rbkpnT0M0TWd5NHZzK1dBblpWCitLL3dmTkxubjkxY3hBU1RTWGhtT1pXakJRMjVlM25tTERLZGVOb29Zb2xhZ2x6YStDeS9RSlBIVEFBRzZQTkgxCitlZkNKUkhkcXVsOUgxWkJXK1Zlay82b29ZUkR3Y0RvMmg5aHNvTG15NFdLLzFidmRKMWh6VGFUU0FJRmlkTDh2CitHcU9kRXFzV2pxdThTZXlJM21pc3JURUdESEVtM21kNndOUkNNTkNXM20xN2JSUzQvdGtCeWlTWVJBM3NScEExCitHc2hkbDdXTExRcURnelBXRFFSc0JtcnpoQ3p2RndiNWlJVUUzMHVvdUxXaXMvSW43R3ZjSW1WSC9NNGpYYXpICistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGludGMga2V5aWQgYjA2NmQ5Njk3ZjVkM2EwN2I0MjVjMTBmNTg3Y2NlZWNmMTZmZmU1OAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBdkZLNjBlVU9VNGpKQUFBQUFBQzhUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01Ea3hNREU1TWpBd09Gb1hEVEkyTURreE1ERTVNakF3T0Zvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0UWpBMk5rUTVOamszUmpWRU0wRXdOMEkwTWpWRE1UQkdOVGczUTBORlJVTkdNVFpHCitSa1UxT0RDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBT2tuWFhkSVUxMjAwL3pHCitvRzVHYmdyM1NraGdKL001TTlFeTlqYkpFUElqN0pkR0J1VW9pa0p6enl1allLZ2hBVDRYQTNoN1VmREhKbEczCitDdm5qWHlaTUovYUxSUlFLR2xxRks5dzBlMlhtZ1JDYlRSQkNObTZGaWVyZ2xBclBubTJMRTNTY3M3UjBQZUNDCiswNnNtNEpMT3haY09KTVZHWXB6a2lha3U0NTRIL2NnTWE5OXc2bDNKNzNpZHd0dUVaSkZRUFNZQm1meXlaemJQCis1bzY3RHlXSXZEditPaEpXSUNQTE92TXU5cFV0bWhJQXJLRFZmNnd6alZDazkzbVFXd2N5d0pkNUI4d3JxazltCitIemszZW03MmxlMzVqUjVVK2ErYmhzQ3NVR1VxR09FVnc3K2FYeXMrZW9YYnN0NVlTWTlRODcvYkovOUR1cldWCit4bUpYRitvVDFDdFpJL0pGMHlZQWRIczNSVnNFTmFNaVVDdFRwOGVFRk9nUjZPbFJsLzlGNWxTQXBKUUlBdVMvCitaUXlGTG41WitaQ3NNU0dvZjdjdHJDTXdNbTFGUVhJSlNnZm1PTTVxdEFGUEdrbHk5cTd0NFI0ajU5akNOTGp5CitmUUI3YlZvQndGU0x4c3JyT1Z2MHJLWHB2amV0MXFLUUxiOWZLNER5QUtCazRFcDlHenQ5YWJiaFh3VU1KZjRqCitsdlBEdm9iY3RiLzB1a1BHTm9UdmY1N1A5dlc1RFB2elVWVzErbml1REdRSEI1TC9RWis2a2hscVdoWUxCMG56CitySnV6amd6cjE3aCtZS21XQkFVRmd3R2owcFhBZWRrZytWYVcxMk84aTI3azV6cEJHRHdTL3J4SjhsdHpCZVcvCitrTTd4MTFrZERGR3FhcVBKRFMvOEF1R1ljOEVOQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlNialRaVmMvUzB0K0JuCitKbmIwZjdKTFBEb051VEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGRjJRa1gyZzIxcEJHNUcrdUpzTUo4Z05GdzVpR1JKTzNqamYrK1h2bWU1CitFcmI4Ky9kYzRkTGlaYjZXaHNzZlFTWmF2bmtCYW5zMVZZMktpbW1QODMzdVYrOVBtN3lZOUc5TCtDUWNOM3lYCis0Vloxd29hbzNZYnJ5QUFsOHltRXgzWVpzemNwVHFTTnkzY0dJMXQxTWUvY0x3bXFCL1I1K05wMUZFU2pyRjgxCitwNzcwdS8ra043c095Z3I0ZCtkOXNhd051cVN6TDl0b3VKc041V3l1VHZ1Q0V1QXkxczl2UE1UWE05M0dnMEFVCitORjFJZGdjQ2UrZFR4N2trU01UbW0wNkEvaklWQWw0cEovQ1dOL3VXWWlNQk1BQ0RrRWhqdkJTN2dmWlJTUU1SCit2b3FlQmRQQ3VNSlpLU0MrY0dGZ0tqWlFUQWtDM01zSCt6cGNjTmsyeFRLZ1piWFdCeDh6ZFpwWVR6Rno2U3ZUCitBWFpiVW83MW41TUpEUDA4b3FuT2pDRlpibjVyZEZGcllGR1NwWFkyQ011dVpzd3FPRUhMUEIxN2NCOUZKaVh3CitTbzJweDFtMHpJYWdpaU45VEhHMzI2eHpLNlIwVU9YQk1ZNHNVWmFKdU8zSDZ3clFLWDBNcTdTQ0xRRmk1dVFuCitXMkNDa1RMeXpvWnJGdHA0bHRxMlV4L0kraW45TVJBajJGWllwYVFVa3ZJTUpoeHc0SjRHdVVWTWF3aHRqWkFECis4d2JGeUNvTUEwM24rQ2NsbVpSc2duUlFMN3N4bTNTa05CdkNNSENSVEtOc3liWXZsRTNBc2RSWGlRbHgxcXdTCitNMVJMV3lKR0FjV0FMeTA5L2JpY0FqeVYrRWZvNEdLR1hsOFZ3NUNLejRFc2ZPWld1ZHFUSER0SjRxOWdYN0F5CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGludGMga2V5aWQgZTcwODNmMjIxNTJhNzQ5MmVjNTliMGM0MjQzNDM3NjQ4YjE1ZGJiNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBc3ZPZWc1emtyeElsUUFBQUFBQ3l6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE5sb1hEVEkxTURVeU1qSXdNekl4Tmxvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0UlRjd09ETkdNakl4TlRKQk56UTVNa1ZETlRsQ01FTTBNalF6TkRNM05qUTRRakUxCitSRUpDTnpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTTZTTnhKWm9EWWtSMEVNCit4cDJValBsRmw4K2hzVXJiZGp1MHZhLzBrSkQyRGV2KzRWWVgvZk5xYTEyZldBTHdvYW5CUTBIbHkxN0dPYThQCitSWWtIUmpJNzNYNjZXMzdCMVF2UUlFbDFPVFpuRUxuanduWlpsUkl2OGZEaTAzNi9wMEpiWVlReVdqdlBXUGpSCisrVDByOTB0QjFqRStKcHFsYkdTYTdXRDI3WDg3blhHbjVBbUI4MjExVVBOZHZPclppRjFOWWtQQUUwNEJwRnlNCitqV2g0TmhyOG4rL2gvc2tZNDU1QllxM2tPL09hOFBoN1dFeFp3UUhESEFxVzl3RkNuZEkrdURpVTJsWm5JUWFCCitYYmQ0YlYxeVhacWliWGRBb2VTTWoxVmNFaW9qZXhDWEZaS1F5dEkzRklNU0xPbkhzTXdJZ2x6NHpsMmE0bFAyCitrT0ZZbHF3Vm1SSlNQYnZNR3pTcGxRVWR6NkVVQVFDWlBYUVR3T3AyS2lRS1hVSUNCQXFBczNEM0dSK1lCcEVUCitGZnR2THJuZE5IVjRmakNrZVJxZVpWVDVRdzY4MGJVZGRTWTd0VWZTY3M2UDBsOWd3SkVMdlZvbmVJcCtaV0ZmCis2NFM0RGlCQkZMUUxERzZ6SHFCZnE2TXpxM3VwWnJ5MDIxYng5L2MvWnkvNUJnOXA4YjBMNExrL1NXUDMydHQ2Cisxc3lReDVQWktmRkt6bkpuQ2ZxWEN6ME5YaDY2aVBXZ3V5cU5aZzhaY1l6dEtwaXZ2TWJiUzlzMVN3R0ZMNnlmCiszZ2ZiTkp1aEluSVRxOW14bUVSYytoNkdRNkNWUFQ3RDRQU2FnVlYwalBNeGFHYiswZTVKMXRkckp3MXFyYkNqCitNdWVNZys4cHpmMGZmMzVDVWNPcG9YczA5RXJGQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJEeGNOVFpIcytxMjBrCitYdXFhT3hwODJLYlJIVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFJVXZBQy8vYTZoVGNvQ2ZDeExrSEgvT0ZyWjhlVGhLOUdOR2h1ZGJGU3doCis1d2tyQ2N1OFhMUVFCTjJxd2lodXFIb1djSi90Q0N5QVkwSGNpcjZBU0NJWEg2eks2UWtKb1QzRUczY3NKdzUrCitGY1U2K1FCYXgxd2dmWGkwbmRocmJoQUMxNXc3YnF6dFpKM2UxYmJ0MHFib1Jia2xFRkpSS2FsRVhsbnRYTTRXCitKQUgvOFdNTVViWUxHMmhkOWhYbW5HWEhSYm9BQWlvUVhKenZUY0JHY296WnBJZ3J4MVZRVTJRNEFRYnlsZ09OCit6OGQvWGJYOGJZVzF0c1JoMUhkRWJJL0I5SE5uVFdETk5BTlhod2FZWjNWdkpHL09TTlI1TmgwS1F0Q2tJNFVkCitmTnpnQ2lsclFVUjFVVVhJTjVQV3o1QUk4bjlkYmxUa2l4WmRHYVdHdGhkR3FGZTIrb29VV0NoVUpZNDZzRGxtCiswOWQrakFCZVp2ZUcyeitXRGJ6b2YrZnpWMlpSSlQzR2w5dXJUcW1KSW83R2pHeG9DdXh1ZGtyVWluWnpzSXZsCityUW5GYmw3VmRObGZMcmlUZVB5SjJtYjZVOGJQaUlpdStla0hnb0NvOFdWS2hteEZKTGxxS2lvK2ZNcTVCQjgvCisrR253M3F1NzRsanlJQUljdEMvU2dEWDJFTzFWTURKNFVtQ3R0TGE2NmNxeFRTQSt1TUN1R3RPQWVuUjdVWkhWCitQYmtXc3ErNTZaT01VMXk0dG02MlVIZktZOWQzeVh6TlJ5MGhxa1ZSTmk5L1dtNFFmanZtV1dQZG5NUE85Q20yCit6UFAyOVNFMVdwaXRzUm9hZjBPWUVDclFYZE10UjNsY0pzbU9VUUljbEJmMEFBbUZjWHh5TG41cjBMQ3Y4WjVGCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGludGMga2V5aWQgZjMwN2JhMzMzNDdjMjgzYTFlMGMxNTA4YWQwMmY1YzhjYTA2ZjQ1ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBdk94MGxqbEFMenNiQUFBQUFBQzh6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01Ea3hNREU1TWpBeE1Gb1hEVEkyTURreE1ERTVNakF4TUZvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0UmpNd04wSkJNek16TkRkRE1qZ3pRVEZGTUVNeE5UQTRRVVF3TWtZMVF6aERRVEEyCitSalExUlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSW1ackNNalNJRjcrV2lkCitxQW16RXo4UWpYdzVrNFdiYVlZN2NNNlREdFZiczNRMXI4cVN0Q3V2Wm1rbDFYWUtQOG1zTVRVTnMrdG4xMURQCiszRTdmMXNTZDNVZ09zZU5OK2hlNzRLcTFaWXpCaVoyc1hGUkhHSnpqN1VVNS9hQ1hhWHFJQ1haUWhVM3pZK0VlCitHcGNNU3laMi9JZitsOUk3S2REYlRMUGI3YlRwTkUvTjJIR2w0cnN4YXZWNVFFVG5seHptMFR5VmwvVUdpY2hHCisvTSswTHNpMnV3Q3l5YUNCd3JpUGRNTWE0ckl2M3pNNHBlbmp3aGhVMWIrZVdlQU1NS0JFT1czNHVRRStrTFRnCitVcVdVT2dPZmZCNXNxeTRWc1lBMWo0QkhqK1JTZjFqS1hqL2h3bzB5OTE2dmh6YjIrczNJZ21rNmF5RzlhRVJnCitVY0J6ODFUMG9rVU8vL3prZEcyV3FZWGYyaVVXaHo0Q2dyVzdGbHhmcTNnVlBEUFdmTmQ2QjRlamxtSm10MnBCCitxQWdSRm1mYkNoVisxZDdIT2lnQVFGb3FEM0o3RUYvQTYzYUg0SlN3YXgraGxvTFB0TXRTVERkMUQzZ1FOVmt4Citqcms3SmlRdEpRUGZtVUNsUFNQZWFBWXM1c2o0a0VtRDFtUkt2NHc2dDhuQ3dESDh5M1I3TXFLU0pPSGpjclhKCitFdXNyWWhuUUR6aWc2a01HMmw2TE1JOUVHQjBQclBCeGJyODZHdDBnNWpVSHQ5a3NYSzNwMzVhVWkxWGlsSkt0CitnWThQSGxERllIVXhvbm1pdmliRlVBeVdEMGhLeE51UmVCeUpyakplUGZWYldzdWh2eVQ5OWVZY29YdnhIZXkxCitISDlaNUpWZWxPVUwvU2JxdHUzV3crVGYwM01wQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlF6NHV2ejhwSW9ma2VkCitoV0ZsVGVUTWUySk5wREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGZ0FFN2xwcmFTazZFUXBReUlFOGlIdWlCRjBmR0RHbG1mNUMyaVl4ODlFCitUeXBYVHFMbnhpTDlVd3NzOTVZMk5RWms5Y1Y1clI3aXhwcWttMllTM09XZ21jMklNcC92SU56Y2RVNk94UHVjCit2d25hWDJkME8rRHZkRURHR0p0SkN0aHg0eU5oYklwSkZTeWw3V1Q4b04zTE5ZZnduZzBwUUpsa2cybFI5VW1nCittOWcwQUMzRUZyZnBCMjYvTkhGNWNaamxCN2IrdGtKNVhzOVBqeG51S25vTnRES1pxOHVVV1E2S3F4RFFmbnh2CitwQkN5ajBrOHFZajBVTS9NZ1prazdrNFcvUXpYdC9nQnZ1bmhIaHlkWW5XQUo4K1VNWElCRTF0b2Rqa1ArMjAzCitZYXlXVzVoL2tzWFNBYWdVZFZQeHQxaXExWHhyenR0aU42dGgvZHlsN3NIMjFKSXJ2eFVSeGdPMml2M09qVWVWCisyTnpoWEFVdFJxdEJyRTNjQ0lNVWVvc0hKMVQyNExHSURrTTBDOUwyTTNmbEthaVMzZWlQaXpRSDlxc21CQVlQCis2ZHlUWjRZQVozZjZjeS9jR1BQYzV6RmlZZkd4ZENOMGhZNVVic3V5UHIxWXNzSEwxL25tSFkwSzNFZXZtN01QCitJNTB3L3VUREl6cWhVVHdYbU4zMlRpVTVHL3RSTktEcWY5WFEzbVpLVytSY21aWUViaEUvdGFySktKUzR6Vmx5Cis2dnBMOEJRMmJRQlM3T1BVZW4zTFNiMTFkbW9Iby9OU0Y4UFlJMjlWQ2tpVlFoRDFVL1hwU3FGOGZrdVREZHNnCityaFRldlV3WDR1Y1lPR0NZd0V3d3FQbVlYeFhCenUvZ2thc0lIQnlTY3YrdkcxeHpXS0pRb3I5Unp4WGptU0xyCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIGludGMga2V5aWQgZjZkY2FlMzgwODMyNmYxMGE0NmE2MmQ1NWZlMGE5Y2JlODQxYTNkNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBdklOai9KbUZjL0FwUUFBQUFBQzhqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01Ea3hNREU1TWpBd09Wb1hEVEkyTURreE1ERTVNakF3T1Zvd1FqRkFNRDRHQTFVRUF4TTNUa05WCitMVWxPVkVNdFMwVlpTVVF0UmpaRVEwRkZNemd3T0RNeU5rWXhNRUUwTmtFMk1rUTFOVVpGTUVFNVEwSkZPRFF4CitRVE5FTkRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTDJUdGVteWxXbGNIWWcwCisxNloxZkkvZklwNXpRMUdJRTY3dXBLYTZwMWE1Vmw2K1h3ZVdCbGduSVExM0syc2x5SFZ4aFU0N0VtNnVJOGN5CitoY3Q3ZHdnRXVReXA4cWNwL3FQdVJqbUswRHpaLzBGMjhKR1BmZi9kWnJVOUIyQTJ4Q3BybnNUUW5NQ2JvUldrCitQc1RsZVdzMCtybzh5LzVES3AvWHU4bUVYY0NxVDByM3ltTTV2ZXp5UC8yYUxLblFpRDRjVTFjUFdoQklPZ0FoCittUWRBL2dpbWF3ZUo1c3lmbzZoR1RQbFErRVBpclQzeG1DeEsvL0tpc2hDZ3JMeE1IT3lySUNxU1BwREI4RnFlCit1YzJtZ1Jid1dWdnVxcTBJSWxnbHh4NUJ2NkZ6QW5OZ2g1NHpibFQ1d2UwVzJLRkEyV1RGV3VUbG9LN1dIZ083CitqcytPL29nUmJlMi8ySWRRRUl3ejR4ZXY0TjMzWTlZNDdDd0cwYUhiU2x5dFNLRFhmK3AyY2phV01iUVhHU1JyCittbTUzSGxaYnJma2grc0prVjVHZTNYOUtKL1ZYbkY4amdKU3AzWk96QkVONDFuVkNNS0xZWFNjZFZYODJwVHNICitTNWZLd0pjR3gvTmx1ZlZnMTNNY255SzNrSlRhZnA1ZGg4bmRhWTJKZkVkbTRBeHMzZFdqbXNpVzhHdzdOUXJECis0cUtmTGVSSGplTjNUSktHd0FaQjZLYUI2YlkvMEkwQjZrU0llM2dxRzN3SUUrUXdnc0NzQkZTbGVBeFd3L3lYCis2RkJEc1AyVWhKa1hZYkN0ZEdwZ3NDdTRtdmtOK0U2bEpaeHRtVVY3TjZmM25PNjBjeGlRQ0k2dGZ3QUQxTU5XCitHMWROM3J5djE0ZWRLRkMrRENNZzFTY3ZicHZkQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRnbkpyTHJrTWxjbmhOCit0czY1bUtCYUFyYXdIREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFFWVBBWHpRWklXNWpIc1dpZnVack5pV1lYUytNSHFXbTZZZlRNY3B5VUU1CitlK3lLRlB2bUcxNWFzKzZDNGc4dTJUY1JjK0ZpenoxK1FucWtXUVc4NmlRSmoxOElnZHhmRWpvalVxQmN1OTVjCitON3JKU0s4cG5YbVIxdFR1RmtCWkEyako0S0x2Y2w4Z3FMdTR6T3gzaGdlaUNYRTNBNjRZenZqbTAraEJmKzZnCittL0xNYUl6ektSeHFYTFovcjJwZUUzN0lyZ2ZEUkNLUnk3NDB3L2tCUVZJYXVaRndNY3lIVjAyUlY4MnlFZHloCitpZE9lejhYekJ4QzNBNWttdWxySUV5czFWUWk5OGpub3NSMGZnWHVrc1JWSGcrSGNsUC85by9OVGJiZU56WWNKCit0cG5kUks5cU4waVJhenI3ckM2L1c5QjVyRkFDcThtS0kwbFJqKy9RczVUaEN6QTBjSDZicUhSR2xQZW1kRC8wCitqT2x6Mlg5YzdoL3FkSG1LRXllVnBGYm1abWNiK25UYzdIQnVCaTR1bWQvcUppZTF3Z01NUFR6VnhVK1ZXcy8vCis1S1ByWlFOWC8wd1VHUE9naFYveVA5SFNGR0RGV1lxamNkMm1SdDc3MDRkMVByTDBEOHcrQmpPcktZUC8wOFNPCitmbjlVYjB3cElZVzRPeC91S0wzekZpVGZWWVhtWjdsNjAvaU42ZHlmRGNsOFFZNlJ0VmRNWC9hQWNlZWVhSmZXCis4dTVJT3l5M3dKdk8wUEFnT01hN2lmVDVIZ3I3RU5ISk5UZFNNaCtuN2x6QWNhUEoxdlEwUTByWG5yRm1qcFJqCitmK1ZZclJLZlMwZDVodWxYU3RxeURIZ2djYnZBMEtZRGtka2lkNlcxN0UvU3lCVDRyQ2l0cHRuNVBOUEgvNkEwCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIG50YyBrZXlpZCAxNTkxZDRiNmVhZjk4ZDAxMDQ4NjRiNjkwM2E0OGRkMDAyNjA3N2QzIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFuc2lhQU50ZTZGUFFBQUFBQUFDZXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF4TUZvWERUSTFNRE15TVRJd016QXhNRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVReTFMUlZsSlJDMHhOVGt4UkRSQ05rVkJSams0UkRBeE1EUTROalJDTmprd00wRTBPRVJFTURBeU5qQTMKK04wUXpNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBVZmNFMXhLUjNWdnJXWFEKK3gwb3ZIZWNMbHNsYnRVa3ZEL2E0L3B3WFRKWE84NjNxQUtNZUNaT1hOdjFmODhFNWwxQjJkdnhhK1hDclZ4UWkKK0ZmQURoWW1zd0dyUWdpL2d6VHJiLzBvb2svY0FkRG45eFA2c2Flemk1eVM2MWVSOHhRdkg4UXQ3eEFqeDN3di8KK0V6b3NERHBIUVFRMzJibFBGcFpRNWtNbjJ0aE5vdUxaUi9mQ29BTHdJTGtRSXp4bkhLUlVNWWtJVm5iUDRtcXUKK2xvSEJXWnZHbU56ZjZuMmYrMWRkN1Z5Z1BSdnBubStvcEpsVkxDNXFlcDRlalpneFRRWDB2Tm1Uby94aUxaSnoKK0Fhd082UlNsR3RDMHB5U05HbnNHTjJTZDB3MzB3K3FQd2NDYWxvNzhpcklMVXZ6N01xWnQ5Y2xHeGtVT282Q20KK2g5dEVWR2dkZ0pHMGhaTmRKN1NlRGlENk52Q3JNYmJmV3dKU0s0QkpvUnFrbWh4TUJYelVXR09Wc1B1eU9meWYKKzR5bWYvYlY1SUNkcHFUNGVld2hZbmFhOTE0VVdpNVdKd1dFejM1M1FNSjFQMCsrSkVPc0pZM3YrVGZ2aGlHemIKK3U4N3V1eWZMMU00bTVyMFFoR0ZzY00yK3ZmNWpUbzB2OVN1V2NqMkFxM0dPUzkyQThoUmtrYmZTb0k2anJXNEgKK3dPRHJTZEhSbjMrQ2ZycVNTWXVjdng1MGFWZU5jQSt5QWUyaytmaHlKTFA4bUJ2Sk9KNit6S1YvS2FzMVV5SkYKK1ZIeWFmTWMyM2JLTFdleG5RY0kzRUxwT05SVnFRaFlEZXVLbWt6L0FEZWlUNDlxaVB1dkliOVBPSzJ1cVkrQUkKK0pSNnlhcXlqYUNXOEZ4ejZXdDhvUW9RUjZoMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZGSjJ4ZWlTQnJEL0pkdG0KKzFwT2RXcEJWelJWYU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVjFKRjhMUzByUHpQRmNSTXdybUE1a1N0Rm1LV3pnRzZyZkgxQWFQQU9Ia04KK3RXcUdQU2ZGR0VUMnFRT3MyV2hQRTc0Z09qbVZONlNUYm9hSmRPNURxUFk1d053RDhJVXBubWJrRWNxV2dOVUsKKzR3MWU5SDJvaHNFeUwwYnozRVN2bzZPNnpPZ0VwaHZGaVpKYVdQV2RNQjdzNVpnS3pncitGc0NZdkNGYmIvMGgKK2h4NGhwdVQyVjkvYmczMGxGOHl5Sk9hbXd0S0M0OGFHc1FyTFMwM1haS09NVWwvVW4zNEdXakFNWUlXcTdEenkKK1lNY3pPM1JNRnIzeVFocjN2RWMvTTFHb2s5K0NKc0J5V1YzbkVGOURrUnVNSlBiUWZMWWNjY3lkQU1DcDd0Y0EKK3NXOXl1dXN5NzBwTXZnZWV2VDhvVUJxU0RyQkw1L1RPaUM5cGFoMjRNVW13ZU8rVjV2OStDMnpMN01VaHFma28KK1g4M1pQRHNSLzdLZ2hzbFovbkNETlhZbFU5S3JIMmtNNDlEUkkzYjhCNXE3YzJzMkdaNW9yZXlGUjA4T1RvUG8KKzM2OWhJekxHd0crZGJkMEU0YWZhaFFtd245RFhTc0VCVzhSOWNKa1BSWjgzMW9jYXFpbkQ5aS9TblRzbmpOWUMKK1JPTUpYN0dIa0QzS1Fib0xSMTFNcGVkS0wrV0lQazA5MzZORzBZUllPQnY3ejRRRncyQzVxYzhxb3JDUG9vaWIKK0htdCtNS2R2a3JEc3c4YldGeFFmUjBNVi8xWnFCajNtR01kdWw5d0p6YVdETGdCaUZKWXJJN0hWRG9IV0dldkwKK1ByK01iSUdwLzh4WW00QnRGejY4ejlNSnp1YXR3WmpOOVdqU0ViZUpOTEg0NjI5QVdBRy9zN1EyK2RzVExnOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgbnRjIGtleWlkIDIzZjRlMjJhZDNiZTM3NGE0NDk3NzI5NTRhYTI4M2FlZDc1MjU3MmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWHd6T296clRHdmUwd0FBQUFBQmZEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1EZ3dNakUzTlRFMU4xb1hEVEkwTURnd01qRTNOVEUxTjFvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVTVVUXkxTFJWbEpSQzB5TTBZMFJUSXlRVVF6UWtVek56UkJORFE1TnpjeU9UVTBRVUV5T0ROQlJVUTNOVEkxCitOekpGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEzeWdqZGRBeGFIQkUvN2lMCitXL2N2Nm16QUVMKzlNMXc0RlAyaTNhdDNXNzRtSmhOUnRtcnFhTXlOdFdPQ3Z1MndvVVZYS3dETFQ5ZEM4NmdSCitHdGlnSEtRTFd5clgwK0NpOTVYRHdxUEF0d2pjTisrWHdzVkl2bkdNRVBid0FnTld0a3UvTlFyUEFyOWNqY2dCCitUQnk5akdNaGJUekE3eTZTcFZUZTRETWFwL0ZWY281TDVlcjZBQXNORzBqSWdVUjYyN1lINElIK1Q2MllneEYzCitVdWVEalVMcEpSNlFVdlpPeUpEcVpmL2ppY2xuc2tIa0srRWx1LzdPZkZEUm1ZVEZkYWhBUkVhcHFFRGR3QVFmCitVWGJiTXF0eC9oU1l0UlREVWFMWThRYWo0TldIUWVSd2daejdpZHRnMHBiRkljTTlubXRHYmNlcGVQZVdVVmRWCitvc1M2cFppL3Rwd3FOL1JHZmJXaGR1UGlUWGFMNnVqakFCQjExZUU0bS8zVUs2c1Q5RWYzRjB2K1hQZURGYVVvCit3c3FCT2xxQ2ptUC83TFphTDgyR0s3WjcyVTNHeUJORHJjSHpTeWh6ZFE4VFEwMU80TFZiYkVvcVhBZHJsckxsCitLT0tlbjBBM2pNVElBYnhXOVNQU09xdFNaMnprVFJZa2pNSVhRSEFmQzUwdTdpSkxzVVdiakowY2NyVEdyb3N0CitrK1UzMXMvbm5VemE3bDRXcno1Mk53Y3VxNm9DZlpUNVNIUWdiVE8vK05GTm1XT1pCNVpldzFKSVFhOXBJQUNNCiswT1k0bGdmS2Jrd1lWQlBnV1dUSTlHeFdCRGVQUnJqd2VsQUNpYkk2TkkrQkxGVDU4clhIMXQvWFVDcXVGRmdvCithODNYbGlBRzl4dDNLYmRQWkpOb1NMYzdtMlVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQjQzOHFidVErT3UwN20vCit6TlkvK2JZQmROcDFNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVJjSUw2WWMray9hbW1YNmdiRGlZQ2VEYWdCdGNKdkl3WExDZGIyQnJ4SVFSCitWcGY0TTBkT1I1N2xZL2lLZHNMYkY2c0NIMWpQM0l5Q2xDQURSdnRoa2tzcktIb0lGd3pOSUxxTk4yUnlEbldICit5eENlRldVcTRYdWhIRk1OL3kyTE14QTVjdmVmYW5qQmphUW9vZklVd0lwbm9yN0ZMTHU2VkczK3pOank4ME5sCis4Snd2YXpaR1NmRG5UeWFVZnlCL2FJYnNqa3BYbU1BWXlRUVBPRDU1ZlhxQUNNa1hmNHYvUHJJcmlLbDBzMmM2CitFRXBScE5tTWdlaUs3Wld6bi9FWDFmSnBVdWprN2xOOFVzZ0xUb25aOHZFdXd0eG9YU0pITERseW4rKy96T2hHCis4OS9hVHo3MGZWK05uTGJPakNISzc1Y3FjNUM2cnRYeHlYZHRKRkREc2psdTFxMHVEMklkNkVaaXNacVA0RWdDCit5MjJsSlppb1ZHYUszKzFjb1hEQXlQZVllZGVXY0FvSkhuQ1E3bWV5QmFKeENZa1JKOFhUNjBYOUlWVHd4R1pwCiswUzhYWXVxU3RHNERtZm5LY1ZIbWN1QVRRNWN2ZWsvQUVqUHJudzBkSnkvcEZiODVEak5WcWRIeVNIU1hIRFJnCitzRVFpODRmODF4TTAvd0FRelF1ejNtZGRmNXhKTE9taWRJemtUT1NTVHNSSXUvNlZuNFR4QS82MVAwTnpzRTRxCitMQld1WlI1R2k0N2NZZ2U5T2pzZ2hNU2ZsWVVZU0lzclhGb09xWVVRaWtxbVk5NkM5dFRCcitPRlI0UTdkS1lECitRM0ZIdVVhbmI3dFhTZ0tMYkxjbUc3Rk42UFNUSXVaK3p1cFpwQVVTZVZIL2ZPekJiNFY2dGJJTlFmRkEwVUU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIG50YyBrZXlpZCAyM2Y0ZTIyYWQzYmUzNzRhNDQ5NzcyOTU0YWEyODNhZWQ3NTI1NzJlIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFubmxGSjd3bXJ3K09BQUFBQUFDZVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF3T0ZvWERUSTFNRE15TVRJd016QXdPRm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVReTFMUlZsSlJDMHlNMFkwUlRJeVFVUXpRa1V6TnpSQk5EUTVOemN5T1RVMFFVRXlPRE5CUlVRM05USTEKK056SkZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXRpKy9WQWVydkZJbXZ5d28KK1N5bk9KbW82Q010eHV2Ry9lMm9aelYwOStEdXQxaUJDamN4S0lyTFZNdDZYS0ZZRk1PYUlSRm84QjlSN09pc3oKK0ZLN2gvTVhZVHBEN3ZkRXFuQWczZ3E0am5uYktPMExLRWFrZzFBbkpvbUFmQmtNd21GeFk4ZlI2clNiSUtrUEIKKzV4MTBDQUFXSms5UFQ2K3daQTNHZG1GWitoa05QZ1FVZVUxTXZ3bWRaMDU1UFZkdzN5ZTFORkFEeDM1aUw3R0oKK1hBUFAzSW9RKzdHeldVU1pDaDZaTWtmWW1lZlZ3eVl3VTAzeWt4cmd4dEs4YkR6OXpkN2xlMXl1bTAzb2dMYTcKK1hOSGlDSWxBc29HRGRPdGRTVzZCQWJuS3dsUFBtWWRMRWdSajJQVHpONXNZRURyek01OVdhZGkrVVhuajFKV3oKK2NNdkg3b2xUUy8xdDh3cWVOM3dIQk80aWxmcHdQOHl6QkJIZ1ZEMVlHSjIxR0NSdXJFL0JLNVhEUkRVRUZLQ2MKK0x4dUVyRG1TYmxwQWM5Y3g3dEc4OWxBN1RNeVF3Zk4rS3ZkNkxIRkI2WTlkN0JmZkRWd0JzbXlqL1RQam9JaU0KK2JTWGxSbGlkbE00dDZYNTVYREYrMm1pYWt2OWxUVE96MUhNUW0wU1l1VWl1QnUwbUcrVHhtUDNXZWxRcy82K3cKK0dwc1c1T3BxZjlDbzNtQ1BZWHdyQThqTFBxTDVOdkVvM0cwWE1mYityQWM5dnRTMFFXczdVQW92MnBrSnFKNisKKzc5WHkrcHZ5UDl1OFowRUJHQWNKYzMzbDhpblkvbTIxTmdkTmVQbHZMcm55Z3VoTjJkWEJsUFRsVEJlUHBIOUkKK1RvRDZvNHFxMGN0YlNVUm9HdzZVcUtkOVovMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZDcXNDcUJPNG96TTBneWMKK2d2ODZuRVhaNGRPaU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVFdOcEwyOVpIYmllZjMvSjZHUE1tL0NMaXZBamtTTTdOdG4wbW9HV0lHZ2kKK3dmRWJGZ0FjaGpNbUlVSzd6ZExwbEMveUE1YkRYdHZoQ3BBaFRxN1dOMXdwZzlWWTNsT09lNWlaRzRGa3BlbFoKK0pCUTFWaU8yOG9xWkQ3UTZUVUNyWEl5VTlYaUU4Y2FlZ2NrUXB6QlRqeDBZU2pkUXBjbE5WYnVXTUF1anEzQmYKKzRoUFVQN0NyU1NIcjU0RFRlQnJrbWlobUw1c3FoU1BvQlhqMlR4WmRDaVR4VFgvRFNUZEk0UG81SUd2ZUZqSmIKK2ZQWHRCNTZVUWhLWW9LeGhDelRlcGR2VzRUV2RjTnFEbmV1Znp5RXZEbTlTWWJCQzdUbVMzU0QvZzF6dk9TRlcKK2tJeWEvR25aMWdWY0lSSDQrT0dHVThzZXZwQTVsSUMrMnBuZ1JyVnBmaERkbzBCMXZFT0NkeE5BV1FFaUh2eTcKK015T1BYYnl5K1Fyek1sM3hjMjJFWWh5SXZ3dXFlTEhCNm1paXFRWHFQeVNZSzRYamZvVjVoQVM2a2JvNzNoQTcKK0I5M2V2cTZRNlBneW5URm5JSFg3VlpMb2ZQREdORm50YkJyZEZxbW9JbG0rYmRVNlBPRU9YN1lIN0s5Wi9OYm4KK2xOMlU4WWwxVlI1SkpSczhaR0szRk9LeGorNVQ1WGROa1VSK0llS2tLWTVaMDNyWFhqdzdWMVQ0dVFyalREVnIKK2NwY1h0bnJzcWFQSGNETEEzUVNLWnV1Ty9ERmNsbTVPdG1KaWs2eTd0R3ovZTBVUGVRRVVJOWJPV0JOZEptYXMKK1NaQm51VWdOdVE2cVNuQ0VOajZPWnV3MnptR2crZnFidStoZ3ZIMHFSRm5wYTdIYmh1NTI1ZkVSeGNjY3hjbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOQ1UgbnRjIGtleWlkIDg4MmYwNDdiODcxMjFjZjk4ODVmMzExNjBiYzdiYjU1ODZhZjQ3MWIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWDFKS3Y5NDRiem8yZ0FBQUFBQmZUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1EZ3dNakUzTlRFMU9Gb1hEVEkwTURnd01qRTNOVEUxT0Zvd1FURS9NRDBHQTFVRUF4TTJUa05WCitMVTVVUXkxTFJWbEpSQzA0T0RKR01EUTNRamczTVRJeFEwWTVPRGcxUmpNeE1UWXdRa00zUWtJMU5UZzJRVVkwCitOekZDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF1TTBMSy9EM0FTVkZLcTFkCisvVUlQNHRSWDlqWUdNaUR4d1JUVEZ6aWlnNUVRMnlYMS9QTGpkUkVhd1RMUk0zUFJzdllmU2ozWDFRK01rMk43CiticDdVNFMvS1EzU0VhQ1JJbW5ucmdTUm9vem4xWTJOUzVwMmNmOFcxdldhemtKUUtpcWpVUmhsc0hKMkROQk43CitNdmtOQ21sTEJtdVJrbmZnQ2FpK0hxMGFNV2U3NlRGMFpXUFY0bUtXU0hvRnRoTit2VmJqWElqdkNkYUk0bnhxCitFRTVVcGlmNWJseVMyNUwzbkk5Rm1tRmxjb1NjeFJXMWVXZ2VFRE9iQjQyemk0Ny9TUEJLTTZWNW1NdzFnSUE4CitFR0pwdThHMVBDNHJVZWJKSXlVb3RQcDNBMHl4NTNjUnlkSG9xZUxYZWJWS1FrMzZvNEROYnM0WkF2S2R4SVZOCitEOFdxbk9YNnRsdEhPZ2h1cndtUVJmSk9PZDZEU1dIOFJOODZDdnVJbkxaTXVjdW9BbHh6Szdqd1lGQjdLdC81Cis0YlZrVWNYQWdDSFFkRnZnUHJ4Qk1PbENyNWh0UStHOVZ4VWp6TFRUQ25wTWNKbUNqcnFKbVh3ZGcvOHJzSjFuCit3dmd0a25pbitWYXZvOVM3OEc0VjROcm9Saitsc0ROS1ZqcGFTc3Z6YnFqM3ByTkR2ODE1RE5yZWlVSHo2QmoxCitjS2l6QkVWcTdDSG9ibVA3bjVMbXlnYkpXbUNncnJKa2xJWnFpSVRlbWZkRjNpK2tCYUg3OHgxMVVOZ0NEWmZmCisxNDNSRlJDRTNMaFNETnBINmtXbkdvdm5aQS9EcFMydXI5dUZiRjM1c2d1bTAxc0ZPeWRQYmJBZ1YxQnRUWS9uCitmTTZMMXdMcUpXRFZ5ZmN3RGxXTENWbmI2V1VDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTnJTS1c0RjhjRGRENW8rCitkVGM5WkJseXBZR3FNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWplbzZzWmdOa3UxWGZqbnJQOVBmeTdrZUMwSG1hWG5lS2p3K0VGTTFuOHFlCitpOU1GN2RCWmY1bHZYWU5SZmpXVGxFMTRlTXY5TzNOUkFKNi9yQnpWM3Z2RmRRY1k4QVNwMFJldEh5cjVVZmVqCit2dnFVUVpRTWpic1RVbVJQQXM1WG5UQm1ieTl1OGNuWml6Qm5uNUpkWTFNdGI4RUZ0SnJGRzd4SEE0L3d2blQ0CitOVHpORlJqbVVjNXRlekVEZFRuWWIwSUZ0aU9idTludHM2bmJhcGRKd3cwZEFyZXZycTJSdmlDUU84emw5b3FICitlRHJaL28xUzNVdFJkelFOdTk0RnBBRDNMaGNiaWhLVTNpakNYaTBzV0JEMHVCbXRHRkFtWXJZbTZLcXBUMVFKCitEWnBmU0dQaEtPMlNoWHgwL2pldkxWWDhuNHA2cXZNNHlyOUV2Q3FIdTZFQVhDak94b2N2OGhpb05VcmU1cGN4CitSZlo0bXZIUlBYdy9xMUVpVmJhb21XenlRN1Z4WDVieWpoblZzejU2ZmFMajhDTU52V3pZRmJJTTJuMzRmbkxJCitLYjk3SE00RE1KUTdMVFdoWDdXVERYVW1YQ0owVU1kUjhXK0NEQzk0Q1IrL0M1aThnTXNPUStGRFVlR2FWeG4zCitxMnRDdnZHTDJpQzdRWm9JMHUwYVZTT2xEVHV2RWNHczdnZVJ3MThubXNnNjZ6dVMyYUFsL0hmbjZsMm4rUXVuCitXT25DS1piSjZMSU5waENVS1pNSktwS2sySWg1RlFjNVFiNXJCbUtPQ0dDMkVpVlRUZWRCYlZ2NnYrUkxJa0RvCit0V2VReU1rZ0pOMXZnNmVwRUo2eThNTlE4cVl3ZnY4NERSNFVXUDJVSDZ6QVdPaXhBdVkzVDBRcGJHZ2lqYU09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTkNVIG50YyBrZXlpZCA4ODJmMDQ3Yjg3MTIxY2Y5ODg1ZjMxMTYwYmM3YmI1NTg2YWY0NzFiIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFucWdvTFBLRzBvaWJRQUFBQUFDZWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF3T1ZvWERUSTFNRE15TVRJd016QXdPVm93UVRFL01EMEdBMVVFQXhNMlRrTlYKK0xVNVVReTFMUlZsSlJDMDRPREpHTURRM1FqZzNNVEl4UTBZNU9EZzFSak14TVRZd1FrTTNRa0kxTlRnMlFVWTAKK056RkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTJxZzRaL0U2NWVmdnRpRkIKK3BybmFKVUJHNmpGb3cvUTdzQ2cvZCtvMCs3akRqTDJuUHBQblFFQnpnam5PakRQNHpDREFVaVRGajhSSWgzU2sKK0lpbUd4d3lxR2VBMW9SeW9XY3lGWmpld3daV0NHMisvazgrZ2VBYnYrMEk0T3BxaVFaZ0xHcEVUTlpPdTRFdzQKKzZvZWsyS25jcU5WQmNzRkRvaGxsZXY4dkNxcm9PeGdyODErTm1oNEQvV3I5TXI0bmQ5ZjB4UVlxNVdFUmJqTHkKK1lBemxWTUtCOTAyRnJxcDBuazVROWVSNlBVZUFJVkdSRG5ZdWFhWXMvdEhUTFBsR1VaMWxNaFp2V1pFQUdNWVoKK3h5amdsUW9uWW1jNVhxV3lYS1RzWUpNTUVKbzBaM0FPaHhtclVtOUZmL2pmYTFrUFpPZWVKYkZ4VDVXRDJjRVkKK1A5THRSOFBOSVZrTU0rNVJTVE52WUh3dzh5UTZLNGRnZUxYM25BVVJ0TWNocnZERlBIaWt2UEJJWU9KWEtIMTUKK3d5MG1SZWxOeGozWnFxRGkzMDZlUWo5dkJVWVBHSFFGUk1GeW5DWEptQ0NHMGxKTWxMYjE3UDNCVDkzeXIxY1QKK1hsbFhvajBmMjZLeFNCSTUzQ25MZ1p1N2xoZ29jR1BHME16QStRU1lnSC81YTJWaGlVRW83dkVleGNVWTMwcysKK2lLMGxHVlFYT05wV1B4TmlRbGhOUllvbDJOZmoxV01mNnIvWUxncE1vWmlSSlZHS2ZCN2VMQW9VTXJjcFBuRTUKK3BIeEFGRUh5T1VwZ3VjWjg2a2tpdkJnMktoVlhmcFdZSlR4WWZTUm1vdFRuL3M2VXJUSHl0bnFBWW85VnhHM0kKK2cwNUdkQk1Jd25MM0E5UDdwcld2bjhWYzRqY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLKzMrNU5QblJOblZLOWMKK2lHampXUzZaK3VxM01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBTHljUEdlckFWdUoycTU4NGl3WklQL2xWaTlWRk5QS1RvOEQ4bk0zQzU2TSsKK0JwVmNMYkVlRkV2WjVLRFRBTWhmQTVXd2lVMXVnODd1bUdGVEJxU0VFdDErbFJsZHJGL0pOaWhWdzU5Sm9GNm4KK2NWcW9YQVNnSHNFMGFtRm5HV3NrSkY4ZytDYnlscGFpVkRmNXFEa01DVm52aXA5VDRRV2psVGVUSHJvL2JhRmcKK1IvZmpPcjZXOW9BbG85eVE2WVB5V0hlOFkvL3RNVFYrcDI4MHFIWFZHUi9BbGowdXJSOHRpRWRRZkZSVnYzQXMKK2JBSWNBMUtzanNkS2V4TVlXOE16NmtMVWZidzFYazV5ZkhDSTd1N1kzS3Uwem5DSVRlbFZMaWhndmlsNFNUbUkKK3JCOFRyV2xpUS9rMnh3d3hUS0gxN0pYYUhwL09TL1RFMFl0NEtqVXZSTjZ0a1NUVnRCQWxBRmg1eEsya2ZwMzUKK3pwbnNsQjBOaVIxWVo3a2NhdG9UUjNFUjcydEZCdGhUaUFsTTRWTng4WjBTMTFvMU1MeG44cmFKTll3WldLVVEKK1RPYWFyckl0SW1xYWVicU0yWFNmQUVmOEw3ZzJNVWkvcnN1VERHY1liTUZidC9LNWRVSG9SZlpYTldDL01PakgKK2ZFd0FjUXI3QzVML1NVZDhnYnBhbnFPZ3hiaUZYY243dWNNSFRnSWxHeEhIMWh3WEx4ZnU4Y2Ruc0d6OE5nZXoKKzR0RVVRUWdrWFd3ekNRUEROaWhnbEF4UzhidXZMUjExODV3WU5LUWlIQlZYVWpjNTkvRUo4QmdhRGp3dzR4WkgKK2xOOUtMTFZqb214S2VjeVl0OFByZ2ZHSnFCQk94YjFrWFgyekhTMWdUTkpBVEd2OXduUTNzVEZLSy9lVUNEbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOVEMgVFBNIEVLIFJvb3QgQ0EgMDEKKz09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEU2pDQ0FqS2dBd0lCQWdJR0FLM2pYZmJWTUEwR0NTcUdTSWIzRFFFQkJRVUFNRkl4VURBY0JnTlZCQU1UCitGVTVVUXlCVVVFMGdSVXNnVW05dmRDQkRRU0F3TVRBbEJnTlZCQW9USGs1MWRtOTBiMjRnVkdWamFHNXZiRzluCitlU0JEYjNKd2IzSmhkR2x2YmpBSkJnTlZCQVlUQWxSWE1CNFhEVEV5TURjeE1URTJNamt6TUZvWERUTXlNRGN4CitNVEUyTWprek1Gb3dVakZRTUJ3R0ExVUVBeE1WVGxSRElGUlFUU0JGU3lCU2IyOTBJRU5CSURBeE1DVUdBMVVFCitDaE1lVG5WMmIzUnZiaUJVWldOb2JtOXNiMmQ1SUVOdmNuQnZjbUYwYVc5dU1Ba0dBMVVFQmhNQ1ZGY3dnZ0VpCitNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURvTnF4aHRENHlVdFhocUtRR0daZW1vS0p5Cit1ajFSbld2bU5nekl0TGVlak5VOEI2Zk9ucE1ReW9TNEs3MnRNaGhGUksyalY5Ull6eUpNU2pFd3lYMEFTVE8xCisyeU10aTJVSlFTNjBkMzZlR3drOFdMZ3JGbm5JVGxlbXNoaTAxaDl0MU1PbWF5M1RPMUxMSC8zL1ZES0oramJkCitjYmZJTzJiQnF1TjhyMy9vallVYU5TUGo2cEsxbW1zTW9KWEY0ZEdSU0V3Yi80b3pCSXc1ZHVnbTFNRXE0WmozCitHWjBZUGc1d3lMUnVnUWJ0N0RrVU9YNEZHdUs1cC9DMHU1elg4dTMzRUdUckRyUnozeWUzek8rYUFZMXhYRi9tCitxd0VxZ3hYNU04ZjAvRFhUVE8vQ2ZlSWtzdVBlT3p1akZ0WGZpNUN5NjRlZUlaMG5BVUczamJ0bkdqb0ZBZ01CCitBQUdqSmpBa01BNEdBMVVkRHdFQi93UUVBd0lDQkRBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1BMEdDU3FHCitTSWIzRFFFQkJRVUFBNElCQVFCQlF6bk9QSkFzRDRZdnl0L2hYdFZKU2dCWC8rclJmb2FxYmR0M1VNYlVQSllpCitwVW9UVWdhVHgwMkRWUndvbW1PK2hMeDdDUysrMUYyem9yV0M4cVF5dk5iZzdpZmZRYmJqV2l0dDhOUEU2a0NyCitxMFk1ZzdNL0xrUURkNU4zY0ZmQzE1dUZKT3RsaitBMkRHemlyOGRsWFUvMHFOcTlkQkZiaSt5K1kzckFUK3dLCitma3RtTjgyVVQ4NjF3VFV6RHZuWE8rdjdINURZWGpVVThrZWpQVzZxK0dnc2NjSWJWVE9kSE5OV2JNcmNEOXlmCitvUzkxbk1aLysvbjdJZkZXWE5OODJxRVJzcnZPRkNEc2JJelVPUjMwTjBJUCsrb3FHZndBYktGZkNPQ0ZVejZqCitqcFhVZEpsaDIydHAxMlVNc3JlaWJtaTVic1dZQmd5YndTYlJndnpFCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTlRDIFRQTSBFSyBSb290IENBIDAyCis9PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFNqQ0NBaktnQXdJQkFnSUdBUGFkQm1QWk1BMEdDU3FHU0liM0RRRUJCUVVBTUZJeFVEQWNCZ05WQkFNVAorRlU1VVF5QlVVRTBnUlVzZ1VtOXZkQ0JEUVNBd01qQWxCZ05WQkFvVEhrNTFkbTkwYjI0Z1ZHVmphRzV2Ykc5bgorZVNCRGIzSndiM0poZEdsdmJqQUpCZ05WQkFZVEFsUlhNQjRYRFRFeU1EY3hNVEUyTXpNeU5Gb1hEVE15TURjeAorTVRFMk16TXlORm93VWpGUU1Cd0dBMVVFQXhNVlRsUkRJRlJRVFNCRlN5QlNiMjkwSUVOQklEQXlNQ1VHQTFVRQorQ2hNZVRuVjJiM1J2YmlCVVpXTm9ibTlzYjJkNUlFTnZjbkJ2Y21GMGFXOXVNQWtHQTFVRUJoTUNWRmN3Z2dFaQorTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEU2FnV3hhQU5UMVlBMllVU043c3E3eXpPVAorMXltYklNK1dpamhFNUFHY0x3TEZvSjlmbWFRcllMNmZBVzJFVy9RM3l1OTdROVlzcjh5WVoyWENDZnhmc2VFcgorVnM4MGFuOE5rNkxrVER6OCswSG0wQ2N0MGtsdk5VQVpFSXZXcG1nSFpNdkdpalh5T2NwNHo0OTRkOEIyOFluYgorSTd4MEpNWFpaUVFLUWkrV2Z1SHRudEYrMm9zWVNjd2VvY2lwUHJHZU9OTEtVOXNuZ1daMnZubnZ3MVNCbmVUYQoraXJ4cTBRMFNENkJ4OWp0eHZkZjg3ZXVrOEp6ZlBoWDhqcDhHRWVBam1Md0dSK3RuT1FyRG1jekdObXA3WVlOTgorUitRN05aVm9ZV0h3NWphb1puTnhib3VXVVhaWnhGcURzQi9uZENLV3RzSXpSWVB1V2NxckZjbVVONFNWQWdNQgorQUFHakpqQWtNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTBHQ1NxRworU0liM0RRRUJCUVVBQTRJQkFRQUlrZERTRXJ6UExQWXJWdGh3NGxLalc0dFJZZWxVaWNNUEVIS2pRZVZVQUFTNQoreTlYVHpCNERXSVNEQUZzZ3RRanFISmoweENHK3ZwWTBSbW4yRkNPLzBZcFArWUJRa2RiSk9zaXlYQ2RGeTllNAorZ0dqUTI0Z3cxQitycjg0K3BrSTUxeTk1Mk5ZQmRvUURlYjdkaVBlKzI0VTk0Zi8vRFl0L0pROGNKdWE0YWxyMworMlBvaGhoNVR4Q1hYZlUyRUh0NjdLeXFCU3hDU3k5bTRPa0NPR0xITDJYNW5RSWRYVmoxNzhtdzZEU0F3eWh3UgorbjN1Sm81TXZVRW9RVEZaSktHU1hmYWI2MTltSWd6RXIrWUhzSVFUb3FmNDRWZkRNRGRNK01GaVhRM2E1ZkxpaQoraEVLUTlEaEJQdHBIQWJoRkE0amhDaUc5SEE4RmRFcGxKK000dXhOegorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK05UQyBUUE0gRUsgUm9vdCBDQSBBUlNVRiAwMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURXVENDQWtHZ0F3SUJBZ0lKQU1rbEFFRzRiZ1E2TUEwR0NTcUdTSWIzRFFFQkJRVUFNRmd4VmpBaUJnTlYKK0JBTVRHMDVVUXlCVVVFMGdSVXNnVW05dmRDQkRRU0JCVWxOVlJpQXdNVEFsQmdOVkJBb1RIazUxZG05MGIyNGcKK1ZHVmphRzV2Ykc5bmVTQkRiM0p3YjNKaGRHbHZiakFKQmdOVkJBWVRBbFJYTUI0WERURTBNRFF3TVRFNE16UXoKK09Gb1hEVE0wTURNeU9ERTRNelF6T0Zvd1dERldNQ0lHQTFVRUF4TWJUbFJESUZSUVRTQkZTeUJTYjI5MElFTkIKK0lFRlNVMVZHSURBeE1DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm9ibTlzYjJkNUlFTnZjbkJ2Y21GMGFXOXUKK01Ba0dBMVVFQmhNQ1ZGY3dnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQ3hjZlAKK3lhTnNHaGFSMjhxcWlzcWtyYjRaMk9QdWw3QlJObElFWVA4alNGT1J5Z3lmcDRqN2JLUnlWVFRPTkNVYlBxK0oKKy9hNHlSY2RiRXM4ZHp2elh5cFFiVlVqdUM0c09LalBpV0xmT2hqMVoxeXZPbjE5WGUzRWk0VXpNS0ptK3hwYjEKK0JZUjRZZnJudVZ6TDRkby9CL2xDcjJBWXM0Rm10bjF1elhCcDFTdDhUUkp6OUhUVzF5S0oyWk9xVGdXM0RYODAKKzZEUC8vM2tJYXRUdUxDWjZac2RsNmZzZ01QeEpHd3JJMzVUaEtCdGFVTVQ5M2FiYi9LQi9kdWd2b0lndEVpOUQKK0dFQzJDMFVXc3ZKRWZ1MFFpOHpveHRZdmQ5WTJ0UmxNeE1oSzc1dVNoWEh4UmNHK1dPR0VubTZ1VnBHcGhMS2cKK3F4QWwxdHVGY2I5NHZpN2RBZ01CQUFHakpqQWtNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVNCZ05WSFJNQkFmOEUKK0NEQUdBUUgvQWdFQU1BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQjdlcGVLeTJTYSs5aHVNeks0UG5JcGppYVgKK1FyeFB4K0U4QlZHdzZWdVFxVGNUUFFSdlBoTnBjNFZGLzYvN01BOXFiNnZEeFdFZjQwdHFOaThlL1JQTmxSRlkKK0RoNHRRMUhobDY5TnJaVllaZVhsMWNVL29tZXRvQUFiejc5dWdxNzhpRm5kSjVySE1RODVHUnd0VzlpL3EwcDEKK1ZqSjhkTFlKN2FSQkRUUDNobmRjMzVHbVpnM3ExVVg5M1dENm1NNUt1RSttT2R2N01YS010WVNyVitkRS9pR00KK0FTcnJhdEpmNTdQNk44QnBlZ1BRYVNiNlVuRWx3QnB3aFJ4elc3TjlxZ2pRV0lxcnhlOTdDZkprNDFSdnRuS3UKK1NlUHFsbTFQdFdreWd0OWJZYUluTFpZa2NrblhURC83QnR6QXl5UzI1SHRHL1lUdnVNdEtJdENwN1o0bgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK051dm90b24gVFBNIFJvb3QgQ0EgMTAxMworPT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURrakNDQW5xZ0F3SUJBZ0lJU04wSmZJSzZ2RTB3RFFZSktvWklodmNOQVFFRkJRQXdWVEZUTUI4R0ExVUUKK0F4TVlUblYyYjNSdmJpQlVVRTBnVW05dmRDQkRRU0F4TURFek1DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm8KK2JtOXNiMmQ1SUVOdmNuQnZjbUYwYVc5dU1Ba0dBMVVFQmhNQ1ZGY3dIaGNOTVRVd05URXhNRGcwTXpJMVdoY04KK016VXdOVEEzTURnME16STFXakJWTVZNd0h3WURWUVFERXhoT2RYWnZkRzl1SUZSUVRTQlNiMjkwSUVOQklERXcKK01UTXdKUVlEVlFRS0V4NU9kWFp2ZEc5dUlGUmxZMmh1YjJ4dloza2dRMjl5Y0c5eVlYUnBiMjR3Q1FZRFZRUUcKK0V3SlVWekNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMREF0YTZFWkJsaEYxTUMKK1o5R2VNWHF3OHB1d1pFREkzcVIvcndHaEVVajJvcWhGWS9LOXpVazJZUUNrQzZYNWxyci9sYldmdlp0VUdNRkMKK1A0VlFsdCtiR1BUT2xhZEdnNnpKLzdhNnlDZDlNcWtaYnc5Mm5pRE5oV2NYc2lCN1NSeUhZZHIvSGU4dE5Pb0QKK21WZE5GWHhrblA4UUgzc29CUGFoeGNrcXRyaGhrKzI0SXJhbjA0ak9BYzA5NTlWblA4SDBKeWc0QmplaElRamoKK0JHR0srYkpXWlhIWVJGbERqNGRSVytlcENoZE9xVHBXT3VsZjVHT3Z3Tm0zc3Y0b2pVMmZKOGNBNVR6blg4MXoKKytTZTZobXcvUkY4clVHamYxdWlLYnN4bmJJZjNBbjAxbVpZZ0Q5OEZYRUhBV0FXOTJ2QUpVdUVRSlZCbFRlc3QKKzFZbXNhVDBDQXdFQUFhTm1NR1F3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOEMKK0FRQXdId1lEVlIwakJCZ3dGb0FVb05jM0tRNFd6eXJpdnVjUURQVnJMd1RGOEVNd0hRWURWUjBPQkJZRUZLRFgKK055a09GczhxNHI3bkVBejFheThFeGZCRE1BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQ09YTXpRWXozdnI5dGcKK1NpRnI2cWhhMitKYXkrRUswaUxqU0t2TnpjVHY1eWFPOEk2cGI3dGRvY3Z6ZTgzOTRQdE00MmQyT1RPTTk5bEoKK2Jab2dxdWFKNmZMSE13ek83VUVHbmR0bTZZTXA2QVBYazRlY1JxVURMcW9mSVdMNlBRVVZ3U0VZbEFDNlJNOWsKK240TUpxY2tJeHNjNmlDMzhsc2p5bjR1dDhvL0UzZklvOFV6WURsMlArS0sxVmtqRGNtbWdOZjZzZUhtQnNPWUMKK3ZPYzR4WXBxMHlXdVpGZnhleUM0d0M0bU9BS0xaWDJ5TE1ZcllCbW5EZDYwbmMwaGdJMS9US2IxSC9FdzJQN1IKK1V4RURNR2U4ZTNBOVlSNE0vMDlGTG44Y1RUanE3aGZsUmxjcWlhcnBQbzYrOVozZHF6bXFUUXh2VlEvRElWcUUKKzNyM1dPbm5yCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTnV2b3RvbiBUUE0gUm9vdCBDQSAxMDE0Cis9PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRGtqQ0NBbnFnQXdJQkFnSUliWFNlWi8yMmVzVXdEUVlKS29aSWh2Y05BUUVGQlFBd1ZURlRNQjhHQTFVRQorQXhNWVRuVjJiM1J2YmlCVVVFMGdVbTl2ZENCRFFTQXhNREUwTUNVR0ExVUVDaE1lVG5WMmIzUnZiaUJVWldObworYm05c2IyZDVJRU52Y25CdmNtRjBhVzl1TUFrR0ExVUVCaE1DVkZjd0hoY05NVGN3T0RJeE1URXdNek0yV2hjTgorTXpjd09ERTNNVEV3TXpNMldqQlZNVk13SHdZRFZRUURFeGhPZFhadmRHOXVJRlJRVFNCU2IyOTBJRU5CSURFdworTVRRd0pRWURWUVFLRXg1T2RYWnZkRzl1SUZSbFkyaHViMnh2WjNrZ1EyOXljRzl5WVhScGIyNHdDUVlEVlFRRworRXdKVVZ6Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1kM1U3ZWgyZ0YyaDdMRQorYjZHWlRQL1R0V3EzY0s4UU1GdUdJNlByd1hqd0dtMUpmRzZ2RisxdS96NHRKYmM4em5LOEtjL1hUWjF5cW9aVworc3o3ZFhQMjBlbHRVMGZ1Qjdxd2EyeUpPcWJsNmhaNm5BRCtlT3V0ZVNVUThBbkV1RkgyWHFxTisrcGo5REpYUworekRwdkhxUDFKNlBucE5pNmd4VmFzNlBCRnJSWnVZR094SndHMm1peU9iSEsxL2tLcmt1RTcveWgranUxajBSdworOURYaHZtRWVscnp0UE9rbTRUa0x4a1RRU0w3amorRVdpbXBtR1A4V28rQi8yRmRWcEpaZG9GVWEydjVHbGRLOAorVkJka2FjRGFTcVEwaVgxdFAyb0k5M0p5eDF4dTlKRHFqVGhydHUrRkZJbEhGSkx3Mk45MWZTQ21zSnVrVWlDSQorOVBQYWtRVUNBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4QworQVFBd0h3WURWUjBqQkJnd0ZvQVVxZGxIOC9tQmN1NjIzTVh0WUpvQTNud0duTEF3SFFZRFZSME9CQllFRktuWgorUi9QNWdYTHV0dHpGN1dDYUFONThCcHl3TUEwR0NTcUdTSWIzRFFFQkJRVUFBNElCQVFCQ1ZNb3g3MndUSUk1RAorZmp6blNUOHFyNjFJNmN0S291VzQwMWwveDVFQTJnQmN0c3g1Z2wzdHVxOUVBck0yVHVBOUYrbGV5SjhyL1RkdQorZG84VGdNNGlDVmwrRnRoWGxya1BWZW1kMWxlNjN2MEVtYXhkLzhWY2E5WlpickxsQzZXTmlVai9uR3lZVGhQSworM1hJSFFOMCtPb05kWFFNNUl4VVl5bGdpQTN1ZHpjTENTMG9MOHVXaHBhNVlYMmFkMlVCM3hLaXozbWFJN3NYRgorRGs1ZHM0NU1pbVIwcC9kZCs0eTJ0bkFCMWYvbmVSOS9DcUU1OEdRY0ZEWTEwbXBOVWEzckJxY1VuSGNKQ2Z2YgoraTVUWC9jbFlZL3dzVkRQd2pBNXUzazdLU09pcDdGUjMzRWZJUHViRS9uTWVWcURUaVp0K1JCSjgxeHNrQk8wKworeDdiS0FzK3gKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOdXZvdG9uIFRQTSBSb290IENBIDExMTAKKz09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDQmpDQ0FheWdBd0lCQWdJSUVEaXFuMlNhcUdNd0NnWUlLb1pJemowRUF3SXdWVEZUTUI4R0ExVUVBeE1ZCitUblYyYjNSdmJpQlVVRTBnVW05dmRDQkRRU0F4TVRFd01DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm9ibTlzCitiMmQ1SUVOdmNuQnZjbUYwYVc5dU1Ba0dBMVVFQmhNQ1ZGY3dIaGNOTVRVd05URXhNRGcwTXpNeldoY05NelV3CitOVEEzTURnME16TXpXakJWTVZNd0h3WURWUVFERXhoT2RYWnZkRzl1SUZSUVRTQlNiMjkwSUVOQklERXhNVEF3CitKUVlEVlFRS0V4NU9kWFp2ZEc5dUlGUmxZMmh1YjJ4dloza2dRMjl5Y0c5eVlYUnBiMjR3Q1FZRFZRUUdFd0pVCitWekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRFZrRU9wdXlodXZpYURINnhRajNmYWFWMlo0CitGdlhTZHdVa1RpQjFKalBEZ3YxUFUwU0ZZdEVFMVc5Vm1JMUdjT241RkFVaTIvUU0zNkRQaG1QVGQrcWpaakJrCitNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlFWCitrZFMyNnZtTkFRU0dTMmtEcEkzUUFtQjMwekFmQmdOVkhTTUVHREFXZ0JRVmtkUzI2dm1OQVFTR1Mya0RwSTNRCitBbUIzMHpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlFQWxmeHlzZkhEY3hZRGVkNWRtUmJ2SFBLSExFRXE5WTlQCit3QXhvS3FIN1E1a0NJR2ZzeGlMcjJqOW5KOWpFTHdYejAvVldOOVBoVU5kTTNxbXN4MkpFbmU2cAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK051dm90b24gVFBNIFJvb3QgQ0EgMTExMQorPT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNCekNDQWEyZ0F3SUJBZ0lKQU4vdTNMMGw4b3NaTUFvR0NDcUdTTTQ5QkFNQ01GVXhVekFmQmdOVkJBTVQKK0dFNTFkbTkwYjI0Z1ZGQk5JRkp2YjNRZ1EwRWdNVEV4TVRBbEJnTlZCQW9USGs1MWRtOTBiMjRnVkdWamFHNXYKK2JHOW5lU0JEYjNKd2IzSmhkR2x2YmpBSkJnTlZCQVlUQWxSWE1CNFhEVEUzTURneU1UQXpNekkxTTFvWERUTTMKK01EZ3hOekF6TXpJMU0xb3dWVEZUTUI4R0ExVUVBeE1ZVG5WMmIzUnZiaUJVVUUwZ1VtOXZkQ0JEUVNBeE1URXgKK01DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm9ibTlzYjJkNUlFTnZjbkJ2Y21GMGFXOXVNQWtHQTFVRUJoTUMKK1ZGY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVFJjZ25IY1FrOTlGRk1RKzlVVlZGemY2NEoKKzFqbmh4cEdBZFpFSFJsZVpma2ZUWUdIc2RyM0w5RkxkR1ZVYitCQTJjaW0zMG92dVBEWk9HT1VLUHJhTG8yWXcKK1pEQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVUKK2lDOEVlNGNTSFBtSVh6RVdDOGU3VllhdlJ4c3dId1lEVlIwakJCZ3dGb0FVaUM4RWU0Y1NIUG1JWHpFV0M4ZTcKK1ZZYXZSeHN3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU5yS2hCZkxYeUhDem5CUnRXUkJtVGJmWUpSOW1DbDEKKzJOL3haa2NvaFJaSUFpQkR1Zm5taFpXQ2JYNHBpYmJ6QU9nY3hqc2M1K3FtcEFvdnhXOWlwV0pFc0E9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK051dm90b24gVFBNIFJvb3QgQ0EgMjAxMAorPT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURrakNDQW5xZ0F3SUJBZ0lJV0FuUDlwMkNJWmN3RFFZSktvWklodmNOQVFFRkJRQXdWVEZUTUI4R0ExVUUKK0F4TVlUblYyYjNSdmJpQlVVRTBnVW05dmRDQkRRU0F5TURFd01DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm8KK2JtOXNiMmQ1SUVOdmNuQnZjbUYwYVc5dU1Ba0dBMVVFQmhNQ1ZGY3dIaGNOTVRVd05ESXpNRFkxT1RFNVdoY04KK016VXdOREU1TURZMU9URTVXakJWTVZNd0h3WURWUVFERXhoT2RYWnZkRzl1SUZSUVRTQlNiMjkwSUVOQklESXcKK01UQXdKUVlEVlFRS0V4NU9kWFp2ZEc5dUlGUmxZMmh1YjJ4dloza2dRMjl5Y0c5eVlYUnBiMjR3Q1FZRFZRUUcKK0V3SlVWekNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLY0U5c2FWVVJFNTgybnkKK2RIc1pPNyszeG1kTUZiT1BDZHBsQmRhL0VKZzljZzduNmJaNzlRdjdoeXltTjVxRTIzU09QTkZ2bThTQWRtQ0oKK3libVRuazF5K1N5aUR3NWdVcGNrYlhzUllBZXRUd3F0ZGZCa0Y0VGtGb1JKRElyYVFDOG1pVGRZcVhNWGZXVG8KK2JoSFhmL29WOTUzbGFPQ08vU1JscVh6QVd6bTVkOFB3aXhVQkxaVG52Y2d4TStwWHd2NkpZNndnWHB2NTVmWTEKK0QzTTFoeWlOQUxpYityZzBMd2F6YWxVMERPcnlBQUlxRnpNZ2tSMklhZWZrQW1wbVExeHBmTUpzSytCTWl4Y0kKK1hVQ3pTR0dLS2RrYzNXVUR5ZS92c3lYWVE1em9ZdUx0M3hiN0JFWnhlczMxbHFiczFnbmlOejRvRDVwdG1yUzQKKzhWN1J6L2tDQXdFQUFhTm1NR1F3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOEMKK0FRQXdId1lEVlIwakJCZ3dGb0FVQ0RBUFE2ajB1TWptSktUM0JnejFublJRRmVjd0hRWURWUjBPQkJZRUZBZ3cKK0QwT285TGpJNWlTazl3WU05WjUwVUJYbk1BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQUUwcE1uano1bzNRVWQKK1MzbExRbjMrdlhrUzJ4YzFFbVB4Y1ZGeGpQYnJKRHRuTlJNV3dnbEM4em83MFZnV3UvK3Vsd3p5NzgzekpTaVQKK25rV1BldXN6cXAzeE90Q1BXREU0RDJzeFZiV0gzcHZlbDJ0Z1pKdjBLSnNKSDkzUUU1M1diSFV3U24ySmpITkgKK1VKaUJwcTBnZW5VeEdEK3pCSTNOR0RHQjFpdGk2NmFKZkNkam44QzBHMGdUbVE4akZwWjZBc1gxR1N2UFllVTYKK0VxTjl5bklFWVVWY1JLd29IUWFTbXFEZDdIVnA5N2Z3RCtta09mRllCeUxWVXFDMDlyTkZXODFWYTRaZTJndzIKK0hpS3ovU1ZTQTVtQS85MXdmRVpTWjZhek9nRFpOUWxiZ0JvMjdtWkZKNW1SN2lKYldndEQrdk80K3dSWks4QmMKKzh5V3hWOHJpCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworTnV2b3RvbiBUUE0gUm9vdCBDQSAyMDExCis9PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRGtqQ0NBbnFnQXdJQkFnSUlHQ2duZVI3T3cvRXdEUVlKS29aSWh2Y05BUUVGQlFBd1ZURlRNQjhHQTFVRQorQXhNWVRuVjJiM1J2YmlCVVVFMGdVbTl2ZENCRFFTQXlNREV4TUNVR0ExVUVDaE1lVG5WMmIzUnZiaUJVWldObworYm05c2IyZDVJRU52Y25CdmNtRjBhVzl1TUFrR0ExVUVCaE1DVkZjd0hoY05NVGN3T1RFeE1EY3hNREV5V2hjTgorTXpjd09UQTNNRGN4TURFeVdqQlZNVk13SHdZRFZRUURFeGhPZFhadmRHOXVJRlJRVFNCU2IyOTBJRU5CSURJdworTVRFd0pRWURWUVFLRXg1T2RYWnZkRzl1SUZSbFkyaHViMnh2WjNrZ1EyOXljRzl5WVhScGIyNHdDUVlEVlFRRworRXdKVVZ6Q0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpBZnk3SXUzZVRYWWRYZQorV1djOFpQSGIxZWtvZm5IV1k0WTZRRCt6MjU2ajJyWFRHbWs1YkExWTZuQ3NZdEJxVVY0QjJnZlBBYVpYdW5NRAorazNLREVCYUk4RmtkN0JUWGJXSHJmZ3hac3RHSGxXelZxaTFyMkpqMzFNZERNejBOUm92V1hKd2dHNU45dGdzNQorS0VlUTBLazJvY2sxVmRuL2pJcXgzeFk5dkJNWm05N04xMW0vV3RaNVUyTnl4YmZxSUlsb0loeHV2b1BaUnp4OAorYzZNbUk3N010TTJ5bG0rMm5iWGYxRHRiRUtYUVl1R252TTNJYjlLNWYyK1BUak5pL25XR0FjQ2dMbzg5Qk5TQgorTGRHOUd4SzFoTzlRWFljQ2tBV3NFV1VEKzhETTF2K3pBbDJjbnJ0ajRpdTQ4c1U1aTZoVk8wQ1R0Q1AweU9rZgorVmRWZk5Wc0NBd0VBQWFObU1HUXdEZ1lEVlIwUEFRSC9CQVFEQWdJRU1CSUdBMVVkRXdFQi93UUlNQVlCQWY4QworQVFBd0h3WURWUjBqQkJnd0ZvQVVwU3kyUitDUW05b3VmMzJSUDJMWWl4T0o0c1l3SFFZRFZSME9CQllFRktVcwordGtmZ2tKdmFMbjk5a1Q5aTJJc1RpZUxHTUEwR0NTcUdTSWIzRFFFQkJRVUFBNElCQVFBVXdyaG5pVXM0Q0xnYgorVUlGUHNseDNhbHk4TTJQOFZuMEdSK0VjRTBHa2xGYTI2V09UK1laeGFjVVAzck1HdGVaR0N0YkZnZ1ljTTk0bgorcG9nN0ZCbm5EUjF5U0hiSE9ZMGtXQk83NWVQVkJteXRxcFBlWlg4RTUyMDJzUmdhZ25vamw1OWJQajF0cWhsSAordndqNlhqNi9YQUZaRG8wT3IyR2hDQzVOelJiWG1jNndCMHpJalRsaFB3VlhRK2lrS0JxZHQzL0hLQ0I0aTNTdgorN0R4eXkvTjRhUGcvczZNSnhnbVVqdEd4UnlqVTZSVmdyenFWTi8wQ3N2OEw3NWcyU3Z6Z1hucXJxY3BrODJYVAorQ25KZ2ZscGFDZlYyU0M1TUdXSEVqbWoxdGdoQzEzM0pjRU1RbHNvZFdSbSsweDdFL2ZzSHZKTmo0QTBuaDlLMworSDNUcnlGSjcKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitOdXZvdG9uIFRQTSBSb290IENBIDIxMTAKKz09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDQmpDQ0FheWdBd0lCQWdJSVA1TXZuWms4RnJzd0NnWUlLb1pJemowRUF3SXdWVEZUTUI4R0ExVUVBeE1ZCitUblYyYjNSdmJpQlVVRTBnVW05dmRDQkRRU0F5TVRFd01DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm9ibTlzCitiMmQ1SUVOdmNuQnZjbUYwYVc5dU1Ba0dBMVVFQmhNQ1ZGY3dIaGNOTVRVeE1ERTVNRFF6TWpBd1doY05NelV4CitNREUxTURRek1qQXdXakJWTVZNd0h3WURWUVFERXhoT2RYWnZkRzl1SUZSUVRTQlNiMjkwSUVOQklESXhNVEF3CitKUVlEVlFRS0V4NU9kWFp2ZEc5dUlGUmxZMmh1YjJ4dloza2dRMjl5Y0c5eVlYUnBiMjR3Q1FZRFZRUUdFd0pVCitWekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCUHY5dUsyQk5tOC9ubUl5TnNjMi9hS0hWMFdSCitwdHpnZTNqS0FJZ1VNb3NRSW9rbDRMRTNpb3BYV0QzSHJ1eGpmOXZrTE1ESnJUZUszaFdoMnlTUzR5U2paakJrCitNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlNmCit1M21xRDFKaWVMN1JVSkthY1hIcGFqVys5ekFmQmdOVkhTTUVHREFXZ0JTZnUzbXFEMUppZUw3UlVKS2FjWEhwCithalcrOXpBS0JnZ3Foa2pPUFFRREFnTklBREJGQWlFQS9qaXl3aE9LcGlNT1VuVGZEbVhzWGZERm9raEtWTlRYCitCNlh0cW03SjhMNENJQ2pUMy9ZK3JyU25mOHpyQlhxV2VIRGg4V2k0MSt3MnBwcTZFdjlvclpGSQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK051dm90b24gVFBNIFJvb3QgQ0EgMjExMQorPT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNCekNDQWEyZ0F3SUJBZ0lKQU9DSVVXdktNZnVHTUFvR0NDcUdTTTQ5QkFNQ01GVXhVekFmQmdOVkJBTVQKK0dFNTFkbTkwYjI0Z1ZGQk5JRkp2YjNRZ1EwRWdNakV4TVRBbEJnTlZCQW9USGs1MWRtOTBiMjRnVkdWamFHNXYKK2JHOW5lU0JEYjNKd2IzSmhkR2x2YmpBSkJnTlZCQVlUQWxSWE1CNFhEVEUzTURreE1UQTNNRGswT1ZvWERUTTMKK01Ea3dOekEzTURrME9Wb3dWVEZUTUI4R0ExVUVBeE1ZVG5WMmIzUnZiaUJVVUUwZ1VtOXZkQ0JEUVNBeU1URXgKK01DVUdBMVVFQ2hNZVRuVjJiM1J2YmlCVVpXTm9ibTlzYjJkNUlFTnZjbkJ2Y21GMGFXOXVNQWtHQTFVRUJoTUMKK1ZGY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVGFuTnl3UGtFL1JJQ0JaNFZqd0N5bUxEdHMKK0I3VW52NTJPajBIeUVzQWZjNyt2ak9sMkRQOEpicmNvelkwNXM3R0ZmUXFSM3ZodjRaZGtKTWFsZ09yMm8yWXcKK1pEQU9CZ05WSFE4QkFmOEVCQU1DQWdRd0VnWURWUjBUQVFIL0JBZ3dCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVUKK0kvVGlLdE8rTjBwRWwzS1ZTcUtEcnRkU1Z5NHdId1lEVlIwakJCZ3dGb0FVSS9UaUt0TytOMHBFbDNLVlNxS0QKK3J0ZFNWeTR3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnWGdYczJlVnQyVTRzQ29SZjFHTG9VVGYyWnpZVFNzeWcKKzZJNXc2aFBUTGlnQ0lRRExMRmxYSzF4dzFhMUQxL2lkVmhkZDNhOGdrRTBGblRKTzg5MFd3aVFicGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK09uRGllIENBIENTTUUgSW50ZXJtZWRpYXRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlES1RDQ0FxMmdBd0lCQWdJVWVJMENDZDBDY2lVak9EZCtxVjg5bmZyQkVDc3dEQVlJS29aSXpqMEVBd01GCitBRENCaVRFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVkJBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JECitiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eWNHOXlZWFJwYjI0eEl6QWhCZ05WQkFzTUdrOXVSR2xsCitJRU5CSUZKdmIzUWdRMlZ5ZENCVGFXZHVhVzVuTVJZd0ZBWURWUVFEREExM2QzY3VhVzUwWld3dVkyOXRNQjRYCitEVEU1TURRd05EQXdNREF3TUZvWERUUTVNVEl6TVRJek5UazFPVm93UURFbU1DUUdBMVVFQ3d3ZFQyNUVhV1VnCitRMEVnUTFOTlJTQkpiblJsY20xbFpHbGhkR1VnUTBFeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3CitkakFRQmdjcWhrak9QUUlCQmdVcmdRUUFJZ05pQUFTZEV2RFpoN0RVTnVyb2YzOUpPMDdWc3RYRWJFZ2tpSmxnCitibzc0dWJUbk9RM25rc1JIcmp5WjRGb3JGbWxTbSt5bTJnTzhtVzdVaVppYmNsVTd5Szc1SmQ5SVpRYzBwU3BLCituQ2ZNYzREZ3pnUlJJcEtqbzMvS211MjVGRFJJZ3ZXamdnRWFNSUlCRmpCb0JnZ3JCZ0VGQlFjQkFRUmNNRm93CitXQVlJS3dZQkJRVUhNQUtHVEdoMGRIQnpPaTh2ZEhOamFTNXBiblJsYkM1amIyMHZZMjl1ZEdWdWRDOVBia1JwCitaVU5CTDJObGNuUnpMMDl1UkdsbFgwTkJYMUp2YjNSRFFWOURaWEowYVdacFkyRjBaUzVqWlhJd0h3WURWUjBqCitCQmd3Rm9BVXRGako5dVFJUUtQeVdNZzVlRzZ1amdxTm5EZ3dEd1lEVlIwVEFRSC9CQVV3QXdFQi96QkpCZ05WCitIUjhFUWpCQU1ENmdQS0E2aGpob2RIUndjem92TDNSelkya3VhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZUMjVFCithV1ZEUVM5amNteHpMMDl1UkdsbFgwTkJMbU55YkRBT0JnTlZIUThCQWY4RUJBTUNBUVl3SFFZRFZSME9CQllFCitGR0dhQ25pV2lBUE1ZWkNvcFQrUWJYVjhuMmxxTUF3R0NDcUdTTTQ5QkFNREJRQURhQUF3WlFJd2ZQYjIrSjVsCisxbHREMHFReUVNQlBzWHpGTW9rcFI1M1FjdnZCcFJ3dmw2bzVQR1ZqN2JwTnllbExoM0VEbVBFREFqRUEybVF6Cit4VVFVVGQ0V1Y3N1pqZmdhanEzN2pwVHpBUldQRUtGaTFrRThpVCs2cWpCZjd2dyszQkxMRVFwaXhSUEMKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitPbkRpZSBDQSBSb290Q0EgQ2VydGlmaWNhdGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDdWpDQ0FqNmdBd0lCQWdJVVBMTGlIVHJ3eVNSdFd4UjRseEtMbHU3TUo3d3dEQVlJS29aSXpqMEVBd01GCitBRENCaVRFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVkJBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JECitiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eWNHOXlZWFJwYjI0eEl6QWhCZ05WQkFzTUdrOXVSR2xsCitJRU5CSUZKdmIzUWdRMlZ5ZENCVGFXZHVhVzVuTVJZd0ZBWURWUVFEREExM2QzY3VhVzUwWld3dVkyOXRNQjRYCitEVEU1TURRd016QXdNREF3TUZvWERUUTVNVEl6TVRJek5UazFPVm93Z1lreEN6QUpCZ05WQkFZTUFsVlRNUXN3CitDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzCitJRU52Y25CdmNtRjBhVzl1TVNNd0lRWURWUVFMREJwUGJrUnBaU0JEUVNCU2IyOTBJRU5sY25RZ1UybG5ibWx1CitaekVXTUJRR0ExVUVBd3dOZDNkM0xtbHVkR1ZzTG1OdmJUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBCitCSzhTZkIyVWZsdlhacWI1S2MzK2xva3JBQkhXYXp2TkVSMmF4UFVSUDY0SElMa1hDaFBCME9FWDVoTEI3T2t3Cis3RHk2b0ZxQjV0UVZEdXBnZnZVWC9TZ1lCRWFEZEc1ckNWRnJHQWlzNkhYNVRBMmV3UW1qMTRyMm5jSEJnbnBwCitCNk5qTUdFd0h3WURWUjBqQkJnd0ZvQVV0RmpKOXVRSVFLUHlXTWc1ZUc2dWpncU5uRGd3RHdZRFZSMFRBUUgvCitCQVV3QXdFQi96QU9CZ05WSFE4QkFmOEVCQU1DQVFZd0hRWURWUjBPQkJZRUZMUll5ZmJrQ0VDajhsaklPWGh1CitybzRLalp3NE1Bd0dDQ3FHU000OUJBTURCUUFEYUFBd1pRSXhBUDlCNGxGRjg2dXZwSG1rY3A2MWNXYVU1NjVhCit5RTNwN2V6dTloYUxFL2xQTGg1aEZRZm1UaTFubS9zRzNKRVhNUUl3TnBLZkhvRG1VVHJVeWV6aGhmdjNHRysxCitDcUJYc3RtQ1lINDBidWo5aktXM3BIV2M3MXM5YXJFbVBXbGk3SThVCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworU1BUIEggTFAgRVBJRCBQcm9kIFJLIDAKKz09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR5RENDQTIyZ0F3SUJBZ0lVRlA3Y3NCOEtheis2cVlBcGEvVTVlUE9ESEdZd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UVXcKK01qRTRNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQm5qRUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eE9EQTJCZ05WQkFzTUwxUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUZOUVZDMUkKK0xVeFFYMFZRU1VSZlVISnZaRjlTUzE4d01SWXdGQVlEVlFRRERBMTNkM2N1YVc1MFpXd3VZMjl0TUZrd0V3WUgKK0tvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxSkFWNTZDZlNET0loN3IwZGcvUEhJVVZOaUVsemZsaERId3AKK0VYL05CeWlXYmh5QTRVTlc1NzZOOHlaVDNjN1FyQmI2d2IrWEFJd1ZoN1M3SDV0Tm1LT0NBWnd3Z2dHWU1COEcKK0ExVWRJd1FZTUJhQUZPaFNCY0pQMk5MVnBTRkhGcmJPREh0YnVuY1BNQjBHQTFVZERnUVdCQlRPL2pNemtITTgKK1p5ZkhpQTMrUXByK3RWZW9rakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUE0R0ExVWREd0VCL3dRRUF3SUIKK0JqQVRCZ05WSFNVQkFmOEVDVEFIQmdWbmdRVUlBVEJ3QmdOVkhTQUJBZjhFWmpCa01HSUdDaXFHU0liNFRRRUYKK0FnRXdWREJTQmdnckJnRUZCUWNDQVJaR2FIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTAKK1pXNTBMME5TVEM5bGEyTmxjblF2UlV0alpYSjBVRzlzYVdONVUzUmhkR1Z0Wlc1MExuQmtaakJjQmdnckJnRUYKK0JRY0JBUVJRTUU0d1RBWUlLd1lCQlFVSE1BS0dRR2gwZEhBNkx5OTFjR2R5WVdSbGN5NXBiblJsYkM1amIyMHYKK1kyOXVkR1Z1ZEM5RFVrd3ZaV3RqWlhKMEwwVkxVbTl2ZEZCMVlteHBZMHRsZVM1alpYSXdUUVlEVlIwZkJFWXcKK1JEQkNvRUNnUG9ZOGFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwTDBOU1RDOWwKK2EyTmxjblF2UlV0ZlVHeGhkR1p2Y20wdVkzSnNNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURhVGhhTGlyYnIKKy94bTFKU1NGSGZLaEhtc2JKN3gweURaanYyem01RG0zRmdJaEFKN1AvUnRDRmlMUjRSYzcxUlRpdUZuUHR6RFAKKzJLS3N3WGxoMDd1cFM1aGcKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitTUFQgSCBMUCBFUElEIFRlc3QgUksgMAorPT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHlEQ0NBMjJnQXdJQkFnSVVVQ1g3RHZpS2lNT1owUW5ydHB3aDRpQWF6Nk13Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRVdworTWpFNE1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCbmpFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4T0RBMkJnTlZCQXNNTDFSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRk5RVkMxSQorTFV4UVgwVlFTVVJmVkdWemRGOVNTMTh3TVJZd0ZBWURWUVFEREExM2QzY3VhVzUwWld3dVkyOXRNRmt3RXdZSAorS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXZ3dFFLSzR4cXQ3UDlCVnFWOTdLeE1DcmwwZDc3QkZ4SEZvaAorbkhRY3Z5ck1uNUlpNkxJOG01UGl0dVVOSG9EQzlZQUVGd1RoUEpZQ0JhdFFFd1BFWUtPQ0Fad3dnZ0dZTUI4RworQTFVZEl3UVlNQmFBRk9oU0JjSlAyTkxWcFNGSEZyYk9ESHRidW5jUE1CMEdBMVVkRGdRV0JCUXd1RzhKVGFhcgorMVNOeEJEOHI5MmFNZUQ4T1pqQVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIvd1FFQXdJQgorQmpBVEJnTlZIU1VCQWY4RUNUQUhCZ1ZuZ1FVSUFUQndCZ05WSFNBQkFmOEVaakJrTUdJR0NpcUdTSWI0VFFFRgorQWdFd1ZEQlNCZ2dyQmdFRkJRY0NBUlpHYUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MAorWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRqWlhKMFVHOXNhV041VTNSaGRHVnRaVzUwTG5Ca1pqQmNCZ2dyQmdFRgorQlFjQkFRUlFNRTR3VEFZSUt3WUJCUVVITUFLR1FHaDBkSEE2THk5MWNHZHlZV1JsY3k1cGJuUmxiQzVqYjIwdgorWTI5dWRHVnVkQzlEVWt3dlpXdGpaWEowTDBWTFVtOXZkRkIxWW14cFkwdGxlUzVqWlhJd1RRWURWUjBmQkVZdworUkRCQ29FQ2dQb1k4YUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTBMME5TVEM5bAorYTJObGNuUXZSVXRmVUd4aGRHWnZjbTB1WTNKc01Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQ0lRRHBEbWtBbGthZgorNTk3K0xBZjBDWlBRa2Qzd0EzMlhSNmhrQVREaDZzTHlMQUloQUxRTjRTRFh5VWtydW5pd1VWNmExM0xJelRHcgorVXlyVDZOaFg3SXlNR3YzegorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NQVEVQSURQUk9EIEVLIFBsYXRmb3JtIFB1YmxpYyBLZXkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHZqQ0NBMk9nQXdJQkFnSVVNVGFtdUtJUTd2V3VkNGxYRjBhQVJKb1JrU1V3Q2dZSUtvWkl6ajBFQXdJdworZ1ljeEN6QUpCZ05WQkFZTUFsVlRNUXN3Q1FZRFZRUUlEQUpEUVRFVU1CSUdBMVVFQnd3TFUyRnVkR0VnUTJ4aAorY21FeEdqQVlCZ05WQkFvTUVVbHVkR1ZzSUVOdmNuQnZjbUYwYVc5dU1TRXdId1lEVlFRTERCaFVVRTBnUlVzZworY205dmRDQmpaWEowSUhOcFoyNXBibWN4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdIaGNOTVRRdworTmpFMk1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTVXakNCbERFTE1Ba0dBMVVFQmd3Q1ZWTXhDekFKQmdOVgorQkFnTUFrTkJNUlF3RWdZRFZRUUhEQXRUWVc1MFlTQkRiR0Z5WVRFYU1CZ0dBMVVFQ2d3UlNXNTBaV3dnUTI5eQorY0c5eVlYUnBiMjR4TGpBc0JnTlZCQXNNSlZSUVRTQkZTeUJwYm5SbGNtMWxaR2xoZEdVZ1ptOXlJRk5RVkY5RgorVUVsRVgxQlNUMFF4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncQoraGtqT1BRTUJCd05DQUFUVEdnOGZTc3Fab1YvOVpQc1dMZXk3RGordXpid00zNnhLcXVSaG9ienRLR3FkV0xkZgorWEJYaEF6cWdZUFZOZ3FLRVVmTThnRzIyUk1GWVF0TDFyUXZLbzRJQm5EQ0NBWmd3SHdZRFZSMGpCQmd3Rm9BVQorNkZJRndrL1kwdFdsSVVjV3RzNE1lMXU2ZHc4d0hRWURWUjBPQkJZRUZMK2NYRysvZ00zT2RLdk5EZzVnQk9vQworS21ZR01CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CTUdBMVVkSlFFQgorL3dRSk1BY0dCV2VCQlFnQk1IQUdBMVVkSUFFQi93Um1NR1F3WWdZS0tvWklodmhOQVFVQ0FUQlVNRklHQ0NzRworQVFVRkJ3SUJGa1pvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZRMUpNTDJWcgorWTJWeWRDOUZTMk5sY25SUWIyeHBZM2xUZEdGMFpXMWxiblF1Y0dSbU1Gd0dDQ3NHQVFVRkJ3RUJCRkF3VGpCTQorQmdnckJnRUZCUWN3QW9aQWFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTBaVzUwTDBOUworVEM5bGEyTmxjblF2UlV0U2IyOTBVSFZpYkdsalMyVjVMbU5sY2pCTkJnTlZIUjhFUmpCRU1FS2dRS0EraGp4bworZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnlkQzlGUzE5UQorYkdGMFptOXliUzVqY213d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFQZlhickQ0L0c1SWRkbEZVQnRaalhjcgorVmpFd0FGQVpld0RRdlJIVytSejdBaUVBeWllME94YkE1aE1CVkxxQ2w0bHVnYlBndU1seU9URFdhZ0hSb3g4UworU3lJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NQVEhFUElEUFJPRCBFSyBQbGF0Zm9ybSBQdWJsaWMgS2V5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEdmpDQ0EyU2dBd0lCQWdJVWJPdjlDYldpZTVNSWlXRmpRYUdZdytOZkc1MHdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFV3CitNekkwTURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JsVEVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhMekF0QmdOVkJBc01KbFJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlGTlFWRWhmCitSVkJKUkY5UVVrOUVNUll3RkFZRFZRUUREQTEzZDNjdWFXNTBaV3d1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJCitLb1pJemowREFRY0RRZ0FFcnl6RUNXNnFwS3hMRThtM1lRd1ZPK29pZWE5RWt6TkVWeERBQS9JT2FxK3UxTU1ZCitXMVBPYUJRRk8xN0o1N2VGTG1UZkMzcEN0YUJuQjltV3NqRmh6cU9DQVp3d2dnR1lNQjhHQTFVZEl3UVlNQmFBCitGT2hTQmNKUDJOTFZwU0ZIRnJiT0RIdGJ1bmNQTUIwR0ExVWREZ1FXQkJSZWM4aWFvK2tDc25LNThIUWZmWWN3Cis0K3h5U2pBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1BNEdBMVVkRHdFQi93UUVBd0lCQmpBVEJnTlZIU1VCCitBZjhFQ1RBSEJnVm5nUVVJQVRCd0JnTlZIU0FCQWY4RVpqQmtNR0lHQ2lxR1NJYjRUUUVGQWdFd1ZEQlNCZ2dyCitCZ0VGQlFjQ0FSWkdhSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsCithMk5sY25RdlJVdGpaWEowVUc5c2FXTjVVM1JoZEdWdFpXNTBMbkJrWmpCY0JnZ3JCZ0VGQlFjQkFRUlFNRTR3CitUQVlJS3dZQkJRVUhNQUtHUUdoMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlECitVa3d2Wld0alpYSjBMMFZMVW05dmRGQjFZbXhwWTB0bGVTNWpaWEl3VFFZRFZSMGZCRVl3UkRCQ29FQ2dQb1k4CithSFIwY0RvdkwzVndaM0poWkdWekxtbHVkR1ZzTG1OdmJTOWpiMjUwWlc1MEwwTlNUQzlsYTJObGNuUXZSVXRmCitVR3hoZEdadmNtMHVZM0pzTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSUV3b1JHWlh5R3JPaTVjNVhRMHNvZ08wCis3bkthckRkeENISmpKbWZCMmo5OEFpRUF6RXBQMXlzREJBRDZrOTdZMFhWcnFuNHNyQ052NjEzMm1SS2VTdzE2Cit3TWs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworU1BUSExQRVBJRFByb2QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEd3pDQ0EyaWdBd0lCQWdJVUVQQ0VETmxaRVk2YTIrdGkxcGdCdVpCbVhpRXdDZ1lJS29aSXpqMEVBd0l3CitnWWN4Q3pBSkJnTlZCQVlNQWxWVE1Rc3dDUVlEVlFRSURBSkRRVEVVTUJJR0ExVUVCd3dMVTJGdWRHRWdRMnhoCitjbUV4R2pBWUJnTlZCQW9NRVVsdWRHVnNJRU52Y25CdmNtRjBhVzl1TVNFd0h3WURWUVFMREJoVVVFMGdSVXNnCitjbTl2ZENCalpYSjBJSE5wWjI1cGJtY3hGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVFV3CitNakU0TURBd01EQXdXaGNOTkRreE1qTXhNak0xT1RVNVdqQ0JtVEVMTUFrR0ExVUVCZ3dDVlZNeEN6QUpCZ05WCitCQWdNQWtOQk1SUXdFZ1lEVlFRSERBdFRZVzUwWVNCRGJHRnlZVEVhTUJnR0ExVUVDZ3dSU1c1MFpXd2dRMjl5CitjRzl5WVhScGIyNHhNekF4QmdOVkJBc01LbFJRVFNCRlN5QnBiblJsY20xbFpHbGhkR1VnWm05eUlGTlFWQzFJCitMVXhRWDBWUVNVUmZVSEp2WkRFV01CUUdBMVVFQXd3TmQzZDNMbWx1ZEdWc0xtTnZiVEJaTUJNR0J5cUdTTTQ5CitBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJQS1FXOTIvVzQzVkVqbU1QMkNmcU15V2IrM3FmbVI3RlFQZUFGMmtNNUx6CitDRDNzK0JhcjhWaDBaK1lEUDVTSWxDUHY0QWNrUVJ1a2p2Y3hKbnNUODlLamdnR2NNSUlCbURBZkJnTlZIU01FCitHREFXZ0JUb1VnWENUOWpTMWFVaFJ4YTJ6Z3g3VzdwM0R6QWRCZ05WSFE0RUZnUVUrWjhnZmZ5SGw3LzVEV1FkCitKZjFhUmZkakVMZ3dFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFPQmdOVkhROEJBZjhFQkFNQ0FRWXdFd1lECitWUjBsQVFIL0JBa3dCd1lGWjRFRkNBRXdjQVlEVlIwZ0FRSC9CR1l3WkRCaUJnb3Foa2lHK0UwQkJRSUJNRlF3CitVZ1lJS3dZQkJRVUhBZ0VXUm1oMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlECitVa3d2Wld0alpYSjBMMFZMWTJWeWRGQnZiR2xqZVZOMFlYUmxiV1Z1ZEM1d1pHWXdYQVlJS3dZQkJRVUhBUUVFCitVREJPTUV3R0NDc0dBUVVGQnpBQ2hrQm9kSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsCitiblF2UTFKTUwyVnJZMlZ5ZEM5RlMxSnZiM1JRZFdKc2FXTkxaWGt1WTJWeU1FMEdBMVVkSHdSR01FUXdRcUJBCitvRDZHUEdoMGRIQTZMeTkxY0dkeVlXUmxjeTVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlEVWt3dlpXdGpaWEowCitMMFZMWDFCc1lYUm1iM0p0TG1OeWJEQUtCZ2dxaGtqT1BRUURBZ05KQURCR0FpRUFvRGtvYTZJWUdMSTk5djRDCitqYTVtYkZkZWl3NzgzUy9QMFU1d2ZsdnIyL3dDSVFDRmRBUWhuMExESzF0clBHQ3QxemNpRldMUUNIaUlLeXQrCisweFNGY01iWGRBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitTUFRIIEVQSUQgUFJPRCBSSyAwCis9PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR3ekNDQTJtZ0F3SUJBZ0lVUGRjdlJiTUJWYndXQ0t1UW9Kd1M5YVR0a3Jzd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UVXcKK016STBNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQm1qRUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eE5EQXlCZ05WQkFzTUsxUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUZOUVZFaGYKK1JWQkpSRjlRVWs5RVgxSkxYekF4RmpBVUJnTlZCQU1NRFhkM2R5NXBiblJsYkM1amIyMHdXVEFUQmdjcWhrak8KK1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRWE9SV1dnS3dLaUh6Q0ZmYThKS2I0Ny9kNzlUMnRKMDdNL3dsY2x6T0QKK0c3N3EvQnp4ZXB5RFoyMmlYeSs0anRFWlVSQlB3SWJSSnhyWElvQy9QL2pHbzRJQm5EQ0NBWmd3SHdZRFZSMGoKK0JCZ3dGb0FVNkZJRndrL1kwdFdsSVVjV3RzNE1lMXU2ZHc4d0hRWURWUjBPQkJZRUZHeXAzMktocXVJK0QrdDgKK1AxNjQ1aDdLd1h5M01CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdEZ1lEVlIwUEFRSC9CQVFEQWdFR01CTUcKK0ExVWRKUUVCL3dRSk1BY0dCV2VCQlFnQk1IQUdBMVVkSUFFQi93Um1NR1F3WWdZS0tvWklodmhOQVFVQ0FUQlUKK01GSUdDQ3NHQVFVRkJ3SUJGa1pvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXYKK1ExSk1MMlZyWTJWeWRDOUZTMk5sY25SUWIyeHBZM2xUZEdGMFpXMWxiblF1Y0dSbU1Gd0dDQ3NHQVFVRkJ3RUIKK0JGQXdUakJNQmdnckJnRUZCUWN3QW9aQWFIUjBjRG92TDNWd1ozSmhaR1Z6TG1sdWRHVnNMbU52YlM5amIyNTAKK1pXNTBMME5TVEM5bGEyTmxjblF2UlV0U2IyOTBVSFZpYkdsalMyVjVMbU5sY2pCTkJnTlZIUjhFUmpCRU1FS2cKK1FLQStoanhvZEhSd09pOHZkWEJuY21Ga1pYTXVhVzUwWld3dVkyOXRMMk52Ym5SbGJuUXZRMUpNTDJWclkyVnkKK2RDOUZTMTlRYkdGMFptOXliUzVqY213d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0pvem01cWZTbUErSlBxUjQKK0pXcmQxWDdQc2xHVFN4MkhxNlUvalVuaUpWc0NJUURNR05wUHNsd3A1TysvdHBhQ0JYUVNQUHRXNWFnS21FUFUKK3E1RHNmenBLcGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NUIFRQTSBSb290IENlcnRpZmljYXRlCis9PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlFRERDQ0F2U2dBd0lCQWdJTEJBQUFBQUFCSXNGczgzNHdEUVlKS29aSWh2Y05BUUVMQlFBd2dZY3hPekE1CitCZ05WQkFzVE1rZHNiMkpoYkZOcFoyNGdWSEoxYzNSbFpDQkRiMjF3ZFhScGJtY2dRMlZ5ZEdsbWFXTmhkR1VnCitRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtFd3BIYkc5aVlXeFRhV2R1TVRNd01RWURWUVFERXlwSGJHOWlZV3hUCithV2R1SUZSeWRYTjBaV1FnVUd4aGRHWnZjbTBnVFc5a2RXeGxJRkp2YjNRZ1EwRXdIaGNOTURrd056STRNVEl3CitNREF3V2hjTk16a3hNak14TWpNMU9UVTVXakJLTVFzd0NRWURWUVFHRXdKRFNERWVNQndHQTFVRUNoTVZVMVJOCithV055YjJWc1pXTjBjbTl1YVdOeklFNVdNUnN3R1FZRFZRUURFeEpUVkUwZ1ZGQk5JRVZMSUZKdmIzUWdRMEV3CitnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEeEJMRzV3Y0I5SjBNc2lKTXJlb1dRCitsMjFiQk4xMlNTR1pQSjNIb1BqemNyekF6NlNQeStUckZtWjZlVVZzcHNGTC8yM3dkUHBycVRVdERIaStDMnB3CitrLzNkRjMvUmIydC95SGdpUGxiQ3NoWXBpNWYvcko3bnpiUTFjYTJMelgzc2FCZTUzVmZOUVFWMHpkNXVNMERUCitTcm1BS1UxUklBajJXbFpGV1hvTjROV1R5UnRxVDVzdVBIYTJ5OEZsQ1dNWktsUzBGaVk0cGZNMjBiNVlRK0VMCis0enFiOXpONTN1L1RkWVplZ3JmU2xjMzBObDlHMTNNZ2krOHJ0UEZLd3N4eDA1RUJiaFZyb0g3YUtWSTFkanNmCitFMU1WclV6dzYyUEhpazN4bHp6blhNTDhPalkvL3hLZWlDV2NzQXB1R0NhSUFmN1RzVFJpMmw4RE5CM3JDcjFYCitBZ01CQUFHamdiUXdnYkV3RGdZRFZSMFBBUUgvQkFRREFnSUVNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUV3CitIUVlEVlIwT0JCWUVGRy9teFd3SHQyeUxDb0dTZzF6TFFSNzJqdEVuTUVzR0ExVWRJQVJFTUVJd1FBWUpLd1lCCitCQUdnTWdGYU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzZDNjdVoyeHZZbUZzYzJsbmJpNXVaWFF2CitjbVZ3YjNOcGRHOXllUzh3SHdZRFZSMGpCQmd3Rm9BVUhpTmo4SVcxOWlWTzdSckFVTDVsZk1mVUZYb3dEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dFQkFGcktwd0ZtUmg3QkdkcFBaV2MxWTZ3SWJkVEFGNlQrcTFLd0RKY3lBamdKCitxVGhGcDN4VEF0M3R2eVZyQ1JmN1QvWUFSWUUyNEROYTBpRmFYc0lYZVFBU0RZSEpqQVo2TFFUc2xZQmVSWUxiCitDOXY4WkUyb2NLU0NpQzhBTFlsSldrMzlXb2IwSDFMazZsMnpjVW8zb0tjekdpQWNScmxtd1Y0OTZ3dkd5dGVkCisyUkJjTFpybzd5aE9PR3I5S01hYlYxNGZObDBsRyszMUoxbldJMmhnVHFoNTNHWGcxUUgyWXBnZ0QzYjdVYlZtCitjNkdaYVgzN04zejE1WGZRYWZ1QWZIdDEwa1lDTmRlUHpDOXRPd2lySElzTzhscnhvTmx6T1N4WDhTcVFHYkJJCisra1dvZTUrU1kzZ2RPR0dEUUtJZHczVzFwb01OOGJRNXg3WEZjZ1ZNd1ZVPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NUTSBUUE0gRUNDIEludGVybWVkaWF0ZSBDQSAwMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNaVENDQWV5Z0F3SUJBZ0lFUUFBQUFqQUtCZ2dxaGtqT1BRUURBekJPTVFzd0NRWURWUVFHRXdKRFNERWUKK01Cd0dBMVVFQ2d3VlUxUk5hV055YjJWc1pXTjBjbTl1YVdOeklFNVdNUjh3SFFZRFZRUUREQlpUVkUwZ1ZGQk4KK0lFVkRReUJTYjI5MElFTkJJREF4TUI0WERURTRNVEV5TWpBd01EQXdNRm9YRFRNNE1URXlNakF3TURBd01Gb3cKK1ZqRUxNQWtHQTFVRUJoTUNRMGd4SGpBY0JnTlZCQW9NRlZOVVRXbGpjbTlsYkdWamRISnZibWxqY3lCT1ZqRW4KK01DVUdBMVVFQXd3ZVUxUk5JRlJRVFNCRlEwTWdTVzUwWlhKdFpXUnBZWFJsSUVOQklEQXlNRmt3RXdZSEtvWkkKK3pqMENBUVlJS29aSXpqMERBUWNEUWdBRTA4dDMzYUdNNU01YWVCbXpjbjVIM0hTMzFDR0JKMmJiSjZmdkpKMGkKK1ZDZlpyTjlzZXNMMEQrTkdmd3RFa2xrN21nVC8ydmZXMmRPOU9xc3l1a1N3MmFPQnJ6Q0JyREFkQmdOVkhRNEUKK0ZnUVVaaTJQSE96ZjhVZW90dkRxS1dyMzhreXQrYzh3SHdZRFZSMGpCQmd3Rm9BVUlKSldQQXREcUFWeVV3TXAKK0J4d0g0T3ZzQXdRd1JRWURWUjBnQVFIL0JEc3dPVEEzQmdSVkhTQUFNQzh3TFFZSUt3WUJCUVVIQWdFV0lXaDAKK2RIQTZMeTkzZDNjdWMzUXVZMjl0TDFSUVRTOXlaWEJ2YzJsMGIzSjVMekFQQmdOVkhROEJBZjhFQlFNREFRUUMKK01CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdDZ1lJS29aSXpqMEVBd01EWndBd1pBSXdKbDRxNlF1R2hxUUQKK3B2UDFnQkJ1OE9oYlFBWEw4UndoZzFGV3M4QnZDNFZZdDZUcWU5eExxamJ0YmdSOFVPeXZBakFoelNiQytyOEEKKzJXeDFhT3dBSXFzMXRtQlhwb2ZxY09YWWVDU1hLYWpPdjVKbHprNnNEbkVIMm9tTit5ZHQ5MjQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworU1RNIFRQTSBFQ0MgSW50ZXJtZWRpYXRlIENBIDAzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQ1pqQ0NBZXlnQXdJQkFnSUVRQUFBQXpBS0JnZ3Foa2pPUFFRREF6Qk9NUXN3Q1FZRFZRUUdFd0pEU0RFZQorTUJ3R0ExVUVDZ3dWVTFSTmFXTnliMlZzWldOMGNtOXVhV056SUU1V01SOHdIUVlEVlFRRERCWlRWRTBnVkZCTgorSUVWRFF5QlNiMjkwSUVOQklEQXhNQjRYRFRFNE1URXlNakF3TURBd01Gb1hEVE00TVRFeU1qQXdNREF3TUZvdworVmpFTE1Ba0dBMVVFQmhNQ1EwZ3hIakFjQmdOVkJBb01GVk5VVFdsamNtOWxiR1ZqZEhKdmJtbGpjeUJPVmpFbgorTUNVR0ExVUVBd3dlVTFSTklGUlFUU0JGUTBNZ1NXNTBaWEp0WldScFlYUmxJRU5CSURBek1Ga3dFd1lIS29aSQoremowQ0FRWUlLb1pJemowREFRY0RRZ0FFR2FEck1ZOHVZZHEzVUdwZjhPaTh5UDQvSm9GRTFhSEZlTGRrcXJROQorQlBDTXk0eEVHdHRWeWNMTWo1Tkg0N3YzdFgzRjlpWFRKWHNzd2FySk1KK2JtYU9CcnpDQnJEQWRCZ05WSFE0RQorRmdRVW5hWEhMS0FMNFV1RnMrVTF5TEI4ZytoYjMvWXdId1lEVlIwakJCZ3dGb0FVSUpKV1BBdERxQVZ5VXdNcAorQnh3SDRPdnNBd1F3UlFZRFZSMGdBUUgvQkRzd09UQTNCZ1JWSFNBQU1DOHdMUVlJS3dZQkJRVUhBZ0VXSVdoMAorZEhBNkx5OTNkM2N1YzNRdVkyOXRMMVJRVFM5eVpYQnZjMmwwYjNKNUx6QVBCZ05WSFE4QkFmOEVCUU1EQVFRQworTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0NnWUlLb1pJemowRUF3TURhQUF3WlFJeEFONW9LbzczK08yUgorZ0YxMGVDRGlvSGd3TGlsRWFYVHFuek94dUZ3ckNkODFyK1I0Z3lEaHRjTVFVVDVhYW9iSkFnSXdKZzVaVTZKNgorVzRkZ1B2VXJQZ0o2aU1oUmMyZlFsSk5QK0RRYmJzRlArMUNTSm1QUDF6TVBsQm5RUFVHTjUzcEUKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitTVE0gVFBNIEVDQyBSb290IENBIDAxCis9PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUN5RENDQWsrZ0F3SUJBZ0lPUnl6THAvT2RzQXZiOXIrNjZMb3dDZ1lJS29aSXpqMEVBd013Z1lzeE96QTUKK0JnTlZCQXNUTWtkc2IySmhiRk5wWjI0Z1ZISjFjM1JsWkNCRGIyMXdkWFJwYm1jZ1EyVnlkR2xtYVdOaGRHVWcKK1FYVjBhRzl5YVhSNU1STXdFUVlEVlFRS0V3cEhiRzlpWVd4VGFXZHVNVGN3TlFZRFZRUURFeTVIYkc5aVlXeFQKK2FXZHVJRlJ5ZFhOMFpXUWdVR3hoZEdadmNtMGdUVzlrZFd4bElFVkRReUJTYjI5MElFTkJNQjRYRFRFMU1UQXkKK09EQXdNREF3TUZvWERUTTRNREV4T1RBek1UUXdOMW93VGpFTE1Ba0dBMVVFQmhNQ1EwZ3hIakFjQmdOVkJBb1QKK0ZWTlVUV2xqY205bGJHVmpkSEp2Ym1samN5Qk9WakVmTUIwR0ExVUVBeE1XVTFSTklGUlFUU0JGUTBNZ1VtOXYKK2RDQkRRU0F3TVRCMk1CQUdCeXFHU000OUFnRUdCU3VCQkFBaUEySUFCRzcvT0xYTWlwclFRSHdObmtwVDZhcUcKK3pPR0xjYmJBZ1V0eWpsWE9adHV2MEdCMHR0SjZmd013Z0Z0dDhSS2xrbzhCd244OS9Cb1pPVWNJNG5lOGRkUlMKK29xRTZTdG5VM0kxM3FxamFsVG9xM1JuejYxT21uNk5FcksxcHhVZTNqNk9CdFRDQnNqQU9CZ05WSFE4QkFmOEUKK0JBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQVRBZEJnTlZIUTRFRmdRVUlKSldQQXREcUFWeVV3TXAKK0J4d0g0T3ZzQXdRd0h3WURWUjBqQkJnd0ZvQVVZVDc4RVprS2Y3Q3BXNUNnSmw0cFlVZTNNQU13VEFZRFZSMGcKK0JFVXdRekJCQmdrckJnRUVBYUF5QVZvd05EQXlCZ2dyQmdFRkJRY0NBUlltYUhSMGNITTZMeTkzZDNjdVoyeHYKK1ltRnNjMmxuYmk1amIyMHZjbVZ3YjNOcGRHOXllUzh3Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3V251VUF6d3kKK3ZIVWhIZWh5bUtUWjJRY1BVd0hYMExkY1ZUYWM0b2h5RUwzemN1di9kTTBCTjYya0Z4SGdCT2hXQWpBSXh0OWkKKzUweUF4eTBaL01lVjJOVFhxS3BMd2RoV051ek9TRlpuelJLc2g5TXhZM3pqOG5lYkRObEhUREdTTVIwPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NUTSBUUE0gRUNDMzg0IEludGVybWVkaWF0ZSBDQSAwMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNoVENDQWd5Z0F3SUJBZ0lFUVFBQUFUQUtCZ2dxaGtqT1BRUURBekJPTVFzd0NRWURWUVFHRXdKRFNERWUKK01Cd0dBMVVFQ2d3VlUxUk5hV055YjJWc1pXTjBjbTl1YVdOeklFNVdNUjh3SFFZRFZRUUREQlpUVkUwZ1ZGQk4KK0lFVkRReUJTYjI5MElFTkJJREF4TUI0WERURTRNVEV5TWpBd01EQXdNRm9YRFRNNE1URXlNakF3TURBd01Gb3cKK1dURUxNQWtHQTFVRUJoTUNRMGd4SGpBY0JnTlZCQW9NRlZOVVRXbGpjbTlsYkdWamRISnZibWxqY3lCT1ZqRXEKK01DZ0dBMVVFQXd3aFUxUk5JRlJRVFNCRlEwTXpPRFFnU1c1MFpYSnRaV1JwWVhSbElFTkJJREF4TUhZd0VBWUgKK0tvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXdyUmcvVUF1QkZYNVF5bHl0bGNadVFxSEtFMUp0S0dobnM3YndWTUwKK2NVYWtFU2RHbVV3dDNkU2RpNWFOZTRYMWJKOTZKUmpFWXBVVWpGb21ZRUVxYjNhbnJhMFhGQWZreGxveTJaOEcKK1RURGxma1A4QWtSRjUyMlN5TzNkMzhYam80R3ZNSUdzTUIwR0ExVWREZ1FXQkJTOWxqNmExWFNxMlUrdGJMOUIKK2JkaGJTbFdaUWpBZkJnTlZIU01FR0RBV2dCUWdrbFk4QzBPb0JYSlRBeWtISEFmZzYrd0RCREJGQmdOVkhTQUIKK0FmOEVPekE1TURjR0JGVWRJQUF3THpBdEJnZ3JCZ0VGQlFjQ0FSWWhhSFIwY0RvdkwzZDNkeTV6ZEM1amIyMHYKK1ZGQk5MM0psY0c5emFYUnZjbmt2TUE4R0ExVWREd0VCL3dRRkF3TUJCQUl3RWdZRFZSMFRBUUgvQkFnd0JnRUIKKy93SUJBREFLQmdncWhrak9QUVFEQXdObkFEQmtBakFRQy96dDFNZ3Z4MitvdkRnd3RETmg0cjhhQVRkUUloLzgKK0JuUjNvSDhna0s1MmVZRFlDS2Jaa0lYMUgwUWgxdDRDTUJyR0djTEJZU01mOFFGN3BGTDMvYUlEU0JQaTZpZloKK08wRzJtVmttU0Z4a0dKR2cyVU5BeUpYSDdXaEsvSkM1R2c9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NUTSBUUE0gRUNDMzg0IEludGVybWVkaWF0ZSBDQSAwMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNoakNDQWd5Z0F3SUJBZ0lFUVFBQUFqQUtCZ2dxaGtqT1BRUURBekJPTVFzd0NRWURWUVFHRXdKRFNERWUKK01Cd0dBMVVFQ2d3VlUxUk5hV055YjJWc1pXTjBjbTl1YVdOeklFNVdNUjh3SFFZRFZRUUREQlpUVkUwZ1ZGQk4KK0lFVkRReUJTYjI5MElFTkJJREF4TUI0WERURTRNVEV5TWpBd01EQXdNRm9YRFRNNE1URXlNakF3TURBd01Gb3cKK1dURUxNQWtHQTFVRUJoTUNRMGd4SGpBY0JnTlZCQW9NRlZOVVRXbGpjbTlsYkdWamRISnZibWxqY3lCT1ZqRXEKK01DZ0dBMVVFQXd3aFUxUk5JRlJRVFNCRlEwTXpPRFFnU1c1MFpYSnRaV1JwWVhSbElFTkJJREF5TUhZd0VBWUgKK0tvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRUNKbDVVYkV5ekRic3B2UVMwZ0JITDh6VEFTNjJpVTllNXd6dzk2dXYKK2xJWGh0VFE3YnRjVTlnSVJOZjlTZkk1ZWtpd3ByVWJOUmYrY3FlN2Z5Sy9uVU41K3MwWUVwdlVNdERoMTVML2sKKzh6NGZvdzhFTENMUzJDcEV3em1ONHhJc280R3ZNSUdzTUIwR0ExVWREZ1FXQkJRSXk3QmNwRkVMS25NcGtZVHQKKzNKek9RcEVTRVRBZkJnTlZIU01FR0RBV2dCUWdrbFk4QzBPb0JYSlRBeWtISEFmZzYrd0RCREJGQmdOVkhTQUIKK0FmOEVPekE1TURjR0JGVWRJQUF3THpBdEJnZ3JCZ0VGQlFjQ0FSWWhhSFIwY0RvdkwzZDNkeTV6ZEM1amIyMHYKK1ZGQk5MM0psY0c5emFYUnZjbmt2TUE4R0ExVWREd0VCL3dRRkF3TUJCQUl3RWdZRFZSMFRBUUgvQkFnd0JnRUIKKy93SUJBREFLQmdncWhrak9QUVFEQXdOb0FEQmxBakVBdlU5NlViVjZCcHhhRlh5S28ySFRaV1dEaHRQQjkvWXoKK3grSy9sekZHRVR5NzV1Ymx4RVF5enlRV2k5b1hYei85QWpBNllZVGlibE53K0pwQkVJaWV2T0RlaVk2K1FDQUkKK0tGejBnL3NLeXF1cWhZTjFKblNhT2F1MmhuNkptelVRWEtzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1NUTSBUUE0gRUsgSW50ZXJtZWRpYXRlIENBIDA2Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEekRDQ0FyU2dBd0lCQWdJRVFBQUFCekFOQmdrcWhraUc5dzBCQVFzRkFEQktNUXN3Q1FZRFZRUUdFd0pECitTREVlTUJ3R0ExVUVDaE1WVTFSTmFXTnliMlZzWldOMGNtOXVhV056SUU1V01Sc3dHUVlEVlFRREV4SlRWRTBnCitWRkJOSUVWTElGSnZiM1FnUTBFd0hoY05NVGd4TURNeE1EQXdNREF3V2hjTk16Z3dNVEF4TURBd01EQXdXakJWCitNUXN3Q1FZRFZRUUdFd0pEU0RFZU1Cd0dBMVVFQ2hNVlUxUk5hV055YjJWc1pXTjBjbTl1YVdOeklFNVdNU1l3CitKQVlEVlFRREV4MVRWRTBnVkZCTklFVkxJRWx1ZEdWeWJXVmthV0YwWlNCRFFTQXdOakNDQVNJd0RRWUpLb1pJCitodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU92SWpYQkxiVkJmSUM3U0ZqY3o0aG02UjBJeXVSSnBKNDVuCitwWXl0bEFIbW9Wb3NvVDNpc2w1MlQ0VUI0VDFyMWI4eTdZK3ZXM0VkMHNaTyttL3BIdFVjNWg5MDUweW5HZWR0CiswdXZ1TloxY1ZuWDJoL1hUY2RLSWF3cUVCVlhSWlE1T0pNcC9hRGxVd3NVZUJUK1NsaEFhZ05obXlOdzJ0QzJhCitiNWQ3cXI4RlUwM0RzNmlvODkyYVNEMjN6NTF5TEFpeDEyMXVVSElQbUhCeWFaUm5hS2N0VGJ1N3Vsd0lObHJkCitjQjk1M1owV1ZRaGlsNXlqWnMxNHlkNHlBbkEzWjFaVyttck9rcjhlaFZzVWJ2clV4eWZoTUluTXJFVEl4UjRSCis5WDVjVElWaWEyU1ZUdGZxcmI2WE1DMS9UN0sxUEg5MFFYdGx0M1dJTE1NTkpoTER5K2tDQXdFQUFhT0JyakNCCitxekFkQmdOVkhRNEVGZ1FVK3hmWERYTkljT2taeE9qbUE1ZGVaazRPUTk0d0h3WURWUjBqQkJnd0ZvQVViK2JGCitiQWUzYklzS2daS0RYTXRCSHZhTzBTY3dSUVlEVlIwZ0FRSC9CRHN3T1RBM0JnUlZIU0FBTUM4d0xRWUlLd1lCCitCUVVIQWdFV0lXaDBkSEE2THk5M2QzY3VjM1F1WTI5dEwxUlFUUzl5WlhCdmMybDBiM0o1THpBT0JnTlZIUThCCitBZjhFQkFNQ0FnUXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBCitPaXdpcGVWSjR5Sy9oQkY2S2dmY0NVbHRscW1vUG9IeWZmemZwUGpOQmVZcW1kYVJxeEpkYlk5RmFTcmNiSkJBCitoS1JIZldZUENCMDNUbldzdG1mYWRnemJDLzhtSVR4NTZDYjJFWHB2WWhyQXU4RzdhNTRoMHNJaEVsb0svRkF4CitaZGdnM1kydG5QaGloUTgweGRxdGFaUm9YcWppcUtxMXA3SUh3dFFaaUZDQ0NEMWpueThxZlpMQ09ZeDUwL21KCitRWGs4V3Z6UGwweHNBT2hwNUlkNk9BZXEvNmRtd2pVQnBaQnpod21ibnQ1a1g3T0tudW9WcjNIKzhYMVp5Y3o4CitscTN6bllxTWFQV0RUSVFtNmdubS8vYWhiOWJCTjBHTDU3ZlQ2UnVOeTZqSDdTUlpZWjR6WlJ0QUh5UG9nQS9iCitnYkJzWHIwTnJIaDY3MVkxajRjT1lBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitTVE0gVFBNIEVLIEludGVybWVkaWF0ZSBDQSAwNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRHpEQ0NBclNnQXdJQkFnSUVRQUFBQ0RBTkJna3Foa2lHOXcwQkFRc0ZBREJLTVFzd0NRWURWUVFHRXdKRAorU0RFZU1Cd0dBMVVFQ2hNVlUxUk5hV055YjJWc1pXTjBjbTl1YVdOeklFNVdNUnN3R1FZRFZRUURFeEpUVkUwZworVkZCTklFVkxJRkp2YjNRZ1EwRXdIaGNOTVRneE1UQTFNREF3TURBd1doY05Nemd3TVRBeE1EQXdNREF3V2pCVgorTVFzd0NRWURWUVFHRXdKRFNERWVNQndHQTFVRUNoTVZVMVJOYVdOeWIyVnNaV04wY205dWFXTnpJRTVXTVNZdworSkFZRFZRUURFeDFUVkUwZ1ZGQk5JRVZMSUVsdWRHVnliV1ZrYVdGMFpTQkRRU0F3TnpDQ0FTSXdEUVlKS29aSQoraHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLa2l6N2lmRmlwNWVJRHlLQ05CVkx0eFNYRmV1SEJjTGJjVworMjVxbWwwdWVBSGhQUk85MXFMOEczUHNheTZzazQ3UWlpcFZDTTBKbi9JR2I1SURPdG10WlZXT0lLZGJTUEJoSAorY2JiMWhCa0dNYVJKOHZWUDRjY3hwMXowekhJVFFJdEtnRTFPLy9wY0xzNUYzR1VLY0ZWQlRJZklTcjdpeTRsSQorQ1JwOHRONUNnOENXUjBWeDREcXBjNEMvdzVLRzZpME1HYWNCRThOOWVOWVluL01Eb2hDRy91MHBQNnBKb2lRSAorZWVrZzd4WTdQQWViSURlRlVQd213QkRKTGwwT1c1a293VHdGZVkyWHlDMXRDMFY4cWpDYWpzVStnUjNjdytsQQorQ1V5eE03M3c1TU16dzFzdy9PNm9NczBvSzF2R25pMFBvSmRTZXl5MmpJTS93ekthV0FFQ0F3RUFBYU9CcmpDQgorcXpBZEJnTlZIUTRFRmdRVWF5ZUFnQXFVSExSKys4cTkyTkh3SFZLYjgyd3dId1lEVlIwakJCZ3dGb0FVYitiRgorYkFlM2JJc0tnWktEWE10Qkh2YU8wU2N3UlFZRFZSMGdBUUgvQkRzd09UQTNCZ1JWSFNBQU1DOHdMUVlJS3dZQgorQlFVSEFnRVdJV2gwZEhBNkx5OTNkM2N1YzNRdVkyOXRMMVJRVFM5eVpYQnZjMmwwYjNKNUx6QU9CZ05WSFE4QgorQWY4RUJBTUNBZ1F3RWdZRFZSMFRBUUgvQkFnd0JnRUIvd0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQQoramFWcm13eTJrQWEzdzNsU0Z4eFpxcnlaeFJLYWhzYjNQVzFpWmRlVFM0RXZtNDlRNER4dElCQzEreHpreFdxbgorM2RyaGJXSXM0MjV4dFNYYWxxaEsvNG1KeVpQMVIvOU1YK2hyNU13SkszWFBzYlIyUWlCL3RtNmRzbG5rMWk1MgorcWFDcXVLQmpvSW5oTE9OVmVkcE4rTGtLZHN5WTlQTUpGWTdmVVR2YXhRVHN3M2Mwb292Y1JEZ0p3eXZGclBMLworN3AvR0grQ3hQQjc4QWpOeDZQeVRqRjExcGtlay94Z0M2V0ZaWG5zeTA3QlA2Nk9WcEJYUTNrR1ZDVFp5eHNDcAorNUtna2ZCVHBvNGVmYUwxTklkR2xDWUcxeXp2bHkrTDM4eHpjNFpRbDJGOGpSTmdrZ0pFN1FMV28wc3BaZmIrMAorUUxnT3dmN2tZblZSMGI0WEg3MG5MZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworVEdMIFBST0QgMDAwMDIwMDQgT25EaWUgQ0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUM4RENDQW5XZ0F3SUJBZ0lVVWFyeThZTThRUDhMeEZwYndYOWZPdFdaMmI0d0NnWUlLb1pJemowRUF3TXcKK1FERW1NQ1FHQTFVRUN3d2RUMjVFYVdVZ1EwRWdRMU5OUlNCSmJuUmxjbTFsWkdsaGRHVWdRMEV4RmpBVUJnTlYKK0JBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd0hoY05NVGt3TlRBeE1EQXdNREF3V2hjTk5Ea3hNak14TWpNMU9UVTUKK1dqQklNUzR3TEFZRFZRUUxEQ1ZQYmlCRWFXVWdRMU5OUlNCUVgxUkhUQ0F3TURBd01qQXdOQ0JKYzNOMWFXNW4KK0lFTkJNUll3RkFZRFZRUUREQTEzZDNjdWFXNTBaV3d1WTI5dE1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSUQKK1lnQUV2WVZQcDc0WThOZ0xqNVZaNzh1Zkw0SHRyajEvNmNQR0dlTUhWRjBlY2V5bGVWQ3lHTDhEdDdYbEZ3SVEKK29WNEVpZ0V5bUJ1ekhpTXRmMkE1K1M0MFgxVGhTY0lHTEp4ejRSK2VwNWFobUZqd0UrMUdSTnRtcjBPWVJPWkIKKzNhbDFvNElCSmpDQ0FTSXdIUVlEVlIwT0JCWUVGTEJtMldsL1hUb0h0Q1hCRDFoOHp1enhiLzVZTUI4R0ExVWQKK0l3UVlNQmFBRkdHYUNuaVdpQVBNWVpDb3BUK1FiWFY4bjJscU1BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RnWUQKK1ZSMFBBUUgvQkFRREFnRUdNR2NHQ0NzR0FRVUZCd0VCQkZzd1dUQlhCZ2dyQmdFRkJRY3dBb1pMYUhSMGNITTYKK0x5OTBjMk5wTG1sdWRHVnNMbU52YlM5amIyNTBaVzUwTDA5dVJHbGxRMEV2WTJWeWRITXZUMjVFYVdWZlEwRmYKK1ExTk5SVjlKYm5SbGNtMWxaR2xoZEdVdVkyVnlNRllHQTFVZEh3UlBNRTB3UzZCSm9FZUdSV2gwZEhCek9pOHYKK2RITmphUzVwYm5SbGJDNWpiMjB2WTI5dWRHVnVkQzlQYmtScFpVTkJMMk55YkhNdlQyNUVhV1ZmUTBGZlExTk4KK1JWOVFjbTlrZFdOMExtTnliREFLQmdncWhrak9QUVFEQXdOcEFEQm1BakVBb3FkNWxUSWhTZERkOVBDUmx0V0cKK3JrS29XTDlXdFRUdW1qc3lUVWxWQXJOU2hEYmNNelVlbTBrdUYzTGdWQy9tQWpFQTl1cTNVMU5NM2hYSThYN0cKKzk3RXRidEU2UHdtSE5oZTZpRThZcjA5SnNwYUxsUUJBVFA0cS9Yd05idE5yaEQ1NAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dQVExQRVBJRFByb2QgRUsgUGxhdGZvcm0gUHVibGljIEtleQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUR3RENDQTJhZ0F3SUJBZ0lVQzVIbXF2b2lrOGZsS1ZQSTU5RG1DZ3p4Y3hJd0NnWUlLb1pJemowRUF3SXcKK2dZY3hDekFKQmdOVkJBWU1BbFZUTVFzd0NRWURWUVFJREFKRFFURVVNQklHQTFVRUJ3d0xVMkZ1ZEdFZ1EyeGgKK2NtRXhHakFZQmdOVkJBb01FVWx1ZEdWc0lFTnZjbkJ2Y21GMGFXOXVNU0V3SHdZRFZRUUxEQmhVVUUwZ1JVc2cKK2NtOXZkQ0JqWlhKMElITnBaMjVwYm1jeEZqQVVCZ05WQkFNTURYZDNkeTVwYm5SbGJDNWpiMjB3SGhjTk1UUXcKK056STVNREF3TURBd1doY05ORGt4TWpNeE1qTTFPVFU1V2pDQmx6RUxNQWtHQTFVRUJnd0NWVk14Q3pBSkJnTlYKK0JBZ01Ba05CTVJRd0VnWURWUVFIREF0VFlXNTBZU0JEYkdGeVlURWFNQmdHQTFVRUNnd1JTVzUwWld3Z1EyOXkKK2NHOXlZWFJwYjI0eE1UQXZCZ05WQkFzTUtGUlFUU0JGU3lCcGJuUmxjbTFsWkdsaGRHVWdabTl5SUZkUVZGOU0KK1VGOUZVRWxFWDFCeWIyUXhGakFVQmdOVkJBTU1EWGQzZHk1cGJuUmxiQzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUIKK0JnZ3Foa2pPUFFNQkJ3TkNBQVJubFM2NjdscVVSU3BnOXBGK0RFUmlIb29hTEJOTGhjRG1YNzhVRU5VYUpibGkKK2hzaFgyOTBRcVNDRG4vaTJrYythSy9EZmU0c3JGbDFzNDFnRzhmTklvNElCbkRDQ0FaZ3dId1lEVlIwakJCZ3cKK0ZvQVU2RklGd2svWTB0V2xJVWNXdHM0TWUxdTZkdzh3SFFZRFZSME9CQllFRkJSUkp0RDl0VDZaa0gxdnh2OGIKK2tFVmJuakpLTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJNR0ExVWQKK0pRRUIvd1FKTUFjR0JXZUJCUWdCTUhBR0ExVWRJQUVCL3dSbU1HUXdZZ1lLS29aSWh2aE5BUVVDQVRCVU1GSUcKK0NDc0dBUVVGQndJQkZrWm9kSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk0KK0wyVnJZMlZ5ZEM5RlMyTmxjblJRYjJ4cFkzbFRkR0YwWlcxbGJuUXVjR1JtTUZ3R0NDc0dBUVVGQndFQkJGQXcKK1RqQk1CZ2dyQmdFRkJRY3dBb1pBYUhSMGNEb3ZMM1Z3WjNKaFpHVnpMbWx1ZEdWc0xtTnZiUzlqYjI1MFpXNTAKK0wwTlNUQzlsYTJObGNuUXZSVXRTYjI5MFVIVmliR2xqUzJWNUxtTmxjakJOQmdOVkhSOEVSakJFTUVLZ1FLQSsKK2hqeG9kSFJ3T2k4dmRYQm5jbUZrWlhNdWFXNTBaV3d1WTI5dEwyTnZiblJsYm5RdlExSk1MMlZyWTJWeWRDOUYKK1MxOVFiR0YwWm05eWJTNWpjbXd3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU1wVnkyaCtzdXlZaWRCdmxjVysKKysvQlM4SzNYSWY3L28yTUpxY1RqYVRCSUFpQkFKVWxIZnJRSVVFVmVnUnF0TGdnSTd3OFRaNHlIaEpRb2RLZWYKKzJETDZqQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIEFNRCBLRVlJRCA1NzhDNTQ1Rjc5Njk1MTQyMTIyMUE0QTU3OEFDREI1RjY4MkY4OUM4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFxOGVveXpLQ0hIWWp3QUFBQUFDcnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGN6T1ZvWERUSTFNRFV3T0RFM05UY3pPVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVRk5SQzFMUlZsSlJDMDFOemhETlRRMVJqYzVOamsxTVRReU1USXlNVUUwUVRVM09FRkRSRUkxUmpZNE1rWTQKK09VTTRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXVCK3FVK0pISU5kek4zcHAKK1Q1Q3ZMNzRQUFhRWTdKOTBqbUZPUXRxZWYweVF6K2VzVmlXcXJZcEdoeXNPK2diaEp0MnhrU0dRWm93b1dzQXIKK09yOTlHWDlRQ21XTk5tSVNPcGhCdk1wYjdvRHU1REZ6dGE5Yk1acmR2SUlsa1NQRjRPYkYrU2E3c29CU2tKaWoKK3AxZUJ3SGdoT1JVTDA2d09LVHd3SDl2UUtRek13cG1MeVVGOEoybzc3T1RMWEg1SXMxUndzR1FWZVhnTDQvdTYKK1BVekxzY3FkakovVE5wMldOS3U1UHhQbmhLanVuV3dwQm4vczZ3M0dHOElwaVhLb3Zmd2JvRWdJallNRzV1cmwKKzhmNHliQlY3OXc2OHljbndLcktadkRrcU1DL0pLckFZQytrMDZweU9DL2lNYjBqeS8vb1U0Q1hSTENNT2YraVgKK1lIKy9RNDVwUHVHWm9RV2ZnNU9MK3NSZ2tjODRKdTdGMjBESGJkWmZEemZmVjJ0ZmZGQ2VZaFdMSEV6dWlFSEwKK1VOQ1dyNnRKUlM4Tm93dUY0emhWUlA5UUVDU0tLNFhkenJXRkdxSEVOeVJhLzJXWUdGS3FjUEFDMXdEa2xkb0kKK1VaMGx4cHZvcTRNV1o3ZGg4c3QwRE5Xck00Nnljcy9pUktNRkEyNitleXFKUk9iVEw0TkZuSnlMRDdsNFB6K00KK3AxancwRVRMeDh0V2VWemVwNDdaNEdGYm1IYnd1eXljQ2MreE9sei9BSW4wanNZc1pIT0NrUitxOEpwYVdQSHMKK2VVZFFJRHVYVWdDeHg4czNPc2dxWWpTT0lkeklONDNQT20vekF2WEV6VmF6dkg0dHEzMlBxMCs0Q0U1MjVBd0EKKzVMN1dnMkNDdytBS2dnM0V5U2VSM3E1MSs2VUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZGSitkb1NkSkJuaDVIeGEKK3JDcjJSZ0pCQUNHcU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBTEt4eVQvNnhkNGJQMTIxVW9qT0tNWkVMZzJQWndKZGQ1WHJ3YWxac0ZJZWgKK1k3cTJxbXI2UVdZYis4REQrbXBCU3IyV1BteFRxRmVIaFRFSS8vYjZmMEZnd2JPeVAwWWFrWnpKSThsS0txNWMKK1Z0WTVCbDhEdVpkNWtrWlJyZmcwcGFVU0pVUmNIOE1hVG93cnZXQWdNOEVJK1kyQUxoRFh6Yk9pQUcrR2czU0UKK2ZzV09YaXhEVTcyZkZuQXBrKzZ4S1pmWjUxSEJzWU1wTmwxRG4rZW0xR1VsY0hpNjlLMGtCeUFYcStSNVZZelQKKzlUUXJMeFJtUFlmdmJMTzcrQTdiRHBYTU16WG9JellVZDUxZFRQdWVFS0xFUmZYK3JLR09QTFhZSGI0K2hRNWcKK3NVSHFERkZEL0hUc2F0dEZQZ0x4eGI2WlVKNmR4UGpZNmc0clo1WWdya05SdUhMcXcyRXUyUVRIQno4MVhKV0cKK2Rta0htQThIOFpMYk9HOEVtUEtlKzNUWm5aVVBqSTlWUTMwQzRiT3lJMU9iNzVIVkE4SUhjWllxTzZYNVJwKzkKK1Y5dmxpeW1TbmEvU1Yzb2cvWE9LZnVVdnR5TDd6dTNORTZEOWp2OG5BbXpwMzBlc0hjQ3FaZVUxc0ZOWWZjQlEKK25kcVJYQ0VZZUJYOWk4R0FqbGQ0dWNKNGRhQ3VYdHFSUnBIb0RuN3Z5MXJ4cDNxZE03OGVqK2FKdHZxMkJvZFkKK2VaZkRKMGY0Z2tVVUhGUUNLMm5VekpOYWVRWUg0aDMxb1hZaVdETzVtMzZUejRaUnRWUy8xVEdadW8waFpuNisKK0o3YmFuMno2dkpqUHdUZzBkWldWMnhlS3kzRWhJb2JsN01uNktxZFRBRUZ1ZCtFY1Fmd1h2NFFDTXpwaTQrND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgQU1EIEtFWUlEIENCQjNGNzI2RTcyQzM3QkY3RTlDNkNGQUE2RUYwNkY4OEZEMUZDNEMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBV29SMXdsM2JabzJ6UUFBQUFBQmFqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3pNREl4TWpnd01Wb1hEVEk1TVRJek1USXhNamd3TVZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVUZOUkMxTFJWbEpSQzFEUWtJelJqY3lOa1UzTWtNek4wSkdOMFU1UXpaRFJrRkJOa1ZHTURaR09EaEdSREZHCitRelJETUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF4NTkyV251WkgwZGo1VFZxCitrcG1teWJSUGZiMUJyc29QQ0VhczM5a1JCM0cxZHVkYU1Db0VNSUNQNU9xWkwxbmptSEZCY1Q2SWc1V1pDemdmCis1aVBZQ204a1VPRFRSNkpZanp0VlE0NWJUQWxaWkx6dWhHQ2FJdUZXeVVtS1QvUi9YcTI1ai8yNFFwNkFBSnI4CitRQUJrakFKQ1dLVUtTL0NVdS80VGN5S0x2SFhIK2NuNU81b0pYWUU1RWZraVdwUGpGeVNwc1ZmTC9yK0V0dmtTCitWYWoxdDFhN0k4em9aLzcrT1djQmdScGJ3RUhIRTh1WE1DQ1VSWm16ajI0S0tLbEdJUGF4cEVpZFJJZnY2bk4zCituSkorbXNJaWZXZ1FDeWZLNFlUWkRLUlROcFhSZkxuaFhoektEamg4UXZXQXdOaFZWd0ZaeGdvYzlKOE02M2FKCitycDNYelFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVlWFpDaUM1OU1YQTYrT3JxcGg3bUhjTWRmSUl3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQVdQeWtFCitzTW1IclJQcXhjYzdmWE40MDA4clRHaTFqWlpTaUNOYkRPUzdBb211bmc5a3hhcUJqWTQvQWdxTnM0Mmo3QnJ3CitmQmVtSWxMVzNMN1NrNy8wdDMrVnZIV3ZVaFNuZG02K01xb0ZuMUFNV1lmZ0pWOHZYZTZ6SlNMbnJVdVFQNWo4CitxdkRwRUtyTjlKRTAwM21FOFpkbWpUT09GdUF1RUZEakphV3JYS1JIN3BoWVFKRTlqWXRjaVdnMGpYd3k1NDdICitVVGg0UUk1QWs0T0J1YUlwQk85NldoRks2WFZJR2lvcFQxUU1hNmYxelYzOGJ4c3JWMmsrTGxmdWJWamp1OXQ2CittUTFxTEkzNXhaYzgwSGJ5REVkanplVmNFbkhRSStXd2FlWkRWZkJERUZUQTlwaTRGMURjQ0ZvNUFleHg5bGJVCitETGNxeHRwUXgxbkVTU2lERWNhOEdkT1RVNE1wSHhxOXFnTjltbElPeGxwa08ycGVoQ0ZQRHJ4UnI0aCtVZTMzCitSOUlDK3ZHWmQyYjQ0eWowZnJlYkR5eEdzU0NrbXBFSWRldEJQZDJVbTRPK0dQTzc0V2J3SlVMWlhPTzNlSk1qCisvZG5RTytpMElTY3FiVkhvVmRMRkcvMDR3VnVyTVVlVkg2aytPQWRuWTU5d0Y4ekMyK3FSb2tpZHBRbFFJNVB6Cit2UWEyczJrNGZ4KzJoV0RQOWhzV056N3VLcW9TbW9XQU9KRjFab1NyeUxzNWtsVU5TRVFPc0dLZEhMT21aVTRaCiszSytsejRQMUs1WDQrcExBWkhpUFVHT0Y0c2JvY2FlOFZaS1BidVZzRnFBWXorMUNBb3NLZ1puVXhqR2luZEk1Citjb1BVNk9QQ3Vaamg4dFV1c1JMSHRjOVZ3bjBYbkdZMWJtRWRPQT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIEFNRCBLRVlJRCBDQkIzRjcyNkU3MkMzN0JGN0U5QzZDRkFBNkVGMDZGODhGRDFGQzRDIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFvVytZM3o0d203WWpBQUFBQUFDaFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF4TjFvWERUSTFNRE15TVRJd016QXhOMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVRk5SQzFMUlZsSlJDMURRa0l6UmpjeU5rVTNNa016TjBKR04wVTVRelpEUmtGQk5rVkdNRFpHT0RoR1JERkcKK1F6UkRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpXYTA2TjRzSWNUUThJQ3UKK3dVMnl4TFZweitDdVMydmdSb01hdU5NSU1FWWk1cHo4Mk1BbmlPbnV4MGpHdWE0Tm1kNWQ2VUZrMFpUU1VFcU8KK2JsOTZnWENIMUJNa2ZYaHU2UXA5VDFnN0ZjTkY2TThzdVNQVkw3eThUd250S3I1My9qcFhEcHM2N2IvNUdKUGIKK1RnaHJ6TWRxb291UWpDNlBpTHZUVUhVSm5tMlc1ekVMaVUrMUwrbW5LbHV4VERaRTczQnNXV2V0dVVUUEYrbGgKKzlqNHBwb2xza3VxWXhYY2JyOWxuL2RZUm5VRDhob3gwMDEwWHdBV20zeVBkOFdaZlUrRGZROFY1QnJaSmlxSU8KK21IdUczZUtJc3Z6ZHRZcFNXVlUvaVF2QWEwZGRYNlB1eHAvMWFqdVFvRHJWbTFpWlc1NHFYUGkvMkprdWMzSFMKK3B4cE10QW1KVlQ1bXREa1ZoazEra0pkWVZvV1gyU3krOUNZSVluVGpxZFJJK1l0QUFGVHhoNlhFRjJ2Qk80TnUKK1FUZzdPYWlRcHFGRzZ2Z3ZMNXRZZlFaRGI3YXJIZHp6SEFITEQ2L21vcEhFVURHT1lWUTZ5UndXZG5zYVFJRDMKKzU2WDkwUjFhaHFEUDM3djRBZ2pjQ3p1eUxveDNvL1hLVTgxcDR5SVRLblUxWlRCYUgyU3l6aDlsMllLZjJvcVoKK05lK1Z1bFlmbFcvZk9TNStqT2VhU0FzaURzY0haQjJlSHNuU0NCblR5MUxudUcvS24vbGp1RkxaVjdjRUJBZmYKKzFNUHRWeGFsdytkaGJoN3F3RDVmZ29EOGRvdk13WEdLNDZBd2N1V1BQdExHSXdSQ0JBK0RYcGJFUnVQdURIaHIKK2RMTFpoTFBwTVhhdHVHMFhzWk9wSEJhVFNvY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZETzVtelhudzhSWlBIbi8KK3B4QlFGY2FDOFl4UE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVkp4Y2tPcy90bmVYZ2tua0N3WTZOTWxmdERhaDNVc01jbVhWbldkeGhLSysKK09QeWdxaDVJdldKZEI3QTl2RVhCc1lFVkdNYmZseEgvTG5RL0x3RWd2OWhNdGFPdkptOXdDUzdTM21EWHJWWjYKK203UEQ2cUdNYnFlKzREaUhqOUxVYU1kRHZjaXMxeEFJci83K0J6OHRYc2Q0MFoxcStBSHNhS09nMktlcUxxODYKK3h3c2pWNllnSXY0V2ZhQmZ4SmJtbW55UC9xU2I3b0Y0WmovVFV6R2tmVUF2NkpvTjNzaUMrZ0F2RDFRckluV1AKK1J5UURYWkt3NEhDOVVROXZYUXh2cUc1dDl2bU9sblhyYURHUkZuWlNEdWMxMGVodXdHSmlyc3JFL0xqWXpkb1kKK2VpY1lEZ3pFN014K2JySlhWM2VTUFNmSkZicFhmUHk0K254aEhUQk9MYVRxdExIb2xoL1l5WGdkd09tQmdvOGEKK0tOVXJLcXpuOGFiOVZORUpCQjZ1QjI5OG1vaDlaOThuRWJKeURaQVBYV3kzQ0NSdmh3L1ZWb05Sc2RiL043QVAKKzUrV2xrTmEwZFppNEN4Y0JuYzdIS2dmblI1TTlxRFVkblZzWEg0OVlmY0xjekNUMkpDTUtqSVdvTEswMW5kc2kKK0xqMjEwbjM4dmZQcFZoSm9aWk45T2M2amZrYy9iVE9GQzNIVStkeklTNm9GSGxCb0VaK2JOaVNJWWxFWm0wOXkKK2U2YnhpTERSamF0U1FaeE96Z1BFZzhhTzBINUdiZ3BxRGh2VXFSM1pITG5JY0tUNUJtdVpTNFlCY2RZRDlZVEEKK1U1REJwOUFUTjRWTG1CQTlxazZPTHdBWFFxSE8vQXI0WUZ2d2hQbWZDNHVGMnVBRTQ5YVhwQnpKeFZ2WXlyUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgQU1EIEtleUlkIDU3OEM1NDVGNzk2OTUxNDIxMjIxQTRBNTc4QUNEQjVGNjgyRjg5QzgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBRmh2dDNscjlMaU1aQUFBQUFBQVdEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFek5Gb1hEVE13TURJeE9ESXhNVEV6TkZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVUZOUkMxTFpYbEpaQzAxTnpoRE5UUTFSamM1TmprMU1UUXlNVEl5TVVFMFFUVTNPRUZEUkVJMVJqWTRNa1k0CitPVU00TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFucmt3ZXBiM2VDVEpqOE1kCis2cUIza0JBcm9QWGRybHhQRDViNVM1amxhTGpFTkQ5VGpNa1NqUlFVeTgwNDRHVDI1cDNKa3o0MU1aZE1IcmF3CitkWk1rdzBnRlVWeFk2ZXNjWHFXdEN2eDliQS9ZT0xrcEFCOEQ1a3R4aVp1V0pQQ2ZCVHBvSmUxcGtKalRkdUxICis5elExSUMwV1hiMWlyamtxc0JsajFnVVQ2MlRTMnJDMG9ra0xEc1NUc1huQldYNXRmTGVaNmZWOEVudnN2R2Q3CiswYk80MkhpU0diR2J0WGdERjZKT1E3THhBUHZ6akt4Z2JZd3NQTDQ2cG5HZGJqbFZzM2JiajBNS0xtUXBmWGF0CitJRC9LbjVOZktsZE5NRCtqb2I0K1ZpNDM5UFV6NVVCZTlpeG5kbCsybzNuYk1sTSs0OUNJck5vZzRxaEJuMVB3CitKU3ZpR1FJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVDd1lPdEYyZHIvcy9hUjNaRldFRkljMmxROUF3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQTYrUGRZCitOdDNXZTV4MjFxeWZEUFAram5FS1JvTGxNc3BpTno1VnJLMVdRVkFheFVEREtiUWU5NzRFcWNtTDZtUzZpUUdhCit1dHUxYWVrQjlXL0dBNG0yRVVyTFBHVG9VenhkaUI4WFA3cFY2bDk0UnVrbFNIMnVhR2Rsd1U0L3dXM0ltVExVCiswby9SK0ZwcUdxekhMVE9oV1BOK2V5SE9zSGhpak9DQ0IzNnNPOEhqOWNqaEhtUitmbDFZeFFNSzRsVk5ic3k0CitNZHhYN0NhMkFkb2FGb1JPVjAyZzdHY1YyengwU1Nwc0NTVjZiS2JhQldHcnlyRnhqeWoxcmI3UjhnSjlGY3lFCiszaTlTcnNLcndDOHRPQjZrblNxSmhHZ29qaUkrL3dsakJUWmtod2dOVDNqYzB6VDViZjVSZ2tULzAxNVhmZ3hXCitiWm5tdGdSS0ZnZ3lWS0t6c2lMMHNOa2E3ZWtpQ0tvMW5WR0VUSmZvanA1dUxqWkhYWE1hUWNzRVpZMHFhbHBmCis1ejViODZxWlVqeEk2MWFMaG9MSzVuTlpVSXpDNTVrZVlMWW14dEt4MHlNcHJCdnBUL3FLY0dGTVdDb3R6VGUzCitaMnIyQUsxZUg4cVRyeUlxdmdDVndQS0FyVjJ0dkFOMzg0ODdwNzR5dVJDOFJsT1B3U2JIckxPVVpOb3BwcEdHCitvZWlxQzlpZ0NseDZRc2ZJNjczMS9iMUI1cklIQktxbWlNMitXSEowaTJNVkF1OU5GY0hTWXhPMzRaVVV0MWdOCitkN2kxWkxMRWhldHpUVm0yMTNCRnkwcFRiNUlyckkyOTRXZERiTFA2ZGFnUXhpMVFteDJsZVRQVy85NkNYWjJjCitEc244WnBwRi9JSkJ5UVhicG5QOHFrTk5BWWd5Ti9RR3FEYW5Fdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIEFUTUwgS0VZSUQgMTZCMzQxRTM4MUNENUMzRTc5OUFDODM4Q0ExN0YxRjdGM0Y3NDMxRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW9keEt0M21NaENmT1FBQUFBQUNoekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXhPVm9YRFRJMU1ETXlNVEl3TXpBeE9Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVGVVRVd3RTMFZaU1VRdE1UWkNNelF4UlRNNE1VTkVOVU16UlRjNU9VRkRPRE00UTBFeE4wWXhSamRHTTBZMworTkRNeFJUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU9zejZqYW5TTFQwQmJLQworQ2J2RXRBZnBLZmd0YXdjdnVqb3VJdi9qcE8rTDZrMzdGcU53K28xWDljUmNWK3BQWlU2TjVLQ2lSWWJWbWFSUQorSEI3dDhURDA4VDhPMUJDU0pzZ2hKeDhLektJZjREeFFJTU84YTBaREY5dXJJYjNjUUFYbXRUZGR6VEZaUER4aAorZmVVYWxqN3p5VkQ0dDZsa1FaUWh5QkIzdEtVUEdTRWJMU0gxVHdUZ0pnN0RaT25LdjYvcG9oWEVERlp4cFpKZQorMUdnYzAwUGhBbHpqOXVkYTJzdXEybG5iVTNNSmJ1UUpjUnM4aWZGT290M0VSL2lOTndvUzdoRkE0RkRpaERuKworVW5zRmNOMmxSNWVJRkY3QTIwb3ZmR2lYUnZyVUdOakNjSEtwbXMvZmU2M2N6SG10RVhvZzJ5VzYzdFF1WndUaAorbk5TaGtsOVp0VGJwRGhCa2FPd1U3akVieUwxbTR4SS91Y1QwcmdSR1E1RGN0RThab3RVVlNCdzBTeHNza01SbgorRExnU1VvUkl4ZW9KL0kreGdvdFZHN3FXNGRiZlVvSmhlRHEycHA2YVoxcTRPbjQwZjB4N0swNFJpWUtzWlRJQworVk5WM2VqTmFIOW56bzZBQkpvLy9iWjg5ek1LMzYrZmpmRjV0RnNGUVFDQzc5b05Xemx3elFwR3JmcnJmbVNHTAorcGtiYWt2cmR4WGN1am51TC9Ca0YrM3JDSnhla20zQnF6a3B1Z01SSmY5anJCK3RqQzNBWFFuRXhBR2dIaUZpSgorc3ZMTE52Mlk5RzZ3QkRuSndWMmt1QXpmWGNrdE45QUc0akhuRExRY2wzYUFPN0VrRVpRVWVUK2hzK01GRlJhSQorWWs0TlpkbDRtS3pUdEFQYlNiVGhGZmpKUENpeEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUNk9vS2gvK2lIYmNTbQorQkFvaUJicGRGUG5VclRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBR2R4Mnp5QnFkZjdOOEU5UHNTcEJkZEZZR0UrZDQzd1BYdzZhU1dpTkRhQworYVh5YXhwcloyYzgrYnlYakNKUktkYUlDdGozTUZYbWVVdHlMM1pNOVZJdXlNWUM4cjFodkZURnlGUldPZFNUZAorYXlxaGtyUXVPQ0QrVzNBTXgrNVZzSGZUbHJzVGE3alFuRUZYR2dnMTRjZC9RQnZ5c3NNaWhhVy8xa3lNdWJaOQorTmQ3TTR4Zi9Yek1kVVhFcTFyNlAvclBmMVB6WDNkZ3RHNW5ZWHJVUmFVakMvZm92OEpLS0txQWNnRU4xOTBIcworK0JNV1V6UGMrZlJzdDNHcmloaWUvTDk5WmZZcTRURUVLYkwySWxoU2x2ZHl4Vm5pUXYwU0lyT1l0TEh0aEttdworcEV5a3pRRExiODFidmhGbVFLT3hMT2lVMzdLNXhDUEpld0pRdlpoaGFCZkJ0ZTRhTWI4VDVrWDY2TmdsVmYvNAoraTFaRmYrUUN1NFljQU9mUFFOY2xma1VVa01QTUdSa3NFZEdTRWhSVzE1dk05TVViUG1FSjFKVUVMbUZOWXU5YgorbXlScnZmOVQwbS9SNWFqVkVuV3pTRmJWQ1J3dzFTTWJza3RQcUJzRVQ0a1RnN29pcXlyc1M4S0xUYjh6Z2VNVgorZ0pRZDZFVko3cTU5dmM3SXZEN05jZTJ6TFU5U1BML0FmVzZ0UHFhR3lXOXB1QXo2M25FTFBzQThKaUZoTSsvVworZ1hYTEpmUDloTnJhbkZuQ2NpRlcwaDRVd2dSeEx2QlhQQjUvWFk1YzNuekxyODBIb1hvaFM1Vm9JSm1NYWM3bgorTXV5SGcrS0pRVWNDRERuMFRCQ053S3JWSk11M0JyNjNvMXBzd0hUWTlvQXRkOWNIVVRqUlpneFo2VkJoNzhXQworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBBVE1MIEtFWUlEIDI3NzYzMUQwNTlGQTdBOTU1M0ZCNTlERkQ2RTg1QkMxMjIzMDBGRjAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFveFk5bjR1OGtBTnhRQUFBQUFDakRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF5TTFvWERUSTFNRE15TVRJd016QXlNMW93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVRlVUVXd0UzBWWlNVUXRNamMzTmpNeFJEQTFPVVpCTjBFNU5UVXpSa0kxT1VSR1JEWkZPRFZDUXpFeU1qTXcKK01FWkdNRENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFKVUZWbHhuZDZ2SS9TVEsKK1B2UkxIRDQvdE15S01UcCsxeDdzdzZmUXhWd29BcUFVTGlVWDVKQnQvc2RrVmhQL0xBdmVuSjcybG9YRnJnM3UKK3hVMzZXeFZEVjVaSzQ2K3Bua2NvRkdRZ1RsT05oZ0ZLUmE5TkM3bVpKRGJQeXVFdlIrYkM2aEZuNGxWbTdoOW4KK1Y1UHgrUkhnd3NKOUNDdVc0alU2R2NoQ2t0TEk0c3FVbHFoZGt5Q0pKcG9wbzFEZSt6UTZVUmNjRG5WWTlJV2IKK0h5R1B1T1crYzk1ZXNjMjJVaGlCZ0gvL1dSdmdVSzhmcnRCYU52c2lrM1BHUlRnN2NZNG5YQitlckVPb3Nka0QKK05vMXV6RUhvMGNQVHNPYTA2UkFkWFRneVhqMi83U21FNjhxV0dyMTNWYm9vMEZ3SUJtYnh6VkQwRUNLbERGVksKK1lUMEFtL2dHbmxabDlseWxLUjVLYnBXb3l3OVMrckZXbWNLdmdTcXQ1WWdjTVkwbVB1QjZ2RmU4V2RLb05wcFEKK0RSM21GeUNKNmhzendoUEljSVUzT1pOd3cvZzdNYXhTeEdSWVdZQXY0bUhBOEhYL3d2REFHVUh3eHJyWE00eTAKK3JYS09GZElyMjdXZ2I5WWJ3bE94YW00S1pPK0ZBMUhVRzJ6ek1qeEpYQWhoV0lyT1NWTHV6UWpaWDhuT1MrWXkKKzJWYjVWWWY3OTBocC9BaHNlZHI0d0MyMDZBREJKZW0yM1daT2tIczFkcmFRTmg0OHU4RXJTTi9sckJoQk1weTIKK2VWbjByVHpKaXNHMU52TVZFc3VSMkNqRVJ6QjkyQXJ1Rkt1M1N1bldmUWtsakJWVVR1bFMxMGNVdnlZbjNINGsKK1BqV3JONjF3UmVuclF1WGx2RnUwL1VqOVc2dlRBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU3UvNGgrOTJ0cXhPUnQKK2hqMThiUHpDLzBISzVUQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUpCdDAvcndBZnEvbE9JM05weGxUYlBTNEczOHBKR24zUllucTJEd21JTFMKK3FhWFlmVlhSUnREUzVrWmR2Mi9wVjJHQnVIUUUwR2lHZE1iczQzU0R3Z2FFcHlhSkxVTGRZR1drZThJREpaS1IKK2E4R2w4QUNJeUVDODNaY081U2VGWkhQZWNhUGl6WDlQWG5IWm1GTU1kWVFlWU5NV2trb3preStFbTRNbTdvbEcKK0lYcjJsOVB3VzFWaW1sVjh2TGd2RTN0RExEWWZ2UGttSVRYNm1aeSsySFlxUi9LcGdINFAxbFg1cHp5MFZvWlEKK0hHNVRpMFFPcndqeEZCV2dyNE5pSytnNjhKZVcxT3VrUmlEUEtmVWZIRTU5bzhxaWxHd094ejBaVHNSRWZFZHUKK1BZY01XUCtRWkl3VnY3T3F5UmZ6YTRpUmF2b1JXYTJCcTU3VlhaMG1kYnZLOFdHSGRnYTJuVnV0QlZuUjJZMUMKK2d0TzNlRTBiTEV2a0dKOS91YWVtMEpyM3hKMFB0eTVyUStkVXVZaUpEZXZBQ0xFNXZzM2ZXVHZLamRaWFZMQ0gKK2NzSytqR0o2enJZbTd2OUZmbDBQZ2RmRWpmNUdOakhUU2JQZ1lmVlNKSGNJbzhCczdCZ0JGQS9YUU1BUkZybS8KK3FLeWlpQkdvYjRvSG1BTFMyUTd6dE9Nb093OVNmUC9jK2ZNL09pWmRjb3N2czJhdlVSZnhhOU56bXZkS1FrZEgKK3krRnd5d2tQYjdxZW41eERUQUdYRFFPTFh6ZDF1ZWloanZuWU16c1ZMWWxKUGhNanFmeURIVllhbTgvNlhwb1UKK3h1OTQ0cE5MRG82NmV4bXIrNHU2VVhMK3ExQVNMQW9tOVZ5cEZ6N0FXOTNRbXhpN2x3V0p2bE0vWVZrVGRQNUQKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgQVRNTCBLRVlJRCAyRDYwNUNEODgyQjJCRDcxNkNDRTcxQzkwQkM3NzREM0Q1QkNCMUQ0IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBb1lMa2txbkc4am9pQUFBQUFBQ2hqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeE9Gb1hEVEkxTURNeU1USXdNekF4T0Zvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVUZVVFV3dFMwVlpTVVF0TWtRMk1EVkRSRGc0TWtJeVFrUTNNVFpEUTBVM01VTTVNRUpETnpjMFJETkVOVUpECitRakZFTkRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTG9FVVZZMFRzL2s0UjZ6CitGTU1kKzEvbUtLNnM3ZUJCWHFUbzNvSlpLaXdJaENDN2FPdnZYNjFta2FwVG5mZkVhY0hCUHpnV1dUd0xCcTZHCitwUzVXUVFMYm1ITDVpL1VOVkNiWTI5alhNQW5MVFRXQkNIZWxud3BzMGhvQ1d4aFFocWhVWnZ1STVhNnJ0QnlTCit6K0lLZFZqTWd2ZHhHQXVPSk40SUpadG00dHNQamFIVzk1djloRDBUTVF5UlRxM1F0Mk9mblQ1QmxrUVlrRDYwCitsSVpldEhObldWTFpZYTJEVGR5Y0JQZ3grWVNSbUQ5Qnd6ZGVwSDJuTVN2SExLaWZtV0xTUlpIdWttVU42ZWVJCitRSTdHZHg2Q2E4VVRiS3BkeXVyNk11ZHhURE1ZSEdkaWQ3dGNDajVqWVpEYnFsSFNDUVk1bmptZ2FWbGk3aXI0CitLYkJNT2VZY1daU1NaZ3E3M243eG1sVkpIb2liemk3Rm8zZkE2M1RSSVYvQ2hzM2RjZ05qQ21UUzhuaWE2SWUxCit2OTlDTGxFTmtFL09uRVVVQk1XcWNudzlEaWlKOVRFeU55TjI2UmM0ZnQzYS9FZDFzZi9SUWRKQ2ZVYlRmYmRVCitJanVqNGI3bUswdndZemErdzFkSXJvRXJMTEQybzY2M1FuOW1Db3FjaDdKWVZkSUU0YkVLaWdVcmdCdllJQzlmCitWdzdmeHFEbytJQ0pHb2RxWFVRQUZ1S0dlbHlFWHFkNE01eWhqT0UyRitZRHBIdzk0NnhXWERWQi9henF3Sy9iCis3cU5NOTRnNTlDU3VWR1FpMGlieFVYOFJJdEFZZEV5SXlndGh0NWxXbXBlNnpJa0s2ZGZDV0NZRjFVTmJTM3lICitmRmVZZEVWelZOK1dMb2RmbXFQOEE1b1Y2QlVqQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRUMDBCcHVicHZGaEpQCis5ekhPVDV0SzhFNDJiREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFEakJwNmYzRXd6dkVkcEdKYUdBcEtjYzlxSGorNDVwc2xkeU5FS0F3WnRxCis5eGFKNkJYV1hnU0RGZTVSMjhkeXEzeFBCTEVZeGlseVhPT1ZYTThyVENGY09nVVhGU0VUNkl0RlZMTTZLVzEvCithTWRBU2RQWFF1cEtrb2lLeU15S0FQUEFlT1BTNyt0QUlRWGNKT0doSkhjcEdQRzk4TEdOMWRlVXFyckNWVlFBCitDaE92WEZscVlVMzk5Mm1JMVJWM1VXa3VyVTVsTHBYeVBDbGlOZ204Q0piVGk1bC9uaHRGRWhpdktGdnpFamhSCitiT0JDeXJXR016QVNiOXFrR0xTWWF4WVhRcklxbUNBaDltQWEvVWpwckFsSkEvQ3lLSXlyMThvN205ZXBGR3BECitLNHNpeFVvbWgzMGx2SkFxQm1jWWJLYmxLSHFNS1ZJTkdrK3RoWkUyTTZuMUlHclBpQXRmSWZIRUUzdm0remxnCit1andsditSUWdRWGJqNEY0RVBtMEJJandMSWdrVkN2SW5Pb2VXcUQrSzNYczc2eTY0OFZjNzN4bFYrQjZqcHBzCitmZ01ETzluVzg1ellUNFFsMVpyOUs5czlhYWptMGFHTWpQWUlSNUJLSUZySlNDeVZtZEhVbXBLU3dNZlkzU0pJCitPQ2Zac2IxMzEvcElTZ2ZxdjgrcFZVQjNHaU9iL0ZGMFBNZnhrL2xEK2QycXdaQWxDTDVMYUh0UGlOd1JmTzRtCitRdWxVNCtUbVJoYzBhdExjeDlxVlMzdHNUYUVoZ01UZVNKTElVQW02VVMrRGcyZFVxVkhnQ1dLQWZRcDdRRjUzCitzL0tBeHRrQXBZZjhsUElZR0I2MlFIWHV0NVh3S2FoeEF5Ty9FUENUbVZLZ21oUm5ncUk3bWZxcjZoenlRYkJqCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIEFUTUwgS0VZSUQgMzVBRUU3MzZDOUI0RDI4NjEzMDlFNzgxNUMwRkE0Q0U0MEQ4NjVGNiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW9nZWFzbXhrZVdZd3dBQUFBQUNpREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXlNRm9YRFRJMU1ETXlNVEl3TXpBeU1Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVGVVRVd3RTMFZaU1VRdE16VkJSVVUzTXpaRE9VSTBSREk0TmpFek1EbEZOemd4TlVNd1JrRTBRMFUwTUVRNAorTmpWR05qQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUtRUG9ib3dYZmVvMmVPQgorTUQ0Z2FxTnJiYW1VWDIrODVqUFFmSWQzYzdJekVvUkVZUy9LTzdoQWF2UHdCclY4TGlvcjZ5ZVVLU3FCS21VbQorMkpRZ25hYk5iM3M2a0tvb1pKd0phaXlnNXMyZHpaZW1KZ0ZET1Fwak81bGo5R2VmMUl5dllmVTR6UFJ3UVlxagorR2I4b3lCTEV0UzNRTVZuby9iWEhpL3pCMFgyRlA5a3lFUFBDcmZvNXNmd0VZU1B6ZU9RODNaVktpODFLUktBbgorTDNJYnVHaWdMWEY1MURUeUR1REliTlhtc2d6djVUVE5QekJ4Q1V1VzVWVWxib014MGJpSWtEY2hNQlcxRDBCdwordzJsNVcrem5jR1NuZkFDYzZlc1loZlhMQzNiYXBEajEzdk9TZ2ZvM2xKeGdLZlA1M1I5SEYxMUJyRGF6TmlFNworWE5GU0VOeTlTUGoyWVFOQWtpZHBKOUhZUnhGMXdaaDBUajRraEIyT2k0MDlsUE1aNkUyRkJlVVhmUDI1SUgrRAorNW1tZkpNOSt0UTY1dWt5SkEra0tHTEpDY29DaFhJaEdBRCtMekNFei9tRDBycEFEdzVkNVlwbUVxeHZHSlhZdAorYU81SnVJUGpvSngzQkRuYmtUMWsrNjEwYlQvaTZnbExnRXJTTGgxYmVXaXNtTk1iNVhsa1ZLVnJXTEJza2NXLworUDNwUTVEUWFOMVlmMFlSSWliK0RwYnV3Qk5wcW44ZjRBL0NkaXR0bUtYamF4UGJnYXB6T0UzeWFNa3FDQkZrWgorbDYvZ0xoOGcvY1hHV0dJU0I1Z0NkUFMvdG9uZ0hVODRGZGJpcmV5UGhneVJzY1gzdDE2L3c0Y0NlcW9PYjNISQoreDltRWx1NTYybzJMaUg2NUVzellpTFFBVlRZQkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUdmxyTU1sMEw1R1BxNgorNUNsbGRzK1VPMlNmdHpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRzlid2VJcVJrejBwWlM4bzRzR2tJenJvUXJXQUllSUcxanM1R3Q3bjVYVgoreEw1YUlqMmkwT3pzSlRxTzJNOXlaV0VoeUV6bkRDUXVwU3JaWkNxbDh2TVE5b2dXM1JZUnhPOVFRaGpqbEU3RQorRjJpLzNpWllpRHhXeVhDSXZ0aEVzb1pUZEwyS3dPb01lM2tuZzdNWDNhYldLSmgxZWJJcklKNUF3S0V2UkFtdworSENoZkdyQVR0NWNmRm9xc0RkQ1J3UTcwL1ZmeVNEWVgxY0pDUVFkN3FjejZxaTE5LzJDNGtNLzhtcFZLdlBHcgorSGJqeE1nNVVWRU5rMlR3Mk1pN2g3VVB0WEZ1akZYS0l6SC9mN0cySXcranJyRWViZ3NNZEY0Wk5tMk40TUFyRworR2lYVEZmOG52dkd3VzVjV0hGTkVsdTJxcDJHcnI0TytXdmRwWGkzdUlWMmloU1haeERvTWJKL3VlMTRBU093LwordVE2MHJUeHhqODVUaklTczFsc0JkeC9FcXRWZjhITHloU05DY3I2ZzlLRUFITkF2a0NOeVIrYTQxeml5T2thOQorY0c2SElHU2Jyek5sSEFoNHNKL3VvbmN0dTgyWVArTVNONUpaanErZmhkWlNDWEloVlNHaDR0YXFOOUhBdUJmMgord1ltZ1BSbnM3cmlmcUFvVjlNZ3pnZThza09EenhZMzAyY0FqOXhvWVowM2xBVzUxK1JtR1dCc3lyT3lHOEdrOQorQllndFd2cTdITHhSaG1kWUNkM1NCY21ZU2NWUTE3OWRwN1Vza0Y5M2I2YnZBalhyUVUxN01SQTcvSWRCdHFISworT3F1MDZHc1NFSHAyakxzanNNTWhubFM4TDhHWnNLUEZoVGRGMjE0eFRWelpjRzhUZXZoSHNJT0l4Q0hYTGZMTQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBBVE1MIEtFWUlEIDQ2NjZERTc2NjIwNEU3NEREMjlCQjRGREM1ODUyM0ExNDAzRDZBMzIgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFvdGtmdnlNRzR5VXd3QUFBQUFDaXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF5TWxvWERUSTFNRE15TVRJd016QXlNbG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVRlVUVXd0UzBWWlNVUXRORFkyTmtSRk56WTJNakEwUlRjMFJFUXlPVUpDTkVaRVF6VTROVEl6UVRFME1ETkUKK05rRXpNakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMeHl1SFpCanJyVVdLTUUKK3BwdWU0QWRiSmdUcmxMWUlaMHZ3dTE0cEtIeXdOS0lHYlJoU1BXWjRUN0QwLzk4UDFjMWkxNXhqRlAzVUxRWEUKK1BQRXF6YU9FK0NpT3crdlVaQTN2bEdwdS96R1FzclVTclNxT3RzOFNYUjNScWVJVmdGTUYyd1VydG52cVQ3RlkKKzB6eXB3bnhIWXVWZUhkQzZ3MVR1Mmd2ZHVDMGRqSnhxcFptK3JmOS9wa294UlBveEIxTGdQSjM1MFFpL1JzS2QKK3JFMDZtQk8vbEt5dW93akl2VFdiL2loMUJQc3FWRUJXMzhxTi9pTndMOVVHZVhCMlhhRjE1bzM2MmtwM1lDcjEKKzZSTEgrY0JnUno0M0VvT0RKVDhuSTlCSjRLby9ZbGhKNHZiVCtQUlVuenN5OHV2MGo4aFdjcFZsQlpzYjZ2ZGYKK3NyYkpDUjlWdjZ2ci9CMWRPSWhSYU8wTkxtQisraFo1SElwRUFJYWN6b1E3ekVlTVA5ZDFZRWNqcVpaSE9zeHAKK1M0dmE2WjRveDdFZkhra3JmZUwzNkZGbnY1bjhXNHVscEEzZ0ZYaXgwSTNNY0RYdEdId1NDYnlaeklZQXdtT1IKK0JDQ09wdFJEZFNaSVFzT3UxaSs5VDRjL3NFdnlnRGNDQjMzRXA5YkxOd2dQdytIQnl3YzdqR011Yk5lWVZvTnAKK0ViWjRQcEhjelpXYkF5V21HWk00Q0ZBVHMrVTlVM0U2SWFTMmJ4MnNQTnp2UlpWN0ZWb05DTDdneld4WVRralIKK2p4NFV1QUplcGNObUI2TUVlTzFiZk9NMGFUQUNsQU4zVDR2ZmZQeC93S0VYUHlqdjV1ZUZCcU9vYWZvem1kRHMKK1Z2eEJLOXZzdHozcFAyYmtnK1hNOEVDWjZPTXZBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUTBiWWNnOGl2YkhGTksKK1hnWmJSNTJLcThDbVpqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUVzTEZLb1IxdEZSSFJIRUtWRmZxNythZDNTZEZRVnhHV211cXZKSXk1SVYKK3I1SGxXV3hYU01Eeld0dWx0bW1QVUJxSGkrQ0hjV0k3Z1hNRUJmby9XcnArNmNJOVd5dlhTYzJFUEtPVXh0c1gKKzI1OUY0WnZVS3NSQXlDWDZnd2NyUk9QM2FxRlZIRUxPenNHRVBDVlcxTHp1Rjl4dVdNYk85RHVDTXJNRCtvdTEKK3ZneU9zRG1QTnU1VDNuVDJjbE1qa3JxNzcxdXZKTTlVV3UxcGdLOUVEN2xINkdQOU1YQzlGbWFBSkVwc2xuSSsKK1JOamhmTnltcEpMeExTREw2NGI4OWVzU01kRm13cUhwL0FsbWN2U0llUXMwZWcyc2J6aU9LalpEdlg4TkNLVzUKK0pyZlNIZ1dtOFV1K1lnNXlOZ1ZjYklPUWdtWm1tYzZRakRxR2R4M0N5bXduQ3NDejQ3Q2IwNFFCWUMzZG9lMmoKK0J6V012dStRc3RjUE1zZTYrM3VabVBTVVl6MkZZUDFxckVIUmppQkNjeWdZYW9oc2FPVW4yOVVvS2pLdURYc28KK2hhU1Y1UGMvL1J2d29TbFRUdVljemdhdVVPdHE5Y2xLbWFRN3dXUURjMmJWR2w2VGhFNHBPNEh5c2MzWkJRS0gKK2VWUW84SFFmamQzaytDQ0xpRHZVUTNwYW0rbFJabHpSekNVNlVWc2dpZCtJUTF1Z0Y4U0MxYVFKRTYrQllveE0KK1JBU2VLQStlMFZtY1JUby8xUEh3bkpkbEZGb25tdE0xd2NGWHdza0xVaU1YeVJFendVM2hkTENLWUp0ZGxKY3IKK2QzMmNkbXVhL1k3OFFFY1lhWmI2WVhyTFpLNEU4MHZBTm1UN1N6d2MxZDBKZUgwd3lST0g1bkNtbzc0SWU0aEYKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgQVRNTCBLRVlJRCA1NUY0REEzOUNBNjVCNjY4MUYyQjc3MTFCQzNFRjIwOEE4Njc5RDFFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBb2wvRmYzRmcrMEtxQUFBQUFBQ2lUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeU1Gb1hEVEkxTURNeU1USXdNekF5TUZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVUZVVFV3dFMwVlpTVVF0TlRWR05FUkJNemxEUVRZMVFqWTJPREZHTWtJM056RXhRa016UlVZeU1EaEJPRFkzCitPVVF4UlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTmJoNGNLMmpueEwrVHd1CitaOTVRMlJJOHJmaU9wcmJjRTZkRWQwbm1jQTZENFNGZWh5N0E3aUowQ3R5NjVjKzd1UlZNbzRuZ2hCTXUxUXNqCis5dU5uZ2UvL1pjMnlLQ3VERG5SRUorZ1laTlJ6OUQyRmtPNXZnSzJ3OUNIRnQ5NUtsTzAzY2Q5S05QNG56L0EzCityTkYySi9lREFSd1ZlSmgzaXYvMDhpUkdWNjdaMGZHR2RPa0V4WjZCUUJkYTVXMjZMNllMN3Y2aFNKaWV3WW9QCitmTUJWdjVKUGp2UjRuUnFNaHdtSFF1K1VhR2JQdnRqekpnUXNEKzh1K3VnVmlNTW41a1VUUWdlRGh2MzM5MzVYCisrMEtYSUJXeGo4d3BieUp3bVdJYzYwYWdIYURuRzZXaGpXRlVPcm1wMDN4Ti9kdmhpL0VoTXRMbjVNZnZEaVczCitrbTUvZWxFK0cycjFtZEtJaHBjVkM1VUw1aFNTVFdKazhxbFNBUVVrQ0ZlYXBlaEFQNzBIZXZhZVQvZWhRTlVjCitaMjBIVnYreWkwRFU2TlVNdWQxb2pJd3dRYUdBSkdaTlZsNUlZa0RnT05UY0Q4VXBWc21yYmdWdWlLdytsOEZKCitLZHFHN0RJNHU3Qi9MNDZ0YzV2VlZMMm5sVktqcG9IMThpRXlMNXA4Y0hoWDZtaWlHNDJzYlJqWE43TVpmcVRICiszTnk3MFdHdGJUNXh2YythYmY0UnVZSXFjUE5hTHJRMiticmVVR283Q3VQRTU1VGJESHhQajM5RUZpdWhWbG1ECitVYUQwZ1VFUUU1U1BiRlNpYllkTzZHTnpQSGRCRjV2cWt4SE0vSmZuTTkySXVhMkR4WU1QemRqWk82cDVYRU80CitBWFRhMmU0TExuTDVuTmx4YnpRT21zcmpudmJsQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJ0eWZMeC9YcWZuSUptCitCTkFkeTRjMlpVZHpWekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGWlFaZGVxTXZKRk0wbnkyQzVuN2FhenVnbk56Q3FkU2VvelpOUyt3eVY5Cit2OTFSenp1RzFDS1diSUIwNkZnOUlTTDhxWUpmcWFhZnI3eWY2cGFWMkIxQW9rdXljT2dDUXhCd3p0aGppUFZtCit5ek1wQ2JsYWF4bWorRGR1TUlmTEp3OFZUZlM4emU2TXJGRU5wYUplVlFpMDVxeHIzdlF5cU1zZ2ZlczRCMW45Cit1aWtmUjBDTUlYQXhFZWRlNmFLaHdsUWhmcDI2WGdnU2taanpFMDBOTyt5S1RaRUsrem5HVTZVMDB2WGZSNWltCitMUXViTlFydXRqeVhpWTgrMlhJb1Q3WXp6Q0xEd3VhVXFLajhzK1FNMk1mNVlET2NPMlI1ODNXem4vVUIxd05uCitmQ3pUNU5sOWdpcVZjVjVzbUZ2bHlpaEZMdk9qRk1pdUx0bWtPUy9TRU9jSHRlUS9lcGxQTW5ISE44cHB3ZlA4CithTzVPTkFEL1VpNHdhZS9za2MvZllJUEJYbzJqd1NoZ2VDYy91aHdlSGd0VlE0VmVPdGxzdHYvM0ppemhzdE9ZCitML2kwSEVyVkozekM4UmJEaTlILzNybHByT0Zua0tBMUlNQm9DZE1XbUMrMUpZQkNyU3VqbDMyS0JQaEVsM3BmCitMN1VMTytJK010TmU5NGR4N20vZzh3MzlZRGFiMlo4dkdsa1hPeXNRcnpiVytpTENXQjJmblR3NjhreEhaUEhBCitaSFJqUXBwTjV3M2JtTmdKdU9va3NudTJTZ3JtK1ZlSkUxUHZteFJLYlpuSEhwZkM4Y1l4ZytqWUMyZkNRUS9mCitkQS9NTUlnTWdMRU1GcHA0RTNIb2hSR3NQMWVxY2RPdklUY3dFbC9FdkZwR0J3YUZnM0F6MEZZdTlIem5WRlNCCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIEFUTUwgS0VZSUQgODFCNUQ5OUNCRkFDOThDNUQ2MUE4RUJGMjZBODZBMDg2QkZBM0VDRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW9yZkd5QlFSS01uK2dBQUFBQUNpakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXlNVm9YRFRJMU1ETXlNVEl3TXpBeU1Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVGVVRVd3RTMFZaU1VRdE9ERkNOVVE1T1VOQ1JrRkRPVGhETlVRMk1VRTRSVUpHTWpaQk9EWkJNRGcyUWtaQgorTTBWRFJUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5ncDhOdHVtTzBLL1hSeAorSkMrNUgvVWRpOHpTSzRleTRpZ0tNRUJraXZyNXBrK2J3dGQzWU0xeU9icUZWNDlnWHBTVDkyZTU0TEF0MWVLbgorS05RTjlRT05xWUMyL1d4dElSeW5IYk9vbFNWOCthYVNNeXV3R3ZlYVUxL3JxZWgwOVhSYldTRGo1S3owcTVGeAoramdNeUdSaFJlMmMvUjNLaE1XVWs4anRMSkEvcExlOUIvQ1Jjajdxc0ljOU9LRlRRYit6TTBxNjEwSmJ3eUJKVgorT1NUVTR0L3NtbTRseEZQQWVuR0JwY2k4MHhaUmJnSGhWYTdYc3ZvZTh6VFNOM3J6SmxhV2p1MVpFS2liZ3hjbworejEvc3lxNXQ3UXRYQ2VqOUxWK1hidjJkZ2MwcXpPRmpWUjNJMjlOOGlwRUV2a2dQMUk1M3dudjlrMmpkZGJBKworQzVSa3BUbjBBeThFTy9wNmNZOTFqQkpMYnBFWHdYKzZIR3ZqNUl6K2lkK053d2RQNFhpRTczMmJ2b1pPMXhuNworWGtrTDlnY1MxN0toNUhIMFR2SnpKTEVQSkxtUkoyMjZzMXFhYVdMVmpCVWV6cHVST0xKdnVCcnBONFlEZWJITworNmtLV0tzK1F6N25Jd3pEVGFnVWFydG1XR3IwdDYxQWE1Snlya0ZRTWQrbE1HaENwMVRDWVpZTUVyYXdsdmRPZgordk5qSVNxSGFwR2R2bnpjdDRraHJBY2xkTGducy9sclAvR2M3OURwMDFLbThFb1pJMUNPWnlOTEd3MTJ4aC9TYgorSE9idlcxZldJYkgrTHRvQk5GVlFlMkp3dGNjM2ovb2YrY3VoNU9STCtSM0U0UHdQRDREYk9SRjgveHNSMzFvOAorWFNDeDMva0ZoRHJvTnFQTC9nM3NzejNMSlV3aEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUUGZXUklMQWlmOHFUZQorMXhFQkEyZWJRckl6U0RBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQ1E3U29JZ1FDRkZoOFF1eDJvRjhMTFRyNUg2c2lNSkhKTllMVUg2emNSMworM05CNVRMdGZUalRSSFJQc1FhdmhjVFl6dHYxc1JPK2pmZzVCdkZZNTlEU3d6eVRMaGNPc215cENWRHVMeEc2ZgorelJaQllSSllFazhyRmNqOUtTajBCSzliUllYVCtxU2czOEpMd012dWVvMVRFRjJ4SDJQWGxtaC9STVlmWHFLSgorNGU5SitMU2dkbHFSa1Z0OVQzUTA2WUNBZHR4Si8vaVdhZURoZnFMKzFkTVM1QUpMWkdaQ0J0azl2bHdld3ZiZgorQ3F0UXZVVUZObkFDZ2k1eStDRFBoODB6VXBpbmd3U1NQWXA0RkU4MjdndWNnZ2twd24vWmhabjduY3NwcS94bQorWmtFRk5WcCt1WmJ3VXJ1WTlJWHA0cUtURUZYMktBVUJJU2tZNjkyU01veWlwSTJFdXVvcHY4V2Z5Y0ZTZFRBaAorY0h5UCtPMnptNS9KVWlNS2orcHZvTURDYWEwT21ZR1owY2UvbTdJa0JjUlR3THFHeGNlUFNGano1Ukk4VHFocworZU4vYnJtbHFhV1VxUXBPclMvdUNIUXA1RXJUS1VtMUw1c2cxSm5lVFhsRDV5cEE4SzZlOUx6Uk5wZHlaRlF6UgorYm5MYWV6aitxRmNlcEJCSGo3MlVITE8wL0VobVcvSUJhdjJLL2x1WkIzdkYrNHE4VnR0R3dMMFpDYy9UWEtHTQoreGVhOWtPZkk4TEV3MUNudEFxa1ZUejdKMU8wTEtYOUhxcktGUWwwdDF0RlhLQVBlTmNkYXEwdG4rTzd0angrQQorOFF3aFVuRys4MVdkbjRkK2NIRi9WS3pWNmt0SFZDVzlsNjhMNVNpTVZ4TG9DRUVjWHZPNHdkbEFac3FhNHlIbQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBBVE1MIEtFWUlEIEEwODU0QkQxOTdGODIxMkZBQ0JBMzg5OTFCRkREQkY1RDEzQ0U5Q0UgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFvMVNtR0NQZWRVUWZ3QUFBQUFDalRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF5TkZvWERUSTFNRE15TVRJd016QXlORm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVRlVUVXd0UzBWWlNVUXRRVEE0TlRSQ1JERTVOMFk0TWpFeVJrRkRRa0V6T0RrNU1VSkdSRVJDUmpWRU1UTkQKK1JUbERSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFPbEdXMEd2d0RkbDZnQm8KK3NQeWJrd3QyUVcxaWxjZTEzSlJnZ2NXaGJMdjZQZkxPOFdqdFUweG9zb1AvQ1U2MWNVMjAzVVpWNzJTSS93Q00KK0E2NHJpWFdLczVBYVVPbkR4czV4YzlvUHg3R1dKdmtQeGVIYlA0ZllKYXVlUW5IMVdxMTdqT09neGJadkUzV2oKK2crV2FscmdwTjI4aUs5aUdsbnozVUU3TGEwRjFkK3VTUC9xQlJvTVk3THBLSVdwVFUzZXRucnJYQ0RLeGIwTHkKK1JOQTR5Rkc5eXBTNkE3Uk1KVUZRSkRkM05jWkpZbzF4T01YTUIzZ2dsczF6YWtVOU12KzdkWEdNek5UeW9WSjQKK0FKOEYyWDN0bGxWNTJKcUhRdG44azNyQ2Z4TWxWVWc5ZXZMamlGSnRSL1NzQ2J3T3UvSURLa2hkaDdqYlJwOUMKK0tZQzN3OVpITVkzc2lOdWEyT3ErR0loSm1KbkI5dGFlNHhPVXQ5UmRPMmtJemVEMDlLNmlnM2Z4aHh5Y01wSmQKK3RmOVBFNlBYMlZ3QTA5a2s4UkZ2WU9nNUpoa2ZldjFIT0hLMnUyWTZDcytLMDlyczk0NGZyZjBMYTM4VlAvbVkKK244dVJSb09PcnpLdzgyVVBIWXFVVWRtdjlnV2VUT3Qzd1J6eks0TXA1eUFyb0dRZ29aK3JSMUh0WWdkR3Z4WVEKK1dIMGFmVzhWdmxxOGdYeXdTV3hZM3g3RkNlSXFRbTliVEp6eUp0YlJhU0JmOU5mcExmUEozT2h4UmswWDlhQysKK0JJMzhJQ0ZEK1dITGdTMytDZnRHOUVDdmhaR1VDMGFFMFRjMGFpZWFPWUNLemNSbDlraHpCdS9xMlhyNSt3aVoKKzFXU21HZHhpakl3Y0dFeEg1YkNVblE3RnM3QTFBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU3BoQWFHVUR3U0Zid2kKK2E5Y015N1lDRFRXbkFEQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUVJa3U0MW14bVhyV3N4emM2L3IvREdVbTh6RTNTdHV1aTJQSC9WRzR5bmkKK3BUQUNuVkdvMStHMFBnNFNBb1lmWUxZWG1QQXVUaVdESHBXOTZld0tMbXhhcEorMnFXdHFVYjRIVDF3dmxGZEcKK2lTRmkrb2NVQUJpbVFFU3R1WDRtV3NRWWhGY2dkemNieUloVnU0TnErQWh4Z01IWXRRTXF1WjNYbkcvdG1PZXoKK0t3TUJ2TnBpSFZHQXJnUFJXeWY5ZFpzNlVTRHJTdU9uanU5eEFIaXhPRWNTTjI3VlJjUXNPYXRVT0tYQitETU8KK1BDbWRKV3htN0laWFdaSTNXcUJoVTJFcmhTU2R3eUpPTDUvb1FuM1IrYW0wSE5qTmNRUEt6Z1RXQzkreVovVEgKK2pIN0tiN1dUVmxmVzF4MlhiU29VRWFzT2NOdG0wb3hVbCt6K3M3bTNsSmVpMjVxUHVIcmcvZ0lVeVJvc3JzM2MKKzZVdVIrWno1VVVMdGhMdUo4T1BoSXJmSFdQWjlHbUxEanpZQTErWUlwK2dsd3RmT2xUNDNNbHRIajl1ZWRqVTIKK291NmNhdEpqaU1OYTk2ajY4eDZvNGJaVXJZcWZtUENqRVZkZEI4aGVsZmVyaUljSndYMHFXOWNPYnNtbzBPQ1QKK0VMV2M1TGZiOUVLbkZkZk5zd2tiMGdGelJLdlRQWldsa1FJUWdpNmJ4L1lKTzlCN2RLZko4WCtuSWsyOEFvMFIKKzZERy9VOGE0RGVvVXZsVGM5MTBDNU1ab0NLam9NN3IwalY0cXM4M3RIVXMzUjY0WStjS1VIRXIvaU90SU50OHYKKzk3ZUNwa1JRWURJUGJCMzg1WU5pOCtrNlovcVdZSkg5MitEZWVUb01JU0ltQjBIbUlDWG10ZTIwL2ZScDBoSmoKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgQVRNTCBLRVlJRCBDRDM0MDFBQzZFMUM2RjkzREREODY5RDQ2QTUxODMxMUIzNzQ3ODk1IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBbzROM2NjT2ZRZHZ5d0FBQUFBQ2pqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeU5Gb1hEVEkxTURNeU1USXdNekF5TkZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVUZVVFV3dFMwVlpTVVF0UTBRek5EQXhRVU0yUlRGRE5rWTVNMFJFUkRnMk9VUTBOa0UxTVRnek1URkNNemMwCitOemc1TlRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBT1FuTWNLZVZ5alVTRUtSCitxWEdSRmFOalpoenR2TTNNZmlxYUxjeW1OYmtJMHN3QkRNT2MvSk5IS3IycU52cDhWR09qZGgrK0hFd0NGQnRFCitrVTVXVDhJR1FMVndNSVZjcXZqdjVPTWUzb1B6eTUzSzN0djhkRThzaEJjQlpTYzljY1B6TFl6WW81VCtMVUpiCisxOURoMklPT2UyRE52SnlMTEZ4eEJKWDAxM0EwVFFFbml0MzFSclNVV0kyUGdDcjNFRmJYSkI1WTBEcE9DMXhECit5STk0R0tuWURDWGVCWVpDVG1KK1VnYkduajFjaUZTU2s4WkRoQjNNNWJ2UW5lejZWYVlGeGxMbUhJcVBzWWhyCitIclRPQUpURHJoNlNzelUwSmxpTTkwd0hZM2tucHNqakRwcC9xQ2s2MXBIWkNnUWF1QndpcUYwSnNEZ0FMRXFTCitzeEY0aGRLMWY0SjQrVUFPVWc0WXc1WitOcThVYS9mR25ldmhQSit0MlFDSGVJUURNTzRjbEJkQ3NHRzAya2FFCitIVnh3TjgwclFvbFBBQ1VGUWwvWngzL2ZQRGh4UVB0TkJYUnMxL1BoMVU1TUJrYSs3MU5ON0hsOFhuaEkwRS9VCitrMXJvSDEydFBtN0FtbEtkVTUyNDFQMCtVUUZBMVpBQi9qMEVHMmFqUzBBS3dLRS9yMTNtWmJiVk4xT2xaeW4zCitua25hWUd1SWhyb0VDTmJjVDVFamJhclFkQy9pQW9hcm5nd25HaEU3T0xzTDlMVHZEOW9iZFJKUnJEUHhWdlpOCitBYXlyVTY2RnV5cUE5cGwya3owNyswTmIxQUhHZHpxaHpidlhjUk9ldFh4bitwSnlndUl1MmVvRk9ZQ2Q4UlV3CitPZ0JCSktCMUh1U2hFNkdQMElQY3VjN1BaYlV2QWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJJR0dGMUF3SEpIRENxCitEcW0zOWgvOWJHODBVREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFKSlRUcnNhRlQ0ZE9iN2hXalR5aWF0ZEJzSjJ6WnVTWEc4U3BiVHJjTWVXCis1dkxuRWFySEZCTW1MaVNDRDYvRXV6dHZqV3ErWHljOTlvMitkbFNXYXNmL0RhOEQ5dHdqLzVPZUo0cFFCVzQ4CitjMFo5ZThEQnJxYWZFdGtZNHE2cEVSZHB4ZnVPdFJQR25mdnhPaE5xYWdWT2VvSVhIOGl5YUVWeks2Zmg3VjdQCitzN0NCVmpKREp0cDE3eHA5OHRXL0F2eWlnQVAwaTJKSEs0cEEzWThPVDQzbFQ2VnJvYXpNQ21pUVRhaEk5WkxsCitaV1g0aWdEQnV3VkFHVWx0Q3ZQNzlwN25ib2lodWRDd3o5ZzI3eUJDdmFzNjdQanplMjhwYnBFQ2tkVi90enBsCitoSFdjRUVFY05mWWRlL1VndWNHc2JrTWJFQWdpeXFpZDVTdGpnMDJ3ZW1vZE8xd1pBRThjSHVoZW1ucTdiR1hICitsOWhmRWJUVGJKZ0lsOTVCSkFqMS9DWkNQWkNqZjlIaWhMRTB0QnBEOWlZbndXODNZckJuN0ZabXVBdmlNZHJvCiswbGVZLzlHb1Yra1I4eWhxdFREMnlza2FrckkvSVJsdVVCNHF6R0FDei9OM2t6R3J6akVua0hIdlJ2WmZ6NHRzCis1eGpEL1Bpdm9OTDVBdTZJSmpZQWptT2lsWWhiTENqNDF3RlJvaFAwVnNVK2tYVXRTaFdqcEhBK3dVK1BFYndvCisxQkkyZi9HNXdRaEhsM3ByVG4xbEltV1JGdnA3dHBGQkpvVkg5Ym9ZQUVhQjRJUTE0UlhRRWQyL3M5QmdvbVRNCit4bFFXb2pQNU1qSGMyWUdpUndpMm5MMmp1akJxOGMya0xPaHdqd1VjV0taTE1zT2lrdE9DQWxqd05oTU5SMTVCCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIEFUTUwgS0VZSUQgRDZGNTZFQ0ZDRjdFRERCN0ZEODdFRDAxRTEyN0VFMDA5QTQ2M0JDOSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQW8rdUFuVkVlT2M5VlFBQUFBQUNqekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXlOVm9YRFRJMU1ETXlNVEl3TXpBeU5Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVGVVRVd3RTMFZaU1VRdFJEWkdOVFpGUTBaRFJqZEZSRVJDTjBaRU9EZEZSREF4UlRFeU4wVkZNREE1UVRRMgorTTBKRE9UQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU1Mdm0rY1BlQUxBeXpqZworWk9GY29RTHhQZndHREJUem5DbjgzVXVIQmovMTlBbXM2WlZkSnVOSnRnbXBsQzBkOXBOM2ZkcG1IbU1DSGtGZAorTlU0MDFFSXhhSFZaU2xZMUtkNHRxeUlQM3p1d2lTZm1vdk11QS9FRTZsMklyaGgwR1dhM2JwTWtqcnAwUkEwKworOXo1czlsMWRUaTBaYWIxZFUvcXZQQmVpcHJ2QTlEckwyVDZvc3dBRitKeTdCTk1mUE9URmwrQk9iTWJZdkN1ZAorS1N0Y0VYekFqZzc1SXkwTjFDdVV5dDYvL2w2VGgrK0RFdDd2RjF0RVVnY3Fab1QzOHlGUWt3T1A1M3NCZVRvYQorR21vOWJ3RjFPRDlyNndUeDZmdlNBb014ZXpHZ3czK3MrUmp3aTMxQWxLKzhIaDR4aHhYRVg4eVowTExtTTRSeQoraFR2RWVKSDFhcGs1ZXc2OE0rdjVDbUNOajJ1ZFZSdUNXeDJ3TFlvYkQ0czNqajhERFRaaEI0RjBtdGlrV2t2VAorM3Y2MkZYcVN0WWZBNFg5NXMrNEN2c2pMb2pKMWNSZ0Z2aWNpODUzMUNzdERlaThVa3BZczVtV0s2SjM2WERKUAorY3FLc3dTc2ZVczdvb1Judm50dndvZ2dic2IwSWt4YkpTejQ4NFdCSDJNM3AySDBiQkNJM2xzMGM5ZWVPbWRGeAorSHE4VEtyWjF1bkVlNkx2MHNnZUlkU2hGaWtmUldud2x0cmcvQi9nMXhKNE5md1ZxZUU1STRzeEFKbHp0QnllLworeW11L2NkV2tJS0tXQVh5eWVMcUp4c2RDcldyU1V6ZzVkOVIrWElRS1RYdmNVNWV3dDlUNFZCSDdlemlERGVrZgoraDJpYXE4WG1xaGNzTHpqTnVINzlnV1oyWVRpVkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRR0tTMlFxbzdTSC9ydworZnoxUnZGQTA5OWhHWnpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSEVLVDlIOGVlUDlKK1Y1OElzZ3hJVGdiUjErKzhablp6Y1dsdlJzRkRUYworaGdHOEdSSW41Rytad3padDhPOElLVFRjYVdVVHdBNkdZSHJQOElqY2pBKzA5VU9hQWRzYUVBeXpmUWNIajZZUgorQXlYV2NuYk1ybkp0YTZRZGpKWTFlWHkxZTQxYzJCSW1mN2tSamx4TWJpY2c5NGdJYmZpY08vWjA4bWIvRFpMbgordFd0MDVzNzY5bEFuak0vTm5TWjIyc3JxZ0VyaDkzbC8yeUpCaFJxNHY4NjRkR3VEZUtzS3o5ZXh0N3hmK1EzWQorVHBFY2s2RThWWXhGcjNmZUg1MG9ZbVpmSGNUNEF0ZG0vbDhXMkt5K1Rxc0NMMzlkRFFjWDVOODhzbHc5Skt6RAorNlpmVW44emhYNStWRC91M0poQ2dXcXVqUXdmU0pPNVRNWFU1S2Q5T1E1VFdsdTZHV0hSd1VpaEgrY2k0Q2JYMworb3k0TnlXa2VmelZvd1dSQk56MFNsTHdudWQ2M0t5TlhjdWx5RTNEaExNWkMvUkpKdmtyM2IvTWxWTEcvZkxacAorSzdIb09ta0xOb2tMazFzREhhUmpQNEVaZE1hZ3NCc3ZvOHJ3cVBnbE5BZnVIRzNLR09oYmtIVG5KOTFFc0RwZworSzI4MTY1RkZlNlJrV0FHcU1BZGNkVnVRMUlCNm85TFRjMHZsQW1zRkpvWW01RWgxOFBPbGxaN25UeFk5c3dFZworTnJiVGo1ZCtpeWk4dXhpNW9kL1QyK0JOeGxwSEtrUkUyNlBmMVRrOVorNytHUFV0NmQ5TFU0WXBBT0hYZmZaOQorUTBJMnVrZ2FaUi94MTAwRmVJMU05TmF1Tmo5dEdsSDBvREZyV3Ywc3pUWnJLUkZDZ1Uwclgrajdzd0MxM1QxOQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBBVE1MIEtFWUlEIEUwMDI4RDg3Q0U2QzY3QTg3NTFDQzRCNUQ3NEY1NzYyMkU3NUU0MkEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFwRERrNXoxY0pETFpBQUFBQUFDa0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF5TmxvWERUSTFNRE15TVRJd016QXlObG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVRlVUVXd0UzBWWlNVUXRSVEF3TWpoRU9EZERSVFpETmpkQk9EYzFNVU5ETkVJMVJEYzBSalUzTmpJeVJUYzEKK1JUUXlRVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFOWFFZRG9KcmtBcUo1cGkKK0t1ajFRbUVNOE1oWUIzUFlWOUIrZ0c1YlExUHZScDhNQkh4b0ZGSVFtSGtzbjMyck5tSVZhdHBlMXdzZWhEN0cKKzNFVWthTzkxRFk0cTZ2bDVCQ0xIWVJ2ZEs1bzh3ZGNZMDRXbWgvOTEvZ2FBekFGcDJ1VHZPam1XQkZnTlJaNWYKKzdMRW9pVzRZcmMrZkhxcFNneHhrR3ZoaGdyUTZnMm0wNFhKMmcyTWtJYUJuS3Z5SGdZa0xMS0lITVg0L3lPejQKK1RRbk5FdHRyUkROTGptTDFjbytQaUpZVDVTN2RQb01obVE5UVBvaUFkMUFsU05oM2JNUEI3ajMxVkhvRkdHUUEKK1cyeWJwRE0rRFV2K203VU5qbU92aFppbmJ0TDMwL3U2aGgrWVA5WTljMDltQVRVeWF1MDM2bjV0RjM1SUV3dHUKKzNxRS90SEhLLzlsZFIwSVRCc29ZMmswZ0lsdjVXWi8wNWxWOUNRMmpEUzlIWTF5REoyekR3RjZoVnB5OG1wYU8KK3F1WTlubExLNndsYksrZC9ydGlhL0svaWgyWXlVK1dLdjFSbjVVZXpLM3dONjllOVBzL2tnVzd1dmxBRjQzTkQKK1puQkpPNkxZdmdTU3kyekNQMnd4K2dSamVJQzBXOEM2OGh6T2hYR0JJNVRZVlordlhQcU5kNmFkNnZ6TEdoa2cKK0J2UzVjWmNGK3ZVeU93U2pPajhLUkIrMjd4SlRpQVc1SVVHWHlMNUJudGllQ3VCY3Axa1NMUU1vYjhXTjVjL1IKK1paZkoyK241aEtQQUMyTzY3ZFlKbVZ0Y056dXFnUGVacThhQzhiOTNyeGZIQUlQR0tyYWRvVkh2WU96QkFIdEMKK0NSTFNvMUpWbVIvYW5FRUJGczFDTTNLNDVWTUJBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVGVyUklGeXdFMjdZdU8KKzZZM0U0SFRqUkpJaHBUQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUZsbVNZL0F5UDVvR1ViMVdjVkw0ZU1WZnVTSnVpNno2TkNDKzV2R1IwcmoKKzBKam1FNE1veGFTQThqVW1kd2JCVXEvOWVzdW4va0NvMlhUT2xCQ0N1WVgxRTVMUENCeFFaSW01bVFIMzdsN00KKzBuMTA4VlgyMW5XMXRBa21ac1hpaWE3VnFWbnZCKzR5UXVRZ0JFWWtiVG4vb3RlelMyRGFqdUYvUTRuOHFHMUQKKzIwbzVYVVhTb0hURURCQ1ozUjZtU24xT2w5NUtDRmp2L0ZyV3RPUTA0cFN4RXNGVVl4ajFZdTVsNkdhZmRjQUsKK3B0MlFyZXNaRVBPZGp0alQ5T2k2L1Z1bHlEU0tUY216WFF0NmxtbGRFeUkyc3dtR0QydEd4M2lNckFZRm9zdDUKK01HdzlRUUZZM04rTFpZTEVOekN0RU9IcGpJcnQ2eE83elFBUmVrVnh2ckZ2ZFYwMVhPVE1ITG8zM1pVRUxwYUIKK21RYlNWazdQRURLbElNeUlNWEJSWmV3ajBhMmppSHpOVkpRZkZWVGdHMzVXYmRCU0VnNzQyTmNHUThPZ0hPbWEKK0EzLzJ5MDY4WmVnbFNlTzUzTGR0YWdOeEtyMUpVZkptMlFDWFV6U3VCS2RVUFZLUHRNbEd4Z2RjK3dmMWMwR1oKK1B3SVpjWTZobkJjVkV0M1NjVWVFSFJtUGJQNWc0RG9hWFg0WWE2N3JLcEt5ZTNhRGRIbEQwOVhaMEwwNnJzNloKKy9YdWRjNWtpajlodThISWxtalY1c045L1dtOFpuMEtlUGlXTTR2LzFvcHF0YUV6YlVqSlNpVE9JSUlKY2VaK0cKK2xFQURBSGorWnNoQmV2UDI4SE1pdTZGNWVqVElXTFdseFcvNkRWd0pvM0pTOEJtQVhCSXpFWDBsb3VCQmR2VzAKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgQVRNTCBLRVlJRCBGNzYxQTNBMUY0MDhGMTA5MDc5N0I4NzEyN0MyQTIzOTdDMEFDQTI0IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcEZ5TE5yT1FEWVNNQUFBQUFBQ2tUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeU4xb1hEVEkxTURNeU1USXdNekF5TjFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVUZVVFV3dFMwVlpTVVF0UmpjMk1VRXpRVEZHTkRBNFJqRXdPVEEzT1RkQ09EY3hNamRETWtFeU16azNRekJCCitRMEV5TkRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTmNUaDZKVFBVOG5QTDhQCisrTHoxNHZHV25tS0xqaGZHSE4xSktwUHhoU0x1eFNxSnMvN2hsTlgxSWtFNHdPQlpaMnVUTFlvN1F6TEd0US9FCit4S292T21sSnY1dnpsTTh4SDJORllOd0UzV1RLdjBxVEc5T1hWa1JuL01UTWpqZWpqY2l0a1FINEQ3Y1kyZWxhCitLaGZqY2ZOZ0JnemtOZ1FBSWdjcW5kQ3hjL3ZVRlF4aFRjSTU0VWJOQzI1VjEveFZTK0crU3F0ak5MbnN5N1dTCitUUzFVby83d2FESW9FSnBQbmNVUVNhQ3dUN0tBVHdXQUM3enMrNlQ2NzQ4ZjM0UkRKMFNYRFdpMDN4TjRoRFRzCis1QW1wR0grKzB1d25FcEVOUHdwZlVDdFNtUjh3NzRZUDFOendHaWZOcEVuU1R0Q29ZRTVwM2NDb2JyU21zVGZzCisvMHk3R2dGN2dMZ2hjV3NtRmpSUzExUm41dnc2c2x5ZmptRlRLb2ovTjFoTUVqamltb2EwQjE1eHpQR2xBZHRCCittZVMxN3BWY01VdnY5THlySjIwOVVSOUJVeEJPVlcxZXlXQzY3TnZLN2FBRW1jVkgxd2VvRUU0TlpMVm9KVk1PCitaN1ZzTTRDcmxEWFFEa2RzMEZ2UHYwdllaL0ZvUUZiK3BhbVpEMnNhRlgvMGN5VFpQZXV5aHdMSzNyQWhkWnY4CitKaHFFREc0WFJZY0tuTjNOcVpCQzMvWGVJQ3dHNTkzYm9GR2N3Y0JqMElnb3JnWVNVNDhCRVlNbWdKNmY4dEZVCitoUERQaW9HK2hYTUpVUG90ZUxjYy9XYitXbEFHaWZrOGU2eGNyei9RU0VkYzJQVk9NSkV2K3grL29UZGpvbmZsCitiWFNsa0JJZzdpSUJ1UW8rL1lvUjZZWk5uQW9UQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlMzYmtxZkM5cTZjNC9KCitPSnlNVnh1M2JYRHZqekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFIaXNYZG1qYU9FMllMVmpSb0ZrT3JIelNnbzcyN2gvZGdFTm80MXVjcEYwCitkTHN6cFFpSnBSVmZ1ZUlrcHNzdDZ0MXdpNjdxV2xoZzB6N1NPNXhPekp5VHhSd0NwQWFRWnN4aHF6UTV2TjlqCitxQVBrMFIySllUeUpMSGVOaGMxR3dGN0ZvTnBTY1hqTzFpa0ZXTDVGd1BkTnB5SmNKcko0TFJaVmRDdkhRelM2CitwTWx5aWdZZ1ZzcWdLdE9HWXpVajlQSHZGRmk1VlBhK09Gc3MzRjFUVUxDa0dTWWdoRG03Y2NWVG0yMXNKZC80Cis5Sk83M0NoNjBkOXRjc3ZGWGFGK0ZqNllVQkhwUEl5TnBFWXk3SVBWNnJhRU02K3dHUTlSN1NNVXhrMEdLcnNRCisxcXV5Q2VkM2tDZjNMOHc0bTVGdkFacWQwMGw0OHk0NDJkM2QrOS8weklabGh4VDlycHZzSGNIQ1ZIOTlOWWFICiszdjBBb1ZwdDk3RDVXSTU1UGVpNmZ0SnpaZkJXYUt2bWV3MUxjbzczbFd4blRSQ1JYQVp1R3RlWkh0V2J0QUMrCitXamV3QmtLUkwwMkFHMExpbVN3dGdUMnBROVJzMFVYOHlJODlmbHBvZjdpZlh3OG9KMzBtcU1JRDRwS3RWam5xCitTcWt4Y0E1RGpNTm9WOTUrdk9ldHpSWXR5UXkrUzhpanR0dGY3QVpZNWNpdzcvd2h6bEZJcktwVENDZktYNklZCit1N2hTQVNZUmkzL0JERGZBYVhtY1ozNmhtVG9ESE1QSFRsa0VFWFp5RTEzYmkwelVSS2VVZVVEM0QzQjR1b3ZjCitmeDIwNWtCRUhINUt0Qnp5NlBsMTVVVHVxbVUva29wOTBvU0FhcmZ0bmREZUNIa1l6WnVmYTEzcCt2R0pHTlp3CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCAwOTBDQUFFMTg1OEEzQzNBM0I2RDRERjg5Nzg5MTZGQjIwNUZDQTkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVRORi9TMjdWWXMxWFFBQUFBQUJNekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXhNVm9YRFRJNU1USXpNVEU0TWpReE1Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwd09UQkRRVUZGTVRnMU9FRXpRek5CTTBJMlJEUkVSamc1TnpnNU1UWkdRakl3TlVaRAorUVRrd01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcUtTVWJMQWt1NFUyZHVZdworekZCNmpRNEw0OEorZVlydjM2TjdHdE9PWGFKbjE1UnhCcjR2ZHNMb1U3VDM1Sk1UL3BYSUZQK1NNcnhSR2pFYwora0RQMHZtWjVqYzA5Zk5pdlcrS2pmVDVlWGJmdE9jOGVjdDRHZTJ5WFdDWUovU1NTZmUzdmVZZDl2bUJiY2FoVworcjE0dXJybllpL1duWGdZRGowRlBYWDk4QjhaaGhJM2VrN0ZKR1NMSmt0TmhoejlSOXdNaDJTZ2lnZGtLT1hKZgorUDJFK29mRTBLaHg2a214SGkwYVIwL0grbkpnNHBlUkM5RkhwR2hOT3ovR0hNUG1EZlRFVFBvdjJaUll5cVZSSAorYWNXTFI3OHFpSGlLWXdpWllRb3cvbUNwenBuRHI2SWFOZ0FNUHJnSHp6dGNNYTVVcm9Sb1IwcWNUK2F1eG1URworV0RZWm53SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVdTRPZnlQRUNMSGtXY21GQlFPdjZPL0FpSmw4d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFCbEs4ZgorbGdsQjMyN2NhdkdMRmdza1JSQ3hoTXk5Vk01YWZPaHBablhLTzZuUXYyV1NuamtvclhhWFg3N2xhYkc2bmQxdAorc3UrdklPSEY0QWZHb2FvaEYxaDFtRTYxcXhvbHRnT0ttSHVleDFFVmdGa2dIanJObDMxeFBadFFCYkFRMGZ3SQorV1JKVVQrY0pqV3p5MTIyUTFGdjU5amUzb1k1VjhqZzdzVGFSSUh3SkV0dk1DekdEenlJQWYxakR4b2lseVBkaAora0o1U2V6eVRWQ1lkeHVyOGQ2RUxObjFPTjBEWk1jbEcyS1BWek4vU3Q3azdOWENWcnVGcjR0aTZVMGRkS2JYMworRzE0TUlBcU01cVFQbm9ZbWtZNkJaT1dGTUJPOEZSemh2azBXbll5b2ltYmFOVHlSTEd0L0ZyU2o3a0ZuZEFDYgordUd2ZEwyOGkzYnc2RUxLOHUzazhNSjQybjZTVXFFWGN3MFVTNnNQSk5RRy9YOVgxZEtHbElON3dzYTJOeFN6aworMkpVbURmWG1adjBvUnBJeEp4RE0zTDZvb2N2SXFLWkR5VTRvb2tSdXFaeS9xVDlWa3RZR2J0a3UzaHIwVnR1Ngora2NFa3VEc0ZkTWp0cGFlblRXS3d5RUpRMG80V0xOcjVMTGNmblBrcUZSUWl2cGIzZGVyMmlhTmp1bFMzTWVvRwordTcwbllLekpoT2xTa001Z3Ftdmd1RVVpemFmTlBybWRyVW1UQXFxOTBIa0RIbkhrRW9GRlRxS1RXVi82aVRJTQoreVpTaS9pbzNISU1mRDRiSUFOak9WZ09qN0dqQndvOWhsV0RpYlhsbzhjYW00Vi9vZUFwb0NnWXBaZlcrOXRYWgorSTVWbnE4ZEtUZklxYVFXb2NaS3hqR1hXRTlkVFRWY0FRbXRzQVE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgMTEyMjdBQjIyODk4MzI4OUFEMkU3RUU2ODQxMzIxOTAxRUY1OTJGNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFUVG51Vzh0dVBRb2RnQUFBQUFCTkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURVd05ERTRNalF4TVZvWERUSTVNVEl6TVRFNE1qUXhNVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHhNVEl5TjBGQ01qSTRPVGd6TWpnNVFVUXlSVGRGUlRZNE5ERXpNakU1TURGRlJqVTUKK01rWTJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXR2YVJLZ0xrV05kYWxVYnoKK3J6YVZqelFXbVlmcE14WlVPOTh6RTdNVXZ3OEEzQTdXVFdIekRocmxsZjg1TStlYmhxS0dWVTlOTENPcE9tTHAKKys5ZDFUajRabS9zeDZmRVpoc2ZwRExKYWo3NTdaTjNycStGV0xwUjYyRXlnUW43YVQxMGhIVTRWLzNoaWtMbGcKK3ljZU5RQzZvRGI2djMrTk44YnhOQ1FxeTVaaEJEaFJSZnhNcVVtZG1YWlMrQm1oZElkWXJWa2luSlQwemlNcEwKKytzQzJBeVFjUmpUbWx2anNEUG8wUTI3YzhqU1lRaGVHeW03dVRtTmh5ZVk3ckpsekNVVUlJbWpudmdTSS9QdkoKK1BGTHVFZzk4dUFYOTB0emRROURtdnYzZnZsY2pWb2FLNTlITkJZdGplNHliNlBJNjhaSjJ0a2xGL29FMXVxNS8KK0Irc2hWd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXZGbWZQLzVTUW93WG8vWnZkQ1FwUk9GaDlEWXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBdzFxdkUKK1BUODl0TXk0OFB4cmpaNldNbldjdTdPaHcyTXZ4bTIrVDZta2g4UkgzTk1udGVIMmpDVm5ScEJvS0ZBUlZUNmoKK1hBRnljSjVNWnBYaUROcmJpWVVxejg3YjFCVytBZTZRelJTbVhlTGx6V1FNOVRUd0MrOHpRZEhQZklBbXlLQzcKK2w0WlpRMUw1cldPeS9FTWZGMUdGeXNuSWxybjFpbThwaWdDZlBmZ3hBSUllZkdSY3hLMTdwZERYamxLUkdtbHIKK2NYZWkxQTk0bDE3UHZIeCtDejFrdVJrMkxHbGRvRHJZd2hobDFpR01rYUNWd0dMQjJVWHVVQ1dBOHVHOS9ZeWgKK1U0UXN4SDlWOWRQYmlUbDZIS2VQdVdUWDVzTnlGdEZUK053UUZJcmFxOHhpU1ljVUV3eVZ3NlRCZUpvandwaEYKK0VoVDRsWEdkbWdpSWNDK2oyRjlkdGtuOFdWSEdJNGlhektRNE56YWtsekhnOElNS05idUNEWUtROUgxUjJxcysKK0M4dUw3US9RZVRET1lnRzZyVHNNazVhRU5KNi9SNERlRjlBQnZMczBzVk9hcDZxdDN4NUNjeUYrMWJENWg3MUsKK3BYOTZvZ054OGRMQUV2ck1wWGtuOVZqR0YxSEZReFpNNU13cUhGc20xZmFURzhNaWtRTnBoT21uWUdyWkJLUUUKK2phblhmOGlWMzY1NjdjWnJjT005VXJNOGlGOVFtb2xGZEplNFFjc1NzbERuUUtOM0tEZ1prUW05MnE3TTZYRjQKKzdTUmljaEFaaCtnV3V1UWMrNjJlREhrUHU5NzkvcDZXQUc1ZmtJOWR4TUtYcVQ2Vkh4T0tWZ0lQZms4Q2cxWkoKK2tTSTdaRjVLVC9Gbk9XeCs4NmZQRjMrY2Izemp2YzBJQkYyVHdBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDExMjI3QUIyMjg5ODMyODlBRDJFN0VFNjg0MTMyMTkwMUVGNTkyRjYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWdyWE03U1BWdzY0OFFBQUFBQUNDakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXdObG9YRFRJMU1ESXhOREl4TkRNd05sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMweE1USXlOMEZDTWpJNE9UZ3pNamc1UVVReVJUZEZSVFk0TkRFek1qRTVNREZGUmpVNQorTWtZMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNW5ZcWlJUFR0N2plQXpIUgorcmQwY0NKNlJDS2tpTmJJQVpxQzdpV3RtR1NJVUdNdFh6MDRUQlZvdTh5WmxlYnNDd2xYYzMyWGU1MSsrdG1yeAorcmNnb2NiYmwvQm5YVmRISFZCMEN0cGFTSG83cGtTcXNQa2RoRGdhOEZxRlhPQ1hCWTZCOW1aeERla0ZkNjd2TworN0tuckZmS056VzFrZldENWlWai9EdjAvakZTdlM1dWc4N1A2NUtrS29nZ0lHbHFYODM5bEJGcmpGZjBIZnlDQgorVGo1SWM2a2Zaam5wUjFWUnpWTEJ3YzEwVlhXM3orbHBQcW5IdWlvMFZPb3A1bVp4bk1tTGVNckFObXI2azhNVQorandRUVJ2cElEZ00wcklrT1J5Vkp3d3BNM3hPVmlFUXpFOG1Ud29Mem5QQW5Mb0x1WlBRc3ZIQ2ZDSnRwQVh3dgorakE0NEYzQnIwRkRZaGwxYmd6L3pqNFR1ZDNGVUtndUZyRFB0QW4weEcvZEdVM2JjeWk3TW1TZEJNcjNhUldKRQorc0UxWnV3R0d6M2RxRmdST01mbkN0NHFhbzdlQ1FWaTl6VFpQKzI0QXZodlNUZDJVTmFFM0V4bnB6UGhvYjQyNworY0pRai9DMWw4MDcwZnhJYXdoM0w5dkd1endsZ1U2OXB6L280WWJ3RUIyb0llSjcyQkFGT3g2NFpySmRncy82MAorT0FmMkg4aGgzYmdaUFd6bStoNlBZWWJnS3kwcE56Ri85ZWVEQnB1VjZPVk1ITk9XMUozRXRGekh0RTFNYU1BcAorRmxLUmgxVE1zSS9VWGJwRlduU29kTys0SzZVZ0dicUZWd3ZrWEZvc0tPOEtkM1hhdTdTdWNNaFF0bjN1ZC82ZQorcktvb25WZ2t1aWlyL0E1dzlQV1FSTGxabnBNQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdDTDZEMktaQ2kxcXI2NQordkJMTjNxU2dQc3RwTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFLSnJqa0Q1Z08wNlhrTWwxeW9Md1VQTVA1ZGdackhCa0JZVlk1dURLRHpOeAora1N6U1VJb0hsNlhoWG5UNFkrRFBmeHB3YTJoUXowOUcxdDYvOU4zQ091UFJ3ZHlzUnd4TitZbzFzS25mY1NkVQordUpnaFh2aVVZeG80M1pBbTZjUmR2SWk3YWVUY2VOYm16UjJlTTNMY1drUEIxVHIxZncwYWhXR2xvZFRmQVF6VQorZzV4RW1OWmVrVnhmV0dXN2ZnT2p0eEdnem9IU3FIMFk4ZElwM2xTelp3TXVHYzd3VzMxbHI3Q2QrZ0VJZFJFMgorS25yTjNsK2hlSllNYUJ4bUFpNjRieTJHYmZCZzB2aGUwWjc1RENVNzkwemtPaFFqVEo5WlBGTmFxeTluTmVPQgorSXlmQXFQUTQ4RFluVGJlY2Fwd09FYXRuSjF1bDBCMHQwZ2NCYVZNK2d2dnl3RGJoVUczU1RlVDg3ZXR0Q2VTUAorbk0yeWZEbkJUcEljN29pZlVYQWp1MzhxYzNlcjEvTHJidzBvOVE4VGx0d1BST0ZsQmtiREttVml3dkphMk9PZworQUM0cmZVNWVpVGp1ZUxmL0wwZG4zMkxoVXVycGU3RldkVjBSbXJBSFRtWWxDVDdZdHpLVXB1OXJ0YWxiRi9ZcworQ3orMk1VSWhYMStGUG1YQVRQZXd5OUMyTTExVzBPL3BzSHh4ejZHV05MTTJSRVlJR0ZjeG5VL3JmdlY3RHY4UworU2dEWUJGOVFKaExYdUlsWnhhZWx4WlVmMUxXVm9JYlFRMWhRVS9ZRWpCN3p2QUtWeW93Qm5pcDRDK0w0aFZscgorcWpQWjJLOHVybWVXWCt0U3Z2cEkxRlMreVVYMWovK2pmQUMzd2hYRVA5cnlXNy9sWkg0bHF6YmR6R0UxTzRrPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgMTI4NDYyRjJBMEQxNkNERTE5NDZGMTAwMDU0NEIwNTVCQzExM0QxMCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZERqNCtJdFlETFNjUUFBQUFBQjBEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreU0xb1hEVEkxTURFek1ERTVNRGt5TTFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB4TWpnME5qSkdNa0V3UkRFMlEwUkZNVGswTmtZeE1EQXdOVFEwUWpBMU5VSkRNVEV6CitSREV3TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFuRmg2c3FCSE1HWWZsZEJYCit2Wnk3dzJSNzE3S3NscDZKeFkvV1o5dVNyT1E1MGt0aUNiZlBWRjFwZXkwazlFTnNHdkluK0tDOWU4cDJaVlpsCitSZ2IrU0gxenB0M1hqWU96TTVQZWFZOWdRajgyN1VEaDBmVEU1azBOVy8rNFlhWTdjaXBwN1o4bEdkOFdXc3FiCitlbVFMTWJQWXk1cWU4TU1iaGlzOFl5VWpnaXZrMEVMRk9mbHJxRUdOQ2JqZWVQd29TeUJ5cVRFcVF0UnVqS0hjCitncGhwajNUZ3RjYjI3VDN1TW9ic00zcjh0eTlNbWRKUW9VcVp3cXNHL3k3ZTBYRGplQlVZRmpQRklzcmpiNm5MCitDZWF0TDhubTdyMzM5aitXL1ZZYng1NzRmWE5nb3pBMk1WcjhXYnF6K3kvKzhpVktzQ2ZzcGFXckd2N2tnNWc4Cit5a3BYZmJCRE5OdlJWeXRFQmRGTWd3UysyWEhzZ1FDQUdCdWJ5WWtQZFEzNFREOWhrQUFCTXpaK3g4c0o2U05LCitMZGc4TDNiVzlkNEtuV0dkSFh6Z29GZTV1clFPcFJ0SWUxeVVaNW1RcEo4bjRNdVVtTnpnUVp4YzZMNzhlSUMxCitNaHZtRXY3NlhHVGt5MHA2LzBITjJFajh2bE1ubXcweFUwc3N1TGlLeHN4T0FyL2hURVFOZHNsZkd3OElxL3l4CitZV3QrR1loa2RUU1pjYldlNGVoMktDbVRsc1o4L0ZSTFlXdFJRZ1ZWWFdNMU1GYjhiWkh3WGJkS0VKb05MQnQ3CitXUExaWCtFVmZ2WUFueEZaODhiK2t4TkpiUnlTMElRMU1qT2pTR3lDeXB0eHY3OUI0QlNVOGdwcVhlWXhCOTI2Cis1L3dyN2FzcU03N0pUb1ZjYjYyZEY3RkpjMU1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQWNUN25ianp3Y3NVRjNNCitkSzg0OERwT00xYVZNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUVyMUQ3Q3lSTDlHTzBEeXdScXplbXZUUVlYUTZTK0ZSWHZNN3NlNlRUOEhYCitUOWwvdm1jOUZUb2xvYjZUaGpyQ2g1SFY1NmlOdnF2MU1UVmJvSEZJZ2lHajYwQWlNVytNNzdsYVV6N2RhQ0VKCitHT1UwUDg3cWJpZkpub2JUbFNjQXU1TUExNTNjeEhKU0FvdkpZdXlBS0RyS2RwV1dKVHVDZXNtd1NLUHZBMmxECitiMHlWVXJsazQ4VFlQQ3h4YXIvQWNOZVZqNmpJcEtEY2NBWmZaV1ByTFZCTVZBVVl4VkFnK3pkc3ZtUktXMitlCitUMmZRRXd4UkhERXUwcFVtMEtJL0UwRjBmSWszcFpLVWJOVWJqbTI5N2JIbU1Qd2dtOStrcWNDVlVVNHJVN2NvCitRY2o4Z1RaSUExeE5uU2Y1NUdwM1BSYkUrU0ZoL1ZFbVpzY0w0bmx6ejNJbW83VFdicTU0TkwrUjlpWW1BYnNZCit4M0VKaGJ2b0M2am4wZU00NGV2Q3VweGFTUTI0OXBpalpHTmxxcUhOY0E3NHc5ODRhalFzQVhxNnEvamE3T1N3CisrN2puL3pLUHVUeitoUng2Qm9VeEdncWhXd2FRUXU1NnNKWkNPZ2l1YmRxTkY5RlQzbXROOXRKNlgzUExxWWV0CitoYUdhNGR4UkwyZXlpK1AyTXhkdDd6VHpqQnFsdGNOSWhLOEkzU2h1R0t6U2l6SjBsRlFQVmhzdmhwc3JWTDZxCitYYTliREI5dTkrdGNsRW9zVUZ6TzJNYlFvbWlCMmtvQWtjVDgvdHZyYXlMQlVGbVpQQ2ZZR1Z0T2gzUjdjem1PCitZWkdyNG5UWFdQczF2dEpoZEdTNmNqQVVsRnhJOUVYdHVWQTFFUHNyMFR3N0pNZ0R1SFJDV29ndTJTaUt1TEU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCAxQkQ2NDVGQzFGOTA4MjdDMjgzRTZDQjUyNjg1OUZGQUIwRTBDNjJCIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFnRmdDdUlwMUdtdnF3QUFBQUFDQVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhOREkxT1ZvWERUSTFNREl4TkRJeE5ESTFPVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHhRa1EyTkRWR1F6RkdPVEE0TWpkRE1qZ3pSVFpEUWpVeU5qZzFPVVpHUVVJd1JUQkQKK05qSkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTFwRVI4VXRwTVFiQzRZZFIKK2J3M0JPNFhuclYrWXlLQnJGbEphVW15b0pvTW51R1pOT1NIdi9GdWprZTdYbVlCWkkwSktKbGVPbEhhbFJCNlQKKzRBVHE0MzBDUFhyWXM1NTdCRGdQUGR5UGsrN3haamRucUx0bTdBQ0VRUjJ1dzcwcmpwUEk5NXdwQWtDb3RxRGkKK0FwdUx5T1NMZTQ2cDR6d1V5bUw2YWxER1BuRGpJZmJIakZIRU5ZRllOaEl3T3A3U1JpN3VUMk9aVUxkem1jN3AKK2s4ZjZaUi9nVGRIcVUxZDJoOE9GQzkwSFJTRTBkN1Nkb0hLT1BtQUEzTmNDZlBzeU9zSUpSaWl2YmY5elVpYzAKKzZ1a2x0S2gyWDM0ak5abTU3ZWdYV2E5bUZtYzNPcUJSK1JFRkJQaFRIelAzeEEyeEI5dlFyZnVERDIwbU5iNVIKK0l6SENHN1R5UmgrR2NtYUI5YVhYNnBrNDdXdGJDU0lobGpHQ2FGeVZ2WHhxQlFJN1cvVXc0WDNZVUxsSC84TU8KKzh1d0I0QlMvY3BOOWJBb0JZbUQrYnJTT2IxWCtxMmtYemZ6NWNOSnRIemxwYmIyNGZBMVUrc0xyKyt2MmRpUFMKK3dGek5uVzdUdCs0VVJqUVdwV2RvMFF6c3hrSno1UUlXWjhvai9xbER5ZmMzNzlpVTJqeEFQRHhwWGNyM1QvcVoKK0RzNm83OC9wYlNkTmdIUVMzVmhXYnBXeXp3RHVxN082YlcraEIyVytmMnJpaTVMYXN6RTVJOXVGUVdnYy9HVC8KK2FEMzVLL1lhLzRaczdsLzJCd0VSNDQ4amhsMjNWQm9MRHRnNElGUEQ4RFVqYWFPQS9XczhGL3ZOL1c5c0NjZzAKK28va1hjekNBbUJDb0N5MlZlM1d2VHZlV2dKc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKZDBTSXhhd0UrMTIyTGMKK3NETjZNV3NDTkxSS01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBWENhR3NlbmhheXh6Si9laFBkcUNNdlRTQThVWGtCS3dEWE9pOFZyN1daU28KK0ZvRVowSkZsZEw2T3BEcW9Fa2h6K0U4ZkVFRE8vYnp2Zis4MElYZjBYMUNNODZ4RmtRQUpnNGppdm1HZE5mangKK08ybklKYUxzL0pEaWFXUlpOdkxGSTZNVnh2YmZnRnkwMThKc24xRmVUZDl0MXphSjdoeE9DZDBOOE1Yb3E5VkkKK2oyUndWY2thOHFHVXZlKzhIY1hLcFZ1T0RDQ29uaTlrcG5oLzRDRGFEVzdKSHVOL21aTXRhWlZsNU8zZmZEcUQKK0crTmdaaVNucGN2cXROVTEzdHFnT2FmS2xIKy80Z1kvNHRCZ1FYQTljSjNqY3JJRXFWL3Z2MTBKbEYzNzU0bkMKK1g1bUIzeGJ4N1k0cUFkVG00SDJUTFBxdEZ2TTVrTjVJcDVKTjNXSldBOTZWK2x2dGNsVUE2NDB6RXR5cVc5Y24KK1p2Um44cTJqY1RhN0dDbEt2YnU5clhldFNWcHhUZnRwSGpMTm5NeFVmOWJuRW1QWGJ6cDFnQlRqTEF1UkJBNjEKK00wZEdTU3RxclF6UFFSdTB0TWdwRGhPVmIwK3RqUEhudUFLbStVZk45REhFNXM0dGUvQ01ibmhqRDEyUlZxa2oKK0VVaEFqdk5vUkQ2MUhZUzgxbktqd2pDWm1peTZvZWNtT3R3VUFIOUZCbHlZUm5HSk00RzRxYWVlREV6dHF1RWYKK1ptUU5RUDZ0TmtGdzhHYjc3aG00aTFBMmUxVUJoNDVaRlhBRlFSTzZ5Y3MxQkU2ODg2aEgzQk5sV05SdmQzUTAKK2N4cVlpTG9IN3ZFWkpkV1ZBcm1rYThrb2VuSi9PNUJOQUtsbS9yNVFNdG81R00wYWQxTC9VQTNuY0NlblRhUT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDFEREUwRjQwNkQxMjJDM0U1QTRGODYxRjk0ODc2QzlFMUFDREQzN0UgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWNvd0tuZ1FrZ29weWdBQUFBQUJ5akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3hPRm9YRFRJMU1ERXpNREU1TURreE9Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMweFJFUkZNRVkwTURaRU1USXlRek5GTlVFMFJqZzJNVVk1TkRnM05rTTVSVEZCUTBSRQorTXpkRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNEExbTkwLzlZZDZFRVpqbworRWlZanhhbFhhbndROE1ndXlQK1B4UTJ1QzFrRnQ1b1hqTEcyekFVNWp4VU5yTFkrelpndGNlYUhhbVl1SVJNSworNXRkK1hmMXUrZ3U0T2JGaEdtTnZYZ0VOOWhOVjRxVHhtMWNCbyt3c3hKMUV1V05tRGMzeERYNGl0RnI3WnBOUgorMk5TZy9Zd1VIMUQ3WDVzOWs4cjBURE1TUWdZaTdjT09JOTNwd21kaDhKN0luQytHdTNHeURqelBBZmF4blc4QwordzQyUlcrd2p6WlNVbmZaRmd4LzA5SGZoRE9BQzlHZGtLVkhpRHdxVkkzMUc5Wk5IbGVFSXQ5akNsSHFHMHVWUgorZ0VqUkFpWmFtVTBTV1lLU0ROOERnV1N1T3FlTXl2akIxTi9hNWZpcm5xZUZjL1N3SVErdS9MNGxQUXNoUmRyeAorUnN0UThYZ2lTUnppZzBCSE5CdnJ5N2NXelFlZWVtaHY0a0NnN0ZBQUVmeVdjaGc3RklGOUt1QWNUWG0xUXlkMQoreHdBZktXYVNOMHhyNDFHYXNia0NzN083eS9jdnBEeWNBRlZ3eEJPWFFOamo1ZHNrWjl0QmNUdTNWU3pwSU10bworcFdaMHZYb01wWkV5S3BTWEprSWtuTnJzYll0SjVNTzdpTlU5OGg1Nk92ODM5SXBrcWVFcXBjbGdUL0lFQm1QQQorek1yMDhoZ2poVVhVTUY3Y2FENGl4ajJNa3dHWi9GeGtEdVM1eGlQRkJJVllVYkRBbngrUys2aGdkeVVCRkJkbgorK2JvTnEyb1MveXJRUkszR3JiNEgwRkE1ZWtPd3I3NSsxTXRGcWt0WkZTS3Y1UGoxOGJRa2NybC9IOUhwY1JvegoraFAvZElCU0FiRTlPWEtMYXZuc1NBZkVBWkg4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk92SW5JOTBtNjJRWmNBLworZFpRRWoyOEZsU1J1TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFkRmxKaTFCaWVYbnNaemJPNHFQTWxRMUFocWxzYWNtbUducHJFU1ROdUkwOQoraHNONUhlRXU0SmZiMVQzaVpFYXAybFJmYVdGZVJtUHBIbTRZMkJRYTZ0S1ZqOGVmK25tTHRCZXA5UG9qcWxtUworN1BoanhSam9LZ1NpTkkzczE3YzFPRExoZGtPS1ZVd0hyZzVVS05pdytyZmJzalJRZHNTYlUvU1E4STdmUkhLOQorVWowd0lGYjlYU2MvUkxkR25mZ2wvRWpxTDhHWGJCZHlaK3UrTU1LVncrYVV5T3NNY2Y1a2RkNnEvUXg0R0FDRQorTWM2L3U2Q25vMFhDYVV6U2s3bXJkUkduS0Q2U0ZZSTNONkR3ZEYzWjRqbjZhK3lFQ1hBY3dlVzl2NmE1Mmh3TQorWFBMUDFiN1FMc3ZmUTZ6Y1k1QnE4M21UN3E5UnRPMWYrRWR2VEk1bTlEZ0dWaDQ3Mk1valROcFhXTS95QjFUTQorUDFWd1JIUkxuRGgvTHVBUklWcXRvTis5V2RXbk9KSCtUUnNXY0tIenNMNHJIdTBsOTIxVTMzdm5EZ1V2Q1lyRAoraEpTSUl2UGpIYk1HYjVKVSs3dU9LRHV0UHVvYTMwQk1XdW0yeE9hTlYxSWFPSmdEU25UQktaV3djK0pVV2plUgorc0RvdUl4ck1DRmFnSzd2M3Brc3ZhcWlhSTBXS295ZFNLVTJMaStiZjlvVjVpVG9NQUtUalBtRGFkNDY5ODBEcAoreWVMZFZhQXY3cHZkb1h3MnhEZG9mMEIweFNCcXp4aWF2Tm9DdW93ZkEzdTRpcVpGRU1XQWxhWGorZ1pzd2xZNQorOWVTOWdmUlh4N1N2cjhDL0c2aW43THlzSXZNb2RqU0NaZzZVMjEzMGY5aHVQblE1WElRYWVrYTFLMmpzM1BBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgMUZDREZCOEVDRTQwODY3NUQ5NjNFNUU1MTA4RDU1Qzk4NERENzk3QSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcElPTGpyMm05ZzdqZ0FBQUFBQ2tqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeU4xb1hEVEkxTURNeU1USXdNekF5TjFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB4UmtORVJrSTRSVU5GTkRBNE5qYzFSRGsyTTBVMVJUVXhNRGhFTlRWRE9UZzBSRVEzCitPVGRCTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFyeEUwaERzWHUwUzB3SXFNCitIWWtwL1VhNXBJOXZpdWdtR0Q2UXdDSjZtakltYis5NjNCaHQ0UWhFSE1EWFVIc0VzZWRsekRXWWNPWFVVdDFNCitUUHFidlRTMnd2ZE11S1phMnZUSHJ5eGlra1pwc0dCVTNPOFd2cXpDenc0VmVpMUp1NzRVNXVNM1lBNjFiVmZGCitkTUFHS210UHBWYUp4K3NDZEdXWmg4dHFtcjlXOTd5WUFUS1dCZU9Ed2paUkwyOW9Nc3ZEQk5sT05ZUGoyVEVQCitqSHZUZ1ZaMEV4dVVUWUhLV2VWYVhDc2MxQTdnMW1nVGRLWWE2VC9GeDVEbTdveUlWUS95anVUbkJGa0Yvd3I4Cis1RlZPbE40SHFtTzlodi8vaUNQOWpERFZYMUYzdHpWUFZ3dGhvZ0RzcFVHamhSWjg4RzhHNzlUVHRKaTVadnpHCit1TXlRbFp4WUpWOXVJSC9QMXlBTUpBUFkxTEtRZHVocFdLRFUrYW5CL0RRdDNBUVo4dWc5cVNlK3hxeU9QS0F0Cit1UnFWRWMreEpLK3ZvY2tqRUJpZzdnNFhQdmhLSVBVYTlSUEVwQlJkWFMwMG1ETEtGZ0JzYmY1ZkRreFRwQmhqCiszN0Q4VjlyZ0Q0Z1lIMStyZTVJOWRUbFE5c1c0WU41ZjBLcllTYitwNjljUFlvRml1MGdYZUJyWEZoZnIxamUzCitGYXgvdFI5Y0gxYktET294dkk5T1VHNG1KVWFUUlgrRkRHUDVrMTlLMk5KNXI1ZE9HUlBEelJ1RE9WSkM4V1lHCityREp1SmpjTDc5K3NtaXJHZDdJYWFHRVhLSXZCaHptVkRlSDJsRTRxZUZ5bk13cno3bU5oRmhkQU0xQlJwczlRCitRVkkyLzBrd1FhNGNrSm9EdkJ4R1E0MVNNOUVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQ09JSHgrR0d2Nm45QzljCit2a0FEUlFFeEhHaW5NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWJZcURoQm9ueWZUYU1GVzY2ajE2VkRadkZxRjZSeDFNa1VBTzFCcG01dWNHCituMTBRSzdaaSt1SUdwT3A5UHFtUmxNSlRjNW1tUy9DRDdIa204UjRia2l3clpHbFFoVUpaTjhNVFNISjVjVzdUCitzWFd3RTZ2NmtRSXp5cGFwU0pPdDFwZ2ZOQmZxdmJMWXU0ZTJiRWs2dWs5RkF6RSszR04vWFZvdGNZVklWYW50Cis0NTVvUW53cXEzYWVhb0I2MnZRcFhFQmVwa1JWWnNiT1VwelNUdG5CU3VIbEd2YXY0aWNPY0FEbXltbFNxME5GCitjc2Mra1I3MWJ3RFFEK3hNWEZCZmpjUjBuR0FVSUZCQTNjR3FLYkxiUmlTVjFIU0U1OGNLbUk3V0dDaEpVVWhGCitWemhDY0RzZnZ1a0xGL3ArS0RBSDJtc0xya0FPRmQwekV0Wm1aa010REwycDJZYkNNM3YydDkrN2hoOC9LSDNmCit2aVhYTjVhaFlJbHdFT0VCOVQ3NU9JSERkY280bjVrN1JVOXRUblBKVDl5R2h5QWpJSktlOXhMQkk0QnJRbFhUCitmdWttdmVpdEJLTHpYdWluMXlNZFlid3IxRUREeEpnSU01bGZ6d2pZUmo0MnJwa3d3dTZNMis4OS8rblhOa2hnCitUTlIrc0RiR1pSN2E5djRBSmZwdURPSk1pVjFWSk5qdCtnYTZUbnhyM1RTbk9pQWVZUGRIWWtBTlhiY0FiQ0FSCitPL1FQQkcyRytCU2o1OFlsV3NBL2dGaTVmSjVneGJxL21HNStxMXQ1MjRMaDdPSzgxSW1vSTBoVDlLeXIyRGxICitXOWNrNXZSWXF4dlhFdmpWRFhVaDVTYVlCV1V4SDV1b3N3VVI4ZFhOY2ZHYityU3o2c2srOXNNZ1FFazh4Nms9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCAyMkJGOUJGNDk3OEY0RjQ1QTRFOURCRjcyOUQ4QTA4QURDQTBBODJDIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFjMGg0SjZ3ZGE4YmNBQUFBQUFCelRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt5TUZvWERUSTFNREV6TURFNU1Ea3lNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHlNa0pHT1VKR05EazNPRVkwUmpRMVFUUkZPVVJDUmpjeU9VUTRRVEE0UVVSRFFUQkIKK09ESkRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW5lYTJQSnVBY1pTOGlkVmEKK3dScnpZYTlWYzUrNkM1Ry9WR09rNStBYnVEeFVjSTkzZ0FSUnROelNHZ1luVlg3U2hEbGVTZ2dzL1FrTmtaa28KK2tQTXJNbC9TM1dwRlR1L0J6WXowdU9JcXU2Q1RyckUzRmgyTklWcnJjNEJxZE1iTHFBeE5mSmVxQWFsdUZWR1MKK1lONC93aHhxa2VFS0pBWlEzbkpNN01EUTA1R3dEYjhRazhiM29KT1ZEOU8ySm53b1p4NVh1TnBSeDlTbnIvaG8KK3laeFdKemRMdjdXUFFva2x0dWQ1YkxEaE41UTJ2aTl0MHNUTkdhQ0dITkNXNmYzb3Nzb3ozYmtnNlpaem9UL3IKKzVINERHVmx6YmZaVUFqYTZiMFFFWFZOaU1GcWM4RHpieEN1NDJJcGFpVGx3enJ3YzQvTytZN3FlY2ZwMDR1ejQKKy80dldRRldEU0ZuMjYza0RlVWg3ZDZsQWUvZ0pXMmh1VjJ4YjNkaEdIcFplV25kSk95cHJDa0VBcmxBeG9sYisKK2RuRXNNTEUxU2FWTFhwQU1mNy9waUUxZy9JdEw3Wm4vdm1xdnJZbzNWVXJjVkJVc2w4SS9scU94aXVXVEE4QXcKK2pVeGpMcEtOOEF5eGh1TlhRdForVTIwcHlWTjhQTFlQZjJKQmdLMk1pZlNFZ0VOenRFTXNQY0V4bVhkcjI0eEcKK0JkcXo3QmNJZnR0dWxJcVFUWUJOZ1RkV2ZqTm43NjdFNVpLaHhjaWFHVXJ0cTVtajJUU2h5WWgxTXFMOHRnSk4KK25yWGI4cGZOSy80Si9UWm5NbzBJeHZRcklXUHU4eWhSTlZ3N3gzRkNDUFUwR3ZJek1EY0hWSjA1NVdsMVVqQjgKK0txVlFvQnloWGt4ZzRBVjhSc1ErV2g1dFJwMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZHQ1BtYmtRMWdSMlNTaHMKK0xMODFjbEJjajcvek1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSll4cStpMHBham5HYW4yTUxPV3NyL3JBaTlJd1BFY2tGYVhpZ0ZKRkNMRmkKKzh0QzU3cVQ4eEgvNVNtWWl6RnNtQjAxRlNucHdxVkg1WEMyZzNITURPcCtjNDJyM3VPeTdKV3N1TEd5WDdOV1MKK2dKNm9qUTZRcnAvVXF2ME5YbFdLVGtOTFM1Zndyd0hhanprRFpUWnk4N3VyUWd4eUZpQ0JaLy9veXo2NDN2cDMKK3VGZEdjYjRsZHVBMklDVmxVdVZOYUhWejB6NHJVVTZ6eXVUaThTMmQveVNaaVpYYVZqSG1ob1RRUS85OW11TFAKK3RrQyswRWRYaDViVTZCdEFwakEwdGVpdHBOaGNBdFFoYlpCWmNwV1p0cU5IS0xFUlJHZWg2Z3Q1cjBHS21Ibm8KKzNkRHdZUXRKNjRBOER2Tm9qRFZkcnZZNmpDOWxKcEs5MG9pUzFURktGa3ltdjR4Um1VOExxZHBNYW5VZE9rTU8KK3RvMTc5RmJjd1N4d0Z2UGtkMFdrQUZkQS9YNE1LYy9YcTdiM3hHMTFicXJFNTJLQ3UzVldVYU51UFpWMGozUUIKK1FrbUYzS3IwczJKZ08zSTNTMzhYRWtTOEVvUVh5Q0ViU3hkRkNnV3VEdkcvVnA5a3FiRWFrN0QzWW9zeWlLamkKK0R4aTVFOSsxd3hlSXFkaFRuU3ZYWHdONzVWcjVjbHRadFRlR01jdDFENW5sbDFVL0ZEUDRYYU11cVl3eC9hZEYKK1lOU0NCbnI0YUMwQy9TNi9qVzlVREVrc3Jnbk9nQ2loOHNIK2EyMFJBTERCWjRCNEdzR3Ixb3J3UGRzMW8venkKK3hEL2VQUXg1MXRQK1M4cG5JTExwVmJ2VGxiTVo2bStrR1B2ZmxzNExmdkE0a0xCODhZb1JaTzFtNmhXVXRpaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDI2NUNGMzI0NzBGQzREOTNDNzAyMkZBMzRBQjRDODA4Nzk0ODQ1NEIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBV1pveGxBanhoRFFIQUFBQUFBQlpqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3hNVEl3TWpVek1sb1hEVEk1TVRJek1USXdNalV6TWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB5TmpWRFJqTXlORGN3UmtNMFJEa3pRemN3TWpKR1FUTTBRVUkwUXpnd09EYzVORGcwCitOVFJDTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF6VHJMZ3dXdGVoejRobUIvCitjM1UweS9PcUYrVG9Xc2h4cThlZWF1Z3ZqVEtYVEVjRVN5TlR1RS8xZHRZM0d1K0lLWlE5YTFUZ0RYVE1SOE1QCitrT2xSOTJPYXdidktKS0JDSDQ5cHhHWE5zRW1XNUF5QTFvb3IvT0NJMGhtZTBIZ3Z3ZGQ5cTZoYWptVDF3QkxWCitqTHBQNHU5RDh0dVJYOGJxWWhoMjNBNFp6b1E0MXA2aFRDTkgrN0dNeWQzamhXWEI5US9RY2NNRmNXVlJNYlB6CitXNkhKWTRJcHJXMnJhZysvQ1ltRzRncWJ2M2dyaGNvaW4zOXdGQUdUQkVsNk5wdjlabVMxZmhXQ015WWYxOFhICitac0ZEd3Q1K3ZDNzdzNmxqajV2WlNNRG84TjkzTUZrNEVUOXVRMzFWd3V4SVZUV3QvVGV6cll6RmJUekd4d1d3Cis1VUg1S3dJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVOakN5cFdrN1hpdHUxZUtldklndktpYzVkeGd3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ2NUbElyCitHajNtUWtMOU44REtVQW16VFcrQnBUOFdmdGJJT2h0UjZXaUJobUpNOXdyT1RCTEt5RGttZVNVRm1OWG1ENk1NCitKQkE2dnAvSlcra09ROG0vOEpDNS8rV2ZnZnRQQWVYeE1FQTh0SlBJdVBMWjY1NzRvc2c2WXdFZDJTY1JHYnFTCitTVXVLWUJzNHA2eDhHY1FzeElsbmpDZUhKVElLeThHdzdxWEpINzh5cWswWEdJcGloOFpreUJJWWphd2JVQXpGCisvVHJwVFUvaG5sMGExVVRBK1JjQlpqNWI2Tlk5a1BRWXdlMXZ5cmFtTVhTTVdtZEIxd0s0dEVMSFNPTkxRWExlCitDKzVzRlAzQ09Ock5Wam1YekxRS3B1cFczZ2VpYVlCSkd1Wk12K09SalRldGp3Z3ZrV0U2d1IydjdWT1hUanZyCitMZGNEdG1VMzFDZlFybmFoN2lWUEQvUVpTR2NnZHFnbG5DRFFBUjU1YTNOWHR4cEZnaHJSQ21iQ3ppUDRPODRjCitYLzlEaUgreUYyeFBsWHdTeU9EUXR2elpnT3ZyNFJOaVVsekJ0b2NtWG9ROE5kNzRGc1I5MW1uVDRVc2wrMjNUCitQZktUekdteXlmMS83N2pOUDQwbmxsc2szTmRHWnM1MjV5RWk5b3UybFl6dElWa2hCRnE1dm94WlhwK3FMWGpSCitGbEVvdi95VDVRQlRsY1Z3TjhxV0Rkdm1uTkV0M0JNekg4WE91c1pJeHlYdVVubXhNNkQ5ZGw3Q3lUUkgwTW4vCitVbUt3MXRpRnpqaFRSUE1HTWhyMHltVmJjSDVRNVRqaXJjUGc0NndVNWh2OGs4YTVSWFc5dWhlSEJOb0h2d0lHCitLTTNidDNhZ1N5R0Iza0YzMWtHbEY0T1E4OVZPVFF4SWt3ZkJqUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCAyNjVDRjMyNDcwRkM0RDkzQzcwMjJGQTM0QUI0QzgwODc5NDg0NTRCIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFnajVoM08wZGpaRjBBQUFBQUFDQ0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE13TlZvWERUSTFNREl4TkRJeE5ETXdOVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHlOalZEUmpNeU5EY3dSa00wUkRrelF6Y3dNakpHUVRNMFFVSTBRemd3T0RjNU5EZzAKK05UUkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTFHRFB4YTJEN0t0WHhJa3IKK0dQRHRrVVFqNHoyWmZHRHdOUGFCTWRCaVVQa0FHQmZNTFpNV0dub2twMGowdEV5Qk1tVENDWUZIZEJqSksvMmUKK0lqMUtIZ2UyTFltUlh5Yk1HNitsNmgvQ2drdGpSOUpTQVM1MmE5dTRzMVV3aVBzRlhva2FDNnNwejBKTjRpejgKK3dDdWgvZEE3RFNsbUxiM3BCdmU0VjRBUy9jdTJPVWZtbVBQdzJwQkdmbnR6UlZROXd3SFFOMTY0WW94eGFKS3cKK2h4ZGw1WDdFTm9RRjdXUllwUW5YaWhUaUJlbFdLTVRERmNlSkxiNE9vZHZld0FDVnBDTlRhTmkvRGxFejFJQkUKK3A0QVdEMFBhZTFIVGdpYUJKSFdZblBPRit4UVVlQlVic3hhRkgvZ3BOUEtGa21nRHN4MHcwdFNINzZnYTJhT3IKK0ZRR1dHTjY4ejJtS3ZtNjNVUzltNkN1eDc2UXR6UUgxejA2K1U2MlNMcGhoSEI2c1dpM3ArQ3E5bGlIek9yUmoKK2dDaURjYmpjU1p3Z1RZem04dkoyWkw4enExTVdsVWxNSXhtc05KR2QzT0hKVjk0WmR2SVppdlJ4Y1dZTnhvYUkKK3Nxd2JEbG1OZks2clUzanRmY2o4cVN0YlRYWERCUDVKRXlaMDhVS0RrWkhyb2dBZlpUMVZKTWFmcVNFYnUyL0kKK1RrU2lXekE0cDBQWGtvWkUrUTlFMmF5QzQ3MzNxa3VXWWVTQmlOQW0xYTArQjZodzdoTzZ6M1dzOHBQNDBxSUgKKzF2cERYT1RsTU4rTEVadm93SW9jK0lkWk9nbThJaXdvNzNDNU0xc21KRVRXbUhGTkhDOVBIZlZPNmVIT3VwRSsKK2pWUFVleHg1REFqVzNzTEJLZysxaXBoOWZsOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJTXpuOHhnUFgwamhWdWIKKzlibnVTdWVvQTN4Nk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBYndMN1JNYW1MOWh2WGV4c1RsMndDRHdtNzVmREQwVmlWUzkzNkRzNUNuc3QKK2FRVW9ERlp1UVp6RlE4Qys4Y2tLdTEzYXU5WVVWRmNIODJ6OWh0emw0c0Vad1ZLL1NMZkMyejVlNjB0ZTVEL2sKKzBrLzZwdk9KS3l0Qi9ySVB2SStENDZpUlZkcC9MdTd3OFl5Vm1waDU0ZTJzNHFqZk5XLzVmMis3TTNNK3RnTVQKK0JDVVRTZFpjNTRYaXNhUS8xN0tLNVYwWlVnMTlDeTFjR29uNU9Hc3BXZUNteG5xU3J1amoyZHVKVjBKc2ZWY0wKK0prbHdXZEQ5N0hxOFRIZk5xK1dGYm5YcytXQi9UQWxpOG9hd2ZPQ2V0MDM2QytzdXpyVFV2UkZjcnBQenZPT1IKKys4SGd3R3l2amIrQVNQQ1lqZFlnUlJFUHFkM2tMaU1nMVRUaTd5dE1uS25hK3hnYThxbnNkcDRaVWg3VEVqbUMKK1ZyNkY4RzNyL0dVZ3BLbm85Z0lFV0VCYzJwcDZ3VHpEWXdIVGJZVHZhWndXUzduV01QT1h2UHVpdnVFQ3ZWM1oKK0cxL2FLSWZuL1o4WnJGQVM5aVdzWDRBN1MyZDFsd3hPdmJSTVZmTHpXSmNoR054STdVUStIMVJSWnVYVUN1akcKK2t3RmZMRUJjOFkxdXZNRFhWY1NNbWxTTFBqVmhrcGI5U0pRaythbTRzdzFmSERqSGs1ZEY3SnV1a2o3MDV3UWgKK0NlK1BSNFpkemI2QldIVHFYNVo5eFlyNjh4YjF6T2lUYkFRZ04vQytSNFJ1MitPNUtSUzVoMFJkU1MvMjY4Q2MKK3IrMG5iamp0endBazArSUI1SUY4bW91eGM3anZHdGhzNWp6L2Nxd0UxdSt5TFAwclVEZURhYys2c21HQVc1bz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDJBNEE2OTgzMjVBMUIyMjA0NjRFRjAwOUIwMTg5MjI2OEIyNUY4NEYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWYwU1Z3cUVSTHRJQlFBQUFBQUIvVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QTBNMW9YRFRJMU1ESXdOakl4TXpBME0xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMweVFUUkJOams0TXpJMVFURkNNakl3TkRZMFJVWXdNRGxDTURFNE9USXlOamhDTWpWRworT0RSR01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBb2VCekZ3K25jOU1JVVhmcgordDk4NzBFNFlaR3RGbllxdVIrVzNuS0hFcDF6TWJhejZQa3U0em9kenhSMW5uWlNUbmlaVXIrTlRVZk9OYnVtYgorOTdjRmptTUhYemZiVFhGV1VTcVgrelAyTEF4R1VCS3VHWkxJcS9GaGNUU2VIamhVQlFRdDVuZGZQZjFiRERWSQoraGhwZTBxaWQ1NVdwbTdxZjhCam1DVk5UazhzSzAxVll2blVTb2xMd3ZhaUdSei8xbmFUNkt0UE9IbU9CdGJBMgorbGtOcDc0dEdnYmtMampyWTdzeS9WMDRMVFlZZG95L3RTa3lxcTNmRmxIN1pvTDlxTVhDM28waHdjK1hnQlZtMAorU255M2xhNVV2VVBoYjlUS1lZVENhN3JrbzFJWFRjVitMa0xKL2RqYWw0NDN6eUhVRGdsNm8wYTZRYVp6MUhoVgorTzQ2OUVybUNsY2RLL3JJbnFublVwQmVHem9ORXh6YzYydGxSWXhRRFh3M3pCRTByQ0duSCs3bXFhbzY2MGlEcworb1VIdkRIVFZuOUxhdnY0MU5hczRpOFdaV0d1MjErVmY1RlNVbGNJZFFSSG9vUllrM01uR3ZBYXY1M3ZFOVRSVgorYjlOWHM0eEJxcmMrZWw1NVFiaDlDRXdSejQwTzkrQ3g0amk4TkZXNWRFWE5nNjJtSW5SdmV2L3c1cHhQNlZ1bgorTWQ4SEJoZjZkS0hKOWtRb1JCbE5EeDVXT2gvbzc5VUJhcTJxOStDTWlZMjRxeHA5YXNyTHpnY0lLZlRWMVdUZAorb1ZueDNDMCtsQ25kcno5R0UwZWwweEZqSGZFWFZ5RlhrTnIxSXc3Sk1lWmJDWTNuQWlxTU5lRzZXTFExdExsbQorZWtzZWNUeUJkSjlQWlZrcHBWV1l5U2ttN01VQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdTYlVnSXlneDA5bk1jRAorUHkrUEdET0VxTlZ6TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFESWVQZWs3UlVjTXFpemp1Vkh1bzhQaW02aG5BaTdTSzBMV1lrSXYyOVMyNworUGphL0h5cklsM25Rc0tUNEh1ZU1vSHBkWDdHSmFiNzc5RlRQWGMzV1h2Wi84UWdRc09VTUYxWHhYUTZtblRvbworY2tpK3dEeFc5blBGMW5zRmJJZ3JGQ1JXc1p3aDBmOTR3V25XTXR5aUE5T3VNRkpxYTNpbGtNd05CY1N3VnVxeAorcWlFUm4wN0FGWUFJeWNzU1JHSlJIMThKcUViNmNGcWM0amhUcUNtTmlOb0xTWnRPWGtTdG5GVm1ocEFwck1qSAorQW1LWWFUc2o2c3NHcGRVeFhpWTZmNGE2WXdITm9vVkprTHlqenViU2NnZnYvcm1UV3pDbU14QnZucUoyWmxGNAorK0N2SkcrSWNkait0cStSUlBtRnJiVjhIemFtTS8ydEFWUFMwMUJoYXFTN1kvY3BKYkJmUnJuYjEzV3BjQXBSNQorMGpqR0xRWTZmSFNVN09xVHVxNjhlOHVjUWVLdjVaalh2MWd4dGJFdnpUemRTY0RrcFZNNHRQa0pyQnp3ZytBbgordWJBb1NOYXlzWnQzS2JBTGxQWWRFVDdNRkJEc0c0U2c5NlgxejNBS0cxc2ViRERmbTFqTFpGbWNsUFI3V3V3dworUGRVUXpFa2hPUnNCYks4bkZVNURxZ3QxNGtkOUViMWVKU3ZwOWgyM2JmZCtUby9mdHZYbkRVekRTQ0RtZlo4UgorbWNiQnFsNGdyYjJhOHhSRDNTUDFTczJ2di85L1JJeHpScmtsdCtJUG5ISTF3OTF3SEVOL2JabzRlaXg5MllFTgorL2Y1VDlzMXdvU3p6QjdDU3pkeDFwVFZ0YUcxcEJSS2tmeE1sNFRTdW11cThIY1plZktJL005THpPbHlhOVhrPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgMkFENzBFQjkwOTYyQzU0MUE1NUUyRDE1Qjg1QkZBRDI4NjE1NEYwRCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBY3RSaWRaeFhNVTVFUUFBQUFBQnl6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreE9Wb1hEVEkxTURFek1ERTVNRGt4T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB5UVVRM01FVkNPVEE1TmpKRE5UUXhRVFUxUlRKRU1UVkNPRFZDUmtGRU1qZzJNVFUwCitSakJFTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE2Q2s5cVorRTNQcGZHbDNyCitQc3hpVk9IOStVVXVrU2JyeU5EMk9OUFFOcXc0eFA0UG0vLzNxdlZKek85S3U0bGxxSUdrenBZc01jcHZFMFhiCitXbEJRbzY1bUVKdlNBZExpQUgxS08vSGNoaURvajMxc2tMcHU2WUJ5cmQ5Ym1NdVg4WnE5Zkc0dWVrcDZMbTdHCitQNjZtQnNGL05IMVZoTml1RHJ1Z3ZjVGVEQjRiMGFZRTZmYnN6WDZuQUxNdEhpWnZkc3FCZG1rSno4VFZyT2JXCitnTG9EbnpqQm4yWUNjcmkycEFOZ3JJSG1HRlRVZzdkTTNoUXpzUnRqQUNQdTBLUVF4c245cVQxWkExckRuazR5Cis0dVhueCtNcHlPaDFXS3pWR3B5TnBMN3NyKzlQbG1aRkpIbWc3em5xSEg3T3BHTVRZS3VMaVUzS0NYR3FnTTFjCitWaE9kVlgvcjNGQW1UQ1FxeXF5ODBXL0FvZGNnNXVIR3UzTUhxTWxYRDBJSVBoMWt5S2xTQS9YSEhneHZXaDBrCis0UFJ5YytsczRNVDFjYWUvQkxHSm5GdFo5RkdBL0NnUFpHNzQ0ZFVmUWVqZFhTUlovT3ZwL0ZtbWI1WEhmSzdkCis5bEhRTWZjaFZtdEJOZUpxRTVyZEw0VHpxOUhyZDVXWWNmeTRQSzFQS3gyK2ZSS1dFc0FlOERMbXRXRUptRlRuCit1Mk1HcS93dEN4NCtCK3VKQ0NWeDV4R21tbk4yQWVyeENianVDUHQ3L2V3YkJIQXNUSGVCSXhUZ0p2bFVQMDFMCit5Y2REaGZXUWhDTXQ2bmZOMFloVTRzSVV2UnNESUFOcHJWeEdUeG05bTFXeXNIY3lPOGI1NkJHUTVGYzYwTUZrCitQZHVBTkh4OVk5dk90ZWZTWUljY2pjQ3NhK2NDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRVAyQWFwVDFEL0ZRc3l0CitqYytlY2ozS3dUQTVNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW1VVnVuZEFLOXhpMFh6dDllVmtZclJEdjV2T0p6bkNrUjNWN0NUYVEzbG1DCitEL3BLZ3JZWWpYc2lPaWNKSjh4elErVmFFR2pORE8vSXYzVW1WcGhZQ3hETEZ1RGx4Yit0WGtvdEExWmhXR0tnCis5a0tRTndkVWFNb3YydEdQOFNQdk9EUEZuTDNDNkhxOEFreERtWDJXaUdac281SURMcERPdUEyK0NVaGtPQXpjCis2andibWVUTFRpM3FDbmh3T3FxdTYyMHlSdElQNm1OanNHZTNFelNjSjZFb0h5Mk42aENjNFh6Y0FRdWh6ZzlNCiswZitoNDZKWjRCTFBnM3VmTlNCbW44N0RQdG5FYzRWTS82ZHY2QkVhaWRLU0Q3TXkxZ2NRQ2x4WDI2OXpoV05aCis3a0VOM0hUZlVCbEtpcmUrdXJrZzZrdHh6amhNODcxcWdVUWZPeUpHZVZheHVNbEc5VHh0VnFIOVJWay9XLzhkCitqWW9GKzJLb1hjVHcyaEhEaXE2bUNERVcrbnVtVnNmUWpXdlFyempqdUlnN2hNSk5VVmd6TDlXb25XczNNOVVDCit0SFdIemk2b3Z6WmM2M3k0RG95T1o0bHZtR3pxVyt2TEJJbW1wdXM3YU92T3JaVmdkZkRDdHRXNkFMbTNnU3hSCitOWTlQNEt3K2ZpU0FRUkVNYVBvM0ppcEI1SVhMRVRLNVloVzRCVE5OZkNlYy9HR1JtQTF0Y05NT0w0UVdKTG5SCitzM0xZZjdMbTJtUTd0NFA5Syt3UmNnM0kwTUd5M0t0UHlKMVE0Z0Zlblg1azhpMTZjTE9ydmdudGo5MUNkZExwCit4VEJSZzBMQk1mRUVST1pEc3ViMTRtaHBGUWpxMElBc1o3RWFaUzlQZWtPK2lSSFhtbVJ2QzlZVEc4NWR6ZHM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCAzNzM1RERDOEUzMDBCODE3QUVCRTAzNTAzQTkyRURERkRGMUFDNzFBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFjL1g2NXFKT1hzVVpBQUFBQUFCenpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt5TWxvWERUSTFNREV6TURFNU1Ea3lNbG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHpOek0xUkVSRE9FVXpNREJDT0RFM1FVVkNSVEF6TlRBelFUa3lSVVJFUmtSR01VRkQKK056RkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTIwQ0o4RDdCdmNNVXNDak0KK1J4Rm1selhoL2tFbTl1cEtWa2ZibUQxNUs0YjNFL3RYcVExNTJIWjJJdzRtQUxlbjdiaEhaYTFvYmdBZFo4QWoKKzZ6MGh4QWRVbXRNMmJCMHFYSTI2RDJnbUNPNTB0dVdpMFFSWEtzOWUyekZZVysvdXMzRTBGUDN5UWFTajF6QTQKKzNxQmlLTUtnV1FtYmdPWlEvOUp0Vk1PT1ZPVjJWSmtlODF1Zm5ORGZNNFU3MzBPalptcDZnekxLcXhDTklNUHkKK0pIUDJTdklyRk15cU1nNUEzRjhpV3hsZXc2TlRUNWlvOWFoaDYxTnlFTjQxb2FDZHpocUtXT1MwQXBaa0Q3UUoKK1ZRSnZldGFHS2VteGMzMldJRjdxN2hPYTJpdEt6M0RUNHJRUDNYUnltTUcrb3ZQM285QTRScS8zWVdZSU9OTjcKK0JEeFpkR0NVb0pCS1Q2UDVPbTU5TXQ2SnAvNGg0dGFlc2xVZ1B5THJUblZHdms0a2NEc2NZaUNjUXJvZVFxcmQKK2hKNU1BTXkyM1BDR3RrVEJFVXNIWHBJTUs3Q1BBanZGTXRiSlhnbFRIOXdjdnRCbCswNUtEVkRqQXl2U2xaZXAKK1lwT1l3MHhFVUtNcGtXUmhhMnJJVi82QUFzcG0wTHFFL1d2NDI4Z1pqbU43elV3UENRQUtVL3JNU3cydU5ldysKKzlCaDRiaWVzaGk3RkZHNG9UdzhoVmI1ZFJIUWI5a1FiQ2dtNXZEa2k4OUVqd2RCMG1BL0twRWRKMlJXamswbTUKK2QyUHBwL08yS1dOTi91TjFpTVlENXVjZ09TZmZ5M2lmZHkvQlNoT3pTU2FKNnFNMXZGbTlGMWRHMFBPT0IrdGkKK0F0Q0VNZ0VlRmY4TXdQR0VBYzJPb29vaUlkTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPNXU3ZUhVTkJmaGxTTWsKK1dHTFAvdVZXaWVvNk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSXdSWTBOU0VkOUo2YmFrTTN6ZTR1U2g0Q3ZLNzFmQVgzZG1iK2V2Ty91VjEKK01aR211VDIzTHNXcXBxY2loM0tqTWxFQjZtSmd3V3ViQXNmcmIyTUZkdTE4QmNEcWtvbFFhbkx2Q0pxdHdGeWMKK3k2SC9iQSswdElnTmwzK25kTUdKWmF3d0VzN0hEN1ZuUFZ0Y2RXRGFLODhHK3F4emNoZXNFT094eC83SDJVWmYKK1hySjROTlphekFjM3Z1TVJrb3BKMm85M1dPcUlhSWNGZWZUUjBwejlXRDNsbGxnZWp1aHlHRzZTRkFST2lPR00KKzlsTkkxQWMrUlMrOE5JTktSb2hnUVdmVndjRHNBNklKYXlldDh3cVlTVWdwb0JTbk5ZWjFoN3UxNlZLUmQ2WW0KK2ZtUHZkSTRPZ2lDZVl0UXo5bzAwRC9MZzJRYy8zUzBxWkxMOGtYRlVzREJzQmJhckIwekJ6aElMaHBEMHFLRTkKK1U1YnNYNlRRRHJ4and0eTRsUXQ4U1NlbTVZc1JjV2EzSnhtOC96VCtSdGY3eWZ6VjFqZk5kMGk3WkhialZQUmUKK0ZxNS9RN0dHSWNUQ1Fla1BlWTYyblNQZTVaNUFTSUgxQkVvQVk4djdLUlgzbUtUanB2aHF0TFg4UmFEWEppOUEKKzJpR2VreE85ZUlzM0VLVWt4MUorczJHOUJCVkttREJScDFrSG9aWHBTMWd4cENMZDNXZUlRSzA0OW4rZ3dsZjUKKy9ZcFgzQVd4LzhTczZ0bWNFcEpKRWlzWVBYZ0kxa3VZRTFMbDhQNEg1S3pXZlVtdlZPU2t4N2tlVG81bXU0ZGoKK3hld2t0NU9MTWNCMitNRkpkanJVSEFSenhqUEVYd0IySldBdkp1V1Z3L001Uk5FcWlIbjhYeHhOckRNd1Q3QT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDM4OTNDREJERDg3M0M0MjMzMzE1RTFCMTNCQTk2QTBEMjNDQzEwQzcgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXJMd0UxNXk5VkgwandBQUFBQUNzakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBNVm9YRFRJMU1EVXdPREUzTlRjME1Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwek9Ea3pRMFJDUkVRNE56TkROREl6TXpNeE5VVXhRakV6UWtFNU5rRXdSREl6UTBNeAorTUVNM01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBa3FaQ2JGa0cxS0pOUVhldQorYmRsZkhYUEdJdTcrdG9valNCczZwZjRUL2JiWVR2RHlWSGRaNDZIMGJPcEtJM0M5NTFDb0FOSThKK3ZyWDdCaworTFl2Ri9hbGVEZDlKcFFNK2pjMmtmaEd4N3NraEFySk5LdWkrSnpGL0lmSlBISWxLUHArcEpFZ2JpWk9kMFBjSgorZ2U3WG1YNEwwMFN1dnU3YmkzTUg0SlRINEQ5MHd3Nyt2MHF4OXBIS2d4Z1IwQ05VK0E2T3FUOGpoWTd1Y1BvVAorL3M3eDJ1YnVrQWd5U3NzRUtkUEN5cEZHNHdwVGU0QWlZYTA2anBhaWEvOUZEUkd5VnI1R0dyS0RIaHJ4QUkyOQorWGtsYm5FbFA4Y1FVcndDUTljUUhiOTdBaDRqY3pwNGJiS25WV3JHK21WWUpwdi9IQ0ZVSjF0T2ptVWd2WCt0dQorNWZ6TzUrNElyRFFhbGxJZzB4UUp5c21HUDRZNC9uZ3FKVGg2a1Y3THkrQUxRY3NBOVhwY0dpRVhhK0xseGVQTgorMGdvOGdqNk9DQ0ZRT2hJRVdQYUFVQ1lJQVArTDRHam9FV0NiZnR0TmM1eWRJNGhRczRqYWJpT05sVUNVMmh3ZworS3NUaUs5bHBHWktEUW1VRzQwSVhacVFZeTQ4U0Fqclp5cFZXaUNYTUlwQ0pLQ0hVREI4RmxGZDUvMDlXWmhKTgorN1pFVTBHTGFhbi9LWDRxMTlHNytyemUyR3NMQW56dEhrTUk1N2tKcnR1RGUrUklPVDd2TnVhbU5reExiS1loeQorN0E4VWtWT0taOVJiMWhiWC9SYWJmZW1MQTRZdFpLYkVkeW1aZ0daeEpSSmFzVkZ3UU9QdUJrZXFPWW02UnBkTAorQVN1SUM1VWRVSTFrT2JpaFVGK00xVHJsK0JrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhsaXd2ZGdQYmt2Vlh6RAorRVlqRVUrempmNHNjTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFjQWtXNy9OTWlsZ1FYMXVNaUo3MFRUek1tY21iNkk3aitNd2xLQVhQN3AwMworRDhoR1FITWVLKzNKK2xWb3dUeFVSdDg5KzdzYVY2VFNjRGRTNjVKb2htRDdxcXowdGRaRXF0NXNEMkh1WTdnRgordXBMV1p1ZGhMdEU2K2hBcDNiR2Uzc0ZtZHQrUXlIR0pZTmdWVXNwRVNhc0VxWlVSQ2NrSk1jdmlnQnBzcGx1QworWDRNc09IcGNVQ1RQUVVOakIwT3NGZjBXVlBPejFQdElPcC92NXBwS2Q2U2RSSkxLeHpPY3laNSsybi82MGphLworZlNBYjFyQkthTkxrRTNZSlVJQVM3RXg2RmhzdUFQYUZ2UHM4YncxTmZwSkU0NFBYRHNKcS95eS9TZ0N4L2dvLworVkRhODZKVEY5TkpqaFdRb3hERy9zQTBYVUduUjcyQjRGU3o0MEJwVVcrYUMvQ3lkcTA5RmI5UGRLT0NuVDFHMworN2Q0QVB1bU9SeHA5WHVPYkx4TDkvOUVzaGd5K0xMSWVLVWt2OG01Q0d1RzY3TXd6dFRWTG5BK1lqNFh5TjZwTgorajQ5S1hFL0pockkxTThlUHMxS2VEN0pLZGVYTkEvdHh5RXkxWldCNWhsYzVBeVEwYVBzdW9TTGNUVDg5NW01QgorMjRZT0JqN21saEtKbE4xSVNCZ1FaZjJsR3lyb0tCN1EwYkJndGdVZi9UeXpKbUJ0Y0gwMUxMNkV4LzRGaVlZMAoraEJ4eXhvU2FENUh6VTQ4VG01OHBsZHJaeVd1V281QWRSaHpOYThzUWJFT29YM3NQais1Rlo5QnVEd2RUUkJDOAorNVVtUkV3blp0UFRtZ1UyQm1hbWJBS2praU1hZXBJeUtPOUcxQlpyNVNhVWRyL0dJWkoxQTdyeG1SakNISXBnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgM0ZFM0UzRTAzODNFQ0I4OTkxMTgxODhGNEUyQjk2NDREQkQzOUEzQyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZ0xNL0dvUDRvK1orZ0FBQUFBQ0FqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNd01Gb1hEVEkxTURJeE5ESXhORE13TUZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB6UmtVelJUTkZNRE00TTBWRFFqZzVPVEV4T0RFNE9FWTBSVEpDT1RZME5FUkNSRE01CitRVE5ETUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFwT0JpSlFNZWRNM2c5MDVxCit4bE8vVnpreUxGOWs4bUI1d0JZM0ZtMXg4Y3FsZnFBL09QbXpXZHoyOGZmMTgwQXJHSFNoTU93MmdweW9QVG9BCitncXBGWnZ5WllIekU5S2I0emd0RXE1b1FFVUdibHlaQzFuYUV4NW5JOTJhOVdqRG9hcEY1TU9jMk9qQytTQzF1CitkNEFUTzhaMUQvN3Nacm9EMTlPZ0ljVE9OK05OL0lFUFpvY0JYcTIreGFpV3hkb0dkd05KL2pDcldYbS9jcEFYCitCUVI4N2xFblptY2FGQXd5U2J6UW5YNk5tcmhxY3ZscDlCeG16c0NpMUU4Q2oxcWp0VUYxUUVQVHRISHhjS0VLCituTEo4cU40M3kvNFBUTlZXTm1DUW5wdHhHWHp1b1FaSXdFMFNPVGt6aTBSeS9EK0F4dG80MURTcTgzbDVPYjhpCitWRHB4U2lqakdnSHhoOEhva0lubTJ1bDVpczNmR044dW5CblE0OUxpSUhhUDJnZGxXVm1qVC9zZUpsdUIrUy9SCitHUzhxa25FZ00yMEI1S2lsNm9mcE83TGQyMVdKTThmSDBPK3Z4a0g0S3VXM05YNjFSemVaZzk0U0RYMlZnZk1qCitUWjRvSXl2S0xoaklIbEkvM2ovRGM3L3pSRWl3YzB0Z0N4QnpsWko1eTNjbU5YTkw0b3JOdGFjUk5JVEY2VmlPCitCSHMycHYyTUQxNklEakZwMWQ0WGkvK3U5ZEZuWkJmQU5vN0dpVUNRK2F0b1VTdVVmeTYybUhhRG42cDZ6VWFsCitRSVBjdlhpTG9Tc1BHNUs5N0ExUGZuVStyMkxGZHZtb2pRWTAvbDc0TWxXRUROcEVzUjRSd2d5TU1IdHlKOEtoCitaeWVTMDlkbS9lMVg3QTBveEdyUzdqdTlRQmtDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR2Jwa3FSU2RTUjFpNkZGCitHRmxPZXUzeFpNV2lNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWg1OFhwYWtRdE9MbG5yVjZjOGxvU3l4Q0FPOWVuMWNhYXJmTnY3UUM0aVA2CitkdjI4c1didmhSdlpoZCtpQUJ2S0xaOXJVc0xCT1dhK0xaTUkrK2JiRlA1UjJWM0F0eC9QZzFVS0FCVDUyV08vCitJSkhBVHRuakVvRW1OV0JOOExoc0U5UllSa21OOXNJZkQ3RWw3bmVrNmw2bjJNMTVGb09xTm56MGM1YTRXVzhLCitjMGY4R1J2d1FFWGlaVDc3Q3VoNDdBTWY3amlmdytIUmNhMFNlSzdVOTgwVnRNTXllZm16bUZjbEFVMjhlL2E5CitHZndvU3VEcGVrTHp0cTlxY20wVHNOM29QUG1IQ2tSeUZjQUR1V0daU2RGUXlnZ0krOHkzWGtOOUs4K01EcnRtCitheDJybzIxeW5CNHZySkZaYXdrRk5HR1AzNGtja3Q0UGZ5dStnMzBBOEJqNElvVmFFL2w3enNlUWNVSFFjKzh5CitsMjY1MVlaYmxnT055UWVnaWtaWGlPZW9ISGU2U2Y5SDFxMlZHKy95VDRNSnJOU1kyT3M3dzlvbTRFSk9xN1BhCitiZ3NOYWc1Z0ptaHFSR2E4ZENnamZVSEFiZjEwWW1CMlVNdVlUeU9IRkpJWjlyRVpxOXoxaUJKM25vY2JkTkRQCit5UmhNT1VDZnVuc0x3ZFBOK0RjSDArNnl5THpjTjAwVHJEa0xIY1Q0TUwxQS9WVEVjVVBYRkVkeGphNERSUEphCit6YUFrODhGSU9zeG9Rbit6dkNaYjFxTVRQZmRZTnVtcUdscmt6THByVzdtSVIwSzBOeTNpbjNYNTRxUUxjcGJuCitKL2NYRE8yZlZpZktWY24rcjArSVNibCtIUS9XZm5yWUhHMkFxTEg5SlVFVWRDTk5hdWFuTnpTV0tJNm1PaVU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCA0MzMyNUFGNTUwMDQwNjU0ODkzMENEQTlBNjdEQzc4MDY3Qjk3ODAxIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFyVHpicjgyeEh4Wkh3QUFBQUFDdERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMwTTFvWERUSTFNRFV3T0RFM05UYzBNMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDBNek15TlVGR05UVXdNRFF3TmpVME9Ea3pNRU5FUVRsQk5qZEVRemM0TURZM1FqazMKK09EQXhNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXlFVGVsdmMyZE9JR09JRnQKK2pzM28ycU5ZRDFyTVRBcy9QVERCSmFzR1FZaUQ1QndiZXRsVGM3OTBMNjdUYlFDSURDWmJ1eEJENGVrcldUZHUKKzdyR3JWa3dONHRFdUlLUnVEVzlkQmdZWTZ5UjhDTTBHVWtQM3ByQnhrNzl1c3BVakRVQXMvRnBkMEJjUGdFelkKK1hMbGkxSUpIUk1jd3ptZVYyVVhzWjhQOEJpRE9ZNDdMSVEwNkJ5cm5QMnVubllreGFDcHpMWVUwblliL0NxNGMKK2VpczFGTWkyUWxzUWVCcUhRSGNYbEFFamhBZFRZbGhLWTlHYk1ReWNpSEpwa3lFQ1RQa1BPRlk1NDNvdFJEMDkKK3c3SlV3dWUvZk95d2VUSUg2QklTenNLb0tGRnNKRXA0VU9jVCtEaHpJdUFUU2lHeWJMV1JGMlhSVTdZM1I0LzYKKzhpd0c5Q05qWTg3VE1RTW9qbmgxL1pmTWxuckdhVlQ5T3BmekRRMjBRM1VmTmNuRVZZT3ovdXhKSE9LUFF4eVYKK1ZkcHVkMXVmVSsxK2Y2eHovK25NbC9WeDl5QmJCOEFJS2t4NWJhYVJwL1FCSCtjRHZENVl6ZFhWVk9HbTRLUmoKKzFwWmE2cDVYMTRVMVh1aXYzU0FEMkNQZjJtM2JKUk1NSE5JU2FMVUtKYmtMTWFDMlJJNi9YNWppZS8wSHRHU0YKK3libWlaQ3BoUk1rYlNTd3k3OUdLRUUyUGxuak5kWWwzYXM0NjU4OGF3Zzhzd09aSll1UUJPWXdCZ29FbFZCOGkKK0FHcEFhc1FORndUNnpYZWJUZWF4ZjNxb2IvbjBOK3NoOW9zN3VOUk9iTjUvY0kzOFppOGZvOFcwcDlabG5hd1oKK25zRDlGbWNjbk4rbVE0dnpDYVRXZ0FmWjJ6OENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMTndFY1VuKy9vUGpoVzYKK1luNzBwZUNXeTEzT01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBanRaYjdETFhtdmszaEpEMERncmppREI0ajBVZ1pZTGNCcklpVWxIR1J5SS8KK0pWMTVSUVFiWFc1OEtmUjFnWjV1emRGSkJoazYvdXI1NXpSVW1lTTlxN0J5S0crRnhudEJjMXR5RFRQNjlqQjgKK0RsQnlpOUNpU3VnT0NKcHVMWVd6UUIrcEsyTVJFRzdvTVM0bEV2WWtBTWMzSk4xaklUM2E4QUE4aVQ5N1E1RFgKK1E0ejhOVS96cSswNXhYT0FMVGxERkovREdJbUdCUnZVY0w4LzRBb1V2clpRTjhMUDU3L0RmODJncVd0R2JTencKK0JhTWlWNm9KUnk4WUYzMktpNjhkejNoRngySFdGRWw1UWxCWHF4aXptZ2ZNN3JIOFgycC94VHJMcWlWaktoZkYKK2tVWlBVdVRnOVBBamZlNC9NQndMeUNIL05hQ3ZhZlFCSXJDcXR4WTJLSFN2dVYxbXQyRGlxUzJiTkdxWldJNHEKK3FBMU04ckdNZmNSMnVWbW5NbnJzdUlqOTBEWHBwQlpJSUZaT3Z0MjFCbjBad0N6eW5ENGt2MDFyOWNVSGlNQlMKK21nK0ZRaEtqRFpJMnRNVmhaNXNxcWxQWmlaR0V5UGxzcTlaeUpFQ2hxKy8wdlFnODNVRDg0dUp3L25yZElQSFkKK01vaHFuSU1PYUJzV05QVUNKRUJlWU13bDJmdm1NZDBZZEl2ei92bUtxTk4xWTFJR05WaFc4R3JsbU9Vbit4aUsKK3dLamVSLzA0ZFZDWmc2NEdFc3A5TXRyb0J3dnNaUlNzc3d0KzNhemk5dHFKK0VqT1RUYXVSb1lhY28wcklaOGUKK292K3o5QWFMeGVjYkd1cU01b1p4bnFFSE9kNkt4T3pyaTBPSkFtWWthQjJydm8rSlFibjcyVWxWdlZacGxuZz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDRBQzkwQ0VFNjhENEI1NzI5REU0MzU3RDJDNDc1ODg0RjQwOUI3QTYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWY0Z3pWRjBNaWhTRGdBQUFBQUIvakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QTBNMW9YRFRJMU1ESXdOakl4TXpBME0xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwMFFVTTVNRU5GUlRZNFJEUkNOVGN5T1VSRk5ETTFOMFF5UXpRM05UZzRORVkwTURsQworTjBFMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBN3BCNFpJWTdzYXpnSEhCQQorQ2NPREMxUjRqSEc3aUorbk5nMVUzY01CN1ZOVTAxdlE0TFMzVWVWWmhHTHFVMEZFNHpncHBvWG1jMHhoUjJZcAorMmVwRkloUFN1OTVjczNycXNmZFI4ZjUxbEk3TmJHSlpyOFJVTk5nb2ZlZVkvUEJrZDJUQzBIRlRjNjA1S2J4egorUFRpeU9aSzNPbDEvR2ozN3k3b2FaNDk4SWk2TllicGQ5TXBKdGFtOWlsYjhHcHJ0VzN1R3FSbEVFZzhIMGsrZAorbFVyNXVFSFd0OWZncXk4UEwyQTBuS0RWQXB4dkNzc2pIQ1FPUGFxVmV2MGl0TUEzcE1ZNEtJZEorbXBqSXRDKworSkdYeHB0VHJqTzFVNHdqR08wUlpka1A0VDZBcXl1SW5hR1NXRFY0SG8rSkkrMVdFajIvbmNmQ0NXaDg2U0tUaQorb2dmcXY3dzJFZjZVdGF2b0UraXJOanZnaXdubE9qV1E0RXkyMWpNbzhQZFRjdytMZTQ5ZEYxY2tOYXNrd25sQgoreHhCT3VkSmU1ems5YTVabzNzblVrZEltWHptempORVBLTi9ML0pJUVNKZW1aVzhJcTRDdmU3VU9RMDF2c3huTworbTJOcjh2bTBXQnR6emxOOXpqSFRvNWNuYnQ0M2N4MzB0cHIvSU5FUWlYUWdQaHFwS3JDSHpCUG93V1ZWajByVgorenhmcGl6ZEZ4a0tBam5nT3l1NU1vQjlBTU16TEFSb0lkdGd3dEg3UTJGaWlleWt0U1FKSFlURUE4QTNxcGN6SAorbnkzMlVsVndRc0JVdmtjS29jaFB6KzlTN29DS2NvWFprRWRyTUZWU2VnRkpVck0xTkcwNkVFWEw2cUIzUEdCTQorS29SalJkZGIvRUdDVWZReDIzVWRFTlU0b0wwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9uOUt0STlXYnIycEZ3WAorYnZHeGQrWGNxYmRYTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFnYlVaQmkxd2g3Nnovem5MR0RVOEFNY0oxNElHdk54d2tyNXlvWjFPbG9WNAorUDBMdjM2MHlqd0xkQm1wbHhmejh4K0g5WDZiaHcwdXRkVDdhdFVOVFdRNjRVTzJCemNhc09YajJRVnYzTEp4bAorSkNtSTg0OWhFeFQ2ai9LRG5QbGxpWk5JdDlXYk1TWHczUDVZcFBCT3dtNUxRdGFhOXVWbkdWYXRGeE9STEVkTworRGNtSVJLQkUxTDZpNG5ENFZXUHp2QXMrZC9JM1VRRVdUT3I0dzhoSG5oZllQamN4dnluVjBQM3BDRlgzaGNWQQorREtEclNjMWVMSS9NczNhV2s2Ykl5bEdwK2JuSEJXQ2lRVlpEZ3l6V0t1OE5mNGlBZSs4Vk5sS3hINnFMelhCWQorTzBtMEl1UVdIRjF6allnbVRXTWpOTU11YVltS09IMExLQmdEZlBqN1daT1luK0F2cVZyam00NTlmQWo4OUo3bworbVZnVk9lVmdrL2FVZGRNSXVzYjZUcXBGV2UvSEcxRGx3M1BUTGgwbHBDcGlrU0IrM0RIQUx4YjNiY3hueGhaNgorbkxnK1M3UDRTU2V0dGtNVndCekg0WFJqMWpybFhrWlRjZUVHbGJiTFZsMk45bWhXN211bHpCTHAxOEdZRDNwcgorNjlPai91c0I2b1RLN2tYSHg0aWVSWkkzQzhKZ3lWWFFCVmNWU08vWXhhZXhTVHVsNHlNOXkxN2NiYjV1N3l2VworVEhNYmVsZG9xRVBqQ1ZnZWo2b0J2blc2eEllWFl3Qkx6MzE5aFJlSWZJdVlsdFgwVXNBbzZaSHFYdnAxQkJlYgorTExlckdpTW5TdTJTRmljWkJGc2kyZjV6OHZoT0VtaHIzRzZCUjUrZkovUDA0WWlUWldYNVhDNDNhbUQrb0dNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgNEM0QjRENjQ4OTA4RTQ1QkZFNUExMEQzNjM4N0E2ODhBRUMxQ0Y3OCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBckFvNlpDNmlLanMrQUFBQUFBQ3NEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXdPREUzTlRjME1Gb1hEVEkxTURVd09ERTNOVGMwTUZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzAwUXpSQ05FUTJORGc1TURoRk5EVkNSa1UxUVRFd1JETTJNemczUVRZNE9FRkZRekZECitSamM0TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFyb3NVUnR3SjlNbVJERWRnCitKTzBpRmlYYnZQZy8yYTFwWGFCVm5GNXZnQWdiWklKdHYzSVlyZmFRZHhnRWRJTGUwNkxUTU9sNkxlamhlS3V2CittaUY5MlFSWUljc0FmV0hsMkJKTGltZlRsUEJwbXJYM1hHNGVKOHkxNTV4bFdheVBnY2hzV1d1NENrQnptNWJOCitZaTFqbDV1U09WN21tOXlmdlBaY3E1aEtEYUJ6a0cybVB6MFpWei9WYWNiT2ZIcURVaDhhZkJBY21uRm1NYnZBCitPUGxPZndNNE1xVjcwRWpmUHVnME9JK3E4ZXR3UFExUzJBVG51MEpyZzlab3FEVzJvbnloSGh2OGhaVXZCZk9ECitsMkZpQlJSODVzTE1OS0d5S0xncU9lbmpHaGFsQkpVb3VtN05Eb2xqc1lrYThsSktvRjdFZ1NWRTQ5SjdSeXBUCiswNmdERmpWV0hQeVk2UnQzM2V0eGczYU9pbWt5b3NlSyt1b0dWcEZoOEp0Nk82ankxMXFkaUUyYWJTblp2bStiCitMbXpZM3gzdzJoYmdTVWlSbkl6RlluTkkxRnlwRk1VaS9GRmJUVDhBcUR2L0xwWjQ4dkFNUFRCb01JNUIyaEJxCitjeDdkdzFZcXBRSGVGQlFMK0JpenJtcEVya3NwdXozMHZ1UnAvNnVSUGl3Mkk2R1ljcjJoRklJWGFFbTAxUGxxCitJT2F1YkVWNTlTamxZSUxvbGx0RDUwb1J1SlE2SVpURWFBUFB1UmF1NUZsNlFtVHhPTGxEbUtKUXJFalQycnlpCitqK1dpQWkxNTJaL1JkWi9Xc0VEV1RvWGI1K2Z3Wk1rK1d5anVveHFxTVI0WWkrZGV1ZkVFUnJLbnpINk1Fa0tLCitZSkdrT3g0ZDZxLzJJbG9qK0J4UVVHQ0l2eEVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSXJvUno0dm9mZDZ1bHNJCis0amRHZ3I1VFI1dUlNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUVWY05KYjhzNUpzcnE5Z1dmRDE2dTZpNXRBb3VEdWVxYjNvQ2pZMVZCdDJSCitpS0FPekVWSEpBb2kwQm9SVnFBUUJSZ3NmNDVreTlYMythbFNjSTBQblU4aW56Q0FTYzdtR2hsUkd1dkVjcHMvCitIbFQ0eEJBK2lwOFNFZnZSdVM4UGNJRmdXTHlNd2U3RmV0YmFDZ1A4c3lvKzk5MkRrQ1lVeDdvQnhqVy9IcUlzCit2MkpmZURuZG5NeTNvWFpzcVBTanYvbUk0MzFoeDk2U2g4UU5NRnFGYzBrUythRTh0RVBnRjJlQ3c1U2YxRzc0CittRUg3WEJOeFR0Y3pnUXRsbWtmelBrQi9lOElhYUV1V3RsWjhiL1kvZHRJTHNnVUdyVGJZRkJoVlNlaEk2dVR5CitaSnVNcUh2dmZCNFM1NndnTEpvc1I2c01YalVwWVZ1NEpDK1M3ajJGbitwT3BsQmpqZzZUQ1JzNHJmMVRTUHV0Cit0RWlLNXVzS083b29IMUJRcEdWSlhVbG9YL01TeUZqdnUzTE1HeERyMWZ0b2pDRVdSR0R5TDk4YzVBUU5LTkpmCitUTDB2TEpaNUo3UTY5SHdCRkpublg1dXQyZE4wQUZJSm96aTVKSUlESGhVTk9KdXl2SlBzdHBLNGJFRHg5bEV6CitJblc5aWNDaDhyRmdTQkxTYmREb1d6RHNRU0U0OS9aT040YitTQWRSVGtQbjhxOWp1cjYrenNYbDFnYUozT3kzCitlSjI2V2tJcVpSNk5ON1U5VVF0WE1DdDhGQkRFMmVlaDlDZmxlMDlJWlFSc2tmbVk4VDZvVEh5K3F6Qmk0c3pjCitkSEY2bTRmbTUvN3V5RHU3dTNJdG9vOHFqM29odnFVaXFicGd5dDBTNnFMTUEwMDJKaFJMNG1reUluSFNKYkk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCA2REVENzBBQjg0MUFFOUMyMkEwMzY0N0ZDOEQxNDgyMTg4RDNEQUUzIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFjeE1EWlREaUJzdFd3QUFBQUFCekRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt5TUZvWERUSTFNREV6TURFNU1Ea3lNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDJSRVZFTnpCQlFqZzBNVUZGT1VNeU1rRXdNelkwTjBaRE9FUXhORGd5TVRnNFJETkUKK1FVVXpNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXJseVgwK0hmVEw4Sk93ZG8KK2VaVDZSKzVmMU9aV3dXZDhFUWlHUXZ0MElFUXdObU9RMVdiVld2Tmh0ekozRWF5Q2tZbkxwV01YN1hZUjhwZzUKK1MyZW1CVzFBV2FwemEvK0dMVFRtUFBZVnlPaTcrZ3V2WXdtN3NENDdKNE9lMzJxTTdmcVk1OEJDU3BmYk9ZOFAKK2ZlVk90ZnBrcmlkSW54WDlxSU03SW1NZ0hSZnprOWNYY1JrWWhnbHVEbForb2dtNzJkUUJyN05yU1ZqRmhGUmgKK2xFanE5Znc1UUExRkJ4dmlNNU1qbC9kaFArdmlIM2ZFSzgzclpNeGNMVW5wcHo3N1l2UFdMVmZaUUUwTHlPUGgKK2lHckRWYU8wc3R3aDRtRGF3TVpzM3hSZzJvaXhHYkVKUCtqK1hJQmtKOHdWQnFMU0hYYkphYlQ0Mzlvd0hNbHkKK2M1bE1qZDIxME5PcTlhL3NqQm9QYS9rZXhBb2RsN2hjMDVWUFV1S2RhYTF5QnhGQnNRRW1BbUlHSzRPZ0dpU2MKK25TaDBRcEJNbWgvN2d1V21XMDA4MkhJRDgwTlpCQ0pNcjJXRUdLOWVvMWhzL0gzQzJjdjIvN2ZScDdNUHp1d0oKK3RaUjdPdUhmU3NBTFhWUkdTbnI4MmxLU29tS2dhU1VGd1NhenFNcVltUHk5VU8xYW56cEZpdkJMS1cxSWVaWUsKK1JCRmZWYThEYWVWSVRuRUlDaVl3QnBucUttMTloTHBCRGRQTWMyL0ZXVlNwcEZKUkZIVTZKb1ZPd0ZpWTYvUmoKK2xrMTFSVko3OEF6d1J6dG56L3dKUXFIRVR0WkFmQWpQa3dkci9IMk44NGlkb1dRbjlBaCtieStVd01OYlZaZ3oKK1piQ1JEY1hLVFRjdDVzRTh0NTF6eE5UOS9LMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMTENuNkQySFJESlFxRTAKK3RSdDE3eHVablp0ak1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZ3N2ajFYYXJvZGlrU0VGSXBxNG1BaXlNSjBZaGZLQkNscllaUFVlU08remMKKytTU0E0V2VtNEs0S3FEMEF1YWwxcTU1MTIzcjF3ODBnb05qaVVVRmwrTitkZlppRlNPRXBKTjk3ZEw0ZkRmSDEKK3duWVhXNUJVbDNyWTk1cjdzWm1UNnZNeG9iRjVhTk8rSkwxM1Z2Qk83OXBBamFUSzNvZmFsNUh4cFJIR2xzYkwKKzg4Q1MzMDc1S2pQc0ZkZ2NKUlpsa0hrQjdiZmdlNmtnYy9HdlR0QzEwSTdrLzh5bkNmeWhmUWNIR29BRU5UNHAKK2IxUUc0Y1EvV21Rc1VhNDJhb0dqajZPUVovWEFxZEZOckVBL2JwOVV0RlRJRWQ2S1phbzdxaFRIZm5jMEhkek8KK2xzVUFnYUJaU0U2WVhaaWo4ekxlZ2RIOTBCcFR4Y2dXNHRrMmtKVFJkRWRHc3FoYlk5c0JsdkpBcm9LYW1aYngKK1lHM0RJelZmVUo4YUxsMkVFMlNJemUwRldoRFplanJmWEttVDNKb1o1U3htZ0Z4SFMveENicUpBSXdIWVQ0bGYKKzN0Z3Q5NEhKTEhXS3dyMlZBOGdoYVBNeGJ1aXBGOTRBWEhaUXlpL0U1eUg4V3NwOVZidWFMazNTbG54Yk4vNEIKK2o0bnNIc24xaUt2ckJVUktiWDZNaVVhSzQ0TjJsRE5Ka0xNZUIvbnlPWncweWppNHA4YThwSHN5SGdSM0o1Q2IKK0lyUzFGWjI0MlJnRHA0dEFRdEZXeWgrQUhyMko1WWhsSHB2ZVMrb2lQZ3pONXF1amtFdGtxYjBvWStpNzlDcEsKK2dkN2xJZkdGcXNuMFVMcTh3akQvM2Z1MEpZWks3b0Y3cm1QWDU5a0pKcUxHMkhXOUJmS09SL3NoMSswdXhJYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDczQUJCODFBMDIyNTQ1NjMzN0YwMkIyNUJEMzlFNjU4QjkwRjAwRkYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWdaa055b3NFM2M1bUFBQUFBQUNCakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXdNMW9YRFRJMU1ESXhOREl4TkRNd00xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwM00wRkNRamd4UVRBeU1qVTBOVFl6TXpkR01ESkNNalZDUkRNNVJUWTFPRUk1TUVZdworTUVaR01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNkNtdzlVUFFXNnRhZVpXRgoreHJubTdkN0FIWTBqQUd3dnRPTGtYbGN1STRWa2VuZmZGM0pUVWVIYWRXUW1FTFN3VVJGVVBjZlBWbE8vQUMzaQoraHBXOXNYdmdDU0xRQTRCTWNQVDhrOEVuK01Ld1hHc0YzNzFRZmFMYUFxeUdXQW1Vam5jNmx4RXAvZ1Rmb3NUVQorWStqVTdpQmI2UHdKNFlYcE1rVWdWWFRaSjBkdWZOTE5qOHFmMTROU1F0U2I0NFF1dkFGbFZSdWMyOXpqL3pCQgorZkJ6Nk9vbklaMTdXSk43TU1WNEt6eGZJOEZoOTNoVnlpbGsrdHNVSkVZN004R0NEMzdaK0JNME1DVVE2eHkweAorY3Z1by8wR25aQnFHSjltakJ2eUwybFlXM0liTVhCRWdZQTRVME9YZGxuVzBPbVorOGhiUG1oM2R2dXhQMncxaQorMWxHVkY2ZzZiNFpXaFZQMTFweXhHcjNFbXoxTE03aFNsQ3pzK0ltVDhuV1h6MFVIbDQvb0k3QTJsWkNNUTU4ZQorZ2NJczZ3NlBoUE5hTUNVU01pL1lsc05DSWlwNDhESTZvZ0xPbnBmbTVXRnhzcGZITEU1TjNJYktvY0kwOGd3bAorbVhPSjR4ajB4S0lsUFV6bklkcEpoSHJnc2dBQktrNnJUS1NOSFEybktiU1V4dlJma09JdXlqVVJpVnlsVk05WAorTW40R3I5dzFCWklCMkE1QW9PbEk5L2xibEdXdjhEUXRCTWlBbTBZTEhoS2NWSDY5eWFLOFgyazl6a1AralYzcQoreG5lTGVRdDlpNjM1Z0xwcTBHVk5nc01kVkxMSEZwbVRsRnA4ajNXRjRJeUpzYmNqTEk2WURXc1lCcFZCTlEvdworaC9QUFZoOS8reCtmcnV5dDFDcGZaUUt6SmJFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRksvS3NWaUVpQXpNNjNkZgorTnJ0eWhxVGsySzZ3TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFmWFVjYkxhYmNVN2ExZnoxN2hsMFB5M2M4Y3NJTXAvakprK1UxYXkzVnF1dwordWJMTXlBRWFiVkdtbHc2eHFTVzhkYUkvdmRYYTFjN1JuZlhTbmlIRUc2WEFpa3JHZ2lBYU9sWm5tQnpIdHBOcgorc1VMeVpidnVYT3BONXFEMWJiT1hsRnFQNTlnbit4SE82V0JEVngzb0JsNWg4ZlEvNVp2eTRHbWdIaWNlM1hKRAorK0xmU0VrV1RkWGlUWkJKQ3N2VkppZ1FpUk1SVTZBVTNHRmV5eXF6YTRFY2p4SngrdDdGSHgzUVl2UFR5VjRsdAordDFLOFE3SVdhYVVsT1M3TEtYQmpSWjlWc3BSUG1uUjBuY0FPY1BWZnhrWGJTQjA2Vm9FcTM5eEtqemFodzk2TgorOS9HQVh4Z2N3aFRhbVlGd1c2V3hOOHNnaWVGbjYwdnZsbG8rWG5JWHVwZ09adnFPY2RRV29XMDhVQVE5WXpuLworVDFmRUMyY0U4MU1qUkJpeTVNdVJndEVRS2pOdExvTk1vcnBFdU8zZmxhS09Fd2d3K1RaeXBzTURXSU9VZU9ZcAorMXZxcFZwOUVmUkZuQ05NeUhuampyUFl6OVZFdnY0UjJkREtjdU10UFVVOTJIdEZsL05JSTlQMFc5QStLbnRyNAord1ZIY2ZKTXJkUTVjd2szZFR3SWhKdnl5N2J3Nmw5VVNSTHBJS0xIcFY5cFhPKytnK1JYMFQrb0JDT0Q5NExtYworcUIzN1NRSHhOOVFiTEUyckYrR1pLRnk3OGJmd0tJbHNOK1JQQ1BwVGllM2tYSStLQWU1M1RnVTRFbXNpeHQxVQorNU1mT1E3UzJTOUVjQ3VPQWp3cjVxZW02ZTZZMU9nV0krdjBUQndhMks5M2RzV3F0L0k1TXdUS1lhZ1Z5MkFNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgNzU2OEZGMjZGMzdEMTEyNjg1NjdCNjg2NEVDNzJBMDhDODE4ODkxRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBclBSbVdhZFRhOUo0QUFBQUFBQ3N6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXdPREUzTlRjME1sb1hEVEkxTURVd09ERTNOVGMwTWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzAzTlRZNFJrWXlOa1l6TjBReE1USTJPRFUyTjBJMk9EWTBSVU0zTWtFd09FTTRNVGc0CitPVEZGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE3OXdDU1QyL3MzMHlxaExqCitqZVlmeWxrU2pSL2RIekxBRHFUUzFVdnIwanpHODN3UjhCcU52ZTN4WWNJL0lnZUlLdzRZOUJrNFVZOFgrd3RCCitEazAyU21ic1BveFJnM2FEd1d2WjRXd3R3RG9CVXlTcHN3SDlSMGtGNXdoUDcwMGZNenJiQjdSdnE0VjJpR0FICisxVzg4ZFpyRW9lcElaaTV3TEJZQjVuZGo4dnVyTStyRnhLS1ZJaHhLcXhVSmtnZnRQVmRCWkZ4R2t0MHU3eG5rCitOd0RyWXFvTWgwV1c2eG56VGF6MnQ3ekpTQzF4Z0Z2czlMYm5QR2JsNmhJQUZCL1kzOE1MZnc5ZjhaNGYzVDVVCitzUnVBbVR6V3JERmxhT21JNVptUVNkVFJ2QStjbFRQU3NDa3BtTWgvR1d1d3pmYmV5YzR5MExUdStzZ2ZUd1FpCisrQWdnWjIxMkxJdGdmN1FTQVM5bnVGakZ3cyt5dkFDTkdiTyt5TnRBaU0wSE5EVERUZmRhWFJYY0NRYzI5L0ZjCitOOStBSXgvZ3h6TnQrVXJxWHhxZHZ3Q0Q0Y2tCNGlMUm5sUXJOdzBzYlBIWjlPVUdnV3BxbVJvR3VrazNPTEhHCisrb2ZaaUZFQVowQm1wbCtVZnczazN1d3ZwTkFNR2twSElQdHFzTGRiYkpOZE5OOEJhamZxTkhiaVFlekJVZEVxCitaektxaGlONzVwbkJtRXpOaHg0S3M2aEdQUmRHTEcxejczaXhGZlRvOVhrOE9MZTF1OWpZeForeHZkcGN5dm5RCis5RWl3UDJMS1lQWEJxU3Rva0JCKzV0V1pWSVJqLzRuMXFmZEIxMVJmR3dYb0V6ZVp1eDFpeUpZc3NiUW4zUGJHCitodHpDMDQ2eUgwbEJtWVpXa3U2NTdBNHJtUzBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSTZ3d0VndkR4UGNsZndrCitYWFhkYitnSmFxSGlNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW16S055blBiOFVqM0JZSzk4L1c1KzhvaTJPNGl3SmFPczBlODNUblpzY2xqCit0elN6bW0wZXdYK00xUEpwdnF6a2NnNEloU1NWTzFXc0pSMzRoTXhVZEN6VXpMZFJBOFN0NVdmdkJjTlRnWHZJCitMdU9LN0JsVll0Y0VVM0hrbGMyTllKNGFlSEJiZHZnd0orU1A3Y2U2d0xkL3YveEpQcUhrbnVlUnZzNDM3WGRvCitXakRlcjF0YXZZL2hKS1owaVh0UDM1R0cvaWNHaE9BMUlQNzExSVJJY2dCWG5JMVFHOXJCVHF6MG45MVBWVmZpCitQRkYxWjgwS0NnUVpJTHFvZ1VYNFFBaXVxclVNRnBCYlIzYXR0a1hDZEFGRzlEL0paNjRFOWVIaXhtM2ZkSjRmCitkTDIwbGpIckxiSEJCOE5xVW1DMFVzY0c2QXg5QStRdzhoV0EzL3RoU01zUURCU3E3anp6V0NsTG5FNmpnU2dyCitkQ040RGFId0hTeDZBcUpaTTdDUXMxYlB0dTlhQjJLUWpxSUo0N1VQTUdadGNjTFVnNitsaGU3SFU3cldiQkdaCit0UlpwT091Yy9DNzlzaXVJQlJIZDVlQ3VpN1g3RnRyd01vRE4ycFBCbTlDTE81SHVSVEpjQmF1SUxOdFlreEM0CisxdTExR0NQREd3WGFCWkY0TzJRb1o4UFdiTmJLVFdySEs5OVR4YjkyUGY1R0VvZmRsN3BZOXVVc05rM3Vzc0VlCitHdmlDeEdYS1JkSnpwZDVnNEIwS3pnNWdJekpYSGI3MlRRakdySy8rSVZVQTZFQW5jL1pKMDVCYjlzYVV6V2x1CiswMFIwQVlKRE1LRnljK0tlUWhwYWRQUWt3MmNCemdycVJUQzROUSt2WTh0NjgzUWxkYmRHVmlUNkRSUlFqZjQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCA4OEIzQzEzRjYxMDVEMTA0MjI5RjVBQzBFQjQ5OTU2NEFDRDQ3M0JEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFySDFIT0hhRG01RHN3QUFBQUFDc1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMwTUZvWERUSTFNRFV3T0RFM05UYzBNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDRPRUl6UXpFelJqWXhNRFZFTVRBME1qSTVSalZCUXpCRlFqUTVPVFUyTkVGRFJEUTMKK00wSkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWkraVF5UjhENnV6ZlpsclYKK3JOVjFnOG5RUzI0V2JqQXRqU0FpZ1hrK2phQXJoby9QVDQ0bHVPSVN3OFdNMVF6VFZwbGdDTThDY2s4V25XVTQKK3JHUnVSK2VQNG1vc0x3akp0TW1ocXVSWkNWcVdGVWowNk5Pd1BBMnlIQnhoNnNXMndHeXNZQlZSeVMvcmVma1gKK1VpVGhRN0w2djRCYnB0WVJNN0MyVEN2cUcrNFdnc1ZsTnI4b1Uwc2psMldONE9MUmNaNTY4aFFyRXFpYmttb2kKKy8ydmxqQ2pScTJ0NFRwNENZRTMrNTdTVEtHcnlvMU9xTkhPSmJQUlNRNEhGWU5PdUd3cXFsMnFkMllvakNEMVcKK3AwbUFBNWtwb2d2KzU4anBtSkdHNE80WnE4UzZ6VlBoQ0pBZUphNmtMZVFKZFFSY1RhQTlFa1Q5QzhKWFlBaHoKK2NJZE82N2xMaTg1Sy95NVZINmhLd3BYVG1WcUFSUk1pZGNtckNQWmNSaTA2MVBGeXFDb2oyMEwwV05Ycm9iTFEKK09mNW5JRXM2V1ZydGZJZUd1cFF4K253bHJUZGgwcXVpL3NUekxPK2FhVkE5VmltTEpNUE5PM0FnWXQ0Tk9ZalkKKzVwQXpOU0x2N0NOY2FpTWgvTTRkTjlndGFaRjhrR3VkYVBvRXc2aE9LQkhseGQ1bzNzR1g4bjVCOXlxOTRxcFgKK2ZMeHNWZzNoc0U0OFFVNFJJMndjZ1F1WXc5bmhGeS9kOFNrR1RpMGFQZVVOMXhTd3hrN3pJUzcxZHNpN09lbS8KK2t4SlM1WlAzUW85cGgxT1gxSVJ6QWhaSjA3K0RYUkNnblJvNlNaaS9kcDJhTDdqZDdleTBRM2JvbmVMVW93QkkKK08rWVNiallSSFRMR0F2b0JSSy9Tbk5nRW4wY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKdkxWREp0Y04yTzJBSTMKK0J6QVVIK1ZMSThrQk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVmlWcHJIaWZ5Tlk2ZWNSd01QeVdiY1E0N2ZZUjh2WEFadnlMQzVnbnFQWlIKK3BCVzNjdDdiQkxtU3pVTDQrTWFZWXI2bnk4K29sU3VGWkxiZWRISkpoTGdpWi9aNGxhc3p0ekhCa2tTMDBXYzUKK2JPenZML0lQV0JwRjQ0STNxRnk3dW1hZ2JpQUdUSmtWU1RQajRQTkR1Z0hQdXZHcDBXT21iZldjbVBoYjJGSkkKKzFEN0FCc3hzK2FXWG1IamFWTHlhNGNEUnI0VTNMMXliOXNWaExHS1hxZGdhbFVJcktJZ1pvbSt0Qm1pT3VRQ0sKKytOQVZRVXE3YTBCVWViNld3aWVpMVBMTEVqWnJKMU5pU3dNdVZ1OG1vVG9TdEt6dEdVVXZQTWlMbEgrdzN4R1AKK2huTXkralJzZHFyditxSzFoMC9qSnZYMWRka3JwQkp1eUVtK1pFaTVzZFNDaUdGQWt3dGd4UjFSc0VTQWVQRzAKK0Z6bmVKZXpFQ2p2Um5qdTN0OUNUS1g2QkFXc1puNDNMcmNRWFhDbTZxVHQvcUpWUnIydG1jWWw4S1pnbnA0T3IKK3NDQW8yWnlkVEd0Mm5nQ0ppN1VBdE9GVTBDcHZyMk9vM3NMelI4c0Z2Y3FQS0VLSU1jczVOaUF6UmZXSkVxRVUKKytwckg0N09FTUZwRkRZQzlQeXVuQXIxaE1qYTM3YUpVNyswMjd2cytMNTlQQmQvTHUwS2VrMjJGMUxlM1E0bGIKK09BOFpnTzl6Q0RTcUVGcTd1NXdxM3k0aDRVa3ZSa2UyMG9aWU90UStwbjNGVmVPUmxBMjZjZ1FpWCsyNHNqVDQKKzJ0YTZWSkJVa1J0em9LRUNOdStPQUF2RnBubTE2aDY0c1BKSUlsWVI2eTRKckVYZjhPdHpSdWp6RUVBMGE2Yz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDhFMUYzQjFFMTI5RDRBREVENzYzMUY1QjRBMkI3NTgyOEFGMjgxMjggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWdEUUpKNDlFS3ZHSEFBQUFBQUNBREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QTBOVm9YRFRJMU1ESXdOakl4TXpBME5Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwNFJURkdNMEl4UlRFeU9VUTBRVVJGUkRjMk16RkdOVUkwUVRKQ056VTRNamhCUmpJNAorTVRJNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBc1ZXNmkwMzlRVVgyejRINgorVng1ZjBqbHFqcTk5cXFNTFNFOStaQUZhVkk2enlHKzI3amlnMC82VmlEU0hkeG16NU9taUFwRlV0UElON3BveQorTWc1WEFHMk5xenFNSVJvQk0xaXlxbHE1SlNvTEJzUC8walpKVllxbEYycGV5dFRmdFdXM1UxR29YZ1laOFBsegorcktMWjhyUHFVbExUdlRVUFVscGVtUE1uZDQrdHl5MGh5S3kvSnhGd3crakk2U0NlUnBUVjFhc2diSmVzSE5KMAorT0NoWkU0bmF3S3lINWRGU1FsTmtnOGtYYjM3NVZxcDRVRDZnWFI5S1I5RDV6cER6MnVLVUlocGgrRXJxTmJxRgorWExPTDNDejlsZmN2d1VIQmlHc1M2bWlnaTdNWjRJVmpTYVNXeDFhRmJMUEZXdmNONHArTGVDVXcrQUc2aWxiOAoreGJyL0VwRGloVTE1dWtRcDQ1TUthSTIwZWZ6MFlMNzZLakRocGxEZFFlU25XZUJ2cXNZaHdpbEJRblBDMGFseAorNmRFNEtBNkpuMittN1lkdWlyQ1AvbXM3eTBtSXc1eGRFcmNZRENZeW0vQ3AzMDRmU3haVTdnVWpNYlBzUjBscgorTUIvUWZuTWxCT0J6M3ZBS29SRDJPL21QejZxTTRrWW9zbm9xajc4UFVBTnc3TVFFbDZIdEdVQk9oSVJrcjlkLworaEloUzdDS1hNdDZ5bytVSXN6N2MyU1c3WklWdUdRRStkTnBTc3pybGxrKzRyVWY3TDNJU1dEZDYzZ1ptM1k3ZAord3VDaGNhNDEwTEttRFBiaG16dS9ITjRHYXphSml6MENiNVRhbHlWdnIrRXc5eWMrUG5lbnBCM3l6SDNnOGlTTAoreitGUzcyYjRQSzV1aGp6bjZxK01QdEZWQVUwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkJvYUdCTWU5VEtuUTVTbgorR2JCaEZZcFBrSFVLTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFaS2hJZUR5S0dVcUNuUGJBcmhQWElzb3BqQ3lNd0xlTlMxWEg4VVJzWWk3agorV25HMzBkbmRraXpxWGlzT0VkOEFCQzA2MEtab25FOG1acGNJL09qZThCendWa1hCZlZmZmlOSXNMM1dVcWR0NAorbGxYOUg4cjNlY000cTVpdVk4bzAwRWZSVzMyMHU3K2ZIbUxTSzh1MnU2QnVORmZpclBJM3Z1L3FhSVp1anhncgorejhtVkEvNU43ZFZWMFJvQWpiblpaWUwwZ2M3UGVhRUdaZTNwaDR3elJmcWhGUURMQWk3QlVsMG5KVysrYUxvcAorOWJ3dVNPK0dZM2k4c1k2VmVZdS91NE9GZHZiRHFGYVFEMnZTVWdnam1RbitvRkpWQWU4VUtSVEtiL2hlZmJjVAorVmNwYkZxVVREWVIxSTV4YlJ5aWg0cWZHRnV1TUtyMnhuS0YwaTBkUW5Rb1I2Rjd5ckd2ZEVQcURJWWRCVWovbgorcmVaTmlWU3VyTk5VRXFJVFBHem12cElOZU1EcFdLTnk0cVBxRytoOFFEbURSNEVxQzdGTHNFTzloajVTQkVvMworRzBucTZJUW9VSG01M0FUT0lUOWJTV1NjVHI0YWpOVjdheWs4VWhYZzRXdG9ZMmRidTRvK3R0MGNLbFpjWFhxNAorVG5Gb2J4SzhkcDJhNmhSazZ3MnVibUF2aXlTTEJtdzY3dzZ2UjRTZVF6YzZKazd6RERWeER6TUEzYWo2UUZSWgorTCtod3d3QlA1UU84SDdoTWNoVDNqRkI1QnVscFNyT2VNMUVzVUxzc0oxM2dGNHFuand0VWVwNU90RkdZY1JRKworTzB3RkdScndaS082QWpxb1F0MXZ0L1FmSTQ1RHlKemJ3RWZZZVVWVXozT2hHRWp6SWIxSUxBU01uL0hidlhBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgOTUzMjE1M0JBQTlENzQ0ODJEMjc1QjFBM0U0NzUzMDlEM0NGRTUwNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZ3hhQS9zQnlhSlhFd0FBQUFBQ0REQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNd09Gb1hEVEkxTURJeE5ESXhORE13T0Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzA1TlRNeU1UVXpRa0ZCT1VRM05EUTRNa1F5TnpWQ01VRXpSVFEzTlRNd09VUXpRMFpGCitOVEEzTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE4d0JkdW5pZ0FUdGN6cE5ZCit2WC9DZ2dCRWw2b3hVaGlKdTdvTDFGaEZNSkNEd3dLUSt2U2hRNlhBOUIwQkg5Q0NTNW5yUGhnMUFMTDRQcjN6Cis3ZnorK0hvV0pqQVd2Sm1lR2crQkVlbTRmbHdQWEpVWTY2UTZPNmZGNnhXMjFLdVpIZC92dnBZRnBDMXhscnM5Cit3N0ptRU9kRGJzWHBaUzJaV1V2dUdGcmlWTVJINlRkWFpvUC9uV3VCZVJVTWVyTFlwNG4zMkdTR2dzeGdqcHhGCitHZFZWYk1VZnhTUDJEQmFxalFxZ3VGY0FEZlo5TlZZd1l6OGhPTjhUZXJiZ3hrTUJrVURuZE9iQ2hxNGp4blhNCitxc2t1L1IxNDliSzJ1ZGRoWE5VcHVmelhTUzhuemIzSW9WY2dNNXZoVTJwMVdqcEZCWlJDajFuTGt5U2wzMlNGCitBYVBaM0NUWnVMTzVMRUZucHRpdDVIVTVTRlhXTW9MYXp1SW1XcmVmQlVTcm9EM09yS0ViK0dFRGtvbUU1OE9lCit6ZHFibndNbzBpeU5OTmFGS0diYzBVbmRGUHp3SXYzMC9oK1NUQ0J2QW9MdVRHZXFQdWw0SmphSmk3NU5HWkFoCityZE8xUVl2MVI1K3N2VTJTZlE2WVUyNk5oNUF6SkVrQmFHVlJsTm9pbHJpTW1yL3QxZCttY3JQbUNxczZsR1FoCitpdnBpcTNIRy9ZU2c5cHBTQ3NnQ3M5NXhDQ1hDQ3JTckgySmtIK3E3cWVoMEE2OGlTRTNLMm5GT084SjQxNVcvCitROWdydUVmQysrQjRwOFN4bFdNTGdBMHV1YU1SaHpWMlBFWGRBSm5NV0JvTitMbWx5RWtJaXdSTVl1UjR6QmhXCitUYzRyRGpLWHRFWHpMWGVielN4RzVqeXZFRmNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGT3ZqTmk0SGZxUGlvaVgzCitaazRnQUUvdmEzQlVNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVl5a1E1OUhDUStRSHVuNFZ6STVuUWRqTHVUWEtBSm1xbXYrVEZlaEpFTVF1Cit6Q2FMeHlyRFk2SFd1QTZnRytlZWlOOGU1NmtISzRuU3U2ODFQTFZ5N0I2Y3hQY3pySlU3c2tlc1pYQlRxaHAzCitqT05RSDB1REFIc3cyTzk5eVlIYWJTc2wzU1B2bTBEMEs2S2pPcVI2dzVwVWQ5SzlIR1d5THE1V3o5cUJSc2JBCitZVnFUMEdCb3NHMDB5V0J6NW9ZL3k1bFBINTFZS3NBc3JNdVBDL2M0Sm1qeDBZWEg4Y25RWG0xNklNUlV1SzhlCitJM3gya3hTbEhIS3V6dlNTWUFicTF6SXIxOW4yTVhDMjZuYnRsM20xUWxPa1g4Q2Z0WkVrRXo3ay9IQ0RKSHJnCit2YzdSK0FBaVRMTFIyNlJSWHFpQXZpSngrQjBVZEhkVmlwcjZKYlFmTGt6YWFYVzE5SjhFenl5eWNpK2xKQWZzCittMWJCWVl2dUZXYWsyb2hCckF6VWNxb0JlZ1RiY1JUeFFQQlpnSFJGc1JtSDBxZnpsSW9kYjBBZmdjaEQ0ODZXCitqVVdTZU9PSHJ6T0Q5NHcxY2NyM0FQWjN1MUY1cysrV1YzL0VmOFVSWFczbmoydHdsYkN4MEhGTDMxRUNZakVSCiswcnByK3haZnJJeHh1RVVrZXBKOXFGSFZ0WGRBSVlmbTFUL3FITnFBMHFlajJOc0ZYdS8xalc5VHEyKzZLZWg3CitHM1phd29qUTkvVEJmS1EvOUNTRzhWdFJEUDg4cXZRbUNta3pMbjlLUmU0RzB0MFdnNzNMWWRYRlkzZ3RDbGd0CisyQW5UcGtXejc4QW1ldXBpZGd2THhSck4yQW1QRnlqYXZ3Q0hYZVNmMDdKQWVhMHd2V2FqYVErQU5TZFY3QUE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCA5N0U1RDFDRDhCMDQ5N0MwNEI0NjU1QTg2OUM4RjMwRUZBODkzODhEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFwVSt6R1lDeDMwV0JRQUFBQUFDbFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF6TUZvWERUSTFNRE15TVRJd016QXpNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDVOMFUxUkRGRFJEaENNRFE1TjBNd05FSTBOalUxUVRnMk9VTTRSak13UlVaQk9Ea3oKK09EaEVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW5IVVB0TTZ0SDNVY3p6QUcKK0NuWDU3V1F2ZUVRcFBpNXUxbW1QYnMwVWc3WG1VZVRucTVXVU4yVXJ3cW1Hak9hdm1zT0FodHRVU2k0MmFHN2wKK3BWWVlTUmtyaGRGQ2t1c3RqMmtFYjNGVFZ2b3kvT1hybWtGK0hrcUQ0QnBrN094REYvQmtWcGRyVUkwbWprNVMKK3kwSWZMUjY3Tk1xQW9tdFpybG1aU3hnRklVTFN6SUgvQWNOMW10V0lsTjhLMTExU3hFNWJtSTBxSHZ6MGFSbTYKKzdxOERwOUVPU2VPV2g2RDlDMXhHUWVOWXRCak90Z1gzMXhOMXRUU0dZTE0zNFB3Q0t1SUc0TzF5L25Wc2xhaEoKK1AzRytQSVNXL2NndWxTMjBNUEU4NGpiUVpNVUovb2QwQm9NZXViV3kxNVpmNE1scEtTWmg2Wjgvc0RDaFF6N0cKKzRuejlzMmw4dXVDZWsvOXhHNGRPbGgxeGhWd0R4eXRPUm9NQ2c4Y2dLY3NzVkNhdzUvSkZUc1ZPcFZpNTE2YXkKKzhGTVBqZkZybUFGRUh1N09iSGEvM2U3WWMyUEIzbFZ5UUdNbXdTM1Z0MW1rNkJ0VnVMbi9JbnRkTGxEZWRmeTkKKzVLM3JmUWFOMnBxVVJYbVNBcHZFditKNytiaEh1VnlBSkZQTk5EWjVkYWROUzhNSVJXYXdoYTJFaXdCS0pPR2cKK0J4T2p4dFZsSjllZXhvV0YvM1I0NUhuQnNZNFdUWmJmZmFPbVlSdnAveEQyNGxYL0crWVJmYzVxSlZwekQrblIKK0IwMVkzOGh1bUNKU1ZsVWNIcnZRcUQyTDNFbnM1bk9wVUpZZncxT2dRYjhMa3dndEdVMzBBMEFsY2VnT1RFMDEKKzhXRU5lWngySUZMMU5PdTFGbjRibkpxME1JMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZIdW1VSlVSeWptQkFKczYKK3dSV0FtbS9DQ25IZk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVWduU2JiajlkSmp0S2hwbEpGeFljQ1dYMEk2R09ZMHk0TXdNbko0QytoQlQKK3pHNkw2cnFFellHWUI2bmsxeHN1UzBBOEVrbHExbWNjNC9kTW5RQUNXRjZ1YzdIb3REbVZacnVkaS8xemdTR0EKK1VRQkg3cFVya1ljQmxtamtqaEtLbkpNYzRuU2l4SFhzVUgvcFNMVVRoamlnK3FDNDQyaW5sSVVpMTZLaGZyNzkKK2R3Qk5rVCtTTTlTZW9wcEpadWZjZzRTVHJvUTRTOG44TVlTYXU3anFMRERlN0xPMEFjb3YrT3h6dU5lQUR6QU0KK0Y2dXhZWmYrSGUySW1mbk1kYnNWMUhoNlhLbEhjcnk2N1hoTDFLdisyWEF4V2czMXVwMjl6N21oaTRTTjVBbUkKK2tySEUwVnp4UkRISDdhWkxjOFBUUmo3TGZOaDkzalVDMXcvMHZvMlI0M1FQT0g4R1kvdHhzVUYwMWorVDRaOG0KK3VVZXdYdUJsUGNZa2JZdjR0cTFGSFJCRHBlblJtS1RONEhuY2N5ZXRXSE03TjJEYTFDMURmZXlIYlNDSndlS24KK2N0MXNSTGozUUVMeXNOQU8wczJ2TVFtejU0U2diMjA5c3pXZG4xYnoxekh5ckF2eGRxL0F0OUFrakg0NDcvMUgKK3Vqd3g0cFJkQWNLSWpnMnUyejRtUlZOOWNqQ0lmMnk1cUlGNTBHYmU5aGNrL09MVTlBc2dqZ1plbmFkb1RTNzQKK05qWTlSMlJ2bUZKSERIU2hsUDMyTE9Ud3pweTNha0dpSDh6NzhsRFpmZnh5bVFDT090cmFrbTNLSTNJL0ZpNksKK0x5d1pkendZQlQ3ZVM4OEQ1bEd1cXdOczhRQitaZTZHdUx1clFUZFpHTENMVjg0ei8vYjlGamVhNEVid29FRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIDlBNjQzQkM0ODAwN0UwODI0Nzk4NDMwMDM2QjY1ODQxOUI3MEMwNzcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBV1ZHemUrMTAzMENRUUFBQUFBQlpUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EZ3hNVEl3TWpVek1Wb1hEVEk1TVRJek1USXdNalV6TVZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzA1UVRZME0wSkRORGd3TURkRk1EZ3lORGM1T0RRek1EQXpOa0kyTlRnME1UbENOekJECitNRGMzTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF2aytDeXJxNHNUdW5idUJyCitzcG1IcXF6dlIwTVc1UVNEU1FoaVlwUWFzTzRTNm5UalV4TDd3Y2xzL2dMWERmUUwrZE9SRGgxYldhbGo5T0Q3Cis2aFFzb01ZSThneUYxTW94SjVpUkFBRk82SEFwejBKaFpzQlhNVTdieXpWTW9GbEVGUHN5QVJUcjA3SC9obUgzCitvTWpmaWFLV1NJZ3ZaWUpKMlorSkJrU0hVVFEvdk03dml0RW5LVnNrSEt5UVBPLzNqYmRlT3dtY2VQaytHR2pjCitjUi8wTERNZU1ZVXU2amhkVGFwSWlNeEZXT3FZRE83MSt5NFA3aFVvVzhCaXA4VzdSR2h6dDM2Y2V2aWlPRm8yCit5T0VVdjNQU3AyQXkxcHNyNExUVWJJR1ZpNDdiVHJhdi9qc1NRYlJHY0RxVlg0QkJQdEg5ZXlyY3VtQld0YTVICiszOG9SMXdJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVViK1J0a0xOcmJPMTZXdHliME9DZWpZaWk3clV3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ1lRT0FnCitFMXdTZHV2aU11QlgrZXpzUlRzelpWWjBvSjZNTDZCdUNwVzlWajFIN3FiVzZQYXI1UndHUENxb0RvUy9FQVBECitIUkZ0aFZBLzJSbXlLS0krUFZNYnp4c0tGSEJzeHZKaFpHa3QwbXVqYzVTTnRXcHlyRURVVUhKMW02L0kvakpNCit2UnRJM1R2c3ZYWEpQejFTdGxCeTlyNnJzWk02aFJKOHgxc3JLeklHb2tYWStoMTZmV2ZBZW5JR0dUOGlGMXB4CitTUW91amdvdHo4cEZGWmQvZHlnVEJ3TEMxSDUrVW5lOHl2SHhnU3FFd0g5ZUlVdFJERS9ULzFJTEsxUy8rTjAwCit5T0RCOXVnaXdJSUZXSFJMbEF2MG1VU0tEV0hMY21pNUJxekVjbk10anFiNm8vUWdkZk5yVDRTVkJwTkM5a0pyCitvb1ptMCt3ZTcxVUgxR21kajF2TitkNVQxRmF2eGdHcGF4WmZnSFRZNFlUd2dpTmQ5QzdiUTdZaVZxSHBTd1FUCit4MENFS0VCSExrODhXL3FUT2xhYXhFd0svZmtkaDBWZGZyaEhWY0pWRTdvOGhFekFLcnllRkZ3VTBGR0xnQWVFCisyblR5Q05wODRzSHV2eFd4RmFYREhFZ0ZNTm0zZUlDZkpWL2RnRWptcDkzcU01L3ZkVDA4aElpem4yaWhOd1JXCis1ODBHcmpEWW1xYndqeVNmNDA3OFV3ZDRQOXRxcU92S2JGeDVHQ2t0L0hjeWJkNm03OWFnTk9LOTZ2ZHB3Q3NCCitnbTNUR2pPMFlSYnR3QkptSXU4TGFvU2NacUZjVEh2TytseGJ5dERCc25mMlppNDFUSjJxWjZmMzNTOWpuczRVCitrOXpEWWVOS0tkR01hK25tMDBjdmFCY290YUF3OWVza2xoRmZNZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCA5QTY0M0JDNDgwMDdFMDgyNDc5ODQzMDAzNkI2NTg0MTlCNzBDMDc3IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFnVXp1S0ZFMHRRaXdRQUFBQUFDQlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE13TTFvWERUSTFNREl4TkRJeE5ETXdNMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDVRVFkwTTBKRE5EZ3dNRGRGTURneU5EYzVPRFF6TURBek5rSTJOVGcwTVRsQ056QkQKK01EYzNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWxwY3pYZkhoZTFLMlNQY2IKK2NJQk50TnNPR2YySmJXTnA1dVBiQVN6dlk4bzZ4VHZqcDU3VUxpd1pjdUFIN3FIYjVwbllEejliR1BLdlJyNmQKK2NMTG9FU203ZlVwTjBOYXBrUVhucnVEemovVFJUU3FKZWhOUDQ3UU1UR3ZXbVZNVFhhYXRkcFEwbXlxUURXNmkKK0N1eXV0cmdqSkl1L3I0UkdHWThZUzlqUGtqbENoQkxITnBrWHR0aXMxUjYzQ0dNVGhDSXFnTU5Sc0xxanZzMEYKK2hEODJtNWlOUnoyWGp2Y1VqRExpVHB6emVtRkRocGtGMEhwR21FY01JNEZxVXpiNHJlckFyNVNtVFNhcTU3ZkYKK2dNZHpENk1jK3lXMEtub1JjTVNKZkwyaUVObEk0V0lMdkU1TERXdDRWWTE1cWYyZS9OY1dzVVcrSWt4VnRaWFUKK1J0amduSHhCWWF2MzdES3F3VjZ0WU0vUVk4c011SmJCWlJTaEtHUlRTd00zckRxN2VyM0lsazZmTnFvbE16YjMKKytaTnQ5VVJPaURUdWRyc2NjY3Z5blNBRW42eDhtVUcxSkErWEZOdWNkVU5yaHFOZFVSRjIvOHNQMVFnemNLY1gKK2Y1STNyR0NEOXY2cFNMWHFNUDNGRXpsWjJubW9sZXMxNVdLOE9oSWJBY3VPdWEzVnd0NTgrVHROZGZkd1BQZ1IKK1V5dUlZaWE0QVhSQjU5ZE40WW5nT09mNDg5UitpZllpRFJtbUhoWFlFeGlFcU9PM0xIRFdoQy9XZDdkQ0VhUk4KK2tRQytOUjJLN0JLVENGZHRvZi8vd3RwKzhKR2kyaE1RaGpreHR1TWZHdDhSSERWcjRjSzRSTWc4MjV2QmxyRnoKK0dvdWNOeWJCejZzN1ErY2k3UWlTQUtlR1RQMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZETEZIVk93cW1TVmcycmQKK0hEWXJ1V1BvZ1RsZk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBa3laem1XTlBxZ0ZQSHByV2g3WkRYU3NQdmQ5ZDkxV096SlYwNi9DdmdSYlMKK3VVMkZpa1RFL3hLNE5STU5jaXMwa1FTVFNJTjVnL0lLS1Bvem0zRkJ0VVdVNEMrbjE2UUoyUFhNQjh4UGhVZjEKKzNQWGIvODF3aUNWaUZMbDVERUkvcjZXU0cxdFVGWEI5U2ZBclM0TDJnNzJ5ejhaN0F0eHk0ckVsRVdEbHcxN1AKK1VueEFLOGtiWFZBNTcwQWNnRWNqbjVaOWxkQXUxdlc5SmlHWnQxWFN4b1BHUE4zSTlxSGY5cllFQW1zY3BQUHQKK2RkZGhXMHpRMHQxRzZFTVN1WU5yNnlNQlBUMm9sSFdjMm1zTFFkMGl3SWduU0FGb0R2VHZJa0lUazBxNUJhS0cKK3NiNHVydjlkSjVpKzl2QjYvcUQ2bW9ydXc3cnlVZ2dQenFJQVRtdFlPdFB0RXp4WlluYXAvSktFV3VnL0drSVMKK2oxcm1SOVJob2d0VVJobitldElZbEdZL0ZJUFJVc0p2SnNhRG1KOTZwSUtiM2dITGE3T21sQ0pELzlscEdNNFcKK1VBaWg4RW5TUzYyYUYwOHJnanpEWTJtVkJMakwveWZBVWhkYXNiclVmWUgzZ1p0Zm5BNlJtOHVJZXVka1VHcGwKKzNlVSs5bWx6d1BpUXVDSk1pV2l1SEZUYmVyb3pab0QxV2RRc3IwVHBjQXBvWUxXUGNiYmsxU2MrNzNRT3gycWIKK20yUGl6RVFOREtiUXB6OVdVdzFhbm1zUVhaV0tVdzM5NmJRVlhzSTZUZDd2bTh5UTFrNVNBL01nYVV1aXFBQ0EKK09FV1kwUUpLd1BYSXpFMFJVdjltenFPeklxMytCTlBNN1lreUNtMFlpSS9udmhmQnhwZU9JMEFQNFZ6NHBoRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIEEwQzlERUMwOEZEMzlBOEI1OUM0NkJDQkU4N0ZEOTk0OEM1NUY5NzAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXJXeXFzZHphV0Q5ZmdBQUFBQUN0VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBNMW9YRFRJMU1EVXdPREUzTlRjME0xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxQk1FTTVSRVZETURoR1JETTVRVGhDTlRsRE5EWkNRMEpGT0RkR1JEazVORGhETlRWRworT1Rjd01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBa2JoL01rWUZldlE4dUpYaworSWdYdXNYckVmR0JPclhrRVI0d29pNTczWEdmcHZ0bDBTNE9BK3pYTDdOZUM1bkk5TWhsRGNrclM3MkEwY3llbAora2JvMFVnc3UzWGh0MEhtaUFTTHZRdUtGZzNwcXp6NXdxdi9nVUxISXI5U1lWZVAxd3lpcEVteVgzWTl2N0RlZAorMTZhdEJSMW90cW5jWEhBS28zMGdYMldDSUJNd3lRSTJ1ZVczWmVPTjEwaUkzTG4yOGEzNEFZcVdVTlRlbHlaaAorRkFZTkJCdXdQNFBDVjJ4eWhQRkoyM2xzVnliU0F4TmFpNnZ3Znk1SnBCdTJYb291cC96YVpyUkdpVVhwRFRLUQorU0RSSFhMNVZ2TTI1ckZpUCtSaWgyRTBHN1dsY1pndUZSYWpGQkE4ZU1iWlN6T3JIMXlkejV5b1lhZEoyZTFhcQorckNaRFU0TEdINnh1VVVuMHdoa1BUWktvK1MzWG4rdzBYWlhXZWY2ZWRGc2ZQQUVINUxUL3lCVGR5REIwd1E2cAorUzFjd0tZd295Q0g4ODRHTjRYSDlRUTRva2VIK3JFVzVGT2RLSE5sWEwvRWZjTGlVWWw0a016Y2dhVHZPQmF1LworUVowUGkzSFhGOUNvT2lzVEZNRURITlNMblZoc0l4YTRlMU9yakZOaDUrdmphZGUxa2YxeDlyVjVhTkdZUlREcAorSmhaSlMvV01hYkU2cGtsdHRtUjJiNlQ2dWE3UlJwbktZZkYyQlU1SkRPY09pK0RMUklCMWZYS0U5cjZ4UHU1MworMSt3ZjA2bllZbzZZQzA1WEtVQnk1OXAzZ0x4d1VJUU9xZGxoK1hVNGMwL0tpMHVya1VhT3lMUlR1dnhvQXk4Ygorb3YzVEJ0T0V4OCtBWVVvdXMrSjBpeDYrT0VFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkc5eVpvbTRuMThubDN4OQorK01JMjgwM0VMUVUwTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFDTnV5dkVOUHhaU095V1A1VVRUNTZaSm10dkdHenFlWG8zbWpENnh2UmRPQQorWHg3a3NjaE9EWWRpSHZUay9lRjJOUnhoRk92SExLVm1OTzlJT2lMOXZEeEpYMGxCbXg2UUdNazJnc1U2ZU9LVAorSWZQaDN4V3A3c2FWSmxFbmdWay9Mb2dJamswejdMTE9UQ0RCbWwxQ2tTQndVaVlIeHRtWFphSVoxZjhIZ3BmWQorVXBvNDlFVnMrb09neWM4bjVVTmJxS0xmV3JsdkFhOXNUM0NzM0YwektUOWxmalJnT1czVXMvOGRINisxV0RPagorMEFkME1tZlljaFdUcnc4YWlCZnY2OHNUdUYzazVKa1Rta3V0UjV4VHYxcVV6WUZVcEZBZzk1ZitIV2JYMkI4QgorR00xOUFrbjhxMGtscUQxSVQxZWx1eDdqRkc5Z2w0SXdzRElDZFR5Ky9JeXRVNnJ1QnpVNzBUM0d5NHlXcEpBcAorSlEvV2dHNitNSFdPNGdZWWRUWEJiVmFNMzhjOTVqaG8yVkxHaWJkY2puSWV2SUFTRGpSSFhWd25Ha05qeFowWQorYkoxTDl2a01aVEI1NDRrRUhpbXc3TFE3dERwbTliL2RENy96V0Z0eGhzSllDTmsrZTAyUy9pSVdqZkJZOVZnYgorcnoxd3h0YmlmRXhWdUp2VFp4c0FIdFdyZEtMdkFRNkw2QnEyV0RwbTBjczNuTlBnb3BEd2I0MTB2Wi9YUnJ0OQoreFJkS0IyNlZlTWxsK0NKNFR5WkZ4VFpWclhWb2NVVXR3THRKRXV6L0FyNitBRnZ5SS9VWnhLc2Q5YzFXbitsNQorLzNDZEZqc09CS0pCSnlNeGxKdFUzSkczK2FWKzJSVkorN0l1T1hFcjdiQmlWU3JYR0V5akc1bGc4NzE1RW9ZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgQTQzODRCRUUzOTY2NTMzNTM5Q0QwQTczNkQxREQyQzIxMzUzOERCRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZExHeVJrSURxZnVjUUFBQUFBQjBqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreU5Gb1hEVEkxTURFek1ERTVNRGt5TkZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFCTkRNNE5FSkZSVE01TmpZMU16TTFNemxEUkRCQk56TTJSREZFUkRKRE1qRXpOVE00CitSRUpGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFzbG9iY3EzSzVjWElrdUNlCituMzgzVEZpQ29hd0JiSWhVMHgybTJKQ1JuaXJ6d1QyOHlLcVpweExaTStKbENnMW55ZUxsZmIzZWVtRHNkR2tqCitSWFhqQlQwVGxESG1KVVNjMTlvSUF2OU4wTVhCMG5qemMzYS9FNk1ZOGNLOVBtTGR1NkZWeXV6bGo1L1hOSm84Cit6L1p0THJSZWFxSXNURkRPQy9YN1VraWQrOCtKSFhSd29VajVaK0JYMnM1TTNqUngxMTdDUG1XZU9XSjlDL2Z2CittY3dBUTBwTG1JMUFuNjcvdzJ3M0R1dzdyaEwxY2FzbFBLYUluMXVObXkramllcWJBWWpuUExmbXpKVDYzSFMzCitkbW01V0JlMXdZQ3lQU2xFMUZXeTU3b0RTMTAxK0lVTjhPZlMrbDV2YklGVGZscmhjbjNNK1QwRnRPbFArYkV6Cis4Mit0cW12QmtEazNXMUw2ZFNvQUdDU0xUeGd0Z0dWQ1lPREpPdW1pWHZMR0Nidnc5eHRkbVVaQnFCbmJtbWhhCit3QTlqQmlPQkxGUUg0bzlsNnBFUk5JT2xDYnptRXUyY1pNcllBTjc1MmhETFJORHk4Qk01Q0ZhQ2NmTzlkdmFECitGbmVHVVo3SWdHby9WS054aDkzMXdqZ05RWXdnNVZWOUtBNmlpUmNnRy93TElwNGRjd0JmcWh6UzZScjlwckUzCitVUWdkT042MnRsQ09iMnIwWUJNZWFwT3BEdXNvd1A0SUNNdWZNMzFyWmVFSy9SUVhpdTVHQURCZVRyTzJRKzFCCitEMGVPWDBUTGUwRk5kbkhFcUtLaVcvZXZsNStnYXJFSDB1SzJtbVVFaldnbXkrMHYzS2RIR1VTeDJjWU1HSndUCitDai81S3FLNWpHeGJ6QUZWUDh3WTVzWHdCbUVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUHNLbXRPTEcxdVU3dnB2CitKcm45Y3RNYS8zRGJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVZoWGxUYzlnYkQ3bnQxOVFadDVZMU9BY0x4RGFObmkwcWFIOFNVY0kzeGtUCitWeWlNZS9sN01jZkNSbUE5RDRaSEdIWEtrYTdmdkVuV3U0R0JWa3E2TjNLamhXTW1YZ3NEc0dTVXptQXcvcmRlCituLzJOd3liU1gyRTRSQjdxeFAxZ29qMXBqdzRnNnBVQk9oOVpCWjJoajhmam96TDlTRk5FcnVwRlc4ODRndFBWCitOZjVjYWNsMjAyUzc3YytSeHlkWlJuSDVIZ1NrYzQ2cHl4dGVDL2cvS3o5UDFkbUtMUTZGZDEyZDE4Tzg0QUdKCit3enpHSEc3NTM1dDdwRnZoK0dVZjZYNlVlWUdQN2FyQmVHZ08xMXRXeHhyWEh6NHcxNCtWNGtKYTBSaHpmVWU3CisrY0pjd3J1dnUrTjBJeGZYNjNOOGZTUW9mTGVuK3E5dWM2MTJHUzQ0cDRmSzBBYUI1d1JuUWFJT05oN3hGUVgvCitYbWtiVFpra3Vnb0gyQTZJaktDTll0NVpOd05QU1hLMXVYdHZtUForSFIwdW80VnhrbmZUZ3RXWlREVkxKa0dlCitFcFJ4cnFxUmU3OVA1VkUxcEpSWkFCejlLZWo3N040QmthRGl5NWdnYml6UVlxU0FMYnB5VkxVb0o0ZVlHSjNHCis3alBDZW9LaGlNWTVCUHZXN1NhSU1WMkFVckJCa1l0Nmw0aWtzK3EvMnRja2Vra0dmcFpkeTlmZHFDSkwxejlTCitjd3ZBOG0yOVNic1EyeVRhbzFCTHFOSVlSYm52dnVNUENPMzczbFZ0T2ZlYnpZTllvTWFEK0JObSt5d2VseG40CitpWU1OT0pmMjdlVXhwSmFYVlJSTm9TRGxRcFFDc3l6NktvVENrVEc2ZHhGZFUwbXB0NlFNNHFJaXBYK25oYTA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCBBNEQxODcyNjM2NEVBMkUzQjI3ODQ2NENEQzdGQUQ5NjhFMDE1RDRCIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFkR2VVbkV1anUzZU5RQUFBQUFCMFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt5TTFvWERUSTFNREV6TURFNU1Ea3lNMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMUJORVF4T0RjeU5qTTJORVZCTWtVelFqSTNPRFEyTkVORVF6ZEdRVVE1TmpoRk1ERTEKK1JEUkNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXJxYnZkVlNTM1EzQXRoWFoKKyswbFJSNk5iOXc0dlZCeVZWU3VBQXpmWks5MVo4UTNLZHBrMnVaUFRNZ1ZrcVVvdU0yVXhmN0duR09ENkR3aVcKK3VZdzB1dTNOU1ppZnB3RW12ekhraFArclVBYkVHRUFrN0VZVkdnOUthelhYY1huSHVDZ3ZGaVloNEFTemNZaU4KK0V4cnQvWnVibEgxdGR2ZDc2KzlHUlpxcTRNUUVyalVKMTlOTVNPeitrdnVRbUNmQURKa2VVWDBJNXlNRWJMenYKK292UzVyWW5udk03dkNoZkR4dzJuMFBaSWw5K3dPUnBSanJRVk9UcVFES2FxTGFtYzBpVWJPaWhDa2Z6UEVieDgKK0pTL0VOREc0QWVJWU9jelJ1d1ZaUThoU1R2dXNyQWk1R0ZWZDdMQzBMcDg2Nlg3NkxIUlc0R0hMdTd1NlRLMTAKK0pUd2tUSjZPWkk1SW5Md0lDeHlQaWJxQWZrdUcyQVhqY3prbGhiZDVUZnBlSDVhb2pROHIwZFI5WGR4N0w0RE8KK21uOGlIYVBmeEYzeUdpVkNCdnBVR2t2WUl4Mm9naE5xVlhIcVk4U0F1RGxJckNyTTczTXBrT0RTTHFKQnd0REQKKzhLNFJOdlJWVnNaakY2NldlRWJNcWNyWDMwNk92dDFPbjF4bzZsN3Z2WGJpK0N1Y2xWMGdMN1J2Z2hhc0FvcUgKK3ZNTTM3dzlOcnkyUnFCVGtPUWU2SzNLMXUrK1YxRVh6UWdWRVNTTWptalpPR3M3dUFTRWI2TER0S0JVVE9OOFkKK0lxazN2NmdqTm9tcFl1VmZuQzl1WWlML0Y2cW0wNFVnSm5JVlN4THJCOTFBZU9FU0ZiREtZeUNRMmR0OGpoTkUKKy93WGdWLzM0SXE0VHhwV3JHcXdjVkIyVjBkMENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLY0tZdWhaVVFOQ0RodU8KK3pWeVg0SkFNQTUyaU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVWR4YnFmRFFkT1R3b3NCY1JhbnBybkpFdVRGWWxkV1A1enliZ0RwZGxQS1gKK1NVR08xaEwvWnBRSXRjMWszWGhOK1I1UThmSUhRL0w4RXN5dkRHMzlaaHdRZVdYQUY1SkJVTlJJbHJRRnYyOUQKK2s1Rk5TZHdNekZ2dklRQVhpUE5Hc3k0UENmMkJIQ0p1U2p6WkgvMUt4ditCN0hKMllQclNYekdSajgzeStaT1UKK2pFLzQwZzBTWnJHaHArUlF0VThEamdmeFFpT3RzdThTKzVEK1IwZWdjUExtSFM0TExNYXNyRUFKMFk2VUd1djYKK2VKZFgvRzl1RXJ6cTJQOXhjeXo2Um9zMi9CR2lGME82MmxwZXhaWCtydEg0QmY5QWhVczBoODVrQ215eEpuOTMKKzF2SDcxRzBoTXRkckxzTWZDR3pqYjNXdlRzWjd3Y1AxNG1ROURzZmc0MFh6dFB1NXNZaUphRi9TNldCRGlYNVMKKzNRcUl6RlArT1FocFlUSTQ5aG1FT1BvMXRuUjJ1azhEZDduMXEvZGR5NmdteWUya3Q4VnRYZkxxbkIrRXFUMXoKK1lCQk1zcWtSTDBBeWJVMGxsREZKWnJFeGhIY21hOXljYTJmeFNXWjE1UjZISUNvU2MrTUc5RGJMMHd6UlVhQ0kKK2hyOUxNZDBpTWs1Nlk3LzdwRmxiWU9ZM0lMdkg2VFNaN0I2eEVlcndKcXBHRGwrQWNtbi82S0tMSWxmemI3NjYKK2pVdlVodGpnaWJ4OFdXWmJ5OGd1OG9HclNBYXJzaEVsRVRwS2RwTDZEUStqUUR2SGVpN2RkQzcyRHBPYkpBRzUKKzljckFYRFpOd3NBQThDd09RZ1o4ZkZ1bng4KzJZMC9ZaGhvclhOcW5xelVtUkhZeVJxd2RiT3F0ZDdXd0FXbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIEIwMjk4MTE1N0I2RDdDQzMyMTAwMTYzODBCODk4OTUwNTI0MzUwRTYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWRSdlVTWHppUCtaaUFBQUFBQUIxREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3lObG9YRFRJMU1ERXpNREU1TURreU5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxQ01ESTVPREV4TlRkQ05rUTNRME16TWpFd01ERTJNemd3UWpnNU9EazFNRFV5TkRNMQorTUVVMk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBM2dZdExNc0F0YkNMYTJYQQord1p3NDF0ZWNZaVNaNE95KzJrbnV1VDcxTHM5VG45Ryt2YkduZ2FINE4yNWd1bllYYkt1QjMvYU5LTmpadjZoQworMkcvUDBFRDI2T1I0eVFJdW56bkxhVXBYOHltTVl2VjB3VmRIdlhkdE9PWmhOWVNrSVJCeDRrbkNRbW1EY1JZdgorcC9iSmx1d1pmM0N3OTNRdzJVYzhaejkxMVRMMm5PVkJmZ2VQbEg0WW1RR05xVjIvZ20xYmw4SndoekZaZlYzQworaEcyeDVkaHBIdnpKK1JISitGNERIL3lHd1BkYk9idUVIWlp6a0hWSHNocjZwZFdWaytXSXNMa2NaZ1lDcUdYWAorYjVKTEZ4eXlLM0tMQlNvMk1rWTA1bUZ6VCtJOUNlRUtIQjFYMjBZWlN4ZkwwbnZIc2s2UHI3TWJvcnZxZ2FBbQordmxldzRXMWxsbHozT3JXYWY2T1Yrcm9iZ2tKS3ZlNUxIcXVXK2pleXFmY25WM3ZKMHpQYTd0WjN4QnZEcFNzdworMmVFbE9seW02ajB5MmVoeUhvTFBHcGJ6dWIraTc4bzBTdGNaanRSMzE4MWdYVTNYWDJZeVIvcmpxSWhNdm5rYQorYVJzZUNrdTZLaGlrUEtwT1I2dTdwVXQ5LzVzalRxQk12TUFGOHJ0OWFkRnpyaDdnK0MvSzVwZHNzb29uTWF0eQorN29EK2tsRDlWUlY5cnRITDNkM1JtLzRPVFpINVptS3piamh0bGN3NmxrdTA3YXNOMmJzRm1JeFBUNWRNcEFxdgorQnI5TUhJMTJqWWNTUmVNZlBOaWNoSHhKemhIbXBTbHI1NUJhcGNSVkRnTnZPV2hheW9KYWhBOTd1aU9RQVFITworckhhanQxSXZxZDU4ZUtST2hYMU10d1pvTjEwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk1Eb1kxSFB1MEZ5UExvbworMWgwbldLUUpTQlRPTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFTVEtpOTBDQlZsN0FKcXJJRFpRTysrOTI5anE1S1ppOXcxYk9ZT1dBL25uMgorNVowMnB4K3p2aUFFcDRuT2Vtck41TGxyY3NFK1hPUUdvaThISy9SamI2TWJZZWtwRmVONjJGR1pQWjZUL1J4LworRGRQNXZIYlRYbFV3YlY0WW5xNnBGNGtRRVY5MjAxUWN4V2g0bFhxWThBbmFuTzI1QVJjUENlSFF4T3hkRTV5TQorczB1UGFrSmYwTWVvZUZ2VHpZdFZGR0phYzIxcVBHM3oxMnMzMm5qbE9IOEZ0VWZEelZyeUQ3NEdOYUFPMGtMbAorSXJvdkFIZlpXMk5JUGNZOGZ1bnJ5VzBPSzY4UVBMTTBHT0cwWkRMWGxkaittdkZCVVJwdGlSUmtVaHJpZHIwOAorQW9iR3ZtQXBqYVRNbWFtU3hVRVBZeXYyc2liRVdmSXI5SlcrSE90aFlWOGVjSU1pN05UUnNJZHFCZkZBc2FkRAorcGh0MkJ5L2cxR0xXUmJhVXRHNVRvZHd1Mzd1OUNVb2ZUc0ZpeDd6cmdNYzF4WTF5bDBSY1I4ZGJnV0Raa3hFZQorMzVRakxEbkxWR3BkUk9BaFBadGZ6V0ZjRlV5YTQ2dGN1NkxSN3JCZmt1Q2c2djFoQk13UWxJbEhWamlTZ2xrUworMkNzdUtrSmZZUmtIZVFpVHZ0VzRBbHYwbHJvbmpmUzRpdWtPSmFZL09EWmdKUzhBdzR2Tm1lS0hueUsrRjljUAorSEZBc2ltWHI0OUZIeXBJemZLNTZzU0xpZDhGMkIxNzNFaUF1N3dzZnlIVmptMHNtZHdLdXFTK0pIOE1OQjZ5RworV0wxSVM0RHdmYXhuUyt5RE5QSk5qOTJVd1oyN3JOTU40MkJ3R1Q4clRQTXVjREhpemFZenMvc0tBV2lFYWFnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgQjA4MDM1OUI1OUFBOTM4ODAwQTRBRUJGRDEwQ0M3MENGMDFCMUIzNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZE42dk1LaE1kZU1MUUFBQUFBQjB6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ERXpNREU1TURreU5Wb1hEVEkxTURFek1ERTVNRGt5TlZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFDTURnd016VTVRalU1UVVFNU16ZzRNREJCTkVGRlFrWkVNVEJEUXpjd1EwWXdNVUl4CitRak0zTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF4M1MyV05vcXoxbzUwNktUCitmN2h2bjBxUFBRTzRxQ2FrRVUxQWJzQnRVd3h0cWhTakt3d3RBMWtxUDkyQ2s1Zm5lMnh4TXFuVHNJL2pjNFVtCitwZzBNLzF4OTRxdVlNV3ZsSExLQnpCU0xVUFhUK1p4RWlKZVRIM0VlVnlUTnhWRWhZdi9UZERaeUxITjFGRURECitxbGhKc3BWVWlidUhRT3grc3c5Z0d5OVZMbTl1WThlRi9HQnVRSWNpTVlheGlTUW92eUNOd1JxTk5qMDgrcVNrCitWVmw4bWVlV2JobGtEa3VUSzQ4SFpWSHhVcnFPZXMrNzMvNDJIR1hPaFhEelY5Qk9ZQkgwK1B0cDJ5SFpVQ05zCitYdVFuK3JPejdIbTdJNjlubi9maXZ0eXQ5em10Z0ZlSUsva0hIUmRRL0xvN05hU3dPS1dmTkFjU2dPdTVjK0h4CisreStqMkg5WXRMQVBjcmVGbWZSZGd3dTFQRkJSeFoyZ2Npd0VHaWZKZHlNRVZiM0tKcFlKWm5LSUNHQ1JPd2RyCityNUpCNWZYdUZHelJqSTlzWldyVGtRQ0hidmxXMVQxZkQra3JiMU1lTTBOcXRXMU16TXNXVlpOWE1MVDlPUzVkCitkdXI2ZjlPakVOWTFCWHlEZUdBeDYrWnlTblhSaFB0OWFxVmlKRlMyN1VHTnBKZ0pFTzRQZlRaWkIyaWFsOGhyCitQcGUyNHN0SS81Vk00VkhYN0tpQUs3L003YTVkNHlHOXFmK05uVlpOUUt6R1E2RElTL0Z1U0orenZHTEowSDVvCitjL0RoNEQ5Q1U0YWxoNUhPZXdtcGNueENCeGNwbGI2WHNING9FU2oyN2NKb2NDcVBxMXNrY2hkNmVMNFcyRVpnCiszenc3REJ5a3pZd21ON3l5MVE1T0xSaHpRUk1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS3NiTFBhdUNKcHpxMlNWCitzVENVSzRSYmdKS01NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWxuRlg3SnYvdTN0bUZ1T3pjeDI1WjBtK211NHVibU9sdjRkdTU2NmdaL1FLCit1L1MwNk93RUlSUy9iTjgwMXcxa2RBMFV3dmVEVENMeU9QWW02YVJ6aFVDSWtuWTBuRUVWTTRUS2s3RWI3YWVCCisza1hod3k5QU1QL3M5YnVUdXdiUTE5UkNxdWlTcDZPWk42M2xqM3p5WnlEU1BFMWNQbHhzYlhOT1Rpa2pGTmxECitxRE1WMVNDQWVFNG53Y0Z6Q2pwc0dZeE9UU2NqMkwzbHI3ak0vM3JNUUVIeWd3ZENXMFNRZHF6R2Yzd3AvRkpaCitMYm01cUZhNDZZVUFEWW44ZWl5SEovS1JZYTRNNmN0ckYra1dCNFo0VXk1aGwwM3V3RG8vZGZreWVzUnRPTkwvCitxc0kxaWJsczQzSWM2RVV3elVoRktoQVNJQklnN1NjdHBxeFhrOWE1akJJMUxYQlZYQ0ZXSGhPbXozMk5XUmNICitBb0hFd3VnU2dOMWZwT2hYK2NGRjQrdXlqWlhFN29OekFWNm5sTXNWSTlhL3lLeTFpT09jRStyNmt1QkVvUlFOCis3dm9UYko2YmovbUFSNjExSzdpM2VIZVJFRjBJU0h1WjhYOE1JSTV0WWVZTjVyNkFGZ1hTMC8wWDNzeTVjNFd0Cis1NWZ5SnVzSmxERlZIaCt5WDZKdFpCalRMb2JtRkVHbGJ2RHZpZW9VTFFCb080Qzd5STl2K29Yb3FFdVo3Z29UCis5RkhUd2UwU0RhQ0JpWjByVzFCQVF3Rjh3N2ZWN2s0eXdwUVRNV0J3eFNlaGhmUDVjam9lM2xLR3pwbzVIMkVUCiticUZ0TkttL2hHV3c5UCthSTR3ZytQZlpCZEVjOXgzYVhPcUcreEZtVTdMVXRSc0FwVUxRS0thdTNDdVc2blk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCBCMkQzQ0MwODE0NEM1MDgwOEMyODlEMTE5NjI3NDc5QkZGQzBFNEEzIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFnMklJZHFFRE9kbHV3QUFBQUFDRFRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE13T1ZvWERUSTFNREl4TkRJeE5ETXdPVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMUNNa1F6UTBNd09ERTBORU0xTURnd09FTXlPRGxFTVRFNU5qSTNORGM1UWtaR1F6QkYKK05FRXpNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXRpdE8wOXJ1Q0FtMVl5TVkKKzhmdjUxUHdwdGRQeVU5VksrZDNndmljVjdGWHFCQ3RwNXhHczBwTXdVNzhIRG4rRzZpZU41WmdjcE5mVnVsQjAKKzduZmJmL1FIZ2R1N3NmSEJ3SjVqSlJiLzEyVC9KcEVUNWgzbHNLTkJJRzdna2NHeURLZ3pYYVlLY1lVd292bkcKK1VDWFJLUUUwOFJYenVwbjd1YWY3Z1NaL3h4YnRXMG9WeXN0OVVRM3lGV00zQnpEV1VUTmVWb3duWUZCWlJKSVUKKzdGd3ZMUmdaSHczUnZvUnZvYlUvME9uVUl5NlVZOE5IYlJaSlVwdUNWVHA0NUIweFlrdkg5NUMrSFlMSDBLNzEKK0NrZk1FOHVTcHoycnNCK2d0YUxNTG44b291aG9oV29HQUhCaGE2S0plMGlSemJJWXNsTUZiR0FIb0ZLSzBiSkgKK3FzdUtKUzZPa2ppbWFEalVLNFAwZkZlamE3dHlBTEV1QlZMK2lKNFh5Ty95N1NLUDQzdkdQU1FWaTlkK01QZDgKK3hmUGJIS2E1a2VFTTl1cS93ZWdldjdqQWRKV0E3MHN0WS8weU5kclV3UGx3YXdjUkw4d1JkNXpCZTlrL29ZclIKK3o4WnNQbXpodkNJeXhZbVRjMWdwbmVvbnlOQTVNU1pYUGhLbGhnMFlSSVRqNkszOE82ak1WYzc5UXpJK01MUFAKK2JMcFRjMlRjeXhpUnpnWTVHL2ZWckZGaGNuSnFSZ2ZnekpvR0Q0ZEV3Qi9EVTloQ2NhaHh4WFVibWFvbGhseTgKK0JwcXFYZjFRZmJTR1FNcUdoQXlVMWZNcUNiLzhCMXFxUHVmcEd3bXlvdWZOd0s3djc1SlRFUDJoQVA1Ly9GTEUKK0dTdWM3QXFEek9SbDk5WUV5R3Y5dGp4Z1JZOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOMWw0MVJYWmtsUEQ1d2UKK3g4STZZY2ppZUNZZE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZ2t6VE8xd0JtdmpTNlh2c3hlbVJRaG9YV0E1MDF4eVNqdENuOTJMRWhoL2oKK1JIU1dDQzh2ZGhtOHFCNVdsK0Y0MW5KSENaVUVBUkNUdUFKTk1UVG1Ea1lyU0l6ODMrSUN3aFVBSFprYVFjRCsKK0lOZzljSmZ2UE5wYjBFa1ZVWHRvaU1MaDl2SWlGNzhrZWR4Q2dFRWkya0p5NWZyRitaSEJqVHlSZXRkK1pjVC8KKzQrMk9YdkVQWmNPMWxCUnBVOGgrMHFDS1c0MGlGaW95QVVlbDVQbmd1SmVsREFva1lrUEFUaE4xK2FyTzRXMTMKK2N3Q2RYYnR2ejFJNC85STBsUnd4dFhONEhtZzdKTlN3K1ZFVEorY0I2a0Q1eGp6bUFHWStldDAzbWFhbHJKNDAKK1ROeDM3bWRobFZMZFhyU1JTblJ2T1haMEJoRlQwNE9MMU9iem9YSy9NM0FNbENrbmRpNUgvaStHenNBYXlvcVkKK01qNDFFSHRjN3kxRWtYVGJNN2FWQStrZ3ViN3UxMXVYb0RxaXN5dWtjNFVycjByUGhxMjhUQXVVL2VDUzAzdXQKK2E3T3ZDenVBQUNESkpGU3I2TnFJL2NFdjN0MG1yWi9xT00wanMzSVp0YmNqWlJyazBEbGxZMFh0L0hVaWt6eHUKKzVVa0Y4TTZtZ0xCeC8wY1lzbEpNOUtZS2ZrRXZRZDJTdXBpb0Y5SWtrMXZsWVJpbjN5NlZQdm14WEFtaElYOHQKK0FBT3dlbmZzalNBY0NTWjlkdURnRUxCQWI1eDlPQnJrTi96NUZXcGhOZ2hySkxJYVFxTE5UbnRlTTE1b2I0VE4KK1RlVTNoTzRPUVJKbjJVWU1GeGRPcmFlQmFBN2d5WEVDMitRdHQ0SVFaSzFMa0RkazdTS2FtV0RrZ3FVTVdRWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIEJCQ0Y3Q0MxODQyMTMxNjZEQUI1QkU1M0E4NzAxNERERDM0OEQ4Q0MgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXJZNHlzQTBjb1BFekFBQUFBQUN0akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBORm9YRFRJMU1EVXdPREUzTlRjME5Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxQ1FrTkdOME5ETVRnME1qRXpNVFkyUkVGQ05VSkZOVE5CT0Rjd01UUkVSRVF6TkRoRQorT0VORE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdG8vTFNaYzlML0FKdVNtNgorM0dsY3dPZnUzQmFrVnkwSGY5ektJbGYxVnBibUtQKzVBVGlVZ3lWSlRyNG52NFdROUkrYThIU24xdjNuUGY4cwora2E4Ullra0NzMXdpOGhGU0F0K2g4alRKUDFxcjlWdGlUaDdMYnZySVh5K28vZUYwZ0JwZTBwbG1XZlZVc3cxZAorY2VjUFprc0hvai85RUcxUUtBRDFwaFh2SFJqdDAyYnFSa1ZjZmxmdHJ2cXB4SnFLL0FVUnBLZTdZZjlWdHVkZQorMW9lTm9mWG5CSURCQmZra1IyczFFR0V0ZC9uWXozbStLZ2E0SmJId0lYR1VZYngxOHpOY20yY04xOXE5OVJPagorOENNRkhSZGJvd2Z0TlRMcHpzVkxoSXlyL0NKL1ZWOWYvRWtxVlVlRXUzL2liclVRQnhlS2R1RGpzY253YzNKRgorU0h0VGdwRVM4RVVxdDhlT0VJYnNzNmZyYnliVW9pMGxEbHVBM0MzSzJHVFFTR3NpTGd0WHNWdGZCUCtBTnkySQorYnJJL0tzQVoyZGRrOEpqc0ZnMnVVTUp2NnVpTnIrM2lzd2RUdUVUaEt2dk9SUkllVitQUFBOb0g5aUc4ZDhkaAoreWJTU3NaRnhjY1hZME9KV29LUnZuRzFteHB0eHhJNTRkWlFXeko3NUNLUkNvaEJ4cGFCb1lNWUhySjZTSHc5YQoremZZNGZOK2FwRjhKZy9oWmJONGoyaVMrRWZ1enJZTDBXdXhTQWI4bGdHNWpnQVJpdFg2a2Y4ZUFHdmFJL1kzZAorNGdpZnhpQU9SWGFqak9RZ0lIdEJDWlIwd2s3Nm15ZWxPanZsaW9iaHM4Y3dwaEl0akdET29QRjl2UFlOQ3g0NworWGl6SkxOZ1F4K1hkTytPTVhzQWU0S2FCSUhzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhuS04wYWR2VExYbk52MQora2hSeVk4eWFBSUJsTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFKeVp1ZFJRUm94L3JFZzEydzBYVjl6TWQxU3N6eTQwNkNGWHdpM09HT1JQNQorcHBQeXBFYS8xSTIwa2dQazNaZXZ4MTVrQzJiaEw0d3ZUak5rbmRKWk9VN082ZVZYRDh1eW1TOW5QK29TUFY1cgorOUdRTzJyWU9nZE1qeUNBN01JTUpLRjI1NnE3SjZFbllWUlFPYjBMZnljL3dyd21FUUNHRXk5Y0NtN0dlelZDYworTDJYbDlYL0ludDBNNWJsSnRlYnpTUHRnYTdkYndpK0ttbkdudG5XNENpY2grQVBLdVBsdHc4bzJJSUQwWWVRQQorM3RqVjNOazJ5N2liWDNwVlFWRkZxbTk1MVpkWVM0a3R0a2lhR05PNURxNHV2NTh2MWpMcG9IQXJ6Z0ExOTg2bQordmJkcUt3bDFXcmZzSlJVTVo1SndiM3JhZjc5dkIvNTlMWm42QS9rek0wemN5a1RaYzRNRVRVQlRtYks3Z0JxUAorNlBVMjFJaGdMK0xqbWJ4WXZsdmloWDFFLzRtMUtQTmg5MkdieDBWVTBmVDRUeE5DWGRPZ2w2QWhpcFJ6cEVtVworbVo4akUzLzRRbTJUdk1aZEZnUFhaUEM2ZVF6SkdpS3RpT3ZjeWpaU1hGQkFYN2tCbHNwR1h6aWxTUWtMMGNGcworU2hqbWQ2OEhNRHRxYjNOQzR4VXZoa2poS0JjbWh3dGFhQVNKNExrR0dqNkxLdTl3ay9pd2VSK3NQSWUwb2o0OQorRWpaQU5rTHV0L3owSmZmc01BU1JsOEIrc1ROR0lBUG04VnowYWg0MUIvWjdSZ1N4eXRNa2RLSE11eStUSXNHZworQnhZM3NHTENsdjloZlJOdmpsOWJrc21mS0FJVG5zVEhicGloSTd4MG52Rno2VlRVS21kMzVSdFJ2anBJVFdBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgQkQ2QzY5QzA3NTlFQUE5NURENkQxNTZFQTY0MTcwQzRCOUIzNkM3OCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZzZJVDNQRFRSU0wrUUFBQUFBQ0RqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNd09Wb1hEVEkxTURJeE5ESXhORE13T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFDUkRaRE5qbERNRGMxT1VWQlFUazFSRVEyUkRFMU5rVkJOalF4TnpCRE5FSTVRak0yCitRemM0TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF5OUNXUjFDRW5ReDB6VHROCitSNzd6Y095a3hISkJucjY0MVE5enBEQjhWZnBZMU1leTBMSEJacTdycWRWdzFZNmtWSDlOOXpFeG9ScDVwV01vCitUY1VRcG5FTzlmVS9weDlZVjRRUkVFbWRXSXR0MzY2V0Z1b2ZyKzdlcGJLek5DK0tyQWl6QXZJenB0UU0rTXo1Cit4Q04zZjUwcWtKQTlEbG1sQytKZ0ZIczZCblRqakM5aEtpbzRKV0FRSGF4WTlGclgzMjVKSzZZdEhMNWV3REU2CisyZTA5TDJYVjVNUVJnbFlHdHNzQ1I5dVdGVkNURkhKSlZ3NHhiM3BscmxsazZNRXdXSVQ0b2psazNHR3hmc2dUCitzUDdndmY3RldNTVVwTEx0TEo1MmZtTDVQaEUvekRUL1lUbDEzMGhlaWdma1RQUDNhT0k5UjhEc2E2cWliTVNaCitNeHVCdjN4NXc5M1ZvQjdFaGdaNzlLS1dSUm55MGpYZ1c4MEQ3aXVzK3EzSWV6dzBxYUJwS2xCbXVNSWY2ZG0yCit1UWVESE9US2gxZENiUFNJaDhwOFlaVnZHZVAzcHJadHNwUjhKOGRHSDF0YXpaTVkzQlM5bXlhZDIyOXN6dVVNCitzQUlacHJmRlk2TWN6bWlOdWVNa2R6NVQxdUxyNjZ1MDd1K1VZNytOdkZPbS85K2w2S3loZmtHSk5ZV2tBaUpJCitqUysvekdsK01va2p1SU5BcGJuell2YUVQR2tpd0o4blk2N2k3azdNaFFxVk1rWkNGdVRXYk4yVkR5dHZYZ0wwCitjMk9yLzNwQkgwSXBQWHlXa0lQaVlCdHNBYzVDOVZoSmNsVXRVZnZEMU1ZMzQycmU1TUFtaTAzME9sVmZ1V2JiCit5TzU0MUxHd05ZQWpmMGpVb1RVNmJiaXJmOFVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSTlKaEM5NnlTbTYyRWJyCis3ZjZUSjNPYUpyQlFNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUpHbnBSN0hZdDRCOFdlZWR1ZHRxOHNFNk1wOW5aRy9wbi9iVEFZejg5SXp0CitHSjR2RXFyL2t2QnRkQ1lZSWtyZ1BKZENiTkl3aUx2Rm1mVWdXOVZNeHdTWXBraWliWGt6OFBSalRIZnRyT2MrCitjZUNyd1dFMGhZNm5JTnB5cVJhL1NWWDk5bitQV1pBRGk1VUd0OHZaZEhiUUZuV2paN1l0QmRFZDZabHppdUJYCitRa3gyMWQwQytQUUVwOXRuaU9PbitMM21ORVdyVitEL2NWTVJvWms0ZlBwMVo5THR3TFlSeUxHN2l6bDFOeEVSCit2bm9rL1hRZWwycEhXLzNveGkvQ2lkSWQ3R3grUWFCNk54K2NSOXhPWGxEeTVuU3psS0Vlc3V2YjNYQ1U2N3NSCit0czFNMWJuMS9lSURpekdnODU3YXFXRGJpNU5hSFZGSnQzWDREdmVFdUlMbDRJbnk0QUhTQkVtNUt5NzZjMjNtCis4OUhWRFpEbWJDU2w3ajd1cUZITjF5eUc5U2wyZ0NpV0w4d3d5djYyZVIzdnJRZzJEM0tqamt2UmVmMW5LOXU1CitTRGNoZXRsR0tWeTJHWnp4L2VsQ3dHVll5cDJMVEtmZC95dWFHQ3dZZ1h5YTZwL2VZRkI5RlpvS3dwWGxSdXdqCitMTWc3VitKbFB3VmtBcjdhOXVpaWQ4VjVsS0xVaCtFem92Z2V4RlNxbFNCK0hHNHpxK0NEeENra243UE9MWVQ0CitzUENnVnFnandFck9WOEJ5Q2hOUTlxbm11Tkw3ZEVEV3VCb1ZCbzNob3BHREYyUy85bitRck5QN01jQnNWQ3ZzCitHVm9BYUdZZ2t2UW9IWnJ5MjRGR2JvSnBuR3N2a1d2WXdCdzU0TTVlK1MwVWFkUElFWWhlSEEwRHBMVUJLK1k9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCBDMDA0NEUzQjIzRjQzQjI4NTRCQjc2QUQ0RkRENzlCQzYyOTg2QzU1IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFkN2VaaWZtdkRpb0xBQUFBQUFCM2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF4T0ZvWERUSTFNREl3TmpJeE16QXhPRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMURNREEwTkVVelFqSXpSalF6UWpJNE5UUkNRamMyUVVRMFJrUkVOemxDUXpZeU9UZzIKK1F6VTFNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXhEMnQwQXgzSnBIT1RnSUUKK0JESzRtMHFVNWtEM0lEUm1sWFd3Y0lqd3FaSWpqclFIWEY4a0JnMGRqRnl2eGdjUkoxcDVmY2xYYmF6enJyT2wKK00xNUxwQWx4dXBiRG11ejNIODJiVFdHcDFRUUp6Qm5ZdU1CUGo1eUk1YzhpaFNoQ1B1dXFiTnZBRDRzZUgyeWYKKzhyRERGU1UyZVBob0wrVzhhRlpkYWhPVFlUejdPODZDSzRZZnN2SUUzd0RoWWs4SkcyNGxXaWlRMThDU0ZUdnAKK2Z0OHk3N3NMSWhQTkpPaFVYd2gxYjRZSDJSOHRqY1RsaHhnVmdaOENvdzRPQkRMQVZRUzMzaStDS3N5eXZRREsKKzFXempzSXA3QmxwOEZydzVURVViYlRJdWFYNWhYK1pLYkFSQ0VZZWNjUXNlYmJ3WVcrZ0YvMEhFbWNUckNULzIKKzAySFpRcGp2Vnc3M3F6NmdlamRQMXlHc1NpdzBYR0RrRUFmZUF3THhrWnpaVkJOajVsZjErWkpUQnVjN3ZsWWkKK2QyWllOU3NOOFNWTmpmaW5TZXdZbk5JalJhd3dNbmpreE5jc2NMZ0dmLzc2OHFJd3FCT1BPQ1ZZTFBqRE9tYTQKK2t1bEVGZldsSG9LNXNBZ3kwMktzRjZUSUVGTHdpd2h4Rm5pcUVPODYwRytrVzlsMnVoVVRJd0c1SWRqNVZBSGgKKzh3enNZTWhsekMydU9Wak5xbWl0V0c3U0NzZXp5U2xWanF0WHd5V0o4c1F3RUFDM2N1b1VNK2YzNUpZRGpzOGIKKzhuK3phNHB4M2I2T0UzczVZOUVPdWZsenh2MzNLdFpQUjV2Rm96TUNVSzVyQW9xY2F3dnNwcFRPWHJmOE9XbHUKKytycmEyRllIaUFaaHB4bkgzUUdUSGdGcG1tOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLKy9yNEY0eXFHZ2Nkb0MKK0xQMmlIVmZ2a1ZRT01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVUx1VGFqSWZZTUtpdC92MkF0ejYzWTlPUVlsd3I0TDZ6alkvMkd3aHZadkkKKzVEcGd0QzdoMTNOMHQySVEvY3hjWlZEc3dFeURGSll2aXo0M0RYNFRxSzBqQW9wU2JBMStURmVlQlMvUFM2QTYKK0tILzFSNXRFRGVrTFQzZjJhTmJicVcyRENodUJRMFArOUV1cWEzTFBXWjk3MC9OOUFnSm5MK0ltU1pmSTFQWFMKK1gzNWxrSks5blJDVEo5aUNLekJOQjYxNDR1RllVQTZjYnp2UCtnS2ZKTWZScWYvVmJtZm1xM2p4SkZnaVBMUUYKK1pqZFdUWU4vYmg3cnU1WXUyUDFBajVGdGczaWlyYXZ6TmFzRExhN2lsNGw4NjlybGVFUVBoZFBwME1YRWJhUEcKK01pblM1aWhXTG5OUWhzUFJJSnAvZkJqc0g5V1Z5TXdoeEd3RHl6WlpySEVXT3RYa1lxbWJKN0M0ZXk5YnVxbHEKK3JDSGtBMUtkWTJ4Sm1jRGVZV3IzZGV6M2VTQWhQVHpZTlpvTjhKcXpFYlRURnJ3c0l2ZUxhVGk3QXpMa1Q4VHEKK1BERUJ5UTBBNTVJY1hnYitpTW9EU2E3WTJwZnE1bnFLMnlNSzhVQUFSamtRQlZsTjNHbTZwRW5ZSHVaV1VrZHAKK084elVQZXMwRFNaRlNtQk4vcEo0ZTFsaW9HSzVCVHJ0aldwRnd2SzhabjJERWFWbVhDaVVUTnJ0by9pODdLK24KK3FFTXlUM09raG0zMTdtK091Nkc5MDdNOHQxeVQrbGlVRnN4c093enJTNkFjRUVtT1crQ2xWamg3L2RNNkdTV0kKK0FPdUVxVTZHRFlaT3V4NnpXeGdvOUpKWHgwRnU2cVBkcE1zMU44T0R6cDlhVmV5d1ZQKy9ZSGt5WGZqOFRNWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIEM2Q0IyQTREQjcyOTRCRTkxMTcyNEY1MDQxMzEwQjRDNDJGODlCQjIgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXJjTDdKa3hTT1Y2ZUFBQUFBQUN0ekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBOVm9YRFRJMU1EVXdPREUzTlRjME5Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxRE5rTkNNa0UwUkVJM01qazBRa1U1TVRFM01qUkdOVEEwTVRNeE1FSTBRelF5UmpnNQorUWtJeU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBME1kVWNSMktVY1ZOMVVQYQoreEt0enErei9MeUJ4Q1ErdThrenIwZ0xObXQyOExXeGRHemNOSnVIcTZpSDZLNDZUN2tDUS8zM0Q0aXdlOGZWRQorOVV0ZGc1U1dZUngrZmU1d0tHMEI1djBSTWZKMCtodU5HMUR2cXMwcjhZQ3IxdmVUK3Z4TnBxWURrLzZITE15RQord1RHclVrNDNBM1F6aXBmb2UybWVPTDR1SURrYWRMV0k2VU9xc2lDNk5PMU52YldtcVpNVXFQZDZBNk9LODlPRworN3c4WGhoQk40Z3hmUkxlYU5kTGxObjhsZUpnMDBuLy9sZmxVOE92dytIOUdkV3VLR1Uzb084dEhsblhnTFpZSworVjVlTjhyMDdaMnFOSnJDb1dYcjFkNkVscEh0THZ4YjkwM2NsWCtMdTh2Y01jOWF1K2NGRjRkWEp5cThPZGkxeQorQ1lUNGdxdDFFZkwzaTZFUHk4Z29wUmU2bEdNNzgwclFBNGNpc0t0aDcybDJVMTBOZEU5NmZFVmFPZklxc1I5cgordVRXeDRBeGNjY0E4eUFLQm92Z09YZnZ2a050ekFQckN4RCtaSUxEUEUwU0oxQWhQcFhWa3FXdXlTczkwVk5RTAorMVFUS2RJMzJOU1lFbllxUHFpNC9jaU9TZVJKekJjY0J4SzRVQmZtdFcrd1dIbUQxUHlRdXNlRGFuUkhOOWFnUAorVldlNnFZV3hwajBxeG1USDlXRlNiMjRPZCtEVHQ1RE4wRWVkYWw2OEhIbHZYa2N5b0pWTjFWclM5cTFWbllCaworWGRLeldaeExkZUZETTczb09rY3BkMVI4cy91dGUwbHUwSVllWnpaZTN6cHU5ZWRrL21CeVdUWmR5TmxDRTVRNworaDA2Wi9SelVJdDlvK1FMeEViUXZQK2hLdlhjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkd6ZHNxcVRDREFyRkpoTQorNXlIUkU3dHRtSEE3TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFaTW9lbGh2cmUyYzJqVnZZMm1XUXh5bTNTTjZ0ZXFlbnBaaGpWUVRHeGhwagorV0liY3p2d041T3BRSHBWNml5ZXd0Y3AzdkprNFlDckpPdnNQT1Z0R0FwS0hRb1RxK2tMbi9LZW0yYmJxQ0dIdworVFZTVm84ZDBhQmxNUWlaUndvTmcvOW5oeko2RnFHVkt1alhnbnNLOVpFQWZ4ZkVFa1ROYXRNT0lzbU44OURmWgorVmFMTFhWWDRRQnR3ZjQwd04yd2o3WXZjcmtSYWVydTJmQ1N4TmFzczVNbFdwdlJLQXJ3QzJ3NlFjMnJXdkpRVAoreXFxOFg1VENMZjh5Y3FwWHcvTzB2ZU9qQ21paytXaWx6VzJFVGtVdThZRnVNRXpZNXFmVEpTVnRjM2FQQ0RsOQorRzZYMVIxVTdkeEx6WE1NMGVEam5DNTIvTUF0eEE0V2tGcnloMkpQN1R2bU1pZlM4dGdSSk8xZGJ4TFdHL0dNNworUlk4ZlY4Wk1UeCt3RGMyczFXd3prMU45d0U1TEo1NzZtQzVFMG1rbWhGMmN5cm1leWQ1Zm1ndXRobjBTNU42RworYnVZS3VnY2wrak8yUEZnVFFyTjFhLzhYQWcvbVNrV3B0ZzVxSWtFYy9PSzZRa2tvVEVHNGpKQUl3QTUvZkM1KworQk1FSzZvU01HcUFvaTJmb0lNc2UrMGUzcXAvMWgrMHVKenlWUDNsUi82ZjVUdUozdlhYbENJSkpwbEtKM0JyVgorUG05dEFCREZsbjhVQU5QQmJSbzYzeUFWUnVzeG9ibDhMQnRHSmJSYlJpUGkzNTI1NFFwaHdxVFllemwreVZ1ZworNlJ3aGxLNmdjdHdkeWNLYXpucXJyeE9Pck5sb1Zhd2p3bCtwTVkzbVVxM2kzRjVXVGc5YXRmRTRJRE1DbDJRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgQzdFRTFEOUNGNkEyOTFBMDZFNEY1Qjg4Q0VCMjVDQUVFMTJGODI3QiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZzlzOUFMNVpEWGxZQUFBQUFBQ0R6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNeE1Gb1hEVEkxTURJeE5ESXhORE14TUZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFETjBWRk1VUTVRMFkyUVRJNU1VRXdOa1UwUmpWQ09EaERSVUl5TlVOQlJVVXhNa1k0CitNamRDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEzRlZGQ2ZXZEt3TkU2NXRDCit5TGh0bFV1VXFYN2t1bXhTU2lQM0wrZFUvSG5LRVNuelVnbFJnZTVmV1pPTXJpRUJ6Q2xSSkcwQXlVNDR5QUhLCitRd3pQUktiNUR5cWNzN0tlZzBpNTJqVkFiOEJYNEFxalNmbnBzWlg5a0h6c1M4TmZ5d24xMTRGNFR3bG5EUVZBCis4bi8xTWoyQ1BnaHJZUFFaMzNqVURWOFNpR0NsbjJTV1MrM2R1OXFUbkViRDlSbW1pa1VoR0I1S3pTV3BKcTJpCitaYUNrK3hvUFFLSEVZZnVjMDRPVkpOWm5ZZURHOEorZXFPdzJQcDBhRURGK1piSHdINm1WR3NidU5JdDE0K21yCit4RWlmbUJwOWpWU0dsczA2eCtvWmdhTTNFUjlTcCtrZXRidm5ySHh3NVhWQ0ZESWs0YnhjOEZBZEpQL3d5elBKCitObnZ0R1RyWUpUbVArVUdGd3B2LzJGdnhIdXhldkZodnNFL2plZy9hN205VDI1SnlMSkdxb1lkZHRQVUsrRlY4Cit4NitRSWJzUnhoMU52cFFFUmx1Q2V3dEgrd01jWFJxWUdOQmtEbXlQUktWODd5bjdkdGZ2T1NLTXhpWng5YW50Citib0txNFdla3NHT0JFTkxnZHdEdlJFTXBycDNaTVpZcm5ydmordWlVNVhSOGdiL2NhQWVVV2RZSVZHckFUeFI0CitRS0FBVE9hQXVxVlR4VlU2VlVmRWI4K01XMDhEMHVWN0ZBc29wZ3ZMUW5TV003a0RmcldaeU1zdmNzOVhEc2phCit6TGFNRDdPaUM5SjVoK2lhd0pQU3VwaEhKczUzK1VzTzIzZ3BzZ2doMDQxVVRrSWd4ang2bVBaOFc0WmtIQTEwCiswRTh3UUc5MWl5RVJCaWZwUEJnd3NJM0dUWThDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTngyVzA4ZEYzdGRNT01XCit4ZU5pNUU4N0R3WGdNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWhHeDlyRkVvY1gwRk9JTzV5c25FTEdEOVFCUHEzck5RVVJ4OU9iT0hualVJCitjd1ZmKzRhZ3JJOUphVGw2U1p2bEQ2VjJUQ090dzRJYVk5Z1ozWDJzdnRjQ05KWGZLYmtPVkRUWGlXZGhxc0pTCitOWUtpWU9IaTNaSnRha2oxSnZURzB2WFBjc015cTBHRlZhU3R2cmZ1eFZrQWgwQ0FUQjU2bFNVMGFTL3NBN3pICitzdEppMnBHTW9KYXlUT3p1eDhCR2lCem5nb2NSK3NoTFBzMDNENlZISVlINGFzS3Z2U2dubW5jT0gwYXFJaTdrCiswV2Q4dGtjMWdDdnVqTTdCTVhsOVpsRE5VbUR0Mk1YQWlOdGFvYXV2dkFPVDZBZkQ0SWFNRGY2bkRrdG9sUDRoCit2V1hxaWcvR0l0aUlyQWJIREFKSFJCUkZqTHA5cU1MSE4yWUFSemx3WHh3T3k2cTZUK2tFTHdYYzZ5dUJPc1VlCitBT2NNSytzOEJDVmxjd1ZpN2E0NGo1R0o3eTdIS0xBMDRXTTJpMmEyQnFWRFo3NGdiY0ZiaENmRVBGaFJCbnFOCit2eUQxMUowcWhrV0NtM3crU0hhWXRtZ0Q3Wm1GOGxWZDR4QUUrcmFBUVRwUnFMcWdXbXcyc0tQbXNDZFd0R0t2CityUW41MHhLeWYzRjk2QnFLMEVFb2IrUnk4L3lCQ1ZPajh5RCtpb242R0YvZXdKV1d3ejNoV1k4TG1nRU83azlRCitPVVJkNjdNaXJuQzRkZlRFWkVrK1htcDFDZXpUOS90bHIrU1g0MTBBZjNYOGVBTnJ5bENDK1JRQ3RVVm9PWDFGCitXbkVSeUx3Kzl3eDJOcHVWNUhaYm95TFQwWHlIM1M4WlRqVy82NGFPZ1FYVkNUL1pxVTZvWFZiMnFoTGNlNUk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCBDODhDNzVGQjA2MjcwQkY3RUExMjQ0RkI5QzI1REZEMjA5QjdBQkNEIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFoQUVwaU01TUlYNG53QUFBQUFDRURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE14TVZvWERUSTFNREl4TkRJeE5ETXhNVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMURPRGhETnpWR1FqQTJNamN3UWtZM1JVRXhNalEwUmtJNVF6STFSRVpFTWpBNVFqZEIKK1FrTkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW9ZeThFUGtxbW83RTJCT0MKK0l5cVc2V0lSenYwMEc1MWx1WlYxaWRYamNZbkhOM2Y1dzJEU1lCYk1OSkpJNDVja0Z6OTd3UXBRbXVYbUdKczIKKzhVRThIWjJzQ0gvZkRpblJ5WlNkbW5FMmNTdW5CQUgvTEJpUnBIU3pJcWFJdjg5NWoyRDk4VFBvSVZ4N3dqNksKK0VZZWhNT1RqTHJKQUVTNmFhY0dyV3c0YmllQWdCemViZWpTeVNJYlFEbXRJb0dBL1RieFJxUWNDcC83RW1qbWoKK3JZZ1QrRVJsQ2ozT2ZmOFFtNllXSmplTHRjSE1RNS9TZXd3SzN5akNTOXNXZy9FdzNoVjViTGVReUkvUm0zaEoKK0hoVXVLNi9CMlQ2eWtqdTRodU9TZTk3UVNTZ2ZUR2NiMUdhOFhaU1o1ZWZrMEwzNzQrOVNnNjllNFZWQm9RZ24KK0VPanBIM1l6SFlXSHl6ZUU2WnJCbVNWQUJzcGdKbnNMZk9SdEtZMWZxWFhqeENLNElMRjZLM1M2UndUR2w3RVMKK0U3MFB4c2JpWHhLa2wwVHdpQVVqNFVKdDVoMkNoZW9nVStTOGdIaHlUTEdsUG9JVVNnRlZNdXZNczZ1Sm1XS1cKKytnNGJrVzFYOXNxVzJZdURmbVRzVGZlYVRLL2J2NnhLaVRURG5PNVdzSjFnbkdBQlJOYWdYS1p6RVo0Vjh2NjgKK0RSaGtHL2tQZURvU2pwY3BJSFczZm9JUU5wVERvYTNJczI1Z3k3RXppcWdlb0o5WGhpNTNMb2ZyZTAvYTZJZlQKK1lVQ2Z3SVNCSUpHQVU5R2FWZkdmclJaMkVLV2h3a2lTU2t5cXJJQnAzYlJVVlJnOGVDRVB1YWNEL2ltVnUxWFoKK1A5UGxHNDdhdEMzSnNRdjBBRDJSbE9zZldKY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZCYkhSWkZXdzdmeTdGeGcKKy8rT1ZOMDRxR29MNk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRVl2VGpQVm1TQ0pFaEp1YjVmS0JNUkNQZ2E1NUhoVjlVUzFkeGhLVGpoR0QKKzVNcWtwQzNTU01KanYxR25Bb3loZ2ozbDQ3V0Rvais2MXFHcC9kUFpMMGdBMUZ3SFFYODdhbTZmVVpBdDk4NFQKK3Q4UmRGdmpadE5YOW8zOVlxd1VmbVBJWldndG11WTY0Z1YvaEFuYkNrem0xSWx2b1N2K01zR25OZ3NtQWxldHkKK2xnMXlaem5NV2NYRUFTY3VpMmdRNnFhZTdMYk5WaElDSmR0cjR3NlZrck5uR1pVZEVHdUFYQkpLc1p2N1pZdmoKK2FuM3VDUURjNTR3NkMxTzJ5RTI1NVArUlRlMldHZzRkcDN2cmdGald2NzkwV1FRazlqQzhkRGw2SzkweXZMU1AKK2w3ZlB3TUp1S281WXFiclBFc1RpWHM4Z21oVWwvMFBYbVlmMGNRd3BRWUM2YVNrZ3JkZ3piZVg1NDA4dTgxWWIKKzlmTmNZdDVnUERCNXQzeE9pN1lidzk5ZXNTNFFoajRQWFBFR3JyWXkzenc3MXBLN1FlbTZWUzZPaVl1QmM0c2YKK2hJQmwwMnI1aG85aWVWdUw1V2RwMGtWSFR5SDlseDdRaCtvWThxMDBMR3dpMExPYWF4M3Fwcm5jdW8zVWgyOHMKK2V4KzZzajlFNVR0VnFwU09zaUlVUk03M0ZSdUZuU2FtWmFXZVNLTGtuUWt6MUg0cWhveEVySHRiWU5KTFlrZWEKK0M5YzdlUjNiNmF5QVJhcEZUaXhnZ3RpNmtKaVllUjRXKzd5bjRDSDVPeVhNYVdOTkh5VERoWGJveFNsVWt2SkwKKzQyNDZzUnpGekJ6OHFkUXFwNEZOYVRMVE9Gd2ovRytyeGRVRlA1SjI3MVplcVdlV0FCeFN1ZDJWdkFCdU1vQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIENBNjk3MDQ1ODY3MzQ5M0E4QUUxOTk0RUYxRTI5MjM4RjI3RjQ1MTggMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXJnRThqQ0N1czBjN0FBQUFBQUN1REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBObG9YRFRJMU1EVXdPREUzTlRjME5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxRFFUWTVOekEwTlRnMk56TTBPVE5CT0VGRk1UazVORVZHTVVVeU9USXpPRVl5TjBZMAorTlRFNE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBaERuRTRGYVR3eVFndnl4dQorOXB5bkRXVFdiWEpON3RncXVxazNVcmNGV2tLSlEvMk5RTGtDUUY0ZWR6M1NUQ1Y1aEpZUFBZcTIzWFNRQnBxdwordUVRUGVRZUNLdEFJNUtYaHpCN0RQaElYaGFWNGsxbStpajhuelpsNXRhZldmVEdOaGthQk55U3o4bkZTVUNWZAorK1VBVkJSUUx5Q0pvQS95eEZiWkIwQi9aL01UcWFhdHlnQlhYQVBGNkNWc3IwOWpETzlWVXVERSsycklLTGQ3MgorQlJhM1g3LzVSSHREREgreGVLaGpndTR6cmRRaUxHejNFcGxRT05wc2FRZDkyVTlsTmRSUGJOVW9KSENNR2dWUgorQXNKbmFuaXFQclR2NkkrQXFmYzRuVG9UVklNUjBHdDJBYU42TFdsaEpWcWJoRHR6RTVsZ3R6bFVNYVU1Qmp0dworVGlKeHlPWjVPM2VkNTI3RjJMUGV0U0dxTDJtSlNuUmdNSTM4T3NzWUFGQW82MzFZTVAwUUNTVEpnejdtNTRELword1JNelRnVStIVFEzd05jd1B2WTZvNmlid0F4MjA4YUJZQi9tMmthay9TQnZaVndBaytPTzJuaXpaZE9BTW0ybworMVcxcFNlaEk5bXlZNFhibHFzVzZMaDljTHZFWjNwOUQ5VEkwQkhKeTlQbzVmQ2pPM1RlNWU3R0MyeVdrekR1NAorWmd5M2o5elgySzgyamZHKzZGUHgrMkJSZmg2enloOUtTOW5DWUNmTG1kTXV3OXZjNCtWblJEQ1h6bzZKZlhMOAorSm1JYTdCYm5EZ0RoY05Hb09haFpTNDc0YkIvV0V4SEkrWS9FeW1Kak53SVQ4SStYUHRNeUxSV0NQOHR0RGdYUQorNXE4UjJ6ODZVYmlFSDR1SnBMOURlRlhwQmRFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9Ia1BsSWVvL2xKMVVJegorVEpUckJPWGMrRGxPTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFTL1QxdTFUTlpoa1JIRkxQUFZva3V2ZHJIYWJFQlNMQzduY2tRbWp2UjBOVAorSWZoYUQ5aUx6UGhoTnJwaWFtTEhFSUhGdXpWVkhUTWJvcXU3RmNPbGlzdjg1VC9JTlVFNnRuSXMwcnhYSitBbgorNlFFTEJNSWJvcy93QkVscUUrdDBkcWtTb2FvNjJVcTFEcmkrbDFsY05kNTdOOFhIYTlRTVpSQ1R4azBLK3k3dQorVFIyajJmaUNldzVwRmxzeXFaZ3JwdW4rSXY4RzJBZVZXZVk5KzdEanU4aEhrYUN6NVVOclpBMHQzVUpLaEF4YworOWNGdkdMa01Fa290dURPckpZcHhMNElQeTNZZU5uMlFQWTk1aEZmeTVIVmpFTkVzVmpjTjd2ZnZJOWdDZ05uQworaHJjd3pEc3BaL0FBNm1sWUlicjBtR2lhR3Y2SUcxUjF4VUc3QnNsYkNqMmwwMWdHQ2dYZGg3YnFHamN6RXV5WgorVndDQmh4bWROYUJFNFZ2UWQ1VVRZQm1PSUZaQVhXRTZRTDBaSjhKM3lRbzQvdEE3VmROb3hObXlvK2JETjcvbAorNFBsTkttWHhraU85dGhzK29ncU04dEMwNHB0Mzc2WjQ3RGhVVVNaT1g3eHZqSlFPaE9pbXFWMjk0dEpYa0xYZgorcFl6REFqOUNxRlJtTGJobG5NS253a0hBR0s5b01VeFRFWXpVN0Jvb01OYVdNUkRGWDZPaGxGaGlJQjdEMVFIRgorUGc1Nk9WbnJXaTdsSVdlRXI2L1JNdlhiWVB4YmN0OGdhZ2lsVlUxVjZONFR4S2h6d1I0S2hOMmd1NHhDRHJ4aworZ2UydEdEdlUwQjBnQW54b0lPT0JPdlVjRXczT21IVThTZ3ZocXNEWk5zdWtBb1YwZkFVOERLd2ZZQmFwdEJvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgREEyMDZFRjVEQTZDRjc5Q0FFOTNDNUU0NzJGRkU5NDgwMTcyQ0M4RQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFXZlgrcFlBeHNiUWlnQUFBQUFCWnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURneE1USXdNalV6TWxvWERUSTVNVEl6TVRJd01qVXpNbG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMUVRVEl3TmtWR05VUkJOa05HTnpsRFFVVTVNME0xUlRRM01rWkdSVGswT0RBeE56SkQKK1F6aEZNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXF4OEJrNmE0bEF5K1NXWDkKKzkzWGlRaEhqcW5Hdkx1dTkvUEdxcDNNRmo1VUZwUjBqcUlQNms5bGtUWnBJTi80WkNPTzkrZUd4MjlOakdYNXcKK2ZBQ2NkL2tTSVRHY1RhZURzVkZ6MkdRcXRyZUt3NFVxeGVpYWY5Yk1EUEhFd0NBOGpSYXNweFFyNkMwa0RZa0UKK2ZOcFk4ZVQycEtZc2Q3Y1JVWk5TUUJPZmtobEJkQjRPQjVUZlgyanFVb1BrUUY4Vm1yb3pwbi9hMmkwNGtZYVIKK3FUZklHUXFudldJcnRVZGgzbW1paTQ5NDd0NTlpTEsxSHZObVpQckx4RHQrQ3dldVF3RmpkQlBWb3ZQZXJNbFcKK1JERCtMU1ZSNkJTc2pNMTFTZFd1VGdrT3hsNDd2b3RWQjVNaE1MdXhtL3JFaXNaczJPayt6YkNnNjdZdUp1bTYKKzZ6cmVzUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVU5DbmhtZHZENDdRVXcySjVsSllUSGNnUkhOb3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBTmJpKysKK3BWVTdGRnBxS003QndBanJkcHpSb1NmU2JNWEtUQVo3ODRYRjZpOTVvVFFrOXhiMXJTK1N5UE16bXVUV1pJWnMKK2hUYnM2VmFBSEJtQXRzS0tuVXRoYXVHYlBYc2w0bGJ2Q3R3OVRGM1pNbVlPRzNiSGJXRzFXTm9oYmxHWG5CYTkKKzRLQ0lKYndTM3ZtODlFNmdLOUM2V2d5SjRPemZsYWlTV0dKQ3lpUjdwZjYrczl5bE9UdW42cEJaN3BVVldJZk4KK3hvdXpZdkJQcGJBUG9jMENQUWw1elBPZE5lR3VBSkJmQnl6SVhMOWZ1OElyUGZITGI0QzRUSTlvQmZWbnJjNloKK1lUTzBXRDVyZEloMmhjMFRhZ1BBMFcyT1FoTUxHNHUwNzJuUngwbFh5bExBMzJGQzQ5cGxSRFkyODRQSnNZeGoKK2F5TC9oZ3IxMCs1d2hrdzBGV2hiYVJGYVQ2aUMxMGIwcitKS0l0UCtldUQ4bEVveVlOSlV1Q0NGbGo5VG0venkKK21yN1g4R0tPSHFYY0R6dGtiOE9iajU4aVhCN2ZEVnpqUTVuOVFaMmE2aUsyek5KMHlOeXN3NmprVi9xdGJoWjMKK3hzRC9YL3laald1QU5uTy9ycnFoaFBWQnUvWkpYZlRWZmVHb3RCQ0pMMnQ4OVZ0WnQ1cSsrS0JJNG1mYnJCOUsKK0pLVUM3eUVwcjgwS2JsWEl0T3prUmttdlN4RzRBZUVud3dRSUFTZmZtblA5bTVjUWdFOVB1UmJCb3MvNDBCWmYKKzEyU0QxMlQ5VHJyM1FaeitxSjcwSmFZVStpUUxXVzNKSkhYb2JJUDRWMGRJcXEwK09aMGs5TGtnRkxFaUtPemcKK2dLcmVyeFhidWlGYTd3bGtYT1JJdWRHRHhoZlJyb2RlUVdNanl3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIERBMjA2RUY1REE2Q0Y3OUNBRTkzQzVFNDcyRkZFOTQ4MDE3MkNDOEUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXBhNDRzWmxpV0lPdmdBQUFBQUNsakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXpNVm9YRFRJMU1ETXlNVEl3TXpBek1Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxRVFUSXdOa1ZHTlVSQk5rTkdOemxEUVVVNU0wTTFSVFEzTWtaR1JUazBPREF4TnpKRAorUXpoRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbzdndURocmZNSFZFMHJQegorR25vM0NmVy9Majl1NmIvYk5mbFdYVnVtUVgzMTlzTlFXMU14YnI5aysyTllRSHcyRDhaK1N1NC9iNFFRRiswOQorOHZXQlBhUFY4K21KeDlzT2xoZkVmK1R3d3cySjI3a3VJdTV0V1libkhnc2FFaGZmUVM4ZUN2NjA0N3I1WUtUUAorTXlGRTA5ODlnaVJyeTF4ZjN5SGUwSG9VR0tCcVBNYTc0M3BkaFJxblhlTUo3Q0xEQlZ5NTd1K0xUOVFhQnZkUworTjdmSlJrK2lGQmMzNDh5dkVsYWU5UkIxT2hEbEhFUnJQaVNyM1Uwb0NVd3BQQlEzVVVTQ1k1eHVqZ0kzNjJOVQorTW9ISk5Hc1JsMGN2UmMxYnhCYjU0V0o5QlpuR2cwZWFScTRVU1V0L3lWZURRbHhJa2pHQ0MrcEZJMUh5SXFHTgorR0lFUEhmanRvTUdDMC9ZMm1IdUs3ZGJOQ2lxRUFMdzE1MmY5Qm96a28zekQwOWVRUkVGb1huamdRY0d2alJJdAorakM0VWVVUVlxcnhHck12ejZzeDRETnUxaXlsSVoyNUx0Z0dmaU9uTVRPQ0hFWVdXcUVwMk5BUXVUTWVwcE51RgorWnJFWGpweU9IY1VhV0h2NVdLYmdnYXhmMjBKTHJJbWlwVFc4MTg3MnpWWEhvdUV3WkJQeE9LUlhoVG5ZNDdDegoraWJpYU9ZcnZDb09ZZmZvekxBbVdraksxc3JFY3Arblc5am1EUVI0UmlRTzM3elc0clR3SmxwVHEvSitjdjdicworMXdjWjVJRVgwZFZyOTJPNzlvR2xzNnpoU2dhekZYZWI5SmFHUHdsRUx1VGxLTWVrL0xsZUJhcEsvRnlRK01wZAorNWMxYWpucXVMQVVsVHNzcFBsWEc5bUVTNFNVQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRvTVdXRk1MSWVHczh4SgorbkVnbWRXN2lRYlFmTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFlOEllU1lYRjFwZHlaOE5yQ1RqTzZXdnhoeUJoWTQxbG1ESkJCLy9vRERxSworeVNjNG9qbUdkeG9YQTNPOHZrRWx2MWhGUUxpSkVoWjI0SFFoWG5yVHZhWk1vN1BhOFpRVGNsT2szclNRVXU4ZworNmY3MG5LMDNGSjlxSU9QVFpkSzBlai8xQ1g1VEFSeEwyTlZxUHhLRUJYREYyNGMrSk11QlY0L3Zob0NTRmdmNworSzRpOG9IMjZmQzVEcERWT25yU1gzQzN0TW02VHZWL1RNVFJjaFp2V01rWXlhSEVqVWdRdmNsKytNajE3NTkrTAordjFORVlCNXNocWZ4WjZQMFpETm1YczVUWDBnYisxVHNWemNnYzdEMlNvTXAwUnRnNm9LcGRGYTRzRy8wMXBqYQorZHR5bHJ2d2phUGFxeUV5OUdKN2Z6ZklBc2krVmlaTUg2bk9senNadjdRUVBtMFYvQWNOTHdpeUZFd1g3SDlmcgorL21NRlp6V1ZJYTJaM2xYMVd5eFRHRVdNQlU1TmJWSkU3N3BpVks3ekJQa2lHKzRKNnN0K0M4SkhwVGVLZDdKegorUEdtdTNlWUlycEUxaHhUN2JORVBZdHhrY0VTcG54NE9mcFh3Q0U4SUYyNmoxSHhwejhHZzNFREdRQ3c3QWZzUAorUEVwSWw1QkRRNzhnUkQ5RFM0L1dET1QvZkFRMVF1VnFGWGpBbXU1MFhhMEtHcjRXMWdJMDhFZTROSjcyWXNVdQorYVFqUC85eUFoNVdvRkNJak1JTU1SQzV2akV2NXdsVERwVjNUME9vMUhmSVNJcW0raUdjcEI4TXVhSUZibjFjUgorTzA3ZDJ3MzJucGJUY3gzdEp2QlNNbE95YjBaSlVESXF5U0ZTcmFrZCs0SWpNZ1FWNWM1V3lSRjNEQnhqL2gwPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgREY1RDZEQUI1MTAyREYxOEExRjc3MTEzRjQ5ODNDNjJDQkFGNzM4NSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZUFiYVRLTDNDVnhEQUFBQUFBQjREQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBeE9Wb1hEVEkxTURJd05qSXhNekF4T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFFUmpWRU5rUkJRalV4TURKRVJqRTRRVEZHTnpjeE1UTkdORGs0TTBNMk1rTkNRVVkzCitNemcxTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFxSU5zRXJqTkd1VTNqZHBoCitpNFpzNGdwc283Yit1eGlwZHhqNGkxcCt0ZktKYWZNdUI2M3FpbjhhdnlDejBMeEVHM1ZtZ3l6bXIrSmZ4Rm83CitaVzd6aTNMbGNKcFpXQ1dub0V1bU1tbldtckordUE2b0VoeHRadHI4VW9HaHNkMHAzcUxSamN4YmZML0VhSEZhCitNRFhHZEZ1bXJFVGw4QWdWVmRZdENVSjN0eFJrY1lxNUdLc3MwdlVKdXpoYWV2UWd0STZPVWQ5ekMycmE4S0FjCitRVUwrM2tLc1FPc0hGdFpzeTloQ0ttN0lMR1ZvQk94c29KQ1hOcXlORVl4NURubk4rdXZPR2VTWFRYNi9jY3hiCitQT0NXNVNUZjExdUM5SmFxRFdGaHdoWU4wZjBJbHYzN0pFQy9Ia3Q0eUNINlRwUzEyR1VsTHVYZDUxeUcybzA1Cit6Yi9KdkgycWtMQ3grUXpaZ2hSa3ZRYkNVa0RSVVhXc1Y1anRLcCtkSUhqSXR5dGw5Y3oxUzByK0l0UzFTcG54Cit3T2tIczZSQ0F1WDBWdkV1UlhQempHNitCOExweW0rZEkrZk8xNUJhTUFYWnZ5MFhnZmp0eE43VzB4MDU1TmYzCit1UzVPSjBPd0NXVHR4WWhUd0lpcFZIbC9JOWRaRStPU1B6d0h2QlFTemo1dGE2UTU4TkJQUjVUMDQxYU5meFIwCitMWWlGSFNmTStRWWlURU9ncXg5bDEyZFpMYlkrSlgydzVHWEM0NzlTSGpna3QvQ0ZaNlhRQ3VjTzRTd3B4ektKCittMHN3QTdGM2tCbkxvWFpoeStoMjBLbXMvT2JHKzlxOFlzeE1TS1IybSt4SzdWejRXTXQ4U0RpS1RIV1N1OUVlCit5cjczRTJhUlErbWdVcGlQTm5xV0UxNXpnSmNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTDlOc1c2bnRpTHo2OWJOCit2RVYzWk80RjBpSENNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVMreFExYnhKaEhVdmxZRldnemNrbjQxbXZaZ0VJZFUzUW9tWkE2SytsWTFtCitDUlBaTDA1QktuQWRLZlk5YTk1bThtWE5jU3QxbGRaN3pZMHg5eWE2M1djTXBlaDdCc0Y4ZXZEcktXQWVLSk94Cis5ME9SaGpJMElpSFZ1SHZ5TXk4MVpwdEN3WHJpSXEwSG93a3lUd3FjMHdmVDNHZjBpU3ZkdmFsOVhjOC81aU9sCiszWkVHL1Brb2pXc2JvR2t4QmdsVmk1Z1NQK2MzUWFsYmFjc1dPNzRNTmREOEF1ZTVJK05GN2VwcE9aTy9RY2VnCit0RlNsY1hHcHZmSFBZZFJPdytVTGt4SFFYNVAyem1LUkd4QjVVazU1YzNFaTBoL2F2MmNmQUN3bnkxUmp0eGFhCit6WGJBS0RrbWN6b3pWOVg3V1pyY3JrWkZKSW5NYWdEbHJJU3YySmY5QnBhYjlDTmRsTkNkK2FTK0JXVy92VUJ5CitobUVKUDZ1ZjZaR2lJMksyWHJRWCtvU1JUMDVxUUJZQkp0VXpiOUpVR2loM2lmNkNoNmNJZi9BdmRyK240U1JYCitJWWNzNUFsRVVrYmVQUTRyTEJNWjRjWjR3VW44TXBJaXRiMEhneHhUQTJIUy9wNFVSLzVIUVFndUQzUW1aa3VXCitlemhTdDVROWlNdXc3YWY0Q3dLdThmVEx6S1hWTXJkNFFqK2xxM291SElLZWdLamVQbGxDbW9wbkRBQzZ2L3ZDCit3R0dTVHI4N0h2UHlWcm5JZTN6VlBQT3Rka3RjMCtOSjlqY0tneTVuSi9rZG9KSFRyZEh6ZjBtdHB1Kzk4WDkrCitUQ0VDUm9WTUc4UitDU3JDTmVsbFRRU0hJU3Q2N0Z2OWtBbUNCNmt2b0VTS1NCWlVWRG51N2ZzcWpGTmd4TW89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCBFOTA2MTc5N0U4RTVFOEM2OEY5MzVFRTVFOTc2QkM4RkExN0Q3NTIzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVRqUHl2TWpKbjMrclFBQUFBQUJPREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXhNMW9YRFRJNU1USXpNVEU0TWpReE0xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxRk9UQTJNVGM1TjBVNFJUVkZPRU0yT0VZNU16VkZSVFZGT1RjMlFrTTRSa0V4TjBRMworTlRJek1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdlJqWDdpcDQxeVZ1UTQ5MgorTUNZdmJvamRvUnV5SmRnckFKNTNTZmhZU2t2Tm01VnNmMHNZa1lWb29md3NVVFVwNkpHcjZkNndmSXpFanJBagorazRyZDFMQ3g4eFlZaEV6NnAyb25pWDF3ZjVoT3FOeVdJaThXS2V3cVJ1Zy9OY2ZldldJNy84a3JMUDJLRFpxWQorc3d1RlZJNkZFcW5PNEVJSWJjRitSVzhsSENYQlUrWTFFQll2bDA1M0ZVK3NMSkQ4YktYMmJOVlNteVRWUEg2eQoraXJLRnJldlY2WHdrRHNGd0ZGaFZ1NEozV0lENnRYZEtFSEFhNENLK1JXbkVySzY0L0F2RHNvSmt4U1hqVEtxTgorbWl4QmtEOU93S0syQU9zRmxLajZRWTZLa3Z5UTJaV3VuL1YvbU44SEdiUTRnNDFUNmxZT0ozUGlPWEoraTVZVQorbm8ySTVRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVeDFDRVlrbDVvUXNaYjFQR0t6U3Z3WWRmUXRnd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJPUUJrcgorU2FxcEpSdXZzVWY0RU9EdklFY2s1MnJ1blBtRkM5MzA0LzJvQXZZekwrNXRud0pJZU1vZnZGU0V2ZEtnU29xeAorQmhvMnk4R3crb09id3hLV29PT2oyY2hzNEFLVnpaQzM5ditDS2tseThCSVhGalJLZytoSHVrZlA1MGNkeG5GNQorbEovcTU1UzhnSTlSdlB0QmNMbDNUOXZIMmlGS2ZoanNqUDhKSmxlcno3eThQN3o1dndrb3lUUkF4V1R6dnBPagorSjAwYVJVQzI0c3R6ZlBjYXNjekFVQ3dIWGxMLzNzYkRMMmNILzk3bWk2WUVyUDhjNms0dE92K1hEQjF5V0J2TgorVEdEZWw2bFFwb3l4dEVHOGhXeGh5ZEZmTWJVQVVPOGZ5UVVMdThqTml4WStXNXIyUkZoY2FGUTBUUUF1RnJkOAorVUNhVlVXRit6MjZmcUtFY05BTUw2UWNwOEwzbFA3d3MrM01RZmU3TktacE1yQ0plQ095cithb0R4dmV2dXR5bQorcnBZTnA1WGRlbEtqYlJyNEkrMFJ6S2Zoa0JqUWJkY2tTVGJpaXRTOVZVN3F2MG9oM1BOdzF5em5YL0ZGSTgvSAoraG4reERnMkpPQ25SWG5TSkpMeGNsMDlGaXUvNTJyakdTTEdVaFdQWXB4UVpXUEM0TE5FV0RWd21laW1ma0VEKworZlpkN1kwQ1JSWjhjaC95RkdWMmZNSWFYRWJFdUNNMlBRbUhSZkY3SFdMNVJJVmZwOXRYdkJxZjZMaUc3Y3ZqLwordHpodzlMTi84eTY2N0xzWW9RVW9tZGlpZzRaOFBIWEV5cUNlczdicC96M1V1b0M1cmpJZmVGbGVlMGhsK1RCaAorbXlLejhUKzlDZmJVN0E2azQydVdlNHpudHJkRjI3NnJNUGswNEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgRUMzRjhENENDMTJBQkU4OEEwMTkwNjRFOEE2MkI3MDE4RkEyRTM1OSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcmxGbS9MQ2l5TVFWd0FBQUFBQ3VUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXdPREUzTlRjME5sb1hEVEkxTURVd09ERTNOVGMwTmxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFGUXpOR09FUTBRME14TWtGQ1JUZzRRVEF4T1RBMk5FVTRRVFl5UWpjd01UaEdRVEpGCitNelU1TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE3TkNPSmpNVTl0NjdJQjRCCitaYXpiR0szdmFKK256RGZxT0l3NlZiT0ptOFpaVjZOUE90WlpwZ3diUEQ2YVVjYmd1bTVNbldOb0NSRUk0dklLCitmbSthU2Ryb096U201a09LOFQxUlYrajZ3a3MzRzhoTi9nUDBSVFdKeTAva2xLc0pUbG1VWkRyTnpRVHA3b1dlCitYMEVFSG0xdTQxZyt1SGRlVlp3WlJ3RzNYYk15NDA3c0ZiR2swV084d0dVVENCdEJWSmJ2dDI2Z1ZPUkIrUnkrCitiRjZPSEw5L1JZK0RsdEwyd051Ykl1d2dVcmt1QldPWktuRnZkcncrT1k1K2I3SC9DMkppVzVWREVqbGpvVTE5Citwdk5XOUlPMzk2UmRLaEZJRGZiRE9sb1NxNWtmZUl3bGprZE9aOXQrL0Uxd0ZuS3RFWEo5M044NW5OUnFNVENHCisyVEUxVzltcy9lV2NORC9NUmhXRWlieWlGREx3ZGRZMmg1RGZVRi8vRHdMSEVmYXpxeUJGT2hVdkRvamg5N0YxCitncUliTlpZWmFobTA5L3BYSkh5NWhhdjAwLy9kSUVacTE4NGhGaGhRaUVqV2VmMnl0TXZ5NXJOWFRHZUlONkU0Cis3bjR0STBCK3JMOWNscUtydFVGUUp0RzJkNDNMSXRKSTZkNDBYQVBWREhpbXZkQkxSL2xINHoxTG92eTk3alYwCisrcGx3cFdZYWxZYVc4RDVYUjJscDVvcEt2ZkpBVzdGeWxPZE5hcDhKTjZ6TWZLSmtIWXA4Tm9mT2R4Z3NwZXROCit6ejcrTEFUZU9SSlFhU1phSU5mWFRkcENlb1EyOUcxeEMxVWVpeldOTEJZYXJPNUE1aUFZWEJQcUg0ZTFnY1ZQCitwdUM0WHhQc3V1MHlHWHVhZ2E4TUxHWEhNVGtDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQlIvanI3dkZ4d1ZNckpTCit5N3FtN1FZQ0FIWVBNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWtHdXdmOXNiZTEySnVoT0x2VWJqRDFVMDdMNlZkaks5M0h5V1hLNHh5bmtvCitCbUFZdGhUVy80U016Ri8zV1ZOSlJLV1I0ZUFCLzlIRnp6WitTYUdvMzJmQXV6V2h0cmVKRk9OTitLOGVHTVV2Cis4L01yeVBsVVNwcFo3dzB1UmM0dklpNEptREtnWXJrcHhSdk4rRnJQTlpzbDVJbDBhdkUxTWNNL0F5MjVZOEphCitrK0xtRFhDeHBJS1BCUFk1U09NUFBrUFdQYml3WnZOYURIdlFOOS8yQy9ONnVZSFUxcjVnUnV1OXovbmRLYlltCitYODZ5bWd6MEFPQVRxRU1mVG5GQTBKWXEzbFFwbTJKS0xiUVZ3cTJmN2Q4QTY5VFJRdWdLd3BCZ1Q4TUV3UCt6Cis4MkNwMERVSmtOSnY2WHphckQ2MmZjQ0tFY3N6WXhlL3Z4T3BlS29HNXhzMWUrenowL0N4OUJLeVZsU01vUlpwCitCRXFJTkFSYzRmdExERGdkcVRSeTBES2l5bzVJN1luZzVPN3RPemgxaXg2emdPSDErRnRSc3o2eUlEVzVKQ0N0CisvUGFwM2tkNnhEVWdmaTRySkwxL1lwU2VWRUVSUFVKZWc0TGdXS2JtUWJyRGErVkNCTk5RYi9PbW01ZE9Xa3ZlCitxVEM3NEhIdzF5enpNcGlFVzQ5eDVrdEFEWTM1cDd0UUtDN2hNbTh2SWxBYjAxSlBGcHdBUHU3ak56aEJRenRvCitSaTU1RTMwMENJcDBKTHpQNWlvaUZZQjRoMkpZTXFNREw2V3pYVEdCSjdWbDBLMkNyZENnQUpWd3pLNlczSkJOCitYTWI4ZjhidWtOR0F5VWdjNE1XWmFEZ1lzZHpFNmpMTlFLdW9lM3VYbFNZNjZnQ0t2V0hPU0llQmFhNzJFeDA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLRVlJRCBFRkZFRUM1RTAxNjEwMDgyQzBFMzExQ0JEMDdBMzIwNDQwOEIzMkI4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFwZkYvSHBPYS96Vm5BQUFBQUFDbHpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF6TVZvWERUSTFNRE15TVRJd016QXpNVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMUZSa1pGUlVNMVJUQXhOakV3TURneVF6QkZNekV4UTBKRU1EZEJNekl3TkRRd09FSXoKK01rSTRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQStVTFdlTDkzTnVsR3luc2gKK2xsOU5nRmdERWs3Y2xJTERENVFGaitVNnFyYklQT245UzNiOE1nU1AwcnJOcDRrV2tDTTloZEc1dDVrWHpQZ0MKK29jcEhZdS9laEg2Nnhzb3hHSHdRaW9zUE51NmdwRzJmbkhJY1lLc1FPWkthZVJ3R1VFVUdQa21kbUlPYXlvTTUKK2ZPSzNKVWtFdGFMOW94WGtDWTVxeHN4L1VSTkVnSjRDVXVTdS82bjlCRGE1ZC9IZldCK0k5L1ZEUy83TUFTd3AKKzZnLzcrY0cvNVRTOWltK2x2QnVHNk5UeVhJczgvcmRCS2sxUmw1N2pwMU1wVVdxaGFnMkx6N2J3VDFzanJVTGIKK2lCSVdwNWpPUEZ2TFUvblhBUUlYeUVaYXUwUzlMdXdVWG9xUkZ6NFA0RHdoM0t6ZENackd2TWF1VVVObUdRTWcKKyt1M053cy9yQUlTU242YVUvMDdIUTlvbFQvdmpFWDBJQmRHTlo4cjM4MlZBNTJybklyQU16ZXJMRjYwenRmMVQKK253dTB0bEw2RGN5OC9OSmUzaW9pOU4vUjZ6Uklhc0NVSEpRV3BqMzhVU3l0Y0FneUl2RzJRZEgxMU1wYys3TVcKKytOakwzTEpUdmdZUjZNR09pU0pTczhtdWhtMzJJK1lQK3RuWUlLU3JRR1VlQVBWSitabGw0dGFaUkJNbHFEaWYKK2loWXJVazhwRldLMDkzdnNJTmgwNDg3MTUxNUh3dVo4ek9kakF6MTB1eUhwN3pSd08wbXhyc082ak1KTDJYSVQKK1pkd3o1aWI2cGlRSGpjcDJNS20zZzJKZmJ2eEsxV2o5Z1dsQWZ4ODNibTlPMmRvd0pzejc4Y1Z4SWRxaGxXaGMKK25GZUVocXB3cWtBOXpOVlo2ckg4cWFPcit4OENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLSXpzYVhjaUF1Q24wTlIKK3JKMncrNFJ0R09mWE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBYTRIay9QSHJCaXU3bktHTmFTMDcvMHl1SlY4SFdNd2lLeUZuU0ZhYXlHZzgKK1AyTEZSc1Z5T2R1UWx6TUZUdmN4WS8wUVAyVzh2WDhJWGRBNGR0NWY1eVBFaUQ3dGpqRXZGQXZHRWE1Q1RaRE0KKzZVL2pybVg4a0R2R2RNSExIU214b09SWEFQR1NJVEdHdW5SWmN6SWt5SkFQSHFsS0d5TmtqOHB3WlZoMmJLZU0KK1BzQU5IK09hOFdBTCtZS3EwRDhxYnozUHZ1TUlJQTFVK3ZiL1Uzbnl1eEdVelM0akNHazNGZjhOSkhCdGszNzcKK1V1bFdaVzFEUVhtVm51ajVYZFhiaytnb1R4VDJBUE9ybVhHRkx1bXFsbXhzQXBNMFhwcnlJZGhxYnBqZmZtRnYKK0NGalk2MFJGZ2dXdXRjeUhOaDNqWmpOMWdZVWNLYndidnk2dGNkSk4wU2dFVWhPM0RpOTJOZ081UCtoZjN2N3kKK0lvZ0JWYm0wMklVS2JiVFdTTHZrWCtvbXdVTVRrblZGQ2paY0R6cFNaazVSSE5rK1lRZnVhdk1wak1IYlNlcXIKK3F2YXdua1NOU1JialFLOHdxYUlvS3NHVVVncjJWRkxyUUtZRHVVQmJaT0VxcGV4bC9MOHAvQWR6Z3ZMakF2NngKK29oVkhvdi95cFZEUnNNN2pjclc0eDlBVlhxMDE0WmVReXBNZlpkU2NuMmZaUmZ4cnQ2d09OTjI3d21XQWJDZ3MKK1Jya1VFRHpHSnNVRTZEaXJVTFF2cExzcDJHeWoweGlWVzNmSDExcTNNQ3dRTzQ2ZE5lTTNZK0ZDQ0hIems4dVgKK25DcWlzTXJvL3RqKytPS0JPeitEcFZ6OHE3YnJCOVJkVkY4UUZ4TjJkd04wbU5GM1dRL3NSRGpnanZsSUVvaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtFWUlEIEY1M0U0RjQ3NUUwRDNDNkUyQjNFNTZFM0FFOEFCQjk1MzEyMjYxN0YgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWRYSDlTUVhtd29KTEFBQUFBQUIxVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREV6TURFNU1Ea3lObG9YRFRJMU1ERXpNREU1TURreU5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxR05UTkZORVkwTnpWRk1FUXpRelpGTWtJelJUVTJSVE5CUlRoQlFrSTVOVE14TWpJMgorTVRkR01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdFZCOC9wZlRMZ3Z3Mm5mMAorSmxBNmh1RGZKR0hid1lYUEhWbG52SWFNOGtML3U5VTdnaDdISnkrdW5SQndXa1llMk9wQU0wWVZTN014S3NYNworWkIvSXdZc25lc1gxM1lKM1pOZTR6dUZZWElnWmxHYnpJVEpERTJ2RVFlZkhPRXpvV1FRQ0MzUzlZM0QyOE1yMgorNmx2VzNWSU9JbU5jZDNqSk0wV09wdU5TaHpIcEJ5dTJMeWQ0aTBNWDdQMTloL1VnRW1nUEhwM0JqWDRyQkFkQQorcDkyZTl5eDVHZ2NneFlydGZjMmJ0TnhFbHNpUEFjNEdCR2d3TG5uREhnYzJuY2ZQN2N2azVMOG5wNExPL1NvUQorcU04T1pmZnpOd2trWUdQVnVNdFFFSXhiVGtZMUlTTi9NZmJqNWY3NkZWb3labW56Z3RVZmNOR1VXSzBvN1IycworbGk2Uzh4TTBIRFBsdmVKWWNpdzBXQWZ6NVJNR3BISWJUeHdwNHh0QVZTYlJlbDlOSVI5UGNBVzVTRnNKSm5mTQorcUFSRUxJbGpTeEEvZ25heFVDYmFXK2t6TGdUeFlpc1hyQnVaVEVxU3JYd2RRM296L1FOMDA1REIzY1NIMmc4YQorcnNvQTg3SWtGZXZScXhnRW1MUjhwdzJ1SWh6ZjRBZzhxRXRIaFYxZC9mUWpTV0dIRXJkMmlJQjZrRGVvL0RPWgorMm5Ea1Y0ejJReitlSUoyVk01Z0lyOS9JSThGMDdwWko4Um9nY3lnVzdNL3BrN0JCblB4c2FDWm43MjNwSVdSWAorY3F2S2tlcUJhVHhMYmNWaGlSaVA0UDBMWmU5WFVTbTYweHpWSzZxVlBybVVXcTRheG1Hd2hqZGZ4SWllU2pDdworOXFuRVZjSXc4RnlLa0xEOGRnYmluN2IyazI4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9sMkhwTXpLSGY4bWwwZAorNTZMcWoxZHFNUWxETUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFVcEQvejFiRkh2eTZsa3ZGei80bU90Nk5Uc2hmT1pBTGhJSTUzWTY5dSs4ZworN29qbUp4UERjUTlMbjhxRFhTYjRGZHVNMEhCVjNoQS9zM2JWTWVHMU5FTWt2Nk52K0h2ek5qS3lzcUl4cFE4bQord1JpNXZHVlBSZkxsQlRJUUp2aG1VNGtmOUtMcDZGUk50UzJKNmN1MzhYc3Z3dkZYOU9QREJoRDhsQzI3bDBsNworWE5HWkpQS21EVzZLeUtIbjh6L2Z4K1Byd3hTeDM5VWowYXdRMHROY1YwRkMvZklZNEUrekdsLzN6d3FYUWhWWgorVmMvNVhPOXN0Vk9XbnlNYmFRRkd6LzkzOXF6Q0JZVlN4MUhnS3dsR3hCVXUxeHpiM2FwQ2drcWtPZXU1dzJuRworaWh3R2w1NHFLcThiUjkrRW9WZzg4U2ZqbFZ5dVEybkVJVjFrWWZXQXRBdzlpZVpkNDlEYlNHd3MwSHp4MVFhaAordm1yMGhLdlBZTkQ0ZzY1c2ZYakJMWU55cDJ1VHpENGh2SmF4R2ZtbVhxZVViRllENU9ScVlxVEl4YUpjYlVMMgorV3dFd1c0RVNyVHdSd2FEaXFsSnFIL0Q4YUJyT3hQQ1U2Z3BlV0lhYWhVeDlvdThUeVVybEsrTlVEcTFrcjVZQQorR2pGbHhrbWoyd2pXRHkyMndWbVJIRjlyaUVhWjVxY0g1bVNWbVJiSDFPbUpKaVhVc0hveGNQcGd5eUJTZFVINgorQndpQ3I0SUNwZU94TXUvWGwvdnAyZ3g0emh2cGk1TWNrWVVEZktVOGdxd3pLYTV3QUdRc0NmeTRaMjFPZ0dzWQorcVZhZ1QwMWhHZ0E2dm04RVBZaDRXRmFUL0lMTUd4TDRtc0JlMUJ5T3BZNXhYbWIrTEVmZWQyZlJQWHlDZ1BFPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS0VZSUQgRjY1QzI4OUIzRDkzQjc4Rjk3OEFDOEQwMTdCNzk0N0RBOTM2MzdBNSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcGdmRGFVN3pZbmFCZ0FBQUFBQ21EQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBek1sb1hEVEkxTURNeU1USXdNekF6TWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFHTmpWRE1qZzVRak5FT1ROQ056aEdPVGM0UVVNNFJEQXhOMEkzT1RRM1JFRTVNell6CitOMEUxTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF4VTU3citIazJKMG1hNHduCiszS0ZTOVFtdm0vaWZDUWFNQ0xtcktsZGJhZzlpUGpiRHlibG1uWWc1MjdJZ2FiaWx5RWZuUGdwM1hWRWhZdjNaCisxTVhkRForaCtSWUZUdjFxQmF5Ry9BeDBkSW1SOEVEQ2NKcjdZYW5Td3AyaEgxRlZ4ZjVHTVlTeERBa3hlNE1DCitiZjVsT1NIdUIxWk5vV1Z1ZFlrNmpFZWR6K0ZYaEsxNWNYRlpyd2dCZnA0enBaNUNPNzVkYmZQN1RURDVGWktZCit5eTBzWnBRR3BVNkZ2MUJGN3ZrOVNDTEhLRHdWcFd0czZoSGIrTDVhSVdWSml3SDYyRklPNkdvUFBSWVVmTUxBCit0ZUdtY0prR05qMlc3U1hRVS9aU2JxdkkwS1dWQ3VWZE1mRFlwWFlXRDg5UjduQWFPdGZkY2JxdS9yMVlmZ1pHCitMdGNIeWw3NU1WMitPb2pvdno5UnV1QXdXSjNFRkd4bU9QeUZNUmQyTnNsaGp4N2ZkVEl2ZEtqWGN6T3IzdXBXCitnZjdRMDVXUm5WSzFtL1Fzanl5YUVxR2k2SlFqUGkyT25FTXg3Q1Rqb2JFZjZsYTVWbHp0aTEzVjNBWDFaUytxCithV040alA2ZzllRUQvYjAzaS9HN29aWDNDYkV3Ni8zSkJycGlBZjdwd0E2VFQyUXBMcUxYbGJhOWdoa0Y1Slh5CitYVUJYb25SK1Ura2RrVEl1OW1uL3EySjdDQTd4OGZzRGY4MEFkKzFZV0JxNTdWMHdhR0YvbHdzOC9jdjVpRDVFCityeFJ5NzZHM2h0Z2F6dGtyQTd0SWhGYVZ2Z25rLzZEcUhZdlBlNUFpMExXYXdvc05PK0V2OGFrMnZZVTZaTktRCitJeTJTVDdESEF0SlpKc1hUenV1aitwSnNZM01DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSXRLdTJBSkZWWGd4cXUrCitFekhhKzd4ZEI2aXJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUtzTzE5SkoraTVGNVp5VUE3OEtPR2t4M3FEbFlSdzVPa1lYVU1Vb094dG1aCitaZTZOSnVUVmk3OGVNcVBEazY5enpwTzg0cVhWL1pxQWJ6Qlh6dk1YczJzdWNxMWRiSFhRTFd3ejdlQTVlQm9hCitkNEhsRnNTZlZuVDlWZ01wL1c4WW5kV0RoTnZycHR1R25UY0lvZXQ1QytSekFwQkJqWWVvemhqU3MvSXMrQWVsCit1RG5MS1Z5S2tMTVJwcmNCY2thNy83cG1qelRwV0FrVktxTG5aRVJFby9TZlp6TUxwVEtsRnptVjFtY1Z2SG9YCitnNHF2Vkh3ZitXdnRKRHh5Ynh1OW5FTHlpQVpGcm1qZ1JCcXQzd2VnYmMwTm83Y0dPYm1YdWRMNWxnZ2lIeUNmCitMTklCcTBIU2xpL0dnL2lSTGpZNEJWZlZtNER2MWNWRXBSNnVHVmVoNDF4blRINXNHUkVYWVBqZnVLc0tSSE56CitqdVVtb3hDZS9kYm5GT2dnSFF3YXRuYmRvaVZXeHlkSVFwZXowWGg2UWk1ckY1YWozRUpTcE9OZDkzbERNVTVrCitUNkFkS1dlUG5NZFk4aWVHaE1EbnlQcVJCb3cvTmU5cDFWb2RuUlZtcWM2ZE9WMTUyWU1rQVg1cGVsdlN4R2VUCis2YVlpcVdmTy9DV3FEMnp3Nk4xWmcvcUZXRS9ZTnVKSC92WnlBeHhsZFljVDRNMXhJcU1pNUtDM21VV05HNllhCitoUWN1amhEN0Q3aXhrTitGbE4vVjFsbWRkQmhvcno4Z0xOOW9wOG9HUWVmNktXVTBSN3o1ODNrZE1nb1pIOUhWCisvT3lYem1zYVVEbWE2eUlaWDB0TGxsQ1JncG1KNUpzbUNWMXJKZlYxWklXRjVoMkM0ek1TV2hHSFBHRXlCZjg9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCAyNTgzQ0FERTM2OEY2OUM4MEY1OEQzNEE0OEIyREU2NTNERkVBRjk4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUJEaEVzbkpMR0gzWndBQUFBQUFFREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EZ3pNbG9YRFRJNU1USXhPVEU0TkRnek1sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxaWGxKWkMweU5UZ3pRMEZFUlRNMk9FWTJPVU00TUVZMU9FUXpORUUwT0VJeVJFVTJOVE5FUmtWQgorUmprNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBekVmTEYzRFUvS1laYTlNTworTnJVbnRGZGl4WEdKdWN6M0EyMUxOR1BkZDJ2dlB6bzlFU0p1U0dDdlhPai83TWY5L01BcHY5OWNwTzVkT29LWAorM3BPL1BkREY2QzdjL1hId05KWmRacERrcU0zWGg1UXphSjRWVXUwZ0ZjY0tvcWdJcXJKN2NQbGs0V3krUE1TQQorMDExbG5TcEZHbkFnLys3TlVHYzE3T0VLL2N4VFJHSkdjRWVXNGdLd3RWNWxxSXE3b1NoYkhFa1h2bVA0cW1DZAorY1pSaENTcHFERGY4dU5tZmZrU3l4NkRBaUhoSWFZNmtqYVBCY0xCS0ZBZlR4TFh4RDByR0I0MVZqemY4dlpTVgorOTIzc3AwVlB6YXZTWUs0eDhzOWg1RXM4dkFld0w4VU5FQTAyYkNFaTc4ZFllVHU3YWZUVENtQ3pNMlhIYjN3OQorNVBCaEl3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVcnAzK0l3dlY3Q0tpcVpHbGVNeVdyWDZ5Z1RNd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUE3bmxlWAorZzgwY0JWWG1LVjVzUWlVOGlhSUduc2ZWWkFSSnROc00yWlVMYXB1OFZxWDdIaFRJeXM1eXV0QVdxR1pNRGdkQQorL0h0elRsVTVxTFRjYkdvcld5TUFRTGg5K3R4V2ZPVDM3dGVpR2lYdFNIWTV4Kzd0ZDRDVWM4NzFFaS9UL3MxMworRkpqV0NDVG5UczdZZUtkWHl5Y0RqUVNTVmg3MUQ1MUljY05GOElzSm41VGI3d2dVR0gwRHlrdkIxTTR4ZDFXKworV3Q1eXdxNmF0QWN3YjV3U2RBWHR3Z0JmeEh2UitLT0U4enZiN0x4Y0tPNzl3MTBUeUZEdHdUNUlpS3IweTZVYQorVWVqeElXTlNDWXFqWWh3cSswbzJkOXozTnRaLzJBc3FzVWtwdTZkcWRCa1VCb1l5VFgxOWIzWk5KdkFpMmxVLworTHR4K2MxTFJtSHp6bFJmQlAyQkNNNHAvdHV6UE1xOEcvQklFT09NdVhsZUgzR1FPK3NlN2ROaVJmZ1FmSHlFYgordlFjalNFM1RQNkpmZjNNL0xsdjB5ZjFaV3grU3l2amJncS8vZXpSNUYwTXdZOWo2WU1nRDY1QS9Heks1WTk2dgorc3BrRnpteTlNNGQ0RVRFV0pKNEpPK2R6VVoyWStWR0Y2YUxDM0VRT3RnKzdQUHBhYjE4bFRUaFhid1VabklNUQorTUUzb2xRQXkrZlRtblNkMEsvU2tvQTFBa1Q0VEo5T1F4VXJ3ZDY2WVYwZjJ4ZFZUcm9RSkFkRW13Y1dNVzhLSgorTCtJNTdYd01lcnZiaEkyZzU4cXAyUlViNFBYQzdZdXk4THYwazBSZTdmWUNLL01IZklTZ0NjUnhOazlQUk16WQorS3lUUkxUbzdqaTJFMnM2RG1hYThubVpacU9EcWF3TFp0ZGpWeGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgMjU4M0NBREUzNjhGNjlDODBGNThEMzRBNDhCMkRFNjUzREZFQUY5OCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZ21BOThwUGZ3OGIxd0FBQUFBQ0NUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNd05sb1hEVEkxTURJeE5ESXhORE13Tmxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB5TlRnelEwRkVSVE0yT0VZMk9VTTRNRVkxT0VRek5FRTBPRUl5UkVVMk5UTkVSa1ZCCitSams0TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF2amsxZG1MYWRyQXhaRFlFCitxN21JVjErOWU1aWZqR2VJYzFERWFlOUZWSFo2eHdabXFMVWpaY3UvdlllQ1BGclhES3hmb1RDZ3ZoSXdoSGFZCitWRGY5UzFBYSt6Z2xKV2hXRnF3N01lZS9BWThyNjdldmtQb09qZVdJb0hOL2o1SXFCZmxaRCsreENac2RkQmUwCitTbysvQlF3NUo1R2hJVkJkdFJsV1lEV0h2dnBLNWNHamEzR0lrN3g4TFdwaFdjbnBhZjIwSzBlU000Z1JBazd4CitGRzFhZzZaMzZrKzBEVjAvUmQ4c1NBNzIzQ1VaNE0xMGlVVng5VUliQWErVTQ0YzlvUWdOdm1VcW1OS2U3WDIyCitqZ3ptclJTUVBLK2Izb0owOVp5RE00WW9xQ1lHcklUb3Q5VHZBM0d1VXV1S0FzTEo5SXkvU0crYUlkeVV2NTBlCis0ZWhVaEJ1V2k5NFh0Ynl3Uk9zd3JwL1dJaDZaVTh4T29sdEhJQmcvTThLOVFLMExOY0ZEclpBT1B4MXgyZmpUCitkemdtakJORkI3L29RYytOY3JjS05CNWhVakw2dW1tWTJXN1R3ell6N2UyKy9wVmpTOU5yRS9hQk1YcDNzbjZVCitGRW14YVFzR09qNUIxRFZPWjFJWTJFVldqYktXSjBaNHhWenNSQm9aeEhPNGRBOWtaTEtBbHRGYmJ6cmsvRll5CitFTkR1c082WTQvbTZXOEttTVNZMUdkMFpOYjhBOE9UK0xYY3ZMQjNpcy9zZFlFOWh1UFZEY2ZaanNoUy8xajluCitwOEVORDFIVWFrR3h2OUdEVDRtZlk4QnNaVUFhZy95L1JNc0VXaEpRa3R1RVgrR2wvdjgwcWJkQzNiSEd6bmlKCitBUzJla1doZXNJaGtaVkJNU1liQzJ2NUlZRUVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSDlzN25SUU5tMExNbkdHCitZcGg1RDYrc3dWOWdNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWtSRS9nbjc4cEFuUFJMUzNaT2QydmYzMjZyVnJVc3BCdGh5dm1rdkdDb1NLCituaVFRd2lOV1Zxd01CU1o5VXhtQ0YrUGlkMXhPZ3N1OHQvU2prdEF0bGpQd1NHOHJEaDUrc3c1ano5VC8wTGd0Cis0RUQ5VWZLNXBsVVNEUlhjRmRtMERZaXo0Sk1vbW9JM2dTak5TKzBCRmVxTGl2SzdmSEladlRsdkNLdFZvcVhKCithUm81TUcwM1VXVGZHS1B6eHRxSDFQdUJWQ3J0L1ZQQ0dpWk9zN1hjZEpoQlBaS3FlK1FHVHBtVUM0ZzlONkVjCitQTUExTGFaNmNMSHNIVWdzZU1IYVQvSTl1WkJkc1pyM1l0RFVCQm80ME1NeUlpeElnMVp5c0dkRDllNElYcE1CCitpd3FpTWRXVjgzd2o3K2trYTBXNXlZQzB5WldMbHJkUTFjWGRjRERRcjZQYkYzQVI0SUN0ZG5HMStMOTUxM21hCitDYmg5ZDhaSFg1WXY5QjRQZ1REVEthQXVBQ29RM2x0VHAybFUrOGFScm44VDRvMGwrcVNIQ01OeE9Pa0s1MXRvCis2Y3BXVGYvS0hMWjF2bHdXVlVoZHBJUFcyWUNIVlR6WERTc1NmZUp5OHdnYjVqNFdOTVRLOVp0bmlPZ3dnRXZ6Cisxb0I2RnYxMDUvRmV6SCtQdmx4bEsvbDV6N1E4R0FTZGl2c0tESklmVUpsMG1vWlhwWmVXU3pLbzdGcXpacmFvCit0OWRmcGVFVnlWSXFZYzNjeHhWeWNqVUxPTWxpMEtpZWpwMEZoMkVRM21vQjF3L3JtWGxKOGoyMHRVTEdCWXlPCitxZFlzM0FxbXJqZGxLY05nNUZpUWtjVnBtb0RNSjBMWTg4aFd3RTRCQVpXS0NyN2JrNjlmNlliOHNtTUlkMlE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCAzMkM2RTU3NjY2M0ZFRTgwRDY0Q0REN0IxOEU1NjAzODYzQjNCQzhBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFkaHhWRmxDRDVCeTNnQUFBQUFCMkRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF4TTFvWERUSTFNREl3TmpJeE16QXhNMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHpNa00yUlRVM05qWTJNMFpGUlRnd1JEWTBRMFJFTjBJeE9FVTFOakF6T0RZelFqTkMKK1F6aEJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpOTWtmcW0wNHZiekVUeWYKK3RHSUhOQmk2cEo3Y0E5MGE4aDNiWXdFRDZhSnJ0NTUrbkl2eE82K2IxcW9ZcXZxTmtyQ2R6ZVBlai96WU1tZFkKK3RMRGc2ekZSV3BwS1k5V25DdzNwVnlST21yY1UxeXVMczdxb1cwTnZxQWtyZWR0SU9scnU5aWJlOCsxSVZNMlkKK2VuOUI5RVViV01PQnlnR2l1WDFLVjloNW8vOUZBMjlnQU9DSnFuZUpjdlYxVW50ZEo0R0hiS2cwSUdLSzdwbzIKK05JcDF3UTA4ZTNreTlubm1vOVkyL2ptRVNvbmEwL1Q2MTc2Nll0QkRsZnlZMEJaVDRUT2F0OGJmcWVZYXBHYS8KK1VlUFIxK2g2SjEwWld3QlhSMktWT1hjQ0NlbS9IYkQ3dEJXenUvTkxFdStqMjhuVzRVeWsyMVFESTRwTEtyM3EKK090Y0t3bWhHTkFYVFR4VVFVNGg2a3ZzKzBkYUdZOW5lL081SzRLNDczOVBldjZkcm9kaU1Nd1lKOTNSL1F0S3UKK2h6VDRMNklBTDlxSkRwNjYzbHNVamVtRnBuWkFmUGppaVhwaGhqSWtlb2szZER3bWo1ZkUwM2twQjNncDBENEoKK05LY3BSTlhxZXRmdDNiemMycjdibUczZGlrM0pQUENJZFRGdlRlR0JhT2FHZFBPMTVmWEk5bTVJRVpBazdxdmMKK1FVUGorazArb0VUQnllSzNhQ09xQmlERmZobVYvSU5TdjZhYzUvNlo2VmMrNFVGa0l4TTNjQm8xeE5hUzBwdE0KK1laK05PMEJMY3YwckZJblk0MlV0U2xKQldJbVl2UmJLWmZBQm5ha2VNUHk4Mm9YdEZtQU5USDlhbnlOVVRSUzEKK1pEL2E3R29Pa0IxTmZwYy83akhoMVdIU2YrRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFR2dad216NVdub3UxajAKKzcvbjcvek16Z25xL01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBak9GRDBjbWd0bzBnYTJLZzJEd3FjZlBrNm9uUGlDaERaMWQxOTlyNnB3azIKK0xKaWNMa1RRcjIrWE1LZ2dKVW85dTFNaTJxUVNoaEpscVVCSTJRTm11S1dEU05YdUpRbXl5ZWl1NUhCNmRIay8KKzBycHJsUnR4V21YVjZidXlqMjh5SWxUd3g5N0FLR1Z3ZXdCbTBXc1VCMTdkZWI3TXlUTlkvT0NGSHJWYkkyelUKK0tYRGw3M3hPbG9RU0ttTENKNTE4eHNoMGRqWmdneGE1aU55R3cydEhUcFU4RU5wZ1RzRm91Z2ZSMEhJeEpid28KK0RVUmZjeXJwSTBITEtQd0JjZEVJcHVCYlNmZStGRXNWQytSRjdJTEdidlkzU3k2Y0ZLalNoSTBlZkU2L3l1ZEYKKzU5d2pzQ1JKUlI1MVg2Y25WOEs4dTJTcUdTV2hDV3dqWjhXS0UwOHltb1pweHlqWGNGTmxra09YOE83VUprTm4KK011QVNiT3U5M1JWWndTTWRrd3hGdGtWZUpJNTUrNzlQMlRJNHh6NS8xcVBiMTY3M0hCUDdRUm5TdzlrMVZLZ0gKK1dNb1I0dk1EaHFZM0U5ZkY0WFZKUWRMTGgzWGQ0SUhiS1FsZEtzNnBVVFNYSUM1ZFN1NUFQT21ZOGZ4R3FIa1kKK2xQanlFbEhscXk1WU80T0xlQm5WS1VCRlRJSTgrVzhMOFlDdDRNYUhSZ2VaQ0hFVXdvZkxOK1pqU1ZIY0JHRG4KKzZ3QklyUEpwWU1jMWsxZmphQ1FFVTcyeWYyZ2dsMjQyZVdOOTVKNlZqeUNpUmQ3QmVKTHpEZS9zTjhhY2RHcGwKK3c3OXRDeU5zU2RzTkJhckVyR2FjYk9RZkRLNnRYM2tHQXpDTUdCYzZPK0RHS2dxcEhBNiszZUtuUyt3d3lkWT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDM4OTNjZGJkZDg3M2M0MjMzMzE1ZTFiMTNiYTk2YTBkMjNjYzEwYzcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQk9yUXJUdzNaVTdxd0FBQUFBQUV6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRnME9Wb1hEVEk1TVRJeE9URTRORGcwT1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFpYbEpaQzB6T0RrelkyUmlaR1E0TnpOak5ESXpNek14TldVeFlqRXpZbUU1Tm1Fd1pESXpZMk14CitNR00zTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1TlJYQU9zL0NEcnpmcFM5CitaNDRNUko0VStLSVlKQnl5LzVETEcxOURxSnFxNW5lcWVGYnlhOHNwdzhxQ1dzT242QkJsQjBFRGlVOU1saWlXCitCNnNOaWVJQ0h4MWJIaStLQVZkditNM3dMdTF0R1cwcHR0bGlNbnduNXNjeEhZcEptNElGeGFsYlR3NTFTS2RvCitFNFV6dEkvdUg2WUJCMEtxY3RndzN1ZzY5QjVnTktRNk9lZVZZbEEvRUZ4dW0waWZpUzh0a0lRclJPa1Z1QTRhCityYkdscGt5blVKamo4Q3h6cDhJMXk2VE1jcFZCSFA4RHRYR0hpeDdZTHJnYTBMZmxZcERkSGhGZFlKdnl4Q0M2CitDc3Z5OUROZXZrZlRGZm14VW5UMjVsemZ4QW5GTVJONUl1cW1yeHRXRlRORWpOVWV3dWhqZGViRXpsVkFSdHVZCitrWStJYVFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVV0UTFIUzVKZ21jNFBvdzdmTHVtYmVERGNGWmt3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQ2RYYlVFCitESDk1WG9JRUJjWVFxcTFtUWxLa0pEc0orTVFhVXBUL2Y3WkwvbkFBZ0FiUWgwVVFGanZXSHZtZ3owOEFxTWpkCitLZVRjSWd5VEdnWEZBS29HMVlHRVBYOXNKRWcxRDNkSGp2Q0JsWmNZdXcvcCt2VytHUFF1NzVBYzdhdGhRdTgvCitFRE1EWW1aOFUyNUtLNlFkTjViUTh6cUI5aTUrSnQyZkZ3Q091NUpFcjhZMUQ0UFZTS25jcDN2UkM3a2lHdDRNCisyWVE4YVRKeXBuMVp5a1psTUtRWStyWDE3R1BKUnNuOWQxREdid0R2THJVYktIUUxRVFMzV1Y1RkdaZTV4WHVYCitUVU5yWVRqNTFQcTZZZEVXUWdZVjhwUmFEN2t6WjI1UVkvc2hxeGNUN2tYdEFJYWY0eXJsS0ZSc0Fsb3BTVTZWCithY1JQblB1SlZQOE9teE5ZbUVlNnBHUkdPS0x0bzNNSTVYUkk5N2Z2U3JoOTdPZUZzQmc0M2NjOGFuUmo3eWJPCitvVXFBc0kvazNZMmt5TmVzcy81bHBCeDEzaHA3cXRDQ056Qk1MQWRYalpoQ2x2dmhPdUZJbUZMVG43bkN3Mm42CitIaEExSm81UnVvYVcxVVF1QTYyKzdFWER5aDRieVRpT3JmbWlZNGhyMkpyQ0VId3NYN0MvRWsrRndsUTBrRzE2Cit6WWw2UUo4QWRRNERFRHhlVUdRanViSlV3cGFLNjg1WlhpTTVrdHptc3hQdE0vTzhVUHQ3RnJpTXN5ZXFoblV0CitUY3BBZVl2d0twcXFkb3hhTVpHeSszOVJvTlNvWVU5djdWNkNIaURCTm5aOVh3RmpXaHU2Zlo4TkJxdWZQbXFlCitGc3pJaks2NElBeUJNdFNwNnZHZHJWSTBIbkdlMjlrbHdaNjhJUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCA0MzMyNWFmNTUwMDQwNjU0ODkzMGNkYTlhNjdkYzc4MDY3Yjk3ODAxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUJuM1BVcjJzWjFHTWdBQUFBQUFHVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5Ea3lORm9YRFRJNU1USXhPVEU0TkRreU5Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxaWGxKWkMwME16TXlOV0ZtTlRVd01EUXdOalUwT0Rrek1HTmtZVGxoTmpka1l6YzRNRFkzWWprMworT0RBeE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbHhhZWpoc2t6YUF5RzFhYworUW5tSWlFdjJwbG1IUVduVUp3ODZ4VXVVNjNRSW9FSnhjaGZteXNLeDVPRklJeHVZZFhkOVVxMnJXZE9uOTZvSgorUkhGZWJBd3BsZEN0cWx0WUczWUIxOWxPWU85Z0RCVGN3MVRRME54c09KOGNYR1ZLMTRoN3IwTDY3OU51REpFbgorMlpmMmF2ZmgvSWl3SU1Mdis2OTR0L2hhY1JjRUtlZTJQVkFiQzdBbmNHQ3RLSE5FQWxzbUFHNzJTWGdXSENMcAorTkg5LzYvZ0l6TENUWVVKT3pGSVMzMGJja291akFMejlGakZXQ0NEZ1RCNDAvMFJTZkQ2dUR4SFhaUzcxQnBXZworMjdPeWlhd0QyV1NPaVZUQlBKeEhwT29sSkI3UXhJWSs1dE5qYk80dlJBeDJVTEE0SDkyczFKQmNLUCtPaG5iVgorTWkwcGh3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVZzY5V2ZxZXhzZDNVd3I0aFFkd3p6a3IvTUFvd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUFaUnZ5dworSFBWL2lKSDA2dVpvV3RUSXNFVkdlYm5ZZXMvM2tGc3NGTHVLMWtXKy9scmxZdVVPajB5djZUNG01TE5QbnU1aQorQlJ5U2MyRDBVUHdFNldJL1dzUXZnNEZ4Nnl6U1ZBTmF4MkUxSHJuZ1ErNmIrVHcrRDQzTzhGUU5oZGtkR3VseQorMXpGN1JHSkJQU28xYkhSRWFBS1hSQXJNMTFKU3VNY3QzNkVOa1c0QzNKVCtqODR0UUhydi92ZjZKYnBSNlJEQgorSi9Ma2FOMUxvNFFxVFFSWm9US0NoN004ZDdwWDNIazFzVmR0TUhOSkM0dXp6Tk1UVGNKUk9Oekk3V3c2T0pRQQorWDJzTWxVbVBDR0tBb2NJQW10cktJYURWQnpoaDgveWtsZGtLWXAxcHdLSCsvcHJMbUEvRDY3QjBpeW5SZ1NpQQorS2RzVExqY2lsSS8wWFBxMlhoU1FjazNQa1FxT3ByTWtnbXdjN0Q2dXAxdUd5WDFXakhYV2dDMWplWVN2NGdrcgorRUxQWTlOakNzbnBpN3I2Ui8rMEF0YXAxenhpNExqamFWS3QyaG9lZFpsZi9wTVl2bkpLNHlJVEh6bWRhQVl3SAorUHEyMjlINUZWWkhpR1NIcnlZRW9vaFBRcktmK1pMc3NnZUtDQWdXc0RYQkJ1WWNDc1dGcS8zWFVNb3ZLbjhYcworbFZLQ2VpS3ZJQXVySFBiekFFQWFPNThoT1V4YnA1dnlkRjFxa3lkem43KzBRei9lYk1URWtLb29aZ3JMekN4UQorTDl3MlBEdXp0L3UrbkIzQ2FTdDJtOVZCcDU1UUk4NHhRcmY4ZW10Nm53WmtFb3Erb1pBL0NrVXhBb0c2QjI3VgorcldBZzhZR21GOE1GQmF0WHNSMHU2TVQ0S0NLQVBmakJNTTAvVXc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgNEE3NjlFQjVEOTNDODMzQTU1MDBGMUYyODEzMjRFRUYwM0ZCRUIzRAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFGeUxIaTBkd21Xb2JRQUFBQUFBWERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTURZeE5qSXdOVGd3TmxvWERUSTVNVEl6TVRJd05UZ3dObG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMWlhsSlpDMDBRVGMyT1VWQ05VUTVNME00TXpOQk5UVXdNRVl4UmpJNE1UTXlORVZGUmpBelJrSkYKK1FqTkVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWlkRXJYTm5pWmlweVF2K1YKKzZsQTZwcldFVi8yem04cVRUNnFLM0RteDBWY0RZNnZMLzlyZVVab2lYaUR1dFZISHJhOXEvd0VuWTFGMUhEWmoKK05PL0lUdmpBOXlwS0o4OTAxUFFzTURneSt1dVhqM0FFcTg4b3pTeHZDK0VwSytLWWxPUWkxM2wvUmV4WFk4QmgKK0RMSkhodFZYWVBkQ1RXd2FVVTNFUE1vUXVtNnM0UTZQNk5rRWNOakU0cHNMNmZ3NlVJN2ZMSmFpaW9vaURyNVIKK1VDdWhvZkhuQ0lYekR6RnU1NjF0aFF4Z0xxUmZ6RDNLQVhkZnlFOEJ3ZG5aQkFmYzlrMFVKQjNJbDhEMVZUNGsKKzdjeSt0NDVNbDNaLzJZUncrVGtFV3dxUVkvM2xzdnROWVN2bEJ6OGZ2WlQ5d2hNclVKdGF4RTN2d3k5SXg1aFYKK2ZTSXZUd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUNJMFZERlgwZUdNSmtxWE5XZlRyc3hGRXFaSXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBQ1hIeXYKK0pTbWkvWEhselFLeGJ1b3pnbXRDUmxEWEFPY29ySjRjc2RzNklnQlM0ZjI0WFdtbnFQUjZRNnJGY3FLM0xvclYKK1dSRWUzMEp3OThpOEpEZDd6N1hWVlJRZmVDWlNRc1Zwek0rQjRhL3d6cUtaN3VBbThRWkNzMVZzVU1mVzJrZTcKK0xORmdoaDFrMkI0KzYzVUFZZlArc3VQUm1DbEV5QUIrckRLQTM0djlCak5aeTN0WG94SkhkUnF2QVUrdmxRSHMKK1dhZDJ2bW9mN1YxS0c4cWdoSFNIZTlwc2lpR3ZzUXpoVFBHbG9Sbkczc1BOWGMybWY0STN2OVFBZzExdE9aUHMKK1VxRTZINW8wejRtZDZMclJsbzVoblFiRkpId1g5TkNFZXdBcytJRmJtMkZpQ2x1Y1Y1SU54cjNLRHg1UVhEcnkKK0pXZURpN1A0VXNFQzNBeFlUN05FQkFUNE9WRnZjMGFWRGFuUGUrcW55ZUNqT3lmeWhiekltSENVS1I1UTlObG0KK01hQk03YVhjdk1TL2pwVVRKSEUwbWZ6Ump4SFY0MXNydHFSelh1WlVlWVUxMkgrRFdDSzh5bWpxcGFOcmd0ZisKKytrelo1Y1JFRkNiTVV5N0t4NDd2YWY2Vml3cFlpVVlkVHRrYVhma2ttYW1YVXhUbmJWekdENll5VVUzcmhWZG4KK1lFTU94UGtpZllTZDhZUmNJMk93Kzhzay8wZkV0ekpNRlVXS0o5bCtMaXgyYXZITDVXTUZGVWNmWDg5d2psSlQKK1ZsdHBSdC8vZnpJTHBrUUZuU2pORGdYL2ZxRnJDOGlpOGx4ZEFKalBpdUFNWS92dHpIODhvQTdlVnJ4L2d4QUYKK0xwVy9jNnNxemFWUUVnOGoxbVlvSERmSWxvWTNUb1N1cGJ1N29RPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDRBNzY5RUI1RDkzQzgzM0E1NTAwRjFGMjgxMzI0RUVGMDNGQkVCM0QgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWdOU2MyTkxBLzJKdWdBQUFBQUNBekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl4TkRJeE5ETXdNVm9YRFRJMU1ESXhOREl4TkRNd01Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwMFFUYzJPVVZDTlVRNU0wTTRNek5CTlRVd01FWXhSakk0TVRNeU5FVkZSakF6UmtKRgorUWpORU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbmRDZElsOHp2dkJsSVZNSQorb1ROa0JWQmw5V1BjTjBycTgwT3BGblZ4QXVhd0xXQ2puVUhGQmZMYldqRkpJeXVjMGJxbzRHWjB1SjM5eElxUQorTUc1d2ZON3U0dk9iYmlWeUZwUTRaZjFRNXJyb29aUXVwbWhORlFieW1scjh6NHBrTDZBR2JJRURaem9qc0dnWQorTHJKS1RXSndrVkVtR0dzYWNOMG1lYW9aNXhLa3Z1UnJUVStOZ254Qng2ZitUWERORWRYVVRhQy9vNVRIUkRoWQorZlkzdWE2TjJERTcyS0o2aFFXaE0xSU5OenA5cDJwM0x6RHA4SW1lT1BRZFYrV2JzcUZQTlN0dmFtcmFtK1k1ZgorZDZDeEJvWld4Q0dFNzR0N3ppTDZ4K2JVQUl1eWVKVlBkWDFsemtNd1FHeUtUbUducjBwZjdtcXgxcEtOQll6aQorWTZHZWZKUStYT2gxSFpWRENDTGZPVmcrVEpmWTVoVzNWK3p5dmVaNmlYc0I0ZnJmcGcydDJvYVY3UStPL1dncQorTXRQS3JQUjY0UzMreEhuUXBoZi81MDdITmZEZ2t4aWNhbS9adUhFL3BjalhYWGYybmYzeXFhNEFFMmwyaHZxQworU1dpK2NkelBKN0FPRDJCcGZhYjR3Vi9pcG5GeWkzNFlwUS9qY2w5bkFtVGFhLzJOblJDdnVIVGxTcmV5WDRBRAorb3N4dEhDQjBRblJWNElNYXJ3am1nSUlZQ2UvL0tFeWs4YXpTUFVyVk1qZ2JlNW1aVjlWOHVETU5iOVNISVNoWAorN2dzR3d3bWJyaXgzS0lOOTVVOWt5bm80WFZBUkQxNUpISTJqdjZRaVc1WHdDTmtxV00vOTlNVTV0WlFVZzBiUAorbjZBenJhV24xY0Rma0VYOEhVUi9QcFh4WXFzQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRklOMXBrRVJpMVcwU25nVworek16UTVFKzc2Y1Z4TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFVNXk3dnNLTFFNM3Z0YzRUWWE3OTd2aGNrclg5NDVKeHBiMytoUExpNFd5TworclZLNHpqNDViSFhHcFdzMmFoeS91dHFGUnpOVE12ZHNvbDk0UzZuNjl4MVYyRW5ra2RLcGVFc3NnK1hhMkxrWAorbXJEaDZUTDAxS2ZCL1oxbklQRG13OFYyRENKT0dqNkpwS3FDZ0kwOXBtbzRlN3ZOWDlLT3JTc3g0VkNWTjVYRwordUV5aGtpcllpWTVFZGZnVkVmZUg0Q2FTbVpJZGFZaUFOQlprMlFrTjQ2eithekxoaHFMa1ViMGN5aCtRbjYzeQorMzRvblkrMk95RUVmQUZVU0o0M1FQcFVXcUxsNWl4MDM5ajVpczhJWXNSdngxNE1jMnF2eTVYOTh6aTFhM3BGWgorWERwTUtlcEloNHpjNWllRm5ZVzlhWlZPZXNZczRab05TNEZieE0rMkN0bmdLKzY4bGo0YlcyR1pUbGFIV1Z4UQorYUMzU3cxRVl6Q1JZeCtRVkJyR1dUMjFNOVBBaktONjRZSjh2Q3dNclNYdENNTkZVYjhnVHp4ejc0SGl2SFpIWQorc1VoOFRMRWFMQXJEQXJzL0xVQk5XT2VhRVhkZGxPSHpnVmNmejhXcFg1aVZCMDhaRkxjYTl5MTZIUGloV0ZnbAorZjRRd2Z4RG52VlVaM3l3WUZKeEpYekpyeFRKV3NyNnowM2toS2hWY2l4ZlFPSEpUTnVRaWRtd2dXeXRoVmh1RgorZ255M2tTN1VKUWhtd0UvWnluRUF5MFZvd2NVSTRZbGFzZFkxcEx0UGtSVU9UWEt2WkJ3RGM2WU1TdHhadEFrUAordjVTSzA3WUFGdFlDMVFNa0lEUEc4dElDTXQ1Zzg5RlRCVXdWb3IydzBrVFlZbkF1eno0WENKbDZDZjRNWWFRPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgNGM0YjRkNjQ4OTA4ZTQ1YmZlNWExMGQzNjM4N2E2ODhhZWMxY2Y3OAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFBV3d6Rmk2VmlMOWFBQUFBQUFBQlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGN5T1ZvWERUSTVNVEl4T1RFNE5EY3lPVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMWlhsSlpDMDBZelJpTkdRMk5EZzVNRGhsTkRWaVptVTFZVEV3WkRNMk16ZzNZVFk0T0dGbFl6RmoKK1pqYzRNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTBDNlNQYlA3c2p3aElCdE4KK2FGOXprYlpuclA4azdYV0lmUjhvamJMTEpYZXVaNmUzQ0R4eGFDcHFXbWxBdk4xNnM3WDJQK2lGZ2dTQzlyemYKK2MwZ0RpcGQ0NDJuM25mRGY0K3JKL2RMSkNLd3NTRm9reUQzN3FHN3NMZDYvNHlRZXovWjA2bmpTWDduT215NFMKK0ZLeGNCWFFxR3k3dDVmL2JIdGJSZWVic2FqWnFqVVI5TVE5RE9vVjlCY3BqdXJWT28wTkxuc0JXZEhiYUtxVm4KK2ZOU2Q4ZVZHa3Avbks3TGlvbGRoZlEyVUpMOVBya3ZsN3VxaVhZZGt4NzBXL3pGS3pyWklnQjdtZkMzdVg1NmYKKy9XY1F2QllDaEMyQ0NsNms0T09rQmkrY2dZc21DaGw4ZkR1SEF1TzdOT3o3RWRHU05JM0hOTVZZOVlocDlTTVIKK2owVGF3UUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVURyT25uOTc3NDNjeHkzMjZRSzcwTFhCb1ZFMHdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCeGdjU1cKKzd3enFZM2ovMGg2NURrUmZ4a0s2RWF1Wk04SlFwbzJYaFVjL1RiUTM0c0w5SFQ2R2p5NXlYZWc3N2F3SXBiMGIKK0pqUmxxSm9NNGdPMWpaek45MjI4SUNRbm9KNFFrNlBpMHo3aVVDQkRoT05taTBTdDJtd0hqRXp1MHdCaWQ5bDEKKzNHU1JrN3B1TGVhb1BUNDlmVERnNVBKbGl1L2VUNm54MUpqdXNueFpuOXBlWVhSOGx1OWFKMEEzMnYrMW5JUnIKK2txd0laSk56eDdVUW9iNk9QU2VJOGptWUtLNisvL01ETXArcjczcUVQeGJZMEp5RXd3NXpNYXE1UE5sQ3RkZksKK211eUhCRWZUeXR5QXhkWGJ1MUNCVlZZR3JtMjdmSy9yMncyMDV2SUNYSlkrRzBDNGFFU2JMT3BBNys4SWp4TE8KK2kva3hKRkdJbE4wQnpYY2hSaWNtZVJ1VjM5emUwcytGN3hQNHY5bnVnN21VMFdDZWpTeFJwS25EQktYeElnOUMKK3RzMzZtUUFEeFJPeHRtWG5rVC9CYkhzbVRqeTRKNW1uSFZ3bnAzUkxxMXlxcFhyME03dHJzZm44UCtMcmVkVncKKzdSMCs5YzlVTkM4eVhBU2U5L25HS1hSSnQyYWZBQUxFL3kvMFB4RVREdVduOFk4ajZiMUJPYVVQdCtreVlRSHgKK212bEVycnBwTllQRzVqWHpRbzlwZkJIUDdnczF2dHE2MjNWQUw5bjlHMkcrcGJRN1JzT2VKZnQ3NzlkeDZLRDEKK1FpSnFJUkhRTFYrUitobmFCbDFvb0xUOG11TFgzeU1VaHJ4WTVjM29jMzlyK2hnb0k1VE9qS3E4NHNjZmY3NVIKKzhibENGOEpSb1dFdmNzclBjNFREWlZTSkY4TUdSenh2V2U4OU93PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDY1OTU3Q0FFMTJFRjFCMUE4NzVEOTUxQTk0MjVCMUJDMUQyQjNCRDMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBR0pGZTVDV1lQbWxLd0FBQUFBQVlqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1EWXhOakl3TlRnd09Wb1hEVEk1TVRJek1USXdOVGd3T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFpYbEpaQzAyTlRrMU4wTkJSVEV5UlVZeFFqRkJPRGMxUkRrMU1VRTVOREkxUWpGQ1F6RkVNa0l6CitRa1F6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFuZWdBTXYzM3Rhb1phMDJGCit2VnRxZDZMcEZ4SkMyVzc5cEVmeHdwaGFBY1kzQXRhNzAxNlVaNlNKTXpEMTJpelF4OWJ1K2VLNmF6ZFdid09vCisyRHdUaWpSZGxGUkJOckJkVmw2Q0ZZMEtMRnNFN0VLdUcxL1ZqNVJvQlBSbjQ2d0NXbmdFTWhKQ1dIYTRDSm5KCit6YjU4bVo3NVFqWkt5c3FnVHpVNW1NeDNYK0xZV3N0Ym5FYTFqVWxadmZSRTgzVHU4OGJhdG1wS2h6d29zbm05Cit1YUNoYWlCd0NKdEhzT1U5MU43cDBvNlhOaXVWVDAwa05oQ29xYVhLRnZvMHg3U3FKUHRjSkxONE11WWhBNmpxCit3ZHpoOUt0MnRydDZseEhST1RpT3NGb0U5SnBVY0F2T3gzYllSN0ZJbWF4SkFuRUg0YkRvcmpGSTJVbHhCQjZMCisyQUpzY1FJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVSTmJzNGRuZ00xTW4wUVN4TXlVRFc2dHVzWHd3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQm8zRXlnCisvYjZ0QVlCQzloa1NGZGFnY3VlY25KWCtLNFRGZ1NuMDBDNldLcHkrMWN5cGpHK3Bvb1pQVFZaOE5pYmMrWHliCiszcmE2bnBwTkVLVXN2d21KL2l6ZEtEK1dkb2dwVjJSOVZycjFHekhzUkgrTkVUZTJSanNDQ1pIdU1WV1UvalhoCitkZlNsTzQ1MTNoeXFTZ3p4SWNRYzNCaUg2UDJQMmFPS0dkZmRKZThUUDdwcm0zK2M4QkJsOFdUdEpweGJkVzkrCitqUytScHJRL1pxREtjL3UraHFQNHRkQk1Tc0ZMVHFUamFjNGxISkJWUFBLRDZ1VjYyZWY5TDNzWEVHelRWWkVqCitkVFBlUFRsdmU3KzVjclpSMXNHNDhsMjRVc2hSaktRZnhNTmpYMHRtQklaYTFBaUZNcFlGWjVoVkE4WXN6SXg0CithZG8vS05xVXpGZ1ZCV3k5Qm5QeTdFVWxmNjJva1B6dDlkQ0FKSmVrU1hWcXU4c3ltR0RHamZaYXJ5TmNGeDY4CitXTm1aUGZqVGxsUGtydGZUSUVqR2NNekEvaWIzeHU3emdCTnIvSFlkeklPSkFHL3AxQnFYMUF3M3ZkamllUTgwCitkZjhYZzNxaEtHS3FHeGJtMHQ2OWIvM2c0SDhvUnJLUzVoVml0MlUrem41MHNNaU4xekFDMk05ekF5WnFNb3g3CisxMHViNzFVczVRMUtReUV2SGZuZVNxRjYyVGxqMHpUU21SK2kvaDEzaDFUODQ1QUN0cGZFOVJZT1ZGVlVFS3lwCithb0JpOXNWOGMwWlJPLzB1b0dOTk14ZWRudkw4TFFyWVpIUXNTOG5pWWxpK0hlNGptcTBDLy96NzF5TGJXbnZxCis2NHdVU3BKVEVhOUljQ1B6dWZ1SEpwaUJNV0tXZnErWTltVlgrUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCA2NTk1N0NBRTEyRUYxQjFBODc1RDk1MUE5NDI1QjFCQzFEMkIzQkQzIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFnc0ptYXcreCtDdXFRQUFBQUFDQ3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE13TjFvWERUSTFNREl4TkRJeE5ETXdOMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDJOVGsxTjBOQlJURXlSVVl4UWpGQk9EYzFSRGsxTVVFNU5ESTFRakZDUXpGRU1rSXoKK1FrUXpNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpBN0F6Z3lMa3ZncFgxOWwKK0d2cFJSWnF4bDhXODdiREFOVEpsK21VeEJ5cFlxOTF1L0N0c05lNGUyams0bTE4UWFlOWwwREVhdWtkeWRhT3UKK3JqcS8rQThpNUhvMVV5ZkhIV2RUWXVVR2R3MGFWTFhUdm12YTE2dVZiOWZ4WDhZd2ZyazZ4TUk3clFGanRTNkkKK2lGZnVIS2FLK0V6c3RaenZyZlVXZVZuaWRPY2V3OFdndTJhSDZTMnhnTjhRZzlKNVlQcS9OTi9XVGlhYmF2VkgKK29qblJtdCtnNFU3cHFGRGUzdExwWkU1S3laYTNKQnZvcGRFbGJvNkFYelpmd1pRQzN3b1ZFUHBWZ295c2pDT0EKK1RJay9pWXFyWnFDQXhDU2lteFRhd2dpMFgxbmY3WUFpVGllcTJsbXZ2dDBTdzF3NENtRlNEeWFyL04vRm45d1AKK0JSWStlMENXU3FOZ3lVY2ZZbk9vUjlZeFRvSDZNL1E5TjE4Q2QxK2U2YXJ1d25xOSswME0rMUszMkRqczh3UncKKzlxMUswd2pvSXAxUmttTmlsV3YyZ0srcDBKSHIrUisxa0IrV2hSSHFQWitxbGFMUlNQcW9PRER4WFJSQmdOQk0KKzdaaHVySVJXV2pGQWpnNUhITFloczNZNkhVL1ZrRWd1Q2JIV0VhWnBFRmh3aytCdEtZNHpKVHd5VDRRM1NVWG4KK2pWMlcvUGVwdVg5N1hHUE13enZDVjAvSFRTbjlrdHl3MVdqdTlSakx2YXhGZzd2YUttY1JreGRZWnBScis4UE0KKzBtSnBkTGNsaGNIalIzK213cVJZRXNHd3RaY1luV1ovNTE5Z0EwdW80TVJSbi9TUzFJTjZCZVcvSlVsNEYvY04KK08yNWFISTJKdTZaZ3hMZjZOZ2Z6dVFnRzZFa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLQnVqN2xxUE0wNUlwOUgKKy92TndHTTJMN09EaU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBWWxWRVYzTnFXeWFoOUFHa0VYWkhUb2wzTHRkZUVrbWVkd3JFRkpWcXBaZDgKK0xETzRnYklkeW5YTlFuUlJYbnc2M2xaLzAveEs1NGFEZld3U3F2WGVKMEx1K1JXcCtWTUVUZGVUU0VJdlFsZ1IKKzdCWlJwMzJuc21LZGp2ZytKcmpGdng4QVhCYkF5YUE5MWlOTGpDcXlZQlJQNTk4SzZMSSt4WkJZcWRVTHk4OE0KKzI2YU43V1JGcUNpZDdBeDcwdE1UVUtTWkZkVWowVnJvWTlhYURNby9IYjdiRVBuR3lta2hKUVR2d2FUSDNZS3AKK1FHRkpOeWpWMXpTMjd4ck5BUURTL2FaTGhRWXVLNmYyZkpVbitzbkZtWGVmbVJRVFQ1OVZtdmNSQ083SlR1M3UKK3RjT0xWcTdEY28xOFg5RGQwZjBJdHBrK1lBdmRUOFhmNm4ycVJSV2FGclR0bnNBeUZMSUF2Zy9RbDhkbnQzWGcKK1Q4ZklvSkpOMjNScDdBSEJxeFlHZExEeTI2RnU3aFpWSFUrazdUWUY0RHh1WXdyUTluQUZXcmhzQStZTXc4amMKKytzYU50cGlHZDZWcDd3dmdnQW1hdDhEQ2Q4REEzbUdZTE82Z0tyVFYwaTBWQTAxTWpLK1A3eEtZcWJPVGVPVzcKK1lya1dZNGdLU0ZpMkdzZHJQNjFHeGg2b3lZR1hsTENWRWVodjlDaTJXOFpVdjhKS3RIOTBsNE80L3NOVS91UmcKK2dXYWUwSU9WaE1CWW5jUkhmUExRYjZuUThVMDg0M1pBRFZkNk9VbGNEclVXdUVqTFNFdGozZE1KZTBJVVIwVEQKK3VFTWRZYXFsWHBrRzErL082T0YvVHZWMFVPTndMbUhTdjV0K1JJU1ozOVgrVGpxeFBrbitXRVlxeEFPNmc3UT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDcwMjZEMDlFRDkzNURDREM0NEQ4NEQ3REE3NUNDRjBBQkMxRkRFMEEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWRzRE5KUDJJT25JY3dBQUFBQUIyekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXhOVm9YRFRJMU1ESXdOakl4TXpBeE5Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwM01ESTJSREE1UlVRNU16VkVRMFJETkRSRU9EUkVOMFJCTnpWRFEwWXdRVUpETVVaRQorUlRCQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcC9tVWpreXBvN0hXbTBoSworYzlwTTNXU0pzaGlUMTlTSk42ZDZESWlmVXQ5dm5mMzdQODZvZXhqYjlRMG4rbldVRGFsY0VLODdsR0VsdmUzTQorL29GNGNLK2hzbVkwOG9oWXNUZDZzakl1QTVwb0FPWFU3U054QVlkdCtYQkpSYW5CSnY0TzduVFhTMXZNZE5WNAorTnlaNDN6WHBaa0VpUXM2RDZNSVlROG0yWU1aY2F3a0xSZU9ndU8vSlY4bG04cHJJa3pCV0tQR1BEWklrOTduRgorWml0TVV3Mm96MnZLS001MU9XaCt4ZlI0TUxxenE4cW1iYWk2U2hqRkcrTklRR2t4ck40djJQTDNpOG9Pa0twaworM1BMYVN4cWdJWUJWT1BiY0MzVVZDNHM5MC9ORWNpYWNDc0hTZUJXUEhaRUd4Uy9uQ2VsYXorRm9WeUFPS1ZWcQorVnIyaXF1WWZLbThrUGtzYXBMako0d2d6RG1zOFkxSFhnZTM3UjFNNjBKQUQ3T1dGcnRndnpRMVk3VFdQNkZ1dQoralVBdHUydE9KNXdLWTQrREZ3elN2T2U0U1VQZDhCck9iRkRZelpMcDlvMkJteWtwVUk2RHo4UzVNWllqaVdjdgorRS9Fb1MybFJ4UjFNdm9udXBnSHVNRWFCZEVGWEZsbjhNRUhqaDVOcmZ2Wnp3L2NuWWphSXdMV0RMTE8yUHVDVQorRVIxN3NpVXdOMDZ3aitPN1ZUajhXZEIrUG1ma2h3WE14akFUaGpCWmRaMWJuaVc0ZzEvcWtzS0xsSzBrblhHbAorMVVmTnRxKzVUUnNVeWR3MExEa20yeDF1YUpTNk9JYUJ1SktmZEk0RDNPdlNrZno1TkZLb09YK0IvcTZzS1k0UAoraVRyVk1aem5uMUVEUGNxMkVubjV4RFV1aFQwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRktNWTd6WEM0bVREMktmRQorb0xiSmtWTlhxY3hBTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFjelloVmVCcXNSYUcxbUJvSUp1VmtKRGQydENwY1UwSExydUJLVVp6cDlVNgorUnJJbDk5V1JFb1h5dFphT1hBdkJBcTFrcHlKRWQxVklVNXJyNUlZTmlZV1A5bnNhWk8wa3pseWozMlk4Q3JsKworczc5Qm9nNC9GNGgzV29vYzZ4dm14ME9peEFDaEFxMktWQTZVckt3QmJVQWYvTVJiSktxNlJVMkk1bmJ2NEZFZAorZlZzN1Rxbis0b29qVlpxM0hKY0lULytVN2FlQVM1SlZ6cjEwOTRmTzg3ZTgxcGRSWEFZalh5eXo3RzhhWWwvdworc0wzV051WW5zQTg3OEVSR0lpbnZsaGVLNmY5MWlTTE1tUWxhY29JTWdDWXpJL3k2YS8xMFpqbU1hZGMxaW1JQQorWjNVMFVBUUN0OVVyL2RHRkdmVW9rSzdzZDBTcEVhSXE3a3gvWlBzZjRzMHRDK29jWWgrSUJ1dlplbXp5UThpeQorQzQyU1UyV244S2pUemxTWXpoUkZEaG1UMjNpS2ZLL051VHpjQVpzNEFjQVdwUy9GN05SUWlEYUJ2aUF3eHNZbAordzBIbG1XYjlHNUxnZExjZWVwVmdIZldnVlVsRlZ3NEpIaE81NlhoVW16eTI3cGl5aE5TV1lWUU9hOEdha1FzbworUDlJQm52b0FXS2E1ZFh6MC9FSUpQMlhZSWNSNEVsa25UQVg5Um1qbW5IYjdmQjRWc29UNnQ4eUpORmNVMHJOYQorR3dXMzNwaU9DbEV5anlaQkRtUnoyV2dWWm1yOGlBNElPWEpHcE1xQUNTV29SMDZkZUx5c0R1dEsvTTlHZlppZAorMllDaE5Ub2hQb3UxbVh0U2hiYmdSL2szeldVcmN0aWZzUjBsOFRKM3d6YWFIdVhUOE84ckdPN3p2cGp5MFdzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgNzU2OEZGMjZGMzdEMTEyNjg1NjdCNjg2NEVDNzJBMDhDODE4ODkxRQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFCWmN0b2E0d2tJSll3QUFBQUFBRmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTRORGt3TjFvWERUSTVNVEl4T1RFNE5Ea3dOMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMWlhsSlpDMDNOVFk0UmtZeU5rWXpOMFF4TVRJMk9EVTJOMEkyT0RZMFJVTTNNa0V3T0VNNE1UZzQKK09URkZNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXJmeHJqQnFVUVJzQmNlQUEKK1BVcE5Lb3E1dXBPU1RxNVZhNStWVkFNUHN6Rk1qS2k3dkwwcUZ6cW9mOHIzaHlMY3gwZEYwQ2JYbWJadi9YN3oKK1RqcWlKYS9WazF5QUNiZ3g5d1Y2c0ZreTE1WmJueXVmZWtyVDluWCttNE5vMkE4MUtxNEp2MXVnRDA3Wk0zNUIKK2RzM1hiSWMvWjRxN25QQjJnaENWL3pCY0pSazUvamhtTVFJVXRLM201bzhpMm1Eb0pUeEpGY2tsK1lJdGNpLysKK2JUbmlobFdDLzFWWDF4NEZlcVR2WUhITnBWZW1LbHNPNVArZ3oyelNxV3kwZ1o2b25POSs2c2w0NlZ2N01VZlkKK3gxVkowNkpkZ2dPOWdKWFI5SWt3WEV6WUVSNFF5azVyYjlMZ3RFc1RHS3ZScENIL3UvOExBSk5XTklYRTAyWGwKKzdDOXN2UUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXFrN0U3b041MzRyc1dZMHBSdnJmMi95MVFyd3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBUFJXSWEKK3RXTzJsZFdabVZid2NsU1crSEowbG5zWm8zdTMrMWt3ZjJQeFhVbkhpc0xrYUVDSUZySDd3cS9LbGdWOWFDMGwKKzNzUTdIU2paRmp4bXVMU0VPV0c4SjBFeUtlT0U2V2tKTWh0SHZ0L2lDejRFODQrSS9OdDJiY25DY3hyRFdZNGoKK0wreWRkb3V3TzdhQUpsamdFdHJTNVJJZWpkaTdPQ3pGTi84UHJBQXFiY2xyQktkTjNXM1JjbWhvNlBEK2tZY0sKK3BFeHd2Zmh4eEU4MDZ2N2djYmhENWo3TzZsZmk4V05rWFpDSmt3T2FiNkFTQXVUZzlWYlVtVkV6cmxIaGsvVlUKK0FDaU92NENRdUphWllZa1BnYWxWRFRUSzhORGR6VG9VZnA4UDBWRCtaMElXeGtrRXZtejlGS1BqZkttaWhRMTQKK1hQR3NoNjVQaTdUc0ViZU92OGlWSlpRZTFxZDRBcGFwallKRisyNFVYTmE5VEYzeEZ6TVVPSlRJSUJrNUFQZmQKK3RYNGd3VjdUR3pIaHFDR1FPSk16TkcrTlJQbjRVaHpJSDRiUSt5dTZ3MWs0RkJ5clhiejRjVkcyc2VWNEFpVisKK3dqL2o5bTB4TXVhaFZiV1AxQnVoNENMRDhkQko3OGdtb0gwb3FWZzBCUndBeGRDVnJROTJkWFlmQmFZWVBsMzAKK0N5bVppUFpnVEE4aktHQXpXY2ZibGZ1M09JU2dNNEZ1cC85UWU3UGxTSjI3QWI4T3BhTmY2R0xrM1MzSzVza3AKK1RXM3o4YlBjNVMwcXlWL013R0FqclBSZVBjWUg4eWd1aEZycW1JUmRSd1dFd1M5ODZFNE5NSDlmVGJCbDltMksKK0NoY2p3N0tYYlRYbC80Z3huMGgxaWhHN2hnZTB2SVN3TmxrSnJ3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDc2RkE3REYwQzA3NzMzREM4Q0UyNEU4RUZGMTk2RDI3Nzg4NjY4REEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBVmROcVNqMkhiNW5qd0FBQUFBQlZ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EY3lOVEl3TkRVMU4xb1hEVEk1TVRJek1USXdORFUxTjFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzAzTmtaQk4wUkdNRU13Tnpjek0wUkRPRU5GTWpSRk9FVkdSakU1TmtReU56YzRPRFkyCitPRVJCTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFza1lZbWh2elU4ekVxODlsCitTbHhFdEFoK2prYzcrMkRpeXgzUzlKMWxSTE9GUkhEN1FTM0h1cnlaY0tpTlllMFVXaHNzQW9ZcVRWNlVSRkp3CitXOGpnQWdMYVpnUWhFcHEvS1pacU5ITWc3b2U1MEs5V2ZoUVJWS3pXbmFmUjhDRVBmeWpnaGsxdkhVVjdINjJsCitxSUY3NTE0NEE4Qm92UTI4eGdpVVk1WElENUFRNkZBdHRub1U0THY2NkREVUhxWWY5QjVwSGg0Y1M3OEsxcTEzCitlMlFXbFJrOTNvZkpWbXVBc1Exek1tMXBwRytjNWNvOHlpNHVDMEtYYmcwSlNiVnhpaXJQSjBseEtGeEVlc1lLCitDMkVwVjJ2MWVQN05oQUEyUkRUdWNWdzNXRFc1eG1HTHk4YnpsdEZBcVJWNVVjZFlSWlMyd09RZ1JIS0syb2s3CitvUEhSbHdJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVU1ZUl0K3RIYUVrU0duVkhEVGFlZzhxZ203ckV3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQUZqQzJBCitDNkxIaFpNNTN4QzEwYW1NeGZOb2k3WnpiRGk3bHcraXNMcE93RVlGbHlUbnJrZkhlVEU1T25pSzdrYzZPelpiCitsRENTdWV1aWg1Y251ZFRKc1RZZHFHY2N2dGtBMGhqc1F3Z0k1RlpuanE4MU13R0MzN2xTY2VLcDFrbHgwUG5MCitUM3VQcmNwWlNsMFpxS0ZvVUpKQkJVNXRndHJWc1BsSGhQOXFqc2R1aXJDMzYxZ3YyUjBjekl4N3Z5TjFaeFdFCitPUXJiMzVHbGgraWdEa0tjU2drNU9CaXloQnZBNzlkRlVBenR2bFZlTWVENFNzWDEvbEhpUkMvZWhCVWtKSFRhCiswMXpYYk1CTnI4cW9vM245T3k5T0dEbnZkRnMrdnphMS9NQ0tLeXRKNEl2c3VFcC8vK01rNnloVDl1dGE4Z3BtCisxOXVnQUIvWktWOGxMY0YrVE1DUHhxT1pTM2ZweElqZVZqazhHUXpWbzdKbm9TMHlBM1BhQnUraTkvZTMreExwCisrcjFkcDBadXhOSkFaR2xOb0RDb0dZN1ZaUHRkZkRtMTFxVVA3b1p5aHFRRWlMOVhHUlp0bk9Vdm5VY2NJR3oyCitoL04zMGU3UDZQU3FoY2NUSU8zNzF5WiszWUJxdFU4SEgwSzZZeERKaU45N0ttZ0MyT0dxVFc3U2JadVJLUmpNCit0OWFubXFNaGErWm8rOC9pQ1N5alhITDRvMnBqVTFYcUZkZXZMNUwxRzJ5UXVGZGt1bElOWTJlUWlxOU11bzFVCitISWEvSExWeVdKcU1FMjlEMEhGdGZacXNIclFDNTNhUURlcHhBZTQ2bDRQcWFiYVc4aGVKZ1M4NTNBQmp4SnJoCitVZVdyODhmdE13R0hzd3ByUjRtYWNlem5RcFI2b3BpckxYK3pzZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCA3NkZBN0RGMEMwNzczM0RDOENFMjRFOEVGRjE5NkQyNzc4ODY2OERBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFjN3JlT2hBcTlvY2x3QUFBQUFCempBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt5TVZvWERUSTFNREV6TURFNU1Ea3lNVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDNOa1pCTjBSR01FTXdOemN6TTBSRE9FTkZNalJGT0VWR1JqRTVOa1F5TnpjNE9EWTIKK09FUkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTNvdFluNXkwaVBvUTBNYUYKK25CQWp6bmgvN3pJU0l1UXBkcXA0eXBETlVQam44bTVHaG9jeWxwZmVjL2tlczdNb3B2azdXV2hrTjZaQmdyMm0KK0pGUUNJUlVxdE4zL1BvVks1L2gvYm41NzJLNnVWM2tWNVdvOW5KaFB2cVVsUmdiMTZ2THAxVG5XMTBhK0xROEYKK2lvTi82YmpyQ0VpLzdyV3kzRGJqSGJvR0xyUFhwRWl1cTV2Q0pOMmJMNmYvS1NDdUdsaFJrS0lMaVlnLzZZdkcKK3ozZ1JLTDRMMVBNMDVhWU52ak9rdjJNN3pxa0pwOE5iZjZ2Z1BlSnQrR1dXSFVKSTZaWXZTbFpvUCs3WDZVUHUKK1VORllZcFlCeHVKVGdTVEJ4aEJTNXp0VFMzRTBya0M5cEVmVmIySit6SkwxRXU0VXdVQ3lqeXBrYjRDRE5vZGUKKzFXVFhjWjQyT09Dc09HdkdlclRpNWpxUFVKZ0FGbVRFNXdMLytYMXRZaUhiOVJBSkRyMFByY2hwRjljZWFtb24KK0xDRUg1Rjczc0RscTBVS09XdUZkWUlzUWpvZ0w0NVpvcFBvWUtpOTRweVFsaEovSXZmU3RDVVRSZUNvTXRPZ1kKKzdGZUlnT1pVN1NMVDgxdzBDc0dsUWI2VlVwNnhkYnI3djNhTWFJMjNSb2Rnd3UyU2diQzBPaG1pbWduay8rWmcKK0lIUUgzNnJONDJDZ294bWZwRmF4cHZhNjNpL1h6Sm5SMlhRTThtYVAyQTBoWWwxUTBrU3VoRit6cnJySTE2ZVIKK2pMYnlvMWdWdUhaVkc0emdPMExYRzlQQ05EenpCaTJRQWtPVjJPbnVLeXNoY2QxL0drMmExREpKOVZvS0xnZUEKK2ZIYWNrZ0kvWjhtNkREd09wdy9SKzBack9mc0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKeklKNWRiOVYwUEI3ck0KK0F1eXpaZ0N1R1lsUE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUVpXeTl5YWxxYkIzQ1J5UnhOT1dSeFU1MEQ3RTU4ejFMdWJJeGg1SEFIZ3YKKzZKRjNTNnI1NU9uSkhXK3kwOFkxRGhOWmFucXVveEtFT2hHTDlBazQzaVB1VFc0YzQwUlpCZHNtSEIyeTZXdnQKK3hTMjdnZ1pmTkJiVWFiTzBFSjBnZkpRZ09WcnJpeGx2NWNERStQYVByYTdMRksxZFZhcFdWOW5HKy9JRHJoT0QKK3hyN2o2TkxESXZhSW9Sb3c2NE55ZWtHSnFQM2g5YU9DSzFvYk1ldmE2cEE1d0s0TzJuVHFJRkg2OFMrY3JuNUsKKzUxOTlQZ2xaMGc1VFhuQzB0RVBpTVRJWTg0bFNQYzdXaVpkaUVKaWhtZ2JtSHBPNkNGbFRzUHdTN3RYSmZxR2sKKzljektwVmVhRkZqMXpFR0x1bVY2K1lFd0ZBYzVOZTNHUWt5d3M3MjkxckZydjJKNDY5T3NMZVFHckl2Rmd6dXoKK0VqVG5hclFGSkRIRGpzb2pXcUtRSjQxUVNZNWF2dUdLTGVhbitWUDZ3dGlYQlNmVkp2Z2tRSUhZRGVJMndDelkKK1hPODdPc2FEWmJTQVR1dlFNcGgyMFZYYi8rcWFQL0pSYWxLbUhqWHo2ajhSNW5CZW5tTjZrejA5Rmg4L0tuSFcKKysvT2N4UTc4YUlubitOMFhpMW5iQ1hnRVVZNXFSSzROcGpNME1mNlNRcXVremJyOVhwU1kyTTRTTC9iZkxVYWcKK2JMREhKK3ZuMHJobnNFc1hRSG9rZ3ArVjdJZ2p3aGc1YzQxbnhTcjJ5UnB4MTBRYUdoalQ2RHJtOGJpZFBDZTEKK0hzVlc2Z3Z4bHpsTlVORm9xZ25XOG1kNm4vMUEwTHp0ZE1zS0JhMFNPTGJadWkvbzczQ00wTEh6UDI0RW94QT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDc4QTQwOUM0NTdERTY5MjZGNkRGNDJDNjExNEVCN0U1NkE5QjU2RTcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQXBtczdYUzErRDdBZ0FBQUFBQUNqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRjMU4xb1hEVEk1TVRJeE9URTRORGMxTjFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFpYbEpaQzAzT0VFME1EbERORFUzUkVVMk9USTJSalpFUmpReVF6WXhNVFJGUWpkRk5UWkJPVUkxCitOa1UzTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF4TDVSa202dGRzQkxrQ0x4CitzYmVDOTdJNkh5eU9OSjBMczJaYVVRTFBjOHZEdmk0aG9SRGxTeHdLWDdsUmw4RUhlUVY3blJjdFlwNm9NQmtLCitPM2F1QVNnVy9DVXFaSmtmODdRME5xaSt4dlhPemhrNU1WSlBmZm9rbkppVU9lemRpdDgydE1IOHNSYmJkQk9OCitVM0x1V0M4RmFQWUhUZmdGSXJlN1o4Mk9tM1JjNmdWa2ErUUVBelVOUkgrR1p0SElUSGFWem5OZG1YMFA4UjdoCitoZE4rRVhsOEx6dlh6Ti9PdHdOeXNxSlEybEF5d2ZZalFVKzJJUTFTT01TRmpaRUQyRDlOSmJtK0JZRkVCUFRDCisvdjBHUFhBWXJNdmFNaGc4Sko1bndNbkt0UGJUM1lvM1ZiWGNLQUpTblErdDdpSExlbDFkTEY4QlN1YzZBbFE1CitYMFdzaVFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVU3WFFYbUFRQ281VkZFWGt4aHBZMk5PVDJEUHN3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQkZwblAyCitsSWhJNU83SVl0VGxGVmM4Uk1GZmppd0N3UVZYbklwTVVnTWRTRkx4RXJVMGg3L21ab1ZUSVEvV0g0ZmFqQVVuCit1elN3OFJYZHYxUHRiQ2cxa0RucTBxSXVKamc2WFlsbi82eExQVXdZZ1F0dmVWdFNLTmJqYXIvQmw3Rmhpam5uCitqRysxRmtTRTlGR1FXMkFveXNubHFiZHRFQkdqNURiUDB3SG55UW9xcFpGMGNOY2MzL3l3NmZlQ3NJNFdqYnFRCitZeEZzd2VNS20wdU4xTzJXSWcwWklkZ1FjMy9peEFqUXVsYUtsb2hMZlNJeUU4THZNVUIvOVZ5aklnc2xPUk0yCit1VkdUNDBqQjFEQ0s2REhLU2NJQndsSGlUbDZUUFAxN2ZzMVVJNm1TM0h6WHhRTmtvNUk3U0FUbkw5cWo0Mm1wCitxOEVzRCt6NW1NUlJlQ3krOG1lamRmVXZaZFlhMFhxNjhkVStNc3hGZGkybEo5RTRtMlE4Y0JJQjhqU2xoKzBiCis4dGZXaXdvZmQ2WTluRTA0YkFRSmpEeHY5cWhHdktPdVlkTHc5djJwT3pVdEJSTlpPM2s4TEpISW93MWpvaXBXCitqaXJOeGZOTUIxZVhsVktyeW9WNmc1enlTWUlKSUhkQmRoOXEvSjNKS1VNSmdPTCtrN1JvWVNrbTkzRTJ4Z21hCitBL3RvZ3cvYTJCZTh3RG9sSXZ3MWtmNjg4M2dlU3dneklLY2UvbXVuN0U5RERDdzQvOGNLZTREYTh1NzFDSzE3CitqU0VnYWJVL21Ya1R0Umt4WEI4STFqL1kwSy9pQU00amRMakpCWlFrbzBPQ0pDelMrckhnRGYwbmhiTkRkNkJMCis0VjJYOGNKSFZ6VXRtb3JyRGJJN2ZGLyt0bkcrb1dzMGpMaHJIUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCA3OEE0MDlDNDU3REU2OTI2RjZERjQyQzYxMTRFQjdFNTZBOUI1NkU3IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFnZGdVRExMc3RPZklnQUFBQUFDQnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJeE5ESXhORE13TkZvWERUSTFNREl4TkRJeE5ETXdORm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDNPRUUwTURsRE5EVTNSRVUyT1RJMlJqWkVSalF5UXpZeE1UUkZRamRGTlRaQk9VSTEKK05rVTNNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXZTdHNMSjJuUjUwdnVOQ3YKK3kyYklJNzNiYjVnWU43L3NqOW9zQW9DVTB2bm84WnNhSEhUenY5QnN2b0tTODNFQklGSXFrVjlqRzdIUXhiS0UKKzRUMmxpQ2VIc0l0VUZZSVRKd3NlYkxBZTdCMTdhaHhLSW45UEtSNlkybVNVb3luQUtxNFRLd2hxenh4K1puUW4KK2RtNUl4cXJZcWZXcjIzZHhIR0lGRERUa1FOdG5LamY5U2wyR21MYTJJYWg5YisyNlFzQ05WY1hzSVI2MFJWSjMKK25heHpvTmx0a2dHeFpnVUdIdUg1Vlhqdy9HbkRIOFVDZ1lWdHg4Qm85SnMxZHh4S1FEVzNtY1Y5MUVjU2xHTmEKK1RPNFpLQnZlWGI3dHRPbWZZcktTY0lBNFdwWXBiSVZmVnM1SWswZFdSdnNSa09GbVFwVU4vVVl6aUhBRW95MDgKK1NlS3p3ZkkvaG1FcXk0dlBDSmZCMXM4aXFDdHVNK2F1cUtncCtsckhOQU96Q2F5eFE5ZVRILzRNWWtZamhWRWoKK3orM1dtTUxoZWpNQ2hpRng1K0ZJTHhxaGZvVXBaLzBYQ0diUkhpM01Wc1ltM05KMWNtOUJnbXY5NzVNRmd5OWwKK1ZqRzdQUE5acExoQURDVDA3S2xoMmlHdDNuOEtRT3NHeU5vaTB4UHAzblQ2OU9MN1g3YUJOYXozaVJRUGxpVSsKK3p5VEtLVzRsWE9HbWZnaTBvckVFY1NzbWRYbGw4Z0ZvVlQ2RVE3VzQ3MnYvMVljZ0RWTmZvbFhKWkw2akhZUHQKK01pYXhWTVhlV1QzVkM1YnQxczJ1aXpWeEg2VWhYTnJ1UnpHL29kZDB6M0NMWVljWk42QWhOc2hxcVU5Rkx4c2EKK0ZobFJiMFprWE81NjNSdEZtdU9iWWh6M1hxOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZHaVVwR29SLzFKWmVvWG8KK3oyWG4xcTVhQStVaU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBRERXV2x4YUJCNWxTSE5Obytmek1rbG1SWHVwTWlDeXdVOGhXL2lWcmgvcGcKKzBock5QbnppQlRicmp0ekFocThzcVdXT3BoelpFUnRkS2JwdmhQQWxIcGVwMVdFdVJMeVFKM3pVeW9jZUFhTmEKKytVMXR0UzhBS25UWmk5VjJrTXR6Q0dBRWJZQ2wwYlFEaFpBQTVGS2t5MkpBM2ZFcE5VRmtEMHJaZGhoZjBaT0oKKzdhSVhZUFYxZHVzMHE4MURnN3RtZDVrMDM0K2tnbmpVOVFSMGdlYjc3RnJMUGRvczdWM1pvYlVrKy9RY1ViVFAKK05obmhGU0RKeU5XT0Erckp4Z3Z5Vjh5MytWdUxlQWZrZitPWC9UVXNwS1RVNG9zdFYxMmh3cGJCbmZ4M3NoY0cKK2NoS1piS1pkdWwvRHZzL0pOYXRvOXhkMHBxL2tTaEQxSDBlOFV3OU5yNXNmek1hZXFYQjJZNFg5UTI2WDFmaS8KK0s0QUMyRHZ4QWtnUXpzNkdTUmdLemJpR3RsRDYvWlI5aTVQUlJ1a1NocndMM1JJQkI2Si9vS3dtanFqQVB1cHkKKzhLdGJENnZRZjN1WEdKZEZ2ZVdFaEh0YXpQU2U0eVA2REhFakFBcjBmWDBTQ2drOG5iMTdUcEhjcWxiL3JpV3IKK2sxYlNIMnVnRWZ2b0c0bVQ4cjZ3SlRYY2ptY0MvdUhIVEtuNUMwQ0tTZ2tNcC9WVnRkN2dtTFFLSkZGeHRCRkkKK3RUbVNUYlRrc2RlSVZsV2hPRng0TzduTXAzNG5HS1ZwRThTdENGc3BPNjNOcHpORExNOHpyRUJvVlpSRlgxQmsKK3N3M095ZnVqSGJWMVdwcUFPaHgyK1g1WFlueGVBSEpEeFFXN1o4STFaa3lLTWhReXNNeHhhV0pBZ3Njd0hhQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIDg4YjNjMTNmNjEwNWQxMDQyMjlmNWFjMGViNDk5NTY0YWNkNDczYmQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQTI1WWNXK3BrM1hFQUFBQUFBQURUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TkRneE5Wb1hEVEk1TVRJeE9URTRORGd4TlZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFpYbEpaQzA0T0dJell6RXpaall4TURWa01UQTBNakk1WmpWaFl6QmxZalE1T1RVMk5HRmpaRFEzCitNMkprTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF2L3RtdzB3cFZhdG9SeXE3CitidlFucGRrMDAxNTRQaFVRTXdwTFkzUUhwcnMyZElEV2dhVkZZUFlLSTBITTNrelE1OTMwNmNSK1RDZnMrNzhLCit1dmZxNElwemNBVUJ5M3RaN01rclVkTEpuNXcxcE9KbXhraFE5aS8yMHkzNkhyUmF1cnYyVkc2eXhzNEw0TUg0CitlOS9qZG5zK2NENVBiTWFqKzBaenUwdU9oYVExL1FBZGRrWTBUM1FhV2JCNjhFSVU5UUIrd2sxTDh6WmtPSmptCityY1pMNGluWmMyQ2t5VnIwU1dnT0I2WDlyNUF1cHpNKzBXbUhidkQxNGlGUDRzUW56bmRBU1psb09oZ0tISW1PCittamNCWFNuaDhyVmZOR1lyTGxFd3lFL3lkSjNxV2VSL2RsSUEwTmgzVFBDV3hZWHQ2ZFNzb3pTZXdBV3EzdkdFCitIQVlwandJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVTQkZlT3B2dWJrM2Z1Q1ZpZFhYTlZBQ3lKdHN3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQXJuOU1VCitDNUtjS3BGTWJqMkFFUGdQemw5WmxobDluTUFOZGtuRnl4T0VnZXN2UFFRYTZhZnZabWVrbVU5VWlQQ0oxUThBCisxOGJwQk01Y2ttMjQzYkhENk53dVNUZGFHWHRMQWtDMHd2NUNQbW9GZS9aMXlianMvWWpmaE9ORm13NlIrVE1GCitiTU02Ujk2VGNxbytjeVprZHJvUll0SGZLUGJRb3g3NWV4U1AzcnROeVJMMEZSS1NWUkZtVU1FemZsZ3Z1SFZ6Cittb056TzJhREx5UVhUSlpQYm16WW85N0dBWW9iMEtzbG80MitKUTMrYk9FbUJ6UEpOR01IRUFJejZlRG1ITTl0Cit2K1dva3BvY3JLcU1UbGNnNGM0dTdDWjd1dGJCRU1DUnc0RDdWL1BYV01aUHhCTytPR1lZWGlkeXFmbjdkVDVXCitZSlRHU0tTVVc3cDZpM3RhTFM0S2tZVng1MERGSjg2azlSYjZsS0RXK0ZhOHY4OFRwdzNhcjdwWmdCcUlDUVYxCitqZTV5Znp1eHBzckFtUGIvdmF5QzBzTlhtYVVuK2kvZjlPUDJ6elR3azlRMDU5d1ZmdGV2ZytiY2I0RWRLc2pOCitINER2NTdwNGFiRmtRNnAxcllJV0lWOUY2SVZlWndQNzlXc3JFVHlnR0dXelYxSytGWVBCaVN0ak8xUVoxa2dLCitmZWZuTndTWXFadUZKbVZndm9JbU10Q2xkWXh3MFpTbWNsVXMyQVZpand1WmtpL0JJM212cUVaZENBeWN0ZmlJCitEN0JpRENVZW1wS21NY01sR04vcXNhTWJMbUxEdnBjVFh3M3ZtNXNUdVJTWnIzYmZaYTJyZmZWdlduUTljZ3NYCis4SmhKVzZyU3laT0F0TDJrNm1JbmhTNE1lbERUZHhTdFZwUDBiUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCA4RkZENDc4ODBFMjM5QTNBM0EyMERFMTNFREYxMDFFODgyQTlEMjFECis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUFjZmNGY1dacy9pN3dBQUFBQUFCekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EYzBNRm9YRFRJNU1USXhPVEU0TkRjME1Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxaWGxKWkMwNFJrWkVORGM0T0RCRk1qTTVRVE5CTTBFeU1FUkZNVE5GUkVZeE1ERkZPRGd5UVRsRQorTWpGRU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMTh5RXVwajZUcWRDQW1uegorbThTTVNmdUI4RUJpc1BPMU93emFxbkpzemQzNm40RG9leGYxbEtud0ZjdlZhVkNsbTNUZGNzZ1lHcWlncGNyRQorbWpxbUNXT1VpMTFJUGJidk50WW9Fc3JZcjVGdjlVU1dYR2lmMk5qZEFGYW0xN1lWL0pTZ0VZRjlGaTZ1UGJtKworWTIwczdNR002b0YwWlhCbng5V2trUTRQZXk1L0xSMG9hSnI4WllIRHFtRytDcDJZVE5BSDhlaGNCS1FmZ3FTUAorbG5PRnh0SGVKU053Mkp4UWgxQUh4WHd4MnExVDhHb0oxWnl0QkhRbW5hRXg1L1pmYzYxeGpnZm5PdTZDMDcvcAorWTdhSjI4bHE2T0t1RE1MZWNlUzVFVTFLNU1RaHg2TDEvTnJLM2FCdFN6VWZDUS80N1A0eW9kZnNXak5jTjQ5ZwordEpNcnF3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVSWxtcVliaFY0NkpBZlBJNVY2QWtpUXFLaFNRd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNEcHVvcgoranBKYWdRb3FaK0dwUmh6WUVlc211R1VUUTVza21DcVJtbUlEU2E2ZlVScU9CWEdMdDd2QTZ0Y3Z1MHUrMGh1QworQTJpeEUrdG1RR24yYlk5WkVRSzRhZzZSeWhRdm9LS21aTCtQRkZ0Qlo2TFpnd2VpRmdYQU1rYnFVYlVReHRCSgorQS9NK2pKUlFkSEtwWU1JQ0ppazk3a1BtVGY0dkZDU2h4a2hSTnc0MlQxNG96NmZWSUNzZitOUTJEcndYNVlFcworMVg4dzhicndzSmJxZTZia2dTOW1TcCsvdzdlZE9PcHMwOXhsejhQTEVya1hOdVBUVVJKUUFKeDB1dXBJaTVBbAorUkpBUk5VSktFTFdpbGgrblNDWmRVWXdQVEwrUWpobDEvODlLYTI4M1lFMm5KVnpkVjUzMDVwLzZpbmthUWIzSworOEFjVTNGTnlWemRFYnI0aUtnWGZTRzd3by9YZGtqSW5kVVR6UGl1SklHcndnd0dLNE1aSXdoa0FGUjQvQlM4UgorckJkRkZJV3R2a0E0S1l6MlAwWFlCd04wN2FqSzVwaWs5akJjMWFMa2taeCs3QlJIWHVLOE03NXk2MzNiQkVaMgorUFYzbjV2c2RXeVE0ejg5R1R5Nk9IMU41bnJhZmVWZ3J3K1N2RGxicThDa1JnN1RrZ2Z0K0pMTnYydVJGYUMycQorREgxNHQ3ZlQxV3FQd1JpZXlnMCtEa09EN3g4MjIrdmloeFQ3dGs4enNYTGV1Ry8veVIwMFBBMmh4azVvZ3I2agorZEtudVh4b1dWU3BoTWR1eDYrK0dEV0FWVThBRXBiUFJoNWR5bGR0WWNhNUozZ2hGU2pQcFJHN1NXS1RLaHIvTQorZWJhaXdtMHRqQUlWMklWTnhXSXRuUTVMUUFTM2FxY2NnR1dkWUE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgOEZGRDQ3ODgwRTIzOUEzQTNBMjBERTEzRURGMTAxRTg4MkE5RDIxRCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZ1JXTG1CcklwT1VHQUFBQUFBQ0JEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXhOREl4TkRNd01sb1hEVEkxTURJeE5ESXhORE13TWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzA0UmtaRU5EYzRPREJGTWpNNVFUTkJNMEV5TUVSRk1UTkZSRVl4TURGRk9EZ3lRVGxFCitNakZFTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF3THl1d2tzZDB6RWQvTWE5CitFWkx0TDlZY3RTM2FjNmZBWStJazdld0JCS2d6TVliQmdkZ2V3VW8xOGVJUWgxTU5mY2VtSVVyTU1NTXBNcnJICitYSTEvUFhzSkJ4Qm9QWGJNZm9Zc21sSGptYlJZYXErK1E3ZTVzS25ydnlrcHhFUThQSFpWK1R3ZXdqTHZOYVZICitkaE8vQjE2YmRINFFKcTRScGo4cUM2bWVCZUNCdjVrd0d0YVZ5d1p0RkRPWUZKR1QvQ3pRNWFVUkVIMi9WanVXCis1NFU1Z0htMUpIOWt3WCtOVjFVbHBVVnhyVmVnQ1ppZ28wMTFQeElnUHo1eW56WEdiVEMxL1lkOWhHdzN6ZzZ4CitINlNsR21ORnM1eVpxOXBHSFpUb3NDTEMySTZ2OHNIOXNCYktFa0ZOMUVqRjlqS1VUOUdiZ3lyVFFyK2RhRlZuCisyNSs4TUFWSnhZWjEydjM4UFppY0hmZXZkUjJQdGZYeTdGK2dHUnJDUUUxTGZoYXBlamZIOXFqRlZFY1dlc0ZECitwY0pYT2s0cGdIeDlBSE9ZejFIOWd6ZGY5TUZhQmpRMFNSUkVVQzFjenlRWmorSGxwd3RwbElEYWZYZkl6aTNlCitOS3V1aFdaOXhocmU0c1VSSXJHUFE1dzJuT3pvMnMzb2hOZXdVUWFzMDRObU5pekJVVVNYTUMrWFN6Z1lodW1DCitmaE13MnkvL09nRUVCNlY4UDJMUVhaVVRnaXZmT0QwS2hhemFNWVBmSXZhUlpXbDlVZkQvcDc2dTBsQzF2MnFTCitKNWdEQ1pmMkFTbXEzMkdBbklFcWJGNkxzZ1VIZlZMQmw0bmU1YU5NNEdDK2tITmppdzlkTllLRmkzZFF6ZXZxCitiNEVYdXVTNkVHdGFuN3lrLzUwRnJQTlp1RmNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTktKRi9ralBoUnh3V1JoCitsNGlTMEV0VldCYnFNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUxNMENCVXRsakdXMk9ra3dzRDh5ZHFOWHc4UnhNN2NxSE9meXhzM0RuV1hDCitYTjFTZExjWEhibmcvdmRrNUdwZXoxdHBwR1gyWTlrUnhSSmd1RVpSWHowV21CQjJBa3JKNUtIM1hDK0p1RXliCitiUGwwdWpYYU14L2wxempFV2lxUUtMMm85WE1CMUthQUxRVlBldDM1OWJ2bDdHZzFRMENjYjVlUDg0cmZZaS9aCitFR3c4ZGhhQ2FFRzZrWnZrdzZxeUZUMlpSVWExVDBJL0hRWjhiTzRkK0xlZVUvNG8rcFhZUzBGVXNUSHpyZnlGCit0V2MyY2JnektDV0tMbEJFY3BXcDdlZjBrVUlvME9XZW84eGNaZXlCTC9XUFplQkd1N2xwU0ZJYm1XZzFWYmdMCitOZHZrWWhTOGxsbFAxa0lkZWpOOGh2UHI2MjlHeHFCc2dTSG5PdHp6V2k4RGwrWnd3WUJtWmZnNDNqMW9SaU9ZCitsTE1wWk82YmRPNGhFOWl5RVY0UDF6UlRMQU9JSlRaTzZDTlJQTUNYUnBzL2UvTlUydm9EbDlkbkdiR1l4R3ozCitBck0rMkNLMnIzOW9QeFpoblRycU8rZkRzcXI1cm9uQVdDb0hOUEMvQXVlQWs2dm11bTdNcVhIdlNJVlZQYm1YCitjWjZTQ0hSdHdhVG1heTNjZnMrYm0rWnkvc2JJZVhPQlpXcGdjYVpHR0xiVUdrVHBBVjNJSzNoeVR2dmI2RlN5CitoazNSdmg5NW9SVDVLRnd2aDI3NUtnNGYrWTIrQnQ2RXY0SllvMzdsWEdoa2tNK1B0VElRMXNyMDN0amFhMDBsCisveW9qTStQSTR3Yjl4M1EzQkF3SmhvRFh1S0dSSFdKa3Y2NTYxMmh6RkwvdjJTQTRNMW5uaFM4RDF6c0Z5MmM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCBBMEM5REVDMDhGRDM5QThCNTlDNDZCQ0JFODdGRDk5NDhDNTVGOTcwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUJ4a0piQXlHeENSeVFBQUFBQUFIREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EazBNVm9YRFRJNU1USXhPVEU0TkRrME1Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxaWGxKWkMxQk1FTTVSRVZETURoR1JETTVRVGhDTlRsRE5EWkNRMEpGT0RkR1JEazVORGhETlRWRworT1Rjd01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBNVpLSk5qVXFGWU8wNitZeAorcXgwWUN2OHFjbFdaU085dll1eXF4b0NOdUJEOHVSZGx0MDQ4RnVWVXQwOXVNYmRVNVYvRndJT1o1dEFGTU5BdAorZndQMGI5Q2N3aEkvZ21oTGE0QVE2OWVZTlBuVGRpbjdTdmtWZkdFQVU4dkNueGJvV3hicG1DRHdVU2tnaVNvbgorODVlZDhONW83SkpIb3dPNUxnaldVbTJDN2w2YnJ6cmVHZmc2YUM3aGJCWXgrL1E2NFBrem9tM2ljcmRHMWFuNAorcURlNG03cFpLbUgwZzNWWVZoUk5zb1ZTZnhHMmRCY3dPK2JOYXIrNWxjYzF6OEhNUUtnclozVkQxTkd3c0RCVworOGFLeTcxRGREUSt2dEROUVI1Q0RVUlJnQm1sVlExaVZSU0JsRmplTG44VDFYeVdSVjU0b29ubTNydnFnZ2V4QQorS0NEMVN3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVME1RaXlMUzJpVFJmZmlTTWRXWW43RW15dmMwd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJnUlhidgorUXk3NFFnemZ3d011dWllYWNKR3Vjays5ZFRvTkI5QmVCNXJ0QkpqK05jU1RMbmUvNzdJcTMyTnBpTzc3V0U0TgorQTBJUlB0UUtReHZ5T081dU9sL2NvMXI3UkZuaElvYjRqdEFwNGpQSTYrVlI2b2hFUWUrQVFlQldYNXNiM0QydgorVFJTQTh4YUZmSEIvSE02cUZ4WjZiNEdWd3N5L0hKUExMS1RvYjkyQ3grOUZ4Sndvc2d0R2gzVDR5ZkFVQWJ2cQorN2FMTU5GY091eXdqRUtSQVpLaWh1cHhtMjNEQW5DOVVveHVhakFqaC9pZzVhdGk0RnQ5MnZlNmdYQnRzTFVyMQorYTJ3ekc3YjBrWCs5QVpaMFZBNXE5d3BraERNdWJwR0xpcHArV2FKQkhmSUI1RXVPWnBkbllhQysyL2lVRGtPVgorQjRyd2R6UEEyQmRZTlJkVGFFTHc4R0RBOW81dERuOUs3bVVzM09KU3VueTRZaGhRc2lvWVFZWVR0SDQxdjZOYgorUWxYZGp2ZThxWUdXTUtMRnpEMTdldk1VUUozM1pRV25LVStCejRoRHB6TXJNOFUzb3B4NnpOTDh1TnRlS3REUworeFV5RXlJUnN6bUxmczNmbEhpbUZuZUpXSm16YzVZdFlmKy9OZU9IL3BENUtvNFFycCtteU5HVnJ5aDl0V3hZQworLzZtTVhJUSszZnNYZ21CejV5Y2pTT0E4VmlDS2pMdE83eUJrRHNnR3dqRy9PTU5XcXJtU05BZGpSTCtwamxqUQordUhkOFptZ3JzbmQ5T3NCdVFVZDZCWTdNSG1xeStEMFRsS2hrOGozSW9hRUlwYnhzN24zeEtucjRjL1g5QmhZegorL05hL2FtYy8yaGRJa2QvSmFpM1FYang5MnhrRDBvK0J2eG16dEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgQ0E2OTcwNDU4NjczNDkzQThBRTE5OTRFRjFFMjkyMzhGMjdGNDUxOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFDdHJPTnlYditrM2pBQUFBQUFBS3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEV3TjFvWERUSTVNVEl4T1RFNE5URXdOMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMWlhsSlpDMURRVFk1TnpBME5UZzJOek0wT1ROQk9FRkZNVGs1TkVWR01VVXlPVEl6T0VZeU4wWTAKK05URTRNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQWc3WWRhL1RBOHc2bWZZTUcKK0toYXFuckhIZlZPTXliQUNLZWZ4TTVMMnRDVTVzZnRpeDl6aVVqYXc1cWJ2ZHkrYkFHbzlnV0dCbVRPWGtxd1gKK1NaNmZvWFFFaERBbzk5SnpEak9hTjNUbncyWVc1VnF6MG9CakgwYW5EcVAvVWd2ckFsa1lINU1nZ1JNcmgzU1kKK1ZjVWVWNzNlQlhGUlp1a25IU2haaisrMkpvRytpNzlvdm8rNEdsbm52cE5ySnF5dDc4T29tZkw2UG5nMWxzdmYKK1dNcHRtTEI2akIrQXc1M29kUUp2VnYrWG5ZaWo0YXJkMU9pajFPYU5CTmNnZzhmbmM2Ti9aRnV3L0ZHUlNLTlIKK3BYYWRCOUowWkJ1Nm4yMVFoUUxCTW54NWx6ZzVGdzlCa3BJeXk1RFZZWU5ScnBYWFVwTXd5a0d5TUNHZ1JZbG0KK3gzWVBUUUlEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUpsR2hjSXBxM1MrbTBTSG10UnlrTW9mb3JpQXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCaFRkNVkKKzV4b0p2dmdYdEwrd1JvZWk1T2pNM0NWamF6TXlDbmRhTENEWlFqaVAwZ0NVZFBUZjdUaStsV3puMVZ3MkNDVUcKK0hyWmlROEFmbE9BY2dxQUp3Wnh4ay9uL3R5czBBL2lPSW13WFFtMTlsbUhYVURjSzI0LzlSdGJBN2thMmdJaTMKK2ZDWXg3MWhaenNzRjVQbzByNi92Rk5JUjlBMDl1ODBNU09KSkVORDlsZzR6UFNGa0hIM2hUQXRaWkdsUjExSmIKK1VYSVlvcG9UK21wSGtPVE54aGVMMVI3ODU1L3RFWjIxM3BpSVJ6RW1EK2xhYktMYlprcS9tN2JpRDlHaXlmWU0KK21KY1hDb0IyVS95amx1KzdSWnh1NTQxRGc4R2ZQOWp0T0haNHJhYTAyNzFLNksrOSs0YThMaFp3cUVOMCtqb1cKK3B3TGgxSzA0aTJ6UnRZSkdZM1djRW9LaU1kc2hhS2R0VFJVbThUZ001Q2JSVDVLdkhvVmFvOVlvazdoMzZhdWIKK0wwc29QVFE1UjFueUF2K1JNQ1ZFazk2NG1MZ3pJSzhXQUxJSXVNK2NSV0kxbFhSWVd5UWlIVGJVOEM1Z2FNd0EKK1NUYTdYMmViZW5NWkZOb1BhM3dwd1JzOUJkOVRBYVpGaXM0bXgwUi9XZEZPR2h6L0xjRTRPYWlTVmVsVHFFRlkKKzVJT0orWVhMZ2lHSHV6c1I2NCtycmhoUGNEVVkrZ3h3bE9UVGlWSzBUM2xoRXBhR0J4SjNsajBCMGw0M004cGgKK3k5Qytia1p2N2FSdmRtekVPTktCVFBEVHFqRnl6L0EwTWxHQVhWS3p3M0xpazRSQTg2RWdyVW90eG5zTmplVmMKKyt1Y2VLT0c0UUxlZ3BDdE1CMGNQVHo0VkJIK1FXWDQ0SzNnVFFRPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIEVDM0Y4RDRDQzEyQUJFODhBMDE5MDY0RThBNjJCNzAxOEZBMkUzNTkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBREZnOVAvZWJNUldQUUFBQUFBQU1UQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRFME1sb1hEVEk1TVRJeE9URTROVEUwTWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFpYbEpaQzFGUXpOR09FUTBRME14TWtGQ1JUZzRRVEF4T1RBMk5FVTRRVFl5UWpjd01UaEdRVEpGCitNelU1TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEzWXpaem5CaXJaQ2R3RXA2CitBWGdKVnB6cDBQK3BxRnNnUEVrYWxnNVNQcVI1L09qU1RHbWdlMkdBcVo2MzJTMzlhaWRRWW9RWVhlMjhxd0JQCitwMCtSdDB2WHFvQXNrRHV0SHZSQ0NqcHFpRzJ6VnpraFkvVittSC9rak5nendIRWk3dHBPeWtxZTlOSHlua3QyCis3QmN3U2VzdE53czI0NE0zL3VRQzBzOTRKQkFaNmpja1hzYzBDMzRBVVY2UWZpSEQvbEZFc1UzR1hFV2JEMWZzCis2UUtXOTcwU1RwWXN0dzdsZU1TYlltdGZJalVUWkVWbjJ0L2pHalNBZVgyOTF5Wnc1U3J4SWR1NmNscGtobXlKCitnY3FLN3A5MXBYNHp6NEQwc0dBRjFOeUN3UWZiSXlmVGJwNnZVYW1xajdSRlBsUGI0QUNvQ2tWOVJqa0NYWFVJCitEY0tnRVFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVDMmF6M0VZYTNvSStaWDlMMDY3QVlaWmJjY0V3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQi9TckdiCitablRTR2ZaYjVGNlpKMk9YNlR2Sk5lakhlM0E3YTFTdUhackVMR0sweFVkbXlDL3MwZmlNSkRqV3U5NFNscUFSCit3QzR0aWhGaGFBNXBlZVE2YTZWVS9iaWg4VmF1d21mTnpMSDdWNE5yOExqVi9GaElua2VFZk42T2dPWnhBZWZUCitKVm8vZkV4Ni8zZURoeXdqazZqQVdCSThVb3RQbEwyZUVndE1Cd0g5Z09aK2dBWXlyU2l0Q0d4NldrT3FsSlRlCitjd2NVRHJyemFmdEhyR3BmVGp1bnVNenVNTWk3bjgzejBHV3Z1VVZ5UGZjMUVYeDVYczUyQisvTFNZUGlRcHpwCitjREFobXZVQnVJaDRYcGtyU1UzaVg3ZUVTU2VNbFprQVEyV212cjE4bTdKa0h5aEdlMGkrQXJSYS8vT2xqNkZPCitjYitVV3BqQUxkTWk4dG5JMUozYnhPaGhhck5GMEtUN25ybDk0MjVxemh0WmhTRVJNcTRPK2pWRVJMWTlQM05TCitzcDV3MGo4YzlpeFBRTGpnTERHUHFJUXZVak9RT3p2MHRPbW9kTE1YNk45Zkl5RjlyY0MybW1BNUhFclN5T0lMCitMaDFiUlNXRFFnRzMrWXdtdUp2dlRpSkNQekVNbE9mOEJjTk1QQlRXWFNubnZvMUhGbThwSWxldEc4WDc2Y0p3CitNMmxMZlpURmttaVlRQ3M0VFdqMXRYMldxamQ0WUtISEo5K0FUOGZuREVBbjBhVkxnZlBROTFsTGpJSDM4SFd6CitmNEtUTkNkZnNzbVFNdytJNGpBQ3p5QVBjdmh5aWJhU2x4VHNFVGpzQzBETHUxWUVHOWk1YWllTGswai9TS1c2CitSZnR0c05QaFlSaFFwRTRYN2ttdmFUY3hLTDArckllTjg5Mm5nZz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCBhNzU1OThiODAyNmZhNTQ0YWZmY2JjNGI5MTA2YzEyZjk2ZDNmMGI4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUIrWFNCUHZjNXhGMGdBQUFBQUFIekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5EazFPRm9YRFRJNU1USXhPVEU0TkRrMU9Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxaWGxKWkMxaE56VTFPVGhpT0RBeU5tWmhOVFEwWVdabVkySmpOR0k1TVRBMll6RXlaamsyWkRObQorTUdJNE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcHhrZStCSWMwN0xiUzJMSQorTk5LeWR1TERsdVNGcy9WUVVnejBQQVVLZVp3aHdCRjNIOVhuMy9vTDMrRVQzQ3FiYzFXMTkwc1ZnWGFralJXNgorUURsNm4wU3ptYng2VSs5cUNaZWgzeEw1TzVYTU1FampiV29EL3VrdU4yb0lOVHZGQ0JlS0FJcVFHNnlLRVg3cworb0c4ZlNROVA3a2trVkZZc2JPNkcrMGlzVlJrOTRuTGt2VXovdFlrOVZCOTJsVm8zQm5HQ2hiSWxqTXJhN0U0bAorZElXT09TMkg0a3htNGtwZ0VEMDNUaGIvRnZweCttSHgrdytSYmF5cHNzTGRBa1d3V1RDa0MyZWVNWU8wOVI1ZgorcXA4SUZZSS9tQzN1N1JySC9xR25iaDE5ZTNMMTRGRWhlV00wR215NzRvU1NmdElGaW9XcXNkTzAwYXRCdzNvawordWVCaXFRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVak9KTGFoSjN4TlIrTTVNTExmYUNXc05od2h3d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUI3UU9STAorSnNxVENJemZrOEFyZ0RmT1JqVm5VcmRYbVVqSllETVRFMHBCeWN1SFgrRzkyYkJZWWYrOGpGYlhjZDV2U01FMQorZFhkdUNhNDI3NUhZYmcxQWovU1EwbGNDVml6aENIanpvblNtdjNtQUNqZis3UGtURU1tMFd0UjJUTWV6Y3JzeAorZGNVcExobmJrdHhxMDIrYncvM1E0RTJtNWE2REd5NUFwNjkwMEtWYzRTbHkyMVpkQWpkQ3dxeHpaQkVRK05ucgorMnJhajBRWTRHQmZnVWsxcHFxbG1XQStjOW94dHp1TG1HTGZiSngwZEpqWmFPRFQwdXNRYXdZd0JsM3h5ZUVoMQorM3drVWlVc2pOa3AvdWpKN3R5VUZiYlNmenZnZU9mNzdRUlYrTzRTOFk4QVR2YzNPamR5TDJFZ2NpOEUxVE1VYworS25YYjVoTXdlUUR5MkV5bHQ3WHBmUGV4bCszWkJmYmt4U3dYUjR0dG95ajgyelBUaDg3TzFIOHgweDgxcWpQSworQ2Y4VHZML01pMkN6K1pqZjViTTFMeWxXOEUxSEJzTTdLMDV5U3ZDUmJPVE5QMTVsdzliNGdsOXZQYjIyTVh1VQorTW1TSFRUdzFvVEh6TkRjcEYwM05Ma0NFY1dDKzk2bXRWWi8yRXRGdjgrcjNpb1JweENZQ1NHblZIWGpiK1hwdgorT2pkQXpyOG9HbENhVzNWVXpjVWdpZFE1N3FBbi8rLzJZVkFjS1FyY2crMHdwNnAva1JDQm1FejlyMGtXREx0ZworL3BEV0lQUURqM0xzNzdWV2tsZGNQellTdGhhQjNKbjY3TG0wRlM3b0J5NjMxQks4bUd2U0lFSzFsTmt4dXRDRQorUDR2RGNVcVFCRkcrOFdvWWJPU1V2OW5pZ3ZQR0RKNzQyeEpSUUE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgYTc1NTk4YjgwMjZmYTU0NGFmZmNiYzRiOTEwNmMxMmY5NmQzZjBiOCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBczhyamVMV3poVHZ4UUFBQUFBQ3p6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeE9Wb1hEVEkxTURVeU1qSXdNekl4T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzFCTnpVMU9UaENPREF5TmtaQk5UUTBRVVpHUTBKRE5FSTVNVEEyUXpFeVJqazJSRE5HCitNRUk0TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFueW8zbWZSeU1zNEU2ejN5CitZYVlBZWpmV1BDK0x6cHlKMFBQandOdEJHM0UvckxYTk5KR0RxNzJFMTFhbzZMeHFxeENSKzFBSncwSGx3K0Z4CittYVpBemdGRjE4akl1R0twMmJsZ2Vvd2lNYTB6eUN5YVFnUTVnT2xSYkdWNTdWZjIyMHV2UnFkc1VrV2ZRNkcwCitMVnNlOWZtOEpyK2IwWEo1dU1wQmxLdVNQYUdDOTVNZHovU0VHN0NPb09lRFlEYWk3L1U1cU9yQS9pYit4VTJtCitXMUUrenJUdkNIdFlpemZ1R0dsM1pQaEdLNGNGaEllaU0zaTRGVGI0VkxYM2kyeVE2VTFBUC9lMkthRFkzSDBsCisxd1FDb0N6NmNQdmlyY2RoN1hReGdJbHZMU3lIK2p6bERTSEZmRzBwUjhwZDNXckdUQnFSSmFaNGpHSW52YmFCCitzdFY5bkxRWmkrbFJZZjZuQnp4VXREMlFBdlgweFFxcGx0R3Q2OEs3VjdYeExLeVFTZVArTHUweVBFM2dTMHNHCitGRGNYbVZjTGUyVDNYMkxXa0FpV2tvRjJ6U2x0VmU2bUprNVZoeCtwQ2JnQll6b3hra29udWxFZVdUcHVaQzBQCitSaStzQjlmOS9vNnN0K2IrOHMyV2dNUXhnREFZZmRYWWRzWkdxTTFLcDQ2UTdtemdtQUtLQ2M4azl3bUQxditCCitwR3V4NGdLUCtWQmt4QzNjeGhDWGhyNGFWRE96OVFGbGJmcXJIUmtDVVltRnNaSkgvb1JrVHI2c3Z0K1U4cUFNCiszT0NHaGxoWFgyYWNkTFBDWk8raDNDK2pSNnFPQWlkVzcrV3RMRndLYjFuemFOSStpa2xVWS9YMU9wbTdtQ0YvCitNbEt6eFVHV0I3d21yRXYvSUt0MU5VUTFBRThDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTXB1NStVN0c5MHo5UGlaCitWcVMzalYzSkRZS0JNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQW1IenZRckVWWVNsNWpVSzQyTWRjU3l6T3U3RWdsOWU1SW9ldWdYZmF1VU44CitVMmx0SzBueTNvMWlpUEtVUTk1aVA4dTBKQ1hiSjVUd0x3NDFIUHJCeHdQYWNWVVZjdzZRaGtVUCtwN2pEaStNCis5V1NJQUw0VmE2cXhGK3EwOFh6WXQydnBFTlExbHBRM1JkdUpiTVpxb3lJVWZmSlU5dHhyVm1mTTRtd3BCVEVWCitIWThDZ2Q4a2U4LzA2UzlLMm1sTXhoWlhCWkxkTHZkNjAvWFM5VytSL1BweUZEU3pMSGl2T1BaTU52dHFEYXJkCitrTVdDMElUZDFlOUl6cWE4M2FIUlZwTjlRa0hyV25vS1VsalBtU201dmdEcHFUTmhrY3FFeGFjaUM4TDd2V0tICitrNWQzQjZMVDg2R2xBcmlCQU1ZeEs2clZJNGhDSFI3VEs0MFM3ZE5lUmlMOVhMZlozb21PRllZaFc3UFJSb256CitobW54dXB1SjBMRXdVdVFJUVlTdHdxbmFGdTBCb3JIaW90STRZQmo4QWxvWWhmUUxpbm40M3lKWUJRcENDazBsCitWaVNScGUxbU5scTArNE9TWVNOVVdvbmx3QkhZMmY4b0lvZ2wvUFk3ZkFrMU9ab2dQQmNmaGp3cG04VzZXTUVXCitvREt1ekJIcVNRUnRsaWtOVXYxbjBxYXExQkNhMUIrV21pTVRDYi8vd3o4L0thS3NwVEdUZG1jSEk2bHRjQ2pOCitxcWFLMXhLL1Bkd0E5NFdrNG10ak0vcjdVaFdKNzF4VWxhaHpoNE8yWEFtWjZjME5kUm56N0RGblkwcE1vc3dRCis3MlRTWTJoMXJHM3p5OEthTUNON1hrV3IrTnBSNGd0UzNWWkx6ckdad1lQajFkNDcveHEzTXN1dGtoMEsvRlk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCBiYmNmN2NjMTg0MjEzMTY2ZGFiNWJlNTNhODcwMTRkZGQzNDhkOGNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUNLMk1oV3p5ckhOR1FBQUFBQUFJakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5UQXhObG9YRFRJNU1USXhPVEU0TlRBeE5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxaWGxKWkMxaVltTm1OMk5qTVRnME1qRXpNVFkyWkdGaU5XSmxOVE5oT0Rjd01UUmtaR1F6TkRoaworT0dOak1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVlqK3owWHJQTmIxSGhPQworeStCOVpBQjJ6YTJoV0lTcC9ibHIzK2tFSGhLejBKd3prQ3psRElRVmhNVlo2NWZocndGalpkdWNyWXZGTnczRQorS1UzVTZZQU10RDhKQUtES2EvZFJ1bW03VE9mcklLbGgwbDhNM0I0YXZIbm9MTEJCVFFCSVVicGkvaS8wb2tMaworSThCT0xxbGdiU1pQYTAwZU15ZG1YWjlHdFUvNDZKa24rNVpqbGU3UjNBRGtCL3VRZTlsa2d1RmFQWlNqTnVHVQorODgzZ1ovTnNaYldJT1pMSEVWZHc1ZktrSHROYlhoYnZxZGFIcUZwTTZUZkdMOHJRbHNmR1p6RGxndktraU1QQgorU25nbTV2TGJPRC9oT3FOdzNaOWZJWFdzUlhLcjNidE45OWhYcnhsWlk4TTIrTzVUZ3M1Q25XL0dKRzFyNTliWAordnNDZUpRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVYllWbjl0Q3NCaHI2YWdPNjdOeHlwb2ptNTI0d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUErc2I0egoreGVJVmFiOEI0Y2kvNWRyT0xYREE2SzFhdUJhSTNZQXZvNzNyMHVlbHpEUG9pWlVwZG9qSE5uUngzekdVSlNKZQorUmxEUkNheGlocVFtNm9lTmt0dWt1cjloNjBxZFdsVVRZdkRiK3BBMHUzL3RGc3RYbkdoRHdWWUUreTJpMm9lUAorV0hPQnhjWWFKVWkyczFUTFhCVHl2MXJKNkNrT1hwc3djRW9rNGZZdHg2d3RWdUxnMHo4SGtFOFBNZDBCMnZDZgoraFVBUW9BeG5IUlZ6bWw3dTdvbGhoMVFtOHRLdnZpM3RldFl5cGNvYlo1SVgwdWxpYUNkSVFQNEFTTGtJd0lRcworcjRVcXBXZVpBRU41Z3RtTUFnWEdVSUcxWEw2Z2hYdlNUSXVvRXhRRno1c1dCSGJiWkNJa0ozTHdiR1pQSmw0UgordEZyNWtwK2R3UTJPNjVQSmJQMmczSmlZREIrYnVtUnUxTDY4UEt4VXg4SVE1SHBKeDBZbE9OMTZ3L0dVWUtoUAorWXdkZUFnN1lISTZjKzhjcWIvb25mUGp1RlBTUnlkOFlqN2dSTWlzSTh2SDNYYTRhMUFuSWlIdWtWbmJZNHh2RgorUDlJalJ2c1NsZ3ZhRWZtcHJvRlp2dDZqKzR1Tm1YK0ZPeGJQNTVWaEdHbmNyOXBtcEozYVF0c0ZhMDFQMlpXeAorUGlPUGJvK2kzOWN0WFl5QzdIclNacmhwRkdBeGp4Sm9NWDNzZko3ZXBhNFp1d2FBRFUzbVZUcU1ScjVaTGRPRQorcUUrTktlVkpaSnlpUmtuL1loZkhPa0EzamozQlhLQ09FSStZRERuT2RFTGhmd0hBdm1PMzVCQzQ0aDVMckJESAorUGlIQ1hTTHF4bTZEMlk2Mk56Z1FUS094SXVFZG11RURiVUlvZkE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJRlggS2V5SWQgYzZjYjJhNGRiNzI5NGJlOTExNzI0ZjUwNDEzMTBiNGM0MmY4OWJiMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFDalhRa0xyR3VZWUtnQUFBQUFBS0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEExTUZvWERUSTVNVEl4T1RFNE5UQTFNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMWlhsSlpDMWpObU5pTW1FMFpHSTNNamswWW1VNU1URTNNalJtTlRBME1UTXhNR0kwWXpReVpqZzUKK1ltSXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXdpRnhKUVZweGF2bkdiYmwKK2V1VXUrZkphYyt5OU84TUx5TUY3bnYyNjl3VDU2bVlLUFFxQmdVa09IUXhrOTBBbi8xMGl3Y2pWUkV6TDlLVnoKK3JkY1VoZWpod2lMaU4yK2dFdTVld1BPb2FyRjBOK3ZVSDlOZzl0VDMwazJjWm51N1hVMlZJTlZwN2g4OEFpc2kKK3luWmVzbkl4SHpFY0F5czR5M01aK291MTVYSTlXWUl6T3NRRU1CbGxYcjhtdmloQ3pFcG05cWhLTHZJNTZzSHkKKy9PR0NqTFVGV2dzTEFMQnJ5cFdVcWViME0wMU92THBHOWxzT2h3NTRZYkRKajM3L1E5NXgxajZvSVd0SEg1cVEKK1IxNDBydDlCUCtCaFh6b3lHdmgyYU94MURmV0lsQW9JeFR6MkRKTnBzY3ZhMHZlTTRHbkdZVmszZHdjeUxHM0YKKzUwY1oyd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVXJTa2JzL0ovdTdOR1hzSlRnR2ZQQnZvNlFzb3dId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFDVlkxVDEKK2VwazEzamN5VG0xOVppS09wUEZYVHYwRUJjV3BNRVZwN2ZtbFgxYXBJTUF2eXVDRzJFb2hEaEllT1dPY2UralUKK25IYS85S0VXdGFhTC92eVpBWHViaytnWlhIZEdqc3dWWUo3VDhLQ2RxQzBYL2JLSXpSZjlIS3NvWDgyUHVPMDIKK2lxUHdOaGxva2lVSXlMaFBQR0dvSm1tYWdTcVUyY3I5QWpkREo3WEdBQ3p0blR0V00wdS9Ga2pFWm0zVjlMb2gKKzdQQmM5dEQyY3I2Y1IySnB0OWx2QWEzLzIwSVZuL3dDdFFKdnMrdHFLclhQUWxxZ2pHS2F0VUl4ZGM3WjEvS00KK3Q1SWhNemZ1RWtidU1VcVBSeDFPZnVxZ1BSMEJVMzVTT0ZwYkgzTGhPeTQ1MmFxNmExb3pFdnRWbnhLMk45ZDgKK2FWc3ZpYVNxOFVQNEJ5Q05IZmNMZkFGYWxJZU5BbkMxdk9QclA0emdObGR1UmtXd2phTGM5OHhSa1U3VERCY0kKK2dXcm9EYno5V3BEV3ZwTm1sOHhxcWtiZHVxRHEwYmNzYmtuMWpNVXZNbjE0QWIyNEkxekszOXZGOElaT1Z4R1YKKzVQNlhpWUUyUVhLZ3c1VWJEZDJud0lacHE5N08vdzlSRm53RkdLUEtqdFR2N3Q3NXV6dEM2dkdEdmdoMVcyZ3kKK08xKzNuSTNJUmE4T1pmdnMrNnRUTmU5Si82NFpjeGJxWEFGc014eUlZYTBqQkVDaFc1SFB5NkZEV2tGRGtHOXUKK01MVzA5bHlNUTQ3OWd4WnhQWWRITjM1anBDcEc1TDh5dXhQckJ3SSswVWRIL3djbEVoMHpFVUhJMHN0YTBUUDIKK1pYeUNMOFNIcURjaU5JMXNMNEZtM1F5Y2tNb2lickJiYW43L2t3PT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSUZYIEtleUlkIGU4MjY2OWNkOWYyMDk4MjcwMjk3NDk5ZWFlYjhkZmE3ZTY4YjM0MjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBQzZVTkpVbWNuU3dPZ0FBQUFBQUxqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRFeU5Wb1hEVEk1TVRJeE9URTROVEV5TlZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFpYbEpaQzFsT0RJMk5qbGpaRGxtTWpBNU9ESTNNREk1TnpRNU9XVmhaV0k0WkdaaE4yVTJPR0l6CitOREl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF6azNQUVRrT2duVkJTODJ5Cit5QWU1L3lPZjlPamxmVzRNeklnb2ovUGtGYkx4VW9pSTlHVWozLzB3WDFSeGp6aFIwOUt0WVpTc0dTeFJheGlrCitqSUY4cEpVT05Fbll1ZnZ3Q1FveWRsVDJ4TTdZOWpGNk1YZXdTMU5RQzMvV0VzRDEzS3lMZ0ZEdHlMeFhEZlllCitEbnJoQU5VMnc4K2hvZHlxTldBS00rV2Q1dWtURERWR2hqZXFvV1FIMVRMeWpiUkJtMlJZU2xIYmdnSE5jaFl0CitNc3Jva2FHbVp4WmVEd0ZTcU50M3hjSjFLR09ta0VHNDhwUXBwR1MwY00rZ012TjdIbVNDUFJ1SGcyR3pvRXlLCitXeDJWOWFJNVZWWXNDZ1Bab3RpeGtRYlo0K0dMUkhJMXV0TzY1T0RjWTJpbDl3Y3d6S3FEODRESnFmYzE1elRhCitpRWFncVFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVVrWE5UZ3ZFWVRLbTc3bzVnUGlXbjB0VEtGVGt3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQTFhM3N6CituR0srYU5IM2V5K1FEbCs0eDQrRWFkNG9jVFlKRzVQZWN2ZGVESVZwOUNqZklienZaL0xpN2ZFWThMUTF0VVlICisrODM3cmpWa2xYZ3lXUnZibEhxclhjTm4yV0NhT2xlMlY0UUVCWFRsSHVjckp4RVNBMzdpRmY1OUNOTWwwSFVKCitaVjN2QXVhejdyNkpyRGNTR3JkeDl1T3RUc3oxQ3VaSldlOGFQTksxeTd2bzI5bkhVeWhpVXBtU0VveW92c1FGCitGdE9FbnViZFpvbUphQmhYMWd2U2NFRm9jQXlTRlg0Q0V2R2VWMXV3WU5XWW0zYVNFTkVxeUlNVlVOSDd6YjJzCitSRURCRGdYcHd5RXFROXc2U1ZrOWxBeG54Vm5xbDduTXpsRDBwYXNOVlJRTEdmN0Nzdm1peGdxblMwVVdTTytrCitjVGFmWFVPdkNWeU9UT0xSZ05VcmVITm1FYW5qME5xRG12Y0tOY21lVEhlUXFweXpMUzc2SExiaVdQSTdQRkIxCisvODJ5bURxTjYvdjAyNGJKeTNhek4vL3RCVTJmZXJwQzgwVFcvMm01aWFmLzRMOUQxNjhFLzFhVU5BWW03S2hFCitUejQyOWt6bDIyOVdwNGs3ME9EYjAxcDBFWHJTeG81MG96R3JEVW84NTJsR2RoZG5RWWNzck82M0hNdWhKR3poCitkUnYvVThzK0lXM2d0em4yTE52enNNbUo4ZXZTQWtOUldMRkEyNzJqaXp4Uzh2d0VmQ0M3ZnJOYm1jVjlRazltCitYTDkvRVVyK1pnUC9OblF2dlhGRTV3MWozRUxHMnl5UWpaczF1c2hNbm9XbWhjdmhtUmZ4WTFwcUJsbG9yN1ZPCitlNFBTUmt5cDJiWVFnZWkxYXNFSTZrZU1tZWNHcENFWEg2aTVhdz09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElGWCBLZXlJZCBlODI2NjljZDlmMjA5ODI3MDI5NzQ5OWVhZWI4ZGZhN2U2OGIzNDIyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF0QzZHcVpRaXI3VDVRQUFBQUFDMERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVeU1qSXdNekl5TUZvWERUSTFNRFV5TWpJd016SXlNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMUZPREkyTmpsRFJEbEdNakE1T0RJM01ESTVOelE1T1VWQlJVSTRSRVpCTjBVMk9FSXoKK05ESXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQThOcFhlbm9HRXZlUUlJMWUKK1BQQU9CUnc2Uk5pL2l1TE1KSEo1TjE2blhhQjVpZ3R5amd2SUlmMTZNZWZ6SUhJaW9ZMXdHQlRtUC9UVjBCeGsKK3JSeWlYdlB0RnRHeTBNNSs1TjljaGczd0xzTyt2WEFsYklsWm44WklkOXZYVFN6UTFPNHN1YWpJM3R5NVpuTWwKK0Vya0dMdXZCN2F0YjdWV0U2UDZ4bUhuNEtBNnRoUnNWdWdIc3gvbEozYkdJdW9DM3JqTmFYQjVqemJJUXh6STAKK3NtcjROdWtuTGtKWm1nTDlyTEhtVzlWSERONVI5dHFiQ2MvbTUydnI2ZnE0QzV6cVlLM1creUZvTnkyOWwvWm8KK2dYZ1dyc1pZa0krTnhZcHYwL0dWZ1BqSGttKzJ4SkVHdUc5aTFBb1N2SzJyNkcwYnFZNXBjWHZLa25QWnFQR2UKK1c5bUNWQkxnQ0VDaVhHSUVzYnFkTWxndEdOUDVacDNJNTZvRWtuOXEzN1doaUhEcnl3U3RQMFlhM1B4UERVcmkKK2xzdHB3WEQxY0tjNlpJZWUrTFE4S2REUHB0cCtNZ01lR1NBNS9YUERFZjhkRUZ2NEtQa2VPY3JlOEd6b1plcEcKK29Oa1RyYUgvK0ZsMEVRbzhsMmRWaExIUktzOUU4NjlYNGFwbkc3TlVubk84bGhYT0diZzVPUVlzdjFscGd5cnkKK2hpTW5HWTJxVGt3T1pWWGxqdm15RGRsaGtpcngzai9pWTBYbmVnMC9NdHNpZEEyUXZSdGtYRiswV25RdEwyVVEKKy9kU2MwRHlrbkhOa1pCbjJuWFcvZ0hmVDJUa2lZT1RGRUtwZG1uNGN0MTdVRTRYSGtJd3Q0dkRzWWEwSkQvSWoKK2s3bTVQclZOVEdGNVI2aUhOMGFmeVFEZVcyOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZCenpJUWdtU0RFRTBHYVQKK1I5NTI4TjYxK1Z1Qk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSVA2SisvZ1dKcWQyZW9EOGh2SWdFRUVxQVQzaXFyRGtOUjFpTmVpT24xRmUKK0YyaER3QmVIdnpuRVhwdU1DdlVUdVcxcDZRYWtSRmVDaEowbkJ0L1p6SXVPZE95VUQxUmFQakJNOTI2dFFDcUsKK1dQMU1xU3lqZXVEVXVvd2pQZDZWSFZlaXRoZlRRTmZzRkhwTUw4eVhZbGtHMTl6OVI5bkJEd3pSMTNNSW9ueWcKK1YrYm13ZUhlRjZqb2JPenU2L1BXRW1tT3hScjNUdXJ1eU51MjdIa2FiVXhjbzlrNE9KVS9nTS9saGdzbjRYbWgKK3Z4ZUd0ZXM1a08zRXVzeUdXelpYZ1RhNE9LdVp3dHpwNUJuSUh0blJVRWRGS2phY1g3TDNBOHQvNVNlQjk1c08KK3d1b3NyNlBKWWN2aTdYUTdmcktsMzFLcnRsaVZCZmkzVzhZVnFobEszNXZoVzdNVXFldFYrVElhc2NLdFhxVUMKKzdPd211SmVNUE1DTDFtaDBQd2prdHVVRDlLRlRkMEZabFpqenJkTXUyWXFjeVQ2bHlBd2dpSWR0UXZybVNwMnQKK3NSdzNlemJWTEx6TVA4T2cvb0E2RWI4MUhRYlNhL3VYaUlCdXA0S3FoanZENE80aTVONTBsZ2hadHV0R3Q4QXcKK05CL3BYNGV2N2RTMWFxNi9WeWN2aW9MYTQ4QUlUVkEySTl2Q2tTWUtQcXZqMUlMdHkybnc3V2pFQW1TL1pqRVEKK1BaQ0J4ZmFMeUJhR3pYclVIVDZFSm8vSm1WbjJVdE5tSVdHelBHdzlrYlVIRTE4UDhtY2lCSWZRdytSNVhmSXgKKzhhbEJjdEZScXNMSVZ6ZWpXcVZET1hXdzhNeWFaL3FXcE96YTZMc1MrelhkTWZVWDdEUEtEVVM4V2I4bFhnND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCAwRkE3QjQ5NTA0ODEyNjEyMEUxMjczMTYwNjc3NkYzRDY4QTAzN0MwIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcnBiMVQyVmVSWDZZZ0FBQUFBQ3VqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXdPREUzTlRjME4xb1hEVEkxTURVd09ERTNOVGMwTjFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0TUVaQk4wSTBPVFV3TkRneE1qWXhNakJGTVRJM016RTJNRFkzTnpaR00wUTJPRUV3CitNemRETURDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTDVGY3krR1VFMi96S1Z1CitVSnZUbUZWUXRXa0RVMFJTZjF5dVNqRTdCQm1EY1BuZGI4bHNVaUNTRXkyQjNLT21kdnRJV2hpYmhQZ05RL3JTCitHWVMzS2lKY0RuMnY4eHR1WXJTOWVuVlFJNFY2a1U3Yk9WeW0wUVBvNDJ3dEZ2Si9pYlgySzFQcFZjZnJLbHQwCitZRlNIV2ZGWHpnMmhkSzZIUlkyeVdZN3Vrb2RiVmZTbTNnNm5lcFdkZjgreTlUbWVWcFZqcEJNZzdDeHpOTjNoCitsSEl3aEwwaWpWWXdZdDlaeHhyQ3dpOUZhbkhBOElacy9BeUx4OGNiTVNmdlB5RjFobE9UMWxtKzNzaDc4RWluCitxazhWOUVLVFA0emlrT2NTY0ZrejdqOXQxcHUyWmRHUGlCNXlGdGZ5bmt3Mm1VSDd6Q2FZeEZXaG5GYW16QmQ1CitQUlRCVDBYbTFzMWc4YzFnZ0kwWk0wM2dmN0hGQ2VqZWp3bnpvOWdaVkxuUGpYTzE4Y2szSWx6WmJJSUFMYXB2Cis5cXFMMVJ6Y1pEQUY1bjdvR1JlbHpTVGJybXplc0FRQVc4dzVhTURZbnVVVjZEMklabjNRMTMrTFlYenBoajBtCitZZ3BlREExeXRMSVB1MGlqSjVMKzd5WENiVmxWdkZoYmxkUC96aGNLUU1lZGJCeWVNK1EvcVlCMGpEZnRtTU5VCitEMzk4bEE3VzlzVmUyMlNPRWRmL3M0cituT3dFaW9IdDAwR3d1Z1lZVlNvTTY3aXRFdWVINVNhL1h5djhESGlTCiszTklQeDl0NjFnZjlKNG9TbTJhYWMyR09NSEE4ME13L3c1K3E2NGZNNHhIZ3gwVDd5V3NsamtTRnRYV2VtU3RLCityZ3h4UjA4RWJ3T1ZqMTJEbmNzZzRIYi9VTnJ6QWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJjOVZLNW16cUZ6c2FVCitHRnhMNWhhOS9QSHpiREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFHQ3V0bzNKSEJpdmRmNFYrRTh6ekJRWTN3NFhuK25mZzBEZHgyckwwb1hyCitzQUZPaTBaVnFvL1JWQnBWd0djUDNjQ2ZZWnp4NStBTTlCVG5rQmpUQWsrNXFYQU9JYTN5aEJmUHZpaHdnL1BxCitOMVBSZHpLT3JWZTc3WkpFVm96UjF2ZXBQc05QajZlTWNUMHFySUJIekd4K1FzQUtWcUZ2VGV3blFSUkhQV1FlCisxU1FKcXJTbi9lNTJxdm8rSnZKaUg2QzlsaGxtTnp6NDZuZkVySUxWay9lQlZ2MW80d1FsYXJlS3EyWDVpUXRUCis5VVZuKzZJSEgxSGN3K3YwR2xKTURRMG5DengzWHFTczVnMStnalFaL0JlMXk1b1dNc1NKYjZaeStEbnNiVkpMCitGL1NGUUNCMnlKN2ZhVGkrZGVEMGxtSjhoeFNVRXVOZXFpaUJnb0lCbmpNZEtqY0NuZWgyazU5aGdNaTdYaDJ3CitEemRwTkxHZ3E1NXVrSHo5VGRGNVhvUnNWMklwMGlGcjUyU2hjdjVHeFZBZUlUT1BnSkJVSlJkL0daNzJrZmEvCit2MXNEL2JwUmVLSTZ4YmQ4M2xIY3BialpuY28wTS9LajBwbTRvdllQckxFeXhDUEd4UlZQRnVqdDhNTW5qSnpNCit6bFBYMG8va1FwVG9rOHNlTXBTd3lQQjhBeEJLWkFma2RHWGNUSWU4RTd4UXJ0NGpNeXE2eHoyRFJTUjcxdzZkCis1U2JlcmsrRlhCUHg2cmpTdUgzd001d3p5bW1PVW1FdHlLMEp4cjI5ekVHT21FMUx1SWdaTHBZMzI1ZzFJOWVMCitBVHRtUys3SHhtZlM5Y05QVmM0VFhsWHNsZDdqdW9FdG5LQVZjRXV1cHYramdXOENRWEl2RythRndnUUNKV2VzCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgMTQwOTJCNUY3ODE0RUM5QjcxM0U5QTlCOTBBNEM1MTlERjA4RTY4OCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXIxQWVBeFhTRUtvN1FBQUFBQUN2VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBPVm9YRFRJMU1EVXdPREUzTlRjME9Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE1UUXdPVEpDTlVZM09ERTBSVU01UWpjeE0wVTVRVGxDT1RCQk5FTTFNVGxFUmpBNAorUlRZNE9EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5IQmwzVTduL1FPZ3RVcAorOGgzZ0duZEZ0V2o0cWRIZmxFMktpLzNCYTZaY2QzMkdhaDdXc0lCVGFGWlAzRXM2KzQzTDFieWZabHFyOWNNNQorczVYdFFuQjN5NFo5M1NUaGZMV3gxcnNQMER1Z3gyemxGUWJTSHFJeVZGUkJSemgxdzlKUHh2ZDdHa3lyVTVWKworalRaTEVnS0RGMHExWTVZV1V1ZlhYVUptbEJNblllcFNXMU1Id2wvdWR4ZWlxd3F6NUJhek5HbTJqWFNHNTcxYgorbjZMUXNvRXFVbjVQc1h2b01PSkF4enkvYngyaXVFVGFlRWhCLzI5VnIzQm9wVVV6OXl5Z2lzS1RoSytCb1lKNworMzJZQy9VWGJ5WEhRYTZwTHhGemQzTGFMTHR4VDZVZTUzamt1b1JjS3BIWVpYOWduRkFEY09sQWV6WXlBanJJQgorK3BmYXUxR1N3V1R5RzE3eXptUFZ2aVhLMWZDT0pNdDdhMjc3N01COEQ1S2FFeTBnWERMbTNpdmZ1Z3h5NDhIcQorQnN0MG5Ybnl2ZnAxRlBVbm9lcTBaS1VabUQ0bll0VUQrTGZqMFc1ZlVJRGFOaThESmRleTlXVzlaVTd4M1BvRAorZ2FKaEhFSHI2WUdmMnB5T1JxWCtiWG1vQmJ6aGJvYjNGd0pVV3FUR2thcG0zaThOeElsNURUNDNGcTZTUzR2aAorNVBXbHhNeGQ1S1owS1pBZHJPMFZ5am5YQ05DVFNhZ3dYY0tuSlVJd1VvY21LYkVGay9oaVRsVmF0aUhLY2VZWAorL1c2TjZ4K0h1NUN1UXNRNXpvdFBIY09IYUFyRFVBSzF2Mm00NFlBVm1GTlJDL1duZ2oraHNWaHFaZlh0UUwwNQorTTJTVmRLaDAzV2U5bkR0NnByRDdLd1dwK0FPREFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUek9pNG9xZjNyQzBCdAorNVNiTnlSSTJJK051aXpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSlF0RXgzQVFpQjRqMjd2SlYrUk5DditKeXJqekRVakFkZnVqMkJ4VEhwTworWnczSEVuTTlnZ1FkKzZMejdiVklsVTNXQ3AyMGRTdTEramFiK0hBS2F4THRyQlhSMzRNelViTFM0RzdUaVpyQQorTnl3TUpHbEZPSUZVUkE5Q2FKN1VLa2gyU0dORGJCVzEya3o3QUwwb1ltUlVnNjYrWDZ0SmdpZlVjY0FyVkRscQorLzRRK2NJTXVabDRvRG8zeE1nYm9QVnROZ2lpcGNlMHBNYzJnQ1NuM3VUU0UvcW9wWkpNZHRPSjVXbm1jYWdFdworbUQ5N0FsVWRuRG0yZGR1Z2gvOTZ6RUJzUTNkZGdob0V1K2kvM1QxalBpTHRoUnkvL3NGdmtza3c3MERDaktnRAorR1p5MGVlc3VrYXRTVDFvR0FrczFqbUlPcmZjcWpZNlo2bWo5dEhmcHRuSE5RMTV3VGxpc0JGNEpVMTJBbVd1TQorazk2OUkrZktDc2FLdU11SXFlaU85WXFCM1lwejhBQ1hkZDR6ZFNmVkpsZkFjbnNHcmxsdUdtNGx5Z1Y4bUlNZworaHJoNlZnZnpyNTkzWlR4b1FLOUhXakEzSGdmcFpBQXF0RjRxRklCNll3Y25yclNYZWVQemlNYjE0MC94cUt6dworOUtZVjh1bFF2S29CZVNPWklQQ3RZSkdZMW9EVnU5V2dCWXFvWDVSTFFzWEoxd29UQ2hrMUpLYnVVcGlIdlc4VgorVWU1ZEw4c1RzUFpSanNmVUNZNnMvQktydlQzTzNYMEllUGx1dXJBOEsvSGR4LzBxQi9tL2twSElsWHgzUWd0UQorTWFLamlDNjlUbHV1RFJ1QWhTKzM4QlQ3Yi9CRW5yeDM4L2o3MkZVM000UnNaRTdDWGtCekxScklWRHlJRUswZgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDE0NTEyNkQwRkRCNTNFOTk5MDdENkZDNkZGMUI5MDQ1NUI5RTMyNEEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFyNjZvYUMwOFRvWHVBQUFBQUFDdmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMxTUZvWERUSTFNRFV3T0RFM05UYzFNRm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRNVFExTVRJMlJEQkdSRUkxTTBVNU9Ua3dOMFEyUmtNMlJrWXhRamt3TkRVMVFqbEYKK016STBRVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMSkFUL1pFSHVZS2Fubk0KKzEvTHlRQkdrWmUza0hBVFNUUkhIUE8wVlc3OXYxMjRKVlNrQm00aFpVdjNRVmx5dlU0ajRQKzg1NFMwRTFYOWYKK3NnYklaUVdBdjkrdTU2bzQ1Y2ZuZ2FFSG1HbDBMdUpHVDVuOGFVU292ejJreGJWZU5ubFVQUmpack1KSGhDUVoKK1BEaVVEei90Z3NLeFliVHNPMmd6WUhObzN6c3VvakJmUXpxRTcycXcxWFNPVEYrQ3ZLQklmL1VWVmJLOUVmYm4KK1RjeUJ0WDNCSTBGNVhSbUxjaHY5S3ZzdWJucUdpd3RiYVArV1FNQU12SThYNGcyYTdWa1BJcy93UE1USmZsbVAKK003SWxpNUpPNktrdzhqZDlxR090YVFBbktub1F2WXNzWUJSTXgreE5jRTRsMm1jZ0kwRDRHTm9RVS9PblBOYWsKKzZrSit3THJJeVU2ZEh4d2I4UXh5ZTBNbUdzRHF4d1ZMYXhlUVpYQUIyMXZqd3VURWJZQ0JvbWIzNVVvRjdFUVcKK1A1eFNFYVV4WmNudXNpcDFHYUsvN1diVnZmT2g0Wnhaa3VvSS9tQ1JyNmczSFN2SjlsdlZJU2drdzNEK1NpOTgKK0d3QjBKRmxMQUxUM2tjWldCY0Q5ZENiYVNuZDJjS0EzNGorTDZscDY1dTQ2Z2krOEVJdFNmbStsMERvSFVGNVUKK1ByakRGVVkwbmNkc3N0SlBEbG9JcUVHbTFGTUwyYllaMEFpdEZTTUREOUdzcXFUeVFTZzNuZk92ZUxZVGNPZkYKK3pKdU53WStaQmx0QkN6UElYWUUrWWx2dHBxa1loYUZpdENnNkRuUytXS1Z3SW1CblBoZUZNSWE5dkRwb0VFalkKK0NKVm10UTdvNnVKMGtvNmJCbEpxYmxaNXBjUHRBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCU1VZclUzZExXREhRaisKK01yQ3dubDNDcW1NS1pEQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUdJTEFvNHY1VVQzZWkwMlMyU1VDbWtEWmd2MTJxRnlaYjlCVEhJTWkyR0gKK2ZDa2VuWmRKYVExSUZwcDB3N3VSVTRGa1JuWndjby92NHpKNW1vYUdYYlZsSTBrVnRlY3RPZkpFM1JSbXAwZzIKK2RaOER0ME01ZUtPSjBnV3hOMjFQaWZVeG92eDNtR3huMmdiczl4dXBTcVBlbEJWSHRQSzlJY2k5cFI5QTNqbksKK1p3Vk1lWDJUdEhBZStwa05SZlhqQ1lsNlpFNjV2RzdBM3pvM2tLRzRQb2QxSDNDcFQ1WnQwb243NFZPK080dlAKK0FTend0a2dnZWJMbnRNQ2NCSUF3eis0eCtRZGhmNjlveURoVUp3ZEdPR1AzSEdMd09UMTM0TlhIYzIyZ2syZEgKK2V0a3BLRVJKdjVNWkthQzZzT1BYN2lwKzc0ZFd4WnFnL1E5VWhzYlBFa3E1KzRrSUhudE55NWxyTzE1bTIzcHkKK1hBMXhPL09nNENwQzNXM3dUcGRSY3p0SmthcHZSTWJxWnA1dmQxUnRRSjFpekdpWllSbDJibXlrd01xMjBYSE0KK3I1L0crMURveUp3eTJhZ3FaNGl4a3JMeWdFSGh6RHBUOCtRVFVEMTFmYzRSWVJwY3l5ZmN5S0ozZlIrNnVPdkMKK0xuUVFpUGF1cHBBMlZ0SjQ1dTlOWjRSamwxYU1Pa1VFRGJBWGJtUnlFZFA0VWMvaXVoOXgwM3poNWQrVkJSZ0MKK0dyL2tEZjM5dFh0NkFqMnJEWlk1Y3JTZG5hWHphMzZpZWljelI3VTEzc0VSb082eVJ6cUsvU3lsYXZXdkhHLzcKK1YwK2YrUWRpNncwTDdVLzRCL1haWTJSTmcrWGVKeE5ualVPUUc1UnF4aVFrMjZXeWFvdlBuZ21NY0REQThIc0IKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCAxNEI4RTcxMzdGQTk5NTI2QzQ3MTdERkE4ODFCMjQ5MzZCQkM2QkQwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFYU0VoZDBXMXhuenl3QUFBQUFCZERBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURrd05qRTVNVFEwTVZvWERUSTVNVEl6TVRFNU1UUTBNVm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRNVFJDT0VVM01UTTNSa0U1T1RVeU5rTTBOekUzUkVaQk9EZ3hRakkwT1RNMlFrSkQKK05rSkVNRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLakVEUytvZXYvR2FwUDUKK3BjTGNLbGdSK0hmL1kvV2p2SEFXQ3VPakdUN0NyN3NrSHJ2WFZVaTM4WEdhVU1oaDdDbGY4dUd0UFlsR21RQ1gKK2plS1hMQURsUnNRMEhYNTdiNkFXQW94dkl4Ry9mVVVwU3BMeEozZHRJNzI1Y3hWQzZlWWxWWHd2UmR1L0VjaEMKK0pGUEE5Nm9kNkRLRmRlNFhOQmhQVVR4Vzg1MGFwRGNIeWJjQjBLdUhwQ2lJaStzc3RsQUxzNVA2djVOSzlIVjUKK1RtSkJ0bEhVdkpEREYrdlF3eWJkYzhCenNtS3JDZnNYdHNhenhqNVE0dW5NN05LbkRka1lBNFc2dXBmdWpqOEYKK0hZTlREbHRMMFhXOFdVMnRtcUkra3VTOEhtMlV6TXVJODh2b1dTdUk0YkJyZjlydmVVRnU4QjJFUWh6MHloQ08KKzlYR0J4dDhDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZPRk54UEYxb1JpQSsxMjdVVEY0YTFPRGdjcnpNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQU11Wm8KKzZybkY4YkZFUC9wYnFBRmJtQ2FvUkhXaVVnSFliK21YdVp4QitQTW0rQW1qR3EyVjRwZ0UvWCtibklhNW5kQ2oKK2xzWFRIMEVPaUtSUmFWZ00yeGdNalVYaGVJSFZ5azJDZHdjY1hJVWI0Tmc0ZTZBa3BwVXNmY20ycnJiVVhmeXgKKzFSQ1I0N0V0SkxZM1hXTi9nTVdoYTZqMk40blNQSTNzRmZ4bnhQY0tNWm44KzlVN1MrYXgrOEZtWHc2WFQrTDIKK2F3MmFTdkdMQWlqMTNhWDdRQ043Zk9vdFJRWDRTTFdwZ2VwckpuVjI3MTJBWGlQRFVKc2dMOXhObm5OTWExWGMKK0hwN1JKRDczV1JxT3V3NEREYUZhNFpMeXlYNStobHAra3VLNkN4YjhwczNZaXFGektma0I4VUxoenVZZzRiK20KK0tqN3JaaStMRFJyYW5lNEp6Uyt5TFYra0Z6Qyt3WUxDazcwN2FZaG92TVErb2daQUtScTk5VWR1S1VpLzhuMnUKK0tuc21KbVdsbmRGa2ZQK0FpM3FZcFVQMWtBd2xKSWtFa25mVlZBQVVyRHZvNkhMZWxqemJvYmV2SXZDdStCQncKK0U3VXlDeEw4VjFhT05sU2duVWcwZ1pEL1F2eXJUOGtrbDYrdCtwdENhcnpneUdTcWpNd0VBcWVVemhNTFpNU0IKK0hBcVY1WXNCTTN1ZXlFYnlnNU8vTmhMLzhML2RsNGxXRzlDSDNUZVRHS0tudzBZbkh1ZHNVTVJDNHRzM0ZuTFcKKy9Yd3draUo1TWthLzFmWk8wblY5UUY0MU0wYmFid01YcHExTTVPcDl1TkxmU3ZGYjkyM2VTUEYyaTBLZ0dadFgKK2ZDNFhoai82bis4L296MkNGQjBKZzMwdGlsMzZDZVY2a2ljSXc2bz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCAxNEI4RTcxMzdGQTk5NTI2QzQ3MTdERkE4ODFCMjQ5MzZCQkM2QkQwIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcHo1SUVIUjhRV29JUUFBQUFBQ25EQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBek5Wb1hEVEkxTURNeU1USXdNekF6TlZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0TVRSQ09FVTNNVE0zUmtFNU9UVXlOa00wTnpFM1JFWkJPRGd4UWpJME9UTTJRa0pECitOa0pFTURDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTDJ4VUJ6UGdFeWRqSTl0Cis4N1hsUy9rM3h1blY5R0hGZllwWDZOMDJvSWdXaHZaWUhVZmlCZDhlVk5vVDE2dHExSDNIcXFlenZ0Mi9HekQzCitrUzVjUkRPbmlpZmlmR3g5c3k5UTJ3UE9yajNCaElrQnJreFFVS25QWWR2dDhrV1pQcFIzaVU0aURDQ1p4YjhGCiszMVh6c3prQTc2b3VHVThGMHJteEIwMVNVNlRNYWhibi9yNlVuSW1WUlBkbmh3WGRWYU5QQzZuNHRwYzFjMzFBCis1R0ozQmVnSGdoZlhjM29ESGJobWJxUHh2bnBLMlZZaXNHTFBsay9EQ3p5NTNoc1NpSjJIa3N1bFAyeFlkOFBYCit0QStvbFJqQVNVL2VXMlBEWENjQ2YrWjY3YXV3K1lvUkRiVjZvTURqYStPU296VElwRWF0Y2pMYXBVZTZLbFdvCisyL1pKd1V0Qkl2QUVRVXcvY0FHSmFqbzdSMkNJQk9rb1l2cEdib1crVHBXVjd4ODlJSVlneXZYNW5NWFJIT2dkCitBSFFjdlpvbEFKeW9jS2JFLzZBM1pQN3lvTHl6RGJ3NHRIajZjaFlqaUlpZmZDSzYvSmwwZzg2Y01hZWxwWGNXCitRcEJ6anFxZlF2TjJ2MDlYUTZVN2E2UC9sN0FVVm9mNlRxNytoNnpvN0ZKM3dGT3lnY3NKN0FSRjlGb2FtMXVVCittRUFjZlFqOGtDaURIYXBuNThwV3FJRmNxYUxSeEh6TzM0U3JmZzd6TTR2SmdlZzhZRlZoa1B0QmdMNjlmQ1ArCit3L1MrUDRRakt4T0RNb3ZTbm9LWnFwOE52UW5KS1B1cjVMSTR2aFRsMmtLUDIvRDUvcCtyU0h2VUVva3JjMS9KCitWSDdYUVJmbFovekJnQjc2cW5Vd3ZrNGQxWUhWQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJGdFFiNzY2NmhNMFBuCitYN2w5SkpPY2xSb1VuekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBYTkwbTJNTWlWOWVlUkxqMTcrVDVMSktoSVhCOG10MFlxNWZZem1GOG83Cis3K09HOGtFaENTeWVzUlJNbDZnK0djN21WZlY1UEtvaHFBTjFDbGQ1YlF1RXJyblY1OEJ4U3FnakN5K2wyT0hpCis3aDIwMVBaN21vUzRtK0IvWS85eUJoZ1l6QWNDR0MvNWVxck9KWEVaZnlvbTNMalJZdVVzUlZjUlcrUUszWVhOCitvRmkrMmhLRzJ4YnNaaC9XcHpLdTVDb3d2KzVMcE05NWFzeWl1V3NmNWlLUWR3Yjg5VG50UlRWbzQrdWQ0azVMCitGejFFYUNzSkFXSTRQVXJCQURUQVAyMnlhN2tPTjZVb2I2c2h6Vmw2RHZESmNUMzV5bXN5STBYSmd2TUVWSnNjCitldkRsVEtrUWN1TnkwRmFCR2JLYzVteE9ZcWZ0aGdrdzgzUzUrYTNtZFBWTzBoSEkvdXZ3cDY4SCs1VlNiRGlRCitGV2FHcHUrTktNdWtmcytlczd2cUNsUTBYc3FjK3QzSXpVZmtvUVlvQkVhTURlSitmcjhQU2pLTzZrS1JjejBaCitMNmIvVUJPa0dZS1ZHQ3JJVVVib2tSa01qaml0K0ZveEcrSU1LUTdBVWhHL2VxNHkrZ3djTFJVV3FPVDRIM0hiCit1UDYyaTRVV3pSNUZkbHZXS01UdUJzdXdkNnJRTHRkcy9tVE9BMDB3NVl3STI2MzNnUllwVUQ1dmhHNkRBUE0zCitNeW1iaUFDc0ZmVTltNWhCMmZqQy8rRjZpUm1kTkJVZHdaQ1JzU1oyWURlTVdQQzl1ZlVsWnJLRGRid0tpRXNjCitTSzUrTFN0TTg0cHlDdmpvaDdBUERuZ2dLOEo1UUp6dHhjdmhqN2E0eDIrQm0yZUlKUDJmRmZUMmIyZVlCTGNBCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5RjA3OQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBVWtkY014NUNSejluUUFBQUFBQlNUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EWXlNVEl3TURRME5Gb1hEVEk1TVRJek1USXdNRFEwTkZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0TWtOR1EwWTBNMEl4TmtNNFFrWkROemd5TkRsRFF6azNNVVZGTlRjek1qUkVOak01CitSakEzT1RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTDlCNFB5cnVOam9tMkNmCitzSS94b3RVUGViV2pnL2JCOU04YUNvSnl2cm1HTmdSTTdseGxNL3hhcjN0NFJsV0xCdXlEYkNxSlUvakNvV0tJCitFZ0lkMlJlZmNQbklCM2FHbllqNzhtNzZDK1ladU1oczdEckVMVzZOWHJWRzBsbkNTQmYrNTZRRHZ5N1JiaWtTCit2RENRQkhaemFEeU56YzUzVGgwWVNMWHEyeG1vVHF6elVlYUhUMzBLQUpCSnI5d3dLTWU2eU9jSVplKzQ2VS9nCitlc01pb29VOWRpcDcxdjUzQ090VytIODR5M2E0Q2lRNG5CeWFiRlZKLzVGT0ZBeVQ4VU1OdEtQRTUzNzZYTS93CitoRUw2d2IwZjBiTVpuRFp2R0xoQ2NnTU5PYXNYS2ZoZ1pPdEs1Z3g0c3VWdzhoQjdGUHZ1Vm8rT3dURk1id3pjCitJOFBoWjcwQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSE0xZzdNWDVtMDd6UDRuaG9qanV3R2J6Z2c3TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFYZExzCitaUHRVMzQ4K29HTmRNTnZlbktXNHNRYmMwUXpuRldYaENWUmM3VmRUc1lmaWNpRUpIR20vMU9aTDRjNWpldmY1CitCQkdLaDlmTkl5UENDVE5vWEM4YnB1bWpkMTUwSVpzcTJSMVplaTE3V0ZQRDZPNmZ4MHMxcFd4TmYzWUVQMjk2CitPVUwrSUxXTzQ4VVNVbWxOam1JSVNUMmlHNGdaai9XZXQxRGxNcjBqV2c4MnY2OXYwTkR5YkpSanJ2Q01sU2VMCitQdGY2djJCdm5mQVZESXk2TUpPdW1LZVFucHA3WTFMZzN3STVWNVRLcGFFZHFUK1paWE9keExrWnozYk5KR0FGCitjdWRJMEFYdkNtZTRmR0RnNjA3SkJVZFNUQkM5N00rYU9MVHdRS0x2TlZpRE9SeStxdUVESGtyTHFqZjNHSnY1CitzeElaMERpNU82OWNZODJZMmhJRnVUZEFWdGtYNGpsNGpCZ0hVQTVSUnkzUEQxNnJBWFM4ckdzUlRweWQ0bjNvCitSNXJkTjFCTENQbzMrU3dPenN3WGVKNDVHZStKMkVXOTFabGJBelh3ZDlRWVU0dzJXUFY5ZUlIRWx0RndBQXgzCitQRVRQWGI3VDhJM1FES0RBUXA4YnBtMlB6M1FCaEVGZzVzK1IxMDl3bWRySFdIbFVpY2h0czk1M1hKQy92aG52Cis5Wkt2K0xvY3hrWmhVRmpFcVU3UzN4ZUN3bHM1VjA2WnBJbVErOERpTHJrMjArZUpWcEFqYS9qYUNEck83dGoxCitYb0IyRURNMUxRclVWeE5ZaGFxbXpwY2prOUNteE52eGppMHZzbW5XMGI3bndid2tVNjNOaVBIakJ2QmlWbDhpCit3MHIxYjRvaG4xQTRRdi9MOG81RE9iNlp6NE83R2Ztd1dqV1h2ZHM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgMkNGQ0Y0M0IxNkM4QkZDNzgyNDlDQzk3MUVFNTczMjRENjM5RjA3OSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXBrUFkvN2RDNUp6THdBQUFBQUNtVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXpNMW9YRFRJMU1ETXlNVEl3TXpBek0xb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE1rTkdRMFkwTTBJeE5rTTRRa1pETnpneU5EbERRemszTVVWRk5UY3pNalJFTmpNNQorUmpBM09UQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU1TTDRVblJ6Ykg0SFJZZQorT2t6WCtyQUhQSDdwS0doZStxOUc2Tnk4czdBQjhhNUx3ZVBJS1R3RFFhNHNneE9Hb2dqZDhHMTVacm1OZHJ5TAorS2MzVlR4Mm5sNHVud21GYXZ4aFNiRC9Va0JaenNWcWUycDVTVFVlbXZOVmpPTlNQdmsvanZ0aGdWRUVTYzIxdAorN1FYcCtkQVZrVGh3QmlUOElWR0c3cjQrM3VoV2JtOHFrbVF4OTAxek9GakwyZVJlaGxoaHVLYmhyVW5hSTRFYgorTzNlMzAwQ3FZenF5Z3hXcFRIWXlMRnNMV0daQTRYckpLR0ZNbldQRENZVm11dzZuQUcyZi9ma0hDVDU1aWxRbAorYzRpSGJSQkpnRzVQUEJ3anUxd1hOVGNaWnMxbWNTVmpPcHZxaGtjSEkxbFlzdStScXhTZmErMGNyby9qNnY2UgordjF0OWVBbXFuekdPTUlpY3BJclNsOERTdDhSQWkzRTJycldnZlJsMkJwTWVNTHMyQlRrVVJaODd0S24wVjJYaworMSt5K2RtdDh1b1d3cHNBajR5NGQ2YktieXVCRVNtMWFaSWpWdFlWRjFGZ1NvUWRrT3lVUVdacW1mT3hyVW1CNAorRC9XSGcyeHd6WlFpUGVnNnU1SWxWTktQQXdzUkhjTmxyUldWb2hJL01QQTFkQ0hFV2hTdGU0TzFBZzJjUWZRdgorS2FRazRRWXhuY2dmaUlDaWVIeC9QZUZwdVR5cGN5N1R0NTNaOEUvNmtLSmowbVJOemgxczNVUzllSzRSTUQ2bworN3pBSUFKd3FWa0UxOFNIQURQL0NrV3FOb21nYjE5SG9EbkdZZVJ6Yng5d2xacWY0YnZ0YWZxWGNHbGVoYXkyVworNndaeDR5dmsrbG4rR2hKdVlmY3hvWitrY2EwUEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSajJKeFBxRmRjY2lwZQorVEdkV05POWYrN1NOVmpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQ3VuaGRHMmZiYkNXdVRWbzRPMTkxOGF6akYzR3Q2dHk0N0xYcjNoN2VIVgorMFFLZFltVHRNVHM4OGZXODBIVm5qaW40MStDcFFRZzlIcVBsQjNLaFVna2lZNGVtVTRUTVgramtGSE9wQ2FPWQorRmdNOVRpcjMzTkRiOXl0TDlpSXgvMFpFTzQzVlFYS2dpaWZlV29WVVd4WGRoY0g5SjRobGZhdGtIbmErUHpKeAorOWhybjJHdGx5eHUzaTZzTjRrMXRLQWFkYUNEWHl5cHp5Ukxvbnh5UDNTdWJNOTBON21sN09FN1lJemtXMFhpcQorOTNxeWxJK1E4Ti9DdzNvTUFDT2FwREs0T3pQTDhZdzd1T0lSS2lvQUFZVVlKcDgxL3cxQ3Q4TCtJZ2VYSHpyUQorb0pYOUNrVWNEdGVLRXpKMnNqSFhhMTFqbGRuK090UnBPRi85OFBiT3RDYkpnQnFPTHhzWmVicGlUWWRQK2Y3TQorV1FIVHRMUlNnb1NySmdjMVVwKzAvL0JGa3Y5bjZRTk5Ba09RVnVoYm41K1hFQm1zYW1ESkc4UHlYVnZFU2JYWgorK2U1R0dKdm1DdmIrUWh0TUNTUnd3enV3b2dHNG1xL1JYSGxVaFpwM1UwZmdoVEtrUHliYmN5RjkxZVpxZjdCUworMW9peEhTUHB5S1FjRmpUbFFHSkVXS243SmZmMXhxaGozRjBPeGpGY3MxR29la3dybGJoS1FVbndla0dZNUJLdworRFllTVlLYmRWdytpWWRkZmJUMW1QTkRrUklISlVIWE1zOS9TajY0WkdJdWkxdHdGYW9iZmpuZWNpRk9RK3Y1dQorZk51SVZkbE04OFZYSDd2SE91aU1tMWt5YmhUSnRRZE1icCtKTFVaMW04R3hNT1l1ZDRlcDk0cG9GSFFIQm1aQworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDJEM0NFQ0ZFNjU5NDgyOTcxOUQ2NTU2QjYwMDU0MUU3NDlGQzYzNUIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVRxWktJeWtZanJmWVFBQUFBQUJPakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXhORm9YRFRJNU1USXpNVEU0TWpReE5Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE1rUXpRMFZEUmtVMk5UazBPREk1TnpFNVJEWTFOVFpDTmpBd05UUXhSVGMwT1VaRAorTmpNMVFqQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUt2Q05jcEx2UnhXckNBTgorN1FmTldWcEtCRnoxZ1QycTJma0ViM0xzbElvWWhkb3kxZFBNZW91TFBJaXpHT3o0dkpWcldhQmU5Q2dnV0laVQorR0ZkWDZwYXJBQXZhSVN6NkFDVjR5ZWMxUTQ3ZkQrWWQyTDY0cWs5dzR1Tk9VeE1Qa3FJT0hKSHNMb1VIcldxUQorbk8zN2JJSWZsWnl4MldaRWp5R1J2NzhxT1ZDMHF6QjZlWWFpQm9HMTM0cEY4d0tVK0tuNUdZcUZkZ2x3SnpkWQorVkg4WUVFMzdiVXphWFpHbWwwZEJVTmdpcVhsU3h1ZXRPTEgyTm1oNGEwODhoYjdjZzloQ2UvWG0zR3VtVGZYcgordmJteTZsQ2Z1bmpDbWhFbU02UWh6cUs4RDRMOEFMUnc5aDRpTm1vZll3ZmdzZThsMEF2djQ3Z01jKzFZUk02UAorSGxSbkxmMENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdmR29BWkNyekJkVGxqOFE4WTRKSzY0MStNT01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBYXlPZworSytnN0tINVdDSDk1ank0Sk9zSkFnc3poYXpFZTZkWlhmcjluUjJBODRuZW8wNER0TDRlWE1BVzYzMlJuU0hKKworUFRKSDRJZUdkbitKaGc3Um9zT1hUcHNRUmFObmZ3SzJYUHBveHlWaEszblFPTnRaNEUwRlhwUWw1SklXRWN5cworVTdLWTZoOVBHWUhjWFZ1NHo1VFVBaXFZL2dtS0xQSmlzZk9tdXlERXVKQ3duNzQ1N21UTGpnYjVTQW9GMy9zVgorQUl5UzhLT0duVHlPZFRENS9ZNjdkSDVIUG96bEsvZjdTMmFiT2ttcnlRYTZoaUxCbmRzVi9aSzZFWFErTGF4VQorN2NwT0ZFTjlYOHBxZFBuaE5zWGY3TmtTWloxWXR1dVE0akdHb3AwMmRGVExPMWU0KzBpdm5SUzNKdERlRWVpeQorVzl4NDMrTzAxNDlmbTdhOVpXM0VFdmlKektnVU5vTVFza3Z5aHcwKzVsSUNpUjh2QzBXRnRwWHhBNmFLdGhQUQorNmZaMXNuSG1rVTA5WVpFa25zMWdqWEVBRUptakoyMTBCcmVIQjJia1ltaGtJemZlMzNEcFE5VEtnZy8wWmxCZQord0llaTFzb2svNEtGZFh3c0gybGRhKzZyektndHV2MlVwamRPSDZFV0FCendmZmVmL2cxWWpFWER6SGtuQWdvbgorNWpRZ2RzSC85OXZtZThYbWpaUFo2K29HTFMwMVNZTmZ2ek5kaTdIU295RTR0WmIvME5zRy9IQ0RlWUpxK1Z5RQorc0F2VXV1ZUhMRFE4M25zRzA1RFZMT3BiQmJZOCsxZkRIdUhsdzhKK1BoQm81UmZjYk1EMHIrUEE1a25VNitqRgorSlhHcmErNzRnZEtJeFFvTlRtRnNvcWVtWmk5R0lIZnFZVHpHZVdJPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDMwQjg2RjA5NERBNkFCRDUyMzcxMDQzRjJCRjc2NjhDNzgzRjBFNjYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVhVN0lma2dvTERYV0FBQUFBQUJkVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGt3TmpFNU1UUTBNbG9YRFRJNU1USXpNVEU1TVRRME1sb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE16QkNPRFpHTURrMFJFRTJRVUpFTlRJek56RXdORE5HTWtKR056WTJPRU0zT0RORworTUVVMk5qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU4zais4cWZteFZ4K2NtdAorNlpXYXVkNTh4eXYvYnE3T040WWZiSlNrSzJIUjlNNFBLYkQyTmFoZFNhUGJPS1BQUm13TkxhaUJNa2Z3QVNXUworUURNd1pVbUZVY2RiMHA2YXZjQ1NBdUFaZ1BBSm9WSkRuZERtbHdnWFFvc0NBUVBaYmtRNW1mU0JXbXNxaldLKworanZsSmhXbVpHU050SXJCWDV4M1VqejNSUWVHMEhaWTBPQml5cXYvZEdUUkJDaFBidjZOOUZjcWx2WXp6TzIxUAorTlYrNW9uSTdNcWI3VCttV1RMOWNFazdJVVRVYVFaQWcxSXN2aDhJc0JvSkhJOVBBUzdUSGJUN0V4Z1pXa3R0cAorT3dlb3ZYVzd5ZUdNanZTeWRyT3pLbFlVR3o2N3BPaVpmZGJxQ3d6ZVl6L0VpOFhoQzF5MG5YTU5nTldaQzFScgorWnBEeVN6RUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRqcmVJMUMwTTc2RU81NlE0dmhsSjlaT1c4UE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBTDJ0dAord1FodmZkQkJGMVJZdXZKTDM1NUUxcGhlZ1RNUVp4NkpOTmhFTkZNcHZ0ZkdLeEQzZWptbVcwN28yTCtidWJ1UworVW5hL1ZHNWtsRDczLzVYWnozSWtOYlE3SlMzdmJGVmlDeHk3OEtsS2FNclpCMktkZFQvVmtZWDVTQWNreWZESworZ1dVT3VMZURBRDJHYnNFUHNrY0RXL2NyTkpnY0JWVTBnR2JSSUNuVklTQlVzckRHOXdMNWJ1UjJrTDQ2ckYvZworYkJScEh6ZjN1QUxSYTdnbzE0dTk5alNLM292TUZhVjRPTTdDRkFETEJpMElPYjZwY3RDNnc3UWZpZUY3ekV4eQorWDlLamRFUC8vaU9nb1FQT1hGYjM1TkwxWHhBa0JxR0piUXRDSld4Zk1wM0ZHVUVCTzBiWllXNWwvWjJINHZjZworVWhtb3MvRW5TQldsV2hPZkVPdmIxK1BJNlBXR0VqL293dzhETSs1OFFuWi9DUi9sK2JTTVpTem45UlpTWkJKRAorelI2YWxmaVB6Rk5FRStCMmI0VHdIY3JPRlBhOWFoSFZ2azlkc1F5c252dkxXeVcrQXJVa1dZc2lIRDBMRTV2egorOXZqMnZ0cHUwdmlRdXlwaThKVVlSalpXUWpTYU9iYnhYRFlhZTF4VzhqV2NQZzh6d25oRzdOempuenZRb01EMgorTTlaRUlHbG04THlSWUF4WWxZOGxISTlvYWtJZXFVaURCTEtFbVVGcVdzaWlnWU5iLzBNbXIySml5SFc4M0cxNgorOEp5cWRQeFlMdmJoem9EVXJwZ05jMmh0aGJuTGY3ZXE3eU9WVE1XckFlTkZIa1U0TC9VTi9MbmlKTUtTUUZIcworVDhtcW1YZ1pWUmNER3c2M2hHSDl4R2N1SHF0cVg2TnI1Z2Z4OVlnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDMwQjg2RjA5NERBNkFCRDUyMzcxMDQzRjJCRjc2NjhDNzgzRjBFNjYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFwMmFQR05wbDF2aHFRQUFBQUFDblRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF6TmxvWERUSTFNRE15TVRJd016QXpObG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRNekJDT0RaR01EazBSRUUyUVVKRU5USXpOekV3TkROR01rSkdOelkyT0VNM09ETkcKK01FVTJOakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLZTg4TGwzcnl4Zk55UFUKKzdZZFNsWW5pTHhjYVlIaWlNYjNKVURzUFcxVzFkdXJDWGU3QTdkb1Y2UXVEeFllbFNNVTNCTVlnTlJqdzV4cHEKK2FXaGwyejRKUzNUQ3NZdUt6L2w3VXRzN1NWd0kzYktZRC9PeStxWWJmbk1GS3RjN0VJZ3BDSVNJQVIvL2VDWUoKK2cxRDhWK0lYa1lyVUxjV2tXdE1DMFpRMzErL1BWeWY5bmpPTU83emo0K3lQdzJOSHdxVW9XcWUxcmlLZXpNaUkKK0pmMEoyRzNEZld2emIwWE1HWGVlUXBmYTJiTjhacHhGK1cwR3JlY1NhMEJoN2ZIQ3M2SzFoQmNJUnFVK2FpZkYKK2F4cWNuZ3ZDSTZ0OGw3eDRHWUg4Y3ZPaUdMU0o0eWJXbmlQcEIvK0N4L2U2OTB3S2dyY3dBUFdjQjBTdDA5T2EKK3lXeG83TW9WdHlGSTBiWWlPWnFUcnVsZjY5OUxlM3N4cG1yMGRMdzBKQmJXaWNxMjc5bHVZVXFvYzgrRStsbHUKK2E4V2Mrd2lZUDNSVTFVeVRQRmtiOXlFeUl6b3A3d0tNMm5OL3pLSVdGUlE4VkJKdk1td3daVVVhTUxkaEE5bmYKK2YzZmRqKys5bU5qN3JyNk5DYXhHbVhpR0JmS2o2TE04YVZPNXZBVUNuMWVFd0lMSytKd29WalJHcTk2RFFUMjMKK0lBbExSL3FqTzVjMklGdmpybGxWc1lBYzRJcktjNlBkUG85SVNEcjR6ZW5KK2NGS1JwM3VMUmJRR0x3N2M5WFgKKzM1T05iM2dvcDA5SGdlb1RxbTRhTmUyQlU0UmJIbnE4aUdmNndHSDdhS0MwTmtPMWRvUVJWRnNsU3BLNml0UnYKK3JtckhDS3FMWXNBcHNvcFhhQ2lFUlcxMHl1TjFBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVCtBaml2dGFJZUZpaHcKKys1M2J3UmV0bXlkQkJ6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUVYcmlFVUpCdVM4cVp5Tzk3aDhORmRsclpPUkx6dHJhQTh1VzR5YkRTZVkKK1ZkQnA2YWladlZkU0xla1RJVGR2SFhwTk1vQVNnV0VZcG9hRHZQN0pPS0ZHN2RTYm4vQTFZQktibXRtL0QrMmkKK3RCMEFLaURHNHBwRDVEWi9NNFU0ZkdpdjhsZjZheVVyS3VQYkEybXpxMENQbUtoUmxiSjFSbWVhQ1lWOUN0LzIKK2FJK2tWbE94QkFtajVjS0xkQ1NzemlBUUovWDVYZzZLU1lwb0JTNngwaWcvRDhBcmRuUGN3M2NFY1JiT3RDbXIKK0h2UkxkVmxTaUVTYU5hOHg0eUpvY2RONHRTNXJGSFc1RnhzUEo0RU9yaHdrSFJmNFVkWDhMS2FmZ0dhUlV6cjcKK3dNTEwzVlF5QmJUVFRjbWh5b28vK0hETE92WWdQeWhzRUFMUkxZem5JY3lmQ1Zic21wUzNxL1RjMHVHeEl3TjYKK0w0bGpYV0xyZFNMT3cwMUo1SVJMSDFmZEZMM1Q0ZThxRHorczdlN09zajdqSGpxbnBKYklhZ016QVZGYmlwOUcKK0ZVdmRmWEp0UkVOcVUwcFQrMXFicTNFWkRiOWR3QTBjYWt2eWV0a2t5SDg3a3NYTStmSzZEdEFtRGs2akVxZ08KK3o3SmxjMS9ibW5mcjVSVE1hU1FsQlRGRUcrM2lmNmVTUnhiTmJsK1JQdVNjOXBvakhMVWhUbENHVWxOYlJPWk4KK25mdEx4MEhnVEFsSFhnZ080Y1Y1Q1QycEFNZGxTL3pmWkk4dzROM2p1ck5DbzRhaDdxS05uZnAxbDdtTVFrQmQKK0htRUZKUGdsVk1oV0t6UGpla21OUk9YSjc3ZEdxMEhKNXc1aDBSZDV6dHYwKyt0RHJXcFd6QjYxYk14eUQzeXkKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCAzMTczNEQ2RjhBRUE5MTNBMEEzMTE4MEI3ODVDQzA2MzA4OTRDQzdCCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFSSjV5S3FiRjVsUDF3QUFBQUFCRWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalUwTWxvWERUSTVNVEl6TVRFNE1qVTBNbG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRNekUzTXpSRU5rWTRRVVZCT1RFelFUQkJNekV4T0RCQ056ZzFRME13TmpNd09EazAKK1EwTTNRakNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOdW9GVVlCYjM2akFHY2IKKy9XcDJaVlN3Q29lVGhhclYrSXV5K2pVY2o1Z1JCSWE5bHpOMmFYOEVQdlBJVUZJb0JweEZVZy9ubzVWbFdRTVAKK0ZYcU9FL0k3OXVWQnV3YVkxQ2xrSmpseFJ2dXl4eHc0VVFIbzh4L2FRbHFuMDBsbVhvczZlNVRjTDJxaE9IemUKK2hyTTVkVnl0aHQ3VVJvcDRVUFZqOFZiTm5pMnNpZWNYcUdZQWZoRnFwcHFaeEpBRnlJS0xTQmUwb1NZanNKM2sKK3BXQ1ZYZkhlSkViQ3hlRDJXZTRYNG4yWktxazd5UTErRXYrNGRiS2I5WDg4UjJVQ1kzNExkWHhhQmpaR2Zyb2kKK2JFQ1k0ME5oeUx3dnlvc1dXd3RZdjJqOHRvSjB4YUtLN1o2NUNoQ0VINkVVWlh0azN5Q1E2NFZqcjQyWVVKcE4KK0lDTks2RU1DQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZQUHlMbHlhaSszSERFR0xFTjFHaThhcnpMSG5NQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVZ5VVMKKzZMWVYyZS9OKzBRSXpXM3FIR0FnWVEwU3N0ei85aVNSNjNHRkZjOGU5V3NjTi8yYm0rY0dzUmNxbG1sT2xoSFkKK2s3MkNQWGh0c3RDcUhZS0xDQmRSVERaUUx0amJIRlBubVhTWGhOL2R5NWZxUVhaSHpzcjBIMlZuNUdJcGdWRmQKK1VPL0xiTHkyb21wSjJpYWJOSE0zTlA0d2ZOVis2a1g1WExBKzd6YkY0OUkvSVVUYjZMazUvRDQvQXZuOEFsL1kKK205c2ZQaC9xbXJNaWM4UVBQUXBkcnVVQWZSZzFWUnlDWkt5c2ZKR0tvTmo0MmNZSDI2dVRabVVpc0VMRk1BNEsKK1haSXJCSDFkYWIyS05saUFrQ0VTU3JERGtuN2VKOXV6ak1MVXI4d25OSDh6RDJJOWhrckdWZjd4bzEvVURFeUsKK2tyTTFQV080QkJnVGd5TEUzbVNTb24weFhZM0pQRWwvZUxROVhtNjZVUWI5U0Ztd3dzbjRTVzNlLy9OVjhXcGwKKzVKbjNtUVlneThSbUJkSS94S2hzMlFwTnZzUnNFN1dDTnRBL2pmOHdZOTREV2dYWTM3Q2tZNUs3a09QdHRMVzQKK0NQWjVBZm5BU3FFMGVxbDlkOGZMQ1F5WEsrbCsxcXp2QjNQVElIWFl4cVZTWEFOY0N5ZldkSmxFU2F5R01adjQKK0gwcjdsRHdBdjJ5akJZQXkyeHdXSnd0Z0hXdTE1cTIzYlo4NTV1cEhwemRrdlVTbTVRL1BnK1FXVUZscFFKZ1YKK3VCczlGTUFPT1ltRFdXR1hoZUgzRUg3aUM2S1hHREN3eHZMV1ZVRWFGOUdKS1dkekRFVHdwMWJzOWRGQWVaR2IKK3NtZVoyQnladjJHQTREcXFCU1N5ajZ1SUVET0RxelhjRTBhbUZMaz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCAzMTczNEQ2RjhBRUE5MTNBMEEzMTE4MEI3ODVDQzA2MzA4OTRDQzdCIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcDVkdmF4YTFvWWdZUUFBQUFBQ25qQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBek4xb1hEVEkxTURNeU1USXdNekF6TjFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0TXpFM016UkVOa1k0UVVWQk9URXpRVEJCTXpFeE9EQkNOemcxUTBNd05qTXdPRGswCitRME0zUWpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSjkrY2k1V2hWcGdsOWhaCiticGUwSkxucjYwclpKbm1vY2VHLzhYMVhkamY1ZEoxN2loMlFCOFFpenNIRjU4K1BZMGJudEhHRFdqNU9jbkZPCisxWkZMQUptUzg5eWx0Mi84WXhRSFhGdGFLNEVJWWhHQkFYS2h4dE5TSUxZSmR4dGFtWFg0RXJRaVgxd2lWWTB2CitEcWVFRG43RFc3bEdvcVFqRytLMExTUld5ZkxlNlBlTGRhWlViU21mOS9Ud0VmY2M5bU8wOUtpYVFIVUJ4NmpoCitmTWdGZ1ZveTBMbU42N0xEWEhkb0RHVmRMb0E2emd4ZjJua1BWMjBPaWltS2NnR3pEbWV3amE5VWR6d00zeUlhCitKeWpKaTF0VXJZTkNMb01TaUo4RDloWUQxeVc5VXMzV0hRVHV5ZVRZQng2VzlpaWR0Y1lrdzdqNEhtR1Q4aWgyCitjb3BJWW50SUl3SEZNb0g5TStLOTBBdDZISWVrSHNOeTU2aG1KZXZwbUZpUm1QY0pUYjBicGpJWEFCNCtGL0F5CitUelF0bUNTVGRWQnlJK3UzSkk2NWNLZkVXWUtVTlNsTkJGMHhpUlRVbmdGelhaRDlDc2FDb1VzT2t3TFBIbi8xCitLVFNGTW9IcTEra2FmRXp6Nm1TK1RRQm84R0d0M0ozdWxnVVJIK3ozVFhsYTdoTk9lbEJVMGNUcUZybXh5VG1oCitSWW9WcW81bXNESmJTcTh0NGhJMjZqbHV1SE5yKzNPTEVZZVZjWHZwWGUrWXE0bHU4U2hwOGo4REJJcXJCdER1CitiQjFpLzAybVFVcHdLOFl2RnliQnkxd25kbGNudXNhT3BtL1RlWU9ZRkFpdnJKQnNKd1loZnRoRnVvMnlPUFcyCitpRThocCtmTE9YMnlhckRReWtHbGpyUlN1b0JiQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRRbkw2SlFKRnN1TE9TCitVNHRRdUY3OU1lVmYzVEFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFJTmFrL3RBM2lkeTRsTkd2V3lmNVI3bG9PdGlHdEhQbjRsajYrcFk3NVBTCitvWkVaRXVRYnFMYUplRVV6Y2R0ZVdGckNPZFc0dW1ockVva1gwV1doMFZZTXNFMU9EMXRmRjllYzluSGdmT1lzCit0aDhNeGhzMU9nTktseGhmQWtKdEkzbElZckd1VHlKSncvZmZiaXExVVdqTkR6V20vWDZTZEFVQjROMFdUT3BUCisyY24wWHkybGhjSklpWnJTbU9KZDJjbG9DMGVHUnFjbVZYSk9WVzR5VE4rV2o3R1drbjVPMnVTMHMwNzBkVFVDCiszL2gzQU4wSnljM2pRTEdtYU8xN0N2OFhBYUU1eUVxTXF6cXF2UUNjQWxSOCs2OHJsMklmektHMHdNNDJSNFFMCitZMUQwcHFXUlJ0Wlc4TDFkWEo4SFE5NmpuTUdEQytQMXphKzVBV2d0ZElEeFBpZ001QnhSa1pzYmxNQ05LbjhlCitHN3UzaThBTkVnYjluUmNlZzFLSjlzSE81T1ppdzhJOEY3Zkt1ZmgvRE14YmJkYWkwV1MrWjFyQWZndGNHYzBkCitiSlZ2cmZMOVVHd0tTMldOODFVaTJBOTA1d1BpcENNL085aWNiS3VzNDF0cVR2emJzSHpDbUlGMVNxeEhEVUFCCitmVmt6TU4zUHhLdVdxRnZTaTlHejNrM0lPcXdTOG4zRkhERmtaakJYMFkvNlFmSWl6bzR0RkpDdVBERFRnalFiCitiR1FySjQ4WFhlSSs2NFZNdHlLbHJRSUdqc2oxeXdMMUhwaU5OSXp6bGJvU0lmaFpZRXdzSWNXa0VyQ1hmSjdsCitmOExsREM1Uk5RRk5WV253eFlKcTNOM2IyNmZyRUw2QnplK1AvMVFlbTNaWEd4aGM4N0hReVhHU0J1MmphdnV4CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgNDk5NEMxMjlGMUE1NDhENDg4NTg2RjIyQTJERjg2MDM3MzlCM0JEMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXJ5SUNPNWtpd3lyS2dBQUFBQUN2REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzBPRm9YRFRJMU1EVXdPREUzTlRjME9Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE5EazVORU14TWpsR01VRTFORGhFTkRnNE5UZzJSakl5UVRKRVJqZzJNRE0zTXpsQworTTBKRU16Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU52UXJOMUJNSlVxeE8rTgorb1c1MjE4VDJRQ0RZNE1Lb3ovNjhzUjBTakhPcE85WHlqSEZjZENZcjV4VHdONzV1bHNBeVM4UFJHeGxaeTNiVgorSXpEQ1F1d1FIcFk2T3FraDh6TmhYNG5vT3EvNVJVSmJjT3FUN3FBS2pBMkZBM1BOOGcySlVIS3FET1JBZWJnOAoreFVDRktFM2pJcWljOUJxMHBvL09YeS9udS8xMFdVV015NTdPWXJvQXVwRnJHY2F0dERmMm5PY0hrNUFaeVZ5MgorbXMvczh5bW0zYklWR0dZaDJ5L2dqVTN3N3ZOSDZocGlJQWJ0cXI0V3FITTJNNHE2bEU3azRpckc1U1hocWRQYQorMHpxMzJvYUw3R3VLMHE4R0twUmJDTWFnOXhUTWxLUzRPM1Q3aFRuY1Q4aHd6cStsbkpXdkJkRnM0dXhoZyt0YgorMnN4RmxIb3pmQVltNTcySUxDRWRoSEJrYkxVcjFWN08wdmJja2Fnd3JPeWs3TzUwNmlmbGdpcUxvbE1vK3h3SAorWncwL2tPR1RhV2g3M3NGQVRKOWhzZVJBeDRmTGg0M3JGZ2h6WHgwTFpsTnozd0g0eTFOOC95SCtQRFdBajhuSgorc2RYRU0xeENxT3VUbzAvdUx3cHkyN3k3cXhTcURpbDMwMUFPbXhady9oUVhYaCt1RnRCanpmNTRWNW9qOVRNNworWCtRTzQ4WnY5THVOaEx0TXB6VG9mSVlXR2dhZjRqQjMzVS9QLzl5VFdndXozeDZ4cWhndUk3UHgwaVVGekJrNgorVDVuODVIMkZTS0Fjd05IR3B0am5Rc1lWejAzOWVScGhpU3RyRzJ2aGJUUkEyWVZsNE82WFMxajBxY3BWeWRxcQorbEdCVXBoazdnemRwbmkvZm5nc2JaZkpJUHVXN0FnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJTb1dWbGUxRVNIcXFiVQorelVIdHkxZUhIOHUvOURBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQXNjNC8rbVdwUWZhNW1iclJrQW9YcjIzK1ZtMXVQbDFld2JvWkJyYzhHdworeGduMjZjUG4vbVdmMlRrOVJzSWdrbDZ5Y2NKWXI3WjBydjU4Nm9jc3BUYUJKQ25BNVY0Ky9QbjdxckFNKzBBeQorOHR0aUlSZTRSNE51ZzdhQ1BTYldLYjcwN1k5UHoyQmcwQnRWVkRkOHlUWG9EMXV5eGc3MkZEU3RyZFlxUXkrdAord20wb003eWxXd0diV1NoVE92WEJsS2FyQnN0NXZNdmtDL1p5RjNBelhSUWVVSmI2OGk0R29VYmRHSjZraCtnWQorM1d6WnBKNE5vbW1pSW83aFpObDlhcjR2czFZVWtKQUVOWFRWN2t6bU9CT0E2VDgrYmJ1cmhWeVJZN3dWQ3ZGUAorVlVuYnBpZUhQUmJDK0h1Q0FFUkUxUm5mVFc3SWZUclRiN2NQMFQ2TzV1MWJjZUZoKytaM1NpUEZ4NGJUVUtaTgorTGhoUE5CSTVUV3RWRkxhL2x5K3pqSms0c21VQmlPYkdHZEF6Mk5TeS95WTk3R0wwREc2d3hKQVR2dUdCV1lFMQoram9zanlrL3dSOVl4YU1UcDlDUFFXNVJzR3hVTklRVHNjSkFWb1NPU1JWR3krUXdybWs5ZVFjU2x0eGVDK01PMQorTjQ5MU14V2JCSXovL09ON0FZblZTYmRQWExtbzF6Y0dBcnB6TFBhVTZhdUxxbEZoZXpUeDZ0OVRuTWNzclpPYgorUGVwUU4yNU5rR2IzQ3J3UXdmbDg5VmlUU3NIWm5jYlg5TWtLTC95Z3Fud0dPdmg1QXE1a0xvUml4QkNJRlVmYworRzNrTXIwME5SRzI4VnVLaUpYcG1JaFk5Slo5aklKRC94dGlEVDAyMjR2c0ljS0oyMUFFVjJVWWh1eWl4eHl1WgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDUxQzczQ0JDREZDOTkwQUE2Nzc0MTdDRDVGNzhCQTM3RDRBOEQ3MzEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVR1TEJLUGhESzdIR0FBQUFBQUJPekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXhOVm9YRFRJNU1USXpNVEU0TWpReE5Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE5URkROek5EUWtORVJrTTVPVEJCUVRZM056UXhOME5FTlVZM09FSkJNemRFTkVFNAorUkRjek1UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU9KSS8reTd6SXIzMXcrdgoraHpWWlFhd1pwT1JUQzlGRnFZbFlxNmM0ZWsvbGJiZlJTUVZwNDVLRVVtaThpMnVjYlRZVDNYZEM4MUNrd0hIUAorb2NMSk44TVF1U21aRGcrVXg3YWVDWlRqejlTUXV0dWJpUGdLcjJCeTQxNjg5bm1KQi9RRHJBMUg2dTZ6QjhZcworNGR3bms5bDUrQS9xeEFpRWI1ZWZ5UzAzZVpSTmdTTmU4VFB2ZzUycjBmY1J0cU45dVhDTTNDL3QvVXBCKy9BQgorb2YxL3JrWXVCYkxNeUlHNUtyaGJDVXFrZWRwTWNDQ3NxS29vQ0t1NTR2VnpMR2JlQjVDVEpWWDVWVFBoKy9ragorc3VTZktPcjZVNUJUS2Y3NjNTT1RiTWVDSTdhbFNwVEk2a0lIWEU3RkxmUmFWTVVSaE9Rd0tvekRxbFltOUpEVAorS1lKbmZuRUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk1IQUd4aHI0RkhRQTFoOE9kV3RYQnBZMzVxbE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBYTd6aQorYWFQYUNsMjdHbFZvQzB5ZWhTT2hIZnQ3Y1FWQmk3UFNTYTg0dCtiWFlMVmVVN2dHL3Y4ZEd6elJxUkEraCtNUgorK1VlYkVsVFFUYjMvRU1YdGprU3MrNVVObDdkbHlmZ0xMOCtZR0VkNDlwalAxNVVVYlJZTC9aKytHdzlKNHZ6bQorY0VHZnZpN2V0WlA1YW1LZEEzMHFDWThLSjV2WDhzMUkrckxodThCOTg1bkJWZEFLZ2t4b0IwRWxYbDJDR0ZrQQordDhWcVFyRmhCN2VDNDVzaUR3akdKdFgwbEtFMGJGQmtjVlF4NjNuaUlsVGJOZVBnV3ZBN2k4TCszV3M1ZWgzTAoreTRsa3E4OXcweVZlcnJYWjYvcTNMSWlnVDRqdndZYUhFbFpqaDk0TGc1R3pBS2hLTnpFNEZPUEt6UzY5UnRsegorNEFYdW9Ednl2TjBkWkp4UFhZZlRjTURMUmRzQXdNY09BeFFTbDVhQW92QkVRWUpQaUNCa2dMd0YyTG4rWmxLegorNEhRNE1NVFhWUGx1bWNpWm5Obk1pTXM4UlRqU2p2ekI2eDFyUi9TMUhDcFNyRFpmKzBBa09rVmdnYk5EVzgwTAorVnBnYWFSMUZqelJDWkE0QmFmTnA4dG15ZHZXY0M3NWhmVWJaRU5zMGswMjFuUjVCdGdaOGV0dXVxWTgzTk1yYgorcm1zZGpjV2JVN3libzRrOGFHL0hFbkhweVpZL3lsZ1FOVk9aSDY5VGkvdDY2aGhYMlN5RGFnUm9XNzkyd1FHRAoraFdycGpRQXdOMHdjLzZCVXNGR0JlSlpyR3krbk0yMi9NRWZPV1RWcXNxUURkSjQraXJrUzdacmdsN01Vc3piYQorS1VyWFhGelpvOXd6SEsreU1hQU8xdStiSVlNZGwvSVllL3lBbW80PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDUxQzczQ0JDREZDOTkwQUE2Nzc0MTdDRDVGNzhCQTM3RDRBOEQ3MzEgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFkWUZxQ2tMaVdzelhRQUFBQUFCMWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURFek1ERTVNRGt5TjFvWERUSTFNREV6TURFNU1Ea3lOMW93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXROVEZETnpORFFrTkVSa001T1RCQlFUWTNOelF4TjBORU5VWTNPRUpCTXpkRU5FRTQKK1JEY3pNVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFKOTlZSUwzMUxjOXFlMngKK09NelRvb2ZxSE1RU3E1bEhEL0xweU93SjdJaFVzQkNCNmw4WHhXc1lDREN2WE5SQ2piVnZINmVVRXdBeHB2WmUKK3hTUUt2RTRPRy9jNUJ1QWJONUUySWw1cjZDYXJvM2JXNmxqU1ZmcTJ5R210QnZ1SU9US2JoN2hMWkdHUG11cVIKK2dnbmZjQkEvRUIrMVhNZDF2NWp6MlFsWStjdjMzWDdscldocENSV2FETEVXU2wyRkVONDNYUXVLeERqNXUvWHUKKysxV2JzSEt3eFhqYzE4bnVVYUNkQjFwWGRjSjRRakRJa0pLRjlNbzBHWmY4S3hTUnJFSkpleW1RcGpRVVo2VlAKK0liUmpLZndLYkt6MFNPcy95QThZb3kyNGNWR0tVOGJzdzZtREI4QTB3a1hRMlVkT2NHWGpERGhpYmZtYlFjVlIKK3pXdTBmUDJwWmplWC8xTklMQmFmUlM2VnFCMzNwSklrZ1oyTGZTYnR3bDZuRlVnTFBnb1JYQTF6bm1LQkp5enUKK1hTNkNVY2s3MkJET3FlSjBMVzM1b1U4WEJRUG5odTNXZW9SUHdTNllacHpPWFNiNmhhdGV1OThoWWJJc0YwSDUKKzdyWldrN1R1N0VQNzJmWm5OSHFqdkZveGgraEpxM0lzM3dwWGo4RU5hT1plYkU2MDZxQTF1VE5icXkrdWZlWXgKK0dIVVgyeW9CTWRoK3lvZFo0MnRJUk14ZlpwYWVMdUw4aTVNRGxHK2krdFRaRkI0WGRmRFpNcCtINjRXb0ZJNkgKK2hIdlNjMG44OXdZVUs5U1VKeWhXYktkR1hXRUZsZW5IQ3ZwOXpzWEJMV0FQTi84TExaTnFPUFpDbzNzdWhLL2gKK2xYRk1qc0x1NzZDS3pSdTRmNkpjK0lCQmJHeGhBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUmk0aWxZYjZjV3loQ0wKK3Q2aTk5QlZUZjBrRzVqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQURCVWVnRytGREtDTWN2OVpPSFYrbFhPR1k0SGkrR28rWGIvM1JpbllOTGkKK0JOaU9NdytSRHlUUnBieGFoeks2L0dIeFlHcDlYaUo0NEF3NG0yN2lrTHhaazFpb0NNY1BwZmNsdzZFZVV5YTYKK1dZMWRxU1BVa3JRVkdMSE9QazBtRWlydnlOSEtzOUxwQy9JMktCVlRNc1Q2ai81K0dWaEVKZEhuT1M1cjUwOHAKKzBkVDhNNExKZklOU1Z3bVlUOEw1RnNOZVZHUUwxWlE1ejBnU2pZOG5uVkZnSTl1ZVQ0REtQYnRWR3JETlFyMFMKK1hxREdXWnIvaEphWXN4aU92REtJR1ludXlIcTFKT1lZaHdtRWxEWG9vNWVaV0JlTkVtSlBCWlpUVS9jVEEzY2YKK3B1cFhaMnJUKzV0U0F0RGxlTmkxSjdlbXRnaG1WSEZDQXQ1WTA5NEpTTHZzazhyelZRcjZ0SklXSERoeUlPRk0KK0l5L1dBQ2VKRCtMdFVQeVdBeE5ZUlJaN2tjWUFrVFljN0JOREo0eVRkZ3hpN1lLek16cU9YbmJob2hDa1VyaUcKK0ZJcndtVDY5S3pVcmF3cmt4eUlBcFpZeXZqam9PdUZJR2kzSmFMenh2Z1l2bGppcUx3cG1sL3FuZUthRlpBQ3MKK2xKaWI0c2hzelNKbVBWZGJmZWZ6aTBvcVdkUmdoSUN3RjUvUTl4RDYrUkx5d2NrdUM4YUphVUhSa2dEczJGanAKK0F3OFNCRVZadTJiVXZkK0tzSkVsQ0FYRCtDQmJmeWlsWm05NlBPRWRpRFZSYjE1bWFlNSsvNjJNSTh3aVJIS0MKKzJoYWZNTm11TlN4SkVtZzBiZFd0ZEx2N0pIWTdGWHA2bXJRblJKVlBETVp6ZGRQZ3RFalZRZHVLUWNiTERtYWgKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCA1RTczQzg5QUEzRTkwMkIyNzJCOUYwNzQxRjdEODczMEUzRUM3MjRBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFIR0RyNHVjaTA5cmN3QUFBQUFBY1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTmxvWERUSTVNVEl6TVRJeU1UZzBObG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXROVVUzTTBNNE9VRkJNMFU1TURKQ01qY3lRamxHTURjME1VWTNSRGczTXpCRk0wVkQKK056STBRVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMOFVMZGl5eE1oVzlQY3kKKzRwV1hWZzAzbnVLdngrUmZBeGpEcDJFUm9PQi9TUHkvNk5lRTJObFJJbVoxOXdVYy9rUmg5WFcydjkwNWh4UHIKKzdzOWhXM3hmZkRQRUhSS3kyVkF6U2M0RzdjV1lPbkZ1Y0dJd2szRGQ0dTVBTFZRc2tOT3V4UWRqMnUyRFhNcDcKKzhIK3JRWkhhSUZzU1hPSklWcm5ZRDQ4Um1HVS90TUJuQytSeE5yaEN6NmNQVW1obGFMcmFHbVNjWlV4Z2JhVSsKKzdUWFNQdnhXaThVcWRZMjkzbU5LZVVnYnZ6Y1lZOEtXR2g1Q1VFRlpFODY0blpraDRtT2FqRVJSY0JrN3BkMlQKKzRSZXdZTy9FeUVwaUh4NFp3dWNlL2V6Z2MyNk96V21QemYwZlFMVkdYRnRENzFRY29sRjVMSFp2UEh1czBRQ3cKKzh2cmt2N2NDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJUDFJVVJ3MU9WdjNIelBLbGJhaU5UZHgvREtNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQU1xTW8KKytGbTMwM252Vktnblc4MUJLYzhPbE82R3NGOGpBTWJtdkhTakYzL3BTRFNVWWFqSWJCLytURG9NV2N1QThJSHIKK3BkUHNNTnZmdmt5aTViVjdWK2VhWUp4b3VGOEFsWFBtT2ovR2gvTzA0RndqSlBrVXZPLzRaM1FCYTBRZElLcWsKK3MxVTd3eXJhdUJ3UUUxN1BGQjQ2L0lhQzlwWGtlbjdlNjJVVEZneWRkWldXQW41NHMvZFRWVlhvVXdIZzBSU04KK2RHQmU5SW9iT1BTQlBPUkQwVWpNZ2FlK2pWalFaVm5hayt2dG1SN3pzUVY2RUJiZzlOUmUxOGJmeHdKd2c4VzkKKzNISHRsTmFvU1A4UXAwQnlFajBIQ3VkNzlaL21LNmdFSGVsR0Y5Vlk1ZEUvUUJQZnNzeUZmS2tuM1A5WnNWSUEKK3pCTkpXN21DdHNwL0ZqTVdMS3hPdGJxWlh1VTRyYlBVa1RkWHRyV0xOYkhvOE5adnpVM2NoZUd1SWpTRjFYbGwKK1NEQldSRVVNcGhRbzBXSDl0Nm5JK0U0ZUhwMzA2WkI1cUxtN01xZzdzZ1plR2pjK0ZsdVhDa2hyOE4rUnB4Y3EKK2V1OS9lS2JOSnhwRmZyM1dvcS90LzlJS2RDT2kxQVBLQThFR0Zjc1p3SjJGdmpSMmY4cVAxNlp4b0w3aFR6MTYKKytSdG1uVU03SzZ5YktqbkRBRVZEVWNXMnZGYVhCMFNpMDk3eXBNbVNaREJzaE00QUtOSGZvSGNhSmV2UU4vV0QKK1VObklFdnJUZUF0RndCOGFINlhBOThmQlZzYlQ5SnBhUTV4bGl0K3pmdjlhTVlMeG1CUVlCSFNnZjUyVFNrcEEKK2FGRHJWc1FBTUVrZm41czhtK3FLOTJBK1BJczN4bDdXd3hYaXl1TT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCA1RTczQzg5QUEzRTkwMkIyNzJCOUYwNzQxRjdEODczMEUzRUM3MjRBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcHEvWWZRdy95dS9Ld0FBQUFBQ21qQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBek5Gb1hEVEkxTURNeU1USXdNekF6TkZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0TlVVM00wTTRPVUZCTTBVNU1ESkNNamN5UWpsR01EYzBNVVkzUkRnM016QkZNMFZECitOekkwUVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTGFNVDFwUXpEZEJyb3ZBCitFVGlhbFRzMzM3VS8waVdMYXBIU0lMTGdzeGk1QlYvbG8wNUZJbTF0SjhBZ3d4RlU5eGNCV2ltZjlkSnJZYmh2CitSS2dNekcwalBDNkFpVWx2L05DQno4ZW0rT01iUmhDYzNnL3Ivd2h1RktJN0lnSGEyb0dFb0REWnZYUVF2ZDRvCit4ZzNqbWJwSEtLc2VZT0pCOVAwdUFnbTNqZ3RHb1JrT2N1ZjFNdGozRFAxUmFSOXJuYmVMMEhkenBHYnJRRzVnCitDV2VoVDlWR2ZEL204QzY3aVM2SjNLaDNVT1Q5L1BwUnlPUFVyY1JXOGRqYVVCMkVOaE9TdE5YUGo4akVNdkhhCitCN1J3dENZeXQ3YjRZR2VXQ0RyWUdUQjI2L09DRlRPejhQK1JKUU5Lak5VRjY2Q0IzLzRxdVY3Qm13M2ZRVGVuCitKODhPRjdHaWZrR21hQWJUaVpGeXNlbjMxT1dPcDR1UmtXUFk5bVJBU05wQzBPUEo3cndiTjduTnVmbmRaMjZyCis1dy9vY2pPeCtLR29XVVkyc1Vac0plekVvMmpBL2E0QkZ4b0F0aU9BTDVyOHRneWpPZmhieWV3MGY5Q3hqendpCis5WG14dzFOZGpyakJlUk0veG9QakpaelEzVzlKSjhBc09FN3RtYWFQSDJ6dnMwQU03UHNPT01uN0VsS3NqZlMzCitLelgyTmRWdHY0TzdMNnY4RTNYWDV1Ky90MUtlMDR2Z3poYk5mV0ZxeXZhdVFac2JldFBhdGFHdDBLTzNHY2txCitjRXRoVEFIeHR2V2lYNDR1Yll1QUVkaUdzVGMxdmRFQjdhZThWc3VjanpIMEdDL0FHOE9TN1ByRjBMU1V5bXN6CitkbDhaZ0ZENDY5UUxmaS9OVlF4a0NheFNoQkd6QWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlJ5L2ZzTjRRcVd1dVBoCit4MXZUMUs1dDZJVnk1akFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBVWNlVkx0elFpaVhiL21QWit0VGxBSG40V1VCcW9NY0UzdEVVUUNMVVJECisyZkdxS012Yi91QlBJM05xQ0ZZV2RqOUo1UkRTNnNVM3JhNlplRXNjNldWelVRYVFEYTM4cFJ5VWdNVGZFeTZQCitIakFWVnFsTmY0M3NIamJEVUVwamVvclBtS0ZSQXNOYnlPalhJeTRYQlFCOVlhWm5KQzlnbklucTdTZTJEd3BLCitib1JxKzQzTTJFakxBaFI0NlQ1dDRHWUZ3UDFYRTB3T25EWU9LUm1JOGpEazFUcGQ5QUplWHhoVzNSN3dhdlpQCitLZXVNanJQcGtjaC91bHRnbS9OallCU0k1bFBuMGhULytjc3FxN3A1T2hTVlo0emJ4UjR2ek0zcTQ0TG5PT3UrCitMKzV6d0tFUEhwVk5aaHVjNzN3T0ErZHRBTkwxVXRSVGx4ZVE0bFlTYk5VbmJRWHVoNXdHYW90bjFSQ2F4WllWCitLUDh3Q3QvL01jSGdtd1gyU0lmRmJoRXhDWkFQdjZjTVJlM09TWTh0aGN5Z0VVTVh0MGlNVmo0R05XYVpwOS82Cit4V1BOaGpjMGZ4N3U5TEhOcUhiTmRtNlVYOFZacytTNVBwbWlmZVpkMTZ1NDV4SlF4cmVzeTdrc256QVZhRzMzCiszTFBDZ3hlUUFBQmFkb0pDVFBaUkFobjFLci8rdkFCV1NBakRlbGRiSnQrbjlTREJMWExIQm9iWURacCtKdVU5Citmd1ZtM2I2UHJlYVZQTU9lNUplbzFVTkZvbkZqekIvemVKN3N2SmgvTnVIOFZkYkhZTURmSy9GbE1WU0w0OCtZCitVRnZFOWZYZzFHMEFYTG9jc3lFdEplMTNlTVNhdk01OTBaQitkODRtOHEyMk9JZEVEeE1qYXFXbkNVbkN6SiswCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMxN0NCNworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBWE9ndkJ3RGhhM0RYUUFBQUFBQmN6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01Ea3dOakU1TVRRME1Wb1hEVEk1TVRJek1URTVNVFEwTVZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0TmtOQk9VUkdOakpCTVVGQlJUSXpSVEJHUlVJM1F6TkdOVVZDT0VVMk1VVkRRVU14CitOME5DTnpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSzkrVFJUSE9MejhuZzI4Citmek4vam52My9OT3ZJUy9TMVR5VldTUGtFZXpLMU51RGRWWGFPZUJZbjI2NHpNK3NUdGdoZFFwTHR6dmFvR2FTCit1R2FuTDA5QnJVM2ZZOWhULzNaTG5DSytTSXEzcUFHU0l4QUZOZm82RkVmdFM4WnNxL1RvM0lxS0lRdHg4MXhlCitrWGw3T1FSMlBaaUlIN3M3eFRJNEVVaGI3cW5tVFNFUGNROTFMc1ZMTkE0MnBwR01nd29yYXhTaElmK1EyRzZMCitONzErTlJ5QUswWGhWK01vV2UyL3F4TW5tN3JwRVp5cmJRTWRPR2JIZ1RBWWZ3aUp0QlVQU0FYM0RWSmIzZG94CitkY3QvWnd1clBKemc1akR3cG5IRXFRZlBJM0tjVnZEMVUvRDN2bU9YZXlzZEZaU1Fkd1k3aUVUQ2VPa2lNY2MyCitZa3ZkQzhzQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSmVmdWg0R1J3SWYwakxKc1BsUnVFR0dKeVZhTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFpN2U2CittaFNqOEFlNTFueEwwMVBUcmhnZEJkRk41MldKSkJ4RVZ4RlNPRURSSWN6RnlOZkt4L0hUUStKSVZoYm9UVGJQCitabk9nSFE4TmhDcURRVFZxb2kzd0hNeE9JdFZYK2VDNDM1UlAvNVdqdUhvT2U1YkJxeEVrMVFqd0t3Q2N5c0VSCiswQmNOTDd3SXpyQVBMOE83WEROYitYQkJVR2x6NHNpbkovcmdmaGkrZ2RNKzlOemxhQmpCYjBzc1B0eXF1T0gyCitUdnhVdEl5SHIvZEFCOS93TGdlUXFtZTNrM3lmbFIzNDQ1cTlmUG1jb05HZnRsaEp4QUlzMzRqVXc3TFpYWTB3CitJQmo3aXVZUjVpS1ZWRWRENStNaUhsU0VUVzBSaE5HNXdPUnkwOE9XakdUOVI0c0FYdTBpK2QyTysvSTBEZzF3CitmdnVOLzd1WjljSGFPZTRrYlR4R0tCaW5XUWhFbFNWZThCZHg3VEUrN2ZWRTQzZTRJWnNTVHdzb0w1THV0QnMyCitwdlRhbWIzbmVPY1NVR1R5MzEzM2RSc2ZQV2lIeVVFcFhmQ2dCYTFDUjg4ZU5PSEhEM1JIbXhqanZ1bGdMeU9mCitZODVvU256djlrdjNQZGtlNnVNN0xVeDVuemJnZGxnK3lOZ0ZaZURjVUtZQTJYRzgycjlubUNMRnlycUJFWFhyCis3aVB2LzEvSGV3WGpCcmlncXNlSXdYTGdJOTdCcTYycmgyalZFeFJ2VEZycnMvbUpMc0h1b1I4cXRkY1I0NGFsCitSMExlRzM3Nlhab1pOTlI1Z1d0L1dmOU0rWU9jcjNnUmMvR29Idnlsc3BZN1hjTFVHRVl5b2RLT3dhckM0OG1CCis4VXRQQXUrY1c5d0JwQ0tGVDA1Q3M4azVzUWdYL2dtanVKREwwbm89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgNkNBOURGNjJBMUFBRTIzRTBGRUI3QzNGNUVCOEU2MUVDQUMxN0NCNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXB1cEVhNjMrRjNRZHdBQUFBQUNtekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXpORm9YRFRJMU1ETXlNVEl3TXpBek5Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE5rTkJPVVJHTmpKQk1VRkJSVEl6UlRCR1JVSTNRek5HTlVWQ09FVTJNVVZEUVVNeAorTjBOQ056Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUt1bUNmeSs2SlY2NGhxYQorbHZTTmFpWEh6SlZyNmg2bXVrNmNjczc0TjFGT1RmV0ZXaWZXSElHem53L1FmUXJJUEZXTURNei9McmpTanpyMQorankzVUhnY0w5MGxraHFpYXgvajJRR3BsamZkUEtYbWhsdkRXN0IwOW1VdGdiUzVsbTY4dUZFTnNjbUtLVERLNQorU080c2xnNWRUZk05QUJwUTNPUUtnZU1DTWV6STJ3a25mWkl5Tm42OElsY1dxRVdPQU9MeXJOdXNKZ3ZJNFB5UworNXhnWU41TGRXdHlWS3VUenF1MEhvTGhzaytIY0F2Z2dnZmJTc2hPU2NONTE5TXBjeXhUY3h1NHY2amxvNVdRWAorVUprTitVSUFGOWNELysrelgzNEpQZWJuZkRxRlloZHh3UGhKS2ljcDIvTU0yUElBOEVyb2ZWNTJjbUtOSWNLMQorRllUMUtOZjJicHo2ekZaeENENTV6VVJkRThrbkpwOUgrWUZhWWZjeUEwOVRncml2dCtGazFodytNbVRWSmFUYgorMUpkZDF5TXovcWZtWkpVQ3JacXhUbHpxVzFna1hyTm4wU01VaUNTZ3pnVVVXL0pmbVRtU0FtSzFScUg2OEdmbgoreFpHdUFpR2lPYUp2VzcvMEFJZHNiUnZxcTVLM1NqaENlTVFHSzE5YitVdmJmcWRmaUw5aGtMN2JLZUI4bWRRaAorVVFMZHAzRm5LVTVaVTVQMXU4YjQwMVpwbFdLVEhPV1JleU5ISlEyb2Z4dUt3NU1NQjRLdHlHcGQ5V2UzRjFTNQorWldHV0RETkU0YXVOcXRWRmJxYU9Va1I1MDB0NHcwNFY1R0VDWXM3S0pRb3pKMDJvcmJmUkFjODdEdTB3RjF5RworVHB0cmJKVUJEOXZIaitIWnh5N3FDM21lQXFBeEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRbFpyT3U5aVAxY1RKMworUDIxS2xrTjAvZk02NkRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBQldidTZOUHpyYlJpTWJkVVd3U05OZmJtTXJyMWlhbzAvTkNSdGtaT25VMAoreFhWa0U5RzB5ZGRQZXVtYWxWZm81U3UvWldYR0hENmZpUzhEdnVWL3k5SzdWUXNLZTM2VHZ5L0RTMGI5dzN1aworb0NrbUdxdCswcGJ5ZURORWlscGlFcmFkTHRnclBtTE55dEdPcE9OVno4eHNwNXVLcDR2ZTZmZFlLWEV2dkJDUworNE9TL0JJOSs1MnNMdTliNHFrTDdmNThlL3A4dmJSNVc2dWxiZXMwNGVqNmJIeVJrNWRtYTRMYm5aeGxxakR5eQoraGdwWm53T2FucVJ5WFlOcTVkbHlqUEltZzIrWkQwblU3VkJDQ2o0N1dLUndYc1lRQmVNYlB3OTJqK1pBcWhScAorcTNCeFJ5RHA0Ykx4QUNDbk5TRXRydU95b3RCaSs4dUR3MkdWVUdrVHlzWFVnVlRjOFdDWXhPekdMTHNNTlp0ZAoreEx5b3lqNXlkbEF2VGVyRFdwVCtVZnllTlNLeXlZVVRXdkZWVldoMUsxaExLVk9aL21aL1VSMmpjeWlRWnEydgorR2dUZk4yRHRQQkppVnJVWlZwdVV0ZFVXQndBYVF0VHlZQTIwVk5KTTZHQ0JUN1ZwcjJzb0xDcmwwWGtNQlFmTworZXNWSUsvN1lOMnU1WXNCaW43MmwwU21MVWtwM0JvMS9FZFhLL05aT29tWk9XWE1Zek9UNVdkMExWa1owMmVNOAorZEE5VFhkMjhIZXRlNXhWZFg2ZWtZZTRVWCtCQTQxYis5MWVFK0NFZGUvZE83MlVQZXNSTGN5STNoaVFzUFZNNworOE1ndnBhaDYyZVpsT2NPQWVvYVIxYmY4WHdPcks5UmlxUGNMbmtvdmNDNEU4b0loTit0bEYyVm0wOGpSVG9TKworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIDhFMUFEODQ2OTNENUQ4OUIxNDcyQ0Q4Rjk5OTA3NkVEQzQxMTU0MDAgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFyczNKQitmMzg1Ty9RQUFBQUFDdXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMwT0ZvWERUSTFNRFV3T0RFM05UYzBPRm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRPRVV4UVVRNE5EWTVNMFExUkRnNVFqRTBOekpEUkRoR09UazVNRGMyUlVSRE5ERXgKK05UUXdNRENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFNOENkbFQ3bUxEd0s0bE4KKzhPT3QxTTBjeFIzZ25rY2U5akJCWFdMK1FFdyt3N0U3bVpEa1JoRWswUXRoaUpJeTh6ZSt3RUdqb3NTZGYxcE4KK3FpU013Tnd2UmdaZ0NSQlVGa0lFRk5yMHBVSEZyL1Y0a2E0YnUvTEN2bW9xVXVtRVZFQTFYYmlVSURGYm9ucWUKK2hCL2dtVVBXaVhDL0hUTXhLaldtM0IwQ1YrQ3NtK0lKdytvUGQzUTlpU2pEWW0zaFgrdFRkOGIxWXoraVE3SHQKK1pWdXFjSEVZYjBGVEdWYTJKam5HMU55NzQ4NGNwdlk3SDgreHR4V05uR1d4aDQvNkxOUVlnL2N4L3FVZ2NuVUMKK211VldGWXVnb1RZOWlORkpSVFBzL2VwWkVGYkxHOWtLUXZaQnRCNklXSTUrRi9hcTk1ZFpuLyt1c0ZlR2llalEKK3l1ckNpNCtKS0I4UmgvNyt3dGxSSk1WeTRGZnlpUERyTnNOQ2xvRjNNQWs3ZmR6Y0tlK2IrUWxiZXZCOENBTkYKK1l5ZUJYSFJPcEhGT3BSc0JsZ2N6d3RIZXRIcmEySVV6SjV6Y2xWOGVpeFU1emQxR2VNYm00dkc4MVhrRi80QTMKK1B1TU1KM1E5Y1lyb2JRMWx2RnQ0OEx1NzNmY0JlVFd1QitreGsrV0hHbzFUTjFoMnk5Y2NFdVFia0FERHVPWXMKKzBEb21hK1VMdmRnNGVydE9XUXI5Q1lkSnJXWHd2Ylo0ZWNZZGN4cjhQOUJYK0hVVmZyTHpySEpwSUwxWU5iSmcKK1BuSWdPYk4rZUZqczNFRW9DVFc1TXN5SlJvSTIrUXBwZHlGME9aWVpyV0lueDhqQW0zMTN5Mi9NRExOY28rcmEKK3dpa2RSLzR3RGYvTTdMcitkcjRKeERDWmFROFhBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVDN5WUFJdUdEUGpSd1UKK2VmUTBSZWU1ajFEWVZ6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUg0VUNIdWlBcC9hSDRMUnpXaGdKNDJzWG5KeUtLRmhRU2NmOGIzM2Z0MXUKK3dEM0Vab29IMWRaZjRNYTM4cERsSE9FYk83d3ZncVZFZnNNeHVoRlBvSnNPUGFWZi9KOFcxaGdndHkzaEtPSDYKKzZkUDcrbWhXYkFSSXRzVnh6RFlJSWR1aC9YL3I1YXFuN29ndHQ2SkVmSlNjV21nY0RnVDBxaFFUNkdyclJkQ3kKK1Fpb3U5TkdYUWFTR0dJbWJSeG50Z3orT1RBYk1hS3lkUlo5ck0vZDQ2WjMyTXBzSVRjTzlHVkJJZEJlMHVTWWsKK1RKWkExYzVaeE1yelVOcjdLMWNra3dwRnpnUlBDbTUreFZTcmMxSWJUYmlrczkwbE8rMDhKeldJY0tkNzNqYXkKK21tcmhCL2t2eUhnZ2RMTDZ6SWJHZVUwMURNT0IzbTU1MDN6U0dEaEFXNU1rUnU4bjlHMWV5cUtGMEdpNGVqRkUKK2Z5SkJ4MUx2SU8xZTlpRE82b3dvejFrYkxyeG91cmg2aUF5RzlQWmc3RERzenpwMG5rcFBFeE1leDJ0cjFHWWEKK0xMdFNlbVRWd08rciszbG5uN2JjeFZzUTdPb1RNVE1LZmE0d012dUNiby9IZ0dzRjRlbmpQL1pqSWFrYnhOaVEKK25JRjQ1RG9GQ001V0d2aWFMSFdXZDZKbnlDcW5MRVlwV29RZmViRlZ2OWp2bnlZZEdvSW1NajNIY09YUHRWTysKK2hIWFNLdWFrWFN0citoMk9pVHdpdjVrbDJ3VEtuZjJiTUVwaG82NFhncG9GL1p6QXJkdTVpNTZxN20xamhqVlgKK1RobTFqSUYzckhUK1pTWTJsSnlWc3dIYmtGeThCU1pQMnRaMnVkcVo4aVU5RTZOeWJDcEpuQnhDVWxLUzVUQ2wKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCBCOTlFOTc5QUFFNDg3NzRFQTJFRkNBOUJGOUFENUIwNDA0MERDMTBBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFSTSs0ckduSVJTdVNRQUFBQUFCRXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalUwTTFvWERUSTVNVEl6TVRFNE1qVTBNMW93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRRams1UlRrM09VRkJSVFE0TnpjMFJVRXlSVVpEUVRsQ1JqbEJSRFZDTURRd05EQkUKK1F6RXdRVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFMbVJyWUFQa1NxREE0cDQKK0J4eFM2K2ZaTWFqWkVXVmZwNlRNTTdNQjU2bFhpMUlHL0NtM3BCbGxCb29HQ2ozYTlUWmFnMFU3dUY4bGEwLzAKK2ZpNlI1TGJWODZySnhNWVF5UVlJVHkvVUJpMWVKakwvZm52bWpFMmJuRVlmODVGTFRwaUtnM0lraGh6YmVZd04KK0RNbThuTE9mTVNFVGNPTHJpdThha0d4QnZYbW1sQTI3c0xKRWFNSE14blhpMWtJYjF2NlYwSXNsT0ZnMmx6a3cKK2svd09mWGNIdytXV2QyNVA1NGRWQmE4c0pLRTFyWE91WVJnSWVkTHpJTkFwaHJSK3dSbjZZYVpsT2p6VDQ0V2kKK3BrOFpiaW0yaHA2UkJNN28wQlk3cWNQR09VcGQ1dHJXU3ppZVFTYUZHYWFEcStleXptM2cvTXkzRVFKa29vOGQKKzNmMXYzbUVDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMdnV3UEJwVHY5aGRKVDRrdGg4aUdwaGUzeGJNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQWVrcSsKK2pBNEN4cFIrN1E0WFJIRWxZZ3FBOTVyT2RBV05MV2NMem9zNlJLUUdWVFNHemM2S0NGNWRnRHJWMko0SCtvblEKKzBkSGR5VXQzSy9Od1orWEVLL3dtSm10WE9rdXJVR0MzZm1acmxxZEE5UUNEL1g5cHQxV2pKa2pReDR5dUsycWcKK29Yb2RnSWxmYzN4L3RHKytVajVNVnh0SVVKWGNzS3JtWGQ4d205eDk0MjNEQklDdUZtV0NPK2xiSUw5L3RtOEsKK3F6ZFM5a3JEc3d6SnBLdmE0TDR0MWsrVXdnczUrdVpGc3VTZEtsNC8xeUFqeXorWVJydXRtY21Eb1RTbGF4TUEKK3lYbE9KN09Da2pId3hRQXh3azUzQk5heG9FYzZja1RoYU0wT0ZrcEUya1RMMmRuSU04dlpLUkdwZEx4TmVQcU4KKy8rK0hUZXVFTHlaT1BRWGk3RW9aQmlxWElXdFRmOFJZS2RkTlN1NElsMXNLUnZXcFFaZ0hlcWdMSHpmOCtIcysKK3pzekZsZDFnU2lNbUFJMlpkY0hidjNOQ2VQaGxoY05kcVNob29JRXRWa1lIcTR3ZHdzSGg3SlpPdVQ4SzdYb3gKK0VQdCtQUUtQbE5DbkJVa2FxTnVCNisxdzhCV2NwczZMMkNnV3pBK0hQZ2VNZkZVN0VCQVhmc1FvRWh4K3R4UmUKK0d2d0ROMlVFenlvOHF3RWF4UjVBUytOTHIxSGRYSjk2Y1FCRFNYd3FtQmR4RlltWlJacUVyMTdrR0JQbEpDZmEKK252cDVqU2ZKSlRyS3FDc2RNMzVpMjI5cXRXeW5Eb08zYnhITHNlM0Zxa3E0Q3FEd1l1dlhEd0oxVUVRelhXY08KKzFXTnlGblkzczNLclRzdTZhYk8zS0dUQ1RidXhhRm5rNW5WVHNYZz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCBCOTlFOTc5QUFFNDg3NzRFQTJFRkNBOUJGOUFENUIwNDA0MERDMTBBIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcDlCb1kxeDM2THFKUUFBQUFBQ256QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBek4xb1hEVEkxTURNeU1USXdNekF6TjFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0UWprNVJUazNPVUZCUlRRNE56YzBSVUV5UlVaRFFUbENSamxCUkRWQ01EUXdOREJFCitRekV3UVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFJFZ095WEw4VjZGRmF6CitKc1BlS1g0czFwdTI2LzZaejZMdXErNkhveHdFSVU3dGhseTlKRCtlSW1hMGdOeWxoaWhTYU9PWHRGV2hXWnVzCitlL1FER0s0a3ArTG9MV24wMWdaMDBKbW1JcWFCTExoK1NkNkRhUk5ZQnFsZDJ1Sko2UER3ZktGNndsWnNqUUNpCitXWHVxbHBzTGtmTkdueFNFRjVuclZCWVhrdEloZHdubDBtVUd1RVB1TzV4SmlZaDZiaGh5VFhUM1o2SlNWaDB3Cit6Z2owOWtPcUxWNlFlTDdNRzhrdzA5WGFINTJuL2ZhcjlBeFhVMStlTzZVTU1qZ3M4R2RxbUY3dkNKakpPdXd6CiszSURNY2RjV1JTWEozZHVLWmVvc2FQQWl4aHlua1hyVXJsNEkySlo4dGxycEFEc1lvUVFRQnZiakNJT25saE0wCisrWHhqclgwNHpCaW9vSzVFU2ZkQWFSTm5NS2FuemhjV1BOOFpNaEwwMUdUVEVyMmZpUGxibjFWbkJCZzVnQTdFCisxdnlwdTU5eUc5c015RE54L002dG1WSm1QSlJwcXU5cTBRVU5IZGJmUEtkczVES1NFSzNSZitXdk5oNlNnZEhTCitlWDFjVnNXZWNpRk9wZXJ6SmFHN0hsUHVkTnVqTUpNVDRCT1NRcEFkSHR5dXZlNlZ4RExjblNvcHpoKzU4ZG96CitpTTEweHRWTFpKVVZVYnVsZU0vUmhHQnNiSDB5OEV0VFlNZ2pKTTQrL2hQT3ZoTjZoVEJHZ1MySHJMSUZGb3VLCitXZk84Qk90UXFvaHp3cnRQQ1ZTUUg5c3NQRkhtUitRUi80Kzl5b2VlTXMrdWN2cnlYWmhwTUJ0alY3NFhoY0FxCitLa01HWThFcEpuMnJKWTVYV1IzNTNSb3JybjhaQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRHRlowdE5SREN4M0JqCitxNXhJenVmVU1tdGpJakFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGQ01FdEY0ckNLWElEai9BbFRxUFU2T3I1d2VsY25XbVVacnh5SUw2cWhhCitCQ2N2LzZKV1kwMWJ5dHB2OHArWWVKNVlCS29GVHBJS3UyendGd1dNTThFNzFHc2lrNWdSK1RNajNuTkZ2U2ZJCit3UCtWNm5OSlZTbGdreW04cWdFWVlXbzc0TjU2VTJ6bndEY1AvQUpMOVVQK2ZlcFluVEU2K3JqU0Z3Njl1eEp2CitNSkJMNVBUdElhK1VyN28wZlEyQzZXZ05WcEhKOWRObVZpSG1uUjZ3bEFaQVl4cUtHTHZjU1BOOERXbndPdTE3Cis4UGs4U3Y3Ym16dFlmQnBKL1JJbE5heVY5N1ljOTM2SlNDVmVnL0VCL1RLc2VvMEs1eE9KY1lVNWlSY1FEREQyCitmODJhanZFc1J1NGt6ZS9NOXRxZWhiL011Ui9tTHdweHVuMHhtZmExQVlQTDBXMTJLdWVUYSs4REZqS3FqcEYxCitEV1dON1pvaW8yT3BONXMrZVJZQnJzLzUzMHN1WjV5K3M4aHcrTVZCdFE3MGtqWW1GekdrTVZ2RWYyZUgyQnltCitKa2ZZMFdXcUNRRlFpbUdmSUJoZFE4V0dVdlNZemkxazhld0o1Zk9NZ1hsRzV3L2JHa1ZselZMTGVXOUNDc3BTCis1MXpQVWk4QWpDeWZxQlZTTnY4TTdUaG1FQy9VKzF5YU5PUEY4TVB3UHBoRUZXMlFQbW9GUGlObllsUFV1V3oyCitoR1BDZ0tzcm5NdzA0bEgwQzc2K3pReGpHTEwxSDBlOEZkLzhCOGlkSzNFOVdjL2Q2TjRTWXpHN25DeGNDaUdmCis2NTZrVkNxQndid3VkM1JDbHpvZlJYNERjVUd1UDF1SWhGaG1oVG5pNkEvZktPTHBzbDJaSDN3VTBkMXlka1V1CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgQkI5ODA1RTMxOUE3OERCQUVGQTg4OEI0NTYxNTk1NzIwNTE3OTE4MQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBVHg0Y3ROSWxjSHNDd0FBQUFBQlBEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01EVXdOREU0TWpReE5Wb1hEVEk1TVRJek1URTRNalF4TlZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0UWtJNU9EQTFSVE14T1VFM09FUkNRVVZHUVRnNE9FSTBOVFl4TlRrMU56SXdOVEUzCitPVEU0TVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTjdmUURrN3RHeVlMaEd5Cit1S1JZU0dxdmdreFBqMnJ6Z2lSaVZQbU1TVXlRUnNETjVuTndISDFmZWh6TERyeTg5UE14YWR4bXJuUFNwaVZ6CitUUy9aTWhQZjFWRkpER2o1YnJPNEtDTVJLSG9kT3VPcHN2cTVXTjlUL1pJZ0UvR0dOTUlMY2VrbFQyTkxBaXBGCit4MGVjNks4YlFYS1hYbnpnL2xIVGhiay9GaDRZSHpCN1E1ZDU1anlyTnltWG9aZndvSHRLY2NVeWpUbHpPK3lNCitjZ3hoNFNJVmV5eGFKZkJCb1dTTHE0K3ByRXQ1VkVxd0ZzVWtxTlV1U0NTdHNGdDVkWEhCcDZQa2hhQXlmaHVuCitzcDE2Z3FBMERtUC9LYkdrREs5T0NZUlhoRlRLbmIrSDZNYW1rTXZ5Wjh3OHdJb3JzOUZPSnJQSXJDRVNmYk02CitNdUk1OFVFQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTml6VkF0RUEwN09VeU5INkNKTmptYUVCaDhGTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFhb3Z0Cis0WUZPdGF3ZWdKd1R4NUlmVkwwM0hYMzhYVC9sY0swTmFlWU03ZGpGMHRpSkQvcXdPYko3dnlxcnUwTUdWT2NFCitPbzNYSnpEeldDRlhVRG5uYUdiUjFsSUZiQVBzejVyelJubCt5amNSUnJTZkJtMUdIcUthTnlsdUo1bDNXQXJyCitobTZzQjJUc0s3bzFZQ3lkendRekJndnRBcTdhenVPYnRvK0lWbSt4NTU5OUcra09rZ0ErZS95ZEErY2dQeGtCCis5Sk52S2VaK0kwcW1OQUtTb0FEOXM5TkZzUm9qWVRMSUE2NHl5WGx4ZzV6L1kxR2VEem51Qm9vK3ZvdXdTU0VSCitFenE0ZG05aGd3aHZjeFVmWk1rVmVvN2J0VXh0MEJnQlZ3THNmMEtHL2Nqam1hMExvdzdRa3Iyc3BZUnlibmdNCit2SWFhVVA5U0RXMHg4andROG5HcVhCQjlHL1BScUdPZVhmN09Zd1NuK0pwWjBiY3FwYlZKaWQ0U1hkVXJ0dW1MCitlL0tuOUR6WUpkWENkeVpYSVJZd2JWMWpWQ2Jqd3pWSHk3RGdVM091WHBpQmtuaWp2WjlwYm9kSjNmTjRQK2oyCitKN0dsbmVUdTBRdjBvOXRrN05YVDNTYlJSeVVtY0JFRHdYa0tEQzFvMVp4eDVuNXU3WDlpcytTa1lvOGVJQWFZCitqZWxqYkY5Y3RlVXFBcGNMdHB3VkNTUk9KNE5Hem5WV0dtL0kza2RBcXpCUEZtTkpMMHUwZVMvTUdEdElrZGk2CitYQitnREZrZGhYeERGcW0wU05XT3EzakZ3SVpMUXowUzUwQTNNT3JYYUhKTEJScWdUbmlVYUl3MXZBcDJXRmR6CisrWHhzOGxORFhaQnJ4akhtejRKRGpkdUNqZ3kvTjRDZUVRNnNoc0U9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS0VZSUQgQkY5QzVDNkZCRjgwQ0RDRTc0QUJDRDBFMEU2MDA0RUEwMjJBNjYwNiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXIvYTZWSHFOT1Y1amdBQUFBQUN2ekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzFNVm9YRFRJMU1EVXdPREUzTlRjMU1Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFFrWTVRelZETmtaQ1JqZ3dRMFJEUlRjMFFVSkRSREJGTUVVMk1EQTBSVUV3TWpKQgorTmpZd05qQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUxndTBXVzFhZ3dMVThCMAordUhLRW9nT3lnVXdVd3Bjem5jYm92MDlMZjZ4OUNXNGlZVlpPa3dONzdiNkxrcEZxN25mUElWMmQrQnR5eWJEcQorek1aa0l3YzZzSXppRVE2Mk03UkxrZDV6OWh1OFppQTlhVVFFQVdCWnNDRUUra21oK2dSOFBodW1YU3lmYkw5VworOVVSVjFqektlcjl5TUhNN2l2WmhCQmovN1Rnb1ozb1VjMlh3SkpFY1QxTHFtTWpEam5abkFzeDliWm5NZkJreQorNTQ5Y2F2WXRiVlVXY05iVEhybXZDZ2R6R3hZUWVTK0lER1NKTkxaNlpxTzNZd24wOUxrWnh4TWVKb2VjaUhUUQoreFduejFoUUpkUUNDL2Z2ZlowY1VTaHkrTTJGd2ozQXNSTk5IWUlQZWwwNjRtOGg0QzRNZ3dXTEtZMGNvSVBOYgorN0pQOVhpTGNBRCtmcW9UNTU3MGdnbWRGeGUzMlJ0Z0pHdkpUNUpOa1dua2laUGh1bGNtUm9GSlptVDVFRDNHZgordmZUbUl1YXJONk9zc0R4QTYzeXdqVGF1a3NhMmtwUkIrWWhvRWNnd2ZiTFNuck83VjNTUFVkL0dGWGRNN201SworWUxGYkVCc3A3NUV2VGQyRkpYRjd4RmhRQ0FIQW40T2FSQkhDMXRpM3JEbzdaU2R3YWlnQlNvamsvYlNBMXRNYgorSk9XazQwMm5TSnh5OGdjYVlyMWpKbzNNRTZmVFpRZGdSQkFVb2t1ZXR4ZGJHRisvOGFwV2E3UnQ4cUR6bVY1MworSXAzZ3VuZXZjaFZjakhtN2U3V0twSDBQeWtJRTd5L1VJeWd4NDdOcHg5cU1UdUo1ak5hZDNBcDAzRXBNU2VXNworUWtYUkRXMlE4R3VwK0tOak5UMlFKcXRPL3M1QkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRT2FIc0ZVYm9wa25NZgorMTBzRHNhdktnQjZmTlRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBR0pibFpkQ3V6bGsvSG9WOENaWlloZkF3YW9rREw2T21rczdMNmpjd0JJZQorVjBuVC9FZmh3Vkh4VVJxRHlsdDlXUWpQZXFlZzQzK0RyY2ZnZ25qMkE4UWxTWVVVMUpqODhzUUlkNWs4Q2taVgorOFFQTTdGdXZFYndnR3NVZnlUU2ozN0liRVlEWU00c3RZanZjRkFtR3ppN0pKdHhscXgwc3JWWmtzZzRDRUFQbAorY2hpQTVOc01ESC85WWxBb1FoVC9NSzVsYmZNeWtmcmhtdDFDZUc4Y1JvdHNnK2hMSmo4YnlNOTd5SjVnbXovTAorZHFWeGVtQmczSllSdVJ4cEZHYUQzZnBnVVZZYXprcW5kcWt3YWJYMTFsdmx4dmIrNXZXMGFyQWNsejRjVWFwVQorc0w3Z25CZ3ppcGJRd0FMUHJoRGI3RWh4TUU5cGttWGtaNCtiZjI0WHdCeUE0UFVuKzFkREFBMDI4L2J6QmpKKworcnI1V2ZqWkhhY3l3SEpIOUJEV0p5Sm01alpna1pxMWZCdThic09TTWhDM0Q2UytEeS9LTHZTdVFZaWNiK0N0NAoraklaUXYzQkk5TlU3aElSSUhwL1JWSDR0empVc2NvVzl6citZOGoyTU8xZ3B5Wng4Z2ZZTk8veG9wMEo2Yys2NQorWDlPMlVaTTBaVGpDSklKS2VIZUtmTnViMW5SeVhnK3AyQm1aVnlMYWF4THNzQ2ZEalVqTC9XdzJGL0lsSUM3SQorNjFBUDRDYnJydGNKcm9HMDdkdGx0Sis4NEZodEsxamV3NEFWV0QrMEFGQklIcnZkcytrcnBYWi9rak13dXdsZAordUhZc2FpaEVGSU4rOGk5U0pCYmw2TzFaTFlTcWZWWnJlM1M1L0c5THlzNE5ZOTMreGxjMVZVVm1iQ1lLbUw3MgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIENFRkUzMzMzOTA3MzNDNjcyN0M3ODgwREZFNDI5QUZFQjU1N0E4OTIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVQyZW1BWGxZZHBKYVFBQUFBQUJQVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRFV3TkRFNE1qUXhObG9YRFRJNU1USXpNVEU0TWpReE5sb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFEwVkdSVE16TXpNNU1EY3pNME0yTnpJM1F6YzRPREJFUmtVME1qbEJSa1ZDTlRVMworUVRnNU1qQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU4vNGliNGtnOXRNczNiRAorV2M5WjV2UDFNZ25tWFNCcGlsUE5xOHo4Rmp5b2RTTU9wYnRULzZ0dUhsQkxaNlNuWmNVZWdXbm9PcWRoOVNMUAoraTYzYVpWNWZidDNUWnlRbDB6N3U2VVk5Mm54VUQ3OFpLK3p3TXBkRFVXejFVQUkva213VEtyT2xYSldqSHc2KworMUxVU0dxMWlQM1o3YWtnR1UrUmJjTGZpVi8wZGNxVWxIR3QxWkFPaC9udDV2bERSenJadnlZZCtpbTB4UHdlUgorNW9PMEt1dU5zR21sbnRXL0pUbTRrR3pML0Q0NE90dHhFY2dyMytXME5PcWVIb0tBbzRiaTZvM3RaV01sb0VlRAorZ0lhRHBUNW1QQ1lWeGpMSTFHR0JqRjFkMHNGTklNOTgyOGR0QlNuRjRrdmZUdlVGcWJzNGRrM1lhWVd0Uy9RYworNEFiVm9NMENBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk00RmF1dy91S092aUVhbGFZTEUxR0N5YmFUNk1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBSzVuMgorOVROMzhpMzFTK3kyNjRRNTNuUjIxR09SaEFlUW9zN0RSVDFmRHFuS1gwWnVNQWc5eXJIMGxsMmpTcVNCVWJKNAoraFVDUHJjYy9qdDk3b0NiZHlLYnIrOVFjVjYwaldidGt0Q25VcE00YjR3bmJyVWUydkpTZ3NDaDhhcjNzZEZQMgorOWZ3VVhkS1doM21kL0ovYVlhT29jeDI5SWtLcC9vWHFMSDVlc2xJQUVnc21HR3lDeGhuZkxVYStnVEpNY29CZgorNFlLRTVtT21vTU5RenRjU0Qva0hTUnJJYTl1RGdMcDltSllMR1pEWXRYUHJoUDcwZC8wcklCaFdMazcxaTRDZgorK0Q5WjJZbkJwRnBWaUhpczYzeUR6VTFRcGlsZi91Q0p4SkFRc3E2ZU5BUzRTdVBSdTRDSmpYRHFPcWNhd1ZJcgorYTdGVTRBNnIwbzdRaWVtSDJVNmgzTHhvajRVL2RYbkZ4NWxkYjF4UHlJeGpHUWhseTNpTitCSlZTME53cCt3QworYy82T1QwcDhHSHdja0FYc2Jpa1huTjZYaVRha2dhblJYamRuOHFFWUhwWnhqT0NEclVDR2EyanVpMFZrT2IzYworYSt5Z0NTZGJrMDJGbEFGWUowdlZDOTBPM0RkZWMyd0JraVJBd09nVEhLMmVnS2JENWllSFd3bzYrZmRPUUxhTworSEd1OUhWVjRVQU9SNzZxa0IxRUZEa0phWVY4RC8wTDhnalJZbjRHbHIzL3dIQngxTDlNL0dYTGFNZHIxZEdIUAord0JTWStzSlRiSXJxUTFVREI4YlJ2VFBweDh6czdrdlNJanhBT3VTYkhCdUk4eGhDMzEzU21OYzhRNDNxbEdsaQorMmp2OHdrNjlDaitkSFZ0K1NTTitvUmMrQ3J5YkhsVk81MjNhT2EwPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIEQ3M0NGRTVBOUUwMTgwODAxMTgxQTE0NDRERTM2RUZCRjg4QkExNkUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVhiYkcvc1dMS0didFFBQUFBQUJkakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGt3TmpFNU1UUTBNbG9YRFRJNU1USXpNVEU1TVRRME1sb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFJEY3pRMFpGTlVFNVJUQXhPREE0TURFeE9ERkJNVFEwTkVSRk16WkZSa0pHT0RoQworUVRFMlJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUl1VWw1N3NCaUM2eG8rbAorZk1oYzV4RXlIVU92L0ZYL0ZnQ29TQVY5UGpLaVAzQkRPMjBNRUpuUXVsdHNVSXh5Y1hBMWc2dUJGN3pxS29JNgorTlRzZlNSaVMrQWdZWDEyeDBiRXNjK2lWU2MrVS9mZkhMNnFSeEVidmJXZytPUklkSEFRZk92VC9NT2lOWk5iWgorRHlQelBsY0lPUGtxcmZIMHFLeFQ4dXZOQ2Rac2k0Y2dLM2J6RFYveUp5Q0lXZ2FEVW1hanlBRHNCS0RBcE5MeAorRVcwMXNwMHY0c0ZxYlRweUdCOGJNbnhyS0JQTnhXdkNJeGl5Nkt1TzJBK2tUWXQ0WXZDMExrWnJlaUlwVThaNworWUhMWnZBd093ZmJWUmtOTmh3U09kM05mZXdrazRIN0tIa2xSdFZJSEtZNTRFR1lOT2FZaUxqUTRzUnpVeURqTgorVHRMZEdJRUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkRVS1RGU01GaStPSWFFS1lNQ3M0RjZTS3FFRU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBTG90aworbktTaG9KeHkwOTFsbDFNbkJvQTQ5NHErYnV1dTBKcUp5NUJjK2JMbXFiZWxkMFVKYlhyM0VtUDhkOE1OMkZyWgorMVdxM2V5eW9pclFJSDhhNTArNTNFTmkxZVNQbVBUZm9Jc1VpaU5CVWFySDBKSmJXZy9sZy9oV1FFeFVDZUtwQQorVWtNU2ZwY3JsQUxjSTZ3cUxSVVp0WHFWb1Vwd2hPQXdJa1hMVFNBREs2bm1WV050WkZ3RkVmcis4bkxnQkd1WQorQWl3Q2N0V25nL0w4d3ZCNDBwM1A0bWFvbzJSUVJXckMvNkJ3RktKZTNJUnVIMDVmblAyYy9sdlZUTG4xUUpQRworYStpMEpCTEIwcHh3c2xlbWRSRU85b200YXVwRjRpYTJqVG1Kd2NXbTYwZTArSkphZUJjTGh4blNwdC81NUluNgorT25WeFZRblVUWVZubC9nL0ZJRGdVV2xyN3dmWVcrYmljd2pXQ05iVTllakNKLzd5UHFYU29sNGF4WXo0NnJYRAorMkRIQWZyKzdFd1E3QURxNm5BT2lvTEtkb0FLOGhySmNOSEtWak5TQk5hTGt2R2ZRejVEUVA0N0d3QjQ4Rll1bgorb0xZV3B4YVNyd1R4NG5SdERvTmxBeFZPQmdwYXAyYjZjUWFyZEdCU1ErRFowcEZsMG9LdGhQK05Iemo1dHZtdQorZWhlanVUNnFjUVExdkdWZlBDNXlZbVFBUnE4R0t3cEoyZjF5bDg1aXdaMzZxb0h5VWVJUk5QOW5wTEYvb2Vlcgora2hxMTlEUGovNTAvKzVoVEc1M3U3Y1A1MTZrcHQ5aWZXMDdkU1E3bFFxdkhNOTgxWURxaEg3UVFRVnNmZmJTdgorMlBLQnQ5eXhXN1VuYXVkZW5qTjRXWW5jR3NCUEJCVkNhazhqbG5NPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBJTlRDIEtFWUlEIEQ3M0NGRTVBOUUwMTgwODAxMTgxQTE0NDRERTM2RUZCRjg4QkExNkUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFxQUU4K0VrTFJtdmV3QUFBQUFDb0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekF6T0ZvWERUSTFNRE15TVRJd016QXpPRm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRSRGN6UTBaRk5VRTVSVEF4T0RBNE1ERXhPREZCTVRRME5FUkZNelpGUmtKR09EaEMKK1FURTJSVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFOOFVQS3NNN1djdS9lTWsKKzZOZk5vamkvOVZsVHY4NXVGY252VVZWT1FOZ2p0cG1Sc0QrUkJVbWkrWXJMenIwNVpqK1RkTWJ5dFpqRWdZdysKKzdnMGE4dnFGdU1vK1lZRE1HZDgvRStNVUJ6cFBzeUtIeGlpWjQrUGRKSWdlU28zTmNzckVaY0hkSFBEU2loRUsKK08wdE43OG9abkUvcXJyV0VmZzNveWFTUENaTXpDUHhZZFdncDhCQ0JSL3FyU3EyVHl6ejdoMjQvbmhOaGtwZ0MKK24xYU4vSkhaVUNwZHlYcjZoeVc0UDJFSmM2dDVsY09sZnVnUXYrR0F5ZVh0cVN4MC9yMjRpVFVxM3I0S2JNZlgKK2UxWk1WL204WVBPamk4ZktxQktwSDBCaFUwR1ZSekk4Yi96Qng5ejNHNW9oRVNkaldhSmZHaFdpblZIVmhReUgKK2xpQzhoQytBTHA0Vzl2ejFuVyt1NnhwWTU1eU5KbndSMWVwd1h0K1ZRanJzNjJHcml5MWNKNHRnd0tIRXFmNEkKK09NdFNzVUI0M1FESCtTRnJRUmQ3eUFxYitFRlduY1FVZ2xFdjRPR3c1Z1BXK000TjJVTkJMTnVkK1VONjNqeUsKK0FqRDdyaVNjVXMxZnc3SVBBT1Q1ZlVScURyZUk2VFlqQUN0L2R3NkdxTTdvZkYzc0hzTkFIQVlDVE91MzFUWHcKK0xBa3V1QXVhV2oyTzdLajFKeTNXUnd2SWluMTJDd3pWbUlGM0F5bkNkNkhoTlpSUmpyUEJUc3RTdm42cDl0TWUKK3pmOVlXVzZpV3RBZFFoZlRIUmg3TUhHUGFDckt6QXc0TEluY1Njc1VJWktkdjc3aWE3U1pUbnRPdjBUZ3oyUlgKK1RuSkl3d2UvZ2tYQUh6QTJpUW5KWjBhTCs3bmpBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCVHQwVkpzcnRBTzVtTlUKK3FkbnB5UUZLOUtqTGhqQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUN3cnR0SVdsYUtDNU1xeEg3TWtlbUk0ekNjRVpOSklCZ1BaTWpOQmZiam4KK0ozNTlZaERNWFF1a2x6MTNLaGlvS2FtUnphV1hqUDlqUk4rM3YvZWxMTzNpTFpHZnhCQW11QUlvd2Z6SStRMkQKK1NPQXYrN0hVL2x0RXBKNmY1SVdVRVdETW5aYXNQMUtad05SZW04dDdZQ1lNeCthcmp0eDhJQmU2dFgwNHRhU2EKK21ya0RBNklVcjd1aG0yWEZRZjlLWXpjclNVcktSYWFwc0JyRWZiUkFCRis3SEcvK0hUWWdlMGlxZ1lPVmVvTTcKK0lXSTRNV2FPdUVVOVd4U0NoelVOb0NWV1N6Ymlxc09QKzBXSk5mdTluNXdRZTB6QnByTE42WkprcDlteHg2SnkKK2NMdzlodkNSNnRhTmd5UE9MMnRZcWhEYXJRVlJkTnpmNFVYOHlweEdjYkZXUEcvTUtNNGZjcG9GaEtaZCs3WnEKK3RGeTVtNGd2MEdPWVppbFFPLzBMRGVTQzRpVnVYRTZiaytUbStWYWJTUzVDZzZ3U3dETk92MDBEY1dhVWtQR0UKK0JHL0ZTUlRjRjFSQ0dLYnhWcFhDa2NLbFZtQTFyaTFsUVcvRGhIaEpBSUg4SUg4djQ5RGxlQXBid0d1a0hNWmUKKzliaTVRK1o2WTMvN1E3blRxMkRMYUd6VlJFZFZ5dDgyKzRqQWNBa0JUbDJPNlRuWmo2NkpuT1ZTL3c2NHYvbTEKKzIxQnFrRmg3VmtTc0FTWE83ZUpJa2QyQTJQYllHWW9vYTVpM2JkQndmM0ZlbVpUZDUzU05mNmlBc0cyMmFYa3cKK2xYaGxXM3kzdVNpRExuLzhmNlQ2N3JlVW5rTlBRamRXeHUzNkNQS1Rvc0FDUjIwaklScHQxK1Rzd0RBaEJRSmMKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCBGOTlGMjA3REZDODc5N0JGRjkwRDY0MUQyNUZENUE0NUY3NjMxMEI4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFISTZyYzJ2S1VkQU1RQUFBQUFBY2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUxTVRJeE1ESXlNVGcwTmxvWERUSTVNVEl6TVRJeU1UZzBObG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVbE9WRU10UzBWWlNVUXRSams1UmpJd04wUkdRemczT1RkQ1JrWTVNRVEyTkRGRU1qVkdSRFZCTkRWR056WXoKK01UQkNPRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNK2J0Vzg0eVRGZlByOFcKKyt1ZGo4SlBXNkR6akZqVzFXb2ppTmRLZ2drVXo4M3hLNGtCOXFLSFFSZHNNSlpPUno4NUp6TkM3TW9Jd0tibS8KK3EyVTlZSXFJVnZON2N6cHVYbXdFYTd3RGNvZUU4UWhCM0R5MzNVMG5JcDU2MmVvODd2N1NjK21ndyt2d0RsSUIKK0REYmU4SDhaazFQd3FtTkI1dThWL05rYnhMejk2SHZabEJ4SHVIeE5yaXExYlNQdHBYY3Q2K3dUTk0zZmxpdmMKK2hXbVJYVjU3cGdyVGJTQmh3ZHlpYlpVUzdSSFRmQTBGWXhlSWlwVUxPMVp3ZFQxaERZajVIVWErbklWeXhZeDkKKzVma3N6RWp2dmJhVVJ5Vm4zbzZMT2VUWi9NSE5NRmt1cG1ON0pub0pBbG5Qamk0bDAxbk1CUnExMThTTEhaRXQKK3hnQzN6L1VDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFRExlRVM5dEcwR04zK05vSkNieFJHbE1MNmtNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVZodEUKK3BvaGNjTXlnMDBYR2Q1RHFWVzBlaFlZTFduYlNNYkxjaVVlSjZUSGpBNWN0ZVUvdW9RKzRhV2VEM1BEeENXYkEKKy95VjlnV2VDaVN4MC8wK215T1lDWm02eU5tVjgzSW95eHZmSDltZEs0bGZXbkhLUFlEODRQK2VhanhIeXFSTysKK1JSTXJCUnp0VDU2SjdIWVFLRGplRGhid0RxbzVYa3MvNzZWaU45YlBTTUp6V1JCTUVUN0NkdzZJbXhxcXVWS3AKK3ZJd2pJNWtleWhCaE55RXlWTXY2R2ZwYnFRTDJOUnoyN1VCM2VoNnkvVVdyNUIzdS83ZHh4MHArc2tDNWthOGUKK25kbXFNN01WenNVNTcwaWIrakwwMy8wZEVEV0F1UDd5bVUxN0swWm1LcUlNTy9GVU9kakhNc1NURUtYRE4xbTQKKzJIZ1M4VTVyZ1JNT1NHZXVtNEJGZVY4UlFVWFo5SXFWcmZXaTVsUWJyd3AwTFlGUUswMlk0NThvMVI0T0hBbG0KK3VjN010U1ZYaU5kcmtwUWRTQWpmSUdnem1JN1JwTTkwRTRSbFRzbTJvMVFoYUd0cTFJTTAraCt0NWloaUk3a2sKK0RzV1RwYnpNNVRZTzZlOWRER1QwWFhWOUJrL1l0c05qRWp5c1JZMGJwSktvaE1KTjM5VXplR1cxcGwyNzZ5WlQKK0V0WVVKOU0rbzBwU044TFFUWVRHR3lvTk1ZOTY5cHpxRnJ2a2NJVmc1MURjWmJJUTlOMm40d0gwR3N5T2JVa3QKK3k4aFBnWkp3VktYZmNqL1Z5QUZsL0RiU3ZVTlZ3T0VhZ1pDaWl2Y3FLUitWRXVnbVhSM05tSE9WZ0JWWmVINkgKKzM0WlROcVdlWHdkVjlvOUNxN2tpM2ZqR3RWbUZZSk13VUZJMVNFVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgSU5UQyBLRVlJRCBGOTlGMjA3REZDODc5N0JGRjkwRDY0MUQyNUZENUE0NUY3NjMxMEI4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcUYyeVRKZjVWaDgxQUFBQUFBQ29UQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBek9Wb1hEVEkxTURNeU1USXdNekF6T1Zvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMwVlpTVVF0UmprNVJqSXdOMFJHUXpnM09UZENSa1k1TUVRMk5ERkVNalZHUkRWQk5EVkdOell6CitNVEJDT0RDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFZvb3JDTU9oQ1VjUEhECitOUUx5SS9Uc0Zvc0RIRjhSUldScUMyaW1KZVpHbU9GWlJtc3hYYkdQYXpycjBLOHZmbHBCeEoxWXZ2ckpzYmt3CitzaTlCUUIrR3ltVDJGWkJ2eDV4N2l2Z0FtcERQTmN2VTFKYkR6OE9kWm1IYVlwQ3UyRjQvbHBISms4OVlGdzZrCitYUkExWnExZDl6UXk1R2xyNzMzVDB5MTZFb0FZWk1YNXl0dkI4YWNkOW8vNXU2Wjg0cHlXMEVPQlVsSGE2MVdFCitqQWdIOGU5b3k3WCt4Z1dSWFp6RlRBdENEcjJ1Ry9KaHNxYXZCeW4zS0ZHb3Z4aFlYcWY2bGpTeUxaTVQrSHFGCitOclk3c2xpUEtiUzFrZ2JrUTlNZDk2RTZ3Q1dKdi9HTWZmUWNnbHd5SGMrVWZwL0dCT1RDVWNVVko2MHZXVFRVCit4RVJYY0dOMktXZzhKRmxTS0hMemgyQVNSc1AvMEhMbFFvaXhFbEZQZUxBUnJkdVN6VGRneCt6SEh4VFBUc0grCitSNVRZWkFKZmZWV3FiWnlZR3UrejlWSkdtSkJPbmdWTWowN1E0RkU4WVI5VkJBT1cwQmRydGVXR1M1UGxNcEorCitOcGNCMmhWMWVMUnZudFRMRTlWZFhwdDNtVTRVaXVtYldXZVEva0Nab3hsdW4vZDNCTTV1TzVqd0VmSTZoMGZhCitPcmJZQmlNbm15R1lSNHJ2REdQSVlsS2c2OThMUVVRd0RGWDlvcy8wb29wTnYyU1ZsVll6K3F4a1V5ZXRyWHNTCitkU0l4OEp0VG0yOGs4NDhMVjI2VEdJUWxMeUxMMUpDS3lqQjRDYndrcVJ2N0xsL3gwMnpFMWpRMzdwZVMwdnhqCitoVW1RT3c2M0ZQc2NOTUdPaHRqRUJrMkNnMDE5QWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlRxR1U1c1Q4R1hERWhxCitVbnpjOHZ4SHBWb01OREFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFGK05VUHVhUWZVcEIyWEt4ZElzc0tVdnVVSElhMHE5eVk3T3FpSHI2K3V0CitPWGRvUWpIQjEybmx6cVNtM2gva3l1RzJwZUdXcExZN0g2VnNPZWxPenpBUE9NYWVrNDdLUkl2T0gzWU1VaDRFCis4dURGMUVnWE44WktOSXVYSW9zQ0J2cjNLb2pvNTdwUkxQWEw1T1BGUUlleFZyU1hNMmdtVzVsN3pKeEdMNDFJCisyQUVsR2sxZ3lMU291cXFlSFZBa1YzbjhBaE9IWTJsaUwwNUUzMHZ0aVN6a054bmk0VHZvSkt0NC8zd0hVL2wxCitKWHNORllGQzd4N0xWcVEzUzhwN3ZWSDZPRXB1cTdaWjJqWXNCbnRCQ2Y3SEorWlVGeGZZY28rTEtNQmpMNkc4CitxL09IUDlFSlIrUExQWjIybGRPZ0xubkY0SU41ZFEzd2c2bFV6Rnp6dkRxdVdZMG9PQkxkUVdaMjdwSlVxNzQ4Cit0eFNSL3RZa2N1UVlydUFONHVQbUpkV0FEb1dmU0g3c0VnQ2N4QWlKbnFGQUtET3ZuWE9sREhRNCtUL2JEek1aCitlcFlyZVJZNmxqdWFTRUlnQTAxZEVsRHRtNGtZQzhFZHJHZ3I3UlU4UU4vdkdQN0puY0ZxbUt6TU9OT0tsS280CitSZU5mdFlZNTJydU1YZ0JHejc5bmtZRXF3aXJtTGNTbGRyUTdhaFl2MzhNRUsvaXJGTEpQbXFSUllMc0xxK2lRCitTV0l2ejVXYmdjZG1UeEhGVUQ2bSsxcFd3RnVIaEYwUTJ2b09CQ3ZQVXZaNUtZbXhyUHdkVEpTOFp4d3VKb0pFCit2aXFYZDFtenN0SWw3WWhQMnoxWERDWnhxOEJjVDNhZ010MjRkOGlBaGdHWmp1alJjOE53Mm5hY2lzZnpHYkF4CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgMEZBN0I0OTUwNDgxMjYxMjBFMTI3MzE2MDY3NzZGM0Q2OEEwMzdDMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRUJzVmpXemplZzVXZ0FBQUFBQVFEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeE4xb1hEVE13TURJeE9ESXhNVEV4TjFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0TUVaQk4wSTBPVFV3TkRneE1qWXhNakJGTVRJM016RTJNRFkzTnpaR00wUTJPRUV3CitNemRETURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTC93dTNqZGVocGIzdzVZCitTMUxBOXppTmY3anpiZEJIbFc0SE1BRmdEcWlmajVBWkptY3c1dnU5eFBpS25mL1pzY0JxY3hHSUdrSjZCMk5rCitMbU9vcU9wUWlNekZTQXVuNVprU05DcWhOM3pxWWRRSmVxTG01akt1YzFTcVBMZm5ENnVUc0FkRVJyTFE4b0cxCitJRzZsM2RHS1hLbHRRMlJ1NUE4TjZOZjVPUmtjanhUYjAxcTBhVTVCeHpvcGhTbElDRjUrbk1WMmx2elBMREhVCiszeGJkbGdtVlhZZmFRakk1SG9nckpqS2ZYSlNCTjkrN2Qrb3hBTndtL0NLVTg4bldBVjBKWUxmTzhLT3g3MFBZCitQYzJXUEdaQks5Vm5RTnVVWC8vNG1IK3FTMjBJMEI3V3gvYVQxRzRVK2NrV00zZ1NRSGhWODFhNkRrUWdXV0o2CitMS3NHSkRjQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTVMwOWhJWDhlSGsyKzU4L3BpRUhjajQ4d3l6TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFUaGswCitMT1NjYzQrZzRJMnN1RnJIWmdqc0loLzhPSWxseFBwTEdMa05nSEtQN3pDZG14TEhCNjRVd2J3RWQrM3VkR29lCis1akJDRmNJZlVBcTMzYVVqb3JlZnZDV1BYTGJINmF4cjM0TGhiU3YrQTNaT3FLSFZQSWx3TTBsN0prK3NxRTNQCisyS2cycGV0YmhqV2tXMkk4UEg0R1RGSy84RFZWRTVQQmMvSWEyVlE1M1FzQnMraGQ2Mjl6N1NNUW40dGZZRytDCitxbVpLYjM3UGE0TDVzV1NUMEhJSFpGL1l3V0xsdUlWY1VDckY3RzJJN1VsVlNlcXJFSml0NFp5WTBDY2VwZllYCittMXBZcjQ2Q3JFcngyZ3ZNN3l1WHlLVjhwRW8zOWFpQlJrbjF4Tld4aXo0TkVlMDZLdE9FWEtqck1HMjZVNkEvCitFWFNydEZrcWV2VEF0S0JWWUxkbG1XUTc4ZFpPaUp3UjNGeWRrOG00MGdVb1EzZklvdHFZUHRaWjVmVm80ZDU1CitFaFM4a2dOd25HSWdGNHl2ckhXNlpra1Bydlo0QzArQXBXclY0bjQvRW0wdnFndzF1YW1vdVQvalNaOFFNTmhTCituMTVsR29MQ1BXYkM3aC9FaDNiVmIzL3FuNkl6bm1XdjRQcXVyL2hrTXhEMExSS1FHaHlxUjVLUnN4QWZBeWh6CitGR3RXSE1GMDY4VU5vd0p2enI3RDUrbkRUenRJeXRPMW15VktrMmlBaGpBdE50K21makpNRUorV0dKcG15Nk9CCitwMzhPZUlxNFZJcGo4bUNiYzVIb1lwYkhoY0JPM0xSTGJqWTdZWUNIeGo4K1ZmQlNIcXdPdTN2eTFmQk5wYkRlCitaVXRKWVNWc3RZY3QyeHhEUFJHb29rU0YvWHQ1THJGOUtNQTlGNkE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgMTQwOTJCNUY3ODE0RUM5QjcxM0U5QTlCOTBBNEM1MTlERjA4RTY4OAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRW04NzN4Q0N3SkFzd0FBQUFBQVNUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU1Wb1hEVE13TURJeE9ESXhNVEV5TVZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0TVRRd09USkNOVVkzT0RFMFJVTTVRamN4TTBVNVFUbENPVEJCTkVNMU1UbEVSakE0CitSVFk0T0RDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSlA2QlhmRHpYbFRNRzV0CitGT1VoWjkvU2RYeVY1dEZiN0J5ZWFPNHRpRW1MbkNSS3NsNmNVdlZ1bC9CaU1XRzRRR0s3S1lMZ2NKZ09ZOU5JCitiMVNpZ1l5VDFMNzFzS2UyN2tqRnloQWQvWDJNbVhLbGV1SjlEdXJQRTlEZ1hnSGNHU2hzSWppSVFVREhZRVZkCitydVliT0c2eEprS0V3Qkl6dXJlSzJsbmg1bUZKOGdTa2pTK2NYNVV6eXpoc3RCUnRtMzBaaXRWcjVGODJ1cWNBCisrSU9seEk0MFFSbGpTN1VQb2pDbXNJRG9WRWxmVm5oWkFHdTkyaDFMcWFQMkxlU0pPdHJOdDBOQVM3TGxaMlNECitUQkdZWVFVVUZVODdrYWwrRlFBQ3liejQwUXRUUTFQNURZenlyWll6MFZuYzFpRWJzczRqOWNwcThQNHlpbEVLCitvV3NITFFNQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRHcyckpRd0I0dWJtWDkwcFQrSk5QZXo2S1JWTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFhbGlJCitiK3lrM1ZsNWZkZFRVVWNNSWRjRERwcW5rUnplRkp2a2xyMWcwR3k3SXNkWGZza1Bid3BuVVF3Q0prTW42NktZCit3YU5WV1dZQkptcmRVZTd6TmtHdk1KQWk1dUZtcWg5OEIyWmEwakxkaW5PdUVnOGVnelpmUk5YMGJ1ZmpUTUVxCis3dmsvamVhVkhNZUhUWVdHeXQydzQvT2NKa1A1My9STXNqOHd3ZTNiN2RuSG9xNEdlQS9oZ1RTdkhpVXVKcWxrCitJci9JOVp4ZG0zQXd3TDZvaXdoRFFJQTBKSEN5STNyMHdLUWkyUUdaNlJybXlFOHhybHI0VDQrK3hoL00zSjFiCitsSDZZc1BTTVlyL3dIdEM0MWRqWUxKYXYweTd0VWtldEdzZGN5YmNYdGNuTXZxcmZneWh1eFhpVEpvMjBNNVlPCitLUnp5Q1pJWlN0cmpWRjhBbXJJMmRCQ0pROVJ3K21oSFlhYjVxQm9kQlEraFM4dFhxMkN3amdyMGk2ODR6eitlCitLVDVSeHBNZnJuQ0tHZDc1UDVFMzdNWDY1Z3RBQVc1ODRQdi95a2tBL3dPZDRLblBRampSVEpFVDJ6ckR4N2tsCitVYlpmVm1zb0wvSzcwZlpyVldUUS8rMjg4bDdDaEtBMnQ3MjN3Y2xkQWhzZ1dic2RVZWMzQ1BGbzBMcExUZEJjCisxQ25xa3RQSzRiMnNDNWhybzZwR0QvdHZVYmcvK2tvbzJwSzc2K1hVVDJ4S3VUNnlZTGRNamZLdEpiZzF3L0h3CiticE9rcU9RcEFtUkk4aHZUdTZicEtmeDJaV0JZOTVnd3JZa3d1Tk03cFZCWGhLQ3hGaURzUnN5TysyUXlCb29QCithR3Z6VGpHNkkvQUZoVENXWEFpaUdscnlGcjlSaGZHZ2I2amNsaG89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlFMzI0QQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRTlwM3VnWUYyTWp0QUFBQUFBQVR6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU5Gb1hEVE13TURJeE9ESXhNVEV5TkZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0TVRRMU1USTJSREJHUkVJMU0wVTVPVGt3TjBRMlJrTTJSa1l4UWprd05EVTFRamxGCitNekkwUVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSXZRdUxVRjNoNWlmYWw3CisxQW16NnhiaEtPVUNwdEF5UlZGb2k1Z2RNdTVDVHJMa25zU0JmUHVnNXR5KzRmK0hvWGhLUWtuYUEzUlFhZjcvCitHdFp3R2htdU0zcTBlUjRYbzUwaWo5ZElIcUllQzcwUHZHSDlpN0RTd0Z5VzZreVcrdE9ObUFra0hON3grYkZOCitCRVpqMy8yUGNLSW9kZDd4SG10Tk53d2d3UEQyNkhJY1lTZGFhK0hZVDlHMm1jUFpELytkRmVKdEpNQkJHa2k0CitSb0NDRHc3Skl1VkFwMVo1TkxTYkZPNnFoZnJPTWVHU01YV3ZxMVEzbXpNbzdHWU9Ua0s4bnlvVkw4ODVaSmJYCis1YklScjZUWmtQQ1FGQjN4MlhxbHJTbk9ra2tvZmVRS3cvSENmYUIzMDdqbXp3SWRJUFVFREU5ZzI1NzJZZXFxCittNFBHdW84Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTTBvNWt0RTdHOFRmb0k2T01PdHlEejF3Wnd5TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFDbFVwCitCZDZmTXltQWY5YnljMUR4MHBXRWpOQVhudzJXOGppTUoyZGsvQTFIYit0YWxCMHFZQXZZcWE1TVdwL2dOL3U2CitZOVdCVjZCeFBuME5ueE01cWZ2UDRVREVoZ1J1K2ppT1BxWHhBQnRkSkFPMXV2enh3dGJuejNXNkNtckFKVU5XCisyMVppY3hUWGhGL1pRWnVobFBhdXc3eHpJYXM3anJCeXhwbVdQZ1J1S2tFVnMrYWZuT21paFJDcUZhV3lUTk8yCit5d0FWQS9IZjh3MG5taGpNS3c3MjRNWDl5enY1YzFlTWkzSFpvT0puWGpNZTlwd1lGb2NlUHFEMGdJMlAzQVdDCitST1hremhocnlNaDF3ZDRPaEJtUnVaNTQ1UGJQakYxWWVwbnJBUzhsalFxZllScE5nMHhHbThvWlFBeEdVUTNMCisvOVlkaDNpcWl6SXNVSEtLV1diS1lzZk5EUG4zY1UzRzZWdUY2M1kxSTlOOHhFL1VtZDNwR3d5YjdLSlE0TXNCCis5L3RIK1FkWDlQVTVmcHZRV0w0MDhzZ3I3aWxXbVZuRzdJYjUwQUxxejUrZEViWFZvZ1hhZUNSbkpISEhreWJqCis4d05ma0tSUWJKaDk2c2ZMUEZGOENSNzd4Nm4yNU1RdFhBdkRXMGkwcVNNYjl4aDBEeEFYbDRTOXlhSFhpRGRUCisvS1lMTDZUNlJQSlREUlcxejY2aUxxN2JBS00raFBaWGd3N1VWaG10cHB2Zm1QNy8vSE9NeDFpS0hGRWUxS3VPCituS25kZVd2WUF0aDdTM0JGZXZZV3MzMTJhOUNlR2FDZi9scjV1VHN2dE1JWFI5RGpuQ1hFdklDWUJ4b2lnNHY2Cit3U21ycTh4ZVBqN2JWNk5za2RVNEVXMEJaZTBJZytzWXVJS2tmV3c9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgNDk5NEMxMjlGMUE1NDhENDg4NTg2RjIyQTJERjg2MDM3MzlCM0JEMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRWErN3VWY0xMYmI0QUFBQUFBQVJqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU1Gb1hEVE13TURJeE9ESXhNVEV5TUZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0TkRrNU5FTXhNamxHTVVFMU5EaEVORGc0TlRnMlJqSXlRVEpFUmpnMk1ETTNNemxDCitNMEpFTXpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTGpNb2RsTVN4Y1I5NE1pCitUT1RVbzY5aE51YUM5SUpJaXBRMzREbjlXS3J6dUNDYXBnOWg2MVF5WGVFdDlaTElacXBhcHhGem4vcFgraUhhCitPWDV4ZGkvaUNPUE1nVEJXbENqOTZCREp6c0ZoU3N6WkE2Z3hkRERvN2RuWjNVb1Z5V0FvNUJtb281b0V1WFdTCitOWWU1YzdPN0phSFhWK1FhMkRNQzhzZ3d2Q2J3bEV3amJtNkw0dEp2WEU0aU03Rk9kbS9CODdpVHE2a2R0Tzg3CitreDlSSXJsTUFIZlo5clh2ZFM1Q25JemgxMFBUYXRxWkdGalAvdmcvMGo5S1BkdkRPVTNxamx3ek1yMkJxNFFkCit6YmRtbmNmeUhOYU5wdE1Bb3VZUHZadENsMCtTb0haWStadWZXMlh5bkdtS1ZJVnc5SHBZQkorSlVIdFFZWlIxCiszTmt3L3k4Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTjRpcklCRnJ2WGRIalpQd1hiSUw1UXNBNXBDTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFsbExpCitUSjFoTjltSjRyTEIvZUh6MHQxczNyMzZIdmg5U0w0ZGZJbU92Nnd2QzhoelR2QlRWdm53ZHR2cWs3YTJBQjVZCit6REFKeXhRZFZkbHMyVGhxM3NoV1RvTVBBQnZHcG5pWlU2enZ3b0pJeUU2aEVtdnZDVmg5ZCtWZTIxa3FJdEZUCitCOTNhc0FzVkFudkJDOEdXUloxSjhtN1ovNUtIcW0rUmpHZUtya0kwNldqSjZ0M01pRXYzOWIwcWF2TzdSeDVLCitHK1FBSmRHbHpKR0hXODZpd1BVSSswU25wVDc2UURLOGI2STg3azhweGhEK09iaG9DenQ1NEw0dm1GU0V3L2liCitlMCt2THduSzhqTStJYUw2bGxLWVRnOXRRcjNrUHJEY21lRXBiUzhMMmxoVldHOTZmTG5iK1pROHYwc05XeXp5CitZM1VzNU5lOUdwTk1QRlFESnVxMy9CMkFOa0d4UTM0cTBhZVpldFhCeHJsRE9PdU9hRnRXOVFwWW1KWmdLUjlwCis1OThLbWRHNnY1VEpKc2dnNVJsa2YwMEMvZHlWeUM4dWlIVko0UzVKK2xQSE9GcU1UN2E2bmdpZ0tXaWpQUWRxCitVZUxFT0hDaGh4Tmd0NUhwQ0w2UUdURG14UWdsYjBxMG9tbUoxWXJLN0EybEgzVndVWmRYc21xZnZQTjdTMXNzCis2WFFIbGo0VHoxM21xY0hVWXAzTGZHY25VMUNjSkpnejBwMWtZWnlZcGFwUlFPRjYrV0I1Y0RGRnM1VmhtRFlWCiszbTFBMEpzZmZTWlpKYkYyMWhteENMeE95SDNJYUF5My9BZ1pwZVdOdzAxaS9JV2RmVnpyOU0wdzZIeTJGZi9YCitXdy80WTRadm92d2lYUE5CNDJwQmFoZFRSdVc0KzZMaTNJUy9GMUU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgNzI3NTBDNTJDQTNFMjUwRTcwMURFRDY1Q0M2OTIwNDQ5NEE4NTczQQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRXl0QWxnL051WXFjd0FBQUFBQVREQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU0xb1hEVE13TURJeE9ESXhNVEV5TTFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0TnpJM05UQkROVEpEUVRORk1qVXdSVGN3TVVSRlJEWTFRME0yT1RJd05EUTVORUU0CitOVGN6UVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS3FjeUc2d3VGZWxuRTFpCitSWllwZ01SdDNEN1A3K210NDRFZmtJaDNEZWhXdFlNcUVDYVVobEFsSVoxY0dKajljQUFLV3h5bzlXb1J0V0tvCityTnlVbFZ3b0VoNmFkMUVBNGRET3kvVUZpMVJKUUpMdk9tdlpZZnVBb1hma1oyTWh6b1NtR1QxSU5tekVGN2NOCitVMWFiSUhxc3dQQkhuMDZsTW9hazlVQWc3cHlFK0hORHlxYVRsVnhBYmpUcnNsNGpFM01xSkFqZWU4OWlJcGRiCitGeGxvbjdwclNWbHZCbUZqRm4zcEZmcUMzNGt0eGxJc2FmL0lKV3JWSXFJL005WjN1NzU1TEp1SWNnNCs2V1loCit2Z2dhYk1jc2orRTdXYlZWRHVuMkRuem5RVXFqeWZrQ1hmcEtLSzdmWHFrY0k1T3F0bkRaaWNKcXBOS3M2dTk3CitXcHl0UmZVQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTzVMakVYSGwvby9JQXNiaVVxLy9CQkpsT1g1TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFabjZRCit2dzJtRzZ0UlpIZmozTHdjaHI5d3RUV3RmclB6czJ3QktYMHczL3FSYjJlb09mNEh1ZmZabEw1aXFOc3JMeGRoCitVM1J4UFNYOW9hSjlidGJ4MUhmOUFFcldJL2FBeGRPZ1pVeDVsbk9ER3NldGd4RUd5bitKN1BhWVMzYU11NHc5CitjaDNmRU5pRi9OYTVmdjFDM1FDaWhDSEJ1QjFYOFBqUTZxUlAyZ0ZJMUFEM2ZJbXNvZ1lWQnJZTnpTWUlrNnRhCitFWDdMNWlxR3owWmlwT3FpenNTOVJwcFhLR1h1bnNTcEdZOUF1NjJ3VEhEU0sycXMvWjhLak9UT2RwOW1TNk9yCitZWVhVK3ZCWTlJMGJqVDFJNUF3ampOOHY1azNGa25TV25zYXZpRG5KMWhXaDZlMjdtdVpGOGVFSXNyemx0ZHpRCitnSjkzb3NiMVZIMVNHc1JQZi9nTlBXWHEwbUVwVGtNY2hMVUV1NEc4dGhWVGcvQXYyK2x1MTYzMGljSUJpMERuCit1NWova3hHQ1prZ1MyZVlYQnR3TE1xWjNSYjlwQXdRaXhOMDFyeHNWTWllMEpESEVDd2RSMmVTdWtsMXNrTlpDCitPMktxMTM2bHkvemlIanRPUk1OYkIveVVNTXU1YWN6UXVaVkxDVkcxZEFhTmloZWZLempVN0JpSDNzaHc2bkFlCit6djNzYUUyc1REVHgydGtkREluVTlqbWQrN1JqNHo5c2xKbDhBTmsrT2pMMlZFRFBFaitWRzFWRWY4Q2lSaitDCitzYWxPcEtRem52THRnTUtDOUxYeXQ2MHlnZ1FReFRUMzV1Z2N4S3VycVVaRUtXMWltTzNWcUttblM4dkMyZ3I2Cit3Z3kyQlhBKzZleEpXVU5CZjg1eW9KS2Q3a2k5WGhYc2s5cEw5dEE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgOEUxQUQ4NDY5M0Q1RDg5QjE0NzJDRDhGOTk5MDc2RURDNDExNTQwMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRVAwYzRrNTgrQzcwQUFBQUFBQVF6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeE9Gb1hEVE13TURJeE9ESXhNVEV4T0Zvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0T0VVeFFVUTRORFk1TTBRMVJEZzVRakUwTnpKRFJEaEdPVGs1TURjMlJVUkROREV4CitOVFF3TURDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSVhZTTJyYTV1b0dhTGNrCitOVUd2SkY0ZnEvQnhKV0J5VHYxS1M4UmtxMUNOb00rWWg3L1pFY2tqMnZSdnRtaDArZ1pkOXI3YTQ5TGk4SHRPCityeXZmVGpzelVJcU9udmdUSWtyaFFUUFNuaW4vc2RrRWM4ZEsxeDhOS2cyQk1ZN010WVorY1VGY1lBNWRrRkdnCitJS3JtVlZOOWJNaHZhSEcraThkWVR6VEtoZ1dPYldOdHRaWkRlSWhXRE91UHM5WmZzRjVVb3dXdGZQc1VmOU9HCitsekpjV1FNazZXRWZ6YTI3cXRna0RXQTFBdEg4a01sQk5LR0grRXlnSGZzenVOOFZ6ekM3SHpjR2RWU3FSU3c3Cit3S0NWQjNSYmx3Q3FTaGwvbGk4VlI1aXNGREFoRStkU1VFY0EweGlCOUNZSzN6UVd4UFc0V0V3QmwzKzhwUVNjCitDQ0pLL2drQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGREZwL1AwT2o2enRROHpjVnNteURIS0FHalhVTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFTMDVpCitsRnFmdjBGVklVTUprYlBjN2JnRnRCU0RJUUdETEV0d3BUSUYvMlpZRG1Mek1vZ21rRTFVbkVDaWg2TlpOYzNlCitiUkxnYVFOZ0tjeWJHT0dZUzhvK2xqL1huMkgyNjFBTmRyN0hoQkYxY0RlVlp2RDhtSnR2dkZoL0JEaU5YcG1BCitqM29oWnRQRnpGNDM0MkhZT3NXakp0MHdGL2dFMkV0VWU2K1h3cGozTUEzMCs1UlZJdFVKa3hiTG1FSEFoV2NSCitTS25Bc2ZSaVBqbnBVc3dPYWc0YjltUjR1QnBlTnRMZGlFTEdZRVhDcW1FRCtKejU1ZGp1RG5saDNOWDJWMGZJCis2Z1J6MzVsU0diVXBkS3NuTHQ3OTZJa01UYjQxNGR2bzIxV0JBNDNMK2hVN1lGZTVlNmpFVngxZ1lFOWpJVzRBCisrbzlDWHpVSERocytad09YcnUveW1qb1NURmRyZTcrQm9XcVE0TVpUdEJoT0wxK1lKTklXYi9IcElnL2hFYkNmCittbXowcWdGYXpFUFEvZzlyWW56UWV1VnE0bnpsRlhHMkptM0xoNUlNb2RRK3JPZ3JYNjdlMmMwN2sveXhTam4zCitKc25ENWtDekJ3YldneXFDb2RYbnhKMDNOUkdSTENCaTJ3UW5LVnVrUzhYZ2lQNkI2WTh6eWhjWlhmS2hRQmtjCitNTGMrMkNWN2JnOGFBUU9MWndtUklRbGZ3NXpsQzQwekdodVhVMjY1TXNKVldZWTN1NlAwbExodm96YUlZUTMrCiszeEdkNXBKNGRiVVVCbFMraFc0VS8xMmIva3FkclZZc05xV3BVaXF4TTFHUTNwaWh6SnR6enozYzFTRkkxbU9FCitVaG13ZS8xNTRYTlpocG9ScWlqOGludjFyRzNITHdNd1lSYVZ2NkU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEMgS2V5SWQgQkY5QzVDNkZCRjgwQ0RDRTc0QUJDRDBFMEU2MDA0RUEwMjJBNjYwNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRklOcDRYSWpSakQ3d0FBQUFBQVVqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ESXhPREl4TVRFeU5sb1hEVE13TURJeE9ESXhNVEV5Tmxvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkVNdFMyVjVTV1F0UWtZNVF6VkROa1pDUmpnd1EwUkRSVGMwUVVKRFJEQkZNRVUyTURBMFJVRXdNakpCCitOall3TmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2hJSUdWVHBTbjRCSFpjCitudVcwOFkvbkZVeW56NTJySFdiWG9KTFFlWHZEVTYvNU9LL3h1MStHMXFoSno5Z1k1VHZhUi92YmU3bFZZNzM2Citxb2VnYkVmaXNjdE1JSzNFZytsOXlKK0hFS2QxSk1qdmY0UE43N0hRdkZUekNmQ0dFT3VONCt6a0RCY2J5TmZWCis1SU1BYXppalRaOGphcnNKZVVXa2FnRGNlOG1SY1Z2akRNYWJhSzBnVTBrZ0VlSXJqWkI4dlpISDIzVHozWFFoCithVEhLY3JLSjNGcE5ndG5wdzYzM0xBdHkvRUVta1JVUE95Tk16aFZvZ2lNYWVYWmFjWHRmTnVNUkF0Z1RpRVpUCitpZWtsKy9teEFBREh4ODlEUFRjQS9WK2w3c2VERXJQTGdHMmJ2ZEg4L1ZFazlDRGNQR1ZWd1pZd24yN0VhaU9XCit2eHNabWFNQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQzVuc2QvYnQxTWd2UTVMK1lsVklDYWI4bHluTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFRckxyCitaMldHK095c09UMGVLUFVYZUVocDU0NlQ4SVAxbkdFYWlsU1grVzQwWDdNcEdvQ0FRRXQ0Znp3TStJdytiZDU3CiszTnJxSmZ4WmhJQXZnd1FHNFJEbUJMeUwvak1MQ0lFRmRuamwyb2M1bzg5NVRma1BjcnRpM0Y2SU9LTmtxR041CitWYStHM1JhQU5pSk9rd1dMSUwvWllheGxxYkZHRWtqc0pHZ09HRmkxRGh4cGNmMERXZ28zNS9ZYUtSM28yMm5sCitoWitwb0JtSlhLOGtIeHkrY0tNbFprMVpaQ1ZRZFJVUzJoTExqQ0w1MXVDSFE3Sysrd0QrTy9EZ3NXQ2xLZzBUCitUTEFnZlQzUVRyR0owMTlBY3NvTWlKeVEwdzZFZGdlN0t1emlXbkRTS0E4NkdjQkY3ZkliVkNhV05sSjE0RitPCit4Uk1kQkdxaTRoeTR4VzRDRWlhR1N4eHVQMXF2NG8rSGYvNUNOTExwaU1WOEI3MkVQSDlNczl0bjZXQXBKRDJECitrMjJCcXNjOTZ4NllnekdxVUIwTVhjYVIyb04zNGl5U0ZjTTF2UHd0QjFLK2hrVFVwOGI0dk1uMlZ1ZTk5WFpFCisvUm1DR0I2bXJPbFZmelFUVWxDSGJOVUg1ZzFXRmJ6WFc0SHZhd3g3WHVTbTNyMXNNQk14UDJGNTVqVElRQ29uCiszU2ppeGNNUGw0Q1pvb2Z2VW51S0UxVzV0ZmUvUkYyQUMyamMzMldnbHh0WWVGaHV0dmpFOFBYTFNJZm0zOHFICitaeUhzYXo4TTgwVE0xVkROQlowbVVqdHg5ZnBzOHRlTW9QdC9hRnRMUFh3NkFONTV5aGk2Q2gzbzk3Q2hDUmZOCitrK3IvM3R3ckdzSUxkNHlqa3ZsRDNkSCtXd3NvMGtPLzh5ajJYK009CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIElOVEwgS2V5SWQgMTQ1MTI2RDBGREI1M0U5OTkwN0Q2RkM2RkYxQjkwNDU1QjlFMzI0QQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBRDFBUitUdVhZWXNxUUFBQUFBQVBUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1ERXlPREl4TlRneE9Wb1hEVE13TURFeU9ESXhOVGd4T1Zvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVWxPVkV3dFMyVjVTV1F0TVRRMU1USTJSREJHUkVJMU0wVTVPVGt3TjBRMlJrTTJSa1l4UWprd05EVTFRamxGCitNekkwUVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2pTbzM1UG5EeHM0aWdiCitNc2l0NitCMnY5NEtibjBUd0hKVEFUeG5pRVNOb2pFM3NvTy9TaHM2cTJEY2lRbkhkcmthalhXYXhBY29nc0o5CitDMHdnTysyanY2OTJGK0t2R1p0SllkMHl2UlA5d2VhV3IreDdsN2hKS1FtZTczYzlNUGl3cWxYdTA3bGdCNnBFCitrbFFFaVFBNDJUTEczQWlwZzhmVmZXNUtZYlQwZXF5RFVjOXl0TXVrU1pHQ21tUWlicFRwN3VRM0pIZWRadnkxCitTQ1BmM1BIaGdjbUhvREE0aWhuNkZOMHY0STdwRHo3UGJDVTU5SjBtTitDSEV2dlBPM29pWnlSRXlCZU1NelNICis4akViYlhjUlgxUEJLUUhPcTR4VUgxaC9SZmFpSjNjNGUxZHk1dVF4OGgxeUJ1Z21PbnRSN1kvQ1pwL0REcjVECituMW1TL1lzQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTDlRb3d0UGsvS0VadG42TGV4OFBwN0dEelo1TUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFNK25iCisyOWhKQURtYkZXR044ZXlmdVJvSGZ2b3FwWXhzYVk0aS9jR3k1T0Z2M0J4S1dzdVBSTmtaRVBnQXltdUlkRnFtCitQRTJNY0k2eXdaNFpIbXBjS21kNXlzZ2RKeGoxelpoVmIyNlM5ZVd2dndIZ2FnaWlPQi9UUGE2TSs2ZURWUTM0Cit4WVB6Q2hUUHhqMmJiK3dDd0JaT0VyN3lsNzkyZzFoai96MWpXajFJSmQ0ZWFpWERvTjF2UW1WMEx4WUVqcjB3Cit3c3FkL0FGUmZkWmU2enpPbm0vMnVkU05QMzJteXlMc0dnamRMRFUwZDB1ZlpPbXhrRjc0cnhVVGtlQWc3Zi9TCitxN05SbTViYmxtdHVNMUpzK3VDV2pudDgwK1ZXMTl1UVdYUEZ1VkxEWENPbEYwSmFya0RIbjdPc1hieFF1dnBaCitJWEV2NTZqaVIrZ0pRaVNiSk01OE9aY0EwZkxvSzFrR2pqTnNXZDhEVWNxRDJ4WlNPSDVSSWpaa3NMMllYZ0trCityNzRvUW1HV0dyaXlSZTFlaVZGbm1jdlpub0dqYVlwMFZFN2dxTG8rcjFwQVIwZWZ4cHJRY216UXQ2SUx6Y3A0CitESnJZdTB5VlJEOHpTU1c5T1Z3QU9xbTdJenFIRzVaUEdtLzdFRlFZQzk3M1VnUUdUNW4wMHA3VUJ4d2pnOU5nCit4L2RiMGxvY3hIT0JtS3JDVnhXSnV3OTNzcndid2RPMzhyQWVJckVnbVFaZ2tOTkNZUS9DR2RWa2RnUTJNbU1sCitPeUpKdVNoaFdzSm1NU25HMjZ2YllRcE9pSTZmN2ZwSEx2ZGVyZGp5Z20wQ1M4V1A5Q1VRaFZzT3VNWjZUOU53CitReDZ0cTZiT0dicHROVzhINWlqVUk1Q013QnRpUlgzeUVsQlgrSkk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBLRVlJRCAwODMwMEY0M0E4RjRCOEM4RTYyNEE0RjcwNjBDRjU5RTc0NTAxNUU3Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQUhPd0MxOGhmM05uV1FBQUFBQUFjekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNVEl4TURJeU1UZzBOMW9YRFRJNU1USXpNVEl5TVRnME4xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFU1VVF5MUxSVmxKUkMwd09ETXdNRVkwTTBFNFJqUkNPRU00UlRZeU5FRTBSamN3TmpCRFJqVTVSVGMwTlRBeAorTlVVM01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbEtCZVV6dXNDZ2Q5ZEM1YworWk1qdmJSOVUvZGhJTCtTSGlWV29IdlpZVVVqUVpSaTExdEhsRXROY3AyTmU3VW5XNU0zTGlLSFJLWm8xeFZuYworN1A0bmVWRjBpbGRBMTRBMVJJbldOZXRsOXcyN1l6bTQ1T2R1VWFrcGJJeTNUYnJmdVhteXhxM20wdTlSNW1adAorSmVnVU1oNUwxSExBQmhaWDF5Tm44Zm1OYnpUY1FXYVU1MU91Qi9mK2dLUG16THR3MnFieTc0ZURCTUdBelpSOQorQVRtS1JwODZTcEt5cnFCUk8wVzFXL0Q1U3MraFZ3SFZDZlc3UUxtdVJnY3lmUzA1SU1BOGhzOUdFbXFUZWE5KworMmJESTlFZStHcVoyQmV2S0pwZ09wQWIwempsTDlsTko5RUtpTFlobnRxNmFqUGNvbGxNbmwzNmZDRkVtdWFPaQorb0c4dDRRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVY3QyT2J5Y2pjbHRFRHlOaTc0SVVRaTJ4K0s0d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNiWktmbAorTGk0ckxaOTJFVUNyT0tNV2tLc0RGQmx6WUZCMXNOTWsxcmRHTEY0RjJLMmRVQUFpKzMwOS8vNEFIWjgrRXpRWAorL1VXYU5JTUs4cVJOY3hhVjFjTEVRSnVHZUI4Zm51cW83TlljWEdqU2RPYnU5VWhvWkVvTTNpN2MrN0szWThJKworMmc4ZDZkTlFvOVlteVBweFNrNWRWcnFrV3Q3N0Q2SWJMS01KR2JqUzNqR0hBSW84K2VQc0VyU1EybXhKQVVuSworNHByS25lK09USHlvVnhreGtHL1BzdTdNSmhxZ3pXaE0xTy9SQkhkcjlHME5DamdZOUVxdnAwLzJrRjJYTGpKVgorR3NZcW5DU1VQQ3FoODZGTGFoQmRybVlMaytJSSt5SitUSUk3N05PakRNNXVnMzR1QnpjYTVzWkhyZHdkQjd0NgorSHlhVzNoV1dzVDFkaHJBTWdXa3cxR2tHdndJTU9RYzB5ZGRwN1AraXB2REpXSWRRUnBia1gwemZuejdLaWphbworREdnWlNmaDZpSmhhMXpuYnpZTktuT0FjUUJuMm9NU08zclY1WlRacmNTbElVTVZTNDNvUi85OGh0Nm8zVGtUUQordlZ3dENYa1QrMml2cmRGbjNLM1d3eEZkaXZJWFI0Y0JoZDJqRDhXVjFyQjFlR05WNEJGQUNRVjhLN2hXMDgvSworTXN5TkN1dk5SNHpTMGkrTUdLMXVKMUg3Z1FRL3lBYUxSZ2QzOTVQQjVrYTV5K3BKeFBBR3Y0U2hKYUJhWnR6ZQorb3dlNEJRQzl0VmpZbHBKUGhadmJMSlRMeFlnZHlGQkVrTFBoRkRMUnBndmZFZlR6SWdsaGFSbk1qQjhQRWpDYgorNUpSS2tQM1h0RTZ4b29ucHhTQmR0NVF5QndBWlQyeUwvaG82Qnc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgS0VZSUQgMDgzMDBGNDNBOEY0QjhDOEU2MjRBNEY3MDYwQ0Y1OUU3NDUwMTVFNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcWJwcTN5cW41ME80QUFBQUFBQ3BqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME0xb1hEVEkxTURNeU1USXdNekEwTTFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVUXkxTFJWbEpSQzB3T0RNd01FWTBNMEU0UmpSQ09FTTRSVFl5TkVFMFJqY3dOakJEUmpVNVJUYzBOVEF4CitOVVUzTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF0UFhuSFMxKy9IS1M2T3NqCitidWExeEJDbFdMdWJrOW1RTWQ4blUzdWh2b254a1F5R2wxODVJY3JtRDBRcjdWZDE5MlRvbHk2b1NiNGtuL2NOCitETERmMmV4dElaOFozQnBUZEtxZ00zUnM4bldEVS94Q2NDSDlLOXh1UC9NYWcxcGtlbGd0cHhjeUg2d2lJWU95CithTE0zaUZQVmhRVGV1NE5sWDB1UTA0aTM2d3Q1R2pMcmZmUmhPenpFWVNQdkRLRkJCZkd5emJVWTRUUHFVOGdrCitBZUZ6dTJJTXZjeFo5cXJORjg5ZHp3bVIybDhoTEMxa2JrMkI5RjhDY1ZiTGhpQ1R4em9Pa1hOdEZxOVQzUFdmCitrdnErTTFUa3RrejhxVmt2cCthTE1KWnVlUGRGZjJrM004OUdKdURkUXZ3L09lMEc3bm9PeVdmdzRTSi80cHlpCitnMVREVXA4c3hmVjIrNWNzMmhPdEZhTUR2ZFREMFVkQnhOa0ZwS1RPdEtFdk5KYXF2L3hzaVBlTjVmOWRXRjZRCitpTllJSkY5VmVUUVJ6SHdjMnVXSmRhU2JtWGZEMkQyVlMrempUMmxZa2JsNHBsbWxQMUVhTmxxWHIvbEovRFJTCitvT3h4alhBZlZ4T1pmZ1h1QUFTb056UTNKTWFtZzBtUmtkVnVrZzVCRTN3cnNoN1pnSEoxQXh2T3o1ZllLR2FXCitVWUlMTTFjY3pORkF6TUczRW12ZTY1cDlwLy8ydS9tTW9XZFdhaHdqQ3Y4Qi95ZUNvanJQVEMxK29VY2N6Y2ZVCitWRVdRU050WTgrRDFZSTBtVDlzWHdGS3ZMdE82MklUQ3psLzRwQk8xaFNTRzdRandWNERvWWwzQ051OHg0TDJmCis2YnRld29Ja28rM25jQlZnL2ZjVENVVVVpSDBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR2h4RHEvbW8rOTRDUXNJCit0Tm8xUVpMeEd1Z1hNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQURPZWxvUjNQcWdZdG02cTlLUHFINEkzV05YVXUwM1RmQW8zVVNEQXRoMnQ3CitiMUZPdnloQUZNVmFVQ2pPbVpHYS9ibC9QS29hRjFyS0t5blE3NjBOMFVZV1NqWnJKVUg2cTJpZm1zTnAzRE1LCitRaGY2a2pPTXBOTWJha2RHdEx4RjhCTFp3V09HZUxFaHdFR0Z6b1VubmZjTW03S0FPRnNZWDhyQUg4dTVVazhZCisrWldYN0RiUmtVem92Y096SmFjeXJXUHVkZ3haeXJWZ2dSYmR5OWp6bkxUWlF0dlk3QTZGSE94T3ZmOERyMW1OCitEM3hneFJ0ZGNWaFZaVkMrS29PY01ZTE9TK3RwdU9TaTc0M0FkR0FVOWRkRHk3SUxROE8vY0lFMU1RSEVjeUxZCitxc29RNmIvRXNBSm5Dck9PajdkRlF0TlA0K0JMakVLeWE1L0M2UUQrM0RCSktpQXZhWjl1UDQvZWZmMnU2TlBRCisrNWF3ZEp1WXdFM1lNNkF3YlVFRS9UY3RuQUVwdjVxWVVNRzZXRXhpeEtpNVdIdWdIZ0l6UlBsWkpZaUNidk1sCitCdFB5YTlQZ1RMYll2bG9tZWM0RDdta2Vld0JqeUtxZ1dKVXhxRTZTMitMMkcrUnMwcHphdWxJZmc1bytjeWErCis4VGkrSkc0WUFnbEJFK3FxQW0xKzRkM21YZ3JxU3paSTU2UnByVGVNNlY2VHE2cjgza1FYdU45dVh3TEVWOXRMCituaklmeFBUV0YzWGI2SkROeEdnMlVGRk9rWE9JN0RSSk1tcnJXQWZxZFBYR1R1ckVWcU4yWDVkV05uZ3FLQ01iCitxWUdjMHRyeXZEeDBjQ3Uzc1l2OG83K2YzWTJBVXBLelZYcDU4ZlFKNU9jQThyQVJpdXBTT2ZpcURBZzFPTmc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBLRVlJRCAxNTkxRDRCNkVBRjk4RDAxMDQ4NjRCNjkwM0E0OEREMDAyNjA3N0QzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVFHN3p6ZjlBWnpmY2dBQUFBQUJBVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNREl3TVRFM05EQXlOVm9YRFRJNU1USXpNVEUzTkRBeU5Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFU1VVF5MUxSVmxKUkMweE5Ua3hSRFJDTmtWQlJqazRSREF4TURRNE5qUkNOamt3TTBFME9FUkVNREF5TmpBMworTjBRek1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBenRaUlBuOE9xWWNRTmdGMwordm9ORlVJY1g1T2xKRnEzUzZZMDN5aEEzZTdvcndacU9lNlA5Y1Yvc0UvOFZRc3NIaWhkcGFwY2JoSnBnRm0yVworYkdKRjV4bUNqTm5xU0k1a1hWcEpRazVUczdEM1hocXVtM1R2Z1RiaFNmMjN6YzNBdkEwa29IeEo1NkpkeEhUUAorMXhYdThRYlRTZWx2ckJzWGVUY3oxSHVrTVk4N0F0OVVsVjMweksybnpxY3lCQTZmdFRzY1ZJZHk0a0tXQjQ1VworTVNxWWY4VG5EalI2Um02RWwxTGx4UE5LalRRdGgrL1NFcXV4Mnh2VkdQdWplOXg3ZmZVS3REUWJGSzVKMEduMworcXVENGJaRGNFLzBxZ0JBT0pWUHBDMDduaHMxZDRrUVdXVVFzQ0J2c1paRU1aR2lkR3A1dkVYV002OSsrclYyNQoreHdlTmRRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVWDVoNXlFMWZnaUxOZkVwMUtHUEJNdUVJTFFVd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUE3MW4xbgoreEFLRzBiOFozcURoMWtKbTVvcXFCY3gyZER2cXRYd25FSUZLdXBCT2s4bXY3ZVpMVEx0cjRIcVRvL0pSNG8zcgorOXVWOTQxY0xHaHE3akFUL3UwRmlCWmV0OTdVMjNPaWlYeS9jd25mVnIxNTQ1N2hSdUUwVXNrS0x0L2U4MlpkVworL05IWmhmc0QvR1QycnNHMFBTYUl5TW9uTG8rbUZQK1loY3RlNHVhTTdMdkMrU2ZaL0N1S3E2NWIxZ21lK2RvSworOEF1WUhsZzVjL2JqMlFVZndQUlNDUElCSGU5bnEyWW8vNURTUjFSWDJRNDEzZzdSTTFySGZoZ0FHR2VZdDQ2QgorK3EwdWdtQ0dKWjc0bGRFZngyUUR0eTM5QUpHeUltUm5KUGJBQUZqS05IVTRhSXhzUEVlM0JocHJGUm93a1FhTworbjlIVmF0Q2g1c2xvT05hbngrb1BicTk0eXRlZWUwM2VqVXFMc2RpQjBiOXI1MTVrSzVrSDFEVFNRNlRmQU1XRAorYXJMTGtYSjFmT3laNnEvOVZnbWs3QWxYcFJDZHRmVC9HOW5sNDhiQ1ZtdDNPSTJMcyt1UTJZS1owM0hwUEZWLworeTcveUhTcTJoejBsU1lDMTFOdXdiWERGR2Z4MmJVZXZhdUwzWStac04xSmdYd1FpMENlL3dPbUd4blJIanJhMQorWURwblUyR002TE8xWU9BM2I2cDIzTFFNdmlxYWw2UVo0c0lUUStlZi9lMlZ4NWs5L3phcUtzcy9VVUJYWFhqSQorZ2RaYjZKaG9NUUczMTgrcXVOREJtRnhINWFKUitUUFZnSUJMb0crblQxSDJteTNaMXN2cmZtNm11OTAzdVNvbgorTEQxRjNQZWxPYjVkNERPRlhEQUZyVjhpaDh4MFBncm5FZm9kOEE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgS0VZSUQgOUZCQjc5QUEwRjUyNjI3OEJFRDE1MDkyOUE3MTcxRTk2QTM1QkVGNyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcUlJZDdPZ3hJQ1hqUUFBQUFBQ29qQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME1Gb1hEVEkxTURNeU1USXdNekEwTUZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVUXkxTFJWbEpSQzA1UmtKQ056bEJRVEJHTlRJMk1qYzRRa1ZFTVRVd09USTVRVGN4TnpGRk9UWkJNelZDCitSVVkzTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE2RnY5OTQ5NDFtaUpIUnAvCitYbzlPRUttejFEM1BGb0dqWllwZjVObGF2ajVKc2VhcjR4VVZFL1kvaUpPM0loQWpmYXRFeEVpdi9mOEVzU0xrCitmZVFKU2pxVllPdHBsNTdTWUY3V1JzS2RuZzRWNUdORnRRbkVQQ3MzUHVINjJyWGZTeURPZ2I5c0sySmtoM2RCCitGZ1VhQkxRL2E0Yk51YUlHTG4yMmRrZ1VSbEpwdWJ3OTZtVE1BQ0IxS3Fzb1VkRWxZRE5pZHVEVE1YMW5TTVUrCitkVTlLNExKNlVkNWJOS2hJNFQ4dGFhRm5oWnNianJVcmUvWXR0aElWdC9ZN050S3NsUUdhODRQQTM4TGZVa2xUCitPRndaMWd6cnpYK0dURGZ4TnV3RU9OQUNPWTFhS2hPcWtveVU3aGNyUWFnSmY3S3dkVU1GWmd3eGNyWXRnMXpYCitDbG1KQ0MxNUlaNmFTMWZaOTFIMkZIK3pEYkxGQmMzT3hlTUdMOTE5ZGRRNjd4OVRCZmhzdW10T2JNT2xNdFdmCitBaG1aSjE5aGY4YkJzenoxV3RnZnF1NUZWSG8zeDd3VDRtWVdHMGdHOTMvc3k1cGVOdU40OUxaRGtsQXROUWVvCit2MEZabGlXTmUydHBqamg4RVFsSlppSUZnQUFmc2lyb3oyMDliWW9rUk5VMUh3VWVFZ04vV0M5NmlWc2NiVGxTCitQMnZlbGZGZ21LVXhCYnRaQ3c1MjRnbVQ5TlQ1SVcybWpwSWdaOHcyaFY2NHNCTzBZVTJ4Tm5LQlhsVkZwb1MxCisyYm1kK3NwM2JhK1FKUllJTVVCakljMllQRFNrcXRVd3lOTFROU0lvQy9lb2dEbmhvaG5Dbmt5T1ZpVHRPZStECitBRkVJZ2JOQU1NenY3K1FpNEM3cWFVYWZMMnNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSmpTalJ2QmVRM01MZjhrCit1RDJwQUVpakE5UUlNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUZ4c3ZFM3EvTnc0WUNZaUMyNURxSmx2Ylp0VXo3RDJvSUpETndVdmQ3VkwyCiswMmFkWEVzOTkzc2M4bDF0bTVIVlZabS92RGdMWjhqdmZjUXVZZTNlNU5DdjdRMkFxWjd4QlBGWkpZTjVLZzRuCitFbXdBSmNwMHVrd3RCTkdLWnYyRTI4WHNmOVpJKzRMOG5tZjhsY2hXSHZuaTFCZlR5bExNWmdSK1c3OHFaNld1Cit3ZVdyK1liY3o5M0NmZkZONEdmazBLYmlDWm54YUZVYU51NU81Y3FVWkRRMkhYNElQY0gxcWs0QzBqbDZEeCt3Cis1Uk85aG5uMmNMVnVZSVJSb3FVRTloeEtRU2hvWHpaL0ltdHNJYjQwSVlldnZRMDhTdWJWdEE4VXEvVUpoTVNYCityY25TSWJ6YU1MemExRDUyZTUvb0pDeVgwNFVzN1lPUlcrWGE5Z0h3TDRtMDRtaGNXOE12aGYvbnRXMzU5UlNYCitPS3k1cExMamVkZkZ2WGRCY0dEejZzQ3RxZEs0QUZ4dEdjN242dXAvUU9maHRUVTNLcjFiY3k0U3NMcUtvc2I1CitEdVNFemJHbzhhb2daZ2Q3SlZYT1ZCdjRJS1B1a0NkNjljZndsNkRWZmlCM05jejgyV3BROFlSemNjRithZ2NFCitYaG56RFJqS01QYjJUWmZYMVpUNmp2ekJmVHA3dFh6N1NtZys5TFJNK3YrZXB1M3hBSk4yTkhvNlZxYmhLbHZ5CitjaTN3bkh2MTllSHAxQS9DYlhkMlhCNVpJc2QvaWJoOUlBa2FJaHFqMHFYblQydGZNdE52K0puWk5STFNNVWZYCis2ZG9hdDFjdnlXRjNFUEMySEN4dkdTUS9YQnIxYm8xc3B1YW12cjlZeHBSdEV0bkQ2RFBDT1dLQjQycGtENmc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBLRVlJRCBBMEQ3MzcyOTBFMTZDRjJBRTJCRUU3MTAwQ0Y1NkIyRjA0QzVGMDQzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVJUbXNoVGlmOEdRQ0FBQUFBQUJGREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVTBNMW9YRFRJNU1USXpNVEU0TWpVME0xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFU1VVF5MUxSVmxKUkMxQk1FUTNNemN5T1RCRk1UWkRSakpCUlRKQ1JVVTNNVEF3UTBZMU5rSXlSakEwUXpWRworTURRek1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBc2dTOFZaWTl4QjVlb0FRYwordWJQR3UzYkttNk56M2pudXhmU1lzVjh2ZWQvK3NqUVppZVhMOXFxUzNOTTdpNEFUYWcrUHg4SnBsdDRYbDkrMAordWVXMkdST1FZeHV6U0lGdE1EYWk3c2pKa0VLdkJnUXRwbTk2RHhYSzY1VU1HZVVwamplejJhdmhMZE83cnhhYworVTJBQm5iNDV6QTcrVG82MG1neFpUV0tseE00ZVluaWR6SFVpVU5YRnc1eENGRmROUmU5a2VxSEV0MndUQlZySQorSURrTS9PalpoZzcvbmJnNDhlUUw3RkpsOWtXTHQzUDlIaExoMGhzbjQwM1FwUlgvUGlYNDZaUk0xdWw3czBaNAorM0dVV1lvN00zc3pSVXdXbXJXZ0pOSWZMd05IWm9yNTl6OURrZVdNYU1yOU1wTHhodHBlaW1xM25TQkFLc3piQworUlBhSEt3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVNVEyMDNyNTZBaE91cDdjRjNrSUYvWkZNTHpFd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJBWEtVRgorZE5PQy9qT0tqUFBrRHFpaWFLOE9IS3ExS1dmVU9heExsTmU2RFg0cW51YkZEbmlCYzRranlsR2VCK2dnSVZYZQorWTgxeGFreld2amEwQWlCNHA3bnFkbmhLMDV2NWMrSWN2elFkejcwdGorTmwxU0tYVEpYQTFMN0J0bHBpNDN0bAordjYrM1hRSE5oKzI5Q2crbzlZZVpBSWpTZVA4M2lBV3FrajBnaTJIbmdMM2gyV1dTaTRKUUo5azJYZ1VscG5BdworL0FKWG53cGM2OEpLcStlcmVjN1JTWWVsakdQVzFvbWxkTElRQk14aUZFbnJCMmNINUVEaGNrQVlVUzBpVDF6cgorL0JJY0RGcjdmS044Y0VEV1VuUmd4L3VQY0VpMGgrSkZ5N3BkcEJJZGQ0NnlUNmJyTVNRMDF6SmoxYS9HWWdiWAorUXk5Nm84Z3BDKy9vOUhQZGZwZ0h3dG1aNVJKR0VoVzR3dVB5QmpiTVd0UFBjREtnc3BBcnJkZFBoTWV5NURRSQorT3ZCSjNZbkVTcWwwTTBGZU00MDkwUVBTMVhvTm5MMnU4MVVMeFN6VlVQRXErSnd6YmVJQ2N3ZzB0MThUQUdRcworUjltM3pldzZKdWpKdWtrdlZkeGtOUmFQZ3VxeWU3WjFOUjFINjJSRU9ialZGQW1FMXNDbk5YMGFVOURZNTdIWAorMzI5VGpac0krU1krQTh0RjRKaGd5TXhiWGRVSXUvMHZMTnZ3S1ZKOG1rcFh1UmlFdGlZRFNTeGM2WWJBdC93Qgora2U5ZURCaWRPRjBWYVZKVWplMm5BY3VmMzFBR0Y5YzZ2NDcva2RBZWNMcjdJOVpoTThYTDlaKzdIYkNUVDlLeAorZm83MkZWNjhUT2daZzhyQXFBMHNIYnZUcG9ucVAxK24zZmxVVXc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgS0VZSUQgQTBENzM3MjkwRTE2Q0YyQUUyQkVFNzEwMENGNTZCMkYwNEM1RjA0MyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcWNxdmIxTDc4M0pRZ0FBQUFBQ3B6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME5Gb1hEVEkxTURNeU1USXdNekEwTkZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVUXkxTFJWbEpSQzFCTUVRM016Y3lPVEJGTVRaRFJqSkJSVEpDUlVVM01UQXdRMFkxTmtJeVJqQTBRelZHCitNRFF6TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwV1ZHc241b0xBbU90NS9FCituZnB6cEE3cVlrZ3V0ekFZb2dpeUR5dVpac2FRZTB5U2VCVmxxemNGRnQ2SUY5ZTQ3MFQ4VjdrKzFoQ2hTOUlHCitaK05LWUJGT05EQUJhVUx2SXZmdHJ0MUZtL09iWFRNdXF6dzd0dkZwM2JQTForNC8zUGZmazRJTWQwVzBQaGFqCitmaUcrTC9FZFAwUnN0VVpEV3E4dE9HcWRwYVROdmhzNlhVZ2xVSDVuTGx0RUtnd294bS8ycm9DN0ZkVTFqMjlCCiszeGF4NmJtRzY0UHZPVkkxRlpqanU4UWE4WTFtN2R1dVo1MEtGQ0tKVjIyd3JzWE1Mb0Y1UVdiSnBFcHhHM2xBCitxOHBBd2pMRkRqOU01ZlIrRXVNRVhHWDhoVDY2L1EzTUUvMmFtWWx6S21EcTV4OWFON3N2dTU1V3d5clVGMVFxCitraCtwUGZWczhsMXZwRE54d2hobU1XcG11anIyZlFabmYxMmhXeUtza28wMUJPL2hRb09HMUVDY2RCdEJscHNGCitwZnBseG81VG9Ea09lYVc3dExXU0xmOWZJbG8yVHdNMVBzcW10OHFzNE9nc3diRk50M3BCZEg3K2VkMzR4R2tECithSkZISmc1MHdxS0xuQWV1K0NYWWVMdFR1aGNvUVIyNGp2Ty9yeU0venpaYVlmZHVIU2c0RFNVMHZjUHpDbGgwCitmSThQQ3VtZ013bWhaZWdFUy9hYUhUREorZUdueEJWdHIzL0E2bko1UFlOWlpaREdjL1RzZnYweWVSeTR6UWgwCitEZUNtNUh2cGQrekhyalBheGltem0vWmgvTzZCY1A1TmhCemp4Ky85bzRzOEFobnMzRkFCNjVWQy90Q21zSEg0Cis1Wk1mdWF4dlF2cGs5a1hGU2Q2L2Z2dGdUcDhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTDUySVlINlIzalVqWC9NCit2eGhFdmNZTUZLWW5NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQURSbzFkc2J6bnRCWFJmT2paanI3QmVCZi9BZUJDRUpleUZNSFRJZVFsODd2CitLMGRIbHBtVHZQclBXZjV4TTRvZlBRZmJXa09EWEMvL05ERXpkbmZyODR3THo0R05DVHJIZWFrYm80d2QyYXBsCit6UjBQSzFQaFphWXliM2d0UzYxQzJ3em1wbHlxazducjVxb3p0eXdmMnJ6RTZBZkNubUZ4L2tFTjR6UTFZN1RYCit2MmxlMEgzVi9yWlBmOFJHMHpNNlU1UzJjcWNYWTB6Tlo1czJtcDZJK0h2TmtwYnp4bVhEejJvYTVOWFJRR0xMCit1eFM1bUhTNnpDZkZ1V1hra3dVVHh5OVBZaXFORi9sdXU4S2NiZm15RkU3aHdod3pGdkx0Qnd4RDB1ZjIzZGliCit2TzBJa21oMlc3M2U4SXRQa2tPcVlXTlJqOWZmSElyYldHRGpJM0p2bkxsYkQ4K3N2MTU5dTNaSGJxeTdjR0FlCitnZmtsUk51VlgwTU1OTVQrc3RHZXdoVDZ2MllIbzI3b0FqYmJNZWRXUWQ3R1Q2L0t5eVNjSzJXQzIxNmVySGZuCitsRVRBLzc0U3pjK3pKMndYN0JXVWEvM0EvYURVdTRLOVpmaXArNzFKT3p5U3R6ZzlIMnBmMk95aFJqeFl0M1RmCitublI3S0JUY0FlRDVkRks3L0ZPK0dRTXJrUTk3eGVha0YrKytBUTh6MnJqRlFBSncxa2l4c2pleVdaV2R0SmtXCitBRkNOakRiT3laczhmRjlpanhQUEl4L0ZmYjV2M0RkZTh1VFVPZXduUXVZY2g4dldzeEg5c01BUnBJQ0p2VjcyCitxVmJPL3BGYlV1RUMxUUZ1N2VkbzJsWDhaZjRBck0wc213RWZabFQ0bEFkZ3NLZDJQRlNLd2NLTWQxWUZmVXM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBOQU1FSUQgM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTNDQzhFRQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBUlZMU2h3dWdUbXE4d0FBQUFBQkZUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVME5Gb1hEVEk1TVRJek1URTRNalUwTkZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVTVVUXkxT1FVMUZTVVF0TTBVMlF6TkNNelZGUmpFME5FSXdRVGMyUTBSRFJrRTBNRGd3UWpoQ04wSkRRVE5ECitRemhGUlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSjhVOVVjUk84K0RjbUlTCitXRTZlY2pLSEc4NW9UOW1BN2dTempLc2hhalJOQ1RWa1BIM3F3bmtMdjYxa2RvUzB3T0U1K200bUdnOVZEYXFjCitoQk5OankvMVlhWGZCQnRSTGd4cUtjUXYyc1I5YnlPSURjc01YMk03eE0velhrYlFSbTMyYmdYK1NRVjk0WHRSCitRK1BFN1dzYzVWM2h2Qk5VdTdMa3VBbEQ1QndmWFhHb2s5R1hPYWJjUkxKSVQxdzUxYk5mcjZ1ekd0SUVCRmxsCitXNndYSFdIdVdJd1N2QXRMMjl6K3pkaDJubjFZOGV1YlFKM3JRdGlqQ2FrRUN3Wjh4MU5DL3MxYlZHdWd2L3lZCitydGl4S1N6ODUrblljMmZMMGZHRkFQTTduM2VPaC94NDhjMTBsOTBDdVgxVkpON2lraUg1WEExSVg2dkY1Ym5BCitFRmZOMVM4Q0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS09OckViUGdMSGFCVnhmL1Y2eS9ldm55WjhtTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFFWTd0CitZcHl2SVZXbXhmSVRKdmYvdUw0dExhN01YbCtRVC9UUlpmV2x6QVF4RjEwZG50YjVQbGVqZDkyV0c4Qk1zWFk3CitLc1FpaGViY3NFSFRpQ0tzMXNoaHh0eEQrdEZPOWd1QU5sSlNBYXlqVzZmQ3pNNktnVVpFUmxCN1hFN2VHUHFDCit1dVFlbGNuSi94SUVaQTFhUHVkSjVHTitkWVlsWW9GOGJGdWExRzNYV1ZJbGpEdHJwbVQ4N3BNZkpBWFJKV1g5CitheTFBTlFIdVlkeWdRdXVCWFhWc28xYWR4OWMrc3dsZmRabzZvWEQ2bkR6ZnJmUE1QWGpzeE9ZVS9CZm5CdkVCCitvWGdwaTJ6ZDdzUjhqTFVhNmdBY0VIbHFEZUkxU1NiOHRKQlVzVytuYlpDa2MvUS9tTE9uS0ZLTHV4bTRCUWs1CitBWDV2Z0dMWENsRUVnbVllK3VnNDFwdHBZNTh1MU5uQS9pSkhwa0tSTmFIbGtQVkpndHdWVi9IdWIrdlYzMDBOCit6ZFNSMThvWm1WOFVoY0NQNDRxWGFrMXcwbjAxOEExdENQdjY0NWhGbXJ0MjNFbDlCR2s1MFl5VGl1RHQxQUhPCitWdUFXUWYreFVwTjlhM2JCZjBycUlaRGNJc25DOTRHdU9oWlU3UGZhTjJiUW4vd3VvdDA5V3JlZ3dNQ1NsOEkwCitMbHJsd2xOV3UydkltWFp5S3cwSWRSNzRJV0hiTkt4cy90dFBOZmwzMlV3Y2RnaE0yUUFabml3SmZ5K0VvQ00zCitDSVhwdHdSSEVsQlRTdS9oaU9lNVliTENOOGJUUUZFaUFvc1FpQStRUkdCbm5kZUtkVXk3U3hYUURkNmFzTGNFCis5S3ZMRjhBclVONHJqQU9LbktTOWlWNmFDWUVSQ0YwZndHeWd0VFU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBOQU1FSUQgM0U2QzNCMzVFRjE0NEIwQTc2Q0RDRkE0MDgwQjhCN0JDQTNDQzhFRSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXFnMnBlVFJFLzFuV3dBQUFBQUNxREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QTBORm9YRFRJMU1ETXlNVEl3TXpBME5Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFU1VVF5MU9RVTFGU1VRdE0wVTJRek5DTXpWRlJqRTBORUl3UVRjMlEwUkRSa0UwTURnd1FqaENOMEpEUVRORAorUXpoRlJUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUt2UzZHTWZnMzYvRlBiTgorSy9hdmVFUkJBVmVHR0FoQ2dIZU5tdVZmY29wekVXUzdpU1c5WkY2WUJzeDF0Vno0TmkzZUtkTWNWMDRFbFZ3TAoraFpaaU05ckh1YXlmTTJvVjg4eUkzZndLL3dxd3ZpbCt0bjMrOENxUThza2VjSzE3K01MaG91cUREUEIxUkRBaQorQ3JrbVdHWldsWE9RT1hmMEJlaU13WnVBRkNOVWVFL2ZYMTl0M3Foc2lTZnNSQTJGdzk0WUpQalllTTBMSGFDTQorUTZJTjlvU0RLenVQUituL3F1dHRYbWVFcU9oN0w1UmJWT3l3QldPeFIwemtkcjFYc0VhRlNoUkFZUDdxZ3lReQorVGxtamxYQ3BaeENTUzVWWWN0OTEwMWI5MTZUNHd0ZFA3ODdKVElIN1AzQUVieEorQmw3YkNYNElmbkcvRGJsQgorenk5a3hsYUNKMjRINm9WeHVXakpyM3IyZldTNmZNUWhia21SSitwMGN4ZDZ3WFZFRTBiamluWGhEblZUYm5XbQorTnViZGJLaEtWWWZUcnhGU2FqNFIrNVZLZWYwL0FqWmt0dWFVdk91SUlPOGVWRk8wRGMvN3VGM1R4SmN3MVBqUgorV2xaMVBvV1g0NWxFaGJBeGN2bFdBWDRYcWxGZUgveXVvSUdYWE93NDhSQ0hTS1Yrd3A3U2hXc0cza1lFMGQ1RQorMEszWVFvbGlNWTJ3QW5Ic1hOckVuMWJhbUczazNiYXNBcW80aWVqdWpaSHlXT3ZObEhva0Y4NzlaTkoxRW51VQorWXJnRklpRzVpYmNaV3ZkKzltMzlacWxNWnZMVGUxRUZSTElKR2RUN1lGWTRiVWJJcGNNT3RtUktnNVBoaUp3KworQkN5Y2JKL3pJL2ZjYVpJdVRONDJaMUpOQS8zL0FnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJTdWVsTkxGekVuMjJLNgorWGsvVFJqakQzTktqR3pBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRGF4Nm1ZZTc3Q1RZMk9Ob01oMy83NHRvdGI2ODdmRXowUmdlRnNBSm9ISAorUE5oUlRYbFhoUk9RZU1OcW9KK1hNZExIZlIvSHEyRFljODl3UG9VQVowYzZ1OTgxc0ZmWDdyODdYZDBGNnlvRworVmVBVFI4K2NiazY1TFg3ZkZpYnhvdVgxWlNtdEJ2WHJxaFY4KzJ4YjZYVlhyVWw2RHJMTko1NlY2STJvZkp2OAorNzdhMTFwQWgvc2tTak5PL1Jub2NEMndMUjNRSVlCTzYvQktjcXRUOFRud2d6RG1tQ3h2ZFkwQy9vRVpyK1RPTAorcXh2UmNlZ0x2ZThUdjRVVzJ6c0pic3MrZlQ2eDdjZGJkTEN3bTRIVUF0dFNqMVJnQ3hvbllYaUxLbWExV1lqNgorSVk2YXVQZUFPZTRNOFJjaVlOK1lDS1d2dFZ6Q2Z5cDRUT25hbzVEanZ2dHg1VUMwK3FUYk5rYmFwaG1BdWkwRgorWVlnS3JqWWVNRk5DajZaclN3WTBoWTdxSC9tM0prcVZhdm5NMWZGcThSaEYrUC9mWXM3Wk1IdG01OEcxa205OAorWEgzbVBFcTVZYXBQWVNLbTBZWVl1dEp3NHBLemIrbE5JUXAyRVNIU2pHQjliSGVKcXlUZHdLeEw3YjVDbkVvbworNDE4SVNxT3ovbkVON1U1dmptdzFLZmw3YWtRYTZEM1Q1TkovMVBqMnp4Z3lFdER5Rk40MmZDMTBmV3gvOGUwbAorNk5GbnBBMHBRckg4MlU4MVJVdkFJQVlydVZkb0ZDMVRjZFRZUmg0dEx5UW5wZUhscndMU242WFFHb25oSEVMdAorakRwS1M0eHhuWnJiNXB5bnFJRDVCMkJDRnVDdWtUQnpabm9JdVRqT0xxWkpQTFhRM0lPdllzVGFGWUR3OG52egorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgTkFNRUlEIDc3MEU5NzRBQ0FGMERCOUFFNjdFN0I2RjVENDEwRjlBQ0UyRkFENjUgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFxb1I0OUlFcWdrUmVnQUFBQUFDcWpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekEwTmxvWERUSTFNRE15TVRJd016QTBObG93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVNVVReTFPUVUxRlNVUXROemN3UlRrM05FRkRRVVl3UkVJNVFVVTJOMFUzUWpaR05VUTBNVEJHT1VGRFJUSkcKK1FVUTJOVENDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMeFJGTVp0V3pLeXJhbWsKK1d3TkNEZm82WUk1K3lrZHNZRm9uOHJjSnhtZlowUUkzV2lha1BUMWdpcWZBVWowdW50WkJkVk9tdkk0aW9oVkEKK0FhbW5nZGwxTC9OWkJQd3J4L3RLNkFnRDZUUm9GdElqZTZoL3llSUtURTYyUWQrbzJZSEhLd09FOHphWStoV0cKK083OEdSWEUwRmFmTXVXSEtFY3FGTTllUGh2L0lQYTd0S2JrbVlhRE5JZHRySmF1QVJieVB3RW90L2hnbWd0UjAKK2NDYmVLd215TDltbWVTS0xQeUNXb0JhQXUvT3FsYUVkVTc2U1lybmJ0VUlWSXF6Wkl6TnJQc0djZDNDbWlvMHUKKzJqdjd1UU42MVBuQktkb2JLV2lnc3k4WU5CR0lUcFlQTlBXRHZMYTNoeGFkR3A1c1NTemdQVFRJOWo0ZkFub1YKK1lPczNidFpibDJDK2lzNXRUVDJYeFBUSFpPQytFSHNxcDFIVy9YSkpnOVdkWUE5cTV5NFk0aUpiSlZXVzRrOGgKK2dRbXd4VG03RlcwenRLZWVFcEljQXh6OGJuN20vc2VVRStGRlJOWVB6N2luKzlXb3lnVC9qbFFjTGhZUTc3RHkKK0Naci9WRDExODBEbGtWUmxxRkZTWVRWa3RHSGJtdGo1L1dRaUtXSFpPRC96RlFLZ2tLa0JPV0tFb2U1MEsyYUkKK0lGSkpscVEwcnpsckltUm42UUVpcVhOcEp2ZFB2d093MnJIamhNdTBmQ3I1djhrQUtlcWRxV1I2czBEZ21xaW4KK2pRZ3k4bmVsZmFCelVQa0UvZXd6Zm1tK3hBK1l3dzNqRGNoWUFKRXJtQUUxU0lteGNTVFdibnBkOVRmVmliaVoKKzV4b0lwMVlUZk8yQU9nUWRtWUo3Yll6SWR4b0xBZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUi8vRzlzdW5BaUp5ZDcKK1RFcHljeWpVMUp1ZXRUQWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUJMenUzWW1OYm03QmRzeVd1ZHY3dTQxWGc0T2ErQ0R0YkI2RWFmQmdZa1kKK2RpTzllOFNPR2Z6UGpsVFdKUWltOHpKK3RwQWQvZ3MyRDRyczlJb2kxS2tpWUI4eEJ3eDBzK1kwSFNoY0s1K3IKK1JlQkJ2QUZBbURhNVFPNGdrS2o2cHpJa3dLWFdlUVJXYmhFWW9Cd0gvczRFMXExaDU3aVhLYVlGa21leEdZbkQKK1JUa0p0djVtSE10VWEySWN4RTAwd3VSWHpuVUU1d1ljUUhTcldxRU1VcDIrb2N6bUVzL2hCdlVUY0tOSVhyYkkKK0VwZ2xQcGRKZ2h5UGx5NVZQYmFvNnp6SHF5WWlybHZscmV2YWlpbGF2Si9CVUdLNWIzMThEeGVacHF4SVhzK3EKKytHVGxZVitrcCtOZEhMZU9KN1JUODhNMUh5aFRJUFQ5MHRKWGZJVzBtbytzWEVpc1NmRG4yOWlWS2RYTkR4UGkKK3poU3FxdnlvNk54MnpYdFFYWDN6dXNXQWdPSHFZTGVqMEFvYmp3aFRtNUxBSDkvOUxiTHBJbUI3VjI1Q0xwVmIKK05odUtyVHlJeXJIMlBsekxNVGxZODhWT3pHOTM5K2owSithN093ZEoxT0ZBc25OQTNkT3d1b2xhNHpoZVIraVEKK295VVZMVTVGQzVpYmwwekpWMjRCOHJrZ3gzbEV6TU1kR1VIUWYzK1h0cEFBNVVWUlNzUS8rNjZSbHlMVFZRZWkKK0JxK3ZDV1V0MXlwN00xMXNGNE1KaGNtZzFIVldJbWNmYTVLWVFQcFBMdmRkZ3NzdVFuTktGMy9ISVN4VlFJWmMKK3cxdWh0Q1JvOEZDWUg4U2tvQy9GVjQxay9rVWZHVEwzWGp6WHdjclpqQS83ZVpRejM5YUFhYVNUZk40ZFdrL04KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgTlRDIE5BTUVJRCBCQ0QzQzUwM0QzOUU1MUIwQzUwNDg5RTkyMjhFOTg0QTdFNjNFMzAzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2VENDQTlHZ0F3SUJBZ0lUTXdBQUFSWjFrM2dKOWhrcFdnQUFBQUFCRmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUzTURNd01URTRNalUwTkZvWERUSTVNVEl6TVRFNE1qVTBORm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVNVVReTFPUVUxRlNVUXRRa05FTTBNMU1ETkVNemxGTlRGQ01FTTFNRFE0T1VVNU1qSTRSVGs0TkVFM1JUWXoKK1JUTXdNekNDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFPb3ZXYUx3WlJyTFpMWGUKK255TlJEWm94blh4M2p1SFEweGd0Q2owaWZ0akVhT0hFV1BuSVlqNmtOT0NyRHlmS0d1TVVyMGxKZE1zZmhiQVEKK2ZPSXZEZkRQdkZmeGo1czV1SUU1bnVhWnFBdkxGTmFHNkVNclRrV1lzNG1qUE51QjRUb09NYVZTK0Y0S2k3d2wKKzc4VDlLanFkQlJwcEhnNXRBV3hUOHRvaUo1bW56SjFmRTBneUFqYVNtUVdmakJJSHFtMmNLUHNUMWVNcDY2SUwKK3RzUjVhaHE4UWVJVWRreGkvU2FYMHZ3WnRuYmg2dGJWcU83M0lRdlVNSy9STW1iUzJ0UzhUUkp4RjBzUGJCVkQKK3F0MXRoOXY1VlI0Q2NuMXF3T1E3a1c1Smp1ZWVCeXpuY2xhV0RPUkp1RVh2T0JQcHoxSWZoWDlnRkRhbFhhSy8KK0RVLy9wV2NDQXdFQUFhT0NBWXN3Z2dHSE1Bc0dBMVVkRHdRRUF3SUJoakFiQmdOVkhTVUVGREFTQmdrckJnRUUKK0FZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUJCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUkKK01BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZNbzQxRUFTN1hma3YxdVN4My9tNVR4MVBoSTdNQjhHQTFVZEl3UVkKK01CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWRId1JwTUdjd1phQmpvR0dHWDJoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnNMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXkKK01GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0pzTUgwR0NDc0cKK0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3ZMM2QzZHk1dGFXTnliM052Wm5RdVkyOXQKK0wzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmgKK2RHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVJER3IKK2x3azQyckZVSzJXNk9SbFU3MzhsZjZnZGlBR0hGcnNDaDc0OWxwbUhXY1lQTlk2NHNLcnBTZi9Cblp3ZXJTVFoKK0E2aW1PWll1VUlWRnJpVE55Q1VOWVp3Sk5WTGlvdTRrQVYrT2JoR1FYRFBvSENJZUxkZ0lmNS9GUGhONzJxek8KK1VSMzJhbXZmZ1RVMmtSMHU2Rk5OVlNGUDluZWRqaS8rTGM4UCtjeEcyM0s4Ly9LYVBzY0dzYVZSNEFXODA2MS8KK3JBSXByZDN5Zk5KZUxTZzN0ckpFWmZQbFJqbys5dlF4TWhTT2VqRTQ0ZVcvMUxBS1JwOGVTUkRFYU9FUVpRd3kKK1hFMDY0THRzTWZXSFZHV0NTVW1yNHdGbDJ2dk42VjNveERaOVVOYlErNnlOeGRwMithR2c1MWZMS1ZxSXFlYjgKKzQrUWxLcFQ4dWgrVzNUcnFnYklGQVZ1SUkvMFpMc3hoK2o3U1g4c2F1OG1CdzJjVWhjVms1S0phNWF3YVpiSTgKKzVjS1Uzc21QeUZnTVdkcWdmd1hyL2tvNFRIenhBZ09UQ3lkVXVBbUlOL08weFZzcXdtVlcyUVNjSlA1MTNIcDAKK3lIMVVldHIrV21TRGJ5NmIwM2FVQ0E2RUQ4bndLaTBaajFyY1hhZmtrQmh4M09uUkU3STBaYW1sQ1pLSGtOWDQKK0lrK1E1SXFDSThMbUM1TFhzK1k5UUJ2VDRFT1owajc1SVdWSisxWlcycmZjeE0rQy9GME5rcXo2MEUzSXNMTkUKK3hqTnA0SmxDcytucjAwOS9lYU45QVp3aTc1a1Z6QXR4akhhMVQxUVBiTzZ3M0p2M1F6YTArMXc1YktZY3BwSEIKK0hwdVVKLzVmL0RPQ3J3cjI2aGM3WnlPNlRUMXZ0a0lDWGg3WHo1ND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgTlRDIE5BTUVJRCBCQ0QzQzUwM0QzOUU1MUIwQzUwNDg5RTkyMjhFOTg0QTdFNjNFMzAzIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBcXVtQVJ1ZnF6bjJLZ0FBQUFBQ3F6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME4xb1hEVEkxTURNeU1USXdNekEwTjFvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVTVVUXkxT1FVMUZTVVF0UWtORU0wTTFNRE5FTXpsRk5URkNNRU0xTURRNE9VVTVNakk0UlRrNE5FRTNSVFl6CitSVE13TXpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBT01NaVJGckZlUWV0UktKCitGZXB1VEFtdWhaSVVFQ24xK2xFTFl3UEJucjVac1Y1VmR0VzR2N0M2NGQ0M25KVnlFVENPK214VGNqNjVXWVIvCitQUDE0QTU1RGViS0szRWtrUVVqeGt0cGFLbWFIdjlaNFF6TXdLMElhRndqZTRlV0J4YzJtWkNMSUw4UE1EYWpCCit2bmVIR1ZFMXI3cUYzTG9BZWk5a2dTTHpYdlFjZ1BqMDBwOWg3eURsbThlZE9vdkNmUVh4dlAvSnA3aXo4MlRyCityRXc0T1MvRjhTRkh1V3paVGFGZnBnZU9DRmtDak1YZlM2b1g2a0d5NHE5TnlSWStjeFlBWXhWeFAwZ3F2K293CitNUldzaU5sU25ld3F2WWwxTms2anFnQmI2dmQ0ajJyN1JUNFdIbSsyLzBheXR4dkhmRnJ5YWJSczBxRndYS0d0Cit1b2ROaVdscW5hdkhpNDhGN1RZQmJFaXRIVXR2aFIxaG5PMG9VZGFTUUtwYXE0MDRRTTEzK2U5VGV4M2FmbFgvCitINmdJTlJET3lHYk5QbEw4U294aktNVTM1N2wyUmFjVjBhaEJ3NENXMm9mUlQwdTV0UE1vRWZaaUwyVzhqbUpqCis4K2FqTm54cGRLM1dyU0c2S2wyYkUvY2dDYUE2bThqcWk4SnZ1YTNjbmpoZGtCc0VzM1k2QVVsdXY2NW4zMHRrCis2TnZjM3JaTjBtNVJTa3pkY3JKUUZweFlUT2JCRDQ2cXFGcVFnT240QzFtUEh4d2tqaHJ0bmlCdWJ3UmlQT2VBCis5cll4QkhGcE56ekE0WVlkeTJCaDNWL0pObngvbDVnUjgwSXlGSkd1ek5xM1ZQc1c2dWJLRE5jS0R6YXcxcEc5CitKZkNuYi9Ea3d2VjJhU0oyY3pNY3ZYcHV4SVRaQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlM2K0lCZjI2WWlwMUVaCitPMWlPQVR4SFI1bnlDekFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFIVCt0VWd0MjNYY043QTl6OE5PRGh6RTdoRmQrY3VHNzQ1VFZsUHRpUjJxCit6KzBkQUF5STh4b1B5aEVwMS82eC9xZFN5TUVNNjFtM05LeEpFSE5RazVaaTcyZ1ZWUm1Ja0FGUTVvUUUrSWpUCisxa3B1RUlPT0FOdFZSbEtQZ2dGQmxZeUl1bmNwOCtBRlgzSGxFUmZ5ajN1U1NaYllSbVJqdHE3a2djR1NYYUEzCitScjBCOUFzZ0ZFZENZSElOa2dRWTN6cUxkbzcwcGZhclhSajNFcE9VTVExamFYcWlKdXA4VnA0QXhhRXFhQ09mCisyZ1JZSkZubkdmVmduWkVQb3dCekdJWWlwbGFqRTBSWWpwOHRIZ2pmQTZocURCVXZlQTRmM1RVejRpN01QNG81CitkWTM1Ryt2bHVlQW50NUNZUVdPbGk0U2NITVFmeG9IK3ZtaGNFTHd5Tkc1RzZ1MHdJWnRIKzdxVEMyOXVUczJvCitmMVcrV1NOYjY4SjZxcHBpVjV2TVFhZ3pLdys3T3lpMmxtbkVHbUxZZ3pONjczQnpvNmZUN0h6eU5vcVFQaFhiCis4SVN0VEZrbU5NWDFiSjVESDc4MVc0R3E2K0J2S2hBSU5mWlhBaDhWeldoMmNuZEgza0VLYTVEcDg2ZlQ0UjBhCit1OENhSjhXUTBRR3h3djZLNVNic0RCM1NFTEw1ZmFUNk9zNUhDZ2NFcVROckE0MnY4aFNIc3JpK1AwU2g2QnY3CitTVTgwVFkrMXRUZENVclNhVHRjelRoZEk0enNaWXV6T3NsUHJvMm1XMXFVOHgxQ1NKWndjbmRRMDNkaTZKRENtCituYmlYNldnVStQeWN5OU9DNHN1NkpGMjVzbVJOclZzUklKSUpUVWYybmYrMDU1NFVoTGRtZlBUcWFOUFNFdW9iCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBOQU1FSUQgRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQyQjYyRgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBUmR5Y3FSWGd4MDRZQUFBQUFBQkZ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFM01ETXdNVEU0TWpVME5Wb1hEVEk1TVRJek1URTRNalUwTlZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVTVVUXkxT1FVMUZTVVF0UkRZMU9VSkRSakJCUmtaR01qSTRORUZGT0VGRE1qYzBRelpFT1RFeU1UVkJSVVF5CitRall5UmpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1ROb0hJRGVnTGZKQXBaCitjVUgvN2tNcHdaWnRTRFpPUUhydzM4Um1pRDJiYmg2WWJKckwzTlRteTN3MEN4RXdCdEJlajJyNGI4OHZzczUxCitYc0ROWGhBWWNWNElZbm00R3NmVDh4bGZGL0g2MVpPNzYxaGRTdVVOR3VFMk42L0twVGM3N29ObTkvbnNZN2tYCitXZjFIRmwrN25yTTBkdnVxYXBWYk14Q2RPd1ZVRlkyVHFSRnlWcGxPOXY3Tm5VM00yaDYrZ2NoQzlvYmpGSk43CitYMVMwTE1KQmwwK0diNG56azQvMm5mREkxemFmVitIM2puVnMwV2JzUS91R1puWFAvcUNOVVRHSXoydEFVRWJ1CitLMnkyTzd2cUU0K0pYVHVRZDdSbm5zTEx3L0F2aFNodnA4Qit4WTBjZ2Znd05uelZQNHgxTG4vT3BhZEE3UTN4Cit5Mm1BdlNFQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTm1ROUtYNDM0Y3ROeUJnZjdiNUtaSnczeThpTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFpSmRmCitFWEFQeFZVRVMrdjR4QjVBUVZOTDMrOWU3UlQ0dXdiL1ljYUZVcmZZNG1BRnZCSTJRbG96YVFSekFWK2hnbGhDCit3TTk4b3hNV3Z4RVN1dnVCZzNyZmtDOGJSNGhRd0ZpZFdqcVhSaFRSWEprTHk3Tno4UlRQampORXkrN0o1bUpECitsYkpWMnlNb1dpbEREL25jNkhOcFZUMXpJbEJCUEFpMERlOGlma2hRbndiS0ZEMEg0bUpQWC9ldnU3L1hkdm9LCit6U21SdTloTjM1VTBEYXZWaC93OFdkeUNKLzRkd3JpQ09FWUh0c0VTNG1sNWR4Yk0yQ1BOdG4wOEhYVFNVL3JlCis3YnFlQ2taaUFuYmlNSlB3S1oyZlM5REYxYnlCeWV1aXV3MWNXQTFXWnlXb0dFMElydmRMZllzaEZCMnhCc29QCitsVFNIR1A2SitGbHU2bU0zRlAybEhDbHNJQ0ZEMkp5YXNGejJZQ2MzRklGQzZoQ2JVQXIxa3lyL0hrMHdWYWtwCitURitsSEIyVTJGS0hXdEd1VjR3RnZabjVxUWVQa0p5Nk1EVThzbjYvZTIwanZqdGhiYjg2OXBRM2phY0s4RTYxCitkd3ZWbm0zSmJ4Qy9yckZ1YzY3ZGgrdDBaNlg2dzZXSjZSd1Q4L2QrSkYvZ2FrTzJqcDRDdU1Xd2ltQlJmcjZ3CitCWjBBT2QxZjd2WGxXT0xRMGltMERsa3hrZEwwVkFjVmRmMHF6RWkwc3ZiS2dHUHlxaitZamZuSERadzluVUE1CitONmpLa3VJODZBaDJEOU90L1VVRHVxblluNmtUb0s4aHRZZ0NxR2I0M1kzV0kwRlBTMzZveHlLYjNGNVNhekx1CitldVdnMjFiVlI2aENBZit1czJzUTFmQkNTMWpDMWVtUlQybWhzc3M9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE5UQyBOQU1FSUQgRDY1OUJDRjBBRkZGMjI4NEFFOEFDMjc0QzZEOTEyMTVBRUQyQjYyRiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXF6SEJjY21Ud2VvTGdBQUFBQUNyREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QTBPRm9YRFRJMU1ETXlNVEl3TXpBME9Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFU1VVF5MU9RVTFGU1VRdFJEWTFPVUpEUmpCQlJrWkdNakk0TkVGRk9FRkRNamMwUXpaRU9URXlNVFZCUlVReQorUWpZeVJqQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUxuM0lMZnlUNENoK1JvaAordTZRanpuU2oxeUxSWk1FY2E4dlVDczAzeEFIcGgyTEI4NW8xVVRKaVJCa3FXMkJkN1BYN2Jqb25pcWM0Rm1HOQorL2FrYzZHOUVqUVRxdUM1UVJFMFF6Y28ydlpCV0xZaTB5bUg4VlBPdmVFaTVoN0JuRC80dTMxVkNUcWZJUS92eAorZHd1Y2hkZnRZRXpDNVoxQ2piQmpnTE9jTXpLNnVQWmhrS2piTGVHSnYyZ3BwUE5KVVU2OGIxT0p6b1MxUG5TbQoraVdsSWI4T1R2VTBJK2doYnAveWxsZWVaQldNcWwxRnVWQzZ3UWZDRXljd3NlbHZLNjFDVVdqYWhEM0NYd2VNZQorTTdVT2Z0R042OUFOSzRFNEVVSXAweFIrZnFkaDI0K2I2aTNDQlQvUlYyQWhtV0FSRDJIVDVEUjR6cGlRWEhEcQorcXNxaFVZQTZzSzB3eVhoa1pkNU9tbk5LQ2YrWWE2WlpXM2VjZlI0d0x2SkxkT2NZd3M4VmlrQjVpRjlwVlZ5TAorWm5sNEdmMG1rSkVnTEdLUUxwcG85TW1hNzlTZE9hdGxHN3BzTE1PNjNFODg0cEs1eTRieERiOVBNYUJnRlRvVQordEx6THhjRDU1S0NxdXhDdng4YTVVRC9KY0p0VkJnUWxBeXlYYm1xbjJVY0JyaUEydTBHNlBLWjR1bTluV21KaAorTjlaSHBBejl5V2J1SmVaMHBzbHVYS3VxMm1NWDg1RCtGVHF0M21idmxNaWVXMm5LSzY0UCthSUhwbkxPRXFWTAorazJoNjVFQ0RxZ3VaQVd4aHZoaklPQnBPWERqV3Zoc2JDOVYyeThZK3AzUGlORmZGeXR3YW1hTEFIbTVhRG9jeAorTFQzRjBzNW0yS1ZKL3dBa3JWQk1Ec3FhdWYxZkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSTjBwbENqU0UvUGtpUQorUnc4VlNQTHN0ZnQvYVRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSXFhOXpKbEtBbEtTTVEraFFZL2U1aGRteDN0TEwzY0ZGbE1ta0hJUVltbQoraC9QcHdKN0tuWEk0THZQMzRRSlJOWUxLemh1MmRBL0hIUDRhcmFkYWZ6WEZ3UGdlUHd6SEdtWGlPdm5XOWNJcworaUxsbHlSc1ZzT25HbXhvMkx6c2JKQVZRL2VybU95a29jK3dqMHJZMFVCdTZOVm1DajEvSkh2aGw0TXE3SEVJZQorcEE0a1EvamYxL21YaHVDaEhMdjZTVGp6M1RnUURwNXZPalZoNGlFZElXWjNlOVQzdzVJQmZsTENENS9ubjNsTAorSjYrZUplL2hiSEF3SkpTdTY4b0E3NHVaUy9kcFI0dkI0L2tLWllZWXkxVmlValJSd0R3WmJhVW1sb0ZjYjZwbgorYVN6ZDlnVWdGaTRRNUVlQVlVdVdLSGMvVHFvWVduSGxYZWpEZXMyWm85NXlnVWZwSkJkY1kyem9NOVlURFd4QworMHA0Ynk2QkZER2syK2ZCdC9Zbm9pbHROQzZ0Z1h4TUwzbmdKZDhtZVBPN1FlcGlBMERpU0ZTbGFvM0NjN2d0TAoraldQa3F1STBEQTVpUGwyVkk3WGFoMnkvV0taRllYcmxMYjBESDJENHpaU2ZEVStycVRCalgzWDRUaDNIcUlLMworRDJFTDlvYnIvQ3h1cW5YTG1FVndCbE91RU1td1FsRUFibGxoZTBiOUJNZGZRYk1wTlJDdkdrOXZFNGpsR3hqaworTFd2OEJVWWVSbGxpSVdxYlFSSHRoeE1sUHNybFpSanEvNVhtUmhCeDVoV3dTUnVsY1FQRnVySE5WU2lkcERjVQorNjJuekt2TVpTRW9KOVVqcTBWMFhqcmdBcFhCZVZNbkdFT29JOC9CWVVrdmJQMi9sczhSVmtxaTNjZ0ZKbGNVdgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgTmFtZUlkIDc3MEU5NzRBQ0FGMERCOUFFNjdFN0I2RjVENDEwRjlBQ0UyRkFENjUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUhRTVZocmZRaXJBcVFBQUFBQUFkREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNVEl4TURJeU1UZzBOMW9YRFRJNU1USXpNVEl5TVRnME4xb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFU1VVF5MU9RVTFGU1VRdE56Y3dSVGszTkVGRFFVWXdSRUk1UVVVMk4wVTNRalpHTlVRME1UQkdPVUZEUlRKRworUVVRMk5UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUxsTXl4MUNHbE1wa0RWcQorVkppdUt2QnhUN29mZi8wKzhKOUFGVkIrUWduRU5DU2RIOWhSU2ZCZWJ0d0pjZU5NS0F1Tk1vNjdIT1YwWTBGbworbUU3RVN0RlpOUnpsYlRLMzNpMmp6OWdHbURERTNJdnNMenZmaDlKM0ZtelJjZzlnZUFvY1IxYVVsanBiMDZ4VAorNVkyQXhHQ3ZMWC9ib0h4MFFDd0VwOCtVNDhJc0tDK1pEL2xpU2NUc0Y1RElISmt0Y1IvK3lCTGhqVWFRTWlsTAordWk4cFRqZnNUNkVEMVdMeVhESkNjVG1UbDZFa0RBU3JkeGhjV0lQcXFOcUhBZzQrbXZFZVBTUTdxbm1GekVLbAorYUpuOWNLZlYyK3BnTkd6SG1BTkowemMvYXlCZFQyVFc3UW82S2R3YVF4Wk9VVnl4QkU3R1RNYktnYUtDNE5kKworZG4vbzM5VUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk5YbzFxYmpDb0YrOU9NQ250VlJuU2o2K3VacE1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBU1F3YgorM0dlWnE3WHJQQVo5TE8vdFlpbjlBWVZQUVA2ZUlwRFN5c1g3TjNydjVzc003bXV2dXAxVndTVjh6NzROV0N0cAorRFl2ZWZNV010bkxDUzZiSFBxK3dxWkk4SFR1YXcrVDdhSlNFZ1U0ZFJRU3Uzd2R3K1RhTndmbyswck8rV0Z2cAorbUJXUkU0N0NJSkJXM2xKY3FaU1hCOEtYOC9aalBvREJUQzJid0htQXpJbzkramZBUm4rMDI0NlQ3M09HUW9TOAorT1hQZTlRamhwdnFxOXh3WGFXZGpsc1Z1MjRJNkIwZ2pHL1p1TWxhWGlBU1lFMTgxQnlDaDZncEJCUERWOGNyRgorNWFiOXJuMXFmWjl1elZra0xlV1IxTXhWK2xCWThrbmtSSExOU0ZyMFZzVmZ4ZzI5L1pLblY5MEw0SG02ZStLVAorbkVUU0RGczVLeFZQM3J0QjJUeC9teUpJSnhidUJPeE5iditWa3habnFsU1hpRFA0Z0F0QTArbHNWTXhtNnJmWgordkw5aWV1cEFoSWV1RnptdmljZU1WK3V0ZjAxSE92NDdwTC90dGVOUm9WNXljVjEwOC8vNDljcmpiTmM5cHNvagorSUNzTkpXVkNYMGhQbzB5NkozN2Z5M3pjVk1CcHNacDJCY0RsT2NFdXJtQnN1M3VmK1JvbUFtVWdKV3NhdExlSworakx6aEZTc2JHTitoeFJaTFg2L1owWVFJaG1lWWdXRFBrVGZCV0krdEQzT2R3dkpkeXJzR1BlN0hQRnZHSGQ0dworNE9GWHFEaVo0N01rOHlVa2p4NEtYT2s4OFBXbmY4SjFpNGZ0YTR5SGphR2paN1BUSXFhMGlGWnFDTnp4ZVJPZQorckNNTitubHVOT1c0V1BZa1VvVG9nY01lQWlkL1ZWT2V2RzFnL3VnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgTmFtZUlkIDkxRUJCQjdDNTFGQTdGNzhBQTNENDREMzQyNUIxRDVEMjM5NzVDQUYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQVUrallsclRBSjlLdmdBQUFBQUJUekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRGN4TURJd01URXlORm9YRFRJNU1USXpNVEl3TVRFeU5Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFU1VVF5MU9RVTFGU1VRdE9URkZRa0pDTjBNMU1VWkJOMFkzT0VGQk0wUTBORVF6TkRJMVFqRkVOVVF5TXprMworTlVOQlJqQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUt1eXlLR1Z4ZjU4YlpSZworaVVmYWx5WmdqL213Z1kyKzRMQlFVQVZKOGFKbWVsVTMyQUtRRU1yZHdYYiszeUJ2TTlTVHRtSXdqM0lXcEZtVworRWJSNVRTU2VRK1BqY21SUzRNTURYbndlamEwNzUrWkhBZmlFWVk2QVVtdUt1UkgrcGxvbUNXQlVIcFZNaFdEagordmFVelYxYlNUL1JoWUs5aExHSmNSWEQzcXZrajZHZDNrallsVUhtb1JWS3RadlV4SE85K2E4OGd3cEFxSWFTeQorblQ5ZERRUStwWWtSSXA0Y3ljWHh4RzNVRnlzY0EwVmx6U0YrcWVuaDZJajZrREYvM0U5cHRnNFVJR2tmQkU5MworbS9rY2kyS2N6ZGVnd1JtSjB2NkV4TXBOWWVPejdyOUpoQWxhU2FlZkIzMXdxaW1manVTMkxObFh6S0MvK3cxSworY1kzbU9rVUNBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkEyNnJiaG5pamxKVXBXaW1NWE9QeU9oZGRzU01COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBWkxkMgorQzA3cDl6Q1p6Ym9vNnU1UEJNaCtTdUFDank0Mis2YVJ1cC9SKzlLQ1ZhTWN6WmlZcU13YzhtelpxSFo1amJQZworZUo2M0NBUklZd1Rtdk8wS1hnNUxmR3NoQUZaNjFjNlBhWVZ0UnhYZ2d3eTd5RFFia1RlWWxnM1p5OHYvV0tKUAoreE1wSUZZNkhFN1lCd0F2d2VTZEl2Vk5sbHZaMDZxd0MyK3hybGlydWQ0SUlVU3NzVS9MVWxYZXZudTZLRjQrUQorNmticVYvR0tKdDlHTU4yRDdPb1JpckZmUU1KUmRJWHR6TmdDNzhmVTFvcTNBSkJjNlJvVnptOWdjY3M2cnZNOQorbVFSS3FuRWVFaWlaaWt0b0l1aVdKU3hZc2pPNXRRQ2VtUStVaXlsNUdMRnAwQWNNK2R6aE5CUnNCMVorTjhyVwordllxT2JEV0UvMjFIRnY1RTJpN0oyQlV0Q3hNY0FZR0RBbXBoNWwvNHM3eUp2M0FZWnJyd1dKUCtObDZKS2NoeAorNUNnYkJpT3VmaFJxWXgyM2NkZTlXTG5IenBqV28rbElNOHdxVkwxK3JHYmlHOGQ4VzYzSE1UN2pZQVduUW5OWgorcXNkZ3Q0cS91emRtTm1GVG9RRTl2cmZwRStNeFdLVnViZ0hhWHFoSlYrNEFjZVdGZGZ2TGZaelpkOUJnVWYyTworTDR3U1oraFJIcU11c0sxVi82dThUSDgvVUJZbW1HQVpuUXZvQjYzelcySllWS0EwbjlDMjBYZjZjdU9UU0RkQQordFRBd3pYWWhGemlPd3R6OUgzeWJNUUJJMzRuNGwydURXYTUrMzJWdUZrNi9JNURQRFBhellWZkJMQVJ3M3c5VworSnV0aU5rcDBOY0NET3FjSmhJUDJsZ2V1Zk5OM2YzdWRpSDJ5RHU0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOVEMgTmFtZUlkIDkxRUJCQjdDNTFGQTdGNzhBQTNENDREMzQyNUIxRDVEMjM5NzVDQUYgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc3RENDQk5TZ0F3SUJBZ0lUTXdBQUFxbWZYbTlsMUUwTUN3QUFBQUFDcVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURNeU1USXdNekEwTlZvWERUSTFNRE15TVRJd016QTBOVm93UWpGQU1ENEdBMVVFQXhNM1YxVlQKK0xVNVVReTFPUVUxRlNVUXRPVEZGUWtKQ04wTTFNVVpCTjBZM09FRkJNMFEwTkVRek5ESTFRakZFTlVReU16azMKK05VTkJSakNDQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFLL2dHMml6ZkhNK2lsSmUKK0pWNG1PRE1TYjVUUTdiR3RGWWtJQ2crN0I3ZE54NnloTW1STW9vdFBycGJkTDdhb3pSVkhxbUl1Q01YTmovSHYKK09wQk90a1A3bzdmZktOM2p0YklsMDhCQXFqbDFITTJRNjRWaWtXZERleTV2dEU0OThia3k4dVZYdHpNOHh6czgKK1kwbDU4bEF3c1V6WUhsVnVQUnFZTkdqdE5iTnJHdTRKUFdMa3lrR1F5L1pxQlJOUzZhWE1RZUt3R09vVGNKZVAKK3h1ckFweGVBZS9HZ001c0FTYkpTeWszM3E3MFpaOEJ2TGVlNTF2bkRXQ0ErVytXOFp3aTl6RC9tdXpGcHlLcm4KK3ozSVltZHhnT2E0TTU3WlNYdUdybGl4K1BnNFNpNHRmRUgzRkRnL0dtcCtuOHR6dGJNc3hzc2pxaDBzMUdCVDAKK3FKQTI4anVRaUpJOW90eENWQVhNb1VudUdsMWtiRUUrNDJKTDhWSGwyemhBN0lxRGZ0VDhxS0NMWmNwRUFGTW4KK0RDa0VWTmkwNTZrQ2grREVraU9tNldWWlhScmJkMm1MUXJCQ1JJWEdVV1VOL2hERzZJTTVLbWVtWXJjZ2d0YnkKK0xVZndhNU5CbmhQMFdZVHl6TWYveDlNOXB0Skh3NDRtMnIyRkZJRXhJZUJJWmYvVkFpcG91OXhRNTREa1dvU0MKK2k1b0MvVGkxRjlSeXVSRG5YaGRTT055OHVCcGJ1VkhRUUNGZVNwYUExSStmQllSVHZRVE1EK3hFTmVYSDJFQ2oKK2xhbDdSMWQyK0RURHdGMkVCaFN2SzJmSXBCVENwWUd1ZFE5UmtOUmJZdkIwWEN4bStFcklrbGNKbU4zYTFiV28KK3RjMEpJY0lraVNSaFRKaDd3cGJSZlJkUzZQc05BZ01CQUFHamdnR09NSUlCaWpBT0JnTlZIUThCQWY4RUJBTUMKK0FvUXdHd1lEVlIwbEJCUXdFZ1lKS3dZQkJBR0NOeFVrQmdWbmdRVUlBekFXQmdOVkhTQUVEekFOTUFzR0NTc0cKK0FRUUJnamNWSHpBU0JnTlZIUk1CQWY4RUNEQUdBUUgvQWdFQU1CMEdBMVVkRGdRV0JCUTBHWnp1NFlKUDdpeXoKK2d5QU1mL1Q0c3hCdmV6QWZCZ05WSFNNRUdEQVdnQlI2akFyT0wwaGlGK0tVMGE1VndWTHNjWFNrVmpCd0JnTlYKK0hSOEVhVEJuTUdXZ1k2QmhobDlvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYjNCekwyTnkKK2JDOU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnAKK2RIa2xNakF5TURFMExtTnliREI5QmdnckJnRUZCUWNCQVFSeE1HOHdiUVlJS3dZQkJRVUhNQUtHWVdoMGRIQTYKK0x5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkyVnlkSE12VFdsamNtOXpiMlowSlRJd1ZGQk4KK0pUSXdVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY25Rd0RRWUoKK0tvWklodmNOQVFFTEJRQURnZ0lCQUZOTDcwUmUzSkNhRmZ0SkZ1Szk1bmdHWllCbHoyKzlqZmZhZ1gzdW5oZFMKK2ZyZGpqK0ZiOWt5TXh2RTFFNjlrQlorUmJ4b2p4TFI4SGNUK3ZPaWFsV3plOUoxbzVpUzc2TzNwQ1BYOStmSysKK1hOWUk0L2UvUFJMeDhYR2lqYU9jNHFXblczM29OTUt1K3VyMUVJNnpHV21zUGVUQm4rOXB3Q0c2T0Z1T0YxbG8KK1lFekc5WmxlZERwblFOVlo0REFzdTdrTDBsZnpaWFZVSmZWMXppMFdOUTlnd2o1Z2ZtUVdtQ05jeUwweHFCMGEKK3lOU0t4UlBpeWU5VnZZOFplVzBzYW8zWDk5dW1hRnhhV2tFazVyK2Vaa09vSGsrUGIwSVgwUExiRUxQcGJnOXoKK2JqbmZaczZZYUwydVRnUkhpM242aGE4MXFCRmZpZ1dqRXV1a05qYlNwUStocU9aNG9ndHE4Vy9QY2pvV1RkQVQKK0xNaFh4aElZZjlwTVlyM0YxaFZHc2FUdTVVblpJWklobkJBd1RjMTUvNkZzSXBRM0Q0S0E1M0h2ZEtoSHgyaDQKK1NXajRNWGxVZXB4ZTlmRkhuMVFZTHkwUXRIR1VqWTBJWWt6OGxaQkFta3QvMmxQaFV5czdZVTZBa3Z4T0hMKzAKK1owT2RZRElTUFNtN1JTbGExK2QxNnNKQ0FGMkl1L1JOOStUNGJ0cHkrM0JZYjRlUFhZV1huYi9hRnBlUUtSSHUKK3VCaytQanB5THIzY2lZTzd4dWZ3Y1VNa3pyV3ZlRTVVeThKTHVLVzB6dzZNcHdrWXFXbStESzNTSGlocW1TVTUKKzB2MGVoOVN0Wmk2UEdTK081MVRMYlAwcFpQUEZlNkVwVmZsVXNuZi80cFhRY2lpRDROenR2NXgxVFBKZ0RuNVcKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgTnR6IGtleWlkIDAyMmNiZWVkNWQ3NzA2MGYyODMzZTlkNTM3NmJhOGJjMzA4Y2Q5YmEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdFNBUlFoYlZIVVJUQUFBQUFBQzFEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXlNakl3TXpJeU0xb1hEVEkxTURVeU1qSXdNekl5TTFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVV2kxTFJWbEpSQzB3TWpKRFFrVkZSRFZFTnpjd05qQkdNamd6TTBVNVJEVXpOelpDUVRoQ1F6TXdPRU5FCitPVUpCTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFydldLYmtqeTFSeitmanlPCisyS3JhZ0pBdjcrNVBWZEJocWU5RWJvUUY4VXV3WGJPTFg3Y0VNTU9ob29MVmxDSGFXMjFqK2VGVVlScGhZU0s4CisvTDhRczRGczgrVkYxVVk5TTJEYWdQNXZON1hheS80NmlZVmluYkQ1djJTeGhNVzlKSURqUTFHbVFnVUFNVnhpCitQTUU5NVdHYzFzSlNpVEk1VGp5T0ViaTViMk42MzVlVTE4VkN0TXZMU1huOEljdWNvQjFoSlVBN1B1VGlmakFrCisxQjdUMnI3d0laNng0dW5yV0k2KzdBWGF5TGVIbjhvQS81ejk0a0lta1RDajVQTk1va1AwZVliTzFMc2tDN1BQCitOUlZQLzh6c3lMV2ZSa0JFSDUzUVR2dXJ3Uy9vbGpKMHg3V0oxM1dicEJnbUNiNWdySXFZeENRMXVScGNVWUpaCitUQzVBZmtmcEpsQ1JQN0Vwak54Zlgzcm1ZdHh3d082Zjl1Y3R4bzVoK3MxVU5uc3JEWDlnZlBacUNIMDY4Um5tCitiUWluSzV4NTBsdm5URXY3cVdtTC9BUjJrcnlMcm5JaXNuYkMwU3NTeHFMVU9Hd2VvWlhrZkNpejJMb3lkeW04CitDSVFUM3VXM0U0K25QSWE1Z0hDeHBIV0lnNGQwb0d6cVBFeFBoMnVkRmJiSU8yaHpMci9jOSt0TXlmVG53eW11CitYb3BzQzEwdjdWYTVOMnlCazB3NWF6alZTcjFiZS81c2w3dXIvaEZOY0Q1UmdEdXBGU1JSek9TcW9BT2hBZlVGCitqejd1M2NObXNlYW5sNlFmT2V1Z1JLeUZhZlVybTh1WjYvWFdSd3dieEt1MkN6Wm1TVjBnM2dXYmU0WjNJOG1pCitOSDBoVGVUQk1mWTloaU9XUnRndmZkYjlDUFVDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRDV5UnV5V25RVTFWa3R2Cis2Y21WREVxaGZocGpNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWlJN0RoODdWZG9lYnNBM1hPQkM2d0dDRm1YNEs0a2V6SFpRUzNwRGdBb0pqCitTVjhhZDJXWFA3cmJLSnlzVnBKbUZaQzJpNFZvZjU0M3F4U3d1OUFIa2FiMlBJZEdWbUZ0TFJ0ZEVRVjVkdlhICitQWE5xcXN0VWpLOENQNTFKUlkwZlN2UVVsTk80bm55Uit0WDlwUlUvQVRJOE1XcmdINld3eVdVUnZIOUtPN3ZoCitScjh5cFA3dFpnNGwwSEpndWhDbFRnTDdON1MwOUdDRjRaZ0RVRFJISStxSm42RCtxOVBNQmlDL0E0WXozZTdaCitTTzVCSFhmNWxNN1lHUS95NGdGcXBiMzN4RkxyYnVEQ3cvWW1OZXVSZXVnYmxhNkVLaHRlL1hCRmFvaXZkYm52Cis2UVQ0VUhoT3I4bGhSbjU4MWtXQ3E1ZHJCcEFUcU1KUlora2J1Q3ppUS80R0FyVkRLYUFodWhBdEJJbk83cXp4CiswOHRsSWxtbFJoRW9kNXBWeng5cUJ1ZEJPT3BVWXliOXpZMUlDUkYzczl6NngvaGhmL0FnbDBwcHFqV2liL1B6CitaRjZzTHdYQllIYit0aWo3enRaU2NFVi91UTZxNTFHUEQ3VTNHTTFvRkxHZ1FYMnpQZlplWUZLN1l4VExRNCt6CitLNE00M0lob2R6YndJMExVUzJHaTZkaG0wTmwyK09PZW1iTHFvaHovTzhBTExJQ2pyU3BDUEcwUjIyd3BiMzJuCit1MlZjMjlJL1JnZFpLRzZreC9SaWx3dG9nR0c3dmxHVXZjekFVOFJwdHdMbGk0TExtQVNBRFBrUm9FZmgwNXl4CitzNDI0aGlWNW5uWmVFV2pqVnhickRTaldMbjF0OEc1aDllY3VmdFRBeG1CcCtuMnVCdFpBYzRuZTFoK3JRajA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIE50eiBrZXlpZCAwM2QxY2RlNDM4ZWEzZGIzNGQ5NDMxODFjMWNkNTE3ZDY4ODA2MmVmCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXRNemNjVVdkRWxtRndBQUFBQUMwekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV5TWpJd016SXlNbG9YRFRJMU1EVXlNakl3TXpJeU1sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFU1VVdpMUxSVmxKUkMwd00wUXhRMFJGTkRNNFJVRXpSRUl6TkVRNU5ETXhPREZETVVORU5URTNSRFk0T0RBMgorTWtWR01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcWdVNTVkcjQwc3QzZWVxNAorc2dLMUxwakJMdTNpK0RlTW02YWExTkpIVU5JVno4dXVBNEZ1Qmluc1E4VEFranoxSU9FVnVKVDBEdm9tWFU0QQorMXVtK0lLRFhjak1TZmx0MUduakNhYUpkR2xlK2xUMFo0aXhrMzNoVjNyNEJvTlFyUFJ6alB2U0lIakJVbFQ5ZgorUCtDY2d3TmZnMVZZaFVwaFYzNys5eE5jbFJPRHRQc0lGZHdvelE2N2hMSXE3U3BpMDYySSthMDVKcmYxRjIwbwordzBrMjEyTUtOMUxRUW5jRVlEZnNSemlyOWRuV3JSWXQ3bHQwRmRTRXhlUUNTSVZrS0tYaG5xQ1BFTDZzK1I2aAorSEt5enNrL1diVXNkTDZENHRsK01XOW5KaU4yazN2QWEzRGdrRVFBdlpzSDcxQ0ZSN1dPRkRyZEVkR2RWYkFndgorRzRmZENCd0ptYUtTbkZJeks4bFpHeUpadjBBWHdVbEpqZXVnRm51Z0RJL2NyVWRCSGtxVXY5WXdLWTlDY00wdQorelpqemVmUVJJYjlPT3hUNjVSdDhhME8yYWEzMEJiQ3pKb0w3SlkyWHVONEdXbTZBS3VNckxQQjBnRk94VVFUUgorOVRrNEtYQmI0d2xqWEFUZDQ0blNDOFFGZndqUjcyeHNHS00zODhjbXdDZ01ZanJRUitJellLNVVrREw2VDFoUwora0EyZWZZWTU3RWhhKzBSdDNHZlZ2RDF0MUFabENDMCtTNDYwU0JvNkMvSXpXSkVEak5Rc1lHaE1DMnE4TGNZZgorVXF3aFhuY09ES3cyRXhUd3RKS3crNVp0NEhPbmdzNGFRN2Q5R3ptTFY3YXRoSjdmS0ZmcGdGYVcrczhna1dBbworRzA1ZEZJL1BDQXRMbDd0SWNZTisvcHZBUmJrQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNpMnZrM1lHblI5R3UrQwora3JxSFFhdGFMTWl1TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFQMFlzdDdXS1Z0WUZVOEdSeFduS01LaUFtdUJKQlNEb09UOTNnQ1Z0NUp4ZgorcFpWa3hRMHEwczV1Z254cUVuelZ0RTRPcCszRU5hUldwMW1KZk03MGFRcFRBaWVBeHNuZThMeUh0RFV1NWZ3MgorS0ZONWcxR2VST1ZFeS9QU1NaMG9UM1NMdTRZSlRSdEFaSi8wTHNxbzNJRCtaQ2UxcitUeEt1NzJaYXNFSnVEVgorcC9ZRzk2dndLTnpoTmI2UEo2RG03bHlFeDdrZ21yZlUzTmN1S1R4aGxMY0VtS2N4UWRJdWhHdTYwU1pwdzFLVworVU9aNno3K3h6c0FYL1RXL0M2bHlCSys4RGZLUTk5Vis4MFFGd0hYc005Y2Vya2RNeisxQWFHdjZ2VXBYTk94dAoreTJNdEJmY2Y2MVR3UnNpNnlXR0FGamZRbCtMcmxVdHpVK2hoUlc0TkNqNjRlZmNQdWl1TGo4QWxRNEFLT0J2cQorTU5xWklTQVpZRndPT1l0YnQvSkx1V3QxK3d3OUIrZGY4cVpnYkJyUkNOTDBGcXBDYlVEck1GUm83Vy83T2lLRAorc1Q5SWNTZDl4dlR4SUI5YXJyUWdCYVNpMzRWeVZzU1lDWCtaZGQ4SlNBRnNNSEFCQ2c5VVZkVk1iczVVdTgvVworeFVpNkNYdzZzcUlRNE5oZ2VMSERWOTZaNm02QW5CazU5cmQ0eWo0M2hqRlAya1ZZT2s1ZnYwWHBpYW0rTWEzbQorTUtHdVJwRmpwUEh3ZWFidHdNYzRnR05qbERnYVMrM3NNbFpZRk5pbWNlOXJGdjI2VUNrUElTQXJBSWZVR1IrWQorUklGbTVqWUh6VGJrdXZncGlPUDV6TzZjUWtyWFJrdkxkdjVJSlVzcUNjczkrajg1SGJ4MEpVaVlXd3J1NGJnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBOdHoga2V5aWQgZWJiMmY0ZTMxMmU2NTI5YzRlZDBjZGI2ODIyODU4MGFlNTIwM2Q0NQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF0V3F2ejd0bVNEL2dnQUFBQUFDMVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVeU1qSXdNekl5TTFvWERUSTFNRFV5TWpJd016SXlNMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVNVVXaTFMUlZsSlJDMUZRa0l5UmpSRk16RXlSVFkxTWpsRE5FVkVNRU5FUWpZNE1qSTROVGd3UVVVMU1qQXoKK1JEUTFNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTNzR0JOc0RlMWpiTy85SXkKKzhYSForVmJPRUdhNEJCenVDcitmZzR0ZnNpUTJxZURpcU0zYkNGNDhwcFNJQWtQbkJIK0tnT3BoRCtEdklKTXMKKzBZczgzZ05BRDFGU1BBVHVVbnJLOGFsbEZTb3AvVlNMSHpDck9VTnRaMEZRTHFrYkpPb3FiVDIveWtNeVBNM00KKzdaOE9QcmdkV3A4WjFubHFrbkZUdW1tYnpOQ1RxeW1mOFZEd1I2ZGFBT042REx2SkJoZHcxQ3JXTnErZWRPaXIKK1hFelZaVjBSK0JZemVISElubmVhVzJSZnl6dG5wOXZkbDYwaGhaL3VIQzl0ZUZNOGFKWS9Pd1ZPRTgzcE0wMzkKK0ZTSzh2dUk5ZWNCRVFFVkFUbmFnWExZQzVJb0FkaEFRSG9OTVFqeEhvU2pScGNUR0tKdWl2OHJZMlVTcXpEWDcKKzZ6dTJKUEtmcXIxVEw5cFNDdXFXTW9QSTYxcExWY2kxN0dvQXZlbjdueXZrZEVsa3QwYzl2UzllaHh1b01CYUYKK0QzNW5kU2JXaWxJTkFsVkJ4eEtSdnhYdVRITEp1OWw0Vy94M3FXYnhGRUZ6Q2J3dUt3Q1cwR0JKTkx3cktHdWIKK1NBTEtZSHMycW5KZjBjWUFtVW9GYmEwYnZXcUtzaWVJaDBDSUpYdzVlYTE3TUpBaElqVTkxRG04dU5FQTJxTjIKK1RMQnUwd3h4STk1NU9PVGNvNzN3d2xZUE01MEFTYjA3bGZYK29aTGM4RHNEQWlBNUhFWEQ2bDVsT1FZS3dmb2UKK2JXb2tYVDRPTDlQcjNzUjV2dGtEN0tRbVRhMWQ2UnZSTXpMRkUwREYyU3hnZUx3dzNycVFSM0NUYll1ZnlITU4KK04zNSt5MDhjZjF4UmVTKy9Mc2FEbEllRzZHTUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLbHNyS1VhNHUzZjFYSDEKK0lqb2tHb1VRaWI0bE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbDRXRFpXbnNXSkRmWHJhMnRYTGtMYlpmU2dQQVB6cnkzQXhCRzliWU1xN1oKK0hwSTRveEhtVEJZSUlWQlN6OUdkM0F6Sld5MXJjcjVEWWFIeEFIT0dpWXRLOGQ0UnVMbFFpMFFOaFcrcENJY00KK2RiN3hoYitPbmlFUFhaUUVreC9ERWEwNU5zU0tBZC9raVZuSkNOYVBPcTQ4KzRKU0srY29NM1hNZDdJcDEyNU4KK2dOeW5sUEpmVFV0YzNKVnlBRHJPUzROTGQ4cTAveW9aQXQ3THhwQU82bm9mS2w3SWIycm93VlJVRlZvUkJpSzIKK3R5TCtMV1BEMnhTL2VzMHNTR3c4Q2dYM2lYa2FjNnBKVlIzaHNDZmdFL3FZMHdKdk5aRmNFWW5mYVZJYml2d1AKK2gwS2oxQ21zTTBPbDZnZERydWNlcTlnZXd2L1Z5bVBWMXZsckZKSDNSWUxXbURrNWtackhFL0Z2dlg4R3JBa0oKKzdXc1FTWlBSMThyZWoxNGplcmhjeGpiVDBIRkhVMHZxTk9OZE4zVUwxckJ4cDRDbmFCdjZFTk9zUnIyV0lRb0cKK1I0cTV1RFRJYVp1S1hobGpYRmZhT3phOEFpNmpQcXJnelI0d3FmM0t6S1g0ZER1SEE2NnFxOGgzaFJYNzJ1MDEKK0ppTXIzd3cvTGlBYXJNZURya3MwMVQyVVN4NGFoWjdtOGdmczg1c0czNHZvVlN4MlhzUTlpYllrODlvdEs0aTkKK0xMM2FrVGtVRWNXVmpWUktTMmpFMSsvWUJ0RHZZcU1DUUl0ckNwdDgwVENiSHVGamNuWTZTWkVSb1FOR0d5NDIKK1A4bmZyTGdGRlFJTEFsTlI0VWJEb1NUelRqakpoVVpuVERKMnBDQ2NBR1I2TmxEb1BOSWlCeVNlSWtlb2lMTT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgUUNPTSBLRVlJRCA3OTEwMEMyRUEzNUM0RkMxNEJERTE1OUI1NjMyNkZCNzMxRDFENTEyIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHN0RDQ0JOU2dBd0lCQWdJVE13QUFBc0N6dnRrU2ZvQ3BFd0FBQUFBQ3dEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EVXdPREUzTlRjMU1Wb1hEVEkxTURVd09ERTNOVGMxTVZvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVkZEVDAwdFMwVlpTVVF0TnpreE1EQkRNa1ZCTXpWRE5FWkRNVFJDUkVVeE5UbENOVFl6TWpaR1FqY3pNVVF4CitSRFV4TWpDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBSk90K2NLcURGWk54RWtGCit5RUFFN0RWK1lMQjZSREdBTyttRzFFZDNwdURSa2lNbDBrSzV1SU9XMnBEeUlnSHkycUs4YXhQQ2VRRlNmUXNsCitnMHFwUVZWT3FoS2VyNlFmZnB2QVlSMjhYU2pNQStjMnpNeUgrUG1YcGRWcDZmayt3VWJ3WGhQR1cra2dINXMzCis1NmVuVDAzaFhlbENaQjV6UWpsSm5Hb0lLa1o0ZWJiZ0JRbjZ5YmU1QS9BdzlldVQ3ditTVGY4anFQU2JQRTZaCitxSmFubWtJV2J6bFNFcEljZjExL3Z3WlBSMzNqZ3pCYzN4MnlKcUxpWkdYNG82Z05vNXp5Yk92anQzczFLYXRuCitNUkNWL041VzllRkdOMDVoQWxkUUZGVnpCMTFJVXh6WmcwNER5ZEYvYklCWXVJVmw2MmxKeS9PcVJ1RHRMNElDCit6NEwzNWorL0FCVFlSa1hQSHBPZG5IY3kvd3JScUdxZU5NWFBFTnRCWUpidEo1N0VXd0E4c2lSNlhEMFUrWVp3CitYMVU4VFV0czJNeERudDdudWRBSVZJYXdKNzRTa0I2RUZ2SzNQL2pLSTBHWEpxUHBSa3NZcnlQZGREZ0xBV3dMCitmRFlVQjh4L1NnWVd3b0VTMEtJV3ExdWxxNHN5aTFsaEN1VWhmNWVVZlVUSFRsM21Ec0RUNE0wL1I0dXVPeGlLCitkTXk2MHBEQ0lKTTBNUktEcU1ZOFQya1NBVU1tNVFHK0J3OWVuMUw5UFFQZDNLbzRpTUlWRW9PSXhxdHAxeVZmCitzbXNOdnpNeTBGeDE5dXQ0ZU1IdlFJMzdYQWc1bi9keHNpRURVQ2swWGNWZjV2M1VORUdlVC9OVTRscU1NUFZ1CitSb1F5akphaWwwV0k0NFlVYTBRbmJZMWZhbytIQWdNQkFBR2pnZ0dPTUlJQmlqQU9CZ05WSFE4QkFmOEVCQU1DCitBb1F3R3dZRFZSMGxCQlF3RWdZSkt3WUJCQUdDTnhVa0JnVm5nUVVJQXpBV0JnTlZIU0FFRHpBTk1Bc0dDU3NHCitBUVFCZ2pjVkh6QVNCZ05WSFJNQkFmOEVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlF4Z0hkK0liN3hWcVBlCis3UmFjVndQU3JhNmc4REFmQmdOVkhTTUVHREFXZ0JSNmpBck9MMGhpRitLVTBhNVZ3VkxzY1hTa1ZqQndCZ05WCitIUjhFYVRCbk1HV2dZNkJoaGw5b2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGIzQnpMMk55CitiQzlOYVdOeWIzTnZablFsTWpCVVVFMGxNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwCitkSGtsTWpBeU1ERTBMbU55YkRCOUJnZ3JCZ0VGQlFjQkFRUnhNRzh3YlFZSUt3WUJCUVVITUFLR1lXaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZMlZ5ZEhNdlRXbGpjbTl6YjJaMEpUSXdWRkJOCitKVEl3VW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNuUXdEUVlKCitLb1pJaHZjTkFRRUxCUUFEZ2dJQkFFRjB5Zmx3TzlUV1BuV0dMbnRVcC9SNENtdjUvVzZnYTExclhQcUdGN0diCitpenF3K3NFRGZsOURjZDk5VHlkZ1dXT0hKUFd4Q2NCUGxVcHBINGZRRExlK2t2bGx2NUVadWoxeFR1SWxwSm5GCittS29XcXdJczdmY1NIQWNhOGtBVk9ENEdHYVI3YnVaV0Z3ZkpOUEdnR3RXLys1a3VDVmhSclQ4bFlpaEdESi96Cis1bmhXOEtnUmh6ckJHbVVtYXFmY3F3TExuU1Bwa3lYa0pWVnFUTE8rNUdsUGd5MW5paUJsd0gyS1huZExYL3ZGCit1WFV3WityU0NNK3F6ZXAwUkovZ2Irb0d5NlpDQy9oWlI0NW5SL2dBMGU2RnE5WWg0WnFIeS9abVFWM0JXeW9kCitoN2tBU253RENobWd6NEhlT2lsSmRMY3VWdW1yT09PL2N6Z1c0MG5ieDV5TVlXaGtGdDFXL3pyZHRHQnpXU1cwCitOeGg0U3JoRzYwbXR2ay9pZmRWd3dpaW56dFVoeHVYaHpLWjQrT0R0S3pGaDUzWEFsOS95SmY2b0x1Zmp6VmdKCitDOHdMeTgxVTlibU9CWXdxKzcwTlV3ZGlXRHRWclBJVWVPRFZ4UXg2YzY3RUZobXQ1aHd2OXNKZUFoMWVta1BDCitCNUFPQnI2UjhNK0NnRy9Bd0ZRSzIrNlM4U3BpM2lURjNqWjhocEI2eXhTWUc5ZStBNzBJTnZRZzBZV3FGcnpTCitndk00ODJDRldQMDBCczJnNFVrVVJ3SjdzYXFLeitMTDRCRDZYOXI5cHdsY3RtYkZyZ3IweVZ6ZktiUHRGbU01Cit3UlAzV2JXZzllcmVVTGtGS3RIeGF0Zk55UUVjSXBZNnBjTVZoVncwTFBma0tXVlBESnZUaGtGYm5Ta1NZRWNvCistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFFDT00gS2V5SWQgNzkxMDBDMkVBMzVDNEZDMTRCREUxNTlCNTYzMjZGQjczMUQxRDUxMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNlRDQ0E5R2dBd0lCQWdJVE13QUFBR2hOY2lJSkw3UUh5UUFBQUFBQWFEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFMU1EWXhOakl3TlRneE1sb1hEVEk1TVRJek1USXdOVGd4TWxvd1FqRkFNRDRHQTFVRUF4TTNWMVZUCitMVkZEVDAwdFMyVjVTV1F0TnpreE1EQkRNa1ZCTXpWRE5FWkRNVFJDUkVVeE5UbENOVFl6TWpaR1FqY3pNVVF4CitSRFV4TWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTGJjZEdWSVVpcXhDeHRHCitxMGFHOE1JaTdaenNzOG9vMG93bkd2OFMvTkNrYzdETXhJNldldkhKaTJLZFl2RHYyVG9zWCtMWXhCMER6bmhFCit2cmRlRzJsd0xqcWVRN2w0RU05aUowQW1FWEw1bzFEUHNZbmoxNnFQTzQ4K3pSeVNzRmVXRktnNnZpUUVyZHFuCit3Ym8rK1dYNkZEQ3NqR1NzMVBNS0U1VDVwemprMzJhaGZhdHp3RXUvc2VRQndVRUc0Zm8rVnRja2w3cUhPTDlWCis5QXU5R1lEd3VaVFA4VjhIYzlaelpBN2IwdmZQcE1uRTlkWnpKTUszcU03MmVneGhPWkE0N3pMTytTYndqNnlDCitTc1dNeXFwM1hvRVlJMFVkTXE4OERIV0tNZks4bFc3UFBlTjRlYmI2MTc3N0VwMXhFd0FiQldYZHZiQXgybWd6Cit5T1U0VlFNQ0F3RUFBYU9DQVlzd2dnR0hNQXNHQTFVZER3UUVBd0lCaGpBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFCitBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJCitNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTVdpdmxSTlhiWUs3N3l6dllGV0E2bFBQaVlmTUI4R0ExVWRJd1FZCitNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2CitMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5CitNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHCitBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92TDNkM2R5NXRhV055YjNOdlpuUXVZMjl0CitMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oCitkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFRa3VQCitWTy8vRkNuNFA5OG5GSGtVWVQxVXo5cTc1R2IzaWFjenN4UXlkbUtTUm5Bc0tNYS9uZTI5ZjhLbWFreGUyNzd4CitFZFh1TGtwOGs5bjRKVlJLNWQxMGQ1Q3NxOTlkS0hPYVBHZWJxdWFSYlA2RE5zcnlmSS9PYXNYblpaOERMOWZRCitCQXRoQnpldW1ndmt4cWw1MlIvQWFORHZzbzFUTjFydnAwR29FcDdlTjByZHFjUjRmczBCbC9ncXBSMmZRcDVHCis4Z21YL3pWSlNSK1F6eWZmNXhlaEdSZm5mZEpKRGZsbGloVDdYeUUyWHFuRzlVNUVIMmtVSDE0OTIxVUZUSlBpCitKbkZYVjZtS1RvaUZ4YUNHNVNQeDFjWjFELzdjTFRUTHVXckRZVS9VOUx1L1pjZG44WUJ3K1A0bG9kZktjRUNWCitOclVUK3kxSmlFNnFtcytDbFRjYnkrdSt5T0I2c2RvbXUrNWlQVm9XclJvT3M4Ly95TjNBb2lsdHRORUZBODZCCitrSkdpS1RCeUFzLzVBamdIWFg2aDlDc2U2ZFRQUjVTc3ZkSWpNbnp2T3RrUXRHNDdBRFpORUdEMWZrdnQ1eHhwCisrMXNRd0xyRkc3ejlQSTFJUW5nNjZOSXlQeUZvWHk4dEZCT1VtdlVLa3ZSWTd6QWFPb2o1WlF4eDRaWXhKUnc3CitEYjZZMW9wNmdueS9UTDBQM1VhZk9RVFBBMFh3aTB5d2QvbzN1WFVPUkFSZjV0SmFrQmlzby9peHVvNU5EZnJ6CittL1lkalByZ0ZPNkVoV2w1bFhXSUJ5aE5NUnpzb3o0dmh0L2xIYk93NFdXcm5OdDhiRktJRmtyci9KWXpkQWlCCitSajkvMHpCYStEblJIbkdQRUVjS1M2bFFUalU0b2tmeGlpaWRpQVk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLRVlJRCAwMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2RUQwIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFzRlpOL1p3dDFpQVhRQUFBQUFDd1RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMxTWxvWERUSTFNRFV3T0RFM05UYzFNbG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xWTlVUUzFMUlZsSlJDMHdNRFUyUVRZeE1FUTFNMFF4UWpOQ05rUkNSREUwTURrMFFqSkVRMFUzUlRGR056VTIKK1JVUXdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXVtSng1NGJYWm5XZmdQMisKK2tiNkp0dkQ5UTZoOGZkVGN4bEtCWlNYMWx5d1h2S0Z1SjFpZ1Y4U01rWHlZdEpIODVldlQyUi9YcWFTcE1XeGoKK3NRTEdCU1lPOTZMQTJpUU00cGF4L2oyRXhJdzR5UVdiTDlRS1RVV1Z6QWlIbm9xSHdlZ1ZuRmVlSzRlTW9lVnYKK25jL3lILy8zZUE5c2dxR1ZFMk94S2NNTVNvMTlsRzhLM1VoY3R0YU9BV2huSTRaVXcxUnQ2TGFaTUFRWFBCaHcKK29ZQWY1cmFCa3lyOWhZVEJFZHJVMVlnVXgrNDIyNjJFREFwSEk3a3c3WjNja0hacVhlaWtaN2czdHY1b3hpMU8KK1FCV2xTU0hFckhDbUhsdzYwR3lqSDJvWWxmS2ZGQS8xb1V2ckpleWJTblJMRTFwalNoM0dqbm5vM0NEUTVwanYKK2Z1Y0lUWnN3eklkVVNVWGFTZFRaRHJqRmJwR3Q1NHlRQkx1aHllUnM4ckt2SUdWTlM3ZStTckRTZ21NYXhNMlIKK29OOUY4Q21aZXVodU1IK2VqQSs4c25oN3E2RzB4OFZDZHFFaWRQRUNUckFvWEtLcUhuWGVpbU9GaWVXczNhWnQKK1A0d3NJM1pmMDlQUXBqKzdSTnlaK2htelRUbFRqeTQwclRINGNlNHJ1elV1YVkwMFZWU21ZMlZ5TGRhS3RmMEQKK3MrbmtrUEM4YXhUSWFtVVZNNTJlTXZuQ0hDTktuSG81dGhYTXZiS2Y5T1R6bTJiVGxYckZ5aGpLaE9WcFRkeTIKK29FMUR4RHFad1ZyV2xKcUcxSmp0MFRUTm1ydzI5VFpsakN2djFzVTVkTnVnbjhKcTBIQlpWUysrMVBzWGFhYmsKK2RXZ0ZtUkJMUmFwNXV2cDlYbUg4a2J3aFBwVUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZLbDZqbm5WdC9NcmVPcUgKK1EvRFh3VkNNNlM2aE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBUy9WQTNjSG1tZUpUcU1oRXRibnlZV0dQWVRUblVLT0pQRnE3MVVSSklEcWwKKy9XUlhZaUh4NEVPNlBtMEhmR3kra1F5WjJoWFBXbHM0bGw0cDRzY1hyNW1KVnd0K2plb2hXL2REWXdKamY4NEkKK2VPekVKYmdPUnM5Sk5uVllwREQyV3JucXBDamt4Wlk1bEd5ZkVHNzQ4Mk9yUmdzRVN5ckxXajhtL0xOR01zQlYKKzlWcFROMXdpQXdWVmppSXg4Mmh0RjB1VkVscVM2ZzhFY3dzRDVwMEV2Sm84TUdFUVRob1EwUmdsMlkzazNoajEKK0hBR2IvaUt2OWdjY3h3bHFHdTEvdGxsdm10N2lDc2IvSEh5THUrZTNLUmtSa1RzOXNVUGViOFZlZzhXeFB5TkUKK2ZjTFlzN0lucXVTKzVuZzhlWkh5VDJKUXlzanhHbWlIMVdpaC9UdTFySWdadEVuQ3hrQU9PUWNHYjY1TmljQ1AKK2wwRHZDVHQxa3R3M2NSZCs2UlB5NHNxSktVeHFqY0dVd1JrbUJtODNIY3J1cjB1K3BnY0I3Zlp0Umd4citMUHYKK2o1clE1Ti9heVc1N3Y4SUJZc1hJbEU4MW1ST3lKUmowckhFcWZKT0FvUnYrd084WHh4YW5HdzNRVFpEdUVhK20KKzlqN0N3L1BRSExjTmZBc0RrdEZJeU54KytkQlJqY0pLWjAwM09rMG5GOHppY2JxcUlld3VOZWg0ZWMrRVJ6ajIKK1VodFp6bzNoZWl1VnpNYWVNU0VnL3IxQ0ErcnNjVUp0eS9yQjNER1ZrVFZBRUVvUncvMzFJZjk0WEdQdDcvQjgKK2JuZEhHTTlnRlFBMmFKVllQZGdiYUppYWxleCtFTXgra2Mybk55TlYzMWNDUk44UFd0bTlNWTQydzJpWi9ZND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgU1RNIEtFWUlEIDA4Q0JCMDVDQTQ1MTBCMkE3MzI5OTE4NEVEREM5Q0NFNDI5MTEyMTEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdWxzTVUvVGZLZHF0UUFBQUFBQzZUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZek4xb1hEVEkxTURZeE9ERTVNVFl6TjFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFJWbEpSQzB3T0VOQ1FqQTFRMEUwTlRFd1FqSkJOek15T1RreE9EUkZSRVJET1VORFJUUXlPVEV4CitNakV4TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF1TEJ6K2JoQVJVV044VHdkCitNa0tWd3N4bjl4WTBXdStDbjNlNDFnSDVpZXBxVmRLbVdTZnNrU3JpWTNGUlNjcjhaek5VT1pTa1lkWHhORTFQCittMnNEUHVXNGR3SkdFRGo3WWhaNjVJTjJ2VzUxOGxVWkdvRC9ENFNiOW94VytSNmV6Yjg5ODZPVEtKc3YwNDYxCitpMTRjaFRhbE9OV201NTR5VThVMUdneHpvZFhtSFUwbXc4SkVTNS83dmpzOXpYMmJaWnNnQWl4TnE3S0JCY2x5CitPaFFnSXlxdEMvNU1LUlRGVldiUG5lL2tQWG1XYmxxTU5uZmF5VkM0aUp4TnE5YTMzRVZzWWpIMmxON2NPcVFQCitiNEZxRWh0MUxVK2Roek4wYzdvTGVQODVpOHNVYnpQNitORWIrUUgxS2x3ZXhySk9Lc3pSTnozc01WSmVTV2NGCitnM29jcDdWTWlQL3ZESm54SkpObzY3ckF3dUNDUXNzWjkxMXJHMGNKTXRJSVdyK2dYaVhwTmE5VGhZZVdxM1F1CitLZkZKdmVDOXNEbStTU2ZlcnM3YldJNHVYSmpGRk1pNGJqZDJadXJHNFdNVjNFekxMNHlITVVubHoyeGl5T0xtCitjbStCWi9WR1dDUndidWF6U3dubUI0dG9UdGRNZ1NFNDRnRVYxQ1NnVEpqK0tFMkNJWFFkV2dFYkZpZUltcWRmCitkbE05bFhiaEVsYWEvdTBkeUFWcmR2MTR4K0hoSEcwNlJBWnNQQVN4azAxSVo4cEFzV2F2MlJKSy9YTVpzMzB2CittT1RVYWlGeG9TcjZIbmlFTmx1eWRJM2F0ZWVYZUp0VHFqVGN4Sy9uTGFpcy9xcGZzbFNRL3VqekN3WGhJS3cxCisyQXJmTWY2M3htK1ZmbU5ZMnpmMHpHZlJNYzBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGSmo3V09hK2dUaEZ6WlZoCisyWVJnS3RsSm1SSURNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVRhZVhISU5QdVpnQU1tNFdJaGNhYlUzSHBnU2VRMm1lem9DM0JuNzRtUUNNCisyM1pGYTd4YkZNank1NjhZTzhEYlI4aTRncWZjNWo0YlpRVmYwb1FkTm9JcEJNdElMMWNmSVN5Y3NudHlSZmhECiszTVFFckJ6VW04U1RuQjUvWFZJTzEvSkxhRm5kT0NaSVBHWGtlTFpRSUJkK1A0R2xDNmtoYmNIVVpmT2pycURECis3akJ3b0ZUVkVoMGJ1MjVDSHVrdXN6Z0IwaVpEK2VpMjJvSXJiN3BoQ3NkM1FZNktPdkg4U3VBSDN6QVpITUhlCit1L1U1ejJqNWxjY09pMURHbkFYZjRtN0RNbjN6TXFtWGpGVjhzMUY0eHRLMVk5cHVnVVZ5ZS95emRYV0ZUbmNMCis2c3d6cHR6QmtaOUpqeFlpOGd6cTRJT05aV0ExK0ErN0RQWXphZGJhTWVDdzh3dk1NaUUxK01jd21rdlkwY0hCCitKU3pzbWZkemp4VHowcSs0SktWRHVocHpTWUE2MFRDdHB6NWpMWm91NWt3dWl0dUhvSnA4eUFBaUhIM21iSnZzCitQNHM2MGVpT1pEQ0JnSGlYYlRrNGVYbi9WdjRlSVMzYjY2Tm1PanFlNDZkNklETzF0YTRGSkh5SGwwZkZyaDRkCitvNzFBNHdCR0tGdy83aHZKdVkyOEJ0WjBzZzYyN3QxOXNwQ2Z6em5EelYyVXhydzFRVjhob0pLNDlOTzh4TVRGCityOW5qMXVPdHd5SGk1bUNGZTBwL0xURXRvcnJpTkxhTTlYdmhJOTZKQXk4QWttMjRmZW44R1l1QjhhNlp1RWR4CitSSW1VbkZ5NHdsWWFXaFhzRzQ4ak1aSTJBMzJVVWZPNkJ4aTk0cVU5S2M1czBBZUNSbXFKTm9FblJucE96VnM9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLRVlJRCAxQURCOTk0QUI1OEJFNTdBMENDOUI5MDBFNzg1MUUxQTQzQzA4NjYwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVJpL1dZWVg5dzlIM0FBQUFBQUJHREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVTBOVm9YRFRJNU1USXpNVEU0TWpVME5Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFZOVVRTMUxSVmxKUkMweFFVUkNPVGswUVVJMU9FSkZOVGRCTUVORE9VSTVNREJGTnpnMU1VVXhRVFF6UXpBNAorTmpZd01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBc29lV0VSN2xRRG52dVZrUQorUVBSYnNMeUZBbm9VMGM0aU82SFZJbkdBREtpVEFEQTBsVmF1c1pid0UwWWxUakVvWEpRMXEvOEk4WUNkK2NNNgorUTVWdkdFU1VDcXpoVkQ4NHROMXBpWWFzbzlGWTlrc3NIWHJ3WUJjNjM0bTBzYlZyL3N6SXlScGhaZ2IwRVZjeAorRDBHNlk4TWtUZXN6SWRmcWxucnhLb0JDVE9ocllZSUtDRHFPWGpucXUwQTR2MC9GWjQ3VTNWTVB4akR4K1dQcAorWEhHUlhKbHZZQlFCNTFQTHoxYjFLbUJZMEVsTG5sUU45RWpGclAyaXpQMEw1dlJFcFJRNzBzeTdhV3B3RXByUQorNGxYVEFIVDlZRGJPVnJxRlpOay9IdndmYk8yZ2NPdHV3NEdJR2JhZkhGbW90QWxjWlBrWGVDMGpVNlVsOGlDSworUzJUdFR3SURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVQkw3MFZRWXNnblh0d2g5dUs4Zzd3bVg4TlBzd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJIeWNvNAorS0pnNGNrNUVZcjZBb1loQ1I0UjRzcTJTcUdsc0l5VnFaVGhGZTA3VkJmNEdnZ2w5bFZyYUJvdGpNRG1KZWFUWAorSllxZXIyOWpwbHNyVmFKbXp3WVQyTUg1U0tpaFkvSlRiaTJ1djVpeGJ6amMrSHlrV3hLQzcwZjJaZ3c0MFh3NQorNlV6NkxFMTlZV3d1SkZNQnZUYVFHTmRtejhVTjhjQTVIVEZwSFhJamY3aGdPTFlIWWNhenRVM3d4MDRYK3lFSgorR1k0aHlSUEN1cjEzS2VYSFI1S2ZLTy9TQU9VU1l6dERSdUZ3SHFYYWMrTjB5aktiQTdwcjZyR2R2cTNNd29nSAorME16V3NEL1h1K3RGRXBFUWhnTWY5Z3Q5ejg4bUVYWHg1eTVtUjRyVnUvTWhKaDlxSWlFVkY0TERMQUQ2eWJqVworWmk1SmUyckM4WE5hdnlwaEZKVStTdnA4L2pzaHVrQ1ppNkJiY056c3gyelFnbG1wVGZuekxrbndnMUR5Qkk3Vgord1IyVERlckEyWDdFTmFWazgzSDFNUHpRcDM3cEJoS2s3M2ZWSE1QUTJIVkF2T05ibWkxczZ2OXBsMmhTbUo3bAordjBOaG9OWDJadUZmMmtFbGNsTURZdkljK3B1SWZpSXVmRmZrM0ZQeE9pMnlSekU2RVYzSXI4bnVpZmhBa2VqMworMUNjUlEwaEZUdURlZDdjWXlEVFdObEtZcEVVSytQV2o3M3RmUkFHd2U4dERUN3AyaTZNVi9HSjVTZXdjelJWRAorV2wxV1ZQTjh2ZVBFejljYTM1SUdnbG1jTFZ6RTFvVzhuaEZIWmwwamhEWkNxZnNLdHB3VXBFQ0NvZURlVmlUMQorL3dkTW1wUlZyU01vS0FpTk1SL01GOEU4OWlvTFRYNTV1ZE5YTHc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBTVE0gS0VZSUQgMUFEQjk5NEFCNThCRTU3QTBDQzlCOTAwRTc4NTFFMUE0M0MwODY2MCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcTJDU1U2WUN5UTMwUUFBQUFBQ3JUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME9Gb1hEVEkxTURNeU1USXdNekEwT0Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFJWbEpSQzB4UVVSQ09UazBRVUkxT0VKRk5UZEJNRU5ET1VJNU1EQkZOemcxTVVVeFFUUXpRekE0CitOall3TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUExdmFWOE9wS1BLMU9Mcm9NCis4c2Q3enlIUUFJelpJa0Z2Z2FxNDlLdy92WUJ6Zm9NVjVKbVZkT0pkclI1M1oyL3hVamlIQWZNVE1WeWx6eE8wCitzRlZjNXdkcWtVd09ObHNqaE9XVTVqY2hQRjVDMk1oNFpPTmh4ZHU5YWcwYTVIM0Z5TmpUZTBjc0RORHgwNi9LCisrT1YyUEkwWHJDaWlueGhmZGtuSE9aR2ljSFVManFMQ3B5dGZDZEhwYmdlVDlnTFNnMWNacWxSMzRGTGxaOFdZCitiNnJJekR4SEgxOGdXSHcxeHhXV3p2NjRHWmh4dTNLQzc5UjAwTVpBUFVCSVh2RDFERi9vMmx5d0hKTjRrazlaCisxM0FJMjdmSWsrMnU2VWhvVEdvcHgzcWc5c2hQS2VRbGQ0U0wwcVo3TldyNUZrYUVrUWFQVm5scCtrUVVlZDZoCitvWlRtYThqUGxyVWlmVmVJTXlpVkVweVNjeml2VGhLaEJrWnhERGNjUHQ5Uy9IUjNPbGJpeHpFTFdEUW1tdVJuCitVaCtRVU9wejBnZ2swT3NiZzhnQWdiQmZYdmZ2bzVaU3hRRkRNYUIxZy9PSEtBbWF4Uy9kQkgzTDlLMUdmenFDCitwWEcrQ0lsVmlGdGQ2cktxc3JlNENCNmtNd0xlMEJHb1ZSVGRXcndKTEk1ZDFDYUs4M3h6TGl2MlA2aUZRaXE2CitPS1BPTExJMCtpemJ0VEtCQjFOMWUxbGQ1dDVuUENxN0JPTjBMQmxwYmxUMmUxY1B1TDlsL1JiS05NS0V6KzJaCis1NGc0TitRRmJLYjdmMldjajhEY2p0U0psU2xXd1RybW1BYUhPRlI3L1lvTHpGQ201RmpDZDBsYWViOS9kemFrCis5bzlTRzE3UEtGTm5IcjR2UjlJNjI4YUNsTjhDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUDdTbTRXVEExeVlXaHB5CitxQ1IyZVVIVmd3bE9NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWFPSHB5U08xY055eldBN0g1V1N4TmcwVFRiM2p2SE9Ec2NGOXJjeEt3UTE5CitXQUMvRzVUVFdVS0pjV3p6YklFT1VJdG9jTTYwUm0yK3RlbmsvSFJSeGI4R0hvMjBuSW9RMG9YNFU2Y2xwblFYCitjdEgwcVZrU1pYM1VCOHpIdGVlWS9yc2dFc2xvVUh6VStqdDVDM2xaOTJuWjVaSDAvMGJXZjBVUzRrVXBtcVpZCitZLzZrZDI3KzdNNUpPSFRJWjJ0YlJZR2J5MVJxV1lKNWVlaWJxVUFLQ3ptUDYrY0RmM01ISVhKWXFLNk9aSS9ECitkeGdoM0tHR2pYMU5uRUVqUytrR3J3ZTZ5aWJVWVNFMC9OYjk2eCsxd0JyWStSa0VwbFZNSnUydzdUTmM3bW1KCitYRlp4MGFQOWpZNjJLako5cytTd2NyZnZIQjJDcmNxUlRtaVB2dzFaVTJOKzhVbVdpNG0wQ0d4eHFxaW56WDZsCitUaC9nRHRyNXNudGZLU2l1NTArOXZEZGZSTnJIb1JNaDQ5R0g1RCtNeklIbEtBQUNoZU5kMUdjRFVRbEx5azl3CitTTzh0RExSYjgxd3V4UnhveHl0YW1Qa2VVWjl1T0F4SDlFM1BTL1NwSzVXb05hVzRXVUNhS2hkdFJnMHJjVjdaCitPOXBpZlo5alRZd1VDdzc5YXlkZTFLMU5VdmI4Q1ZPOEpFUUNhaUJtOGhBajNmWnI0eUQ0MytpVXNLSTJiUWNGCit6NHhQTVNuVG5XczRWNU43Y2ptNUlUM0xPMUtsUW11cWw4NWJKa2VNeE9hMVRYNW9kZ2c2RnpZVVlNdHNweTJqCitaUzRRaXBrSHJiN0NLcW9aamttM0VORzVoN3A0K0puQncxYmhrSk9DZU9SVTBSWnlwNHZ1cFVKaERZMVFTZjA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLRVlJRCA1NzFGODA2QjQ3Q0NFNzlCRkEzNTk0N0NFRDg4QjhEMTAwNUFFMDlFIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFzSVBQcFcxSE5FY29nQUFBQUFDd2pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMxTTFvWERUSTFNRFV3T0RFM05UYzFNMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xWTlVUUzFMUlZsSlJDMDFOekZHT0RBMlFqUTNRME5GTnpsQ1JrRXpOVGswTjBORlJEZzRRamhFTVRBd05VRkYKK01EbEZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBwR0dycVV2Yi83RHJSVkgKKzJyb3l1bGJubWU5cSt1NHJuSVd0ZmFROUlMU0FuQXQxSnNpVFNER0RTektNNVZXaHg0Z25kQlpib2REL2t5NHcKK1pjdzNwUDRpQU53VUYvMUVPU2pVTVRBenpFbGE5eVBCejZCVnJCYkFXSmZXZ010TjBUVVkxWFdvR1owRklOUVUKK0pjTkNLOE0vdisvdDdCUTl3TmtOL2tkYVZBdlB1aURhc1BTRjNvQ2c4Qmx6MHNPanlNQjcydXJqdDFxdGU2bWUKK3FCdWlPNzIyVW40QkpmWEU1a0tMVS80Um16MlVPbXA0V0JTUGJwdGxhOHZqNkNQa0VuYkJGRzc2dzNtaVlKczAKK0g5UjZKd1pyckd6REFvYmt4S0s1SWdWdnptU083L3l2UmRhWGlETDBWK1NrVUFsMm52b3E3MG9XUnRWaHp5VFoKK1praTZGblBWVUkyTzBKenVrOUNDd3dCTGxOQmFCRmFzREtYVVVtUTJLMm52MGhRaWVQaGkwOGMrajZ2NldvQkEKK1BybFM2RUpqMnNKc3plcnc2OVVDeHNOR2xEaW9ZSlJqWHVrZURZai8ya3k1RVZPeTJJekhUR1pyTk00alFPdUkKKzVwR3Y3TXZDK2NZS1ZVMkxrblkrbkFvUEdORUhQY2ZlTENwdGMxTlRBUDZIUXBraGNDM0txbnF6MWFvNkptMy8KKzVoQUtaSm9PaFFBQU5vTjhmNVVxazQ4ODVwRGdGZjNsVDNBYTNhUDVROG00eHFVWDNHSG0zSCtmU2xMY2dzY3MKK1l2L1RuNmZVZnVBdVpLSFgxbFhsMk1qMXBlZTU4Y3hhZkRMbVpEOXBmbDJkbWhnNklXYzVFYXJLVmxBQzI1NksKKzBITzc5amh6SGRpNzFQb3RNNEI4KzdVUjM0OENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFWXVjZGozSGxFeDFYTGIKK2F6b092eTlyc2FzY01COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQU8vb0lvaS9VdzNrZUs5K3FJcExoVW9vdTJkWkwrYTZMa1pUTnkwNW5xOW4KKzdORktWN01za0w0ZWdBTnl0RjNINjNrSHdlWUlrd3VtUzR2OUE1L25BbFpOekd4MExNajE5am90TU1WQTRJd3YKK1BSSzJKUFFCZHhMZUJmVU44Njl6cEhUeDNRcmNOa29Ob3Nua1ErRUFEc2Z2OTJvMVo4QllYdFZVUk8zNXVvMDcKK1hDK2IvZTFwd01RK3JheURjcU1tZ2EyYm9pYXI5VHBMVkovWjQ4bFVTU3g0ejMzSElXWWRxdGhla0hoSTNYa0cKK09YY21lYUd3TjlicEZZczdFelZLeDRqM2dyU01ROEFZdW5iUWxUb1NWYXRYdWRTVG1MS0ljUS9ZWTZCU1VPMXYKK29IVWpjb2lrbnYxbkhBMDg1TW9nRSt4aWFmSUlXbkRoSTJTbHQ1RFA1VjVGcEo0WTVML3VhUEhQVzJEMzZKR3MKK2Q5RWNIT2xwS0xxK0FtcnhQY1lMcUVkYUxBMWpENUhHR1dBbmtTK2krY29UMGs3TVA1dkh1YUtmZk9CVm16Q1oKK2RLNzZrRE8reENHRWE5Y21vZ2Z6WU92ZE50dThTTTlKOTVPNk92UlRiajE3NjdTcUY0MkJJME9EbjYyOHBEZEEKK0syb2ZTSjBwMnNIWVpXcU05eTdFNUR2ZmpJUGU5V2xUSjZZMUFZQ1hYRTlJRWViazZJeVRCbjRmUjdqMm5JejgKK2lXMUV0V2FYWk80RVBwQksxVjJLTHJEQVFzTk1yVHYwK0RhWjFxbkhEOFZjdUwvTHpSYWxrV2p4eWFhVzMxWVMKK2hnYk5Na3ZQL3R3SmI5eFgxZjE0c1pwZk1tME80QWNCeTBjZlFwR1U4NmN3MXRZN25IellHZGl4dTdTWHVsQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgU1RNIEtFWUlEIDY2MkQ4RjFDRUNERkYxNDdBOEI2RjBFQTI5NkFGN0YyNENBREY5Q0YKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdXRHVW10MHpOTjRNQUFBQUFBQzZ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZek9Wb1hEVEkxTURZeE9ERTVNVFl6T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFJWbEpSQzAyTmpKRU9FWXhRMFZEUkVaR01UUTNRVGhDTmtZd1JVRXlPVFpCUmpkR01qUkRRVVJHCitPVU5HTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF2U01JaHFrQWhsUGJqMHRTCitWMENpSXJNZGdDRWVwamgyRFhkT25TYlVuVERrLzJheHNJK2pFNitBU0RnWHZxdUdkL1RXejMzUWpyQjJ5NUlKCitGYWJ2ZVRBNlo0N3dkLzAyRytnZGJFMjdVeGt3bHNBa3NhQnZoMUtoZmxOQzJTWnRoQ0lSWDlmV2prTm1JZHBSCitWbXl0OCt0Mlg1SGw5amJXS0JuVzJOSUFtaDRhUDBrMUFtdE56dHk3cjdMdXRXbi9NK2YwTHRVaDdDd1ZnV1d0CitGWVZOWnhveHhVNmpzN2hOcXY2SU5NZ3Q5blBQZDdsVkVmRU5ESnZyU05aQTZYQVdlMW90RDFyYlRZbVVkcFh1CitiN3YxSDZ3L2pPMGcrWllrbXA2OTJLa0tOSzJwYy9XeG5Wd2lxYzErbDQxamh3WCt4dmQ1VGFTQTF3T3B2czhzCitzeGlmbVcvOW5NSGJNeGV6ZlQ4WmVueHdyUTZySnZ6dXNSYms5M2txQ0NVSjBQYUw1YWRCd09XV3I5bjlmd1RzCitmZ2dMbmFKSEwvYmZnekpZaGp2Ny9zUG1wa256VjIrSks3aG1FV0V1K2RQN2tSSzhyMVZNQjd6QnBNQzRWUEswCitCOVZOV2p3QzZISEIxVzRLdVVEak13WnlFS0wxVG1GQ05QQWFVa3dqajZxaVloMGdmV1FJUnFFY3U4Mmd0dm13Cis1eUpSTUlMUFdkTWJ0blNNQjU0RVUwYXFBYUdCUDZLbWMwMjFzc3hFQnJBTDVodmxuYVZRMTBISWV4SEJSbTVaCitKaG56aExhS3JWQUtqcTZUTllMUUU3WWd0YzNuNTBuQkFjcDkrYlQzVUhWZEN2UG9zcVIrait1cU5rSHQ3Mm9YCis4ZlQreWIyZXBjbVZhU2FPaExlandvVmpxZk1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQmsxb1JFSmlsUEdLQXI5CitLZjBKVkRKakNUakJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVdNdy81U3BLODd3cjRWdE5samNQdlVBcFc4SXFWbGVDbHk2NDM0TzhpNEliCitKcnVYd0kvQlhGdzNZWnJGbktqTndyV01hei9qbEhCS2xxK21SaFVXQStGcEJEUzdCNHVmK3lZdkp6TVZHRk0vCitjek1ZRHVqTUdoaWZWOHI1aXpjTWVaL2wzWUxGTjZ2YS9aQndDOU9sTXpKbkJLV0t2SnJtZ0VSR1hzWnNnUUs1CitablFYNm5RUy9udEdsdTBpbmluNUtvR2JEd1IrbmU1SEtWaldzQkVRczU1UWtKM1ZxaXdBZklqMW5VWW4zTUk0CitiSkdoeDR6TWJUSCsrRG10NzNJL2tnMk5IcUJQWWpPUjJXOWFEMldMS25FY1Z4NWhCektGcFEzQVo1SEhVYmYzCithVWZFWW1Pc2kyYWkvUkYrY2E5S3M0STZlVURZcFB5cjdxWnZHUEszMnNnSmE4aFo3UitGcmVDMm55ek95MTkxCisxNkJ2aVRCblVvN2Y0cWRRaEszb0JmT3J4QVBCWTNabksrOGRCbjR1MHNmVDVGOU5sTVZidHowM1pZZU8vTGs3CitZckZTWFVRZzB1M05uRGppVE5uM2xldmJadVg1RFpxUHBxbkRZN0MyZlhxUUwyRVYvTmErZjNaSjJLRHQyT0o5CitNck9RL0FnQ1pPN211Y2V3bTY2UHQ4bzlaYWlwZStRdU8rSEltRmRMQ1VVU0JNNUlJZXJIcVhZRTA4eUVxTWNKCityVU8zVzUrWHg1eFBRYmE3RDVlbkg3UXN5aU1UV0toemV2VDVoY2Nyc1BBRFRxelFqY014c3lHSk4xYTRnK0tpCitYZStaTlAvbSsrQTF2OWFSc2FIUTR0VFNZaE5kUEtnaUw1c1QzY2tEWmpIYXh5Y2dqUE50c1JqQjVTa2p5Wlk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLRVlJRCA2QjI3ODA4MDBBOTQxQ0I0N0VGQkNBQkREOEQxRjAxRDUyOUJGMzZDCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXVpREppaFAxakJKOFFBQUFBQUM2REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRFl4T0RFNU1UWXpObG9YRFRJMU1EWXhPREU1TVRZek5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFZOVVRTMUxSVmxKUkMwMlFqSTNPREE0TURCQk9UUXhRMEkwTjBWR1FrTkJRa1JFT0VReFJqQXhSRFV5T1VKRworTXpaRE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBc21pdFpPQ3dBY0xIWGpEMQorTkdvSU4vcXFxTmZBSUo4amZ5S25CY1grNFE4Ty83TlpWZlN3RUFhaXNLQ0RCUnVCTzBHV1o3UHJ4ZGNHV21OOQorV1ZpSllIdThMK2NUWmRkRlV4UEJkQ0lPQ3JsUjVubEZhbm9rY3dzRHdVaXJBWkJ1VG5wQ1ZGSVlaRUZ1RlgwNworQllFeWxhREJ4OGNNeXUwNjA1cUYzQ1I2OWRaVXBOYy8vbnlrelNsTUduWE9XTTFhSHBCa1docFJGd2FZNXpudQorSjYvUHhvTFRjUkdCeFh5ZW8xUzRydjYrb0NRWTlDTzQvQXdEcFBya1lGMk9lbjFDVVRSUkZLeDZCK3JGMnlVdAorcnN3dmRJRWorWUEwanhGeEpUMVIvaFU1dnNBQ1EydnVlemgrWWRTSENiSGZsWHJhT0lDb1ppUFFwSnptWS9yNgorSFE2NlczMXZRNFpHK0FjTVNiWWpVSWpwSEczcGo2cHQ5dkVVWmFiZUliRVVNVCtJRXRMNStmQ2xXcVN0SlhVMworQWxmdEt3Q3NTUVY4cTkxS0xHY3lEam1WdG95YlBLSjd3TEV5ZzNGeS85YUV5Q3d3Rnk3dUlxWlYwcnp2ZzNYNgoraHFKSUhnQU12Wit4TTZSWXlMNGhJcTV6UjZ4cjBGNUc4TGVaK0JaS3dEREVLRWhCTlhnK3BRWGdScGFYTjJVcAorUWlzbitPZG9LelQzbytGZTFibFlVV29MZXZFeStUSDg1ejBjZm5GMjczdUxUSHhrQldoelY2c0UveUxGcmpRTAorWDJDcU0raGRxMGtPTXJUeE5FZG9sOTg3SXRRNElTYVRXbGNxUVo1VVhUZlZOdFlkSGQ5NjJSdnB1cmxQbWI2MAorcno5aS92elp2NXJvOXBqY1hId2Y4ejluL0djQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkdxSlZzK0VFTUhMQUlCaworcFFkWHVNSnZrSm52TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFTQVBSNWdLZHlxdW80SDNVV2JnMlhtVUpUT01Yc0ZJenJnTk5JOXl6NjFDZQorcU5jSHFuUFVwTkkwd1hPTnpyZTFpWnVtMStRQU14WWlFYk5wMjBHQU42QTRtdjJ5UFFLRkVUSmtyRU9JcWhIKwordjVBTUZqeUYrWm9HU3JyT20zUHNEOWl3bndtR3RzZ1RyK050SFJHamNFeXpTbnB2MmtBcVprVm5JWUtQNnd6UgoraGZHSHlMd2RZQ3dXWGc4eUN1R1VWa2tKV3NwUlhPUlduazRuMnljTDVFNW5YRS9SK0JaRWRHSXY2bHBESzZ0LworbGdwUmtHQVNKZ29RZUhtd1hHZFdNY0VWVW1SQXRvcmpZdjVMUEZVT3hLcUVCdHc0QmJNbHZMbjdSSU1CSkNPQQorVzFRd0l4MWowZmJyZFN2MUJtSHRZWFNHNDNwcHFrSmNMd0V5TUVBRm1Za0JRdWdjR0xMSkZXcExQaVZ0bmVTSQorVnpndklwQnQ0STNOZDI3SkNoL1dCTlMxQVBseUNpSVRQV1lnME5ob2hhZ3R2Zm8xNldqT0d1bUlveW1Id1NHMQorQ3NPWTY1b0UyKzFXLzFrQStmMGltbTlzTlFDNmRLVE5XNkQzdzNhMDhEdEF4RzRZY1hRWmZsY2wvUXRZaWlLYQorSUJPbk9kSUtRT0tCTUxRV2srVkJycTh0bS9TMGFmdDR4Nm1YT0p2WXBqNFNtMHVxYzVVQmFnUldxMk5sdzE1ZgoraUNMZVByOHI4RFpJQklTNXN5Sm93bjZjZ2pnZXIwV0kwN1pJdE5zM1RnY2g5NVBEc1p5c0FKTU85SVN0ZFlVSgorSTJ1ZDV3ZStIOGhLWENJVElhbDA3NzFDWWF5c0d6TzA2THloa2l4bjhpbEFHejNsc0YrN2JOdmRYdmp2T3dBPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBTVE0gS0VZSUQgOURBNUM3MkNBMDBCRTE0Qjg1QjNFNTM1QzhCMDdDODNFODVCREZGNgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF1cVV5TW03UnhKU05nQUFBQUFDNmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEl3TURZeE9ERTVNVFl6T0ZvWERUSTFNRFl4T0RFNU1UWXpPRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xWTlVUUzFMUlZsSlJDMDVSRUUxUXpjeVEwRXdNRUpGTVRSQ09EVkNNMFUxTXpWRE9FSXdOME00TTBVNE5VSkUKK1JrWTJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXFjVmNZQytxL2NaZEhCb0cKK3UycDR2S0hZOCtrekU1aWluT3pnaHhoL29GcW0zaFdLZTJkS2tSazAwakg3UCsrNzFrUjIyaE9qaWVhbDIyVHIKK3BFQnBtTk84OElkczMrWVdWaW9xUVhSdjIzZGFLNUM2bk0rQ05FN3kwTzdkY2p4MjVXRENkRWkzRy9zRWdTdGIKK1NGcU9vVWhON0JwODllRFlZV0VlcTFnNTJ6ZlQwMkxIcWlJd2hqMy9RV0l5eHg4N3V6WW00REttdS9FSzNhekQKK0VOWE5KcjhxaTl0S29ObHJSaHAxQlo1dnNjSWhOQ1VtZmoxbis0bVN1b0pnV1ZjMkFHUmIwRHBOcHk1VEVVSnIKK3hwRzUzcGs5ZW4xSUVsNHc4U1hNSFBtcHp5S29iWWdxMzlDTGFLQXZrMmhkOVd1VU9OSlFBcVFFWW1hbmpQOHEKKytFc1A0ZVlBMG02UFlYV0w1dnE1NzM3UlJMREtLeE5tQVBuMEJtb2x3alJVVUlzZUs0NlJBQzQyRERCY0FueEQKK3J0d1paRGp5OHZUYXZqeTBzZFpBNFRRWklDK1Z3L3FnbXVtYlBLSUZ5RCtraXQvREw3Nmxld2RLUk1PK3BVY0YKKzB2ZUd3RXB6SVJaakdPSkVMdUhDcXpMWFQ2cjFnS21WN3NBVHR3a2c5dzlkYXpNY1lDeFJWZGxWUUxVSlFnNVcKKzFyM0h3MUNLZU9DUk9Td0NpZXoreDc3RmZieXZoa25qbTdScC9SSmtFZklhaWVvQ016dDcxNEVUTnJjajg3TmUKK0RwK3pFUGwzZ2I1b3ptbWREdUZUSXRSdExueWVFbE4xM0NlZCsrZmU0dGV5MEtRekJ6anlzU2RldFZtdzZ1VHIKK3JjYmkyL2IxelpreDVpa3ZBMDIzdS8xZlp6Y0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKTEp3ditLTEVQTGg3UDcKK3kyNWthYWhWektZUk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBREI3SkNNRmQ2S1JLQkN2bjF2eFBkczZrekd1Tmp0SmlwMEk3NHliazh3M2kKK0UvK24rbzdzeUxzSXc2a1ZWRXRvbm5KNlNXamJmM2RVZXNDOU9vWVpvNDlIOFlQZlk0NDFqOVpvdy9WUXRnNnoKK0dOdVE0dUFkMFkvNGw2UzFxbnFHRkJXQnJhVkNtY1ZwaUlyWlE0TUo5SmFZOGRHL3VGdmVIamVDTFB0enZ6VnoKK1NJYmthQ3laV2VaUXdHZ0Z4OEw0UXlQYWFqcjkzNDBtbUhnd0gxTXkrM25MZXcxNGYzRHg4b0VuaDNLTXRkQmkKK2E0WU16dkZoVWtjdExmcG1zUzdZcWhDbmlpcmdaL2kyN2czZU5xYjBaUzRON3FESXpyMXZKN1NCSm50eFlCQ1kKK1FHYy9zUnFzNSt6NXBXYlpFUmdLMkF0d3NJNnZ1cnNYWDJNNjNsNE9TL2prMG55T2ZJeWNHQXVna1Qvd1c0OWoKK1k2Y0lBaXZEQ09haVRuNGRkRUoyRFpMZWo1b1c3bWdQWFgxUXBSOWNHNml2eDZCaXNhRlpHd3ZKZHFiV1hIWXQKK25WTE5ORVljSEVnQ0pkTG8rMkVpOUJaNUNUR21YWkxmdEhxTVROamFLWXNnT0syS0o4Q2FOUlRwRlhFTjNwU0YKK2VDRU84TWNEcURIZmFMVW5tZ3VVcTRWcHZObWFlMm9OZjFaUHBBN053dG1uTGY0R1lOMXk4c1IwTFo3K1VYWGwKK1NGTFJqbS91aXp1dGN3VGtmaVJsbjRPNysrL2ZUaGZ1NFpEYkJqeHdqQXBmdG4rMWVhb3NSL3cxaHJvL2ZJcTQKK01hblhtNUcwTmYxeXN1QitIdzRqZUFacURQSitGR1M0K3ZuNUZ5clJEdUxUKzN5VktEeXRZRTdsd2FCWVRMbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgU1RNIEtFWUlEIEJEOTYzRTlBRDU3NEFBRDk0RkFENkNCRjQxNkREODVCNEE1NTk5NDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdXgreUppRWhic2tQd0FBQUFBQzdEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZek9Wb1hEVEkxTURZeE9ERTVNVFl6T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFJWbEpSQzFDUkRrMk0wVTVRVVExTnpSQlFVUTVORVpCUkRaRFFrWTBNVFpFUkRnMVFqUkJOVFU1CitPVFF5TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF3aDFJSGZ3bzVvcTBtckR5CitmS1E1WlFqV01CcnVCWHpIL0hmdE1uOUtIN3EycG02OHU0cS90d2oxanJINjB6ZmFPV1YzT3lKUVp5emZWWUlOCis0RUVxVHpDTkR1SnN1OElKbW9DUytVNGtPSjFOdkgvOHl1ODZ5NzN2NWk2VEJXYU9TRlBQc0VmamVBZERCSTduCitoeUtFTUV3eE15aDA3aDBtN2pPMzVvZHFnZHJQbTJPK010dmN6cFc5cGV3bTBMMGg0R3hTSzNNZThDQ0FWcjNKCitTM2VKNCtaVXo2UHQwQXNnemxhWVY0Q0gwQVFuNFIrYjdzQnN3b2VQK011VThFaE1GM2NKQVZNcnM0NkJ4d1c1CisxeGVFeTI5QmQwcDVpbmFkUjBoK3A3UG5kb1h4U1g1VDQvOHZZQ0xHTEZvL3BHSS96aXVqR3RGT3p1cEwyRG5wCit0UTk1QXJhWlphMWpyRERiUnRkK2toOUFRNks5UGU3UU00ekNWeHFvSm1YRnJLWjdkWDlVTVQ5SllxaXBNL3djCitiY05Wc2F0QzdXOUJUMDcycXVxM3JxRkx2YVMrZVFLSU9VdEVSbm9neTg0UkhzczhENGJkT2tsQW1ycDFlUTRTCis1aHFGbjZuTTk1aEVlNXpmODRudDhBdWlhc3NEMEtDWmxWbURIYjJ0M1FiekVzNlN5QlprSzJmdXdmNyt4ZkJsCis2YjhsbGxnUE1zMFdvaFY2d09sVkUwdGZOOEZTc3JNV3BBbW1LMkpNVkRKakxTQXlVSHNJSUJ4dzJpRTRQMWUyCitoMzJzS3NoRi9QbStFSit4M1A3REw0OVZ2VzcxQ0IzV0lQRmR3ZDlzQnQ1Wnc1MVc4SVNZUllPcHdZTGRCdm9yCitGeHNOMlBoN0lXMXpvZHpDaGM3dG5IQzlsQ3NDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUC93VnVlaHc5c3dSUTdoCisrRjZwL3VFN1VoTGxNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUx0dDlVL1VDRVpTWmFwZVJkYWFtN09UQysxOEl3b2NYQjhleGZJeStyMmh6Cit6d0l1aiszYzdLV2tTaXVmZ1dUR1lIVGwyeGtCZEpvOTRRWUpRTXpEdFdMTDR4SkYvSFdycFBEODkwU3grcXpwCitGNVNkOXpOVlBkQnlMWnJsZmZJOVd2VkN6VCtTWk9kWnJKZW9xSzZOWURzNWNmbnNwMFMvaHZjZFI1Y3RMLzUzCitDdE5iZGd5dXdSRVJha1RwV3dPYVUwaXkzbzdtZWNGenJlTG1GTDc0eEQ0WWFIYXA0ZVR0TEw3NzQvSDVtbUVECitzVUtNZE04dXpwVll2aWNJTVpPa1lmd1lDcVFMeGFZdWpVdmZjYXRzNXFHb3IxdnlDbWE1dXppelpMaG56VzJ4CitDaGovM3p3b2FyRXJES0lyYm1Sa2M2c2t4ZW9TOWJxNWRic3Q2d0dYWnhXdEZGdHhUcWdsb1pQR2t5RDBBMTVDCitOU3RLbEZIZ2dES1dCdFB4dzVyRVR1OEs0bG9rUFJIL0Rac2lEYVppNTVpSE4zOFpuaUJOUDQrclNtcXlEaFJMCis5Q3I4ODQ4bDZsb2Z6cUFvejJ6b3A0VGk3NnlweWdYa1MwVklWcG5QVHB1VVVwcEdqMThTLzRReVpzbkNiQXZICisrb3lmdDdPbVBoK3RReHJGSk9DMzY3aTRHaGVCeU9iVGloR0M1ZW0vOTQ3ZUxhakgxekhQL09iRlRwQ1dvTkJzCitNeFc0YWV1dlBkNEM5TXBjdTNaeTB5R2dsNm9naEVTQjlHZnd6SlBnZjB5b3FiWEpmQ1lNZjVEYTNIOUlVODVqCisxcFRiMW9JRVZsdEI0eUZrRkZoRnZCWEVKRDVGZWpVQWczKzhOY1NYdG1GVGJtZGtwVUJEUkU2Q2ppbUtISWc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLRVlJRCBDRjIzRTU5NTI2RTQ0NkMzRkU0RjEzRUI2ODZGNjI0RDcwNTMwNUYyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQVJrYThLMElYQlF3RUFBQUFBQUJHVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTNNRE13TVRFNE1qVTBObG9YRFRJNU1USXpNVEU0TWpVME5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFZOVVRTMUxSVmxKUkMxRFJqSXpSVFU1TlRJMlJUUTBOa016UmtVMFJqRXpSVUkyT0RaR05qSTBSRGN3TlRNdworTlVZeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeFlYTlpDcCtacXNBUHlIUAorZEJKWTJ2OE01MTNoRGpxMCtNSTVwTjgrMDZkQ214M3JTTThSR1ZwU0JpQWoxR0JPZ05KZ01xZ2xxb0Z0cy94WgorTHRkdkpKcVN3NTUzUmF5cGJ1S1VEVDhrUVR1TFdSOFZJQTl4NFVLZUFtRE9NTDE1SzFoSUNFaDlMNzhJV1JwegorWmU0VDF4Nkd6UFByc3pReDZ6K2NMaXJhK0tvWVFqVE1zcnhVOWVxSy9pL1JoRHk4UTZGSE9IK0E0djY2OWs1aQorOUxkWFR2cWdKRkw3VnpMM1VadGhwdGkzbGptdThiY25Xa3FKcjExYy9yRkx0V3F0TGxQZlhTeTdDMG5mL2k0MwordmJIRVc5aCsyYUJRZm1CYUtOSE81UnFmK2FWdEhzdU91ZGkvWXdOMjNNMzRjMGFqZ3kxVjFMWUZRNU01cVNrcworVlRSSTdRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVS3gvUTJGUFUvOG1SemVaY0JhZ2s2UnlXeVUwd0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUJJdlJWVQorRllPaEkrQVNvMXRrT08zaGI3ZENERytaL29UcEs1UWIrUm95eHl0MjB3SnpJTm9iamRSUFBxQ3hBL2s1dnJ3TworVHhmaGdJOXBYYXpTQTVjWnZaYVM1NXVJVTRJU0plNC9hQWNuZDBldmhHdzJva0FLa1M2eUpKRTljQkVqK092egorTVZHWmFmZnJTbzM5VXBDNDVUVHN2eTAza2V2U0dzTXFzYkZkRVZqdFFESWg3NmxXQVEwSnVsYXYzc3NKTjZ3bAorQXNHaGFOS3c1WTNubjBGK2VQeWlzVFNtcCtqd1lqNmcyN1c3VmNtdU8rVXNkZHI2M0FrU3dXS3NBT1RoU2d6dQorbGd0a1EwK0ZtYUVPdkV6d2tvRnVJNmQ1YmUrUk5pNlc3bC9MRUhhZEJTNm9sUUdibXdnL2lPL202TEV0SlRhbgorUmRQQlZjdTBEZi9hcW5rTEtPdzhnNEk1SGZIaFlYWm5idEdLL3FNanB0SzZRRjU0a1o3VlNYbENKejBTQ1daUQorS1M2dDdXckdacWVsMlYwMm82WTJoMUoyakh4bWd0MXZHWHp4Wk5xMWtuQmZYYjE5eU4yd2d1YkVqWVFROTIvMQoraGxaN2Fwd0hNdjNzc0NzTUpXSU5jVGhkbjdnTy9MWjdqejVnZXpqd1RSWW1mTFFVd1dKRUpMUmdWRWdlRWU4YQoreXNBVWtpRHBZTm90Rm9BU1pXb3FHeDVzK1VRQnFVRG9sZTlvaTVHN0NZdnZ1SjkrSUJneWJUV2phY0R6TkR2dQorMnM1ZXRWZVVTdHc1czVBRm0vNERvVWdseTE1OWdFT1huVWxiYzBJZmNJQU1BZzhkdzFuYnZYcCtKTnlxbU9nNgorYWdBNm1wdURHTmRZYXJmQ3pFME9CbGdSaHJJd3BZU0Z2YkZzWGc9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBTVE0gS0VZSUQgQ0YyM0U1OTUyNkU0NDZDM0ZFNEYxM0VCNjg2RjYyNEQ3MDUzMDVGMiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcTZzeGJEUCt4Smlzd0FBQUFBQ3JqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME9Wb1hEVEkxTURNeU1USXdNekEwT1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFJWbEpSQzFEUmpJelJUVTVOVEkyUlRRME5rTXpSa1UwUmpFelJVSTJPRFpHTmpJMFJEY3dOVE13CitOVVl5TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFpSGRrUXNpVGVrY2VuZTR6CisrbkZ3MzhQOU1HVXNDR0ExM3dPWC9XNlAwSEJodDF5akpuaXg5NUZlaUsvZDJZeVF2OENxWkNHeEpqUG5mV0kwCitFaFIvL2d4ZHJSTytMQ1VlREVSSUJWZDJ1VnNmTG9heG5EYTRRMXdrVVZOWXVTUS95NGJ2d1dsNXFnZ1VOeDBVCitRS3dzY3F4UUw5VHNqVllGVGNZRFFvRXZVTkhpc2VyYkl4SWQ2b3pEeGx4MzU1QlA3QjZTMk1ndGRsSndFdlBICitwNDJNSVpHeTlJME12U3l3cDNSeWFUNk1xdTVOenV3ZDJmc3lzSm9IU242dWtOTnVnbE1vVXFoKzJaYmM3enVZCitrMXdXcWRUUTZsOWpCclMxSEJRMURJUE12U1JoUy8wWVY2eXpvZmZ3N1lESHJKZTN4SnJ5SkhQZkhJemo2Rm9vCisycFUyR2Y4cW8yYm5GaUhkZnlsRnVHZzVuZzVQOWI1UHZwc0NhYXE4Tk9qbkZCVXdzYnNCUXBHRWdISG5yaTdhCitBVUV4azhyM21sOFNkYkFGWStzL2dINW1nOGt2MjV2dzVNbnk4b1p4WDgzTnZHclBCYWhpTENVZHQzUGV4NUF3CitqZ0tIMG0rSHpGS1d5MWZrTXIvSlNGV1lTL0p4ZFRIbGttVGFnUkxBMU9lSWtFek5tb0VUYXVXWEVuVldacjBBCitNYmYzdU5LaUxLV1Vsc3M3cnNFUm9tMXJQUG5zNmh4WHlwbkdjSFFWQU9CNHhTU0hPNEFOQ2pMZE9CZktXd1RxCitEdFRiTmppNkllRjZKWkN5clE2eEM4QXBMcHFGQmFmb2E3cmVURERDZHBpWDlXOVZHQUJram5lZGI0SUVuUEJwCitQK1dhNHRDanJVNzJQQnZaZWpLZGg1VTlnSDBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGT1VTenZuMUp2M3FPVzNDCiswaVlKRFFYSEJBSXRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWtncEg1c1RRODVFN2dYVHFyVmMvMW5YclF4S2o3MDFka3lmSW5ZWC9wVC9MCitmbUxnRzdyNHlOOGdVbnMxZDNMNTlIaWVIVFlZbG9laE1GM2dLamZEUGFXNTVJWEtodjU0dmRCVGZSK3NsdHVUCisvV3ptR0F6R0pQY29veWM1MEJnV1JDRzdNMFVTczJoNllidFVYQ1VqNklSN2t0RFd3eUMrb2VCSnI4aU9qZTYxCitacXhXUGdaTFBrcnBXOWlTWDV4bDhsUGdVb1o5dDRDNEx2aUNBZ1RuekE4bUgrd3FaZmVrdjNDWCtad0x1eE5ICitqeTR1QXJ3elpIRVI0cXh5bzFxNE9yeUkrNWdrUU9GbWtFS3E1UHhRekhxcTJndWZxZDYwVzdCMU1iMXh3UVBlCitqTTlYbE5BL1dCR1V3ZzRmclkyU0lpcGN0UCtyek1GMFNod0hhYnVUK1llclVhQzUxd2tjOXZVR3FjZlVtVTFPCitkUEpBOWtuZDZZTkRMNW10T0loTTYyRE5QRFJiWldkNzB3K1Y0MG9tMmtCTTNMY2VJc2p1eTd6SitTcXpYL1daCitoZVlOSkgvUWNBNzhjRzM0Ynk5dCtRYjUvMWRnZUZaWDlMWWFKbUFwYXdFR2UyNmdmYlJQeVJlVER6eUlXTEwyCitkZGxRTUdCRG1NSWhxZytiVE9GZkdmZ2Yzd0lPUUpRWXpYYW1Zc1J1T2ltYzY5OWJBLzlhellmYWRja0h5c05PCitCS0w3YWZQYXNNajh2SGdHd3c5SWlob0VrcnlnNkFMMFNraWFjS0d6ZWwxYmoxOFFqTHlDTUhkcktwUXJXSTR4CisyR3drdnNmbFJIb3FkNUpmWkZuSkV6RTN2NVVZTk9aV1pEMXNnUlNXTk50YTRNNEJ5bnc1eHZsb2w1a0JwcWs9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLRVlJRCBGM0M5MTU3NEE2RTc3M0ZGMTNCRjBDNkJBRDdBN0I2NUNGMUM3ODIwIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFzTXVRWE1QM1V6a2J3QUFBQUFDd3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURVd09ERTNOVGMxTkZvWERUSTFNRFV3T0RFM05UYzFORm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xWTlVUUzFMUlZsSlJDMUdNME01TVRVM05FRTJSVGMzTTBaR01UTkNSakJETmtKQlJEZEJOMEkyTlVOR01VTTMKK09ESXdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXQ0eGZLQzJYZm1LbGpyS00KK1VHa2paUTB3dTJiSy9YeWRibSs0ekRqSmhCM3FHdXRodjB1QlB0ekxHRG8zTGlKeSt3a0NObUVnTWtxY0hyVmEKK0c1eDJoRlQxbkJ2WCtYREU1YTdHYWVOU1pUd2swRzlvSUgyN2FUM2ljb3pScG9oSHpLWnVBQ2Y0cjZFSnJ1M0QKK0s2M211ZmpVWDNxdzBLckZUbTFZQ09WSGR5MEJ0U1JhV1FJUTNIMHlCekZxRWpKRmxsSVkxY3NiMTJBcjk1UW8KKy9Eb1JHS0lhMHdPWG9pY2VQZHptOWVEemRIMW5rcmgweUxSY0Vyd29Db01TNFlyeHM3VHE3VmRoOVdVeG9jTE4KKzJXbmVuUm9qZGZqMXpWekZjd0pRdlh6TzM4Q1NqcnBUSG9KN3VTcFBMaEJUN2grTG02SURpUTExUXZvdUZLSG0KKzFzR2oydXJaYkhtZGJEUnpTeUlmNjVzd0tzUUNpWkovWGlWZ3JMUmE3bXdyWVhLUjNxOXQwTWJncEMxWktYOWgKK2RhTVlJMktzWmgrUnNmaDFrMlo4SHIyMDNCZmFlRzRZMmpISWlmTWlISk9BSjVHWndWVjUwdEVLNnRLUWU2MWkKK3dZMHhxY2FFS1ppRERzdWlxUFJncDFGeGZ4YkYzaDZta2ZQREgwUi9vb3B6V3MrVjh4YXFNSXlzck1iS08wbC8KK0NtOURaT3NhcDBrNU1KMGtNemdDdHF0MDE2V1JQYVc0aHBGcFBZMCthOXEwUE1RS0ZGOGdMMVczbnd4NXJrc1YKK1psdUMxa25UUDVxT3kySmo5NXJES0IycWlLOW5DS1d0Yk9PRUdwLzFvbk82VlgxK1pDRzhST1lVQ0lxWXRWZnYKK3psUUxiRTVqcWgxTElidzBEaXVld2wycFdSOENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZBMEZyMHJDN1hRYXJEWUMKK0lLRTNPb0NYTGxicU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBbWxSNDVUUDNORWV1YTZYMVlpdE8rUW55S2poWlhITUlUUjRkNzQzNnFWdTIKK3EvTmo3MTNWWUt4LzJyanBkVXRaRFRlVGh3L1BWeGxqbklVQWI1ZnI3R1F1WjV0cFpMa3hRcWE5VktMenJ4WUgKKzMrWVVHaE8xZ2l6L2xZNXk0ZmhPZ0hLK29NdWtZb2FFTy8wVFIzNVlKeW1CZXJ6WjV6d1pvWWZGbXhzTWxubkwKK0Y2TDNSSkZaMGMrWnpsVUpDYStERWRQOU8wdmlPdnJJT2xZa3BrbVRSL0NNbStocEZZT3Z2QmVQQmVYdEhVcU4KK20zbVhtQitTMFVSRkdhNWVHVjB1dzhyOHMwRS8rajZlQ2pkV0I0ZkNXOXZ6dFpKWmtBZmdTcVhycCtEMHdlNG0KK29aMXZ5eFp4RTRwam1rQkVkOG93MG1NUWYrc0RMZUtCL3hUUlRzUk1kNlBxaXF2S29LbmQrcUtRbjYzV2RhcmQKK3NWQXlFTVZ0YUFaOHowQ1VacUdGbUlNZGl4eE1YQlduc05hZXJackZOTnN6Q2NpRTJjUElFTk9acGsweFlaNjQKK0ZnRUJUSDBLb1RYL0RPQ1RyMWptbmdyRzZocWNyU1BVUHlQSVVTQm15SUZRUXlEK0NpajJzT0pRbWJkcXJ5TTAKK3hVM3FWTXIvNDN5NUtUU0xTRzVVa1FhY2JVNUhhVU1GS1pHZzdtRmdNcGN6TDNGSGVYTUNFQXMzK3dXOTMvSTQKK1REK3V2OTNjWDJSYlhEandCcHhLTm96T0d3Y1cxN0ZBT2I2WDEyYTdlUzNhT2RQbUxXSXlWbkNQRE9mZ2c3U3oKK2RQYTFSVDIxVW1DYThsUTQvVTMxQ3hERWJtSGFOd3ZmcDg3ai9rUDBUejgxNWwvTDhIT1AwOEkxb1Bybloxbz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgU1RNIEtFWUlEIEZCMTdENzBENzM0ODcwRTkxOUM0RThFNjAzOTc1RTY2NEUwRTQzREUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdTJUelVUTURvOEgwUUFBQUFBQzdUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRJd01EWXhPREU1TVRZME1Gb1hEVEkxTURZeE9ERTVNVFkwTUZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFJWbEpSQzFHUWpFM1JEY3dSRGN6TkRnM01FVTVNVGxETkVVNFJUWXdNemszTlVVMk5qUkZNRVUwCitNMFJGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFucmRVSEFtY3ZtR1creXZkCitseHJMWUgxYWJQTDYxM2E2WFNScTFsc2ZBR054VEo4RlN4UGFtY3MzRjFBa0dsWHZNMm5tek1XcW1kNlowN3dYCithWWVGci9MUDFkRGpwYy9Ka2hsTitvNFI2RkVXRy9nR1YwVzlZdVRDWEFPMmovcjFoTmpTMlM5dCt4WWhoMk1yCitQMlo5dlhHaTZoaGgzWUVwOG5qUnhJM2pnOWdIcW15T0R2bFFteWtTbUpWdVJmN3dJdm83UTRsbk5xWFBnRE9CCitvYy80WHU1UDBtSTlTYUxoVHBqck1wWHA0cnVzYVVaNW5EUFkxbzJCem44US85YTNrbnFoUFVGMVNQNW1iRlA3CitmM2JRTit6RGxlelNHam5Iazc2V0QrdjBuK3BZdTQ5V2VUNS9PbExRTFFLNFFmMlBjTEtMWGx2aFBWcXZNQnZJCitrVEY1MVF1Wk1yN1RCZ3VlV1FoQUEzdUY5ZGxWQmVZQitmaWQ0NWFjNlp2N2R2aEY1d2FTN1RWZlJGY1lpN1djCit3MFFqYUNEb2I4RDNRNzZOVEZ0ZW5YZnZ0WDRqVm9RSW9uQng2cnJvdDZQMW1lQ1pOY3hTUnNHT0d6bkJKbnFNCitIVnFpMzVnWVp0c2FxbkY1a1Q4cWFjRUl3Wi9WMWtMcVFXcHVaRlVDYVBzYUJxbkhqYkJ0T25JK0Z1cUk5MVVICitqUTdMUTRzL215OERKL09LQXNjL3dNMHhqM2tzZUQrSUM4WGRGaFo3dG5aWStuL1dkSWZUajU0RHlvT3hmNE1KCitOcHJKT0xDNllTOUd0ZXFiNGVQeFZPbGZQcnVUaVVaR3pld2RqUktqckt3V0p5RzdPbG92RDFEK2d6NlpFVU9TCitlV3BnRkJYaGFkUkNvamFYRHFXdmpZWGY1RGNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQVkySVZWKzBHakRwaEEzCiszb1hFZ1ZoNnlOTlBNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVNtUmtwQnltZ3FtaDh0U1hKTkdtM29ZVm5oR1V5cm1ELzgzN2JON3ZsN1d3Cis0TjVTdE9qUHNNL2JkaWRCREUrWjlDdGlrN1o3VFVyN2lwd1ZWUjYxWUR0T1lXZEppSm5VWXpuWWxVNnZkdWhrCitHTnFCY25ydE1CaHRFVzREYjloQ09kSlBRaEpFUFBNRFdGNDYzN0grTTdWVEVwWStISHdZU3dBTGVFVUZyQUplCitFTkxqT2puczh3QVpKQWEzOFE4a3J0UW5mTnVrYmdkSE5FU2FPakY0aFVMbVQyMkcyMksvYjkvV1duTGttcHBBCis2QVRQci90TkhJYVA5eG9ZdTB0SW8rUVRMaU9mbnlqeGxyelU5RGU0RDYxallVMWxmOXB6U0t6Tm9kb2pIS0NTCitGSmdnM0doeGh0MXo4WGcvUmJaMzZ3TUJ4UlBPZ0syV29pUTVoSnFFSTJOU0k3RjNrV1E0SWRjdmVHUVY0N0lZCitrbW5IaS8rcEZLemV1QXpURyt0TDN6Y1VqQVVoZG5NeGJJa0RzYkIwVzN1ZUQ0dWNEcUg0VE9EZ3hOR09TS24xCitybzJiL3BhNzhhSHFDV2ZPTjJKVVRKN0xzNHJsSElmbHF2M2NCSWVYWitQM1FMUWtFVmgvOG1LcEpzK1BzRWtNCit4UGtta2ljTURuak85dFJTV1ljb1Zndmxsb3hJTkdjZ2RhR1RHNGEwUXBwUk1XQ3RRalV5Snpxa2RheXpxUTdCCitFM1MwQzhDbmdqTld5ZTV0NEo2Y2pBY3lJdzNxWFd2bm5vcktBbUNub0lwOUFUZDluMDJyMkZpYXRDSlZIRHVXCis4ZGdScDZjV1kyK2dFK2ZTRkdzMW9LRUZaNGpmRmozd0VDRDZOYUVNQ0RvOXlrY1BXUHAyRElrbVVrQ05ZTW89CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFNUTSBLZXlJZCAwMDU2QTYxMEQ1M0QxQjNCNkRCRDE0MDk0QjJEQ0U3RTFGNzU2RUQwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZEQ0NBOUNnQXdJQkFnSVRNd0FBQURUNE4vK3Q1cldtbXdBQUFBQUFOREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTBNVEl4T1RFNE5URTFPVm9YRFRJNU1USXhPVEU0TlRFMU9Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFZOVVRTMUxaWGxKWkMwd01EVTJRVFl4TUVRMU0wUXhRak5DTmtSQ1JERTBNRGswUWpKRVEwVTNSVEZHTnpVMgorUlVRd01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBc3dlZU1xMWxrRkFkaUhFbAorbkFxbXlpaUphVUFxcFdkY1g5VUVFTEpTYUNxUWpGVzQvK3ViZXhGUzFnMzRxWGlITzhFbzBmSXRqNkRNT1ZySAorQm5SZ2NTT01rWUdTRitmOVB6bDJpa0lTZzhBZEdyMzNicjNiMHA0VmxabDBYdVp1dGp2OE9BNFBNRU1BSTNDZworbXM3dDlEdFJjSjNqUzEvTXZkNGZMZDJkWXVaZGlFSko4V0QzdUVjSnBUdU41UkxUdDduOHliZ1dUL1NaTVd0RAorVC8rVitadkUxZkJlQzNYcXlHRFA5dm94RGR6cXBzZG5QRzJQaTNacnFhb3ZFYk1XMnZJcXVNaGdBdmJvNGhEZworYVpacFNaQkZ5RTRIbWxQa3VraldLUmozMmFMQ1p2S3Y4NTNER2ZTS1NRYmdIZEFkSkFTa2xUVys3RUpINGE2MworamU4aHZRSURBUUFCbzRJQml6Q0NBWWN3Q3dZRFZSMFBCQVFEQWdHR01Cc0dBMVVkSlFRVU1CSUdDU3NHQVFRQgorZ2pjVkpBWUZaNEVGQ0FNd0ZnWURWUjBnQkE4d0RUQUxCZ2tyQmdFRUFZSTNGUjh3RWdZRFZSMFRBUUgvQkFndworQmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVaUFZbmM5YUFnTWg2ZEtnS1JBUjNKZUJuNkM0d0h3WURWUjBqQkJndworRm9BVWVvd0t6aTlJWWhmaWxOR3VWY0ZTN0hGMHBGWXdjQVlEVlIwZkJHa3daekJsb0dPZ1lZWmZhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqY213dlRXbGpjbTl6YjJaMEpUSXdWRkJOSlRJdworVW05dmRDVXlNRU5sY25ScFptbGpZWFJsSlRJd1FYVjBhRzl5YVhSNUpUSXdNakF4TkM1amNtd3dmUVlJS3dZQgorQlFVSEFRRUVjVEJ2TUcwR0NDc0dBUVVGQnpBQ2htRm9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdgorY0d0cGIzQnpMMk5sY25SekwwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMAorWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSjBNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUNBUUNIM1FBVAordWRXdE1vTzBsK3pVTkF4ZTN3aW5iOGpLT2VLWDZ2eEVnRFdxcjdKNGtOTmRnS1luNkx3SDg5eGlrMTRGNnRHRAoraFgyd0Z6UVlIL2lka0FKVXFzNWVrQVdtbTdXRExjdnJyY1QxcVR0RjZvclBreGJreWpUMWlvVXBwWlJBKzZuYQorak1kVTRPZEVIY2pnanBmYTFibDgrd3R3akVBVDdMQkVZSmNPdW96M2tmMXdsMWE4K1RmL3ZDVnI3THNGanNVVAorMUdOS1BSbmdQblkxM2srVEtTVEZxNzI0VnpGSi9nMFA2RkJob2FYMWFlRlR6MXovNWxJUENzQThzcFBSTkxYSQorcnpLbDdFK2RBMk8xSi9pVmJlRVY5c2lxcTM2WWdpU2kyQm9ucE9VdS9CejhmZTdRaVl5QzE1SFh4MkdEaGQ4cAorcXowMG91cnluT1lCdCtDczBzaXg3QkhRUHZKOGdjb0s4cElCVzBlNDN0azd6WFJIODBtRGZtR0ZZeFhXSEtqeAorQWZ2bXNaMkRkODFRY29UTnpaeDdCNndHemQvUWd2djBrWHRCbGVXclUvd2dpWGdSbnlFUmM0NzdCRkZXMU5TTgorQTh1ZWJJc04rWmFEQ05vRlAvT3pocS9BVmg4bFYrMmNKQ0FMbkZaRmd1VDJyRzJYMHRCVDZQNzZkUlg1SWgvVworS2hTdUhHT1czRE5DZ1d0S0Z6eGJLVVNmME9mMUg4anZRUUkvUjN0OUEvMGM5NlVEWWNhV2NNQjJ4bW82N1o1eAordWdoWk44U3NFem9QK2RGbVJLQWlwOGdRNm1pcFEzcFJoelkrUG13bURydjRPRlBhb0dEYllRc2wxemNzT2t0eAord2IrTHl1S2FCejdMSDNvNThzRUVBS1pXQWZCSWE1dXArNloreVE9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBTVE0gS2V5SWQgNTcxZjgwNmI0N2NjZTc5YmZhMzU5NDdjZWQ4OGI4ZDEwMDVhZTA5ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUY2RENDQTlDZ0F3SUJBZ0lUTXdBQUFEZFNVQmJQTU8vM2NnQUFBQUFBTnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEUwTVRJeE9URTROVEl4TmxvWERUSTVNVEl4T1RFNE5USXhObG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xWTlVUUzFMWlhsSlpDMDFOekZtT0RBMllqUTNZMk5sTnpsaVptRXpOVGswTjJObFpEZzRZamhrTVRBd05XRmwKK01EbGxNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW56QnlZNkZmTjlKd0w4QW0KK0JtSFB5dzdaSTMva1RQS0pleDBIZ1k0UzZkYTAvS1VXaytFcllKRDMwNFVMdENMbjZuTGVyTW5ublRvQ09aNjgKK1MremJHVjU4d3dIUWkwOUlXdUZlNENSajB3KzZRbnRYam9NTjB2bzhEWlo3RTE4M2hrVENYTnQwU0pVRTVZNzQKK2Vmd0V0U2J4WTZUaXlHMC9Xa3NiRWFmZHRjREQyeXNSY0dxVWdZOXdCeGVNRmxzQ1JRTmtzQjlaSTBiWG9HMG4KK0h3WHdveFlrL2VINW9CcXBmSElFZzdQZ1Q5bGN3cWc0MTlObFV1dXNVWWhLK1Y3K29BQ3hybG1hbGhJRDRqZUsKK2o3aE9vMEpsQ0dsSFg0N01mSm1XakRlS1FpUUFPc1NkZW5IYUtZbzdDS2ZWdmJaMVFlVGJGQjg2S3BsSWlQci8KK1dsdmFkd0lEQVFBQm80SUJpekNDQVljd0N3WURWUjBQQkFRREFnR0dNQnNHQTFVZEpRUVVNQklHQ1NzR0FRUUIKK2dqY1ZKQVlGWjRFRkNBTXdGZ1lEVlIwZ0JBOHdEVEFMQmdrckJnRUVBWUkzRlI4d0VnWURWUjBUQVFIL0JBZ3cKK0JnRUIvd0lCQURBZEJnTlZIUTRFRmdRVUJiNmM3SzBaVDNNZGFQbWs4RE01YnErTjluUXdId1lEVlIwakJCZ3cKK0ZvQVVlb3dLemk5SVloZmlsTkd1VmNGUzdIRjBwRll3Y0FZRFZSMGZCR2t3WnpCbG9HT2dZWVpmYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5amNtd3ZUV2xqY205emIyWjBKVEl3VkZCTkpUSXcKK1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjbXd3ZlFZSUt3WUIKK0JRVUhBUUVFY1RCdk1HMEdDQ3NHQVFVRkJ6QUNobUZvZEhSd09pOHZkM2QzTG0xcFkzSnZjMjltZEM1amIyMHYKK2NHdHBiM0J6TDJObGNuUnpMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjAKK1pTVXlNRUYxZEdodmNtbDBlU1V5TURJd01UUXVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCVEhRTDcKK1E0TWRvall1cElGenFDS2lOMlU5ZHkxTWtuY015M1JvenlnQkNQUE91ZHN6MzBHZFJDeEkxY0xxREk1Nm5BdmEKKzRCbm5HWllLMURYZGhBalA1dHVqcUsyMXUySm04dVQremkvYmpPS2ZCdGwyNlhmb0pRZGkxVzltRHJtbWxJaGwKK1M2Vkd1Uk1zRENxVzdpQmgwcDNjUS9abUJTTG52bnhQYWZZWlZWUVU0N3M2VXlFcVpvd21JVGg3NGVGVVVsVUgKK1dBeFdETlBqYTlTVWxJKzA0ajUvV1Vwb0llZEJ4SVMyNkZxemVGZEJ0VjIzeFR5T3NzNG1pSWExMGVNTmdhTVMKKzVYY05aRnJBb0YxQTk1QmVZdW01TUhRRU5FNXVYaFJpU3A4Q2RBZEdsUi9USEZmbS9Qb2RwN2dnd2c2RU5MRnQKK0YvaTQzb1ZONEJkNnhyWHBjNXZyaWNpUlUybnBWd0FXaE0zSjU5QnpYQUlsT2YyaFY5NEFIODZleEo0b0V1bDQKK1ZOa2Z2NnJrdElzVFgyZjk3SkN0TjgrN3hTa1RCOHR1VjVvc2k5K2d0TFN4dDk1WXNqMmhuZFdwK2pZUkdGNzEKKzBlTmE4NnJuU1ZwdDZyM3ZFNGhNMjgrV3hsUlVlTk9wa2daUWtYNG1Ldk8xbUMyaTFQOSs1SWdCL3h6NHZXalUKK2N6ajcyQmZhOUFEK0prWDFNRGZ1TU5Vb0svYkFkU1pPcUEwaFE1UUlVZXdWU2M0VVl1RHh4QVN4ZVVISGJ3blcKK1RqSVdWb0I4WDZNdHRXZ0NpdHkreFVGdkNLcFJJK0NySXJNRmpOVXJ3WktFdHJqMWsxWlVzUytpQ2txT1ZVODQKK0szeW9mc0VjaUYzUENiQXJQTGFKb2ttMTlHOHhUSWJnYVA2aFhBPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgU1RNIEtleUlkIEYzQzkxNTc0QTZFNzczRkYxM0JGMEM2QkFEN0E3QjY1Q0YxQzc4MjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlGNkRDQ0E5Q2dBd0lCQWdJVE13QUFBRHFrNDVYUkNGQ29kd0FBQUFBQU9qQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFME1USXhPVEU0TlRJek5Gb1hEVEk1TVRJeE9URTROVEl6TkZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVk5VVFMxTFpYbEpaQzFHTTBNNU1UVTNORUUyUlRjM00wWkdNVE5DUmpCRE5rSkJSRGRCTjBJMk5VTkdNVU0zCitPREl3TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF1THozdGw0SVRBakh2UVpLCitJUllTYXQxVDBSTy8yL0c3UXZ0L1lmeFNmWVNnTXdkWC9IVUZEalVSbW00ZUJNVG9MbFBGWEtkaGNpWEFIemswCit5Q0p1ZFJ6ZlRaTlJtSzRVbWRDYWJlTjBIUXdQN2ZZM0VXckNTM0lZQkt2d0NaU1Y2dTlaN2MyczI0ZzMzN04wCithUzF6MXdWdWlnOUFWMTYyZlYyZkVmUFZrOWIwK2lYYWtKTlR3bkdrdTJHUEFyeFBpY01ZTENrTEd3UVNKazdtCitHVDNOeHVwcVpiYTV2TERXckhzek8xK2ZUM2ErUnBQYnExTzdXYlFrbUczdlVMSEVFSUQ3TUtwY3VRbzhwcmxGCitXaGJyZGZtMEdFODYwVVhYYVp1WVA0azU1bHpCRHZEc2hXMmVJRFFFR3FEMWh3ejQwazhQTGFvSkVzREFydkpPCit5bytjNVFJREFRQUJvNElCaXpDQ0FZY3dDd1lEVlIwUEJBUURBZ0dHTUJzR0ExVWRKUVFVTUJJR0NTc0dBUVFCCitnamNWSkFZRlo0RUZDQU13RmdZRFZSMGdCQTh3RFRBTEJna3JCZ0VFQVlJM0ZSOHdFZ1lEVlIwVEFRSC9CQWd3CitCZ0VCL3dJQkFEQWRCZ05WSFE0RUZnUVU2QWoxSGZrelJra3BId2dtc1lBeHI5SURaTEF3SHdZRFZSMGpCQmd3CitGb0FVZW93S3ppOUlZaGZpbE5HdVZjRlM3SEYwcEZZd2NBWURWUjBmQkdrd1p6QmxvR09nWVlaZmFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpjbXd2VFdsamNtOXpiMlowSlRJd1ZGQk5KVEl3CitVbTl2ZENVeU1FTmxjblJwWm1sallYUmxKVEl3UVhWMGFHOXlhWFI1SlRJd01qQXhOQzVqY213d2ZRWUlLd1lCCitCUVVIQVFFRWNUQnZNRzBHQ0NzR0FRVUZCekFDaG1Gb2RIUndPaTh2ZDNkM0xtMXBZM0p2YzI5bWRDNWpiMjB2CitjR3RwYjNCekwyTmxjblJ6TDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwCitaU1V5TUVGMWRHaHZjbWwwZVNVeU1ESXdNVFF1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQXVLamppCisvOUR4N0VoV1FzaU9yQzVVZ0ZMVWxrYVA0enNkZW8zblFwYmVQRkVCRWFJR2lzdzJBSklVbEdIaDZFdjVvT25TCis3ZnUzMjJkRzJvd3p5ZGgxUlhOYlAyaCtSb1BPNEErVlZyN2J6K2E3SFVSbWZGSlVNNHh5Rk1BVnJLUWExL2VaCitaamI0WHVsN2drSDdsZmdxc1Fra2k1aHBDa2lEbGtEL0lKdnhxRGVtY01mdlhoMW9mcUdrRVplRTZCWWtiZ0ZvCitTcHBmdmJSMTVsTFJhaExHV3hpakh5WE1NczA3N3l6MGI3OENLaEp1UWEwdVBGQkl0OE1qMldackN5QkVxb2dPCitsNzhTNmVUZVIzbTh6MnBPTmtvTHhmMHBWTURKTzhSVWFuRHhJZEdTUktYTU94Ymw4VXZMWXZveUgreHlGbmgzCit1b0hSRCs1bmk0UGNMeEE1MUR5QWcxUWI4Mm9vVW0vcmZMQm9IaWJzVUJCQVFUdnBEN0dwcXpPOUJLdWl5WWFjCitTY0k0Qjh6U0dLL0FLUUFHTUpCa1hRY29GaWlCVmkwV3dISHlEU0QyYVlZcHJXRHV1YmNJR0tzWVhPZFlnYlpwCitSUmkrekx6S1J6V2dRL3dxaWtrUHRITThGUVNwTm84dTMwRkNRdkZoZ3B5S2NFMWg5ODU2UytQUEtudXcvVEJLCitoR05xcXVCdVA2K0txanloL0FwYmZKeHFYeGFQcC9GNXpXRWRqMWVrWWZ5bjUzVzNpYWVkOVRKL1pmSWVaTGxsCittY2FKa0tMcW0vbjBraFd1RnZSRjliMjRZcVBkNW54T01GdU0zMGc0U25TaFF2UXd4eTNXWkpsUE82VE9lbUhoCitXN0ZVZXJ6R0NHOVVFamxBWExPcXAxY0RVanNXZG96T1pyaVMyUT09CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIFdFQyBOQU1FSUQgMTlCQ0M4QkY2NkU4RUIzNTc1QzFFODNBREI4RDRFMTYxMkI1NkIwRiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXNUTlpBSkhVemFtU0FBQUFBQUN4REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV3T0RFM05UYzFORm9YRFRJMU1EVXdPREUzTlRjMU5Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFZkRlF5MU9RVTFGU1VRdE1UbENRME00UWtZMk5rVTRSVUl6TlRjMVF6RkZPRE5CUkVJNFJEUkZNVFl4TWtJMQorTmtJd1JqQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUptSHhDYWN1VGtJdjJVSQorYWFPVStaTUtNYnVUbVRiR0VoSDc3S0drVSszQ2hqanROcXB4MkRIdXgvMWJjTEdQRStwYWZRZzFIQVJVZW9MVAoraHpmQWVxelU0akVWU0pKdVRuVTNSalpJWHNrSHBtZ2l3MW1UbW41T25GUGw5T3J3aXA3Qk9KMW5zRlMxdVhUVQorOUJVbUZuMGZpWG9xMGVNcWs0bklMaStycTRGU3NUYW5NaitWbXFjcGNmTm5yb3ZEQ1JoUy80TmxPNWtjV2l6cworQXo4amRDaDFOYnBjSXE5SUxyOWhVdmQrekZ3TTIrU1FnaXI3TUJZVDJtMUZmYStyRVZWbGh1YjM1ejBCUzBlVworTmcxeWp6NWt0SmZmM2UvN1dMRmRpaG0xSGZVRlYrSGpNTmZlbVhSUTkwVnJaeVlmZy9QUmN3Y3Uwdjh4aGtOdworZ24xejg3SEZyRHhkQzA3dkNJemoydE9wbFQ4cjNXa1NkR1A1VzJldVVWSjNwUzdNMTZHaDAva2VIa1RUSGJiRworMU1SU0FCTUdaSC9sd2ZZS1FPa0Vnb3FZK1dISmxHd1paNG5paEJxUDU2aDFVRmdwY2dvaUhHbk84c2UvdExGNgorN2ZMdHJMeWdISmR0VWU2VXBVUlFpRld2TjU1QzE2VGtyd0lJd3NBd1loeWFNTFJZMDdCc2ordmNjdmpSSE0yNAorTGJWbWo4THEzZDMzbkVjQ0tqVXhwT01kVGZJN1dVZ2tEQVRGMXhIbDkzYUNrZlBxQW9QZnpXbW5GY2c4eEswaAorelJ4ZFJYeDFYakxQWjQxMkhVbkhEQjhyV3BGRU84VUlnTGdaNzg0ZmkyMG5nQW9HSjlSdDVRbE91TFhHWDgzNAorS3BBVUttamw5RjliSTF4cFBZRm9CQnNNQmxaTEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSVFc2RWRaYjUzZU9saAorUDNGbnhkQUgzL0xRWXpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSGtDMmdQQzZuOXlxWG1yREIvSFJ4V0o5a3JMR0paS1k4QUV1b2RLS2dXQgorMURUR085bGFaSzI4UDBKRVFTVDNtRHJ0Y0pUeXJTZ2NYUXU1a2V2VUFMWGRIUEhMZU9iOUJ3cWl2aVhhUkxNWQorbitUY21DUk92dk1Kc3phK0txdjd3VWJLWmNUcFdXaUl2OFRIaE5YV2s5dnNDTDNKT1pXTEd5Wkw5UUpRb1ZvRgorbXVnNzhnVXFlcFc3M0s0TW8xcjM3ckVPdnB0WkUzczFwVmx3S21lZG9ZeUhnMHJMcnNqOUoyOXorVStMR2w4LworUUlmYUdzTC9XbmdCdnJ1Z2JseHdCUXp2L2NTK3NnTklVeEZmK04wNVNPb3ZZRGZHRHdHN2lTN2NpOWszaG11dworYlc5U2w5Yk0wY0hsMW9kQ05NcDJNUmJxMTNjdHlMMUdWZGV0RFJjTFBPVTdzL0l5MUNTZDk1enFIbFUrUno5bgordkRyYmtQVHVoUXBLb0tOaEhNUEFDeUo2QUdrdmk2NSt6VytZSjJpMFdidzljL1lYVGtnTHI5dE1WNXYyUms4dgorZDZEV21EelE2WDZwL25xQkFJNGxJbUVmQXdueFdKMUlVKytsUjVaUDlwSzVUZTRGSzc4RFoyLzIzQ2NMQ3hCbgorWWlQTGhvSXlpb01SdW50b3N6REpVb3BmQXVnVi9mdEtVM29yeENuVi9TcDd1T0hma0d5b1FSd2RUWjBuSkZRRQorck51R3NNSDZpQ25lRHdyNVV0U1ExQVBaYmMzb2xlZXZBVjJtRStRU1FNVUd6ektDc0dUMGl4ZTY0NmM3OFZnUgorT3ViVGpQZDcwNU5jeS9mNjFkcEVzSDVzTjF3eEtVSmdCbnVxRHJtdWhLOHM0cDI3MXIrNzN3NGx6d1YrRlgvWgorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBXRUMgTmFtZUlkIDE5QkNDOEJGNjZFOEVCMzU3NUMxRTgzQURCOEQ0RTE2MTJCNTZCMEYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRjZUQ0NBOUdnQXdJQkFnSVRNd0FBQUZXRmFRNk10Q3ZSNWdBQUFBQUFWVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTFNREl4T0RJeE1URXlPRm9YRFRNd01ESXhPREl4TVRFeU9Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFZkRlF5MU9ZVzFsU1dRdE1UbENRME00UWtZMk5rVTRSVUl6TlRjMVF6RkZPRE5CUkVJNFJEUkZNVFl4TWtJMQorTmtJd1JqQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtCb2FldlN3QUN3Nno3dworb25PUXpCVXFMTGFEZXdYQ1hXMFc4LzgybWJiWlEzWEdKWHA3eUFSbFlzNWJLckRySng2U0xQUkFQUnhTUlJ0LworWDlWcm5yWVkrbG9sVG9HY2xVa2kvSFR6VTdZVVJDUTRqU0x5aGcvdVR2ZzRUQ2lhV0l3TnMwd0xpZTFyK3pCTQorVnZJeStiWCtxdnJ4MDIzUjRVb2E4SGYrOEdRQVJyUkZYcXdzZkc2QTZrcWU2dzRtVjA2NTFLRFlHUU9SYnR6bgorc1lPSHhCbFBPcjRxZkpGVlYrN2RsNnRyOXRiR2drd1RKZGhaYWVibHRUU2FFUXFkT1VNcHpQY1FRZnZQaDlNZQorRUhMQ0ZqOUNJMXNNU29LVDd5eGs2NlVOVFZ4U25xZUNWYm9LTGtnUDRxQ05OaUxlQjdjM1hRUHpMK3RDV0JxNgorQzdWcDFWa0NBd0VBQWFPQ0FZc3dnZ0dITUFzR0ExVWREd1FFQXdJQmhqQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRQorQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQkJBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSQorTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRlBwWFdFSVlWT2tkU0FiSndWTy9wckZSaDIxTU1COEdBMVVkSXdRWQorTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZEh3UnBNR2N3WmFCam9HR0dYMmgwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKc0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeQorTUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMGVTVXlNREl3TVRRdVkzSnNNSDBHQ0NzRworQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdkwzZDNkeTV0YVdOeWIzTnZablF1WTI5dAorTDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbE1qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaAorZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBZ0VBTnZ6ZQorMnM5UXdpTTh4TzFWL2wvbmd2d0kxd21ESWpLYTVLRUhrVHhiN3NCam96WUhycUMxNE55U2l1d3JYaXNzT1RtVQorQWc0Nmg0R0FmRytMd3h1Q1RvM3Vobjg4Q1RZa2VYbnZmK3hxTVVpbENoUHcyTU1wd1lMZjdRZUR5YndLd1JiaQorZHI2M2FNelpTSWdIVUFlVHJiSWl6aVpRbGU3M1BtVkFiSDdFQm5tck1uOGp2Z2w3dGJ2bnNPcWxFUXV0bk42NAorR045amZHWUV3MzBlRHIvd2swdVVvY2hTY2FhbGQzdllRRXViMWpXN0FwSmZXRWFBUElWVFFVSjkwdnkrNElEUworMnRBbVlRSnJKeTJKcnFOdlZmbUd0dlNvVUtJbmRCTHU4cFhnQ2dLTXNCNngzcXorWkkxTzFSdzBXOTR0anZzSAora1hFdjR6VEpNZklBejJwaVQzSDlLWnFlZ1JoZk9JcGVtTTdpQU45cVMwYVU5VnovUHVIRmswREJqR25YYWpHKworbjZMZklWMVE4cW1Tek9jK2ozaFliZXNFWGlKenEydDlJUUFvZk10dEpNbzZQcmJJcHdYYXBSL2h4NlhBaXJwSAordXF0WTg2YWx1VTRYTjF2QUlLWTk3MTBtMTkwVmhMQmVuT0JDOEd1QVZEU1IrRlpGcHorVm1CeVdHMExhUGk0dgorZWJLSFZuSnBiRVVFMFpxVE45UFZXaTV1UjBOODF1eFFrSGlVVEVGdngxZE9kSUJJVExqOXMveFZ2blo2RXBtaworYmNyUmFmb3dnWlYybUZBeGhRQUZKR28xcnBnTWRUQlo4MTFCb1B5bnM3QzJCb0ZpbTBueWtkWGJ1dXdMenhmUAorS2ZMMnpKZVFhWUtRTksxb294UHJLcTRYMWZob0JBbEwyNmNWajVNPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBhbWQga2V5aWQgOGEwNTc4Y2Y1NjE0NmZlYTM5OWFmOTAzZmI1YjBhYzM2ZWIyNzg2YQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUF0clEvL3VWcHVHZzlnQUFBQUFDMmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURneU1ERTNOVEl3TUZvWERUSTFNRGd5TURFM05USXdNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVRk5SQzFMUlZsSlJDMDRRVEExTnpoRFJqVTJNVFEyUmtWQk16azVRVVk1TUROR1FqVkNNRUZETXpaRlFqSTMKK09EWkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBKQVJHQTVpWXkzbisvS1MKK3VuUjdpL2wzd3l3amV3bjZxQW1KbjZTNkVxVWcxZG9vYzlueWtmcUFwTFBFL2pnZVhiQzhJWXJiWFg2eTY4T3MKK1hMTlRpZzhTUGRqZTU4NXFPZzNVVDMrT0Z0Z0ZYSnZGbWs2Wmg2M2ZTVGNITnd6alZuelFXWlNmVzlOcjAzdnAKK3dqSExUYWxXMndHekVBOS9abHh1MHRxUkdJRzFaeVQweCtkbEl2ZEx3WWpzOHV2Nkc0T1RETW85My9PQ1BDdGMKK0JBUXZuWDM4djhLR3BjS1ZYUlJ5ZUFkdi8zOGxtS2h2OE5wMDRaZzZtdkFjaW1QbTVsWWE0eFZPenRDVGVVbHoKK0E3R281V283WXRsR3dyKzRMc0UrQnMzQm94Z1FjRmJIa3lBSllObmcwUDlVRzJrR0sxeWxUckdYQmpTQ0xRZXcKKzBIS2tMeFIwS01iakxkR1pETCszSGF4R3BoQWZGUmJ6ME9udVVlcGx3c2dUN2lzM25iZExwbEw3dHhlckp2b1QKK1dDeWIvRVZtMzZnS2VhSWE4aVBHSEZnZ250ang0N3BwSEhsa0ZRTk1tRG5Vd2ZkVy9zcmhjSE9DM2lWclRtYnMKK3FkMEtzK1Mrc2tIQVljN0RHc3Uxa3JvSWZ4eUU2RER4NkZHYmpFZktoN3VZcUtQWTR2bnZzNElTd0JYWDJhK3AKK0pTUFBMbnVOZDZRczA1dkNxUDZPcDFWTjc2MDlkZS9xZmRwVVVRWHZ1WlRtbS91N1ZQL2RTaVIrSzlOSk1hMDgKK2NseVY3WkZFakRvRUdUQ1Z5RHFzWEdweEJHNllQbk90MDRTQU5KY1NQaUwwdzI0VnFtTSs1Q1RDSFRPVGo3bUcKK2VwN2pwVmtFMFRZdjZZTkJUMVl3RDc1V3F4MENBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZFVW4vWDk0MTI4ZHpRMSsKK1ljM210S2hXblY5QU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQk8wNXBQdENMSjN6MXV0Z2lvQWlFSmUvZSt5Uy9tcjVCZ0JpSTUwbGdkamYKKzFIWlZaY0NYOGNzNno4QmFqYmpFdG9LWW8rU29HcmhNMjZxM01jVFFLWGRPbFpQUVpCS0tCMzhNQzAwSWp1dysKK0w2V1Q3V0k5V00rSWFmVFhwTDJyUWg2K3pXSWt1L1VXNGM3V2psNWd4eFNGMStyZkhpc0dVS2tUWXVsMUJWSisKK1ZOWEs3VzNzejF3UlU0R3I3WHFkdGZ6NXArNUdJbUdJVHFONm9vQ09SblNDYkNBS1VjOXZuSldSZFEzdGw4MW4KK1QzY2tvOXFBcHkwb08xQlV6emxSOTNhNS9oSGF4OGtobHcrYUlDTDk3bm1YVWd4dm9ITnlPUEJ5VnFSN1VrTDQKK3VzN3U5UUJvMkZVTW1XRmtuWjdxaFNHQit2b1A1eTRJSEFhS3g5d21MUTVneFc4MC9EVXVGZ2xPV1N5Wkc0MnoKK2NBQnNMSlh0c1NXbDVqSzNKMHN5cHVveWZRUDJqQkhneGZ6TGdYMXdnUXJhRWUvcXZYT0V4M3dHWWJmL1IxTjgKKzdvUEtVWUpjd0FVZCtiaW5xcWpxa3o2ZmpwTUd0Y0U0c3lnTWhNbzg2SlF4WGluemtLUmdkbW8zQWt3Q1lIVHoKK243R253cGh4WXAzbE5oTDdmWHVxUDFNYzFZTXd0VWV1dTZzSFA2YzBIZkUweHFMRmFHaHdxd1FMZnZ6OGVUOE8KK0Y3VFVERkNaKzlwT0NrSUtCRDFYVDlQa3dMS0tRYlY3QzV4UU40cUY5ckVjSHBFalRJSWhPRjlkYVU0cFdVVW4KK3dVdjIvN0lWQXAzSStDWFV3VEswWTZ1ZW9PYlVsZU83dXZ0alo4T2VyOExyQzRWV215aWJSdHRNY0xIeFBjND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgYW1kIGtleWlkIDkwZTAwN2UxNzU1NzQyMDFhN2E4ZGFjOTNiMzIzMTE0YTg4N2UxZTgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBdHY0YzBVTDYrNHcxQUFBQUFBQzJ6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1EZ3lNREUzTlRJd01Wb1hEVEkxTURneU1ERTNOVEl3TVZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVUZOUkMxTFJWbEpSQzA1TUVVd01EZEZNVGMxTlRjME1qQXhRVGRCT0VSQlF6a3pRak15TXpFeE5FRTRPRGRGCitNVVU0TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF3KzRGMWU1VVljYWVHRDV6CitleU1UTHd0aEhmVEpVTkJPNUJDWkQvdVBWd2ZJQnczdkFXcU5hdGxMT1VZRm5JOWlST2ZBSXRCb0VUR21nNVI2CithYjhvbk5zVlRsbXRzNzRnMGVoR1cveU5XQlE3bE11eG1jbHB4bVMzRUtid3BWQzhLclFGRjBxa25DaVZpY21FCis0VzVzcllFWmEzRG12WnNYZzV6cWtGcjE0VnVoN3IzejZGWDJtRWdWdWxJM0RkcXJ4T2YrUG1NTFZBajNSTGJSCis2dGZZRjRiallCc0RzclJYVXdnUVRsZFlZSzd1QkRFYkllVHpkelBmY29xN09SSll2RjlYb0Z6MlZGcUNaSjBJCitGc2VncE5uMVFyQTA2OHNObkh5bE1jdERWS2ZIUzJWM1NXMG0vRUI2b3p5N3kwaUpyd1J0WW80TzhmcVNnSjJJCitESU1sRXIrNjE1OG9rcDdRN3k0eXhTZHdjdVVjeTJEeHhYc2RBb0FzUUpUanBsNDVVcnhseTNlbzBLVGNEczk0CitqN1ZPMWxsQlBVSGd3Z1pFQXhzcTR3MXUwSEowbmg5bzVXVkRPVzQ3eE14VmtiVzVNSjd5NG52NVpDVmw3ajVKCitEVUN4SXZKVzNVc0cvdVNpWU5sRElITDNVNHh4MUNGbXpwUDg0dGlUMnc1SEJwL0MwRkhFOEUwNW1uR3NFRjhaCitYLzI5U2E4eVRwRldDV2xPSlY0d1hSNjlaWDh6VkthZi9QVnI4WXZQUHhDNXgwc1o5RU54amY0c2hvR0liaW8xCitZYU9CaHpmZ1c3bHB6NGw2L2VWOURBNldFRkFLTDRBaFNjR0x3TEJqR2k4NzZaWUl4RnBSNlo1V00xdzBzMTBSCit6RzZXRGFRMDlhYllyRGp5dkZoZzJaZzZVcnNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQ1BhbmMyUmgrQWYzNVpsCitMbG5wdllTU1kzM0NNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUZ1amhVQmYrTFNrSTBnSUNnemViL09WRXBSSHJmWGUrSDhPVkNrNFp0USthCitQMTFIMlJFWHRQRW1OczI1Q3ZnWFlZNHh5V0N2bWhPaWVSYm5lUm5ZL3FUZ3I0UGg4c2hBeHo2Q2xUc2g1MnlaCityelU3b20zTTI3MWhMQTBvYUg5Y2lhczc0SzZpbGpZZmUxNTBsR01oQlNrOGRRN0plVTZhbENDMmZjQlNaeUtNCiswc0dsN1prM0F5bDN6QjlWc0dJK0dYSUdwV3RLMC9yblBHM2JYMUxBK3QvWi9Ob0Y5TXpTRGpjUkFTb3Y2OHJICitiY05ObGg5VzlPcGNiZmE0bWtXZXZUK2syb0NJNFJmUzhRTzdSWi9DOXZlZmkrbnh3dlNXa3FoKzl5azN3Z1NhCitJUU8rM2gyc29iYjE3L2k2Wlo2RmtrMWJGcDZGemlYZ3NqbDJBK0NSM1gzTG5YRzZCUTg2NWhzeFBvSnFjRFBvCitIVUtueWVCZWZ1aWs0UjBsYm5RWERqakhwOFlOMWp5Nm9PZzlkVnBPV3NwejFQVzluZUc4TmxrMnRFTWVTcDNmCitCTndxTDhvZWNZeEdkbXpsb3B5YmxCZjZseHpHaTAvTzlZOENZRHZrRnBBdm8xaHlOcnZZeE9BWlZqSDNtbmZBCitvNWhBRkNBTGR5VXVZY2hyNUlhekRoWG9RTzhtREQyM2NkY3BvM2h1dTJ2ZkJGTGZHNDNUaUNPcHpuUEM0dXBICisrOUhNcVJWWCs1dWNEMHgyM3BDTmwxNnlyazdkUm5TdVRNVDRwTDlvVGc5elhYSTdKaWN3Tis3eGJETW9EelpsCitwcGYveFlIWUMzaG5QWUY2aDZtelNZNkcxa09SUmpXUklmL3hBSGEyemRWb01sTWxOODhFSFJNUUtGdGsrZmc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCAwZDk5Njk1MTliOTc5ZDMyZWU0YjgwMzE2NTY2NGU5Y2M4NmY5ZDBkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVpSejZqWS92YnNaUWdBQUFBQUJsREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl3TnpJeE1UY3hOVm9YRFRJME1USXdOekl4TVRjeE5Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwd1JEazVOamsxTVRsQ09UYzVSRE15UlVVMFFqZ3dNekUyTlRZMk5FVTVRME00TmtZNQorUkRCRU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMU13UGE0Z3B6Y3F5UjlrRgorSll2WUQxS3JrZEdybWZDQnYyZFo0MDJOTHBwRkxLd0I2MkJoOUtaTWlzTU5NczRqMEZyRkNyWU5BUmluazN0YworRW41WG96TmJGTTd4dmVRV2hDSitvZWRXTUViT3JQb0Z2ZlRNUk1wank5dHd0U3VPZlluR3hCRzdPSWorMmd6aworV084Z01INHpCek9QY2dpY3NUaGxLMmZ2SytuUEFnRWtsakROaVhRMDhBdk4rdU01aTlqN3ZQalJxWjJ5YmtsRQorRklKL1BGWmgwaUJGNVFXT3ZwdlNtdWprdlA1Zjk3a2FlQUFvd1lHeW8yRFVKWERJNFNqZ2Y5MzJrV2kyTkhGagorVjRYOEkwMTcyRjAzYUx3ZitDa2diN25lcjFmZU5vejFKWFZtdFF3R2lJN3FNaCtXanBlN1JhZitqVXNaQ0J3NworOTl1NVVxTUFjSzhEMXpLbXBZVW9NOEk3WnVkRlJGOUphdWdGeDl5SWFVbk9MOWUzWWZ1S0xMRmJ3YVNkNjBDaAorMkZZNVlHb2tva2Z5N2tHUHBYZ2JxUHdONmNncDl5MlU0NWJUdnc0NTRucFZzK2NGMk9jOFZRU2I5OWRlMHIzdgord2dOdG1IaFR6dHhhZXlJZUNVZnFvYktBUzVaNklLV0dRNDVWbmQ3Q29Cd1J4M0h2ZUQ5MVorZ3dLZUFlL3FXUgorc2wxMkxiNHM4ZjBiYXZ0SHFWVStYbGZlNUs4Q0lybjV1NVRTUmkrNmNzMGI1Tm5Ld1lkTkxyMG9NeDA4cnRzUworejREcE5QTnc0dDFNRHFlb3pKVzBQd1NqWTFlTU5ST01WYXphU0JQM3NZRVpYbTNlZUNMOEFPZ1l3eFJhaVpiQworZlRQSHFvUUQ5bkpZK0J5SkFHRWdMZmx6c2wwQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkNneXFqQTg3QXMwdWVvdAoreERBc0cxbXBpWk9vTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFNRldFdTNYTVhrVUtkRndyT0dQV3A3enczbXQyeXlSUDR3cGtHaGdpNDJ0eQorSUtBb0h1cVAzUTR1Tmw0M2t4aUJLbEp0bktLUFkrTTRoc2pLSXN1bCsrVHRrSHVydWVZbWNWc05zYnV5M2dLRAorWHlzVDUwNENtbHpBMUdabVZiWEpvOW1HU3FiK2d1cmVUVXVSQTR2OVhvM1FXMEdjQjNzSlUyWG1WU1JyT0k1NwordlYxdm51TG5ITkEwK0FhZnk2RFM5UzFmdVFBbTRhV20yeFhkN2lMV29QY3ZhU21JL1hKbVJuM2FMa3RQNWkrRworNEtSaG1hY1BGQ3pJV3JnUmp0Z2ZZN2VXdWhNZ0JYT1RQak1CdkpySHBmblN4Z0ZNc1VacTZIcXBmZ1lNK0NUdQord0kxZ1BwOU1vOG84N2RacGY0dlVSVXgwMHFwV1FlU1JBYVNjSmU1RmlWZjBJVW9IbVhDR0ZJV1EreE43RzB1VgorV1Ivc2lLOEdpRmIxSFVFWkJENWY4YlFTMG4zNXJCamtlMnQ2aWlhUGdNUGN1NFF5TlJ6Q2ZNdkhiU2E5WmlnVAorZS83OUhSTXd3SWRwNWpsaTJjckhJYklZM3NSWG1NWVoxeGJoWnpUOUZVZ0REeUFsaWwzVmJla0REUkV4QjFpWgorNXBDcGNCdm5nbHFhYW5wZEsvZ3VYanJKV25RMVpZTzUxQVdneVpZaTl0QWc0TFlEMEhqczVibDVKQlpJNFVKRgorSGovVDdsc3BIYjF6SFZ1VmNZNGxTaW1IckZpOC95UnBJTlBRMUJza3lBc1lLdFVqdWpUbEIxVGpEMFlXSTMydAoreU1pL0xwN1ZwQSt5aHdsUFVmZ2pQR2pwNUZ6aTNZcFVuakh1Z2ROTEFQNmQ0b3pCcjQ5dTFjYlBabHYvYXljPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgMThiMWFmNzBiOTNmOTkxOTcyZjM2MjU1NmE5YTNmYmY0YmIyNGUwZAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFhc3p2eFBsK0RldHNRQUFBQUFCcXpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt5T0ZvWERUSTBNVEl5TURJeE5Ea3lPRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHhPRUl4UVVZM01FSTVNMFk1T1RFNU56SkdNell5TlRVMlFUbEJNMFpDUmpSQ1FqSTAKK1JUQkVNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTBCWUR1WjlVN3BwaWgrV2sKK1FvYVFMS0VsZjBpcGRHMnYzNFdUMHowNTdZUGVxZ2JNdjdtY3JMY3NpdnJLRFlsOHhINkxmN1VTenJSNGdVT08KK3RBeFdIalNIWE1LNlIyQ0lKdFU4a2V1Slo1RldFRzJEU05VMm5XQkRQbElRVVcrL2QyLzQ4NnVLY2hSYWNxWksKK3E5bW41djR3dW1rSlRUWWNHOUsyZm1nQjJ2ejhmcHNmSFBZR3hSelNmUSswZGMvMTcyU2xJUmM0Q3lVaHpUVDAKK3p4bFZzenE1QWpJTU1aMWxwMjZrYy9tZjdGbHJKZkd0S3kxUkVFTVNuK2lib1VxVk1oR2JQNkdmZmd6dVpBYTkKK3Q5RERkc1dkY3crMTE4TG16ZFVGRmF3YWZ6S09OSC90MmtXRG91Snl4bGtHc3Q2VlUyWmVxOEFPQVRhcDNld0IKK0RzeGVnMzYwVk5Vem9UMDBFbE5VMjR5NURtTmVJcktyaFp2azhZMzZtdWVxTUdjSnl3aDBqZ2JkUUU0NFNCR0sKK3ZMRTdmWUhXR0JVdkkzeDIvYmh2Z2xnU2lkUWY1UXBUSnRVOGEyQ2ZiOFFXUlhJZElsVkR4SUJUcUJqemlGeHMKK2pxKzJSWHFPNkRaRStTWWhMdmZ6cldhN05BRjNQL3ovR0ZIeUtPeHNPMU8vK3NOaStWblpKS1dwTnVxNVQ0YXQKK09HbDhuRTh4ck9Ua2JkNWhNblErWktXVUIxR3MzU1BMSW14MnUzaXpyMEZURjdHQ1lkMW01Q053d3dWU3Vhb3EKK1VaSStqNnRDNmlsK05nYUIwbGFDSEVVdmVqNzdJMjZGVFhKTTVaekVVYzNLYk9XNUs3TFVpVDF0RjBxaG1nTGcKK2hDYWY5RUlrdkFpTUJmYlBiVTNhMHQrVVE4TUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZMbFRZcFlQWjFBV0JIbHkKK24xUlhxT1hjajd6RE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBSmxOWWJyZGlpZytmQjM1YlZxVXVqbnVaemdYUWJqTEpZcy9PZmtBdlNVMDMKK2pPeUlmU1ZoQys4UStnY25TT3Vaa2ZYQVU2Wmd0dXloSEd1QlZyRHFMWjdyakpFRE1iSXYwY3FRbU5ZN2lsOVYKK2hxR2ZwbTNpQmM4TnkwSnh1VjNVYXJ0TEpoY3MrT1pITEoycTZDT0szVHFNa1dSMXVkRFA2NXJlVVRTUytBVlcKK01ualBOdjZKWmovSEZySDZuaVlQazhXT21ieVl3TTlvUEN2VUFZdHRta1B4TDI3ekFISFV5L2NrM1A0ZjZnVWcKK2N5c0V2SHF0U0FONmhJMHB6RUZycHh2ZFVKbVJ1TjFVWWpEK3hRclJjY1lnZWwyWFZlTUZSZGZ3eEc5aW1hZEQKK3I4ditRWXJXT25wR0wvcVN1U3l0ZmJYcXEzVGRSN3czdjcwWnRJVGZTWXN0S085c0xDZXdzOUxOTXJBaXhQYmMKK3MrRnpHY21MZW8ySUVpdklLSW13K0lBc3ZEcWM3endRNlZBUXNleXpCL0pqYk1VdWdXU1VJOC9GZnhSa0lZSHMKKzZDdjY1NDQzQ25id0t3RUFSVjRucHQ4ZnJvYUJwbnhIZHpyeVh1MktFY0ZydUNabktQQVU4cWkyQnJiSHJYY04KK1diRzR0akdTNlVkOXgrN0NhSG00Si9IVVhxbGcyR0MwU2hLYXdpejVXNzZtb1M5b1A2QUErY1JLS0xBYkdxWXQKK2gvaVlqQ0NYd2xnUVBmMFRTSkduQ0JPa2FkV2RUTGw0YlNreVhQVC84SFVXWjZ6eTRJMHNkeC83Z1FFNTA2c3MKK3g2MW1takhYclVnaTc4YWtBYzBEajAyVFJtajVnZmxhSmF4UE5MWm5aU2xtYU1kZGZkUzk2bks4MTJOUUhWOD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIDI2M2I3NDRkODU0MTJiYWU2ZTEzZTk0YTUzYzIzNTE4NWJhNGVlZWMgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWRxWTdlRXBmTFp5RWdBQUFBQUIyakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXhORm9YRFRJMU1ESXdOakl4TXpBeE5Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMweU5qTkNOelEwUkRnMU5ERXlRa0ZGTmtVeE0wVTVORUUxTTBNeU16VXhPRFZDUVRSRgorUlVWRE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd2JoTjMyemMvRkJWeEZLaQorSFg0TGxEeWhRN0tGVGtvVEtNY3E2ODdOeHQzNDRnY3NPNW1ybHFCS0xsaTlwamxHOTdEREE0UVRRcWNtYjNwRQorR2owZWhzd3ZOQXhxMUkwN0xTdTFWUlVTaU9sWEIwY2dRVDIxcHRoUVp1MzI5ZWxaMHVOTmlLWFYwTWw2akJPMgora2hLb0grV2ViNzBJbUlXeWw0cE9PaFZEaXB5R1V2dXFLUys3Rk9aSi9BbmtmWkdCTFFkZzJUTC9TakFqL05MagordE5YbWd0bnZ4RDdyQmFMTTB1K0RRR0N3QVZVelp0dWZLZy92eEZ3aFp6OUtiSEd5Q0JBa3B3MS8rYlBHcjBlQQorSUtETWZja0xWNjlydk5iaXhCbnFjWU1STDB2NTYyZ2Jvb2didzFEajFsOGppYUdKRjVFRGFZdXBwU3hVRythZworSGd0VTcxc0JZYUFGUmRSY1p6Ykh5L3lyZVhlNXdGMVI1aEN3Q2VaeWp4ZFYzd1haSGhRNytxYThuYUUrY0xnSQorMHlLZ1ovaERxR2tCTkdHWHRzSXZjeTRSVXVWQWlqdGdDK2ZXSktPd3VQcDBjRFpOaFR2VVNCQXhXZG1Ta3JtcgorajIwVDN4V1NhT1Q3RDFmLy85aFlUM3YxRldTcGpnMkZNMFBOT2RJb1Z4cWZuRFpBSTNOWHk3bTIyRFlEU053cworall1dVorNHVOb0dBRzZxcmoweWMwMktrcURSZjVSMkJCUHZXSjdzZ0NuZ2ZwcjRWUnRQTGpJUmdKZ3lxYVFoYgorOGxTN05WdjJNWTNsK1RMOVkxQkluREJXcjVoSHpSTTR3M2hmSnpWUjNjeXdzdkZOU0JsRVZpTmFDeWo1NmhRZQorb2dsUW5LbEFEcUJLQW5DQWxJVkNRbzhoZ3g4Q0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkF6MFVIYlB5NGRzYlh2ZAorTk9IYWRtMllCK1dqTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFUd3ErYk9KeU1oTmpJOS94eS9jOStnV24xcEczY2FmeHQ0WTRPbEh0MEpZaAorWmJnMVNNa2kwSmVDOW1WRnlEWDZCcjB4WWhxMk42UHZ4MHppSWM2MDJVZVNINU1DRkNFa1h3RUtMNm94dHZBSgoreE5VVUR2NjVRRVRDQXM5Q24xUU9aYlduOWlTKzdQOVIzaVZrZGhKeTZPTG0xVU9pTDgyaW8xRVhOcEhwRnVVQgorUzdOS1lwZFdWNjdiU2RaNG5TQkxlbHRSdlVuNmVaYlZmM0xsNUc3LzBpSzY0bGM5WXlSTXJ5WGRCL0tLVVZJOQorOStiZXB5Z2Qvbk0yUDQzY0JoVCtLcVE3T3dNaUkzVTRmQk92TmpkcW5zQjJVMWhsaGEwaDdWQ0UxMDQ0aUQvZAorLzVSUFF4MWkrMjZicGdZTmhwMmdva1JyeGc3NlF3SkxITC92Q3ZLWGc5d1lBSGhMYW1RZnpFeDlzSDRldzNBTgoraGJoZVdFRVlvcVRLOXlGeko0WEdZNDZtc3U1UXA3UDNTQ29CakdYaDFzSlcydnF6dTFyVExFSkgrcFRMNUxvVQorZW9SUGMwVzhhR1ZwcHNhNGFWOEpxci9FTDVyai9yN1lrcHI4QU5NdmU2RHgzcEt5eWUyNS9pOVFXVUFPa1lqSgorNFJCU2lwVEdWTnVPMXJ5WVZCMmxMMXRiSzU0d3g5MmdqTm1NWGJKVDIvMkZsUW00VndURUFZU2t5MWlybzNwTgorRE1vU0cyRW9saG1OcllMZGNCYkFkazRxeEJQN3lscXFBRlRGV3Z5WE1XdjUyWHQvSjQzcENPSDNmMEhQSlRSRQoraDBVSEp3ajJEa1FJcXRHZ1hpVDkxRm1vcExzRzY3c0JtNTQzQzJjNUcrdlhmMTdIZytqc3VmWWU2c0tLWTc0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgMjlmZTY5NjMwZTg1M2E0Y2QzNTc1Zjg0MzkyYTliZWQyZDdlOGNhMiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBZGVtQzEzdUhJdXdjQUFBQUFBQjF6QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ESXdOakl4TXpBeE1sb1hEVEkxTURJd05qSXhNekF4TWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB5T1VaRk5qazJNekJGT0RVelFUUkRSRE0xTnpWR09EUXpPVEpCT1VKRlJESkVOMFU0CitRMEV5TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF0Vy9pMnpObkJ4Zk5FME8rCisvWEV4VDlVbmZ6Q1c4SlZKUVAvRUgwZHNiTWJOaDFwdEQ1TUM0NVF5dzAvbDQ4ZnJwWWhoN0cveUUweHV6VUZYCitLTmlwL25xdXBRbVNRMHlvdTR5V20zMXJPakhsNzBTLzFKbUlycEd4TGZ5NlJscmxGMUNrUU10UFVBbWNrTkpRCitkV2VxeEhJZm9PWWRyOHMrSUF5QVNOaTVpREplak1oQmVHd1VqZU9WYi85Q3cvSlBQSi92dWVYQzBDWkdzV2EyCitaR1UzQkprcnhIY0VCUXdEakJ3UW1aU1VTeFJydmRzM0VxbHNXT1locE5wOFlZVXdlaTZVVlgvTXBCMVJCVlRTCitDNTBzc0xEL2JIZ3V3L2FaU1dzRy9jSHVXdkNhbkdPNTN0ZUw4cU1WdERpUktrdVJDczRZcXkyb0p5V2JvanRhCitzbUVFdjdmKzhTY3RPeERiUmowMm0wN1VhSm1wY0x4Yk9lUmdER3B0S0ZGVUJOWGhCUUppeThwa0hDMFB6L2dDCitXb2dMTzVBREdSVjgwU1R3cWFOZ1J0a1lKVE44cTBLbG5ka1M3OGdMVVQxL2puQTY3UGJlalp3ajFDNzc1eDNKCitKVDlxRmxNaXh1aUdpTDBzbmkxVFhpV0JvUVJkT2FscjV5U0MvLytXMmlva2luV3FzQVRnZzlldzhaUzYyNDlsCitGbEg3M2pzd2Jyc0UzZzl2c2pKQ3NSTW9pWHA2TWlEbzR4L1ZTc3BLbDlUMWJ3RURQM3VMV0w0VzMveWhMOU90CitUek9LZDJGSEM1NWMvMDduSmlKZFpnMDhuekJFL0xJVHR1WEd0Y1RCSWRyaGlLclNDTXRxY2tWTGdaTDBTbDdyCittZEVLSVBtUUdlbVRaKzJwOU5sTUgyWFdGcE1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRmY3VkFZL2NJSGUxWFhWCitDcER2VjJ0bDdJSVVNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUtMeno4eXNmUDd0eCs4aGRPUTFwV0V5M3JNRmdpV2lwSzlza2RMVTVXLzhqCis5bHZCUXBpK0svRi9BMGtHckFzS3E4MitxVmdTbjkyWkNWS01zZzIxSEpwUkQ5K1dXYytRZ2RnQ3pXZUd1QWhnCitDdmFGYkpvakhsbitPYkVMbE1yc2pJa2pjK3NPdXc3V2xoNDY0cmF4MENXaVBUVUFPSU1IYW1QY3d2UDAxMEs5CisxZFdJazJOVmtVeXdsTjI2M1JHNjkzY2xDam13Q2Y2eVErclNYRnQvdG9UVE1iTlczUjkydmU3VEY2b3J0b0pCCisyTWNwaXB5ajFoR3o2TjJDNU0yMjdwWm0wSGUycWZhYmZmSVpKSWNMZTk2ejZ4dmdhYkplZTgyblZjaVE0R1V3CisrVHBNSk83azBQWDg1UTZ6d3BVYnBUNC8rM0FpRSt4cytzM2gzbjhBQ3BkRnIvcWh1aUwzM2dNanVGOHY3RUdqCitrTXlnaTVRcU1rZ3l5V0ZKUUQvQ3lzNnphL2tDdW1nM3haTUZiVTRvV21ueWJHUHFrZktzdjQvWWFUc2dmbVA5CitLWFdqQ1YxSWd6STdqQjZEckkreUcxSERicHFWdlY4d0JyUk8vUXk5aDhocXNIbUhvQlRLQ1VUd3lRbi94QkhxCiswQ2tjMkZSc0tiMVdCY1liaW1nSCtMdEFpeFNGSWNqWUlrQW5BUGhZQjRCTmg4VTVwQ0NjdDl2Q0VoUlluZnZZCitqN0FUU056aGRFNko1cTFRKzQ2TjlaZDNRWXZxWHZLeWZ5QXZzTEFOa1ArUlNzbDZIMmlaTUR6MWwrNHA2Y1B1Cit0TzBhRlpWRFB4NWMwZTlnNTRqNTRCUnZ2MThzRVhQanRzNkdXSUpidUFETGhVRnhEM3NIdFZQb3I3L0lheWc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCAyYTc3YTBlMzQyY2JjNmM3MmVlM2ZhZmMzYjBhN2JjZWE3YzljZTRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWFqQUhrdnQzbUpzOVFBQUFBQUJxREFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3lObG9YRFRJME1USXlNREl4TkRreU5sb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMweVFUYzNRVEJGTXpReVEwSkROa00zTWtWRk0wWkJSa016UWpCQk4wSkRSVUUzUXpsRAorUlRSRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcUhVcmpCYzd1Q3J5N0d2dgorRWg3OEEzdGgwV3ZJYW1Dc01na3NEUjg1UmN2aHVrd3ByNUtRL2lockI3VWlSUkRlYWhvUldYbGlVU3l2NEd3YQorOGdDQ29VVnJNOTdKY3piZFJQRlliNlNOcDh4MThFSXhNTk50K2ozWmtoWmNKa0UxcWxVOTNndUo5K1Bnc0lraAorZExpZExkaDdvVVhXMWxHbFJxSUcrK2ZGenM3a01MeHNaand6d2V4L0NvQmkwRy9UMVlGb1RoaDE5TDV4OGd3NworWDAzbWdsOFZTNkZxUW83SGRJUXNmZlpLaEorTlpkWVlmRlB2djUvSmZ2b09NeGR3cW5taTIxdXNmTWd5M3loegordjlPWW9aczduVW40TitHVlg3OGNrT0dJeVpLNDJkMldyRW1TRGRnN3VNYnh3ZUtSU1ZOUGhFRnAxMUlkQ2V3cQordUtvTCtMb1NWSUJZUFc5SWhwY3F3ei9EM3o3ZEhReWgwQ0hpb0x2cncxTTBNSmVKY1ZDR3c5bEJOdXR6Y0NyagorMUVGNDNETXdwNmJsc3RlMUM4dFRxZmgxNCs4UzZZSDZCWkpNT0hWZXZIVk1leWhlenFnRnVFbWVJK04wUzBVRAordlh6QmEwYTBmZWhCanZTVXlRWEh1bHIrQkV5SWI3MHVnRXNxSjV0dTJLdElLcTVoZlgrbytueklTOVI1eUJqWAorN1l3L05USUFoemZ3akpEUm9nM1RiVVpjNm51Zk1GV0E5SFJHK0ZHejN1R1h2TjFJcXNCK0grUElNMGE1VjNoRAorUWRGYlhBSFpzVnhjM09MV25VaG9oK2Y5bksvdjRJREpjQmNuWnRKMzVvbTdvL3JjMTNIdFF0UUVVaWh6REYxRgorLzVJQkR2dFpxR2pYb0U1WjBiVlh0RGI4Q3hjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkFVanpxcXpCQzNSK2FVTQorRlB5aWhOWVhicWlnTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFNdG5OQXB4RXVQOG16YmNPTjlrREVYNHJvaitzSFY5ckZwYmVZTDFidmZBWQorN2Y4bUtYV0Z0dTZaZWtiRkVzcHFFUzJ3Q25GYjA1VnB4Rk9TdEhlaTI1akEzTkNTU1ZTK2N6RHdEWUx0YlA3NQorS0YxellhZnBVSUNaQnBoK2xRdXBCMWdDZ3c0SktTM29nVEdoZ3FxdFVlai9udFRGOEJyWlFFbXB2ZG9MazZQdworRUtQRWg1RDdwTE9Wbi9HQ1ZkYTFlQmZCSzdzT3BXNXVxb1RlQnJacDljRjVHMmlXem0zVk9LUnowRWU0andiaQorWGsrdHlOUEZydUtkb0dLY1hpRkJXdTdRaExTdmVId3lGdzY5MDJOakNiUnNUTFNaMnpURjM5SkF1dWtwUUJ1RgorSjh3MEdZMGNEbDU0ZEVaWkNGMDVOc1cveGd1NDNWNnJvWE5IdFU5NXdrTjJUS0tzUDBJaHg2RjdCVlliSEc1dAoraGZCVkcyaTh2cXU5RjNJdEJpcHNXOVFmWVFvbjVYWnF4Yzl1L05tckVVTmYvVTlJNUZIdFlLNHl3RGo0c1BIMAorNWlnSGRlWVBsK3BjZzgrZHFHWGNZZXI3d005cy91ZTJrZm44ZVNNK1d4L2FiWm9vQktCTmtaTVhyWjZtanlRQgorSTFTUzBERVUrYjVzZlg3eitod2ROZFZvbFpBZUdSQm1CeGU3WkdZcjdxZ25vQWhpNmFPWXVQU2ZFMWg4a28wOAorWHdvZmZpRUg5ZDllWXI5NnFKL0dmTG1ZMytmUGpaU0NZdFJucGt5U0VJSHF3WFhCUW5ub0dCaGRZQkN0aWVmbworRkdUdVhaY0Q5b1FBMXFlSzc4K0FZZStzWm8wYzBYcmEweUpEYUZwb3hPdHBRYkQ0WHhidDFOTkhiVXgwUHF3PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgMmY1NzJiYmFkZWM0ZDE4ZTBkOTFmZjQzNzVmYjQ2OGM2MWI4YzdhZgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFhazN4ejZxZGJjcUdBQUFBQUFCcVRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt5TjFvWERUSTBNVEl5TURJeE5Ea3lOMW93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMHlSalUzTWtKQ1FVUkZRelJFTVRoRk1FUTVNVVpHTkRNM05VWkNORFk0UXpZeFFqaEQKK04wRkdNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXFHbGpxWFZFc2FuRURjT2sKK2svalBNYk9Nb3NCakZmZW15enE4NzkwQlpXVy8xbHhtZ2pZTmNkQXh2TjNLaDAxL1ZpaUdKUSt0QlFVcHZDNkEKK1JEcVBpa3I5enRVdm9nWW54VldpSE9uM2FWSEQrNDR6QXdUQXJuUnlVS3VQOGZSOWpnQlUyWS9DcGpQUTNCUjIKK0sxQVpEV0V1RDNHZTkzRmpudEZrZXBuc2lRc1FYTXcrN3l5aEZpR2VPWFROTnNZOGdYLzZENS9ZRUVHTUh6ei8KK2RvTlF1NEFpcTZYeFZlb3Ird3ZZM0FYdG9VL2NNSW5kbW9PdFE4WEozZHcxMHcrdUxtK25yZGZhcTZtSGw3VTcKKy9md2pqRURscmgzTWJvQ29tTkNUVDRlVm11N2FGQ2F2NkdMemYvNEUzamJBSlZBbkQ3cGg3M2hRdzFjeTBXd20KK05ONHhrSXR5d3NKZUFaRW5Ga1A5ejNrUEN0QW5WNlFxejRBZGRVN0ZIMnV1QTZ3ZzdDc1VHZjZNblMxSXV4aVEKK3RMZmVwOFE0ZXZvVU40cm9XZysrMTc5YXNKYitlNWRleVhPVUtvWXdhaTZQTDZURXQ0UlNRcVZvNHA0MktCMWEKK2ZFeFZJMnZVaHZzcGlkT2VqRFJ3Vzk1MldxRVlNVkFKS2RIMnExVkpkV29YNGw1OEtXQy93a2J0bjNVMTduL2oKK2pRc0ZBYUZlOXdMRTJSZndlc3ZGT0F0WXd5M08zdXo5WGZ1aml6WC9iWjduTHhXeXRkdS9hdnFGVzI0SlhVWnoKK0srS1pvMGViSmVjN1RRUWdFWWtCQm5DSXVneWRBWUVaNGdIaGV1TG41ZlNOblVOWmx5bFFyUUJYcW53L0tqMDcKK0ZJditaVTU4WjZkMllDMWN2NEI0M3A3SFpIa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZKUzlWaTZjbzhiZU9YMmIKK1BWT1VYOG9NQmprbk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBT0ZIaEtsOVU3cmtIVlozK21oQ2c0VGFQa0U2V3NvMTg1MFA3UzlJNkxhMGoKKzVFR3AxakkzbUgrb1l3TlJhb0NiN09tczRhVFZFR0xYcGNMUE9mcmo2VUk5bFZLMmRDMHIvV3A2T0xlWlJ4QUIKK3JydnVGdU5xNXozNWh6WUZUUG5WSndBTWdmcFh4czRudDdPOE1WK3JyMXlwUjAvVjlGT0ZGOFdSdDRoZjZQekEKK2NnNGJWZktwbXdZa2dZSlFXYUw1SSt5SXo3L1JwRlgwdjdZbmxUTHJOVk45M0RPak1DTjgyUEtIK05Ebkh4UHUKK005UEl0NjZTOGU1MDB2NmJlVnN6M04vRExjMlBCMGxoSThIazY3R3F2ZkNXNTdLT3RQUm5UY3Z4VGNuU3hibWwKK2dKSENFKzN3a3BMbWVRcVFGL2xvSzl1aDlWR21zMDFyMjNCc0t2MDgzSUMxT0xrZTVqNG9OcktEYzdzSEpaR2wKK0kramJOSWdJdUN0dmdxQTRvbG1sZWc5UkVGeHhocnphc3V0cUd1NnRqR0d6VlRWaEZqZHhoTXdoZWV2aW4zUGcKK2VoY1l0SUtlb1Y2YkhVa2JJcFpaeWhObW5Hc3k2Uk9zei9qRmVLVm94SmpBbTZHVmU3QWFXOThRKzRLbkdRbXgKK3VROUlKa3pZZ3p6V2lsbXJYb2Y5UFcwOU9wc0VIeXI3cE9lMGhWck1aUWc1QStTVHZyclZwcTBZam1XcmVKK0wKK1E4QnZSY1ZyTjBHK1BuLzdPTml0M3lHQlp6ZzFBdTN6OFVGOG5yYlpXQlVpUm83eU8veXoweDlHVXV6S0FjajUKK080YlA4aWpjeFIvdlJqcUxhMlE0cEhrRmJ6dTdSdmVCWWxBZUUwdUd1YmxRc0Z6Y1p5V09KdTBxK2NKdlozYz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIDM0N2M5M2NhYmRlZDYxNjhjNjFmZGM4NzQwYTczNTNlNDY3NTE2MTYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYXg3Zk0yUzBJTW1hQUFBQUFBQnJEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXlNREl4TkRreU9Wb1hEVEkwTVRJeU1ESXhORGt5T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB6TkRkRE9UTkRRVUpFUlVRMk1UWTRRell4UmtSRE9EYzBNRUUzTXpVelJUUTJOelV4CitOakUyTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEzL2I3K0d2Umk4ZzFQRnZSCitHb3V3ajB4R0pXT2pHaUw2MUQ2dDVOcGZtaEJ1cStCMmIraHpUTVhMSlNIdFRUS2Nhc25xcUVQSFNCMm44aUM5CitTSXZOK1JTbzFFbWdOaGNFZ2d3Z0lNR00wYW9KMWcwTXVJVk9zaStJSit6QjdhT29yZzRjUXNKaFpoWkhmWVRsCit3ZFZSemlxeGxNaU9tSW5USUZrNjEyaU9CenF0SjkrU1hDVFg2NnhYMGJ4ZjNPRkpiZFNkWjhXL2hCNmIyWk0wCithbms3Yzk3L2xadElxRDZHWDBvWEpvVWR2SmNzTUZEdGdxaDVVVk43ZGtGNHI0Q2ZaWHl3bUJobXMvZTFJS2ZTCis2NDQvTHd3NThKYlZSTlFSUlBicDZTUmpkN2RLODJ6bm82dExTSXJlYXM2cGY4R1RFMUQrL1NyZnZRa1NRWjdzCitkV05JT0NOQ2ZmWlY2Ukd4Y1RMQXlaTDZiRmdvbk5ZMWcvMDVMMnNXSlZPQUM1U3RuN0ZwODhMVXNpMjQrOUZTCit0VlY4ZVNGVWNHdWRUcHI0dmdIVnVMRzZYQzNYODhjVHFuenVSVm5SVWttRlExUTNDdGVleHFaZGh0eGRzM0QzCit3Q2JOVW5HNVMxMVlTcG1lU3paU2l5MU45OVB0QWViYVR2MGtieDQ2MlovRW1pS2gzWUE1ek9mS3B4T3BkYlFJCitBZmtzUWt3eXlrZEtZek9CMmd1VGJuR2lmQngwbFBlbkg2cHhEb2k5VWdxaEZFU2ZFTEJFeU0vbWJiWnRIQ05yCitCakV3eklNblBIMzZRWjcycGowYzlPUUJqd05tb2xnSWlzcEFBdU5Gc28zUVBzbEVGblVndDFRTHlLL0tzTDIvCit3TE0yTTVUWVFlSE1CMkhuQy9vMGFHMnRwcmNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTkhpcTdiQ0Y1RVFiSTBVCitlOW9kczhvL3U4SXJNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWxVT0dhTlV3STIyYTJZSXhTNmtRckRrcmRzMlNMN2tHeUFuZWZRMVg2RFNnCisrLzhYMG1UbW9rNnZGQk83VkJsVGhkUmNvRVhNbThXb0czVk81OTZEK2xQQnF6b0tTeDhCMTRDc3N2S0xrQmF3CitmdmNuYklEWkRKWUpOaGRRekZhTDNHMDY3a2xTaGhQOVVITm1sYTduamRrZXVob3NaUGlRbXZjNFJhbjhxVm4yCitQbERqT2RiQmwwMEkwd1NVZUxoaCsvbHdvUEpkeG9hWCtUZ1J5ZzZuc2hjNFRQdDJ5SDF6dHlTL1VmdjBsNE5hCitFOTU1blFmK2hldFdBUnpmS2tzRVNxeVAzeFBaT21kdEtmeHRzVmZXQ1BnS01hNnEwQTVkbjc5SjFRenR2bGN0CityWUYwb0U5cks4TkhtSUVIQTROdWtSdEpoUTgwSVZ6VzY2Qlh6cWd1K0NNUUFmYXEwK29ZbGZzSWtZNmE4ZitXCitCdjMxTTIwOUhDbWhBaVBkQTY0SWVxai9uUTJKWDFCVDRvdi9DZElIWngxZG84T2JJVFlZNHhKVjFpVkpvQXg3CitpcTZhOHgzSjFoQ293dnpMc1JHdWhDejFYVG12Tno4K214eGptMXdod1g2SExxam9Jc3BCWkc4TEk3SHlObGJQCithTEI4L1lFK3lGRVdYdVNsaW5BQzl6Z2ozTndQRmNNTytlWUZxQVk2QXBaOGV0dVFDNWhyaXl3bVNQUVJOd3Q1CitLQktLaGt3enRQb2xqdFlGQ2tYdktvL2hQNzZxOXZxQ01OOFQyTEpzd3RyYzlqTGx6TWdsLzNER2ZWZk9xb2pkCitTVm5rdlJ6OFFjKzgzajhhdnFFdHQ3U2piTzdHbDhYWXkzUlhFdE5oeUxRV2JMN0QzQ1d4TWhoOGZocU43SFk9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCAzN2FlMzQ2YmFhNTRjNTEzY2ZmMDI5MGJiMzIxYTIyYTM0YTRhOGM0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVltUUVseHA4dGFpbUFBQUFBQUJpVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNRGt5TURJd01UQXdNVm9YRFRJME1Ea3lNREl3TVRBd01Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwek4wRkZNelEyUWtGQk5UUkROVEV6UTBaR01ESTVNRUpDTXpJeFFUSXlRVE0wUVRSQgorT0VNME1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBd1R4UE1udGNFVUQ4QWFENworWVBqRUtKZzZ1UlhBeDVycUpJckxhdkVYVWQrQTNKSG9ZVVUrWUIzcG0zWThpdXVUeVZTb3kwamNzbENmWmJBSAoreW5JYUN3dXJxWUFianBDSWJ3Vm9OMUEwdlhMNUNSTzJZcUVWeGN2anpqdkJwSmNnWDcrbmlxek5VUktCZkxobworeWhzY3JIYWNyZURFakxZSS9HL3dHdzRYbS9sdFJ5TDBBdXZ4WE9uWThBeHF5SFFtNXUwYlJVb1VFaGc2aWFoNQorWVQ4dG0rVy9JVDBGd2d3M3g3YWUxc2ZnVWpsekFpeCsyeTlVUmNDeUE1MmFybTJkRkN1MFZPM3JTOGJPWDZsYQorQ0xGNnFHK0M3NXBYaDJnekZYVGNCSDZJV0JUSFpDQXd0VUhnZVh1d2ZCYWFIREFUUm9yMUpaWWlZQ1BPeDJOZgorc3VrM25ESVFZbVVFaDBjWHBjTWpwUy9TdVZlaDBzY3p5NzgyaGJQUWV4Ti9BbHhzanpEOEFESUs0SGE0ZU9aRQoreVM4YUgvMWxvVXA5THRrSDgxTlc1QTB0eEJDM3JKcmNUbGpIMm5kOU9HVGV4YWwycHpEcS9SdW0yLzExa2krUgoraExHaTdVakdSQVpOdEhCNFZDcklMemIwM0VJUGJ3U3VYTEFnNjRHN2x4UXR2STF3T0ZrK0pwRmF6Ry9sNWpOcAorL1RrS01hMHlKdVcrNTV6V1JkVUdMcGhiSXhoR1JRVXRuRDNteXB2b0VOSWRzTmxxaXF6YmxKdU1GU01HYzI5aAorYUd3RDRDVnkzOURHcUtTdG8yN0NjOHFacmNGVjRCQy9aVGdzSXNrMmRTVE1VMjJlOUkvSXkyZVlhMjI4YmZKVworNURkMzg0bjZ3ckR0dnJWcTduTUFiRTZuZWhNQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkpUMW9vK3ZjQ21YRXZpNgorRWh0azdUVTFYQS9RTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFIcDhJaExza0FIQm5FODFkWFVwYWlKZVFrM0JCdTlBcXNOYUhaamZ2MHpLcQorZnVOWUNGREdFYkNhQ2tFNHkxZTJLOVRVaDR0QXpFVlFSRWFhYzhGK0Z5S1JSaSt3V05oemFNTU1HeDhCZGQ2QgorVC9qaTRvYnY1ZW12VStOQmJBUzNCLzNqbHhvcTA3em1RZGFpZmIvMUJGd2dSOFVRdkdEUlArakpmWGU0N0VtQworODJVNEp1MmVDeVpHeFZzOVZCUFRWQkM4S2pWWkVnZmJtSjhBczlqT2NsekRESkV3RU81amowTnN2OExvUW50ZgorYzZudHdHYzRHNkNzK0EreHV4c2ZaVjcyODdKa1lzNVp5UlFwT0V6WWFjcU05eXVXbk1wU2ZTSGJVVDNCSlo5SworMkkrMWxoT3FKdU5PS2s0a2RjOW9lTEtLeS9FMDRaajR4eDFTMXNkQU5uT2RqTmNKVFQ2Njd5bGVCSENTZDJPagorY1U0bDRHcGlVSTFYQmNjTjRqQkxMRGoxUkNUQTVqQ3VTOEZsYTY5SkorYXJDUjFZd1BrSWxrTmhRQzJkcEk5dQorRkZUVHlob1dDSG5CaVBTS0FQR3gydWZ1MFZYN250WVJwR2xkbnBKTDBwRXN4MzcvOFFRMnlOTjg5SEJ0QTh3eQorWlFTWFVnV0dWZytmQWg3MVFTSHYxdDJ3M1ZSVnl4dWFDRGJuRElhalFsc0lxcDJtR21TeTNvbVVxR3Y2L2ZtYworZjh1dVFEbVF6RmM1aENqak5FVURtLzIreU92WEJXRVZxelZIb01ROVdzSnVhcXdlMTE2WHRwZWNvMHQ1bnF6agorbjJiajdpYjZLb0M1cDlMZDgyT2wzTFBobW1SNk4xRHNTTkEwNktYeSs0ek1PdUU5Z0ozNGxPaTN5V0xaU0pZPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgMzdhZTM0NmJhYTU0YzUxM2NmZjAyOTBiYjMyMWEyMmEzNGE0YThjNCAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcFFGZGFWR3FsdjlqUUFBQUFBQ2xEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBeU9Wb1hEVEkxTURNeU1USXdNekF5T1Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzB6TjBGRk16UTJRa0ZCTlRSRE5URXpRMFpHTURJNU1FSkNNekl4UVRJeVFUTTBRVFJCCitPRU0wTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF1RHdkQUZUdEd2T3E5ajBZCitZNkQ5NmFmUEtVSlNUZW5qaTc2OHdHb1NDRW9VbUpWcnR1ZnVwbTNmNUl5NXJzUXlQQnNLWHFYdkN6bk5Ndm1HCitsazhrQ0tCY0M1c3dXS0RuL01uYklwTklaTWh6YnlJTGc2UmZIMkNVcTA1TTVFNitzT2tiQUpiWFZ5SE9EcTRGCitkRFptUWpvTTJlQU1wK2JjeXlkd1JpdFRLMkNYS0VHWUhwL0YyWUtLV29EUmpnbjlaWjdIWFowWmEwaDhUY2V0Cit0eTE4UjBib203anpTSTc1eC9ubEgrelFuOEoxVENKdEY2SHIybkN6T3h0VVFqUlhqWFh2aUZad2h0bTkwZWxNCit3Yjc2N1NHS2xEVDhQSVIzNlFqL2lqcE1TN3l0Z3JCZ2ZPb2FjaG0zaWZvZzAvbVIxUWd5aWRmUDRLWmcyZklNCisyTEM4dGUrTnJXTVRsVk9oNmtpTU5CWGNBcUlQeWdGeDFzbFV3MFZac1IwOUFTdnZNL0RHTjNuWmJvZzdRd0VOCis2Z2c0aHZHVkpjTGRZQ21sOHEyRkRpK2lYWXZVcDljc3lmT0dCY095RWg2SGJocXlwR1JPUmJoS1Q2aWVLL0xPCis3b2NOczJzb0N4NWgySVJTaHpvb3ovUEY0RlNRMmEzbTgzN2FrR3NVb1FpMlFkbTZmNkZkcXBrV1lOMC9DSFJVCitieWdpYUNlR0lBTjc5TDBOZHlqN1MvZGszcDZEME9ZdFQ0RTdZSUVlSCthWldFSnczUk1uc3FzcUFuVG5jbXNCCitZQm1qWDRqQlNMeDM1cFpEZU91bHNMVDk0UkVPbnhhT0RVRVpIZDVQU2tOMDlublFHMVR0ZWFoT2VxSXZOcGt1CitvMmEvZ2U4Y3BIVWI5NldET2t2OUhRVFB3MDBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGTWpLSFB3eEF2RFVQVHlFCitIc2Y1V2JvWGJJWW5NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUYzS083QUlpeVFNUnlnVmZ0MHo0ejVlSHdpenFQcnNYaXd1a3E3VGpYTjJECitGTTR6anJYM2dLSk9CS29GSFNmQ01sMGRHZjRhS1FIUnVScnZMeUloTDNjMkNIeEp3OEJobnhITENld0lhV3k5CitBVExzNW45Y1FCK3A3aW0zRFUzdWF2WmEwS25qZHpmNXdpbWxZMnIxa0dXdXp6c1Z5UjlubXlSMSsxcFU1ZlZMCitMM1dhR2hzS1Z3YWxRK0hpT0l4MjA5SktHc3RQMVFrZ3pjenI1bWp1dGNIemE2TlpSMXRMUml2SEluMEp1STdkCisxNk9sSmlRSmdvcWRqNWtRTmsvcDF3U0VQYUp6VW1heEpaQ0FaMzJXVk1QMzF4cjhDSFpvOTRsWmNVM3lUZnRhCis1V1pSNXZZaWhVRTBnRklrRzd0Nis0cXNENXNOM1pRcDlac01KYkRuNS8zY1A0WXREY3czeG4vdnZqQkVYdm5wCis0REx3N3lUYmM2cG1JV3JQdVdFWG5UTldiSWp1MHNZYmlHcktIY3VBaFl2WnBxbmtwbmV6WkxEWXJ6YllvTjZwCit6ZmVkbHZ0bWhHZkJ3eFQ2STdUd2lZQjdLMitlWWtYTDNJVlQ5VmZUaER1OEQ2RkE1NHRrME9ZOGpMbUpTU1JYCitzRGhxZHBzZ0lKa1lzc0JzTC93VThyMWFiSFo3T0wrUW9OOEcrbEFDcG1RK21nQ3VNZTdhQWdVNUFHR1ExQTE2Cis2d0Myd2RHMTRiYzVHSy9zdXpSZWU2QnNoZi9sMWV3NUNmUTAzOTdzcEl2Q1p5UE1KN0IxRGpwL1NhWUlKSm4zCitQTFl0ZVBlSllZQjNzRHMzS2MwR1djTDhhNXNBckc4YlMvRCthRFNyQlFqdUxRSDJWK2JEcGsrSVA2cFVDWGc9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCA0MGI4NjgyYjhkMTg0NTBhMmIwNjg0OWQ5YjVjZDk2ZjRjZGRmNGJlIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFkazBMQ2p2SHF0V0J3QUFBQUFCMlRBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF4TkZvWERUSTFNREl3TmpJeE16QXhORm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDBNRUk0TmpneVFqaEVNVGcwTlRCQk1rSXdOamcwT1VRNVFqVkRSRGsyUmpSRFJFUkcKK05FSkZNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXhZRGI3YU05RWE0RnBzckoKKzN2bnAyZGZJemZLYTduRnNFZnA4UWxZdDcybXZYeG9ZRnFLM2VLWkxFLzlZRmgwWHlOQnhGL3g5UERFS2F1S1kKK3BSaExkelBxcUtVTytGM2c2aVMzTkFpaXhlbXpOZGNjblhub2MyV2pLNUJQM04ySC8wZzhuRkxKVnJIejlhVDAKK0FWNGVrRThkNXVEcWU0SFI4YzUvdGNiVEhwelg1bUhidGtUVXE4a1lORm1hNE9MYUpNTjJCcFJwVWIydDJHdUkKK09Da29GdEwvWVRXYzRBK0R1dlBNMjRwL01TODdBc2lOUGZRSTdNNlBzbDFiZXZ6d09BK1pZNmg1WWRVb0dRaU8KK0tLMXE0TXd2bGRleTh0TTAybWhqMm16cUZzNzlFL3ZSY2h4dE91Y0FQRXRIMHNnbUxoV3lkb1g1UkM1OWt2YlcKK0JVZFNiMC96Z05xZE50S3Y1Ny9uWDBwQ2JUZGZQdWp1T0NaM0hHazhWWWNOYlBOc2JmeVRIUU5Ydks5UnQ3QlMKK1hmR2NuTnpJNkFJeHVQcjYxckZWOWdaQm9VZ2JaTm9TbzJuckZ5NllGejI1YjVZalFyL3l1eXFUTTRQbHozK2gKK25QczdmQnc0cCtKbVlERC9YclRMK05GaHAxWjZOWGNmODFIU3FLK0hUQmdmZHpsTnIvaENzZGxOUGpqajdVOEUKK2RBT2p1UVFhV3BOb09IOG56dnk3MS9zckZWQ2NUU2NJaXNyWFhJanU5TmtnVEhlSFdySjRuQ1F2bWFQbDFkTE8KK25mVEV1QjM1c2g0WEUzUGl5a29aSkVub2UwY1V5b2g1Mjd3akhxV1crWHFYdEZiMkpJdHp3VTdNNXhGN0MxNnAKK0g5Y3RNRUc3N0dZVlZJWmFRc0JGaTY2RFcyRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZEL25Ba2lkdklCYmx3T0kKK2lrNnp4Y1hidDV5dE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQ3cwZm1xVmVCYlppY0xnVkJSRFg2V3lIYys5MG5JdmVUTzl5VWQrbllDY3AKKzFONDJGUjFtdCtQMTBmRWlUbWJzck5QMjdvaGJrelFPdGNKajA3YzlYMkhHaEtWL1Vja21DdERVYU1ZRlA3U1kKKzVsVUZpeW8wOGM3MVZKR1ozVTc4SXprRXhNRWhmTkM5clFiUGpqT0g2UitzYVJ0L2lkNzEzL0JsU0xGeW1haEsKK0F1akV5MDA5UHd1ZXRVSkcycDZKRTdKbGhmemhLUE5GdlZWUTJNQVVZNG9rc2JSZDJYR0plMm5pdW9weHpzTWIKK29DSUVveWpWWVlVVjBvRFc2NHdPb0IwalZLcHQzRWNyWGhnQ1VTWFpuZFh0Y2ZuUjhpUXNJdnJ4MlR2ZkhycTgKKzRoQzRrblNMYVpFbnYxb2MvamhFWnFSSzBsMGR1c1lIeUFiZkdtdUg1TjV4eDVCTkRmU2xOcUNLVGczTXJyYWoKK0tiMzRWYTBrQkR5VXhaL1IycXAvdlhKQ24zUmxXV3NHUy92YW1EMG11eG96TlVvWEdOdExsS1hmSk1jQjJEOHMKK1ZRU1VwVENjeUpQejRIYkx0RVF5VmF5WGlSM0tmREx4aFJQNUtwUmZBczhERVFDR2RoTVV3bXR5dkFnVlNreHMKK0pPZVduVjhIOG8rZ1R5Ry9jSmsrN2ZVYURWY0kvdERLRW8yUkFSak5hdjczMlZXVmFKalZkMjFxV0VXZ0lUaWMKK0NMNXhEaHpGdzd6QVNoYzBNKzJCTjExYlhoWHBMbXRwQzdFOHVFSEVxRDBkcDZpTUFrWnJaaDhMM3ZqcjZtY1gKK3dYVUFRT2UxenZyRkg5Vnp2L0hkUU1ReUhqa1pLb3Q4U04zUHJ6RVZWNHNJYjQ5L3h5Nk40ZnlLcmdyVTlNdz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIDQ2ZjI2Zjk2MzMwNjkxZTU2MWI3MmY3YTYzZGNlM2EwNTE3MDM5ZmIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWlluSlVNWWw1V0haZ0FBQUFBQmxqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXdOekl4TVRjeE4xb1hEVEkwTVRJd056SXhNVGN4TjFvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzAwTmtZeU5rWTVOak16TURZNU1VVTFOakZDTnpKR04wRTJNMFJEUlROQk1EVXhOekF6CitPVVpDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwemZuRzNNOXpOWlpqK2laCitRZjhoQmU3M0cxN0ozeDZkMTBLWHQxVFJzZFdPZUxaZHlSY3h6VWNLcDcrRDM5Y0ljZkc0TExtTGRSbXorWTdjCitLUlFwbWQxd2R1YnJnVlZQSWhsRjR4TG14Z2FCTWo1eXdYWmNPeVY1UFN4eEtONklrSms1N2pUTGhwdE03OXhoCisxQUZCbGh2YlZ6UTJ4RTFiR1RFak5PSW5YRGxCL0FBL2p5bHFzNjBGYTVXNFIvdXpUaThjb0JYQW1JalplWnU1CitoUml6dm5OMEhIUUZJUEdyQjYxZDRKL3RYYWdsSC85a1FDY3g4ZE5XNjhUcVgxbVh6NTVybFJMV0VXd3VuMXp3CitJM2IrVzFCejV0Z2UxSEtiS0FMeGJmbGVaVzR2aFNKd0NYV1JMRDVIazZ6TlgzNnI2UUdmMEZWYk9CSHBOUHRMCitNWGhWdGxGTDRqN1N6ald2UGMvZXl2SlJyQmpKd1h1UC9aUmtTdTIzaEVjV0ZNd2VIWCtvLzAwa3A5WjFXZjIzCitUOGFFYVEvTUJvOUhPMnllMXBxYURrSHM5Mk1SUG1uaEJLSmkvM2tlZjVGZFVoS2ZNVVJtWmFUak5tSzIrRmVNCitxaTNsY3lHQVlpT1FncjBnUVY4a3g5RGcvazlaOHR3VkQzdDhiSU9XNTJ1T2pmZHo4Z0c4OTNTOHdoTEZFcGpMCit3MktlOVJ6dmJuOHRBUVRUVncyQ3htSHh1Mjc0VGEweVpoZ05VTzJqN0dEUlpjN2Y3c01KYVF0ZnBZNVFMVm5OCitjVFkwQlNYN0QxczZVNE13RlJRMStjM0c5aFlLdHpucUNVTXUyalRLcEswVEFvVnA5cVlCZVNaUTB6eCtvN0pkCit2MHBFKytrY2JEY3dsdkhDRWlDSVpuZzE1ZGNDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR3lOWUxxck0zcGpWT1JyCisyVnoyQk5KcEQwNjZNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUhSZ2JXS1BOU2F4RWpOazNZdERNcEJiaVRCQmo5dnZUVE1QZmIrWnJsdVdhCitienpJcElBYW91eDF3TkNEdEltVVdTaHlHTW5GQWEvS1FWd0d4eHliODlXL21ZZ0tpWDdLMTRBWGlURXVVS04xCitzN2IrMFRTQ1BtNGR2L3FkKzZoUWVBUlZraGppM0NHa2pidTlVb05jQTQ1bFlsYml6aEhUcU1EaDVaMXlSL25CCitrUkxnbnRzemI0RWZaTkR2bmpac3BSeXYxcm5wbzhtMXBEZmMydXhoL3d1ZUVRWDZKSW15TzNlV0RvL0pJeHlYCit4Z2Ziak1NM2YvYThpUWZUVjh3NHFKSExaMVdMeTVLUnRCSW5JRExDSGhJelkvY0l2bzF4bVgwWjg1VDlZcmFCCit6cmFpYWh2TkxjOEFNcW1LZkFuUm9SelQ4S0lWZ1Z5OU9xOEFzaGw4ZitpU3V5NEEwamJwTm9iSlBqbG05b0I2Cit2UGV0bHF5V2ppcVFMT1lFbW9MWk92NUZTZ3V6ZkNyenRTWGdyaUtFZDBBQUNMYjlyYTNKNFhoUTZkdXo5eWIvCitqWTBjY3dDN2ZEdjltcStSTlRQN3hkdGoxSnpSNXZEMDJqTGk0eGQ2eThEQkhKcEVPa1E4VU9RL2hUUXpBYlFSCitOSnZoaGl4RXBDLzFxTVdxODd0dStKL3VZQUJTYWs1OFVaV0p4aTk4QVZONXlqRUh5bUZGdFF0VFJwd1VtMzlvCitWM24zaDJVdGc2ZUFNU0JlMTVRWlpZWXA1Unk2YmVVQU1Cdk5Ha056dXJQZE9LTTVCY3ltZlFpL1l5NUx3aWFKCitkZ1V3aUFGdi83Nyszcm12b3AxaTRxKzd1b3pqT3M3UkRGOW1NZERRTEtJbXZ1dEd5VUZBczR6WGZaT2hHQ009CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCA1YzI5MjA3NDIxNzliYzcwNGRiMWQ4YzU0YzM0Y2E5NDQwNTYxN2NhIDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFmOEdqbHp6alZpMmNnQUFBQUFCL3pBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekEwTkZvWERUSTFNREl3TmpJeE16QTBORm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDFRekk1TWpBM05ESXhOemxDUXpjd05FUkNNVVE0UXpVMFF6TTBRMEU1TkRRd05UWXgKK04wTkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTNRYThyb29lRnZaU010WjUKK2VLRHF6VlgxeWpsWU1XMWc4RWZ6SXBhNDN1VFh3SVpGQkNhY3E5VVRSU2ErS1Vxb3FFSDlhM0htOVNIT0FMd0gKK1FBWWFSaWN5RlF3aUpJZ1plWFJwSnZEelVDUmRNZ3NpRlVNbmRCV283YVRRUENEdUxvUFlHTUdSOWRqZmt0QkIKK04rcFRZTUJMUFFCOVdIZU92TDdyZGp2QzFGQWRRbDFZU3M3RCtQMldFL0paVnlieUtpT1pZcFpxcEd5ZEx3a24KK0NhNFNwdEprTEZDS0ZTYUdBQlcvNEdXeFVIWFBrSDRWL0Z4eWZXUEZVTk1aTkpKRElBUmU5d0JKem9FT1BQWDAKK2xYV2d0aW5UTjVQL3BQREI5eUJUTW5qSHB2OGVUeTdWMzZnbGJYUzZTNDdhQmhkOWEyamNLUkFHdWJoQllBdFoKKzM5SVBBTklBQXcyaDdsZ3hlcDd1LzUrVEoxeXFWT2M0ekNHS0huMmVqN3dNZG43NWFERkk0SEsyb1JSbVVYQmsKK2M3dDFDbkkrcnFEV0R5cGRvNjZWcEtUMEIxOFN6R25iaUV0NXl3MnpMaFZZNWJPeUl4TDFTVDFaUVdzaFNjSnoKK3IrdjdNWnV5bnJ4RHM5b3VMdG1zWkE3MEE4RGk4bGdsQmZPeHdZbkRGM01HODAvWm11Y3BTdThsNnhzeHBPR2UKK2YrTi84RnFCRGM1QjZNajVMR2JyVzU1R1VHQWlzT2YwOW5SU2hxNllQZ1c4bFVLSEdKU2ZTZXNGVVlDY1BieFIKK1NUbzE3RXQ5eGMvaXdQMDdyc1Y4NGVydklRR0VTSTNLSDdmSmNWQUhJRDlvNkY1UmZNem9paXFhdW9pOEVYWWMKK3NyOW9lelZwUll0TGF4VittZ2ZnalhVNXV0c0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZBZlI2bXNWWlpab0p3bUMKK1dUTlpZbmRIWFNGSk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBQlVwSmpCa3N4bFYzWVNYRWlUanFOSlZmOFBvTmh3UzZTeHZaeWRZQkZLdFgKK2hMdGs4bUUrWHA2RmQ1QTA0ditwK3lmVG1paTMyV1hPYlNmUmgyVzZNejZ4KzV2cHpCWEhiL0YwVUhHOFc2ZmYKK2IzNG9scXRrTUpvbnNjS3RDT1FURy9rZk1DZFAvOXFOaGlCS1hvbDl1Y1NOcjQzTGRmT1pnVDJqQXNzVzlGZjAKK2w1dG90VjhwTW56Q3BwV0p5YUovRmZuTlNoVWhaT1c3ZUxyb25zU3RXNUpwRHVmTWh4RTUvWXBlYlZvVisrcXcKK2p5Z1RJUlNHTVlnMmNBeDFKOEdCSlNVTXlpbzI2clpsQXJQNUlSeS9vZTM5dlpNUE4vSWdRbkdrbGtMS2hTK2kKK2hpOEkvaEZmdmFHL3RTRElSMW11Q3FnZlJSMXFjTmk3bHZDM2orQVNXRnczZy9KSm4vL092UGY5cUlCUEJUT1IKK1dOdmMwSDAvay9HSkxScDM3cVdiUGQyZUNSTkwyZlhxQmJhUGtaWEQvNGFxbEFTb2pNOGl4RlR0YmxiSDNKU0YKKzRsYmd3KzRUS1dyNkk0K1N4NmhQcThSSVdtTVdWQzV6ZU5Pc3hUaEVwTGVvbHVsS2tyZFVqVUVZdWV5em9CVE8KK09laG1VYVErY0pKeHRZTXBYMGYwRC9IMTdkQmMxdkd5L29iV3YycFYxb3hoeEZQb3FYRElSV0Y4TWpxbm5iTzYKK2d1RFlaTXJlamlCTUlWYWlnVUNxZ2lHdjFyaWhmazloNWpSanlySXBpQzllQitCWmdFMklsUkU5dEJLQklVSmgKK2ZRNENqeEhBNjNWeHVnajBKTU5kZXlibDdEcmFxKzdXaVgwSWp4WklhSnJSZ3d3SlkwU2tvc0ZLOVdMZStDQT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIDVkMDgxNTk1MWY1ZjYwNjM4YTY5ZTcyNTJmM2VjNGJlY2Q3NTU0YjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBWlZrQjBadis2MWdIQUFBQUFBQmxUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXdOekl4TVRjeE5sb1hEVEkwTVRJd056SXhNVGN4Tmxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzAxUkRBNE1UVTVOVEZHTlVZMk1EWXpPRUUyT1VVM01qVXlSak5GUXpSQ1JVTkVOelUxCitORUl5TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF0eTF3RWlzYkVyd2xSa2diCitxbzF1dmJEaGNZaUVHNkRCdzZBVEJPMnFnNGdPYUpWbXZmWlB0VHZIODF4cXNZY1dZUU9xMVQ2Q0ZBenJDWUdFCis3eTVHMHZQUkd1OXM5QjdIYjhEYlBqZGhEWnRFMWR2dHAwVDlOZlJzOTNvcTZNTTRMSWlubTJ3UVV5SG5HdGlhCit4dGp0Nng3MkRCVG5MRitSaDhmNEgyMEMvOUNwV0cyTWFRK3o5YnJyeXBtbGx2WXBwY2VKRjh0dW5JYm1SRjlRCitWWnlweEdDUFJ6WmMzQUpjR2pGbVNCcWdwOEo1NzFhRUQ0UTlza0djTGsyWkg2Sjg0TTF4MnpWOWpsVE1YTlpZCitWeHIwYWsxVzFDUWluS2N4UEdYL1VIODJicG1SZFRhbmxFWUxqYmZScXJLNmRjVjZJUkdhTXoybUZqVzZCOWo4CitHRjlPeG1QZDR2cDZvUXFkWjUrOTBuOHdKbS9DVzN2TlVMVFVUZCtIUDFScHJIVE5TaHVZbVhRQ0orVm1sUFVoCis5WWdNUTBzYzJ6RC9VeHpVMHhFNkdGYlRZbDBpbTViSS9FZ2dIWVVUdVhzSGd1M3lvako4QUdSNEpqc2dyc1ZqCituSU5MWFd6UGJIRWRON09EcSt5bHQvNm5rYnhIVkJmTXE0Sy94bUE3dHByNGRtTFdaTlI1dk83TzBCcVpydElyCisra0NJMjVTWHVvL2lKY1hrWVpBMFZUTE8xbDRKczJYdjhaV05nQTFUbGVTQXgxMmd3Q0xobHF0bW0vYTJPalN1CitnSGo1WE9yYmVnQjZ1YmxTNDhLYmh1NXBmaXN6TkQrRmVNZkJ1T3MrbythNGo5SXY1RmlNTHpVSFIzUXowOGJuCitpTWlPVWlrUUVJNjlTWGRRL1JhLzZ0Vzc1dk1DQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGQWo1VWpqWTNFa05QbHdoCisyZE9panJ1MElDVnFNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQVpZTldtdkR0ZUxnMVNaZVVYcHdjVWFva0ZpVXBLOFkyNlMwN2FUR2dEN3pXCitBVGhjZi9lSC9wN1pjcEo4SmtMaGdXNG02SVphejhHS0pmTnZOeFNOME8wL1VOSnBTR0F1em5FSjRpT1RzUVVRCitrRWF1Y3hsWm5PUmMvY1RTZHNPL0xhbDFtZmlqMEdYbjlKQXVKZ20wWlZSYUdadFVoV2FuSFdVcHBkT24vVkZGCitOTzViNmJ1VHhBazd6YWpMNjRVZEV1aWhrUVhMb3dObDlKRk04TGE2VE9QcTc5a25sd0lKb1R2RnIwRm1qRGVyCitUUEJGRjBoN0JuNi9iUXh4cHRNSTlCdFczZnQ4ZFNFK2lxc0dZUkZqZUhwdVBmcnpKcE1NSEZLakptSHJ5L0RTCis1eTRIUkdNbEZHOVZ0RUgvanhBbld1L2llckZtRjFzTEFRY0x1dm1sMHdwSkFmb0hGVGpaYUREQWlsOU1NZ0VOCitDYzA3K1lpKzl5STF0eVg3Rzd2MGR5WldnQlMxQkNLK2xOQnQ2bnc0eEZaR3QzTkxlUTc5ZURjN0ZlU0RLVGwyCitnWUl2aTc1VWNzMm1ycXhtY1Y5QTJBblF3Zng2cUlLN3BSY3JGaFI4dmtDMi9TM2xESHdHS0FVa1ZBckViZHM0CitQZUp4NUQ5SDE3MXJYVnFaVkdrN0dkVnNDa0NvWUpWb3VDL0Z0Yks5cW10bFRWeGNPNzhWb0pBMklHZ2JuMjNGCithY3ByZnhqWEJTdkNUS0l5MjA4R0VIRTRObFpUTlhxME4rbDE3eWlmcE5sRnpFQnFHQUlyL1oxNzA3Z2pTRjFSCitTRytZWXdDSmRIVHdIN2UxNnNXcGtxQUZ6NURLUFcyMUVyU0dpY0x6SEVYeHBJTzBQUGpyakpPVWFVekhYQjQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCA2OTE0NmFjM2NmYjM2NjVjN2FlNzgxMDFjY2E1YzE0MjU1Y2EyYmM4IDIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFkeFBEbFdoSExGRGdBQUFBQUFCM0RBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU1TURJd05qSXhNekF4TmxvWERUSTFNREl3TmpJeE16QXhObG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDJPVEUwTmtGRE0wTkdRak0yTmpWRE4wRkZOemd4TURGRFEwRTFRekUwTWpVMVEwRXkKK1FrTTRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXBJTHA1YlAxU3M5KzBzVG4KK3RGOHc3ZHpRWDd5TFFFbmFUTHI2R1JPb2h5amgvRzlvZE5xWmFabDVOM0x6bG5heURZN1lxUG1rUEVDdWUyOWwKK0o3R0llNG5GOU10ZURMRE5STTFwbk9aMGpFSWN3Q3VVZTlINDl3amJiV1cxL05NK0JHSlJZaWlXT1pJV3A0bUgKK3RmcnNjR1RRbCs1bEZwaEpoL3dxQS82THlZdDBRZ3dHWFdUb1ZESWptOFJ2SExVb0MwM0ZocEFXRUkwd2g0Z2YKK0g1blRKTDdySVJaamMwTjF2dWFOeTZDR0s4eXNGeVhVKzNTRmRaTVZFOERtbk5qTThlTmFLdW83MDloYVhlL0IKK2g5Q2hUSnRQTTEzYjZsRitwWVhjaUp2dzBoUEI5bmxyWldMQnZiU2U3UHFoSE9ZckR3TG8vVTNITkd6TXp0RzkKK0wzUFh0d1dScUY2UXN5UlhRejlzSllMTyt1T2hlQy8rVzRWSFZpS0pUVXRQbUJPTWdmbFhKZ2svTjZWSzU2Y08KK01xUVZaVnpzeGVoOUZCSjNUQ3FyT0ZhNjR1QzczYWowOS9QZ3pzTEtQclowYi96cllqSGpXeFR3S2ZOVmZKRkIKKytobUovT2NQRG1SQ3JQWEJPV3lLcE5xbkFCUW9nZUM5TVZzcU0wSFhGeUVDYi9PczB1WlBiY045aGovdURvZVIKK04zdUZJTXIzeWdtOEd2THZvY1VhZ2FoaGp2SzgvQlBCeVNaWkttK0Q5UXJCOEJ2MTZYU2Y2cmhBeitoOSsxQjIKK2lQS0FKTTFrSERJdXdTZ2ZNOTE1YnhMWHV1SGZ5RU9YYkdpVERoR0pOWGRkQ2ZRNzVpQmo3T3NxQjJxb3dscnMKK3lCaEpKMGd5bU1mek5VS1FucEUvdzAyOE9iRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZDdUNZZngzaHduZmNhTUwKK3FTWEtWQ2tSRXhhaE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBaDFNejhkVS9kT1diLy80aS8rWnc4YlZUNUljYUNXMGw0U1pHUWtMTmdZL0IKK092VnhSbm1jWGpseEg5TTlpQy9Gbko5Y1QvS1Y0dm1ZQ3p0K1M5a2k3Z2NyVkpWVk5EUXpNRHdvV1hRWkVXL2gKK3NZcFc1eURCNllLSEVoQ2VvQ3YzUkN2UGZBS0VmNHVxQTZvYkJZNFdGeFE5bm5IRWUvaXVkUnlwVUpxYjZ3M1QKK2E4a1NnbCsycXE4RzhWRGdabUpNWjlZWDlWT0wvT3NRbEhmTjlaVkMrdmZISFlqdkFIY0ZseXpGSjFlbHZVN0wKK1RmNVhqZ0p5b1JPTUpvL3R3Wk9OV1I4QU9OOXVDZHFmT2xVYkF5VmhubWVOTlVnOURxUDErZVNpY2pqTlo5ZksKK1VWYVRudmFTRFJRVzk4dzFjeG9rQU1BRGJBQWVQdDgxUjJZcTlEYzFvV2JUeHVsVmRxYzRYWVN3Z1BQR3pvQkkKK2R2ajZjVjFIbzYvNkNlL2VwYjNlZWlKQSt2QllKNWxYTHdnZ3FnKzhVSDdaSjVRbisyVVo0TVN4Ly82eE1maUwKKzFlcUsrdEVnVWI5bXZML3FIeWVyNlIvdDJBSlZSRVkyOHFkK3diR1g0UTd2ZTdDY2ZzK1BHMGdaM3dESWFyNk4KK1JtMzI0L3dWRXBOTTJVWUU2SHdaT3RaSnN6L3lVMlphR1F3MG1CQUl5RjlNMnBIREFHMkJmNVY3WmFjOVdPSU0KK0VIR2xSUDNYdUhJaHlJZWVQdCtyUitzK3ZmUTdJcERBb2YrTlVDMjNhS0dESDUzOXpVbi81UnhERjhMMVVjcGMKK0tHalRKdWVXcUhxWklOYzYxY2dRckFaQWF4bGh2dFNwQWFBb1pHTkF0Si94aWFGREF6bXZTTnBKRVFnVlNOcz0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIDdjYjRiNzhlNjg4NjE0YmU0NDIxYzU4NThmMTViOTZkNWVhYjUxZWUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBYXJtVWJNVDBUMTMzQUFBQUFBQnFqQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNE1USXlNREl4TkRreU9Gb1hEVEkwTVRJeU1ESXhORGt5T0Zvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVWxHV0MxTFJWbEpSQzAzUTBJMFFqYzRSVFk0T0RZeE5FSkZORFF5TVVNMU9EVTRSakUxUWprMlJEVkZRVUkxCitNVVZGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvblJZVnh6K1V5SEhWcTZZCittbHVVRm9QdERMb29XSkpuRFpoZG9EUWt3Y1NrTHVHN1p3K0tvcGp3aDllNCtDTDhPNmdjWTZyZlQxMStxVGxxCis4RDBkN2pUdVBPRi9ZeHF6S0ptN1EyWkx4L25EY0poVnZNRGxHZnBlV3pvNHUzYVhUdzlEUktXRzBUKytVMXdxCitsdUlYblk3TEdLU0krUTFvMGRONXV3Zno3Q1RTVTVnRG9rR3k5TjlZUjk4QjA2aG9NSU1qUHUyV2M5V2JGZVNnCitETUE5VVdEVUNFWUhpbzlKWlhWS3N1MWM1UFR2Z3ljQUtCVm0zMThXb1ZZZW5nUWtPWHZBTHlOVTA4M2NxYy9aCitRZlpjTWJqdEk0d0VvUFY0Q2ttWW9oSnlxVVpQRW1WbmIyckNYR1JZeWZaeWtlNW1RR1QraGtuaXRRV1B0eVVUCitTWUhWdGZzRmpKakJRRXVWZUlmdlJlenRaR3ZWL1lieXdOSFJxU0VidkFxVE5iRXBTNkFFbEh5bnVpRExQQ1QrCitlN0JGM2RPUS96bWpoQ2xhK2FPY0k4ZFF1UCtiZkpVNWsvSU1TUkZWWThwak81RnhjNE1QNGwyTDRrL1NZQVR4CitHUmxqVE5VYmQ4bzMvQU9VSzRYb2tocXArTFBOcWp0Y25hNk41aTRCUTAvUnJMMENHak9yNU5FYVVtWlhZNzg4CisrbGJaekxIUGFHems1SDlyTTRGMllMZG53U2VCVW4ySWtIbVMvRExwWjRzamVsdi9wYVlJWUUySDdDR1A1OUhpCiszN1NwampSc1F3bm5Ha3Q1dlN1OVNJNlVKbUVOZ3p1SXJOQjYyRVBhdkRONnpaYmllL3lLaEJHOUtmNTVWamZhCiswR29SN0hTMkZzeXE0WjVDU1ZQbCtFWTd3dDBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGR0FkQXNRbExCQ3pKNFpjCitEZnpUS1lMMkU2RG1NQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUZ0QW8rQTVtYWJBaUtyTHBYRHl1bThWcGh1cWJuQTU0VENsNm0vcWk5K3p1CitheGZrVjk2dEh4U2hhMlJYUE9pbEJpL1ZRZERoYzNzSmQxb2hUZTdPcXNxNTB1UmJPdmdqZkltV0JoYUl1L0tvCitNeWRkU0xjazdSYVVLRjVVN0NNcEdHYlRnaU0wdG1VVjE2K3N4YjZRVnV2c2E1amI3ZjM1Tk1TWFMxRWJFUDlICitwMVRDMDJxdlFNU1FjV1pva3g4WUtmR081NHRNdS8wMGxDajhzYzYrODBNRVZjbW1BazAxY0h1d091aGpOTDlYCitwalVCZ0JpUFZVSk9XNEJRMmhDOCsrd1p0WHR4WWpZazJmV25XaDUvNFZYaHRjSDdIb2xLVitKWFYzdkZGUENsCit3TEQyczNlUkJtcUNEenBDakNZbWpJVjZ4VXRjQk92aHZ3c0F2b3Rhb3RpSTk5UFM5V2h3ZmpWWVNSZitiaUppCitZeXp3YnYyMUUwRkVHd0NSRWtYQzBrZ2hORTl5QkZSYXZPdjRYdzRjY2hzcnFvK2JLTHhFc09tazZDTExmQVVaCis5amRndjV4bUVpMnlsbXR5OHY1d0dUNTRsR2R0Y00rZ0N6d3c4M2RFR0xSSFNXL0c1cEQzQjdmVlR0UkMyMVFWCis4bE9waXZsTHZ5U3Jhak1Na2JEaWdVN0JEb3RIRGhIY0dVZW9RbXhJN3hjaGJxS3F6ZEh3alg2dVZmMEVCUGlmCitsVnRaaWhURTVIZ1RXemNCbjFrUVlncDdYdWxrRnU0Tlp3NUdzYkdJOUdsYlZtRVp1ZEZNVEpQR2FNOFZvSm1zCitBUG04UFQ2ZTFWUTZSNXRMbXJ6YzVEOXQ1dmt2MTl4U05DSHFYME1zazlDMmVPcUllWVlCZGJTSHZTN1I2MDA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIGlmeCBrZXlpZCA4MzQzYmFjMjEyOWQ3ODI5OWM0YjUxM2NjM2RlNjEwMzdiZmNjOTU1Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWEyeUh5N2hGWUpZY0FBQUFBQUJyVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl5TURJeE5Ea3pNRm9YRFRJME1USXlNREl4TkRrek1Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwNE16UXpRa0ZETWpFeU9VUTNPREk1T1VNMFFqVXhNME5ETTBSRk5qRXdNemRDUmtORAorT1RVMU1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMTRDVlRQOGNWMytiajliVgoreVBvMFAzemtUUk1kUGd3UmtyOHJDT3dZemovMEFBQVBPaTVLRVYreEY4Tm5CU2owWFhyRTRTK2lTL1RjcUVnNAorVGdmaHh5SkM0VHUvdnNpVlB0RXJSSDQ1WDVnN1dXN21NRysveXJrb1V0bzd0VWhWWFJEdWFlMzV3VitFODEwbQorYys0NmZST0tGSWduY1pHWUcxWkNVNFNTaWF6VmhNRHpka1ZXdHVTV2MzTUphZzk4clR3eDVmdlozSk51SGlrNAorNVJ1ZEJpQUJEcmpSOG52cm1UUWcrRVdsaEo4UjVqamRRNnpKelArWWZZSnNlMG9QSEtCUERMa1FMa2hxWG96KworbCt0M0xwU2NCdUQ3VnVVMVpvakVzTmc4WTJyeXBrVVdFTjFlMjdGUFYzcnE5RE1tam0xR0s5WUloVUdxZE9mOAorb21ueHhpdEEwazVkU0xHU3RhZm1KQm1sODJGSFhlRG02dS9SVDFVWlB4cjE1UWExZHNnVEdkZzJSTVZvN2dvcQordC9WUzlydGNPSG9Da2g2MmUybFZPTDdaVS9SRm1WR3RhK3VkUnJ2R29Zc1hzVXZpV3ZveTcxQVp5YXdqbjVXQQorYUdTKzgvZEdWc2xvS2Y5elduZm1pMDd2ZW9OZ3RQU0NzYmNwVEhsQlJxZmJ1OFpCa0ZMMHp1NlJXbnp1M0pOWAorbmcxYlIyZDNTLzl2QmY4UWxZRTJqT0labUo3c2xWOGtTaUY4WWhDeXRXV1Zjamhia1lBR0xNQ1hQNTdjSHNwVgorRWNaOVdmRGRUL0I2YnhnajVsSzhHSktXZ096WFVWWEIzdkR4ekNpVlIzVUUwcDFaSElwNmlES3ZpaThWTHZ0egorbnBvblhtYlFPakJvdGhXMElTY1lXd040MjJjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkhvYW5wS1IrQnJtalFJcgorREdpckxjNVJjUWFLTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFWRkFWdDllN0FQY2c0dTFnZFR2NFAxZVhzRmFxeXBNNUdTSTZHZ2RnS25qUQorNHI0ODc0N1VHb3Z2bzBCVWczZGVBTUFLNkRqeTd6TDhTOFhVa1c5Zno5RnlwQ200eXA2QW15MTBvUlZaTDBJVQoreUxNWThQb3lyMm42UTdXNmVHYUFqMXRTK1JJQkxvSGpnMldHUWVQdVdjeU1SQ2IyMGNUTmR4Z3hXZ1RZb3BWZAorYkdpYW9VR0pEUmVCYk9GU0R5NzloMDdLOFpwQkRvOVpYWkY4cENKc2xXUWh1WFh2U2xjenhTeVJSeC9kdVVCSQorMDhMTHhxb1NhVS9ZVkJaUStFYlkxbGhlTmM4RjJMUVlkTEkyU3JscUFjYmp0aUUzNGNnNyticVg1OC9RNkZzUworSDlybzRRbGxsYzNEUUJwTXFTaXkzNDJJRjJsYktzY1FRbEV1WXVDOWo5TjZkWDRFc25DZy9BbXhEY2g3OUVZSQorUTRMZEx0eXlOQkpNMDJiVndNWDlDZFJsa1huT21jZEVpRWRsVW54bVhJSUtxUDNFc20xYVpHZkF4ZVAraE80NworQTUvMGFOdFNscy9McUlxYVN3NkhoSExkVUpJTkd0WFJNUzk0RUFDOU1RT3ZHZTBmemcvSis1WXB3VVA0SDZOaworTjFUVFN2WWxoYUFYYm1BZVNJdDhJTnh2RGVmTmZVSkFkNXpqckhlaVF5NURvMjMweHByenZxc3c5ai80S3NPYworNVdNTXJVUmZxU1dvSW4rNFhjbFg5ZDJOQm4zcWJLMFZ5cjdrS0E1SGJvSmZGUTFnU0tOekR6cy9GVEFYMGhnQgoraUVxK0RzRy8zWURlNFhabTBUbFlnVnNORzducFBMSWlVVnlVZUo3RzVCdTlBK0QxUS9jQUNkV3RDNmVWRFRzPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgOWM3ZGY1YTkxYzNkNDliYmU3Mzc4ZDRhYmExMmZmOGU3OGEyZDc1YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFZZ2JVbVU4NXk0cDBBQUFBQUFCaURBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TURreU1ESXdNVEF3TUZvWERUSTBNRGt5TURJd01UQXdNRm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMDVRemRFUmpWQk9URkRNMFEwT1VKQ1JUY3pOemhFTkVGQ1FURXlSa1k0UlRjNFFUSkUKK056VkRNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXcwL05rZnpPbER1WC9tYkIKK2pxclFPYlgrR1BmMXVFVFNxaGR5SGluTEtDbjlCd05zZTJ4VHdjazBJVWcwNWxLdjJEUS9YVjdWNm9RTHIrK2UKK1ZYdDZwemtUTmVEUG11NGwrK0xJV2tCV2FZTFdlK0RjemFmQ0NGKzhlYk43NEhoV2JQL2ZFTURIOTJaMnlRa3EKK3p5Lzk4bUtkcEd3VnJSbU90OU5BajhiQWlwdkx3Zmk0ZnVXSmx5eFZ4dEk2RjB1T29vWmNOeElXNjRhS0ZKZFoKK0VXYzNCZnZUcFVVMjUvWC9iQkEzbkF2eElaTFdOeDJ6TjhZbDY2dEZLeXZaZG5MM2dvM3pTSmZNYmsxVkc3ekMKK2ovN3hWcWIrTmYxZGQyalFWb1AvUFRNSUxHSE5LUzJzT1JBenBJUE02aHJKaDliRE5EVTQra0IwS1lGOUV2UTIKK2FWWW9Qa2ZSQ0FwYUxMblFDaVVGVUhXU3h3SS9mTi9XSFlSOEluVzlOV2F0VXFGUFlGV2srdWc3MTRwR3ovRzEKKzRXVFFTc09DQlpvYndsZFF5c0J1VDE5enA1ekpGTE15RjZTZU81UFdZOEhqRkJnb0ZUUjZOcUVJQzl3VllXNXQKK08vMDhvOUpISm1UVWdoeWZEdFdXanA4RHkvOHY2dW4wQ0ZxSzNrRHhkOE9pQzZXVHR6ZUl4empsRjdOVm9QMCsKK3VIaGl0a2dBdmZtT3JoWEp1V0lvUVQ0RUErSU5XcGV1TDZFdVJyYTJLKzhVTlZCeGpZc0I1NCtxU2JVckFEbjcKK0thbDlNS0d0eEY1ay9ybVF0TCt6d1pDSy9OTHVtQms5aUcwcUZZbFRoZVlKRWRFNkJRYnRweXVnYS9ocVI2WHAKK2dEK2gyTkJleU14Q3NVUk41ZjRJbWNBVVNaa0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZDZ2t4amU3dkZKUkNqMGYKK0M0RE54dzhsK2RGbU1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBZE9uUlN6a0RkSTdKa3VSWWtrbU9zRnZneisxL1IxQlFPNlhrOG01akRITnQKK3lvZi9iT2xNNzJYOFJ1N1hCV3FBOUhkZVkxQk5MaW82K25jVTZhdkNIOGF1YWpsNi9teHdxNnJlQzNsVWtmbXcKK2taaDVQQ0k2ZzdwRXNEN05QZksxZU5NaDFvWmFNQXM0azVsU0pRcGNIMG0vcWlWZEs3ZVkrWmVsMW9HUDlqY20KK0x4Z010Y0NpR1RYL3BIMVROemd0cmpyZ25wayt0MVJoSlZzemRZWGphL2dvekplSGZlOEhkWE9DWkthTFRlUCsKKzYxMWc5LzN5MUxiU3lFZGQvbUNvRDFlMXZFRFhjMFFwbCsrQkNHVEJSS1NWZkpPRFFIVVFvOWExSVFtZUVQSnQKK3RrMTNndzNMdlpoYWdpQXNhRzVQYnVveTFsaFYvMHNLUXB6NXV5QXNaRm9ZcCtTOHhOQXowMVhCdGRZQ2hvemQKK0l0TXh6TFJQakpSREpIbVFjSnFWdEx3TzJmWnU5YUkzNldNZzBkTWhGc0VxNnNxUFNqMmVDd2Z2TFlDM01NaVAKK1dHYi92THdKRnZHMGl5ZUJLejVrVUdtdWhVcHUxUWF2THdwUFFyZmlVS3E3SVVXK3FqSXBxcC9VcE1wTk9jY0YKK2dWaFJSTzEyb1kwL29FbVhqYjRsdU5TcVhEN3VxeGR5YnFKRCsxNjVaNVYzbWdrdWZ1dEYwRkRjQytnampNeUQKKzRwZytUbS9BUE9KU0VFZGhLUGJkSmE0Tm1rRG1URGthTlk0SmZmam9SMFVzU0UxRE16RUVYQUQ5OVkvamlHMkcKKzJ2akVUYmdRL3NCYVpnYnh4b3IrcXJ4WDk4aVA0QkVjaytYeW5kZWo1d015d1hFSkNjcGNTRTlxOVVWSmh1MD0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIDljN2RmNWE5MWMzZDQ5YmJlNzM3OGQ0YWJhMTJmZjhlNzhhMmQ3NWMgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQXBNUVgyQlZsZ1pDZWdBQUFBQUNrekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRE15TVRJd016QXlPRm9YRFRJMU1ETXlNVEl3TXpBeU9Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMwNVF6ZEVSalZCT1RGRE0wUTBPVUpDUlRjek56aEVORUZDUVRFeVJrWTRSVGM0UVRKRQorTnpWRE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbXBnendrS2dtZUluRHY0dgorVVEvdFc3L3VQbU1yeFQ1QW8zWnUvZnRYRk1XUjg2Ujc4VEUwNUg0UGQvN0hXQlI1MEZXa1J2VXJmN0g4T2NBSworZmNOUnE0Qi94WmpDakpweUd0NE8xMGJRN0tDL0hyaFFiSkhvSFZCNmFaV1pXeDlqZkxtL20vcEV4b2F0N0UyTQorakw3ZjlIYU1uNWRSSkVjcy9ZNVZjaUVxR3VRdzFFMDRTdTlsSUJjcnBvSFRXcTljVFZhSjBYcEV3bENCSHNjWAorQlJEcVBZNGVBWVBaV3dhR1pyQ1NOVFpubmdtNTlNcnlscHEydG41RGxRSldHdkZxbGNGYTB6SUd5VnNDUGRZbworT1lHaWJQVjZ0S1lITzFiUEVEcGZqVWNuNGZTOU9GYlFzSnJtdGdtRWthMkJiZEFpZ2QzcllPc3I4SmhXQ0FPMworS0l6b05ybkxTQyt5ZUVwcDkxUFdGZzZseVBybVhDMEwrc3FNTHhCKyszdU5UNU1PeDM5SEJTK2tFZncyVWlyTworRkFyaVQ1VEtnNHdhSE9iaC83aU1SbHFSN3pDTDdhd1B5YW9NRWJ5N2o1eGhSTFRENk1HUEQ4VEhra1pKQWtZaAorVzR4ZEpxellzYithaWNrbHNsSVhpZVYxNVh6bmJFaVJmNW1NZU9OL3BEQkRZVUlIVUlzWHZLL1BJbkkwQWdYZQorUnRFUHd3YXhwUzdSSnhESnJoZXB5QkRxODc1azdjcEtqVUcwV25uaXFQNmF5WWhvZ3lJaTdJZDZSVElTNGt0bgorWE5QaFZRNGRoZFo3bXZzUWlpVDhGQmVwQVhpYjV5d3RxbVFyVndkdll3V1oxN0J1WGlTMENXOEE0WnczVUNrTAorOGVnd2JRcUhxZXl0dC8yNDlObzRnVHdMaFhFQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk1WWkNrYTR6NDJTbHM0UQorYjBTYWVZR3dLYnNQTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFRWWRnQ0FXeGcwQ1Q2bFRwUGNhWjlvNkZBdjJhMG55Uno4eFFVQk00QmZxagorT1ZENWdWNEJHbzMzT1IwT3JEUnpFM0lYdHJNd3ZNdGVFTEh6NE5ucTl2T0orNEZ4czdvMkJwc2UzV2ZhcldILworaHBPSjk2cXc1TEJNK3JSWlV4ZzBsU1VLd1ExSk5OdktqNkxwNXhVTUNHUVc5R3pQUW5ocHJKblhaM2lrejN6cAorZk1qUWo3ZElRclp2RTY2dGF0L3JsTEo4eittZHpIVU5UZG1Fb3Fyc3ltekF4UW5QViswZFVVU3lxYkM2WE0vcQorMXgxWFlVeS9yK284MGtOazYvb2dDNzQwdzlJcnozNUNpeUNiTU81WDBoK1lBbG5lTUJnKzNrTjEvSDlkejU0aQorUFFEcGRSdEFmMnVvQkt6azdxWVcySDhWYmRJZVdwQ3FTbnMxWi9UT0RvSWwvREtSZm4yeWlLSVd0RFgxdnhKdworSXpxL3FlV2Z1Rys5RjBkYlo3cmNiV3Q1dnFzUTFkQVhic1E3L2dKRUdGUm1sNGxmWkgrTUk5K0h5TmZzS0FtagorejNEUHRjZUtxUjhjcWJGRWFGaEladktuUm5ORVNVcUxsbzFHNWMwZ1lvZGMvVGZ1b1gxRnV3bWlJZlpOVERvaAorbWF0K2c2VHdBS1ZFNXZtenNNd0xKYnhIUDZITTRrcWQzK0kwQzlqcmtoMEZualF2cWlrZUpBNVJIL2duS3BINworalR3RDZuRTErT3kvOXR6WXVQVGlXcG9yRFl4eFFibmFkMkZTVjQ1dmNjT2tJUXVmZlNXQXo0M1dhd3RxQ3lDTAorUmhPMzIzZDlUaklEYk9wMVpJSHVWWC9pUkd5QzQvUkJLTytDZVNKNkZQbmZQeEhxM3dGbzR1akRiaTM5L1h3PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgYTI2Y2VlYWM5NWZhMzM2NzMyMTlkMGMyYTc3NjM3MTAyZmI1M2ZmMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFhN0ZXa0dzczhHVlNRQUFBQUFCcmpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt6TVZvWERUSTBNVEl5TURJeE5Ea3pNVm93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMUJNalpEUlVWQlF6azFSa0V6TXpZM016SXhPVVF3UXpKQk56YzJNemN4TURKR1FqVXoKK1JrWXlNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQWpqbHAvV1lCcXNwSXZ1djkKKzVybDdNSG5EbDNocnE0WUtIdUtZTk9pR1dTNDB5eVQ3SHJYc1ZoQkJyQXJQTzZLTmpXZFJOdHVpa1VrNTJGM2sKK1ZwbUYrVExJUTlJdXNlRUlIZVkrY2xjYjJxNFduNzNUYXBsVlRySEVqbytjOVdrNHdFZ2J3OHYrSVliVTVkOW4KK3BSWVRNTTlqOXB1cGJPd0JCV1RJSkhMM1F4MXJNZ0hTLzNkMzJwVUJGR3E3ZEtwMFlaS0t5c1VETGZ2TE1rSWgKK2YvbzhTVGJGM3hHTC9Hc09sYXZpWXdSWGs3MnVCWFlNWmlFMTA1ZERHejVjaVNwakkyYlluZUo0WHhOd1puSDUKK2E3SE1lNEZTMFlNekJNcVFMWHFqOHo3Yk5MSVg3WU83VG9BdTN4OHdxTnpWWnVWOE5EK25XcVNXT1p0Z3puelYKK2pGaEZpdmJEY0lCeXdSVlYwUHVwUy9pTlJYY3NhRVdzSFNyS2lZeENOM1lBcERNcWljZjFTYXc0YndscWZiT3cKK0NUbzZKVHJoRWl5SzlUNU9ZcTRRd3kxbG5qWmNmVVd0UDdNc2dWT0dIS21YQlBucTZsTDJzM1lLZXUwM0d5WEIKK1JQeGdnVzdRZUh2WTBYa1VISXI4Z0NxUTVMeWtoVk4rOFQ4OGhWbHczOCttOCswVU55UXNLODZLYzNUcm80OEMKK3ZLcXJ4UzdaUVM1S3djWCt5TWczSEg2RHdTTEF6b0h4NmQvdHNZNEI2UlEwMzlEdFRCcGZ3elN5Z09vVGJEMXcKKzhRc1ROSTZNN2tOOVd2ZVVnMWN5ZFdFa0EwWVEwMlQ3K3kyM3JEUnB3VkdVSmErRUVjVC96UERvU1JPakZaeEoKK0J1U3VnUHRKdERpWm1LUzZ2MWtOcmFxRmVVRUNBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZOOHBhRlRGMklLMDVOQUcKK0RkVnBRdndtRXZTdk1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBVlBheHhQczhVZFNFSGd6bkdwMkljOUdqTW9HUDZTRHg1WUV2bFEyVHlhcVEKK3J1d01icGRRYlNFZTFiTERUUVcrZHphQ0plZE9CdFZzM1RQS3p1Q3hnQ2ZmVVIzNE5ON2hDQTZ6YVF2bnNURmIKKy9mYnhaaWFTR3ZEV1ZFdE5kL1ZjZ2lESmkvQnQrUGlNVHY0Q1BxMnoyTDB4dWJ6R2NKM01NRjBxYWN3eGMzSDUKK2ExU0dUQ0NmRlVTbzNUbklOUlRYTE4vczFrUjZTQ1N5TFlFdU9BYzNpQWdnZ3hETmZBZ2ZGYTZlSm9YZUt4bkkKK3Y3QzB6QVpaemZLL3B0US9ZNWtQWnJlNjFmMnl2d3p5dlZ3OFlTNUtUNDIvbUFXc2ZFNjNYc2V4dnJ1L2pqSjUKK1ZVV0xrcXZ2ZTBnNms1dXI1WEdtRW5BM2p5S3RlclgvVElCbk5CQ0IvV2x0ZXNZUGF2SDZrQUlYMi9GdFQ0VkIKKzIrOGZhbndzc3pYMk1NZU1XbVBnVlZtZU5aZjhmbDY2RDZLbkFTWXZ3UFFoSVMwdkxNakc2S1NaY25sVE9idkIKK2RvV3FOcDg0VWk1UzBQMEVaSXEvRHNFSnBnMnFMQlNrSkFFQ0dNN2ptWnoxdi9wOUZ4d1dPK0wrRGswTnBTcDQKK3RRNXE4TThQcHV2MGFkaEd0cjNXMVE3S2sycFN6cTNCZEZ2Z3B5eFRMN3pLMDk5UUxiaW1NSFg0UUNSZXh1UkkKK1VoUzZRQXRqaEN3cDZvMVBOUVREOTcyMk1oWUUrcnVlKzN4akMwR0V5UlV3RmVhRjk0bVZTUXJ3U25PV1RjV2cKK1hhZmlXR2xlSkpDMHNiVGpKendVenJ5QjBNSGlvQ2s2bHprQmEwQ2FzRkpkcWRhS0lIWGcxMTZ0S21lZ1VRRT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIGMyZWY2NDFjMzI5Y2IwYTlmMmVhZTA0YmZiMTBjOTliODljMzQ2MTQgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWQycVdzeHNZVGdFNkFBQUFBQUIzVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXhOMW9YRFRJMU1ESXdOakl4TXpBeE4xb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxRE1rVkdOalF4UXpNeU9VTkNNRUU1UmpKRlFVVXdORUpHUWpFd1F6azVRamc1UXpNMAorTmpFME1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdlg4NVk4VVc2OUg3TnVxaworbGQzREFUSnFyV3Z5TnpEWEhEUFNyMWNPQ0JVRkJXRllXY0JJMklBRE9WckwzL09PVzdYOUZENVREeXMyU20zNAorU1BCUldTRE4wVHhtQnBYOFB5YUp5dVJ2WXBjZm92czY1VEZGODJER3hFYkgyWjRlWUlKbkJFWUhKQUQ2SzVpNworQTd1VGtmSnVTV1AyajkvTmpKdktlUE1yL0cvUUpYaThtdEV4YVR6eElrN0s0aWt2ei9ld05nMVQ1OGxQWVZUUworV3BMUDNXeUc1Z25ONmxqME5KYWhMMUl3VVFxMjArR3FKdVVYYndVQVMrNTY3V1MxaVlBYnprbzE2cVBQdzk5bAorbzF3d0lBMytkbWF0bFR0Smh1VjkrTjgzRmk1Vm9xY2lCblkyNGRmUnc2cFpXVHZwMnM5ZUdqaTdlRm5tcnhHUAorbVgzMk1BdTVQVTZJVmIzTklZaE82SDlOVFB5dTJEUENkb2prNDZvQ0lKM0VrQktGUnFiNUZaWE5NcmJwc292Lwordm93N1BwUWR2WGhIanczMkxVV2RJRVpOZFhmWHRpZWl2aVNIUWF2Tk9VeFkvTnc4RVI0dDVNMmhTU3hjTUF1bgorQ2tyWUdNa3E0TlRiaWtJYUN3d0EzSzdlRS9xYnBRaXpORlptTGdCS2hvT3Q4ZHI5ZjJDdTBEOUFGZFdNYmlURAorQkdwQTBNdDNwTUtWMC8veGRqK1loNGlOZ3NaU3c1Z1ZBWEtsYkhyakxwNjFZeG03RGFjaVJKbm11RWdEU05NeAorQVVCSlBGVXlUQWg1RlBycEoxQlQralMwc1lPRGhvMFB6V0R2bXlhZEFJNmxKUHBjRVd5MTZnd1pCeWM5bGNsaQordXBreTRPaEZHK0xBMld2anpteU9NWFk4b3FjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkZUNGdTS3JiUDRUNzBSeAorM0tKSnFFRVdXN2JPTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFqd2dnWlowdHhiUW5jejU1REswME1HdlUrVnBRdmtLVno0OXpJeTBGMmg2VQorMEQ3QUNIa0tWTS83ZThiMnR1V2I1Zm5ENXRINS9OdjNFQ1IxZTJGTFYwTVdsWkFEMktlazgyeGtjYWNMMjdtdAorMU90VzZ3VXJ4L1NPNUJnMFpyakp4akhmQm15cmhwWTFXN3NrS2xxRzlvUmdaUGE5ZTkrMWV3RkNPWnBMS0VTRQord0tuOGNjTjQwd2RQU3lnTm4wOVVrNE8rVUR6OVFvTm03dnU4ekJXV1lRYnYvYytBcWI5bkJLdXFrN3R5aGpzagordDlJM3BMNjFrQ2owQlVzc1FzbEhDamx2ZzFLV3AwZ3RKK1pVckdHOTk2Z25VWjNvVlhiOCtTTWJRLzRoazFhOQorRTJqMDJ0Sm9ObVg2eWRHYkhWM3F5aThqM2thUFhscXIxV0lTazgweGlaSXRIc3hUNFUxZE5VVjcya0VWR0QwcQoralNNSjAzMHVmTndvTHNNcitUczRNVStzY3BtMEVXeXYyeTl6T3JFZ0FTY0tPYzVsQi9XcmhOSE0zd2xOd0FWRgorVnZpY0xjaDF0WmZDbGtnWlJMNHR6ZGRlbE9YZEZoenBJQjJNNjJ1NGY3M1hPaFVTNFlDSW96UkYxcnlxY2Y3WQorVmFTakovL1FNUTNUUGlQZDNBQkZ2L0NjUmZLdEVqM09ER3MrK3JQSzE1d09QS2pxRnZ0ZDJGQ0FFQVpCSEtJdAorbzl5eXNZWkpWOFYreU1pRWQxZFBuMjl6Z3NlSnhsbGhIQ0RJdHFUNVp5ZDNEaUtONENmSVk4Ty9GbnlUK1ptdQorSEo4OWJxdUVybkU5dXR0cEhhNy92RnpoTVExL3kvRm1nOFE1RVNoKzFwb2JCVzg2b2REYStURjRQbGFjQ08wPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpZngga2V5aWQgY2U3NzE1M2I2ZTExMGNhNGFlMjk3MWEwOTg1MWVmNDk5MzI2MjAyYQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUc2ekNDQk5PZ0F3SUJBZ0lUTXdBQUFhK21pR1ROWkxOS0FnQUFBQUFCcnpBTkJna3Foa2lHOXcwQkFRc0YKK0FEQ0JqREVMTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENsZGhjMmhwYm1kMGIyNHhFREFPQmdOVkJBY1QKK0IxSmxaRzF2Ym1ReEhqQWNCZ05WQkFvVEZVMXBZM0p2YzI5bWRDQkRiM0p3YjNKaGRHbHZiakUyTURRR0ExVUUKK0F4TXRUV2xqY205emIyWjBJRlJRVFNCU2IyOTBJRU5sY25ScFptbGpZWFJsSUVGMWRHaHZjbWwwZVNBeU1ERTAKK01CNFhEVEU0TVRJeU1ESXhORGt6TWxvWERUSTBNVEl5TURJeE5Ea3pNbG93UVRFL01EMEdBMVVFQXhNMlYxVlQKK0xVbEdXQzFMUlZsSlJDMURSVGMzTVRVelFqWkZNVEV3UTBFMFFVVXlPVGN4UVRBNU9EVXhSVVkwT1Rrek1qWXkKK01ESkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTJ3RWxnTGNrMFFNSWdrTksKK1BTalhFbC9sSXh6eWFnVGdOWG85eGxWSkxPVFViL282L2tZSC9UaXRxNzc4NkFlMmhoWEwyQ3QvMGtmK3V2U1EKK1JYTlg3dnZ3NWh2UnRxamZ6MzZaNGY4azFoRTVSZ3NpaGtvdll4NFUyamtQQjBHeEtuQ2FHUTJkNXhLSnBsQVIKK0pteUx2VkE2TWtoSTJ6cFJJS09ORG01bkdaWGxxZmlSQUR5bVduREM4STJoUEpGbW1SWXZGUXp2ZFhLT2JzdU4KK3B2N3V1VjJHTGFtTUovbkNxWkpGTzJmZTJLTUFsdXZYYnIzSUNaMTRMQW5XMnpXRFhsQ2cwR3M2ck0zYU9WR2UKK0FhME8vekIrMXVFdjlCckV5MmlTTDhxRUJFZTFQODRoaW90My9UakZzNUErN0w0Z05DRHF2MG5xbHpYUENLS2sKK29qOURSSnRSKzFUL245NXR0cUZ3NmhHNWFEYVUyUXNZaGxOakNOcmUrb0JUU01LSU1xblVnbmt6R3lJSEJEZTkKK0JYWm1NWit4a0lmN043NTdGTE5UcFVXZFJGVk5QNGlNajFkNENQSkFjbWx4Mytad0R4dkcwQ0hJZ00rTlV4NSsKK0pnRkJITlh2WGRBYTU2Tm9WUWNiN0VFbFpXOTFWNFJBV2d5d2dOemlqekwxRzkyemkxQWNlamcrS3MyRHU2VUQKKzZvNzBqR216N0lqbDhycUZvcm8yTHFVZ0wxTWxkTm4rMXRvSHU3OFlFWW5Zb3liYWxQWE5FU0FFL1orNVRyQ20KKzdGVFF2N1VZckJlWUJjR2NlZjZDNnk5ZzN2QnBtNTh5N0lsRVlxVUZ6TndzL3BZRzRLdUNkS2xCTjI4MWtnaFEKK2NyRHNnUDBNbGU1YjNlbUVCWGprRzJJNHRmY0NBd0VBQWFPQ0FZNHdnZ0dLTUE0R0ExVWREd0VCL3dRRUF3SUMKK2hEQWJCZ05WSFNVRUZEQVNCZ2tyQmdFRUFZSTNGU1FHQldlQkJRZ0RNQllHQTFVZElBUVBNQTB3Q3dZSkt3WUIKK0JBR0NOeFVmTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZITEJkay9CWDU2SlUzc0cKK2VmR1VnemY3Q1ZKaE1COEdBMVVkSXdRWU1CYUFGSHFNQ3M0dlNHSVg0cFRScmxYQlV1eHhkS1JXTUhBR0ExVWQKK0h3UnBNR2N3WmFCam9HR0dYMmgwZEhBNkx5OTNkM2N1YldsamNtOXpiMlowTG1OdmJTOXdhMmx2Y0hNdlkzSnMKK0wwMXBZM0p2YzI5bWRDVXlNRlJRVFNVeU1GSnZiM1FsTWpCRFpYSjBhV1pwWTJGMFpTVXlNRUYxZEdodmNtbDAKK2VTVXlNREl3TVRRdVkzSnNNSDBHQ0NzR0FRVUZCd0VCQkhFd2J6QnRCZ2dyQmdFRkJRY3dBb1poYUhSMGNEb3YKK0wzZDNkeTV0YVdOeWIzTnZablF1WTI5dEwzQnJhVzl3Y3k5alpYSjBjeTlOYVdOeWIzTnZablFsTWpCVVVFMGwKK01qQlNiMjkwSlRJd1EyVnlkR2xtYVdOaGRHVWxNakJCZFhSb2IzSnBkSGtsTWpBeU1ERTBMbU55ZERBTkJna3EKK2hraUc5dzBCQVFzRkFBT0NBZ0VBaWY2WWd2K013YkdMVWxoLzNDeFdsZi9zaTRXVEttLytsMkJIWVhBZE45dzYKK3dUNFVVclByL2RtdHhKU2dwZ0pMTlZ1SE50UlN5N0VZdjh3YnpNWU56UmtjN3p4NTVyTy85bjgvMnluWXFuUGQKK2VtamZGNWU3VFd5UEp6S0ZPRGRyYlk1Q3VNV1B4VWNmUWJMcmZnZ1pramRubXZJbWVRRVAzRlhid2VlUzN0bHoKKzA2UGE3RFZqN1RUOVg0STVPTVlBYTRFWjFhdm4vR3RVRzFGNk1ZYk5idnZxQ1EzdkRWdGZZamd2VjM4UFdaN3EKK3dTK2tIZTVwc0wwQ3h1NURPcU5jQW9YaEk4TEtiOGVpUXhaRGZ0dEFZWGJBV2lETktUTjhWbXV0NHJiQVBRaG8KK0Q4aUhzSlhySW5XOTNJeER5YUxNK2NTc3pIRy92L0MxWlNVQkpCKzVPVll6OWJoV1FLeCtPOFVJTCtaMFJRcTAKK2h5ZmxyWCtwS3RUN0ZyZm5sZHNTRWtVQXVoaWFnd1EyRHQ2dVVLQWlUMjB3blQ1WVM4aFNTOU4vQ3ZoSlNyY2EKK2diYmJoaVlpSUcyWnZwaUYyK0pheEF6aW9XWG5GeVUyYlloeVplRlovR3JhdzhwWmk3VHh0TXpXdlVmTCt2RmUKK2dnR2R6SWlIckx5dTJCb09wd0luaVhVQlFxOHdPMjB0RHFFNFZSZmc2ZmNkTmVjT3c0VytLOUpPdnAxQXd6MzcKK2VjL0VpRnFpd0JrazJHdysxcmVGVERQSDAxUzFYTmVWYW5PenRUaDJUNXlQMXZPL3pFaHdiREFmNzhqeUxsc3QKK20rTWMzQ0lzSWtIU21aL2FlQm9IM0phaEtqaDRFYnBDNjdzK1NwQzRXcVEzbUU1WVJqSEloeDE0djhFN2ZVVT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KKworCitXVVMgaWZ4IGtleWlkIGQ4YTNmNTU2MDg1YTY4YzhhYTVkNWZlMDc5YmNjNmU5YzZkMzc3NjQgMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQWQ5YUVRYXhhczJpZ1FBQUFBQUIzekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNREl3TmpJeE16QXhPRm9YRFRJMU1ESXdOakl4TXpBeE9Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFVsR1dDMUxSVmxKUkMxRU9FRXpSalUxTmpBNE5VRTJPRU00UVVFMVJEVkdSVEEzT1VKRFF6WkZPVU0yUkRNMworTnpZME1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdGFCR0F1OWR6NkRIQUx5WQorVDdUSzI3TlNsMXNleGZMMWMyNnVON1Y1S1dack9WTGRPRVdSbTJGQzJOb2gxcjdlZFIvZEFYYTg4VnRmcmR1egorMW5pTWs5ZXA4SndMeUtsRjZNWXZ3WEwzZ0NaNCtiMkdLMWFGMTA5RHM4MUcwdS8zeUUveERhNTVmdWFDakNkdgoreDdPbjIvZE1nZUE3YUJ1YUZmM2xzSFZPT3RodERSMVlsL3Q2WjBWbkJNNGY3MDgrbnFVWiszcHRvYU0wS1J5NgorRjBMQys5cDl2VkQ3ZnFwSGtOdGQ1WUtkek9aS2ZDMnhQd3E5L0F2WmhDSElzbXJJeW83TFl3a3J2ZTVWSk0xNworOE5EUHVkYTRVZnFMSTBrZXhFbEZoMEVGQzZ5b2prdXhXOTJzZmxaRzZRdUU2MllnWk5TQ2d6Mk9hR1dFYU9peAorY1hPeDRWeGJtL3ZzUjAzdGpNNGtWME1UdUc3ME1VdTdEUTFsS0NjVU5kZERHQ3FzR1ZXZkFjdnJmbE5lSE10RQorZ05OMmtyZURYejRrNnh6MGYrZkJadGhDSmRxNm03enhLZmdTbmZRYTF2L3BXeEhpWDI4N1BONmppVlZvUVdieAorRjlZWm45WWlwaUdtMEZTZDJxTFpMdWozSThhSUF4NkFhWi9VVkZJNFk3V3hKNUQ1allTbnZqN2ZlZWtIWTFmMQorMGF2ZWFMeXR0Mi8yY29OK1d6dUlIaUdkSHNwTE5IMm9jUE1aVm5sZjZYc09zcitrRk9DLzNScno1aDFuKzE2egorNnUxRVhPZC9NbU4yMlFZWlp6V1NjVyt6Nkt0TWZwek11aWtlblJCYWI4a1hUd1czTkVKbS8ybHdMT1FQcFhqWQorczNhbElkK2ZBWnBtWk5UMENqNWd2M0FwNWVjQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRk9ZRFlYL1YwUHhDTDNqcQoraEF1Rm01cXFSNEtUTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFDR3cvSEYrNlRqYTBoTmh4ZUxOV2JWUVBiN0NOMnFYSmVoSHJzdHFFTTVpTgorYms5d2Rzby8yUXhHV0E0RUxXM0RHb0hrQjUzcWxVV0pURFI1VzA0VXpWckxZanFWVWNUTEVvamcrWjMxT1NlUQorZktlRW83elVURjhoOWFFczdhd1NFNXBNSml5ZXd2MzN3OFloMlFmMUZvQzByNmdXUlR2S2dIRGtWVjduTkRndQorR3ZMTFNERlladUUzQ0xUUU1Wd3lHYXVHWE1Wc21xbnFWVjZ5Um9jSWFSVTBUdzN0VmduUXZuTlBzK2E0SUNUMworaG9KbW0rNTAvWkhDRDN1UW5RN0pCRE1GMnFYK3NFYUNtYUNhU3dBRTl3Um0xb2pQRnNxaS9XQlpVdS9ucTRwVQora0p1T0hVUzlBd1liWXdrb2UrVVVCV2h0cjNqV0o5QnoxQ0RJNVlkSXNPOXVLcytRc285bHVxeW83OGMyTHAxUgorUlRvNXVFdXFCSFFKNVRybVNjSGZiZWpPemJvUzRkbUI1cFc1NlMyL3QvWDQyM3RzMDFyZlhKMWhlNlpZNnlwYworT0lyWE1wbzljR0dOS3oxS2NjYzh0TFVXUWo4OHpBWUk5Y2FlMUJSQmxVWjdsOHYvSUM0a1dCL0h1RDdjdHYvRQorZGVPZzNPOXl6OHdqcmhmVTlTVHVTdVB2alJqODU0amk4WXorK21KK1Z1ZVJ6d1VLQlFSUjN1ako0eXlZY3ZuNQorbnFURVlGQjY2blV5aXJETnA5d2VLZFprdXQzODNWTDR2WXJnNzlMNXFQdTM5Q25SbUFsVXNja1paaGFtT0FTSworOWVHc2JuWmJSRzNrSHhiTjk5dVlPUld4QnVtdWgyTy93Q2RhNXh2QnFZSEx4eVBEak5lQ2RmNjJLOHc3UkpnPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpbnRjIGtleWlkIDE3YTAwNTc1ZDA1ZTU4ZTM4ODEyMTBiYjk4YjEwNDViYjRjMzA2MzkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQVpla3RIdWNIWTNFOHdBQUFBQUJsekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNVEl3TnpJeE1UY3hPRm9YRFRJME1USXdOekl4TVRjeE9Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE1UZEJNREExTnpWRU1EVkZOVGhGTXpnNE1USXhNRUpDT1RoQ01UQTBOVUpDTkVNegorTURZek9UQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU80NDJ1clJ6VlhNUkNNbQorQ0hIWC9ZZWdIak5iajBBSDZQODFKQzhNS3FxV1BGOG5LN3ZFZVRoQm9SNXVrVmMwRkhSb3ErYVluK0piS3M5MgorSGw3UkgwSTdUR0ZrSDVOYUdrNUlHMFgyWTVxMHIwa3lqRmIvT2hPWlVIMlFSaDRrV1YwUjd1S0FuYkFuNVQ3UgorTkRKRU5kSHhhOFJMdGdNYUlnN1hnRDdXeElvZ2VUekhqRU95U2VJRkRPL1VPQkZySlI5Q1FFeVZaeWJOaS9YMgorUnJ6M1lLa0U2cWd6ZHkxY2xvRndCeWFqc29lLzJob1RTdlV6S0FKc3pJOFNUQlMvY3lpV2VWK1E5Wjh5bDBpYgorUktibE0xb3Zkc0tRVzZZUUh4eU1uaWk0K2oySVo5SnVCclRLa1gzQk5jUTRwdnk0eGZOVmhkZlBCWkFoc1F0egorNUFHbGsxSkZVR2ZoemFseHp5eFdzaUw5dEdlbHhod3BqY1AzZElHUU9ZQzhNZTVlcmxtQW5mTDBFeTYrN1dyRQorM0ptVlc1dXZGOUdER21HRThSTVU5UElRcWQvdVlQbndpbnJKZ2tic3Fzb2JMMzJPUmlnZEQzTk9BSzJKbGVvTgoreXplTi8zckw3dWJvL2JEUkRma0RLN2JkUDU5ZXhOc2w1T01UU2JJTUlZS3MxOHdrUEFZMXc3cnJmSU9xbGxSaQorM2ZvalI3T3VBcDhWN3F3b1lYU1FQZkVkVFRrMUZoc0xPSW02TXJ4cytJZVZCaVF1bzh6cnhiL2FVTXlwNnBWTQorN24zZnJtKytkQzlkcUFpK0g3QWt2WExJT3dhZlRDc0ZyQ3l1cWttRnFta1JUU3psWXczdTZqYlBsZG5VTmhkUworbS9NZUloQ0ZTc05YcTFad3Yvb2lPUXZSVld0ckFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUZ2dmbmVTbGVFMS91YQorc2w3VmRDRzYrbjVNaGpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBR3Y4ZC9KZFB3OTlsbTYxNkt5SWJZcjdwejBBRGFja3pvYzMxbzJvYUVPQQorcnoza2ZqQnVHQ2pRNWs5d3lGZHozVDJOc1ZHcXpDa2RHZ095bk1wNjlqQlRtQjk0dW9pd2cvWGlJaDMvL1ZGVworSUxDU2N5M05vSzU3VjRqcUhBR24xaDh6NlFYWDByU0MrY0JRNml3dndZVzJWZTN2OTB4VEpBT3dzNDFNcVR0ZworNlladkgxZjZZQ0wvNHpWUGF3QWd6ek1uN25ZNmhmSHAvNVpjeFZnK2V2YlY5S2FaUXRkU0Y4aFVtN2hQNUp5dgorY1dYYU1NNStxUTI3NGg4UjIzeEdYVktNcXpiSXVDVkprMllaWXRkcnEva01CNzNMbzJlZkpHUWRweTZXQnpSdwordUtnMEQxV2NKUktPbHE3a0kwRDJuRFQrV1ExQUxqYnduMTUwQjhwTjJ4ZVQ3N0ZDeHRDY2dURVlUeVF5OXgxcworOHZralM2TDA4T3NSU3NQV1QxbFpYazdzRDdseENwRnIwSEI5Z1ZNODVYR0dvcXhDTlUxUFFheEx0WEJaNHpPbworZ3NoRjh6THN1ZlhnRkRyRWlGdjJpRFFMRnZiMkYybTVoK2ZCNGl5dUtmcmJDUjk5bmpNamJ2aGh1TUZrSTJVYgorN2F4QVNOanNpSzFha0NrTzFpUmFtbzlGWU9kU2tuR0IvY0FaaWd0QzNRK2NoYk5sOXEyVEExYnhtUmw3MlVCdworWWEzNzY3NXF2WG0xSkRwZjFvVy9kOXJGTWtJZ0ZWbjd0aG9CWEV2WTBHeVVvcElxTmgvS2RZL1E5VWV5NTk4dworT3NyM0l5YXVGODZjNjZEVnJoNVpCbW5ROEEzWjVYUlZGeU1TaWNJL1lJYWVzWndaSVFzQUZVbHhpcGZnZlEvTAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpbnRjIGtleWlkIDlhYWY1OTFlZTI2M2NhYWUxMGY1N2JhMDRmYThkMWRkNjYxM2Y5ZWIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXRFeXlQaGpkZG0rclFBQUFBQUMwVEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV5TWpJd016SXlNRm9YRFRJMU1EVXlNakl3TXpJeU1Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdE9VRkJSalU1TVVWRk1qWXpRMEZCUlRFd1JqVTNRa0V3TkVaQk9FUXhSRVEyTmpFegorUmpsRlFqQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU0yaENWNVhRU1JCczJncgorQUlmdlpONFNvT1Y1cm5pSmtVOWhhS3lKOTlwZ2lhcTdmVWE0dUNPOWcxOUs4R0crM3V3cnFheTc0WXQvNG1rWQorSEJsVDgyeXM1bFlYdzdLcDR0NEM0VENiSTN0d3R4Nk5JSDAzb2JvSXBkanVMUUdnczBBM1lwZVlwbHlzTU1lcworS0Q1MFFTKzRocnlVb3liSVl2MzZVQ1dtWUJYTm01emNNS3pvVk5nUk5zbXUvLzhFUTkralZRU0VtNTdkcm55YgorLzYyeWZ6MGNST0JuTjBkVXdOYmQ5YlE4YStlb3Jva00rUDNSbVhxRlBUN2h0M25IZVFDZDFiK3ZxOFkyTFQrVAorTEJjSmpZY0NHRmtDUGFpUGYzZmpnQlJyaUxUTUo1RjJ4UTBzeXBCbWdSbVFrbEVxanloQzIwNlpHRzJITDhlbQorZFhwQjVLbmxKQm9TaHhkSXNKU2xoUlJnbVYxOXB2K0xpbm55bTE5Q1JINkRxQzV3bkk0Yll1ZVRuZk5kdmtsNAorOWV4NnNvT2cwZjNZK3hFeVhkeDZHUytLczY4eUhuV1IwczNLN1RpMFVmeWJlZ3lKV2g3bkFVc2RRU29LTjdHMAorUGVmczE5T3VxaHMwUFYxeDVVMlZCQWdKUTdkdmpaUlFBYXQzdVU4bUhQY2hHWHl6Y0lJelo4SVFKTzR2RnJOdAoreUtLK3ViUmVqTDFFVXNYTmhFS3JEV3Z4MmVHV09LVnQzdUttWVVpWmdRZEN5eFIrZlo2dHpmUXNla0h3dENwbworbWpmWFRYV3A4SW9XdjBoaHROWXhKemdDVU1sMitxRmJIV2dOM3VqU3F2V2ZqM2NtVExUNkg4TXRqU1ZmUUxxcQorcGprcE4vVzZmZVFJeFlhTWtMKzZsbVJldUprYkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRUHdqRHR6Um9UQVpqRAora0FvMWxWTFNWaXVxcXpBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRmtxSDhXVDZwT3QybkkrclUrMzAwQy9tQnRWOFFBQ0VERDczWnBhclgzSworSG9wODdYcTdwTTlDQjlnL2g3WVlUcTZCWlFnWkZtWkM3ZWhRRmd6eXd0K0hYZlA0YnplY2lxVWJ5N1p5VXF4TAorajJXckxkdzdiRTVJbTJVSUozNU1hTk9NMHNqZ09BRE9QT3d3UzhtOXJiUTNWdm16QkIzaGZPbmM5bzZHczFwagorV2RDOHRKRC9jWVpreXd1M29YelNDS1A2REpFWHZqcFFNZnVlMUJ1SFZTenhwdy85L1VQaVpYQTFaZEJad3gySgorZ3JjaTIvVjE5cC9mRVlTTXhLRHN4aGc5MUs4aSsxK3ZKMDY2czVYQ0RML25xWVJ5T2p6UnpWVFFJa04zOU9oVAorYTRtOHl3bXQxb3JVTGFNR2gxWGN5N1ZDMUZWRW9xS2xUb1lUOEllVHFnOGxFYlZTOXd1SnI1c0l1WnFIU2J5TQorQkVoRVJHcUt6Mk9UcCtVSDR6YllXMWNsb2hSRlZnNHJPayszUzJqUnVjc1FQSkZ4UDA3dlozbzVza0pnTzFGdAorNmtFTzdoRXhLVXBsRzc3VFdaeTdLLzgwMW9tMW5PSDR0L0xoZElGMmZVTEphb0xERWxlTDBGZktUSXhPWUtvegorcFdhQ01yaVp5b0dNN3phTFloWTZBZTJjdUVqL3JVVWhzSlRIdTkxWTNLc2xhaEhKSUdWYitQYkljRit1Q1hKcAorQVF3S3JwcmpsVW5WbXdvVU1CRXprVzlQYW9CenkwQVc1Vkp5a240eDZxZnZhWDF4dklxVDhiVW1BWGZiQ240cAorRHdaKy9BZnBFRkUzNzZlUm5ta0p3QlhnOHV1eVZTK09JSG9ISytIQk1QbUJUTzlWd0RSUzRDbXBOK0lUZ2RNZworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpbnRjIGtleWlkIGIwNjZkOTY5N2Y1ZDNhMDdiNDI1YzEwZjU4N2NjZWVjZjE2ZmZlNTgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXZRRUpFdE0zTXNlZWdBQUFBQUM5REFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRGt4TURFNU1qQXhNRm9YRFRJMk1Ea3hNREU1TWpBeE1Gb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFFqQTJOa1E1TmprM1JqVkVNMEV3TjBJME1qVkRNVEJHTlRnM1EwTkZSVU5HTVRaRworUmtVMU9EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUpDQ25aRWVSZ0IxWElsMgorYmlFcjRmZmpxU1JaRTJVSmQ0SUUyZlZUcVp3Yk1PNGszWHp3aTZlbFgyRWthb2dxZkxoRGdXVmZENTVyVTNPWAorYytybVkxZFduRnNPWjY5R0VFUThxWWRNUFZHTTh1aytHZ2wxZnN1RVVtTHVGZ1Jva1BuYkNwc2pPMFdJVHdFOQorVkpobWhOVmpWMDB1eFBtcWRLTDg1WTFoMnoxZ3c1eEJmc3Z6dkdyZnY2Q1JQVkVqc0txMk0zU05DOVFWK2F4TworWUFxc0FWVE1vN3FjRUNyVThUUHNieU1PS2xOZFFFcDY0cmM3RXFySkVzS1ArSDVYZTRoR3lUTjVnSlNmZHYwRAorWEE3SmRXOVBzaGNKSm13RVlZVlk0NkM2MExHVDdwNDNEWnFtdldKS0cyQ3A0ZXlNVys1RS9uMTk1bi92MW1iMworV3dqTGtEWHN3NGRRQjBOZEtWdHo1T3hPbFJuREhYcnlIbWNUaTJjVG14L05kdVhoeTNxT05XSEtjVUpNRGtaTgorUjFEM01qc2lKYUFkY0VZMmt1SlpDbVV2ZzhQYzJyM09WbnJZNHNRU2tkYTVtYnl4NktaNW9teVRnZVJUOXJjdwordWhLcWFQZEQ2YUcvaitWR0Vzdk5mZEQvWnoyUmpiVmkyMzMwR3BYWWNHQVJLUnpBRWg2dUt0UmdnaHpXbUtwYworRXppZ2o5cGpadU1ld0tEY0tnaWk0b2h6SithYkQyNXdLT1ZnVGZMYk1XT2RFdW9YS2U2WHh2NVMxaCtBYVdvUQoraXA1N1Jad2oxZlVDa042NTJRbmlJVnVoNEdhOWVDbFRFUlB5Y2k0cHl1eTFEUFloVG0zQ2pvR3hEN1BvTDhXUworcncrRWRUTUFtRGZkMTVFVlczck5qTVNOa012ZkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJTNFFHaHJkWUxMbVZjLworcU4zeHFCdENkeUNHSERBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRm5TWGtpSzJHTnByb0htaTVUWW1ybllYRVI2U0lKaUpoYndmcGVTdVc1Sgorci9LTmltTUxaYThFVXpMbWI0cWpsajVMcWN4REdGR1NmdnF4NE0xQ0tQdWJ5VDdrTkVKSkp2RzZjTFlBQkFidAorL01vaWEvYlBKa2s2bWdtSUJGZk42MHBiUkdIeHNwTzdxVTl2dUZnVjVXcW44S2t2K0pJTVUwWlZXZXQrN29WdgoraSszM2htQXZEdEVtYVF2TlRtYXZxOHpCU3F6Tlgvd3RCQ29nbytmRFloZ2ZwSVVmbzFYN2NXSHJGNG9UTlM2UgorN1p6Q0dBTWluejFKTUNwVHd6SG5ISVA0QnQ1UzJrL24wcVFGQzl3WkU5c3JPNDVRRS9iemVraVBNNTlpZnl3bQorSDA3MDRWRG1kdkZsdWVsSXNsSTlnTEs4bXFYUVd5Q2NxR0JaaFZrbXg2bC80WlNhVUJkOE9ldStIb2pMQS9VQgordHJEYmFzNmlJb2Z0WS9KbUg1VnRPUjU5V01xT1hLRkZrSE1MUk5odVJVMTlaZXFPZGtHd3B5Y3BCNjNpand2bgorTEM4TWtPVnpDdTZUR1JBL1hSb0xEdWpURjlhZFN0L3FOTlRGOVZIZW9Ya0VRUDJQK0w5MmRsN3NTaG9JRHJkUgorbXNsUytNS0o0NzJVV0N1NjVKdGhrMjlLWFl4QVo0UFU4YVU0THJkYmdINEVDMUtFYTFzcUNNMlozdW8zcnpaUQorL1NlaGViWHV6UDFzWDRObUwwMUs3SE1OSUsxMDFBa3dzUGNGaW51UnkyOFJwb0RhMWxzdEN1QzROZHRrTTlPMQorbE81QWk1UC94QzFxRUYyM3U0MFBVTmhKRUREck9mWVVHcE9idEVOcUlYNUhXdkpXZkxSRm5PSmZnWjJoUlE0dAorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpbnRjIGtleWlkIGU3MDgzZjIyMTUyYTc0OTJlYzU5YjBjNDI0MzQzNzY0OGIxNWRiYjcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXRKbE1meGZlM2tJU2dBQUFBQUMwakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTVNRFV5TWpJd016SXlNVm9YRFRJMU1EVXlNakl3TXpJeU1Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFJUY3dPRE5HTWpJeE5USkJOelE1TWtWRE5UbENNRU0wTWpRek5ETTNOalE0UWpFMQorUkVKQ056Q0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU5zSEZhcGlxRE1aRDNuWQorNkpldmYxekFXTUkraFY0dzBDbVNaRWIrUzczaEJUcGxXa2c2dXY3NUc3UC94NEFGbGU4L3VPbExQT3FMbEtLSworbk5OVlBBbmJTK1dmc3B5VUZNU3NDRi9aT0VhUDRZQnRkUWp1b1F4ck43WDVxbVk2Qy9aT2d0OFZtVmdremE1UAoreW1heFpEUFBES0VQOUxhdERWa1V6WHV0aVkxWXNVR2M2eE1xL29hNEkzSkw3STZuWEdXeFZON3NsU3ppWUhBaAorQlRwZWY1UEsyMzVrNkFJRStvRWJwZG1sckVqNVVUNDFTZkZJeUM4ZWwrVnkyb2JtdXVsc3ppeXp5VUNiWnFCUQorOXlIYTNBQ0NVTXFJYUR2VmluOGNFTVhBNmpjeFZJK29ZdWc2Tng3NzczNUd1QzJ3ZTJhUXdsYVJ2T0Z2eFpMcAoraEliLzNoMTdFcWFrTTBOTXhGZ0lWeHZ2bW5tck5JQnlsTjNVaGg2RmJ2Q3ZpV3NzcmwwTlIwTk5GblY4S0NzZAorSXN5OHcwQUxsNndBaDBVQ2l0RUt1RytmVGhjellRcE12NEttS1BCRjJLcTFkbG9YREszZjliVDVJMnBHWHBVUQorSG1rQXM4VFNSTmxUc282dmZkWjVnNWpUSnZXTkpHVUEySDVJZ0FXczU5K1pIWlZNbHpiR1VCSU15bzFQbytLQworbEdoRVhtQkE1WTc3cVdvYi9lYkFHTGliTUgybHE5STllUkVhL1dUcFF4Y1Q3dUluTzQ1WGFVMGN4Y3RoTk5LcworUE95ZzVhWDNIb0NscHpQZHZpekU5aUMzeTV5ZGpydm5kY2c0RC9qTHJVQVpKTHdtUytWUCtxckRSNC9BRy95aQorUzM4bFB2QWVlVVFEODBXWDNvb25aQllISGQ1M0FnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRa3EwTXBZMWIvNlZCcworcXRDYS83UXBWR2QxblRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSjI0bUxQeTZwRTltVkxuTCtWUXFsUE54b2hjaUNyN09lTEZ1ZGxxcFZRbworb1gyVHY1VElTWU0ralhJY2tUZ3FVbkxrVFAzMzBmZHQzOG92K0svWkNudzZPeW1rYXFLZ0RYZm9qaGNOcUFtQworTjJmWDRqOExoT1BoaWRxeE95MldsTmtkWHMwU0Y4Yy9pUjcwanNKb1h4bHVvdHVLYmNpWjJiOGdacXV5U1QwUgorNWhuOGsyZWE1OS9YTzByekllWjlmb3pDRG1EdUJaY2VqdEZ5bmM0OFRrTVVEbHdqRExYa0J0R0JrbUU5WlZMTAorM2pyMU11OE50MGdhbDdlSHMzSXhQTzZuK2tDMzNNRjdQeGdrV216cU9ycytuU3R5ajJXTE5xVGtpQ0NGaEVCYQorZVBacXB0Zk1lams4azVISkd0cVZnOU9FMHIySEZSUU94a0VTNUJEWHdHNzRMNm53OXBsRWtzamp6MnRYRUtEagordTlKckwxYU5NTGd5MDM1ZXhMaldnUmEreGlKOWhUZ25zQW9NOXprSk0yMWRITW5Id0dMMzdZRDlsRUh5TFgrSQorZ08vci9XdEtvaUpTY2FEcW1kb3c5RW1HVHF2VXFCY0UrejN3aVQwV0ljZ2xlYTFKaWRWSVdBbm9lQ1FBcHliWAorMTdpaEJVWWdVeWN2SWM2UXBtSHFybGtFdXRQYzNwUXg3VGhiSWthcTJTeDRWa0RXR1d3MUgvVFBuUTRoU0VNNgorRGxXSkJkdmRXV29INHlYcEYzSFp2Q0J0T3lYYWJuZnBJUFBYNEcrdHJycGNoNHhhTHh3cERTVDFWa0o5eFJTTworcW9RMnVvSXJaV0cxZmNqRXRTaDNQK3p4REp6RmpsMEdHSjJ6SFY5Ry9ON2J2bmdiaG8vU1YzY0VUelpvTDhZaQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpbnRjIGtleWlkIGYzMDdiYTMzMzQ3YzI4M2ExZTBjMTUwOGFkMDJmNWM4Y2EwNmY0NWUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXZiTFRNUm55SCtPK2dBQUFBQUM5akFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRGt4TURFNU1qQXhNbG9YRFRJMk1Ea3hNREU1TWpBeE1sb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFJqTXdOMEpCTXpNek5EZERNamd6UVRGRk1FTXhOVEE0UVVRd01rWTFRemhEUVRBMgorUmpRMVJUQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU9ua1JCN0Zud2N3SDJqNworV2hRQWhPV2cwMEtpL1ZqczU5WW5rS0ZCRU1ZYnZUY3BrSWFRNFdkSEpoNHJCSEVQVm9yVmk2YzFJa2czb1ZVWgorZTN0NUQwOGcxSHIzbU5aYUdVbXJiRjRPbnNERnVXY0lRSURnTDF1bW5DNnhoSXpvempNVkV6ODlzUGt5NDYyWAorY0JFa0V4OVErUThsU3pweW9wNXNSb2tDUXlqdUxMUCtEVEttNFV6b05Nek1LMTZXMnI5UEwzSFAwQjN1aFhVSAorQ3NVWkJGME83Um5kVElEQTlYdVNabExKUFFyeTJKbzRjRE9YalVLL2NNbVBRdFkyamFhQ1hHSjNiMGE4SEJ4RQorYTJZYUYxWHJ2S2NkQ2hGdTBBWWEwN0JaNXlpOWwvMDMyUDFDNFlORCsrOE5DTkZPNTdzbU9lTkY3b1dxMElpVworaUhBR0I0amFRSERQR2xtUTBneFVCV0Y5WEtEMXQ5OGZWUGJrWFFzLy9JWmZpMDVGV2tTQ3dmbVloc2wyODc5RQoraGM3S0hhc0NWZEFhRDZ2VzlUamdidkpmcFBHSStYWWFodk50by8relgxUmZJUW1ndkRuVDZndEJ1THhzTjhTRgoramhTZS9MYXE3ZlF3TDZNS0o4d1VMeXlVSzd5KzQxNGJXV3N2bS92UTluSHdUM0ltWDJQeEgzRHFSSU1TNWN0RworQXRDWFU5M2s5VmtHOUYzWU4rUXVWTHJkU2JZSVlHV3g2UEMvYWN6ZTkwdmpGdk5ha20xN2Vnek81SWNBR0NMMQorZVB4Qzk0bEpNdEVLOTM3ZXFIcXpNZmFiQm5QMFFJSjhpdlJoc0JLajEwRjB6RXBicTErYXdYdkVRdzBlSVdJZQorQk8waDhhcmRRWXp2WEx5cktEaTRmRGZDdXgwVEFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJRVkphbUdzZmlzY3VGZgoraTJiMnZrbGorOVJISlRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBRDhMWUhvcUxMWWdJYmxDSWZRWXZNaVNZNmtJbkFYNjNaUXFIUk1jNDlRSQorVWpJU2QxTmZja0kyQ0FVMXByZEpYalVVc3VXbFhoMGlmVy81QUtZYnFRMGhCUU9sekR5Z0lmRlVReWlacmIyQQorZ00rMTk5SzJHbllJRTV4VFNJbHQwYXFIejh0WE11U1I4RExGNDZlWE4xU1ZzSFQza3hTTG9GYU1Xd0gvS1hsSworajB1blJQMEh4M0kzc0RPRW5UTkp5WVNXc25aVUFwVzVCb3E1RGFGYzVkTnpUUXBQbExremlPMDhMTG10L21zYworMjZHakJ6VmVMa2NNRHlUZU4rVWo5RHFwa0UxK1JJaVlGK3NuZ1ErM1ljUDNnQ25XNXZtdnNBK0xFWWs0bERadgorQ0l3bXZkWmRqYWhYd1ozR0p2c1ZQZXNueE5GM2ZPTjE5cG8yZ0xlNW8rRWZxNnBmbFU5UUJzU1BQM3lBSkNhOQorT2owMEh4aUFkcHdQVlJZWGNEOUtjOUVSSDJXSmRlZzQ3czlxMEQvYktCNUZBV1JpUzVkSW85T0taa3VoMHdocQorYndTTnhmVWUwMXVzbXIwcEtGTjE4emVzTFA1T0pPTWFiNTU2Y1hoVXRpOURiMEwxa1RYZ3pIdXF5ODU3cDN6aAora0tVczczdlRuZEQxdnFSVXE1Y3llM0hTKzJ4c053a3F5LzM1VGc5R09rdThVV2xNYnp0S01XZHB2T1JFbktPYgorRlFqeXV6OEVlMURqTElXZjlCV3dLQ2czTFVVNk9vZjEvanhhc1hGNStQOCsrV3FJRnlWRlBSenpxYmRSUGxRSgorRk0zUHdza2JMZEVPZUZpOHZaMER6cU95VHdRSGZFVXMyTFFjSjI0Mk93MmdTZkJGdWhyNVIyV2dHZ3pRSlJkagorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBpbnRjIGtleWlkIGY2ZGNhZTM4MDgzMjZmMTBhNDZhNjJkNTVmZTBhOWNiZTg0MWEzZDQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzdEQ0NCTlNnQXdJQkFnSVRNd0FBQXZYa29EWUJrOFMxeHdBQUFBQUM5VEFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERUSXdNRGt4TURFNU1qQXhNVm9YRFRJMk1Ea3hNREU1TWpBeE1Wb3dRakZBTUQ0R0ExVUVBeE0zVjFWVAorTFVsT1ZFTXRTMFZaU1VRdFJqWkVRMEZGTXpnd09ETXlOa1l4TUVFME5rRTJNa1ExTlVaRk1FRTVRMEpGT0RReAorUVRORU5EQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQUtpa0NwaDJwQnk2RWFYVQorNUc0NFZjZU8zY1hPWVZQdWZiS0d0R2psdlF4bzFhdTVpN2ZOU3RHZ2x0MVl0ekRFVUQxbkQyQ3NnREJEaTV6dgorQ00ySmZNY3pjYXZUWXZJL3pKVWpSMGxNalA5dHEyUE5rVUpYcCt3TTBnRGdrRHZTT3NBWkpjV2FSVGVHM0ltMgordG1BaWpSTzB0a3h1dzNtUGN3Ukw0Z01ja3hmOUNOUzZxOUJGUGZJamxmQ3FCQS9JQUtrbFN1ajFrS2ZzVWgvcgordnFsYi9uWDVQb3k2WlNXbk9GRlpVVFdtMis1WEtVNlRPMXNQUnRXaUx0TlhmaWI3OW1ndlNFeE5taEEwQVRJeAorZWl5SVo0UTljWklKTjB1UnFWR0hKOVRkK0FQVm5XQXppYlVnUWZTQkxjTDlvWDliYnRhb0I3UFgzblRnZXJsaworVFo1MUc1aVU1bDlKN2Jmd1J2djZqckoyVlhNSC90UklpVmt5ZEdob2tGRDJoOFpBUDJkZlhISlQrbXlRTjh3dworUzR2WDh5U0xKZHB4MmRpSTNMZHFUTjM2cUVHSTVTUUxYYUd0ZnQ5blE1Y2poanNBdGVBVlB6MTk5YkFDTEVJbgorUU5ickljcVZybVUrT0d0aENtVVZvUzZjODN1RjJHZ3JycXlIb0NJR1UwK2pqV0NHNXNEVHB3Z2hUTmlwYXlRKworaHdWaW5IL2lPbmNiY0xxRmFNMTBULzVZK3JleHdXMmF6M1FyaExVOW9qSmY1dnlTa01xNjFpa3ZJdmo3WmxXagorN2ZVTVFuTG8zbjI3MEI2bTFuQmloL3FiZlNUT2wxSzFNTGZHZWhLZU4yY1I1Zzh5RVBOUjlxUnMrWGU2RW9qSgorMzBRTm1ibWpSbnhqL0laeUgvaTFBSVdGZUtPRkFnTUJBQUdqZ2dHT01JSUJpakFPQmdOVkhROEJBZjhFQkFNQworQW9Rd0d3WURWUjBsQkJRd0VnWUpLd1lCQkFHQ054VWtCZ1ZuZ1FVSUF6QVdCZ05WSFNBRUR6QU5NQXNHQ1NzRworQVFRQmdqY1ZIekFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJUMVdubWFydnR6U3h2ZgorUHpCcDl4UFFEV0pPdVRBZkJnTlZIU01FR0RBV2dCUjZqQXJPTDBoaUYrS1UwYTVWd1ZMc2NYU2tWakJ3QmdOVgorSFI4RWFUQm5NR1dnWTZCaGhsOW9kSFJ3T2k4dmQzZDNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBiM0J6TDJOeQorYkM5TmFXTnliM052Wm5RbE1qQlVVRTBsTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcAorZEhrbE1qQXlNREUwTG1OeWJEQjlCZ2dyQmdFRkJRY0JBUVJ4TUc4d2JRWUlLd1lCQlFVSE1BS0dZV2gwZEhBNgorTHk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTJWeWRITXZUV2xqY205emIyWjBKVEl3VkZCTgorSlRJd1VtOXZkQ1V5TUVObGNuUnBabWxqWVhSbEpUSXdRWFYwYUc5eWFYUjVKVEl3TWpBeE5DNWpjblF3RFFZSgorS29aSWh2Y05BUUVMQlFBRGdnSUJBSU9FWXp1NXZnSmJuS1BlSEE5OG5qSUU2N1I2ZjA5eUR5V2xiQ2xCS2swaworZWtmVmZCQ2Uwc1U4NXVqbVI3UXVNSmZYMzl0bzRTU3ZWOTU4MXRmRU1ObFZHV3kwVjBDdDNuWlpwMTB5UlNFUQoreWZyVitrQVZkTEs0djNjUGxwZlpCOEp5dkxtUjlUS3haRGFoM09wVkhHNlFTNG5DbU53SWxaSHdUSFNzMzFRegorMFI1LzVyc2JaV0UvMjFQTU51cXNyWVJCRFk5T1N3dUVEZzVBZ3ZqNWRvR0krZi9FZHJYcTduYmpxdUtpTm83VworWFYyN3pXaWxrN1lJNTF0REZBVWNNL2NQNzU3dTlvMDJoRFFySUdxdmIwTytvRkJwZXNUZDhjZ1l0L0s0dTh4TgorVjdYR253bzhEVE9hRXg1UWthU2NBd1RuVDM2ckhEdy83VzNrZkJPajZLZHQ0WXdzNmtiWkwyVDVjSFV4YUtHagorS2x1NHJiNVlYMndZQmM3UW5WMldUdXVWNWgzd0dJeVdHdnVpYzlyWjdZa0VYdlA0VXhCRnBUL2RIQ21CSzAxVworTFdQR0ZoNTFrOGsrVkc4WUtwYUQ3Q1JQQXY1REVxYnlqVUFLSGlwNkxycWlpd2hGTVlKZEFkdm5pK2pYQ0xmUgorekorQ05aakJ1dkU0V2ZJYzIwcmRTZ3NUZUZnRk9sVGdKZTRudkQ1L1VxMzJjajRSME9jWGVrbXRibVY0TUV6RQorTkxWMGE2U3U5WksxMHFHdC9sRWN4a2lmRDJzcDBuR1QwWEcySks1TGJuSnNYWm5TK3lSbmJyNkFiakkwRGc3bgorMUVBT3FldmRxZGNacm9PMUoyR3hEN1JkOGhPaEwzeEQvYy9FbEl3VkxrZzJzRXpSSkdybXgyRUJ6bUlCZmRKQworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBudGMga2V5aWQgMTU5MWQ0YjZlYWY5OGQwMTA0ODY0YjY5MDNhNDhkZDAwMjYwNzdkMyAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcVVDVnJ0dGlJc1hoZ0FBQUFBQ3BUQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME1sb1hEVEkxTURNeU1USXdNekEwTWxvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVUXkxTFJWbEpSQzB4TlRreFJEUkNOa1ZCUmprNFJEQXhNRFE0TmpSQ05qa3dNMEUwT0VSRU1EQXlOakEzCitOMFF6TUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFrcFVJYTZVN0s4ZTJUbEJ3CitqTXkrM0RRa3lETWd0QjFBbVlVZ3dWQ2IzdjNMaFg1TFFtazh3OGdmYTlBTmM1SzJMQmh5Z1pHWEk3cXp5Y2p4CitmbFppSll5Q09Na1BJUzJhK1E5MVRvWEFpcGFlMy84dW8ra1BzclBQL09ES0tDc2hVQ2FUNncweXRublhuMituCitNRlJUV2dIeXBvVWRUdXJZQkF1enlYRE5ia1pQSXVsOG5wdU42RlVXT3lUcUJabGRORVRzcXhiME5kSHh6Umh5CitNY1BrUVJvdGNDNTJEVER0NW1Ld013bEdzWVZEUFZTZy8xVUtSd05nRWJlZUtrdlhpN3NiQnNScldFSVdvUXlRCit0S283enFYMTdMekZ5QzFCc3JNN3NkejNhaHUyWjRWaGlrWXdoVmljTy9vaGxlUWdnVmYwSklSSTJIZmI1UDY3CitXb2tLM0UxOXFyU1dkSXQvVzdoVHZrQ2szeVFjYkcxL3YweEZMSzZTbDFTSzh5T2VlLzFhN2RWaVEvNnBZeGhnCitlWitoYmQ3NTVCSE85Q0ZCQXErZUdKZmZkRnZTcFBuVXZHUytRNEREYkVtWG1admErRlFnU2VmNU42RmZ6Zk9hCitubzJoelZLUHFtTWZVTFErT1A1bGNwTXVvdmxzaEl1aGRhZHFxRUNOUW1ONzVqeGZMMjlGUFQrZyt3MTg1NXgwCit2b0xDOTVhRk16NHlYcGdDSHoyS0xadFQ4eGhIeWdOaTQ3RDBWMlJCNnVIQUdybzFEalh0aTZ2WFNHcCtYcy9MCitvSk9jblZtYnd3bk53bTkycGZaaVJlN1Z1TnV5Z0xCREZ1UmQxTDdNSWNGV3hiRldwcmdXV29hdTZKWmRCT0RpCitabTRoSjlmY1Fqb1dGY2VnYy9ObkMzMmJLd0VDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGUEFiNTNLK0hhTUtyejJsCisxaXVjZkpRVUlnSDlNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQWlicWVDa014YzAwVDJCcnhDM1M1VWtzWEovemNWejNrK2huR2dCWmtxZnZjCitUMlFKNlJLNDJvL3ZRbFFZQ0xnWkk1UlZjQ3RpcDZsZGpOYUhFNW9haVpTOWpvcUIvaTBBdDlCU0Z5UFZkMlBuCisySlRQT016WUMrekNqSWxJQ3c4TGVBck5xN3FQVFNKbnArM3VJV2twSHNVYzJZMmxyclM3L3BMZWVKYW5tZU9pCit0eFBnTGI1WkN6aHRKeFlPVWhoSU9ZUXdPdG9mdHhGdGNIa25HOHZ3UFZNU1VqTWQ4MHFIUmp0UmhTazZaZEM0CitMbEp3ZGVkTHpvb3I3eGVVM0t2ekRqNFMrTHE4YWpvbzFFWmFQVkt2M0l5RFBtbll3N1BtSWhEN0J1c0p2ZjVLCityUGdtemFkK1hDckxlekx2ZWFRNHVFTGd4dkpGQUZGOE03aUwvS2JyTFhFaG1yUVRZRVZxS3g4TnBWRmdzVG5kCitubEVmS0o4STZ6cVRqZFdnNlFnOTVnSmRpdWgzMHFuUnJtWHRxU3BaS2U3VndCWnJjL0o0eDdsci9kaWhOUU1LCis1b3dhYkpIOGF3OVUvUFkwaTRKcElvcVg5ZzRIKzZQa0ZoUHR4d242T2ZRcXhLZnY2elVXeEk2S3lvVWJFTlFoCis5ZTlDTzByV241aE1kL1VTb2J2T0JNcCtRS04zeWxYQ2tIRHVuQ3NvSjBJN1RNUkNJc0xLU1VUYzVhcU0xQklWCitlTklNS0Qvc000SWpnc1BCdmJRWU1ISWdHdTVQKzF1M01MbFV3WEJ5ZHRNVmNMaEVsZzZEaUZ2ZEU3Q0lEamtJCitWaFJhMEFLWmgvUS8zOWQ5OG1lQkUxYnI3eGJrdHQvL2ZtS2Z3T2FCajlncEt0cGlhSy9CclR0MzNScTlpVUU9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIG50YyBrZXlpZCAyM2Y0ZTIyYWQzYmUzNzRhNDQ5NzcyOTU0YWEyODNhZWQ3NTI1NzJlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVg0WVZHUkh2UjNEUndBQUFBQUJmakFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNRGd3TWpFM05URTFPRm9YRFRJME1EZ3dNakUzTlRFMU9Gb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFU1VVF5MUxSVmxKUkMweU0wWTBSVEl5UVVRelFrVXpOelJCTkRRNU56Y3lPVFUwUVVFeU9ETkJSVVEzTlRJMQorTnpKRk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNFNwNThTZmdHZVN1UTBzVAordVRXWjg2bVhaMzYrZzVMeFRrUmVjUnIyYTZVRHZxSUNibkVKUG9WZFA2bzZxOUVxN0hDLzAydlNjdmdRelVydworVU9hQThnaVhsZmdYRHpOd1kxNndndTlTMUFxVXJ6VklKWjJPQ1B4RW1aSXRwT2JYSS9rdWxSNTEyWVJhMUlaZworclNLbzN0TmhpM1llTDkzYmk0ZlFSMVJSQkRycm8xU29CUmlVUmdVMDN2K25MbGZGenhHcFRmWUNvNWVlZTQ1WQorRExhVG9vd2xRV29ibHd0VzMzTmIzVkhVMUxITDI4bkhKeXV4dHRlS2pKWWR6dmU3dzhqbnA0c1BmVmdyd1ZJVgorWFVaN2E3TWNjbVNOZExnbURwZ21qdDdZU2dZc3ZYeTlVQnJGUXRFa0ZYNFpzc09TclFHMEQ2UVUxeG9ZK0c2NworOWNDdFhJZHdGS2NpRjVpeEFYQll6ejdqL0VuNGI4OThEVlFBZkpsODVmVDZiT1QwQ2lvYkx1YUtKTUJYakhHMworZDVBd0QzU2xhaTNKUFpmbkFzTnV1TTN0ek54MjhmYlI2TjBQMFVITmIxMkVBdzMxUzNLQm05QnNBcVNGd1MrYgorZm85eDNYLzhIMXdhazhlV0FkV1Bna3p3eGdRUThVblhqdFNkR1BwK1pUTE4wdWRkYXdzT1B1Wi80aUVzbkx2MworckNRNG9JMXI5U0J6SG5yZFg4ekpISnBEMFhDKzJRRDNiYlBZUUcvRmdZeXlyYjRoWWZuZ3J5YXJTTnR6eVB6KworcHZsWEFvU1ptVjdFNUFrZHJRTWpaeUhDQzdodUFvay9XalplRGtTbFdNaXp2R2FhVFhPL3hFUnluaEZoQS9INAoreTVkcTdmSkZHTk1VeFJUWENhTFpDZlhjNmxVQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkxsTEprbDlvaDFFRHplUgorZ1FTbTQxekJVS1p6TUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFNMTVvYmp6dktUVzI1UnR2OFV5MXdiUnAwczdwdml5cTE0YTJYNjROSGs2WAorNVowVmpuUDREUDRmdGFvV25nTjdJSitqUUxwM3lRTkl2RjUvb3JCMlQ2aUhYTCtqK0oralhmT3IxVENIZDc4aworTmQ2YVZ6SXJ6S1pDcDMwZGREWWFiREJaTEdxWGc4QThTRm1Hd3dyeXc0UlRqWG9TN1hmamJQbGs4elI1aDhRbworS21BNmZDeGlJODdSdjlEdWV3WTV2aGJoenR0YVYzK1NFZWUzZWp1aGFyeFQxckRUc2gxTU9nUjhMUDN0TnlTNAorWGxEcGpRTVJtRS9pb3Q5QmkwME1TcVdSNCtBRmhnRUxkdVJHYVMvMWVpUXRGWU12T0dwYWxoZFpUcXZQQm4ydAorcndYdWRick5ON3lCelI4RHltbEo0MXBBT0xDcnFCSEVCMkR4ZkxKYUJLaTVVSnBLNVR2VG80R2ZNVU9udnh6QQorblYxVGhkZEU4MHdEOUQ0eHhBK1lBVDkwcG1rV0F5dXhhS3lKdGhuVUFHdnhMWGs5UDU5QVpMOVd4NDdRVk5rYQoraW1yN3pLbjV2L1VQRDZuZDBVZWNtK3lBWDRiNnpIUGwrRXF3bmlzZktqQktVMFFzcjdlQktHN1ZhYS9lcjhPcQorZVFqRlRibXRxR2tYYXNwWUJFc2Q4YTZQeVRndDl2QmFsSHZWd3ZDMmN6eFE2MVNQTnBJTUVCdTIzVjUyZi9OSworNGJsa1hUblA5TGUvZnY1R1MvdXJsNVZWcEZNd0cyOExwRVNBZnozdGFaUEhCNExMY1Y1S01pOUVEeXNkY1kwSworTGxDb1dNbWpvYTlCU1BYU0JHeCtBRnZmbzc5elV5MHUxZjlrSTZobk0xU3VTQ3VBMjlLd2tCUDV0c25GTm5zPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBudGMga2V5aWQgMjNmNGUyMmFkM2JlMzc0YTQ0OTc3Mjk1NGFhMjgzYWVkNzUyNTcyZSAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcU9xVGJndzFlNGtBZ0FBQUFBQ296QU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME1Wb1hEVEkxTURNeU1USXdNekEwTVZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVUXkxTFJWbEpSQzB5TTBZMFJUSXlRVVF6UWtVek56UkJORFE1TnpjeU9UVTBRVUV5T0ROQlJVUTNOVEkxCitOekpGTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF4OUt1SmxlSzJCMTFlQVlECisra0w3VXJpb2RWOUw4VDVuUEJ0QVk2WXlzTG52Zmd6amdkUTZKR0dpMHBGaytZb3dhbG9zRlRmSnNqRDZlWSttCiszU0VGdEZDR2RtS2FLb1hxdGhhMlY4eTNIY0FvcUY3R3pkSEM4bDV3YlB2SlZ5bDA0VEpiUlo2N3VHUmFxSVNFCitKYUd6cFJVd2JXeW5qOTVNV1BVWlkzQXNsZXZMWVJxYkF4VXYrQkVDbVJaVGJkL3BFRElLbGZWRE8vaUFlQ3dhCitwbGtsR2VJTkM2di9mTHZaS1IzRWUySDNMS05XclhWL3F4aXd4Q0RBOUFnS0FnekxjSVkzSjlUVUJVQzl2eUZ0CitaSENqZjdGZk9PemNHUU9JNW1NSTNyLzNTUXEwb1hGWFFCWm9zQkNpbzkzbUxVVlZDd3V2dXBZSWxobjlJQ2p0Citxc2g0WjVzSFprS3NOR3RHMWhrSjJYQ1Zrc1A4S3dKazVzMkVvTU9pRG1SYmRXRmFJb0h1c2l2eHY0bjhhZEY4CitRZEFYUTR6STg5amk0UlNtcWJkZ0owQ3U4MHlHSWQrTGdJbThDTWlFQlVrS21VQ3Vmeis1K2lIaGdDRjNJcis1CiszbG5KcU94anB2ZmwwWVpyZTRpMUhzeDBST21yVHUvZi9MRmFmV2I1S09YaFpUWGpLYVlabUhwdWdhbmlPM0J0Cit0VjB6RHRBRXpYSzVIZnlKQlYwRFlCVUxlOElyNFVNU1hkaGpYZjJoVVJoRUU4TUxHL1FxYWFEaGZ2NzA5Q2ZQCitEbDg1Y2k2VnVLWFBsWnl0NlkyaTB3Ym53ZGppK29aWTVKdlFNU0haQ0JnT2h0dWdnYWgvRUJNQmFiY0hDUDZ6Cis1U0NWUitJak5uUHJmditmM2ZHTkV0ZkIwWjBDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRW9iNnV5SnNURkptOS9JCitlZUI3N01ySDlLTGRNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUtWbjU4QVhpMDFqZTA2RTFEMWJkdHc5MkF4c0wzSFdOZ3Z3RGxtQXJVNDI2CityVkFzTng4NHdvakZpY1JUczdRcE1UdExNNTc5ZU41dWc3TXBPRG9wNUk3c2VnWmF5dGpSRWMwTWRJM0JQSEh5CitTY0RYQzIrakVuSWhSbmE5RTNUZkF5YkUvS0Q5cnk2Ymw0Z2FMQ2Z0dm9wejJsMEkrYm9PRzlEbDdXbGdIVE5kCitNVlNRSy9jY2dEN0R6UkIreVkxdm5HUUxkV3VZT3o3L3NweDFpL3hNL1lwRmZJOXZsNitLWjFzZkcwaUhOTDR0Cis2dm5xaUkvT0lTVHlzNmxHTUg0OS9jUWFDdzd0TENId3FSbHdPV3Z5QzlrNmdYTUFXQ2RraEc2MDNVdEluQWJRCitlRkxaUXdraG52aEhxUitody95TUxLamFUVnAzaHJ3cXpRa2pIdUx3RkNWcHhZd2hqME5YNHVJbjFYaDIyaXFRCiswZHdLVTlteE5WUFRacHdlbjVFUi9LYmpvSTdlTUNITE0vWldLdWJBcFFEU2VXbTAxK1NCTHZ6ano5VlRTUXJzCitDUGR0dmc5VlYzWHJkbjkrcE9jSmdGSXBrZEh1OUs1dnlRV0ZqRVlhZU82aWwxamU4aFpLRlRZZlhHdU9FbmoyCitSMWVjWkNtR0NLRklkcm8ra293U0ppYkZvczZUSXpqdVg4a3ZZbWphYXlQVzRmbktyMmVEYTJZV0JGWFh1VGVmCitURy92TURFNmE0QjVyLy9LVHYvZnEwVThETjliTEV3ZDNuSXhNUUF4VnEvblBrbXJUU3JYN0NMOXY5MDBkQkp5CitGSzU1YUpZZElUaS9UOVIxOGJ6Ri8yYVl1N0pqZTlOZFYxMjZScUw0MGoxb1VZa3VNOXZZbGRWWVk3VUJyVTA9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCisKKworV1VTIG50YyBrZXlpZCA4ODJmMDQ3Yjg3MTIxY2Y5ODg1ZjMxMTYwYmM3YmI1NTg2YWY0NzFiCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRzZ6Q0NCTk9nQXdJQkFnSVRNd0FBQVgvYW9RNDBhaCtDTmdBQUFBQUJmekFOQmdrcWhraUc5dzBCQVFzRgorQURDQmpERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2xkaGMyaHBibWQwYjI0eEVEQU9CZ05WQkFjVAorQjFKbFpHMXZibVF4SGpBY0JnTlZCQW9URlUxcFkzSnZjMjltZENCRGIzSndiM0poZEdsdmJqRTJNRFFHQTFVRQorQXhNdFRXbGpjbTl6YjJaMElGUlFUU0JTYjI5MElFTmxjblJwWm1sallYUmxJRUYxZEdodmNtbDBlU0F5TURFMAorTUI0WERURTRNRGd3TWpFM05URTFPVm9YRFRJME1EZ3dNakUzTlRFMU9Wb3dRVEUvTUQwR0ExVUVBeE0yVjFWVAorTFU1VVF5MUxSVmxKUkMwNE9ESkdNRFEzUWpnM01USXhRMFk1T0RnMVJqTXhNVFl3UWtNM1FrSTFOVGcyUVVZMAorTnpGQ01JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBcXY4Q0tSK3hEVGk5dEFnTgorM3dMYlBmQWlwRXliaFhwK3ZxTktZbFNOV3dBRStPOWl5YmFqdll5Z2FwYnpHdWRSZ1dxSTZudFU0TGJJYWRBdgorOUhwTndURkhJeWNtS2VtSkhXUWYyZm1LNHlsTnhnblYvdDB5SnNnR2xwM1plV21qalB2aWo3RSswM1lsU0p6RAorZS94b1lzdUtGcFM4UnAwcDRsM0VlYk1tc3AxcnlDRFF0S05GLzQwV3U0WnpRT1pVUmxxNzBNMmRvcnhERGJLZQorakx4MkhrVGtyNzU5SGtjL2hENzdHbU5oZFNWcFN3dVZpNmhKOVB3ZFpTc1Z0WFZxREFYNmE3b0R2akwyQ1VxVworTGhFbUFhQWRHVnJhcUg1cFJrQXpRUEpxMDQvQWQwNmRlL0hYZXR5OFlQSSt3eThsb0Rtd2dmcGJka1R5S01ySgorL1ZhNURMeUloNWYwd21MdTA1c1dOd1JqTkFwTlptV0pDOC94VmlkTXk1cTRFdXRmZENLR0NqQ2h2b01odllGMQorN1Q5MWY1aWErNFlJdzhCTDFBcVI3N05zcGI4ZlFkVG16bkxWL1laRUhyaWkxTlVnNks0b2s5RnAzV0xsdEpVLworN0t6WklFS01nZXo5U1lIZUd5alNIbEFNMEVmQzB1NUl0UmtQNU93WWxoZTdyb2tsR1BOZWs3eGxlL1FWVmVUbgorZ3BmV0gwcmxCN25FR1hrOWtzekZUbXNCSmhyeXpYcnh4YmY0c2U5bnVrclZDVi9ndWw2dnZRT3g4TEpkbkZ6ZAora1VOSHpxU3Y5Y0R2bU5rRXpZK0hjT2lSQlFvQkJHYzhNYWJVQ1hJcUhjcnlrMGZCTlAvYzRZSXQ3dlM0MGpxWAorcC9YMUF0UHlsNkE1dFdUa0RPMG9kYWM0WEprQ0F3RUFBYU9DQVk0d2dnR0tNQTRHQTFVZER3RUIvd1FFQXdJQworaERBYkJnTlZIU1VFRkRBU0Jna3JCZ0VFQVlJM0ZTUUdCV2VCQlFnRE1CWUdBMVVkSUFRUE1BMHdDd1lKS3dZQgorQkFHQ054VWZNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkx1UWh4bGZwUU1WM0pmVworU3JGWmtSSkMzUTJzTUI4R0ExVWRJd1FZTUJhQUZIcU1DczR2U0dJWDRwVFJybFhCVXV4eGRLUldNSEFHQTFVZAorSHdScE1HY3daYUJqb0dHR1gyaDBkSEE2THk5M2QzY3ViV2xqY205emIyWjBMbU52YlM5d2EybHZjSE12WTNKcworTDAxcFkzSnZjMjltZENVeU1GUlFUU1V5TUZKdmIzUWxNakJEWlhKMGFXWnBZMkYwWlNVeU1FRjFkR2h2Y21sMAorZVNVeU1ESXdNVFF1WTNKc01IMEdDQ3NHQVFVRkJ3RUJCSEV3YnpCdEJnZ3JCZ0VGQlFjd0FvWmhhSFIwY0RvdgorTDNkM2R5NXRhV055YjNOdlpuUXVZMjl0TDNCcmFXOXdjeTlqWlhKMGN5OU5hV055YjNOdlpuUWxNakJVVUUwbAorTWpCU2IyOTBKVEl3UTJWeWRHbG1hV05oZEdVbE1qQkJkWFJvYjNKcGRIa2xNakF5TURFMExtTnlkREFOQmdrcQoraGtpRzl3MEJBUXNGQUFPQ0FnRUFZdkV3Uy8zeGEySGYxMGJVTnl4RDNYUWl3QUpBYm5zMDFqSVVNRWFHRk5BRQoranV3T1dab3YxT29FajA0OUtOcWVPMzJxYmdTVkdJOWJXdGZieHdiNjdRdjZQV2RGMEVaWlVjMER6QlhZMnN1SAorQm9RK1d1ak40bWp0dmdhUmdjWXFBS2hnVTl5YjlZUHc5a1l2ZnlvTUJkZ05zZmVwVmRmVGFMdkVlOTAwVGp2YgorYll4Nk9FdTZlZ2lQNWIwZ3FoY1ZhaWdwcGJCUDArb2RyTk8zZi9jN1E1QU8rU0VOcVF2aHBTZVYrV2lOVmVkaworWkRBdStKTlNaTmJVQlVVYXRld3N5S3lqUk5GbHpYdFJ2T21zY3RYSHpybXFYSmJhNXh2ODIrRDZyNlJoaXZHdAorWExqYjcyVVY0YkpLNkY0MVBSMTQyRzVGQkVvbWoweWkvQUZGM3Zvd0tFZjVkY2lVdHVyVm41RzJNRGJNbFRQVQorZjkzNDlxYmFaZXB4eUhZYTRoZ0dZUm51S0s0bFlLNUZMdkR0WXZ1bjdta0c5SldacWlibEc5ZEE4Wkt5TVdHcworaUxCUDg0RXBsZVBoemRmQVIvUmxaS1BYZTdKRWlIZmZQemV4Q01CMFgvM0JueVh4ck1LWmlGeklYelEzakJaTgorMzRJM2hRbDRvaEpNc1dYLzNGYmdyR2pKVndPYjNaVjZXays1VkEyaVhNbmZsYk9IU256S0JTTVlSNXVaT2RHNgorWEpRWSsrS3JKVGt5SGloQVZpbnUwM0lyNDJCdlEwKzJWRlRTcjZWMjJoRGNXOVlRUXk4TjFiOUxWTFcrMGtxTworKzUrUVBrSlpCQjIxODFrTEpuSFBjSEQ2R1g1dEV3cS9DSzZVS3piMjVIN2VST1phbjJrVjl5TE9YV2tRZldvPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQorCisKK1dVUyBudGMga2V5aWQgODgyZjA0N2I4NzEyMWNmOTg4NWYzMTE2MGJjN2JiNTU4NmFmNDcxYiAyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlHNnpDQ0JOT2dBd0lCQWdJVE13QUFBcVFQV1VCSk5nZUF2QUFBQUFBQ3BEQU5CZ2txaGtpRzl3MEJBUXNGCitBRENCakRFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDbGRoYzJocGJtZDBiMjR4RURBT0JnTlZCQWNUCitCMUpsWkcxdmJtUXhIakFjQmdOVkJBb1RGVTFwWTNKdmMyOW1kQ0JEYjNKd2IzSmhkR2x2YmpFMk1EUUdBMVVFCitBeE10VFdsamNtOXpiMlowSUZSUVRTQlNiMjkwSUVObGNuUnBabWxqWVhSbElFRjFkR2h2Y21sMGVTQXlNREUwCitNQjRYRFRFNU1ETXlNVEl3TXpBME1Wb1hEVEkxTURNeU1USXdNekEwTVZvd1FURS9NRDBHQTFVRUF4TTJWMVZUCitMVTVVUXkxTFJWbEpSQzA0T0RKR01EUTNRamczTVRJeFEwWTVPRGcxUmpNeE1UWXdRa00zUWtJMU5UZzJRVVkwCitOekZDTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEwaTNrWFNKZC8wVXlsV2R0Cis0Z2grTS9WdlllY1lWdkgyOFdlL2M4M0NMZTQyRWVUYmdMTEMwUGlnSVMyNjJvVi9CK2J3RHovSE4vckFsUXhJCitBMlhjbHl3TUpSSDNNRlRYYmxaeklPZmRWWUpHVGhTNmZGbWFKaVhKVS80Qk16T1hNZ0xNUDN1OVBYdm5WVzRpCitaUlNkbDRSWGs4TjFDSU1sZzF1ZGluRzJzOXBIMytFSDJVTUtRK09hU1U5M09Ta1pzYTBObHhMVy9wUmNaRG5yCis2MXJ4YTJKdUlWOVFaYUFKZmVJdzN1QkpMMytvY2doTHpHWkxBMUhhcTA5ZUtqd0kvOHF5aTg3SVRWenhxM2NTCiswL25NWHAzS0M4UXBwY2pNa1NydEtsdk9hYW5KNkcxOERrRHFpTTJic3RVeEZpZnhTYlkwTlluN05NaVM0emhSCis5V0xSVzlQcmhpTnBsOGJ1b2w4V21BSWxXeURCNnE4OE5ORWFUTDNlOXdyYVpmUkxhbmhKeTM3c0E3dUFRL0hoCitUQXVzeXpOMkZYWnFINlA3YTRUYW96eUNrMVVHSEh2Q1pLdlVRQ1N4NTIrUU9xOHhPUW5TZWJoejk4MjA4K1Z6CitsNGREWVMxSFptbmxwWkV6YVpnSEFHdkYvUEZrQmsxcDlKVFdxN1ROUHpPV0kvTnBmYUR1b2hUUGlVbC9JdjRYCitpMmJNYnNjRFpqQlUvV3o5VnA4WThWcUtnSkxtMmxwZjhlc0xjdVNQK0MvY3l2bzZJdThtMkhlNTJid0hmSjZxCitPN3crLy9pZmxGM0R4VWxQK29jK2dNbER6NVlubStadnh6OWlQUXVIamZKWUhVNVBVNm1UUjZBRGQ0a1krL05XCit0eldIUVcxK1pKc25oSnAzTTd4NmFNaWRnZGtDQXdFQUFhT0NBWTR3Z2dHS01BNEdBMVVkRHdFQi93UUVBd0lDCitoREFiQmdOVkhTVUVGREFTQmdrckJnRUVBWUkzRlNRR0JXZUJCUWdETUJZR0ExVWRJQVFQTUEwd0N3WUpLd1lCCitCQUdDTnhVZk1CSUdBMVVkRXdFQi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRnpraXgyMHNBaWRzRGJ3CitYVnFzWEkreU5yZWpNQjhHQTFVZEl3UVlNQmFBRkhxTUNzNHZTR0lYNHBUUnJsWEJVdXh4ZEtSV01IQUdBMVVkCitId1JwTUdjd1phQmpvR0dHWDJoMGRIQTZMeTkzZDNjdWJXbGpjbTl6YjJaMExtTnZiUzl3YTJsdmNITXZZM0pzCitMMDFwWTNKdmMyOW1kQ1V5TUZSUVRTVXlNRkp2YjNRbE1qQkRaWEowYVdacFkyRjBaU1V5TUVGMWRHaHZjbWwwCitlU1V5TURJd01UUXVZM0pzTUgwR0NDc0dBUVVGQndFQkJIRXdiekJ0QmdnckJnRUZCUWN3QW9aaGFIUjBjRG92CitMM2QzZHk1dGFXTnliM052Wm5RdVkyOXRMM0JyYVc5d2N5OWpaWEowY3k5TmFXTnliM052Wm5RbE1qQlVVRTBsCitNakJTYjI5MEpUSXdRMlZ5ZEdsbWFXTmhkR1VsTWpCQmRYUm9iM0pwZEhrbE1qQXlNREUwTG1OeWREQU5CZ2txCitoa2lHOXcwQkFRc0ZBQU9DQWdFQUcwNkU5a0tlQVpwVEhMNkpBS2Z4UFVKbzA0NUtCUFZ5Q3BWNVU4Rm4rb0w1CitTWGNhdW1qV0dhQllVYzJVZlRIOWJ5U3JFTm11clFHelpGQWZyZHdkblhqSitkS0ZiT1pMMXNMcWx0MFd5RXpICitMS0FSV0NqTjRnZWRHSDU3NDZNOHFMVmFHWUhOUnQ3Yks5djJPSENsOXNnVDFOUnpTb1FkLzNSbElmaHNjZ0ErCis3TGNjYTVGdnQ4UW1uRVhZTzNpVEgzTkZhVG5TMWllV1lVbktBbWt3MG80WkQzN3pZWTBEYTNSNnpMdHFGdWJ1Citpa283eC81MlhHZnRNN05wNFJLRkgwQjZPMzdvT2N3NGlIOXpyQlJWalRnVUJXUTJNaTRZbkR4em1WYkR4aTlBCis0R2tTbEpXZ2wrUVJnZTJyMUIrWktRUSs2bnFsTGh6RGJnTEZaSkoyRWpZRm1WQlZHNGt6aVYvd0h5RUZ6QzBSCit4c2FEK0N0T1dHODNkbSt5MGh6dkxFMVB4alV5N1R1cy9YMEc0STJKTHJ0aTV6SXhyMUs1djdhL2dPN3hlbVQwCis3MmlJWVczU0JlYlo4RHdZUGxnNXRTc08vQzllWTh2Z0liM214ckRMZy85SzljNkR2VDdQM2l2M0JDanJ3R2RKCitvY1U4eW14azFOQWVNU2N6NU1hc3kwK1NYVUE5dEJXN2hPM01WWnJybGRxdUtkRlZlMjl0UnVQVUpGTnJtRk1FCitvTFVoZ1BKc09SU1RSWFp0K2hvT3FkVkVjS3BFMGVtUkY1UGo2ZGhoQXExTTFsRjJNWjNvTjAySVV4UkY3TFkvCitQVjdTekZ0T2tvSGNxL1Jqc2J1bFFmQXdCMU56SUYzV21pWXhJQ1FJeUpjVmVUOC9VNXB1UGtLRVVVL3V3bjg9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL25pdHJvLnBlbSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvbml0cm8ucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliZDZlYTIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL25pdHJvLnBlbQpAQCAtMCwwICsxLDExIEBACistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUJtakNDQVQ4Q0ZCWmlCSmJwMmZUL0xhUko4WHdsOXFoWDYyYm9NQW9HQ0NxR1NNNDlCQU1DTUU0eEN6QUoKK0JnTlZCQVlUQWtSRk1SWXdGQVlEVlFRS0RBMU9hWFJ5YjJ0bGVTQkhiV0pJTVJBd0RnWURWUVFMREFkU2IyOTAKK0lFTkJNUlV3RXdZRFZRUUREQXh1YVhSeWIydGxlUzVqYjIwd0lCY05NVGt4TWpBME1EY3pOVE0xV2hnUE1qQTIKK09URXhNakV3TnpNMU16VmFNRTR4Q3pBSkJnTlZCQVlUQWtSRk1SWXdGQVlEVlFRS0RBMU9hWFJ5YjJ0bGVTQkgKK2JXSklNUkF3RGdZRFZRUUxEQWRTYjI5MElFTkJNUlV3RXdZRFZRUUREQXh1YVhSeWIydGxlUzVqYjIwd1dUQVQKK0JnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF5NktJTjJnWHFhU01XZFdpci9Ibng1OE5Cemp0aFlkTnYKK2s5NWhkdDdqQ3B5VzJjSHFMZFE1U3Fjdm8wQ3VvcmRnRE9hY2gwWkdCNjB3OUdaWThTSEpNQW9HQ0NxR1NNNDkKK0JBTUNBMGtBTUVZQ0lRRExtZHkyRzJtTTRyWktqbDZDVmZqVjdraGlsSVM1RDN4UlF6dWJlcXpRTkFJaEFLSUcKK1gyOVNmaUI2SzlrNkhiM3ErcTdiUm4xbzFkaFYxY2o1OTJZWW51MS8KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvc29sby5wZW0gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL3NvbG8ucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YTM3NDAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL3NvbG8ucGVtCkBAIC0wLDAgKzEsNDEgQEAKK1NvbG9rZXlzIEZJRE8yL1UyRiBEZXZpY2UgQXR0ZXN0YXRpb24gQ0EKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAxICgweDApCisgICAgICAgIFNlcmlhbCBOdW1iZXI6IDE0MTQzMzgyNjM1OTExODg4NTI0ICgweGM0NDc2MzkyOGZmNGJlOGMpCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogZWNkc2Etd2l0aC1TSEEyNTYKKworICAgICAgICBJc3N1ZXI6CisgICAgICAgICAgICBlbWFpbEFkZHJlc3MgICAgICAgICAgICAgID0gaGVsbG9Ac29sb2tleXMuY29tCisgICAgICAgICAgICBjb21tb25OYW1lICAgICAgICAgICAgICAgID0gc29sb2tleXMuY29tCisgICAgICAgICAgICBvcmdhbml6YXRpb25hbFVuaXROYW1lICAgID0gUm9vdCBDQQorICAgICAgICAgICAgb3JnYW5pemF0aW9uTmFtZSAgICAgICAgICA9IFNvbG8gS2V5cworICAgICAgICAgICAgc3RhdGVPclByb3ZpbmNlTmFtZSAgICAgICA9IE1hcnlsYW5kCisgICAgICAgICAgICBjb3VudHJ5TmFtZSAgICAgICAgICAgICAgID0gVVMKKworICAgICAgICBWYWxpZGl0eQorICAgICAgICAgICAgTm90IEJlZm9yZTogTm92IDExIDEyOjUxOjQyIDIwMTggR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBPY3QgMjkgMTI6NTE6NDIgMjA2OCBHTVQKKworICAgICAgICBTdWJqZWN0OgorICAgICAgICAgICAgZW1haWxBZGRyZXNzICAgICAgICAgICAgICA9IGhlbGxvQHNvbG9rZXlzLmNvbQorICAgICAgICAgICAgY29tbW9uTmFtZSAgICAgICAgICAgICAgICA9IHNvbG9rZXlzLmNvbQorICAgICAgICAgICAgb3JnYW5pemF0aW9uYWxVbml0TmFtZSAgICA9IFJvb3QgQ0EKKyAgICAgICAgICAgIG9yZ2FuaXphdGlvbk5hbWUgICAgICAgICAgPSBTb2xvIEtleXMKKyAgICAgICAgICAgIHN0YXRlT3JQcm92aW5jZU5hbWUgICAgICAgPSBNYXJ5bGFuZAorICAgICAgICAgICAgY291bnRyeU5hbWUgICAgICAgICAgICAgICA9IFVTCisKKworLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlCOURDQ0Fab0NDUURFUjJPU2ovUytqREFLQmdncWhrak9QUVFEQWpDQmdERUxNQWtHQTFVRUJoTUNWVk14CitFVEFQQmdOVkJBZ01DRTFoY25sc1lXNWtNUkl3RUFZRFZRUUtEQWxUYjJ4dklFdGxlWE14RURBT0JnTlZCQXNNCitCMUp2YjNRZ1EwRXhGVEFUQmdOVkJBTU1ESE52Ykc5clpYbHpMbU52YlRFaE1COEdDU3FHU0liM0RRRUpBUllTCithR1ZzYkc5QWMyOXNiMnRsZVhNdVkyOXRNQ0FYRFRFNE1URXhNVEV5TlRFME1sb1lEekl3TmpneE1ESTVNVEkxCitNVFF5V2pDQmdERUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0UxaGNubHNZVzVrTVJJd0VBWURWUVFLCitEQWxUYjJ4dklFdGxlWE14RURBT0JnTlZCQXNNQjFKdmIzUWdRMEV4RlRBVEJnTlZCQU1NREhOdmJHOXJaWGx6CitMbU52YlRFaE1COEdDU3FHU0liM0RRRUpBUllTYUdWc2JHOUFjMjlzYjJ0bGVYTXVZMjl0TUZrd0V3WUhLb1pJCit6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXSEFOMENDSlZaZE1zMG9rdFo1bTkzdXhtQjFpeXE4RUxSTHRxVkZMCitTT2lIUUVhYjU2cVJUQi9RenJwR0FZKytZMm13K3ZSdVFNTmhCaVUwS3p3akJqQUtCZ2dxaGtqT1BRUURBZ05JCitBREJGQWlFQXo5U2xyQVhJbEV1ODd2cmE1NHJJQ1BzKzRiMHFocDNQZHpjVGc3cnZuUDBDSUdqeHpsdGVRUXgrCitqUUdkN3J3U1p1RTVSV1VQVnlnWWhVc3RRTzl6TlVPcworLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMveXViaWNvLnBlbSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMveXViaWNvLnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTMzOGE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy95dWJpY28ucGVtCkBAIC0wLDAgKzEsNDIgQEAKK1l1YmljbyBVMkYgRGV2aWNlIEF0dGVzdGF0aW9uIENBCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitMYXN0IFVwZGF0ZTogMjAxNC0wOS0wMQorCitZdWJpY28gbWFudWZhY3R1cmVyIFUyRiBkZXZpY2VzIHRoYXQgY29udGFpbnMgZGV2aWNlIGF0dGVzdGF0aW9uCitjZXJ0aWZpY2F0ZXMgc2lnbmVkIGJ5IGEgc2V0IG9mIFl1YmljbyBDQXMuICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIENBCitjZXJ0aWZpY2F0ZXMgdGhhdCBSZWx5aW5nIFBhcnRpZXMgKFJQKSBuZWVkIHRvIGNvbmZpZ3VyZSB0aGVpcgorc29mdHdhcmUgd2l0aCB0byBiZSBhYmxlIHRvIHZlcmlmeSBVMkYgZGV2aWNlIGNlcnRpZmljYXRlcy4KKworVGhpcyBmaWxlIGhhcyBiZWVuIHNpZ25lZCB3aXRoIE9wZW5QR1AgYW5kIHlvdSBzaG91bGQgdmVyaWZ5IHRoZQorc2lnbmF0dXJlIGFuZCB0aGUgYXV0aGVudGljaXR5IG9mIHRoZSBwdWJsaWMga2V5IGJlZm9yZSB0cnVzdGluZyB0aGUKK2NvbnRlbnQuICBUaGUgc2lnbmF0dXJlIGlzIGxvY2F0ZWQgbmV4dCB0byB0aGUgZmlsZToKKworICBodHRwczovL2RldmVsb3BlcnMueXViaWNvLmNvbS91MmYveXViaWNvLXUyZi1jYS1jZXJ0cy50eHQKKyAgaHR0cHM6Ly9kZXZlbG9wZXJzLnl1Ymljby5jb20vdTJmL3l1Ymljby11MmYtY2EtY2VydHMudHh0LnNpZworCitXZSB3aWxsIHVwZGF0ZSB0aGlzIGZpbGUgZnJvbSB0aW1lIHRvIHRpbWUgd2hlbiB3ZSBwdWJsaXNoIG1vcmUgQ0EKK2NlcnRpZmljYXRlcy4KKworTmFtZTogWXViaWNvIFUyRiBSb290IENBIFNlcmlhbCA0NTcyMDA2MzEKK0lzc3VlZDogMjAxNC0wOC0wMQorCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURIakNDQWdhZ0F3SUJBZ0lFRzBCVDl6QU5CZ2txaGtpRzl3MEJBUXNGQURBdU1Td3dLZ1lEVlFRREV5TloKK2RXSnBZMjhnVlRKR0lGSnZiM1FnUTBFZ1UyVnlhV0ZzSURRMU56SXdNRFl6TVRBZ0Z3MHhOREE0TURFd01EQXcKK01EQmFHQTh5TURVd01Ea3dOREF3TURBd01Gb3dMakVzTUNvR0ExVUVBeE1qV1hWaWFXTnZJRlV5UmlCU2IyOTAKK0lFTkJJRk5sY21saGJDQTBOVGN5TURBMk16RXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUsKK0FvSUJBUUMvandZdWhCVmxxYWlZV0VNc3JXRmlzZ0orUHRNOTFlU3JwSTRUSzdVNTNtd0NJYXdTREh5OHZVbWsKKzVOMktBajlhYnZUOU5QNVNNUzFoUWkzdXN4b1lHb25YUWdmTzZaWHlVQTlhK0tBa3FkRm5Cbmx5dWdTZUNPZXAKKzhFZFpGZnNhUkZ0TWprd3o1R2N6MlB5NHZJWXZDZE1IUHR3YXowYlZ1em5ldWVJRXo2VG5RakU2M1JkdDJ6YncKK25lYndURzVaeWJlV1N3Ynp5K0JKMzRaSGNVaFBBWTg5eUpRWHVFMEl6TVpGY0VCYlBOUmJXRUNSS2dqcS8vcVQKKzlubURPRlZsU1JDdDJ3aXFQU3psdXduK3Yrc3VRRUJzVWpUR01FZDI1dEtYWFRrTlcyMXdJV2J4ZVN5VW9UWHcKK0x2R1M2eGx3UVNnTnBrMnFYWXdmOGlYZzdWV1pBZ01CQUFHalFqQkFNQjBHQTFVZERnUVdCQlFnSXZ6MGJOR0oKK2hqZ3BUb2tzeUtwUDl4djlvREFQQmdOVkhSTUVDREFHQVFIL0FnRUFNQTRHQTFVZER3RUIvd1FFQXdJQkJqQU4KK0Jna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWp2anVPTURTYStKWEZDTHlCS3N5Y1h0QlZac0o0VWUzTGJhRXNQWTQKK01ZTi9oSVE1Wk01cDdFamZjbk1HNEN0WWtOc2ZOSGMwQWhCTGRxNDVyblQ4N3EvNk8zdlVFdE5NYWZiaFU2a3QKK2hYN1krOVhGTjlOcG1ZeHIrZWtWWTV4T3hpOGg5SkRJZ29NUDRWQjF1UzBhdW5MMUlHcXJOb29MOW1tRm5MMmsKK0xWVmVlNi9WUjZDNStLU1RDTUNXcHBNdUpJWklJMnY5bzRka29aOFk3UVJqUWxMZll6ZDNxR3RLYnc3eGFGMVUKK3NHLzV4VWIvQnR3YjJYMmc0SW5waUIveXQvM0NwUVhwaVdYL0s0bUJ2VUtpR24wNVpzcWVZMWd4NGcweExCcWMKK1U5cHNteVB6SytWc2d3MmplUlE1SmxLRHlxRTBoZWJmQzF0dkZ1MENDckpGY3c9PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvWXViaWNvLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1l1Ymljby5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RlOWY0ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL1l1Ymljby5waHAKQEAgLTAsMCArMSw1MDAgQEAKKzw/cGhwCisgIC8qKgorICAgKiBDbGFzcyBmb3IgdmVyaWZ5aW5nIFl1YmljbyBPbmUtVGltZS1QYXNzY29kZXMKKyAgICoKKyAgICogQGNhdGVnb3J5ICAgIEF1dGgKKyAgICogQHBhY2thZ2UgICAgIEF1dGhfWXViaWNvCisgICAqIEBhdXRob3IgICAgICBTaW1vbiBKb3NlZnNzb24gPHNpbW9uQHl1Ymljby5jb20+LCBPbG92IERhbmllbHNvbiA8b2xvdkB5dWJpY28uY29tPgorICAgKiBAY29weXJpZ2h0ICAgMjAwNy0yMDIwIFl1YmljbyBBQgorICAgKiBAbGljZW5zZSAgICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAgTmV3IEJTRCBMaWNlbnNlCisgICAqIEB2ZXJzaW9uICAgICAyLjAKKyAgICogQGxpbmsgICAgICAgIGh0dHBzOi8vd3d3Lnl1Ymljby5jb20vCisgICAqLworCityZXF1aXJlX29uY2UgJ1BFQVIucGhwJzsKKworLyoqCisgKiBDbGFzcyBmb3IgdmVyaWZ5aW5nIFl1YmljbyBPbmUtVGltZS1QYXNzY29kZXMKKyAqCisgKiBTaW1wbGUgZXhhbXBsZToKKyAqIDxjb2RlPgorICogcmVxdWlyZV9vbmNlICdBdXRoL1l1Ymljby5waHAnOworICogJG90cCA9ICJjY2JiZGRlZXJ0a3JjdGpra2NnbGZuZG5saWhobnZla2Noa2NjdGlmIjsKKyAqCisgKiAjIEdlbmVyYXRlIGEgbmV3IGlkK2tleSBmcm9tIGh0dHBzOi8vYXBpLnl1Ymljby5jb20vZ2V0LWFwaS1rZXkvCisgKiAkeXViaSA9IG5ldyBBdXRoX1l1YmljbygnNDInLCAnRk9PQkFSPScpOworICogJGF1dGggPSAkeXViaS0+dmVyaWZ5KCRvdHApOworICogaWYgKFBFQVI6OmlzRXJyb3IoJGF1dGgpKSB7CisgKiAgICBwcmludCAiPHA+QXV0aGVudGljYXRpb24gZmFpbGVkOiAiIC4gJGF1dGgtPmdldE1lc3NhZ2UoKTsKKyAqICAgIHByaW50ICI8cD5EZWJ1ZyBvdXRwdXQgZnJvbSBzZXJ2ZXI6ICIgLiAkeXViaS0+Z2V0TGFzdFJlc3BvbnNlKCk7CisgKiB9IGVsc2UgeworICogICAgcHJpbnQgIjxwPllvdSBhcmUgYXV0aGVudGljYXRlZCEiOworICogfQorICogPC9jb2RlPgorICovCitjbGFzcyBBdXRoX1l1YmljbworeworCS8qKiNAKworCSAqIEBhY2Nlc3MgcHJpdmF0ZQorCSAqLworCisJLyoqCisJICogWXViaWNvIGNsaWVudCBJRAorCSAqIEB2YXIgc3RyaW5nCisJICovCisJdmFyICRfaWQ7CisKKwkvKioKKwkgKiBZdWJpY28gY2xpZW50IGtleQorCSAqIEB2YXIgc3RyaW5nCisJICovCisJdmFyICRfa2V5OworCisJLyoqCisJICogTGlzdCB3aXRoIFVSTCBwYXJ0IG9mIHZhbGlkYXRpb24gc2VydmVycworCSAqIEB2YXIgYXJyYXkKKwkgKi8KKwl2YXIgJF91cmxfbGlzdDsKKworCS8qKgorCSAqIGluZGV4IHRvIF91cmxfbGlzdAorCSAqIEB2YXIgaW50CisJICovCisJdmFyICRfdXJsX2luZGV4OworCisJLyoqCisJICogTGFzdCBxdWVyeSB0byBzZXJ2ZXIKKwkgKiBAdmFyIHN0cmluZworCSAqLworCXZhciAkX2xhc3RxdWVyeTsKKworCS8qKgorCSAqIFJlc3BvbnNlIGZyb20gc2VydmVyCisJICogQHZhciBzdHJpbmcKKwkgKi8KKwl2YXIgJF9yZXNwb25zZTsKKworCS8qKgorCSAqIE51bWJlciBvZiB0aW1lcyB3ZSByZXRyaWVkIGluIG91ciBsYXN0IHZhbGlkYXRpb24KKwkgKiBAdmFyIGludAorCSAqLworCXZhciAkX3JldHJpZXM7CisKKwkvKioKKwkgKiBGbGFnIHdoZXRoZXIgdG8gdmVyaWZ5IEhUVFBTIHNlcnZlciBjZXJ0aWZpY2F0ZXMgb3Igbm90LgorCSAqIEB2YXIgYm9vbGVhbgorCSAqLworCXZhciAkX2h0dHBzdmVyaWZ5OworCisJLyoqCisJICogTWF4aW11bSBudW1iZXIgb2YgdGltZXMgd2Ugd2lsbCByZXRyeSB0cmFuc2llbnQgSFRUUCBlcnJvcnMKKwkgKiBAdmFyIGludAorCSAqLworCXZhciAkX21heF9yZXRyaWVzOworCisJLyoqCisJICogQ29uc3RydWN0b3IKKwkgKgorCSAqIFNldHMgdXAgdGhlIG9iamVjdAorCSAqIEBwYXJhbSAgICBzdHJpbmcgICRpZCAgICAgVGhlIGNsaWVudCBpZGVudGl0eQorCSAqIEBwYXJhbSAgICBzdHJpbmcgICRrZXkgICAgVGhlIGNsaWVudCBNQUMga2V5IChvcHRpb25hbCkKKwkgKiBAcGFyYW0gICAgYm9vbGVhbiAkaHR0cHMgIG5vb3AKKwkgKiBAcGFyYW0gICAgYm9vbGVhbiAkaHR0cHN2ZXJpZnkgIEZsYWcgd2hldGhlciB0byB1c2UgdmVyaWZ5IEhUVFBTCisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIgY2VydGlmaWNhdGVzIChvcHRpb25hbCwKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdHJ1ZSkKKwkgKiBAYWNjZXNzIHB1YmxpYworCSAqLworICAgICAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGlkLCAka2V5ID0gJycsICRodHRwcyA9IDAsICRodHRwc3ZlcmlmeSA9IDEsICRtYXhfcmV0cmllcyA9IDMpCisJeworCQkkdGhpcy0+X2lkID0gICRpZDsKKwkJJHRoaXMtPl9rZXkgPSBiYXNlNjRfZGVjb2RlKCRrZXkpOworCQkkdGhpcy0+X2h0dHBzdmVyaWZ5ID0gJGh0dHBzdmVyaWZ5OworCQkkdGhpcy0+X21heF9yZXRyaWVzID0gJG1heF9yZXRyaWVzOworCX0KKworCS8qKgorCSAqIFNwZWNpZnkgdG8gdXNlIGEgZGlmZmVyZW50IFVSTCBwYXJ0IGZvciB2ZXJpZmljYXRpb24uCisJICogVGhlIGRlZmF1bHQgaXMgImh0dHBzOi8vYXBpLnl1Ymljby5jb20vd3NhcGkvMi4wL3ZlcmlmeSIuCisJICoKKwkgKiBAcGFyYW0gIHN0cmluZyAkdXJsICBOZXcgc2VydmVyIFVSTCBwYXJ0IHRvIHVzZQorCSAqIEBhY2Nlc3MgcHVibGljCisJICogQGRlcHJlY2F0ZWQKKwkgKi8KKwlmdW5jdGlvbiBzZXRVUkxwYXJ0KCR1cmwpCisJeworCSAgJHRoaXMtPl91cmxfbGlzdCA9IGFycmF5KCR1cmwpOworCX0KKworCS8qKgorCSAqIEdldCBuZXh0IFVSTCBwYXJ0IGZyb20gbGlzdCB0byB1c2UgZm9yIHZhbGlkYXRpb24uCisJICoKKwkgKiBAcmV0dXJuIG1peGVkIHN0cmluZyB3aXRoIFVSTCBwYXJ0IG9yIGZhbHNlIGlmIG5vIG1vcmUgVVJMcyBpbiBsaXN0CisJICogQGFjY2VzcyBwdWJsaWMKKwkgKi8KKwlmdW5jdGlvbiBnZXROZXh0VVJMcGFydCgpCisJeworCSAgaWYgKCR0aGlzLT5fdXJsX2xpc3QpICR1cmxfbGlzdD0kdGhpcy0+X3VybF9saXN0OworCSAgZWxzZSAkdXJsX2xpc3Q9YXJyYXkoJ2h0dHBzOi8vYXBpLnl1Ymljby5jb20vd3NhcGkvMi4wL3ZlcmlmeScpOworCisJICBpZiAoJHRoaXMtPl91cmxfaW5kZXg+PWNvdW50KCR1cmxfbGlzdCkpIHJldHVybiBmYWxzZTsKKwkgIGVsc2UgcmV0dXJuICR1cmxfbGlzdFskdGhpcy0+X3VybF9pbmRleCsrXTsKKwl9CisKKwkvKioKKwkgKiBSZXNldHMgaW5kZXggdG8gVVJMIGxpc3QKKwkgKgorCSAqIEBhY2Nlc3MgcHVibGljCisJICovCisJZnVuY3Rpb24gVVJMcmVzZXQoKQorCXsKKwkgICR0aGlzLT5fdXJsX2luZGV4PTA7CisJfQorCisJLyoqCisJICogQWRkIGFub3RoZXIgVVJMcGFydC4KKwkgKgorCSAqIEBhY2Nlc3MgcHVibGljCisJICovCisJZnVuY3Rpb24gYWRkVVJMcGFydCgkVVJMcGFydCkgCisJeworCSAgJHRoaXMtPl91cmxfbGlzdFtdPSRVUkxwYXJ0OworCX0KKwkKKwkvKioKKwkgKiBSZXR1cm4gdGhlIGxhc3QgcXVlcnkgc2VudCB0byB0aGUgc2VydmVyLCBpZiBhbnkuCisJICoKKwkgKiBAcmV0dXJuIHN0cmluZyAgUmVxdWVzdCB0byBzZXJ2ZXIKKwkgKiBAYWNjZXNzIHB1YmxpYworCSAqLworCWZ1bmN0aW9uIGdldExhc3RRdWVyeSgpCisJeworCQlyZXR1cm4gJHRoaXMtPl9sYXN0cXVlcnk7CisJfQorCisJLyoqCisJICogUmV0dXJuIHRoZSBsYXN0IGRhdGEgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLCBpZiBhbnkuCisJICoKKwkgKiBAcmV0dXJuIHN0cmluZyAgT3V0cHV0IGZyb20gc2VydmVyCisJICogQGFjY2VzcyBwdWJsaWMKKwkgKi8KKwlmdW5jdGlvbiBnZXRMYXN0UmVzcG9uc2UoKQorCXsKKwkJcmV0dXJuICR0aGlzLT5fcmVzcG9uc2U7CisJfQorCisJLyoqCisJICogUmV0dXJuIHRoZSBudW1iZXIgb2YgcmV0cmllcyB0aGF0IHdlcmUgdXNlZCBpbiB0aGUgbGFzdCB2YWxpZGF0aW9uCisJICoKKwkgKiBAcmV0dXJuIGludCAgICAgTnVtYmVyIG9mIHJldHJpZXMKKwkgKiBAYWNjZXNzIHB1YmxpYworCSAqLworCWZ1bmN0aW9uIGdldFJldHJpZXMoKQorCXsKKwkJcmV0dXJuICR0aGlzLT5fcmV0cmllczsKKwl9CisKKwkvKioKKwkgKiBQYXJzZSBpbnB1dCBzdHJpbmcgaW50byBwYXNzd29yZCwgeXViaWtleSBwcmVmaXgsCisJICogY2lwaGVydGV4dCwgYW5kIE9UUC4KKwkgKgorCSAqIEBwYXJhbSAgc3RyaW5nICAgIElucHV0IHN0cmluZyB0byBwYXJzZQorCSAqIEBwYXJhbSAgc3RyaW5nICAgIE9wdGlvbmFsIGRlbGltaXRlciByZS1jbGFzcywgZGVmYXVsdCBpcyAnWzpdJworCSAqIEByZXR1cm4gYXJyYXkgICAgIEtleWVkIGFycmF5IHdpdGggZmllbGRzCisJICogQGFjY2VzcyBwdWJsaWMKKwkgKi8KKwlmdW5jdGlvbiBwYXJzZVBhc3N3b3JkT1RQKCRzdHIsICRkZWxpbSA9ICdbOl0nKQorCXsKKwkgIGlmICghcHJlZ19tYXRjaCgiL14oKC4qKSIgLiAkZGVsaW0gLiAiKT8iIC4KKwkJCSAgIigoW2NiZGVmZ2hpamtsbnJ0dXZdezAsMTZ9KSIgLgorCQkJICAiKFtjYmRlZmdoaWprbG5ydHV2XXszMn0pKSQvaSIsCisJCQkgICRzdHIsICRtYXRjaGVzKSkgeworCSAgICAvKiBEdm9yYWs/ICovCisJICAgIGlmICghcHJlZ19tYXRjaCgiL14oKC4qKSIgLiAkZGVsaW0gLiAiKT8iIC4KKwkJCSAgICAiKChbanhlXC51aWRjaHRuYnB5Z2tdezAsMTZ9KSIgLgorCQkJICAgICIoW2p4ZVwudWlkY2h0bmJweWdrXXszMn0pKSQvaSIsCisJCQkgICAgJHN0ciwgJG1hdGNoZXMpKSB7CisJICAgICAgcmV0dXJuIGZhbHNlOworCSAgICB9IGVsc2UgeworCSAgICAgICRyZXRbJ290cCddID0gc3RydHIoJG1hdGNoZXNbM10sICJqeGUudWlkY2h0bmJweWdrIiwgImNiZGVmZ2hpamtsbnJ0dXYiKTsKKwkgICAgfQorCSAgfSBlbHNlIHsKKwkgICAgJHJldFsnb3RwJ10gPSAkbWF0Y2hlc1szXTsKKwkgIH0KKwkgICRyZXRbJ3Bhc3N3b3JkJ10gPSAkbWF0Y2hlc1syXTsKKwkgICRyZXRbJ3ByZWZpeCddID0gJG1hdGNoZXNbNF07CisJICAkcmV0WydjaXBoZXJ0ZXh0J10gPSAkbWF0Y2hlc1s1XTsKKwkgIHJldHVybiAkcmV0OworCX0KKworCS8qIFRPRE8/IEFkZCBmdW5jdGlvbnMgdG8gZ2V0IHBhcnNlZCBwYXJ0cyBvZiBzZXJ2ZXIgcmVzcG9uc2U/ICovCisKKwkvKioKKwkgKiBQYXJzZSBwYXJhbWV0ZXJzIGZyb20gbGFzdCByZXNwb25zZQorCSAqCisJICogZXhhbXBsZTogZ2V0UGFyYW1ldGVycygidGltZXN0YW1wIiwgInNlc3Npb25jb3VudGVyIiwgInNlc3Npb251c2UiKTsKKwkgKgorCSAqIEBwYXJhbSAgYXJyYXkgQHBhcmFtZXRlcnMgIEFycmF5IHdpdGggc3RyaW5ncyByZXByZXNlbnRpbmcKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRvIHBhcnNlCisJICogQHJldHVybiBhcnJheSAgcGFyYW1ldGVyIGFycmF5IGZyb20gbGFzdCByZXNwb25zZQorCSAqIEBhY2Nlc3MgcHVibGljCisJICovCisJZnVuY3Rpb24gZ2V0UGFyYW1ldGVycygkcGFyYW1ldGVycykKKwl7CisJICBpZiAoJHBhcmFtZXRlcnMgPT0gbnVsbCkgeworCSAgICAkcGFyYW1ldGVycyA9IGFycmF5KCd0aW1lc3RhbXAnLCAnc2Vzc2lvbmNvdW50ZXInLCAnc2Vzc2lvbnVzZScpOworCSAgfQorCSAgJHBhcmFtX2FycmF5ID0gYXJyYXkoKTsKKwkgIGZvcmVhY2ggKCRwYXJhbWV0ZXJzIGFzICRwYXJhbSkgeworCSAgICBpZighcHJlZ19tYXRjaCgiLyIgLiAkcGFyYW0gLiAiPShbMC05XSspLyIsICR0aGlzLT5fcmVzcG9uc2UsICRvdXQpKSB7CisJICAgICAgcmV0dXJuIFBFQVI6OnJhaXNlRXJyb3IoJ0NvdWxkIG5vdCBwYXJzZSBwYXJhbWV0ZXIgJyAuICRwYXJhbSAuICcgZnJvbSByZXNwb25zZScpOworCSAgICB9CisJICAgICRwYXJhbV9hcnJheVskcGFyYW1dPSRvdXRbMV07CisJICB9CisJICByZXR1cm4gJHBhcmFtX2FycmF5OworCX0KKworICAgICAgICBmdW5jdGlvbiBfbWFrZV9jdXJsX2hhbmRsZSgkcXVlcnksICR0aW1lb3V0PW51bGwpCisJeworCSAgICBmbHVzaCgpOworCSAgICAkaGFuZGxlID0gY3VybF9pbml0KCRxdWVyeSk7CisJICAgIGN1cmxfc2V0b3B0KCRoYW5kbGUsIENVUkxPUFRfVVNFUkFHRU5ULCAiUEVBUiBBdXRoX1l1YmljbyIpOworCSAgICBjdXJsX3NldG9wdCgkaGFuZGxlLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsKKwkgICAgaWYgKCEkdGhpcy0+X2h0dHBzdmVyaWZ5KSB7CisJCWN1cmxfc2V0b3B0KCRoYW5kbGUsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIDApOworCQljdXJsX3NldG9wdCgkaGFuZGxlLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsKKwkgICAgfQorCSAgICBjdXJsX3NldG9wdCgkaGFuZGxlLCBDVVJMT1BUX0ZBSUxPTkVSUk9SLCB0cnVlKTsKKwkgICAgLyogSWYgdGltZW91dCBpcyBzZXQsIHdlIGJldHRlciBhcHBseSBpdCBoZXJlIGFzIHdlbGwKKwkgICAgICogaW4gY2FzZSB0aGUgdmFsaWRhdGlvbiBzZXJ2ZXIgZmFpbHMgdG8gZm9sbG93IGl0LiAqLworCSAgICBpZiAoJHRpbWVvdXQpIHsKKwkJY3VybF9zZXRvcHQoJGhhbmRsZSwgQ1VSTE9QVF9USU1FT1VULCAkdGltZW91dCk7CisJICAgIH0KKworCSAgICByZXR1cm4gJGhhbmRsZTsKKwl9CisKKwkvKioKKwkgKiBWZXJpZnkgWXViaWNvIE9UUCBhZ2FpbnN0IG11bHRpcGxlIFVSTHMKKwkgKiBQcm90b2NvbCBzcGVjaWZpY2F0aW9uIDIuMCBpcyB1c2VkIHRvIGNvbnN0cnVjdCB2YWxpZGF0aW9uIHJlcXVlc3RzCisJICoKKwkgKiBAcGFyYW0gc3RyaW5nICR0b2tlbiAgICAgICAgWXViaWNvIE9UUAorCSAqIEBwYXJhbSBpbnQgJHVzZV90aW1lc3RhbXAgICAxPT5zZW5kIHJlcXVlc3Qgd2l0aCAmdGltZXN0YW1wPTEgdG8KKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IHRpbWVzdGFtcCBhbmQgc2Vzc2lvbiBpbmZvcm1hdGlvbgorCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVzcG9uc2UKKwkgKiBAcGFyYW0gYm9vbGVhbiAkd2FpdF9mb3JfYWxsICBJZiB0cnVlLCB3YWl0IHVudGlsIGFsbAorCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnMgcmVzcG9uZHMgKGZvciBkZWJ1Z2dpbmcpCisJICogQHBhcmFtIHN0cmluZyAkc2wgICAgICAgICAgIFN5bmMgbGV2ZWwgaW4gcGVyY2VudGFnZSBiZXR3ZWVuIDAKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIDEwMCBvciAiZmFzdCIgb3IgInNlY3VyZSIuCisJICogQHBhcmFtIGludCAkdGltZW91dCAgICAgICAgIE1heCBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0CisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByZXNwb25zZXMKKwkgKiBAcGFyYW0gaW50ICRtYXhfcmV0cmllcyAgICAgTWF4IG51bWJlciBvZiB0aW1lcyB3ZSB3aWxsIHJldHJ5IG9uCisJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaWVudCBlcnJvcnMuCisJICogQHJldHVybiBtaXhlZCAgICAgICAgICAgICAgIFBFQVIgZXJyb3Igb24gZXJyb3IsIHRydWUgb3RoZXJ3aXNlCisJICogQGFjY2VzcyBwdWJsaWMKKwkgKi8KKwlmdW5jdGlvbiB2ZXJpZnkoJHRva2VuLCAkdXNlX3RpbWVzdGFtcD1udWxsLCAkd2FpdF9mb3JfYWxsPUZhbHNlLAorCQkJJHNsPW51bGwsICR0aW1lb3V0PW51bGwsICRtYXhfcmV0cmllcz1udWxsKQorCXsKKwkgIC8qIElmIG1heGltdW0gcmV0cmllcyBpcyBub3Qgc2V0LCBkZWZhdWx0IGZyb20gaW5zdGFuY2UgKi8KKwkgIGlmIChpc19udWxsKCRtYXhfcmV0cmllcykpIHsKKwkgICAgJG1heF9yZXRyaWVzID0gJHRoaXMtPl9tYXhfcmV0cmllczsKKwkgIH0KKworCSAgLyogQ29uc3RydWN0IHBhcmFtZXRlcnMgc3RyaW5nICovCisJICAkcmV0ID0gJHRoaXMtPnBhcnNlUGFzc3dvcmRPVFAoJHRva2VuKTsKKwkgIGlmICghJHJldCkgeworCSAgICByZXR1cm4gUEVBUjo6cmFpc2VFcnJvcignQ291bGQgbm90IHBhcnNlIFl1YmlrZXkgT1RQJyk7CisJICB9CisJICAkcGFyYW1zID0gYXJyYXkoJ2lkJz0+JHRoaXMtPl9pZCwgCisJCQkgICdvdHAnPT4kcmV0WydvdHAnXSwKKwkJCSAgJ25vbmNlJz0+bWQ1KHVuaXFpZChyYW5kKCkpKSk7CisJICAvKiBUYWtlIGNhcmUgb2YgcHJvdG9jb2wgdmVyc2lvbiAyIHBhcmFtZXRlcnMgKi8KKwkgIGlmICgkdXNlX3RpbWVzdGFtcCkgJHBhcmFtc1sndGltZXN0YW1wJ10gPSAxOworCSAgaWYgKCRzbCkgJHBhcmFtc1snc2wnXSA9ICRzbDsKKwkgIGlmICgkdGltZW91dCkgJHBhcmFtc1sndGltZW91dCddID0gJHRpbWVvdXQ7CisJICBrc29ydCgkcGFyYW1zKTsKKwkgICRwYXJhbWV0ZXJzID0gJyc7CisJICBmb3JlYWNoKCRwYXJhbXMgYXMgJHA9PiR2KSAkcGFyYW1ldGVycyAuPSAiJiIgLiAkcCAuICI9IiAuICR2OworCSAgJHBhcmFtZXRlcnMgPSBsdHJpbSgkcGFyYW1ldGVycywgIiYiKTsKKwkgIAorCSAgLyogR2VuZXJhdGUgc2lnbmF0dXJlLiAqLworCSAgaWYoJHRoaXMtPl9rZXkgPD4gIiIpIHsKKwkgICAgJHNpZ25hdHVyZSA9IGJhc2U2NF9lbmNvZGUoaGFzaF9obWFjKCdzaGExJywgJHBhcmFtZXRlcnMsCisJCQkJCQkgJHRoaXMtPl9rZXksIHRydWUpKTsKKwkgICAgJHNpZ25hdHVyZSA9IHByZWdfcmVwbGFjZSgnL1wrLycsICclMkInLCAkc2lnbmF0dXJlKTsKKwkgICAgJHBhcmFtZXRlcnMgLj0gJyZoPScgLiAkc2lnbmF0dXJlOworCSAgfQorCisJICAvKiBHZW5lcmF0ZSBhbmQgcHJlcGFyZSByZXF1ZXN0LiAqLworCSAgJHRoaXMtPl9sYXN0cXVlcnkgPSBudWxsOworCSAgJHRoaXMtPl9yZXRyaWVzID0gMDsKKwkgICR0aGlzLT5VUkxyZXNldCgpOworCisJICAkbWggPSBjdXJsX211bHRpX2luaXQoKTsKKwkgICRjaCA9IGFycmF5KCk7CisJICAkcmV0cmllcyA9IGFycmF5KCk7CisJICB3aGlsZSgkVVJMcGFydD0kdGhpcy0+Z2V0TmV4dFVSTHBhcnQoKSkgCisJICAgIHsKKwkgICAgICAkcXVlcnkgPSAkVVJMcGFydCAuICI/IiAuICRwYXJhbWV0ZXJzOworCisJICAgICAgaWYgKCR0aGlzLT5fbGFzdHF1ZXJ5KSB7ICR0aGlzLT5fbGFzdHF1ZXJ5IC49ICIgIjsgfQorCSAgICAgICR0aGlzLT5fbGFzdHF1ZXJ5IC49ICRxdWVyeTsKKwkgICAgICAKKwkgICAgICAkaGFuZGxlID0gJHRoaXMtPl9tYWtlX2N1cmxfaGFuZGxlKCRxdWVyeSwgJHRpbWVvdXQpOworCSAgICAgIGN1cmxfbXVsdGlfYWRkX2hhbmRsZSgkbWgsICRoYW5kbGUpOworCSAgICAgIAorCSAgICAgICRjaFsoaW50KSRoYW5kbGVdID0gJGhhbmRsZTsKKwkgICAgICAkcmV0cmllc1skcXVlcnldID0gMDsKKwkgICAgfQorCisJICAvKiBFeGVjdXRlIGFuZCByZWFkIHJlcXVlc3QuICovCisJICAkdGhpcy0+X3Jlc3BvbnNlPW51bGw7CisJICAkcmVwbGF5PUZhbHNlOworCSAgJHZhbGlkPUZhbHNlOworCSAgZG8geworCSAgICAvKiBMZXQgY3VybCBkbyBpdHMgd29yay4gKi8KKwkgICAgd2hpbGUgKCgkbXJjID0gY3VybF9tdWx0aV9leGVjKCRtaCwgJGFjdGl2ZSkpCisJCSAgID09IENVUkxNX0NBTExfTVVMVElfUEVSRk9STSkgeworCSAgICAgIGN1cmxfbXVsdGlfc2VsZWN0KCRtaCk7CisJICAgIH0KKworCSAgICB3aGlsZSAoJGluZm8gPSBjdXJsX211bHRpX2luZm9fcmVhZCgkbWgpKSB7CisJICAgICAgJGNpbmZvID0gY3VybF9nZXRpbmZvICgkaW5mb1snaGFuZGxlJ10pOworCSAgICAgIGlmICgkaW5mb1sncmVzdWx0J10gPT0gQ1VSTEVfT0spIHsKKwkJLyogV2UgaGF2ZSBhIGNvbXBsZXRlIHJlc3BvbnNlIGZyb20gb25lIHNlcnZlci4gKi8KKworCQkkc3RyID0gY3VybF9tdWx0aV9nZXRjb250ZW50KCRpbmZvWydoYW5kbGUnXSk7CisJCQorCQlpZiAoJHdhaXRfZm9yX2FsbCkgeyAjIEJldHRlciBkZWJ1ZyBpbmZvCisJCSAgJHRoaXMtPl9yZXNwb25zZSAuPSAnVVJMPScgLiAkY2luZm9bJ3VybCddIC4gJyBIVFRQX0NPREU9JworCQkgICAgLiAkY2luZm9bJ2h0dHBfY29kZSddIC4gIlxuIgorCQkgICAgLiAkc3RyIC4gIlxuIjsKKwkJfQorCisJCWlmIChwcmVnX21hdGNoKCIvc3RhdHVzPShbYS16QS1aMC05X10rKS8iLCAkc3RyLCAkb3V0KSkgeworCQkgICRzdGF0dXMgPSAkb3V0WzFdOworCisJCSAgLyogCisJCSAgICogVGhlcmUgYXJlIDMgY2FzZXMuCisJCSAgICoKKwkJICAgKiAxLiBPVFAgb3IgTm9uY2UgdmFsdWVzIGRvZXNuJ3QgbWF0Y2ggLSBpZ25vcmUKKwkJICAgKiByZXNwb25zZS4KKwkJICAgKgorCQkgICAqIDIuIFdlIGhhdmUgYSBITUFDIGtleS4gIElmIHNpZ25hdHVyZSBpcyBpbnZhbGlkIC0KKwkJICAgKiBpZ25vcmUgcmVzcG9uc2UuICBSZXR1cm4gaWYgc3RhdHVzPU9LIG9yCisJCSAgICogc3RhdHVzPVJFUExBWUVEX09UUC4KKwkJICAgKgorCQkgICAqIDMuIFJldHVybiBpZiBzdGF0dXM9T0sgb3Igc3RhdHVzPVJFUExBWUVEX09UUC4KKwkJICAgKi8KKwkJICBpZiAoIXByZWdfbWF0Y2goIi9vdHA9Ii4kcGFyYW1zWydvdHAnXS4iLyIsICRzdHIpIHx8CisJCSAgICAgICFwcmVnX21hdGNoKCIvbm9uY2U9Ii4kcGFyYW1zWydub25jZSddLiIvIiwgJHN0cikpIHsKKwkJICAgIC8qIENhc2UgMS4gSWdub3JlIHJlc3BvbnNlLiAqLworCQkgIH0gCisJCSAgZWxzZWlmICgkdGhpcy0+X2tleSA8PiAiIikgeworCQkgICAgLyogQ2FzZSAyLiBWZXJpZnkgc2lnbmF0dXJlIGZpcnN0ICovCisJCSAgICAkcm93cyA9IGV4cGxvZGUoIlxyXG4iLCB0cmltKCRzdHIpKTsKKwkJICAgICRyZXNwb25zZT1hcnJheSgpOworCQkJZm9yZWFjaCAoJHJvd3MgYXMgJGtleSA9PiAkdmFsKSB7CisJCSAgICAgIC8qID0gaXMgYWxzbyB1c2VkIGluIEJBU0U2NCBlbmNvZGluZyBzbyB3ZSBvbmx5IHJlcGxhY2UgdGhlIGZpcnN0ID0gYnkgIyB3aGljaCBpcyBub3QgdXNlZCBpbiBCQVNFNjQgKi8KKwkJICAgICAgJHZhbCA9IHByZWdfcmVwbGFjZSgnLz0vJywgJyMnLCAkdmFsLCAxKTsKKwkJICAgICAgJHJvdyA9IGV4cGxvZGUoIiMiLCAkdmFsKTsKKwkJICAgICAgJHJlc3BvbnNlWyRyb3dbMF1dID0gJHJvd1sxXTsKKwkJICAgIH0KKwkJICAgIAorCQkgICAgJHBhcmFtZXRlcnM9YXJyYXkoJ25vbmNlJywnb3RwJywgJ3Nlc3Npb25jb3VudGVyJywgJ3Nlc3Npb251c2UnLCAnc2wnLCAnc3RhdHVzJywgJ3QnLCAndGltZW91dCcsICd0aW1lc3RhbXAnKTsKKwkJICAgIHNvcnQoJHBhcmFtZXRlcnMpOworCQkgICAgJGNoZWNrPU51bGw7CisJCSAgICBmb3JlYWNoICgkcGFyYW1ldGVycyBhcyAkcGFyYW0pIHsKKwkJICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJHBhcmFtLCAkcmVzcG9uc2UpKSB7CisJCQlpZiAoJGNoZWNrKSAkY2hlY2sgPSAkY2hlY2sgLiAnJic7CisJCQkkY2hlY2sgPSAkY2hlY2sgLiAkcGFyYW0gLiAnPScgLiAkcmVzcG9uc2VbJHBhcmFtXTsKKwkJICAgICAgfQorCQkgICAgfQorCisJCSAgICAkY2hlY2tzaWduYXR1cmUgPQorCQkgICAgICBiYXNlNjRfZW5jb2RlKGhhc2hfaG1hYygnc2hhMScsIHV0ZjhfZW5jb2RlKCRjaGVjayksCisJCQkJCSAgICAgICR0aGlzLT5fa2V5LCB0cnVlKSk7CisKKwkJICAgIGlmKCRyZXNwb25zZVsnaCddID09ICRjaGVja3NpZ25hdHVyZSkgeworCQkgICAgICBpZiAoJHN0YXR1cyA9PSAnUkVQTEFZRURfT1RQJykgeworCQkJaWYgKCEkd2FpdF9mb3JfYWxsKSB7ICR0aGlzLT5fcmVzcG9uc2UgPSAkc3RyOyB9CisJCQkkcmVwbGF5PVRydWU7CisJCSAgICAgIH0gCisJCSAgICAgIGlmICgkc3RhdHVzID09ICdPSycpIHsKKwkJCWlmICghJHdhaXRfZm9yX2FsbCkgeyAkdGhpcy0+X3Jlc3BvbnNlID0gJHN0cjsgfQorCQkJJHZhbGlkPVRydWU7CisJCSAgICAgIH0KKwkJICAgIH0KKwkJICB9IGVsc2UgeworCQkgICAgLyogQ2FzZSAzLiBXZSBjaGVjayB0aGUgc3RhdHVzIGRpcmVjdGx5ICovCisJCSAgICBpZiAoJHN0YXR1cyA9PSAnUkVQTEFZRURfT1RQJykgeworCQkgICAgICBpZiAoISR3YWl0X2Zvcl9hbGwpIHsgJHRoaXMtPl9yZXNwb25zZSA9ICRzdHI7IH0KKwkJICAgICAgJHJlcGxheT1UcnVlOworCQkgICAgfSAKKwkJICAgIGlmICgkc3RhdHVzID09ICdPSycpIHsKKwkJICAgICAgaWYgKCEkd2FpdF9mb3JfYWxsKSB7ICR0aGlzLT5fcmVzcG9uc2UgPSAkc3RyOyB9CisJCSAgICAgICR2YWxpZD1UcnVlOworCQkgICAgfQorCQkgIH0KKwkJfQorCQlpZiAoISR3YWl0X2Zvcl9hbGwgJiYgKCR2YWxpZCB8fCAkcmVwbGF5KSkKKwkJICB7CisJCSAgICAvKiBXZSBoYXZlIHN0YXR1cz1PSyBvciBzdGF0dXM9UkVQTEFZRURfT1RQLCByZXR1cm4uICovCisJCSAgICBmb3JlYWNoICgkY2ggYXMgJGgpIHsKKwkJICAgICAgY3VybF9tdWx0aV9yZW1vdmVfaGFuZGxlKCRtaCwgJGgpOworCQkgICAgICBjdXJsX2Nsb3NlKCRoKTsKKwkJICAgIH0KKwkJICAgIGN1cmxfbXVsdGlfY2xvc2UoJG1oKTsKKwkJICAgIGlmICgkcmVwbGF5KSByZXR1cm4gUEVBUjo6cmFpc2VFcnJvcignUkVQTEFZRURfT1RQJyk7CisJCSAgICBpZiAoJHZhbGlkKSByZXR1cm4gdHJ1ZTsKKwkJICAgIHJldHVybiBQRUFSOjpyYWlzZUVycm9yKCRzdGF0dXMpOworCQkgIH0KKwkgICAgICB9IGVsc2UgeworCQkvKiBTb21lIGtpbmQgb2YgZXJyb3IsIGJ1dCBkZWYuIG5vdCBhIDIwMCByZXNwb25zZSAqLworCQkvKiBObyBzdGF0dXM9IGluIHJlc3BvbnNlIGJvZHkgKi8KKwkJJGh0dHBfc3RhdHVzX2NvZGUgPSAoaW50KSRjaW5mb1snaHR0cF9jb2RlJ107CisJCSRxdWVyeSA9ICRjaW5mb1sndXJsJ107CisJCWlmICgkaHR0cF9zdGF0dXNfY29kZSA9PSA0MDAgfHwKKwkJICAgICgkaHR0cF9zdGF0dXNfY29kZSA+PSA1MDAgJiYgJGh0dHBfc3RhdHVzX2NvZGUgPCA2MDApKSB7CisJCSAgLyogbWF5YmUgcmV0cnkgKi8KKwkJICBpZiAoJHJldHJpZXNbJHF1ZXJ5XSA8ICRtYXhfcmV0cmllcykgeworCQkgICAgJHJldHJpZXNbJHF1ZXJ5XSsrOyAgLy8gZm9yIHRoaXMgc2VydmVyCisJCSAgICAkdGhpcy0+X3JldHJpZXMrKzsgICAvLyBmb3IgdGhpcyB2YWxpZGF0aW9uIGF0dGVtcHQKKworCQkgICAgJG5ld2hhbmRsZSA9ICR0aGlzLT5fbWFrZV9jdXJsX2hhbmRsZSgkcXVlcnksICR0aW1lb3V0KTsKKworCQkgICAgY3VybF9tdWx0aV9hZGRfaGFuZGxlKCRtaCwgJG5ld2hhbmRsZSk7CisJCSAgICAkY2hbKGludCkkbmV3aGFuZGxlXSA9ICRuZXdoYW5kbGU7CisKKwkJICAgIC8vIExvb3AgYmFjayB1cCB0byBjdXJsX211bHRpX2V4ZWMsIGV2ZW4gaWYgdGhpcworCQkgICAgLy8gd2FzIHRoZSBsYXN0IGhhbmRsZSBhbmQgY3VybF9tdWx0aV9leGVjIF93YXNfCisJCSAgICAvLyBubyBsb25nZXIgYWN0aXZlLCBpdCdzIGFjdGl2ZSBhZ2FpbiBub3cgd2UndmUKKwkJICAgIC8vIGFkZGVkIGEgcmV0cnkuCisJCSAgICAkYWN0aXZlID0gdHJ1ZTsKKwkJICB9CisJCX0KKwkgICAgICB9CisJICAgICAgLyogRG9uZSB3aXRoIHRoaXMgaGFuZGxlICovCisJICAgICAgY3VybF9tdWx0aV9yZW1vdmVfaGFuZGxlKCRtaCwgJGluZm9bJ2hhbmRsZSddKTsKKwkgICAgICBjdXJsX2Nsb3NlKCRpbmZvWydoYW5kbGUnXSk7CisJICAgICAgdW5zZXQgKCRjaFsoaW50KSRpbmZvWydoYW5kbGUnXV0pOworCSAgICB9CisJICB9IHdoaWxlICgkYWN0aXZlKTsKKworCSAgLyogVHlwaWNhbGx5IHRoaXMgaXMgb25seSByZWFjaGVkIGZvciB3YWl0X2Zvcl9hbGw9dHJ1ZSBvcgorCSAgICogd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkIGFuZCB0aGVyZSBpcyBubworCSAgICogT0svUkVQTEFZRURfUkVRVUVTVCBhbnN3ZXIgKHRoaW5rIGZpcmV3YWxsKS4KKwkgICAqLworCisJICBmb3JlYWNoICgkY2ggYXMgJGgpIHsKKwkgICAgY3VybF9tdWx0aV9yZW1vdmVfaGFuZGxlICgkbWgsICRoKTsKKwkgICAgY3VybF9jbG9zZSAoJGgpOworCSAgfQorCSAgY3VybF9tdWx0aV9jbG9zZSAoJG1oKTsKKwkgIAorCSAgaWYgKCRyZXBsYXkpIHJldHVybiBQRUFSOjpyYWlzZUVycm9yKCdSRVBMQVlFRF9PVFAnKTsKKwkgIGlmICgkdmFsaWQpIHJldHVybiB0cnVlOworCSAgcmV0dXJuIFBFQVI6OnJhaXNlRXJyb3IoJ05PX1ZBTElEX0FOU1dFUicpOworCX0KK30KKz8+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9hcnJheV9tZXJnZV9yZWFsLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL2FycmF5X21lcmdlX3JlYWwucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyYTFmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9hcnJheV9tZXJnZV9yZWFsLnBocApAQCAtMCwwICsxLDE0IEBACis8P3BocAorCitmdW5jdGlvbiBhcnJheV9tZXJnZV9yZWFsKCkKK3sKKyAgICAkb3V0cHV0ID0gW107CisgICAgZm9yZWFjaCAoZnVuY19nZXRfYXJncygpIGFzICRhcnJheSkgeworICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpIHsKKyAgICAgICAgICAgICRvdXRwdXRbJGtleV0gPSBpc3NldCgkb3V0cHV0WyRrZXldKSA/CisgICAgICAgIGFycmF5X21lcmdlKCRvdXRwdXRbJGtleV0sICR2YWx1ZSkgOiAkdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gJG91dHB1dDsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL2NvbXBvc2VyLmpzb24gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9jb21wb3Nlci5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3Y2FhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9jb21wb3Nlci5qc29uCkBAIC0wLDAgKzEsMTMgQEAKK3sKKyAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgInJvYnRocmVlL3R3b2ZhY3RvcmF1dGgiOiAiXjEuNiIsCisgICAgICAgICJ5dWJpY28vdTJmbGliLXNlcnZlciI6ICJeMS4wIiwKKyAgICAgICAgInBocG1haWxlci9waHBtYWlsZXIiOiAiXjYuMSIsCisgICAgICAgICJwaHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlciI6ICJeNS4wLjUiLAorICAgICAgICAic291bmRhc2xlZXAvaHRtbDJ0ZXh0IjogIl4wLjUuMCIsCisgICAgICAgICJkZGVib2VyL2ltYXAiOiAiXjEuNSIsCisgICAgICAgICJtYXR0aGlhc211bGxpZS9taW5pZnkiOiAiXjEuMyIsCisgICAgICAgICJic2hhZmZlci9vYXV0aDItc2VydmVyLXBocCI6ICJeMS4xMSIsCisgICAgICAgICJtdXN0YW5nb3N0YW5nL3NweWMiOiAiXjAuNi4zIgorICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL2NvbXBvc2VyLmxvY2sgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9jb21wb3Nlci5sb2NrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNjE4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9jb21wb3Nlci5sb2NrCkBAIC0wLDAgKzEsNjI5IEBACit7CisgICAgIl9yZWFkbWUiOiBbCisgICAgICAgICJUaGlzIGZpbGUgbG9ja3MgdGhlIGRlcGVuZGVuY2llcyBvZiB5b3VyIHByb2plY3QgdG8gYSBrbm93biBzdGF0ZSIsCisgICAgICAgICJSZWFkIG1vcmUgYWJvdXQgaXQgYXQgaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcvZG9jLzAxLWJhc2ljLXVzYWdlLm1kI2luc3RhbGxpbmctZGVwZW5kZW5jaWVzIiwKKyAgICAgICAgIlRoaXMgZmlsZSBpcyBAZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkiCisgICAgXSwKKyAgICAiY29udGVudC1oYXNoIjogIjU4ZDVkMzBiMjY2ZjhiODAxNWQ3OTM3ZTFhMzVhYzVkIiwKKyAgICAicGFja2FnZXMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImJzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogInYxLjExLjEiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1YTBjODAwMGQ0NzYzYjI3NjkxOWUyMTA2ZjU0ZWRkZGE2YmM1MGZhIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3ppcGJhbGwvNWEwYzgwMDBkNDc2M2IyNzY5MTllMjEwNmY1NGVkZGRhNmJjNTBmYSIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1YTBjODAwMGQ0NzYzYjI3NjkxOWUyMTA2ZjU0ZWRkZGE2YmM1MGZhIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjkiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJhd3MvYXdzLXNkay1waHAiOiAifjIuOCIsCisgICAgICAgICAgICAgICAgImZpcmViYXNlL3BocC1qd3QiOiAifjIuMiIsCisgICAgICAgICAgICAgICAgIm1vbmdvZGIvbW9uZ29kYiI6ICJeMS4xIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIl40LjAiLAorICAgICAgICAgICAgICAgICJwcmVkaXMvcHJlZGlzIjogImRldi1tYXN0ZXIiLAorICAgICAgICAgICAgICAgICJ0aG9iYnMvcGhwY2Fzc2EiOiAiZGV2LW1hc3RlciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3VnZ2VzdCI6IHsKKyAgICAgICAgICAgICAgICAiYXdzL2F3cy1zZGstcGhwIjogIn4yLjggaXMgcmVxdWlyZWQgdG8gdXNlIER5bmFtb0RCIHN0b3JhZ2UiLAorICAgICAgICAgICAgICAgICJmaXJlYmFzZS9waHAtand0IjogIn4yLjIgaXMgcmVxdWlyZWQgdG8gdXNlIEpXVCBmZWF0dXJlcyIsCisgICAgICAgICAgICAgICAgIm1vbmdvZGIvbW9uZ29kYiI6ICJeMS4xIGlzIHJlcXVpcmVkIHRvIHVzZSBNb25nb0RCIHN0b3JhZ2UiLAorICAgICAgICAgICAgICAgICJwcmVkaXMvcHJlZGlzIjogIlJlcXVpcmVkIHRvIHVzZSBSZWRpcyBzdG9yYWdlIiwKKyAgICAgICAgICAgICAgICAidGhvYmJzL3BocGNhc3NhIjogIlJlcXVpcmVkIHRvIHVzZSBDYXNzYW5kcmEgc3RvcmFnZSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTAiOiB7CisgICAgICAgICAgICAgICAgICAgICJPQXV0aDIiOiAic3JjLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkJyZW50IFNoYWZmZXIiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiYnNoYWZzQGdtYWlsLmNvbSIsCisgICAgICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vYnJlbnRlcnRhaW5tZW50LmNvbSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9BdXRoMiBTZXJ2ZXIgZm9yIFBIUCIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJhdXRoIiwKKyAgICAgICAgICAgICAgICAib2F1dGgiLAorICAgICAgICAgICAgICAgICJvYXV0aDIiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxOC0xMi0wNFQwMDoyOTozMiswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZGRlYm9lci9pbWFwIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMTAuMCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJmYzA5ZGJmNmZiOWJhNzMxN2E5NWM3MTllNDU4OTNlZmM0ZmU2YmRlIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2RkZWJvZXIvaW1hcC96aXBiYWxsL2ZjMDlkYmY2ZmI5YmE3MzE3YTk1YzcxOWU0NTg5M2VmYzRmZTZiZGUiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiZmMwOWRiZjZmYjliYTczMTdhOTVjNzE5ZTQ1ODkzZWZjNGZlNmJkZSIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImV4dC1pY29udiI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LWltYXAiOiAiKiIsCisgICAgICAgICAgICAgICAgImV4dC1tYnN0cmluZyI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIl43LjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJmcmllbmRzb2ZwaHAvcGhwLWNzLWZpeGVyIjogIl4yLjE2IiwKKyAgICAgICAgICAgICAgICAicGhwc3Rhbi9waHBzdGFuIjogIl4wLjEyIiwKKyAgICAgICAgICAgICAgICAicGhwc3Rhbi9waHBzdGFuLXBocHVuaXQiOiAiXjAuMTIiLAorICAgICAgICAgICAgICAgICJwaHBzdGFuL3BocHN0YW4tc3RyaWN0LXJ1bGVzIjogIl4wLjEyIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIl44LjUiLAorICAgICAgICAgICAgICAgICJ6ZW5kZnJhbWV3b3JrL3plbmQtbWFpbCI6ICJeMi4xMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAgICAgICAgICJEZGVib2VyXFxJbWFwXFwiOiAic3JjLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkRhdmlkIGRlIEJvZXIiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiZGF2aWRAZGRlYm9lci5ubCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiRmlsaXBwbyBUZXNzYXJvdHRvIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInpvZXNsYW1AZ21haWwuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJDb21tdW5pdHkgY29udHJpYnV0b3JzIiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvZ3JhcGhzL2NvbnRyaWJ1dG9ycyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9iamVjdC1vcmllbnRlZCBJTUFQIGZvciBQSFAiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJlbWFpbCIsCisgICAgICAgICAgICAgICAgImltYXAiLAorICAgICAgICAgICAgICAgICJtYWlsIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMjAtMDEtMjRUMDg6MTU6MjQrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIm1hdHRoaWFzbXVsbGllL21pbmlmeSIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjMuNjMiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiOWJhMWI0NTk4MjhhZGMxMzQzMGY0ZGQ2YzQ5ZGFlNDk1MGRjNDExNyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9tYXR0aGlhc211bGxpZS9taW5pZnkvemlwYmFsbC85YmExYjQ1OTgyOGFkYzEzNDMwZjRkZDZjNDlkYWU0OTUwZGM0MTE3IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjliYTFiNDU5ODI4YWRjMTM0MzBmNGRkNmM0OWRhZTQ5NTBkYzQxMTciLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJleHQtcGNyZSI6ICIqIiwKKyAgICAgICAgICAgICAgICAibWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIiOiAifjEuMSIsCisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAiZnJpZW5kc29mcGhwL3BocC1jcy1maXhlciI6ICJ+Mi4wIiwKKyAgICAgICAgICAgICAgICAibWF0dGhpYXNtdWxsaWUvc2NyYXBib29rIjogIn4xLjAiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjQuOCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3VnZ2VzdCI6IHsKKyAgICAgICAgICAgICAgICAicHNyL2NhY2hlLWltcGxlbWVudGF0aW9uIjogIkNhY2hlIGltcGxlbWVudGF0aW9uIHRvIHVzZSB3aXRoIE1pbmlmeTo6Y2FjaGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImJpbiI6IFsKKyAgICAgICAgICAgICAgICAiYmluL21pbmlmeWNzcyIsCisgICAgICAgICAgICAgICAgImJpbi9taW5pZnlqcyIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAgICAgICAgICJNYXR0aGlhc011bGxpZVxcTWluaWZ5XFwiOiAic3JjLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIk1hdHRoaWFzIE11bGxpZSIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJtaW5pZnlAbXVsbGllLmV1IiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cubXVsbGllLmV1IiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ1NTICYgSmF2YVNjcmlwdCBtaW5pZmllciwgaW4gUEhQLiBSZW1vdmVzIHdoaXRlc3BhY2UsIHN0cmlwcyBjb21tZW50cywgY29tYmluZXMgZmlsZXMgKGluY2wuIEBpbXBvcnQgc3RhdGVtZW50cyBhbmQgc21hbGwgYXNzZXRzIGluIENTUyBmaWxlcyksIGFuZCBvcHRpbWl6ZXMvc2hvcnRlbnMgYSBmZXcgY29tbW9uIHByb2dyYW1taW5nIHBhdHRlcm5zLiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5taW5pZmllci5vcmciLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJKUyIsCisgICAgICAgICAgICAgICAgImNzcyIsCisgICAgICAgICAgICAgICAgImphdmFzY3JpcHQiLAorICAgICAgICAgICAgICAgICJtaW5pZmllciIsCisgICAgICAgICAgICAgICAgIm1pbmlmeSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDIwLTAxLTIxVDIwOjIxOjA4KzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJtYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlciIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjEuMyIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImU3ZDEzYjJjN2UyZjIyNjhlMTQyNGFhZWQwMjA4NTUxOGFmYTAyZDkiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIvemlwYmFsbC9lN2QxM2IyYzdlMmYyMjY4ZTE0MjRhYWVkMDIwODU1MThhZmEwMmQ5IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImU3ZDEzYjJjN2UyZjIyNjhlMTQyNGFhZWQwMjA4NTUxOGFmYTAyZDkiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJleHQtcGNyZSI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjQuOCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAgICAgICAgICJNYXR0aGlhc011bGxpZVxcUGF0aENvbnZlcnRlclxcIjogInNyYy8iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJNSVQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJNYXR0aGlhcyBNdWxsaWUiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAicGF0aGNvbnZlcnRlckBtdWxsaWUuZXUiLAorICAgICAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5tdWxsaWUuZXUiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZWxhdGl2ZSBwYXRoIGNvbnZlcnRlciIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL2dpdGh1Yi5jb20vbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJjb252ZXJ0ZXIiLAorICAgICAgICAgICAgICAgICJwYXRoIiwKKyAgICAgICAgICAgICAgICAicGF0aHMiLAorICAgICAgICAgICAgICAgICJyZWxhdGl2ZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDE5LTAyLTA1VDIzOjQxOjA5KzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJtdXN0YW5nb3N0YW5nL3NweWMiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMC42LjMiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiZ2l0QGdpdGh1Yi5jb206bXVzdGFuZ29zdGFuZy9zcHljLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI0NjI3YzgzOGIxNjU1MGI2NjZkMTVhZWFlMWU1Mjg5ZGQ1Yjc3ZGEwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL211c3Rhbmdvc3Rhbmcvc3B5Yy96aXBiYWxsLzQ2MjdjODM4YjE2NTUwYjY2NmQxNWFlYWUxZTUyODlkZDViNzdkYTAiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiNDYyN2M4MzhiMTY1NTBiNjY2ZDE1YWVhZTFlNTI4OWRkNWI3N2RhMCIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4xIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIjQuMy4qQGRldiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICAgICAiZGV2LW1hc3RlciI6ICIwLjUueC1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAiZmlsZXMiOiBbCisgICAgICAgICAgICAgICAgICAgICJTcHljLnBocCIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIm11c3Rhbmdvc3RhbmciLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAidmxhZC5hbmRlcnNlbkBnbWFpbC5jb20iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNpbXBsZSBZQU1MIGxvYWRlci9kdW1wZXIgY2xhc3MgZm9yIFBIUCIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL211c3Rhbmdvc3Rhbmcvc3B5Yy8iLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJzcHljIiwKKyAgICAgICAgICAgICAgICAieWFtbCIsCisgICAgICAgICAgICAgICAgInltbCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDE5LTA5LTEwVDEzOjE2OjI5KzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwYXJhZ29uaWUvcmFuZG9tX2NvbXBhdCIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICJ2OS45OS45OSIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGFyYWdvbmllL3JhbmRvbV9jb21wYXQuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjg0YjRkZmIxMjBjNmY5YjRmZjdiMzY4NWY5YjhmMWFhMzY1YTBjOTUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvemlwYmFsbC84NGI0ZGZiMTIwYzZmOWI0ZmY3YjM2ODVmOWI4ZjFhYTM2NWEwYzk1IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjg0YjRkZmIxMjBjNmY5YjRmZjdiMzY4NWY5YjhmMWFhMzY1YTBjOTUiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiXjciCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiNC4qfDUuKiIsCisgICAgICAgICAgICAgICAgInZpbWVvL3BzYWxtIjogIl4xIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgICAgICJleHQtbGlic29kaXVtIjogIlByb3ZpZGVzIGEgbW9kZXJuIGNyeXB0byBBUEkgdGhhdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSByYW5kb20gYnl0ZXMuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlBhcmFnb24gSW5pdGlhdGl2ZSBFbnRlcnByaXNlcyIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzZWN1cml0eUBwYXJhZ29uaWUuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vcGFyYWdvbmllLmNvbSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlBIUCA1LnggcG9seWZpbGwgZm9yIHJhbmRvbV9ieXRlcygpIGFuZCByYW5kb21faW50KCkgZnJvbSBQSFAgNyIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgImNzcHJuZyIsCisgICAgICAgICAgICAgICAgInBvbHlmaWxsIiwKKyAgICAgICAgICAgICAgICAicHNldWRvcmFuZG9tIiwKKyAgICAgICAgICAgICAgICAicmFuZG9tIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTgtMDctMDJUMTU6NTU6NTYrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjUuMC41IiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMjc5ODM0MzNhYWJlY2NlZTgzMjU3M2MzYzU2ZTZhNDg1NWU1Nzc0NSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci96aXBiYWxsLzI3OTgzNDMzYWFiZWNjZWU4MzI1NzNjM2M1NmU2YTQ4NTVlNTc3NDUiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMjc5ODM0MzNhYWJlY2NlZTgzMjU3M2MzYzU2ZTZhNDg1NWU1Nzc0NSIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImV4dC1tYWlscGFyc2UiOiAiKiIsCisgICAgICAgICAgICAgICAgInBocCI6ICJeNy4xIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXBsYWNlIjogeworICAgICAgICAgICAgICAgICJleG9ydXMvcGhwLW1pbWUtbWFpbC1wYXJzZXIiOiAiKiIsCisgICAgICAgICAgICAgICAgIm1lc3NhZ2VkL3BocC1taW1lLW1haWwtcGFyc2VyIjogIioiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHAtY292ZXJhbGxzL3BocC1jb3ZlcmFsbHMiOiAiXjIuMSIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLXRva2VuLXN0cmVhbSI6ICJeMy4wIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIl43LjAiLAorICAgICAgICAgICAgICAgICJzcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyIjogIl4zLjQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgICAgICAgICAiUGhwTWltZU1haWxQYXJzZXJcXCI6ICJzcmMvIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiTUlUIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZVhvcnVzIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogImV4b3J1cy5zcGFtQGdtYWlsLmNvbSIsCisgICAgICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vZVhvcnVzLyIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiTS5WYWxpbnNraXMiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiTS5WYWxpbnNAZ21haWwuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvcGhwLW1pbWUtbWFpbC1wYXJzZXIiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImV1Z2VuZS5lbW1ldHQud29vZCIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJnZW5lX3dAY2VtZW50aG9yaXpvbi5jb20iLAorICAgICAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9waHAtbWltZS1tYWlsLXBhcnNlciIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYWxrbmV0c28iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiYWxrbmVAZ21haWwuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvcGhwLW1pbWUtbWFpbC1wYXJzZXIiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImJ1Y2FiYXkiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiZ2FiZUBmaWppd2ViZGVzaWduLmNvbSIsCisgICAgICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vd3d3LmZpaml3ZWJkZXNpZ24uY29tIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBmdWxseSB0ZXN0ZWQgZW1haWwgcGFyc2VyIGZvciBQSFAgNy4xKyAobWFpbHBhcnNlIGV4dGVuc2lvbiB3cmFwcGVyKS4iLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlciIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgIk1pbWVNYWlsUGFyc2VyIiwKKyAgICAgICAgICAgICAgICAibWFpbCIsCisgICAgICAgICAgICAgICAgIm1haWxwYXJzZSIsCisgICAgICAgICAgICAgICAgIm1pbWUiLAorICAgICAgICAgICAgICAgICJwYXJzZXIiLAorICAgICAgICAgICAgICAgICJwaHAiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxOS0wOS0yM1QxMTo1Nzo1OCswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGhwbWFpbGVyL3BocG1haWxlciIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICJ2Ni4xLjYiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImMyNzk2Y2IxY2I5OWQ3NzE3MjkwYjQ4YzRlNmYzMmNiNmM2MGI3YjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvUEhQTWFpbGVyL1BIUE1haWxlci96aXBiYWxsL2MyNzk2Y2IxY2I5OWQ3NzE3MjkwYjQ4YzRlNmYzMmNiNmM2MGI3YjMiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYzI3OTZjYjFjYjk5ZDc3MTcyOTBiNDhjNGU2ZjMyY2I2YzYwYjdiMyIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImV4dC1jdHlwZSI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LWZpbHRlciI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS41LjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJkb2N0cmluZS9hbm5vdGF0aW9ucyI6ICJeMS4yIiwKKyAgICAgICAgICAgICAgICAiZnJpZW5kc29mcGhwL3BocC1jcy1maXhlciI6ICJeMi4yIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIl40LjggfHwgXjUuNyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3VnZ2VzdCI6IHsKKyAgICAgICAgICAgICAgICAiZXh0LW1ic3RyaW5nIjogIk5lZWRlZCB0byBzZW5kIGVtYWlsIGluIG11bHRpYnl0ZSBlbmNvZGluZyBjaGFyc2V0IiwKKyAgICAgICAgICAgICAgICAiaGF5YWdlZWsvb2F1dGgyLXlhaG9vIjogIk5lZWRlZCBmb3IgWWFob28gWE9BVVRIMiBhdXRoZW50aWNhdGlvbiIsCisgICAgICAgICAgICAgICAgImxlYWd1ZS9vYXV0aDItZ29vZ2xlIjogIk5lZWRlZCBmb3IgR29vZ2xlIFhPQVVUSDIgYXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgICAgICJwc3IvbG9nIjogIkZvciBvcHRpb25hbCBQU1ItMyBkZWJ1ZyBsb2dnaW5nIiwKKyAgICAgICAgICAgICAgICAic3RldmVubWFndWlyZS9vYXV0aDItbWljcm9zb2Z0IjogIk5lZWRlZCBmb3IgTWljcm9zb2Z0IFhPQVVUSDIgYXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgICAgICJzeW1mb255L3BvbHlmaWxsLW1ic3RyaW5nIjogIlRvIHN1cHBvcnQgVVRGLTggaWYgdGhlIE1ic3RyaW5nIFBIUCBleHRlbnNpb24gaXMgbm90IGVuYWJsZWQgKF4xLjIpIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIlBIUE1haWxlclxcUEhQTWFpbGVyXFwiOiAic3JjLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkxHUEwtMi4xLW9ubHkiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJNYXJjdXMgQm9pbnRvbiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJwaHBtYWlsZXJAc3luY2hyb21lZGlhLmNvLnVrIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJKaW0gSmFnaWVsc2tpIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogImppbWphZ0BnbWFpbC5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkFuZHkgUHJldm9zdCIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJjb2Rld29yeHRlY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJCcmVudCBSLiBNYXR6ZWxsZSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlBIUE1haWxlciBpcyBhIGZ1bGwtZmVhdHVyZWQgZW1haWwgY3JlYXRpb24gYW5kIHRyYW5zZmVyIGNsYXNzIGZvciBQSFAiLAorICAgICAgICAgICAgImZ1bmRpbmciOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zeW5jaHJvIiwKKyAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0aHViIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDIwLTA1LTI3VDEyOjI0OjAzKzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyb2J0aHJlZS90d29mYWN0b3JhdXRoIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuNy4wIiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzNzk4M2JmNjc1YzViYWNhMDlkMTlkNjcwNTE3MDQ4OWQwZGYwMDAyIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvemlwYmFsbC8zNzk4M2JmNjc1YzViYWNhMDlkMTlkNjcwNTE3MDQ4OWQwZGYwMDAyIiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjM3OTgzYmY2NzVjNWJhY2EwOWQxOWQ2NzA1MTcwNDg5ZDBkZjAwMDIiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjYuMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJAc3RhYmxlIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIlJvYlRocmVlXFxBdXRoXFwiOiAibGliIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiTUlUIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiUm9iIEphbnNzZW4iLAorICAgICAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3JvYmlpaS5tZSIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlR3byBGYWN0b3IgQXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiQXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgICAgICJNRkEiLAorICAgICAgICAgICAgICAgICJNdWx0aSBGYWN0b3IgQXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgICAgICJUd28gRmFjdG9yIEF1dGhlbnRpY2F0aW9uIiwKKyAgICAgICAgICAgICAgICAiYXV0aGVudGljYXRvciIsCisgICAgICAgICAgICAgICAgImF1dGh5IiwKKyAgICAgICAgICAgICAgICAicGhwIiwKKyAgICAgICAgICAgICAgICAidGZhIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMjAtMDEtMDJUMTk6NTY6NDYrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNvdW5kYXNsZWVwL2h0bWwydGV4dCIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIwLjUuMCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0LmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJjZGI4OWY2ZmZhMmM0Y2M3OGY4ZWQ5ZWE2ZWUwNTk0YTkxMzNjY2FkIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NvdW5kYXNsZWVwL2h0bWwydGV4dC96aXBiYWxsL2NkYjg5ZjZmZmEyYzRjYzc4ZjhlZDllYTZlZTA1OTRhOTEzM2NjYWQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiY2RiODlmNmZmYTJjNGNjNzhmOGVkOWVhNmVlMDU5NGE5MTMzY2NhZCIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImV4dC1kb20iOiAiKiIsCisgICAgICAgICAgICAgICAgImV4dC1saWJ4bWwiOiAiKiIsCisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4yIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIj49NC4wIiwKKyAgICAgICAgICAgICAgICAic291bmRhc2xlZXAvY29tcG9uZW50LXRlc3RzIjogImRldi1tYXN0ZXIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgICAgICAgICAiSHRtbDJUZXh0XFwiOiAic3JjIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiRVBMLTEuMCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkpldm9uIFdyaWdodCIsCisgICAgICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2pldm9uLm9yZyIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgUEhQIHNjcmlwdCB0byBjb252ZXJ0IEhUTUwgaW50byBhIHBsYWluIHRleHQgZm9ybWF0IiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0IiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZW1haWwiLAorICAgICAgICAgICAgICAgICJodG1sIiwKKyAgICAgICAgICAgICAgICAicGhwIiwKKyAgICAgICAgICAgICAgICAidGV4dCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDE3LTA0LTE5VDIyOjAxOjUwKzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ5dWJpY28vdTJmbGliLXNlcnZlciIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjAuMiIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWXViaWNvL3BocC11MmZsaWItc2VydmVyLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1NWQ4MTNhY2Y2ODIxMmFkMmNhZGVjZGUwNzU1MTYwMGQ2OTcxOTM5IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL1l1Ymljby9waHAtdTJmbGliLXNlcnZlci96aXBiYWxsLzU1ZDgxM2FjZjY4MjEyYWQyY2FkZWNkZTA3NTUxNjAwZDY5NzE5MzkiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiNTVkODEzYWNmNjgyMTJhZDJjYWRlY2RlMDc1NTE2MDBkNjk3MTkzOSIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImV4dC1vcGVuc3NsIjogIioiLAorICAgICAgICAgICAgICAgICJwYXJhZ29uaWUvcmFuZG9tX2NvbXBhdCI6ICI+PSAxIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS42IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn41LjciLAorICAgICAgICAgICAgICAgICJ2aW1lby9wc2FsbSI6ICJeMHxeMXxeMiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAiY2xhc3NtYXAiOiBbCisgICAgICAgICAgICAgICAgICAgICJzcmMvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTItQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJMaWJyYXJ5IGZvciBVMkYgaW1wbGVtZW50YXRpb24iLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZGV2ZWxvcGVycy55dWJpY28uY29tL3BocC11MmZsaWItc2VydmVyIiwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTgtMDktMDdUMDg6MTY6NDQrMDA6MDAiCisgICAgICAgIH0KKyAgICBdLAorICAgICJwYWNrYWdlcy1kZXYiOiBbXSwKKyAgICAiYWxpYXNlcyI6IFtdLAorICAgICJtaW5pbXVtLXN0YWJpbGl0eSI6ICJzdGFibGUiLAorICAgICJzdGFiaWxpdHktZmxhZ3MiOiBbXSwKKyAgICAicHJlZmVyLXN0YWJsZSI6IGZhbHNlLAorICAgICJwcmVmZXItbG93ZXN0IjogZmFsc2UsCisgICAgInBsYXRmb3JtIjogW10sCisgICAgInBsYXRmb3JtLWRldiI6IFtdLAorICAgICJwbHVnaW4tYXBpLXZlcnNpb24iOiAiMS4xLjAiCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZUR1bXBhYmxlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlRHVtcGFibGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmODJkNmEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZUR1bXBhYmxlLnBocApAQCAtMCwwICsxLDcgQEAKKzw/cGhwIG5hbWVzcGFjZSBTaWV2ZTsKKworaW50ZXJmYWNlIFNpZXZlRHVtcGFibGUKK3sKKwlmdW5jdGlvbiBkdW1wKCk7CisJZnVuY3Rpb24gdGV4dCgpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhN2ZlNjAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZUV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw0NyBAQAorPD9waHAgbmFtZXNwYWNlIFNpZXZlOworCityZXF1aXJlX29uY2UoJ1NpZXZlVG9rZW4ucGhwJyk7CisKK3VzZSBFeGNlcHRpb247CisKK2NsYXNzIFNpZXZlRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uCit7CisgICAgcHJvdGVjdGVkICR0b2tlbl87CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoU2lldmVUb2tlbiAkdG9rZW4sICRhcmcpCisgICAgeworICAgICAgICAkbWVzc2FnZSA9ICd1bmRlZmluZWQgc2lldmUgZXhjZXB0aW9uJzsKKyAgICAgICAgJHRoaXMtPnRva2VuXyA9ICR0b2tlbjsKKworICAgICAgICBpZiAoaXNfc3RyaW5nKCRhcmcpKQorICAgICAgICB7CisgICAgICAgICAgICAkbWVzc2FnZSA9ICRhcmc7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaXNfYXJyYXkoJGFyZykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJHR5cGUgPSBTaWV2ZVRva2VuOjp0eXBlU3RyaW5nKGFycmF5X3NoaWZ0KCRhcmcpKTsKKyAgICAgICAgICAgICAgICBmb3JlYWNoKCRhcmcgYXMgJHQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAkdHlwZSAuPSAnIG9yICcuIFNpZXZlVG9rZW46OnR5cGVTdHJpbmcoJHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkdHlwZSA9IFNpZXZlVG9rZW46OnR5cGVTdHJpbmcoJGFyZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICR0b2tlblR5cGUgPSBTaWV2ZVRva2VuOjp0eXBlU3RyaW5nKCR0b2tlbi0+dHlwZSk7CisgICAgICAgICAgICAkbWVzc2FnZSA9ICIkdG9rZW5UeXBlIHdoZXJlICR0eXBlIGV4cGVjdGVkIG5lYXIgIi4gJHRva2VuLT50ZXh0OworICAgICAgICB9CisKKyAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgnbGluZSAnLiAkdG9rZW4tPmxpbmUgLiI6ICRtZXNzYWdlIik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldExpbmVObygpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnRva2VuXy0+bGluZTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlS2V5d29yZFJlZ2lzdHJ5LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlS2V5d29yZFJlZ2lzdHJ5LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTAxZGJjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVLZXl3b3JkUmVnaXN0cnkucGhwCkBAIC0wLDAgKzEsMjMzIEBACis8P3BocCBuYW1lc3BhY2UgU2lldmU7CisKK2NsYXNzIFNpZXZlS2V5d29yZFJlZ2lzdHJ5Cit7CisgICAgcHJvdGVjdGVkICRyZWdpc3RyeV8gPSBhcnJheSgpOworICAgIHByb3RlY3RlZCAkbWF0Y2hUeXBlc18gPSBhcnJheSgpOworICAgIHByb3RlY3RlZCAkY29tcGFyYXRvcnNfID0gYXJyYXkoKTsKKyAgICBwcm90ZWN0ZWQgJGFkZHJlc3NQYXJ0c18gPSBhcnJheSgpOworICAgIHByb3RlY3RlZCAkY29tbWFuZHNfID0gYXJyYXkoKTsKKyAgICBwcm90ZWN0ZWQgJHRlc3RzXyA9IGFycmF5KCk7CisgICAgcHJvdGVjdGVkICRhcmd1bWVudHNfID0gYXJyYXkoKTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgJHJlZmNvdW50ID0gMDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljICRpbnN0YW5jZSA9IG51bGw7CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQorICAgIHsKKyAgICAgICAgJGtleXdvcmRzID0gc2ltcGxleG1sX2xvYWRfZmlsZShkaXJuYW1lKF9fRklMRV9fKSAuJy9rZXl3b3Jkcy54bWwnKTsKKyAgICAgICAgZm9yZWFjaCAoJGtleXdvcmRzLT5jaGlsZHJlbigpIGFzICRrZXl3b3JkKQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKCRrZXl3b3JkLT5nZXROYW1lKCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlICdtYXRjaHR5cGUnOgorICAgICAgICAgICAgICAgICR0eXBlID0mICR0aGlzLT5tYXRjaFR5cGVzXzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2NvbXBhcmF0b3InOgorICAgICAgICAgICAgICAgICR0eXBlID0mICR0aGlzLT5jb21wYXJhdG9yc187CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdhZGRyZXNzcGFydCc6CisgICAgICAgICAgICAgICAgJHR5cGUgPSYgJHRoaXMtPmFkZHJlc3NQYXJ0c187CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICd0ZXN0JzoKKyAgICAgICAgICAgICAgICAkdHlwZSA9JiAkdGhpcy0+dGVzdHNfOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnY29tbWFuZCc6CisgICAgICAgICAgICAgICAgJHR5cGUgPSYgJHRoaXMtPmNvbW1hbmRzXzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcignVW5zdXBwb3J0ZWQga2V5d29yZCB0eXBlICInLiAka2V5d29yZC0+Z2V0TmFtZSgpCisgICAgICAgICAgICAgICAgICAgIC4gJyIgaW4gZmlsZSAia2V5d29yZHMvJy4gYmFzZW5hbWUoJGZpbGUpIC4nIicpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJG5hbWUgPSAoc3RyaW5nKSAka2V5d29yZFsnbmFtZSddOworICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJG5hbWUsICR0eXBlKSkKKyAgICAgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJyZWRlZmluaXRpb24gb2YgJHR5cGUgJG5hbWUgLSBza2lwcGluZyIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICR0eXBlWyRuYW1lXSA9ICRrZXl3b3JkLT5jaGlsZHJlbigpOworICAgICAgICB9CisKKyAgICAgICAgZm9yZWFjaCAoZ2xvYihkaXJuYW1lKF9fRklMRV9fKSAuJy9leHRlbnNpb25zLyoueG1sJykgYXMgJGZpbGUpCisgICAgICAgIHsKKyAgICAgICAgICAgICRleHRlbnNpb24gPSBzaW1wbGV4bWxfbG9hZF9maWxlKCRmaWxlKTsKKyAgICAgICAgICAgICRuYW1lID0gKHN0cmluZykgJGV4dGVuc2lvblsnbmFtZSddOworCisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwgJHRoaXMtPnJlZ2lzdHJ5XykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcignb3ZlcndyaXRpbmcgZXh0ZW5zaW9uICInLiAkbmFtZSAuJyInKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICR0aGlzLT5yZWdpc3RyeV9bJG5hbWVdID0gJGV4dGVuc2lvbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0KCkKKyAgICB7CisgICAgICAgIGlmIChzZWxmOjokaW5zdGFuY2UgPT0gbnVsbCkKKyAgICAgICAgeworICAgICAgICAgICAgc2VsZjo6JGluc3RhbmNlID0gbmV3IFNpZXZlS2V5d29yZFJlZ2lzdHJ5KCk7CisgICAgICAgIH0KKworICAgICAgICBzZWxmOjokcmVmY291bnQrKzsKKworICAgICAgICByZXR1cm4gc2VsZjo6JGluc3RhbmNlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBwdXQoKQorICAgIHsKKyAgICAgICAgaWYgKC0tc2VsZjo6JHJlZmNvdW50ID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNlbGY6OiRpbnN0YW5jZSA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aXZhdGUoJGV4dGVuc2lvbikKKyAgICB7CisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnJlZ2lzdHJ5X1skZXh0ZW5zaW9uXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgICR4bWwgPSAkdGhpcy0+cmVnaXN0cnlfWyRleHRlbnNpb25dOworCisgICAgICAgIGZvcmVhY2ggKCR4bWwtPmNoaWxkcmVuKCkgYXMgJGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAoJGUtPmdldE5hbWUoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgJ21hdGNodHlwZSc6CisgICAgICAgICAgICAgICAgJHR5cGUgPSYgJHRoaXMtPm1hdGNoVHlwZXNfOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnY29tcGFyYXRvcic6CisgICAgICAgICAgICAgICAgJHR5cGUgPSYgJHRoaXMtPmNvbXBhcmF0b3JzXzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3NwYXJ0JzoKKyAgICAgICAgICAgICAgICAkdHlwZSA9JiAkdGhpcy0+YWRkcmVzc1BhcnRzXzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3Rlc3QnOgorICAgICAgICAgICAgICAgICR0eXBlID0mICR0aGlzLT50ZXN0c187CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdjb21tYW5kJzoKKyAgICAgICAgICAgICAgICAkdHlwZSA9JiAkdGhpcy0+Y29tbWFuZHNfOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAndGFnZ2VkLWFyZ3VtZW50JzoKKyAgICAgICAgICAgICAgICAkeG1sID0gJGUtPnBhcmFtZXRlclswXTsKKyAgICAgICAgICAgICAgICAkdGhpcy0+YXJndW1lbnRzX1soc3RyaW5nKSAkeG1sWyduYW1lJ11dID0gYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICdleHRlbmRzJyA9PiAoc3RyaW5nKSAkZVsnZXh0ZW5kcyddLAorICAgICAgICAgICAgICAgICAgICAncnVsZXMnICAgPT4gJHhtbAorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoJ1Vuc3VwcG9ydGVkIGV4dGVuc2lvbiB0eXBlIFwnJy4KKyAgICAgICAgICAgICAgICAgICAgJGUtPmdldE5hbWUoKSAuIicgaW4gZXh0ZW5zaW9uICckZXh0ZW5zaW9uJyIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJG5hbWUgPSAoc3RyaW5nKSAkZVsnbmFtZSddOworICAgICAgICAgICAgaWYgKCFpc3NldCgkdHlwZVskbmFtZV0pIHx8CisgICAgICAgICAgICAgICAgKHN0cmluZykgJGVbJ292ZXJyaWRlcyddID09ICd0cnVlJykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkdHlwZVskbmFtZV0gPSAkZS0+Y2hpbGRyZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1Rlc3QoJG5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gKGlzc2V0KCR0aGlzLT50ZXN0c19bJG5hbWVdKSA/IHRydWUgOiBmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGlzQ29tbWFuZCgkbmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoaXNzZXQoJHRoaXMtPmNvbW1hbmRzX1skbmFtZV0pID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gbWF0Y2h0eXBlKCRuYW1lKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5tYXRjaFR5cGVzX1skbmFtZV0pKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1hdGNoVHlwZXNfWyRuYW1lXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkcmVzc3BhcnQoJG5hbWUpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmFkZHJlc3NQYXJ0c19bJG5hbWVdKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5hZGRyZXNzUGFydHNfWyRuYW1lXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGFyYXRvcigkbmFtZSkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+Y29tcGFyYXRvcnNfWyRuYW1lXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y29tcGFyYXRvcnNfWyRuYW1lXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdCgkbmFtZSkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+dGVzdHNfWyRuYW1lXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+dGVzdHNfWyRuYW1lXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gY29tbWFuZCgkbmFtZSkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+Y29tbWFuZHNfWyRuYW1lXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y29tbWFuZHNfWyRuYW1lXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gYXJndW1lbnRzKCRjb21tYW5kKQorICAgIHsKKyAgICAgICAgJHJlcyA9IGFycmF5KCk7CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5hcmd1bWVudHNfIGFzICRhcmcpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvJy4kYXJnWydleHRlbmRzJ10uJy8nLCAkY29tbWFuZCkpCisgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkcmVzLCAkYXJnWydydWxlcyddKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHJlczsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gYXJndW1lbnQoJG5hbWUpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmFyZ3VtZW50c19bJG5hbWVdKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5hcmd1bWVudHNfWyRuYW1lXVsncnVsZXMnXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gcmVxdWlyZVN0cmluZ3MoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFycmF5X2tleXMoJHRoaXMtPnJlZ2lzdHJ5Xyk7CisgICAgfQorICAgIHB1YmxpYyBmdW5jdGlvbiBtYXRjaFR5cGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhcnJheV9rZXlzKCR0aGlzLT5tYXRjaFR5cGVzXyk7CisgICAgfQorICAgIHB1YmxpYyBmdW5jdGlvbiBjb21wYXJhdG9ycygpCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+Y29tcGFyYXRvcnNfKTsKKyAgICB9CisgICAgcHVibGljIGZ1bmN0aW9uIGFkZHJlc3NQYXJ0cygpCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+YWRkcmVzc1BhcnRzXyk7CisgICAgfQorICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0cygpCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+dGVzdHNfKTsKKyAgICB9CisgICAgcHVibGljIGZ1bmN0aW9uIGNvbW1hbmRzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhcnJheV9rZXlzKCR0aGlzLT5jb21tYW5kc18pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlUGFyc2VyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlUGFyc2VyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDgxYzE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVQYXJzZXIucGhwCkBAIC0wLDAgKzEsMjU1IEBACis8P3BocCBuYW1lc3BhY2UgU2lldmU7CisKK2luY2x1ZGVfb25jZSAnU2lldmVUcmVlLnBocCc7CitpbmNsdWRlX29uY2UgJ1NpZXZlU2Nhbm5lci5waHAnOworaW5jbHVkZV9vbmNlICdTaWV2ZVNlbWFudGljcy5waHAnOworaW5jbHVkZV9vbmNlICdTaWV2ZUV4Y2VwdGlvbi5waHAnOworCitjbGFzcyBTaWV2ZVBhcnNlcgoreworICAgIHByb3RlY3RlZCAkc2Nhbm5lcl87CisgICAgcHJvdGVjdGVkICRzY3JpcHRfOworICAgIHByb3RlY3RlZCAkdHJlZV87CisgICAgcHJvdGVjdGVkICRzdGF0dXNfOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRzY3JpcHQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCRzY3JpcHQpKQorICAgICAgICAgICAgJHRoaXMtPnBhcnNlKCRzY3JpcHQpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRQYXJzZVRyZWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT50cmVlXzsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZHVtcFBhcnNlVHJlZSgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnRyZWVfLT5kdW1wKCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNjcmlwdFRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT50cmVlXy0+Z2V0VGV4dCgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRQcmV2VG9rZW5fKCRwYXJlbnRfaWQpCisgICAgeworICAgICAgICAkY2hpbGRzID0gJHRoaXMtPnRyZWVfLT5nZXRDaGlsZHMoJHBhcmVudF9pZCk7CisKKyAgICAgICAgZm9yICgkaSA9IGNvdW50KCRjaGlsZHMpOyAkaSA+IDA7IC0tJGkpCisgICAgICAgIHsKKyAgICAgICAgICAgICRwcmV2ID0gJHRoaXMtPnRyZWVfLT5nZXROb2RlKCRjaGlsZHNbJGktMV0pOworICAgICAgICAgICAgaWYgKCRwcmV2LT5pcyhTaWV2ZVRva2VuOjpDb21tZW50fFNpZXZlVG9rZW46OldoaXRlc3BhY2UpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAvLyB1c2UgY29tbWFuZCBvd25pbmcgYSBibG9jayBvciBsaXN0IGluc3RlYWQgb2YgcHJldmlvdXMKKyAgICAgICAgICAgIGlmICgkcHJldi0+aXMoU2lldmVUb2tlbjo6QmxvY2tTdGFydHxTaWV2ZVRva2VuOjpDb21tYXxTaWV2ZVRva2VuOjpMZWZ0UGFyZW50aGVzaXMpKQorICAgICAgICAgICAgICAgICRwcmV2ID0gJHRoaXMtPnRyZWVfLT5nZXROb2RlKCRwYXJlbnRfaWQpOworCisgICAgICAgICAgICByZXR1cm4gJHByZXY7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPnRyZWVfLT5nZXROb2RlKCRwYXJlbnRfaWQpOworICAgIH0KKworICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICogbWV0aG9kcyBmb3IgcmVjdXJzaXZlIGRlc2NlbnQgc3RhcnQgYmVsb3cKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcGFzc3Rocm91Z2hXaGl0ZXNwYWNlQ29tbWVudCgkdG9rZW4pCisgICAgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gcGFzc3Rocm91Z2hGdW5jdGlvbigkdG9rZW4pCisgICAgeworICAgICAgICAkdGhpcy0+dHJlZV8tPmFkZENoaWxkKCR0b2tlbik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHBhcnNlKCRzY3JpcHQpCisgICAgeworICAgICAgICAkdGhpcy0+c2NyaXB0XyA9ICRzY3JpcHQ7CisKKyAgICAgICAgJHRoaXMtPnNjYW5uZXJfID0gbmV3IFNpZXZlU2Nhbm5lcigkdGhpcy0+c2NyaXB0Xyk7CisKKyAgICAgICAgLy8gRGVmaW5lIHdoYXQgaGFwcGVucyB3aXRoIHBhc3N0aHJvdWdoIHRva2VucyBsaWtlIHdoaXRlc3BhY3MgYW5kIGNvbW1lbnRzCisgICAgICAgICR0aGlzLT5zY2FubmVyXy0+c2V0UGFzc3Rocm91Z2hGdW5jKAorICAgICAgICAgICAgYXJyYXkoCisgICAgICAgICAgICAgICAgJHRoaXMsICdwYXNzdGhyb3VnaFdoaXRlc3BhY2VDb21tZW50JworICAgICAgICAgICAgKQorICAgICAgICApOworCisgICAgICAgICR0aGlzLT50cmVlXyA9IG5ldyBTaWV2ZVRyZWUoJ3RyZWUnKTsKKworICAgICAgICAkdGhpcy0+Y29tbWFuZHNfKCR0aGlzLT50cmVlXy0+Z2V0Um9vdCgpKTsKKworICAgICAgICBpZiAoISR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuSXMoU2lldmVUb2tlbjo6U2NyaXB0RW5kKSkgeworICAgICAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sIFNpZXZlVG9rZW46OlNjcmlwdEVuZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29tbWFuZHNfKCRwYXJlbnRfaWQpCisgICAgeworICAgICAgICB3aGlsZSAodHJ1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCEkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbklzKFNpZXZlVG9rZW46OklkZW50aWZpZXIpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBHZXQgYW5kIGNoZWNrIGEgY29tbWFuZCB0b2tlbgorICAgICAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICRzZW1hbnRpY3MgPSBuZXcgU2lldmVTZW1hbnRpY3MoJHRva2VuLCAkdGhpcy0+Z2V0UHJldlRva2VuXygkcGFyZW50X2lkKSk7CisKKyAgICAgICAgICAgIC8vIFByb2Nlc3MgZXZlbnR1YWwgYXJndW1lbnRzCisgICAgICAgICAgICAkdGhpc19ub2RlID0gJHRoaXMtPnRyZWVfLT5hZGRDaGlsZFRvKCRwYXJlbnRfaWQsICR0b2tlbik7CisgICAgICAgICAgICAkdGhpcy0+YXJndW1lbnRzXygkdGhpc19ub2RlLCAkc2VtYW50aWNzKTsKKworICAgICAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIGlmICghJHRva2VuLT5pcyhTaWV2ZVRva2VuOjpTZW1pY29sb24pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFRPRE86IGNoZWNrIGlmL3doZW4gc2VtY2hlY2sgaXMgbmVlZGVkIGhlcmUKKyAgICAgICAgICAgICAgICAkc2VtYW50aWNzLT52YWxpZGF0ZVRva2VuKCR0b2tlbik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHRva2VuLT5pcyhTaWV2ZVRva2VuOjpCbG9ja1N0YXJ0KSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT50cmVlXy0+YWRkQ2hpbGRUbygkdGhpc19ub2RlLCAkdG9rZW4pOworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YmxvY2tfKCR0aGlzX25vZGUsICRzZW1hbnRpY3MpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU2lldmVFeGNlcHRpb24oJHRva2VuLCBTaWV2ZVRva2VuOjpTZW1pY29sb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkc2VtYW50aWNzLT5kb25lKCR0b2tlbik7CisgICAgICAgICAgICAkdGhpcy0+dHJlZV8tPmFkZENoaWxkVG8oJHRoaXNfbm9kZSwgJHRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhcmd1bWVudHNfKCRwYXJlbnRfaWQsICYkc2VtYW50aWNzKQorICAgIHsKKyAgICAgICAgd2hpbGUgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbklzKFNpZXZlVG9rZW46Ok51bWJlcnxTaWV2ZVRva2VuOjpUYWcpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHNlbWFudGljcyBhbGxvdyBhIG51bWJlciBvciB0YWcKKyAgICAgICAgICAgICAgICAkdG9rZW4gPSAkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICRzZW1hbnRpY3MtPnZhbGlkYXRlVG9rZW4oJHRva2VuKTsKKyAgICAgICAgICAgICAgICAkdGhpcy0+dHJlZV8tPmFkZENoaWxkVG8oJHBhcmVudF9pZCwgJHRva2VuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuSXMoU2lldmVUb2tlbjo6U3RyaW5nTGlzdCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJHRoaXMtPnN0cmluZ2xpc3RfKCRwYXJlbnRfaWQsICRzZW1hbnRpY3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuSXMoU2lldmVUb2tlbjo6VGVzdExpc3QpKQorICAgICAgICB7CisgICAgICAgICAgICAkdGhpcy0+dGVzdGxpc3RfKCRwYXJlbnRfaWQsICRzZW1hbnRpY3MpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHN0cmluZ2xpc3RfKCRwYXJlbnRfaWQsICYkc2VtYW50aWNzKQorICAgIHsKKyAgICAgICAgaWYgKCEkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbklzKFNpZXZlVG9rZW46OkxlZnRCcmFja2V0KSkKKyAgICAgICAgeworICAgICAgICAgICAgJHRoaXMtPnN0cmluZ18oJHBhcmVudF9pZCwgJHNlbWFudGljcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbigpOworICAgICAgICAkc2VtYW50aWNzLT5zdGFydFN0cmluZ0xpc3QoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPnRyZWVfLT5hZGRDaGlsZFRvKCRwYXJlbnRfaWQsICR0b2tlbik7CisgICAgICAgIAorICAgICAgICBpZigkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbklzKFNpZXZlVG9rZW46OlJpZ2h0QnJhY2tldCkpIHsKKyAgICAgICAgICAgIC8vYWxsb3cgZW1wdHkgbGlzdHMKKyAgICAgICAgICAgICR0b2tlbiA9ICR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuKCk7CisgICAgICAgICAgICAkdGhpcy0+dHJlZV8tPmFkZENoaWxkVG8oJHBhcmVudF9pZCwgJHRva2VuKTsKKyAgICAgICAgICAgICRzZW1hbnRpY3MtPmVuZFN0cmluZ0xpc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGRvCisgICAgICAgIHsKKyAgICAgICAgICAgICR0aGlzLT5zdHJpbmdfKCRwYXJlbnRfaWQsICRzZW1hbnRpY3MpOworICAgICAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5uZXh0VG9rZW4oKTsKKworICAgICAgICAgICAgaWYgKCEkdG9rZW4tPmlzKFNpZXZlVG9rZW46OkNvbW1hfFNpZXZlVG9rZW46OlJpZ2h0QnJhY2tldCkpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgYXJyYXkoU2lldmVUb2tlbjo6Q29tbWEsIFNpZXZlVG9rZW46OlJpZ2h0QnJhY2tldCkpOworCisgICAgICAgICAgICBpZiAoJHRva2VuLT5pcyhTaWV2ZVRva2VuOjpDb21tYSkpCisgICAgICAgICAgICAgICAgJHNlbWFudGljcy0+Y29udGludWVTdHJpbmdMaXN0KCk7CisKKyAgICAgICAgICAgICR0aGlzLT50cmVlXy0+YWRkQ2hpbGRUbygkcGFyZW50X2lkLCAkdG9rZW4pOworICAgICAgICB9CisgICAgICAgIHdoaWxlICghJHRva2VuLT5pcyhTaWV2ZVRva2VuOjpSaWdodEJyYWNrZXQpKTsKKworICAgICAgICAkc2VtYW50aWNzLT5lbmRTdHJpbmdMaXN0KCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHN0cmluZ18oJHBhcmVudF9pZCwgJiRzZW1hbnRpY3MpCisgICAgeworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+c2Nhbm5lcl8tPm5leHRUb2tlbigpOworICAgICAgICAkc2VtYW50aWNzLT52YWxpZGF0ZVRva2VuKCR0b2tlbik7CisgICAgICAgICR0aGlzLT50cmVlXy0+YWRkQ2hpbGRUbygkcGFyZW50X2lkLCAkdG9rZW4pOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiB0ZXN0bGlzdF8oJHBhcmVudF9pZCwgJiRzZW1hbnRpY3MpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuSXMoU2lldmVUb2tlbjo6TGVmdFBhcmVudGhlc2lzKSkKKyAgICAgICAgeworICAgICAgICAgICAgJHRoaXMtPnRlc3RfKCRwYXJlbnRfaWQsICRzZW1hbnRpY3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgJHNlbWFudGljcy0+dmFsaWRhdGVUb2tlbigkdG9rZW4pOworICAgICAgICAkdGhpcy0+dHJlZV8tPmFkZENoaWxkVG8oJHBhcmVudF9pZCwgJHRva2VuKTsKKworICAgICAgICBkbworICAgICAgICB7CisgICAgICAgICAgICAkdGhpcy0+dGVzdF8oJHBhcmVudF9pZCwgJHNlbWFudGljcyk7CisKKyAgICAgICAgICAgICR0b2tlbiA9ICR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuKCk7CisgICAgICAgICAgICBpZiAoISR0b2tlbi0+aXMoU2lldmVUb2tlbjo6Q29tbWF8U2lldmVUb2tlbjo6UmlnaHRQYXJlbnRoZXNpcykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgYXJyYXkoU2lldmVUb2tlbjo6Q29tbWEsIFNpZXZlVG9rZW46OlJpZ2h0UGFyZW50aGVzaXMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICR0aGlzLT50cmVlXy0+YWRkQ2hpbGRUbygkcGFyZW50X2lkLCAkdG9rZW4pOworICAgICAgICB9CisgICAgICAgIHdoaWxlICghJHRva2VuLT5pcyhTaWV2ZVRva2VuOjpSaWdodFBhcmVudGhlc2lzKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHRlc3RfKCRwYXJlbnRfaWQsICYkc2VtYW50aWNzKQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgc2VtYW50aWNzIGFsbG93IGFuIGlkZW50aWZpZXIKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgJHNlbWFudGljcy0+dmFsaWRhdGVUb2tlbigkdG9rZW4pOworCisgICAgICAgIC8vIEdldCBzZW1hbnRpY3MgZm9yIHRoaXMgdGVzdCBjb21tYW5kCisgICAgICAgICR0aGlzX3NlbWFudGljcyA9IG5ldyBTaWV2ZVNlbWFudGljcygkdG9rZW4sICR0aGlzLT5nZXRQcmV2VG9rZW5fKCRwYXJlbnRfaWQpKTsKKyAgICAgICAgJHRoaXNfbm9kZSA9ICR0aGlzLT50cmVlXy0+YWRkQ2hpbGRUbygkcGFyZW50X2lkLCAkdG9rZW4pOworCisgICAgICAgIC8vIENvbnN1bWUgZXZlbnR1YWwgYXJndW1lbnQgdG9rZW5zCisgICAgICAgICR0aGlzLT5hcmd1bWVudHNfKCR0aGlzX25vZGUsICR0aGlzX3NlbWFudGljcyk7CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCBhbGwgcmVxdWlyZWQgYXJndW1lbnRzIHdlcmUgdGhlcmUKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPnNjYW5uZXJfLT5wZWVrTmV4dFRva2VuKCk7CisgICAgICAgICR0aGlzX3NlbWFudGljcy0+ZG9uZSgkdG9rZW4pOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBibG9ja18oJHBhcmVudF9pZCwgJiRzZW1hbnRpY3MpCisgICAgeworICAgICAgICAkdGhpcy0+Y29tbWFuZHNfKCRwYXJlbnRfaWQsICRzZW1hbnRpY3MpOworCisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5zY2FubmVyXy0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICghJHRva2VuLT5pcyhTaWV2ZVRva2VuOjpCbG9ja0VuZCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sIFNpZXZlVG9rZW46OkJsb2NrRW5kKTsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+dHJlZV8tPmFkZENoaWxkVG8oJHBhcmVudF9pZCwgJHRva2VuKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZVNjYW5uZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVTY2FubmVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZhNTdhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVTY2FubmVyLnBocApAQCAtMCwwICsxLDE0NSBAQAorPD9waHAgbmFtZXNwYWNlIFNpZXZlOworCitpbmNsdWRlX29uY2UoJ1NpZXZlVG9rZW4ucGhwJyk7CisKK2NsYXNzIFNpZXZlU2Nhbm5lcgoreworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgmJHNjcmlwdCkKKyAgICB7CisgICAgICAgIGlmICgkc2NyaXB0ID09PSBudWxsKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICR0aGlzLT50b2tlbml6ZSgkc2NyaXB0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0UGFzc3Rocm91Z2hGdW5jKCRjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmICgkY2FsbGJhY2sgPT0gbnVsbCB8fCBpc19jYWxsYWJsZSgkY2FsbGJhY2spKQorICAgICAgICAgICAgJHRoaXMtPnB0Rm5fID0gJGNhbGxiYWNrOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0b2tlbml6ZSgmJHNjcmlwdCkKKyAgICB7CisgICAgICAgICRwb3MgPSAwOworICAgICAgICAkbGluZSA9IDE7CisKKyAgICAgICAgJHNjcmlwdExlbmd0aCA9IG1iX3N0cmxlbigkc2NyaXB0KTsKKworICAgICAgICAkdW5wcm9jZXNzZWRTY3JpcHQgPSAkc2NyaXB0OworCisKKyAgICAgICAgLy9jcmVhdGUgb25lIHJlZ2V4IHRvIGZpbmQgdGhlIHJpZ2h0IG1hdGNoCisgICAgICAgIC8vYXZvaWRzIGxvb3Bpbmcgb3ZlciBhbGwgcG9zc2libGUgdG9rZW5zOiBpbmNyZWFzZXMgcGVyZm9ybWFuY2UKKyAgICAgICAgJG5hbWVUb1R5cGUgPSBbXTsKKyAgICAgICAgJHJlZ2V4ID0gW107CisgICAgICAgIC8vIGNocig2NSkgPT0gJ0EnCisgICAgICAgICRpID0gNjU7CisKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnRva2VuTWF0Y2hfIGFzICR0eXBlID0+ICRzdWJyZWdleCkgeworICAgICAgICAgICAgJG5hbWVUb1R5cGVbY2hyKCRpKV0gPSAkdHlwZTsKKyAgICAgICAgICAgICRyZWdleFtdID0gIig/UDwiLiBjaHIoJGkpIC4gIj5eJHN1YnJlZ2V4KSI7CisgICAgICAgICAgICAkaSsrOworICAgICAgICB9CisKKyAgICAgICAgJHJlZ2V4ID0gJy8nIC4gam9pbignfCcsICRyZWdleCkgLiAnLyc7CisKKyAgICAgICAgd2hpbGUgKCRwb3MgPCAkc2NyaXB0TGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkcmVnZXgsICR1bnByb2Nlc3NlZFNjcmlwdCwgJG1hdGNoKSkgeworCisgICAgICAgICAgICAgICAgLy8gb25seSBrZWVwIHRoZSBncm91cCB0aGF0IG1hdGNoIGFuZCB3ZSBvbmx5IHdhbnQgbWF0Y2hlcyB3aXRoIGdyb3VwIG5hbWVzCisgICAgICAgICAgICAgICAgLy8gd2UgY2FuIHVzZSB0aGUgZ3JvdXAgbmFtZSB0byBmaW5kIHRoZSB0b2tlbiB0eXBlIHVzaW5nIG5hbWVUb1R5cGUKKyAgICAgICAgICAgICAgICAkZmlsdGVyTWF0Y2ggPSBhcnJheV9maWx0ZXIoYXJyYXlfZmlsdGVyKCRtYXRjaCksICdpc19zdHJpbmcnLCBBUlJBWV9GSUxURVJfVVNFX0tFWSk7CisKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgZWxlbWVudCBpbiBmaWx0ZXJNYXRjaCB3aWxsIGNvbnRhaW4gdGhlIG1hdGNoZWQgZ3JvdXAgYW5kIHRoZSBrZXkgd2lsbCBiZSB0aGUgbmFtZQorICAgICAgICAgICAgICAgICR0eXBlID0gJG5hbWVUb1R5cGVba2V5KCRmaWx0ZXJNYXRjaCldOworICAgICAgICAgICAgICAgICRjdXJyZW50TWF0Y2ggPSBjdXJyZW50KCRmaWx0ZXJNYXRjaCk7CisKKyAgICAgICAgICAgICAgICAvL2NyZWF0ZSB0aGUgdG9rZW4KKyAgICAgICAgICAgICAgICAkdG9rZW4gPSBuZXcgU2lldmVUb2tlbigkdHlwZSwgJGN1cnJlbnRNYXRjaCwgJGxpbmUpOworICAgICAgICAgICAgICAgICR0aGlzLT50b2tlbnNfW10gPSAkdG9rZW47CisKKyAgICAgICAgICAgICAgICBpZiAoJHR5cGUgPT0gU2lldmVUb2tlbjo6VW5rbm93bikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgLy8ganVzdCByZW1vdmUgdGhlIHBhcnQgdGhhdCB3ZSBwYXJzZWQ6IGRvbid0IGV4dHJhY3QgdGhlIG5ldyBzdWJzdHJpbmcgdXNpbmcgc2NyaXB0IGxlbmd0aAorICAgICAgICAgICAgICAgIC8vIGFzIG1iX3N0cmxlbiBpcyBcdGhldGEocG9zKSAgKGl0J3MgbGluZWFyIGluIHRoZSBwb3NpdGlvbikKKyAgICAgICAgICAgICAgICAkbWF0Y2hMZW5ndGggPSBtYl9zdHJsZW4oJGN1cnJlbnRNYXRjaCk7CisgICAgICAgICAgICAgICAgJHVucHJvY2Vzc2VkU2NyaXB0ID0gbWJfc3Vic3RyKCR1bnByb2Nlc3NlZFNjcmlwdCwgJG1hdGNoTGVuZ3RoKTsKKworICAgICAgICAgICAgICAgICRwb3MgKz0gJG1hdGNoTGVuZ3RoOworICAgICAgICAgICAgICAgICRsaW5lICs9IG1iX3N1YnN0cl9jb3VudCgkY3VycmVudE1hdGNoLCAiXG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPnRva2Vuc19bXSA9IG5ldyBTaWV2ZVRva2VuKFNpZXZlVG9rZW46OlVua25vd24sICcnLCAkbGluZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+dG9rZW5zX1tdID0gbmV3IFNpZXZlVG9rZW4oU2lldmVUb2tlbjo6U2NyaXB0RW5kLCAnJywgJGxpbmUpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBuZXh0VG9rZW5JcygkdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+cGVla05leHRUb2tlbigpLT5pcygkdHlwZSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHBlZWtOZXh0VG9rZW4oKQorICAgIHsKKyAgICAgICAgJG9mZnNldCA9IDA7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgICRuZXh0ID0gJHRoaXMtPnRva2Vuc19bJHRoaXMtPnRva2VuUG9zXyArICRvZmZzZXQrK107CisgICAgICAgIH0gd2hpbGUgKCRuZXh0LT5pcyhTaWV2ZVRva2VuOjpDb21tZW50fFNpZXZlVG9rZW46OldoaXRlc3BhY2UpKTsKKworICAgICAgICByZXR1cm4gJG5leHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIG5leHRUb2tlbigpCisgICAgeworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+dG9rZW5zX1skdGhpcy0+dG9rZW5Qb3NfKytdOworCisgICAgICAgIHdoaWxlICgkdG9rZW4tPmlzKFNpZXZlVG9rZW46OkNvbW1lbnR8U2lldmVUb2tlbjo6V2hpdGVzcGFjZSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+cHRGbl8gIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBjYWxsX3VzZXJfZnVuYygkdGhpcy0+cHRGbl8sICR0b2tlbik7CisKKyAgICAgICAgICAgICR0b2tlbiA9ICR0aGlzLT50b2tlbnNfWyR0aGlzLT50b2tlblBvc18rK107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKworICAgIHByb3RlY3RlZCAkcHRGbl8gPSBudWxsOworICAgIHByb3RlY3RlZCAkdG9rZW5Qb3NfID0gMDsKKyAgICBwcm90ZWN0ZWQgJHRva2Vuc18gPSBhcnJheSgpOworICAgIHByb3RlY3RlZCAkdG9rZW5NYXRjaF8gPSBhcnJheSAoCisgICAgICAgIFNpZXZlVG9rZW46OkxlZnRCcmFja2V0ICAgICAgID0+ICAnXFsnLAorICAgICAgICBTaWV2ZVRva2VuOjpSaWdodEJyYWNrZXQgICAgICA9PiAgJ1xdJywKKyAgICAgICAgU2lldmVUb2tlbjo6QmxvY2tTdGFydCAgICAgICAgPT4gICdceycsCisgICAgICAgIFNpZXZlVG9rZW46OkJsb2NrRW5kICAgICAgICAgID0+ICAnXH0nLAorICAgICAgICBTaWV2ZVRva2VuOjpMZWZ0UGFyZW50aGVzaXMgICA9PiAgJ1woJywKKyAgICAgICAgU2lldmVUb2tlbjo6UmlnaHRQYXJlbnRoZXNpcyAgPT4gICdcKScsCisgICAgICAgIFNpZXZlVG9rZW46OkNvbW1hICAgICAgICAgICAgID0+ICAnLCcsCisgICAgICAgIFNpZXZlVG9rZW46OlNlbWljb2xvbiAgICAgICAgID0+ICAnOycsCisgICAgICAgIFNpZXZlVG9rZW46OldoaXRlc3BhY2UgICAgICAgID0+ICAnWyBcclxuXHRdKycsCisgICAgICAgIFNpZXZlVG9rZW46OlRhZyAgICAgICAgICAgICAgID0+ICAnOltbOmFscGhhOl1fXVtbOmFsbnVtOl1fXSooPz1cYiknLAorICAgICAgICAvKgorICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBtYXRjaCBhIHF1b3RhdGlvbiBtYXJrCisgICAgICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAjIHN0YXJ0IG1hdGNoaW5nIHBhcnRzIHRoYXQgaW5jbHVkZSBhbiBlc2NhcGVkIHF1b3RhdGlvbiBtYXJrCisgICAgICAgIChbXiJdKlteIlxcXFxdKSAgICAgICAgICAgICAjIG1hdGNoIGEgc3RyaW5nIHdpdGhvdXQgcXVvdGF0aW9uIG1hcmtzIGFuZCBub3QgZW5kaW5nIHdpdGggYSBiYWNrbGFzaAorICAgICAgICA/ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGlzIGFsc28gaW5jbHVkZXMgdGhlIGVtcHR5IHN0cmluZworICAgICAgICAoXFxcXFxcXFwpKiAgICAgICAgICAgICAgICAgIyBtYXRjaCBhbnkgZ3JvdXBzIG9mIGV2ZW4gbnVtYmVyIG9mIGJhY2tzbGFzaGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICh0aHVzIHRoZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlc2UgZ3JvdXBzIGFyZSBub3QgZXNjYXBlZCkKKyAgICAgICAgXFxcXCIgICAgICAgICAgICAgICAgICAgICAgICMgbWF0Y2ggYW4gZXNjYXBlZCBxdW90YXRpb24gbWFyaworICAgICAgICApKiAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhY2NlcHQgYW55IG51bWJlciBvZiBzdHJpbmdzIHRoYXQgZW5kIHdpdGggYW4gZXNjYXBlZCBxdW90YXRpb24gbWFyaworICAgICAgICBbXiJdKiAgICAgICAgICAgICAgICAgICAgICAgIyBhY2NlcHQgYW55IHRyYWlsaW5nIHBhcnQgdGhhdCBkb2VzIG5vdCBjb250YWluIGFueSBxdW90YXRpb24gbWFya3MKKyAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZW5kIG9mIHRoZSBxdW90ZWQgc3RyaW5nCisgICAgICAgICovCisgICAgICAgIFNpZXZlVG9rZW46OlF1b3RlZFN0cmluZyAgICAgID0+ICAnIigoW14iXSpbXiJcXFxcXSk/KFxcXFxcXFxcKSpcXFxcIikqW14iXSoiJywKKyAgICAgICAgU2lldmVUb2tlbjo6TnVtYmVyICAgICAgICAgICAgPT4gICdbWzpkaWdpdDpdXSsoPzpbS01HXSk/KD89XGIpJywKKyAgICAgICAgU2lldmVUb2tlbjo6Q29tbWVudCAgICAgICAgICAgPT4gICcoPzpcL1wqKD86W15cKl18XCooPz1bXlwvXSkpKlwqXC98I1teXHJcbl0qXHI/KFxufCQpKScsCisgICAgICAgIFNpZXZlVG9rZW46Ok11bHRpbGluZVN0cmluZyAgID0+ICAndGV4dDpbIFx0XSooPzojW15cclxuXSopP1xyP1xuKFwuW15cclxuXStccj9cbnxbXlwuXVteXHJcbl0qXHI/XG4pKlwuXHI/KFxufCQpJywKKyAgICAgICAgU2lldmVUb2tlbjo6SWRlbnRpZmllciAgICAgICAgPT4gICdbWzphbHBoYTpdX11bWzphbG51bTpdX10qKD89XGIpJywKKyAgICAgICAgU2lldmVUb2tlbjo6VW5rbm93biAgICAgICAgICAgPT4gICdbXiBcclxuXHRdKycKKyAgICApOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVTY3JpcHQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVTY3JpcHQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZmQ5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZVNjcmlwdC5waHAKQEAgLTAsMCArMSw2IEBACis8P3BocCBuYW1lc3BhY2UgU2lldmU7CisKK2NsYXNzIFNpZXZlU2NyaXB0Cit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZVNlbWFudGljcy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZVNlbWFudGljcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEzMWQ1YgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlU2VtYW50aWNzLnBocApAQCAtMCwwICsxLDYxMSBAQAorPD9waHAgbmFtZXNwYWNlIFNpZXZlOworCityZXF1aXJlX29uY2UoJ1NpZXZlS2V5d29yZFJlZ2lzdHJ5LnBocCcpOworcmVxdWlyZV9vbmNlKCdTaWV2ZVRva2VuLnBocCcpOworcmVxdWlyZV9vbmNlKCdTaWV2ZUV4Y2VwdGlvbi5waHAnKTsKKworY2xhc3MgU2lldmVTZW1hbnRpY3MKK3sKKyAgICBwcm90ZWN0ZWQgc3RhdGljICRyZXF1aXJlZEV4dGVuc2lvbnNfID0gYXJyYXkoKTsKKworICAgIHByb3RlY3RlZCAkY29tcGFyYXRvcl87CisgICAgcHJvdGVjdGVkICRtYXRjaFR5cGVfOworICAgIHByb3RlY3RlZCAkYWRkcmVzc1BhcnRfOworICAgIHByb3RlY3RlZCAkdGFnc18gPSBhcnJheSgpOworICAgIHByb3RlY3RlZCAkYXJndW1lbnRzXzsKKyAgICBwcm90ZWN0ZWQgJGRlcHNfID0gYXJyYXkoKTsKKyAgICBwcm90ZWN0ZWQgJGZvbGxvd3VwVG9rZW5fOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0b2tlbiwgJHByZXZUb2tlbikKKyAgICB7CisgICAgICAgICR0aGlzLT5yZWdpc3RyeV8gPSBTaWV2ZUtleXdvcmRSZWdpc3RyeTo6Z2V0KCk7CisgICAgICAgICRjb21tYW5kID0gc3RydG9sb3dlcigkdG9rZW4tPnRleHQpOworCisgICAgICAgIC8vIENoZWNrIHRoZSByZWdpc3RyeSBmb3IgJGNvbW1hbmQKKyAgICAgICAgaWYgKCR0aGlzLT5yZWdpc3RyeV8tPmlzQ29tbWFuZCgkY29tbWFuZCkpCisgICAgICAgIHsKKyAgICAgICAgICAgICR4bWwgPSAkdGhpcy0+cmVnaXN0cnlfLT5jb21tYW5kKCRjb21tYW5kKTsKKyAgICAgICAgICAgICR0aGlzLT5hcmd1bWVudHNfID0gJHRoaXMtPm1ha2VBcmd1bWVudHNfKCR4bWwpOworICAgICAgICAgICAgJHRoaXMtPmZvbGxvd3VwVG9rZW5fID0gU2lldmVUb2tlbjo6U2VtaWNvbG9uOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCR0aGlzLT5yZWdpc3RyeV8tPmlzVGVzdCgkY29tbWFuZCkpCisgICAgICAgIHsKKyAgICAgICAgICAgICR4bWwgPSAkdGhpcy0+cmVnaXN0cnlfLT50ZXN0KCRjb21tYW5kKTsKKyAgICAgICAgICAgICR0aGlzLT5hcmd1bWVudHNfID0gJHRoaXMtPm1ha2VBcmd1bWVudHNfKCR4bWwpOworICAgICAgICAgICAgJHRoaXMtPmZvbGxvd3VwVG9rZW5fID0gU2lldmVUb2tlbjo6QmxvY2tTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sICd1bmtub3duIGNvbW1hbmQgJy4gJGNvbW1hbmQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgY29tbWFuZCBtYXkgYXBwZWFyIGF0IHRoaXMgcG9zaXRpb24gd2l0aGluIHRoZSBzY3JpcHQKKyAgICAgICAgaWYgKCR0aGlzLT5yZWdpc3RyeV8tPmlzVGVzdCgkY29tbWFuZCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpc19udWxsKCRwcmV2VG9rZW4pKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sICRjb21tYW5kIC4nIG1heSBub3QgYXBwZWFyIGFzIGZpcnN0IGNvbW1hbmQnKTsKKworICAgICAgICAgICAgaWYgKCFwcmVnX21hdGNoKCcvXihpZnxlbHNpZnxhbnlvZnxhbGxvZnxub3QpJC9pJywgJHByZXZUb2tlbi0+dGV4dCkpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgJGNvbW1hbmQgLicgbWF5IG5vdCBhcHBlYXIgYWZ0ZXIgJy4gJHByZXZUb2tlbi0+dGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaXNzZXQoJHByZXZUb2tlbikpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAoJGNvbW1hbmQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlICdyZXF1aXJlJzoKKyAgICAgICAgICAgICAgICAkdmFsaWRfYWZ0ZXIgPSAncmVxdWlyZSc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdlbHNpZic6CisgICAgICAgICAgICBjYXNlICdlbHNlJzoKKyAgICAgICAgICAgICAgICAkdmFsaWRfYWZ0ZXIgPSAnKGlmfGVsc2lmKSc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICR2YWxpZF9hZnRlciA9ICR0aGlzLT5jb21tYW5kc1JlZ2V4XygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy9eJy4gJHZhbGlkX2FmdGVyIC4nJC9pJywgJHByZXZUb2tlbi0+dGV4dCkpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgJGNvbW1hbmQgLicgbWF5IG5vdCBhcHBlYXIgYWZ0ZXIgJy4gJHByZXZUb2tlbi0+dGV4dCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBmb3IgZXh0ZW5zaW9uIGFyZ3VtZW50cyB0byBhZGQgdG8gdGhlIGNvbW1hbmQKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnJlZ2lzdHJ5Xy0+YXJndW1lbnRzKCRjb21tYW5kKSBhcyAkYXJnKQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKChzdHJpbmcpICRhcmdbJ3R5cGUnXSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgJ3RhZyc6CisgICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkdGhpcy0+YXJndW1lbnRzXywgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA9PiBTaWV2ZVRva2VuOjpUYWcsCisgICAgICAgICAgICAgICAgICAgICdvY2N1cnJlbmNlJyA9PiAkdGhpcy0+b2NjdXJyZW5jZV8oJGFyZyksCisgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAkdGhpcy0+cmVnZXhfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnY2FsbCcgICAgICAgPT4gJ3RhZ0hvb2tfJywKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICR0aGlzLT5uYW1lXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1YkFyZ3MnICAgID0+ICR0aGlzLT5tYWtlQXJndW1lbnRzXygkYXJnLT5jaGlsZHJlbigpKQorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlZ2lzdHJ5Xy0+cHV0KCk7CisgICAgfQorCisgICAgLy8gVE9ETzogdGhlICpSZWdleCBmdW5jdGlvbnMgY291bGQgcG9zc2libHkgYWxzbyBiZSBzdGF0aWMgcHJvcGVydGllcworICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZXF1aXJlU3RyaW5nc1JlZ2V4XygpCisgICAgeworICAgICAgICByZXR1cm4gJygnLiBpbXBsb2RlKCd8JywgJHRoaXMtPnJlZ2lzdHJ5Xy0+cmVxdWlyZVN0cmluZ3MoKSkgLicpJzsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbWF0Y2hUeXBlUmVnZXhfKCkKKyAgICB7CisgICAgICAgIHJldHVybiAnKCcuIGltcGxvZGUoJ3wnLCAkdGhpcy0+cmVnaXN0cnlfLT5tYXRjaFR5cGVzKCkpIC4nKSc7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZHJlc3NQYXJ0UmVnZXhfKCkKKyAgICB7CisgICAgICAgIHJldHVybiAnKCcuIGltcGxvZGUoJ3wnLCAkdGhpcy0+cmVnaXN0cnlfLT5hZGRyZXNzUGFydHMoKSkgLicpJzsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29tbWFuZHNSZWdleF8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICcoJy4gaW1wbG9kZSgnfCcsICR0aGlzLT5yZWdpc3RyeV8tPmNvbW1hbmRzKCkpIC4nKSc7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHRlc3RzUmVnZXhfKCkKKyAgICB7CisgICAgICAgIHJldHVybiAnKCcuIGltcGxvZGUoJ3wnLCAkdGhpcy0+cmVnaXN0cnlfLT50ZXN0cygpKSAuJyknOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjb21wYXJhdG9yUmVnZXhfKCkKKyAgICB7CisgICAgICAgIHJldHVybiAnKCcuIGltcGxvZGUoJ3wnLCAkdGhpcy0+cmVnaXN0cnlfLT5jb21wYXJhdG9ycygpKSAuJyknOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBvY2N1cnJlbmNlXygkYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCRhcmdbJ29jY3VycmVuY2UnXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAoKHN0cmluZykgJGFyZ1snb2NjdXJyZW5jZSddKQorICAgICAgICAgICAgeworICAgICAgICAgICAgY2FzZSAnb3B0aW9uYWwnOgorICAgICAgICAgICAgICAgIHJldHVybiAnPyc7CisgICAgICAgICAgICBjYXNlICdhbnknOgorICAgICAgICAgICAgICAgIHJldHVybiAnKic7CisgICAgICAgICAgICBjYXNlICdzb21lJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJysnOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAnMSc7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG5hbWVfKCRhcmcpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJGFyZ1snbmFtZSddKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChzdHJpbmcpICRhcmdbJ25hbWUnXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKHN0cmluZykgJGFyZ1sndHlwZSddOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZWdleF8oJGFyZykKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkYXJnWydyZWdleCddKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChzdHJpbmcpICRhcmdbJ3JlZ2V4J107CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICcuKic7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNhc2VfKCRhcmcpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJGFyZ1snY2FzZSddKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChzdHJpbmcpICRhcmdbJ2Nhc2UnXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJ2FkaGVyZSc7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGZvbGxvd3NfKCRhcmcpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJGFyZ1snZm9sbG93cyddKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChzdHJpbmcpICRhcmdbJ2ZvbGxvd3MnXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJy4qJzsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbWFrZVZhbHVlXygkYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCRhcmctPnZhbHVlKSkKKyAgICAgICAgeworICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5tYWtlQXJndW1lbnRzXygkYXJnLT52YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXlfc2hpZnQoJHJlcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiBleHRlbnNpb24gKHRlc3QpIGNvbW1hbmRzIHBhcmFtZXRlcnMgZnJvbSBYTUwgdG8KKyAgICAgKiBhIFBIUCBhcnJheSB0aGUge0BzZWUgU2VtYW50aWNzfSBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAgKiBAcGFyYW0gYXJyYXkoU2ltcGxlWE1MRWxlbWVudCkgJHBhcmFtZXRlcnMKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG1ha2VBcmd1bWVudHNfKCRwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgJGFyZ3VtZW50cyA9IGFycmF5KCk7CisKKyAgICAgICAgZm9yZWFjaCAoJHBhcmFtZXRlcnMgYXMgJGFyZykKKyAgICAgICAgeworICAgICAgICAgICAgLy8gSWdub3JlIGFueXRoaW5nIG5vdCBhIDxwYXJhbWV0ZXI+CisgICAgICAgICAgICBpZiAoJGFyZy0+Z2V0TmFtZSgpICE9ICdwYXJhbWV0ZXInKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBzd2l0Y2ggKChzdHJpbmcpICRhcmdbJ3R5cGUnXSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3NwYXJ0JzoKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcmd1bWVudHMsIGFycmF5KAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgPT4gU2lldmVUb2tlbjo6VGFnLAorICAgICAgICAgICAgICAgICAgICAnb2NjdXJyZW5jZScgPT4gJHRoaXMtPm9jY3VycmVuY2VfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAncmVnZXgnICAgICAgPT4gJHRoaXMtPmFkZHJlc3NQYXJ0UmVnZXhfKCksCisgICAgICAgICAgICAgICAgICAgICdjYWxsJyAgICAgICA9PiAnYWRkcmVzc1BhcnRIb29rXycsCisgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgICA9PiAnYWRkcmVzcyBwYXJ0JywKKyAgICAgICAgICAgICAgICAgICAgJ3N1YkFyZ3MnICAgID0+ICR0aGlzLT5tYWtlQXJndW1lbnRzXygkYXJnKQorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdibG9jayc6CisgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkYXJndW1lbnRzLCBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgID0+IFNpZXZlVG9rZW46OkJsb2NrU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICdvY2N1cnJlbmNlJyA9PiAnMScsCisgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAneycsCisgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgICA9PiAnYmxvY2snLAorICAgICAgICAgICAgICAgICAgICAnc3ViQXJncycgICAgPT4gJHRoaXMtPm1ha2VBcmd1bWVudHNfKCRhcmcpCisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgJ2NvbXBhcmF0b3InOgorICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGFyZ3VtZW50cywgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA9PiBTaWV2ZVRva2VuOjpUYWcsCisgICAgICAgICAgICAgICAgICAgICdvY2N1cnJlbmNlJyA9PiAkdGhpcy0+b2NjdXJyZW5jZV8oJGFyZyksCisgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAnY29tcGFyYXRvcicsCisgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgICA9PiAnY29tcGFyYXRvcicsCisgICAgICAgICAgICAgICAgICAgICdzdWJBcmdzJyAgICA9PiBhcnJheSggYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgPT4gU2lldmVUb2tlbjo6U3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29jY3VycmVuY2UnID0+ICcxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdjYWxsJyAgICAgICA9PiAnY29tcGFyYXRvckhvb2tfJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdjYXNlJyAgICAgICA9PiAnYWRoZXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAkdGhpcy0+Y29tcGFyYXRvclJlZ2V4XygpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICdjb21wYXJhdG9yIHN0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9sbG93cycgICAgPT4gJ2NvbXBhcmF0b3InCisgICAgICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgJ21hdGNodHlwZSc6CisgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkYXJndW1lbnRzLCBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgID0+IFNpZXZlVG9rZW46OlRhZywKKyAgICAgICAgICAgICAgICAgICAgJ29jY3VycmVuY2UnID0+ICR0aGlzLT5vY2N1cnJlbmNlXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ3JlZ2V4JyAgICAgID0+ICR0aGlzLT5tYXRjaFR5cGVSZWdleF8oKSwKKyAgICAgICAgICAgICAgICAgICAgJ2NhbGwnICAgICAgID0+ICdtYXRjaFR5cGVIb29rXycsCisgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgICA9PiAnbWF0Y2ggdHlwZScsCisgICAgICAgICAgICAgICAgICAgICdzdWJBcmdzJyAgICA9PiAkdGhpcy0+bWFrZUFyZ3VtZW50c18oJGFyZykKKyAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcmd1bWVudHMsIGFycmF5KAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgPT4gU2lldmVUb2tlbjo6TnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAnb2NjdXJyZW5jZScgPT4gJHRoaXMtPm9jY3VycmVuY2VfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAncmVnZXgnICAgICAgPT4gJHRoaXMtPnJlZ2V4XygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICR0aGlzLT5uYW1lXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ2ZvbGxvd3MnICAgID0+ICR0aGlzLT5mb2xsb3dzXygkYXJnKQorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdyZXF1aXJlc3RyaW5ncyc6CisgICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkYXJndW1lbnRzLCBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgID0+IFNpZXZlVG9rZW46OlN0cmluZ0xpc3QsCisgICAgICAgICAgICAgICAgICAgICdvY2N1cnJlbmNlJyA9PiAkdGhpcy0+b2NjdXJyZW5jZV8oJGFyZyksCisgICAgICAgICAgICAgICAgICAgICdjYWxsJyAgICAgICA9PiAnc2V0UmVxdWlyZV8nLAorICAgICAgICAgICAgICAgICAgICAnY2FzZScgICAgICAgPT4gJ2FkaGVyZScsCisgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAkdGhpcy0+cmVxdWlyZVN0cmluZ3NSZWdleF8oKSwKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICR0aGlzLT5uYW1lXygkYXJnKQorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdzdHJpbmcnOgorICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGFyZ3VtZW50cywgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA9PiBTaWV2ZVRva2VuOjpTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICdvY2N1cnJlbmNlJyA9PiAkdGhpcy0+b2NjdXJyZW5jZV8oJGFyZyksCisgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAkdGhpcy0+cmVnZXhfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnY2FzZScgICAgICAgPT4gJHRoaXMtPmNhc2VfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICAgPT4gJHRoaXMtPm5hbWVfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnZm9sbG93cycgICAgPT4gJHRoaXMtPmZvbGxvd3NfKCRhcmcpCisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgJ3N0cmluZ2xpc3QnOgorICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGFyZ3VtZW50cywgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA9PiBTaWV2ZVRva2VuOjpTdHJpbmdMaXN0LAorICAgICAgICAgICAgICAgICAgICAnb2NjdXJyZW5jZScgPT4gJHRoaXMtPm9jY3VycmVuY2VfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAncmVnZXgnICAgICAgPT4gJHRoaXMtPnJlZ2V4XygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ2Nhc2UnICAgICAgID0+ICR0aGlzLT5jYXNlXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICR0aGlzLT5uYW1lXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ2ZvbGxvd3MnICAgID0+ICR0aGlzLT5mb2xsb3dzXygkYXJnKQorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICd0YWcnOgorICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGFyZ3VtZW50cywgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA9PiBTaWV2ZVRva2VuOjpUYWcsCisgICAgICAgICAgICAgICAgICAgICdvY2N1cnJlbmNlJyA9PiAkdGhpcy0+b2NjdXJyZW5jZV8oJGFyZyksCisgICAgICAgICAgICAgICAgICAgICdyZWdleCcgICAgICA9PiAkdGhpcy0+cmVnZXhfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnY2FsbCcgICAgICAgPT4gJ3RhZ0hvb2tfJywKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICR0aGlzLT5uYW1lXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1YkFyZ3MnICAgID0+ICR0aGlzLT5tYWtlQXJndW1lbnRzXygkYXJnLT5jaGlsZHJlbigpKSwKKyAgICAgICAgICAgICAgICAgICAgJ2ZvbGxvd3MnICAgID0+ICR0aGlzLT5mb2xsb3dzXygkYXJnKQorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICd0ZXN0JzoKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcmd1bWVudHMsIGFycmF5KAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgPT4gU2lldmVUb2tlbjo6SWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgJ29jY3VycmVuY2UnID0+ICR0aGlzLT5vY2N1cnJlbmNlXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ3JlZ2V4JyAgICAgID0+ICR0aGlzLT50ZXN0c1JlZ2V4XygpLAorICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICAgPT4gJHRoaXMtPm5hbWVfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnc3ViQXJncycgICAgPT4gJHRoaXMtPm1ha2VBcmd1bWVudHNfKCRhcmctPmNoaWxkcmVuKCkpCisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgJ3Rlc3RsaXN0JzoKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcmd1bWVudHMsIGFycmF5KAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgPT4gU2lldmVUb2tlbjo6TGVmdFBhcmVudGhlc2lzLAorICAgICAgICAgICAgICAgICAgICAnb2NjdXJyZW5jZScgPT4gJzEnLAorICAgICAgICAgICAgICAgICAgICAncmVnZXgnICAgICAgPT4gJ1woJywKKyAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgID0+ICR0aGlzLT5uYW1lXygkYXJnKSwKKyAgICAgICAgICAgICAgICAgICAgJ3N1YkFyZ3MnICAgID0+IG51bGwKKyAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcmd1bWVudHMsIGFycmF5KAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgPT4gU2lldmVUb2tlbjo6SWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgJ29jY3VycmVuY2UnID0+ICcrJywKKyAgICAgICAgICAgICAgICAgICAgJ3JlZ2V4JyAgICAgID0+ICR0aGlzLT50ZXN0c1JlZ2V4XygpLAorICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICAgPT4gJHRoaXMtPm5hbWVfKCRhcmcpLAorICAgICAgICAgICAgICAgICAgICAnc3ViQXJncycgICAgPT4gJHRoaXMtPm1ha2VBcmd1bWVudHNfKCRhcmctPmNoaWxkcmVuKCkpCisgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGFyZ3VtZW50czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYXJndW1lbnQocykgZXhwZWN0ZWQgLyBhbGxvd2VkIHRvIGFwcGVhciBuZXh0LgorICAgICAqIEBwYXJhbSBhcnJheSAkdmFsdWUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkQXJndW1lbnRzXygkaWRlbnRpZmllciwgJHN1YkFyZ3MpCisgICAgeworICAgICAgICBmb3IgKCRpID0gY291bnQoJHN1YkFyZ3MpOyAkaSA+IDA7ICRpLS0pCisgICAgICAgIHsKKyAgICAgICAgICAgICRhcmcgPSAkc3ViQXJnc1skaS0xXTsKKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvXicuICRhcmdbJ2ZvbGxvd3MnXSAuJyQvc2knLCAkaWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAgYXJyYXlfdW5zaGlmdCgkdGhpcy0+YXJndW1lbnRzXywgJGFyZyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgZGVwZW5kZW5jeSB0aGF0IGlzIGV4cGVjdGVkIHRvIGJlIGZ1bGxmaWxsZWQgd2hlbiBwYXJzaW5nCisgICAgICogb2YgdGhlIGN1cnJlbnQgY29tbWFuZCBpcyB7QHNlZSBkb25lfS4KKyAgICAgKiBAcGFyYW0gYXJyYXkgJGRlcGVuZGVuY3kKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkRGVwZW5kZW5jeV8oJHR5cGUsICRuYW1lLCAkZGVwZW5kZW5jaWVzKQorICAgIHsKKyAgICAgICAgZm9yZWFjaCAoJGRlcGVuZGVuY2llcyBhcyAkZCkKKyAgICAgICAgeworICAgICAgICAgICAgYXJyYXlfcHVzaCgkdGhpcy0+ZGVwc18sIGFycmF5KAorICAgICAgICAgICAgICAgICdvX3R5cGUnID0+ICR0eXBlLAorICAgICAgICAgICAgICAgICdvX25hbWUnID0+ICRuYW1lLAorICAgICAgICAgICAgICAgICd0eXBlJyAgID0+ICRkWyd0eXBlJ10sCisgICAgICAgICAgICAgICAgJ25hbWUnICAgPT4gJGRbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAncmVnZXgnICA9PiAkZFsncmVnZXgnXQorICAgICAgICAgICAgKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW52b2tlXygkdG9rZW4sICRmdW5jLCAkYXJnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgIGlmICghaXNfYXJyYXkoJGFyZykpCisgICAgICAgICAgICAkYXJnID0gYXJyYXkoJGFyZyk7CisKKyAgICAgICAgJGVyciA9IGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCYkdGhpcywgJGZ1bmMpLCAkYXJnKTsKKworICAgICAgICBpZiAoJGVycikKKyAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sICRlcnIpOworICAgIH0KKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRSZXF1aXJlXygkZXh0ZW5zaW9uKQorICAgIHsKKyAgICAgICAgYXJyYXlfcHVzaChzZWxmOjokcmVxdWlyZWRFeHRlbnNpb25zXywgJGV4dGVuc2lvbik7CisgICAgICAgICR0aGlzLT5yZWdpc3RyeV8tPmFjdGl2YXRlKCRleHRlbnNpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhvb2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgYSBhZGRyZXNzIHBhcnQgbWF0Y2ggd2FzIGZvdW5kCisgICAgICogaW4gYSBjb21tYW5kLiBUaGUga2luZCBvZiBhZGRyZXNzIHBhcnQgaXMgcmVtZW1iZXJlZCBpbiBjYXNlIGl0J3MKKyAgICAgKiBuZWVkZWQgbGF0ZXIge0BzZWUgZG9uZX0uIEZvciBhZGRyZXNzIHBhcnRzIGZyb20gYSBleHRlbnNpb24KKyAgICAgKiBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGFuZCB2YWxpZCB2YWx1ZXMgYXJlIGxvb2tlZCB1cCBhcyB3ZWxsLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3NwYXJ0CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZHJlc3NQYXJ0SG9va18oJGFkZHJlc3NwYXJ0KQorICAgIHsKKyAgICAgICAgJHRoaXMtPmFkZHJlc3NQYXJ0XyA9ICRhZGRyZXNzcGFydDsKKyAgICAgICAgJHhtbCA9ICR0aGlzLT5yZWdpc3RyeV8tPmFkZHJlc3NwYXJ0KCR0aGlzLT5hZGRyZXNzUGFydF8pOworCisgICAgICAgIGlmIChpc3NldCgkeG1sKSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQWRkIHBvc3NpYmxlIHZhbHVlIGFuZCBkZXBlbmRhbmN5CisgICAgICAgICAgICAkdGhpcy0+YWRkQXJndW1lbnRzXygkdGhpcy0+YWRkcmVzc1BhcnRfLCAkdGhpcy0+bWFrZUFyZ3VtZW50c18oJHhtbCkpOworICAgICAgICAgICAgJHRoaXMtPmFkZERlcGVuZGVuY3lfKCdhZGRyZXNzIHBhcnQnLCAkdGhpcy0+YWRkcmVzc1BhcnRfLCAkeG1sLT5yZXF1aXJlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIb29rIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGFmdGVyIGEgbWF0Y2ggdHlwZSB3YXMgZm91bmQgaW4gYQorICAgICAqIGNvbW1hbmQuIFRoZSBraW5kIG9mIG1hdGNoIHR5cGUgaXMgcmVtZW1iZXJlZCBpbiBjYXNlIGl0J3MKKyAgICAgKiBuZWVkZWQgbGF0ZXIge0BzZWUgZG9uZX0uIEZvciBhIG1hdGNoIHR5cGUgZnJvbSBleHRlbnNpb25zCisgICAgICogZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhbmQgdmFsaWQgdmFsdWVzIGFyZSBsb29rZWQgdXAgYXMgd2VsbC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRtYXRjaHR5cGUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbWF0Y2hUeXBlSG9va18oJG1hdGNodHlwZSkKKyAgICB7CisgICAgICAgICR0aGlzLT5tYXRjaFR5cGVfID0gJG1hdGNodHlwZTsKKyAgICAgICAgJHhtbCA9ICR0aGlzLT5yZWdpc3RyeV8tPm1hdGNodHlwZSgkdGhpcy0+bWF0Y2hUeXBlXyk7CisKKyAgICAgICAgaWYgKGlzc2V0KCR4bWwpKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBBZGQgcG9zc2libGUgdmFsdWUgYW5kIGRlcGVuZGFuY3kKKyAgICAgICAgICAgICR0aGlzLT5hZGRBcmd1bWVudHNfKCR0aGlzLT5tYXRjaFR5cGVfLCAkdGhpcy0+bWFrZUFyZ3VtZW50c18oJHhtbCkpOworICAgICAgICAgICAgJHRoaXMtPmFkZERlcGVuZGVuY3lfKCdtYXRjaCB0eXBlJywgJHRoaXMtPm1hdGNoVHlwZV8sICR4bWwtPnJlcXVpcmVzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEhvb2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgYSBjb21wYXJhdG9yIHdhcyBmb3VuZCBpbgorICAgICAqIGEgY29tbWFuZC4gVGhlIGNvbXBhcmF0b3IgaXMgcmVtZW1iZXJlZCBpbiBjYXNlIGl0J3MgbmVlZGVkIGZvcgorICAgICAqIGNvbXBhcnNpb24gbGF0ZXIge0BzZWUgZG9uZX0uIEZvciBhIGNvbXBhcmF0b3IgZnJvbSBleHRlbnNpb25zCisgICAgICogZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBpcyBsb29rZWQgdXAgYXMgd2VsbC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb21wYXJhdG9yCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNvbXBhcmF0b3JIb29rXygkY29tcGFyYXRvcikKKyAgICB7CisgICAgICAgICR0aGlzLT5jb21wYXJhdG9yXyA9ICRjb21wYXJhdG9yOworICAgICAgICAkeG1sID0gJHRoaXMtPnJlZ2lzdHJ5Xy0+Y29tcGFyYXRvcigkdGhpcy0+Y29tcGFyYXRvcl8pOworCisgICAgICAgIGlmIChpc3NldCgkeG1sKSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQWRkIHBvc3NpYmxlIGRlcGVuZGFuY3kKKyAgICAgICAgICAgICR0aGlzLT5hZGREZXBlbmRlbmN5XygnY29tcGFyYXRvcicsICR0aGlzLT5jb21wYXJhdG9yXywgJHhtbC0+cmVxdWlyZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSG9vayBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBhZnRlciBhIHRhZyB3YXMgZm91bmQgaW4KKyAgICAgKiBhIGNvbW1hbmQuIFRoZSB0YWcgaXMgcmVtZW1iZXJlZCBpbiBjYXNlIGl0J3MgbmVlZGVkIGZvcgorICAgICAqIGNvbXBhcnNpb24gbGF0ZXIge0BzZWUgZG9uZX0uIEZvciBhIHRhZ3MgZnJvbSBleHRlbnNpb25zCisgICAgICogZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBpcyBsb29rZWQgdXAgYXMgd2VsbC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICR0YWcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdGFnSG9va18oJHRhZykKKyAgICB7CisgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPnRhZ3NfLCAkdGFnKTsKKyAgICAgICAgJHhtbCA9ICR0aGlzLT5yZWdpc3RyeV8tPmFyZ3VtZW50KCR0YWcpOworCisgICAgICAgIC8vIEFkZCBwb3NzaWJsZSBkZXBlbmRhbmNpZXMKKyAgICAgICAgaWYgKGlzc2V0KCR4bWwpKQorICAgICAgICAgICAgJHRoaXMtPmFkZERlcGVuZGVuY3lfKCd0YWcnLCAkdGFnLCAkeG1sLT5yZXF1aXJlcyk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkVHlwZV8oJHRva2VuKQorICAgIHsKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmFyZ3VtZW50c18gYXMgJGFyZykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCRhcmdbJ29jY3VycmVuY2UnXSA9PSAnMCcpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYXJyYXlfc2hpZnQoJHRoaXMtPmFyZ3VtZW50c18pOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoJHRva2VuLT5pcygkYXJnWyd0eXBlJ10pKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gSXMgdGhlIGFyZ3VtZW50IHJlcXVpcmVkCisgICAgICAgICAgICBpZiAoJGFyZ1snb2NjdXJyZW5jZSddICE9ICc/JyAmJiAkYXJnWydvY2N1cnJlbmNlJ10gIT0gJyonKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sICRhcmdbJ3R5cGUnXSk7CisKKyAgICAgICAgICAgIGFycmF5X3NoaWZ0KCR0aGlzLT5hcmd1bWVudHNfKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGlmIGNvbW1hbmQgZXhwZWN0cyBhbnkgKG1vcmUpIGFyZ3VtZW50cworICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPmFyZ3VtZW50c18pKQorICAgICAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgJHRoaXMtPmZvbGxvd3VwVG9rZW5fKTsKKworICAgICAgICB0aHJvdyBuZXcgU2lldmVFeGNlcHRpb24oJHRva2VuLCAndW5leHBlY3RlZCAnLiBTaWV2ZVRva2VuOjp0eXBlU3RyaW5nKCR0b2tlbi0+dHlwZSkgLicgJy4gJHRva2VuLT50ZXh0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc3RhcnRTdHJpbmdMaXN0KCR0b2tlbikKKyAgICB7CisgICAgICAgICR0aGlzLT52YWxpZFR5cGVfKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hcmd1bWVudHNfWzBdWyd0eXBlJ10gPSBTaWV2ZVRva2VuOjpTdHJpbmc7CisgICAgICAgICR0aGlzLT5hcmd1bWVudHNfWzBdWydvY2N1cnJlbmNlJ10gPSAnKyc7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGNvbnRpbnVlU3RyaW5nTGlzdCgpCisgICAgeworICAgICAgICAkdGhpcy0+YXJndW1lbnRzX1swXVsnb2NjdXJyZW5jZSddID0gJysnOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBlbmRTdHJpbmdMaXN0KCkKKyAgICB7CisgICAgICAgIGFycmF5X3NoaWZ0KCR0aGlzLT5hcmd1bWVudHNfKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVUb2tlbigkdG9rZW4pCisgICAgeworICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGFyZ3VtZW50IGhhcyBhIHZhbGlkIHR5cGUKKyAgICAgICAgJHRoaXMtPnZhbGlkVHlwZV8oJHRva2VuKTsKKworICAgICAgICBmb3JlYWNoICgkdGhpcy0+YXJndW1lbnRzXyBhcyAmJGFyZykKKyAgICAgICAgeworICAgICAgICAgICAgLy8gQnVpbGQgcmVndWxhciBleHByZXNzaW9uIGFjY29yZGluZyB0byBhcmd1bWVudCB0eXBlCisgICAgICAgICAgICBzd2l0Y2ggKCRhcmdbJ3R5cGUnXSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6U3RyaW5nOgorICAgICAgICAgICAgY2FzZSBTaWV2ZVRva2VuOjpTdHJpbmdMaXN0OgorICAgICAgICAgICAgICAgICRyZWdleCA9ICcvXig/OnRleHQ6W15cbl0qXG4oP1A8b25lPicuICRhcmdbJ3JlZ2V4J10gLicpXC5ccj9cbj98Iig/UDx0d28+Jy4gJGFyZ1sncmVnZXgnXSAuJykiKSQvJworICAgICAgICAgICAgICAgICAgICAgICAuICgkYXJnWydjYXNlJ10gPT0gJ2lnbm9yZScgPyAnc2knIDogJ3MnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6VGFnOgorICAgICAgICAgICAgICAgICRyZWdleCA9ICcvXjooP1A8b25lPicuICRhcmdbJ3JlZ2V4J10gLicpJC9zaSc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICRyZWdleCA9ICcvXig/UDxvbmU+Jy4gJGFyZ1sncmVnZXgnXSAuJykkL3NpJzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJHJlZ2V4LCAkdG9rZW4tPnRleHQsICRtYXRjaCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJHRleHQgPSAoJG1hdGNoWydvbmUnXSA/ICRtYXRjaFsnb25lJ10gOiAkbWF0Y2hbJ3R3byddKTsKKworICAgICAgICAgICAgICAgIC8vIEFkZCBhcmd1bWVudChzKSB0aGF0IG1heSBub3cgYXBwZWFyIGFmdGVyIHRoaXMgb25lCisgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRhcmdbJ3N1YkFyZ3MnXSkpCisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hZGRBcmd1bWVudHNfKCR0ZXh0LCAkYXJnWydzdWJBcmdzJ10pOworCisgICAgICAgICAgICAgICAgLy8gQ2FsbCBleHRyYSBwcm9jZXNzaW5nIGZ1bmN0aW9uIGlmIGRlZmluZWQKKyAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFyZ1snY2FsbCddKSkKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmludm9rZV8oJHRva2VuLCAkYXJnWydjYWxsJ10sICR0ZXh0KTsKKworICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIGEgcG9zc2libGUgdmFsdWUgb2YgdGhpcyBhcmd1bWVudCBtYXkgb2NjdXIKKyAgICAgICAgICAgICAgICBpZiAoJGFyZ1snb2NjdXJyZW5jZSddID09ICc/JyB8fCAkYXJnWydvY2N1cnJlbmNlJ10gPT0gJzEnKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJGFyZ1snb2NjdXJyZW5jZSddID0gJzAnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICgkYXJnWydvY2N1cnJlbmNlJ10gPT0gJysnKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJGFyZ1snb2NjdXJyZW5jZSddID0gJyonOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCR0b2tlbi0+aXMoJGFyZ1sndHlwZSddKSAmJiAkYXJnWydvY2N1cnJlbmNlJ10gPT0gMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU2lldmVFeGNlcHRpb24oJHRva2VuLAorICAgICAgICAgICAgICAgICAgICBTaWV2ZVRva2VuOjp0eXBlU3RyaW5nKCR0b2tlbi0+dHlwZSkgLiIgJHRva2VuLT50ZXh0IHdoZXJlICIuICRhcmdbJ25hbWUnXSAuJyBleHBlY3RlZCcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgJ3VuZXhwZWN0ZWQgJy4gU2lldmVUb2tlbjo6dHlwZVN0cmluZygkdG9rZW4tPnR5cGUpIC4nICcuICR0b2tlbi0+dGV4dCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGRvbmUoJHRva2VuKQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIHJlcXVpcmVkIGFyZ3VtZW50cyBsZWZ0CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5hcmd1bWVudHNfIGFzICRhcmcpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgkYXJnWydvY2N1cnJlbmNlJ10gPT0gJysnIHx8ICRhcmdbJ29jY3VycmVuY2UnXSA9PSAnMScpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFNpZXZlRXhjZXB0aW9uKCR0b2tlbiwgJGFyZ1sndHlwZSddKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjb21tYW5kIGRlcGVuZHMgb24gdXNlIG9mIGEgY2VydGFpbiB0YWcKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmRlcHNfIGFzICRkKQorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKCRkWyd0eXBlJ10pCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlICdhZGRyZXNzcGFydCc6CisgICAgICAgICAgICAgICAgJHZhbHVlcyA9IGFycmF5KCR0aGlzLT5hZGRyZXNzUGFydF8pOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdtYXRjaHR5cGUnOgorICAgICAgICAgICAgICAgICR2YWx1ZXMgPSBhcnJheSgkdGhpcy0+bWF0Y2hUeXBlXyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgJ2NvbXBhcmF0b3InOgorICAgICAgICAgICAgICAgICR2YWx1ZXMgPSBhcnJheSgkdGhpcy0+Y29tcGFyYXRvcl8pOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICd0YWcnOgorICAgICAgICAgICAgICAgICR2YWx1ZXMgPSAkdGhpcy0+dGFnc187CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvcmVhY2ggKCR2YWx1ZXMgYXMgJHZhbHVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvXicuICRkWydyZWdleCddIC4nJC9taScsICR2YWx1ZSkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrIDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRocm93IG5ldyBTaWV2ZUV4Y2VwdGlvbigkdG9rZW4sCisgICAgICAgICAgICAgICAgJGRbJ29fdHlwZSddIC4nICcuICRkWydvX25hbWUnXSAuJyByZXF1aXJlcyB1c2Ugb2YgJy4gJGRbJ3R5cGUnXSAuJyAnLiAkZFsnbmFtZSddKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlVG9rZW4ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvU2lldmVUb2tlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5ZjQ1YgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlVG9rZW4ucGhwCkBAIC0wLDAgKzEsODggQEAKKzw/cGhwIG5hbWVzcGFjZSBTaWV2ZTsKKworaW5jbHVkZV9vbmNlKCdTaWV2ZUR1bXBhYmxlLnBocCcpOworCitjbGFzcyBTaWV2ZVRva2VuIGltcGxlbWVudHMgU2lldmVEdW1wYWJsZQoreworICAgIGNvbnN0IFVua25vd24gICAgICAgICAgPSAweDAwMDA7CisgICAgY29uc3QgU2NyaXB0RW5kICAgICAgICA9IDB4MDAwMTsKKyAgICBjb25zdCBMZWZ0QnJhY2tldCAgICAgID0gMHgwMDAyOworICAgIGNvbnN0IFJpZ2h0QnJhY2tldCAgICAgPSAweDAwMDQ7CisgICAgY29uc3QgQmxvY2tTdGFydCAgICAgICA9IDB4MDAwODsKKyAgICBjb25zdCBCbG9ja0VuZCAgICAgICAgID0gMHgwMDEwOworICAgIGNvbnN0IExlZnRQYXJlbnRoZXNpcyAgPSAweDAwMjA7CisgICAgY29uc3QgUmlnaHRQYXJlbnRoZXNpcyA9IDB4MDA0MDsKKyAgICBjb25zdCBDb21tYSAgICAgICAgICAgID0gMHgwMDgwOworICAgIGNvbnN0IFNlbWljb2xvbiAgICAgICAgPSAweDAxMDA7CisgICAgY29uc3QgV2hpdGVzcGFjZSAgICAgICA9IDB4MDIwMDsKKyAgICBjb25zdCBUYWcgICAgICAgICAgICAgID0gMHgwNDAwOworICAgIGNvbnN0IFF1b3RlZFN0cmluZyAgICAgPSAweDA4MDA7CisgICAgY29uc3QgTnVtYmVyICAgICAgICAgICA9IDB4MTAwMDsKKyAgICBjb25zdCBDb21tZW50ICAgICAgICAgID0gMHgyMDAwOworICAgIGNvbnN0IE11bHRpbGluZVN0cmluZyAgPSAweDQwMDA7CisgICAgY29uc3QgSWRlbnRpZmllciAgICAgICA9IDB4ODAwMDsKKworICAgIGNvbnN0IFN0cmluZyAgICAgICAgPSAweDQ4MDA7IC8vIFF1b3RlZCB8IE11bHRpbGluZQorICAgIGNvbnN0IFN0cmluZ0xpc3QgICAgPSAweDQ4MDI7IC8vIFF1b3RlZCB8IE11bHRpbGluZSB8IExlZnRCcmFja2V0CisgICAgY29uc3QgU3RyaW5nTGlzdFNlcCA9IDB4MDA4NDsgLy8gQ29tbWEgfCBSaWdodEJyYWNrZXQKKyAgICBjb25zdCBVbnBhcnNlZCAgICAgID0gMHgyMjAwOyAvLyBDb21tZW50IHwgV2hpdGVzcGFjZQorICAgIGNvbnN0IFRlc3RMaXN0ICAgICAgPSAweDgwMjA7IC8vIElkZW50aWZpZXIgfCBMZWZ0UGFyZW50aGVzaXMKKworICAgIHB1YmxpYyAkdHlwZTsKKyAgICBwdWJsaWMgJHRleHQ7CisgICAgcHVibGljICRsaW5lOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0eXBlLCAkdGV4dCwgJGxpbmUpCisgICAgeworICAgICAgICAkdGhpcy0+dGV4dCA9ICR0ZXh0OworICAgICAgICAkdGhpcy0+dHlwZSA9ICR0eXBlOworICAgICAgICAkdGhpcy0+bGluZSA9IGludHZhbCgkbGluZSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGR1bXAoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICc8Jy4gU2lldmVUb2tlbjo6ZXNjYXBlKCR0aGlzLT50ZXh0KSAuJz4gdHlwZTonLiBTaWV2ZVRva2VuOjp0eXBlU3RyaW5nKCR0aGlzLT50eXBlKSAuJyBsaW5lOicuICR0aGlzLT5saW5lOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+dGV4dDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gaXMoJHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gKGJvb2wpKCR0aGlzLT50eXBlICYgJHR5cGUpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdHlwZVN0cmluZygkdHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoJHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBTaWV2ZVRva2VuOjpJZGVudGlmaWVyOiByZXR1cm4gJ2lkZW50aWZpZXInOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OldoaXRlc3BhY2U6IHJldHVybiAnd2hpdGVzcGFjZSc7CisgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6UXVvdGVkU3RyaW5nOiByZXR1cm4gJ3F1b3RlZCBzdHJpbmcnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OlRhZzogcmV0dXJuICd0YWcnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OlNlbWljb2xvbjogcmV0dXJuICdzZW1pY29sb24nOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OkxlZnRCcmFja2V0OiByZXR1cm4gJ2xlZnQgYnJhY2tldCc7CisgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6UmlnaHRCcmFja2V0OiByZXR1cm4gJ3JpZ2h0IGJyYWNrZXQnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OkJsb2NrU3RhcnQ6IHJldHVybiAnYmxvY2sgc3RhcnQnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OkJsb2NrRW5kOiByZXR1cm4gJ2Jsb2NrIGVuZCc7CisgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6TGVmdFBhcmVudGhlc2lzOiByZXR1cm4gJ2xlZnQgcGFyZW50aGVzaXMnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OlJpZ2h0UGFyZW50aGVzaXM6IHJldHVybiAncmlnaHQgcGFyZW50aGVzaXMnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46OkNvbW1hOiByZXR1cm4gJ2NvbW1hJzsKKyAgICAgICAgY2FzZSBTaWV2ZVRva2VuOjpOdW1iZXI6IHJldHVybiAnbnVtYmVyJzsKKyAgICAgICAgY2FzZSBTaWV2ZVRva2VuOjpDb21tZW50OiByZXR1cm4gJ2NvbW1lbnQnOworICAgICAgICBjYXNlIFNpZXZlVG9rZW46Ok11bHRpbGluZVN0cmluZzogcmV0dXJuICdtdWx0aWxpbmUgc3RyaW5nJzsKKyAgICAgICAgY2FzZSBTaWV2ZVRva2VuOjpTY3JpcHRFbmQ6IHJldHVybiAnc2NyaXB0IGVuZCc7CisgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6U3RyaW5nOiByZXR1cm4gJ3N0cmluZyc7CisgICAgICAgIGNhc2UgU2lldmVUb2tlbjo6U3RyaW5nTGlzdDogcmV0dXJuICdzdHJpbmcgbGlzdCc7CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiAndW5rbm93biB0b2tlbic7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljICR0cl8gPSBhcnJheSgiXHIiID0+ICdccicsICJcbiIgPT4gJ1xuJywgIlx0IiA9PiAnXHQnKTsKKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGVzY2FwZSgkdmFsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0cnRyKCR2YWwsIHNlbGY6OiR0cl8pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL1NpZXZlVHJlZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZVRyZWUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5YzczNDkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9TaWV2ZVRyZWUucGhwCkBAIC0wLDAgKzEsMTE3IEBACis8P3BocCBuYW1lc3BhY2UgU2lldmU7CisKK2NsYXNzIFNpZXZlVHJlZQoreworICAgIHByb3RlY3RlZCAkY2hpbGRzXzsKKyAgICBwcm90ZWN0ZWQgJHBhcmVudHNfOworICAgIHByb3RlY3RlZCAkbm9kZXNfOworICAgIHByb3RlY3RlZCAkbWF4X2lkXzsKKyAgICBwcm90ZWN0ZWQgJGR1bXBfOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lID0gJ3RyZWUnKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmNoaWxkc18gPSBhcnJheSgpOworICAgICAgICAkdGhpcy0+cGFyZW50c18gPSBhcnJheSgpOworICAgICAgICAkdGhpcy0+bm9kZXNfID0gYXJyYXkoKTsKKyAgICAgICAgJHRoaXMtPm1heF9pZF8gPSAwOworCisgICAgICAgICR0aGlzLT5wYXJlbnRzX1swXSA9IG51bGw7CisgICAgICAgICR0aGlzLT5ub2Rlc19bMF0gPSAkbmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkQ2hpbGQoU2lldmVEdW1wYWJsZSAkY2hpbGQpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmFkZENoaWxkVG8oJHRoaXMtPm1heF9pZF8sICRjaGlsZCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZENoaWxkVG8oJHBhcmVudF9pZCwgU2lldmVEdW1wYWJsZSAkY2hpbGQpCisgICAgeworICAgICAgICBpZiAoIWlzX2ludCgkcGFyZW50X2lkKQorICAgICAgICAgfHwgIWlzc2V0KCR0aGlzLT5ub2Rlc19bJHBhcmVudF9pZF0pKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+Y2hpbGRzX1skcGFyZW50X2lkXSkpCisgICAgICAgICAgICAkdGhpcy0+Y2hpbGRzX1skcGFyZW50X2lkXSA9IGFycmF5KCk7CisKKyAgICAgICAgJGNoaWxkX2lkID0gKyskdGhpcy0+bWF4X2lkXzsKKyAgICAgICAgJHRoaXMtPm5vZGVzX1skY2hpbGRfaWRdID0gJGNoaWxkOworICAgICAgICAkdGhpcy0+cGFyZW50c19bJGNoaWxkX2lkXSA9ICRwYXJlbnRfaWQ7CisgICAgICAgIGFycmF5X3B1c2goJHRoaXMtPmNoaWxkc19bJHBhcmVudF9pZF0sICRjaGlsZF9pZCk7CisKKyAgICAgICAgcmV0dXJuICRjaGlsZF9pZDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Um9vdCgpCisgICAgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2hpbGRzKCRub2RlX2lkKQorICAgIHsKKyAgICAgICAgaWYgKCFpc19pbnQoJG5vZGVfaWQpCisgICAgICAgIHx8ICFpc3NldCgkdGhpcy0+bm9kZXNfWyRub2RlX2lkXSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5jaGlsZHNfWyRub2RlX2lkXSkpCisgICAgICAgICAgICByZXR1cm4gYXJyYXkoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmNoaWxkc19bJG5vZGVfaWRdOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXROb2RlKCRub2RlX2lkKQorICAgIHsKKyAgICAgICAgaWYgKCRub2RlX2lkID09IDAgfHwgIWlzX2ludCgkbm9kZV9pZCkKKyAgICAgICAgIHx8ICFpc3NldCgkdGhpcy0+bm9kZXNfWyRub2RlX2lkXSkpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gJHRoaXMtPm5vZGVzX1skbm9kZV9pZF07CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGR1bXAoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmR1bXBfID0gJHRoaXMtPm5vZGVzX1skdGhpcy0+Z2V0Um9vdCgpXSAuIlxuIjsKKyAgICAgICAgJHRoaXMtPmR1bXBDaGlsZHNfKCR0aGlzLT5nZXRSb290KCksICcgJyk7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZHVtcF87CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGR1bXBDaGlsZHNfKCRwYXJlbnRfaWQsICRwcmVmaXgpCisgICAgeworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5jaGlsZHNfWyRwYXJlbnRfaWRdKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAkY2hpbGRzID0gJHRoaXMtPmNoaWxkc19bJHBhcmVudF9pZF07CisgICAgICAgICRsYXN0X2NoaWxkID0gY291bnQoJGNoaWxkcyk7CisKKyAgICAgICAgZm9yICgkaT0xOyAkaSA8PSAkbGFzdF9jaGlsZDsgKyskaSkKKyAgICAgICAgeworICAgICAgICAgICAgJGNoaWxkX25vZGUgPSAkdGhpcy0+bm9kZXNfWyRjaGlsZHNbJGktMV1dOworICAgICAgICAgICAgJGluZml4ID0gKCRpID09ICRsYXN0X2NoaWxkID8gJ2AtLS0gJyA6ICd8LS0tICcpOworICAgICAgICAgICAgJHRoaXMtPmR1bXBfIC49ICRwcmVmaXggLiAkaW5maXggLiAkY2hpbGRfbm9kZS0+ZHVtcCgpIC4gIiAoaWQ6IiAuICRjaGlsZHNbJGktMV0gLiAiKVxuIjsKKworICAgICAgICAgICAgJG5leHRfcHJlZml4ID0gJHByZWZpeCAuICgkaSA9PSAkbGFzdF9jaGlsZCA/ICcgICAnIDogJ3wgICcpOworICAgICAgICAgICAgJHRoaXMtPmR1bXBDaGlsZHNfKCRjaGlsZHNbJGktMV0sICRuZXh0X3ByZWZpeCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGV4dCgpCisgICAgeworICAgICAgICAkdGhpcy0+ZHVtcF8gPSAnJzsKKyAgICAgICAgJHRoaXMtPmNoaWxkVGV4dF8oJHRoaXMtPmdldFJvb3QoKSk7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZHVtcF87CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoaWxkVGV4dF8oJHBhcmVudF9pZCkKKyAgICB7CisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPmNoaWxkc19bJHBhcmVudF9pZF0pKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICRjaGlsZHMgPSAkdGhpcy0+Y2hpbGRzX1skcGFyZW50X2lkXTsKKworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkY2hpbGRzKTsgKyskaSkKKyAgICAgICAgeworICAgICAgICAgICAgJGNoaWxkX25vZGUgPSAkdGhpcy0+bm9kZXNfWyRjaGlsZHNbJGldXTsKKyAgICAgICAgICAgICR0aGlzLT5kdW1wXyAuPSAkY2hpbGRfbm9kZS0+dGV4dCgpOworICAgICAgICAgICAgJHRoaXMtPmNoaWxkVGV4dF8oJGNoaWxkc1skaV0pOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9ib2R5LnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvYm9keS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU3Yjg0NQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvYm9keS54bWwKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJib2R5Ij4KKworCTx0ZXN0IG5hbWU9ImJvZHkiPgorCQk8cGFyYW1ldGVyIHR5cGU9Im1hdGNodHlwZSIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0iY29tcGFyYXRvciIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJib2R5IHRyYW5zZm9ybSIgcmVnZXg9IihyYXd8Y29udGVudHx0ZXh0KSIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiPgorCQkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJjb250ZW50IHR5cGVzIiBmb2xsb3dzPSJjb250ZW50IiAvPgorCQk8L3BhcmFtZXRlcj4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJrZXkgbGlzdCIgLz4KKwk8L3Rlc3Q+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9jb21wYXJhdG9yLWFzY2lpLW51bWVyaWMueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9jb21wYXJhdG9yLWFzY2lpLW51bWVyaWMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmOTZmOGQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2NvbXBhcmF0b3ItYXNjaWktbnVtZXJpYy54bWwKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPScxLjAnIHN0YW5kYWxvbmU9J3llcyc/PgorCis8ZXh0ZW5zaW9uIG5hbWU9ImNvbXBhcmF0b3ItaTthc2NpaS1udW1lcmljIj4KKworCTxjb21wYXJhdG9yIG5hbWU9Imk7YXNjaWktbnVtZXJpYyIgLz4KKworPC9leHRlbnNpb24+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2NvcHkueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9jb3B5LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTNmOTAyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9jb3B5LnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0iY29weSI+CisKKwk8dGFnZ2VkLWFyZ3VtZW50IGV4dGVuZHM9IihmaWxlaW50b3xyZWRpcmVjdCkiPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0iY29weSIgcmVnZXg9ImNvcHkiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCTwvdGFnZ2VkLWFyZ3VtZW50PgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvZGF0ZS54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2RhdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZjY1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2RhdGUueG1sCkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0iZGF0ZSI+CisKKwk8dGVzdCBuYW1lPSJkYXRlIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImNvbXBhcmF0b3IiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0iem9uZSIgcmVnZXg9Iih6b25lfG9yaWdpbmFsem9uZSkiIG9jY3VycmVuY2U9Im9wdGlvbmFsIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lLXpvbmUiIGZvbGxvd3M9InpvbmUiIC8+CisJCTwvcGFyYW1ldGVyPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0iaGVhZGVyLW5hbWUiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBjYXNlPSJpZ25vcmUiIG5hbWU9ImRhdGUtcGFydCIKKwkJIHJlZ2V4PSIoeWVhcnxtb250aHxkYXl8ZGF0ZXxqdWxpYW58aG91cnxtaW51dGV8c2Vjb25kfHRpbWV8aXNvODYwMXxzdGQxMXx6b25lfHdlZWtkYXkpIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZ2xpc3QiIG5hbWU9ImtleS1saXN0IiAvPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImN1cnJlbnRkYXRlIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImNvbXBhcmF0b3IiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0iem9uZSIgcmVnZXg9InpvbmUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lLXpvbmUiIC8+CisJCTwvcGFyYW1ldGVyPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgY2FzZT0iaWdub3JlIiBuYW1lPSJkYXRlLXBhcnQiCisJCSByZWdleD0iKHllYXJ8bW9udGh8ZGF5fGRhdGV8anVsaWFufGhvdXJ8bWludXRlfHNlY29uZHx0aW1lfGlzbzg2MDF8c3RkMTF8em9uZXx3ZWVrZGF5KSIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJrZXktbGlzdCIgLz4KKwk8L3Rlc3Q+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9kdXBsaWNhdGUueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9kdXBsaWNhdGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMDhkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2R1cGxpY2F0ZS54bWwKQEAgLTAsMCArMSw5IEBACis8P3htbCB2ZXJzaW9uPScxLjAnIHN0YW5kYWxvbmU9J3llcyc/PgorCis8ZXh0ZW5zaW9uIG5hbWU9ImR1cGxpY2F0ZSI+CisKKwk8dGVzdCBuYW1lPSJkdXBsaWNhdGUiPgorCisJPC90ZXN0PgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvZWRpdGhlYWRlci54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2VkaXRoZWFkZXIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMjQ0ODIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2VkaXRoZWFkZXIueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0iZWRpdGhlYWRlciI+CisKKwk8Y29tbWFuZCBuYW1lPSJhZGRoZWFkZXIiPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ibGFzdCIgcmVnZXg9Imxhc3QiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0iZmllbGQgbmFtZSIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9InZhbHVlIiAvPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9ImRlbGV0ZWhlYWRlciI+CisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJpbmRleCIgcmVnZXg9ImluZGV4IiBvY2N1cnJlbmNlPSJvcHRpb25hbCI+CisJCQk8cGFyYW1ldGVyIHR5cGU9Im51bWJlciIgbmFtZT0iZmllbGQgbnVtYmVyIiAvPgorCQkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9Imxhc3QiIHJlZ2V4PSJsYXN0IiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPC9wYXJhbWV0ZXI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ibWF0Y2h0eXBlIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJjb21wYXJhdG9yIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9ImZpZWxkIG5hbWUiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0idmFsdWUgcGF0dGVybnMiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCTwvY29tbWFuZD4KKworPC9leHRlbnNpb24+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2VudmVsb3BlLnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvZW52ZWxvcGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlODhhZGEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2VudmVsb3BlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnIHN0YW5kYWxvbmU9J3llcyc/PgorCis8ZXh0ZW5zaW9uIG5hbWU9ImVudmVsb3BlIj4KKworCTx0ZXN0IG5hbWU9ImVudmVsb3BlIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImNvbXBhcmF0b3IiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImFkZHJlc3NwYXJ0IiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJlbnZlbG9wZS1wYXJ0IiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZ2xpc3QiIG5hbWU9ImtleSIgLz4KKwk8L3Rlc3Q+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9lbnZpcm9ubWVudC54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2Vudmlyb25tZW50LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGFhYjhkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9lbnZpcm9ubWVudC54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJlbnZpcm9ubWVudCI+CisKKwk8dGVzdCBuYW1lPSJlbnZpcm9ubWVudCI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ibWF0Y2h0eXBlIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJjb21wYXJhdG9yIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9Im5hbWUiCisJCSByZWdleD0iKGRvbWFpbnxob3N0fGxvY2F0aW9ufG5hbWV8cGhhc2V8cmVtb3RlLWhvc3R8cmVtb3RlLWlwfHZlcnNpb258dm5kXC4uKykiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0ia2V5LWxpc3QiIC8+CisJPC90ZXN0PgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvZXJlamVjdC54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2VyZWplY3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MjMwMTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2VyZWplY3QueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0iZXJlamVjdCI+CisKKwk8Y29tbWFuZCBuYW1lPSJlcmVqZWN0Ij4KKworCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0icmVhc29uIiAvPgorCisJPC9jb21tYW5kPgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvZmlsZWludG8ueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9maWxlaW50by54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUzOTc0YwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvZmlsZWludG8ueG1sCkBAIC0wLDAgKzEsMTAgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0iZmlsZWludG8iPgorCisJPGNvbW1hbmQgbmFtZT0iZmlsZWludG8iPgorICAgIDxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJjcmVhdGUiIHJlZ2V4PSJjcmVhdGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0iZm9sZGVyIiAvPgorCTwvY29tbWFuZD4KKworPC9leHRlbnNpb24+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2ltYXA0ZmxhZ3MueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9pbWFwNGZsYWdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjZkMTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9pbWFwNGZsYWdzLnhtbApAQCAtMCwwICsxLDI5IEBACis8P3htbCB2ZXJzaW9uPScxLjAnIHN0YW5kYWxvbmU9J3llcyc/PgorCis8ZXh0ZW5zaW9uIG5hbWU9ImltYXA0ZmxhZ3MiPgorCisJPGNvbW1hbmQgbmFtZT0ic2V0ZmxhZyI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0iZmxhZyBsaXN0IiAvPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9ImFkZGZsYWciPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZ2xpc3QiIG5hbWU9ImZsYWcgbGlzdCIgLz4KKwk8L2NvbW1hbmQ+CisKKwk8Y29tbWFuZCBuYW1lPSJyZW1vdmVmbGFnIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJmbGFnIGxpc3QiIC8+CisJPC9jb21tYW5kPgorCisJPHRlc3QgbmFtZT0iaGFzZmxhZyI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ibWF0Y2h0eXBlIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJjb21wYXJhdG9yIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJmbGFnIGxpc3QiIC8+CisJPC90ZXN0PgorCisJPHRhZ2dlZC1hcmd1bWVudCBleHRlbmRzPSIoZmlsZWludG98a2VlcCkiPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0iZmxhZ3MiIHJlZ2V4PSJmbGFncyIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiPgorCQkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJmbGFnIGxpc3QiIC8+CisJCTwvcGFyYW1ldGVyPgorCTwvdGFnZ2VkLWFyZ3VtZW50PgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvaW1hcGZsYWdzLnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvaW1hcGZsYWdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Yjc4Y2M4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9pbWFwZmxhZ3MueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0iaW1hcGZsYWdzIj4KKworCTxjb21tYW5kIG5hbWU9Im1hcmsiIC8+CisKKwk8Y29tbWFuZCBuYW1lPSJ1bm1hcmsiIC8+CisKKwk8Y29tbWFuZCBuYW1lPSJzZXRmbGFnIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJmbGFnIGxpc3QiIC8+CisJPC9jb21tYW5kPgorCisJPGNvbW1hbmQgbmFtZT0iYWRkZmxhZyI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0iZmxhZyBsaXN0IiAvPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9InJlbW92ZWZsYWciPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZ2xpc3QiIG5hbWU9ImZsYWcgbGlzdCIgLz4KKwk8L2NvbW1hbmQ+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9pbmRleC54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL2luZGV4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODEwNTVjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9pbmRleC54bWwKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJpbmRleCI+CisKKwk8dGFnZ2VkLWFyZ3VtZW50IGV4dGVuZHM9IihoZWFkZXJ8YWRkcmVzc3xkYXRlKSI+CisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJpbmRleCIgcmVnZXg9ImluZGV4IiBvY2N1cnJlbmNlPSJvcHRpb25hbCI+CisJCQk8cGFyYW1ldGVyIHR5cGU9Im51bWJlciIgbmFtZT0iZmllbGQgbnVtYmVyIiAvPgorCQk8L3BhcmFtZXRlcj4KKwk8L3RhZ2dlZC1hcmd1bWVudD4KKworCTx0YWdnZWQtYXJndW1lbnQgZXh0ZW5kcz0iKGhlYWRlcnxhZGRyZXNzfGRhdGUpIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9Imxhc3QiIHJlZ2V4PSJsYXN0IiBvY2N1cnJlbmNlPSJvcHRpb25hbCI+CisJCQk8cmVxdWlyZXMgdHlwZT0idGFnIiBuYW1lPSJpbmRleCIgcmVnZXg9ImluZGV4IiAvPgorCQk8L3BhcmFtZXRlcj4KKwk8L3RhZ2dlZC1hcmd1bWVudD4KKworPC9leHRlbnNpb24+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL21haWxib3gueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9tYWlsYm94LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjE5NjBmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9tYWlsYm94LnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0ibWFpbGJveCI+CisKKwk8dGVzdCBuYW1lPSJtYWlsYm94ZXhpc3RzIj4KKyAgICA8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0iZm9sZGVyIiAvPgorCTwvdGVzdD4KKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9ub3RpZnkueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9ub3RpZnkueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNzAyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL25vdGlmeS54bWwKQEAgLTAsMCArMSwyOSBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJub3RpZnkiPgorCisJPGNvbW1hbmQgbmFtZT0ibm90aWZ5Ij4KKwkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9Im1ldGhvZCIgcmVnZXg9Im1ldGhvZCIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiPgorCQkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9Im1ldGhvZC1uYW1lIiAvPgorCQk8L3BhcmFtZXRlcj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0iaWQiIHJlZ2V4PSJpZCIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiPgorCQkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9Im1lc3NhZ2UtaWQiIC8+CisJCTwvcGFyYW1ldGVyPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJwcmlvcml0eSIgcmVnZXg9Iihsb3d8bm9ybWFsfGhpZ2gpIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ibWVzc2FnZSIgcmVnZXg9Im1lc3NhZ2UiIG9jY3VycmVuY2U9Im9wdGlvbmFsIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJtZXNzYWdlLXRleHQiIC8+CisJCTwvcGFyYW1ldGVyPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9ImRlbm90aWZ5Ij4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJtZXNzYWdlLWlkIiAvPgorCQk8L3BhcmFtZXRlcj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0icHJpb3JpdHkiIHJlZ2V4PSIobG93fG5vcm1hbHxoaWdoKSIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIC8+CisJPC9jb21tYW5kPgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvcmVnZXgueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9yZWdleC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzlkNjdmYwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvcmVnZXgueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0icmVnZXgiPgorCisJPG1hdGNodHlwZSBuYW1lPSJyZWdleCIgLz4KKworCTx0YWdnZWQtYXJndW1lbnQgZXh0ZW5kcz0ic2V0Ij4KKwkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9Im1vZGlmaWVyIiByZWdleD0icXVvdGVyZWdleCIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIC8+CisJPC90YWdnZWQtYXJndW1lbnQ+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9yZWplY3QueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9yZWplY3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZDI1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3JlamVjdC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJyZWplY3QiPgorCisJPGNvbW1hbmQgbmFtZT0icmVqZWN0Ij4KKworCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0icmVhc29uIiAvPgorCisJPC9jb21tYW5kPgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvcmVsYXRpb25hbC54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3JlbGF0aW9uYWwueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5ZTJiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3JlbGF0aW9uYWwueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0icmVsYXRpb25hbCI+CisKKwk8bWF0Y2h0eXBlIG5hbWU9ImNvdW50Ij4KKwkJPHJlcXVpcmVzIHR5cGU9ImNvbXBhcmF0b3IiIG5hbWU9Imk7YXNjaWktbnVtZXJpYyIgcmVnZXg9Imk7YXNjaWktbnVtZXJpYyIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9InJlbGF0aW9uIHN0cmluZyIgcmVnZXg9IihsdHxsZXxlcXxnZXxndHxuZSkiIC8+CisJPC9tYXRjaHR5cGU+CisKKwk8bWF0Y2h0eXBlIG5hbWU9InZhbHVlIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9InJlbGF0aW9uIHN0cmluZyIgcmVnZXg9IihsdHxsZXxlcXxnZXxndHxuZSkiIC8+CisJPC9tYXRjaHR5cGU+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9zcGFtdGVzdC54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3NwYW10ZXN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmM4YzNiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy9zcGFtdGVzdC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJzcGFtdGVzdCI+CisKKwk8dGVzdCBuYW1lPSJzcGFtdGVzdCI+CisJCTxwYXJhbWV0ZXIgdHlwZT0iY29tcGFyYXRvciIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0ibWF0Y2h0eXBlIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9InZhbHVlIiAvPgorCTwvdGVzdD4KKworPC9leHRlbnNpb24+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3NwYW10ZXN0cGx1cy54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3NwYW10ZXN0cGx1cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdiNzY4ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvc3BhbXRlc3RwbHVzLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPScxLjAnIHN0YW5kYWxvbmU9J3llcyc/PgorCis8ZXh0ZW5zaW9uIG5hbWU9InNwYW10ZXN0cGx1cyI+CisKKwk8dGVzdCBuYW1lPSJzcGFtdGVzdCIgb3ZlcnJpZGVzPSJ0cnVlIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJjb21wYXJhdG9yIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0icGVyY2VudCIgcmVnZXg9InBlcmNlbnQiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0idmFsdWUiIC8+CisJPC90ZXN0PgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvc3ViYWRkcmVzcy54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3N1YmFkZHJlc3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NjhmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3N1YmFkZHJlc3MueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJzdWJhZGRyZXNzIj4KKworCTxhZGRyZXNzcGFydCBuYW1lPSJ1c2VyIiAvPgorCTxhZGRyZXNzcGFydCBuYW1lPSJkZXRhaWwiIC8+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy92YWNhdGlvbi1zZWNvbmRzLnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvdmFjYXRpb24tc2Vjb25kcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQxOGVmOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvdmFjYXRpb24tc2Vjb25kcy54bWwKQEAgLTAsMCArMSwzMiBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJ2YWNhdGlvbi1zZWNvbmRzIj4KKworCTxjb21tYW5kIG5hbWU9InZhY2F0aW9uIj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ic2Vjb25kcyIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIHJlZ2V4PSJzZWNvbmRzIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ibnVtYmVyIiBuYW1lPSJwZXJpb2QiIC8+CisJCTwvcGFyYW1ldGVyPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJhZGRyZXNzZXMiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiByZWdleD0iYWRkcmVzc2VzIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0iYWRkcmVzcyBzdHJpbmdzIiAvPgorCQk8L3BhcmFtZXRlcj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ic3ViamVjdCIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIHJlZ2V4PSJzdWJqZWN0Ij4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJzdWJqZWN0IHN0cmluZyIgLz4KKwkJPC9wYXJhbWV0ZXI+CisKKwkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9ImZyb20iIG9jY3VycmVuY2U9Im9wdGlvbmFsIiByZWdleD0iZnJvbSI+CisJCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0iZnJvbSBzdHJpbmciIC8+CisJCTwvcGFyYW1ldGVyPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJoYW5kbGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiByZWdleD0iaGFuZGxlIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJoYW5kbGUgc3RyaW5nIiAvPgorCQk8L3BhcmFtZXRlcj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ibWltZSIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIHJlZ2V4PSJtaW1lIiAvPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJyZWFzb24iIC8+CisJPC9jb21tYW5kPgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvdmFjYXRpb24ueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy92YWNhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJkNjk5MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvdmFjYXRpb24ueG1sCkBAIC0wLDAgKzEsMzEgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0idmFjYXRpb24iPgorCisJPGNvbW1hbmQgbmFtZT0idmFjYXRpb24iPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0iZGF5cyIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIHJlZ2V4PSJkYXlzIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ibnVtYmVyIiBuYW1lPSJwZXJpb2QiIC8+CisJCTwvcGFyYW1ldGVyPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJhZGRyZXNzZXMiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiByZWdleD0iYWRkcmVzc2VzIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0iYWRkcmVzcyBzdHJpbmdzIiAvPgorCQk8L3BhcmFtZXRlcj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ic3ViamVjdCIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIHJlZ2V4PSJzdWJqZWN0Ij4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJzdWJqZWN0IHN0cmluZyIgLz4KKwkJPC9wYXJhbWV0ZXI+CisKKwkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9ImZyb20iIG9jY3VycmVuY2U9Im9wdGlvbmFsIiByZWdleD0iZnJvbSI+CisJCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0iZnJvbSBzdHJpbmciIC8+CisJCTwvcGFyYW1ldGVyPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJoYW5kbGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiByZWdleD0iaGFuZGxlIj4KKwkJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJoYW5kbGUgc3RyaW5nIiAvPgorCQk8L3BhcmFtZXRlcj4KKworCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ibWltZSIgb2NjdXJyZW5jZT0ib3B0aW9uYWwiIHJlZ2V4PSJtaW1lIiAvPgorCisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJyZWFzb24iIC8+CisJPC9jb21tYW5kPgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvdmFyaWFibGVzLnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2V4dGVuc2lvbnMvdmFyaWFibGVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOWZmMDAwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy92YXJpYWJsZXMueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxleHRlbnNpb24gbmFtZT0idmFyaWFibGVzIj4KKworCTxjb21tYW5kIG5hbWU9InNldCI+CisJCTxwYXJhbWV0ZXIgdHlwZT0idGFnIiBuYW1lPSJtb2RpZmllciIgcmVnZXg9Iihsb3dlcnx1cHBlcikiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ibW9kaWZpZXIiIHJlZ2V4PSIobG93ZXJ8dXBwZXIpZmlyc3QiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgbmFtZT0ibW9kaWZpZXIiIHJlZ2V4PSJxdW90ZXdpbGRjYXJkIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJ0YWciIG5hbWU9Im1vZGlmaWVyIiByZWdleD0ibGVuZ3RoIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9Im5hbWUiIHJlZ2V4PSJbWzphbHBoYTpdX11bWzphbG51bTpdX10qIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0idmFsdWUiIC8+CisJPC9jb21tYW5kPgorCisJPHRlc3QgbmFtZT0ic3RyaW5nIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImNvbXBhcmF0b3IiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZ2xpc3QiIG5hbWU9InNvdXJjZSIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJrZXkgbGlzdCIgLz4KKwk8L3Rlc3Q+CisKKzwvZXh0ZW5zaW9uPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy92aXJ1c3Rlc3QueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUvZXh0ZW5zaW9ucy92aXJ1c3Rlc3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkYWM4ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi9zaWV2ZS9leHRlbnNpb25zL3ZpcnVzdGVzdC54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSd5ZXMnPz4KKworPGV4dGVuc2lvbiBuYW1lPSJ2aXJ1c3Rlc3QiPgorCisJPHRlc3QgbmFtZT0idmlydXN0ZXN0Ij4KKwkJPHBhcmFtZXRlciB0eXBlPSJjb21wYXJhdG9yIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9InN0cmluZyIgbmFtZT0idmFsdWUiIC8+CisJPC90ZXN0PgorCis8L2V4dGVuc2lvbj4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2tleXdvcmRzLnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3NpZXZlL2tleXdvcmRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWI3YzRkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvc2lldmUva2V5d29yZHMueG1sCkBAIC0wLDAgKzEsOTEgQEAKKzw/eG1sIHZlcnNpb249JzEuMCcgc3RhbmRhbG9uZT0neWVzJz8+CisKKzxrZXl3b3Jkcz4KKworCTxtYXRjaHR5cGUgbmFtZT0iaXMiIC8+CisJPG1hdGNodHlwZSBuYW1lPSJjb250YWlucyIgLz4KKwk8bWF0Y2h0eXBlIG5hbWU9Im1hdGNoZXMiIC8+CisJPG1hdGNodHlwZSBuYW1lPSJ2YWx1ZSI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nIiBuYW1lPSJvcGVyYXRvciIgcmVnZXg9IihndHxnZXxlcXxsZXxsdCkiIC8+CisJPC9tYXRjaHR5cGU+CisKKworCTxjb21wYXJhdG9yIG5hbWU9Imk7b2N0ZXQiIC8+CisJPGNvbXBhcmF0b3IgbmFtZT0iaTthc2NpaS1jYXNlbWFwIiAvPgorCTxjb21wYXJhdG9yIG5hbWU9Imk7dW5pY29kZS1jYXNlbWFwIiAvPgorCisJPGFkZHJlc3NwYXJ0IG5hbWU9ImFsbCIgLz4KKwk8YWRkcmVzc3BhcnQgbmFtZT0ibG9jYWxwYXJ0IiAvPgorCTxhZGRyZXNzcGFydCBuYW1lPSJkb21haW4iIC8+CisKKworCTxjb21tYW5kIG5hbWU9ImRpc2NhcmQiIC8+CisKKwk8Y29tbWFuZCBuYW1lPSJlbHNpZiI+CisJCTxwYXJhbWV0ZXIgdHlwZT0idGVzdCIgbmFtZT0idGVzdCBjb21tYW5kIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImJsb2NrIiAvPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9ImVsc2UiPgorCQk8cGFyYW1ldGVyIHR5cGU9ImJsb2NrIiAvPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9ImlmIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJ0ZXN0IiBuYW1lPSJ0ZXN0IGNvbW1hbmQiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0iYmxvY2siIC8+CisJPC9jb21tYW5kPgorCisJPGNvbW1hbmQgbmFtZT0ia2VlcCIgLz4KKworCTxjb21tYW5kIG5hbWU9InJlZGlyZWN0Ij4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmciIG5hbWU9ImFkZHJlc3Mgc3RyaW5nIiAvPgorCTwvY29tbWFuZD4KKworCTxjb21tYW5kIG5hbWU9InJlcXVpcmUiPgorCQk8cGFyYW1ldGVyIHR5cGU9InJlcXVpcmVzdHJpbmdzIiBuYW1lPSJyZXF1aXJlIHN0cmluZyIgLz4KKwk8L2NvbW1hbmQ+CisKKwk8Y29tbWFuZCBuYW1lPSJzdG9wIiAvPgorCisKKwk8dGVzdCBuYW1lPSJhZGRyZXNzIj4KKwkJPHBhcmFtZXRlciB0eXBlPSJtYXRjaHR5cGUiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImNvbXBhcmF0b3IiIG9jY3VycmVuY2U9Im9wdGlvbmFsIiAvPgorCQk8cGFyYW1ldGVyIHR5cGU9ImFkZHJlc3NwYXJ0IiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJoZWFkZXIgbGlzdCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJrZXkgbGlzdCIgLz4KKwk8L3Rlc3Q+CisKKwk8dGVzdCBuYW1lPSJhbGxvZiI+CisJCTxwYXJhbWV0ZXIgdHlwZT0idGVzdGxpc3QiIG5hbWU9InRlc3QiIC8+CisJPC90ZXN0PgorCisJPHRlc3QgbmFtZT0iYW55b2YiPgorCQk8cGFyYW1ldGVyIHR5cGU9InRlc3RsaXN0IiBuYW1lPSJ0ZXN0IiAvPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImV4aXN0cyI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0iaGVhZGVyIG5hbWVzIiAvPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9ImZhbHNlIiAvPgorCQorCTx0ZXN0IG5hbWU9ImhlYWRlciI+CisJCTxwYXJhbWV0ZXIgdHlwZT0ibWF0Y2h0eXBlIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJjb21wYXJhdG9yIiBvY2N1cnJlbmNlPSJvcHRpb25hbCIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJzdHJpbmdsaXN0IiBuYW1lPSJoZWFkZXIgbmFtZXMiIC8+CisJCTxwYXJhbWV0ZXIgdHlwZT0ic3RyaW5nbGlzdCIgbmFtZT0ia2V5IGxpc3QiIC8+CisJPC90ZXN0PgorCisJPHRlc3QgbmFtZT0ibm90Ij4KKwkJPHBhcmFtZXRlciB0eXBlPSJ0ZXN0IiAvPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9InNpemUiPgorCQk8cGFyYW1ldGVyIHR5cGU9InRhZyIgcmVnZXg9IihvdmVyfHVuZGVyKSIgLz4KKwkJPHBhcmFtZXRlciB0eXBlPSJudW1iZXIiIG5hbWU9ImxpbWl0IiAvPgorCTwvdGVzdD4KKworCTx0ZXN0IG5hbWU9InRydWUiIC8+CisKKzwva2V5d29yZHM+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYXV0b2xvYWQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2F1dG9sb2FkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTFjNTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2F1dG9sb2FkLnBocApAQCAtMCwwICsxLDcgQEAKKzw/cGhwCisKKy8vIGF1dG9sb2FkLnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCisKK3JlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb21wb3Nlci9hdXRvbG9hZF9yZWFsLnBocCc7CisKK3JldHVybiBDb21wb3NlckF1dG9sb2FkZXJJbml0ODczNDY0ZTRiZDk2NWEzMTY4ZjEzMzI0OGIxYjIxOGI6OmdldExvYWRlcigpOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2Jpbi9taW5pZnljc3MgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYmluL21pbmlmeWNzcwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwLi4wNGY2MGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2Jpbi9taW5pZnljc3MKQEAgLTAsMCArMSBAQAorLi4vbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2Jpbi9taW5pZnljc3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYmluL21pbmlmeWpzIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2Jpbi9taW5pZnlqcwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwLi42MTEyNDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2Jpbi9taW5pZnlqcwpAQCAtMCwwICsxIEBACisuLi9tYXR0aGlhc211bGxpZS9taW5pZnkvYmluL21pbmlmeWpzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL0NIQU5HRUxPRy5tZCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9DSEFOR0VMT0cubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI4N2YzZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9DSEFOR0VMT0cubWQKQEAgLTAsMCArMSwyMDAgQEAKK0NIQU5HRUxPRyBmb3IgMS54Cis9PT09PT09PT09PT09PT09PQorCitUaGlzIGNoYW5nZWxvZyByZWZlcmVuY2VzIHRoZSByZWxldmFudCBjaGFuZ2VzIChidWcgYW5kIHNlY3VyaXR5IGZpeGVzKSBkb25lCitpbiAxLnggbWlub3IgdmVyc2lvbnMuCisKK1RvIHNlZSB0aGUgZmlsZXMgY2hhbmdlZCBmb3IgYSBnaXZlbiBidWcsIGdvIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9pc3N1ZXMvIyMjIHdoZXJlICMjIyBpcyB0aGUgYnVnIG51bWJlcgorVG8gZ2V0IHRoZSBkaWZmIGJldHdlZW4gdHdvIHZlcnNpb25zLCBnbyB0byBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvY29tcGFyZS92MS4wLi4udjEuMQorVG8gZ2V0IHRoZSBkaWZmIGZvciBhIHNwZWNpZmljIGNoYW5nZSwgZ28gdG8gaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL2NvbW1pdC9YWFggd2hlcmUgWFhYIGlzIHRoZSBjaGFuZ2UgaGFzaAorCisqIDEuMTAuMCAoMjAxNy0xMS0xNSkKKworICBQUjogaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvODg5CisKKyAgKiAjNzk1IC0gW2ZlYXR1cmVdIGFkZGVkIHByb3RlY3RlZCBjcmVhdGVQYXlsb2FkIG1ldGhvZCB0byBhbGxvdyBlYXNpZXIgY3VzdG9taXphdGlvbiBvZiBKV1QgcGF5bG9hZAorICAqICM4MDcgLSBbcmVmYWN0b3JdIHNpbXBsaWZpZXMgVXNlckluZm9Db250cm9sbGVyIGNvbnN0cnVjdG9yCisgICogIzgxNCAtIFtkb2NzXSBBZGRzIGh0dHBzIHRvIFJFQURNRSBsaW5rCisgICogIzgyNyAtIFt0ZXN0aW5nXSBFeHBsaWNpdGx5IHB1bGxzIGluIHBocHVuaXQgNAorICAqICM4MjggLSBbZG9jc10gUEhQRG9jIGltcHJvdmVtZW50cyBhbmQgdHlwZSBoaW50aW5nIG9mIHZhcmlhYmxlcy4KKyAgKiAjODI5IC0gW2J1Z10gRml4IENPUlMgaXNzdWUgZm9yIHJldm9raW5nIGFuZCByZXF1ZXN0aW5nIGFuIGFjY2VzcyB0b2tlbgorICAqICM4NjkgLSBbdGVzdGluZ10gUmVtb3ZlIHBocCA1LjMgZnJvbSB0cmF2aXMgYW5kIHVzZSB2ZW5kb3JlZCBwaHB1bml0CisgICogIzgzNCAtIFtmZWF0dXJlXSB1c2UgcmFuZG9tX2J5dGVzIGlmIGF2YWlsYWJsZQorICAqICM4NTEgLSBbZG9jc10gRml4IFBIUERvYworICAqICM4NzIgLSBbYnVnXSBGaXggY291bnQoKSBlcnJvciBvbiBQSFAgNy4yCisgICogIzg3MyAtIFt0ZXN0aW5nXSBhZGRzIHBocCA3LjIgdG8gdHJhdmlzCisgICogIzc5NCAtIFtkb2NzXSBGaXggdHlwbyBpbiBjb21wb3Nlci5qc29uCisgICogIzg4NSAtIFt0ZXN0aW5nXSBVc2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UgaW5zdGVhZCBvZiBQSFBVbml0X0ZyYW1ld29ya19UZXN0Q2FzZQorCisqIDEuOS4wICgyMDE3LTAxLTA2KQorCisgIFBSOiBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvcHVsbC83ODgKKworICAqIGJ1ZyAjNjQ1IC0gQWxsb3cgbnVsbCBmb3IgY2xpZW50X3NlY3JldAorICAqIGJ1ZyAjNjUxIC0gRml4IGJ1ZyBpbiBpc1B1YmxpY0NsaWVudCBvZiBDYXNzYW5kcmEgU3RvcmFnZQorICAqIGJ1ZyAjNjcwIC0gQnVnIGluIGNsaWVudCdzIHNjb3BlIHJlc3RyaWN0aW9uCisgICogYnVnICM2NzIgLSBJbXBsZW1lbnRlZCBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIHBhc3N3b3JkIGhhc2hpbmcgYWxnb3JpdGhtCisgICogYnVnICM2OTggLSBGaXggVG9rZW4gUmVzcG9uc2UncyBDb250ZW50LVR5cGUgdG8gYXBwbGljYXRpb24vanNvbgorICAqIGJ1ZyAjNzI5IC0gRW5zdXJlcyB1bnNldEFjY2Vzc1Rva2VuIGFuZCB1bnNldFJlZnJlc2hUb2tlbiByZXR1cm4gYSBib29sCisgICogYnVnICM3NDkgLSBGaXggVXNlckNsYWltcyBmb3IgQ29kZUlkVG9rZW4KKyAgKiBidWcgIzc4NCAtIFJGQzY3NTAgY29tcGF0aWJpbGl0eQorICAqIGJ1ZyAjNzc2IC0gRml4ICJyZWRpcmVjdF91cmlfbWlzbWF0Y2giIGZvciBVUklzIHdpdGggZW5jb2RlZCBjaGFyYWN0ZXJzCisgICogYnVnICM3NTkgLSBubyBhY2Nlc3MgdG9rZW4gc3VwcGxpZWQgdG8gcmVzb3VyY2UgY29udHJvbGxlciByZXN1bHRzIGluIGVtcHR5IHJlcXVlc3QgYm9keQorICAqIGJ1ZyAjNzczIC0gVXNlIE9wZW5TU0wgcmFuZG9tIG1ldGhvZCBiZWZvcmUgYXR0ZW1wdGluZyBNY3J5cHQncy4KKyAgKiBidWcgIzc5MCAtIEFkZCBtb25nbyBkYgorCisqIDEuOC4wICgyMDE1LTA5LTE4KQorCisgIFBSOiBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvcHVsbC82NDMKKworICAqIGJ1ZyAjNTk0IC0gYWRkcyBqdGkKKyAgKiBidWcgIzU5OCAtIGZpeGVzIGxpZmV0aW1lIGNvbmZpZ3VyYXRpb25zIGZvciBKV1RzCisgICogYnVnICM2MzQgLSBmaXhlcyB0cmF2aXMgYnVpbGRzLCB1cGdyYWRlIHRvIGNvbnRhaW5lcnMKKyAgKiBidWcgIzU4NiAtIHN1cHBvcnQgZm9yIHJldm9raW5nIHRva2VucworICAqIGJ1ZyAjNjM2IC0gQWRkcyBGaXJlYmFzZUpXVCBicmlkZ2UKKyAgKiBidWcgIzYzOSAtIE1vbmdvIEhIVk0gY29tcGF0aWJpbGl0eQorCisqIDEuNy4wICgyMDE1LTA0LTIzKQorCisgIFBSOiBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvcHVsbC81NzIKKworICAqIGJ1ZyAjNTAwIC0gUERPIGZldGNoIG1vZGUgY2hhbmdlZCBmcm9tIEZFVENIX0JPVEggdG8gRkVUQ0hfQVNTT0MKKyAgKiBidWcgIzUwOCAtIENhc2UgaW5zZW5zaXRpdmUgZm9yIEJlYXJlciB0b2tlbiBoZWFkZXIgbmFtZSAgYmE3MTZkNAorICAqIGJ1ZyAjNTEyIC0gdmFsaWRhdGVSZWRpcmVjdFVyaSBpcyBub3cgcHVibGljCisgICogYnVnICM1MzAgLSBBZGQgUHVibGljS2V5SW50ZXJmYWNlLCBVc2VyQ2xhaW1zSW50ZXJmYWNlIHRvIENhc3NhbmRyYSBTdG9yYWdlCisgICogYnVnICM1MDUgLSBEeW5hbW9EQiBzdG9yYWdlIGZpeGVzCisgICogYnVnICM1NTYgLSBhZGRzICJjb2RlIGlkX3Rva2VuIiByZXR1cm4gdHlwZSB0byBvcGVuaWQgY29ubmVjdAorICAqIGJ1ZyAjNTYzIC0gSW5jbHVkZSAiaXNzdWVyIiBjb25maWcga2V5IGZvciBKd3RBY2Nlc3NUb2tlbgorICAqIGJ1ZyAjNTY0IC0gRml4ZXMgSldUIHZ1bG5lcmFiaWxpdHkKKyAgKiBidWcgIzU3MSAtIEFkZGVkIHVuc2V0X3JlZnJlc2hfdG9rZW5fYWZ0ZXJfdXNlIG9wdGlvbgorCisqIDEuNiAoMjAxNS0wMS0xNikKKworICBQUjogaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvNDk2CisKKyAgKiBidWcgNDM3IC0gcmVuYW1lcyBDcnlwdG9Ub2tlbiB0byBKd3RBY2Nlc3NUb2tlbiAvIHVzZV9jcnlwdG9fdG9rZW5zIHRvIHVzZV9qd3RfYWNjZXNzX3Rva2VucworICAqIGJ1ZyA0NDcgLSBBZGRzIGEgQ291Y2hiYXNlIHN0b3JhZ2UgaW1wbGVtZW50YXRpb24KKyAgKiBidWcgNDYwIC0gUmVuYW1lIEpXVCBjbGFpbXMgdG8gbWF0Y2ggc3BlYworICAqIGJ1ZyA0NzAgLSBvcmRlciBkb2VzIG5vdCBtYXR0ZXIgZm9yIG11bHRpLXZhbHVlZCByZXNwb25zZSB0eXBlcworICAqIGJ1ZyA0NzEgLSBNYWtlIHZhbGlkYXRlQXV0aG9yaXplUmVxdWVzdCBhdmFpbGFibGUgZm9yIFBPU1QgaW4gYWRkaXRpb24gdG8gR0VUCisgICogYnVnIDQ3NSAtIEFkZHMgSlRJIHRhYmxlIGRlZmluaXRpaW9uCisgICogYnVnIDQ4MSAtIGJldHRlciByYW5kb21uZXNzIGZvciBnZW5lcmF0aW5nIGFjY2VzcyB0b2tlbnMKKyAgKiBidWcgNDgwIC0gVXNlIGhhc2hfZXF1YWxzKCkgZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gKHByZXZlbnRzIHJlbW90ZSB0aW1pbmcgYXR0YWNrcykKKyAgKiBidWdzIDQ4OSwgNDkxLCA0OTggLSBtaXNjIG90aGVyIGZpeGVzCisKKyogMS41ICgyMDE0LTA4LTI3KQorCisgIFBSOiBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvcHVsbC80NDYKKworICAqIGJ1ZyAjMzk5IC0gQWRkIER5bmFtb0RCIFN1cHBvcnQKKyAgKiBidWcgIzQwNCAtIHJlbmFtZWQgZXJyb3IgbmFtZSBmb3IgbWFsZm9ybWVkL2V4cGlyZWQgdG9rZW5zCisgICogYnVnICM0MTIgLSBPcGVuaWQgY29ubmVjdDogZml4ZXMgZm9yIGNsYWltcyB3aXRoIG1vcmUgdGhhbiBvbmUgc2NvcGUgLyBBZGQgc3VwcG9ydCBmb3IgdGhlIHByb21wdCBwYXJhbWV0ZXIgKCdjb25zZW50JyBhbmQgJ25vbmUnKQorICAqIGJ1ZyAjNDExIC0gZml4ZXMgeG1sIG91dHB1dAorICAqIGJ1ZyAjNDEzIC0gZml4ZXMgaW52YWxpZCBmb3JtYXQgZXJyb3IKKyAgKiBidWcgIzQwMSAtIGZpeGVzIGNvZGUgc3RhbmRhcmRzIC8gd2hpdGVzcGFjZQorICAqIGJ1ZyAjMzU0IC0gYnVuZGxlcyBQRE8gU1FMIHdpdGggdGhlIGxpYnJhcnkKKyAgKiBbQkNdIGJ1ZyAjMzk3IC0gcmVmcmVzaCB0b2tlbnMgc2hvdWxkIG5vdCBiZSBlbmNyeXB0ZWQKKyAgKiBidWcgIzQyMyAtIG1ha2VzICJzY29wZSIgb3B0aW9uYWwgZm9yIHJlZnJlc2ggdG9rZW4gc3RvcmFnZQorCisqIDEuNCAoMjAxNC0wNi0xMikKKworICBQUjogaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvMzkyCisKKyAgKiBidWcgIzE4OSBTdG9yYWdlXFBETyAtIGFsbG93cyBEU04gc3RyaW5nIGluIGNvbnN0cnVjdG9yCisgICogYnVnICMyMzMgQmVhcmVyIFRva2VucyAtIGFsbG93cyB0b2tlbiBpbiByZXF1ZXN0IGJvZHkgZm9yIFBVVCByZXF1ZXN0cworICAqIGJ1ZyAjMzQ2IEZpeGVzIG9wZW5fYmFzZWRpciB3YXJuaW5nCisgICogYnVnICMzNTEgQWRkcyBPcGVuSUQgQ29ubmVjdCBzdXBwb3J0CisgICogYnVnICMzNTUgQWRkcyBwaHAgNS42IGFuZCBISFZNIHRvIHRyYXZpcy5jaSB0ZXN0aW5nCisgICogW0JDXSBidWcgIzM1OCBBZGRzIGBnZXRRdWVyeVN0cmluZ0lkZW50aWZpZXIoKWAgdG8gdGhlIEdyYW50VHlwZSBpbnRlcmZhY2UKKyAgKiBidWcgIzM2MyBFbmNyeXB0aW9uXEpXVCAtIEFsbG93cyBmb3Igc3ViY2xhc3NpbmcgSldUIEhlYWRlcnMKKyAgKiBidWcgIzM0OSBCZWFyZXIgVG9rZW5zIC0gYWRkcyByZXF1ZXN0SGFzVG9rZW4gbWV0aG9kIGZvciB3aGVuIGFjY2VzcyB0b2tlbnMgYXJlIG9wdGlvbmFsCisgICogYnVnICMzMDEgRW5jcnlwdGlvblxKV1QgLSBmaXhlcyB1cmxTYWZlQjY0RW5jb2RlKCk6IGVuc3VyZXMgbmV3bGluZXMgYXJlIHJlcGxhY2VkIGFzIGV4cGVjdGVkCisgICogYnVnICMzMjMgUmVzb3VyY2VDb250cm9sbGVyIC0gY2xpZW50X2lkIGlzIG5vIGxvbmdlciByZXF1aXJlZCB0byBiZSByZXR1cm5lZCB3aGVuIGNhbGxpbmcgZ2V0QWNjZXNzVG9rZW4KKyAgKiBidWcgIzM2NyBTdG9yYWdlXFBETyAtIGFkZHMgUG9zdGdyZXMgc3VwcG9ydAorICAqIGJ1ZyAjMzY4IEFjY2VzcyBUb2tlbnMgLSB1c2UgbWNyeXB0X2NyZWF0ZV9pdiBvciBvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMgdG8gY3JlYXRlIHRva2VuIHN0cmluZworICAqIGJ1ZyAjMzc2IFJlcXVlc3QgLSBhbGxvd3MgY2FzZSBpbnNlbnNpdGl2ZSBoZWFkZXJzCisgICogYnVnICMzODQgU3RvcmFnZVxQRE8gLSBjYW4gcGFzcyBpbiBQRE8gb3B0aW9ucyBpbiBjb25zdHJ1Y3RvciBvZiBQRE8gc3RvcmFnZQorICAqIG1pc2MgZml4ZXMgIzM2MSwgIzI5MiwgIzM3MywgIzM3NCwgIzM3OSwgIzM5NgorKiAxLjMgKDIwMTQtMDItMjcpCisKKyAgUFI6IGh0dHBzOi8vZ2l0aHViLmNvbS9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9wdWxsLzMyNQorCisgICogYnVnICMzMTEgYWRkcyBjYXNzYW5kcmEgc3RvcmFnZQorICAqIGJ1ZyAjMjk4IGZpeGVzIHJlc3BvbnNlIGNvZGUgZm9yIHVzZXIgY3JlZGVudGlhbHMgZ3JhbnQgdHlwZQorICAqIGJ1ZyAjMzE4IGFkZHMgJ3VzZV9jcnlwdG9fdG9rZW5zJyBjb25maWcgdG8gU2VydmVyIGNsYXNzIGZvciBiZXR0ZXIgRFgKKyAgKiBbQkNdIGJ1ZyAjMzIwIHBhc3MgY2xpZW50X2lkIHRvIGdldERlZmF1bHRTY29wZQorICAqIGJ1ZyAjMzI0IGJldHRlciBmZWVkYmFjayB3aGVuIHJ1bm5pbmcgdGVzdHMKKyAgKiBidWcgIzMzNSBhZGRzIHN1cHBvcnQgZm9yIG5vbi1leHBpcmluZyByZWZyZXNoIHRva2VucworICAqIGJ1ZyAjMzMzIGZpeGVzIFBkbyBzdG9yYWdlIGZvciBnZXRDbGllbnRLZXkKKyAgKiBidWcgIzMzNiBmaXhlcyBSZWRpcyBzdG9yYWdlIGZvciBleHBpcmVBdXRob3JpemF0aW9uQ29kZQorCisqIDEuMyAoMjAxNC0wMi0yNykKKworICBQUjogaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvMzI1CisKKyAgKiBidWcgIzMxMSBhZGRzIGNhc3NhbmRyYSBzdG9yYWdlCisgICogYnVnICMyOTggZml4ZXMgcmVzcG9uc2UgY29kZSBmb3IgdXNlciBjcmVkZW50aWFscyBncmFudCB0eXBlCisgICogYnVnICMzMTggYWRkcyAndXNlX2NyeXB0b190b2tlbnMnIGNvbmZpZyB0byBTZXJ2ZXIgY2xhc3MgZm9yIGJldHRlciBEWAorICAqIGJ1ZyAjMzIwIHBhc3MgY2xpZW50X2lkIHRvIGdldERlZmF1bHRTY29wZQorICAqIGJ1ZyAjMzI0IGJldHRlciBmZWVkYmFjayB3aGVuIHJ1bm5pbmcgdGVzdHMKKyAgKiBidWcgIzMzNSBhZGRzIHN1cHBvcnQgZm9yIG5vbi1leHBpcmluZyByZWZyZXNoIHRva2VucworICAqIGJ1ZyAjMzMzIGZpeGVzIFBkbyBzdG9yYWdlIGZvciBnZXRDbGllbnRLZXkKKyAgKiBidWcgIzMzNiBmaXhlcyBSZWRpcyBzdG9yYWdlIGZvciBleHBpcmVBdXRob3JpemF0aW9uQ29kZQorCisqIDEuMiAoMjAxNC0wMS0wMykKKworICBQUjogaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvMjg4CisKKyAgKiBidWcgIzI4NSBjaGFuZ2VkIHJlc3BvbnNlIGhlYWRlciBmcm9tIDIwMCB0byA0MDEgd2hlbiBlbXB0eSB0b2tlbiByZWNlaXZlZAorICAqIGJ1ZyAjMjg2IGFkZHMgZG9jdW1lbnRhdGlvbiBhbmQgbGlua3MgdG8gc3BlYyBmb3Igbm90IGluY2x1ZGluZyBlcnJvciBtZXNzYWdlcyB3aGVuIG5vIHRva2VuIGlzIHN1cHBsaWVkCisgICogYnVnICMyODAgZW5zdXJlcyBQSFAgd2FybmluZ3MgZG8gbm90IGdldCB0aHJvd24gYXMgYSByZXN1bHQgb2YgYW4gaW52YWxpZCBhcmd1bWVudCB0byAkand0LT5kZWNvZGUoKQorICAqIGJ1ZyAjMjc5IHByZWRpcyB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzCisgICogYnVnICMyNzcgU2VjdXJpbmcgSlMgV2ViQXBwIGNsaWVudCBzZWNyZXQgdy8gcGFzc3dvcmQgZ3JhbnQgdHlwZQorCisqIDEuMSAoMjAxMy0xMi0xNykKKworICBQUjogaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvMjc2CisKKyAgKiBidWcgIzI3OCBhZGRzIHJlZnJlc2ggdG9rZW4gY29uZmlndXJhdGlvbiB0byBTZXJ2ZXIgY2xhc3MKKyAgKiBidWcgIzI3NCBTdXBwbHlpbmcgYSBudWxsIGNsaWVudF9pZCBhbmQgY2xpZW50X3NlY3JldCBncmFudHMgQVBJIGFjY2VzcworICAqIGJ1ZyAjMjQ0IFtNb25nb1N0b3JhZ2VdIE1vcmUgZGV0YWlsZWQgaW1wbGVtZW50YXRpb24gaW5mbworICAqIGJ1ZyAjMjY4IEltcGxlbWVudCBqdGkgZm9yIEpXVCBCZWFyZXIgdG9rZW5zIHRvIHByZXZlbnQgcmVwbGF5IGF0dGFja3MuCisgICogYnVnICMyNjYgUmVtb3ZpbmcgdW51c2VkIGFyZ3VtZW50IHRvIGdldEFjY2Vzc1Rva2VuRGF0YQorICAqIGJ1ZyAjMjQ3IE1ha2UgQmVhcmVyIHRva2VuIHR5cGUgY29uc2lzdGVudAorICAqIGJ1ZyAjMjUzIEZpeGluZyBDcnlwdG9Ub2tlbiByZWZyZXNoIHRva2VuIGxpZmV0aW1lCisgICogYnVnICMyNDYgcmVmYWN0b3JzIHB1YmxpYyBrZXkgbG9naWMgdG8gYmUgbW9yZSBpbnR1aXRpdmUKKyAgKiBidWcgIzI0NSBhZGRzIHN1cHBvcnQgZm9yIEpTT04gY3J5cHRvIHRva2VucworICAqIGJ1ZyAjMjMwIFJlbW92ZSB1bnVzZWQgY29sdW1ucyBpbiBvYXV0aF9jbGllbnRzCisgICogYnVnICMyMTUgbWFrZXMgUmVkaXMgU2NvcGUgU3RvcmFnZSBvYmV5IHRoZSBzYW1lIHBhcmFkaWdtIGFzIFBETworICAqIGJ1ZyAjMjI4IHJlbW92ZXMgc2NvcGUgZ3JvdXAKKyAgKiBidWcgIzIyNyBzcXVlbGNoZXMgb3BlbiBiYXNlZGlyIHJlc3RyaWN0aW9uIGVycm9yCisgICogYnVnICMyMjMgVXBkYXRlZCBkb2NibG9ja3MgZm9yIFJlZnJlc2hUb2tlbkludGVyZmFjZS5waHAKKyAgKiBidWcgIzIyNCBBZGRzIHByb3RlY3RlZCBwcm9wZXJ0aWVzCisgICogYnVnICMyMTcgSW1wbGVtZW50IFNjb3BlSW50ZXJmYWNlIGZvciBQRE8sIFJlZGlzCisKKyogMS4wICgyMDEzLTA4LTEyKQorCisgICogYnVnICMyMDMgQWRkIHJlZGlyZWN0XF9zdGF0dXNfY29kZSBjb25maWcgcGFyYW0gZm9yIEF1dGhvcml6ZUNvbnRyb2xsZXIKKyAgKiBidWcgIzIwNSBlbnN1cmVzIHVubmVjZXNzYXJ5ID8gaXMgbm90IHNldCB3aGVuICAqKiBidWcKKyAgKiBidWcgIzIwNCBGaXhlZCBjYWxsIHRvIExvZ2ljRXhjZXB0aW9uCisgICogYnVnICMyMDIgQWRkIGV4cGxvZGUgdG8gY2hlY2tSZXN0cmljdGVkR3JhbnQgaW4gUERPIFN0b3JhZ2UKKyAgKiBidWcgIzE5NyBhZGRzIHN1cHBvcnQgZm9yICdmYWxzZScgZGVmYXVsdCBzY29wZSAgKiogYnVnCisgICogYnVnICMxOTIgcmVmZXJlbmNlIGVycm9ycyBhbmQgYWRkcyB0ZXN0cworICAqIGJ1ZyAjMTk0IG1ha2VzIHNvbWUgYXBwcm9wcmlhdGUgcHJvcGVydGllcyAgKiogYnVnCisgICogYnVnICMxOTEgcGFzc2VzIGNvbmZpZyB0byBIdHRwQmFzaWMKKyAgKiBidWcgIzE5MCB2YWxpZGF0ZXMgY2xpZW50IGNyZWRlbnRpYWxzIGJlZm9yZSAgKiogYnVnCisgICogYnVnICMxNzEgRml4IHdyb25nIHJlZGlyZWN0IGZvbGxvd2luZyBhdXRob3JpemF0aW9uIHN0ZXAKKyAgKiBidWcgIzE4NyBjbGllbnRfaWQgaXMgbm93IHBhc3NlZCB0byBnZXREZWZhdWx0U2NvcGUoKS4KKyAgKiBidWcgIzE3NiBSZXF1aXJlIHJlZnJlc2hfdG9rZW4gaW4gZ2V0UmVmcmVzaFRva2VuIHJlc3BvbnNlCisgICogYnVnICMxNzQgbWFrZSB1c2VyXF9pZCBub3QgcmVxdWlyZWQgZm9yIHJlZnJlc2hfdG9rZW4gZ3JhbnQKKyAgKiBidWcgIzE3MyBEdXBsaWNhdGlvbiBpbiBKd3RCZWFyZXIgR3JhbnQKKyAgKiBidWcgIzE2OCB1c2VyXF9pZCBub3QgcmVxdWlyZWQgZm9yIGF1dGhvcml6YXRpb25fY29kZSBncmFudAorICAqIGJ1ZyAjMTMzIGhhcmRlbnMgZGVmYXVsdCBzZWN1cml0eSBmb3IgdXNlciBvYmplY3QKKyAgKiBidWcgIzE2MyBhbGxvd3MgcmVkaXJlY3RcX3VyaSBvbiBhdXRob3JpemF0aW9uX2NvZGUgdG8gYmUgTlVMTCBpbiBkb2NzIGV4YW1wbGUKKyAgKiBidWcgIzE2MiBhZGRzIGdldFRva2VuIG9uIFJlc291cmNlQ29udHJvbGxlciBmb3IgY29udmVuaWVuY2UKKyAgKiBidWcgIzE2MSBmaXhlcyBmYXRhbCBlcnJvcgorICAqIGJ1ZyAjMTYzIEludmFsaWQgcmVkaXJlY3RfdXJpIGhhbmRsaW5nCisgICogYnVnICMxNTYgdXNlclxfaWQgaW4gT0F1dGgyXF9TdG9yYWdlX0F1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlOjpnZXRBdXRob3JpemF0aW9uQ29kZSgpIHJlc3BvbnNlCisgICogYnVnICMxNTcgRml4IGZvciBleHRlbmRpbmcgYWNjZXNzIGFuZCByZWZyZXNoIHRva2VucworICAqIGJ1ZyAjMTU0IFJlc3BvbnNlSW50ZXJmYWNlOiBnZXRQYXJhbWV0ZXIgbWV0aG9kIGlzIHVzZWQgaW4gdGhlIGxpYnJhcnkgYnV0IG5vdCBkZWZpbmVkIGluIHRoZSBpbnRlcmZhY2UKKyAgKiBidWcgIzE0OCBBZGQgbW9yZSBkZXRhaWwgdG8gZXhhbXBsZXMgaW4gUmVhZG1lLm1kCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvTElDRU5TRSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3ZWNlODQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvTElDRU5TRQpAQCAtMCwwICsxLDIxIEBACitUaGUgTUlUIExpY2Vuc2UKKworQ29weXJpZ2h0IChjKSAyMDE0IEJyZW50IFNoYWZmZXIKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvUkVBRE1FLm1kIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTc3NDNkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL1JFQURNRS5tZApAQCAtMCwwICsxLDggQEAKK29hdXRoMi1zZXJ2ZXItcGhwCis9PT09PT09PT09PT09PT09PQorCitbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocCkKKworWyFbVG90YWwgRG93bmxvYWRzXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL2Rvd25sb2Fkcy5wbmcpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHApCisKK1ZpZXcgdGhlIFtjb21wbGV0ZSBkb2N1bWVudGF0aW9uXShodHRwczovL2JzaGFmZmVyLmdpdGh1Yi5pby9vYXV0aDItc2VydmVyLXBocC1kb2NzLykKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9jb21wb3Nlci5qc29uIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL2NvbXBvc2VyLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjcyZDIwMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9jb21wb3Nlci5qc29uCkBAIC0wLDAgKzEsMzYgQEAKK3sKKyAgICAibmFtZSI6ICJic2hhZmZlci9vYXV0aDItc2VydmVyLXBocCIsCisgICAgImRlc2NyaXB0aW9uIjoiT0F1dGgyIFNlcnZlciBmb3IgUEhQIiwKKyAgICAia2V5d29yZHMiOlsib2F1dGgiLCJvYXV0aDIiLCJhdXRoIl0sCisgICAgInR5cGUiOiJsaWJyYXJ5IiwKKyAgICAibGljZW5zZSI6Ik1JVCIsCisgICAgImF1dGhvcnMiOlsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiJCcmVudCBTaGFmZmVyIiwKKyAgICAgICAgICAgICJlbWFpbCI6ICJic2hhZnNAZ21haWwuY29tIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6Imh0dHA6Ly9icmVudGVydGFpbm1lbnQuY29tIgorICAgICAgICB9CisgICAgXSwKKyAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAiLAorICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgInBzci0wIjogeyAiT0F1dGgyIjogInNyYy8iIH0KKyAgICB9LAorICAgICJyZXF1aXJlIjp7CisgICAgICAgICJwaHAiOiI+PTUuMy45IgorICAgIH0sCisgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIl40LjAiLAorICAgICAgICAiYXdzL2F3cy1zZGstcGhwIjogIn4yLjgiLAorICAgICAgICAiZmlyZWJhc2UvcGhwLWp3dCI6ICJ+Mi4yIiwKKyAgICAgICAgInByZWRpcy9wcmVkaXMiOiAiZGV2LW1hc3RlciIsCisgICAgICAgICJ0aG9iYnMvcGhwY2Fzc2EiOiAiZGV2LW1hc3RlciIsCisgICAgICAgICJtb25nb2RiL21vbmdvZGIiOiAiXjEuMSIKKyAgICB9LAorICAgICJzdWdnZXN0IjogeworICAgICAgICAicHJlZGlzL3ByZWRpcyI6ICJSZXF1aXJlZCB0byB1c2UgUmVkaXMgc3RvcmFnZSIsCisgICAgICAgICJ0aG9iYnMvcGhwY2Fzc2EiOiAiUmVxdWlyZWQgdG8gdXNlIENhc3NhbmRyYSBzdG9yYWdlIiwKKyAgICAgICAgImF3cy9hd3Mtc2RrLXBocCI6ICJ+Mi44IGlzIHJlcXVpcmVkIHRvIHVzZSBEeW5hbW9EQiBzdG9yYWdlIiwKKyAgICAgICAgImZpcmViYXNlL3BocC1qd3QiOiAifjIuMiBpcyByZXF1aXJlZCB0byB1c2UgSldUIGZlYXR1cmVzIiwKKyAgICAgICAgIm1vbmdvZGIvbW9uZ29kYiI6ICJeMS4xIGlzIHJlcXVpcmVkIHRvIHVzZSBNb25nb0RCIHN0b3JhZ2UiCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQXV0b2xvYWRlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9BdXRvbG9hZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWMwOGNiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQXV0b2xvYWRlci5waHAKQEAgLTAsMCArMSw1NCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMjsKKworLyoqCisgKiBBdXRvbG9hZHMgT0F1dGgyIGNsYXNzZXMKKyAqCisgKiBAYXV0aG9yICAgIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICogQGxpY2Vuc2UgICBNSVQgTGljZW5zZQorICovCitjbGFzcyBBdXRvbG9hZGVyCit7CisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICRkaXI7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRpciA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkZGlyKSkgeworICAgICAgICAgICAgJGRpciA9IGRpcm5hbWUoX19GSUxFX18pLicvLi4nOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5kaXIgPSAkZGlyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVycyBPQXV0aDJcQXV0b2xvYWRlciBhcyBhbiBTUEwgYXV0b2xvYWRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJlZ2lzdGVyKCRkaXIgPSBudWxsKQorICAgIHsKKyAgICAgICAgaW5pX3NldCgndW5zZXJpYWxpemVfY2FsbGJhY2tfZnVuYycsICdzcGxfYXV0b2xvYWRfY2FsbCcpOworICAgICAgICBzcGxfYXV0b2xvYWRfcmVnaXN0ZXIoYXJyYXkobmV3IHNlbGYoJGRpciksICdhdXRvbG9hZCcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5kbGVzIGF1dG9sb2FkaW5nIG9mIGNsYXNzZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGFzcyAtIEEgY2xhc3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4gICAgICAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2xhc3MgaGFzIGJlZW4gbG9hZGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGF1dG9sb2FkKCRjbGFzcykKKyAgICB7CisgICAgICAgIGlmICgwICE9PSBzdHJwb3MoJGNsYXNzLCAnT0F1dGgyJykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmaWxlX2V4aXN0cygkZmlsZSA9ICR0aGlzLT5kaXIuJy8nLnN0cl9yZXBsYWNlKCdcXCcsICcvJywgJGNsYXNzKS4nLnBocCcpKSB7CisgICAgICAgICAgICByZXF1aXJlICRmaWxlOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ2xpZW50QXNzZXJ0aW9uVHlwZS9DbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0NsaWVudEFzc2VydGlvblR5cGUvQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmExNjdkYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0NsaWVudEFzc2VydGlvblR5cGUvQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSwyOCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDbGllbnRBc3NlcnRpb25UeXBlOworCit1c2UgT0F1dGgyXFJlcXVlc3RJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlSW50ZXJmYWNlOworCisvKioKKyAqIEludGVyZmFjZSBmb3IgYWxsIE9BdXRoMiBDbGllbnQgQXNzZXJ0aW9uIFR5cGVzCisgKi8KK2ludGVyZmFjZSBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogVmFsaWRhdGUgdGhlIE9BdXRoIHJlcXVlc3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZQorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGNsaWVudCBpZAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRJZCgpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ2xpZW50QXNzZXJ0aW9uVHlwZS9IdHRwQmFzaWMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ2xpZW50QXNzZXJ0aW9uVHlwZS9IdHRwQmFzaWMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNjEyMDMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9DbGllbnRBc3NlcnRpb25UeXBlL0h0dHBCYXNpYy5waHAKQEAgLTAsMCArMSwxMzkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZTsKKwordXNlIE9BdXRoMlxTdG9yYWdlXENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKK3VzZSBMb2dpY0V4Y2VwdGlvbjsKKworLyoqCisgKiBWYWxpZGF0ZSBhIGNsaWVudCB2aWEgSHR0cCBCYXNpYyBhdXRoZW50aWNhdGlvbgorICoKKyAqIEBhdXRob3IgICAgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2NsYXNzIEh0dHBCYXNpYyBpbXBsZW1lbnRzIENsaWVudEFzc2VydGlvblR5cGVJbnRlcmZhY2UKK3sKKyAgICBwcml2YXRlICRjbGllbnREYXRhOworCisgICAgcHJvdGVjdGVkICRzdG9yYWdlOworICAgIHByb3RlY3RlZCAkY29uZmlnOworCisgICAgLyoqCisgICAgICogQ29uZmlnIGFycmF5ICRjb25maWcgc2hvdWxkIGxvb2sgYXMgZm9sbG93czoKKyAgICAgKiBAY29kZQorICAgICAqICAgICAkY29uZmlnID0gYXJyYXkoCisgICAgICogICAgICAgICAnYWxsb3dfY3JlZGVudGlhbHNfaW5fcmVxdWVzdF9ib2R5JyA9PiB0cnVlLCAvLyB3aGV0aGVyIHRvIGxvb2sgZm9yIGNyZWRlbnRpYWxzIGluIHRoZSBQT1NUIGJvZHkgaW4gYWRkaXRpb24gdG8gdGhlIEF1dGhvcml6ZSBIVFRQIEhlYWRlcgorICAgICAqICAgICAgICAgJ2FsbG93X3B1YmxpY19jbGllbnRzJyAgPT4gdHJ1ZSAgICAgICAgICAgICAgLy8gaWYgdHJ1ZSwgInB1YmxpYyBjbGllbnRzIiAoY2xpZW50cyB3aXRob3V0IGEgc2VjcmV0KSBtYXkgYmUgYXV0aGVudGljYXRlZAorICAgICAqICAgICApOworICAgICAqIEBlbmRjb2RlCisgICAgICoKKyAgICAgKiBAcGFyYW0gQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UgJHN0b3JhZ2UgU3RvcmFnZQorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAkY29uZmlnICBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzZXJ2ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UgJHN0b3JhZ2UsIGFycmF5ICRjb25maWcgPSBhcnJheSgpKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnN0b3JhZ2UgPSAkc3RvcmFnZTsKKyAgICAgICAgJHRoaXMtPmNvbmZpZyA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgJ2FsbG93X2NyZWRlbnRpYWxzX2luX3JlcXVlc3RfYm9keScgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdhbGxvd19wdWJsaWNfY2xpZW50cycgPT4gdHJ1ZSwKKyAgICAgICAgKSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFsaWRhdGUgdGhlIE9BdXRoIHJlcXVlc3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZQorICAgICAqIEByZXR1cm4gYm9vbHxtaXhlZAorICAgICAqIEB0aHJvd3MgTG9naWNFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmICghJGNsaWVudERhdGEgPSAkdGhpcy0+Z2V0Q2xpZW50Q3JlZGVudGlhbHMoJHJlcXVlc3QsICRyZXNwb25zZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNzZXQoJGNsaWVudERhdGFbJ2NsaWVudF9pZCddKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IExvZ2ljRXhjZXB0aW9uKCd0aGUgY2xpZW50RGF0YSBhcnJheSBtdXN0IGhhdmUgImNsaWVudF9pZCIgc2V0Jyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlzc2V0KCRjbGllbnREYXRhWydjbGllbnRfc2VjcmV0J10pIHx8ICRjbGllbnREYXRhWydjbGllbnRfc2VjcmV0J10gPT0gJycpIHsKKyAgICAgICAgICAgIGlmICghJHRoaXMtPmNvbmZpZ1snYWxsb3dfcHVibGljX2NsaWVudHMnXSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9jbGllbnQnLCAnY2xpZW50IGNyZWRlbnRpYWxzIGFyZSByZXF1aXJlZCcpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoISR0aGlzLT5zdG9yYWdlLT5pc1B1YmxpY0NsaWVudCgkY2xpZW50RGF0YVsnY2xpZW50X2lkJ10pKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2NsaWVudCcsICdUaGlzIGNsaWVudCBpcyBpbnZhbGlkIG9yIG11c3QgYXV0aGVudGljYXRlIHVzaW5nIGEgY2xpZW50IHNlY3JldCcpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2VpZiAoJHRoaXMtPnN0b3JhZ2UtPmNoZWNrQ2xpZW50Q3JlZGVudGlhbHMoJGNsaWVudERhdGFbJ2NsaWVudF9pZCddLCAkY2xpZW50RGF0YVsnY2xpZW50X3NlY3JldCddKSA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9jbGllbnQnLCAnVGhlIGNsaWVudCBjcmVkZW50aWFscyBhcmUgaW52YWxpZCcpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+Y2xpZW50RGF0YSA9ICRjbGllbnREYXRhOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY2xpZW50IGlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudElkKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y2xpZW50RGF0YVsnY2xpZW50X2lkJ107CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgZnVuY3Rpb24gdXNlZCB0byBnZXQgdGhlIGNsaWVudCBjcmVkZW50aWFscyBmcm9tIEhUVFAgYmFzaWMKKyAgICAgKiBhdXRoIG9yIFBPU1QgZGF0YS4KKyAgICAgKgorICAgICAqIEFjY29yZGluZyB0byB0aGUgc3BlYyAoZHJhZnQgMjApLCB0aGUgY2xpZW50X2lkIGNhbiBiZSBwcm92aWRlZCBpbgorICAgICAqIHRoZSBCYXNpYyBBdXRob3JpemF0aW9uIGhlYWRlciAocmVjb21tZW5kZWQpIG9yIHZpYSBHRVQvUE9TVC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKiBAcmV0dXJuIGFycmF5fG51bGwgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIGNsaWVudCBpZGVudGlmaWVyIGFuZCBwYXNzd29yZCwgZm9yIGV4YW1wbGU6CisgICAgICogQGNvZGUKKyAgICAgKiAgICAgcmV0dXJuIGFycmF5KAorICAgICAqICAgICAgICAgImNsaWVudF9pZCIgICAgID0+IENMSUVOVF9JRCwgICAgICAgIC8vIFJFUVVJUkVEIHRoZSBjbGllbnQgaWQKKyAgICAgKiAgICAgICAgICJjbGllbnRfc2VjcmV0IiA9PiBDTElFTlRfU0VDUkVULCAgICAvLyBPUFRJT05BTCB0aGUgY2xpZW50IHNlY3JldCAobWF5IGJlIG9taXR0ZWQgZm9yIHB1YmxpYyBjbGllbnRzKQorICAgICAqICAgICApOworICAgICAqIEBlbmRjb2RlCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi0yLjMuMQorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fMgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRDcmVkZW50aWFscyhSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCFpc19udWxsKCRyZXF1ZXN0LT5oZWFkZXJzKCdQSFBfQVVUSF9VU0VSJykpICYmICFpc19udWxsKCRyZXF1ZXN0LT5oZWFkZXJzKCdQSFBfQVVUSF9QVycpKSkgeworICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdjbGllbnRfaWQnID0+ICRyZXF1ZXN0LT5oZWFkZXJzKCdQSFBfQVVUSF9VU0VSJyksICdjbGllbnRfc2VjcmV0JyA9PiAkcmVxdWVzdC0+aGVhZGVycygnUEhQX0FVVEhfUFcnKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1snYWxsb3dfY3JlZGVudGlhbHNfaW5fcmVxdWVzdF9ib2R5J10pIHsKKyAgICAgICAgICAgIC8vIFVzaW5nIFBPU1QgZm9yIEh0dHBCYXNpYyBhdXRob3JpemF0aW9uIGlzIG5vdCByZWNvbW1lbmRlZCwgYnV0IGlzIHN1cHBvcnRlZCBieSBzcGVjaWZpY2F0aW9uCisgICAgICAgICAgICBpZiAoIWlzX251bGwoJHJlcXVlc3QtPnJlcXVlc3QoJ2NsaWVudF9pZCcpKSkgeworICAgICAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICAgICAqIGNsaWVudF9zZWNyZXQgY2FuIGJlIG51bGwgaWYgdGhlIGNsaWVudCdzIHBhc3N3b3JkIGlzIGFuIGVtcHR5IHN0cmluZworICAgICAgICAgICAgICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTIuMy4xCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdjbGllbnRfaWQnID0+ICRyZXF1ZXN0LT5yZXF1ZXN0KCdjbGllbnRfaWQnKSwgJ2NsaWVudF9zZWNyZXQnID0+ICRyZXF1ZXN0LT5yZXF1ZXN0KCdjbGllbnRfc2VjcmV0JykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCRyZXNwb25zZSkgeworICAgICAgICAgICAgJG1lc3NhZ2UgPSAkdGhpcy0+Y29uZmlnWydhbGxvd19jcmVkZW50aWFsc19pbl9yZXF1ZXN0X2JvZHknXSA/ICcgb3IgYm9keScgOiAnJzsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9jbGllbnQnLCAnQ2xpZW50IGNyZWRlbnRpYWxzIHdlcmUgbm90IGZvdW5kIGluIHRoZSBoZWFkZXJzJy4kbWVzc2FnZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL0F1dGhvcml6ZUNvbnRyb2xsZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmFmYjFkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyLnBocApAQCAtMCwwICsxLDQ4MCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlOwordXNlIE9BdXRoMlxTY29wZUludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVxdWVzdEludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFNjb3BlOwordXNlIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbjsKKworLyoqCisgKiBAc2VlIEF1dGhvcml6ZUNvbnRyb2xsZXJJbnRlcmZhY2UKKyAqLworY2xhc3MgQXV0aG9yaXplQ29udHJvbGxlciBpbXBsZW1lbnRzIEF1dGhvcml6ZUNvbnRyb2xsZXJJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJHNjb3BlOworCisgICAgLyoqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBwcml2YXRlICRzdGF0ZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgbWl4ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlICRjbGllbnRfaWQ7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJHJlZGlyZWN0X3VyaTsKKworICAgIC8qKgorICAgICAqIFRoZSByZXNwb25zZSB0eXBlCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJHJlc3BvbnNlX3R5cGU7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIENsaWVudEludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkY2xpZW50U3RvcmFnZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHJlc3BvbnNlVHlwZXM7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRjb25maWc7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIFNjb3BlSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRzY29wZVV0aWw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAqCisgICAgICogQHBhcmFtIENsaWVudEludGVyZmFjZSAkY2xpZW50U3RvcmFnZSBSRVFVSVJFRCBJbnN0YW5jZSBvZiBPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UgdG8gcmV0cmlldmUgY2xpZW50IGluZm9ybWF0aW9uCisgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAkcmVzcG9uc2VUeXBlcyBPUFRJT05BTCBBcnJheSBvZiBPQXV0aDJcUmVzcG9uc2VUeXBlXFJlc3BvbnNlVHlwZUludGVyZmFjZSBvYmplY3RzLiAgVmFsaWQgYXJyYXkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgYXJlICJjb2RlIiBhbmQgInRva2VuIgorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgJGNvbmZpZyAgICAgICAgT1BUSU9OQUwgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgc2VydmVyOgorICAgICAqIEBwYXJhbSBTY29wZUludGVyZmFjZSAgJHNjb3BlVXRpbCAgICAgT1BUSU9OQUwgSW5zdGFuY2Ugb2YgT0F1dGgyXFNjb3BlSW50ZXJmYWNlIHRvIHZhbGlkYXRlIHRoZSByZXF1ZXN0ZWQgc2NvcGUKKyAgICAgKiBAY29kZQorICAgICAqICAgICAkY29uZmlnID0gYXJyYXkoCisgICAgICogICAgICAgICAnYWxsb3dfaW1wbGljaXQnID0+IGZhbHNlLCAgICAgICAgICAgIC8vIGlmIHRoZSBjb250cm9sbGVyIHNob3VsZCBhbGxvdyB0aGUgImltcGxpY2l0IiBncmFudCB0eXBlCisgICAgICogICAgICAgICAnZW5mb3JjZV9zdGF0ZScgID0+IHRydWUgICAgICAgICAgICAgIC8vIGlmIHRoZSBjb250cm9sbGVyIHNob3VsZCByZXF1aXJlIHRoZSAic3RhdGUiIHBhcmFtZXRlcgorICAgICAqICAgICAgICAgJ3JlcXVpcmVfZXhhY3RfcmVkaXJlY3RfdXJpJyA9PiB0cnVlLCAvLyBpZiB0aGUgY29udHJvbGxlciBzaG91bGQgcmVxdWlyZSBhbiBleGFjdCBtYXRjaCBvbiB0aGUgInJlZGlyZWN0X3VyaSIgcGFyYW1ldGVyCisgICAgICogICAgICAgICAncmVkaXJlY3Rfc3RhdHVzX2NvZGUnID0+IDMwMiwgICAgICAgIC8vIEhUVFAgc3RhdHVzIGNvZGUgdG8gdXNlIGZvciByZWRpcmVjdCByZXNwb25zZXMKKyAgICAgKiAgICAgKTsKKyAgICAgKiBAZW5kY29kZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChDbGllbnRJbnRlcmZhY2UgJGNsaWVudFN0b3JhZ2UsIGFycmF5ICRyZXNwb25zZVR5cGVzID0gYXJyYXkoKSwgYXJyYXkgJGNvbmZpZyA9IGFycmF5KCksIFNjb3BlSW50ZXJmYWNlICRzY29wZVV0aWwgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmNsaWVudFN0b3JhZ2UgPSAkY2xpZW50U3RvcmFnZTsKKyAgICAgICAgJHRoaXMtPnJlc3BvbnNlVHlwZXMgPSAkcmVzcG9uc2VUeXBlczsKKyAgICAgICAgJHRoaXMtPmNvbmZpZyA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgJ2FsbG93X2ltcGxpY2l0JyA9PiBmYWxzZSwKKyAgICAgICAgICAgICdlbmZvcmNlX3N0YXRlJyAgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdyZXF1aXJlX2V4YWN0X3JlZGlyZWN0X3VyaScgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdyZWRpcmVjdF9zdGF0dXNfY29kZScgPT4gMzAyLAorICAgICAgICApLCAkY29uZmlnKTsKKworICAgICAgICBpZiAoaXNfbnVsbCgkc2NvcGVVdGlsKSkgeworICAgICAgICAgICAgJHNjb3BlVXRpbCA9IG5ldyBTY29wZSgpOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5zY29wZVV0aWwgPSAkc2NvcGVVdGlsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgYXV0aG9yaXphdGlvbiByZXF1ZXN0CisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHBhcmFtIGJvb2xlYW4gICAgICAgICAgICRpc19hdXRob3JpemVkCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICR1c2VyX2lkCisgICAgICogQHJldHVybiBtaXhlZHx2b2lkCisgICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlQXV0aG9yaXplUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UsICRpc19hdXRob3JpemVkLCAkdXNlcl9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoIWlzX2Jvb2woJGlzX2F1dGhvcml6ZWQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdBcmd1bWVudCAiaXNfYXV0aG9yaXplZCIgbXVzdCBiZSBhIGJvb2xlYW4uICBUaGlzIG1ldGhvZCBtdXN0IGtub3cgaWYgdGhlIHVzZXIgaGFzIGdyYW50ZWQgYWNjZXNzIHRvIHRoZSBjbGllbnQuJyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSByZXBlYXQgdGhpcywgYmVjYXVzZSB3ZSBuZWVkIHRvIHJlLXZhbGlkYXRlLiBUaGUgcmVxdWVzdCBjb3VsZCBiZSBQT1NUZWQKKyAgICAgICAgLy8gYnkgYSAzcmQtcGFydHkgKGJlY2F1c2Ugd2UgYXJlIG5vdCBpbnRlcm5hbGx5IGVuZm9yY2luZyBOT05DRXMsIGV0YykKKyAgICAgICAgaWYgKCEkdGhpcy0+dmFsaWRhdGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiBubyByZWRpcmVjdF91cmkgaXMgcGFzc2VkIGluIHRoZSByZXF1ZXN0LCB1c2UgY2xpZW50J3MgcmVnaXN0ZXJlZCBvbmUKKyAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5yZWRpcmVjdF91cmkpKSB7CisgICAgICAgICAgICAkY2xpZW50RGF0YSAgICAgICAgICAgICAgPSAkdGhpcy0+Y2xpZW50U3RvcmFnZS0+Z2V0Q2xpZW50RGV0YWlscygkdGhpcy0+Y2xpZW50X2lkKTsKKyAgICAgICAgICAgICRyZWdpc3RlcmVkX3JlZGlyZWN0X3VyaSA9ICRjbGllbnREYXRhWydyZWRpcmVjdF91cmknXTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoZSB1c2VyIGRlY2xpbmVkIGFjY2VzcyB0byB0aGUgY2xpZW50J3MgYXBwbGljYXRpb24KKyAgICAgICAgaWYgKCRpc19hdXRob3JpemVkID09PSBmYWxzZSkgeworICAgICAgICAgICAgJHJlZGlyZWN0X3VyaSA9ICR0aGlzLT5yZWRpcmVjdF91cmkgPzogJHJlZ2lzdGVyZWRfcmVkaXJlY3RfdXJpOworICAgICAgICAgICAgJHRoaXMtPnNldE5vdEF1dGhvcml6ZWRSZXNwb25zZSgkcmVxdWVzdCwgJHJlc3BvbnNlLCAkcmVkaXJlY3RfdXJpLCAkdXNlcl9pZCk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJ1aWxkIHRoZSBwYXJhbWV0ZXJzIHRvIHNldCBpbiB0aGUgcmVkaXJlY3QgVVJJCisgICAgICAgIGlmICghJHBhcmFtcyA9ICR0aGlzLT5idWlsZEF1dGhvcml6ZVBhcmFtZXRlcnMoJHJlcXVlc3QsICRyZXNwb25zZSwgJHVzZXJfaWQpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAkYXV0aFJlc3VsdCA9ICR0aGlzLT5yZXNwb25zZVR5cGVzWyR0aGlzLT5yZXNwb25zZV90eXBlXS0+Z2V0QXV0aG9yaXplUmVzcG9uc2UoJHBhcmFtcywgJHVzZXJfaWQpOworCisgICAgICAgIGxpc3QoJHJlZGlyZWN0X3VyaSwgJHVyaV9wYXJhbXMpID0gJGF1dGhSZXN1bHQ7CisKKyAgICAgICAgaWYgKGVtcHR5KCRyZWRpcmVjdF91cmkpICYmICFlbXB0eSgkcmVnaXN0ZXJlZF9yZWRpcmVjdF91cmkpKSB7CisgICAgICAgICAgICAkcmVkaXJlY3RfdXJpID0gJHJlZ2lzdGVyZWRfcmVkaXJlY3RfdXJpOworICAgICAgICB9CisKKyAgICAgICAgJHVyaSA9ICR0aGlzLT5idWlsZFVyaSgkcmVkaXJlY3RfdXJpLCAkdXJpX3BhcmFtcyk7CisKKyAgICAgICAgLy8gcmV0dXJuIHJlZGlyZWN0IHJlc3BvbnNlCisgICAgICAgICRyZXNwb25zZS0+c2V0UmVkaXJlY3QoJHRoaXMtPmNvbmZpZ1sncmVkaXJlY3Rfc3RhdHVzX2NvZGUnXSwgJHVyaSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5vdCBhdXRob3JpemVkIHJlc3BvbnNlCisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICRyZWRpcmVjdF91cmkKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgJHVzZXJfaWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0Tm90QXV0aG9yaXplZFJlc3BvbnNlKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSwgJHJlZGlyZWN0X3VyaSwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJGVycm9yID0gJ2FjY2Vzc19kZW5pZWQnOworICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICdUaGUgdXNlciBkZW5pZWQgYWNjZXNzIHRvIHlvdXIgYXBwbGljYXRpb24nOworICAgICAgICAkcmVzcG9uc2UtPnNldFJlZGlyZWN0KCR0aGlzLT5jb25maWdbJ3JlZGlyZWN0X3N0YXR1c19jb2RlJ10sICRyZWRpcmVjdF91cmksICR0aGlzLT5zdGF0ZSwgJGVycm9yLCAkZXJyb3JfbWVzc2FnZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogV2UgaGF2ZSBtYWRlIHRoaXMgcHJvdGVjdGVkIHNvIHRoaXMgY2xhc3MgY2FuIGJlIGV4dGVuZGVkIHRvIGFkZC9tb2RpZnkKKyAgICAgKiB0aGVzZSBwYXJhbWV0ZXJzCisgICAgICoKKyAgICAgKiBAVE9ETzogYWRkIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGZvciB0aGUgcGFyYW1ldGVycyBpbiB0aGlzIG1ldGhvZAorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHBhcmFtIG1peGVkICR1c2VyX2lkCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBidWlsZEF1dGhvcml6ZVBhcmFtZXRlcnMoJHJlcXVlc3QsICRyZXNwb25zZSwgJHVzZXJfaWQpCisgICAgeworICAgICAgICAvLyBAVE9ETzogd2Ugc2hvdWxkIGJlIGV4cGxpY2l0IHdpdGggdGhpcyBpbiB0aGUgZnV0dXJlCisgICAgICAgICRwYXJhbXMgPSBhcnJheSgKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAkdGhpcy0+c2NvcGUsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJHRoaXMtPnN0YXRlLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICR0aGlzLT5jbGllbnRfaWQsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJHRoaXMtPnJlZGlyZWN0X3VyaSwKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAkdGhpcy0+cmVzcG9uc2VfdHlwZSwKKyAgICAgICAgKTsKKworICAgICAgICByZXR1cm4gJHBhcmFtczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWYWxpZGF0ZSB0aGUgT0F1dGggcmVxdWVzdAorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlQXV0aG9yaXplUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UpCisgICAgeworICAgICAgICAvLyBNYWtlIHN1cmUgYSB2YWxpZCBjbGllbnQgaWQgd2FzIHN1cHBsaWVkICh3ZSBjYW4gbm90IHJlZGlyZWN0IGJlY2F1c2Ugd2Ugd2VyZSB1bmFibGUgdG8gdmVyaWZ5IHRoZSBVUkkpCisgICAgICAgIGlmICghJGNsaWVudF9pZCA9ICRyZXF1ZXN0LT5xdWVyeSgnY2xpZW50X2lkJywgJHJlcXVlc3QtPnJlcXVlc3QoJ2NsaWVudF9pZCcpKSkgeworICAgICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIGdvb2QgVVJJIHRvIHVzZQorICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2NsaWVudCcsICJObyBjbGllbnQgaWQgc3VwcGxpZWQiKTsKKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gR2V0IGNsaWVudCBkZXRhaWxzCisgICAgICAgIGlmICghJGNsaWVudERhdGEgPSAkdGhpcy0+Y2xpZW50U3RvcmFnZS0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2NsaWVudCcsICdUaGUgY2xpZW50IGlkIHN1cHBsaWVkIGlzIGludmFsaWQnKTsKKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJHJlZ2lzdGVyZWRfcmVkaXJlY3RfdXJpID0gaXNzZXQoJGNsaWVudERhdGFbJ3JlZGlyZWN0X3VyaSddKSA/ICRjbGllbnREYXRhWydyZWRpcmVjdF91cmknXSA6ICcnOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBhIHZhbGlkIHJlZGlyZWN0X3VyaSB3YXMgc3VwcGxpZWQuIElmIHNwZWNpZmllZCwgaXQgbXVzdCBtYXRjaCB0aGUgY2xpZW50RGF0YSBVUkkuCisgICAgICAgIC8vIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTMuMS4yCisgICAgICAgIC8vIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMS4yLjEKKyAgICAgICAgLy8gQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4yLjIuMQorICAgICAgICBpZiAoJHN1cHBsaWVkX3JlZGlyZWN0X3VyaSA9ICRyZXF1ZXN0LT5xdWVyeSgncmVkaXJlY3RfdXJpJywgJHJlcXVlc3QtPnJlcXVlc3QoJ3JlZGlyZWN0X3VyaScpKSkgeworICAgICAgICAgICAgLy8gdmFsaWRhdGUgdGhlcmUgaXMgbm8gZnJhZ21lbnQgc3VwcGxpZWQKKyAgICAgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkc3VwcGxpZWRfcmVkaXJlY3RfdXJpKTsKKyAgICAgICAgICAgIGlmIChpc3NldCgkcGFydHNbJ2ZyYWdtZW50J10pICYmICRwYXJ0c1snZnJhZ21lbnQnXSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF91cmknLCAnVGhlIHJlZGlyZWN0IFVSSSBtdXN0IG5vdCBjb250YWluIGEgZnJhZ21lbnQnKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgcmVnaXN0ZXJlZCByZWRpcmVjdCB1cmkocykgaWYgYXZhaWxhYmxlCisgICAgICAgICAgICBpZiAoJHJlZ2lzdGVyZWRfcmVkaXJlY3RfdXJpICYmICEkdGhpcy0+dmFsaWRhdGVSZWRpcmVjdFVyaSgkc3VwcGxpZWRfcmVkaXJlY3RfdXJpLCAkcmVnaXN0ZXJlZF9yZWRpcmVjdF91cmkpKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdyZWRpcmVjdF91cmlfbWlzbWF0Y2gnLCAnVGhlIHJlZGlyZWN0IFVSSSBwcm92aWRlZCBpcyBtaXNzaW5nIG9yIGRvZXMgbm90IG1hdGNoJywgJyNzZWN0aW9uLTMuMS4yJyk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkcmVkaXJlY3RfdXJpID0gJHN1cHBsaWVkX3JlZGlyZWN0X3VyaTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHVzZSB0aGUgcmVnaXN0ZXJlZCByZWRpcmVjdF91cmkgaWYgbm9uZSBoYXMgYmVlbiBzdXBwbGllZCwgaWYgcG9zc2libGUKKyAgICAgICAgICAgIGlmICghJHJlZ2lzdGVyZWRfcmVkaXJlY3RfdXJpKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3VyaScsICdObyByZWRpcmVjdCBVUkkgd2FzIHN1cHBsaWVkIG9yIHN0b3JlZCcpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY291bnQoZXhwbG9kZSgnICcsICRyZWdpc3RlcmVkX3JlZGlyZWN0X3VyaSkpID4gMSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF91cmknLCAnQSByZWRpcmVjdCBVUkkgbXVzdCBiZSBzdXBwbGllZCB3aGVuIG11bHRpcGxlIHJlZGlyZWN0IFVSSXMgYXJlIHJlZ2lzdGVyZWQnLCAnI3NlY3Rpb24tMy4xLjIuMycpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJHJlZGlyZWN0X3VyaSA9ICRyZWdpc3RlcmVkX3JlZGlyZWN0X3VyaTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlbGVjdCB0aGUgcmVzcG9uc2UgdHlwZQorICAgICAgICAkcmVzcG9uc2VfdHlwZSA9ICRyZXF1ZXN0LT5xdWVyeSgncmVzcG9uc2VfdHlwZScsICRyZXF1ZXN0LT5yZXF1ZXN0KCdyZXNwb25zZV90eXBlJykpOworCisgICAgICAgIC8vIGZvciBtdWx0aXBsZS12YWx1ZWQgcmVzcG9uc2UgdHlwZXMgLSBtYWtlIHRoZW0gYWxwaGFiZXRpY2FsCisgICAgICAgIGlmIChmYWxzZSAhPT0gc3RycG9zKCRyZXNwb25zZV90eXBlLCAnICcpKSB7CisgICAgICAgICAgICAkdHlwZXMgPSBleHBsb2RlKCcgJywgJHJlc3BvbnNlX3R5cGUpOworICAgICAgICAgICAgc29ydCgkdHlwZXMpOworICAgICAgICAgICAgJHJlc3BvbnNlX3R5cGUgPSBsdHJpbShpbXBsb2RlKCcgJywgJHR5cGVzKSk7CisgICAgICAgIH0KKworICAgICAgICAkc3RhdGUgPSAkcmVxdWVzdC0+cXVlcnkoJ3N0YXRlJywgJHJlcXVlc3QtPnJlcXVlc3QoJ3N0YXRlJykpOworCisgICAgICAgIC8vIHR5cGUgYW5kIGNsaWVudF9pZCBhcmUgcmVxdWlyZWQKKyAgICAgICAgaWYgKCEkcmVzcG9uc2VfdHlwZSB8fCAhaW5fYXJyYXkoJHJlc3BvbnNlX3R5cGUsICR0aGlzLT5nZXRWYWxpZFJlc3BvbnNlVHlwZXMoKSkpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0UmVkaXJlY3QoJHRoaXMtPmNvbmZpZ1sncmVkaXJlY3Rfc3RhdHVzX2NvZGUnXSwgJHJlZGlyZWN0X3VyaSwgJHN0YXRlLCAnaW52YWxpZF9yZXF1ZXN0JywgJ0ludmFsaWQgb3IgbWlzc2luZyByZXNwb25zZSB0eXBlJywgbnVsbCk7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkcmVzcG9uc2VfdHlwZSA9PSBzZWxmOjpSRVNQT05TRV9UWVBFX0FVVEhPUklaQVRJT05fQ09ERSkgeworICAgICAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+cmVzcG9uc2VUeXBlc1snY29kZSddKSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0UmVkaXJlY3QoJHRoaXMtPmNvbmZpZ1sncmVkaXJlY3Rfc3RhdHVzX2NvZGUnXSwgJHJlZGlyZWN0X3VyaSwgJHN0YXRlLCAndW5zdXBwb3J0ZWRfcmVzcG9uc2VfdHlwZScsICdhdXRob3JpemF0aW9uIGNvZGUgZ3JhbnQgdHlwZSBub3Qgc3VwcG9ydGVkJywgbnVsbCk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoISR0aGlzLT5jbGllbnRTdG9yYWdlLT5jaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUoJGNsaWVudF9pZCwgJ2F1dGhvcml6YXRpb25fY29kZScpKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRSZWRpcmVjdCgkdGhpcy0+Y29uZmlnWydyZWRpcmVjdF9zdGF0dXNfY29kZSddLCAkcmVkaXJlY3RfdXJpLCAkc3RhdGUsICd1bmF1dGhvcml6ZWRfY2xpZW50JywgJ1RoZSBncmFudCB0eXBlIGlzIHVuYXV0aG9yaXplZCBmb3IgdGhpcyBjbGllbnRfaWQnLCBudWxsKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkdGhpcy0+cmVzcG9uc2VUeXBlc1snY29kZSddLT5lbmZvcmNlUmVkaXJlY3QoKSAmJiAhJHJlZGlyZWN0X3VyaSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAncmVkaXJlY3RfdXJpX21pc21hdGNoJywgJ1RoZSByZWRpcmVjdCBVUkkgaXMgbWFuZGF0b3J5IGFuZCB3YXMgbm90IHN1cHBsaWVkJyk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoISR0aGlzLT5jb25maWdbJ2FsbG93X2ltcGxpY2l0J10pIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldFJlZGlyZWN0KCR0aGlzLT5jb25maWdbJ3JlZGlyZWN0X3N0YXR1c19jb2RlJ10sICRyZWRpcmVjdF91cmksICRzdGF0ZSwgJ3Vuc3VwcG9ydGVkX3Jlc3BvbnNlX3R5cGUnLCAnaW1wbGljaXQgZ3JhbnQgdHlwZSBub3Qgc3VwcG9ydGVkJywgbnVsbCk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoISR0aGlzLT5jbGllbnRTdG9yYWdlLT5jaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUoJGNsaWVudF9pZCwgJ2ltcGxpY2l0JykpIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldFJlZGlyZWN0KCR0aGlzLT5jb25maWdbJ3JlZGlyZWN0X3N0YXR1c19jb2RlJ10sICRyZWRpcmVjdF91cmksICRzdGF0ZSwgJ3VuYXV0aG9yaXplZF9jbGllbnQnLCAnVGhlIGdyYW50IHR5cGUgaXMgdW5hdXRob3JpemVkIGZvciB0aGlzIGNsaWVudF9pZCcsIG51bGwpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gdmFsaWRhdGUgcmVxdWVzdGVkIHNjb3BlIGlmIGl0IGV4aXN0cworICAgICAgICAkcmVxdWVzdGVkU2NvcGUgPSAkdGhpcy0+c2NvcGVVdGlsLT5nZXRTY29wZUZyb21SZXF1ZXN0KCRyZXF1ZXN0KTsKKworICAgICAgICBpZiAoJHJlcXVlc3RlZFNjb3BlKSB7CisgICAgICAgICAgICAvLyByZXN0cmljdCBzY29wZSBieSBjbGllbnQgc3BlY2lmaWMgc2NvcGUgaWYgYXBwbGljYWJsZSwKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSB2ZXJpZnkgdGhlIHNjb3BlIGV4aXN0cworICAgICAgICAgICAgJGNsaWVudFNjb3BlID0gJHRoaXMtPmNsaWVudFN0b3JhZ2UtPmdldENsaWVudFNjb3BlKCRjbGllbnRfaWQpOworICAgICAgICAgICAgaWYgKChlbXB0eSgkY2xpZW50U2NvcGUpICYmICEkdGhpcy0+c2NvcGVVdGlsLT5zY29wZUV4aXN0cygkcmVxdWVzdGVkU2NvcGUpKQorICAgICAgICAgICAgICAgIHx8ICghZW1wdHkoJGNsaWVudFNjb3BlKSAmJiAhJHRoaXMtPnNjb3BlVXRpbC0+Y2hlY2tTY29wZSgkcmVxdWVzdGVkU2NvcGUsICRjbGllbnRTY29wZSkpKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRSZWRpcmVjdCgkdGhpcy0+Y29uZmlnWydyZWRpcmVjdF9zdGF0dXNfY29kZSddLCAkcmVkaXJlY3RfdXJpLCAkc3RhdGUsICdpbnZhbGlkX3Njb3BlJywgJ0FuIHVuc3VwcG9ydGVkIHNjb3BlIHdhcyByZXF1ZXN0ZWQnLCBudWxsKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHVzZSBhIGdsb2JhbGx5LWRlZmluZWQgZGVmYXVsdCBzY29wZQorICAgICAgICAgICAgJGRlZmF1bHRTY29wZSA9ICR0aGlzLT5zY29wZVV0aWwtPmdldERlZmF1bHRTY29wZSgkY2xpZW50X2lkKTsKKworICAgICAgICAgICAgaWYgKGZhbHNlID09PSAkZGVmYXVsdFNjb3BlKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRSZWRpcmVjdCgkdGhpcy0+Y29uZmlnWydyZWRpcmVjdF9zdGF0dXNfY29kZSddLCAkcmVkaXJlY3RfdXJpLCAkc3RhdGUsICdpbnZhbGlkX2NsaWVudCcsICdUaGlzIGFwcGxpY2F0aW9uIHJlcXVpcmVzIHlvdSBzcGVjaWZ5IGEgc2NvcGUgcGFyYW1ldGVyJywgbnVsbCk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRyZXF1ZXN0ZWRTY29wZSA9ICRkZWZhdWx0U2NvcGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBWYWxpZGF0ZSBzdGF0ZSBwYXJhbWV0ZXIgZXhpc3RzIChpZiBjb25maWd1cmVkIHRvIGVuZm9yY2UgdGhpcykKKyAgICAgICAgaWYgKCR0aGlzLT5jb25maWdbJ2VuZm9yY2Vfc3RhdGUnXSAmJiAhJHN0YXRlKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldFJlZGlyZWN0KCR0aGlzLT5jb25maWdbJ3JlZGlyZWN0X3N0YXR1c19jb2RlJ10sICRyZWRpcmVjdF91cmksIG51bGwsICdpbnZhbGlkX3JlcXVlc3QnLCAnVGhlIHN0YXRlIHBhcmFtZXRlciBpcyByZXF1aXJlZCcpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBzYXZlIHRoZSBpbnB1dCBkYXRhIGFuZCByZXR1cm4gdHJ1ZQorICAgICAgICAkdGhpcy0+c2NvcGUgICAgICAgICA9ICRyZXF1ZXN0ZWRTY29wZTsKKyAgICAgICAgJHRoaXMtPnN0YXRlICAgICAgICAgPSAkc3RhdGU7CisgICAgICAgICR0aGlzLT5jbGllbnRfaWQgICAgID0gJGNsaWVudF9pZDsKKyAgICAgICAgLy8gT25seSBzYXZlIHRoZSBTVVBQTElFRCByZWRpcmVjdCBVUkkgKEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMS4zKQorICAgICAgICAkdGhpcy0+cmVkaXJlY3RfdXJpICA9ICRzdXBwbGllZF9yZWRpcmVjdF91cmk7CisgICAgICAgICR0aGlzLT5yZXNwb25zZV90eXBlID0gJHJlc3BvbnNlX3R5cGU7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQnVpbGQgdGhlIGFic29sdXRlIFVSSSBiYXNlZCBvbiBzdXBwbGllZCBVUkkgYW5kIHBhcmFtZXRlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1cmkgICAgQW4gYWJzb2x1dGUgVVJJLgorICAgICAqIEBwYXJhbSBhcnJheSAgJHBhcmFtcyBQYXJhbWV0ZXJzIHRvIGJlIGFwcGVuZCBhcyBHRVQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqIEFuIGFic29sdXRlIFVSSSB3aXRoIHN1cHBsaWVkIHBhcmFtZXRlcnMuCisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl80CisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBidWlsZFVyaSgkdXJpLCAkcGFyYW1zKQorICAgIHsKKyAgICAgICAgJHBhcnNlX3VybCA9IHBhcnNlX3VybCgkdXJpKTsKKworICAgICAgICAvLyBBZGQgb3VyIHBhcmFtcyB0byB0aGUgcGFyc2VkIHVyaQorICAgICAgICBmb3JlYWNoICgkcGFyYW1zIGFzICRrID0+ICR2KSB7CisgICAgICAgICAgICBpZiAoaXNzZXQoJHBhcnNlX3VybFska10pKSB7CisgICAgICAgICAgICAgICAgJHBhcnNlX3VybFska10gLj0gIiYiIC4gaHR0cF9idWlsZF9xdWVyeSgkdiwgJycsICcmJyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRwYXJzZV91cmxbJGtdID0gaHR0cF9idWlsZF9xdWVyeSgkdiwgJycsICcmJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQdXQgdGhlIHVyaSBiYWNrIHRvZ2V0aGVyCisgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAoKGlzc2V0KCRwYXJzZV91cmxbInNjaGVtZSJdKSkgPyAkcGFyc2VfdXJsWyJzY2hlbWUiXSAuICI6Ly8iIDogIiIpCisgICAgICAgICAgICAuICgoaXNzZXQoJHBhcnNlX3VybFsidXNlciJdKSkgPyAkcGFyc2VfdXJsWyJ1c2VyIl0KKyAgICAgICAgICAgIC4gKChpc3NldCgkcGFyc2VfdXJsWyJwYXNzIl0pKSA/ICI6IiAuICRwYXJzZV91cmxbInBhc3MiXSA6ICIiKSAuICJAIiA6ICIiKQorICAgICAgICAgICAgLiAoKGlzc2V0KCRwYXJzZV91cmxbImhvc3QiXSkpID8gJHBhcnNlX3VybFsiaG9zdCJdIDogIiIpCisgICAgICAgICAgICAuICgoaXNzZXQoJHBhcnNlX3VybFsicG9ydCJdKSkgPyAiOiIgLiAkcGFyc2VfdXJsWyJwb3J0Il0gOiAiIikKKyAgICAgICAgICAgIC4gKChpc3NldCgkcGFyc2VfdXJsWyJwYXRoIl0pKSA/ICRwYXJzZV91cmxbInBhdGgiXSA6ICIiKQorICAgICAgICAgICAgLiAoKGlzc2V0KCRwYXJzZV91cmxbInF1ZXJ5Il0pICYmICFlbXB0eSgkcGFyc2VfdXJsWydxdWVyeSddKSkgPyAiPyIgLiAkcGFyc2VfdXJsWyJxdWVyeSJdIDogIiIpCisgICAgICAgICAgICAuICgoaXNzZXQoJHBhcnNlX3VybFsiZnJhZ21lbnQiXSkpID8gIiMiIC4gJHBhcnNlX3VybFsiZnJhZ21lbnQiXSA6ICIiKQorICAgICAgICA7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFZhbGlkUmVzcG9uc2VUeXBlcygpCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXkoCisgICAgICAgICAgICBzZWxmOjpSRVNQT05TRV9UWVBFX0FDQ0VTU19UT0tFTiwKKyAgICAgICAgICAgIHNlbGY6OlJFU1BPTlNFX1RZUEVfQVVUSE9SSVpBVElPTl9DT0RFLAorICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIG1ldGhvZCBmb3IgdmFsaWRhdGluZyByZWRpcmVjdCBVUkkgc3VwcGxpZWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGlucHV0VXJpIFRoZSBzdWJtaXR0ZWQgVVJJIHRvIGJlIHZhbGlkYXRlZAorICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlZ2lzdGVyZWRVcmlTdHJpbmcgVGhlIGFsbG93ZWQgVVJJKHMpIHRvIHZhbGlkYXRlIGFnYWluc3QuICBDYW4gYmUgYSBzcGFjZS1kZWxpbWl0ZWQgc3RyaW5nIG9mIFVSSXMgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93IGZvciBtdWx0aXBsZSBVUklzCisgICAgICogQHJldHVybiBib29sCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMy4xLjIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVSZWRpcmVjdFVyaSgkaW5wdXRVcmksICRyZWdpc3RlcmVkVXJpU3RyaW5nKQorICAgIHsKKyAgICAgICAgaWYgKCEkaW5wdXRVcmkgfHwgISRyZWdpc3RlcmVkVXJpU3RyaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGlmIGVpdGhlciBvbmUgaXMgbWlzc2luZywgYXNzdW1lIElOVkFMSUQKKyAgICAgICAgfQorCisgICAgICAgICRyZWdpc3RlcmVkX3VyaXMgPSBwcmVnX3NwbGl0KCcvXHMrLycsICRyZWdpc3RlcmVkVXJpU3RyaW5nKTsKKyAgICAgICAgZm9yZWFjaCAoJHJlZ2lzdGVyZWRfdXJpcyBhcyAkcmVnaXN0ZXJlZF91cmkpIHsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnWydyZXF1aXJlX2V4YWN0X3JlZGlyZWN0X3VyaSddKSB7CisgICAgICAgICAgICAgICAgLy8gdGhlIGlucHV0IHVyaSBpcyB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgcmVnaXN0ZXJlZCB1cmkgdXNpbmcgZXhhY3QgbWF0Y2gKKyAgICAgICAgICAgICAgICBpZiAoc3RyY21wKCRpbnB1dFVyaSwgJHJlZ2lzdGVyZWRfdXJpKSA9PT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRyZWdpc3RlcmVkX3VyaV9sZW5ndGggPSBzdHJsZW4oJHJlZ2lzdGVyZWRfdXJpKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJlZ2lzdGVyZWRfdXJpX2xlbmd0aCA9PT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdGhlIGlucHV0IHVyaSBpcyB2YWxpZGF0ZWQgYWdhaW5zdCB0aGUgcmVnaXN0ZXJlZCB1cmkgdXNpbmcgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBvZiB0aGUgaW5pdGlhbCBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBpLmUuIGFkZGl0aW9uYWwgcXVlcnkgcGFyYW1ldGVycyBtYXkgYmUgYXBwbGllZAorICAgICAgICAgICAgICAgIGlmIChzdHJjYXNlY21wKHN1YnN0cigkaW5wdXRVcmksIDAsICRyZWdpc3RlcmVkX3VyaV9sZW5ndGgpLCAkcmVnaXN0ZXJlZF91cmkpID09PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gYWNjZXNzIHRoZSBzY29wZQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2NvcGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zY29wZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gYWNjZXNzIHRoZSBzdGF0ZQorICAgICAqCisgICAgICogQHJldHVybiBpbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3RhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zdGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gYWNjZXNzIHRoZSBjbGllbnQgaWQKKyAgICAgKgorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xpZW50SWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jbGllbnRfaWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIGFjY2VzcyB0aGUgcmVkaXJlY3QgdXJsCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWRpcmVjdFVyaSgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlyZWN0X3VyaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gYWNjZXNzIHRoZSByZXNwb25zZSB0eXBlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZVR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNwb25zZV90eXBlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0NvbnRyb2xsZXIvQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL0F1dGhvcml6ZUNvbnRyb2xsZXJJbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NThmOTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL0F1dGhvcml6ZUNvbnRyb2xsZXJJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsNTggQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcQ29udHJvbGxlcjsKKwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKKworLyoqCisgKiAgVGhpcyBjb250cm9sbGVyIGlzIGNhbGxlZCB3aGVuIGEgdXNlciBzaG91bGQgYmUgYXV0aG9yaXplZAorICogIGJ5IGFuIGF1dGhvcml6YXRpb24gc2VydmVyLiAgQXMgT0F1dGgyIGRvZXMgbm90IGhhbmRsZQorICogIGF1dGhvcml6YXRpb24gZGlyZWN0bHksIHRoaXMgY29udHJvbGxlciBlbnN1cmVzIHRoZSByZXF1ZXN0IGlzIHZhbGlkLCBidXQKKyAqICByZXF1aXJlcyB0aGUgYXBwbGljYXRpb24gdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiAkaXNfYXV0aG9yaXplZAorICoKKyAqICBAY29kZQorICogICAgICAkdXNlcl9pZCA9ICR0aGlzLT5zb21laG93RGV0ZXJtaW5lVXNlcklkKCk7CisgKiAgICAgICRpc19hdXRob3JpemVkID0gJHRoaXMtPnNvbWVob3dEZXRlcm1pbmVVc2VyQXV0aG9yaXphdGlvbigpOworICogICAgICAkcmVzcG9uc2UgPSBuZXcgT0F1dGgyXFJlc3BvbnNlKCk7CisgKiAgICAgICRhdXRob3JpemVDb250cm9sbGVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KAorICogICAgICAgICAgT0F1dGgyXFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCksCisgKiAgICAgICAgICAkcmVzcG9uc2UsCisgKiAgICAgICAgICAkaXNfYXV0aG9yaXplZCwKKyAqICAgICAgICAgICR1c2VyX2lkCisgKiAgICAgICk7CisgKiAgICAgICRyZXNwb25zZS0+c2VuZCgpOworICogQGVuZGNvZGUKKyAqLworaW50ZXJmYWNlIEF1dGhvcml6ZUNvbnRyb2xsZXJJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBMaXN0IG9mIHBvc3NpYmxlIGF1dGhlbnRpY2F0aW9uIHJlc3BvbnNlIHR5cGVzLgorICAgICAqIFRoZSAiYXV0aG9yaXphdGlvbl9jb2RlIiBtZWNoYW5pc20gZXhjbHVzaXZlbHkgc3VwcG9ydHMgJ2NvZGUnCisgICAgICogYW5kIHRoZSAiaW1wbGljaXQiIG1lY2hhbmlzbSBleGNsdXNpdmVseSBzdXBwb3J0cyAndG9rZW4nLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00LjEuMQorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMi4xCisgICAgICovCisgICAgY29uc3QgUkVTUE9OU0VfVFlQRV9BVVRIT1JJWkFUSU9OX0NPREUgPSAnY29kZSc7CisgICAgY29uc3QgUkVTUE9OU0VfVFlQRV9BQ0NFU1NfVE9LRU4gPSAndG9rZW4nOworCisgICAgLyoqCisgICAgICogSGFuZGxlIHRoZSBPQXV0aCByZXF1ZXN0CisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKiBAcGFyYW0gJGlzX2F1dGhvcml6ZWQKKyAgICAgKiBAcGFyYW0gbnVsbCAkdXNlcl9pZAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlQXV0aG9yaXplUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UsICRpc19hdXRob3JpemVkLCAkdXNlcl9pZCA9IG51bGwpOworCisgICAgLyoqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlQXV0aG9yaXplUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9SZXNvdXJjZUNvbnRyb2xsZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9SZXNvdXJjZUNvbnRyb2xsZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNmY5MGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL1Jlc291cmNlQ29udHJvbGxlci5waHAKQEAgLTAsMCArMSwxNTYgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcQ29udHJvbGxlcjsKKwordXNlIE9BdXRoMlxUb2tlblR5cGVcVG9rZW5UeXBlSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTY29wZUludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVxdWVzdEludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFNjb3BlOworCisvKioKKyAqIEBzZWUgUmVzb3VyY2VDb250cm9sbGVySW50ZXJmYWNlCisgKi8KK2NsYXNzIFJlc291cmNlQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlc291cmNlQ29udHJvbGxlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlICR0b2tlbjsKKworICAgIC8qKgorICAgICAqIEB2YXIgVG9rZW5UeXBlSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICR0b2tlblR5cGU7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIEFjY2Vzc1Rva2VuSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICR0b2tlblN0b3JhZ2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRjb25maWc7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIFNjb3BlSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRzY29wZVV0aWw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAqCisgICAgICogQHBhcmFtIFRva2VuVHlwZUludGVyZmFjZSAgICR0b2tlblR5cGUKKyAgICAgKiBAcGFyYW0gQWNjZXNzVG9rZW5JbnRlcmZhY2UgJHRva2VuU3RvcmFnZQorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAkY29uZmlnCisgICAgICogQHBhcmFtIFNjb3BlSW50ZXJmYWNlICAgICAgICRzY29wZVV0aWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoVG9rZW5UeXBlSW50ZXJmYWNlICR0b2tlblR5cGUsIEFjY2Vzc1Rva2VuSW50ZXJmYWNlICR0b2tlblN0b3JhZ2UsICRjb25maWcgPSBhcnJheSgpLCBTY29wZUludGVyZmFjZSAkc2NvcGVVdGlsID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT50b2tlblR5cGUgPSAkdG9rZW5UeXBlOworICAgICAgICAkdGhpcy0+dG9rZW5TdG9yYWdlID0gJHRva2VuU3RvcmFnZTsKKworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnd3d3X3JlYWxtJyA9PiAnU2VydmljZScsCisgICAgICAgICksICRjb25maWcpOworCisgICAgICAgIGlmIChpc19udWxsKCRzY29wZVV0aWwpKSB7CisgICAgICAgICAgICAkc2NvcGVVdGlsID0gbmV3IFNjb3BlKCk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPnNjb3BlVXRpbCA9ICRzY29wZVV0aWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSByZXNvdXJjZSByZXF1ZXN0CisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHBhcmFtIG51bGwgICAgICAgICAgICAgICRzY29wZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2ZXJpZnlSZXNvdXJjZVJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPmdldEFjY2Vzc1Rva2VuRGF0YSgkcmVxdWVzdCwgJHJlc3BvbnNlKTsKKworICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRva2VuIGRhdGEKKyAgICAgICAgaWYgKGlzX251bGwoJHRva2VuKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoZWNrIHNjb3BlLCBpZiBwcm92aWRlZAorICAgICAgICAgKiBJZiB0b2tlbiBkb2Vzbid0IGhhdmUgYSBzY29wZSwgaXQncyBudWxsL2VtcHR5LCBvciBpdCdzIGluc3VmZmljaWVudCwgdGhlbiB0aHJvdyA0MDMKKyAgICAgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzUwI3NlY3Rpb24tMy4xCisgICAgICAgICAqLworICAgICAgICBpZiAoJHNjb3BlICYmICghaXNzZXQoJHRva2VuWyJzY29wZSJdKSB8fCAhJHRva2VuWyJzY29wZSJdIHx8ICEkdGhpcy0+c2NvcGVVdGlsLT5jaGVja1Njb3BlKCRzY29wZSwgJHRva2VuWyJzY29wZSJdKSkpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAzLCAnaW5zdWZmaWNpZW50X3Njb3BlJywgJ1RoZSByZXF1ZXN0IHJlcXVpcmVzIGhpZ2hlciBwcml2aWxlZ2VzIHRoYW4gcHJvdmlkZWQgYnkgdGhlIGFjY2VzcyB0b2tlbicpOworICAgICAgICAgICAgJHJlc3BvbnNlLT5hZGRIdHRwSGVhZGVycyhhcnJheSgKKyAgICAgICAgICAgICAgICAnV1dXLUF1dGhlbnRpY2F0ZScgPT4gc3ByaW50ZignJXMgcmVhbG09IiVzIiwgc2NvcGU9IiVzIiwgZXJyb3I9IiVzIiwgZXJyb3JfZGVzY3JpcHRpb249IiVzIicsCisgICAgICAgICAgICAgICAgICAgICR0aGlzLT50b2tlblR5cGUtPmdldFRva2VuVHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29uZmlnWyd3d3dfcmVhbG0nXSwKKyAgICAgICAgICAgICAgICAgICAgJHNjb3BlLAorICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwKKyAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApKTsKKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gYWxsb3cgcmV0cmlldmFsIG9mIHRoZSB0b2tlbgorICAgICAgICAkdGhpcy0+dG9rZW4gPSAkdG9rZW47CisKKyAgICAgICAgcmV0dXJuIChib29sKSAkdG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFjY2VzcyB0b2tlbiBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZQorICAgICAqIEByZXR1cm4gYXJyYXl8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbkRhdGEoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgLy8gR2V0IHRoZSB0b2tlbiBwYXJhbWV0ZXIKKyAgICAgICAgaWYgKCR0b2tlbl9wYXJhbSA9ICR0aGlzLT50b2tlblR5cGUtPmdldEFjY2Vzc1Rva2VuUGFyYW1ldGVyKCRyZXF1ZXN0LCAkcmVzcG9uc2UpKSB7CisgICAgICAgICAgICAvLyBHZXQgdGhlIHN0b3JlZCB0b2tlbiBkYXRhIChmcm9tIHRoZSBpbXBsZW1lbnRpbmcgc3ViY2xhc3MpCisgICAgICAgICAgICAvLyBDaGVjayB3ZSBoYXZlIGEgd2VsbCBmb3JtZWQgdG9rZW4KKyAgICAgICAgICAgIC8vIENoZWNrIHRva2VuIGV4cGlyYXRpb24gKGV4cGlyZXMgaXMgYSBtYW5kYXRvcnkgcGFyYW10ZXIpCisgICAgICAgICAgICBpZiAoISR0b2tlbiA9ICR0aGlzLT50b2tlblN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCR0b2tlbl9wYXJhbSkpIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMSwgJ2ludmFsaWRfdG9rZW4nLCAnVGhlIGFjY2VzcyB0b2tlbiBwcm92aWRlZCBpcyBpbnZhbGlkJyk7CisgICAgICAgICAgICB9IGVsc2VpZiAoIWlzc2V0KCR0b2tlblsiZXhwaXJlcyJdKSB8fCAhaXNzZXQoJHRva2VuWyJjbGllbnRfaWQiXSkpIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMSwgJ21hbGZvcm1lZF90b2tlbicsICdNYWxmb3JtZWQgdG9rZW4gKG1pc3NpbmcgImV4cGlyZXMiKScpOworICAgICAgICAgICAgfSBlbHNlaWYgKHRpbWUoKSA+ICR0b2tlblsiZXhwaXJlcyJdKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDEsICdpbnZhbGlkX3Rva2VuJywgJ1RoZSBhY2Nlc3MgdG9rZW4gcHJvdmlkZWQgaGFzIGV4cGlyZWQnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRhdXRoSGVhZGVyID0gc3ByaW50ZignJXMgcmVhbG09IiVzIicsICR0aGlzLT50b2tlblR5cGUtPmdldFRva2VuVHlwZSgpLCAkdGhpcy0+Y29uZmlnWyd3d3dfcmVhbG0nXSk7CisKKyAgICAgICAgaWYgKCRlcnJvciA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpKSB7CisgICAgICAgICAgICAkYXV0aEhlYWRlciA9IHNwcmludGYoJyVzLCBlcnJvcj0iJXMiJywgJGF1dGhIZWFkZXIsICRlcnJvcik7CisgICAgICAgICAgICBpZiAoJGVycm9yX2Rlc2NyaXB0aW9uID0gJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykpIHsKKyAgICAgICAgICAgICAgICAkYXV0aEhlYWRlciA9IHNwcmludGYoJyVzLCBlcnJvcl9kZXNjcmlwdGlvbj0iJXMiJywgJGF1dGhIZWFkZXIsICRlcnJvcl9kZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAkcmVzcG9uc2UtPmFkZEh0dHBIZWFkZXJzKGFycmF5KCdXV1ctQXV0aGVudGljYXRlJyA9PiAkYXV0aEhlYWRlcikpOworCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIGNvbnZlbmllbmNlIG1ldGhvZCB0byBhbGxvdyByZXRyaWV2YWwgb2YgdGhlIHRva2VuLgorICAgICAqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUb2tlbigpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnRva2VuOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0NvbnRyb2xsZXIvUmVzb3VyY2VDb250cm9sbGVySW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0NvbnRyb2xsZXIvUmVzb3VyY2VDb250cm9sbGVySW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDAwNTE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9SZXNvdXJjZUNvbnRyb2xsZXJJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsNDEgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcQ29udHJvbGxlcjsKKwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKKworLyoqCisgKiAgVGhpcyBjb250cm9sbGVyIGlzIGNhbGxlZCB3aGVuIGEgInJlc291cmNlIiBpcyByZXF1ZXN0ZWQuCisgKiAgY2FsbCB2ZXJpZnlSZXNvdXJjZVJlcXVlc3QgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSByZXF1ZXN0CisgKiAgY29udGFpbnMgYSB2YWxpZCB0b2tlbi4KKyAqCisgKiBAY29kZQorICogICAgIGlmICghJHJlc291cmNlQ29udHJvbGxlci0+dmVyaWZ5UmVzb3VyY2VSZXF1ZXN0KE9BdXRoMlxSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpLCAkcmVzcG9uc2UgPSBuZXcgT0F1dGgyXFJlc3BvbnNlKCkpKSB7CisgKiAgICAgICAgICRyZXNwb25zZS0+c2VuZCgpOyAvLyBhdXRob3JpemF0aW9uIGZhaWxlZAorICogICAgICAgICBleGl0KCk7CisgKiAgICAgfQorICogICAgIHJldHVybiBqc29uX2VuY29kZSgkcmVzb3VyY2UpOyAvLyB2YWxpZCB0b2tlbiEgIFNlbmQgdGhlIHN0dWZmIQorICogQGVuZGNvZGUKKyAqLworaW50ZXJmYWNlIFJlc291cmNlQ29udHJvbGxlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgcmVzb3VyY2UgcmVxdWVzdAorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0ICAtIFJlcXVlc3Qgb2JqZWN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdAorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAkc2NvcGUKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZlcmlmeVJlc291cmNlUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UsICRzY29wZSA9IG51bGwpOworCisgICAgLyoqCisgICAgICogR2V0IGFjY2VzcyB0b2tlbiBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0ICAtIFJlcXVlc3Qgb2JqZWN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWNjZXNzVG9rZW5EYXRhKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL1Rva2VuQ29udHJvbGxlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL1Rva2VuQ29udHJvbGxlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZkYWY4NQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0NvbnRyb2xsZXIvVG9rZW5Db250cm9sbGVyLnBocApAQCAtMCwwICsxLDMzMyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFJlc3BvbnNlVHlwZVxBY2Nlc3NUb2tlbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZVxDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlOwordXNlIE9BdXRoMlxHcmFudFR5cGVcR3JhbnRUeXBlSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTY29wZUludGVyZmFjZTsKK3VzZSBPQXV0aDJcU2NvcGU7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKK3VzZSBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247Cit1c2UgTG9naWNFeGNlcHRpb247Cit1c2UgUnVudGltZUV4Y2VwdGlvbjsKKworLyoqCisgKiBAc2VlIFRva2VuQ29udHJvbGxlckludGVyZmFjZQorICovCitjbGFzcyBUb2tlbkNvbnRyb2xsZXIgaW1wbGVtZW50cyBUb2tlbkNvbnRyb2xsZXJJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIEFjY2Vzc1Rva2VuSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlbjsKKworICAgIC8qKgorICAgICAqIEB2YXIgYXJyYXk8R3JhbnRUeXBlSW50ZXJmYWNlPgorICAgICAqLworICAgIHByb3RlY3RlZCAkZ3JhbnRUeXBlczsKKworICAgIC8qKgorICAgICAqIEB2YXIgQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkY2xpZW50QXNzZXJ0aW9uVHlwZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgU2NvcGVJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHNjb3BlVXRpbDsKKworICAgIC8qKgorICAgICAqIEB2YXIgQ2xpZW50SW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRjbGllbnRTdG9yYWdlOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKgorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlbkludGVyZmFjZSAgICAgICAgICRhY2Nlc3NUb2tlbgorICAgICAqIEBwYXJhbSBDbGllbnRJbnRlcmZhY2UgICAgICAgICAgICAgICRjbGllbnRTdG9yYWdlCisgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgJGdyYW50VHlwZXMKKyAgICAgKiBAcGFyYW0gQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZSAkY2xpZW50QXNzZXJ0aW9uVHlwZQorICAgICAqIEBwYXJhbSBTY29wZUludGVyZmFjZSAgICAgICAgICAgICAgICRzY29wZVV0aWwKKyAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4sIENsaWVudEludGVyZmFjZSAkY2xpZW50U3RvcmFnZSwgYXJyYXkgJGdyYW50VHlwZXMgPSBhcnJheSgpLCBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlICRjbGllbnRBc3NlcnRpb25UeXBlID0gbnVsbCwgU2NvcGVJbnRlcmZhY2UgJHNjb3BlVXRpbCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkY2xpZW50QXNzZXJ0aW9uVHlwZSkpIHsKKyAgICAgICAgICAgIGZvcmVhY2ggKCRncmFudFR5cGVzIGFzICRncmFudFR5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoISRncmFudFR5cGUgaW5zdGFuY2VvZiBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ1lvdSBtdXN0IHN1cHBseSBhbiBpbnN0YW5jZSBvZiBPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZVxDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlIG9yIG9ubHkgdXNlIGdyYW50IHR5cGVzIHdoaWNoIGltcGxlbWVudCBPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZVxDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICR0aGlzLT5jbGllbnRBc3NlcnRpb25UeXBlID0gJGNsaWVudEFzc2VydGlvblR5cGU7CisgICAgICAgICR0aGlzLT5hY2Nlc3NUb2tlbiA9ICRhY2Nlc3NUb2tlbjsKKyAgICAgICAgJHRoaXMtPmNsaWVudFN0b3JhZ2UgPSAkY2xpZW50U3RvcmFnZTsKKyAgICAgICAgZm9yZWFjaCAoJGdyYW50VHlwZXMgYXMgJGdyYW50VHlwZSkgeworICAgICAgICAgICAgJHRoaXMtPmFkZEdyYW50VHlwZSgkZ3JhbnRUeXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc19udWxsKCRzY29wZVV0aWwpKSB7CisgICAgICAgICAgICAkc2NvcGVVdGlsID0gbmV3IFNjb3BlKCk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPnNjb3BlVXRpbCA9ICRzY29wZVV0aWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIHRoZSB0b2tlbiByZXF1ZXN0LgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0ICAtIFJlcXVlc3Qgb2JqZWN0IHRvIGdyYW50IGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UgLSBSZXNwb25zZSBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlVG9rZW5SZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmICgkdG9rZW4gPSAkdGhpcy0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlKSkgeworICAgICAgICAgICAgLy8gQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNS4xCisgICAgICAgICAgICAvLyBzZXJ2ZXIgTVVTVCBkaXNhYmxlIGNhY2hpbmcgaW4gaGVhZGVycyB3aGVuIHRva2VucyBhcmUgaW52b2x2ZWQKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0U3RhdHVzQ29kZSgyMDApOworICAgICAgICAgICAgJHJlc3BvbnNlLT5hZGRQYXJhbWV0ZXJzKCR0b2tlbik7CisgICAgICAgICAgICAkcmVzcG9uc2UtPmFkZEh0dHBIZWFkZXJzKGFycmF5KAorICAgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sJyA9PiAnbm8tc3RvcmUnLAorICAgICAgICAgICAgICAgICdQcmFnbWEnID0+ICduby1jYWNoZScsCisgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZScgPT4gJ2FwcGxpY2F0aW9uL2pzb24nCisgICAgICAgICAgICApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdyYW50IG9yIGRlbnkgYSByZXF1ZXN0ZWQgYWNjZXNzIHRva2VuLgorICAgICAqIFRoaXMgd291bGQgYmUgY2FsbGVkIGZyb20gdGhlICIvdG9rZW4iIGVuZHBvaW50IGFzIGRlZmluZWQgaW4gdGhlIHNwZWMuCisgICAgICogWW91IGNhbiBjYWxsIHlvdXIgZW5kcG9pbnQgd2hhdGV2ZXIgeW91IHdhbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QgIC0gUmVxdWVzdCBvYmplY3QgdG8gZ3JhbnQgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdAorICAgICAqCisgICAgICogQHJldHVybiBib29sfG51bGx8YXJyYXkKKyAgICAgKgorICAgICAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgXExvZ2ljRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00CisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMTAuNgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMS4zCisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl80CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdyYW50QWNjZXNzVG9rZW4oUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKHN0cnRvbG93ZXIoJHJlcXVlc3QtPnNlcnZlcignUkVRVUVTVF9NRVRIT0QnKSkgPT09ICdvcHRpb25zJykgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5hZGRIdHRwSGVhZGVycyhhcnJheSgnQWxsb3cnID0+ICdQT1NULCBPUFRJT05TJykpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdHJ0b2xvd2VyKCRyZXF1ZXN0LT5zZXJ2ZXIoJ1JFUVVFU1RfTUVUSE9EJykpICE9PSAncG9zdCcpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDA1LCAnaW52YWxpZF9yZXF1ZXN0JywgJ1RoZSByZXF1ZXN0IG1ldGhvZCBtdXN0IGJlIFBPU1Qgd2hlbiByZXF1ZXN0aW5nIGFuIGFjY2VzcyB0b2tlbicsICcjc2VjdGlvbi0zLjInKTsKKyAgICAgICAgICAgICRyZXNwb25zZS0+YWRkSHR0cEhlYWRlcnMoYXJyYXkoJ0FsbG93JyA9PiAnUE9TVCwgT1BUSU9OUycpKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogRGV0ZXJtaW5lIGdyYW50IHR5cGUgZnJvbSByZXF1ZXN0CisgICAgICAgICAqIGFuZCB2YWxpZGF0ZSB0aGUgcmVxdWVzdCBmb3IgdGhhdCBncmFudCB0eXBlCisgICAgICAgICAqLworICAgICAgICBpZiAoISRncmFudFR5cGVJZGVudGlmaWVyID0gJHJlcXVlc3QtPnJlcXVlc3QoJ2dyYW50X3R5cGUnKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3JlcXVlc3QnLCAnVGhlIGdyYW50IHR5cGUgd2FzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIHJlcXVlc3QnKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5ncmFudFR5cGVzWyRncmFudFR5cGVJZGVudGlmaWVyXSkpIHsKKyAgICAgICAgICAgIC8qIFRPRE86IElmIHRoaXMgaXMgYW4gT0F1dGgyIHN1cHBvcnRlZCBncmFudCB0eXBlIHRoYXQgd2UgaGF2ZSBjaG9zZW4gbm90IHRvIGltcGxlbWVudCwgdGhyb3cgYSA1MDEgTm90IEltcGxlbWVudGVkIGluc3RlYWQgKi8KKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAndW5zdXBwb3J0ZWRfZ3JhbnRfdHlwZScsIHNwcmludGYoJ0dyYW50IHR5cGUgIiVzIiBub3Qgc3VwcG9ydGVkJywgJGdyYW50VHlwZUlkZW50aWZpZXIpKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKiogQHZhciBHcmFudFR5cGVJbnRlcmZhY2UgJGdyYW50VHlwZSAqLworICAgICAgICAkZ3JhbnRUeXBlID0gJHRoaXMtPmdyYW50VHlwZXNbJGdyYW50VHlwZUlkZW50aWZpZXJdOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXRyaWV2ZSB0aGUgY2xpZW50IGluZm9ybWF0aW9uIGZyb20gdGhlIHJlcXVlc3QKKyAgICAgICAgICogQ2xpZW50QXNzZXJ0aW9uVHlwZXMgYWxsb3cgZm9yIGdyYW50IHR5cGVzIHdoaWNoIGFsc28gYXNzZXJ0IHRoZSBjbGllbnQgZGF0YQorICAgICAgICAgKiBpbiB3aGljaCBjYXNlIENsaWVudEFzc2VydGlvbiBpcyBoYW5kbGVkIGluIHRoZSB2YWxpZGF0ZVJlcXVlc3QgbWV0aG9kCisgICAgICAgICAqCisgICAgICAgICAqIEBzZWUgXE9BdXRoMlxHcmFudFR5cGVcSldUQmVhcmVyCisgICAgICAgICAqIEBzZWUgXE9BdXRoMlxHcmFudFR5cGVcQ2xpZW50Q3JlZGVudGlhbHMKKyAgICAgICAgICovCisgICAgICAgIGlmICghJGdyYW50VHlwZSBpbnN0YW5jZW9mIENsaWVudEFzc2VydGlvblR5cGVJbnRlcmZhY2UpIHsKKyAgICAgICAgICAgIGlmICghJHRoaXMtPmNsaWVudEFzc2VydGlvblR5cGUtPnZhbGlkYXRlUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJGNsaWVudElkID0gJHRoaXMtPmNsaWVudEFzc2VydGlvblR5cGUtPmdldENsaWVudElkKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0cmlldmUgdGhlIGdyYW50IHR5cGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgcmVxdWVzdAorICAgICAgICAgKiBUaGUgR3JhbnRUeXBlSW50ZXJmYWNlIG9iamVjdCBoYW5kbGVzIGFsbCB2YWxpZGF0aW9uCisgICAgICAgICAqIElmIHRoZSBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZSwKKyAgICAgICAgICogVGhhdCBsb2dpYyBpcyBoYW5kbGVkIGhlcmUgYXMgd2VsbAorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCEkZ3JhbnRUeXBlLT52YWxpZGF0ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCRncmFudFR5cGUgaW5zdGFuY2VvZiBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICAkY2xpZW50SWQgPSAkZ3JhbnRUeXBlLT5nZXRDbGllbnRJZCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gdmFsaWRhdGUgdGhlIENsaWVudCBJRCAoaWYgYXBwbGljYWJsZSkKKyAgICAgICAgICAgIGlmICghaXNfbnVsbCgkc3RvcmVkQ2xpZW50SWQgPSAkZ3JhbnRUeXBlLT5nZXRDbGllbnRJZCgpKSAmJiAkc3RvcmVkQ2xpZW50SWQgIT0gJGNsaWVudElkKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2dyYW50Jywgc3ByaW50ZignJXMgZG9lc25cJ3QgZXhpc3Qgb3IgaXMgaW52YWxpZCBmb3IgdGhlIGNsaWVudCcsICRncmFudFR5cGVJZGVudGlmaWVyKSk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWxpZGF0ZSB0aGUgY2xpZW50IGNhbiB1c2UgdGhlIHJlcXVlc3RlZCBncmFudCB0eXBlCisgICAgICAgICAqLworICAgICAgICBpZiAoISR0aGlzLT5jbGllbnRTdG9yYWdlLT5jaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUoJGNsaWVudElkLCAkZ3JhbnRUeXBlSWRlbnRpZmllcikpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAndW5hdXRob3JpemVkX2NsaWVudCcsICdUaGUgZ3JhbnQgdHlwZSBpcyB1bmF1dGhvcml6ZWQgZm9yIHRoaXMgY2xpZW50X2lkJyk7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWxpZGF0ZSB0aGUgc2NvcGUgb2YgdGhlIHRva2VuCisgICAgICAgICAqCisgICAgICAgICAqIHJlcXVlc3RlZFNjb3BlIC0gdGhlIHNjb3BlIHNwZWNpZmllZCBpbiB0aGUgdG9rZW4gcmVxdWVzdAorICAgICAgICAgKiBhdmFpbGFibGVTY29wZSAtIHRoZSBzY29wZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdyYW50IHR5cGUKKyAgICAgICAgICogIGV4OiBpbiB0aGUgY2FzZSBvZiB0aGUgIkF1dGhvcml6YXRpb24gQ29kZSIgZ3JhbnQgdHlwZSwKKyAgICAgICAgICogIHRoZSBzY29wZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGF1dGhvcml6ZSByZXF1ZXN0CisgICAgICAgICAqCisgICAgICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTMuMworICAgICAgICAgKi8KKyAgICAgICAgJHJlcXVlc3RlZFNjb3BlID0gJHRoaXMtPnNjb3BlVXRpbC0+Z2V0U2NvcGVGcm9tUmVxdWVzdCgkcmVxdWVzdCk7CisgICAgICAgICRhdmFpbGFibGVTY29wZSA9ICRncmFudFR5cGUtPmdldFNjb3BlKCk7CisKKyAgICAgICAgaWYgKCRyZXF1ZXN0ZWRTY29wZSkgeworICAgICAgICAgICAgLy8gdmFsaWRhdGUgdGhlIHJlcXVlc3RlZCBzY29wZQorICAgICAgICAgICAgaWYgKCRhdmFpbGFibGVTY29wZSkgeworICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnNjb3BlVXRpbC0+Y2hlY2tTY29wZSgkcmVxdWVzdGVkU2NvcGUsICRhdmFpbGFibGVTY29wZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3Njb3BlJywgJ1RoZSBzY29wZSByZXF1ZXN0ZWQgaXMgaW52YWxpZCBmb3IgdGhpcyByZXF1ZXN0Jyk7CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZSB0aGUgY2xpZW50IGhhcyBhY2Nlc3MgdG8gdGhpcyBzY29wZQorICAgICAgICAgICAgICAgIGlmICgkY2xpZW50U2NvcGUgPSAkdGhpcy0+Y2xpZW50U3RvcmFnZS0+Z2V0Q2xpZW50U2NvcGUoJGNsaWVudElkKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5zY29wZVV0aWwtPmNoZWNrU2NvcGUoJHJlcXVlc3RlZFNjb3BlLCAkY2xpZW50U2NvcGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfc2NvcGUnLCAnVGhlIHNjb3BlIHJlcXVlc3RlZCBpcyBpbnZhbGlkIGZvciB0aGlzIGNsaWVudCcpOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2VpZiAoISR0aGlzLT5zY29wZVV0aWwtPnNjb3BlRXhpc3RzKCRyZXF1ZXN0ZWRTY29wZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3Njb3BlJywgJ0FuIHVuc3VwcG9ydGVkIHNjb3BlIHdhcyByZXF1ZXN0ZWQnKTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZWlmICgkYXZhaWxhYmxlU2NvcGUpIHsKKyAgICAgICAgICAgIC8vIHVzZSB0aGUgc2NvcGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJHJlcXVlc3RlZFNjb3BlID0gJGF2YWlsYWJsZVNjb3BlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gdXNlIGEgZ2xvYmFsbHktZGVmaW5lZCBkZWZhdWx0IHNjb3BlCisgICAgICAgICAgICAkZGVmYXVsdFNjb3BlID0gJHRoaXMtPnNjb3BlVXRpbC0+Z2V0RGVmYXVsdFNjb3BlKCRjbGllbnRJZCk7CisKKyAgICAgICAgICAgIC8vICJmYWxzZSIgbWVhbnMgZGVmYXVsdCBzY29wZXMgYXJlIG5vdCBhbGxvd2VkCisgICAgICAgICAgICBpZiAoZmFsc2UgPT09ICRkZWZhdWx0U2NvcGUpIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfc2NvcGUnLCAnVGhpcyBhcHBsaWNhdGlvbiByZXF1aXJlcyB5b3Ugc3BlY2lmeSBhIHNjb3BlIHBhcmFtZXRlcicpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRyZXF1ZXN0ZWRTY29wZSA9ICRkZWZhdWx0U2NvcGU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGdyYW50VHlwZS0+Y3JlYXRlQWNjZXNzVG9rZW4oJHRoaXMtPmFjY2Vzc1Rva2VuLCAkY2xpZW50SWQsICRncmFudFR5cGUtPmdldFVzZXJJZCgpLCAkcmVxdWVzdGVkU2NvcGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBncmFudCB0eXBlCisgICAgICoKKyAgICAgKiBAcGFyYW0gR3JhbnRUeXBlSW50ZXJmYWNlICRncmFudFR5cGUgIC0gdGhlIGdyYW50IHR5cGUgdG8gYWRkIGZvciB0aGUgc3BlY2lmaWVkIGlkZW50aWZpZXIKKyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgICAgICAgICRpZGVudGlmaWVyIC0gYSBzdHJpbmcgcGFzc2VkIGluIGFzICJncmFudF90eXBlIiBpbiB0aGUgcmVzcG9uc2UgdGhhdCB3aWxsIGNhbGwgdGhpcyBncmFudFR5cGUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkR3JhbnRUeXBlKEdyYW50VHlwZUludGVyZmFjZSAkZ3JhbnRUeXBlLCAkaWRlbnRpZmllciA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkaWRlbnRpZmllcikgfHwgaXNfbnVtZXJpYygkaWRlbnRpZmllcikpIHsKKyAgICAgICAgICAgICRpZGVudGlmaWVyID0gJGdyYW50VHlwZS0+Z2V0UXVlcnlTdHJpbmdJZGVudGlmaWVyKCk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+Z3JhbnRUeXBlc1skaWRlbnRpZmllcl0gPSAkZ3JhbnRUeXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlUmV2b2tlUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPnJldm9rZVRva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UpKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldFN0YXR1c0NvZGUoMjAwKTsKKyAgICAgICAgICAgICRyZXNwb25zZS0+YWRkUGFyYW1ldGVycyhhcnJheSgncmV2b2tlZCcgPT4gdHJ1ZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV2b2tlIGEgcmVmcmVzaCBvciBhY2Nlc3MgdG9rZW4uIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzIGFuZCB3aGVuIHRva2VucyBhcmUgaW52YWxpZAorICAgICAqCisgICAgICogTm90ZTogaW52YWxpZCB0b2tlbnMgZG8gbm90IGNhdXNlIGFuIGVycm9yIHJlc3BvbnNlIHNpbmNlIHRoZSBjbGllbnQKKyAgICAgKiBjYW5ub3QgaGFuZGxlIHN1Y2ggYW4gZXJyb3IgaW4gYSByZWFzb25hYmxlIHdheS4gIE1vcmVvdmVyLCB0aGUKKyAgICAgKiBwdXJwb3NlIG9mIHRoZSByZXZvY2F0aW9uIHJlcXVlc3QsIGludmFsaWRhdGluZyB0aGUgcGFydGljdWxhciB0b2tlbiwKKyAgICAgKiBpcyBhbHJlYWR5IGFjaGlldmVkLgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHRocm93cyBSdW50aW1lRXhjZXB0aW9uCisgICAgICogQHJldHVybiBib29sfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcmV2b2tlVG9rZW4oUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKHN0cnRvbG93ZXIoJHJlcXVlc3QtPnNlcnZlcignUkVRVUVTVF9NRVRIT0QnKSkgPT09ICdvcHRpb25zJykgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5hZGRIdHRwSGVhZGVycyhhcnJheSgnQWxsb3cnID0+ICdQT1NULCBPUFRJT05TJykpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdHJ0b2xvd2VyKCRyZXF1ZXN0LT5zZXJ2ZXIoJ1JFUVVFU1RfTUVUSE9EJykpICE9PSAncG9zdCcpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDA1LCAnaW52YWxpZF9yZXF1ZXN0JywgJ1RoZSByZXF1ZXN0IG1ldGhvZCBtdXN0IGJlIFBPU1Qgd2hlbiByZXZva2luZyBhbiBhY2Nlc3MgdG9rZW4nLCAnI3NlY3Rpb24tMy4yJyk7CisgICAgICAgICAgICAkcmVzcG9uc2UtPmFkZEh0dHBIZWFkZXJzKGFycmF5KCdBbGxvdycgPT4gJ1BPU1QsIE9QVElPTlMnKSk7CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgJHRva2VuX3R5cGVfaGludCA9ICRyZXF1ZXN0LT5yZXF1ZXN0KCd0b2tlbl90eXBlX2hpbnQnKTsKKyAgICAgICAgaWYgKCFpbl9hcnJheSgkdG9rZW5fdHlwZV9oaW50LCBhcnJheShudWxsLCAnYWNjZXNzX3Rva2VuJywgJ3JlZnJlc2hfdG9rZW4nKSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9yZXF1ZXN0JywgJ1Rva2VuIHR5cGUgaGludCBtdXN0IGJlIGVpdGhlciBcJ2FjY2Vzc190b2tlblwnIG9yIFwncmVmcmVzaF90b2tlblwnJyk7CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgJHRva2VuID0gJHJlcXVlc3QtPnJlcXVlc3QoJ3Rva2VuJyk7CisgICAgICAgIGlmICgkdG9rZW4gPT09IG51bGwpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9yZXF1ZXN0JywgJ01pc3NpbmcgdG9rZW4gcGFyYW1ldGVyIHRvIHJldm9rZScpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEB0b2RvIHJlbW92ZSB0aGlzIGNoZWNrIGZvciB2Mi4wCisgICAgICAgIGlmICghbWV0aG9kX2V4aXN0cygkdGhpcy0+YWNjZXNzVG9rZW4sICdyZXZva2VUb2tlbicpKSB7CisgICAgICAgICAgICAkY2xhc3MgPSBnZXRfY2xhc3MoJHRoaXMtPmFjY2Vzc1Rva2VuKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJBY2Nlc3NUb2tlbiB7JGNsYXNzfSBkb2VzIG5vdCBpbXBsZW1lbnQgcmVxdWlyZWQgcmV2b2tlVG9rZW4gbWV0aG9kIik7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+YWNjZXNzVG9rZW4tPnJldm9rZVRva2VuKCR0b2tlbiwgJHRva2VuX3R5cGVfaGludCk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9Ub2tlbkNvbnRyb2xsZXJJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvQ29udHJvbGxlci9Ub2tlbkNvbnRyb2xsZXJJbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmODNjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Db250cm9sbGVyL1Rva2VuQ29udHJvbGxlckludGVyZmFjZS5waHAKQEAgLTAsMCArMSwzOSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFJlcXVlc3RJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlSW50ZXJmYWNlOworCisvKioKKyAqICBUaGlzIGNvbnRyb2xsZXIgaXMgY2FsbGVkIHdoZW4gYSB0b2tlbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKiAgaXQgaXMgY2FsbGVkIHRvIGhhbmRsZSBhbGwgZ3JhbnQgdHlwZXMgdGhlIGFwcGxpY2F0aW9uIHN1cHBvcnRzLgorICogIEl0IGFsc28gdmFsaWRhdGVzIHRoZSBjbGllbnQncyBjcmVkZW50aWFscworICoKKyAqIEBjb2RlCisgKiAgICAgJHRva2VuQ29udHJvbGxlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KE9BdXRoMlxSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpLCAkcmVzcG9uc2UgPSBuZXcgT0F1dGgyXFJlc3BvbnNlKCkpOworICogICAgICRyZXNwb25zZS0+c2VuZCgpOworICogQGVuZGNvZGUKKyAqLworaW50ZXJmYWNlIFRva2VuQ29udHJvbGxlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgdG9rZW4gcmVxdWVzdAorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QgICAtIFRoZSBjdXJyZW50IGh0dHAgcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UgLSBBbiBpbnN0YW5jZSBvZiBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2UgdG8gY29udGFpbiB0aGUgcmVzcG9uc2UgZGF0YQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVUb2tlblJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKTsKKworICAgIC8qKgorICAgICAqIEdyYW50IG9yIGRlbnkgYSByZXF1ZXN0ZWQgYWNjZXNzIHRva2VuLgorICAgICAqIFRoaXMgd291bGQgYmUgY2FsbGVkIGZyb20gdGhlICIvdG9rZW4iIGVuZHBvaW50IGFzIGRlZmluZWQgaW4gdGhlIHNwZWMuCisgICAgICogWW91IGNhbiBjYWxsIHlvdXIgZW5kcG9pbnQgd2hhdGV2ZXIgeW91IHdhbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QgIC0gUmVxdWVzdCBvYmplY3QgdG8gZ3JhbnQgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBncmFudEFjY2Vzc1Rva2VuKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9FbmNyeXB0aW9uL0VuY3J5cHRpb25JbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvRW5jcnlwdGlvbi9FbmNyeXB0aW9uSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGM3MjBhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvRW5jcnlwdGlvbi9FbmNyeXB0aW9uSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDM0IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEVuY3J5cHRpb247CisKK2ludGVyZmFjZSBFbmNyeXB0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHBhcmFtICRwYXlsb2FkCisgICAgICogQHBhcmFtICRrZXkKKyAgICAgKiBAcGFyYW0gbnVsbCAkYWxnb3JpdGhtCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBlbmNvZGUoJHBheWxvYWQsICRrZXksICRhbGdvcml0aG0gPSBudWxsKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkcGF5bG9hZAorICAgICAqIEBwYXJhbSAka2V5CisgICAgICogQHBhcmFtIG51bGwgJGFsZ29yaXRobQorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZGVjb2RlKCRwYXlsb2FkLCAka2V5LCAkYWxnb3JpdGhtID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGRhdGEKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVybFNhZmVCNjRFbmNvZGUoJGRhdGEpOworCisgICAgLyoqCisgICAgICogQHBhcmFtICRiNjQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVybFNhZmVCNjREZWNvZGUoJGI2NCk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9FbmNyeXB0aW9uL0ZpcmViYXNlSnd0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0VuY3J5cHRpb24vRmlyZWJhc2VKd3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNTI3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9FbmNyeXB0aW9uL0ZpcmViYXNlSnd0LnBocApAQCAtMCwwICsxLDQ3IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEVuY3J5cHRpb247CisKKy8qKgorICogQnJpZGdlIGZpbGUgdG8gdXNlIHRoZSBmaXJlYmFzZS9waHAtand0IHBhY2thZ2UgZm9yIEpXVCBlbmNvZGluZyBhbmQgZGVjb2RpbmcuCisgKiBAYXV0aG9yIEZyYW5jaXMgQ2h1YW5nIDxmcmFuY2lzLmNodWFuZ0BnbWFpbC5jb20+CisgKi8KK2NsYXNzIEZpcmViYXNlSnd0IGltcGxlbWVudHMgRW5jcnlwdGlvbkludGVyZmFjZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCisgICAgeworICAgICAgICBpZiAoIWNsYXNzX2V4aXN0cygnXEpXVCcpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXEVycm9yRXhjZXB0aW9uKCdmaXJlYmFzZS9waHAtand0IG11c3QgYmUgaW5zdGFsbGVkIHRvIHVzZSB0aGlzIGZlYXR1cmUuIFlvdSBjYW4gZG8gdGhpcyBieSBydW5uaW5nICJjb21wb3NlciByZXF1aXJlIGZpcmViYXNlL3BocC1qd3QiJyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZW5jb2RlKCRwYXlsb2FkLCAka2V5LCAkYWxnID0gJ0hTMjU2JywgJGtleUlkID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiBcSldUOjplbmNvZGUoJHBheWxvYWQsICRrZXksICRhbGcsICRrZXlJZCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGRlY29kZSgkand0LCAka2V5ID0gbnVsbCwgJGFsbG93ZWRBbGdvcml0aG1zID0gbnVsbCkKKyAgICB7CisgICAgICAgIHRyeSB7CisKKyAgICAgICAgICAgIC8vTWFpbnRhaW4gQkM6IERvIG5vdCB2ZXJpZnkgaWYgbm8gYWxnb3JpdGhtcyBhcmUgcGFzc2VkIGluLgorICAgICAgICAgICAgaWYgKCEkYWxsb3dlZEFsZ29yaXRobXMpIHsKKyAgICAgICAgICAgICAgICAka2V5ID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIChhcnJheSlcSldUOjpkZWNvZGUoJGp3dCwgJGtleSwgJGFsbG93ZWRBbGdvcml0aG1zKTsKKyAgICAgICAgfSBjYXRjaCAoXEV4Y2VwdGlvbiAkZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHVybFNhZmVCNjRFbmNvZGUoJGRhdGEpCisgICAgeworICAgICAgICByZXR1cm4gXEpXVDo6dXJsc2FmZUI2NEVuY29kZSgkZGF0YSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHVybFNhZmVCNjREZWNvZGUoJGI2NCkKKyAgICB7CisgICAgICAgIHJldHVybiBcSldUOjp1cmxzYWZlQjY0RGVjb2RlKCRiNjQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0VuY3J5cHRpb24vSnd0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0VuY3J5cHRpb24vSnd0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjU4YjhmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvRW5jcnlwdGlvbi9Kd3QucGhwCkBAIC0wLDAgKzEsMjIzIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEVuY3J5cHRpb247CisKK3VzZSBFeGNlcHRpb247Cit1c2UgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uOworCisvKioKKyAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9GMjEvand0CisgKiBAYXV0aG9yIEYyMQorICovCitjbGFzcyBKd3QgaW1wbGVtZW50cyBFbmNyeXB0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHBhcmFtICRwYXlsb2FkCisgICAgICogQHBhcmFtICRrZXkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhbGdvCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZW5jb2RlKCRwYXlsb2FkLCAka2V5LCAkYWxnbyA9ICdIUzI1NicpCisgICAgeworICAgICAgICAkaGVhZGVyID0gJHRoaXMtPmdlbmVyYXRlSnd0SGVhZGVyKCRwYXlsb2FkLCAkYWxnbyk7CisKKyAgICAgICAgJHNlZ21lbnRzID0gYXJyYXkoCisgICAgICAgICAgICAkdGhpcy0+dXJsU2FmZUI2NEVuY29kZShqc29uX2VuY29kZSgkaGVhZGVyKSksCisgICAgICAgICAgICAkdGhpcy0+dXJsU2FmZUI2NEVuY29kZShqc29uX2VuY29kZSgkcGF5bG9hZCkpCisgICAgICAgICk7CisKKyAgICAgICAgJHNpZ25pbmdfaW5wdXQgPSBpbXBsb2RlKCcuJywgJHNlZ21lbnRzKTsKKworICAgICAgICAkc2lnbmF0dXJlID0gJHRoaXMtPnNpZ24oJHNpZ25pbmdfaW5wdXQsICRrZXksICRhbGdvKTsKKyAgICAgICAgJHNlZ21lbnRzW10gPSAkdGhpcy0+dXJsc2FmZUI2NEVuY29kZSgkc2lnbmF0dXJlKTsKKworICAgICAgICByZXR1cm4gaW1wbG9kZSgnLicsICRzZWdtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRqd3QKKyAgICAgKiBAcGFyYW0gbnVsbCAgICAgICAgJGtleQorICAgICAqIEBwYXJhbSBhcnJheXxib29sICAkYWxsb3dlZEFsZ29yaXRobXMKKyAgICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZGVjb2RlKCRqd3QsICRrZXkgPSBudWxsLCAkYWxsb3dlZEFsZ29yaXRobXMgPSB0cnVlKQorICAgIHsKKyAgICAgICAgaWYgKCFzdHJwb3MoJGp3dCwgJy4nKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJHRrcyA9IGV4cGxvZGUoJy4nLCAkand0KTsKKworICAgICAgICBpZiAoY291bnQoJHRrcykgIT0gMykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbGlzdCgkaGVhZGI2NCwgJHBheWxvYWRiNjQsICRjcnlwdG9iNjQpID0gJHRrczsKKworICAgICAgICBpZiAobnVsbCA9PT0gKCRoZWFkZXIgPSBqc29uX2RlY29kZSgkdGhpcy0+dXJsU2FmZUI2NERlY29kZSgkaGVhZGI2NCksIHRydWUpKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG51bGwgPT09ICRwYXlsb2FkID0ganNvbl9kZWNvZGUoJHRoaXMtPnVybFNhZmVCNjREZWNvZGUoJHBheWxvYWRiNjQpLCB0cnVlKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJHNpZyA9ICR0aGlzLT51cmxTYWZlQjY0RGVjb2RlKCRjcnlwdG9iNjQpOworCisgICAgICAgIGlmICgoYm9vbCkgJGFsbG93ZWRBbGdvcml0aG1zKSB7CisgICAgICAgICAgICBpZiAoIWlzc2V0KCRoZWFkZXJbJ2FsZyddKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgaWYgYm9vbCBhcmcgc3VwcGxpZWQgaGVyZSB0byBtYWludGFpbiBCQworICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRhbGxvd2VkQWxnb3JpdGhtcykgJiYgIWluX2FycmF5KCRoZWFkZXJbJ2FsZyddLCAkYWxsb3dlZEFsZ29yaXRobXMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoISR0aGlzLT52ZXJpZnlTaWduYXR1cmUoJHNpZywgIiRoZWFkYjY0LiRwYXlsb2FkYjY0IiwgJGtleSwgJGhlYWRlclsnYWxnJ10pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRwYXlsb2FkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkc2lnbmF0dXJlCisgICAgICogQHBhcmFtICRpbnB1dAorICAgICAqIEBwYXJhbSAka2V5CisgICAgICogQHBhcmFtIHN0cmluZyAkYWxnbworICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmUoJHNpZ25hdHVyZSwgJGlucHV0LCAka2V5LCAkYWxnbyA9ICdIUzI1NicpCisgICAgeworICAgICAgICAvLyB1c2UgY29uc3RhbnRzIHdoZW4gcG9zc2libGUsIGZvciBIaXBIb3Agc3VwcG9ydAorICAgICAgICBzd2l0Y2ggKCRhbGdvKSB7CisgICAgICAgICAgICBjYXNlJ0hTMjU2JzoKKyAgICAgICAgICAgIGNhc2UnSFMzODQnOgorICAgICAgICAgICAgY2FzZSdIUzUxMic6CisgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5oYXNoX2VxdWFscygKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNpZ24oJGlucHV0LCAka2V5LCAkYWxnbyksCisgICAgICAgICAgICAgICAgICAgICRzaWduYXR1cmUKKyAgICAgICAgICAgICAgICApOworCisgICAgICAgICAgICBjYXNlICdSUzI1Nic6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW5zc2xfdmVyaWZ5KCRpbnB1dCwgJHNpZ25hdHVyZSwgJGtleSwgZGVmaW5lZCgnT1BFTlNTTF9BTEdPX1NIQTI1NicpID8gT1BFTlNTTF9BTEdPX1NIQTI1NiA6ICdzaGEyNTYnKSAgPT09IDE7CisKKyAgICAgICAgICAgIGNhc2UgJ1JTMzg0JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gQG9wZW5zc2xfdmVyaWZ5KCRpbnB1dCwgJHNpZ25hdHVyZSwgJGtleSwgZGVmaW5lZCgnT1BFTlNTTF9BTEdPX1NIQTM4NCcpID8gT1BFTlNTTF9BTEdPX1NIQTM4NCA6ICdzaGEzODQnKSA9PT0gMTsKKworICAgICAgICAgICAgY2FzZSAnUlM1MTInOgorICAgICAgICAgICAgICAgIHJldHVybiBAb3BlbnNzbF92ZXJpZnkoJGlucHV0LCAkc2lnbmF0dXJlLCAka2V5LCBkZWZpbmVkKCdPUEVOU1NMX0FMR09fU0hBNTEyJykgPyBPUEVOU1NMX0FMR09fU0hBNTEyIDogJ3NoYTUxMicpID09PSAxOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIlVuc3VwcG9ydGVkIG9yIGludmFsaWQgc2lnbmluZyBhbGdvcml0aG0uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGlucHV0CisgICAgICogQHBhcmFtICRrZXkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhbGdvCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gc2lnbigkaW5wdXQsICRrZXksICRhbGdvID0gJ0hTMjU2JykKKyAgICB7CisgICAgICAgIHN3aXRjaCAoJGFsZ28pIHsKKyAgICAgICAgICAgIGNhc2UgJ0hTMjU2JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFzaF9obWFjKCdzaGEyNTYnLCAkaW5wdXQsICRrZXksIHRydWUpOworCisgICAgICAgICAgICBjYXNlICdIUzM4NCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIGhhc2hfaG1hYygnc2hhMzg0JywgJGlucHV0LCAka2V5LCB0cnVlKTsKKworICAgICAgICAgICAgY2FzZSAnSFM1MTInOgorICAgICAgICAgICAgICAgIHJldHVybiBoYXNoX2htYWMoJ3NoYTUxMicsICRpbnB1dCwgJGtleSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGNhc2UgJ1JTMjU2JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmdlbmVyYXRlUlNBU2lnbmF0dXJlKCRpbnB1dCwgJGtleSwgZGVmaW5lZCgnT1BFTlNTTF9BTEdPX1NIQTI1NicpID8gT1BFTlNTTF9BTEdPX1NIQTI1NiA6ICdzaGEyNTYnKTsKKworICAgICAgICAgICAgY2FzZSAnUlMzODQnOgorICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Z2VuZXJhdGVSU0FTaWduYXR1cmUoJGlucHV0LCAka2V5LCBkZWZpbmVkKCdPUEVOU1NMX0FMR09fU0hBMzg0JykgPyBPUEVOU1NMX0FMR09fU0hBMzg0IDogJ3NoYTM4NCcpOworCisgICAgICAgICAgICBjYXNlICdSUzUxMic6CisgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5nZW5lcmF0ZVJTQVNpZ25hdHVyZSgkaW5wdXQsICRrZXksIGRlZmluZWQoJ09QRU5TU0xfQUxHT19TSEE1MTInKSA/IE9QRU5TU0xfQUxHT19TSEE1MTIgOiAnc2hhNTEyJyk7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiVW5zdXBwb3J0ZWQgb3IgaW52YWxpZCBzaWduaW5nIGFsZ29yaXRobS4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkaW5wdXQKKyAgICAgKiBAcGFyYW0gJGtleQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFsZ28KKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdlbmVyYXRlUlNBU2lnbmF0dXJlKCRpbnB1dCwgJGtleSwgJGFsZ28pCisgICAgeworICAgICAgICBpZiAoIW9wZW5zc2xfc2lnbigkaW5wdXQsICRzaWduYXR1cmUsICRrZXksICRhbGdvKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiVW5hYmxlIHRvIHNpZ24gZGF0YS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkc2lnbmF0dXJlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGRhdGEKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB1cmxTYWZlQjY0RW5jb2RlKCRkYXRhKQorICAgIHsKKyAgICAgICAgJGI2NCA9IGJhc2U2NF9lbmNvZGUoJGRhdGEpOworICAgICAgICAkYjY0ID0gc3RyX3JlcGxhY2UoYXJyYXkoJysnLCAnLycsICJcciIsICJcbiIsICc9JyksCisgICAgICAgICAgICAgICAgYXJyYXkoJy0nLCAnXycpLAorICAgICAgICAgICAgICAgICRiNjQpOworCisgICAgICAgIHJldHVybiAkYjY0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGI2NAorICAgICAqIEByZXR1cm4gbWl4ZWR8c3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVybFNhZmVCNjREZWNvZGUoJGI2NCkKKyAgICB7CisgICAgICAgICRiNjQgPSBzdHJfcmVwbGFjZShhcnJheSgnLScsICdfJyksCisgICAgICAgICAgICAgICAgYXJyYXkoJysnLCAnLycpLAorICAgICAgICAgICAgICAgICRiNjQpOworCisgICAgICAgIHJldHVybiBiYXNlNjRfZGVjb2RlKCRiNjQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIHRvIGNyZWF0ZSBhIGN1c3RvbSBoZWFkZXIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2VuZXJhdGVKd3RIZWFkZXIoJHBheWxvYWQsICRhbGdvcml0aG0pCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXkoCisgICAgICAgICAgICAndHlwJyA9PiAnSldUJywKKyAgICAgICAgICAgICdhbGcnID0+ICRhbGdvcml0aG0sCisgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkYQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGIKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaGFzaF9lcXVhbHMoJGEsICRiKQorICAgIHsKKyAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaGFzaF9lcXVhbHMnKSkgeworICAgICAgICAgICAgcmV0dXJuIGhhc2hfZXF1YWxzKCRhLCAkYik7CisgICAgICAgIH0KKyAgICAgICAgJGRpZmYgPSBzdHJsZW4oJGEpIF4gc3RybGVuKCRiKTsKKyAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgc3RybGVuKCRhKSAmJiAkaSA8IHN0cmxlbigkYik7ICRpKyspIHsKKyAgICAgICAgICAgICRkaWZmIHw9IG9yZCgkYVskaV0pIF4gb3JkKCRiWyRpXSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGRpZmYgPT09IDA7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0dyYW50VHlwZS9BdXRob3JpemF0aW9uQ29kZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NGY2YjMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwCkBAIC0wLDAgKzEsMTQyIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEdyYW50VHlwZTsKKwordXNlIE9BdXRoMlxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZVR5cGVcQWNjZXNzVG9rZW5JbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlcXVlc3RJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlSW50ZXJmYWNlOwordXNlIEV4Y2VwdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICovCitjbGFzcyBBdXRob3JpemF0aW9uQ29kZSBpbXBsZW1lbnRzIEdyYW50VHlwZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHN0b3JhZ2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRhdXRoQ29kZTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSAkc3RvcmFnZSAtIFJFUVVJUkVEIFN0b3JhZ2UgY2xhc3MgZm9yIHJldHJpZXZpbmcgYXV0aG9yaXphdGlvbiBjb2RlIGluZm9ybWF0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlICRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnN0b3JhZ2UgPSAkc3RvcmFnZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRdWVyeVN0cmluZ0lkZW50aWZpZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICdhdXRob3JpemF0aW9uX2NvZGUnOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZhbGlkYXRlIHRoZSBPQXV0aCByZXF1ZXN0CisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHJldHVybiBib29sCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmICghJHJlcXVlc3QtPnJlcXVlc3QoJ2NvZGUnKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3JlcXVlc3QnLCAnTWlzc2luZyBwYXJhbWV0ZXI6ICJjb2RlIiBpcyByZXF1aXJlZCcpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkY29kZSA9ICRyZXF1ZXN0LT5yZXF1ZXN0KCdjb2RlJyk7CisgICAgICAgIGlmICghJGF1dGhDb2RlID0gJHRoaXMtPnN0b3JhZ2UtPmdldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2dyYW50JywgJ0F1dGhvcml6YXRpb24gY29kZSBkb2VzblwndCBleGlzdCBvciBpcyBpbnZhbGlkIGZvciB0aGUgY2xpZW50Jyk7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIDQuMS4zIC0gZW5zdXJlIHRoYXQgdGhlICJyZWRpcmVjdF91cmkiIHBhcmFtZXRlciBpcyBwcmVzZW50IGlmIHRoZSAicmVkaXJlY3RfdXJpIiBwYXJhbWV0ZXIgd2FzIGluY2x1ZGVkIGluIHRoZSBpbml0aWFsIGF1dGhvcml6YXRpb24gcmVxdWVzdAorICAgICAgICAgKiBAdXJpIC0gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMS4zCisgICAgICAgICAqLworICAgICAgICBpZiAoaXNzZXQoJGF1dGhDb2RlWydyZWRpcmVjdF91cmknXSkgJiYgJGF1dGhDb2RlWydyZWRpcmVjdF91cmknXSkgeworICAgICAgICAgICAgaWYgKCEkcmVxdWVzdC0+cmVxdWVzdCgncmVkaXJlY3RfdXJpJykgfHwgdXJsZGVjb2RlKCRyZXF1ZXN0LT5yZXF1ZXN0KCdyZWRpcmVjdF91cmknKSkgIT0gdXJsZGVjb2RlKCRhdXRoQ29kZVsncmVkaXJlY3RfdXJpJ10pKSB7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdyZWRpcmVjdF91cmlfbWlzbWF0Y2gnLCAiVGhlIHJlZGlyZWN0IFVSSSBpcyBtaXNzaW5nIG9yIGRvIG5vdCBtYXRjaCIsICIjc2VjdGlvbi00LjEuMyIpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFpc3NldCgkYXV0aENvZGVbJ2V4cGlyZXMnXSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCdTdG9yYWdlIG11c3QgcmV0dXJuIGF1dGhjb2RlIHdpdGggYSB2YWx1ZSBmb3IgImV4cGlyZXMiJyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoJGF1dGhDb2RlWyJleHBpcmVzIl0gPCB0aW1lKCkpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9ncmFudCcsICJUaGUgYXV0aG9yaXphdGlvbiBjb2RlIGhhcyBleHBpcmVkIik7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNzZXQoJGF1dGhDb2RlWydjb2RlJ10pKSB7CisgICAgICAgICAgICAkYXV0aENvZGVbJ2NvZGUnXSA9ICRjb2RlOyAvLyB1c2VkIHRvIGV4cGlyZSB0aGUgY29kZSBhZnRlciB0aGUgYWNjZXNzIHRva2VuIGlzIGdyYW50ZWQKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5hdXRoQ29kZSA9ICRhdXRoQ29kZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGNsaWVudCBpZAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRJZCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmF1dGhDb2RlWydjbGllbnRfaWQnXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNjb3BlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTY29wZSgpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmF1dGhDb2RlWydzY29wZSddKSA/ICR0aGlzLT5hdXRoQ29kZVsnc2NvcGUnXSA6IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSB1c2VyIGlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJJZCgpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmF1dGhDb2RlWyd1c2VyX2lkJ10pID8gJHRoaXMtPmF1dGhDb2RlWyd1c2VyX2lkJ10gOiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhY2Nlc3MgdG9rZW4KKyAgICAgKgorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgICAgJGNsaWVudF9pZCAgIC0gY2xpZW50IGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGUgYWNjZXNzIHRva2VuLgorICAgICAqIEBwYXJhbSBtaXhlZCAgICAgICAgICAgICAgICAkdXNlcl9pZCAgICAgLSB1c2VyIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICRzY29wZSAgICAgICAtIHNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUFjY2Vzc1Rva2VuKEFjY2Vzc1Rva2VuSW50ZXJmYWNlICRhY2Nlc3NUb2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRzY29wZSkKKyAgICB7CisgICAgICAgICR0b2tlbiA9ICRhY2Nlc3NUb2tlbi0+Y3JlYXRlQWNjZXNzVG9rZW4oJGNsaWVudF9pZCwgJHVzZXJfaWQsICRzY29wZSk7CisgICAgICAgICR0aGlzLT5zdG9yYWdlLT5leHBpcmVBdXRob3JpemF0aW9uQ29kZSgkdGhpcy0+YXV0aENvZGVbJ2NvZGUnXSk7CisKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvQ2xpZW50Q3JlZGVudGlhbHMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvR3JhbnRUeXBlL0NsaWVudENyZWRlbnRpYWxzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTM1YzJkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvR3JhbnRUeXBlL0NsaWVudENyZWRlbnRpYWxzLnBocApAQCAtMCwwICsxLDk4IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEdyYW50VHlwZTsKKwordXNlIE9BdXRoMlxDbGllbnRBc3NlcnRpb25UeXBlXEh0dHBCYXNpYzsKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTdG9yYWdlXENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlOworCisvKioKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKgorICogQHNlZSBIdHRwQmFzaWMKKyAqLworY2xhc3MgQ2xpZW50Q3JlZGVudGlhbHMgZXh0ZW5kcyBIdHRwQmFzaWMgaW1wbGVtZW50cyBHcmFudFR5cGVJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSAkY2xpZW50RGF0YTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSAkc3RvcmFnZQorICAgICAqIEBwYXJhbSBhcnJheSAkY29uZmlnCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlICRzdG9yYWdlLCBhcnJheSAkY29uZmlnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY2xpZW50IGNyZWRlbnRpYWxzIGdyYW50IHR5cGUgTVVTVCBvbmx5IGJlIHVzZWQgYnkgY29uZmlkZW50aWFsIGNsaWVudHMKKyAgICAgICAgICoKKyAgICAgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC40CisgICAgICAgICAqLworICAgICAgICAkY29uZmlnWydhbGxvd19wdWJsaWNfY2xpZW50cyddID0gZmFsc2U7CisKKyAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkc3RvcmFnZSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHF1ZXJ5IHN0cmluZyBpZGVudGlmaWVyCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRdWVyeVN0cmluZ0lkZW50aWZpZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICdjbGllbnRfY3JlZGVudGlhbHMnOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBzY29wZQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmd8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTY29wZSgpCisgICAgeworICAgICAgICAkdGhpcy0+bG9hZENsaWVudERhdGEoKTsKKworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmNsaWVudERhdGFbJ3Njb3BlJ10pID8gJHRoaXMtPmNsaWVudERhdGFbJ3Njb3BlJ10gOiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB1c2VyIGlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJJZCgpCisgICAgeworICAgICAgICAkdGhpcy0+bG9hZENsaWVudERhdGEoKTsKKworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmNsaWVudERhdGFbJ3VzZXJfaWQnXSkgPyAkdGhpcy0+Y2xpZW50RGF0YVsndXNlcl9pZCddIDogbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYWNjZXNzIHRva2VuCisgICAgICoKKyAgICAgKiBAcGFyYW0gQWNjZXNzVG9rZW5JbnRlcmZhY2UgJGFjY2Vzc1Rva2VuCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICAgICRjbGllbnRfaWQgICAtIGNsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGFjY2VzcyB0b2tlbi4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgICAgJHVzZXJfaWQgICAgIC0gdXNlciBpZCBhc3NvY2lhdGVkIHdpdGggdGhlIGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkc2NvcGUgICAgICAgLSBzY29wZXMgdG8gYmUgc3RvcmVkIGluIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVBY2Nlc3NUb2tlbihBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUpCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQ2xpZW50IENyZWRlbnRpYWxzIEdyYW50IGRvZXMgTk9UIGluY2x1ZGUgYSByZWZyZXNoIHRva2VuCisgICAgICAgICAqCisgICAgICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuNC4zCisgICAgICAgICAqLworICAgICAgICAkaW5jbHVkZVJlZnJlc2hUb2tlbiA9IGZhbHNlOworCisgICAgICAgIHJldHVybiAkYWNjZXNzVG9rZW4tPmNyZWF0ZUFjY2Vzc1Rva2VuKCRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUsICRpbmNsdWRlUmVmcmVzaFRva2VuKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGxvYWRDbGllbnREYXRhKCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPmNsaWVudERhdGEpIHsKKyAgICAgICAgICAgICR0aGlzLT5jbGllbnREYXRhID0gJHRoaXMtPnN0b3JhZ2UtPmdldENsaWVudERldGFpbHMoJHRoaXMtPmdldENsaWVudElkKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvR3JhbnRUeXBlL0dyYW50VHlwZUludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvR3JhbnRUeXBlSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDU3ODZmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvR3JhbnRUeXBlL0dyYW50VHlwZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSw1OSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKKworLyoqCisgKiBJbnRlcmZhY2UgZm9yIGFsbCBPQXV0aDIgR3JhbnQgVHlwZXMKKyAqLworaW50ZXJmYWNlIEdyYW50VHlwZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEdldCBxdWVyeSBzdHJpbmcgaWRlbnRpZmllcgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UXVlcnlTdHJpbmdJZGVudGlmaWVyKCk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UpOworCisgICAgLyoqCisgICAgICogR2V0IGNsaWVudCBpZAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRJZCgpOworCisgICAgLyoqCisgICAgICogR2V0IHVzZXIgaWQKKyAgICAgKgorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlcklkKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgc2NvcGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2NvcGUoKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhY2Nlc3MgdG9rZW4KKyAgICAgKgorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgICAgJGNsaWVudF9pZCAgIC0gY2xpZW50IGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGUgYWNjZXNzIHRva2VuLgorICAgICAqIEBwYXJhbSBtaXhlZCAgICAgICAgICAgICAgICAkdXNlcl9pZCAgICAgLSB1c2VyIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICRzY29wZSAgICAgICAtIHNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUFjY2Vzc1Rva2VuKEFjY2Vzc1Rva2VuSW50ZXJmYWNlICRhY2Nlc3NUb2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRzY29wZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvSnd0QmVhcmVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0dyYW50VHlwZS9Kd3RCZWFyZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYzFlZmEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvSnd0QmVhcmVyLnBocApAQCAtMCwwICsxLDI0NyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZVxDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTdG9yYWdlXEp3dEJlYXJlckludGVyZmFjZTsKK3VzZSBPQXV0aDJcRW5jcnlwdGlvblxKd3Q7Cit1c2UgT0F1dGgyXEVuY3J5cHRpb25cRW5jcnlwdGlvbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKKworLyoqCisgKiBUaGUgSldUIGJlYXJlciBhdXRob3JpemF0aW9uIGdyYW50IGltcGxlbWVudHMgSldUIChKU09OIFdlYiBUb2tlbnMpIGFzIGEgZ3JhbnQgdHlwZSBwZXIgdGhlIElFVEYgZHJhZnQuCisgKgorICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLW9hdXRoLWp3dC1iZWFyZXItMDQjc2VjdGlvbi00CisgKgorICogQGF1dGhvciBGMjEKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2NsYXNzIEp3dEJlYXJlciBpbXBsZW1lbnRzIEdyYW50VHlwZUludGVyZmFjZSwgQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZQoreworICAgIHByaXZhdGUgJGp3dDsKKworICAgIHByb3RlY3RlZCAkc3RvcmFnZTsKKyAgICBwcm90ZWN0ZWQgJGF1ZGllbmNlOworICAgIHByb3RlY3RlZCAkand0VXRpbDsKKyAgICBwcm90ZWN0ZWQgJGFsbG93ZWRBbGdvcml0aG1zOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgSldUIGJlYXJlciBncmFudCB0eXBlLgorICAgICAqCisgICAgICogQHBhcmFtIEp3dEJlYXJlckludGVyZmFjZSAgICAgICRzdG9yYWdlICAtIEEgdmFsaWQgc3RvcmFnZSBpbnRlcmZhY2UgdGhhdCBpbXBsZW1lbnRzIHN0b3JhZ2UgaG9va3MgZm9yIHRoZSBKV1QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVhcmVyIGdyYW50IHR5cGUuCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAgICRhdWRpZW5jZSAtIFRoZSBhdWRpZW5jZSB0byB2YWxpZGF0ZSB0aGUgdG9rZW4gYWdhaW5zdC4gVGhpcyBpcyB1c3VhbGx5IHRoZSBmdWxsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSSSBvZiB0aGUgT0F1dGggdG9rZW4gcmVxdWVzdHMgZW5kcG9pbnQuCisgICAgICogQHBhcmFtIEVuY3J5cHRpb25JbnRlcmZhY2V8SldUICRqd3RVdGlsICAtIE9QVE9OQUwgVGhlIGNsYXNzIHVzZWQgdG8gZGVjb2RlLCBlbmNvZGUgYW5kIHZlcmlmeSBKV1RzLgorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgICAkY29uZmlnCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEp3dEJlYXJlckludGVyZmFjZSAkc3RvcmFnZSwgJGF1ZGllbmNlLCBFbmNyeXB0aW9uSW50ZXJmYWNlICRqd3RVdGlsID0gbnVsbCwgYXJyYXkgJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkdGhpcy0+c3RvcmFnZSA9ICRzdG9yYWdlOworICAgICAgICAkdGhpcy0+YXVkaWVuY2UgPSAkYXVkaWVuY2U7CisKKyAgICAgICAgaWYgKGlzX251bGwoJGp3dFV0aWwpKSB7CisgICAgICAgICAgICAkand0VXRpbCA9IG5ldyBKd3QoKTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5jb25maWcgPSBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICdhbGxvd2VkX2FsZ29yaXRobXMnID0+IGFycmF5KCdSUzI1NicsICdSUzM4NCcsICdSUzUxMicpCisgICAgICAgICksICRjb25maWcpOworCisgICAgICAgICR0aGlzLT5qd3RVdGlsID0gJGp3dFV0aWw7CisKKyAgICAgICAgJHRoaXMtPmFsbG93ZWRBbGdvcml0aG1zID0gJHRoaXMtPmNvbmZpZ1snYWxsb3dlZF9hbGdvcml0aG1zJ107CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZ3JhbnRfdHlwZSBnZXQgcGFyYW1ldGVyIHRvIGlkZW50aWZ5IHRoZSBncmFudCB0eXBlIHJlcXVlc3QgYXMgSldUIGJlYXJlciBhdXRob3JpemF0aW9uIGdyYW50LgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgLSBUaGUgc3RyaW5nIGlkZW50aWZpZXIgZm9yIGdyYW50X3R5cGUuCisgICAgICoKKyAgICAgKiBAc2VlIEdyYW50VHlwZUludGVyZmFjZTo6Z2V0UXVlcnlTdHJpbmdJZGVudGlmaWVyKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UXVlcnlTdHJpbmdJZGVudGlmaWVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcic7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFsaWRhdGVzIHRoZSBkYXRhIGZyb20gdGhlIGRlY29kZWQgSldULgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZQorICAgICAqIEByZXR1cm4gYm9vbHxtaXhlZHxudWxsIFRSVUUgaWYgdGhlIEpXVCByZXF1ZXN0IGlzIHZhbGlkIGFuZCBjYW4gYmUgZGVjb2RlZC4gT3RoZXJ3aXNlLCBGQUxTRSBpcyByZXR1cm5lZC5Ac2VlIEdyYW50VHlwZUludGVyZmFjZTo6Z2V0VG9rZW5EYXRhKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmICghJHJlcXVlc3QtPnJlcXVlc3QoImFzc2VydGlvbiIpKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfcmVxdWVzdCcsICdNaXNzaW5nIHBhcmFtZXRlcnM6ICJhc3NlcnRpb24iIHJlcXVpcmVkJyk7CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3RvcmUgdGhlIHVuZGVjb2RlZCBKV1QgZm9yIGxhdGVyIHVzZQorICAgICAgICAkdW5kZWNvZGVkSldUID0gJHJlcXVlc3QtPnJlcXVlc3QoJ2Fzc2VydGlvbicpOworCisgICAgICAgIC8vIERlY29kZSB0aGUgSldUCisgICAgICAgICRqd3QgPSAkdGhpcy0+and0VXRpbC0+ZGVjb2RlKCRyZXF1ZXN0LT5yZXF1ZXN0KCdhc3NlcnRpb24nKSwgbnVsbCwgZmFsc2UpOworCisgICAgICAgIGlmICghJGp3dCkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3JlcXVlc3QnLCAiSldUIGlzIG1hbGZvcm1lZCIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGVuc3VyZSB0aGVzZSBwcm9wZXJ0aWVzIGNvbnRhaW4gYSB2YWx1ZQorICAgICAgICAvLyBAdG9kbzogdGhyb3cgbWFsZm9ybWVkIGVycm9yIGZvciBtaXNzaW5nIHByb3BlcnRpZXMKKyAgICAgICAgJGp3dCA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgJ3Njb3BlJyA9PiBudWxsLAorICAgICAgICAgICAgJ2lzcycgPT4gbnVsbCwKKyAgICAgICAgICAgICdzdWInID0+IG51bGwsCisgICAgICAgICAgICAnYXVkJyA9PiBudWxsLAorICAgICAgICAgICAgJ2V4cCcgPT4gbnVsbCwKKyAgICAgICAgICAgICduYmYnID0+IG51bGwsCisgICAgICAgICAgICAnaWF0JyA9PiBudWxsLAorICAgICAgICAgICAgJ2p0aScgPT4gbnVsbCwKKyAgICAgICAgICAgICd0eXAnID0+IG51bGwsCisgICAgICAgICksICRqd3QpOworCisgICAgICAgIGlmICghaXNzZXQoJGp3dFsnaXNzJ10pKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfZ3JhbnQnLCAiSW52YWxpZCBpc3N1ZXIgKGlzcykgcHJvdmlkZWQiKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlzc2V0KCRqd3RbJ3N1YiddKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2dyYW50JywgIkludmFsaWQgc3ViamVjdCAoc3ViKSBwcm92aWRlZCIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNzZXQoJGp3dFsnZXhwJ10pKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfZ3JhbnQnLCAiRXhwaXJhdGlvbiAoZXhwKSB0aW1lIG11c3QgYmUgcHJlc2VudCIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGV4cGlyYXRpb24KKyAgICAgICAgaWYgKGN0eXBlX2RpZ2l0KCRqd3RbJ2V4cCddKSkgeworICAgICAgICAgICAgaWYgKCRqd3RbJ2V4cCddIDw9IHRpbWUoKSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9ncmFudCcsICJKV1QgaGFzIGV4cGlyZWQiKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2dyYW50JywgIkV4cGlyYXRpb24gKGV4cCkgdGltZSBtdXN0IGJlIGEgdW5peCB0aW1lIHN0YW1wIik7CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgdGhlIG5vdCBiZWZvcmUgdGltZQorICAgICAgICBpZiAoJG5vdEJlZm9yZSA9ICRqd3RbJ25iZiddKSB7CisgICAgICAgICAgICBpZiAoY3R5cGVfZGlnaXQoJG5vdEJlZm9yZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoJG5vdEJlZm9yZSA+IHRpbWUoKSkgeworICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfZ3JhbnQnLCAiSldUIGNhbm5vdCBiZSB1c2VkIGJlZm9yZSB0aGUgTm90IEJlZm9yZSAobmJmKSB0aW1lIik7CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfZ3JhbnQnLCAiTm90IEJlZm9yZSAobmJmKSB0aW1lIG11c3QgYmUgYSB1bml4IHRpbWUgc3RhbXAiKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF1ZGllbmNlIGlmIHJlcXVpcmVkIHRvIG1hdGNoCisgICAgICAgIGlmICghaXNzZXQoJGp3dFsnYXVkJ10pIHx8ICgkand0WydhdWQnXSAhPSAkdGhpcy0+YXVkaWVuY2UpKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfZ3JhbnQnLCAiSW52YWxpZCBhdWRpZW5jZSAoYXVkKSIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoZSBqdGkgKG5vbmNlKQorICAgICAgICAvLyBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtb2F1dGgtanNvbi13ZWItdG9rZW4tMTMjc2VjdGlvbi00LjEuNworICAgICAgICBpZiAoaXNzZXQoJGp3dFsnanRpJ10pKSB7CisgICAgICAgICAgICAkanRpID0gJHRoaXMtPnN0b3JhZ2UtPmdldEp0aSgkand0Wydpc3MnXSwgJGp3dFsnc3ViJ10sICRqd3RbJ2F1ZCddLCAkand0WydleHAnXSwgJGp3dFsnanRpJ10pOworCisgICAgICAgICAgICAvL1JlamVjdCBpZiBqdGkgaXMgdXNlZCBhbmQgand0IGlzIHN0aWxsIHZhbGlkIChleHAgcGFyYW1ldGVyIGhhcyBub3QgZXhwaXJlZCkuCisgICAgICAgICAgICBpZiAoJGp0aSAmJiAkanRpWydleHBpcmVzJ10gPiB0aW1lKCkpIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfZ3JhbnQnLCAiSlNPTiBUb2tlbiBJZGVudGlmaWVyIChqdGkpIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCIpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICR0aGlzLT5zdG9yYWdlLT5zZXRKdGkoJGp3dFsnaXNzJ10sICRqd3RbJ3N1YiddLCAkand0WydhdWQnXSwgJGp3dFsnZXhwJ10sICRqd3RbJ2p0aSddKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEdldCB0aGUgaXNzJ3MgcHVibGljIGtleQorICAgICAgICAvLyBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtb2F1dGgtanNvbi13ZWItdG9rZW4tMDYjc2VjdGlvbi00LjEuMQorICAgICAgICBpZiAoISRrZXkgPSAkdGhpcy0+c3RvcmFnZS0+Z2V0Q2xpZW50S2V5KCRqd3RbJ2lzcyddLCAkand0WydzdWInXSkpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9ncmFudCcsICJJbnZhbGlkIGlzc3VlciAoaXNzKSBvciBzdWJqZWN0IChzdWIpIHByb3ZpZGVkIik7CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoZSBKV1QKKyAgICAgICAgaWYgKCEkdGhpcy0+and0VXRpbC0+ZGVjb2RlKCR1bmRlY29kZWRKV1QsICRrZXksICR0aGlzLT5hbGxvd2VkQWxnb3JpdGhtcykpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9ncmFudCcsICJKV1QgZmFpbGVkIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24iKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+and0ID0gJGp3dDsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY2xpZW50IGlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudElkKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+and0Wydpc3MnXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdXNlciBpZAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VySWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5qd3RbJ3N1YiddOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBzY29wZQorICAgICAqCisgICAgICogQHJldHVybiBudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNjb3BlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYW4gYWNjZXNzIHRva2VuIHRoYXQgaXMgTk9UIGFzc29jaWF0ZWQgd2l0aCBhIHJlZnJlc2ggdG9rZW4uCisgICAgICogSWYgYSBzdWJqZWN0IChzdWIpIHRoZSBuYW1lIG9mIHRoZSB1c2VyL2FjY291bnQgd2UgYXJlIGFjY2Vzc2luZyBkYXRhIG9uIGJlaGFsZiBvZi4KKyAgICAgKgorICAgICAqIEBzZWUgR3JhbnRUeXBlSW50ZXJmYWNlOjpjcmVhdGVBY2Nlc3NUb2tlbigpCisgICAgICoKKyAgICAgKiBAcGFyYW0gQWNjZXNzVG9rZW5JbnRlcmZhY2UgJGFjY2Vzc1Rva2VuCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICAgICRjbGllbnRfaWQgICAtIGNsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGFjY2VzcyB0b2tlbi4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgICAgJHVzZXJfaWQgICAgIC0gdXNlciBpZCBhc3NvY2lhdGVkIHdpdGggdGhlIGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkc2NvcGUgICAgICAgLSBzY29wZXMgdG8gYmUgc3RvcmVkIGluIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVBY2Nlc3NUb2tlbihBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUpCisgICAgeworICAgICAgICAkaW5jbHVkZVJlZnJlc2hUb2tlbiA9IGZhbHNlOworCisgICAgICAgIHJldHVybiAkYWNjZXNzVG9rZW4tPmNyZWF0ZUFjY2Vzc1Rva2VuKCRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUsICRpbmNsdWRlUmVmcmVzaFRva2VuKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvUmVmcmVzaFRva2VuLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0dyYW50VHlwZS9SZWZyZXNoVG9rZW4ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YzYxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvUmVmcmVzaFRva2VuLnBocApAQCAtMCwwICsxLDE1NCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxSZWZyZXNoVG9rZW5JbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlVHlwZVxBY2Nlc3NUb2tlbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVxdWVzdEludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2U7CisKKy8qKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworY2xhc3MgUmVmcmVzaFRva2VuIGltcGxlbWVudHMgR3JhbnRUeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgJHJlZnJlc2hUb2tlbjsKKworICAgIC8qKgorICAgICAqIEB2YXIgUmVmcmVzaFRva2VuSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRzdG9yYWdlOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkY29uZmlnOworCisgICAgLyoqCisgICAgICogQHBhcmFtIFJlZnJlc2hUb2tlbkludGVyZmFjZSAkc3RvcmFnZSAtIFJFUVVJUkVEIFN0b3JhZ2UgY2xhc3MgZm9yIHJldHJpZXZpbmcgcmVmcmVzaCB0b2tlbiBpbmZvcm1hdGlvbgorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgJGNvbmZpZyAgLSBPUFRJT05BTCBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzZXJ2ZXIKKyAgICAgKiBAY29kZQorICAgICAqICAgICAkY29uZmlnID0gYXJyYXkoCisgICAgICogICAgICAgICAnYWx3YXlzX2lzc3VlX25ld19yZWZyZXNoX3Rva2VuJyA9PiB0cnVlLCAvLyB3aGV0aGVyIHRvIGlzc3VlIGEgbmV3IHJlZnJlc2ggdG9rZW4gdXBvbiBzdWNjZXNzZnVsIHRva2VuIHJlcXVlc3QKKyAgICAgKiAgICAgICAgICd1bnNldF9yZWZyZXNoX3Rva2VuX2FmdGVyX3VzZScgPT4gdHJ1ZSAvLyB3aGV0aGVyIHRvIHVuc2V0IHRoZSByZWZyZXNoIHRva2VuIGFmdGVyIGFmdGVyIHVzaW5nCisgICAgICogICAgICk7CisgICAgICogQGVuZGNvZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoUmVmcmVzaFRva2VuSW50ZXJmYWNlICRzdG9yYWdlLCAkY29uZmlnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgICR0aGlzLT5jb25maWcgPSBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICdhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nID0+IGZhbHNlLAorICAgICAgICAgICAgJ3Vuc2V0X3JlZnJlc2hfdG9rZW5fYWZ0ZXJfdXNlJyA9PiB0cnVlCisgICAgICAgICksICRjb25maWcpOworCisgICAgICAgIC8vIHRvIHByZXNlcnZlIEIuQy4gd2l0aCB2MS42CisgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3B1bGwvNTgwCisgICAgICAgIC8vIEB0b2RvIC0gcmVtb3ZlIGluIHYyLjAKKyAgICAgICAgaWYgKGlzc2V0KCRjb25maWdbJ2Fsd2F5c19pc3N1ZV9uZXdfcmVmcmVzaF90b2tlbiddKSAmJiAhaXNzZXQoJGNvbmZpZ1sndW5zZXRfcmVmcmVzaF90b2tlbl9hZnRlcl91c2UnXSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5jb25maWdbJ3Vuc2V0X3JlZnJlc2hfdG9rZW5fYWZ0ZXJfdXNlJ10gPSAkY29uZmlnWydhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nXTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5zdG9yYWdlID0gJHN0b3JhZ2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UXVlcnlTdHJpbmdJZGVudGlmaWVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAncmVmcmVzaF90b2tlbic7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFsaWRhdGUgdGhlIE9BdXRoIHJlcXVlc3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWR8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZVJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKCEkcmVxdWVzdC0+cmVxdWVzdCgicmVmcmVzaF90b2tlbiIpKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfcmVxdWVzdCcsICdNaXNzaW5nIHBhcmFtZXRlcjogInJlZnJlc2hfdG9rZW4iIGlzIHJlcXVpcmVkJyk7CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkcmVmcmVzaFRva2VuID0gJHRoaXMtPnN0b3JhZ2UtPmdldFJlZnJlc2hUb2tlbigkcmVxdWVzdC0+cmVxdWVzdCgicmVmcmVzaF90b2tlbiIpKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2dyYW50JywgJ0ludmFsaWQgcmVmcmVzaCB0b2tlbicpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkcmVmcmVzaFRva2VuWydleHBpcmVzJ10gPiAwICYmICRyZWZyZXNoVG9rZW5bImV4cGlyZXMiXSA8IHRpbWUoKSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX2dyYW50JywgJ1JlZnJlc2ggdG9rZW4gaGFzIGV4cGlyZWQnKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBzdG9yZSB0aGUgcmVmcmVzaCB0b2tlbiBsb2NhbGx5IHNvIHdlIGNhbiBkZWxldGUgaXQgd2hlbiBhIG5ldyByZWZyZXNoIHRva2VuIGlzIGdlbmVyYXRlZAorICAgICAgICAkdGhpcy0+cmVmcmVzaFRva2VuID0gJHJlZnJlc2hUb2tlbjsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY2xpZW50IGlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudElkKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+cmVmcmVzaFRva2VuWydjbGllbnRfaWQnXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdXNlciBpZAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZHxudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJJZCgpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPnJlZnJlc2hUb2tlblsndXNlcl9pZCddKSA/ICR0aGlzLT5yZWZyZXNoVG9rZW5bJ3VzZXJfaWQnXSA6IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHNjb3BlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNjb3BlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cmVmcmVzaFRva2VuWydzY29wZSddKSA/ICR0aGlzLT5yZWZyZXNoVG9rZW5bJ3Njb3BlJ10gOiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhY2Nlc3MgdG9rZW4KKyAgICAgKgorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgICAgJGNsaWVudF9pZCAgIC0gY2xpZW50IGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGUgYWNjZXNzIHRva2VuLgorICAgICAqIEBwYXJhbSBtaXhlZCAgICAgICAgICAgICAgICAkdXNlcl9pZCAgICAgLSB1c2VyIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICRzY29wZSAgICAgICAtIHNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUFjY2Vzc1Rva2VuKEFjY2Vzc1Rva2VuSW50ZXJmYWNlICRhY2Nlc3NUb2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRzY29wZSkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIEl0IGlzIG9wdGlvbmFsIHRvIGZvcmNlIGEgbmV3IHJlZnJlc2ggdG9rZW4gd2hlbiBhIHJlZnJlc2ggdG9rZW4gaXMgdXNlZC4KKyAgICAgICAgICogSG93ZXZlciwgaWYgYSBuZXcgcmVmcmVzaCB0b2tlbiBpcyBpc3N1ZWQsIHRoZSBvbGQgb25lIE1VU1QgYmUgZXhwaXJlZAorICAgICAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi02CisgICAgICAgICAqLworICAgICAgICAkaXNzdWVOZXdSZWZyZXNoVG9rZW4gPSAkdGhpcy0+Y29uZmlnWydhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nXTsKKyAgICAgICAgJHVuc2V0UmVmcmVzaFRva2VuID0gJHRoaXMtPmNvbmZpZ1sndW5zZXRfcmVmcmVzaF90b2tlbl9hZnRlcl91c2UnXTsKKyAgICAgICAgJHRva2VuID0gJGFjY2Vzc1Rva2VuLT5jcmVhdGVBY2Nlc3NUb2tlbigkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHNjb3BlLCAkaXNzdWVOZXdSZWZyZXNoVG9rZW4pOworCisgICAgICAgIGlmICgkdW5zZXRSZWZyZXNoVG9rZW4pIHsKKyAgICAgICAgICAgICR0aGlzLT5zdG9yYWdlLT51bnNldFJlZnJlc2hUb2tlbigkdGhpcy0+cmVmcmVzaFRva2VuWydyZWZyZXNoX3Rva2VuJ10pOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvVXNlckNyZWRlbnRpYWxzLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL0dyYW50VHlwZS9Vc2VyQ3JlZGVudGlhbHMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMGMyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9HcmFudFR5cGUvVXNlckNyZWRlbnRpYWxzLnBocApAQCAtMCwwICsxLDEyMyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlVHlwZVxBY2Nlc3NUb2tlbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVxdWVzdEludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2U7Cit1c2UgTG9naWNFeGNlcHRpb247CisKKy8qKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworY2xhc3MgVXNlckNyZWRlbnRpYWxzIGltcGxlbWVudHMgR3JhbnRUeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgJHVzZXJJbmZvOworCisgICAgLyoqCisgICAgICogQHZhciBVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHN0b3JhZ2U7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlICRzdG9yYWdlIC0gUkVRVUlSRUQgU3RvcmFnZSBjbGFzcyBmb3IgcmV0cmlldmluZyB1c2VyIGNyZWRlbnRpYWxzIGluZm9ybWF0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFVzZXJDcmVkZW50aWFsc0ludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgICR0aGlzLT5zdG9yYWdlID0gJHN0b3JhZ2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UXVlcnlTdHJpbmdJZGVudGlmaWVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAncGFzc3dvcmQnOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWR8bnVsbAorICAgICAqCisgICAgICogQHRocm93cyBMb2dpY0V4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZVJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKCEkcmVxdWVzdC0+cmVxdWVzdCgicGFzc3dvcmQiKSB8fCAhJHJlcXVlc3QtPnJlcXVlc3QoInVzZXJuYW1lIikpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9yZXF1ZXN0JywgJ01pc3NpbmcgcGFyYW1ldGVyczogInVzZXJuYW1lIiBhbmQgInBhc3N3b3JkIiByZXF1aXJlZCcpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJHRoaXMtPnN0b3JhZ2UtPmNoZWNrVXNlckNyZWRlbnRpYWxzKCRyZXF1ZXN0LT5yZXF1ZXN0KCJ1c2VybmFtZSIpLCAkcmVxdWVzdC0+cmVxdWVzdCgicGFzc3dvcmQiKSkpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAxLCAnaW52YWxpZF9ncmFudCcsICdJbnZhbGlkIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjb21iaW5hdGlvbicpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgICR1c2VySW5mbyA9ICR0aGlzLT5zdG9yYWdlLT5nZXRVc2VyRGV0YWlscygkcmVxdWVzdC0+cmVxdWVzdCgidXNlcm5hbWUiKSk7CisKKyAgICAgICAgaWYgKGVtcHR5KCR1c2VySW5mbykpIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9ncmFudCcsICdVbmFibGUgdG8gcmV0cmlldmUgdXNlciBpbmZvcm1hdGlvbicpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNzZXQoJHVzZXJJbmZvWyd1c2VyX2lkJ10pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCJ5b3UgbXVzdCBzZXQgdGhlIHVzZXJfaWQgb24gdGhlIGFycmF5IHJldHVybmVkIGJ5IGdldFVzZXJEZXRhaWxzIik7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+dXNlckluZm8gPSAkdXNlckluZm87CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGNsaWVudCBpZAorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZHxudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudElkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB1c2VyIGlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJJZCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnVzZXJJbmZvWyd1c2VyX2lkJ107CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHNjb3BlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNjb3BlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+dXNlckluZm9bJ3Njb3BlJ10pID8gJHRoaXMtPnVzZXJJbmZvWydzY29wZSddIDogbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYWNjZXNzIHRva2VuCisgICAgICoKKyAgICAgKiBAcGFyYW0gQWNjZXNzVG9rZW5JbnRlcmZhY2UgJGFjY2Vzc1Rva2VuCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICAgICRjbGllbnRfaWQgICAtIGNsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGFjY2VzcyB0b2tlbi4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICAgICAgICAgICAgICAgJHVzZXJfaWQgICAgIC0gdXNlciBpZCBhc3NvY2lhdGVkIHdpdGggdGhlIGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAkc2NvcGUgICAgICAgLSBzY29wZXMgdG8gYmUgc3RvcmVkIGluIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVBY2Nlc3NUb2tlbihBY2Nlc3NUb2tlbkludGVyZmFjZSAkYWNjZXNzVG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUpCisgICAgeworICAgICAgICByZXR1cm4gJGFjY2Vzc1Rva2VuLT5jcmVhdGVBY2Nlc3NUb2tlbigkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHNjb3BlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9Db250cm9sbGVyL0F1dGhvcml6ZUNvbnRyb2xsZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YzVmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyLnBocApAQCAtMCwwICsxLDEzNSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxPcGVuSURcQ29udHJvbGxlcjsKKwordXNlIE9BdXRoMlxDb250cm9sbGVyXEF1dGhvcml6ZUNvbnRyb2xsZXIgYXMgQmFzZUF1dGhvcml6ZUNvbnRyb2xsZXI7Cit1c2UgT0F1dGgyXFJlcXVlc3RJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlSW50ZXJmYWNlOworCisvKioKKyAqIEBzZWUgT0F1dGgyXENvbnRyb2xsZXJcQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZQorICovCitjbGFzcyBBdXRob3JpemVDb250cm9sbGVyIGV4dGVuZHMgQmFzZUF1dGhvcml6ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBBdXRob3JpemVDb250cm9sbGVySW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBtaXhlZAorICAgICAqLworICAgIHByaXZhdGUgJG5vbmNlOworCisgICAgLyoqCisgICAgICogU2V0IG5vdCBhdXRob3JpemVkIHJlc3BvbnNlCisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICRyZWRpcmVjdF91cmkKKyAgICAgKiBAcGFyYW0gbnVsbCAgICAgICAgICAgICAgJHVzZXJfaWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0Tm90QXV0aG9yaXplZFJlc3BvbnNlKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSwgJHJlZGlyZWN0X3VyaSwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHByb21wdCA9ICRyZXF1ZXN0LT5xdWVyeSgncHJvbXB0JywgJ2NvbnNlbnQnKTsKKyAgICAgICAgaWYgKCRwcm9tcHQgPT0gJ25vbmUnKSB7CisgICAgICAgICAgICBpZiAoaXNfbnVsbCgkdXNlcl9pZCkpIHsKKyAgICAgICAgICAgICAgICAkZXJyb3IgPSAnbG9naW5fcmVxdWlyZWQnOworICAgICAgICAgICAgICAgICRlcnJvcl9tZXNzYWdlID0gJ1RoZSB1c2VyIG11c3QgbG9nIGluJzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJGVycm9yID0gJ2ludGVyYWN0aW9uX3JlcXVpcmVkJzsKKyAgICAgICAgICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICdUaGUgdXNlciBtdXN0IGdyYW50IGFjY2VzcyB0byB5b3VyIGFwcGxpY2F0aW9uJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRlcnJvciA9ICdjb25zZW50X3JlcXVpcmVkJzsKKyAgICAgICAgICAgICRlcnJvcl9tZXNzYWdlID0gJ1RoZSB1c2VyIGRlbmllZCBhY2Nlc3MgdG8geW91ciBhcHBsaWNhdGlvbic7CisgICAgICAgIH0KKworICAgICAgICAkcmVzcG9uc2UtPnNldFJlZGlyZWN0KCR0aGlzLT5jb25maWdbJ3JlZGlyZWN0X3N0YXR1c19jb2RlJ10sICRyZWRpcmVjdF91cmksICR0aGlzLT5nZXRTdGF0ZSgpLCAkZXJyb3IsICRlcnJvcl9tZXNzYWdlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAVE9ETzogYWRkIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGZvciB0aGUgcGFyYW1ldGVycyBpbiB0aGlzIG1ldGhvZAorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHBhcmFtIG1peGVkICR1c2VyX2lkCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBidWlsZEF1dGhvcml6ZVBhcmFtZXRlcnMoJHJlcXVlc3QsICRyZXNwb25zZSwgJHVzZXJfaWQpCisgICAgeworICAgICAgICBpZiAoISRwYXJhbXMgPSBwYXJlbnQ6OmJ1aWxkQXV0aG9yaXplUGFyYW1ldGVycygkcmVxdWVzdCwgJHJlc3BvbnNlLCAkdXNlcl9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEdlbmVyYXRlIGFuIGlkIHRva2VuIGlmIG5lZWRlZC4KKyAgICAgICAgaWYgKCR0aGlzLT5uZWVkc0lkVG9rZW4oJHRoaXMtPmdldFNjb3BlKCkpICYmICR0aGlzLT5nZXRSZXNwb25zZVR5cGUoKSA9PSBzZWxmOjpSRVNQT05TRV9UWVBFX0FVVEhPUklaQVRJT05fQ09ERSkgeworICAgICAgICAgICAgJHBhcmFtc1snaWRfdG9rZW4nXSA9ICR0aGlzLT5yZXNwb25zZVR5cGVzWydpZF90b2tlbiddLT5jcmVhdGVJZFRva2VuKCR0aGlzLT5nZXRDbGllbnRJZCgpLCAkdXNlcl9pZCwgJHRoaXMtPm5vbmNlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFkZCB0aGUgbm9uY2UgdG8gcmV0dXJuIHdpdGggdGhlIHJlZGlyZWN0IFVSSQorICAgICAgICAkcGFyYW1zWydub25jZSddID0gJHRoaXMtPm5vbmNlOworCisgICAgICAgIHJldHVybiAkcGFyYW1zOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZUF1dGhvcml6ZVJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYgKCFwYXJlbnQ6OnZhbGlkYXRlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJG5vbmNlID0gJHJlcXVlc3QtPnF1ZXJ5KCdub25jZScpOworCisgICAgICAgIC8vIFZhbGlkYXRlIHJlcXVpcmVkIG5vbmNlIGZvciAiaWRfdG9rZW4iIGFuZCAiaWRfdG9rZW4gdG9rZW4iCisgICAgICAgIGlmICghJG5vbmNlICYmIGluX2FycmF5KCR0aGlzLT5nZXRSZXNwb25zZVR5cGUoKSwgYXJyYXkoc2VsZjo6UkVTUE9OU0VfVFlQRV9JRF9UT0tFTiwgc2VsZjo6UkVTUE9OU0VfVFlQRV9JRF9UT0tFTl9UT0tFTikpKSB7CisgICAgICAgICAgICAkcmVzcG9uc2UtPnNldEVycm9yKDQwMCwgJ2ludmFsaWRfbm9uY2UnLCAnVGhpcyBhcHBsaWNhdGlvbiByZXF1aXJlcyB5b3Ugc3BlY2lmeSBhIG5vbmNlIHBhcmFtZXRlcicpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+bm9uY2UgPSAkbm9uY2U7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXJyYXkgb2YgdmFsaWQgcmVzcG9uc2UgdHlwZXMKKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0VmFsaWRSZXNwb25zZVR5cGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhcnJheSgKKyAgICAgICAgICAgIHNlbGY6OlJFU1BPTlNFX1RZUEVfQUNDRVNTX1RPS0VOLAorICAgICAgICAgICAgc2VsZjo6UkVTUE9OU0VfVFlQRV9BVVRIT1JJWkFUSU9OX0NPREUsCisgICAgICAgICAgICBzZWxmOjpSRVNQT05TRV9UWVBFX0lEX1RPS0VOLAorICAgICAgICAgICAgc2VsZjo6UkVTUE9OU0VfVFlQRV9JRF9UT0tFTl9UT0tFTiwKKyAgICAgICAgICAgIHNlbGY6OlJFU1BPTlNFX1RZUEVfQ09ERV9JRF9UT0tFTiwKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGN1cnJlbnQgcmVxdWVzdCBuZWVkcyB0byBnZW5lcmF0ZSBhbiBpZCB0b2tlbi4KKyAgICAgKgorICAgICAqIElEIFRva2VucyBhcmUgYSBwYXJ0IG9mIHRoZSBPcGVuSUQgQ29ubmVjdCBzcGVjaWZpY2F0aW9uLCBzbyB0aGlzCisgICAgICogbWV0aG9kIGNoZWNrcyB3aGV0aGVyIE9wZW5JRCBDb25uZWN0IGlzIGVuYWJsZWQgaW4gdGhlIHNlcnZlciBzZXR0aW5ncworICAgICAqIGFuZCB3aGV0aGVyIHRoZSBvcGVuaWQgc2NvcGUgd2FzIHJlcXVlc3RlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlcXVlc3Rfc2NvcGUgLSBBIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcgb2Ygc2NvcGVzLgorICAgICAqIEByZXR1cm4gYm9vbGVhbiAtIFRSVUUgaWYgYW4gaWQgdG9rZW4gaXMgbmVlZGVkLCBGQUxTRSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIG5lZWRzSWRUb2tlbigkcmVxdWVzdF9zY29wZSkKKyAgICB7CisgICAgICAgIC8vIHNlZSBpZiB0aGUgIm9wZW5pZCIgc2NvcGUgZXhpc3RzIGluIHRoZSByZXF1ZXN0ZWQgc2NvcGUKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zY29wZVV0aWwtPmNoZWNrU2NvcGUoJ29wZW5pZCcsICRyZXF1ZXN0X3Njb3BlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE5vbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+bm9uY2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL0NvbnRyb2xsZXIvQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVySW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDk2N2MzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL0NvbnRyb2xsZXIvQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZS5waHAKQEAgLTAsMCArMSwxMiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxPcGVuSURcQ29udHJvbGxlcjsKKworaW50ZXJmYWNlIEF1dGhvcml6ZUNvbnRyb2xsZXJJbnRlcmZhY2UKK3sKKyAgICBjb25zdCBSRVNQT05TRV9UWVBFX0lEX1RPS0VOID0gJ2lkX3Rva2VuJzsKKworICAgIGNvbnN0IFJFU1BPTlNFX1RZUEVfSURfVE9LRU5fVE9LRU4gPSAnaWRfdG9rZW4gdG9rZW4nOworCisgICAgY29uc3QgUkVTUE9OU0VfVFlQRV9DT0RFX0lEX1RPS0VOICA9ICdjb2RlIGlkX3Rva2VuJzsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9Db250cm9sbGVyL1VzZXJJbmZvQ29udHJvbGxlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9Vc2VySW5mb0NvbnRyb2xsZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0ODliN2EKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9Vc2VySW5mb0NvbnRyb2xsZXIucGhwCkBAIC0wLDAgKzEsNjIgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXENvbnRyb2xsZXI7CisKK3VzZSBPQXV0aDJcU2NvcGU7Cit1c2UgT0F1dGgyXFRva2VuVHlwZVxUb2tlblR5cGVJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2U7Cit1c2UgT0F1dGgyXE9wZW5JRFxTdG9yYWdlXFVzZXJDbGFpbXNJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXENvbnRyb2xsZXJcUmVzb3VyY2VDb250cm9sbGVyOwordXNlIE9BdXRoMlxTY29wZUludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVxdWVzdEludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2U7CisKKy8qKgorICogQHNlZSBPQXV0aDJcQ29udHJvbGxlclxVc2VySW5mb0NvbnRyb2xsZXJJbnRlcmZhY2UKKyAqLworY2xhc3MgVXNlckluZm9Db250cm9sbGVyIGV4dGVuZHMgUmVzb3VyY2VDb250cm9sbGVyIGltcGxlbWVudHMgVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBVc2VyQ2xhaW1zSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICR1c2VyQ2xhaW1zU3RvcmFnZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICoKKyAgICAgKiBAcGFyYW0gVG9rZW5UeXBlSW50ZXJmYWNlICAgJHRva2VuVHlwZQorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlbkludGVyZmFjZSAkdG9rZW5TdG9yYWdlCisgICAgICogQHBhcmFtIFVzZXJDbGFpbXNJbnRlcmZhY2UgICR1c2VyQ2xhaW1zU3RvcmFnZQorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAkY29uZmlnCisgICAgICogQHBhcmFtIFNjb3BlSW50ZXJmYWNlICAgICAgICRzY29wZVV0aWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoVG9rZW5UeXBlSW50ZXJmYWNlICR0b2tlblR5cGUsIEFjY2Vzc1Rva2VuSW50ZXJmYWNlICR0b2tlblN0b3JhZ2UsIFVzZXJDbGFpbXNJbnRlcmZhY2UgJHVzZXJDbGFpbXNTdG9yYWdlLCAkY29uZmlnID0gYXJyYXkoKSwgU2NvcGVJbnRlcmZhY2UgJHNjb3BlVXRpbCA9IG51bGwpCisgICAgeworICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCR0b2tlblR5cGUsICR0b2tlblN0b3JhZ2UsICRjb25maWcsICRzY29wZVV0aWwpOworCisgICAgICAgICR0aGlzLT51c2VyQ2xhaW1zU3RvcmFnZSA9ICR1c2VyQ2xhaW1zU3RvcmFnZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5mbyByZXF1ZXN0CisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKiBAcmV0dXJuIHZvaWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlVXNlckluZm9SZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPnZlcmlmeVJlc291cmNlUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCAnb3BlbmlkJykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5nZXRUb2tlbigpOworICAgICAgICAkY2xhaW1zID0gJHRoaXMtPnVzZXJDbGFpbXNTdG9yYWdlLT5nZXRVc2VyQ2xhaW1zKCR0b2tlblsndXNlcl9pZCddLCAkdG9rZW5bJ3Njb3BlJ10pOworICAgICAgICAvLyBUaGUgc3ViIENsYWltIE1VU1QgYWx3YXlzIGJlIHJldHVybmVkIGluIHRoZSBVc2VySW5mbyBSZXNwb25zZS4KKyAgICAgICAgLy8gaHR0cDovL29wZW5pZC5uZXQvc3BlY3Mvb3BlbmlkLWNvbm5lY3QtY29yZS0xXzAuaHRtbCNVc2VySW5mb1Jlc3BvbnNlCisgICAgICAgICRjbGFpbXMgKz0gYXJyYXkoCisgICAgICAgICAgICAnc3ViJyA9PiAkdG9rZW5bJ3VzZXJfaWQnXSwKKyAgICAgICAgKTsKKyAgICAgICAgJHJlc3BvbnNlLT5hZGRQYXJhbWV0ZXJzKCRjbGFpbXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9Vc2VySW5mb0NvbnRyb2xsZXJJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL0NvbnRyb2xsZXIvVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGU5MjI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL0NvbnRyb2xsZXIvVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDMwIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFJlcXVlc3RJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlSW50ZXJmYWNlOworCisvKioKKyAqICBUaGlzIGNvbnRyb2xsZXIgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xhaW1zIGZvciBPcGVuSUQgQ29ubmVjdCdzCisgKiAgVXNlckluZm8gZW5kcG9pbnQgc2hvdWxkIGJlIHJldHVybmVkLgorICoKKyAqIEBjb2RlCisgKiAgICAgJHJlc3BvbnNlID0gbmV3IE9BdXRoMlxSZXNwb25zZSgpOworICogICAgICR1c2VySW5mb0NvbnRyb2xsZXItPmhhbmRsZVVzZXJJbmZvUmVxdWVzdCgKKyAqICAgICAgICAgT0F1dGgyXFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCksCisgKiAgICAgICAgICRyZXNwb25zZQorICogICAgICk7CisgKiAgICAgJHJlc3BvbnNlLT5zZW5kKCk7CisgKiBAZW5kY29kZQorICovCitpbnRlcmZhY2UgVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogSGFuZGxlIHVzZXIgaW5mbyByZXF1ZXN0CisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFuZGxlVXNlckluZm9SZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvR3JhbnRUeXBlL0F1dGhvcml6YXRpb25Db2RlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9HcmFudFR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlMTEzYTAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvR3JhbnRUeXBlL0F1dGhvcml6YXRpb25Db2RlLnBocApAQCAtMCwwICsxLDQxIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXEF1dGhvcml6YXRpb25Db2RlIGFzIEJhc2VBdXRob3JpemF0aW9uQ29kZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlOworCisvKioKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2NsYXNzIEF1dGhvcml6YXRpb25Db2RlIGV4dGVuZHMgQmFzZUF1dGhvcml6YXRpb25Db2RlCit7CisgICAgLyoqCisgICAgICogQ3JlYXRlIGFjY2VzcyB0b2tlbgorICAgICAqCisgICAgICogQHBhcmFtIEFjY2Vzc1Rva2VuSW50ZXJmYWNlICRhY2Nlc3NUb2tlbgorICAgICAqIEBwYXJhbSBtaXhlZCAgICAgICAgICAgICAgICAkY2xpZW50X2lkICAgLSBjbGllbnQgaWRlbnRpZmllciByZWxhdGVkIHRvIHRoZSBhY2Nlc3MgdG9rZW4uCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICAgICR1c2VyX2lkICAgICAtIHVzZXIgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhY2Nlc3MgdG9rZW4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgJHNjb3BlICAgICAgIC0gc2NvcGVzIHRvIGJlIHN0b3JlZCBpbiBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlQWNjZXNzVG9rZW4oQWNjZXNzVG9rZW5JbnRlcmZhY2UgJGFjY2Vzc1Rva2VuLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHNjb3BlKQorICAgIHsKKyAgICAgICAgJGluY2x1ZGVSZWZyZXNoVG9rZW4gPSB0cnVlOworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmF1dGhDb2RlWydpZF90b2tlbiddKSkgeworICAgICAgICAgICAgLy8gT3BlbklEIENvbm5lY3QgcmVxdWVzdHMgaW5jbHVkZSB0aGUgcmVmcmVzaCB0b2tlbiBvbmx5IGlmIHRoZQorICAgICAgICAgICAgLy8gb2ZmbGluZV9hY2Nlc3Mgc2NvcGUgaGFzIGJlZW4gcmVxdWVzdGVkIGFuZCBncmFudGVkLgorICAgICAgICAgICAgJHNjb3BlcyA9IGV4cGxvZGUoJyAnLCB0cmltKCRzY29wZSkpOworICAgICAgICAgICAgJGluY2x1ZGVSZWZyZXNoVG9rZW4gPSBpbl9hcnJheSgnb2ZmbGluZV9hY2Nlc3MnLCAkc2NvcGVzKTsKKyAgICAgICAgfQorCisgICAgICAgICR0b2tlbiA9ICRhY2Nlc3NUb2tlbi0+Y3JlYXRlQWNjZXNzVG9rZW4oJGNsaWVudF9pZCwgJHVzZXJfaWQsICRzY29wZSwgJGluY2x1ZGVSZWZyZXNoVG9rZW4pOworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmF1dGhDb2RlWydpZF90b2tlbiddKSkgeworICAgICAgICAgICAgJHRva2VuWydpZF90b2tlbiddID0gJHRoaXMtPmF1dGhDb2RlWydpZF90b2tlbiddOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPnN0b3JhZ2UtPmV4cGlyZUF1dGhvcml6YXRpb25Db2RlKCR0aGlzLT5hdXRoQ29kZVsnY29kZSddKTsKKworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9BdXRob3JpemF0aW9uQ29kZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhhZDQxZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwCkBAIC0wLDAgKzEsNjYgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZTsKKwordXNlIE9BdXRoMlxSZXNwb25zZVR5cGVcQXV0aG9yaXphdGlvbkNvZGUgYXMgQmFzZUF1dGhvcml6YXRpb25Db2RlOwordXNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSBhcyBBdXRob3JpemF0aW9uQ29kZVN0b3JhZ2VJbnRlcmZhY2U7CisKKy8qKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworY2xhc3MgQXV0aG9yaXphdGlvbkNvZGUgZXh0ZW5kcyBCYXNlQXV0aG9yaXphdGlvbkNvZGUgaW1wbGVtZW50cyBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICoKKyAgICAgKiBAcGFyYW0gQXV0aG9yaXphdGlvbkNvZGVTdG9yYWdlSW50ZXJmYWNlICRzdG9yYWdlCisgICAgICogQHBhcmFtIGFycmF5ICRjb25maWcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQXV0aG9yaXphdGlvbkNvZGVTdG9yYWdlSW50ZXJmYWNlICRzdG9yYWdlLCBhcnJheSAkY29uZmlnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJHN0b3JhZ2UsICRjb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkcGFyYW1zCisgICAgICogQHBhcmFtIG51bGwgJHVzZXJfaWQKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6ZVJlc3BvbnNlKCRwYXJhbXMsICR1c2VyX2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIGJ1aWxkIHRoZSBVUkwgdG8gcmVkaXJlY3QgdG8KKyAgICAgICAgJHJlc3VsdCA9IGFycmF5KCdxdWVyeScgPT4gYXJyYXkoKSk7CisKKyAgICAgICAgJHBhcmFtcyArPSBhcnJheSgnc2NvcGUnID0+IG51bGwsICdzdGF0ZScgPT4gbnVsbCwgJ2lkX3Rva2VuJyA9PiBudWxsKTsKKworICAgICAgICAkcmVzdWx0WydxdWVyeSddWydjb2RlJ10gPSAkdGhpcy0+Y3JlYXRlQXV0aG9yaXphdGlvbkNvZGUoJHBhcmFtc1snY2xpZW50X2lkJ10sICR1c2VyX2lkLCAkcGFyYW1zWydyZWRpcmVjdF91cmknXSwgJHBhcmFtc1snc2NvcGUnXSwgJHBhcmFtc1snaWRfdG9rZW4nXSk7CisKKyAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3N0YXRlJ10pKSB7CisgICAgICAgICAgICAkcmVzdWx0WydxdWVyeSddWydzdGF0ZSddID0gJHBhcmFtc1snc3RhdGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhcnJheSgkcGFyYW1zWydyZWRpcmVjdF91cmknXSwgJHJlc3VsdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIHRoZSBjcmVhdGlvbiBvZiB0aGUgYXV0aG9yaXphdGlvbiBjb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIG1peGVkICRjbGllbnRfaWQgLSBDbGllbnQgaWRlbnRpZmllciByZWxhdGVkIHRvIHRoZSBhdXRob3JpemF0aW9uIGNvZGUKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHVzZXJfaWQgLSBVc2VyIElEIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0aG9yaXphdGlvbiBjb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkcmVkaXJlY3RfdXJpIC0gQW4gYWJzb2x1dGUgVVJJIHRvIHdoaWNoIHRoZSBhdXRob3JpemF0aW9uIHNlcnZlciB3aWxsIHJlZGlyZWN0IHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXItYWdlbnQgdG8gd2hlbiB0aGUgZW5kLXVzZXIgYXV0aG9yaXphdGlvbiBzdGVwIGlzIGNvbXBsZXRlZC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzY29wZSAtIE9QVElPTkFMIFNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpZF90b2tlbiAtIE9QVElPTkFMIFRoZSBPcGVuSUQgQ29ubmVjdCBpZF90b2tlbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNAorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlQXV0aG9yaXphdGlvbkNvZGUoJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksICRzY29wZSA9IG51bGwsICRpZF90b2tlbiA9IG51bGwpCisgICAgeworICAgICAgICAkY29kZSA9ICR0aGlzLT5nZW5lcmF0ZUF1dGhvcml6YXRpb25Db2RlKCk7CisgICAgICAgICR0aGlzLT5zdG9yYWdlLT5zZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksIHRpbWUoKSArICR0aGlzLT5jb25maWdbJ2F1dGhfY29kZV9saWZldGltZSddLCAkc2NvcGUsICRpZF90b2tlbik7CisKKyAgICAgICAgcmV0dXJuICRjb2RlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI5NGVmMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMjcgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZTsKKwordXNlIE9BdXRoMlxSZXNwb25zZVR5cGVcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgYXMgQmFzZUF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlOworCisvKioKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2ludGVyZmFjZSBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSBleHRlbmRzIEJhc2VBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgY3JlYXRpb24gb2YgdGhlIGF1dGhvcml6YXRpb24gY29kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaXhlZCAgJGNsaWVudF9pZCAgICAtIENsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGF1dGhvcml6YXRpb24gY29kZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJHVzZXJfaWQgICAgICAtIFVzZXIgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhdXRob3JpemF0aW9uIGNvZGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyZWRpcmVjdF91cmkgLSBBbiBhYnNvbHV0ZSBVUkkgdG8gd2hpY2ggdGhlIGF1dGhvcml6YXRpb24gc2VydmVyIHdpbGwgcmVkaXJlY3QgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlci1hZ2VudCB0byB3aGVuIHRoZSBlbmQtdXNlciBhdXRob3JpemF0aW9uIHN0ZXAgaXMgY29tcGxldGVkLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlICAgICAgICAtIE9QVElPTkFMIFNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpZF90b2tlbiAgICAgLSBPUFRJT05BTCBUaGUgT3BlbklEIENvbm5lY3QgaWRfdG9rZW4uCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl80CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUF1dGhvcml6YXRpb25Db2RlKCRjbGllbnRfaWQsICR1c2VyX2lkLCAkcmVkaXJlY3RfdXJpLCAkc2NvcGUgPSBudWxsLCAkaWRfdG9rZW4gPSBudWxsKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvQ29kZUlkVG9rZW4ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9Db2RlSWRUb2tlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY5NmFkYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvQ29kZUlkVG9rZW4ucGhwCkBAIC0wLDAgKzEsNDAgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZTsKKworY2xhc3MgQ29kZUlkVG9rZW4gaW1wbGVtZW50cyBDb2RlSWRUb2tlbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGF1dGhDb2RlOworCisgICAgLyoqCisgICAgICogQHZhciBJZFRva2VuSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRpZFRva2VuOworCisgICAgLyoqCisgICAgICogQHBhcmFtIEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlICRhdXRoQ29kZQorICAgICAqIEBwYXJhbSBJZFRva2VuSW50ZXJmYWNlICAgICAgICAgICAkaWRUb2tlbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSAkYXV0aENvZGUsIElkVG9rZW5JbnRlcmZhY2UgJGlkVG9rZW4pCisgICAgeworICAgICAgICAkdGhpcy0+YXV0aENvZGUgPSAkYXV0aENvZGU7CisgICAgICAgICR0aGlzLT5pZFRva2VuID0gJGlkVG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJhbXMKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHVzZXJfaWQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6ZVJlc3BvbnNlKCRwYXJhbXMsICR1c2VyX2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+YXV0aENvZGUtPmdldEF1dGhvcml6ZVJlc3BvbnNlKCRwYXJhbXMsICR1c2VyX2lkKTsKKyAgICAgICAgJHJlc3VsdElkVG9rZW4gPSAkdGhpcy0+aWRUb2tlbi0+Z2V0QXV0aG9yaXplUmVzcG9uc2UoJHBhcmFtcywgJHVzZXJfaWQpOworICAgICAgICAkcmVzdWx0WzFdWydxdWVyeSddWydpZF90b2tlbiddID0gJHJlc3VsdElkVG9rZW5bMV1bJ2ZyYWdtZW50J11bJ2lkX3Rva2VuJ107CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9Db2RlSWRUb2tlbkludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0NvZGVJZFRva2VuSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjlhZGNjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9Db2RlSWRUb2tlbkludGVyZmFjZS5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGU7CisKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXFJlc3BvbnNlVHlwZUludGVyZmFjZTsKKworaW50ZXJmYWNlIENvZGVJZFRva2VuSW50ZXJmYWNlIGV4dGVuZHMgUmVzcG9uc2VUeXBlSW50ZXJmYWNlCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0lkVG9rZW4ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9JZFRva2VuLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWU0NDYwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9JZFRva2VuLnBocApAQCAtMCwwICsxLDE3OCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxPcGVuSURcUmVzcG9uc2VUeXBlOworCit1c2UgT0F1dGgyXEVuY3J5cHRpb25cRW5jcnlwdGlvbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcRW5jcnlwdGlvblxKd3Q7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlOwordXNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlOwordXNlIExvZ2ljRXhjZXB0aW9uOworCitjbGFzcyBJZFRva2VuIGltcGxlbWVudHMgSWRUb2tlbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgVXNlckNsYWltc0ludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkdXNlckNsYWltc1N0b3JhZ2U7CisgICAgLyoqCisgICAgICogQHZhciBQdWJsaWNLZXlJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHB1YmxpY0tleVN0b3JhZ2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRjb25maWc7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIEVuY3J5cHRpb25JbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGVuY3J5cHRpb25VdGlsOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKgorICAgICAqIEBwYXJhbSBVc2VyQ2xhaW1zSW50ZXJmYWNlICR1c2VyQ2xhaW1zU3RvcmFnZQorICAgICAqIEBwYXJhbSBQdWJsaWNLZXlJbnRlcmZhY2UgJHB1YmxpY0tleVN0b3JhZ2UKKyAgICAgKiBAcGFyYW0gYXJyYXkgJGNvbmZpZworICAgICAqIEBwYXJhbSBFbmNyeXB0aW9uSW50ZXJmYWNlICRlbmNyeXB0aW9uVXRpbAorICAgICAqIEB0aHJvd3MgTG9naWNFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoVXNlckNsYWltc0ludGVyZmFjZSAkdXNlckNsYWltc1N0b3JhZ2UsIFB1YmxpY0tleUludGVyZmFjZSAkcHVibGljS2V5U3RvcmFnZSwgYXJyYXkgJGNvbmZpZyA9IGFycmF5KCksIEVuY3J5cHRpb25JbnRlcmZhY2UgJGVuY3J5cHRpb25VdGlsID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT51c2VyQ2xhaW1zU3RvcmFnZSA9ICR1c2VyQ2xhaW1zU3RvcmFnZTsKKyAgICAgICAgJHRoaXMtPnB1YmxpY0tleVN0b3JhZ2UgPSAkcHVibGljS2V5U3RvcmFnZTsKKyAgICAgICAgaWYgKGlzX251bGwoJGVuY3J5cHRpb25VdGlsKSkgeworICAgICAgICAgICAgJGVuY3J5cHRpb25VdGlsID0gbmV3IEp3dCgpOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5lbmNyeXB0aW9uVXRpbCA9ICRlbmNyeXB0aW9uVXRpbDsKKworICAgICAgICBpZiAoIWlzc2V0KCRjb25maWdbJ2lzc3VlciddKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IExvZ2ljRXhjZXB0aW9uKCdjb25maWcgcGFyYW1ldGVyICJpc3N1ZXIiIG11c3QgYmUgc2V0Jyk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmNvbmZpZyA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgJ2lkX2xpZmV0aW1lJyA9PiAzNjAwLAorICAgICAgICApLCAkY29uZmlnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtcworICAgICAqIEBwYXJhbSBudWxsICR1c2VySW5mbworICAgICAqIEByZXR1cm4gYXJyYXl8bWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXV0aG9yaXplUmVzcG9uc2UoJHBhcmFtcywgJHVzZXJJbmZvID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIGJ1aWxkIHRoZSBVUkwgdG8gcmVkaXJlY3QgdG8KKyAgICAgICAgJHJlc3VsdCA9IGFycmF5KCdxdWVyeScgPT4gYXJyYXkoKSk7CisgICAgICAgICRwYXJhbXMgKz0gYXJyYXkoJ3Njb3BlJyA9PiBudWxsLCAnc3RhdGUnID0+IG51bGwsICdub25jZScgPT4gbnVsbCk7CisKKyAgICAgICAgLy8gY3JlYXRlIHRoZSBpZCB0b2tlbi4KKyAgICAgICAgbGlzdCgkdXNlcl9pZCwgJGF1dGhfdGltZSkgPSAkdGhpcy0+Z2V0VXNlcklkQW5kQXV0aFRpbWUoJHVzZXJJbmZvKTsKKyAgICAgICAgJHVzZXJDbGFpbXMgPSAkdGhpcy0+dXNlckNsYWltc1N0b3JhZ2UtPmdldFVzZXJDbGFpbXMoJHVzZXJfaWQsICRwYXJhbXNbJ3Njb3BlJ10pOworCisgICAgICAgICRpZF90b2tlbiA9ICR0aGlzLT5jcmVhdGVJZFRva2VuKCRwYXJhbXNbJ2NsaWVudF9pZCddLCAkdXNlckluZm8sICRwYXJhbXNbJ25vbmNlJ10sICR1c2VyQ2xhaW1zLCBudWxsKTsKKyAgICAgICAgJHJlc3VsdFsiZnJhZ21lbnQiXSA9IGFycmF5KCdpZF90b2tlbicgPT4gJGlkX3Rva2VuKTsKKyAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3N0YXRlJ10pKSB7CisgICAgICAgICAgICAkcmVzdWx0WyJmcmFnbWVudCJdWyJzdGF0ZSJdID0gJHBhcmFtc1snc3RhdGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhcnJheSgkcGFyYW1zWydyZWRpcmVjdF91cmknXSwgJHJlc3VsdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGlkIHRva2VuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VySW5mbworICAgICAqIEBwYXJhbSBtaXhlZCAgJG5vbmNlCisgICAgICogQHBhcmFtIG1peGVkICAkdXNlckNsYWltcworICAgICAqIEBwYXJhbSBtaXhlZCAgJGFjY2Vzc190b2tlbgorICAgICAqIEByZXR1cm4gbWl4ZWR8c3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUlkVG9rZW4oJGNsaWVudF9pZCwgJHVzZXJJbmZvLCAkbm9uY2UgPSBudWxsLCAkdXNlckNsYWltcyA9IG51bGwsICRhY2Nlc3NfdG9rZW4gPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gcHVsbCBhdXRoX3RpbWUgZnJvbSB1c2VyIGluZm8gaWYgc3VwcGxpZWQKKyAgICAgICAgbGlzdCgkdXNlcl9pZCwgJGF1dGhfdGltZSkgPSAkdGhpcy0+Z2V0VXNlcklkQW5kQXV0aFRpbWUoJHVzZXJJbmZvKTsKKworICAgICAgICAkdG9rZW4gPSBhcnJheSgKKyAgICAgICAgICAgICdpc3MnICAgICAgICA9PiAkdGhpcy0+Y29uZmlnWydpc3N1ZXInXSwKKyAgICAgICAgICAgICdzdWInICAgICAgICA9PiAkdXNlcl9pZCwKKyAgICAgICAgICAgICdhdWQnICAgICAgICA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgJ2lhdCcgICAgICAgID0+IHRpbWUoKSwKKyAgICAgICAgICAgICdleHAnICAgICAgICA9PiB0aW1lKCkgKyAkdGhpcy0+Y29uZmlnWydpZF9saWZldGltZSddLAorICAgICAgICAgICAgJ2F1dGhfdGltZScgID0+ICRhdXRoX3RpbWUsCisgICAgICAgICk7CisKKyAgICAgICAgaWYgKCRub25jZSkgeworICAgICAgICAgICAgJHRva2VuWydub25jZSddID0gJG5vbmNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCR1c2VyQ2xhaW1zKSB7CisgICAgICAgICAgICAkdG9rZW4gKz0gJHVzZXJDbGFpbXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAoJGFjY2Vzc190b2tlbikgeworICAgICAgICAgICAgJHRva2VuWydhdF9oYXNoJ10gPSAkdGhpcy0+Y3JlYXRlQXRIYXNoKCRhY2Nlc3NfdG9rZW4sICRjbGllbnRfaWQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5lbmNvZGVUb2tlbigkdG9rZW4sICRjbGllbnRfaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkYWNjZXNzX3Rva2VuCisgICAgICogQHBhcmFtIG51bGwgJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gbWl4ZWR8c3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNyZWF0ZUF0SGFzaCgkYWNjZXNzX3Rva2VuLCAkY2xpZW50X2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIG1hcHMgSFMyNTYgYW5kIFJTMjU2IHRvIHNoYTI1NiwgZXRjLgorICAgICAgICAkYWxnb3JpdGhtID0gJHRoaXMtPnB1YmxpY0tleVN0b3JhZ2UtPmdldEVuY3J5cHRpb25BbGdvcml0aG0oJGNsaWVudF9pZCk7CisgICAgICAgICRoYXNoX2FsZ29yaXRobSA9ICdzaGEnIC4gc3Vic3RyKCRhbGdvcml0aG0sIDIpOworICAgICAgICAkaGFzaCA9IGhhc2goJGhhc2hfYWxnb3JpdGhtLCAkYWNjZXNzX3Rva2VuLCB0cnVlKTsKKyAgICAgICAgJGF0X2hhc2ggPSBzdWJzdHIoJGhhc2gsIDAsIHN0cmxlbigkaGFzaCkgLyAyKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmVuY3J5cHRpb25VdGlsLT51cmxTYWZlQjY0RW5jb2RlKCRhdF9oYXNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHRva2VuCisgICAgICogQHBhcmFtIG51bGwgJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gbWl4ZWR8c3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGVuY29kZVRva2VuKGFycmF5ICR0b2tlbiwgJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICAkcHJpdmF0ZV9rZXkgPSAkdGhpcy0+cHVibGljS2V5U3RvcmFnZS0+Z2V0UHJpdmF0ZUtleSgkY2xpZW50X2lkKTsKKyAgICAgICAgJGFsZ29yaXRobSA9ICR0aGlzLT5wdWJsaWNLZXlTdG9yYWdlLT5nZXRFbmNyeXB0aW9uQWxnb3JpdGhtKCRjbGllbnRfaWQpOworCisgICAgICAgIHJldHVybiAkdGhpcy0+ZW5jcnlwdGlvblV0aWwtPmVuY29kZSgkdG9rZW4sICRwcml2YXRlX2tleSwgJGFsZ29yaXRobSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICR1c2VySW5mbworICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKiBAdGhyb3dzIExvZ2ljRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRVc2VySWRBbmRBdXRoVGltZSgkdXNlckluZm8pCisgICAgeworICAgICAgICAkYXV0aF90aW1lID0gbnVsbDsKKworICAgICAgICAvLyBzdXBwb3J0IGFuIGFycmF5IGZvciB1c2VyX2lkIC8gYXV0aF90aW1lCisgICAgICAgIGlmIChpc19hcnJheSgkdXNlckluZm8pKSB7CisgICAgICAgICAgICBpZiAoIWlzc2V0KCR1c2VySW5mb1sndXNlcl9pZCddKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBMb2dpY0V4Y2VwdGlvbignaWYgJHVzZXJfaWQgYXJndW1lbnQgaXMgYW4gYXJyYXksIHVzZXJfaWQgaW5kZXggbXVzdCBiZSBzZXQnKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJGF1dGhfdGltZSA9IGlzc2V0KCR1c2VySW5mb1snYXV0aF90aW1lJ10pID8gJHVzZXJJbmZvWydhdXRoX3RpbWUnXSA6IG51bGw7CisgICAgICAgICAgICAkdXNlcl9pZCA9ICR1c2VySW5mb1sndXNlcl9pZCddOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHVzZXJfaWQgPSAkdXNlckluZm87CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNfbnVsbCgkYXV0aF90aW1lKSkgeworICAgICAgICAgICAgJGF1dGhfdGltZSA9IHRpbWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHVzZXJJbmZvIGlzIGEgc2NhbGFyLCBhbmQgc28gdGhpcyBpcyB0aGUgJHVzZXJfaWQuIEF1dGggVGltZSBpcyBudWxsCisgICAgICAgIHJldHVybiBhcnJheSgkdXNlcl9pZCwgJGF1dGhfdGltZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9JZFRva2VuSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvSWRUb2tlbkludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI2YTNiYwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvSWRUb2tlbkludGVyZmFjZS5waHAKQEAgLTAsMCArMSwzMCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxPcGVuSURcUmVzcG9uc2VUeXBlOworCit1c2UgT0F1dGgyXFJlc3BvbnNlVHlwZVxSZXNwb25zZVR5cGVJbnRlcmZhY2U7CisKK2ludGVyZmFjZSBJZFRva2VuSW50ZXJmYWNlIGV4dGVuZHMgUmVzcG9uc2VUeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoZSBpZCB0b2tlbi4KKyAgICAgKgorICAgICAqIElmIEF1dGhvcml6YXRpb24gQ29kZSBGbG93IGlzIHVzZWQsIHRoZSBpZF90b2tlbiBpcyBnZW5lcmF0ZWQgd2hlbiB0aGUKKyAgICAgKiBhdXRob3JpemF0aW9uIGNvZGUgaXMgaXNzdWVkLCBhbmQgbGF0ZXIgcmV0dXJuZWQgZnJvbSB0aGUgdG9rZW4gZW5kcG9pbnQKKyAgICAgKiB0b2dldGhlciB3aXRoIHRoZSBhY2Nlc3NfdG9rZW4uCisgICAgICogSWYgdGhlIEltcGxpY2l0IEZsb3cgaXMgdXNlZCwgdGhlIHRva2VuIGFuZCBpZF90b2tlbiBhcmUgZ2VuZXJhdGVkIGFuZAorICAgICAqIHJldHVybmVkIHRvZ2V0aGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xpZW50X2lkICAgICAgICAtIFRoZSBjbGllbnQgaWQuCisgICAgICogQHBhcmFtIG1peGVkICAkdXNlckluZm8gICAgICAgICAtIFVzZXIgaW5mbworICAgICAqIEBwYXJhbSBzdHJpbmcgJG5vbmNlICAgICAgICAgICAgLSBPUFRJT05BTCBUaGUgbm9uY2UuCisgICAgICogQHBhcmFtIHN0cmluZyAkdXNlckNsYWltcyAgICAgICAtIE9QVElPTkFMIENsYWltcyBhYm91dCB0aGUgdXNlci4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhY2Nlc3NfdG9rZW4gICAgIC0gT1BUSU9OQUwgVGhlIGFjY2VzcyB0b2tlbiwgaWYga25vd24uCisKKyAgICAgKiBAaW50ZXJuYWwgcGFyYW0gc3RyaW5nICR1c2VyX2lkIC0gVGhlIHVzZXIgaWQuCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIElEIFRva2VuIHJlcHJlc2VudGVkIGFzIGEgSlNPTiBXZWIgVG9rZW4gKEpXVCkuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly9vcGVuaWQubmV0L3NwZWNzL29wZW5pZC1jb25uZWN0LWNvcmUtMV8wLmh0bWwjSURUb2tlbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVJZFRva2VuKCRjbGllbnRfaWQsICR1c2VySW5mbywgJG5vbmNlID0gbnVsbCwgJHVzZXJDbGFpbXMgPSBudWxsLCAkYWNjZXNzX3Rva2VuID0gbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0lkVG9rZW5Ub2tlbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0lkVG9rZW5Ub2tlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRjNTFhZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvSWRUb2tlblRva2VuLnBocApAQCAtMCwwICsxLDQ1IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGU7CisKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlOworCitjbGFzcyBJZFRva2VuVG9rZW4gaW1wbGVtZW50cyBJZFRva2VuVG9rZW5JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIEFjY2Vzc1Rva2VuSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRhY2Nlc3NUb2tlbjsKKworICAgIC8qKgorICAgICAqIEB2YXIgSWRUb2tlbkludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkaWRUb2tlbjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICoKKyAgICAgKiBAcGFyYW0gQWNjZXNzVG9rZW5JbnRlcmZhY2UgJGFjY2Vzc1Rva2VuCisgICAgICogQHBhcmFtIElkVG9rZW5JbnRlcmZhY2UgJGlkVG9rZW4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQWNjZXNzVG9rZW5JbnRlcmZhY2UgJGFjY2Vzc1Rva2VuLCBJZFRva2VuSW50ZXJmYWNlICRpZFRva2VuKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmFjY2Vzc1Rva2VuID0gJGFjY2Vzc1Rva2VuOworICAgICAgICAkdGhpcy0+aWRUb2tlbiA9ICRpZFRva2VuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zCisgICAgICogQHBhcmFtIG1peGVkICR1c2VyX2lkCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdXRob3JpemVSZXNwb25zZSgkcGFyYW1zLCAkdXNlcl9pZCA9IG51bGwpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmFjY2Vzc1Rva2VuLT5nZXRBdXRob3JpemVSZXNwb25zZSgkcGFyYW1zLCAkdXNlcl9pZCk7CisgICAgICAgICRhY2Nlc3NfdG9rZW4gPSAkcmVzdWx0WzFdWydmcmFnbWVudCddWydhY2Nlc3NfdG9rZW4nXTsKKyAgICAgICAgJGlkX3Rva2VuID0gJHRoaXMtPmlkVG9rZW4tPmNyZWF0ZUlkVG9rZW4oJHBhcmFtc1snY2xpZW50X2lkJ10sICR1c2VyX2lkLCAkcGFyYW1zWydub25jZSddLCBudWxsLCAkYWNjZXNzX3Rva2VuKTsKKyAgICAgICAgJHJlc3VsdFsxXVsnZnJhZ21lbnQnXVsnaWRfdG9rZW4nXSA9ICRpZF90b2tlbjsKKworICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0lkVG9rZW5Ub2tlbkludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0lkVG9rZW5Ub2tlbkludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMxM2UyMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvSWRUb2tlblRva2VuSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZTsKKwordXNlIE9BdXRoMlxSZXNwb25zZVR5cGVcUmVzcG9uc2VUeXBlSW50ZXJmYWNlOworCitpbnRlcmZhY2UgSWRUb2tlblRva2VuSW50ZXJmYWNlIGV4dGVuZHMgUmVzcG9uc2VUeXBlSW50ZXJmYWNlCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvU3RvcmFnZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9PcGVuSUQvU3RvcmFnZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ2Y2VjOQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9TdG9yYWdlL0F1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDM3IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxTdG9yYWdlOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgYXMgQmFzZUF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlOworLyoqCisgKiBJbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UgdG8gc3BlY2lmeSB3aGVyZSB0aGUgT0F1dGgyIFNlcnZlcgorICogc2hvdWxkIGdldC9zYXZlIGF1dGhvcml6YXRpb24gY29kZXMgZm9yIHRoZSAiQXV0aG9yaXphdGlvbiBDb2RlIgorICogZ3JhbnQgdHlwZQorICoKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2ludGVyZmFjZSBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSBleHRlbmRzIEJhc2VBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIFRha2UgdGhlIHByb3ZpZGVkIGF1dGhvcml6YXRpb24gY29kZSB2YWx1ZXMgYW5kIHN0b3JlIHRoZW0gc29tZXdoZXJlLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdGhlIHN0b3JhZ2UgY291bnRlcnBhcnQgdG8gZ2V0QXV0aENvZGUoKS4KKyAgICAgKgorICAgICAqIElmIHN0b3JhZ2UgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCB3ZSdyZSBub3QgY3VycmVudGx5IGNoZWNraW5nIGZvcgorICAgICAqIGFueSBzb3J0IG9mIHN1Y2Nlc3MvZmFpbHVyZSwgc28geW91IHNob3VsZCBiYWlsIG91dCBvZiB0aGUgc2NyaXB0CisgICAgICogYW5kIHByb3ZpZGUgYSBkZXNjcmlwdGl2ZSBmYWlsIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBSZXF1aXJlZCBmb3IgT0F1dGgyOjpHUkFOVF9UWVBFX0FVVEhfQ09ERS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvZGUgICAgICAgICAtIGF1dGhvcml6YXRpb24gY29kZSB0byBiZSBzdG9yZWQuCisgICAgICogQHBhcmFtIG1peGVkICRjbGllbnRfaWQgICAgIC0gY2xpZW50IGlkZW50aWZpZXIgdG8gYmUgc3RvcmVkLgorICAgICAqIEBwYXJhbSBtaXhlZCAkdXNlcl9pZCAgICAgICAtIHVzZXIgaWRlbnRpZmllciB0byBiZSBzdG9yZWQuCisgICAgICogQHBhcmFtIHN0cmluZyAkcmVkaXJlY3RfdXJpIC0gcmVkaXJlY3QgVVJJKHMpIHRvIGJlIHN0b3JlZCBpbiBhIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICogQHBhcmFtIGludCAgICAkZXhwaXJlcyAgICAgIC0gZXhwaXJhdGlvbiB0byBiZSBzdG9yZWQgYXMgYSBVbml4IHRpbWVzdGFtcC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzY29wZSAgICAgICAgLSBPUFRJT05BTCBzY29wZXMgdG8gYmUgc3RvcmVkIGluIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0cmluZyAkaWRfdG9rZW4gICAgIC0gT1BUSU9OQUwgdGhlIE9wZW5JRCBDb25uZWN0IGlkX3Rva2VuLgorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksICRleHBpcmVzLCAkc2NvcGUgPSBudWxsLCAkaWRfdG9rZW4gPSBudWxsKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9TdG9yYWdlL1VzZXJDbGFpbXNJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvT3BlbklEL1N0b3JhZ2UvVXNlckNsYWltc0ludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM1ZTdjOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL09wZW5JRC9TdG9yYWdlL1VzZXJDbGFpbXNJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMzUgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2U7CisKKy8qKgorICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIHRvIHNwZWNpZnkgd2hlcmUgdGhlIE9BdXRoMiBTZXJ2ZXIKKyAqIHNob3VsZCByZXRyaWV2ZSB1c2VyIGNsYWltcyBmb3IgdGhlIE9wZW5JRCBDb25uZWN0IGlkX3Rva2VuLgorICovCitpbnRlcmZhY2UgVXNlckNsYWltc0ludGVyZmFjZQoreworICAgIC8vIHZhbGlkIHNjb3BlIHZhbHVlcyB0byBwYXNzIGludG8gdGhlIHVzZXIgY2xhaW1zIEFQSSBjYWxsCisgICAgY29uc3QgVkFMSURfQ0xBSU1TID0gJ3Byb2ZpbGUgZW1haWwgYWRkcmVzcyBwaG9uZSc7CisKKyAgICAvLyBmaWVsZHMgcmV0dXJuZWQgZm9yIHRoZSBjbGFpbXMgYWJvdmUKKyAgICBjb25zdCBQUk9GSUxFX0NMQUlNX1ZBTFVFUyAgPSAnbmFtZSBmYW1pbHlfbmFtZSBnaXZlbl9uYW1lIG1pZGRsZV9uYW1lIG5pY2tuYW1lIHByZWZlcnJlZF91c2VybmFtZSBwcm9maWxlIHBpY3R1cmUgd2Vic2l0ZSBnZW5kZXIgYmlydGhkYXRlIHpvbmVpbmZvIGxvY2FsZSB1cGRhdGVkX2F0JzsKKyAgICBjb25zdCBFTUFJTF9DTEFJTV9WQUxVRVMgICAgPSAnZW1haWwgZW1haWxfdmVyaWZpZWQnOworICAgIGNvbnN0IEFERFJFU1NfQ0xBSU1fVkFMVUVTICA9ICdmb3JtYXR0ZWQgc3RyZWV0X2FkZHJlc3MgbG9jYWxpdHkgcmVnaW9uIHBvc3RhbF9jb2RlIGNvdW50cnknOworICAgIGNvbnN0IFBIT05FX0NMQUlNX1ZBTFVFUyAgICA9ICdwaG9uZV9udW1iZXIgcGhvbmVfbnVtYmVyX3ZlcmlmaWVkJzsKKworICAgIC8qKgorICAgICAqIFJldHVybiBjbGFpbXMgYWJvdXQgdGhlIHByb3ZpZGVkIHVzZXIgaWQuCisgICAgICoKKyAgICAgKiBHcm91cHMgb2YgY2xhaW1zIGFyZSByZXR1cm5lZCBiYXNlZCBvbiB0aGUgcmVxdWVzdGVkIHNjb3Blcy4gTm8gZ3JvdXAKKyAgICAgKiBpcyByZXF1aXJlZCwgYW5kIG5vIGNsYWltIGlzIHJlcXVpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIG1peGVkICAkdXNlcl9pZCAtIFRoZSBpZCBvZiB0aGUgdXNlciBmb3Igd2hpY2ggY2xhaW1zIHNob3VsZCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzY29wZSAgIC0gVGhlIHJlcXVlc3RlZCBzY29wZS4KKyAgICAgKiBTY29wZXMgd2l0aCBtYXRjaGluZyBjbGFpbXM6IHByb2ZpbGUsIGVtYWlsLCBhZGRyZXNzLCBwaG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkgLSBBbiBhcnJheSBpbiB0aGUgY2xhaW0gPT4gdmFsdWUgZm9ybWF0LgorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vb3BlbmlkLm5ldC9zcGVjcy9vcGVuaWQtY29ubmVjdC1jb3JlLTFfMC5odG1sI1Njb3BlQ2xhaW1zCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJDbGFpbXMoJHVzZXJfaWQsICRzY29wZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9SZXF1ZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1JlcXVlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1NDdiZjYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9SZXF1ZXN0LnBocApAQCAtMCwwICsxLDI1MiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMjsKKwordXNlIExvZ2ljRXhjZXB0aW9uOworCisvKioKKyAqIE9BdXRoMlxSZXF1ZXN0CisgKiBUaGlzIGNsYXNzIGlzIHRha2VuIGZyb20gdGhlIFN5bWZvbnkyIEZyYW1ld29yayBhbmQgaXMgcGFydCBvZiB0aGUgU3ltZm9ueSBwYWNrYWdlLgorICogU2VlIFN5bWZvbnlcQ29tcG9uZW50XEh0dHBGb3VuZGF0aW9uXFJlcXVlc3QgKGh0dHBzOi8vZ2l0aHViLmNvbS9zeW1mb255L3N5bWZvbnkpCisgKi8KK2NsYXNzIFJlcXVlc3QgaW1wbGVtZW50cyBSZXF1ZXN0SW50ZXJmYWNlCit7CisgICAgcHVibGljICRhdHRyaWJ1dGVzOworICAgIHB1YmxpYyAkcmVxdWVzdDsKKyAgICBwdWJsaWMgJHF1ZXJ5OworICAgIHB1YmxpYyAkc2VydmVyOworICAgIHB1YmxpYyAkZmlsZXM7CisgICAgcHVibGljICRjb29raWVzOworICAgIHB1YmxpYyAkaGVhZGVyczsKKyAgICBwdWJsaWMgJGNvbnRlbnQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAgJHF1ZXJ5ICAgICAgLSBUaGUgR0VUIHBhcmFtZXRlcnMKKyAgICAgKiBAcGFyYW0gYXJyYXkgICRyZXF1ZXN0ICAgIC0gVGhlIFBPU1QgcGFyYW1ldGVycworICAgICAqIEBwYXJhbSBhcnJheSAgJGF0dHJpYnV0ZXMgLSBUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIChwYXJhbWV0ZXJzIHBhcnNlZCBmcm9tIHRoZSBQQVRIX0lORk8sIC4uLikKKyAgICAgKiBAcGFyYW0gYXJyYXkgICRjb29raWVzICAgIC0gVGhlIENPT0tJRSBwYXJhbWV0ZXJzCisgICAgICogQHBhcmFtIGFycmF5ICAkZmlsZXMgICAgICAtIFRoZSBGSUxFUyBwYXJhbWV0ZXJzCisgICAgICogQHBhcmFtIGFycmF5ICAkc2VydmVyICAgICAtIFRoZSBTRVJWRVIgcGFyYW1ldGVycworICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQgICAgLSBUaGUgcmF3IGJvZHkgZGF0YQorICAgICAqIEBwYXJhbSBhcnJheSAgJGhlYWRlcnMgICAgLSBUaGUgaGVhZGVycworICAgICAqCisgICAgICogQGFwaQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChhcnJheSAkcXVlcnkgPSBhcnJheSgpLCBhcnJheSAkcmVxdWVzdCA9IGFycmF5KCksIGFycmF5ICRhdHRyaWJ1dGVzID0gYXJyYXkoKSwgYXJyYXkgJGNvb2tpZXMgPSBhcnJheSgpLCBhcnJheSAkZmlsZXMgPSBhcnJheSgpLCBhcnJheSAkc2VydmVyID0gYXJyYXkoKSwgJGNvbnRlbnQgPSBudWxsLCBhcnJheSAkaGVhZGVycyA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+aW5pdGlhbGl6ZSgkcXVlcnksICRyZXF1ZXN0LCAkYXR0cmlidXRlcywgJGNvb2tpZXMsICRmaWxlcywgJHNlcnZlciwgJGNvbnRlbnQsICRoZWFkZXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGlzIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBhbHNvIHJlLWluaXRpYWxpemVzIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICAkcXVlcnkgICAgICAtIFRoZSBHRVQgcGFyYW1ldGVycworICAgICAqIEBwYXJhbSBhcnJheSAgJHJlcXVlc3QgICAgLSBUaGUgUE9TVCBwYXJhbWV0ZXJzCisgICAgICogQHBhcmFtIGFycmF5ICAkYXR0cmlidXRlcyAtIFRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMgKHBhcmFtZXRlcnMgcGFyc2VkIGZyb20gdGhlIFBBVEhfSU5GTywgLi4uKQorICAgICAqIEBwYXJhbSBhcnJheSAgJGNvb2tpZXMgICAgLSBUaGUgQ09PS0lFIHBhcmFtZXRlcnMKKyAgICAgKiBAcGFyYW0gYXJyYXkgICRmaWxlcyAgICAgIC0gVGhlIEZJTEVTIHBhcmFtZXRlcnMKKyAgICAgKiBAcGFyYW0gYXJyYXkgICRzZXJ2ZXIgICAgIC0gVGhlIFNFUlZFUiBwYXJhbWV0ZXJzCisgICAgICogQHBhcmFtIHN0cmluZyAkY29udGVudCAgICAtIFRoZSByYXcgYm9keSBkYXRhCisgICAgICogQHBhcmFtIGFycmF5ICAkaGVhZGVycyAgICAtIFRoZSBoZWFkZXJzCisgICAgICoKKyAgICAgKiBAYXBpCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGluaXRpYWxpemUoYXJyYXkgJHF1ZXJ5ID0gYXJyYXkoKSwgYXJyYXkgJHJlcXVlc3QgPSBhcnJheSgpLCBhcnJheSAkYXR0cmlidXRlcyA9IGFycmF5KCksIGFycmF5ICRjb29raWVzID0gYXJyYXkoKSwgYXJyYXkgJGZpbGVzID0gYXJyYXkoKSwgYXJyYXkgJHNlcnZlciA9IGFycmF5KCksICRjb250ZW50ID0gbnVsbCwgYXJyYXkgJGhlYWRlcnMgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlcXVlc3QgPSAkcmVxdWVzdDsKKyAgICAgICAgJHRoaXMtPnF1ZXJ5ID0gJHF1ZXJ5OworICAgICAgICAkdGhpcy0+YXR0cmlidXRlcyA9ICRhdHRyaWJ1dGVzOworICAgICAgICAkdGhpcy0+Y29va2llcyA9ICRjb29raWVzOworICAgICAgICAkdGhpcy0+ZmlsZXMgPSAkZmlsZXM7CisgICAgICAgICR0aGlzLT5zZXJ2ZXIgPSAkc2VydmVyOworICAgICAgICAkdGhpcy0+Y29udGVudCA9ICRjb250ZW50OworCisgICAgICAgIGlmICgkaGVhZGVycyA9PT0gbnVsbCkgeworICAgICAgICAgICAgJGhlYWRlcnMgPSBhcnJheSgpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPmhlYWRlcnMgPSAkaGVhZGVycyArICR0aGlzLT5nZXRIZWFkZXJzRnJvbVNlcnZlcigkdGhpcy0+c2VydmVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHBhcmFtIG1peGVkICAkZGVmYXVsdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcXVlcnkoJG5hbWUsICRkZWZhdWx0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cXVlcnlbJG5hbWVdKSA/ICR0aGlzLT5xdWVyeVskbmFtZV0gOiAkZGVmYXVsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHBhcmFtIG1peGVkICAkZGVmYXVsdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcmVxdWVzdCgkbmFtZSwgJGRlZmF1bHQgPSBudWxsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5yZXF1ZXN0WyRuYW1lXSkgPyAkdGhpcy0+cmVxdWVzdFskbmFtZV0gOiAkZGVmYXVsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHBhcmFtIG1peGVkICAkZGVmYXVsdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2VydmVyKCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPnNlcnZlclskbmFtZV0pID8gJHRoaXMtPnNlcnZlclskbmFtZV0gOiAkZGVmYXVsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHBhcmFtIG1peGVkICAkZGVmYXVsdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGVhZGVycygkbmFtZSwgJGRlZmF1bHQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJGhlYWRlcnMgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJHRoaXMtPmhlYWRlcnMpOworICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5hbWUpOworCisgICAgICAgIHJldHVybiBpc3NldCgkaGVhZGVyc1skbmFtZV0pID8gJGhlYWRlcnNbJG5hbWVdIDogJGRlZmF1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxRdWVyeVBhcmFtZXRlcnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5xdWVyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSByZXF1ZXN0IGJvZHkgY29udGVudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBib29sZWFuICRhc1Jlc291cmNlIC0gSWYgdHJ1ZSwgYSByZXNvdXJjZSB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHJldHVybiBzdHJpbmd8cmVzb3VyY2UgICAgLSBUaGUgcmVxdWVzdCBib2R5IGNvbnRlbnQgb3IgYSByZXNvdXJjZSB0byByZWFkIHRoZSBib2R5IHN0cmVhbS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgTG9naWNFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29udGVudCgkYXNSZXNvdXJjZSA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgaWYgKGZhbHNlID09PSAkdGhpcy0+Y29udGVudCB8fCAodHJ1ZSA9PT0gJGFzUmVzb3VyY2UgJiYgbnVsbCAhPT0gJHRoaXMtPmNvbnRlbnQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTG9naWNFeGNlcHRpb24oJ2dldENvbnRlbnQoKSBjYW4gb25seSBiZSBjYWxsZWQgb25jZSB3aGVuIHVzaW5nIHRoZSByZXNvdXJjZSByZXR1cm4gdHlwZS4nKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0cnVlID09PSAkYXNSZXNvdXJjZSkgeworICAgICAgICAgICAgJHRoaXMtPmNvbnRlbnQgPSBmYWxzZTsKKworICAgICAgICAgICAgcmV0dXJuIGZvcGVuKCdwaHA6Ly9pbnB1dCcsICdyYicpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG51bGwgPT09ICR0aGlzLT5jb250ZW50KSB7CisgICAgICAgICAgICAkdGhpcy0+Y29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCdwaHA6Ly9pbnB1dCcpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jb250ZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcnJheSAkc2VydmVyCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0SGVhZGVyc0Zyb21TZXJ2ZXIoJHNlcnZlcikKKyAgICB7CisgICAgICAgICRoZWFkZXJzID0gYXJyYXkoKTsKKyAgICAgICAgZm9yZWFjaCAoJHNlcnZlciBhcyAka2V5ID0+ICR2YWx1ZSkgeworICAgICAgICAgICAgaWYgKDAgPT09IHN0cnBvcygka2V5LCAnSFRUUF8nKSkgeworICAgICAgICAgICAgICAgICRoZWFkZXJzW3N1YnN0cigka2V5LCA1KV0gPSAkdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBDT05URU5UXyogYXJlIG5vdCBwcmVmaXhlZCB3aXRoIEhUVFBfCisgICAgICAgICAgICBlbHNlaWYgKGluX2FycmF5KCRrZXksIGFycmF5KCdDT05URU5UX0xFTkdUSCcsICdDT05URU5UX01ENScsICdDT05URU5UX1RZUEUnKSkpIHsKKyAgICAgICAgICAgICAgICAkaGVhZGVyc1ska2V5XSA9ICR2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkc2VydmVyWydQSFBfQVVUSF9VU0VSJ10pKSB7CisgICAgICAgICAgICAkaGVhZGVyc1snUEhQX0FVVEhfVVNFUiddID0gJHNlcnZlclsnUEhQX0FVVEhfVVNFUiddOworICAgICAgICAgICAgJGhlYWRlcnNbJ1BIUF9BVVRIX1BXJ10gPSBpc3NldCgkc2VydmVyWydQSFBfQVVUSF9QVyddKSA/ICRzZXJ2ZXJbJ1BIUF9BVVRIX1BXJ10gOiAnJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBwaHAtY2dpIHVuZGVyIEFwYWNoZSBkb2VzIG5vdCBwYXNzIEhUVFAgQmFzaWMgdXNlci9wYXNzIHRvIFBIUCBieSBkZWZhdWx0CisgICAgICAgICAgICAgKiBGb3IgdGhpcyB3b3JrYXJvdW5kIHRvIHdvcmssIGFkZCB0aGlzIGxpbmUgdG8geW91ciAuaHRhY2Nlc3MgZmlsZToKKyAgICAgICAgICAgICAqIFJld3JpdGVSdWxlIC4qIC0gW0U9SFRUUF9BVVRIT1JJWkFUSU9OOiV7SFRUUDpBdXRob3JpemF0aW9ufV0KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBBIHNhbXBsZSAuaHRhY2Nlc3MgZmlsZToKKyAgICAgICAgICAgICAqIFJld3JpdGVFbmdpbmUgT24KKyAgICAgICAgICAgICAqIFJld3JpdGVSdWxlIC4qIC0gW0U9SFRUUF9BVVRIT1JJWkFUSU9OOiV7SFRUUDpBdXRob3JpemF0aW9ufV0KKyAgICAgICAgICAgICAqIFJld3JpdGVDb25kICV7UkVRVUVTVF9GSUxFTkFNRX0gIS1mCisgICAgICAgICAgICAgKiBSZXdyaXRlUnVsZSBeKC4qKSQgYXBwLnBocCBbUVNBLExdCisgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgJGF1dGhvcml6YXRpb25IZWFkZXIgPSBudWxsOworICAgICAgICAgICAgaWYgKGlzc2V0KCRzZXJ2ZXJbJ0hUVFBfQVVUSE9SSVpBVElPTiddKSkgeworICAgICAgICAgICAgICAgICRhdXRob3JpemF0aW9uSGVhZGVyID0gJHNlcnZlclsnSFRUUF9BVVRIT1JJWkFUSU9OJ107CisgICAgICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJHNlcnZlclsnUkVESVJFQ1RfSFRUUF9BVVRIT1JJWkFUSU9OJ10pKSB7CisgICAgICAgICAgICAgICAgJGF1dGhvcml6YXRpb25IZWFkZXIgPSAkc2VydmVyWydSRURJUkVDVF9IVFRQX0FVVEhPUklaQVRJT04nXTsKKyAgICAgICAgICAgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ2FwYWNoZV9yZXF1ZXN0X2hlYWRlcnMnKSkgeworICAgICAgICAgICAgICAgICRyZXF1ZXN0SGVhZGVycyA9IChhcnJheSkgYXBhY2hlX3JlcXVlc3RfaGVhZGVycygpOworCisgICAgICAgICAgICAgICAgLy8gU2VydmVyLXNpZGUgZml4IGZvciBidWcgaW4gb2xkIEFuZHJvaWQgdmVyc2lvbnMgKGEgbmljZSBzaWRlLWVmZmVjdCBvZiB0aGlzIGZpeCBtZWFucyB3ZSBkb24ndCBjYXJlIGFib3V0IGNhcGl0YWxpemF0aW9uIGZvciBBdXRob3JpemF0aW9uKQorICAgICAgICAgICAgICAgICRyZXF1ZXN0SGVhZGVycyA9IGFycmF5X2NvbWJpbmUoYXJyYXlfbWFwKCd1Y3dvcmRzJywgYXJyYXlfa2V5cygkcmVxdWVzdEhlYWRlcnMpKSwgYXJyYXlfdmFsdWVzKCRyZXF1ZXN0SGVhZGVycykpOworCisgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRyZXF1ZXN0SGVhZGVyc1snQXV0aG9yaXphdGlvbiddKSkgeworICAgICAgICAgICAgICAgICAgICAkYXV0aG9yaXphdGlvbkhlYWRlciA9IHRyaW0oJHJlcXVlc3RIZWFkZXJzWydBdXRob3JpemF0aW9uJ10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG51bGwgIT09ICRhdXRob3JpemF0aW9uSGVhZGVyKSB7CisgICAgICAgICAgICAgICAgJGhlYWRlcnNbJ0FVVEhPUklaQVRJT04nXSA9ICRhdXRob3JpemF0aW9uSGVhZGVyOworICAgICAgICAgICAgICAgIC8vIERlY29kZSBBVVRIT1JJWkFUSU9OIGhlYWRlciBpbnRvIFBIUF9BVVRIX1VTRVIgYW5kIFBIUF9BVVRIX1BXIHdoZW4gYXV0aG9yaXphdGlvbiBoZWFkZXIgaXMgYmFzaWMKKyAgICAgICAgICAgICAgICBpZiAoMCA9PT0gc3RyaXBvcygkYXV0aG9yaXphdGlvbkhlYWRlciwgJ2Jhc2ljJykpIHsKKyAgICAgICAgICAgICAgICAgICAgJGV4cGxvZGVkID0gZXhwbG9kZSgnOicsIGJhc2U2NF9kZWNvZGUoc3Vic3RyKCRhdXRob3JpemF0aW9uSGVhZGVyLCA2KSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQoJGV4cGxvZGVkKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KCRoZWFkZXJzWydQSFBfQVVUSF9VU0VSJ10sICRoZWFkZXJzWydQSFBfQVVUSF9QVyddKSA9ICRleHBsb2RlZDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBIUF9BVVRIX1VTRVIvUEhQX0FVVEhfUFcKKyAgICAgICAgaWYgKGlzc2V0KCRoZWFkZXJzWydQSFBfQVVUSF9VU0VSJ10pKSB7CisgICAgICAgICAgICAkaGVhZGVyc1snQVVUSE9SSVpBVElPTiddID0gJ0Jhc2ljICcuYmFzZTY0X2VuY29kZSgkaGVhZGVyc1snUEhQX0FVVEhfVVNFUiddLic6Jy4kaGVhZGVyc1snUEhQX0FVVEhfUFcnXSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGhlYWRlcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyByZXF1ZXN0IHdpdGggdmFsdWVzIGZyb20gUEhQJ3Mgc3VwZXIgZ2xvYmFscy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmVxdWVzdCAtIEEgbmV3IHJlcXVlc3QKKyAgICAgKgorICAgICAqIEBhcGkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZUZyb21HbG9iYWxzKCkKKyAgICB7CisgICAgICAgICRjbGFzcyA9IGdldF9jYWxsZWRfY2xhc3MoKTsKKworICAgICAgICAvKiogQHZhciBSZXF1ZXN0ICRyZXF1ZXN0ICovCisgICAgICAgICRyZXF1ZXN0ID0gbmV3ICRjbGFzcygkX0dFVCwgJF9QT1NULCBhcnJheSgpLCAkX0NPT0tJRSwgJF9GSUxFUywgJF9TRVJWRVIpOworCisgICAgICAgICRjb250ZW50VHlwZSA9ICRyZXF1ZXN0LT5zZXJ2ZXIoJ0NPTlRFTlRfVFlQRScsICcnKTsKKyAgICAgICAgJHJlcXVlc3RNZXRob2QgPSAkcmVxdWVzdC0+c2VydmVyKCdSRVFVRVNUX01FVEhPRCcsICdHRVQnKTsKKyAgICAgICAgaWYgKDAgPT09IHN0cnBvcygkY29udGVudFR5cGUsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKQorICAgICAgICAgICAgJiYgaW5fYXJyYXkoc3RydG91cHBlcigkcmVxdWVzdE1ldGhvZCksIGFycmF5KCdQVVQnLCAnREVMRVRFJykpCisgICAgICAgICkgeworICAgICAgICAgICAgcGFyc2Vfc3RyKCRyZXF1ZXN0LT5nZXRDb250ZW50KCksICRkYXRhKTsKKyAgICAgICAgICAgICRyZXF1ZXN0LT5yZXF1ZXN0ID0gJGRhdGE7CisgICAgICAgIH0gZWxzZWlmICgwID09PSBzdHJwb3MoJGNvbnRlbnRUeXBlLCAnYXBwbGljYXRpb24vanNvbicpCisgICAgICAgICAgICAmJiBpbl9hcnJheShzdHJ0b3VwcGVyKCRyZXF1ZXN0TWV0aG9kKSwgYXJyYXkoJ1BPU1QnLCAnUFVUJywgJ0RFTEVURScpKQorICAgICAgICApIHsKKyAgICAgICAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJHJlcXVlc3QtPmdldENvbnRlbnQoKSwgdHJ1ZSk7CisgICAgICAgICAgICAkcmVxdWVzdC0+cmVxdWVzdCA9ICRkYXRhOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXF1ZXN0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1JlcXVlc3RJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVxdWVzdEludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwMzZiNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1JlcXVlc3RJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMzkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDI7CisKK2ludGVyZmFjZSBSZXF1ZXN0SW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJGRlZmF1bHQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHF1ZXJ5KCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJGRlZmF1bHQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHJlcXVlc3QoJG5hbWUsICRkZWZhdWx0ID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHBhcmFtIG1peGVkICAkZGVmYXVsdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2VydmVyKCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJGRlZmF1bHQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGhlYWRlcnMoJG5hbWUsICRkZWZhdWx0ID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFsbFF1ZXJ5UGFyYW1ldGVycygpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YzFhZDUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9SZXNwb25zZS5waHAKQEAgLTAsMCArMSw0ODcgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDI7CisKK3VzZSBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CisKKy8qKgorICogQ2xhc3MgdG8gaGFuZGxlIE9BdXRoMiBSZXNwb25zZXMgaW4gYSBncmFjZWZ1bCB3YXkuICBVc2UgdGhpcyBpbnRlcmZhY2UKKyAqIHRvIG91dHB1dCB0aGUgcHJvcGVyIE9BdXRoMiByZXNwb25zZXMuCisgKgorICogQHNlZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2UKKyAqCisgKiBUaGlzIGNsYXNzIGJvcnJvd3MgaGVhdmlseSBmcm9tIHRoZSBTeW1mb255MiBGcmFtZXdvcmsgYW5kIGlzIHBhcnQgb2YgdGhlIHN5bWZvbnkgcGFja2FnZQorICogQHNlZSBTeW1mb255XENvbXBvbmVudFxIdHRwRm91bmRhdGlvblxSZXF1ZXN0IChodHRwczovL2dpdGh1Yi5jb20vc3ltZm9ueS9zeW1mb255KQorICovCitjbGFzcyBSZXNwb25zZSBpbXBsZW1lbnRzIFJlc3BvbnNlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgJHZlcnNpb247CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHByb3RlY3RlZCAkc3RhdHVzQ29kZSA9IDIwMDsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRzdGF0dXNUZXh0OworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkcGFyYW1ldGVycyA9IGFycmF5KCk7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRodHRwSGVhZGVycyA9IGFycmF5KCk7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyAkc3RhdHVzVGV4dHMgPSBhcnJheSgKKyAgICAgICAgMTAwID0+ICdDb250aW51ZScsCisgICAgICAgIDEwMSA9PiAnU3dpdGNoaW5nIFByb3RvY29scycsCisgICAgICAgIDIwMCA9PiAnT0snLAorICAgICAgICAyMDEgPT4gJ0NyZWF0ZWQnLAorICAgICAgICAyMDIgPT4gJ0FjY2VwdGVkJywKKyAgICAgICAgMjAzID0+ICdOb24tQXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvbicsCisgICAgICAgIDIwNCA9PiAnTm8gQ29udGVudCcsCisgICAgICAgIDIwNSA9PiAnUmVzZXQgQ29udGVudCcsCisgICAgICAgIDIwNiA9PiAnUGFydGlhbCBDb250ZW50JywKKyAgICAgICAgMzAwID0+ICdNdWx0aXBsZSBDaG9pY2VzJywKKyAgICAgICAgMzAxID0+ICdNb3ZlZCBQZXJtYW5lbnRseScsCisgICAgICAgIDMwMiA9PiAnRm91bmQnLAorICAgICAgICAzMDMgPT4gJ1NlZSBPdGhlcicsCisgICAgICAgIDMwNCA9PiAnTm90IE1vZGlmaWVkJywKKyAgICAgICAgMzA1ID0+ICdVc2UgUHJveHknLAorICAgICAgICAzMDcgPT4gJ1RlbXBvcmFyeSBSZWRpcmVjdCcsCisgICAgICAgIDQwMCA9PiAnQmFkIFJlcXVlc3QnLAorICAgICAgICA0MDEgPT4gJ1VuYXV0aG9yaXplZCcsCisgICAgICAgIDQwMiA9PiAnUGF5bWVudCBSZXF1aXJlZCcsCisgICAgICAgIDQwMyA9PiAnRm9yYmlkZGVuJywKKyAgICAgICAgNDA0ID0+ICdOb3QgRm91bmQnLAorICAgICAgICA0MDUgPT4gJ01ldGhvZCBOb3QgQWxsb3dlZCcsCisgICAgICAgIDQwNiA9PiAnTm90IEFjY2VwdGFibGUnLAorICAgICAgICA0MDcgPT4gJ1Byb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkJywKKyAgICAgICAgNDA4ID0+ICdSZXF1ZXN0IFRpbWVvdXQnLAorICAgICAgICA0MDkgPT4gJ0NvbmZsaWN0JywKKyAgICAgICAgNDEwID0+ICdHb25lJywKKyAgICAgICAgNDExID0+ICdMZW5ndGggUmVxdWlyZWQnLAorICAgICAgICA0MTIgPT4gJ1ByZWNvbmRpdGlvbiBGYWlsZWQnLAorICAgICAgICA0MTMgPT4gJ1JlcXVlc3QgRW50aXR5IFRvbyBMYXJnZScsCisgICAgICAgIDQxNCA9PiAnUmVxdWVzdC1VUkkgVG9vIExvbmcnLAorICAgICAgICA0MTUgPT4gJ1Vuc3VwcG9ydGVkIE1lZGlhIFR5cGUnLAorICAgICAgICA0MTYgPT4gJ1JlcXVlc3RlZCBSYW5nZSBOb3QgU2F0aXNmaWFibGUnLAorICAgICAgICA0MTcgPT4gJ0V4cGVjdGF0aW9uIEZhaWxlZCcsCisgICAgICAgIDQxOCA9PiAnSVwnbSBhIHRlYXBvdCcsCisgICAgICAgIDUwMCA9PiAnSW50ZXJuYWwgU2VydmVyIEVycm9yJywKKyAgICAgICAgNTAxID0+ICdOb3QgSW1wbGVtZW50ZWQnLAorICAgICAgICA1MDIgPT4gJ0JhZCBHYXRld2F5JywKKyAgICAgICAgNTAzID0+ICdTZXJ2aWNlIFVuYXZhaWxhYmxlJywKKyAgICAgICAgNTA0ID0+ICdHYXRld2F5IFRpbWVvdXQnLAorICAgICAgICA1MDUgPT4gJ0hUVFAgVmVyc2lvbiBOb3QgU3VwcG9ydGVkJywKKyAgICApOworCisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJhbWV0ZXJzCisgICAgICogQHBhcmFtIGludCAgICRzdGF0dXNDb2RlCisgICAgICogQHBhcmFtIGFycmF5ICRoZWFkZXJzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRwYXJhbWV0ZXJzID0gYXJyYXkoKSwgJHN0YXR1c0NvZGUgPSAyMDAsICRoZWFkZXJzID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgICR0aGlzLT5zZXRQYXJhbWV0ZXJzKCRwYXJhbWV0ZXJzKTsKKyAgICAgICAgJHRoaXMtPnNldFN0YXR1c0NvZGUoJHN0YXR1c0NvZGUpOworICAgICAgICAkdGhpcy0+c2V0SHR0cEhlYWRlcnMoJGhlYWRlcnMpOworICAgICAgICAkdGhpcy0+dmVyc2lvbiA9ICcxLjEnOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSByZXNwb25zZSBvYmplY3QgdG8gc3RyaW5nIGNvbnRhaW5pbmcgYWxsIGhlYWRlcnMgYW5kIHRoZSByZXNwb25zZSBjb250ZW50LgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIHJlc3BvbnNlIHdpdGggaGVhZGVycyBhbmQgY29udGVudAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkKKyAgICB7CisgICAgICAgICRoZWFkZXJzID0gYXJyYXkoKTsKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmh0dHBIZWFkZXJzIGFzICRuYW1lID0+ICR2YWx1ZSkgeworICAgICAgICAgICAgJGhlYWRlcnNbJG5hbWVdID0gKGFycmF5KSAkdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHNwcmludGYoJ0hUVFAvJXMgJXMgJXMnLCAkdGhpcy0+dmVyc2lvbiwgJHRoaXMtPnN0YXR1c0NvZGUsICR0aGlzLT5zdGF0dXNUZXh0KS4iXHJcbiIuCisgICAgICAgICAgICAkdGhpcy0+Z2V0SHR0cEhlYWRlcnNBc1N0cmluZygkaGVhZGVycykuIlxyXG4iLgorICAgICAgICAgICAgJHRoaXMtPmdldFJlc3BvbnNlQm9keSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGJ1aWxkIGhlYWRlciBsaW5lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSAgVGhlIGhlYWRlciBuYW1lCisgICAgICogQHBhcmFtIHN0cmluZyAkdmFsdWUgVGhlIGhlYWRlciB2YWx1ZQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIGJ1aWx0IGhlYWRlciBsaW5lCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGJ1aWxkSGVhZGVyKCRuYW1lLCAkdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3ByaW50ZigiJXM6ICVzXG4iLCAkbmFtZSwgJHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGludAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTdGF0dXNDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c3RhdHVzQ29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gaW50ICRzdGF0dXNDb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkdGV4dAorICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFN0YXR1c0NvZGUoJHN0YXR1c0NvZGUsICR0ZXh0ID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT5zdGF0dXNDb2RlID0gKGludCkgJHN0YXR1c0NvZGU7CisgICAgICAgIGlmICgkdGhpcy0+aXNJbnZhbGlkKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oc3ByaW50ZignVGhlIEhUVFAgc3RhdHVzIGNvZGUgIiVzIiBpcyBub3QgdmFsaWQuJywgJHN0YXR1c0NvZGUpKTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5zdGF0dXNUZXh0ID0gZmFsc2UgPT09ICR0ZXh0ID8gJycgOiAobnVsbCA9PT0gJHRleHQgPyBzZWxmOjokc3RhdHVzVGV4dHNbJHRoaXMtPnN0YXR1c0NvZGVdIDogJHRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFN0YXR1c1RleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zdGF0dXNUZXh0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyYW1ldGVycygpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmFtZXRlcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJhbWV0ZXJzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFBhcmFtZXRlcnMoYXJyYXkgJHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICAkdGhpcy0+cGFyYW1ldGVycyA9ICRwYXJhbWV0ZXJzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1ldGVycworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRQYXJhbWV0ZXJzKGFycmF5ICRwYXJhbWV0ZXJzKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnBhcmFtZXRlcnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+cGFyYW1ldGVycywgJHBhcmFtZXRlcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRkZWZhdWx0CisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQYXJhbWV0ZXIoJG5hbWUsICRkZWZhdWx0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cGFyYW1ldGVyc1skbmFtZV0pID8gJHRoaXMtPnBhcmFtZXRlcnNbJG5hbWVdIDogJGRlZmF1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJHZhbHVlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFBhcmFtZXRlcigkbmFtZSwgJHZhbHVlKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnBhcmFtZXRlcnNbJG5hbWVdID0gJHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcnJheSAkaHR0cEhlYWRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0SHR0cEhlYWRlcnMoYXJyYXkgJGh0dHBIZWFkZXJzKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmh0dHBIZWFkZXJzID0gJGh0dHBIZWFkZXJzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEh0dHBIZWFkZXIoJG5hbWUsICR2YWx1ZSkKKyAgICB7CisgICAgICAgICR0aGlzLT5odHRwSGVhZGVyc1skbmFtZV0gPSAkdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICRodHRwSGVhZGVycworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRIdHRwSGVhZGVycyhhcnJheSAkaHR0cEhlYWRlcnMpCisgICAgeworICAgICAgICAkdGhpcy0+aHR0cEhlYWRlcnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+aHR0cEhlYWRlcnMsICRodHRwSGVhZGVycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIdHRwSGVhZGVycygpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmh0dHBIZWFkZXJzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRkZWZhdWx0CisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIdHRwSGVhZGVyKCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmh0dHBIZWFkZXJzWyRuYW1lXSkgPyAkdGhpcy0+aHR0cEhlYWRlcnNbJG5hbWVdIDogJGRlZmF1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkZm9ybWF0CisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc3BvbnNlQm9keSgkZm9ybWF0ID0gJ2pzb24nKQorICAgIHsKKyAgICAgICAgc3dpdGNoICgkZm9ybWF0KSB7CisgICAgICAgICAgICBjYXNlICdqc29uJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmFtZXRlcnMgPyBqc29uX2VuY29kZSgkdGhpcy0+cGFyYW1ldGVycykgOiAnJzsKKyAgICAgICAgICAgIGNhc2UgJ3htbCc6CisgICAgICAgICAgICAgICAgLy8gdGhpcyBvbmx5IHdvcmtzIGZvciBzaW5nbGUtbGV2ZWwgYXJyYXlzCisgICAgICAgICAgICAgICAgJHhtbCA9IG5ldyBcU2ltcGxlWE1MRWxlbWVudCgnPHJlc3BvbnNlLz4nKTsKKyAgICAgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cGFyYW1ldGVycyBhcyAka2V5ID0+ICRwYXJhbSkgeworICAgICAgICAgICAgICAgICAgICAkeG1sLT5hZGRDaGlsZCgka2V5LCAkcGFyYW0pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiAkeG1sLT5hc1hNTCgpOworICAgICAgICB9CisKKyAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihzcHJpbnRmKCdUaGUgZm9ybWF0ICVzIGlzIG5vdCBzdXBwb3J0ZWQnLCAkZm9ybWF0KSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRmb3JtYXQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZCgkZm9ybWF0ID0gJ2pzb24nKQorICAgIHsKKyAgICAgICAgLy8gaGVhZGVycyBoYXZlIGFscmVhZHkgYmVlbiBzZW50IGJ5IHRoZSBkZXZlbG9wZXIKKyAgICAgICAgaWYgKGhlYWRlcnNfc2VudCgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKCRmb3JtYXQpIHsKKyAgICAgICAgICAgIGNhc2UgJ2pzb24nOgorICAgICAgICAgICAgICAgICR0aGlzLT5zZXRIdHRwSGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAneG1sJzoKKyAgICAgICAgICAgICAgICAkdGhpcy0+c2V0SHR0cEhlYWRlcignQ29udGVudC1UeXBlJywgJ3RleHQveG1sJyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhdHVzCisgICAgICAgIGhlYWRlcihzcHJpbnRmKCdIVFRQLyVzICVzICVzJywgJHRoaXMtPnZlcnNpb24sICR0aGlzLT5zdGF0dXNDb2RlLCAkdGhpcy0+c3RhdHVzVGV4dCkpOworCisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5nZXRIdHRwSGVhZGVycygpIGFzICRuYW1lID0+ICRoZWFkZXIpIHsKKyAgICAgICAgICAgIGhlYWRlcihzcHJpbnRmKCclczogJXMnLCAkbmFtZSwgJGhlYWRlcikpOworICAgICAgICB9CisgICAgICAgIGVjaG8gJHRoaXMtPmdldFJlc3BvbnNlQm9keSgkZm9ybWF0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gaW50ICRzdGF0dXNDb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkZXJyb3IKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlcnJvckRlc2NyaXB0aW9uCisgICAgICogQHBhcmFtIHN0cmluZyAkZXJyb3JVcmkKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RXJyb3IoJHN0YXR1c0NvZGUsICRlcnJvciwgJGVycm9yRGVzY3JpcHRpb24gPSBudWxsLCAkZXJyb3JVcmkgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHBhcmFtZXRlcnMgPSBhcnJheSgKKyAgICAgICAgICAgICdlcnJvcicgPT4gJGVycm9yLAorICAgICAgICAgICAgJ2Vycm9yX2Rlc2NyaXB0aW9uJyA9PiAkZXJyb3JEZXNjcmlwdGlvbiwKKyAgICAgICAgKTsKKworICAgICAgICBpZiAoIWlzX251bGwoJGVycm9yVXJpKSkgeworICAgICAgICAgICAgaWYgKHN0cmxlbigkZXJyb3JVcmkpID4gMCAmJiAkZXJyb3JVcmlbMF0gPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgYXJlIHJlZmVyZW5jaW5nIGFuIG9hdXRoIGJvb2ttYXJrIChmb3IgYnJldml0eSkKKyAgICAgICAgICAgICAgICAkZXJyb3JVcmkgPSAnaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OScgLiAkZXJyb3JVcmk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkcGFyYW1ldGVyc1snZXJyb3JfdXJpJ10gPSAkZXJyb3JVcmk7CisgICAgICAgIH0KKworICAgICAgICAkaHR0cEhlYWRlcnMgPSBhcnJheSgKKyAgICAgICAgICAgICdDYWNoZS1Db250cm9sJyA9PiAnbm8tc3RvcmUnCisgICAgICAgICk7CisKKyAgICAgICAgJHRoaXMtPnNldFN0YXR1c0NvZGUoJHN0YXR1c0NvZGUpOworICAgICAgICAkdGhpcy0+YWRkUGFyYW1ldGVycygkcGFyYW1ldGVycyk7CisgICAgICAgICR0aGlzLT5hZGRIdHRwSGVhZGVycygkaHR0cEhlYWRlcnMpOworCisgICAgICAgIGlmICghJHRoaXMtPmlzQ2xpZW50RXJyb3IoKSAmJiAhJHRoaXMtPmlzU2VydmVyRXJyb3IoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihzcHJpbnRmKCdUaGUgSFRUUCBzdGF0dXMgY29kZSBpcyBub3QgYW4gZXJyb3IgKCIlcyIgZ2l2ZW4pLicsICRzdGF0dXNDb2RlKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gaW50ICRzdGF0dXNDb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkdXJsCisgICAgICogQHBhcmFtIHN0cmluZyAkc3RhdGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlcnJvcgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycm9yRGVzY3JpcHRpb24KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlcnJvclVyaQorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZWRpcmVjdCgkc3RhdHVzQ29kZSwgJHVybCwgJHN0YXRlID0gbnVsbCwgJGVycm9yID0gbnVsbCwgJGVycm9yRGVzY3JpcHRpb24gPSBudWxsLCAkZXJyb3JVcmkgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKGVtcHR5KCR1cmwpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdDYW5ub3QgcmVkaXJlY3QgdG8gYW4gZW1wdHkgVVJMLicpOworICAgICAgICB9CisKKyAgICAgICAgJHBhcmFtZXRlcnMgPSBhcnJheSgpOworCisgICAgICAgIGlmICghaXNfbnVsbCgkc3RhdGUpKSB7CisgICAgICAgICAgICAkcGFyYW1ldGVyc1snc3RhdGUnXSA9ICRzdGF0ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNfbnVsbCgkZXJyb3IpKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoNDAwLCAkZXJyb3IsICRlcnJvckRlc2NyaXB0aW9uLCAkZXJyb3JVcmkpOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5zZXRTdGF0dXNDb2RlKCRzdGF0dXNDb2RlKTsKKyAgICAgICAgJHRoaXMtPmFkZFBhcmFtZXRlcnMoJHBhcmFtZXRlcnMpOworCisgICAgICAgIGlmIChjb3VudCgkdGhpcy0+cGFyYW1ldGVycykgPiAwKSB7CisgICAgICAgICAgICAvLyBhZGQgcGFyYW1ldGVycyB0byBVUkwgcmVkaXJlY3Rpb24KKyAgICAgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkdXJsKTsKKyAgICAgICAgICAgICRzZXAgPSBpc3NldCgkcGFydHNbJ3F1ZXJ5J10pICYmICFlbXB0eSgkcGFydHNbJ3F1ZXJ5J10pID8gJyYnIDogJz8nOworICAgICAgICAgICAgJHVybCAuPSAkc2VwIC4gaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+cGFyYW1ldGVycyk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+YWRkSHR0cEhlYWRlcnMoYXJyYXkoJ0xvY2F0aW9uJyA9PiAgJHVybCkpOworCisgICAgICAgIGlmICghJHRoaXMtPmlzUmVkaXJlY3Rpb24oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihzcHJpbnRmKCdUaGUgSFRUUCBzdGF0dXMgY29kZSBpcyBub3QgYSByZWRpcmVjdCAoIiVzIiBnaXZlbikuJywgJHN0YXR1c0NvZGUpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gQm9vbGVhbgorICAgICAqCisgICAgICogQGFwaQorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzEwLmh0bWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNJbnZhbGlkKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c3RhdHVzQ29kZSA8IDEwMCB8fCAkdGhpcy0+c3RhdHVzQ29kZSA+PSA2MDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBCb29sZWFuCisgICAgICoKKyAgICAgKiBAYXBpCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzSW5mb3JtYXRpb25hbCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnN0YXR1c0NvZGUgPj0gMTAwICYmICR0aGlzLT5zdGF0dXNDb2RlIDwgMjAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gQm9vbGVhbgorICAgICAqCisgICAgICogQGFwaQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1N1Y2Nlc3NmdWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zdGF0dXNDb2RlID49IDIwMCAmJiAkdGhpcy0+c3RhdHVzQ29kZSA8IDMwMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIEJvb2xlYW4KKyAgICAgKgorICAgICAqIEBhcGkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNSZWRpcmVjdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnN0YXR1c0NvZGUgPj0gMzAwICYmICR0aGlzLT5zdGF0dXNDb2RlIDwgNDAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gQm9vbGVhbgorICAgICAqCisgICAgICogQGFwaQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NsaWVudEVycm9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c3RhdHVzQ29kZSA+PSA0MDAgJiYgJHRoaXMtPnN0YXR1c0NvZGUgPCA1MDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBCb29sZWFuCisgICAgICoKKyAgICAgKiBAYXBpCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzU2VydmVyRXJyb3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zdGF0dXNDb2RlID49IDUwMCAmJiAkdGhpcy0+c3RhdHVzQ29kZSA8IDYwMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGdW5jdGlvbiBmcm9tIFN5bWZvbnkyIEh0dHBGb3VuZGF0aW9uIC0gb3V0cHV0IHByZXR0eSBoZWFkZXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkaGVhZGVycworICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRIdHRwSGVhZGVyc0FzU3RyaW5nKCRoZWFkZXJzKQorICAgIHsKKyAgICAgICAgaWYgKGNvdW50KCRoZWFkZXJzKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gJyc7CisgICAgICAgIH0KKworICAgICAgICAkbWF4ID0gbWF4KGFycmF5X21hcCgnc3RybGVuJywgYXJyYXlfa2V5cygkaGVhZGVycykpKSArIDE7CisgICAgICAgICRjb250ZW50ID0gJyc7CisgICAgICAgIGtzb3J0KCRoZWFkZXJzKTsKKyAgICAgICAgZm9yZWFjaCAoJGhlYWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlcykgeworICAgICAgICAgICAgZm9yZWFjaCAoJHZhbHVlcyBhcyAkdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAkY29udGVudCAuPSBzcHJpbnRmKCIlLXskbWF4fXMgJXNcclxuIiwgJHRoaXMtPmJlYXV0aWZ5SGVhZGVyTmFtZSgkbmFtZSkuJzonLCAkdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRjb250ZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZ1bmN0aW9uIGZyb20gU3ltZm9ueTIgSHR0cEZvdW5kYXRpb24gLSBvdXRwdXQgcHJldHR5IGhlYWRlcgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGJlYXV0aWZ5SGVhZGVyTmFtZSgkbmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJy9cLSguKS8nLCBhcnJheSgkdGhpcywgJ2JlYXV0aWZ5Q2FsbGJhY2snKSwgdWNmaXJzdCgkbmFtZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZ1bmN0aW9uIGZyb20gU3ltZm9ueTIgSHR0cEZvdW5kYXRpb24gLSBvdXRwdXQgcHJldHR5IGhlYWRlcgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRtYXRjaAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBiZWF1dGlmeUNhbGxiYWNrKCRtYXRjaCkKKyAgICB7CisgICAgICAgIHJldHVybiAnLScuc3RydG91cHBlcigkbWF0Y2hbMV0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTkyMDg2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsNTMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDI7CisKKy8qKgorICogSW50ZXJmYWNlIHdoaWNoIHJlcHJlc2VudHMgYW4gb2JqZWN0IHJlc3BvbnNlLiAgTWVhbnQgdG8gaGFuZGxlIGFuZCBkaXNwbGF5IHRoZSBwcm9wZXIgT0F1dGgyIFJlc3BvbnNlcworICogZm9yIGVycm9ycyBhbmQgc3VjY2Vzc2VzCisgKgorICogQHNlZSBcT0F1dGgyXFJlc3BvbnNlCisgKi8KK2ludGVyZmFjZSBSZXNwb25zZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1ldGVycworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRQYXJhbWV0ZXJzKGFycmF5ICRwYXJhbWV0ZXJzKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBhcnJheSAkaHR0cEhlYWRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkSHR0cEhlYWRlcnMoYXJyYXkgJGh0dHBIZWFkZXJzKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBpbnQgJHN0YXR1c0NvZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0U3RhdHVzQ29kZSgkc3RhdHVzQ29kZSk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gaW50ICAgICRzdGF0dXNDb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGRlc2NyaXB0aW9uCisgICAgICogQHBhcmFtIHN0cmluZyAkdXJpCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRFcnJvcigkc3RhdHVzQ29kZSwgJG5hbWUsICRkZXNjcmlwdGlvbiA9IG51bGwsICR1cmkgPSBudWxsKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBpbnQgICAgJHN0YXR1c0NvZGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1cmwKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdGF0ZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycm9yCisgICAgICogQHBhcmFtIHN0cmluZyAkZXJyb3JEZXNjcmlwdGlvbgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycm9yVXJpCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZWRpcmVjdCgkc3RhdHVzQ29kZSwgJHVybCwgJHN0YXRlID0gbnVsbCwgJGVycm9yID0gbnVsbCwgJGVycm9yRGVzY3JpcHRpb24gPSBudWxsLCAkZXJyb3JVcmkgPSBudWxsKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFBhcmFtZXRlcigkbmFtZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9SZXNwb25zZVR5cGUvQWNjZXNzVG9rZW4ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VUeXBlL0FjY2Vzc1Rva2VuLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODM2YTM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VUeXBlL0FjY2Vzc1Rva2VuLnBocApAQCAtMCwwICsxLDIxOCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxSZXNwb25zZVR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZSBhcyBBY2Nlc3NUb2tlblN0b3JhZ2VJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcUmVmcmVzaFRva2VuSW50ZXJmYWNlOwordXNlIFJ1bnRpbWVFeGNlcHRpb247CisKKy8qKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworY2xhc3MgQWNjZXNzVG9rZW4gaW1wbGVtZW50cyBBY2Nlc3NUb2tlbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgQWNjZXNzVG9rZW5JbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHRva2VuU3RvcmFnZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgUmVmcmVzaFRva2VuSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRyZWZyZXNoU3RvcmFnZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGNvbmZpZzsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlblN0b3JhZ2VJbnRlcmZhY2UgJHRva2VuU3RvcmFnZSAgIC0gUkVRVUlSRUQgU3RvcmFnZSBjbGFzcyBmb3Igc2F2aW5nIGFjY2VzcyB0b2tlbiBpbmZvcm1hdGlvbgorICAgICAqIEBwYXJhbSBSZWZyZXNoVG9rZW5JbnRlcmZhY2UgICAgICAgJHJlZnJlc2hTdG9yYWdlIC0gT1BUSU9OQUwgU3RvcmFnZSBjbGFzcyBmb3Igc2F2aW5nIHJlZnJlc2ggdG9rZW4gaW5mb3JtYXRpb24KKyAgICAgKiBAcGFyYW0gYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICRjb25maWcgICAgICAgICAtIE9QVElPTkFMIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHNlcnZlcgorICAgICAqIEBjb2RlCisgICAgICogICAgICRjb25maWcgPSBhcnJheSgKKyAgICAgKiAgICAgICAgICd0b2tlbl90eXBlJyA9PiAnYmVhcmVyJywgICAgICAgICAgICAvLyB0b2tlbiB0eXBlIGlkZW50aWZpZXIKKyAgICAgKiAgICAgICAgICdhY2Nlc3NfbGlmZXRpbWUnID0+IDM2MDAsICAgICAgICAgICAvLyB0aW1lIGJlZm9yZSBhY2Nlc3MgdG9rZW4gZXhwaXJlcworICAgICAqICAgICAgICAgJ3JlZnJlc2hfdG9rZW5fbGlmZXRpbWUnID0+IDEyMDk2MDAsIC8vIHRpbWUgYmVmb3JlIHJlZnJlc2ggdG9rZW4gZXhwaXJlcworICAgICAqICAgICApOworICAgICAqIEBlbmRjb2RlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEFjY2Vzc1Rva2VuU3RvcmFnZUludGVyZmFjZSAkdG9rZW5TdG9yYWdlLCBSZWZyZXNoVG9rZW5JbnRlcmZhY2UgJHJlZnJlc2hTdG9yYWdlID0gbnVsbCwgYXJyYXkgJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkdGhpcy0+dG9rZW5TdG9yYWdlID0gJHRva2VuU3RvcmFnZTsKKyAgICAgICAgJHRoaXMtPnJlZnJlc2hTdG9yYWdlID0gJHJlZnJlc2hTdG9yYWdlOworCisgICAgICAgICR0aGlzLT5jb25maWcgPSBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICd0b2tlbl90eXBlJyAgICAgICAgICAgICA9PiAnYmVhcmVyJywKKyAgICAgICAgICAgICdhY2Nlc3NfbGlmZXRpbWUnICAgICAgICA9PiAzNjAwLAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW5fbGlmZXRpbWUnID0+IDEyMDk2MDAsCisgICAgICAgICksICRjb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhdXRob3JpemUgcmVzcG9uc2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zCisgICAgICogQHBhcmFtIG1peGVkICR1c2VyX2lkCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdXRob3JpemVSZXNwb25zZSgkcGFyYW1zLCAkdXNlcl9pZCA9IG51bGwpCisgICAgeworICAgICAgICAvLyBidWlsZCB0aGUgVVJMIHRvIHJlZGlyZWN0IHRvCisgICAgICAgICRyZXN1bHQgPSBhcnJheSgncXVlcnknID0+IGFycmF5KCkpOworCisgICAgICAgICRwYXJhbXMgKz0gYXJyYXkoJ3Njb3BlJyA9PiBudWxsLCAnc3RhdGUnID0+IG51bGwpOworCisgICAgICAgIC8qCisgICAgICAgICAqIGEgcmVmcmVzaCB0b2tlbiBNVVNUIE5PVCBiZSBpbmNsdWRlZCBpbiB0aGUgZnJhZ21lbnQKKyAgICAgICAgICoKKyAgICAgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4yLjIKKyAgICAgICAgICovCisgICAgICAgICRpbmNsdWRlUmVmcmVzaFRva2VuID0gZmFsc2U7CisgICAgICAgICRyZXN1bHRbImZyYWdtZW50Il0gPSAkdGhpcy0+Y3JlYXRlQWNjZXNzVG9rZW4oJHBhcmFtc1snY2xpZW50X2lkJ10sICR1c2VyX2lkLCAkcGFyYW1zWydzY29wZSddLCAkaW5jbHVkZVJlZnJlc2hUb2tlbik7CisKKyAgICAgICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3N0YXRlJ10pKSB7CisgICAgICAgICAgICAkcmVzdWx0WyJmcmFnbWVudCJdWyJzdGF0ZSJdID0gJHBhcmFtc1snc3RhdGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhcnJheSgkcGFyYW1zWydyZWRpcmVjdF91cmknXSwgJHJlc3VsdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIHRoZSBjcmVhdGlvbiBvZiBhY2Nlc3MgdG9rZW4sIGFsc28gaXNzdWUgcmVmcmVzaCB0b2tlbiBpZiBzdXBwb3J0ZWQgLyBkZXNpcmFibGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRjbGllbnRfaWQgICAgICAgICAgIC0gY2xpZW50IGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGUgYWNjZXNzIHRva2VuLgorICAgICAqIEBwYXJhbSBtaXhlZCAgJHVzZXJfaWQgICAgICAgICAgICAgLSB1c2VyIElEIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIHN0cmluZyAkc2NvcGUgICAgICAgICAgICAgICAtIE9QVElPTkFMIHNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gYm9vbCAgICRpbmNsdWRlUmVmcmVzaFRva2VuIC0gaWYgdHJ1ZSwgYSBuZXcgcmVmcmVzaF90b2tlbiB3aWxsIGJlIGFkZGVkIHRvIHRoZSByZXNwb25zZQorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTUKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl81CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUFjY2Vzc1Rva2VuKCRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUgPSBudWxsLCAkaW5jbHVkZVJlZnJlc2hUb2tlbiA9IHRydWUpCisgICAgeworICAgICAgICAkdG9rZW4gPSBhcnJheSgKKyAgICAgICAgICAgICJhY2Nlc3NfdG9rZW4iID0+ICR0aGlzLT5nZW5lcmF0ZUFjY2Vzc1Rva2VuKCksCisgICAgICAgICAgICAiZXhwaXJlc19pbiIgPT4gJHRoaXMtPmNvbmZpZ1snYWNjZXNzX2xpZmV0aW1lJ10sCisgICAgICAgICAgICAidG9rZW5fdHlwZSIgPT4gJHRoaXMtPmNvbmZpZ1sndG9rZW5fdHlwZSddLAorICAgICAgICAgICAgInNjb3BlIiA9PiAkc2NvcGUKKyAgICAgICAgKTsKKworICAgICAgICAkdGhpcy0+dG9rZW5TdG9yYWdlLT5zZXRBY2Nlc3NUb2tlbigkdG9rZW5bImFjY2Vzc190b2tlbiJdLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHRoaXMtPmNvbmZpZ1snYWNjZXNzX2xpZmV0aW1lJ10gPyB0aW1lKCkgKyAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfbGlmZXRpbWUnXSA6IG51bGwsICRzY29wZSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSXNzdWUgYSByZWZyZXNoIHRva2VuIGFsc28sIGlmIHdlIHN1cHBvcnQgdGhlbQorICAgICAgICAgKgorICAgICAgICAgKiBSZWZyZXNoIFRva2VucyBhcmUgY29uc2lkZXJlZCBzdXBwb3J0ZWQgaWYgYW4gaW5zdGFuY2Ugb2YgT0F1dGgyXFN0b3JhZ2VcUmVmcmVzaFRva2VuSW50ZXJmYWNlCisgICAgICAgICAqIGlzIHN1cHBsaWVkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCRpbmNsdWRlUmVmcmVzaFRva2VuICYmICR0aGlzLT5yZWZyZXNoU3RvcmFnZSkgeworICAgICAgICAgICAgJHRva2VuWyJyZWZyZXNoX3Rva2VuIl0gPSAkdGhpcy0+Z2VuZXJhdGVSZWZyZXNoVG9rZW4oKTsKKyAgICAgICAgICAgICRleHBpcmVzID0gMDsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2xpZmV0aW1lJ10gPiAwKSB7CisgICAgICAgICAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2xpZmV0aW1lJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkdGhpcy0+cmVmcmVzaFN0b3JhZ2UtPnNldFJlZnJlc2hUb2tlbigkdG9rZW5bJ3JlZnJlc2hfdG9rZW4nXSwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYW4gdW5pcXVlIGFjY2VzcyB0b2tlbi4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGluZyBjbGFzc2VzIG1heSB3YW50IHRvIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gaW1wbGVtZW50CisgICAgICogb3RoZXIgYWNjZXNzIHRva2VuIGdlbmVyYXRpb24gc2NoZW1lcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIC0gQSB1bmlxdWUgYWNjZXNzIHRva2VuLgorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZW5lcmF0ZUFjY2Vzc1Rva2VuKCkKKyAgICB7CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3JhbmRvbV9ieXRlcycpKSB7CisgICAgICAgICAgICAkcmFuZG9tRGF0YSA9IHJhbmRvbV9ieXRlcygyMCk7CisgICAgICAgICAgICBpZiAoJHJhbmRvbURhdGEgIT09IGZhbHNlICYmIHN0cmxlbigkcmFuZG9tRGF0YSkgPT09IDIwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpbjJoZXgoJHJhbmRvbURhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcycpKSB7CisgICAgICAgICAgICAkcmFuZG9tRGF0YSA9IG9wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcygyMCk7CisgICAgICAgICAgICBpZiAoJHJhbmRvbURhdGEgIT09IGZhbHNlICYmIHN0cmxlbigkcmFuZG9tRGF0YSkgPT09IDIwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpbjJoZXgoJHJhbmRvbURhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21jcnlwdF9jcmVhdGVfaXYnKSkgeworICAgICAgICAgICAgJHJhbmRvbURhdGEgPSBtY3J5cHRfY3JlYXRlX2l2KDIwLCBNQ1JZUFRfREVWX1VSQU5ET00pOworICAgICAgICAgICAgaWYgKCRyYW5kb21EYXRhICE9PSBmYWxzZSAmJiBzdHJsZW4oJHJhbmRvbURhdGEpID09PSAyMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBiaW4yaGV4KCRyYW5kb21EYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoQGZpbGVfZXhpc3RzKCcvZGV2L3VyYW5kb20nKSkgeyAvLyBHZXQgMTAwIGJ5dGVzIG9mIHJhbmRvbSBkYXRhCisgICAgICAgICAgICAkcmFuZG9tRGF0YSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCcvZGV2L3VyYW5kb20nLCBmYWxzZSwgbnVsbCwgMCwgMjApOworICAgICAgICAgICAgaWYgKCRyYW5kb21EYXRhICE9PSBmYWxzZSAmJiBzdHJsZW4oJHJhbmRvbURhdGEpID09PSAyMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBiaW4yaGV4KCRyYW5kb21EYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBMYXN0IHJlc29ydCB3aGljaCB5b3UgcHJvYmFibHkgc2hvdWxkIGp1c3QgZ2V0IHJpZCBvZjoKKyAgICAgICAgJHJhbmRvbURhdGEgPSBtdF9yYW5kKCkgLiBtdF9yYW5kKCkgLiBtdF9yYW5kKCkgLiBtdF9yYW5kKCkgLiBtaWNyb3RpbWUodHJ1ZSkgLiB1bmlxaWQobXRfcmFuZCgpLCB0cnVlKTsKKworICAgICAgICByZXR1cm4gc3Vic3RyKGhhc2goJ3NoYTUxMicsICRyYW5kb21EYXRhKSwgMCwgNDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhbiB1bmlxdWUgcmVmcmVzaCB0b2tlbgorICAgICAqCisgICAgICogSW1wbGVtZW50aW5nIGNsYXNzZXMgbWF5IHdhbnQgdG8gb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBpbXBsZW1lbnQKKyAgICAgKiBvdGhlciByZWZyZXNoIHRva2VuIGdlbmVyYXRpb24gc2NoZW1lcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIC0gQSB1bmlxdWUgcmVmcmVzaCB0b2tlbi4KKyAgICAgKgorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzQKKyAgICAgKiBAc2VlIE9BdXRoMjo6Z2VuZXJhdGVBY2Nlc3NUb2tlbigpCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdlbmVyYXRlUmVmcmVzaFRva2VuKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2VuZXJhdGVBY2Nlc3NUb2tlbigpOyAvLyBsZXQncyByZXVzZSB0aGUgc2FtZSBzY2hlbWUgZm9yIHRva2VuIGdlbmVyYXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5kbGUgdGhlIHJldm9raW5nIG9mIHJlZnJlc2ggdG9rZW5zLCBhbmQgYWNjZXNzIHRva2VucyBpZiBzdXBwb3J0ZWQgLyBkZXNpcmFibGUKKyAgICAgKiBSRkM3MDA5IHNwZWNpZmllcyB0aGF0ICJJZiB0aGUgc2VydmVyIGlzIHVuYWJsZSB0byBsb2NhdGUgdGhlIHRva2VuIHVzaW5nCisgICAgICogdGhlIGdpdmVuIGhpbnQsIGl0IE1VU1QgZXh0ZW5kIGl0cyBzZWFyY2ggYWNyb3NzIGFsbCBvZiBpdHMgc3VwcG9ydGVkIHRva2VuIHR5cGVzIgorICAgICAqCisgICAgICogQHBhcmFtICR0b2tlbgorICAgICAqIEBwYXJhbSBudWxsICR0b2tlblR5cGVIaW50CisgICAgICogQHRocm93cyBSdW50aW1lRXhjZXB0aW9uCisgICAgICogQHJldHVybiBib29sZWFuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHJldm9rZVRva2VuKCR0b2tlbiwgJHRva2VuVHlwZUhpbnQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCR0b2tlblR5cGVIaW50ID09ICdyZWZyZXNoX3Rva2VuJykgeworICAgICAgICAgICAgaWYgKCR0aGlzLT5yZWZyZXNoU3RvcmFnZSAmJiAkcmV2b2tlZCA9ICR0aGlzLT5yZWZyZXNoU3RvcmFnZS0+dW5zZXRSZWZyZXNoVG9rZW4oJHRva2VuKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqIEBUT0RPIHJlbW92ZSBpbiB2MiAqLworICAgICAgICBpZiAoIW1ldGhvZF9leGlzdHMoJHRoaXMtPnRva2VuU3RvcmFnZSwgJ3Vuc2V0QWNjZXNzVG9rZW4nKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgc3ByaW50ZignVG9rZW4gc3RvcmFnZSAlcyBtdXN0IGltcGxlbWVudCB1bnNldEFjY2Vzc1Rva2VuIG1ldGhvZCcsIGdldF9jbGFzcygkdGhpcy0+dG9rZW5TdG9yYWdlKQorICAgICAgICAgICAgKSk7CisgICAgICAgIH0KKworICAgICAgICAkcmV2b2tlZCA9ICR0aGlzLT50b2tlblN0b3JhZ2UtPnVuc2V0QWNjZXNzVG9rZW4oJHRva2VuKTsKKworICAgICAgICAvLyBpZiBhIHR5cGVoaW50IGlzIHN1cHBsaWVkIGFuZCBmYWlscywgdHJ5IG90aGVyIHN0b3JhZ2VzIAorICAgICAgICAvLyBAc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MDA5I3NlY3Rpb24tMi4xCisgICAgICAgIGlmICghJHJldm9rZWQgJiYgJHRva2VuVHlwZUhpbnQgIT0gJ3JlZnJlc2hfdG9rZW4nKSB7CisgICAgICAgICAgICBpZiAoJHRoaXMtPnJlZnJlc2hTdG9yYWdlKSB7CisgICAgICAgICAgICAgICAgJHJldm9rZWQgPSAkdGhpcy0+cmVmcmVzaFN0b3JhZ2UtPnVuc2V0UmVmcmVzaFRva2VuKCR0b2tlbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHJldm9rZWQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VUeXBlL0FjY2Vzc1Rva2VuSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9BY2Nlc3NUb2tlbkludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU1NzZkZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9BY2Nlc3NUb2tlbkludGVyZmFjZS5waHAKQEAgLTAsMCArMSwzMyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxSZXNwb25zZVR5cGU7CisKKy8qKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworaW50ZXJmYWNlIEFjY2Vzc1Rva2VuSW50ZXJmYWNlIGV4dGVuZHMgUmVzcG9uc2VUeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogSGFuZGxlIHRoZSBjcmVhdGlvbiBvZiBhY2Nlc3MgdG9rZW4sIGFsc28gaXNzdWUgcmVmcmVzaCB0b2tlbiBpZiBzdXBwb3J0ZWQgLyBkZXNpcmFibGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRjbGllbnRfaWQgICAgICAgICAgIC0gY2xpZW50IGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGUgYWNjZXNzIHRva2VuLgorICAgICAqIEBwYXJhbSBtaXhlZCAgJHVzZXJfaWQgICAgICAgICAgICAgLSB1c2VyIElEIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWNjZXNzIHRva2VuCisgICAgICogQHBhcmFtIHN0cmluZyAkc2NvcGUgICAgICAgICAgICAgICAtIE9QVE9OQUwgc2NvcGVzIHRvIGJlIHN0b3JlZCBpbiBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBib29sICAgJGluY2x1ZGVSZWZyZXNoVG9rZW4gLSBpZiB0cnVlLCBhIG5ldyByZWZyZXNoX3Rva2VuIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHJlc3BvbnNlCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi01CisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVBY2Nlc3NUb2tlbigkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHNjb3BlID0gbnVsbCwgJGluY2x1ZGVSZWZyZXNoVG9rZW4gPSB0cnVlKTsKKworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgcmV2b2tpbmcgb2YgcmVmcmVzaCB0b2tlbnMsIGFuZCBhY2Nlc3MgdG9rZW5zIGlmIHN1cHBvcnRlZCAvIGRlc2lyYWJsZQorICAgICAqCisgICAgICogQHBhcmFtICR0b2tlbgorICAgICAqIEBwYXJhbSAkdG9rZW5UeXBlSGludAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKgorICAgICAqIEB0b2RvIHYyLjAgaW5jbHVkZSB0aGlzIG1ldGhvZCBpbiBpbnRlcmZhY2UuIE9taXR0ZWQgdG8gbWFpbnRhaW4gQkMgaW4gdjEueAorICAgICAqLworICAgIC8vcHVibGljIGZ1bmN0aW9uIHJldm9rZVRva2VuKCR0b2tlbiwgJHRva2VuVHlwZUhpbnQpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9BdXRob3JpemF0aW9uQ29kZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9SZXNwb25zZVR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MmM3M2MKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9SZXNwb25zZVR5cGUvQXV0aG9yaXphdGlvbkNvZGUucGhwCkBAIC0wLDAgKzEsMTAxIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFJlc3BvbnNlVHlwZTsKKwordXNlIE9BdXRoMlxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlIGFzIEF1dGhvcml6YXRpb25Db2RlU3RvcmFnZUludGVyZmFjZTsKKworLyoqCisgKiBAYXV0aG9yIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICovCitjbGFzcyBBdXRob3JpemF0aW9uQ29kZSBpbXBsZW1lbnRzIEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlCit7CisgICAgcHJvdGVjdGVkICRzdG9yYWdlOworICAgIHByb3RlY3RlZCAkY29uZmlnOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEF1dGhvcml6YXRpb25Db2RlU3RvcmFnZUludGVyZmFjZSAkc3RvcmFnZSwgYXJyYXkgJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkdGhpcy0+c3RvcmFnZSA9ICRzdG9yYWdlOworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnZW5mb3JjZV9yZWRpcmVjdCcgPT4gZmFsc2UsCisgICAgICAgICAgICAnYXV0aF9jb2RlX2xpZmV0aW1lJyA9PiAzMCwKKyAgICAgICAgKSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6ZVJlc3BvbnNlKCRwYXJhbXMsICR1c2VyX2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIGJ1aWxkIHRoZSBVUkwgdG8gcmVkaXJlY3QgdG8KKyAgICAgICAgJHJlc3VsdCA9IGFycmF5KCdxdWVyeScgPT4gYXJyYXkoKSk7CisKKyAgICAgICAgJHBhcmFtcyArPSBhcnJheSgnc2NvcGUnID0+IG51bGwsICdzdGF0ZScgPT4gbnVsbCk7CisKKyAgICAgICAgJHJlc3VsdFsncXVlcnknXVsnY29kZSddID0gJHRoaXMtPmNyZWF0ZUF1dGhvcml6YXRpb25Db2RlKCRwYXJhbXNbJ2NsaWVudF9pZCddLCAkdXNlcl9pZCwgJHBhcmFtc1sncmVkaXJlY3RfdXJpJ10sICRwYXJhbXNbJ3Njb3BlJ10pOworCisgICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydzdGF0ZSddKSkgeworICAgICAgICAgICAgJHJlc3VsdFsncXVlcnknXVsnc3RhdGUnXSA9ICRwYXJhbXNbJ3N0YXRlJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYXJyYXkoJHBhcmFtc1sncmVkaXJlY3RfdXJpJ10sICRyZXN1bHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgY3JlYXRpb24gb2YgdGhlIGF1dGhvcml6YXRpb24gY29kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQ2xpZW50IGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGUgYXV0aG9yaXphdGlvbiBjb2RlCisgICAgICogQHBhcmFtICR1c2VyX2lkCisgICAgICogVXNlciBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGF1dGhvcml6YXRpb24gY29kZQorICAgICAqIEBwYXJhbSAkcmVkaXJlY3RfdXJpCisgICAgICogQW4gYWJzb2x1dGUgVVJJIHRvIHdoaWNoIHRoZSBhdXRob3JpemF0aW9uIHNlcnZlciB3aWxsIHJlZGlyZWN0IHRoZQorICAgICAqIHVzZXItYWdlbnQgdG8gd2hlbiB0aGUgZW5kLXVzZXIgYXV0aG9yaXphdGlvbiBzdGVwIGlzIGNvbXBsZXRlZC4KKyAgICAgKiBAcGFyYW0gJHNjb3BlCisgICAgICogKG9wdGlvbmFsKSBTY29wZXMgdG8gYmUgc3RvcmVkIGluIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00CisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVBdXRob3JpemF0aW9uQ29kZSgkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgJHNjb3BlID0gbnVsbCkKKyAgICB7CisgICAgICAgICRjb2RlID0gJHRoaXMtPmdlbmVyYXRlQXV0aG9yaXphdGlvbkNvZGUoKTsKKyAgICAgICAgJHRoaXMtPnN0b3JhZ2UtPnNldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgdGltZSgpICsgJHRoaXMtPmNvbmZpZ1snYXV0aF9jb2RlX2xpZmV0aW1lJ10sICRzY29wZSk7CisKKyAgICAgICAgcmV0dXJuICRjb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKiBUUlVFIGlmIHRoZSBncmFudCB0eXBlIHJlcXVpcmVzIGEgcmVkaXJlY3RfdXJpLCBGQUxTRSBpZiBub3QKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZW5mb3JjZVJlZGlyZWN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y29uZmlnWydlbmZvcmNlX3JlZGlyZWN0J107CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGFuIHVuaXF1ZSBhdXRoIGNvZGUuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnRpbmcgY2xhc3NlcyBtYXkgd2FudCB0byBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGltcGxlbWVudAorICAgICAqIG90aGVyIGF1dGggY29kZSBnZW5lcmF0aW9uIHNjaGVtZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuCisgICAgICogQW4gdW5pcXVlIGF1dGggY29kZS4KKyAgICAgKgorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2VuZXJhdGVBdXRob3JpemF0aW9uQ29kZSgpCisgICAgeworICAgICAgICAkdG9rZW5MZW4gPSA0MDsKKyAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygncmFuZG9tX2J5dGVzJykpIHsKKyAgICAgICAgICAgICRyYW5kb21EYXRhID0gcmFuZG9tX2J5dGVzKDEwMCk7CisgICAgICAgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcycpKSB7CisgICAgICAgICAgICAkcmFuZG9tRGF0YSA9IG9wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcygxMDApOworICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdtY3J5cHRfY3JlYXRlX2l2JykpIHsKKyAgICAgICAgICAgICRyYW5kb21EYXRhID0gbWNyeXB0X2NyZWF0ZV9pdigxMDAsIE1DUllQVF9ERVZfVVJBTkRPTSk7CisgICAgICAgIH0gZWxzZWlmIChAZmlsZV9leGlzdHMoJy9kZXYvdXJhbmRvbScpKSB7IC8vIEdldCAxMDAgYnl0ZXMgb2YgcmFuZG9tIGRhdGEKKyAgICAgICAgICAgICRyYW5kb21EYXRhID0gZmlsZV9nZXRfY29udGVudHMoJy9kZXYvdXJhbmRvbScsIGZhbHNlLCBudWxsLCAwLCAxMDApIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcmFuZG9tRGF0YSA9IG10X3JhbmQoKSAuIG10X3JhbmQoKSAuIG10X3JhbmQoKSAuIG10X3JhbmQoKSAuIG1pY3JvdGltZSh0cnVlKSAuIHVuaXFpZChtdF9yYW5kKCksIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN1YnN0cihoYXNoKCdzaGE1MTInLCAkcmFuZG9tRGF0YSksIDAsICR0b2tlbkxlbik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VUeXBlL0F1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYwYTI5ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSwzMCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxSZXNwb25zZVR5cGU7CisKKy8qKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworaW50ZXJmYWNlIEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlIGV4dGVuZHMgUmVzcG9uc2VUeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHJldHVybgorICAgICAqIFRSVUUgaWYgdGhlIGdyYW50IHR5cGUgcmVxdWlyZXMgYSByZWRpcmVjdF91cmksIEZBTFNFIGlmIG5vdAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBlbmZvcmNlUmVkaXJlY3QoKTsKKworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgY3JlYXRpb24gb2YgdGhlIGF1dGhvcml6YXRpb24gY29kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaXhlZCAgJGNsaWVudF9pZCAgICAtIENsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGF1dGhvcml6YXRpb24gY29kZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJHVzZXJfaWQgICAgICAtIFVzZXIgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhdXRob3JpemF0aW9uIGNvZGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyZWRpcmVjdF91cmkgLSBBbiBhYnNvbHV0ZSBVUkkgdG8gd2hpY2ggdGhlIGF1dGhvcml6YXRpb24gc2VydmVyIHdpbGwgcmVkaXJlY3QgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlci1hZ2VudCB0byB3aGVuIHRoZSBlbmQtdXNlciBhdXRob3JpemF0aW9uIHN0ZXAgaXMgY29tcGxldGVkLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlICAgICAgICAtIE9QVElPTkFMIFNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNAorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlQXV0aG9yaXphdGlvbkNvZGUoJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksICRzY29wZSA9IG51bGwpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VUeXBlL0p3dEFjY2Vzc1Rva2VuLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9Kd3RBY2Nlc3NUb2tlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlMzcwOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9Kd3RBY2Nlc3NUb2tlbi5waHAKQEAgLTAsMCArMSwxNTkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcUmVzcG9uc2VUeXBlOworCit1c2UgT0F1dGgyXEVuY3J5cHRpb25cRW5jcnlwdGlvbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcRW5jcnlwdGlvblxKd3Q7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2UgYXMgQWNjZXNzVG9rZW5TdG9yYWdlSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTdG9yYWdlXFJlZnJlc2hUb2tlbkludGVyZmFjZTsKK3VzZSBPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcTWVtb3J5OworCisvKioKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2NsYXNzIEp3dEFjY2Vzc1Rva2VuIGV4dGVuZHMgQWNjZXNzVG9rZW4KK3sKKyAgICBwcm90ZWN0ZWQgJHB1YmxpY0tleVN0b3JhZ2U7CisgICAgcHJvdGVjdGVkICRlbmNyeXB0aW9uVXRpbDsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBQdWJsaWNLZXlJbnRlcmZhY2UgICAgICAgICAgJHB1YmxpY0tleVN0b3JhZ2UgLQorICAgICAqIEBwYXJhbSBBY2Nlc3NUb2tlblN0b3JhZ2VJbnRlcmZhY2UgJHRva2VuU3RvcmFnZSAgICAgLQorICAgICAqIEBwYXJhbSBSZWZyZXNoVG9rZW5JbnRlcmZhY2UgICAgICAgJHJlZnJlc2hTdG9yYWdlICAgLQorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgJGNvbmZpZyAgICAgICAgICAgLSBhcnJheSB3aXRoIGtleSBzdG9yZV9lbmNyeXB0ZWRfdG9rZW5fc3RyaW5nIChib29sIHRydWUpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXRoZXIgdGhlIGVudGlyZSBlbmNyeXB0ZWQgc3RyaW5nIGlzIHN0b3JlZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IganVzdCB0aGUgdG9rZW4gSUQgaXMgc3RvcmVkCisgICAgICogQHBhcmFtIEVuY3J5cHRpb25JbnRlcmZhY2UgICAgICAgICAkZW5jcnlwdGlvblV0aWwgICAtCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFB1YmxpY0tleUludGVyZmFjZSAkcHVibGljS2V5U3RvcmFnZSA9IG51bGwsIEFjY2Vzc1Rva2VuU3RvcmFnZUludGVyZmFjZSAkdG9rZW5TdG9yYWdlID0gbnVsbCwgUmVmcmVzaFRva2VuSW50ZXJmYWNlICRyZWZyZXNoU3RvcmFnZSA9IG51bGwsIGFycmF5ICRjb25maWcgPSBhcnJheSgpLCBFbmNyeXB0aW9uSW50ZXJmYWNlICRlbmNyeXB0aW9uVXRpbCA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+cHVibGljS2V5U3RvcmFnZSA9ICRwdWJsaWNLZXlTdG9yYWdlOworICAgICAgICAkY29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnc3RvcmVfZW5jcnlwdGVkX3Rva2VuX3N0cmluZycgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICcnCisgICAgICAgICksICRjb25maWcpOworICAgICAgICBpZiAoaXNfbnVsbCgkdG9rZW5TdG9yYWdlKSkgeworICAgICAgICAgICAgLy8gYSBwYXNzLXRocnUsIHNvIHdlIGNhbiBjYWxsIHRoZSBwYXJlbnQgY29uc3RydWN0b3IKKyAgICAgICAgICAgICR0b2tlblN0b3JhZ2UgPSBuZXcgTWVtb3J5KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzX251bGwoJGVuY3J5cHRpb25VdGlsKSkgeworICAgICAgICAgICAgJGVuY3J5cHRpb25VdGlsID0gbmV3IEp3dCgpOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5lbmNyeXB0aW9uVXRpbCA9ICRlbmNyeXB0aW9uVXRpbDsKKyAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkdG9rZW5TdG9yYWdlLCAkcmVmcmVzaFN0b3JhZ2UsICRjb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgY3JlYXRpb24gb2YgYWNjZXNzIHRva2VuLCBhbHNvIGlzc3VlIHJlZnJlc2ggdG9rZW4gaWYgc3VwcG9ydGVkIC8gZGVzaXJhYmxlLgorICAgICAqCisgICAgICogQHBhcmFtIG1peGVkICAkY2xpZW50X2lkICAgICAgICAgICAtIENsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGFjY2VzcyB0b2tlbi4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VyX2lkICAgICAgICAgICAgIC0gVXNlciBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlICAgICAgICAgICAgICAgLSAob3B0aW9uYWwpIFNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gYm9vbCAgICRpbmNsdWRlUmVmcmVzaFRva2VuIC0gSWYgdHJ1ZSwgYSBuZXcgcmVmcmVzaF90b2tlbiB3aWxsIGJlIGFkZGVkIHRvIHRoZSByZXNwb25zZQorICAgICAqIEByZXR1cm4gYXJyYXkgICAgICAgICAgICAgICAgICAgICAgLSBUaGUgYWNjZXNzIHRva2VuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi01CisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVBY2Nlc3NUb2tlbigkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHNjb3BlID0gbnVsbCwgJGluY2x1ZGVSZWZyZXNoVG9rZW4gPSB0cnVlKQorICAgIHsKKyAgICAgICAgLy8gcGF5bG9hZCB0byBlbmNyeXB0CisgICAgICAgICRwYXlsb2FkID0gJHRoaXMtPmNyZWF0ZVBheWxvYWQoJGNsaWVudF9pZCwgJHVzZXJfaWQsICRzY29wZSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRW5jb2RlIHRoZSBwYXlsb2FkIGRhdGEgaW50byBhIHNpbmdsZSBKV1QgYWNjZXNzX3Rva2VuIHN0cmluZworICAgICAgICAgKi8KKyAgICAgICAgJGFjY2Vzc190b2tlbiA9ICR0aGlzLT5lbmNvZGVUb2tlbigkcGF5bG9hZCwgJGNsaWVudF9pZCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2F2ZSB0aGUgdG9rZW4gdG8gYSBzZWNvbmRhcnkgc3RvcmFnZS4gIFRoaXMgaXMgaW1wbGVtZW50ZWQgb24gdGhlCisgICAgICAgICAqIE9BdXRoMlxTdG9yYWdlXEp3dEFjY2Vzc1Rva2VuIHNpZGUsIGFuZCB3aWxsIG5vdCBhY3R1YWxseSBzdG9yZSBhbnl0aGluZywKKyAgICAgICAgICogaWYgbm8gc2Vjb25kYXJ5IHN0b3JhZ2UgaGFzIGJlZW4gc3VwcGxpZWQKKyAgICAgICAgICovCisgICAgICAgICR0b2tlbl90b19zdG9yZSA9ICR0aGlzLT5jb25maWdbJ3N0b3JlX2VuY3J5cHRlZF90b2tlbl9zdHJpbmcnXSA/ICRhY2Nlc3NfdG9rZW4gOiAkcGF5bG9hZFsnaWQnXTsKKyAgICAgICAgJHRoaXMtPnRva2VuU3RvcmFnZS0+c2V0QWNjZXNzVG9rZW4oJHRva2VuX3RvX3N0b3JlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHRoaXMtPmNvbmZpZ1snYWNjZXNzX2xpZmV0aW1lJ10gPyB0aW1lKCkgKyAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfbGlmZXRpbWUnXSA6IG51bGwsICRzY29wZSk7CisKKyAgICAgICAgLy8gdG9rZW4gdG8gcmV0dXJuIHRvIHRoZSBjbGllbnQKKyAgICAgICAgJHRva2VuID0gYXJyYXkoCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyA9PiAkYWNjZXNzX3Rva2VuLAorICAgICAgICAgICAgJ2V4cGlyZXNfaW4nID0+ICR0aGlzLT5jb25maWdbJ2FjY2Vzc19saWZldGltZSddLAorICAgICAgICAgICAgJ3Rva2VuX3R5cGUnID0+ICR0aGlzLT5jb25maWdbJ3Rva2VuX3R5cGUnXSwKKyAgICAgICAgICAgICdzY29wZScgPT4gJHNjb3BlCisgICAgICAgICk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSXNzdWUgYSByZWZyZXNoIHRva2VuIGFsc28sIGlmIHdlIHN1cHBvcnQgdGhlbQorICAgICAgICAgKgorICAgICAgICAgKiBSZWZyZXNoIFRva2VucyBhcmUgY29uc2lkZXJlZCBzdXBwb3J0ZWQgaWYgYW4gaW5zdGFuY2Ugb2YgT0F1dGgyXFN0b3JhZ2VcUmVmcmVzaFRva2VuSW50ZXJmYWNlCisgICAgICAgICAqIGlzIHN1cHBsaWVkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCRpbmNsdWRlUmVmcmVzaFRva2VuICYmICR0aGlzLT5yZWZyZXNoU3RvcmFnZSkgeworICAgICAgICAgICAgJHJlZnJlc2hfdG9rZW4gPSAkdGhpcy0+Z2VuZXJhdGVSZWZyZXNoVG9rZW4oKTsKKyAgICAgICAgICAgICRleHBpcmVzID0gMDsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2xpZmV0aW1lJ10gPiAwKSB7CisgICAgICAgICAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2xpZmV0aW1lJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkdGhpcy0+cmVmcmVzaFN0b3JhZ2UtPnNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUpOworICAgICAgICAgICAgJHRva2VuWydyZWZyZXNoX3Rva2VuJ10gPSAkcmVmcmVzaF90b2tlbjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICR0b2tlbgorICAgICAqIEBwYXJhbSBtaXhlZCAkY2xpZW50X2lkCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBlbmNvZGVUb2tlbihhcnJheSAkdG9rZW4sICRjbGllbnRfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHByaXZhdGVfa2V5ID0gJHRoaXMtPnB1YmxpY0tleVN0b3JhZ2UtPmdldFByaXZhdGVLZXkoJGNsaWVudF9pZCk7CisgICAgICAgICRhbGdvcml0aG0gICA9ICR0aGlzLT5wdWJsaWNLZXlTdG9yYWdlLT5nZXRFbmNyeXB0aW9uQWxnb3JpdGhtKCRjbGllbnRfaWQpOworCisgICAgICAgIHJldHVybiAkdGhpcy0+ZW5jcnlwdGlvblV0aWwtPmVuY29kZSgkdG9rZW4sICRwcml2YXRlX2tleSwgJGFsZ29yaXRobSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgY3VzdG9tIEpXVCBwYXlsb2FkcworICAgICAqCisgICAgICogQHBhcmFtIG1peGVkICAkY2xpZW50X2lkICAgICAgICAgICAtIENsaWVudCBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhlIGFjY2VzcyB0b2tlbi4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VyX2lkICAgICAgICAgICAgIC0gVXNlciBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlICAgICAgICAgICAgICAgLSAob3B0aW9uYWwpIFNjb3BlcyB0byBiZSBzdG9yZWQgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIGFycmF5ICAgICAgICAgICAgICAgICAgICAgIC0gVGhlIGFjY2VzcyB0b2tlbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVQYXlsb2FkKCRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gdG9rZW4gdG8gZW5jcnlwdAorICAgICAgICAkZXhwaXJlcyA9IHRpbWUoKSArICR0aGlzLT5jb25maWdbJ2FjY2Vzc19saWZldGltZSddOworICAgICAgICAkaWQgPSAkdGhpcy0+Z2VuZXJhdGVBY2Nlc3NUb2tlbigpOworCisgICAgICAgICRwYXlsb2FkID0gYXJyYXkoCisgICAgICAgICAgICAnaWQnICAgICAgICAgPT4gJGlkLCAvLyBmb3IgQkMgKHNlZSAjNTkxKQorICAgICAgICAgICAgJ2p0aScgICAgICAgID0+ICRpZCwKKyAgICAgICAgICAgICdpc3MnICAgICAgICA9PiAkdGhpcy0+Y29uZmlnWydpc3N1ZXInXSwKKyAgICAgICAgICAgICdhdWQnICAgICAgICA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgJ3N1YicgICAgICAgID0+ICR1c2VyX2lkLAorICAgICAgICAgICAgJ2V4cCcgICAgICAgID0+ICRleHBpcmVzLAorICAgICAgICAgICAgJ2lhdCcgICAgICAgID0+IHRpbWUoKSwKKyAgICAgICAgICAgICd0b2tlbl90eXBlJyA9PiAkdGhpcy0+Y29uZmlnWyd0b2tlbl90eXBlJ10sCisgICAgICAgICAgICAnc2NvcGUnICAgICAgPT4gJHNjb3BlCisgICAgICAgICk7CisgICAgICAgIAorICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmNvbmZpZ1snand0X2V4dHJhX3BheWxvYWRfY2FsbGFibGUnXSkpIHsKKyAgICAgICAgICAgIGlmICghaXNfY2FsbGFibGUoJHRoaXMtPmNvbmZpZ1snand0X2V4dHJhX3BheWxvYWRfY2FsbGFibGUnXSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignand0X2V4dHJhX3BheWxvYWRfY2FsbGFibGUgaXMgbm90IGNhbGxhYmxlJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICRleHRyYSA9IGNhbGxfdXNlcl9mdW5jKCR0aGlzLT5jb25maWdbJ2p3dF9leHRyYV9wYXlsb2FkX2NhbGxhYmxlJ10sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkc2NvcGUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWlzX2FycmF5KCRleHRyYSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignand0X2V4dHJhX3BheWxvYWRfY2FsbGFibGUgbXVzdCByZXR1cm4gYXJyYXknKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgJHBheWxvYWQgPSBhcnJheV9tZXJnZSgkZXh0cmEsICRwYXlsb2FkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuICRwYXlsb2FkOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9SZXNwb25zZVR5cGVJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvUmVzcG9uc2VUeXBlL1Jlc3BvbnNlVHlwZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI3MTU2NQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Jlc3BvbnNlVHlwZS9SZXNwb25zZVR5cGVJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMTMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcUmVzcG9uc2VUeXBlOworCitpbnRlcmZhY2UgUmVzcG9uc2VUeXBlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJhbXMKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHVzZXJfaWQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6ZVJlc3BvbnNlKCRwYXJhbXMsICR1c2VyX2lkID0gbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TY29wZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TY29wZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JhNmU1MwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Njb3BlLnBocApAQCAtMCwwICsxLDEwOSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMjsKKwordXNlIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbjsKK3VzZSBPQXV0aDJcU3RvcmFnZVxNZW1vcnk7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcU2NvcGVJbnRlcmZhY2UgYXMgU2NvcGVTdG9yYWdlSW50ZXJmYWNlOworCisvKioKKyogQHNlZSBTY29wZUludGVyZmFjZQorKi8KK2NsYXNzIFNjb3BlIGltcGxlbWVudHMgU2NvcGVJbnRlcmZhY2UKK3sKKyAgICBwcm90ZWN0ZWQgJHN0b3JhZ2U7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvcgorICAgICAqCisgICAgICogQHBhcmFtIG1peGVkICRzdG9yYWdlIC0gRWl0aGVyIGFuIGFycmF5IG9mIHN1cHBvcnRlZCBzY29wZXMsIG9yIGFuIGluc3RhbmNlIG9mIE9BdXRoMlxTdG9yYWdlXFNjb3BlSW50ZXJmYWNlCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkc3RvcmFnZSA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkc3RvcmFnZSkgfHwgaXNfYXJyYXkoJHN0b3JhZ2UpKSB7CisgICAgICAgICAgICAkc3RvcmFnZSA9IG5ldyBNZW1vcnkoKGFycmF5KSAkc3RvcmFnZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRzdG9yYWdlIGluc3RhbmNlb2YgU2NvcGVTdG9yYWdlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJBcmd1bWVudCAxIHRvIE9BdXRoMlxTY29wZSBtdXN0IGJlIG51bGwsIGFuIGFycmF5LCBvciBpbnN0YW5jZSBvZiBPQXV0aDJcU3RvcmFnZVxTY29wZUludGVyZmFjZSIpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPnN0b3JhZ2UgPSAkc3RvcmFnZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiBldmVyeXRoaW5nIGluIHJlcXVpcmVkIHNjb3BlIGlzIGNvbnRhaW5lZCBpbiBhdmFpbGFibGUgc2NvcGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyZXF1aXJlZF9zY29wZSAgLSBBIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcgb2Ygc2NvcGVzLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGF2YWlsYWJsZV9zY29wZSAtIEEgc3BhY2Utc2VwYXJhdGVkIHN0cmluZyBvZiBzY29wZXMuCisgICAgICogQHJldHVybiBib29sICAgICAgICAgICAgICAgICAgIC0gVFJVRSBpZiBldmVyeXRoaW5nIGluIHJlcXVpcmVkIHNjb3BlIGlzIGNvbnRhaW5lZCBpbiBhdmFpbGFibGUgc2NvcGUgYW5kIEZBTFNFCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXQgaXNuJ3QuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi03CisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl83CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrU2NvcGUoJHJlcXVpcmVkX3Njb3BlLCAkYXZhaWxhYmxlX3Njb3BlKQorICAgIHsKKyAgICAgICAgJHJlcXVpcmVkX3Njb3BlID0gZXhwbG9kZSgnICcsIHRyaW0oJHJlcXVpcmVkX3Njb3BlKSk7CisgICAgICAgICRhdmFpbGFibGVfc2NvcGUgPSBleHBsb2RlKCcgJywgdHJpbSgkYXZhaWxhYmxlX3Njb3BlKSk7CisKKyAgICAgICAgcmV0dXJuIChjb3VudChhcnJheV9kaWZmKCRyZXF1aXJlZF9zY29wZSwgJGF2YWlsYWJsZV9zY29wZSkpID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBwcm92aWRlZCBzY29wZSBleGlzdHMgaW4gc3RvcmFnZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlIC0gQSBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nIG9mIHNjb3Blcy4KKyAgICAgKiBAcmV0dXJuIGJvb2wgICAgICAgICAtIFRSVUUgaWYgaXQgZXhpc3RzLCBGQUxTRSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNjb3BlRXhpc3RzKCRzY29wZSkKKyAgICB7CisgICAgICAgIC8vIENoZWNrIHJlc2VydmVkIHNjb3BlcyBmaXJzdC4KKyAgICAgICAgJHNjb3BlID0gZXhwbG9kZSgnICcsIHRyaW0oJHNjb3BlKSk7CisgICAgICAgICRyZXNlcnZlZFNjb3BlID0gJHRoaXMtPmdldFJlc2VydmVkU2NvcGVzKCk7CisgICAgICAgICRub25SZXNlcnZlZFNjb3BlcyA9IGFycmF5X2RpZmYoJHNjb3BlLCAkcmVzZXJ2ZWRTY29wZSk7CisgICAgICAgIGlmIChjb3VudCgkbm9uUmVzZXJ2ZWRTY29wZXMpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIHN0b3JhZ2UgZm9yIG5vbi1yZXNlcnZlZCBzY29wZXMuCisgICAgICAgICAgICAkbm9uUmVzZXJ2ZWRTY29wZXMgPSBpbXBsb2RlKCcgJywgJG5vblJlc2VydmVkU2NvcGVzKTsKKworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zdG9yYWdlLT5zY29wZUV4aXN0cygkbm9uUmVzZXJ2ZWRTY29wZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTY29wZUZyb21SZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QpCisgICAgeworICAgICAgICAvLyAic2NvcGUiIGlzIHZhbGlkIGlmIHBhc3NlZCBpbiBlaXRoZXIgUE9TVCBvciBRVUVSWQorICAgICAgICByZXR1cm4gJHJlcXVlc3QtPnJlcXVlc3QoJ3Njb3BlJywgJHJlcXVlc3QtPnF1ZXJ5KCdzY29wZScpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbnVsbCAkY2xpZW50X2lkCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWZhdWx0U2NvcGUoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnN0b3JhZ2UtPmdldERlZmF1bHRTY29wZSgkY2xpZW50X2lkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgcmVzZXJ2ZWQgc2NvcGVzIG5lZWRlZCBieSB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogSW4gY2FzZSBPcGVuSUQgQ29ubmVjdCBpcyB1c2VkLCB0aGVzZSBzY29wZXMgbXVzdCBpbmNsdWRlOgorICAgICAqICdvcGVuaWQnLCBvZmZsaW5lX2FjY2VzcycuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5IC0gQW4gYXJyYXkgb2YgcmVzZXJ2ZWQgc2NvcGVzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNlcnZlZFNjb3BlcygpCisgICAgeworICAgICAgICByZXR1cm4gYXJyYXkoJ29wZW5pZCcsICdvZmZsaW5lX2FjY2VzcycpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Njb3BlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Njb3BlSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjVjZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU2NvcGVJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMzUgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDI7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxTY29wZUludGVyZmFjZSBhcyBTY29wZVN0b3JhZ2VJbnRlcmZhY2U7CisKKy8qKgorICogQ2xhc3MgdG8gaGFuZGxlIHNjb3BlIGltcGxlbWVudGF0aW9uIGxvZ2ljCisgKgorICogQHNlZSBcT0F1dGgyXFN0b3JhZ2VcU2NvcGVJbnRlcmZhY2UKKyAqLworaW50ZXJmYWNlIFNjb3BlSW50ZXJmYWNlIGV4dGVuZHMgU2NvcGVTdG9yYWdlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgZXZlcnl0aGluZyBpbiByZXF1aXJlZCBzY29wZSBpcyBjb250YWluZWQgaW4gYXZhaWxhYmxlIHNjb3BlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkcmVxdWlyZWRfc2NvcGUgIC0gQSBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nIG9mIHNjb3Blcy4KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhdmFpbGFibGVfc2NvcGUgLSBBIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcgb2Ygc2NvcGVzLgorICAgICAqIEByZXR1cm4gYm9vbGVhbiAgICAgICAgICAgICAgICAtIFRSVUUgaWYgZXZlcnl0aGluZyBpbiByZXF1aXJlZCBzY29wZSBpcyBjb250YWluZWQgaW4gYXZhaWxhYmxlIHNjb3BlIGFuZCBGQUxTRQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0IGlzbid0LgorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNworICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja1Njb3BlKCRyZXF1aXJlZF9zY29wZSwgJGF2YWlsYWJsZV9zY29wZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc2NvcGUgaW5mbyBmcm9tIHJlcXVlc3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0IC0gUmVxdWVzdCBvYmplY3QgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHN0cmluZyAgICAgICAgICAgICAgICAgICAtIHJlcHJlc2VudGF0aW9uIG9mIHJlcXVlc3RlZCBzY29wZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTY29wZUZyb21SZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU2VydmVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1NlcnZlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YwNDBjMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1NlcnZlci5waHAKQEAgLTAsMCArMSwxMDE5IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyOworCit1c2UgT0F1dGgyXENvbnRyb2xsZXJcUmVzb3VyY2VDb250cm9sbGVySW50ZXJmYWNlOwordXNlIE9BdXRoMlxDb250cm9sbGVyXFJlc291cmNlQ29udHJvbGxlcjsKK3VzZSBPQXV0aDJcT3BlbklEXENvbnRyb2xsZXJcVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlOwordXNlIE9BdXRoMlxPcGVuSURcQ29udHJvbGxlclxVc2VySW5mb0NvbnRyb2xsZXI7Cit1c2UgT0F1dGgyXE9wZW5JRFxDb250cm9sbGVyXEF1dGhvcml6ZUNvbnRyb2xsZXIgYXMgT3BlbklEQXV0aG9yaXplQ29udHJvbGxlcjsKK3VzZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxBdXRob3JpemF0aW9uQ29kZSBhcyBPcGVuSURBdXRob3JpemF0aW9uQ29kZVJlc3BvbnNlVHlwZTsKK3VzZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgYXMgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXE9wZW5JRFxHcmFudFR5cGVcQXV0aG9yaXphdGlvbkNvZGUgYXMgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVHcmFudFR5cGU7Cit1c2UgT0F1dGgyXENvbnRyb2xsZXJcQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZTsKK3VzZSBPQXV0aDJcQ29udHJvbGxlclxBdXRob3JpemVDb250cm9sbGVyOwordXNlIE9BdXRoMlxDb250cm9sbGVyXFRva2VuQ29udHJvbGxlckludGVyZmFjZTsKK3VzZSBPQXV0aDJcQ29udHJvbGxlclxUb2tlbkNvbnRyb2xsZXI7Cit1c2UgT0F1dGgyXENsaWVudEFzc2VydGlvblR5cGVcQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZTsKK3VzZSBPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZVxIdHRwQmFzaWM7Cit1c2UgT0F1dGgyXFJlc3BvbnNlVHlwZVxSZXNwb25zZVR5cGVJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFJlc3BvbnNlVHlwZVxBdXRob3JpemF0aW9uQ29kZSBhcyBBdXRob3JpemF0aW9uQ29kZVJlc3BvbnNlVHlwZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuOwordXNlIE9BdXRoMlxSZXNwb25zZVR5cGVcSnd0QWNjZXNzVG9rZW47Cit1c2UgT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGVcQ29kZUlkVG9rZW47Cit1c2UgT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGVcSWRUb2tlbjsKK3VzZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxJZFRva2VuVG9rZW47Cit1c2UgT0F1dGgyXFRva2VuVHlwZVxUb2tlblR5cGVJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXFRva2VuVHlwZVxCZWFyZXI7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxHcmFudFR5cGVJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxVc2VyQ3JlZGVudGlhbHM7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxDbGllbnRDcmVkZW50aWFsczsKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXFJlZnJlc2hUb2tlbjsKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXEF1dGhvcml6YXRpb25Db2RlOwordXNlIE9BdXRoMlxTdG9yYWdlXENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlOwordXNlIE9BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZTsKK3VzZSBPQXV0aDJcU3RvcmFnZVxKd3RBY2Nlc3NUb2tlbiBhcyBKd3RBY2Nlc3NUb2tlblN0b3JhZ2U7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcSnd0QWNjZXNzVG9rZW5JbnRlcmZhY2U7Cit1c2UgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uOwordXNlIExvZ2ljRXhjZXB0aW9uOworCisvKioKKyogU2VydmVyIGNsYXNzIGZvciBPQXV0aDIKKyogVGhpcyBjbGFzcyBzZXJ2ZXMgYXMgYSBjb252aWVuY2UgY2xhc3Mgd2hpY2ggd3JhcHMgdGhlIG90aGVyIENvbnRyb2xsZXIgY2xhc3NlcworKgorKiBAc2VlIFxPQXV0aDJcQ29udHJvbGxlclxSZXNvdXJjZUNvbnRyb2xsZXIKKyogQHNlZSBcT0F1dGgyXENvbnRyb2xsZXJcQXV0aG9yaXplQ29udHJvbGxlcgorKiBAc2VlIFxPQXV0aDJcQ29udHJvbGxlclxUb2tlbkNvbnRyb2xsZXIKKyovCitjbGFzcyBTZXJ2ZXIgaW1wbGVtZW50cyBSZXNvdXJjZUNvbnRyb2xsZXJJbnRlcmZhY2UsCisgICAgQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZSwKKyAgICBUb2tlbkNvbnRyb2xsZXJJbnRlcmZhY2UsCisgICAgVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBSZXNwb25zZUludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkcmVzcG9uc2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRjb25maWc7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRzdG9yYWdlczsKKworICAgIC8qKgorICAgICAqIEB2YXIgQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkYXV0aG9yaXplQ29udHJvbGxlcjsKKworICAgIC8qKgorICAgICAqIEB2YXIgVG9rZW5Db250cm9sbGVySW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICR0b2tlbkNvbnRyb2xsZXI7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIFJlc291cmNlQ29udHJvbGxlckludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkcmVzb3VyY2VDb250cm9sbGVyOworCisgICAgLyoqCisgICAgICogQHZhciBVc2VySW5mb0NvbnRyb2xsZXJJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHVzZXJJbmZvQ29udHJvbGxlcjsKKworICAgIC8qKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGdyYW50VHlwZXMgPSBhcnJheSgpOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkcmVzcG9uc2VUeXBlcyA9IGFycmF5KCk7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIFRva2VuVHlwZUludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkdG9rZW5UeXBlOworCisgICAgLyoqCisgICAgICogQHZhciBTY29wZUludGVyZmFjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkc2NvcGVVdGlsOworCisgICAgLyoqCisgICAgICogQHZhciBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRjbGllbnRBc3NlcnRpb25UeXBlOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkc3RvcmFnZU1hcCA9IGFycmF5KAorICAgICAgICAnYWNjZXNzX3Rva2VuJyA9PiAnT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2UnLAorICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAnT0F1dGgyXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UnLAorICAgICAgICAnY2xpZW50X2NyZWRlbnRpYWxzJyA9PiAnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UnLAorICAgICAgICAnY2xpZW50JyA9PiAnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlJywKKyAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICdPQXV0aDJcU3RvcmFnZVxSZWZyZXNoVG9rZW5JbnRlcmZhY2UnLAorICAgICAgICAndXNlcl9jcmVkZW50aWFscycgPT4gJ09BdXRoMlxTdG9yYWdlXFVzZXJDcmVkZW50aWFsc0ludGVyZmFjZScsCisgICAgICAgICd1c2VyX2NsYWltcycgPT4gJ09BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlJywKKyAgICAgICAgJ3B1YmxpY19rZXknID0+ICdPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2UnLAorICAgICAgICAnand0X2JlYXJlcicgPT4gJ09BdXRoMlxTdG9yYWdlXEpXVEJlYXJlckludGVyZmFjZScsCisgICAgICAgICdzY29wZScgPT4gJ09BdXRoMlxTdG9yYWdlXFNjb3BlSW50ZXJmYWNlJywKKyAgICApOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkcmVzcG9uc2VUeXBlTWFwID0gYXJyYXkoCisgICAgICAgICd0b2tlbicgPT4gJ09BdXRoMlxSZXNwb25zZVR5cGVcQWNjZXNzVG9rZW5JbnRlcmZhY2UnLAorICAgICAgICAnY29kZScgPT4gJ09BdXRoMlxSZXNwb25zZVR5cGVcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UnLAorICAgICAgICAnaWRfdG9rZW4nID0+ICdPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxJZFRva2VuSW50ZXJmYWNlJywKKyAgICAgICAgJ2lkX3Rva2VuIHRva2VuJyA9PiAnT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGVcSWRUb2tlblRva2VuSW50ZXJmYWNlJywKKyAgICAgICAgJ2NvZGUgaWRfdG9rZW4nID0+ICdPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxDb2RlSWRUb2tlbkludGVyZmFjZScsCisgICAgKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBtaXhlZCAgICAgICAgICAgICAgICAgICAgICAgICRzdG9yYWdlICAgICAgICAgICAgIChhcnJheSBvciBPQXV0aDJcU3RvcmFnZSkgLSBzaW5nbGUgb2JqZWN0IG9yIGFycmF5IG9mIG9iamVjdHMgaW1wbGVtZW50aW5nIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIHN0b3JhZ2UgdHlwZXMgKENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlIGFuZCBBY2Nlc3NUb2tlbkludGVyZmFjZSBhcyBhIG1pbmltdW0pCisgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgJGNvbmZpZyAgICAgICAgICAgICAgc3BlY2lmeSBhIGRpZmZlcmVudCB0b2tlbiBsaWZldGltZSwgdG9rZW4gaGVhZGVyIG5hbWUsIGV0YworICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICRncmFudFR5cGVzICAgICAgICAgIEFuIGFycmF5IG9mIE9BdXRoMlxHcmFudFR5cGVcR3JhbnRUeXBlSW50ZXJmYWNlIHRvIHVzZSBmb3IgZ3JhbnRpbmcgYWNjZXNzIHRva2VucworICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICRyZXNwb25zZVR5cGVzICAgICAgIFJlc3BvbnNlIHR5cGVzIHRvIHVzZS4gYXJyYXkga2V5cyBzaG91bGQgYmUgImNvZGUiIGFuZCAidG9rZW4iIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2VzcyBUb2tlbiBhbmQgQXV0aG9yaXphdGlvbiBDb2RlIHJlc3BvbnNlIHR5cGVzCisgICAgICogQHBhcmFtIFRva2VuVHlwZUludGVyZmFjZSAgICAgICAgICAgJHRva2VuVHlwZSAgICAgICAgICAgVGhlIHRva2VuIHR5cGUgb2JqZWN0IHRvIHVzZS4gVmFsaWQgdG9rZW4gdHlwZXMgYXJlICJiZWFyZXIiIGFuZCAibWFjIgorICAgICAqIEBwYXJhbSBTY29wZUludGVyZmFjZSAgICAgICAgICAgICAgICRzY29wZVV0aWwgICAgICAgICAgIFRoZSBzY29wZSB1dGlsaXR5IGNsYXNzIHRvIHVzZSB0byB2YWxpZGF0ZSBzY29wZQorICAgICAqIEBwYXJhbSBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlICRjbGllbnRBc3NlcnRpb25UeXBlIFRoZSBtZXRob2QgaW4gd2hpY2ggdG8gdmVyaWZ5IHRoZSBjbGllbnQgaWRlbnRpdHkuICBEZWZhdWx0IGlzIEh0dHBCYXNpYworICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkc3RvcmFnZSA9IGFycmF5KCksIGFycmF5ICRjb25maWcgPSBhcnJheSgpLCBhcnJheSAkZ3JhbnRUeXBlcyA9IGFycmF5KCksIGFycmF5ICRyZXNwb25zZVR5cGVzID0gYXJyYXkoKSwgVG9rZW5UeXBlSW50ZXJmYWNlICR0b2tlblR5cGUgPSBudWxsLCBTY29wZUludGVyZmFjZSAkc2NvcGVVdGlsID0gbnVsbCwgQ2xpZW50QXNzZXJ0aW9uVHlwZUludGVyZmFjZSAkY2xpZW50QXNzZXJ0aW9uVHlwZSA9IG51bGwpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IGlzX2FycmF5KCRzdG9yYWdlKSA/ICRzdG9yYWdlIDogYXJyYXkoJHN0b3JhZ2UpOworICAgICAgICAkdGhpcy0+c3RvcmFnZXMgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoICgkc3RvcmFnZSBhcyAka2V5ID0+ICRzZXJ2aWNlKSB7CisgICAgICAgICAgICAkdGhpcy0+YWRkU3RvcmFnZSgkc2VydmljZSwgJGtleSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBtZXJnZSBhbGwgY29uZmlnIHZhbHVlcy4gIFRoZXNlIGdldCBwYXNzZWQgdG8gb3VyIGNvbnRyb2xsZXIgb2JqZWN0cworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAndXNlX2p3dF9hY2Nlc3NfdG9rZW5zJyAgICAgICAgPT4gZmFsc2UsCisgICAgICAgICAgICAnand0X2V4dHJhX3BheWxvYWRfY2FsbGFibGUnID0+IG51bGwsCisgICAgICAgICAgICAnc3RvcmVfZW5jcnlwdGVkX3Rva2VuX3N0cmluZycgPT4gdHJ1ZSwKKyAgICAgICAgICAgICd1c2Vfb3BlbmlkX2Nvbm5lY3QnICAgICAgID0+IGZhbHNlLAorICAgICAgICAgICAgJ2lkX2xpZmV0aW1lJyAgICAgICAgICAgICAgPT4gMzYwMCwKKyAgICAgICAgICAgICdhY2Nlc3NfbGlmZXRpbWUnICAgICAgICAgID0+IDM2MDAsCisgICAgICAgICAgICAnd3d3X3JlYWxtJyAgICAgICAgICAgICAgICA9PiAnU2VydmljZScsCisgICAgICAgICAgICAndG9rZW5fcGFyYW1fbmFtZScgICAgICAgICA9PiAnYWNjZXNzX3Rva2VuJywKKyAgICAgICAgICAgICd0b2tlbl9iZWFyZXJfaGVhZGVyX25hbWUnID0+ICdCZWFyZXInLAorICAgICAgICAgICAgJ2VuZm9yY2Vfc3RhdGUnICAgICAgICAgICAgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdyZXF1aXJlX2V4YWN0X3JlZGlyZWN0X3VyaScgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdhbGxvd19pbXBsaWNpdCcgICAgICAgICAgID0+IGZhbHNlLAorICAgICAgICAgICAgJ2FsbG93X2NyZWRlbnRpYWxzX2luX3JlcXVlc3RfYm9keScgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdhbGxvd19wdWJsaWNfY2xpZW50cycgICAgID0+IHRydWUsCisgICAgICAgICAgICAnYWx3YXlzX2lzc3VlX25ld19yZWZyZXNoX3Rva2VuJyA9PiBmYWxzZSwKKyAgICAgICAgICAgICd1bnNldF9yZWZyZXNoX3Rva2VuX2FmdGVyX3VzZScgPT4gdHJ1ZSwKKyAgICAgICAgKSwgJGNvbmZpZyk7CisKKyAgICAgICAgZm9yZWFjaCAoJGdyYW50VHlwZXMgYXMgJGtleSA9PiAkZ3JhbnRUeXBlKSB7CisgICAgICAgICAgICAkdGhpcy0+YWRkR3JhbnRUeXBlKCRncmFudFR5cGUsICRrZXkpOworICAgICAgICB9CisKKyAgICAgICAgZm9yZWFjaCAoJHJlc3BvbnNlVHlwZXMgYXMgJGtleSA9PiAkcmVzcG9uc2VUeXBlKSB7CisgICAgICAgICAgICAkdGhpcy0+YWRkUmVzcG9uc2VUeXBlKCRyZXNwb25zZVR5cGUsICRrZXkpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPnRva2VuVHlwZSA9ICR0b2tlblR5cGU7CisgICAgICAgICR0aGlzLT5zY29wZVV0aWwgPSAkc2NvcGVVdGlsOworICAgICAgICAkdGhpcy0+Y2xpZW50QXNzZXJ0aW9uVHlwZSA9ICRjbGllbnRBc3NlcnRpb25UeXBlOworCisgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnWyd1c2Vfb3BlbmlkX2Nvbm5lY3QnXSkgeworICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlT3BlbklkQ29ubmVjdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBBdXRob3JpemVDb250cm9sbGVySW50ZXJmYWNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKQorICAgIHsKKyAgICAgICAgaWYgKGlzX251bGwoJHRoaXMtPmF1dGhvcml6ZUNvbnRyb2xsZXIpKSB7CisgICAgICAgICAgICAkdGhpcy0+YXV0aG9yaXplQ29udHJvbGxlciA9ICR0aGlzLT5jcmVhdGVEZWZhdWx0QXV0aG9yaXplQ29udHJvbGxlcigpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5hdXRob3JpemVDb250cm9sbGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gVG9rZW5Db250cm9sbGVyCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFRva2VuQ29udHJvbGxlcigpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkdGhpcy0+dG9rZW5Db250cm9sbGVyKSkgeworICAgICAgICAgICAgJHRoaXMtPnRva2VuQ29udHJvbGxlciA9ICR0aGlzLT5jcmVhdGVEZWZhdWx0VG9rZW5Db250cm9sbGVyKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPnRva2VuQ29udHJvbGxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJlc291cmNlQ29udHJvbGxlckludGVyZmFjZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNvdXJjZUNvbnRyb2xsZXIoKQorICAgIHsKKyAgICAgICAgaWYgKGlzX251bGwoJHRoaXMtPnJlc291cmNlQ29udHJvbGxlcikpIHsKKyAgICAgICAgICAgICR0aGlzLT5yZXNvdXJjZUNvbnRyb2xsZXIgPSAkdGhpcy0+Y3JlYXRlRGVmYXVsdFJlc291cmNlQ29udHJvbGxlcigpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNvdXJjZUNvbnRyb2xsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBVc2VySW5mb0NvbnRyb2xsZXJJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckluZm9Db250cm9sbGVyKCkKKyAgICB7CisgICAgICAgIGlmIChpc19udWxsKCR0aGlzLT51c2VySW5mb0NvbnRyb2xsZXIpKSB7CisgICAgICAgICAgICAkdGhpcy0+dXNlckluZm9Db250cm9sbGVyID0gJHRoaXMtPmNyZWF0ZURlZmF1bHRVc2VySW5mb0NvbnRyb2xsZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+dXNlckluZm9Db250cm9sbGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBBdXRob3JpemVDb250cm9sbGVySW50ZXJmYWNlICRhdXRob3JpemVDb250cm9sbGVyCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEF1dGhvcml6ZUNvbnRyb2xsZXIoQXV0aG9yaXplQ29udHJvbGxlckludGVyZmFjZSAkYXV0aG9yaXplQ29udHJvbGxlcikKKyAgICB7CisgICAgICAgICR0aGlzLT5hdXRob3JpemVDb250cm9sbGVyID0gJGF1dGhvcml6ZUNvbnRyb2xsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIFRva2VuQ29udHJvbGxlckludGVyZmFjZSAkdG9rZW5Db250cm9sbGVyCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFRva2VuQ29udHJvbGxlcihUb2tlbkNvbnRyb2xsZXJJbnRlcmZhY2UgJHRva2VuQ29udHJvbGxlcikKKyAgICB7CisgICAgICAgICR0aGlzLT50b2tlbkNvbnRyb2xsZXIgPSAkdG9rZW5Db250cm9sbGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXNvdXJjZUNvbnRyb2xsZXJJbnRlcmZhY2UgJHJlc291cmNlQ29udHJvbGxlcgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZXNvdXJjZUNvbnRyb2xsZXIoUmVzb3VyY2VDb250cm9sbGVySW50ZXJmYWNlICRyZXNvdXJjZUNvbnRyb2xsZXIpCisgICAgeworICAgICAgICAkdGhpcy0+cmVzb3VyY2VDb250cm9sbGVyID0gJHJlc291cmNlQ29udHJvbGxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gVXNlckluZm9Db250cm9sbGVySW50ZXJmYWNlICR1c2VySW5mb0NvbnRyb2xsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXNlckluZm9Db250cm9sbGVyKFVzZXJJbmZvQ29udHJvbGxlckludGVyZmFjZSAkdXNlckluZm9Db250cm9sbGVyKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnVzZXJJbmZvQ29udHJvbGxlciA9ICR1c2VySW5mb0NvbnRyb2xsZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGNsYWltcyBhYm91dCB0aGUgYXV0aGVudGljYXRlZCBlbmQtdXNlci4KKyAgICAgKiBUaGlzIHdvdWxkIGJlIGNhbGxlZCBmcm9tIHRoZSAiL1VzZXJJbmZvIiBlbmRwb2ludCBhcyBkZWZpbmVkIGluIHRoZSBzcGVjLgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0ICAtIFJlcXVlc3Qgb2JqZWN0IHRvIGdyYW50IGFjY2VzcyB0b2tlbgorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UgLSBSZXNwb25zZSBvYmplY3QgY29udGFpbmluZyBlcnJvciBtZXNzYWdlcyAoZmFpbHVyZSkgb3IgdXNlciBjbGFpbXMgKHN1Y2Nlc3MpCisgICAgICogQHJldHVybiBSZXNwb25zZUludGVyZmFjZQorICAgICAqCisgICAgICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogQHRocm93cyBcTG9naWNFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL29wZW5pZC5uZXQvc3BlY3Mvb3BlbmlkLWNvbm5lY3QtY29yZS0xXzAuaHRtbCNVc2VySW5mbworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVVc2VySW5mb1JlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT5yZXNwb25zZSA9IGlzX251bGwoJHJlc3BvbnNlKSA/IG5ldyBSZXNwb25zZSgpIDogJHJlc3BvbnNlOworICAgICAgICAkdGhpcy0+Z2V0VXNlckluZm9Db250cm9sbGVyKCktPmhhbmRsZVVzZXJJbmZvUmVxdWVzdCgkcmVxdWVzdCwgJHRoaXMtPnJlc3BvbnNlKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdyYW50IG9yIGRlbnkgYSByZXF1ZXN0ZWQgYWNjZXNzIHRva2VuLgorICAgICAqIFRoaXMgd291bGQgYmUgY2FsbGVkIGZyb20gdGhlICIvdG9rZW4iIGVuZHBvaW50IGFzIGRlZmluZWQgaW4gdGhlIHNwZWMuCisgICAgICogT2J2aW91c2x5LCB5b3UgY2FuIGNhbGwgeW91ciBlbmRwb2ludCB3aGF0ZXZlciB5b3Ugd2FudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0ICAgLSBSZXF1ZXN0IG9iamVjdCB0byBncmFudCBhY2Nlc3MgdG9rZW4KKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlIC0gUmVzcG9uc2Ugb2JqZWN0IGNvbnRhaW5pbmcgZXJyb3IgbWVzc2FnZXMgKGZhaWx1cmUpIG9yIGFjY2VzcyB0b2tlbiAoc3VjY2VzcykKKyAgICAgKiBAcmV0dXJuIFJlc3BvbnNlSW50ZXJmYWNlCisgICAgICoKKyAgICAgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIFxMb2dpY0V4Y2VwdGlvbgorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNAorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTEwLjYKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00LjEuMworICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVUb2tlblJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT5yZXNwb25zZSA9IGlzX251bGwoJHJlc3BvbnNlKSA/IG5ldyBSZXNwb25zZSgpIDogJHJlc3BvbnNlOworICAgICAgICAkdGhpcy0+Z2V0VG9rZW5Db250cm9sbGVyKCktPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHRoaXMtPnJlc3BvbnNlKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICAkcmVxdWVzdCAgLSBSZXF1ZXN0IG9iamVjdCB0byBncmFudCBhY2Nlc3MgdG9rZW4KKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlIC0gUmVzcG9uc2Ugb2JqZWN0CisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBncmFudEFjY2Vzc1Rva2VuKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+cmVzcG9uc2UgPSBpc19udWxsKCRyZXNwb25zZSkgPyBuZXcgUmVzcG9uc2UoKSA6ICRyZXNwb25zZTsKKyAgICAgICAgJHZhbHVlID0gJHRoaXMtPmdldFRva2VuQ29udHJvbGxlcigpLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkdGhpcy0+cmVzcG9uc2UpOworCisgICAgICAgIHJldHVybiAkdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIGEgcmV2b2tlIHRva2VuIHJlcXVlc3QKKyAgICAgKiBUaGlzIHdvdWxkIGJlIGNhbGxlZCBmcm9tIHRoZSAiL3Jldm9rZSIgZW5kcG9pbnQgYXMgZGVmaW5lZCBpbiB0aGUgZHJhZnQgVG9rZW4gUmV2b2NhdGlvbiBzcGVjCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MDA5I3NlY3Rpb24tMgorICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlCisgICAgICogQHJldHVybiBSZXNwb25zZXxSZXNwb25zZUludGVyZmFjZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBoYW5kbGVSZXZva2VSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+cmVzcG9uc2UgPSBpc19udWxsKCRyZXNwb25zZSkgPyBuZXcgUmVzcG9uc2UoKSA6ICRyZXNwb25zZTsKKyAgICAgICAgJHRoaXMtPmdldFRva2VuQ29udHJvbGxlcigpLT5oYW5kbGVSZXZva2VSZXF1ZXN0KCRyZXF1ZXN0LCAkdGhpcy0+cmVzcG9uc2UpOworCisgICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVkaXJlY3QgdGhlIHVzZXIgYXBwcm9wcmlhdGVseSBhZnRlciBhcHByb3ZhbC4KKyAgICAgKgorICAgICAqIEFmdGVyIHRoZSB1c2VyIGhhcyBhcHByb3ZlZCBvciBkZW5pZWQgdGhlIHJlc291cmNlIHJlcXVlc3QgdGhlCisgICAgICogYXV0aG9yaXphdGlvbiBzZXJ2ZXIgc2hvdWxkIGNhbGwgdGhpcyBmdW5jdGlvbiB0byByZWRpcmVjdCB0aGUgdXNlcgorICAgICAqIGFwcHJvcHJpYXRlbHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gUmVxdWVzdEludGVyZmFjZSAgJHJlcXVlc3QgLSBUaGUgcmVxdWVzdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93IHBhcmFtZXRlcnMgc2V0IGluIHRoZSBxdWVyeXN0cmluZzoKKyAgICAgKiAtIHJlc3BvbnNlX3R5cGU6IFRoZSByZXF1ZXN0ZWQgcmVzcG9uc2U6IGFuIGFjY2VzcyB0b2tlbiwgYW4gYXV0aG9yaXphdGlvbiBjb2RlLCBvciBib3RoLgorICAgICAqIC0gY2xpZW50X2lkOiBUaGUgY2xpZW50IGlkZW50aWZpZXIgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gMi4KKyAgICAgKiAtIHJlZGlyZWN0X3VyaTogQW4gYWJzb2x1dGUgVVJJIHRvIHdoaWNoIHRoZSBhdXRob3JpemF0aW9uIHNlcnZlciB3aWxsIHJlZGlyZWN0IHRoZSB1c2VyLWFnZW50IHRvIHdoZW4gdGhlCisgICAgICogICBlbmQtdXNlciBhdXRob3JpemF0aW9uIHN0ZXAgaXMgY29tcGxldGVkLgorICAgICAqIC0gc2NvcGU6IChvcHRpb25hbCkgVGhlIHNjb3BlIG9mIHRoZSByZXNvdXJjZSByZXF1ZXN0IGV4cHJlc3NlZCBhcyBhIGxpc3Qgb2Ygc3BhY2UtZGVsaW1pdGVkIHN0cmluZ3MuCisgICAgICogLSBzdGF0ZTogKG9wdGlvbmFsKSBBbiBvcGFxdWUgdmFsdWUgdXNlZCBieSB0aGUgY2xpZW50IHRvIG1haW50YWluIHN0YXRlIGJldHdlZW4gdGhlIHJlcXVlc3QgYW5kIGNhbGxiYWNrLgorICAgICAqCisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAgICAgIC0gUmVzcG9uc2Ugb2JqZWN0CisgICAgICogQHBhcmFtIGJvb2wgICAgICAgICAgICAgICRpc19hdXRob3JpemVkIC0gVFJVRSBvciBGQUxTRSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgdXNlciBhdXRob3JpemVkIHRoZSBhY2Nlc3MuCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICR1c2VyX2lkICAgICAgIC0gSWRlbnRpZmllciBvZiB1c2VyIHdobyBhdXRob3JpemVkIHRoZSBjbGllbnQKKyAgICAgKiBAcmV0dXJuIFJlc3BvbnNlSW50ZXJmYWNlCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi00CisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl80CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlLCAkaXNfYXV0aG9yaXplZCwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlc3BvbnNlID0gJHJlc3BvbnNlOworICAgICAgICAkdGhpcy0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkdGhpcy0+cmVzcG9uc2UsICRpc19hdXRob3JpemVkLCAkdXNlcl9pZCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNwb25zZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQdWxsIHRoZSBhdXRob3JpemF0aW9uIHJlcXVlc3QgZGF0YSBvdXQgb2YgdGhlIEhUVFAgcmVxdWVzdC4KKyAgICAgKiAtIFRoZSByZWRpcmVjdF91cmkgaXMgT1BUSU9OQUwgYXMgcGVyIGRyYWZ0IDIwLiBCdXQgeW91ciBpbXBsZW1lbnRhdGlvbiBjYW4gZW5mb3JjZSBpdAorICAgICAqICAgYnkgc2V0dGluZyAkY29uZmlnWydlbmZvcmNlX3JlZGlyZWN0J10gdG8gdHJ1ZS4KKyAgICAgKiAtIFRoZSBzdGF0ZSBpcyBPUFRJT05BTCBidXQgcmVjb21tZW5kZWQgdG8gZW5mb3JjZSBDU1JGLiBEcmFmdCAyMSBzdGF0ZXMsIGhvd2V2ZXIsIHRoYXQKKyAgICAgKiAgIENTUkYgcHJvdGVjdGlvbiBpcyBNQU5EQVRPUlkuIFlvdSBjYW4gZW5mb3JjZSB0aGlzIGJ5IHNldHRpbmcgdGhlICRjb25maWdbJ2VuZm9yY2Vfc3RhdGUnXSB0byB0cnVlLgorICAgICAqCisgICAgICogVGhlIGRyYWZ0IHNwZWNpZmllcyB0aGF0IHRoZSBwYXJhbWV0ZXJzIHNob3VsZCBiZSByZXRyaWV2ZWQgZnJvbSBHRVQsIG92ZXJyaWRlIHRoZSBSZXNwb25zZQorICAgICAqIG9iamVjdCB0byBjaGFuZ2UgdGhpcworICAgICAqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0ICAtIFJlcXVlc3Qgb2JqZWN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdAorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqCisgICAgICogVGhlIGF1dGhvcml6YXRpb24gcGFyYW1ldGVycyBzbyB0aGUgYXV0aG9yaXphdGlvbiBzZXJ2ZXIgY2FuIHByb21wdAorICAgICAqIHRoZSB1c2VyIGZvciBhcHByb3ZhbCBpZiB2YWxpZC4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMS4xCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMTAuMTIKKyAgICAgKgorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWRhdGVBdXRob3JpemVSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+cmVzcG9uc2UgPSBpc19udWxsKCRyZXNwb25zZSkgPyBuZXcgUmVzcG9uc2UoKSA6ICRyZXNwb25zZTsKKyAgICAgICAgJHZhbHVlID0gJHRoaXMtPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKS0+dmFsaWRhdGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkdGhpcy0+cmVzcG9uc2UpOworCisgICAgICAgIHJldHVybiAkdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIFJlcXVlc3RJbnRlcmZhY2UgICRyZXF1ZXN0ICAtIFJlcXVlc3Qgb2JqZWN0CisgICAgICogQHBhcmFtIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdAorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAkc2NvcGUgICAgLSBTY29wZQorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmVyaWZ5UmVzb3VyY2VSZXF1ZXN0KFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSA9IG51bGwsICRzY29wZSA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+cmVzcG9uc2UgPSBpc19udWxsKCRyZXNwb25zZSkgPyBuZXcgUmVzcG9uc2UoKSA6ICRyZXNwb25zZTsKKyAgICAgICAgJHZhbHVlID0gJHRoaXMtPmdldFJlc291cmNlQ29udHJvbGxlcigpLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICR0aGlzLT5yZXNwb25zZSwgJHNjb3BlKTsKKworICAgICAgICByZXR1cm4gJHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXF1ZXN0SW50ZXJmYWNlICAkcmVxdWVzdCAgLSBSZXF1ZXN0IG9iamVjdAorICAgICAqIEBwYXJhbSBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UgLSBSZXNwb25zZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuRGF0YShSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlc3BvbnNlID0gaXNfbnVsbCgkcmVzcG9uc2UpID8gbmV3IFJlc3BvbnNlKCkgOiAkcmVzcG9uc2U7CisgICAgICAgICR2YWx1ZSA9ICR0aGlzLT5nZXRSZXNvdXJjZUNvbnRyb2xsZXIoKS0+Z2V0QWNjZXNzVG9rZW5EYXRhKCRyZXF1ZXN0LCAkdGhpcy0+cmVzcG9uc2UpOworCisgICAgICAgIHJldHVybiAkdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIEdyYW50VHlwZUludGVyZmFjZSAkZ3JhbnRUeXBlCisgICAgICogQHBhcmFtIG1peGVkICAgICAgICAgICAgICAkaWRlbnRpZmllcgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRHcmFudFR5cGUoR3JhbnRUeXBlSW50ZXJmYWNlICRncmFudFR5cGUsICRpZGVudGlmaWVyID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmICghaXNfc3RyaW5nKCRpZGVudGlmaWVyKSkgeworICAgICAgICAgICAgJGlkZW50aWZpZXIgPSAkZ3JhbnRUeXBlLT5nZXRRdWVyeVN0cmluZ0lkZW50aWZpZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5ncmFudFR5cGVzWyRpZGVudGlmaWVyXSA9ICRncmFudFR5cGU7CisKKyAgICAgICAgLy8gcGVyc2lzdCBhZGRlZCBncmFudCB0eXBlIGRvd24gdG8gVG9rZW5Db250cm9sbGVyCisgICAgICAgIGlmICghaXNfbnVsbCgkdGhpcy0+dG9rZW5Db250cm9sbGVyKSkgeworICAgICAgICAgICAgJHRoaXMtPmdldFRva2VuQ29udHJvbGxlcigpLT5hZGRHcmFudFR5cGUoJGdyYW50VHlwZSwgJGlkZW50aWZpZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgc3RvcmFnZSBvYmplY3QgZm9yIHRoZSBzZXJ2ZXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmplY3QgJHN0b3JhZ2UgLSBBbiBvYmplY3QgaW1wbGVtZW50aW5nIG9uZSBvZiB0aGUgU3RvcmFnZSBpbnRlcmZhY2VzCisgICAgICogQHBhcmFtIG1peGVkICRrZXkgLSBJZiBudWxsLCB0aGUgc3RvcmFnZSBpcyBzZXQgdG8gdGhlIGtleSBvZiBlYWNoIHN0b3JhZ2UgaW50ZXJmYWNlIGl0IGltcGxlbWVudHMKKyAgICAgKgorICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICogQHNlZSBzdG9yYWdlTWFwCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZFN0b3JhZ2UoJHN0b3JhZ2UsICRrZXkgPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gaWYgZXhwbGljaXRseSBzZXQgdG8gYSB2YWxpZCBrZXksIGRvIG5vdCAibWFnaWNhbGx5IiBzZXQgYmVsb3cKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5zdG9yYWdlTWFwWyRrZXldKSkgeworICAgICAgICAgICAgaWYgKCFpc19udWxsKCRzdG9yYWdlKSAmJiAhJHN0b3JhZ2UgaW5zdGFuY2VvZiAkdGhpcy0+c3RvcmFnZU1hcFska2V5XSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKHNwcmludGYoJ3N0b3JhZ2Ugb2YgdHlwZSAiJXMiIG11c3QgaW1wbGVtZW50IGludGVyZmFjZSAiJXMiJywgJGtleSwgJHRoaXMtPnN0b3JhZ2VNYXBbJGtleV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICR0aGlzLT5zdG9yYWdlc1ska2V5XSA9ICRzdG9yYWdlOworCisgICAgICAgICAgICAvLyBzcGVjaWFsIGxvZ2ljIHRvIGhhbmRsZSAiY2xpZW50IiBhbmQgImNsaWVudF9jcmVkZW50aWFscyIgc3RyYW5nZW5lc3MKKyAgICAgICAgICAgIGlmICgka2V5ID09PSAnY2xpZW50JyAmJiAhaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydjbGllbnRfY3JlZGVudGlhbHMnXSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHN0b3JhZ2UgaW5zdGFuY2VvZiBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSkgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudF9jcmVkZW50aWFscyddID0gJHN0b3JhZ2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlaWYgKCRrZXkgPT09ICdjbGllbnRfY3JlZGVudGlhbHMnICYmICFpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudCddKSkgeworICAgICAgICAgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIENsaWVudEludGVyZmFjZSkgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudCddID0gJHN0b3JhZ2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2VpZiAoIWlzX251bGwoJGtleSkgJiYgIWlzX251bWVyaWMoJGtleSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKHNwcmludGYoJ3Vua25vd24gc3RvcmFnZSBrZXkgIiVzIiwgbXVzdCBiZSBvbmUgb2YgWyVzXScsICRrZXksIGltcGxvZGUoJywgJywgYXJyYXlfa2V5cygkdGhpcy0+c3RvcmFnZU1hcCkpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkc2V0ID0gZmFsc2U7CisgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+c3RvcmFnZU1hcCBhcyAkdHlwZSA9PiAkaW50ZXJmYWNlKSB7CisgICAgICAgICAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgJGludGVyZmFjZSkgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmFnZXNbJHR5cGVdID0gJHN0b3JhZ2U7CisgICAgICAgICAgICAgICAgICAgICRzZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCEkc2V0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oc3ByaW50Zignc3RvcmFnZSBvZiBjbGFzcyAiJXMiIG11c3QgaW1wbGVtZW50IG9uZSBvZiBbJXNdJywgZ2V0X2NsYXNzKCRzdG9yYWdlKSwgaW1wbG9kZSgnLCAnLCAkdGhpcy0+c3RvcmFnZU1hcCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBSZXNwb25zZVR5cGVJbnRlcmZhY2UgJHJlc3BvbnNlVHlwZQorICAgICAqIEBwYXJhbSBtaXhlZCAgICAgICAgICAgICAgICAgJGtleQorICAgICAqCisgICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUmVzcG9uc2VUeXBlKFJlc3BvbnNlVHlwZUludGVyZmFjZSAkcmVzcG9uc2VUeXBlLCAka2V5ID0gbnVsbCkKKyAgICB7CisgICAgICAgICRrZXkgPSAkdGhpcy0+bm9ybWFsaXplUmVzcG9uc2VUeXBlKCRrZXkpOworCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cmVzcG9uc2VUeXBlTWFwWyRrZXldKSkgeworICAgICAgICAgICAgaWYgKCEkcmVzcG9uc2VUeXBlIGluc3RhbmNlb2YgJHRoaXMtPnJlc3BvbnNlVHlwZU1hcFska2V5XSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKHNwcmludGYoJ3Jlc3BvbnNlVHlwZSBvZiB0eXBlICIlcyIgbXVzdCBpbXBsZW1lbnQgaW50ZXJmYWNlICIlcyInLCAka2V5LCAkdGhpcy0+cmVzcG9uc2VUeXBlTWFwWyRrZXldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkdGhpcy0+cmVzcG9uc2VUeXBlc1ska2V5XSA9ICRyZXNwb25zZVR5cGU7CisgICAgICAgIH0gZWxzZWlmICghaXNfbnVsbCgka2V5KSAmJiAhaXNfbnVtZXJpYygka2V5KSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oc3ByaW50ZigndW5rbm93biByZXNwb25zZVR5cGUga2V5ICIlcyIsIG11c3QgYmUgb25lIG9mIFslc10nLCAka2V5LCBpbXBsb2RlKCcsICcsIGFycmF5X2tleXMoJHRoaXMtPnJlc3BvbnNlVHlwZU1hcCkpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkc2V0ID0gZmFsc2U7CisgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cmVzcG9uc2VUeXBlTWFwIGFzICR0eXBlID0+ICRpbnRlcmZhY2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHJlc3BvbnNlVHlwZSBpbnN0YW5jZW9mICRpbnRlcmZhY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlc3BvbnNlVHlwZXNbJHR5cGVdID0gJHJlc3BvbnNlVHlwZTsKKyAgICAgICAgICAgICAgICAgICAgJHNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoISRzZXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihzcHJpbnRmKCdVbmtub3duIHJlc3BvbnNlIHR5cGUgJXMuICBQbGVhc2UgaW1wbGVtZW50IG9uZSBvZiBbJXNdJywgZ2V0X2NsYXNzKCRyZXNwb25zZVR5cGUpLCBpbXBsb2RlKCcsICcsICR0aGlzLT5yZXNwb25zZVR5cGVNYXApKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFNjb3BlSW50ZXJmYWNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNjb3BlVXRpbCgpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5zY29wZVV0aWwpIHsKKyAgICAgICAgICAgICRzdG9yYWdlID0gaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydzY29wZSddKSA/ICR0aGlzLT5zdG9yYWdlc1snc2NvcGUnXSA6IG51bGw7CisgICAgICAgICAgICAkdGhpcy0+c2NvcGVVdGlsID0gbmV3IFNjb3BlKCRzdG9yYWdlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+c2NvcGVVdGlsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBTY29wZUludGVyZmFjZSAkc2NvcGVVdGlsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFNjb3BlVXRpbCgkc2NvcGVVdGlsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnNjb3BlVXRpbCA9ICRzY29wZVV0aWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBBdXRob3JpemVDb250cm9sbGVySW50ZXJmYWNlCisgICAgICogQHRocm93cyBMb2dpY0V4Y2VwdGlvbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0QXV0aG9yaXplQ29udHJvbGxlcigpCisgICAgeworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5zdG9yYWdlc1snY2xpZW50J10pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdZb3UgbXVzdCBzdXBwbHkgYSBzdG9yYWdlIG9iamVjdCBpbXBsZW1lbnRpbmcgXE9BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZSB0byB1c2UgdGhlIGF1dGhvcml6ZSBzZXJ2ZXInKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoMCA9PSBjb3VudCgkdGhpcy0+cmVzcG9uc2VUeXBlcykpIHsKKyAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZVR5cGVzID0gJHRoaXMtPmdldERlZmF1bHRSZXNwb25zZVR5cGVzKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR0aGlzLT5jb25maWdbJ3VzZV9vcGVuaWRfY29ubmVjdCddICYmICFpc3NldCgkdGhpcy0+cmVzcG9uc2VUeXBlc1snaWRfdG9rZW4nXSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZVR5cGVzWydpZF90b2tlbiddID0gJHRoaXMtPmNyZWF0ZURlZmF1bHRJZFRva2VuUmVzcG9uc2VUeXBlKCk7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1snYWxsb3dfaW1wbGljaXQnXSkgeworICAgICAgICAgICAgICAgICR0aGlzLT5yZXNwb25zZVR5cGVzWydpZF90b2tlbiB0b2tlbiddID0gJHRoaXMtPmNyZWF0ZURlZmF1bHRJZFRva2VuVG9rZW5SZXNwb25zZVR5cGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRjb25maWcgPSBhcnJheV9pbnRlcnNlY3Rfa2V5KCR0aGlzLT5jb25maWcsIGFycmF5X2ZsaXAoZXhwbG9kZSgnICcsICdhbGxvd19pbXBsaWNpdCBlbmZvcmNlX3N0YXRlIHJlcXVpcmVfZXhhY3RfcmVkaXJlY3RfdXJpJykpKTsKKworICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1sndXNlX29wZW5pZF9jb25uZWN0J10pIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT3BlbklEQXV0aG9yaXplQ29udHJvbGxlcigkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudCddLCAkdGhpcy0+cmVzcG9uc2VUeXBlcywgJGNvbmZpZywgJHRoaXMtPmdldFNjb3BlVXRpbCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgQXV0aG9yaXplQ29udHJvbGxlcigkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudCddLCAkdGhpcy0+cmVzcG9uc2VUeXBlcywgJGNvbmZpZywgJHRoaXMtPmdldFNjb3BlVXRpbCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRva2VuQ29udHJvbGxlckludGVyZmFjZQorICAgICAqIEB0aHJvd3MgTG9naWNFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFRva2VuQ29udHJvbGxlcigpCisgICAgeworICAgICAgICBpZiAoMCA9PSBjb3VudCgkdGhpcy0+Z3JhbnRUeXBlcykpIHsKKyAgICAgICAgICAgICR0aGlzLT5ncmFudFR5cGVzID0gJHRoaXMtPmdldERlZmF1bHRHcmFudFR5cGVzKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNfbnVsbCgkdGhpcy0+Y2xpZW50QXNzZXJ0aW9uVHlwZSkpIHsKKyAgICAgICAgICAgIC8vIHNlZSBpZiBIdHRwQmFzaWMgYXNzZXJ0aW9uIHR5cGUgaXMgcmVxdXJlZC4gIElmIHNvLCB0aGVuIGNyZWF0ZSBpdCBmcm9tIHN0b3JhZ2UgY2xhc3Nlcy4KKyAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5ncmFudFR5cGVzIGFzICRncmFudFR5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoISRncmFudFR5cGUgaW5zdGFuY2VvZiBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydjbGllbnRfY3JlZGVudGlhbHMnXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1lvdSBtdXN0IHN1cHBseSBhIHN0b3JhZ2Ugb2JqZWN0IGltcGxlbWVudGluZyBPQXV0aDJcU3RvcmFnZVxDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSB0byB1c2UgdGhlIHRva2VuIHNlcnZlcicpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICRjb25maWcgPSBhcnJheV9pbnRlcnNlY3Rfa2V5KCR0aGlzLT5jb25maWcsIGFycmF5X2ZsaXAoZXhwbG9kZSgnICcsICdhbGxvd19jcmVkZW50aWFsc19pbl9yZXF1ZXN0X2JvZHkgYWxsb3dfcHVibGljX2NsaWVudHMnKSkpOworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y2xpZW50QXNzZXJ0aW9uVHlwZSA9IG5ldyBIdHRwQmFzaWMoJHRoaXMtPnN0b3JhZ2VzWydjbGllbnRfY3JlZGVudGlhbHMnXSwgJGNvbmZpZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydjbGllbnQnXSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBMb2dpY0V4Y2VwdGlvbigiWW91IG11c3Qgc3VwcGx5IGEgc3RvcmFnZSBvYmplY3QgaW1wbGVtZW50aW5nIE9BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZSB0byB1c2UgdGhlIHRva2VuIHNlcnZlciIpOworICAgICAgICB9CisKKyAgICAgICAgJGFjY2Vzc1Rva2VuUmVzcG9uc2VUeXBlID0gJHRoaXMtPmdldEFjY2Vzc1Rva2VuUmVzcG9uc2VUeXBlKCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBUb2tlbkNvbnRyb2xsZXIoJGFjY2Vzc1Rva2VuUmVzcG9uc2VUeXBlLCAkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudCddLCAkdGhpcy0+Z3JhbnRUeXBlcywgJHRoaXMtPmNsaWVudEFzc2VydGlvblR5cGUsICR0aGlzLT5nZXRTY29wZVV0aWwoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBSZXNvdXJjZUNvbnRyb2xsZXJJbnRlcmZhY2UKKyAgICAgKiBAdGhyb3dzIExvZ2ljRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRSZXNvdXJjZUNvbnRyb2xsZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT5jb25maWdbJ3VzZV9qd3RfYWNjZXNzX3Rva2VucyddKSB7CisgICAgICAgICAgICAvLyBvdmVyd3JpdGVzIGFjY2VzcyB0b2tlbiBzdG9yYWdlIHdpdGggY3J5cHRvIHRva2VuIHN0b3JhZ2UgaWYgInVzZV9qd3RfYWNjZXNzX3Rva2VucyIgaXMgc2V0CisgICAgICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ10pIHx8ICEkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddIGluc3RhbmNlb2YgSnd0QWNjZXNzVG9rZW5JbnRlcmZhY2UpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddID0gJHRoaXMtPmNyZWF0ZURlZmF1bHRKd3RBY2Nlc3NUb2tlblN0b3JhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlaWYgKCFpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignWW91IG11c3Qgc3VwcGx5IGEgc3RvcmFnZSBvYmplY3QgaW1wbGVtZW50aW5nIE9BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlIG9yIHVzZSBKd3RBY2Nlc3NUb2tlbnMgdG8gdXNlIHRoZSByZXNvdXJjZSBzZXJ2ZXInKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJHRoaXMtPnRva2VuVHlwZSkgeworICAgICAgICAgICAgJHRoaXMtPnRva2VuVHlwZSA9ICR0aGlzLT5nZXREZWZhdWx0VG9rZW5UeXBlKCk7CisgICAgICAgIH0KKworICAgICAgICAkY29uZmlnID0gYXJyYXlfaW50ZXJzZWN0X2tleSgkdGhpcy0+Y29uZmlnLCBhcnJheSgnd3d3X3JlYWxtJyA9PiAnJykpOworCisgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VDb250cm9sbGVyKCR0aGlzLT50b2tlblR5cGUsICR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ10sICRjb25maWcsICR0aGlzLT5nZXRTY29wZVV0aWwoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBVc2VySW5mb0NvbnRyb2xsZXJJbnRlcmZhY2UKKyAgICAgKiBAdGhyb3dzIExvZ2ljRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRVc2VySW5mb0NvbnRyb2xsZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT5jb25maWdbJ3VzZV9qd3RfYWNjZXNzX3Rva2VucyddKSB7CisgICAgICAgICAgICAvLyBvdmVyd3JpdGVzIGFjY2VzcyB0b2tlbiBzdG9yYWdlIHdpdGggY3J5cHRvIHRva2VuIHN0b3JhZ2UgaWYgInVzZV9qd3RfYWNjZXNzX3Rva2VucyIgaXMgc2V0CisgICAgICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ10pIHx8ICEkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddIGluc3RhbmNlb2YgSnd0QWNjZXNzVG9rZW5JbnRlcmZhY2UpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddID0gJHRoaXMtPmNyZWF0ZURlZmF1bHRKd3RBY2Nlc3NUb2tlblN0b3JhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlaWYgKCFpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignWW91IG11c3Qgc3VwcGx5IGEgc3RvcmFnZSBvYmplY3QgaW1wbGVtZW50aW5nIE9BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlIG9yIHVzZSBKd3RBY2Nlc3NUb2tlbnMgdG8gdXNlIHRoZSBVc2VySW5mbyBzZXJ2ZXInKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWyd1c2VyX2NsYWltcyddKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignWW91IG11c3Qgc3VwcGx5IGEgc3RvcmFnZSBvYmplY3QgaW1wbGVtZW50aW5nIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlIHRvIHVzZSB0aGUgVXNlckluZm8gc2VydmVyJyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISR0aGlzLT50b2tlblR5cGUpIHsKKyAgICAgICAgICAgICR0aGlzLT50b2tlblR5cGUgPSAkdGhpcy0+Z2V0RGVmYXVsdFRva2VuVHlwZSgpOworICAgICAgICB9CisKKyAgICAgICAgJGNvbmZpZyA9IGFycmF5X2ludGVyc2VjdF9rZXkoJHRoaXMtPmNvbmZpZywgYXJyYXkoJ3d3d19yZWFsbScgPT4gJycpKTsKKworICAgICAgICByZXR1cm4gbmV3IFVzZXJJbmZvQ29udHJvbGxlcigkdGhpcy0+dG9rZW5UeXBlLCAkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddLCAkdGhpcy0+c3RvcmFnZXNbJ3VzZXJfY2xhaW1zJ10sICRjb25maWcsICR0aGlzLT5nZXRTY29wZVV0aWwoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBCZWFyZXIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0RGVmYXVsdFRva2VuVHlwZSgpCisgICAgeworICAgICAgICAkY29uZmlnID0gYXJyYXlfaW50ZXJzZWN0X2tleSgkdGhpcy0+Y29uZmlnLCBhcnJheV9mbGlwKGV4cGxvZGUoJyAnLCAndG9rZW5fcGFyYW1fbmFtZSB0b2tlbl9iZWFyZXJfaGVhZGVyX25hbWUnKSkpOworCisgICAgICAgIHJldHVybiBuZXcgQmVhcmVyKCRjb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKiBAdGhyb3dzIExvZ2ljRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldERlZmF1bHRSZXNwb25zZVR5cGVzKCkKKyAgICB7CisgICAgICAgICRyZXNwb25zZVR5cGVzID0gYXJyYXkoKTsKKworICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1snYWxsb3dfaW1wbGljaXQnXSkgeworICAgICAgICAgICAgJHJlc3BvbnNlVHlwZXNbJ3Rva2VuJ10gPSAkdGhpcy0+Z2V0QWNjZXNzVG9rZW5SZXNwb25zZVR5cGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnWyd1c2Vfb3BlbmlkX2Nvbm5lY3QnXSkgeworICAgICAgICAgICAgJHJlc3BvbnNlVHlwZXNbJ2lkX3Rva2VuJ10gPSAkdGhpcy0+Z2V0SWRUb2tlblJlc3BvbnNlVHlwZSgpOworICAgICAgICAgICAgaWYgKCR0aGlzLT5jb25maWdbJ2FsbG93X2ltcGxpY2l0J10pIHsKKyAgICAgICAgICAgICAgICAkcmVzcG9uc2VUeXBlc1snaWRfdG9rZW4gdG9rZW4nXSA9ICR0aGlzLT5nZXRJZFRva2VuVG9rZW5SZXNwb25zZVR5cGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ2F1dGhvcml6YXRpb25fY29kZSddKSkgeworICAgICAgICAgICAgJGNvbmZpZyA9IGFycmF5X2ludGVyc2VjdF9rZXkoJHRoaXMtPmNvbmZpZywgYXJyYXlfZmxpcChleHBsb2RlKCcgJywgJ2VuZm9yY2VfcmVkaXJlY3QgYXV0aF9jb2RlX2xpZmV0aW1lJykpKTsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Y29uZmlnWyd1c2Vfb3BlbmlkX2Nvbm5lY3QnXSkgeworICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnN0b3JhZ2VzWydhdXRob3JpemF0aW9uX2NvZGUnXSBpbnN0YW5jZW9mIE9wZW5JREF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1lvdXIgYXV0aG9yaXphdGlvbl9jb2RlIHN0b3JhZ2UgbXVzdCBpbXBsZW1lbnQgT0F1dGgyXE9wZW5JRFxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlIHRvIHdvcmsgd2hlbiAidXNlX29wZW5pZF9jb25uZWN0IiBpcyB0cnVlJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRyZXNwb25zZVR5cGVzWydjb2RlJ10gPSBuZXcgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVSZXNwb25zZVR5cGUoJHRoaXMtPnN0b3JhZ2VzWydhdXRob3JpemF0aW9uX2NvZGUnXSwgJGNvbmZpZyk7CisgICAgICAgICAgICAgICAgJHJlc3BvbnNlVHlwZXNbJ2NvZGUgaWRfdG9rZW4nXSA9IG5ldyBDb2RlSWRUb2tlbigkcmVzcG9uc2VUeXBlc1snY29kZSddLCAkcmVzcG9uc2VUeXBlc1snaWRfdG9rZW4nXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRyZXNwb25zZVR5cGVzWydjb2RlJ10gPSBuZXcgQXV0aG9yaXphdGlvbkNvZGVSZXNwb25zZVR5cGUoJHRoaXMtPnN0b3JhZ2VzWydhdXRob3JpemF0aW9uX2NvZGUnXSwgJGNvbmZpZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoY291bnQoJHJlc3BvbnNlVHlwZXMpID09IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1lvdSBtdXN0IHN1cHBseSBhbiBhcnJheSBvZiByZXNwb25zZV90eXBlcyBpbiB0aGUgY29uc3RydWN0b3Igb3IgaW1wbGVtZW50IGEgT0F1dGgyXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2Ugc3RvcmFnZSBvYmplY3Qgb3Igc2V0ICJhbGxvd19pbXBsaWNpdCIgdG8gdHJ1ZSBhbmQgaW1wbGVtZW50IGEgT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2Ugc3RvcmFnZSBvYmplY3QnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmVzcG9uc2VUeXBlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICogQHRocm93cyBMb2dpY0V4Y2VwdGlvbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXREZWZhdWx0R3JhbnRUeXBlcygpCisgICAgeworICAgICAgICAkZ3JhbnRUeXBlcyA9IGFycmF5KCk7CisKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5zdG9yYWdlc1sndXNlcl9jcmVkZW50aWFscyddKSkgeworICAgICAgICAgICAgJGdyYW50VHlwZXNbJ3Bhc3N3b3JkJ10gPSBuZXcgVXNlckNyZWRlbnRpYWxzKCR0aGlzLT5zdG9yYWdlc1sndXNlcl9jcmVkZW50aWFscyddKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudF9jcmVkZW50aWFscyddKSkgeworICAgICAgICAgICAgJGNvbmZpZyA9IGFycmF5X2ludGVyc2VjdF9rZXkoJHRoaXMtPmNvbmZpZywgYXJyYXkoJ2FsbG93X2NyZWRlbnRpYWxzX2luX3JlcXVlc3RfYm9keScgPT4gJycpKTsKKyAgICAgICAgICAgICRncmFudFR5cGVzWydjbGllbnRfY3JlZGVudGlhbHMnXSA9IG5ldyBDbGllbnRDcmVkZW50aWFscygkdGhpcy0+c3RvcmFnZXNbJ2NsaWVudF9jcmVkZW50aWFscyddLCAkY29uZmlnKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ3JlZnJlc2hfdG9rZW4nXSkpIHsKKyAgICAgICAgICAgICRjb25maWcgPSBhcnJheV9pbnRlcnNlY3Rfa2V5KCR0aGlzLT5jb25maWcsIGFycmF5X2ZsaXAoZXhwbG9kZSgnICcsICdhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4gdW5zZXRfcmVmcmVzaF90b2tlbl9hZnRlcl91c2UnKSkpOworICAgICAgICAgICAgJGdyYW50VHlwZXNbJ3JlZnJlc2hfdG9rZW4nXSA9IG5ldyBSZWZyZXNoVG9rZW4oJHRoaXMtPnN0b3JhZ2VzWydyZWZyZXNoX3Rva2VuJ10sICRjb25maWcpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5zdG9yYWdlc1snYXV0aG9yaXphdGlvbl9jb2RlJ10pKSB7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1sndXNlX29wZW5pZF9jb25uZWN0J10pIHsKKyAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5zdG9yYWdlc1snYXV0aG9yaXphdGlvbl9jb2RlJ10gaW5zdGFuY2VvZiBPcGVuSURBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdZb3VyIGF1dGhvcml6YXRpb25fY29kZSBzdG9yYWdlIG11c3QgaW1wbGVtZW50IE9BdXRoMlxPcGVuSURcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSB0byB3b3JrIHdoZW4gInVzZV9vcGVuaWRfY29ubmVjdCIgaXMgdHJ1ZScpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkZ3JhbnRUeXBlc1snYXV0aG9yaXphdGlvbl9jb2RlJ10gPSBuZXcgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVHcmFudFR5cGUoJHRoaXMtPnN0b3JhZ2VzWydhdXRob3JpemF0aW9uX2NvZGUnXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRncmFudFR5cGVzWydhdXRob3JpemF0aW9uX2NvZGUnXSA9IG5ldyBBdXRob3JpemF0aW9uQ29kZSgkdGhpcy0+c3RvcmFnZXNbJ2F1dGhvcml6YXRpb25fY29kZSddKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb3VudCgkZ3JhbnRUeXBlcykgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVW5hYmxlIHRvIGJ1aWxkIGRlZmF1bHQgZ3JhbnQgdHlwZXMgLSBZb3UgbXVzdCBzdXBwbHkgYW4gYXJyYXkgb2YgZ3JhbnRfdHlwZXMgaW4gdGhlIGNvbnN0cnVjdG9yJyk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGdyYW50VHlwZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBBY2Nlc3NUb2tlbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlblJlc3BvbnNlVHlwZSgpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnJlc3BvbnNlVHlwZXNbJ3Rva2VuJ10pKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlVHlwZXNbJ3Rva2VuJ107CisgICAgICAgIH0KKworICAgICAgICBpZiAoJHRoaXMtPmNvbmZpZ1sndXNlX2p3dF9hY2Nlc3NfdG9rZW5zJ10pIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y3JlYXRlRGVmYXVsdEp3dEFjY2Vzc1Rva2VuUmVzcG9uc2VUeXBlKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPmNyZWF0ZURlZmF1bHRBY2Nlc3NUb2tlblJlc3BvbnNlVHlwZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gSWRUb2tlbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRJZFRva2VuUmVzcG9uc2VUeXBlKCkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cmVzcG9uc2VUeXBlc1snaWRfdG9rZW4nXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2VUeXBlc1snaWRfdG9rZW4nXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+Y3JlYXRlRGVmYXVsdElkVG9rZW5SZXNwb25zZVR5cGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIElkVG9rZW5Ub2tlbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRJZFRva2VuVG9rZW5SZXNwb25zZVR5cGUoKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5yZXNwb25zZVR5cGVzWydpZF90b2tlbiB0b2tlbiddKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNwb25zZVR5cGVzWydpZF90b2tlbiB0b2tlbiddOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jcmVhdGVEZWZhdWx0SWRUb2tlblRva2VuUmVzcG9uc2VUeXBlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yIFJlc291cmNlIENvbnRyb2xsZXIKKyAgICAgKgorICAgICAqIEByZXR1cm4gSnd0QWNjZXNzVG9rZW5TdG9yYWdlCisgICAgICogQHRocm93cyBMb2dpY0V4Y2VwdGlvbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0Snd0QWNjZXNzVG9rZW5TdG9yYWdlKCkKKyAgICB7CisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydwdWJsaWNfa2V5J10pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdZb3UgbXVzdCBzdXBwbHkgYSBzdG9yYWdlIG9iamVjdCBpbXBsZW1lbnRpbmcgT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlIHRvIHVzZSBjcnlwdG8gdG9rZW5zJyk7CisgICAgICAgIH0KKyAgICAgICAgJHRva2VuU3RvcmFnZSA9IG51bGw7CisgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPmNvbmZpZ1snc3RvcmVfZW5jcnlwdGVkX3Rva2VuX3N0cmluZyddKSAmJiBpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddKSkgeworICAgICAgICAgICAgJHRva2VuU3RvcmFnZSA9ICR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ107CisgICAgICAgIH0KKyAgICAgICAgLy8gd3JhcCB0aGUgYWNjZXNzIHRva2VuIHN0b3JhZ2UgYXMgcmVxdWlyZWQuCisgICAgICAgIHJldHVybiBuZXcgSnd0QWNjZXNzVG9rZW5TdG9yYWdlKCR0aGlzLT5zdG9yYWdlc1sncHVibGljX2tleSddLCAkdG9rZW5TdG9yYWdlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgQXV0aG9yaXplIGFuZCBUb2tlbiBDb250cm9sbGVycworICAgICAqCisgICAgICogQHJldHVybiBKd3RBY2Nlc3NUb2tlbgorICAgICAqIEB0aHJvd3MgTG9naWNFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEp3dEFjY2Vzc1Rva2VuUmVzcG9uc2VUeXBlKCkKKyAgICB7CisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydwdWJsaWNfa2V5J10pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdZb3UgbXVzdCBzdXBwbHkgYSBzdG9yYWdlIG9iamVjdCBpbXBsZW1lbnRpbmcgT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlIHRvIHVzZSBjcnlwdG8gdG9rZW5zJyk7CisgICAgICAgIH0KKworICAgICAgICAkdG9rZW5TdG9yYWdlID0gbnVsbDsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ10pKSB7CisgICAgICAgICAgICAkdG9rZW5TdG9yYWdlID0gJHRoaXMtPnN0b3JhZ2VzWydhY2Nlc3NfdG9rZW4nXTsKKyAgICAgICAgfQorCisgICAgICAgICRyZWZyZXNoU3RvcmFnZSA9IG51bGw7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+c3RvcmFnZXNbJ3JlZnJlc2hfdG9rZW4nXSkpIHsKKyAgICAgICAgICAgICRyZWZyZXNoU3RvcmFnZSA9ICR0aGlzLT5zdG9yYWdlc1sncmVmcmVzaF90b2tlbiddOworICAgICAgICB9CisKKyAgICAgICAgJGNvbmZpZyA9IGFycmF5X2ludGVyc2VjdF9rZXkoJHRoaXMtPmNvbmZpZywgYXJyYXlfZmxpcChleHBsb2RlKCcgJywgJ3N0b3JlX2VuY3J5cHRlZF90b2tlbl9zdHJpbmcgaXNzdWVyIGFjY2Vzc19saWZldGltZSByZWZyZXNoX3Rva2VuX2xpZmV0aW1lIGp3dF9leHRyYV9wYXlsb2FkX2NhbGxhYmxlJykpKTsKKworICAgICAgICByZXR1cm4gbmV3IEp3dEFjY2Vzc1Rva2VuKCR0aGlzLT5zdG9yYWdlc1sncHVibGljX2tleSddLCAkdG9rZW5TdG9yYWdlLCAkcmVmcmVzaFN0b3JhZ2UsICRjb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gQWNjZXNzVG9rZW4KKyAgICAgKiBAdGhyb3dzIExvZ2ljRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRBY2Nlc3NUb2tlblJlc3BvbnNlVHlwZSgpCisgICAgeworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ10pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTG9naWNFeGNlcHRpb24oIllvdSBtdXN0IHN1cHBseSBhIHJlc3BvbnNlIHR5cGUgaW1wbGVtZW50aW5nIE9BdXRoMlxSZXNwb25zZVR5cGVcQWNjZXNzVG9rZW5JbnRlcmZhY2UsIG9yIGEgc3RvcmFnZSBvYmplY3QgaW1wbGVtZW50aW5nIE9BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlIHRvIHVzZSB0aGUgdG9rZW4gc2VydmVyIik7CisgICAgICAgIH0KKworICAgICAgICAkcmVmcmVzaFN0b3JhZ2UgPSBudWxsOworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydyZWZyZXNoX3Rva2VuJ10pKSB7CisgICAgICAgICAgICAkcmVmcmVzaFN0b3JhZ2UgPSAkdGhpcy0+c3RvcmFnZXNbJ3JlZnJlc2hfdG9rZW4nXTsKKyAgICAgICAgfQorCisgICAgICAgICRjb25maWcgPSBhcnJheV9pbnRlcnNlY3Rfa2V5KCR0aGlzLT5jb25maWcsIGFycmF5X2ZsaXAoZXhwbG9kZSgnICcsICdhY2Nlc3NfbGlmZXRpbWUgcmVmcmVzaF90b2tlbl9saWZldGltZScpKSk7CisgICAgICAgICRjb25maWdbJ3Rva2VuX3R5cGUnXSA9ICR0aGlzLT50b2tlblR5cGUgPyAkdGhpcy0+dG9rZW5UeXBlLT5nZXRUb2tlblR5cGUoKSA6ICAkdGhpcy0+Z2V0RGVmYXVsdFRva2VuVHlwZSgpLT5nZXRUb2tlblR5cGUoKTsKKworICAgICAgICByZXR1cm4gbmV3IEFjY2Vzc1Rva2VuKCR0aGlzLT5zdG9yYWdlc1snYWNjZXNzX3Rva2VuJ10sICRyZWZyZXNoU3RvcmFnZSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBJZFRva2VuCisgICAgICogQHRocm93cyBMb2dpY0V4Y2VwdGlvbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0SWRUb2tlblJlc3BvbnNlVHlwZSgpCisgICAgeworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5zdG9yYWdlc1sndXNlcl9jbGFpbXMnXSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBMb2dpY0V4Y2VwdGlvbigiWW91IG11c3Qgc3VwcGx5IGEgc3RvcmFnZSBvYmplY3QgaW1wbGVtZW50aW5nIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlIHRvIHVzZSBvcGVuaWQgY29ubmVjdCIpOworICAgICAgICB9CisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPnN0b3JhZ2VzWydwdWJsaWNfa2V5J10pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTG9naWNFeGNlcHRpb24oIllvdSBtdXN0IHN1cHBseSBhIHN0b3JhZ2Ugb2JqZWN0IGltcGxlbWVudGluZyBPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2UgdG8gdXNlIG9wZW5pZCBjb25uZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICAkY29uZmlnID0gYXJyYXlfaW50ZXJzZWN0X2tleSgkdGhpcy0+Y29uZmlnLCBhcnJheV9mbGlwKGV4cGxvZGUoJyAnLCAnaXNzdWVyIGlkX2xpZmV0aW1lJykpKTsKKworICAgICAgICByZXR1cm4gbmV3IElkVG9rZW4oJHRoaXMtPnN0b3JhZ2VzWyd1c2VyX2NsYWltcyddLCAkdGhpcy0+c3RvcmFnZXNbJ3B1YmxpY19rZXknXSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBJZFRva2VuVG9rZW4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdElkVG9rZW5Ub2tlblJlc3BvbnNlVHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IElkVG9rZW5Ub2tlbigkdGhpcy0+Z2V0QWNjZXNzVG9rZW5SZXNwb25zZVR5cGUoKSwgJHRoaXMtPmdldElkVG9rZW5SZXNwb25zZVR5cGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHRocm93cyBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVPcGVuSWRDb25uZWN0KCkKKyAgICB7CisgICAgICAgICRhdXRoQ29kZUdyYW50ID0gJHRoaXMtPmdldEdyYW50VHlwZSgnYXV0aG9yaXphdGlvbl9jb2RlJyk7CisgICAgICAgIGlmICghZW1wdHkoJGF1dGhDb2RlR3JhbnQpICYmICEkYXV0aENvZGVHcmFudCBpbnN0YW5jZW9mIE9wZW5JREF1dGhvcml6YXRpb25Db2RlR3JhbnRUeXBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignWW91IGhhdmUgZW5hYmxlZCBPcGVuSUQgQ29ubmVjdCwgYnV0IHN1cHBsaWVkIGEgZ3JhbnQgdHlwZSB0aGF0IGRvZXMgbm90IHN1cHBvcnQgaXQuJyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbm9ybWFsaXplUmVzcG9uc2VUeXBlKCRuYW1lKQorICAgIHsKKyAgICAgICAgLy8gZm9yIG11bHRpcGxlLXZhbHVlZCByZXNwb25zZSB0eXBlcyAtIG1ha2UgdGhlbSBhbHBoYWJldGljYWwKKyAgICAgICAgaWYgKCFlbXB0eSgkbmFtZSkgJiYgZmFsc2UgIT09IHN0cnBvcygkbmFtZSwgJyAnKSkgeworICAgICAgICAgICAgJHR5cGVzID0gZXhwbG9kZSgnICcsICRuYW1lKTsKKyAgICAgICAgICAgIHNvcnQoJHR5cGVzKTsKKyAgICAgICAgICAgICRuYW1lID0gaW1wbG9kZSgnICcsICR0eXBlcyk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZSgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnJlc3BvbnNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3RvcmFnZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zdG9yYWdlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHJldHVybiBvYmplY3R8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTdG9yYWdlKCRuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5zdG9yYWdlc1skbmFtZV0pID8gJHRoaXMtPnN0b3JhZ2VzWyRuYW1lXSA6IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRHcmFudFR5cGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z3JhbnRUeXBlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHJldHVybiBvYmplY3R8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRHcmFudFR5cGUoJG5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmdyYW50VHlwZXNbJG5hbWVdKSA/ICR0aGlzLT5ncmFudFR5cGVzWyRuYW1lXSA6IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZVR5cGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+cmVzcG9uc2VUeXBlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHJldHVybiBvYmplY3R8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXNwb25zZVR5cGUoJG5hbWUpCisgICAgeworICAgICAgICAvLyBmb3IgbXVsdGlwbGUtdmFsdWVkIHJlc3BvbnNlIHR5cGVzIC0gbWFrZSB0aGVtIGFscGhhYmV0aWNhbAorICAgICAgICAkbmFtZSA9ICR0aGlzLT5ub3JtYWxpemVSZXNwb25zZVR5cGUoJG5hbWUpOworCisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cmVzcG9uc2VUeXBlc1skbmFtZV0pID8gJHRoaXMtPnJlc3BvbnNlVHlwZXNbJG5hbWVdIDogbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRva2VuVHlwZUludGVyZmFjZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUb2tlblR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT50b2tlblR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudEFzc2VydGlvblR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jbGllbnRBc3NlcnRpb25UeXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldENvbmZpZygkbmFtZSwgJHZhbHVlKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmNvbmZpZ1skbmFtZV0gPSAkdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqIEBwYXJhbSBtaXhlZCAkZGVmYXVsdAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29uZmlnKCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmNvbmZpZ1skbmFtZV0pID8gJHRoaXMtPmNvbmZpZ1skbmFtZV0gOiAkZGVmYXVsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0FjY2Vzc1Rva2VuSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvQWNjZXNzVG9rZW5JbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNDI4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0FjY2Vzc1Rva2VuSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDY1IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKKy8qKgorICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIHRvIHNwZWNpZnkgd2hlcmUgdGhlIE9BdXRoMiBTZXJ2ZXIKKyAqIHNob3VsZCBnZXQvc2F2ZSBhY2Nlc3MgdG9rZW5zCisgKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworaW50ZXJmYWNlIEFjY2Vzc1Rva2VuSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogTG9vayB1cCB0aGUgc3VwcGxpZWQgb2F1dGhfdG9rZW4gZnJvbSBzdG9yYWdlLgorICAgICAqCisgICAgICogV2UgbmVlZCB0byByZXRyaWV2ZSBhY2Nlc3MgdG9rZW4gZGF0YSBhcyB3ZSBjcmVhdGUgYW5kIHZlcmlmeSB0b2tlbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRvYXV0aF90b2tlbiAtIG9hdXRoX3Rva2VuIHRvIGJlIGNoZWNrIHdpdGguCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5fG51bGwgLSBBbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBiZWxvdywgYW5kIHJldHVybiBOVUxMIGlmIHRoZSBzdXBwbGllZCBvYXV0aF90b2tlbiBpcyBpbnZhbGlkOgorICAgICAqIEBjb2RlCisgICAgICogICAgIGFycmF5KAorICAgICAqICAgICAgICAgJ2V4cGlyZXMnICAgPT4gJGV4cGlyZXMsICAgLy8gU3RvcmVkIGV4cGlyYXRpb24gaW4gdW5peCB0aW1lc3RhbXAuCisgICAgICogICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLCAvLyAob3B0aW9uYWwpIFN0b3JlZCBjbGllbnQgaWRlbnRpZmllci4KKyAgICAgKiAgICAgICAgICd1c2VyX2lkJyAgID0+ICR1c2VyX2lkLCAgIC8vIChvcHRpb25hbCkgU3RvcmVkIHVzZXIgaWRlbnRpZmllci4KKyAgICAgKiAgICAgICAgICdzY29wZScgICAgID0+ICRzY29wZSwgICAgIC8vIChvcHRpb25hbCkgU3RvcmVkIHNjb3BlIHZhbHVlcyBpbiBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqICAgICAgICAgJ2lkX3Rva2VuJyAgPT4gJGlkX3Rva2VuICAgLy8gKG9wdGlvbmFsKSBTdG9yZWQgaWRfdG9rZW4gKGlmICJ1c2Vfb3BlbmlkX2Nvbm5lY3QiIGlzIHRydWUpLgorICAgICAqICAgICApOworICAgICAqIEBlbmRjb2RlCisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl83CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKCRvYXV0aF90b2tlbik7CisKKyAgICAvKioKKyAgICAgKiBTdG9yZSB0aGUgc3VwcGxpZWQgYWNjZXNzIHRva2VuIHZhbHVlcyB0byBzdG9yYWdlLgorICAgICAqCisgICAgICogV2UgbmVlZCB0byBzdG9yZSBhY2Nlc3MgdG9rZW4gZGF0YSBhcyB3ZSBjcmVhdGUgYW5kIHZlcmlmeSB0b2tlbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRvYXV0aF90b2tlbiAtIG9hdXRoX3Rva2VuIHRvIGJlIHN0b3JlZC4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRjbGllbnRfaWQgICAtIGNsaWVudCBpZGVudGlmaWVyIHRvIGJlIHN0b3JlZC4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VyX2lkICAgICAtIHVzZXIgaWRlbnRpZmllciB0byBiZSBzdG9yZWQuCisgICAgICogQHBhcmFtIGludCAgICAkZXhwaXJlcyAgICAgLSBleHBpcmF0aW9uIHRvIGJlIHN0b3JlZCBhcyBhIFVuaXggdGltZXN0YW1wLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlICAgICAgIC0gT1BUSU9OQUwgU2NvcGVzIHRvIGJlIHN0b3JlZCBpbiBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBY2Nlc3NUb2tlbigkb2F1dGhfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBFeHBpcmUgYW4gYWNjZXNzIHRva2VuLgorICAgICAqCisgICAgICogVGhpcyBpcyBub3QgZXhwbGljaXRseSByZXF1aXJlZCBpbiB0aGUgc3BlYywgYnV0IGlmIGRlZmluZWQgaW4gYSBkcmFmdCBSRkMgZm9yIHRva2VuCisgICAgICogcmV2b2tpbmcgKFJGQyA3MDA5KSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzAwOQorICAgICAqCisgICAgICogQHBhcmFtICRhY2Nlc3NfdG9rZW4KKyAgICAgKiBBY2Nlc3MgdG9rZW4gdG8gYmUgZXhwaXJlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQk9PTCB0cnVlIGlmIGFuIGFjY2VzcyB0b2tlbiB3YXMgdW5zZXQsIGZhbHNlIGlmIG5vdAorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzYKKyAgICAgKgorICAgICAqIEB0b2RvIHYyLjAgaW5jbHVkZSB0aGlzIG1ldGhvZCBpbiBpbnRlcmZhY2UuIE9taXR0ZWQgdG8gbWFpbnRhaW4gQkMgaW4gdjEueAorICAgICAqLworICAgIC8vcHVibGljIGZ1bmN0aW9uIHVuc2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbik7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0F1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGJjMTM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9BdXRob3JpemF0aW9uQ29kZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSw4NiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCisvKioKKyAqIEltcGxlbWVudCB0aGlzIGludGVyZmFjZSB0byBzcGVjaWZ5IHdoZXJlIHRoZSBPQXV0aDIgU2VydmVyCisgKiBzaG91bGQgZ2V0L3NhdmUgYXV0aG9yaXphdGlvbiBjb2RlcyBmb3IgdGhlICJBdXRob3JpemF0aW9uIENvZGUiCisgKiBncmFudCB0eXBlCisgKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworaW50ZXJmYWNlIEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogVGhlIEF1dGhvcml6YXRpb24gQ29kZSBncmFudCB0eXBlIHN1cHBvcnRzIGEgcmVzcG9uc2UgdHlwZSBvZiAiY29kZSIuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTEuNC4xCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4yCisgICAgICovCisgICAgY29uc3QgUkVTUE9OU0VfVFlQRV9DT0RFID0gImNvZGUiOworCisgICAgLyoqCisgICAgICogRmV0Y2ggYXV0aG9yaXphdGlvbiBjb2RlIGRhdGEgKHByb2JhYmx5IHRoZSBtb3N0IGNvbW1vbiBncmFudCB0eXBlKS4KKyAgICAgKgorICAgICAqIFJldHJpZXZlIHRoZSBzdG9yZWQgZGF0YSBmb3IgdGhlIGdpdmVuIGF1dGhvcml6YXRpb24gY29kZS4KKyAgICAgKgorICAgICAqIFJlcXVpcmVkIGZvciBPQXV0aDI6OkdSQU5UX1RZUEVfQVVUSF9DT0RFLgorICAgICAqCisgICAgICogQHBhcmFtICRjb2RlCisgICAgICogQXV0aG9yaXphdGlvbiBjb2RlIHRvIGJlIGNoZWNrIHdpdGguCisgICAgICoKKyAgICAgKiBAcmV0dXJuCisgICAgICogQW4gYXNzb2NpYXRpdmUgYXJyYXkgYXMgYmVsb3csIGFuZCBOVUxMIGlmIHRoZSBjb2RlIGlzIGludmFsaWQKKyAgICAgKiBAY29kZQorICAgICAqIHJldHVybiBhcnJheSgKKyAgICAgKiAgICAgImNsaWVudF9pZCIgICAgPT4gQ0xJRU5UX0lELCAgICAgIC8vIFJFUVVJUkVEIFN0b3JlZCBjbGllbnQgaWRlbnRpZmllcgorICAgICAqICAgICAidXNlcl9pZCIgICAgICA9PiBVU0VSX0lELCAgICAgICAgLy8gUkVRVUlSRUQgU3RvcmVkIHVzZXIgaWRlbnRpZmllcgorICAgICAqICAgICAiZXhwaXJlcyIgICAgICA9PiBFWFBJUkVTLCAgICAgICAgLy8gUkVRVUlSRUQgU3RvcmVkIGV4cGlyYXRpb24gaW4gdW5peCB0aW1lc3RhbXAKKyAgICAgKiAgICAgInJlZGlyZWN0X3VyaSIgPT4gUkVESVJFQ1RfVVJJLCAgIC8vIFJFUVVJUkVEIFN0b3JlZCByZWRpcmVjdCBVUkkKKyAgICAgKiAgICAgInNjb3BlIiAgICAgICAgPT4gU0NPUEUsICAgICAgICAgIC8vIE9QVElPTkFMIFN0b3JlZCBzY29wZSB2YWx1ZXMgaW4gc3BhY2Utc2VwYXJhdGVkIHN0cmluZworICAgICAqICk7CisgICAgICogQGVuZGNvZGUKKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTQuMQorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSk7CisKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSBwcm92aWRlZCBhdXRob3JpemF0aW9uIGNvZGUgdmFsdWVzIGFuZCBzdG9yZSB0aGVtIHNvbWV3aGVyZS4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHRoZSBzdG9yYWdlIGNvdW50ZXJwYXJ0IHRvIGdldEF1dGhDb2RlKCkuCisgICAgICoKKyAgICAgKiBJZiBzdG9yYWdlIGZhaWxzIGZvciBzb21lIHJlYXNvbiwgd2UncmUgbm90IGN1cnJlbnRseSBjaGVja2luZyBmb3IKKyAgICAgKiBhbnkgc29ydCBvZiBzdWNjZXNzL2ZhaWx1cmUsIHNvIHlvdSBzaG91bGQgYmFpbCBvdXQgb2YgdGhlIHNjcmlwdAorICAgICAqIGFuZCBwcm92aWRlIGEgZGVzY3JpcHRpdmUgZmFpbCBtZXNzYWdlLgorICAgICAqCisgICAgICogUmVxdWlyZWQgZm9yIE9BdXRoMjo6R1JBTlRfVFlQRV9BVVRIX0NPREUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2RlICAgICAgICAgLSBBdXRob3JpemF0aW9uIGNvZGUgdG8gYmUgc3RvcmVkLgorICAgICAqIEBwYXJhbSBtaXhlZCAgJGNsaWVudF9pZCAgICAtIENsaWVudCBpZGVudGlmaWVyIHRvIGJlIHN0b3JlZC4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VyX2lkICAgICAgLSBVc2VyIGlkZW50aWZpZXIgdG8gYmUgc3RvcmVkLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlZGlyZWN0X3VyaSAtIFJlZGlyZWN0IFVSSShzKSB0byBiZSBzdG9yZWQgaW4gYSBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBpbnQgICAgJGV4cGlyZXMgICAgICAtIEV4cGlyYXRpb24gdG8gYmUgc3RvcmVkIGFzIGEgVW5peCB0aW1lc3RhbXAuCisgICAgICogQHBhcmFtIHN0cmluZyAkc2NvcGUgICAgICAgIC0gT1BUSU9OQUwgU2NvcGVzIHRvIGJlIHN0b3JlZCBpbiBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKTsKKworICAgIC8qKgorICAgICAqIG9uY2UgYW4gQXV0aG9yaXphdGlvbiBDb2RlIGlzIHVzZWQsIGl0IG11c3QgYmUgZXhwaXJlZAorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4xLjIKKyAgICAgKgorICAgICAqICAgIFRoZSBjbGllbnQgTVVTVCBOT1QgdXNlIHRoZSBhdXRob3JpemF0aW9uIGNvZGUKKyAgICAgKiAgICBtb3JlIHRoYW4gb25jZS4gIElmIGFuIGF1dGhvcml6YXRpb24gY29kZSBpcyB1c2VkIG1vcmUgdGhhbgorICAgICAqICAgIG9uY2UsIHRoZSBhdXRob3JpemF0aW9uIHNlcnZlciBNVVNUIGRlbnkgdGhlIHJlcXVlc3QgYW5kIFNIT1VMRAorICAgICAqICAgIHJldm9rZSAod2hlbiBwb3NzaWJsZSkgYWxsIHRva2VucyBwcmV2aW91c2x5IGlzc3VlZCBiYXNlZCBvbgorICAgICAqICAgIHRoYXQgYXV0aG9yaXphdGlvbiBjb2RlCisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlQXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9DYXNzYW5kcmEucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9DYXNzYW5kcmEucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MGU5ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0Nhc3NhbmRyYS5waHAKQEAgLTAsMCArMSw2NjAgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKwordXNlIHBocGNhc3NhXENvbHVtbkZhbWlseTsKK3VzZSBwaHBjYXNzYVxDb2x1bW5TbGljZTsKK3VzZSBwaHBjYXNzYVxDb25uZWN0aW9uXENvbm5lY3Rpb25Qb29sOwordXNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlOwordXNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSBhcyBPcGVuSURBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZTsKK3VzZSBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb247CisKKy8qKgorICogQ2Fzc2FuZHJhIHN0b3JhZ2UgZm9yIGFsbCBzdG9yYWdlIHR5cGVzCisgKgorICogVG8gdXNlLCBpbnN0YWxsICJ0aG9iYnMvcGhwY2Fzc2EiIHZpYSBjb21wb3NlcjoKKyAqIDxjb2RlPgorICogICAgIGNvbXBvc2VyIHJlcXVpcmUgdGhvYmJzL3BocGNhc3NhOmRldi1tYXN0ZXIKKyAqIDwvY29kZT4KKyAqCisgKiBPbmNlIHRoaXMgaXMgZG9uZSwgaW5zdGFudGlhdGUgdGhlIGNvbm5lY3Rpb246CisgKiA8Y29kZT4KKyAqICAgICAkY2Fzc2FuZHJhID0gbmV3IFxwaHBjYXNzYVxDb25uZWN0aW9uXENvbm5lY3Rpb25Qb29sKCdvYXV0aDJfc2VydmVyJywgYXJyYXkoJzEyNy4wLjAuMTo5MTYwJykpOworICogPC9jb2RlPgorICoKKyAqIFRoZW4sIHJlZ2lzdGVyIHRoZSBzdG9yYWdlIGNsaWVudDoKKyAqIDxjb2RlPgorICogICAgICRzdG9yYWdlID0gbmV3IE9BdXRoMlxTdG9yYWdlXENhc3NhbmRyYSgkY2Fzc2FuZHJhKTsKKyAqICAgICAkc3RvcmFnZS0+c2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCwgJHJlZGlyZWN0X3VyaSk7CisgKiA8L2NvZGU+CisgKgorICogQHNlZSB0ZXN0L2xpYi9PQXV0aDIvU3RvcmFnZS9Cb290c3RyYXA6OmdldENhc3NhbmRyYVN0b3JhZ2UKKyAqLworY2xhc3MgQ2Fzc2FuZHJhIGltcGxlbWVudHMgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UsCisgICAgQWNjZXNzVG9rZW5JbnRlcmZhY2UsCisgICAgQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIFJlZnJlc2hUb2tlbkludGVyZmFjZSwKKyAgICBKd3RCZWFyZXJJbnRlcmZhY2UsCisgICAgU2NvcGVJbnRlcmZhY2UsCisgICAgUHVibGljS2V5SW50ZXJmYWNlLAorICAgIFVzZXJDbGFpbXNJbnRlcmZhY2UsCisgICAgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKK3sKKworICAgIHByaXZhdGUgJGNhY2hlOworCisgICAgLyoqCisgICAgICogQHZhciBDb25uZWN0aW9uUG9vbAorICAgICAqLworICAgIHByb3RlY3RlZCAkY2Fzc2FuZHJhOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkY29uZmlnOworCisgICAgLyoqCisgICAgICogQ2Fzc2FuZHJhIFN0b3JhZ2UhIHVzZXMgcGhwQ2Fzc2EKKyAgICAgKgorICAgICAqIEBwYXJhbSBDb25uZWN0aW9uUG9vbHxhcnJheSAkY29ubmVjdGlvbgorICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAkY29uZmlnCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY29ubmVjdGlvbiA9IGFycmF5KCksIGFycmF5ICRjb25maWcgPSBhcnJheSgpKQorICAgIHsKKyAgICAgICAgaWYgKCRjb25uZWN0aW9uIGluc3RhbmNlb2YgQ29ubmVjdGlvblBvb2wpIHsKKyAgICAgICAgICAgICR0aGlzLT5jYXNzYW5kcmEgPSAkY29ubmVjdGlvbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghaXNfYXJyYXkoJGNvbm5lY3Rpb24pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignRmlyc3QgYXJndW1lbnQgdG8gT0F1dGgyXFN0b3JhZ2VcQ2Fzc2FuZHJhIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgcGhwY2Fzc2FcQ29ubmVjdGlvblxDb25uZWN0aW9uUG9vbCBvciBhIGNvbmZpZ3VyYXRpb24gYXJyYXknKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRjb25uZWN0aW9uID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAgICAgJ2tleXNwYWNlJyA9PiAnb2F1dGgyJywKKyAgICAgICAgICAgICAgICAnc2VydmVycycgID0+IG51bGwsCisgICAgICAgICAgICApLCAkY29ubmVjdGlvbik7CisKKyAgICAgICAgICAgICR0aGlzLT5jYXNzYW5kcmEgPSBuZXcgQ29ubmVjdGlvblBvb2woJGNvbm5lY3Rpb25bJ2tleXNwYWNlJ10sICRjb25uZWN0aW9uWydzZXJ2ZXJzJ10pOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPmNvbmZpZyA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgLy8gY2Fzc2FuZHJhIGNvbmZpZworICAgICAgICAgICAgJ2NvbHVtbl9mYW1pbHknID0+ICdhdXRoJywKKworICAgICAgICAgICAgLy8ga2V5IG5hbWVzCisgICAgICAgICAgICAnY2xpZW50X2tleScgPT4gJ29hdXRoX2NsaWVudHM6JywKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW5fa2V5JyA9PiAnb2F1dGhfYWNjZXNzX3Rva2VuczonLAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW5fa2V5JyA9PiAnb2F1dGhfcmVmcmVzaF90b2tlbnM6JywKKyAgICAgICAgICAgICdjb2RlX2tleScgPT4gJ29hdXRoX2F1dGhvcml6YXRpb25fY29kZXM6JywKKyAgICAgICAgICAgICd1c2VyX2tleScgPT4gJ29hdXRoX3VzZXJzOicsCisgICAgICAgICAgICAnand0X2tleScgPT4gJ29hdXRoX2p3dDonLAorICAgICAgICAgICAgJ3Njb3BlX2tleScgPT4gJ29hdXRoX3Njb3BlczonLAorICAgICAgICAgICAgJ3B1YmxpY19rZXlfa2V5JyAgPT4gJ29hdXRoX3B1YmxpY19rZXlzOicsCisgICAgICAgICksICRjb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAka2V5CisgICAgICogQHJldHVybiBib29sfG1peGVkCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFZhbHVlKCRrZXkpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmNhY2hlWyRrZXldKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jYWNoZVska2V5XTsKKyAgICAgICAgfQorICAgICAgICAkY2YgPSBuZXcgQ29sdW1uRmFtaWx5KCR0aGlzLT5jYXNzYW5kcmEsICR0aGlzLT5jb25maWdbJ2NvbHVtbl9mYW1pbHknXSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICR2YWx1ZSA9ICRjZi0+Z2V0KCRrZXksIG5ldyBDb2x1bW5TbGljZSgiIiwgIiIpKTsKKyAgICAgICAgICAgICR2YWx1ZSA9IGFycmF5X3NoaWZ0KCR2YWx1ZSk7CisgICAgICAgIH0gY2F0Y2ggKFxjYXNzYW5kcmFcTm90Rm91bmRFeGNlcHRpb24gJGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBqc29uX2RlY29kZSgkdmFsdWUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAka2V5CisgICAgICogQHBhcmFtICR2YWx1ZQorICAgICAqIEBwYXJhbSBpbnQgJGV4cGlyZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRWYWx1ZSgka2V5LCAkdmFsdWUsICRleHBpcmUgPSAwKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmNhY2hlWyRrZXldID0gJHZhbHVlOworCisgICAgICAgICRjZiA9IG5ldyBDb2x1bW5GYW1pbHkoJHRoaXMtPmNhc3NhbmRyYSwgJHRoaXMtPmNvbmZpZ1snY29sdW1uX2ZhbWlseSddKTsKKworICAgICAgICAkc3RyID0ganNvbl9lbmNvZGUoJHZhbHVlKTsKKyAgICAgICAgaWYgKCRleHBpcmUgPiAwKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICRzZWNvbmRzID0gJGV4cGlyZSAtIHRpbWUoKTsKKyAgICAgICAgICAgICAgICAvLyBfX2RhdGEga2V5IHNldCBhcyBDKiByZXF1aXJlcyBhIGZpZWxkLCBub3RlOiBtYXggVFRMIGNhbiBvbmx5IGJlIDYzMDcyMDAwMCBzZWNvbmRzCisgICAgICAgICAgICAgICAgJGNmLT5pbnNlcnQoJGtleSwgYXJyYXkoJ19fZGF0YScgPT4gJHN0ciksIG51bGwsICRzZWNvbmRzKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIF9fZGF0YSBrZXkgc2V0IGFzIEMqIHJlcXVpcmVzIGEgZmllbGQKKyAgICAgICAgICAgICAgICAkY2YtPmluc2VydCgka2V5LCBhcnJheSgnX19kYXRhJyA9PiAkc3RyKSk7CisgICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICRrZXkKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXhwaXJlVmFsdWUoJGtleSkKKyAgICB7CisgICAgICAgIHVuc2V0KCR0aGlzLT5jYWNoZVska2V5XSk7CisKKyAgICAgICAgJGNmID0gbmV3IENvbHVtbkZhbWlseSgkdGhpcy0+Y2Fzc2FuZHJhLCAkdGhpcy0+Y29uZmlnWydjb2x1bW5fZmFtaWx5J10pOworCisgICAgICAgIGlmICgkY2YtPmdldF9jb3VudCgka2V5KSA+IDApIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gX19kYXRhIGtleSBzZXQgYXMgQyogcmVxdWlyZXMgYSBmaWVsZAorICAgICAgICAgICAgICAgICRjZi0+cmVtb3ZlKCRrZXksIGFycmF5KCdfX2RhdGEnKSk7CisgICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2RlCisgICAgICogQHJldHVybiBib29sfG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydjb2RlX2tleSddIC4gJGNvZGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGF1dGhvcml6YXRpb25fY29kZQorICAgICAqIEBwYXJhbSBtaXhlZCAgJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSBtaXhlZCAgJHVzZXJfaWQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyZWRpcmVjdF91cmkKKyAgICAgKiBAcGFyYW0gaW50ICAgICRleHBpcmVzCisgICAgICogQHBhcmFtIHN0cmluZyAkc2NvcGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpZF90b2tlbgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkYXV0aG9yaXphdGlvbl9jb2RlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwsICRpZF90b2tlbiA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKAorICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1snY29kZV9rZXknXSAuICRhdXRob3JpemF0aW9uX2NvZGUsCisgICAgICAgICAgICBjb21wYWN0KCdhdXRob3JpemF0aW9uX2NvZGUnLCAnY2xpZW50X2lkJywgJ3VzZXJfaWQnLCAncmVkaXJlY3RfdXJpJywgJ2V4cGlyZXMnLCAnc2NvcGUnLCAnaWRfdG9rZW4nKSwKKyAgICAgICAgICAgICRleHBpcmVzCisgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY29kZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBleHBpcmVBdXRob3JpemF0aW9uQ29kZSgkY29kZSkKKyAgICB7CisgICAgICAgICRrZXkgPSAkdGhpcy0+Y29uZmlnWydjb2RlX2tleSddIC4gJGNvZGU7CisgICAgICAgIHVuc2V0KCR0aGlzLT5jYWNoZVska2V5XSk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5leHBpcmVWYWx1ZSgka2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrVXNlckNyZWRlbnRpYWxzKCR1c2VybmFtZSwgJHBhc3N3b3JkKQorICAgIHsKKyAgICAgICAgaWYgKCR1c2VyID0gJHRoaXMtPmdldFVzZXIoJHVzZXJuYW1lKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jaGVja1Bhc3N3b3JkKCR1c2VyLCAkcGFzc3dvcmQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIHBsYWludGV4dCBwYXNzd29yZHMgYXJlIGJhZCEgIE92ZXJyaWRlIHRoaXMgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAgJHVzZXIKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZAorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjaGVja1Bhc3N3b3JkKCR1c2VyLCAkcGFzc3dvcmQpCisgICAgeworICAgICAgICByZXR1cm4gJHVzZXJbJ3Bhc3N3b3JkJ10gPT0gJHRoaXMtPmhhc2hQYXNzd29yZCgkcGFzc3dvcmQpOworICAgIH0KKworICAgIC8vIHVzZSBhIHNlY3VyZSBoYXNoaW5nIGFsZ29yaXRobSB3aGVuIHN0b3JpbmcgcGFzc3dvcmRzLiBPdmVycmlkZSB0aGlzIGZvciB5b3VyIGFwcGxpY2F0aW9uCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhc2hQYXNzd29yZCgkcGFzc3dvcmQpCisgICAgeworICAgICAgICByZXR1cm4gc2hhMSgkcGFzc3dvcmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCisgICAgICogQHJldHVybiBhcnJheXxib29sfGZhbHNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCisgICAgICogQHJldHVybiBhcnJheXxib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXIoJHVzZXJuYW1lKQorICAgIHsKKyAgICAgICAgaWYgKCEkdXNlckluZm8gPSAkdGhpcy0+Z2V0VmFsdWUoJHRoaXMtPmNvbmZpZ1sndXNlcl9rZXknXSAuICR1c2VybmFtZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHVzZSAidXNlcm5hbWUiIGFzIHRoZSB1c2VyX2lkCisgICAgICAgIHJldHVybiBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICd1c2VyX2lkJyA9PiAkdXNlcm5hbWUsCisgICAgICAgICksICR1c2VySW5mbyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkdXNlcm5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXNzd29yZAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGZpcnN0X25hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRsYXN0X25hbWUKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXNlcigkdXNlcm5hbWUsICRwYXNzd29yZCwgJGZpcnN0X25hbWUgPSBudWxsLCAkbGFzdF9uYW1lID0gbnVsbCkKKyAgICB7CisgICAgICAgICRwYXNzd29yZCA9ICR0aGlzLT5oYXNoUGFzc3dvcmQoJHBhc3N3b3JkKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKAorICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1sndXNlcl9rZXknXSAuICR1c2VybmFtZSwKKyAgICAgICAgICAgIGNvbXBhY3QoJ3VzZXJuYW1lJywgJ3Bhc3N3b3JkJywgJ2ZpcnN0X25hbWUnLCAnbGFzdF9uYW1lJykKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnRfc2VjcmV0CisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrQ2xpZW50Q3JlZGVudGlhbHMoJGNsaWVudF9pZCwgJGNsaWVudF9zZWNyZXQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCEkY2xpZW50ID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpc3NldCgkY2xpZW50WydjbGllbnRfc2VjcmV0J10pCisgICAgICAgICAgICAmJiAkY2xpZW50WydjbGllbnRfc2VjcmV0J10gPT0gJGNsaWVudF9zZWNyZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNQdWJsaWNDbGllbnQoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgIGlmICghJGNsaWVudCA9ICR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZW1wdHkoJGNsaWVudFsnY2xpZW50X3NlY3JldCddKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gYXJyYXl8Ym9vbHxtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ2NsaWVudF9rZXknXSAuICRjbGllbnRfaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQHBhcmFtIG51bGwgJGNsaWVudF9zZWNyZXQKKyAgICAgKiBAcGFyYW0gbnVsbCAkcmVkaXJlY3RfdXJpCisgICAgICogQHBhcmFtIG51bGwgJGdyYW50X3R5cGVzCisgICAgICogQHBhcmFtIG51bGwgJHNjb3BlCisgICAgICogQHBhcmFtIG51bGwgJHVzZXJfaWQKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCA9IG51bGwsICRyZWRpcmVjdF91cmkgPSBudWxsLCAkZ3JhbnRfdHlwZXMgPSBudWxsLCAkc2NvcGUgPSBudWxsLCAkdXNlcl9pZCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKAorICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1snY2xpZW50X2tleSddIC4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgIGNvbXBhY3QoJ2NsaWVudF9pZCcsICdjbGllbnRfc2VjcmV0JywgJ3JlZGlyZWN0X3VyaScsICdncmFudF90eXBlcycsICdzY29wZScsICd1c2VyX2lkJykKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSAkZ3JhbnRfdHlwZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUoJGNsaWVudF9pZCwgJGdyYW50X3R5cGUpCisgICAgeworICAgICAgICAkZGV0YWlscyA9ICR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpOworICAgICAgICBpZiAoaXNzZXQoJGRldGFpbHNbJ2dyYW50X3R5cGVzJ10pKSB7CisgICAgICAgICAgICAkZ3JhbnRfdHlwZXMgPSBleHBsb2RlKCcgJywgJGRldGFpbHNbJ2dyYW50X3R5cGVzJ10pOworCisgICAgICAgICAgICByZXR1cm4gaW5fYXJyYXkoJGdyYW50X3R5cGUsIChhcnJheSkgJGdyYW50X3R5cGVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGdyYW50X3R5cGVzIGFyZSBub3QgZGVmaW5lZCwgdGhlbiBub25lIGFyZSByZXN0cmljdGVkCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkcmVmcmVzaF90b2tlbgorICAgICAqIEByZXR1cm4gYm9vbHxtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4pCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3JlZnJlc2hfdG9rZW5fa2V5J10gLiAkcmVmcmVzaF90b2tlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICRyZWZyZXNoX3Rva2VuCisgICAgICogQHBhcmFtICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gJHVzZXJfaWQKKyAgICAgKiBAcGFyYW0gJGV4cGlyZXMKKyAgICAgKiBAcGFyYW0gbnVsbCAkc2NvcGUKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKAorICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl9rZXknXSAuICRyZWZyZXNoX3Rva2VuLAorICAgICAgICAgICAgY29tcGFjdCgncmVmcmVzaF90b2tlbicsICdjbGllbnRfaWQnLCAndXNlcl9pZCcsICdleHBpcmVzJywgJ3Njb3BlJyksCisgICAgICAgICAgICAkZXhwaXJlcworICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkcmVmcmVzaF90b2tlbgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbikKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZXhwaXJlVmFsdWUoJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl9rZXknXSAuICRyZWZyZXNoX3Rva2VuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhY2Nlc3NfdG9rZW4KKyAgICAgKiBAcmV0dXJuIGFycmF5fGJvb2x8bWl4ZWR8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fa2V5J10uJGFjY2Vzc190b2tlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkYWNjZXNzX3Rva2VuCisgICAgICogQHBhcmFtIG1peGVkICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHVzZXJfaWQKKyAgICAgKiBAcGFyYW0gaW50ICRleHBpcmVzCisgICAgICogQHBhcmFtIG51bGwgJHNjb3BlCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c2V0VmFsdWUoCisgICAgICAgICAgICAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fa2V5J10uJGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgIGNvbXBhY3QoJ2FjY2Vzc190b2tlbicsICdjbGllbnRfaWQnLCAndXNlcl9pZCcsICdleHBpcmVzJywgJ3Njb3BlJyksCisgICAgICAgICAgICAkZXhwaXJlcworICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkYWNjZXNzX3Rva2VuCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbikKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZXhwaXJlVmFsdWUoJHRoaXMtPmNvbmZpZ1snYWNjZXNzX3Rva2VuX2tleSddIC4gJGFjY2Vzc190b2tlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICRzY29wZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzY29wZUV4aXN0cygkc2NvcGUpCisgICAgeworICAgICAgICAkc2NvcGUgPSBleHBsb2RlKCcgJywgJHNjb3BlKTsKKworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3Njb3BlX2tleSddLidzdXBwb3J0ZWQ6Z2xvYmFsJyk7CisKKyAgICAgICAgJHN1cHBvcnRlZFNjb3BlID0gZXhwbG9kZSgnICcsIChzdHJpbmcpICRyZXN1bHQpOworCisgICAgICAgIHJldHVybiAoY291bnQoYXJyYXlfZGlmZigkc2NvcGUsICRzdXBwb3J0ZWRTY29wZSkpID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBudWxsICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIGJvb2x8bWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGVmYXVsdFNjb3BlKCRjbGllbnRfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKGlzX251bGwoJGNsaWVudF9pZCkgfHwgISRyZXN1bHQgPSAkdGhpcy0+Z2V0VmFsdWUoJHRoaXMtPmNvbmZpZ1snc2NvcGVfa2V5J10uJ2RlZmF1bHQ6Jy4kY2xpZW50X2lkKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydzY29wZV9rZXknXS4nZGVmYXVsdDpnbG9iYWwnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkc2NvcGUKKyAgICAgKiBAcGFyYW0gbnVsbCAkY2xpZW50X2lkCisgICAgICogQHBhcmFtIHN0cmluZyAkdHlwZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRTY29wZSgkc2NvcGUsICRjbGllbnRfaWQgPSBudWxsLCAkdHlwZSA9ICdzdXBwb3J0ZWQnKQorICAgIHsKKyAgICAgICAgaWYgKCFpbl9hcnJheSgkdHlwZSwgYXJyYXkoJ2RlZmF1bHQnLCAnc3VwcG9ydGVkJykpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignIiR0eXBlIiBtdXN0IGJlIG9uZSBvZiAiZGVmYXVsdCIsICJzdXBwb3J0ZWQiJyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNfbnVsbCgkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgJGtleSA9ICR0aGlzLT5jb25maWdbJ3Njb3BlX2tleSddLiR0eXBlLic6Z2xvYmFsJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRrZXkgPSAkdGhpcy0+Y29uZmlnWydzY29wZV9rZXknXS4kdHlwZS4nOicuJGNsaWVudF9pZDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+c2V0VmFsdWUoJGtleSwgJHNjb3BlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSAkc3ViamVjdAorICAgICAqIEByZXR1cm4gYm9vbHxudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudEtleSgkY2xpZW50X2lkLCAkc3ViamVjdCkKKyAgICB7CisgICAgICAgIGlmICghJGp3dCA9ICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydqd3Rfa2V5J10gLiAkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzc2V0KCRqd3RbJ3N1YmplY3QnXSkgJiYgJGp3dFsnc3ViamVjdCddID09ICRzdWJqZWN0ICkgeworICAgICAgICAgICAgcmV0dXJuICRqd3RbJ2tleSddOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gJGtleQorICAgICAqIEBwYXJhbSBudWxsICRzdWJqZWN0CisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldENsaWVudEtleSgkY2xpZW50X2lkLCAka2V5LCAkc3ViamVjdCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKCR0aGlzLT5jb25maWdbJ2p3dF9rZXknXSAuICRjbGllbnRfaWQsIGFycmF5KAorICAgICAgICAgICAgJ2tleScgPT4gJGtleSwKKyAgICAgICAgICAgICdzdWJqZWN0JyA9PiAkc3ViamVjdAorICAgICAgICApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gYm9vbHxudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudFNjb3BlKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICBpZiAoISRjbGllbnREZXRhaWxzID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkY2xpZW50RGV0YWlsc1snc2NvcGUnXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkY2xpZW50RGV0YWlsc1snc2NvcGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQHBhcmFtICRzdWJqZWN0CisgICAgICogQHBhcmFtICRhdWRpZW5jZQorICAgICAqIEBwYXJhbSAkZXhwaXJhdGlvbgorICAgICAqIEBwYXJhbSAkanRpCisgICAgICogQHRocm93cyBcRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJhdGlvbiwgJGp0aSkKKyAgICB7CisgICAgICAgIC8vVE9ETzogTmVlZHMgY2Fzc2FuZHJhIGltcGxlbWVudGF0aW9uLgorICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignZ2V0SnRpKCkgZm9yIHRoZSBDYXNzYW5kcmEgZHJpdmVyIGlzIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLicpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQHBhcmFtICRzdWJqZWN0CisgICAgICogQHBhcmFtICRhdWRpZW5jZQorICAgICAqIEBwYXJhbSAkZXhwaXJhdGlvbgorICAgICAqIEBwYXJhbSAkanRpCisgICAgICogQHRocm93cyBcRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJhdGlvbiwgJGp0aSkKKyAgICB7CisgICAgICAgIC8vVE9ETzogTmVlZHMgY2Fzc2FuZHJhIGltcGxlbWVudGF0aW9uLgorICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignc2V0SnRpKCkgZm9yIHRoZSBDYXNzYW5kcmEgZHJpdmVyIGlzIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLicpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHVibGljS2V5KCRjbGllbnRfaWQgPSAnJykKKyAgICB7CisgICAgICAgICRwdWJsaWNfa2V5ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3B1YmxpY19rZXlfa2V5J10gLiAkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzX2FycmF5KCRwdWJsaWNfa2V5KSkgeworICAgICAgICAgICAgcmV0dXJuICRwdWJsaWNfa2V5WydwdWJsaWNfa2V5J107CisgICAgICAgIH0KKyAgICAgICAgJHB1YmxpY19rZXkgPSAkdGhpcy0+Z2V0VmFsdWUoJHRoaXMtPmNvbmZpZ1sncHVibGljX2tleV9rZXknXSk7CisgICAgICAgIGlmIChpc19hcnJheSgkcHVibGljX2tleSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkcHVibGljX2tleVsncHVibGljX2tleSddOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xpZW50X2lkCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcml2YXRlS2V5KCRjbGllbnRfaWQgPSAnJykKKyAgICB7CisgICAgICAgICRwdWJsaWNfa2V5ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3B1YmxpY19rZXlfa2V5J10gLiAkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzX2FycmF5KCRwdWJsaWNfa2V5KSkgeworICAgICAgICAgICAgcmV0dXJuICRwdWJsaWNfa2V5Wydwcml2YXRlX2tleSddOworICAgICAgICB9CisgICAgICAgICRwdWJsaWNfa2V5ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3B1YmxpY19rZXlfa2V5J10pOworICAgICAgICBpZiAoaXNfYXJyYXkoJHB1YmxpY19rZXkpKSB7CisgICAgICAgICAgICByZXR1cm4gJHB1YmxpY19rZXlbJ3ByaXZhdGVfa2V5J107CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbnVsbCAkY2xpZW50X2lkCisgICAgICogQHJldHVybiBtaXhlZHxzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW5jcnlwdGlvbkFsZ29yaXRobSgkY2xpZW50X2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgICRwdWJsaWNfa2V5ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3B1YmxpY19rZXlfa2V5J10gLiAkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzX2FycmF5KCRwdWJsaWNfa2V5KSkgeworICAgICAgICAgICAgcmV0dXJuICRwdWJsaWNfa2V5WydlbmNyeXB0aW9uX2FsZ29yaXRobSddOworICAgICAgICB9CisgICAgICAgICRwdWJsaWNfa2V5ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3B1YmxpY19rZXlfa2V5J10pOworICAgICAgICBpZiAoaXNfYXJyYXkoJHB1YmxpY19rZXkpKSB7CisgICAgICAgICAgICByZXR1cm4gJHB1YmxpY19rZXlbJ2VuY3J5cHRpb25fYWxnb3JpdGhtJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJ1JTMjU2JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHVzZXJfaWQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGFpbXMKKyAgICAgKiBAcmV0dXJuIGFycmF5fGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckNsYWltcygkdXNlcl9pZCwgJGNsYWltcykKKyAgICB7CisgICAgICAgICR1c2VyRGV0YWlscyA9ICR0aGlzLT5nZXRVc2VyRGV0YWlscygkdXNlcl9pZCk7CisgICAgICAgIGlmICghaXNfYXJyYXkoJHVzZXJEZXRhaWxzKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJGNsYWltcyA9IGV4cGxvZGUoJyAnLCB0cmltKCRjbGFpbXMpKTsKKyAgICAgICAgJHVzZXJDbGFpbXMgPSBhcnJheSgpOworCisgICAgICAgIC8vIGZvciBlYWNoIHJlcXVlc3RlZCBjbGFpbSwgaWYgdGhlIHVzZXIgaGFzIHRoZSBjbGFpbSwgc2V0IGl0IGluIHRoZSByZXNwb25zZQorICAgICAgICAkdmFsaWRDbGFpbXMgPSBleHBsb2RlKCcgJywgc2VsZjo6VkFMSURfQ0xBSU1TKTsKKyAgICAgICAgZm9yZWFjaCAoJHZhbGlkQ2xhaW1zIGFzICR2YWxpZENsYWltKSB7CisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHZhbGlkQ2xhaW0sICRjbGFpbXMpKSB7CisgICAgICAgICAgICAgICAgaWYgKCR2YWxpZENsYWltID09ICdhZGRyZXNzJykgeworICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzIGlzIGFuIG9iamVjdCB3aXRoIHN1YmZpZWxkcworICAgICAgICAgICAgICAgICAgICAkdXNlckNsYWltc1snYWRkcmVzcyddID0gJHRoaXMtPmdldFVzZXJDbGFpbSgkdmFsaWRDbGFpbSwgJHVzZXJEZXRhaWxzWydhZGRyZXNzJ10gPzogJHVzZXJEZXRhaWxzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkdXNlckNsYWltcyA9IGFycmF5X21lcmdlKCR1c2VyQ2xhaW1zLCAkdGhpcy0+Z2V0VXNlckNsYWltKCR2YWxpZENsYWltLCAkdXNlckRldGFpbHMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHVzZXJDbGFpbXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtICRjbGFpbQorICAgICAqIEBwYXJhbSAkdXNlckRldGFpbHMKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFVzZXJDbGFpbSgkY2xhaW0sICR1c2VyRGV0YWlscykKKyAgICB7CisgICAgICAgICR1c2VyQ2xhaW1zID0gYXJyYXkoKTsKKyAgICAgICAgJGNsYWltVmFsdWVzU3RyaW5nID0gY29uc3RhbnQoc3ByaW50Zignc2VsZjo6JXNfQ0xBSU1fVkFMVUVTJywgc3RydG91cHBlcigkY2xhaW0pKSk7CisgICAgICAgICRjbGFpbVZhbHVlcyA9IGV4cGxvZGUoJyAnLCAkY2xhaW1WYWx1ZXNTdHJpbmcpOworCisgICAgICAgIGZvcmVhY2ggKCRjbGFpbVZhbHVlcyBhcyAkdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICgkdmFsdWUgPT0gJ2VtYWlsX3ZlcmlmaWVkJykgeworICAgICAgICAgICAgICAgICR1c2VyQ2xhaW1zWyR2YWx1ZV0gPSAkdXNlckRldGFpbHNbJHZhbHVlXT09J3RydWUnID8gdHJ1ZSA6IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkdXNlckNsYWltc1skdmFsdWVdID0gaXNzZXQoJHVzZXJEZXRhaWxzWyR2YWx1ZV0pID8gJHVzZXJEZXRhaWxzWyR2YWx1ZV0gOiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR1c2VyQ2xhaW1zOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0NsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMThjNjkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0NsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDQ5IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKKy8qKgorICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIHRvIHNwZWNpZnkgaG93IHRoZSBPQXV0aDIgU2VydmVyCisgKiBzaG91bGQgdmVyaWZ5IGNsaWVudCBjcmVkZW50aWFscworICoKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2ludGVyZmFjZSBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSBleHRlbmRzIENsaWVudEludGVyZmFjZQoreworCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIHRoYXQgdGhlIGNsaWVudCBjcmVkZW50aWFscyBpcyB2YWxpZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQ2xpZW50IGlkZW50aWZpZXIgdG8gYmUgY2hlY2sgd2l0aC4KKyAgICAgKiBAcGFyYW0gJGNsaWVudF9zZWNyZXQKKyAgICAgKiAob3B0aW9uYWwpIElmIGEgc2VjcmV0IGlzIHJlcXVpcmVkLCBjaGVjayB0aGF0IHRoZXkndmUgZ2l2ZW4gdGhlIHJpZ2h0IG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4KKyAgICAgKiBUUlVFIGlmIHRoZSBjbGllbnQgY3JlZGVudGlhbHMgYXJlIHZhbGlkLCBhbmQgTVVTVCByZXR1cm4gRkFMU0UgaWYgaXQgaXNuJ3QuCisgICAgICogQGVuZGNvZGUKKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjc0OSNzZWN0aW9uLTMuMQorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fMworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja0NsaWVudENyZWRlbnRpYWxzKCRjbGllbnRfaWQsICRjbGllbnRfc2VjcmV0ID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgdGhlIGNsaWVudCBpcyBhICJwdWJsaWMiIGNsaWVudCwgYW5kIHRoZXJlZm9yZQorICAgICAqIGRvZXMgbm90IHJlcXVpcmUgcGFzc2luZyBjcmVkZW50aWFscyBmb3IgY2VydGFpbiBncmFudCB0eXBlcworICAgICAqCisgICAgICogQHBhcmFtICRjbGllbnRfaWQKKyAgICAgKiBDbGllbnQgaWRlbnRpZmllciB0byBiZSBjaGVjayB3aXRoLgorICAgICAqCisgICAgICogQHJldHVybgorICAgICAqIFRSVUUgaWYgdGhlIGNsaWVudCBpcyBwdWJsaWMsIGFuZCBGQUxTRSBpZiBpdCBpc24ndC4KKyAgICAgKiBAZW5kY29kZQorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tMi4zCisgICAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvaXNzdWVzLzI1NworICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fMgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1B1YmxpY0NsaWVudCgkY2xpZW50X2lkKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvQ2xpZW50SW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvQ2xpZW50SW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWE1YmZmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9DbGllbnRJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsNjYgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworLyoqCisgKiBJbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UgdG8gc3BlY2lmeSB3aGVyZSB0aGUgT0F1dGgyIFNlcnZlcgorICogc2hvdWxkIHJldHJpZXZlIGNsaWVudCBpbmZvcm1hdGlvbgorICoKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2ludGVyZmFjZSBDbGllbnRJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBHZXQgY2xpZW50IGRldGFpbHMgY29ycmVzcG9uZGluZyBjbGllbnRfaWQuCisgICAgICoKKyAgICAgKiBPQXV0aCBzYXlzIHdlIHNob3VsZCBzdG9yZSByZXF1ZXN0IFVSSXMgZm9yIGVhY2ggcmVnaXN0ZXJlZCBjbGllbnQuCisgICAgICogSW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gdG8gZ3JhYiB0aGUgc3RvcmVkIFVSSSBmb3IgYSBnaXZlbiBjbGllbnQgaWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIENsaWVudCBpZGVudGlmaWVyIHRvIGJlIGNoZWNrIHdpdGguCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICogICAgICAgICAgICAgICBDbGllbnQgZGV0YWlscy4gVGhlIG9ubHkgbWFuZGF0b3J5IGtleSBpbiB0aGUgYXJyYXkgaXMgInJlZGlyZWN0X3VyaSIuCisgICAgICogICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIE1VU1QgcmV0dXJuIEZBTFNFIGlmIHRoZSBnaXZlbiBjbGllbnQgZG9lcyBub3QgZXhpc3Qgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgIGludmFsaWQuICJyZWRpcmVjdF91cmkiIGNhbiBiZSBzcGFjZS1kZWxpbWl0ZWQgdG8gYWxsb3cgZm9yIG11bHRpcGxlIHZhbGlkIHVyaXMuCisgICAgICogICAgICAgICAgICAgICA8Y29kZT4KKyAgICAgKiAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgKKyAgICAgKiAgICAgICAgICAgICAgICJyZWRpcmVjdF91cmkiID0+IFJFRElSRUNUX1VSSSwgICAgICAvLyBSRVFVSVJFRCByZWRpcmVjdF91cmkgcmVnaXN0ZXJlZCBmb3IgdGhlIGNsaWVudAorICAgICAqICAgICAgICAgICAgICAgImNsaWVudF9pZCIgICAgPT4gQ0xJRU5UX0lELCAgICAgICAgIC8vIE9QVElPTkFMIHRoZSBjbGllbnQgaWQKKyAgICAgKiAgICAgICAgICAgICAgICJncmFudF90eXBlcyIgID0+IEdSQU5UX1RZUEVTLCAgICAgICAvLyBPUFRJT05BTCBhbiBhcnJheSBvZiByZXN0cmljdGVkIGdyYW50IHR5cGVzCisgICAgICogICAgICAgICAgICAgICAidXNlcl9pZCIgICAgICA9PiBVU0VSX0lELCAgICAgICAgICAgLy8gT1BUSU9OQUwgdGhlIHVzZXIgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggdGhpcyBjbGllbnQKKyAgICAgKiAgICAgICAgICAgICAgICJzY29wZSIgICAgICAgID0+IFNDT1BFLCAgICAgICAgICAgICAvLyBPUFRJT05BTCB0aGUgc2NvcGVzIGFsbG93ZWQgZm9yIHRoaXMgY2xpZW50CisgICAgICogICAgICAgICAgICAgICApOworICAgICAqICAgICAgICAgICAgICAgPC9jb2RlPgorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzY29wZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjbGllbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4KKyAgICAgKiBTVFJJTkcgdGhlIHNwYWNlLWRlbGluZWF0ZWQgc2NvcGUgbGlzdCBmb3IgdGhlIHNwZWNpZmllZCBjbGllbnRfaWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xpZW50U2NvcGUoJGNsaWVudF9pZCk7CisKKyAgICAvKioKKyAgICAgKiBDaGVjayByZXN0cmljdGVkIGdyYW50IHR5cGVzIG9mIGNvcnJlc3BvbmRpbmcgY2xpZW50IGlkZW50aWZpZXIuCisgICAgICoKKyAgICAgKiBJZiB5b3Ugd2FudCB0byByZXN0cmljdCBjbGllbnRzIHRvIGNlcnRhaW4gZ3JhbnQgdHlwZXMsIG92ZXJyaWRlIHRoaXMKKyAgICAgKiBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQ2xpZW50IGlkZW50aWZpZXIgdG8gYmUgY2hlY2sgd2l0aC4KKyAgICAgKiBAcGFyYW0gJGdyYW50X3R5cGUKKyAgICAgKiBHcmFudCB0eXBlIHRvIGJlIGNoZWNrIHdpdGgKKyAgICAgKgorICAgICAqIEByZXR1cm4KKyAgICAgKiBUUlVFIGlmIHRoZSBncmFudCB0eXBlIGlzIHN1cHBvcnRlZCBieSB0aGlzIGNsaWVudCBpZGVudGlmaWVyLCBhbmQKKyAgICAgKiBGQUxTRSBpZiBpdCBpc24ndC4KKyAgICAgKgorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tSZXN0cmljdGVkR3JhbnRUeXBlKCRjbGllbnRfaWQsICRncmFudF90eXBlKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvQ291Y2hiYXNlREIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9Db3VjaGJhc2VEQi5waHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWU4MTQ4YgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvQ291Y2hiYXNlREIucGhwCkBAIC0wLDAgKzEsMzMxIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK3VzZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgYXMgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2U7CisKKy8qKgorICogU2ltcGxlIENvdWNoYmFzZSBzdG9yYWdlIGZvciBhbGwgc3RvcmFnZSB0eXBlcworICoKKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIGJlIGV4dGVuZGVkIG9yIG92ZXJyaWRkZW4gYXMgcmVxdWlyZWQKKyAqCisgKiBOT1RFOiBQYXNzd29yZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQsIHdoaWNoIGlzIG5ldmVyCisgKiBhIGdvb2QgaWRlYS4gIEJlIHN1cmUgdG8gb3ZlcnJpZGUgdGhpcyBmb3IgeW91ciBhcHBsaWNhdGlvbgorICoKKyAqIEBhdXRob3IgVG9tIFBhcmsgPHRvbUByYXVjdGVyLmNvbT4KKyAqLworY2xhc3MgQ291Y2hiYXNlREIgaW1wbGVtZW50cyBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSwKKyAgICBBY2Nlc3NUb2tlbkludGVyZmFjZSwKKyAgICBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSwKKyAgICBVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgUmVmcmVzaFRva2VuSW50ZXJmYWNlLAorICAgIEp3dEJlYXJlckludGVyZmFjZSwKKyAgICBPcGVuSURBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZQoreworICAgIHByb3RlY3RlZCAkZGI7CisgICAgcHJvdGVjdGVkICRjb25maWc7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGNvbm5lY3Rpb24sICRjb25maWcgPSBhcnJheSgpKQorICAgIHsKKyAgICAgICAgaWYgKCRjb25uZWN0aW9uIGluc3RhbmNlb2YgXENvdWNoYmFzZSkgeworICAgICAgICAgICAgJHRoaXMtPmRiID0gJGNvbm5lY3Rpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIWlzX2FycmF5KCRjb25uZWN0aW9uKSB8fCAhaXNfYXJyYXkoJGNvbm5lY3Rpb25bJ3NlcnZlcnMnXSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignRmlyc3QgYXJndW1lbnQgdG8gT0F1dGgyXFN0b3JhZ2VcQ291Y2hiYXNlREIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBDb3VjaGJhc2Ugb3IgYSBjb25maWd1cmF0aW9uIGFycmF5IGNvbnRhaW5pbmcgYSBzZXJ2ZXIgYXJyYXknKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJHRoaXMtPmRiID0gbmV3IFxDb3VjaGJhc2UoJGNvbm5lY3Rpb25bJ3NlcnZlcnMnXSwgKCFpc3NldCgkY29ubmVjdGlvblsndXNlcm5hbWUnXSkpID8gJycgOiAkY29ubmVjdGlvblsndXNlcm5hbWUnXSwgKCFpc3NldCgkY29ubmVjdGlvblsncGFzc3dvcmQnXSkpID8gJycgOiAkY29ubmVjdGlvblsncGFzc3dvcmQnXSwgJGNvbm5lY3Rpb25bJ2J1Y2tldCddLCBmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X3RhYmxlJyA9PiAnb2F1dGhfY2xpZW50cycsCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuX3RhYmxlJyA9PiAnb2F1dGhfYWNjZXNzX3Rva2VucycsCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbl90YWJsZScgPT4gJ29hdXRoX3JlZnJlc2hfdG9rZW5zJywKKyAgICAgICAgICAgICdjb2RlX3RhYmxlJyA9PiAnb2F1dGhfYXV0aG9yaXphdGlvbl9jb2RlcycsCisgICAgICAgICAgICAndXNlcl90YWJsZScgPT4gJ29hdXRoX3VzZXJzJywKKyAgICAgICAgICAgICdqd3RfdGFibGUnID0+ICdvYXV0aF9qd3QnLAorICAgICAgICApLCAkY29uZmlnKTsKKyAgICB9CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gYWNjZXNzIGNvdWNoYmFzZSBpdGVtIGJ5IHR5cGU6CisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldE9iamVjdEJ5VHlwZSgkbmFtZSwkaWQpCisgICAgeworICAgICAgICByZXR1cm4ganNvbl9kZWNvZGUoJHRoaXMtPmRiLT5nZXQoJHRoaXMtPmNvbmZpZ1skbmFtZV0uJy0nLiRpZCksdHJ1ZSk7CisgICAgfQorCisgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNldCBjb3VjaGJhc2UgaXRlbSBieSB0eXBlOgorICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRPYmplY3RCeVR5cGUoJG5hbWUsJGlkLCRhcnJheSkKKyAgICB7CisgICAgICAgICRhcnJheVsndHlwZSddID0gJG5hbWU7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5kYi0+c2V0KCR0aGlzLT5jb25maWdbJG5hbWVdLictJy4kaWQsanNvbl9lbmNvZGUoJGFycmF5KSk7CisgICAgfQorCisgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGRlbGV0ZSBjb3VjaGJhc2UgaXRlbSBieSB0eXBlLCB3YWl0IGZvciBwZXJzaXN0IHRvIGF0IGxlYXN0IDEgbm9kZQorICAgIHByb3RlY3RlZCBmdW5jdGlvbiBkZWxldGVPYmplY3RCeVR5cGUoJG5hbWUsJGlkKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmRiLT5kZWxldGUoJHRoaXMtPmNvbmZpZ1skbmFtZV0uJy0nLiRpZCwiIiwxKTsKKyAgICB9CisKKyAgICAvKiBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja0NsaWVudENyZWRlbnRpYWxzKCRjbGllbnRfaWQsICRjbGllbnRfc2VjcmV0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmICgkcmVzdWx0ID0gJHRoaXMtPmdldE9iamVjdEJ5VHlwZSgnY2xpZW50X3RhYmxlJywkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgcmV0dXJuICRyZXN1bHRbJ2NsaWVudF9zZWNyZXQnXSA9PSAkY2xpZW50X3NlY3JldDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNQdWJsaWNDbGllbnQoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgIGlmICghJHJlc3VsdCA9ICR0aGlzLT5nZXRPYmplY3RCeVR5cGUoJ2NsaWVudF90YWJsZScsJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbXB0eSgkcmVzdWx0WydjbGllbnRfc2VjcmV0J10pOworICAgIH0KKworICAgIC8qIENsaWVudEludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmdldE9iamVjdEJ5VHlwZSgnY2xpZW50X3RhYmxlJywkY2xpZW50X2lkKTsKKworICAgICAgICByZXR1cm4gaXNfbnVsbCgkcmVzdWx0KSA/IGZhbHNlIDogJHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCA9IG51bGwsICRyZWRpcmVjdF91cmkgPSBudWxsLCAkZ3JhbnRfdHlwZXMgPSBudWxsLCAkc2NvcGUgPSBudWxsLCAkdXNlcl9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKworICAgICAgICAgICAgJHRoaXMtPnNldE9iamVjdEJ5VHlwZSgnY2xpZW50X3RhYmxlJywkY2xpZW50X2lkLCBhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJGNsaWVudF9zZWNyZXQsCisgICAgICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAgICAgJ2dyYW50X3R5cGVzJyAgID0+ICRncmFudF90eXBlcywKKyAgICAgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJHNjb3BlLAorICAgICAgICAgICAgICAgICd1c2VyX2lkJyAgICAgICA9PiAkdXNlcl9pZCwKKyAgICAgICAgICAgICkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPnNldE9iamVjdEJ5VHlwZSgnY2xpZW50X3RhYmxlJywkY2xpZW50X2lkLCBhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJGNsaWVudF9zZWNyZXQsCisgICAgICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAgICAgJ2dyYW50X3R5cGVzJyAgID0+ICRncmFudF90eXBlcywKKyAgICAgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJHNjb3BlLAorICAgICAgICAgICAgICAgICd1c2VyX2lkJyAgICAgICA9PiAkdXNlcl9pZCwKKyAgICAgICAgICAgICkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrUmVzdHJpY3RlZEdyYW50VHlwZSgkY2xpZW50X2lkLCAkZ3JhbnRfdHlwZSkKKyAgICB7CisgICAgICAgICRkZXRhaWxzID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCk7CisgICAgICAgIGlmIChpc3NldCgkZGV0YWlsc1snZ3JhbnRfdHlwZXMnXSkpIHsKKyAgICAgICAgICAgICRncmFudF90eXBlcyA9IGV4cGxvZGUoJyAnLCAkZGV0YWlsc1snZ3JhbnRfdHlwZXMnXSk7CisKKyAgICAgICAgICAgIHJldHVybiBpbl9hcnJheSgkZ3JhbnRfdHlwZSwgJGdyYW50X3R5cGVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGdyYW50X3R5cGVzIGFyZSBub3QgZGVmaW5lZCwgdGhlbiBub25lIGFyZSByZXN0cmljdGVkCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qIEFjY2Vzc1Rva2VuSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+Z2V0T2JqZWN0QnlUeXBlKCdhY2Nlc3NfdG9rZW5fdGFibGUnLCRhY2Nlc3NfdG9rZW4pOworCisgICAgICAgIHJldHVybiBpc19udWxsKCR0b2tlbikgPyBmYWxzZSA6ICR0b2tlbjsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gaWYgaXQgZXhpc3RzLCB1cGRhdGUgaXQuCisgICAgICAgIGlmICgkdGhpcy0+Z2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbikpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRPYmplY3RCeVR5cGUoJ2FjY2Vzc190b2tlbl90YWJsZScsJGFjY2Vzc190b2tlbiwgYXJyYXkoCisgICAgICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gJGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICdleHBpcmVzJyA9PiAkZXhwaXJlcywKKyAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUKKyAgICAgICAgICAgICkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPnNldE9iamVjdEJ5VHlwZSgnYWNjZXNzX3Rva2VuX3RhYmxlJywkYWNjZXNzX3Rva2VuLCAgYXJyYXkoCisgICAgICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gJGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICdleHBpcmVzJyA9PiAkZXhwaXJlcywKKyAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUKKyAgICAgICAgICAgICkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyogQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworICAgICAgICAkY29kZSA9ICR0aGlzLT5nZXRPYmplY3RCeVR5cGUoJ2NvZGVfdGFibGUnLCRjb2RlKTsKKworICAgICAgICByZXR1cm4gaXNfbnVsbCgkY29kZSkgPyBmYWxzZSA6ICRjb2RlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksICRleHBpcmVzLCAkc2NvcGUgPSBudWxsLCAkaWRfdG9rZW4gPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gaWYgaXQgZXhpc3RzLCB1cGRhdGUgaXQuCisgICAgICAgIGlmICgkdGhpcy0+Z2V0QXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0T2JqZWN0QnlUeXBlKCdjb2RlX3RhYmxlJywkY29kZSwgYXJyYXkoCisgICAgICAgICAgICAgICAgJ2F1dGhvcml6YXRpb25fY29kZScgPT4gJGNvZGUsCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJHJlZGlyZWN0X3VyaSwKKyAgICAgICAgICAgICAgICAnZXhwaXJlcycgPT4gJGV4cGlyZXMsCisgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUsCisgICAgICAgICAgICAgICAgJ2lkX3Rva2VuJyA9PiAkaWRfdG9rZW4sCisgICAgICAgICAgICApKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRPYmplY3RCeVR5cGUoJ2NvZGVfdGFibGUnLCRjb2RlLGFycmF5KAorICAgICAgICAgICAgICAgICdhdXRob3JpemF0aW9uX2NvZGUnID0+ICRjb2RlLAorICAgICAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICRjbGllbnRfaWQsCisgICAgICAgICAgICAgICAgJ3VzZXJfaWQnID0+ICR1c2VyX2lkLAorICAgICAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAgICAgJ2V4cGlyZXMnID0+ICRleHBpcmVzLAorICAgICAgICAgICAgICAgICdzY29wZScgPT4gJHNjb3BlLAorICAgICAgICAgICAgICAgICdpZF90b2tlbicgPT4gJGlkX3Rva2VuLAorICAgICAgICAgICAgKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlQXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworICAgICAgICAkdGhpcy0+ZGVsZXRlT2JqZWN0QnlUeXBlKCdjb2RlX3RhYmxlJywkY29kZSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyogVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrVXNlckNyZWRlbnRpYWxzKCR1c2VybmFtZSwgJHBhc3N3b3JkKQorICAgIHsKKyAgICAgICAgaWYgKCR1c2VyID0gJHRoaXMtPmdldFVzZXIoJHVzZXJuYW1lKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jaGVja1Bhc3N3b3JkKCR1c2VyLCAkcGFzc3dvcmQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyRGV0YWlscygkdXNlcm5hbWUpCisgICAgeworICAgICAgICBpZiAoJHVzZXIgPSAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICAkdXNlclsndXNlcl9pZCddID0gJHVzZXJbJ3VzZXJuYW1lJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHVzZXI7CisgICAgfQorCisgICAgLyogUmVmcmVzaFRva2VuSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbikKKyAgICB7CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5nZXRPYmplY3RCeVR5cGUoJ3JlZnJlc2hfdG9rZW5fdGFibGUnLCRyZWZyZXNoX3Rva2VuKTsKKworICAgICAgICByZXR1cm4gaXNfbnVsbCgkdG9rZW4pID8gZmFsc2UgOiAkdG9rZW47CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnNldE9iamVjdEJ5VHlwZSgncmVmcmVzaF90b2tlbl90YWJsZScsJHJlZnJlc2hfdG9rZW4sIGFycmF5KAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICRyZWZyZXNoX3Rva2VuLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICd1c2VyX2lkJyA9PiAkdXNlcl9pZCwKKyAgICAgICAgICAgICdleHBpcmVzJyA9PiAkZXhwaXJlcywKKyAgICAgICAgICAgICdzY29wZScgPT4gJHNjb3BlCisgICAgICAgICkpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbikKKyAgICB7CisgICAgICAgICR0aGlzLT5kZWxldGVPYmplY3RCeVR5cGUoJ3JlZnJlc2hfdG9rZW5fdGFibGUnLCRyZWZyZXNoX3Rva2VuKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBwbGFpbnRleHQgcGFzc3dvcmRzIGFyZSBiYWQhICBPdmVycmlkZSB0aGlzIGZvciB5b3VyIGFwcGxpY2F0aW9uCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoZWNrUGFzc3dvcmQoJHVzZXIsICRwYXNzd29yZCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdXNlclsncGFzc3dvcmQnXSA9PSAkcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXIoJHVzZXJuYW1lKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5nZXRPYmplY3RCeVR5cGUoJ3VzZXJfdGFibGUnLCR1c2VybmFtZSk7CisKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJHJlc3VsdCkgPyBmYWxzZSA6ICRyZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFVzZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRmaXJzdE5hbWUgPSBudWxsLCAkbGFzdE5hbWUgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT5nZXRVc2VyKCR1c2VybmFtZSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRPYmplY3RCeVR5cGUoJ3VzZXJfdGFibGUnLCR1c2VybmFtZSwgYXJyYXkoCisgICAgICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsCisgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAkcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgJ2ZpcnN0X25hbWUnID0+ICRmaXJzdE5hbWUsCisgICAgICAgICAgICAgICAgJ2xhc3RfbmFtZScgPT4gJGxhc3ROYW1lCisgICAgICAgICAgICApKTsKKworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPnNldE9iamVjdEJ5VHlwZSgndXNlcl90YWJsZScsJHVzZXJuYW1lLCBhcnJheSgKKyAgICAgICAgICAgICAgICAndXNlcm5hbWUnID0+ICR1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAncGFzc3dvcmQnID0+ICRwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAnZmlyc3RfbmFtZScgPT4gJGZpcnN0TmFtZSwKKyAgICAgICAgICAgICAgICAnbGFzdF9uYW1lJyA9PiAkbGFzdE5hbWUKKyAgICAgICAgICAgICkpOworCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xpZW50S2V5KCRjbGllbnRfaWQsICRzdWJqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCEkand0ID0gJHRoaXMtPmdldE9iamVjdEJ5VHlwZSgnand0X3RhYmxlJywkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzc2V0KCRqd3RbJ3N1YmplY3QnXSkgJiYgJGp3dFsnc3ViamVjdCddID09ICRzdWJqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gJGp3dFsna2V5J107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudFNjb3BlKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICBpZiAoISRjbGllbnREZXRhaWxzID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkY2xpZW50RGV0YWlsc1snc2NvcGUnXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkY2xpZW50RGV0YWlsc1snc2NvcGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyYXRpb24sICRqdGkpCisgICAgeworICAgICAgICAvL1RPRE86IE5lZWRzIGNvdWNoYmFzZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ2dldEp0aSgpIGZvciB0aGUgQ291Y2hiYXNlIGRyaXZlciBpcyBjdXJyZW50bHkgdW5pbXBsZW1lbnRlZC4nKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0SnRpKCRjbGllbnRfaWQsICRzdWJqZWN0LCAkYXVkaWVuY2UsICRleHBpcmF0aW9uLCAkanRpKQorICAgIHsKKyAgICAgICAgLy9UT0RPOiBOZWVkcyBjb3VjaGJhc2UgaW1wbGVtZW50YXRpb24uCisgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCdzZXRKdGkoKSBmb3IgdGhlIENvdWNoYmFzZSBkcml2ZXIgaXMgY3VycmVudGx5IHVuaW1wbGVtZW50ZWQuJyk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvRHluYW1vREIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9EeW5hbW9EQi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU0Y2IzNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvRHluYW1vREIucGhwCkBAIC0wLDAgKzEsNTQwIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK3VzZSBBd3NcRHluYW1vRGJcRHluYW1vRGJDbGllbnQ7CisKK3VzZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2VcVXNlckNsYWltc0ludGVyZmFjZTsKK3VzZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgYXMgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2U7CisvKioKKyAqIER5bmFtb0RCIHN0b3JhZ2UgZm9yIGFsbCBzdG9yYWdlIHR5cGVzCisgKgorICogVG8gdXNlLCBpbnN0YWxsICJhd3MvYXdzLXNkay1waHAiIHZpYSBjb21wb3NlcgorICogPGNvZGU+CisgKiAgY29tcG9zZXIgcmVxdWlyZSBhd3MvYXdzLXNkay1waHA6ZGV2LW1hc3RlcgorICogPC9jb2RlPgorICoKKyAqIE9uY2UgdGhpcyBpcyBkb25lLCBpbnN0YW50aWF0ZSB0aGUgRHluYW1vREIgY2xpZW50CisgKiA8Y29kZT4KKyAqICAkc3RvcmFnZSA9IG5ldyBPQXV0aDJcU3RvcmFnZVxEeW5hbW9kYihhcnJheSgia2V5IiA9PiAiWU9VUktFWSIsICJzZWNyZXQiID0+ICJZT1VSU0VDUkVUIiwgInJlZ2lvbiIgPT4gIllPVVJSRUdJT04iKSk7CisgKiA8L2NvZGU+CisgKgorICogVGFibGUgOgorICogIC0gb2F1dGhfYWNjZXNzX3Rva2VucyAocHJpbWFyeSBoYXNoIGtleSA6IGFjY2Vzc190b2tlbikKKyAqICAtIG9hdXRoX2F1dGhvcml6YXRpb25fY29kZXMgKHByaW1hcnkgaGFzaCBrZXkgOiBhdXRob3JpemF0aW9uX2NvZGUpCisgKiAgLSBvYXV0aF9jbGllbnRzIChwcmltYXJ5IGhhc2gga2V5IDogY2xpZW50X2lkKQorICogIC0gb2F1dGhfand0IChwcmltYXJ5IGhhc2gga2V5IDogY2xpZW50X2lkLCBwcmltYXJ5IHJhbmdlIGtleSA6IHN1YmplY3QpCisgKiAgLSBvYXV0aF9wdWJsaWNfa2V5cyAocHJpbWFyeSBoYXNoIGtleSA6IGNsaWVudF9pZCkKKyAqICAtIG9hdXRoX3JlZnJlc2hfdG9rZW5zIChwcmltYXJ5IGhhc2gga2V5IDogcmVmcmVzaF90b2tlbikKKyAqICAtIG9hdXRoX3Njb3BlcyAocHJpbWFyeSBoYXNoIGtleSA6IHNjb3BlLCBzZWNvbmRhcnkgaW5kZXggOiBpc19kZWZhdWx0LWluZGV4IGhhc2gga2V5IGlzX2RlZmF1bHQpCisgKiAgLSBvYXV0aF91c2VycyAocHJpbWFyeSBoYXNoIGtleSA6IHVzZXJuYW1lKQorICoKKyAqIEBhdXRob3IgRnJlZGVyaWMgQVVHVVNURSA8ZnJlZGVyaWMuYXVndXN0ZSBhdCBnbWFpbCBkb3QgY29tPgorICovCitjbGFzcyBEeW5hbW9EQiBpbXBsZW1lbnRzCisgICAgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UsCisgICAgQWNjZXNzVG9rZW5JbnRlcmZhY2UsCisgICAgQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIFJlZnJlc2hUb2tlbkludGVyZmFjZSwKKyAgICBKd3RCZWFyZXJJbnRlcmZhY2UsCisgICAgU2NvcGVJbnRlcmZhY2UsCisgICAgUHVibGljS2V5SW50ZXJmYWNlLAorICAgIFVzZXJDbGFpbXNJbnRlcmZhY2UsCisgICAgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKK3sKKyAgICBwcm90ZWN0ZWQgJGNsaWVudDsKKyAgICBwcm90ZWN0ZWQgJGNvbmZpZzsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY29ubmVjdGlvbiwgJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICBpZiAoISgkY29ubmVjdGlvbiBpbnN0YW5jZW9mIER5bmFtb0RiQ2xpZW50KSkgeworICAgICAgICAgICAgaWYgKCFpc19hcnJheSgkY29ubmVjdGlvbikpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignRmlyc3QgYXJndW1lbnQgdG8gT0F1dGgyXFN0b3JhZ2VcRHluYW1vZGIgbXVzdCBiZSBhbiBpbnN0YW5jZSBhIGNvbmZpZ3VyYXRpb24gYXJyYXkgY29udGFpbnQga2V5LCBzZWNyZXQsIHJlZ2lvbicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCJrZXkiLCRjb25uZWN0aW9uKSB8fCAhYXJyYXlfa2V5X2V4aXN0cygic2VjcmV0IiwkY29ubmVjdGlvbikgfHwgIWFycmF5X2tleV9leGlzdHMoInJlZ2lvbiIsJGNvbm5lY3Rpb24pICkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdGaXJzdCBhcmd1bWVudCB0byBPQXV0aDJcU3RvcmFnZVxEeW5hbW9kYiBtdXN0IGJlIGFuIGluc3RhbmNlIGEgY29uZmlndXJhdGlvbiBhcnJheSBjb250YWludCBrZXksIHNlY3JldCwgcmVnaW9uJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkdGhpcy0+Y2xpZW50ID0gRHluYW1vRGJDbGllbnQ6OmZhY3RvcnkoYXJyYXkoCisgICAgICAgICAgICAgICAgJ2tleScgPT4gJGNvbm5lY3Rpb25bImtleSJdLAorICAgICAgICAgICAgICAgICdzZWNyZXQnID0+ICRjb25uZWN0aW9uWyJzZWNyZXQiXSwKKyAgICAgICAgICAgICAgICAncmVnaW9uJyA9PiRjb25uZWN0aW9uWyJyZWdpb24iXQorICAgICAgICAgICAgKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdGhpcy0+Y2xpZW50ID0gJGNvbm5lY3Rpb247CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X3RhYmxlJyA9PiAnb2F1dGhfY2xpZW50cycsCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuX3RhYmxlJyA9PiAnb2F1dGhfYWNjZXNzX3Rva2VucycsCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbl90YWJsZScgPT4gJ29hdXRoX3JlZnJlc2hfdG9rZW5zJywKKyAgICAgICAgICAgICdjb2RlX3RhYmxlJyA9PiAnb2F1dGhfYXV0aG9yaXphdGlvbl9jb2RlcycsCisgICAgICAgICAgICAndXNlcl90YWJsZScgPT4gJ29hdXRoX3VzZXJzJywKKyAgICAgICAgICAgICdqd3RfdGFibGUnICA9PiAnb2F1dGhfand0JywKKyAgICAgICAgICAgICdzY29wZV90YWJsZScgID0+ICdvYXV0aF9zY29wZXMnLAorICAgICAgICAgICAgJ3B1YmxpY19rZXlfdGFibGUnICA9PiAnb2F1dGhfcHVibGljX2tleXMnLAorICAgICAgICApLCAkY29uZmlnKTsKKyAgICB9CisKKyAgICAvKiBPQXV0aDJcU3RvcmFnZVxDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja0NsaWVudENyZWRlbnRpYWxzKCRjbGllbnRfaWQsICRjbGllbnRfc2VjcmV0ID0gbnVsbCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWydjbGllbnRfdGFibGUnXSwKKyAgICAgICAgICAgICJLZXkiID0+IGFycmF5KCdjbGllbnRfaWQnICAgPT4gYXJyYXkoJ1MnID0+ICRjbGllbnRfaWQpKQorICAgICAgICApKTsKKworICAgICAgICByZXR1cm4gICRyZXN1bHQtPmNvdW50KCk9PTEgJiYgJHJlc3VsdFsiSXRlbSJdWyJjbGllbnRfc2VjcmV0Il1bIlMiXSA9PSAkY2xpZW50X3NlY3JldDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNQdWJsaWNDbGllbnQoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWydjbGllbnRfdGFibGUnXSwKKyAgICAgICAgICAgICJLZXkiID0+IGFycmF5KCdjbGllbnRfaWQnICAgPT4gYXJyYXkoJ1MnID0+ICRjbGllbnRfaWQpKQorICAgICAgICApKTsKKworICAgICAgICBpZiAoJHJlc3VsdC0+Y291bnQoKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlIDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbXB0eSgkcmVzdWx0WyJJdGVtIl1bImNsaWVudF9zZWNyZXQiXSk7CisgICAgfQorCisgICAgLyogT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWydjbGllbnRfdGFibGUnXSwKKyAgICAgICAgICAgICJLZXkiID0+IGFycmF5KCdjbGllbnRfaWQnICAgPT4gYXJyYXkoJ1MnID0+ICRjbGllbnRfaWQpKQorICAgICAgICApKTsKKyAgICAgICAgaWYgKCRyZXN1bHQtPmNvdW50KCk9PTApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZSA7CisgICAgICAgIH0KKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5keW5hbW8yYXJyYXkoJHJlc3VsdCk7CisgICAgICAgIGZvcmVhY2ggKGFycmF5KCdjbGllbnRfaWQnLCAnY2xpZW50X3NlY3JldCcsICdyZWRpcmVjdF91cmknLCAnZ3JhbnRfdHlwZXMnLCAnc2NvcGUnLCAndXNlcl9pZCcpIGFzICRrZXkgPT4gJHZhbCkgeworICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzICgkdmFsLCAkcmVzdWx0KSkgeworICAgICAgICAgICAgICAgICRyZXN1bHRbJHZhbF0gPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldENsaWVudERldGFpbHMoJGNsaWVudF9pZCwgJGNsaWVudF9zZWNyZXQgPSBudWxsLCAkcmVkaXJlY3RfdXJpID0gbnVsbCwgJGdyYW50X3R5cGVzID0gbnVsbCwgJHNjb3BlID0gbnVsbCwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJGNsaWVudERhdGEgPSBjb21wYWN0KCdjbGllbnRfaWQnLCAnY2xpZW50X3NlY3JldCcsICdyZWRpcmVjdF91cmknLCAnZ3JhbnRfdHlwZXMnLCAnc2NvcGUnLCAndXNlcl9pZCcpOworICAgICAgICAkY2xpZW50RGF0YSA9IGFycmF5X2ZpbHRlcigkY2xpZW50RGF0YSwgJ3NlbGY6OmlzTm90RW1wdHknKTsKKworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICAkdGhpcy0+Y29uZmlnWydjbGllbnRfdGFibGUnXSwKKyAgICAgICAgICAgICdJdGVtJyA9PiAkdGhpcy0+Y2xpZW50LT5mb3JtYXRBdHRyaWJ1dGVzKCRjbGllbnREYXRhKQorICAgICAgICApKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tSZXN0cmljdGVkR3JhbnRUeXBlKCRjbGllbnRfaWQsICRncmFudF90eXBlKQorICAgIHsKKyAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzc2V0KCRkZXRhaWxzWydncmFudF90eXBlcyddKSkgeworICAgICAgICAgICAgJGdyYW50X3R5cGVzID0gZXhwbG9kZSgnICcsICRkZXRhaWxzWydncmFudF90eXBlcyddKTsKKworICAgICAgICAgICAgcmV0dXJuIGluX2FycmF5KCRncmFudF90eXBlLCAoYXJyYXkpICRncmFudF90eXBlcyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBncmFudF90eXBlcyBhcmUgbm90IGRlZmluZWQsIHRoZW4gbm9uZSBhcmUgcmVzdHJpY3RlZAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiBPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jbGllbnQtPmdldEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAiVGFibGVOYW1lIj0+ICR0aGlzLT5jb25maWdbJ2FjY2Vzc190b2tlbl90YWJsZSddLAorICAgICAgICAgICAgIktleSIgPT4gYXJyYXkoJ2FjY2Vzc190b2tlbicgICA9PiBhcnJheSgnUycgPT4gJGFjY2Vzc190b2tlbikpCisgICAgICAgICkpOworICAgICAgICBpZiAoJHJlc3VsdC0+Y291bnQoKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlIDsKKyAgICAgICAgfQorICAgICAgICAkdG9rZW4gPSAkdGhpcy0+ZHluYW1vMmFycmF5KCRyZXN1bHQpOworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cyAoJ2V4cGlyZXMnLCAkdG9rZW4pKSB7CisgICAgICAgICAgICAkdG9rZW5bJ2V4cGlyZXMnXSA9IHN0cnRvdGltZSgkdG9rZW5bJ2V4cGlyZXMnXSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwpCisgICAgeworICAgICAgICAvLyBjb252ZXJ0IGV4cGlyZXMgdG8gZGF0ZXN0cmluZworICAgICAgICAkZXhwaXJlcyA9IGRhdGUoJ1ktbS1kIEg6aTpzJywgJGV4cGlyZXMpOworCisgICAgICAgICRjbGllbnREYXRhID0gY29tcGFjdCgnYWNjZXNzX3Rva2VuJywgJ2NsaWVudF9pZCcsICd1c2VyX2lkJywgJ2V4cGlyZXMnLCAnc2NvcGUnKTsKKyAgICAgICAgJGNsaWVudERhdGEgPSBhcnJheV9maWx0ZXIoJGNsaWVudERhdGEsICdzZWxmOjppc05vdEVtcHR5Jyk7CisKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAgJHRoaXMtPmNvbmZpZ1snYWNjZXNzX3Rva2VuX3RhYmxlJ10sCisgICAgICAgICAgICAnSXRlbScgPT4gJHRoaXMtPmNsaWVudC0+Zm9ybWF0QXR0cmlidXRlcygkY2xpZW50RGF0YSkKKyAgICAgICAgKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdW5zZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jbGllbnQtPmRlbGV0ZUl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAgJHRoaXMtPmNvbmZpZ1snYWNjZXNzX3Rva2VuX3RhYmxlJ10sCisgICAgICAgICAgICAnS2V5JyA9PiAkdGhpcy0+Y2xpZW50LT5mb3JtYXRBdHRyaWJ1dGVzKGFycmF5KCJhY2Nlc3NfdG9rZW4iID0+ICRhY2Nlc3NfdG9rZW4pKSwKKyAgICAgICAgICAgICdSZXR1cm5WYWx1ZXMnID0+ICdBTExfT0xEJywKKyAgICAgICAgKSk7CisKKyAgICAgICAgcmV0dXJuIG51bGwgIT09ICRyZXN1bHQtPmdldCgnQXR0cmlidXRlcycpOworICAgIH0KKworICAgIC8qIE9BdXRoMlxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jbGllbnQtPmdldEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAiVGFibGVOYW1lIj0+ICR0aGlzLT5jb25maWdbJ2NvZGVfdGFibGUnXSwKKyAgICAgICAgICAgICJLZXkiID0+IGFycmF5KCdhdXRob3JpemF0aW9uX2NvZGUnICAgPT4gYXJyYXkoJ1MnID0+ICRjb2RlKSkKKyAgICAgICAgKSk7CisgICAgICAgIGlmICgkcmVzdWx0LT5jb3VudCgpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2UgOworICAgICAgICB9CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5keW5hbW8yYXJyYXkoJHJlc3VsdCk7CisgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygiaWRfdG9rZW4iLCAkdG9rZW4gKSkgeworICAgICAgICAgICAgJHRva2VuWydpZF90b2tlbiddID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAkdG9rZW5bJ2V4cGlyZXMnXSA9IHN0cnRvdGltZSgkdG9rZW5bJ2V4cGlyZXMnXSk7CisKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkYXV0aG9yaXphdGlvbl9jb2RlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwsICRpZF90b2tlbiA9IG51bGwpCisgICAgeworICAgICAgICAvLyBjb252ZXJ0IGV4cGlyZXMgdG8gZGF0ZXN0cmluZworICAgICAgICAkZXhwaXJlcyA9IGRhdGUoJ1ktbS1kIEg6aTpzJywgJGV4cGlyZXMpOworCisgICAgICAgICRjbGllbnREYXRhID0gY29tcGFjdCgnYXV0aG9yaXphdGlvbl9jb2RlJywgJ2NsaWVudF9pZCcsICd1c2VyX2lkJywgJ3JlZGlyZWN0X3VyaScsICdleHBpcmVzJywgJ2lkX3Rva2VuJywgJ3Njb3BlJyk7CisgICAgICAgICRjbGllbnREYXRhID0gYXJyYXlfZmlsdGVyKCRjbGllbnREYXRhLCAnc2VsZjo6aXNOb3RFbXB0eScpOworCisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5wdXRJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gICR0aGlzLT5jb25maWdbJ2NvZGVfdGFibGUnXSwKKyAgICAgICAgICAgICdJdGVtJyA9PiAkdGhpcy0+Y2xpZW50LT5mb3JtYXRBdHRyaWJ1dGVzKCRjbGllbnREYXRhKQorICAgICAgICApKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlQXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworCisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5kZWxldGVJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gICR0aGlzLT5jb25maWdbJ2NvZGVfdGFibGUnXSwKKyAgICAgICAgICAgICdLZXknID0+ICR0aGlzLT5jbGllbnQtPmZvcm1hdEF0dHJpYnV0ZXMoYXJyYXkoImF1dGhvcml6YXRpb25fY29kZSIgPT4gJGNvZGUpKQorICAgICAgICApKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiBPQXV0aDJcU3RvcmFnZVxVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tVc2VyQ3JlZGVudGlhbHMoJHVzZXJuYW1lLCAkcGFzc3dvcmQpCisgICAgeworICAgICAgICBpZiAoJHVzZXIgPSAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNoZWNrUGFzc3dvcmQoJHVzZXIsICRwYXNzd29yZCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpOworICAgIH0KKworICAgIC8qIFVzZXJDbGFpbXNJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckNsYWltcygkdXNlcl9pZCwgJGNsYWltcykKKyAgICB7CisgICAgICAgIGlmICghJHVzZXJEZXRhaWxzID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzKCR1c2VyX2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJGNsYWltcyA9IGV4cGxvZGUoJyAnLCB0cmltKCRjbGFpbXMpKTsKKyAgICAgICAgJHVzZXJDbGFpbXMgPSBhcnJheSgpOworCisgICAgICAgIC8vIGZvciBlYWNoIHJlcXVlc3RlZCBjbGFpbSwgaWYgdGhlIHVzZXIgaGFzIHRoZSBjbGFpbSwgc2V0IGl0IGluIHRoZSByZXNwb25zZQorICAgICAgICAkdmFsaWRDbGFpbXMgPSBleHBsb2RlKCcgJywgc2VsZjo6VkFMSURfQ0xBSU1TKTsKKyAgICAgICAgZm9yZWFjaCAoJHZhbGlkQ2xhaW1zIGFzICR2YWxpZENsYWltKSB7CisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHZhbGlkQ2xhaW0sICRjbGFpbXMpKSB7CisgICAgICAgICAgICAgICAgaWYgKCR2YWxpZENsYWltID09ICdhZGRyZXNzJykgeworICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzIGlzIGFuIG9iamVjdCB3aXRoIHN1YmZpZWxkcworICAgICAgICAgICAgICAgICAgICAkdXNlckNsYWltc1snYWRkcmVzcyddID0gJHRoaXMtPmdldFVzZXJDbGFpbSgkdmFsaWRDbGFpbSwgJHVzZXJEZXRhaWxzWydhZGRyZXNzJ10gPzogJHVzZXJEZXRhaWxzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkdXNlckNsYWltcyA9IGFycmF5X21lcmdlKCR1c2VyQ2xhaW1zLCAkdGhpcy0+Z2V0VXNlckNsYWltKCR2YWxpZENsYWltLCAkdXNlckRldGFpbHMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHVzZXJDbGFpbXM7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFVzZXJDbGFpbSgkY2xhaW0sICR1c2VyRGV0YWlscykKKyAgICB7CisgICAgICAgICR1c2VyQ2xhaW1zID0gYXJyYXkoKTsKKyAgICAgICAgJGNsYWltVmFsdWVzU3RyaW5nID0gY29uc3RhbnQoc3ByaW50Zignc2VsZjo6JXNfQ0xBSU1fVkFMVUVTJywgc3RydG91cHBlcigkY2xhaW0pKSk7CisgICAgICAgICRjbGFpbVZhbHVlcyA9IGV4cGxvZGUoJyAnLCAkY2xhaW1WYWx1ZXNTdHJpbmcpOworCisgICAgICAgIGZvcmVhY2ggKCRjbGFpbVZhbHVlcyBhcyAkdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICgkdmFsdWUgPT0gJ2VtYWlsX3ZlcmlmaWVkJykgeworICAgICAgICAgICAgICAgICR1c2VyQ2xhaW1zWyR2YWx1ZV0gPSAkdXNlckRldGFpbHNbJHZhbHVlXT09J3RydWUnID8gdHJ1ZSA6IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkdXNlckNsYWltc1skdmFsdWVdID0gaXNzZXQoJHVzZXJEZXRhaWxzWyR2YWx1ZV0pID8gJHVzZXJEZXRhaWxzWyR2YWx1ZV0gOiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR1c2VyQ2xhaW1zOworICAgIH0KKworICAgIC8qIE9BdXRoMlxTdG9yYWdlXFJlZnJlc2hUb2tlbkludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4pCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNsaWVudC0+Z2V0SXRlbShhcnJheSgKKyAgICAgICAgICAgICJUYWJsZU5hbWUiPT4gJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl90YWJsZSddLAorICAgICAgICAgICAgIktleSIgPT4gYXJyYXkoJ3JlZnJlc2hfdG9rZW4nICAgPT4gYXJyYXkoJ1MnID0+ICRyZWZyZXNoX3Rva2VuKSkKKyAgICAgICAgKSk7CisgICAgICAgIGlmICgkcmVzdWx0LT5jb3VudCgpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2UgOworICAgICAgICB9CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5keW5hbW8yYXJyYXkoJHJlc3VsdCk7CisgICAgICAgICR0b2tlblsnZXhwaXJlcyddID0gc3RydG90aW1lKCR0b2tlblsnZXhwaXJlcyddKTsKKworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIGNvbnZlcnQgZXhwaXJlcyB0byBkYXRlc3RyaW5nCisgICAgICAgICRleHBpcmVzID0gZGF0ZSgnWS1tLWQgSDppOnMnLCAkZXhwaXJlcyk7CisKKyAgICAgICAgJGNsaWVudERhdGEgPSBjb21wYWN0KCdyZWZyZXNoX3Rva2VuJywgJ2NsaWVudF9pZCcsICd1c2VyX2lkJywgJ2V4cGlyZXMnLCAnc2NvcGUnKTsKKyAgICAgICAgJGNsaWVudERhdGEgPSBhcnJheV9maWx0ZXIoJGNsaWVudERhdGEsICdzZWxmOjppc05vdEVtcHR5Jyk7CisKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAgJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl90YWJsZSddLAorICAgICAgICAgICAgJ0l0ZW0nID0+ICR0aGlzLT5jbGllbnQtPmZvcm1hdEF0dHJpYnV0ZXMoJGNsaWVudERhdGEpCisgICAgICAgICkpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbikKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5kZWxldGVJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gICR0aGlzLT5jb25maWdbJ3JlZnJlc2hfdG9rZW5fdGFibGUnXSwKKyAgICAgICAgICAgICdLZXknID0+ICR0aGlzLT5jbGllbnQtPmZvcm1hdEF0dHJpYnV0ZXMoYXJyYXkoInJlZnJlc2hfdG9rZW4iID0+ICRyZWZyZXNoX3Rva2VuKSkKKyAgICAgICAgKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gcGxhaW50ZXh0IHBhc3N3b3JkcyBhcmUgYmFkISAgT3ZlcnJpZGUgdGhpcyBmb3IgeW91ciBhcHBsaWNhdGlvbgorICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjaGVja1Bhc3N3b3JkKCR1c2VyLCAkcGFzc3dvcmQpCisgICAgeworICAgICAgICByZXR1cm4gJHVzZXJbJ3Bhc3N3b3JkJ10gPT0gJHRoaXMtPmhhc2hQYXNzd29yZCgkcGFzc3dvcmQpOworICAgIH0KKworICAgIC8vIHVzZSBhIHNlY3VyZSBoYXNoaW5nIGFsZ29yaXRobSB3aGVuIHN0b3JpbmcgcGFzc3dvcmRzLiBPdmVycmlkZSB0aGlzIGZvciB5b3VyIGFwcGxpY2F0aW9uCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhc2hQYXNzd29yZCgkcGFzc3dvcmQpCisgICAgeworICAgICAgICByZXR1cm4gc2hhMSgkcGFzc3dvcmQpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWyd1c2VyX3RhYmxlJ10sCisgICAgICAgICAgICAiS2V5IiA9PiBhcnJheSgndXNlcm5hbWUnICAgPT4gYXJyYXkoJ1MnID0+ICR1c2VybmFtZSkpCisgICAgICAgICkpOworICAgICAgICBpZiAoJHJlc3VsdC0+Y291bnQoKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlIDsKKyAgICAgICAgfQorICAgICAgICAkdG9rZW4gPSAkdGhpcy0+ZHluYW1vMmFycmF5KCRyZXN1bHQpOworICAgICAgICAkdG9rZW5bJ3VzZXJfaWQnXSA9ICR1c2VybmFtZTsKKworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VyKCR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZmlyc3RfbmFtZSA9IG51bGwsICRsYXN0X25hbWUgPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gZG8gbm90IHN0b3JlIGluIHBsYWludGV4dAorICAgICAgICAkcGFzc3dvcmQgPSAkdGhpcy0+aGFzaFBhc3N3b3JkKCRwYXNzd29yZCk7CisKKyAgICAgICAgJGNsaWVudERhdGEgPSBjb21wYWN0KCd1c2VybmFtZScsICdwYXNzd29yZCcsICdmaXJzdF9uYW1lJywgJ2xhc3RfbmFtZScpOworICAgICAgICAkY2xpZW50RGF0YSA9IGFycmF5X2ZpbHRlcigkY2xpZW50RGF0YSwgJ3NlbGY6OmlzTm90RW1wdHknKTsKKworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICAkdGhpcy0+Y29uZmlnWyd1c2VyX3RhYmxlJ10sCisgICAgICAgICAgICAnSXRlbScgPT4gJHRoaXMtPmNsaWVudC0+Zm9ybWF0QXR0cmlidXRlcygkY2xpZW50RGF0YSkKKyAgICAgICAgKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICB9CisKKyAgICAvKiBTY29wZUludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzY29wZUV4aXN0cygkc2NvcGUpCisgICAgeworICAgICAgICAkc2NvcGUgPSBleHBsb2RlKCcgJywgJHNjb3BlKTsKKyAgICAgICAgJHNjb3BlX3F1ZXJ5ID0gYXJyYXkoKTsKKyAgICAgICAgJGNvdW50ID0gMDsKKyAgICAgICAgZm9yZWFjaCAoJHNjb3BlIGFzICRrZXkgPT4gJHZhbCkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jbGllbnQtPnF1ZXJ5KGFycmF5KAorICAgICAgICAgICAgICAgICdUYWJsZU5hbWUnICAgICA9PiAkdGhpcy0+Y29uZmlnWydzY29wZV90YWJsZSddLAorICAgICAgICAgICAgICAgICdTZWxlY3QnICAgICAgICA9PiAnQ09VTlQnLAorICAgICAgICAgICAgICAgICdLZXlDb25kaXRpb25zJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICdBdHRyaWJ1dGVWYWx1ZUxpc3QnID0+IGFycmF5KGFycmF5KCdTJyA9PiAkdmFsKSksCisgICAgICAgICAgICAgICAgICAgICAgICAnQ29tcGFyaXNvbk9wZXJhdG9yJyA9PiAnRVEnCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICRjb3VudCArPSAkcmVzdWx0WydDb3VudCddOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRjb3VudCA9PSBjb3VudCgkc2NvcGUpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWZhdWx0U2NvcGUoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworCisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5xdWVyeShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICR0aGlzLT5jb25maWdbJ3Njb3BlX3RhYmxlJ10sCisgICAgICAgICAgICAnSW5kZXhOYW1lJyA9PiAnaXNfZGVmYXVsdC1pbmRleCcsCisgICAgICAgICAgICAnU2VsZWN0JyA9PiAnQUxMX0FUVFJJQlVURVMnLAorICAgICAgICAgICAgJ0tleUNvbmRpdGlvbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICdpc19kZWZhdWx0JyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ0F0dHJpYnV0ZVZhbHVlTGlzdCcgPT4gYXJyYXkoYXJyYXkoJ1MnID0+ICd0cnVlJykpLAorICAgICAgICAgICAgICAgICAgICAnQ29tcGFyaXNvbk9wZXJhdG9yJyA9PiAnRVEnLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICApCisgICAgICAgICkpOworICAgICAgICAkZGVmYXVsdFNjb3BlID0gYXJyYXkoKTsKKyAgICAgICAgaWYgKCRyZXN1bHQtPmNvdW50KCkgPiAwKSB7CisgICAgICAgICAgICAkYXJyYXkgPSAkcmVzdWx0LT50b0FycmF5KCk7CisgICAgICAgICAgICBmb3JlYWNoICgkYXJyYXlbIkl0ZW1zIl0gYXMgJGl0ZW0pIHsKKyAgICAgICAgICAgICAgICAkZGVmYXVsdFNjb3BlW10gID0gJGl0ZW1bJ3Njb3BlJ11bJ1MnXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGVtcHR5KCRkZWZhdWx0U2NvcGUpID8gbnVsbCA6IGltcGxvZGUoJyAnLCAkZGVmYXVsdFNjb3BlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qIEpXVEJlYXJlckludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRLZXkoJGNsaWVudF9pZCwgJHN1YmplY3QpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNsaWVudC0+Z2V0SXRlbShhcnJheSgKKyAgICAgICAgICAgICJUYWJsZU5hbWUiPT4gJHRoaXMtPmNvbmZpZ1snand0X3RhYmxlJ10sCisgICAgICAgICAgICAiS2V5IiA9PiBhcnJheSgnY2xpZW50X2lkJyAgID0+IGFycmF5KCdTJyA9PiAkY2xpZW50X2lkKSwgJ3N1YmplY3QnID0+IGFycmF5KCdTJyA9PiAkc3ViamVjdCkpCisgICAgICAgICkpOworICAgICAgICBpZiAoJHJlc3VsdC0+Y291bnQoKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlIDsKKyAgICAgICAgfQorICAgICAgICAkdG9rZW4gPSAkdGhpcy0+ZHluYW1vMmFycmF5KCRyZXN1bHQpOworCisgICAgICAgIHJldHVybiAkdG9rZW5bJ3B1YmxpY19rZXknXTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xpZW50U2NvcGUoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgIGlmICghJGNsaWVudERldGFpbHMgPSAkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzc2V0KCRjbGllbnREZXRhaWxzWydzY29wZSddKSkgeworICAgICAgICAgICAgcmV0dXJuICRjbGllbnREZXRhaWxzWydzY29wZSddOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJlcywgJGp0aSkKKyAgICB7CisgICAgICAgIC8vVE9ETyBub3QgdXNlLgorICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyZXMsICRqdGkpCisgICAgeworICAgICAgICAvL1RPRE8gbm90IHVzZS4KKyAgICB9CisKKyAgICAvKiBQdWJsaWNLZXlJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHVibGljS2V5KCRjbGllbnRfaWQgPSAnMCcpCisgICAgeworCisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWydwdWJsaWNfa2V5X3RhYmxlJ10sCisgICAgICAgICAgICAiS2V5IiA9PiBhcnJheSgnY2xpZW50X2lkJyAgID0+IGFycmF5KCdTJyA9PiAkY2xpZW50X2lkKSkKKyAgICAgICAgKSk7CisgICAgICAgIGlmICgkcmVzdWx0LT5jb3VudCgpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2UgOworICAgICAgICB9CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5keW5hbW8yYXJyYXkoJHJlc3VsdCk7CisKKyAgICAgICAgcmV0dXJuICR0b2tlblsncHVibGljX2tleSddOworCisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFByaXZhdGVLZXkoJGNsaWVudF9pZCA9ICcwJykKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWydwdWJsaWNfa2V5X3RhYmxlJ10sCisgICAgICAgICAgICAiS2V5IiA9PiBhcnJheSgnY2xpZW50X2lkJyAgID0+IGFycmF5KCdTJyA9PiAkY2xpZW50X2lkKSkKKyAgICAgICAgKSk7CisgICAgICAgIGlmICgkcmVzdWx0LT5jb3VudCgpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2UgOworICAgICAgICB9CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5keW5hbW8yYXJyYXkoJHJlc3VsdCk7CisKKyAgICAgICAgcmV0dXJuICR0b2tlblsncHJpdmF0ZV9rZXknXTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW5jcnlwdGlvbkFsZ29yaXRobSgkY2xpZW50X2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y2xpZW50LT5nZXRJdGVtKGFycmF5KAorICAgICAgICAgICAgIlRhYmxlTmFtZSI9PiAkdGhpcy0+Y29uZmlnWydwdWJsaWNfa2V5X3RhYmxlJ10sCisgICAgICAgICAgICAiS2V5IiA9PiBhcnJheSgnY2xpZW50X2lkJyAgID0+IGFycmF5KCdTJyA9PiAkY2xpZW50X2lkKSkKKyAgICAgICAgKSk7CisgICAgICAgIGlmICgkcmVzdWx0LT5jb3VudCgpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gJ1JTMjU2JyA7CisgICAgICAgIH0KKyAgICAgICAgJHRva2VuID0gJHRoaXMtPmR5bmFtbzJhcnJheSgkcmVzdWx0KTsKKworICAgICAgICByZXR1cm4gJHRva2VuWydlbmNyeXB0aW9uX2FsZ29yaXRobSddOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYW5zZm9ybSBkeW5hbW9kYiByZXN1bHRzZXQgdG8gYW4gYXJyYXkuCisgICAgICogQHBhcmFtICRkeW5hbW9kYlJlc3VsdAorICAgICAqIEByZXR1cm4gJGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBkeW5hbW8yYXJyYXkoJGR5bmFtb2RiUmVzdWx0KQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CisgICAgICAgIGZvcmVhY2ggKCRkeW5hbW9kYlJlc3VsdFsiSXRlbSJdIGFzICRrZXkgPT4gJHZhbCkgeworICAgICAgICAgICAgJHJlc3VsdFska2V5XSA9ICR2YWxbIlMiXTsKKyAgICAgICAgICAgICRyZXN1bHRbXSA9ICR2YWxbIlMiXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzTm90RW1wdHkoJHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGwgIT09ICR2YWx1ZSAmJiAnJyAhPT0gJHZhbHVlOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0p3dEFjY2Vzc1Rva2VuLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvSnd0QWNjZXNzVG9rZW4ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjY2FjZDYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0p3dEFjY2Vzc1Rva2VuLnBocApAQCAtMCwwICsxLDg3IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK3VzZSBPQXV0aDJcRW5jcnlwdGlvblxFbmNyeXB0aW9uSW50ZXJmYWNlOwordXNlIE9BdXRoMlxFbmNyeXB0aW9uXEp3dDsKKworLyoqCisgKiBAYXV0aG9yIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICovCitjbGFzcyBKd3RBY2Nlc3NUb2tlbiBpbXBsZW1lbnRzIEp3dEFjY2Vzc1Rva2VuSW50ZXJmYWNlCit7CisgICAgcHJvdGVjdGVkICRwdWJsaWNLZXlTdG9yYWdlOworICAgIHByb3RlY3RlZCAkdG9rZW5TdG9yYWdlOworICAgIHByb3RlY3RlZCAkZW5jcnlwdGlvblV0aWw7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gT0F1dGgyXEVuY3J5cHRpb25cUHVibGljS2V5SW50ZXJmYWNlICAkcHVibGljS2V5U3RvcmFnZSB0aGUgcHVibGljIGtleSBlbmNyeXB0aW9uIHRvIHVzZQorICAgICAqIEBwYXJhbSBPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZSAgICR0b2tlblN0b3JhZ2UgICAgIE9QVElPTkFMIHBlcnNpc3QgdGhlIGFjY2VzcyB0b2tlbiB0byBhbm90aGVyIHN0b3JhZ2UuIFRoaXMgaXMgdXNlZnVsIGlmCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91IHdhbnQgdG8gcmV0YWluIGFjY2VzcyB0b2tlbiBncmFudCBpbmZvcm1hdGlvbiBzb21ld2hlcmUsIGJ1dAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB1c2luZyB0aGlzIGdyYW50IHR5cGUuCisgICAgICogQHBhcmFtIE9BdXRoMlxFbmNyeXB0aW9uXEVuY3J5cHRpb25JbnRlcmZhY2UgJGVuY3J5cHRpb25VdGlsICAgT1BUSU9OQUwgY2xhc3MgdG8gdXNlIGZvciAiZW5jb2RlIiBhbmQgImRlY29kZSIgZnVuY3Rpb25zLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChQdWJsaWNLZXlJbnRlcmZhY2UgJHB1YmxpY0tleVN0b3JhZ2UsIEFjY2Vzc1Rva2VuSW50ZXJmYWNlICR0b2tlblN0b3JhZ2UgPSBudWxsLCBFbmNyeXB0aW9uSW50ZXJmYWNlICRlbmNyeXB0aW9uVXRpbCA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+cHVibGljS2V5U3RvcmFnZSA9ICRwdWJsaWNLZXlTdG9yYWdlOworICAgICAgICAkdGhpcy0+dG9rZW5TdG9yYWdlID0gJHRva2VuU3RvcmFnZTsKKyAgICAgICAgaWYgKGlzX251bGwoJGVuY3J5cHRpb25VdGlsKSkgeworICAgICAgICAgICAgJGVuY3J5cHRpb25VdGlsID0gbmV3IEp3dDsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+ZW5jcnlwdGlvblV0aWwgPSAkZW5jcnlwdGlvblV0aWw7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKCRvYXV0aF90b2tlbikKKyAgICB7CisgICAgICAgIC8vIGp1c3QgZGVjb2RlIHRoZSB0b2tlbiwgZG9uJ3QgdmVyaWZ5CisgICAgICAgIGlmICghJHRva2VuRGF0YSA9ICR0aGlzLT5lbmNyeXB0aW9uVXRpbC0+ZGVjb2RlKCRvYXV0aF90b2tlbiwgbnVsbCwgZmFsc2UpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkY2xpZW50X2lkICA9IGlzc2V0KCR0b2tlbkRhdGFbJ2F1ZCddKSA/ICR0b2tlbkRhdGFbJ2F1ZCddIDogbnVsbDsKKyAgICAgICAgJHB1YmxpY19rZXkgPSAkdGhpcy0+cHVibGljS2V5U3RvcmFnZS0+Z2V0UHVibGljS2V5KCRjbGllbnRfaWQpOworICAgICAgICAkYWxnb3JpdGhtICA9ICR0aGlzLT5wdWJsaWNLZXlTdG9yYWdlLT5nZXRFbmNyeXB0aW9uQWxnb3JpdGhtKCRjbGllbnRfaWQpOworCisgICAgICAgIC8vIG5vdyB0aGF0IHdlIGhhdmUgdGhlIGNsaWVudF9pZCwgdmVyaWZ5IHRoZSB0b2tlbgorICAgICAgICBpZiAoZmFsc2UgPT09ICR0aGlzLT5lbmNyeXB0aW9uVXRpbC0+ZGVjb2RlKCRvYXV0aF90b2tlbiwgJHB1YmxpY19rZXksIGFycmF5KCRhbGdvcml0aG0pKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm9ybWFsaXplIHRoZSBKV1QgY2xhaW1zIHRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgb3RoZXIgY29tcG9uZW50cyBpbiB0aGlzIGxpYnJhcnkKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jb252ZXJ0Snd0VG9PQXV0aDIoJHRva2VuRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEFjY2Vzc1Rva2VuKCRvYXV0aF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT50b2tlblN0b3JhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+dG9rZW5TdG9yYWdlLT5zZXRBY2Nlc3NUb2tlbigkb2F1dGhfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPnRva2VuU3RvcmFnZSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT50b2tlblN0b3JhZ2UtPnVuc2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbik7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vIGNvbnZlcnRzIGEgSldUIGFjY2VzcyB0b2tlbiBpbnRvIGFuIE9BdXRoMi1mcmllbmRseSBmb3JtYXQKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29udmVydEp3dFRvT0F1dGgyKCR0b2tlbkRhdGEpCisgICAgeworICAgICAgICAka2V5TWFwcGluZyA9IGFycmF5KAorICAgICAgICAgICAgJ2F1ZCcgPT4gJ2NsaWVudF9pZCcsCisgICAgICAgICAgICAnZXhwJyA9PiAnZXhwaXJlcycsCisgICAgICAgICAgICAnc3ViJyA9PiAndXNlcl9pZCcKKyAgICAgICAgKTsKKworICAgICAgICBmb3JlYWNoICgka2V5TWFwcGluZyBhcyAkand0S2V5ID0+ICRvYXV0aDJLZXkpIHsKKyAgICAgICAgICAgIGlmIChpc3NldCgkdG9rZW5EYXRhWyRqd3RLZXldKSkgeworICAgICAgICAgICAgICAgICR0b2tlbkRhdGFbJG9hdXRoMktleV0gPSAkdG9rZW5EYXRhWyRqd3RLZXldOworICAgICAgICAgICAgICAgIHVuc2V0KCR0b2tlbkRhdGFbJGp3dEtleV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0b2tlbkRhdGE7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvSnd0QWNjZXNzVG9rZW5JbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9Kd3RBY2Nlc3NUb2tlbkludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FiYjJhYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvSnd0QWNjZXNzVG9rZW5JbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMTQgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworLyoqCisgKiBObyBzcGVjaWZpYyBtZXRob2RzLCBidXQgYWxsb3dzIHRoZSBsaWJyYXJ5IHRvIGNoZWNrICJpbnN0YW5jZW9mIgorICogYWdhaW5zdCBpbnRlcmZhY2UgcmF0aGVyIHRoYW4gY2xhc3MKKyAqCisgKiBAYXV0aG9yIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICovCitpbnRlcmZhY2UgSnd0QWNjZXNzVG9rZW5JbnRlcmZhY2UgZXh0ZW5kcyBBY2Nlc3NUb2tlbkludGVyZmFjZQoreworCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0p3dEJlYXJlckludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL0p3dEJlYXJlckludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgzYWE3MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvSnd0QmVhcmVySW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDc0IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKKy8qKgorICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIHRvIHNwZWNpZnkgd2hlcmUgdGhlIE9BdXRoMiBTZXJ2ZXIKKyAqIHNob3VsZCBnZXQgdGhlIEpXVCBrZXkgZm9yIGNsaWVudHMKKyAqCisgKiBAVE9ETyBjb25zaWRlciBleHRlbmRpbmcgQ2xpZW50SW50ZXJmYWNlLCBhcyB0aGlzIHdpbGwgYWxtb3N0IGFsd2F5cworICogYmUgdGhlIHNhbWUgc3RvcmFnZSBhcyByZXRyaWV2aW5nIGNsaWVudERhdGEKKyAqCisgKiBAYXV0aG9yIEYyMQorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworaW50ZXJmYWNlIEp3dEJlYXJlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEdldCB0aGUgcHVibGljIGtleSBhc3NvY2lhdGVkIHdpdGggYSBjbGllbnRfaWQKKyAgICAgKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQ2xpZW50IGlkZW50aWZpZXIgdG8gYmUgY2hlY2tlZCB3aXRoLgorICAgICAqCisgICAgICogQHJldHVybgorICAgICAqIFNUUklORyBSZXR1cm4gdGhlIHB1YmxpYyBrZXkgZm9yIHRoZSBjbGllbnRfaWQgaWYgaXQgZXhpc3RzLCBhbmQgTVVTVCByZXR1cm4gRkFMU0UgaWYgaXQgZG9lc24ndC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xpZW50S2V5KCRjbGllbnRfaWQsICRzdWJqZWN0KTsKKworICAgIC8qKgorICAgICAqIEdldCBhIGp0aSAoSlNPTiB0b2tlbiBpZGVudGlmaWVyKSBieSBtYXRjaGluZyBhZ2FpbnN0IHRoZSBjbGllbnRfaWQsIHN1YmplY3QsIGF1ZGllbmNlIGFuZCBleHBpcmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtICRjbGllbnRfaWQKKyAgICAgKiBDbGllbnQgaWRlbnRpZmllciB0byBtYXRjaC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkc3ViamVjdAorICAgICAqIFRoZSBzdWJqZWN0IHRvIG1hdGNoLgorICAgICAqCisgICAgICogQHBhcmFtICRhdWRpZW5jZQorICAgICAqIFRoZSBhdWRpZW5jZSB0byBtYXRjaC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkZXhwaXJhdGlvbgorICAgICAqIFRoZSBleHBpcmF0aW9uIG9mIHRoZSBqdGkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gJGp0aQorICAgICAqIFRoZSBqdGkgdG8gbWF0Y2guCisgICAgICoKKyAgICAgKiBAcmV0dXJuCisgICAgICogQW4gYXNzb2NpYXRpdmUgYXJyYXkgYXMgYmVsb3csIGFuZCByZXR1cm4gTlVMTCBpZiB0aGUganRpIGRvZXMgbm90IGV4aXN0LgorICAgICAqIC0gaXNzdWVyOiBTdG9yZWQgY2xpZW50IGlkZW50aWZpZXIuCisgICAgICogLSBzdWJqZWN0OiBTdG9yZWQgc3ViamVjdC4KKyAgICAgKiAtIGF1ZGllbmNlOiBTdG9yZWQgYXVkaWVuY2UuCisgICAgICogLSBleHBpcmVzOiBTdG9yZWQgZXhwaXJhdGlvbiBpbiB1bml4IHRpbWVzdGFtcC4KKyAgICAgKiAtIGp0aTogVGhlIHN0b3JlZCBqdGkuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJhdGlvbiwgJGp0aSk7CisKKyAgICAvKioKKyAgICAgKiBTdG9yZSBhIHVzZWQganRpIHNvIHRoYXQgd2UgY2FuIGNoZWNrIGFnYWluc3QgaXQgdG8gcHJldmVudCByZXBsYXkgYXR0YWNrcy4KKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIENsaWVudCBpZGVudGlmaWVyIHRvIGluc2VydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkc3ViamVjdAorICAgICAqIFRoZSBzdWJqZWN0IHRvIGluc2VydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkYXVkaWVuY2UKKyAgICAgKiBUaGUgYXVkaWVuY2UgdG8gaW5zZXJ0LgorICAgICAqCisgICAgICogQHBhcmFtICRleHBpcmF0aW9uCisgICAgICogVGhlIGV4cGlyYXRpb24gb2YgdGhlIGp0aS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkanRpCisgICAgICogVGhlIGp0aSB0byBpbnNlcnQuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJhdGlvbiwgJGp0aSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL01lbW9yeS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL01lbW9yeS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM2MGI3MQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvTWVtb3J5LnBocApAQCAtMCwwICsxLDM4MSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCit1c2UgT0F1dGgyXE9wZW5JRFxTdG9yYWdlXFVzZXJDbGFpbXNJbnRlcmZhY2U7Cit1c2UgT0F1dGgyXE9wZW5JRFxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlIGFzIE9wZW5JREF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlOworCisvKioKKyAqIFNpbXBsZSBpbi1tZW1vcnkgc3RvcmFnZSBmb3IgYWxsIHN0b3JhZ2UgdHlwZXMKKyAqCisgKiBOT1RFOiBUaGlzIGNsYXNzIHNob3VsZCBuZXZlciBiZSB1c2VkIGluIHByb2R1Y3Rpb24sIGFuZCBpcworICogYSBzdHViIGNsYXNzIGZvciBleGFtcGxlIHVzZSBvbmx5CisgKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworY2xhc3MgTWVtb3J5IGltcGxlbWVudHMgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UsCisgICAgVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIFVzZXJDbGFpbXNJbnRlcmZhY2UsCisgICAgQWNjZXNzVG9rZW5JbnRlcmZhY2UsCisgICAgQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgUmVmcmVzaFRva2VuSW50ZXJmYWNlLAorICAgIEp3dEJlYXJlckludGVyZmFjZSwKKyAgICBTY29wZUludGVyZmFjZSwKKyAgICBQdWJsaWNLZXlJbnRlcmZhY2UsCisgICAgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKK3sKKyAgICBwdWJsaWMgJGF1dGhvcml6YXRpb25Db2RlczsKKyAgICBwdWJsaWMgJHVzZXJDcmVkZW50aWFsczsKKyAgICBwdWJsaWMgJGNsaWVudENyZWRlbnRpYWxzOworICAgIHB1YmxpYyAkcmVmcmVzaFRva2VuczsKKyAgICBwdWJsaWMgJGFjY2Vzc1Rva2VuczsKKyAgICBwdWJsaWMgJGp3dDsKKyAgICBwdWJsaWMgJGp0aTsKKyAgICBwdWJsaWMgJHN1cHBvcnRlZFNjb3BlczsKKyAgICBwdWJsaWMgJGRlZmF1bHRTY29wZTsKKyAgICBwdWJsaWMgJGtleXM7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHBhcmFtcyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkcGFyYW1zID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlcycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICd1c2VyX2NyZWRlbnRpYWxzJyA9PiBhcnJheSgpLAorICAgICAgICAgICAgJ2NsaWVudF9jcmVkZW50aWFscycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICdyZWZyZXNoX3Rva2VucycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW5zJyA9PiBhcnJheSgpLAorICAgICAgICAgICAgJ2p3dCcgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICdqdGknID0+IGFycmF5KCksCisgICAgICAgICAgICAnZGVmYXVsdF9zY29wZScgPT4gbnVsbCwKKyAgICAgICAgICAgICdzdXBwb3J0ZWRfc2NvcGVzJyA9PiBhcnJheSgpLAorICAgICAgICAgICAgJ2tleXMnID0+IGFycmF5KCksCisgICAgICAgICksICRwYXJhbXMpOworCisgICAgICAgICR0aGlzLT5hdXRob3JpemF0aW9uQ29kZXMgPSAkcGFyYW1zWydhdXRob3JpemF0aW9uX2NvZGVzJ107CisgICAgICAgICR0aGlzLT51c2VyQ3JlZGVudGlhbHMgPSAkcGFyYW1zWyd1c2VyX2NyZWRlbnRpYWxzJ107CisgICAgICAgICR0aGlzLT5jbGllbnRDcmVkZW50aWFscyA9ICRwYXJhbXNbJ2NsaWVudF9jcmVkZW50aWFscyddOworICAgICAgICAkdGhpcy0+cmVmcmVzaFRva2VucyA9ICRwYXJhbXNbJ3JlZnJlc2hfdG9rZW5zJ107CisgICAgICAgICR0aGlzLT5hY2Nlc3NUb2tlbnMgPSAkcGFyYW1zWydhY2Nlc3NfdG9rZW5zJ107CisgICAgICAgICR0aGlzLT5qd3QgPSAkcGFyYW1zWydqd3QnXTsKKyAgICAgICAgJHRoaXMtPmp0aSA9ICRwYXJhbXNbJ2p0aSddOworICAgICAgICAkdGhpcy0+c3VwcG9ydGVkU2NvcGVzID0gJHBhcmFtc1snc3VwcG9ydGVkX3Njb3BlcyddOworICAgICAgICAkdGhpcy0+ZGVmYXVsdFNjb3BlID0gJHBhcmFtc1snZGVmYXVsdF9zY29wZSddOworICAgICAgICAkdGhpcy0+a2V5cyA9ICRwYXJhbXNbJ2tleXMnXTsKKyAgICB9CisKKyAgICAvKiBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSkKKyAgICB7CisgICAgICAgIGlmICghaXNzZXQoJHRoaXMtPmF1dGhvcml6YXRpb25Db2Rlc1skY29kZV0pKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAkY29kZSwKKyAgICAgICAgKSwgJHRoaXMtPmF1dGhvcml6YXRpb25Db2Rlc1skY29kZV0pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRyZWRpcmVjdF91cmksICRleHBpcmVzLCAkc2NvcGUgPSBudWxsLCAkaWRfdG9rZW4gPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmF1dGhvcml6YXRpb25Db2Rlc1skY29kZV0gPSBjb21wYWN0KCdjb2RlJywgJ2NsaWVudF9pZCcsICd1c2VyX2lkJywgJ3JlZGlyZWN0X3VyaScsICdleHBpcmVzJywgJ3Njb3BlJywgJ2lkX3Rva2VuJyk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEF1dGhvcml6YXRpb25Db2RlcygkYXV0aG9yaXphdGlvbl9jb2RlcykKKyAgICB7CisgICAgICAgICR0aGlzLT5hdXRob3JpemF0aW9uQ29kZXMgPSAkYXV0aG9yaXphdGlvbl9jb2RlczsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlQXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworICAgICAgICB1bnNldCgkdGhpcy0+YXV0aG9yaXphdGlvbkNvZGVzWyRjb2RlXSk7CisgICAgfQorCisgICAgLyogVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrVXNlckNyZWRlbnRpYWxzKCR1c2VybmFtZSwgJHBhc3N3b3JkKQorICAgIHsKKyAgICAgICAgJHVzZXJEZXRhaWxzID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSk7CisKKyAgICAgICAgcmV0dXJuICR1c2VyRGV0YWlscyAmJiAkdXNlckRldGFpbHNbJ3Bhc3N3b3JkJ10gJiYgJHVzZXJEZXRhaWxzWydwYXNzd29yZCddID09PSAkcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFVzZXIoJHVzZXJuYW1lLCAkcGFzc3dvcmQsICRmaXJzdE5hbWUgPSBudWxsLCAkbGFzdE5hbWUgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnVzZXJDcmVkZW50aWFsc1skdXNlcm5hbWVdID0gYXJyYXkoCisgICAgICAgICAgICAncGFzc3dvcmQnICAgPT4gJHBhc3N3b3JkLAorICAgICAgICAgICAgJ2ZpcnN0X25hbWUnID0+ICRmaXJzdE5hbWUsCisgICAgICAgICAgICAnbGFzdF9uYW1lJyAgPT4gJGxhc3ROYW1lLAorICAgICAgICApOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyRGV0YWlscygkdXNlcm5hbWUpCisgICAgeworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT51c2VyQ3JlZGVudGlhbHNbJHVzZXJuYW1lXSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICd1c2VyX2lkJyAgICA9PiAkdXNlcm5hbWUsCisgICAgICAgICAgICAncGFzc3dvcmQnICAgPT4gbnVsbCwKKyAgICAgICAgICAgICdmaXJzdF9uYW1lJyA9PiBudWxsLAorICAgICAgICAgICAgJ2xhc3RfbmFtZScgID0+IG51bGwsCisgICAgICAgICksICR0aGlzLT51c2VyQ3JlZGVudGlhbHNbJHVzZXJuYW1lXSk7CisgICAgfQorCisgICAgLyogVXNlckNsYWltc0ludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQ2xhaW1zKCR1c2VyX2lkLCAkY2xhaW1zKQorICAgIHsKKyAgICAgICAgaWYgKCEkdXNlckRldGFpbHMgPSAkdGhpcy0+Z2V0VXNlckRldGFpbHMoJHVzZXJfaWQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAkY2xhaW1zID0gZXhwbG9kZSgnICcsIHRyaW0oJGNsYWltcykpOworICAgICAgICAkdXNlckNsYWltcyA9IGFycmF5KCk7CisKKyAgICAgICAgLy8gZm9yIGVhY2ggcmVxdWVzdGVkIGNsYWltLCBpZiB0aGUgdXNlciBoYXMgdGhlIGNsYWltLCBzZXQgaXQgaW4gdGhlIHJlc3BvbnNlCisgICAgICAgICR2YWxpZENsYWltcyA9IGV4cGxvZGUoJyAnLCBzZWxmOjpWQUxJRF9DTEFJTVMpOworICAgICAgICBmb3JlYWNoICgkdmFsaWRDbGFpbXMgYXMgJHZhbGlkQ2xhaW0pIHsKKyAgICAgICAgICAgIGlmIChpbl9hcnJheSgkdmFsaWRDbGFpbSwgJGNsYWltcykpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHZhbGlkQ2xhaW0gPT0gJ2FkZHJlc3MnKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFkZHJlc3MgaXMgYW4gb2JqZWN0IHdpdGggc3ViZmllbGRzCisgICAgICAgICAgICAgICAgICAgICR1c2VyQ2xhaW1zWydhZGRyZXNzJ10gPSAkdGhpcy0+Z2V0VXNlckNsYWltKCR2YWxpZENsYWltLCAkdXNlckRldGFpbHNbJ2FkZHJlc3MnXSA/OiAkdXNlckRldGFpbHMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICR1c2VyQ2xhaW1zID0gYXJyYXlfbWVyZ2UoJHVzZXJDbGFpbXMsICR0aGlzLT5nZXRVc2VyQ2xhaW0oJHZhbGlkQ2xhaW0sICR1c2VyRGV0YWlscykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdXNlckNsYWltczsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0VXNlckNsYWltKCRjbGFpbSwgJHVzZXJEZXRhaWxzKQorICAgIHsKKyAgICAgICAgJHVzZXJDbGFpbXMgPSBhcnJheSgpOworICAgICAgICAkY2xhaW1WYWx1ZXNTdHJpbmcgPSBjb25zdGFudChzcHJpbnRmKCdzZWxmOjolc19DTEFJTV9WQUxVRVMnLCBzdHJ0b3VwcGVyKCRjbGFpbSkpKTsKKyAgICAgICAgJGNsYWltVmFsdWVzID0gZXhwbG9kZSgnICcsICRjbGFpbVZhbHVlc1N0cmluZyk7CisKKyAgICAgICAgZm9yZWFjaCAoJGNsYWltVmFsdWVzIGFzICR2YWx1ZSkgeworICAgICAgICAgICAgJHVzZXJDbGFpbXNbJHZhbHVlXSA9IGlzc2V0KCR1c2VyRGV0YWlsc1skdmFsdWVdKSA/ICR1c2VyRGV0YWlsc1skdmFsdWVdIDogbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdXNlckNsYWltczsKKyAgICB9CisKKyAgICAvKiBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja0NsaWVudENyZWRlbnRpYWxzKCRjbGllbnRfaWQsICRjbGllbnRfc2VjcmV0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+Y2xpZW50Q3JlZGVudGlhbHNbJGNsaWVudF9pZF1bJ2NsaWVudF9zZWNyZXQnXSkgJiYgJHRoaXMtPmNsaWVudENyZWRlbnRpYWxzWyRjbGllbnRfaWRdWydjbGllbnRfc2VjcmV0J10gPT09ICRjbGllbnRfc2VjcmV0OworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1B1YmxpY0NsaWVudCgkY2xpZW50X2lkKQorICAgIHsKKyAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+Y2xpZW50Q3JlZGVudGlhbHNbJGNsaWVudF9pZF0pKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZW1wdHkoJHRoaXMtPmNsaWVudENyZWRlbnRpYWxzWyRjbGllbnRfaWRdWydjbGllbnRfc2VjcmV0J10pOworICAgIH0KKworICAgIC8qIENsaWVudEludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5jbGllbnRDcmVkZW50aWFsc1skY2xpZW50X2lkXSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgICRjbGllbnREZXRhaWxzID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiBudWxsLAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+IG51bGwsCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gbnVsbCwKKyAgICAgICAgKSwgJHRoaXMtPmNsaWVudENyZWRlbnRpYWxzWyRjbGllbnRfaWRdKTsKKworICAgICAgICByZXR1cm4gJGNsaWVudERldGFpbHM7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrUmVzdHJpY3RlZEdyYW50VHlwZSgkY2xpZW50X2lkLCAkZ3JhbnRfdHlwZSkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+Y2xpZW50Q3JlZGVudGlhbHNbJGNsaWVudF9pZF1bJ2dyYW50X3R5cGVzJ10pKSB7CisgICAgICAgICAgICAkZ3JhbnRfdHlwZXMgPSBleHBsb2RlKCcgJywgJHRoaXMtPmNsaWVudENyZWRlbnRpYWxzWyRjbGllbnRfaWRdWydncmFudF90eXBlcyddKTsKKworICAgICAgICAgICAgcmV0dXJuIGluX2FycmF5KCRncmFudF90eXBlLCAkZ3JhbnRfdHlwZXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgZ3JhbnRfdHlwZXMgYXJlIG5vdCBkZWZpbmVkLCB0aGVuIG5vbmUgYXJlIHJlc3RyaWN0ZWQKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldENsaWVudERldGFpbHMoJGNsaWVudF9pZCwgJGNsaWVudF9zZWNyZXQgPSBudWxsLCAkcmVkaXJlY3RfdXJpID0gbnVsbCwgJGdyYW50X3R5cGVzID0gbnVsbCwgJHNjb3BlID0gbnVsbCwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmNsaWVudENyZWRlbnRpYWxzWyRjbGllbnRfaWRdID0gYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAkY2xpZW50X3NlY3JldCwKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAkcmVkaXJlY3RfdXJpLAorICAgICAgICAgICAgJ2dyYW50X3R5cGVzJyAgID0+ICRncmFudF90eXBlcywKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAkc2NvcGUsCisgICAgICAgICAgICAndXNlcl9pZCcgICAgICAgPT4gJHVzZXJfaWQsCisgICAgICAgICk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyogUmVmcmVzaFRva2VuSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbikKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cmVmcmVzaFRva2Vuc1skcmVmcmVzaF90b2tlbl0pID8gJHRoaXMtPnJlZnJlc2hUb2tlbnNbJHJlZnJlc2hfdG9rZW5dIDogZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlZnJlc2hUb2tlbnNbJHJlZnJlc2hfdG9rZW5dID0gY29tcGFjdCgncmVmcmVzaF90b2tlbicsICdjbGllbnRfaWQnLCAndXNlcl9pZCcsICdleHBpcmVzJywgJ3Njb3BlJyk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5yZWZyZXNoVG9rZW5zWyRyZWZyZXNoX3Rva2VuXSkpIHsKKyAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5yZWZyZXNoVG9rZW5zWyRyZWZyZXNoX3Rva2VuXSk7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZWZyZXNoVG9rZW5zKCRyZWZyZXNoX3Rva2VucykKKyAgICB7CisgICAgICAgICR0aGlzLT5yZWZyZXNoVG9rZW5zID0gJHJlZnJlc2hfdG9rZW5zOworICAgIH0KKworICAgIC8qIEFjY2Vzc1Rva2VuSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPmFjY2Vzc1Rva2Vuc1skYWNjZXNzX3Rva2VuXSkgPyAkdGhpcy0+YWNjZXNzVG9rZW5zWyRhY2Nlc3NfdG9rZW5dIDogZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCwgJGlkX3Rva2VuID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT5hY2Nlc3NUb2tlbnNbJGFjY2Vzc190b2tlbl0gPSBjb21wYWN0KCdhY2Nlc3NfdG9rZW4nLCAnY2xpZW50X2lkJywgJ3VzZXJfaWQnLCAnZXhwaXJlcycsICdzY29wZScsICdpZF90b2tlbicpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmFjY2Vzc1Rva2Vuc1skYWNjZXNzX3Rva2VuXSkpIHsKKyAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5hY2Nlc3NUb2tlbnNbJGFjY2Vzc190b2tlbl0pOworCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2NvcGVFeGlzdHMoJHNjb3BlKQorICAgIHsKKyAgICAgICAgJHNjb3BlID0gZXhwbG9kZSgnICcsIHRyaW0oJHNjb3BlKSk7CisKKyAgICAgICAgcmV0dXJuIChjb3VudChhcnJheV9kaWZmKCRzY29wZSwgJHRoaXMtPnN1cHBvcnRlZFNjb3BlcykpID09IDApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWZhdWx0U2NvcGUoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmRlZmF1bHRTY29wZTsKKyAgICB9CisKKyAgICAvKkpXVEJlYXJlckludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRLZXkoJGNsaWVudF9pZCwgJHN1YmplY3QpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmp3dFskY2xpZW50X2lkXSkpIHsKKyAgICAgICAgICAgICRqd3QgPSAkdGhpcy0+and0WyRjbGllbnRfaWRdOworICAgICAgICAgICAgaWYgKCRqd3QpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGp3dFsic3ViamVjdCJdID09ICRzdWJqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAkand0WyJrZXkiXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudFNjb3BlKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICBpZiAoISRjbGllbnREZXRhaWxzID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkY2xpZW50RGV0YWlsc1snc2NvcGUnXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkY2xpZW50RGV0YWlsc1snc2NvcGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyZXMsICRqdGkpCisgICAgeworICAgICAgICBmb3JlYWNoICgkdGhpcy0+anRpIGFzICRzdG9yZWRKdGkpIHsKKyAgICAgICAgICAgIGlmICgkc3RvcmVkSnRpWydpc3N1ZXInXSA9PSAkY2xpZW50X2lkICYmICRzdG9yZWRKdGlbJ3N1YmplY3QnXSA9PSAkc3ViamVjdCAmJiAkc3RvcmVkSnRpWydhdWRpZW5jZSddID09ICRhdWRpZW5jZSAmJiAkc3RvcmVkSnRpWydleHBpcmVzJ10gPT0gJGV4cGlyZXMgJiYgJHN0b3JlZEp0aVsnanRpJ10gPT0gJGp0aSkgeworICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ2lzc3VlcicgPT4gJHN0b3JlZEp0aVsnaXNzdWVyJ10sCisgICAgICAgICAgICAgICAgICAgICdzdWJqZWN0JyA9PiAkc3RvcmVkSnRpWydzdWJqZWN0J10sCisgICAgICAgICAgICAgICAgICAgICdhdWRpZW5jZScgPT4gJHN0b3JlZEp0aVsnYXVkaWVuY2UnXSwKKyAgICAgICAgICAgICAgICAgICAgJ2V4cGlyZXMnID0+ICRzdG9yZWRKdGlbJ2V4cGlyZXMnXSwKKyAgICAgICAgICAgICAgICAgICAgJ2p0aScgPT4gJHN0b3JlZEp0aVsnanRpJ10KKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJlcywgJGp0aSkKKyAgICB7CisgICAgICAgICR0aGlzLT5qdGlbXSA9IGFycmF5KCdpc3N1ZXInID0+ICRjbGllbnRfaWQsICdzdWJqZWN0JyA9PiAkc3ViamVjdCwgJ2F1ZGllbmNlJyA9PiAkYXVkaWVuY2UsICdleHBpcmVzJyA9PiAkZXhwaXJlcywgJ2p0aScgPT4gJGp0aSk7CisgICAgfQorCisgICAgLypQdWJsaWNLZXlJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHVibGljS2V5KCRjbGllbnRfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5rZXlzWyRjbGllbnRfaWRdKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5rZXlzWyRjbGllbnRfaWRdWydwdWJsaWNfa2V5J107CisgICAgICAgIH0KKworICAgICAgICAvLyB1c2UgYSBnbG9iYWwgZW5jcnlwdGlvbiBwYWlyCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+a2V5c1sncHVibGljX2tleSddKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5rZXlzWydwdWJsaWNfa2V5J107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFByaXZhdGVLZXkoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmtleXNbJGNsaWVudF9pZF0pKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmtleXNbJGNsaWVudF9pZF1bJ3ByaXZhdGVfa2V5J107CisgICAgICAgIH0KKworICAgICAgICAvLyB1c2UgYSBnbG9iYWwgZW5jcnlwdGlvbiBwYWlyCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+a2V5c1sncHJpdmF0ZV9rZXknXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+a2V5c1sncHJpdmF0ZV9rZXknXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW5jcnlwdGlvbkFsZ29yaXRobSgkY2xpZW50X2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+a2V5c1skY2xpZW50X2lkXVsnZW5jcnlwdGlvbl9hbGdvcml0aG0nXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+a2V5c1skY2xpZW50X2lkXVsnZW5jcnlwdGlvbl9hbGdvcml0aG0nXTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHVzZSBhIGdsb2JhbCBlbmNyeXB0aW9uIGFsZ29yaXRobQorICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmtleXNbJ2VuY3J5cHRpb25fYWxnb3JpdGhtJ10pKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmtleXNbJ2VuY3J5cHRpb25fYWxnb3JpdGhtJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJ1JTMjU2JzsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9Nb25nby5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL01vbmdvLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWEwNmUzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9Nb25nby5waHAKQEAgLTAsMCArMSwzOTIgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKwordXNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSBhcyBPcGVuSURBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZTsKKworLyoqCisgKiBTaW1wbGUgTW9uZ29EQiBzdG9yYWdlIGZvciBhbGwgc3RvcmFnZSB0eXBlcworICoKKyAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgbWVhbnQgdG8gZ2V0IHVzZXJzIHN0YXJ0ZWQKKyAqIHF1aWNrbHkuIElmIHlvdXIgYXBwbGljYXRpb24gcmVxdWlyZXMgZnVydGhlcgorICogY3VzdG9taXphdGlvbiwgZXh0ZW5kIHRoaXMgY2xhc3Mgb3IgY3JlYXRlIHlvdXIgb3duLgorICoKKyAqIE5PVEU6IFBhc3N3b3JkcyBhcmUgc3RvcmVkIGluIHBsYWludGV4dCwgd2hpY2ggaXMgbmV2ZXIKKyAqIGEgZ29vZCBpZGVhLiAgQmUgc3VyZSB0byBvdmVycmlkZSB0aGlzIGZvciB5b3VyIGFwcGxpY2F0aW9uCisgKgorICogQGF1dGhvciBKdWxpZW4gQ2hhdW1vbmQgPGNoYXVtb25kQGdtYWlsLmNvbT4KKyAqLworY2xhc3MgTW9uZ28gaW1wbGVtZW50cyBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSwKKyAgICBBY2Nlc3NUb2tlbkludGVyZmFjZSwKKyAgICBDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZSwKKyAgICBVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgUmVmcmVzaFRva2VuSW50ZXJmYWNlLAorICAgIEp3dEJlYXJlckludGVyZmFjZSwKKyAgICBQdWJsaWNLZXlJbnRlcmZhY2UsCisgICAgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKK3sKKyAgICBwcm90ZWN0ZWQgJGRiOworICAgIHByb3RlY3RlZCAkY29uZmlnOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRjb25uZWN0aW9uLCAkY29uZmlnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgIGlmICgkY29ubmVjdGlvbiBpbnN0YW5jZW9mIFxNb25nb0RCKSB7CisgICAgICAgICAgICAkdGhpcy0+ZGIgPSAkY29ubmVjdGlvbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghaXNfYXJyYXkoJGNvbm5lY3Rpb24pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ZpcnN0IGFyZ3VtZW50IHRvIE9BdXRoMlxTdG9yYWdlXE1vbmdvIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgTW9uZ29EQiBvciBhIGNvbmZpZ3VyYXRpb24gYXJyYXknKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRzZXJ2ZXIgPSBzcHJpbnRmKCdtb25nb2RiOi8vJXM6JWQnLCAkY29ubmVjdGlvblsnaG9zdCddLCAkY29ubmVjdGlvblsncG9ydCddKTsKKyAgICAgICAgICAgICRtID0gbmV3IFxNb25nb0NsaWVudCgkc2VydmVyKTsKKyAgICAgICAgICAgICR0aGlzLT5kYiA9ICRtLT57JGNvbm5lY3Rpb25bJ2RhdGFiYXNlJ119OworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPmNvbmZpZyA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF90YWJsZScgPT4gJ29hdXRoX2NsaWVudHMnLAorICAgICAgICAgICAgJ2FjY2Vzc190b2tlbl90YWJsZScgPT4gJ29hdXRoX2FjY2Vzc190b2tlbnMnLAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW5fdGFibGUnID0+ICdvYXV0aF9yZWZyZXNoX3Rva2VucycsCisgICAgICAgICAgICAnY29kZV90YWJsZScgPT4gJ29hdXRoX2F1dGhvcml6YXRpb25fY29kZXMnLAorICAgICAgICAgICAgJ3VzZXJfdGFibGUnID0+ICdvYXV0aF91c2VycycsCisgICAgICAgICAgICAna2V5X3RhYmxlJyA9PiAnb2F1dGhfa2V5cycsCisgICAgICAgICAgICAnand0X3RhYmxlJyA9PiAnb2F1dGhfand0JywKKyAgICAgICAgKSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGFjY2VzcyBhIE1vbmdvREIgY29sbGVjdGlvbiBieSBgdHlwZWA6CisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNvbGxlY3Rpb24oJG5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmRiLT57JHRoaXMtPmNvbmZpZ1skbmFtZV19OworICAgIH0KKworICAgIC8qIENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrQ2xpZW50Q3JlZGVudGlhbHMoJGNsaWVudF9pZCwgJGNsaWVudF9zZWNyZXQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbignY2xpZW50X3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCkpKSB7CisgICAgICAgICAgICByZXR1cm4gJHJlc3VsdFsnY2xpZW50X3NlY3JldCddID09ICRjbGllbnRfc2VjcmV0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1B1YmxpY0NsaWVudCgkY2xpZW50X2lkKQorICAgIHsKKyAgICAgICAgaWYgKCEkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2NsaWVudF90YWJsZScpLT5maW5kT25lKGFycmF5KCdjbGllbnRfaWQnID0+ICRjbGllbnRfaWQpKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVtcHR5KCRyZXN1bHRbJ2NsaWVudF9zZWNyZXQnXSk7CisgICAgfQorCisgICAgLyogQ2xpZW50SW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbignY2xpZW50X3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCkpOworCisgICAgICAgIHJldHVybiBpc19udWxsKCRyZXN1bHQpID8gZmFsc2UgOiAkcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQsICRjbGllbnRfc2VjcmV0ID0gbnVsbCwgJHJlZGlyZWN0X3VyaSA9IG51bGwsICRncmFudF90eXBlcyA9IG51bGwsICRzY29wZSA9IG51bGwsICR1c2VyX2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmICgkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ2NsaWVudF90YWJsZScpLT51cGRhdGUoCisgICAgICAgICAgICAgICAgYXJyYXkoJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCksCisgICAgICAgICAgICAgICAgYXJyYXkoJyRzZXQnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJGNsaWVudF9zZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAkcmVkaXJlY3RfdXJpLAorICAgICAgICAgICAgICAgICAgICAnZ3JhbnRfdHlwZXMnICAgPT4gJGdyYW50X3R5cGVzLAorICAgICAgICAgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJHNjb3BlLAorICAgICAgICAgICAgICAgICAgICAndXNlcl9pZCcgICAgICAgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgICk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkY2xpZW50ID0gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICRjbGllbnRfaWQsCisgICAgICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICRjbGllbnRfc2VjcmV0LAorICAgICAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAkcmVkaXJlY3RfdXJpLAorICAgICAgICAgICAgICAgICdncmFudF90eXBlcycgICA9PiAkZ3JhbnRfdHlwZXMsCisgICAgICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICRzY29wZSwKKyAgICAgICAgICAgICAgICAndXNlcl9pZCcgICAgICAgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ2NsaWVudF90YWJsZScpLT5pbnNlcnQoJGNsaWVudCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tSZXN0cmljdGVkR3JhbnRUeXBlKCRjbGllbnRfaWQsICRncmFudF90eXBlKQorICAgIHsKKyAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzc2V0KCRkZXRhaWxzWydncmFudF90eXBlcyddKSkgeworICAgICAgICAgICAgJGdyYW50X3R5cGVzID0gZXhwbG9kZSgnICcsICRkZXRhaWxzWydncmFudF90eXBlcyddKTsKKworICAgICAgICAgICAgcmV0dXJuIGluX2FycmF5KCRncmFudF90eXBlLCAkZ3JhbnRfdHlwZXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgZ3JhbnRfdHlwZXMgYXJlIG5vdCBkZWZpbmVkLCB0aGVuIG5vbmUgYXJlIHJlc3RyaWN0ZWQKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyogQWNjZXNzVG9rZW5JbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbikKKyAgICB7CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5jb2xsZWN0aW9uKCdhY2Nlc3NfdG9rZW5fdGFibGUnKS0+ZmluZE9uZShhcnJheSgnYWNjZXNzX3Rva2VuJyA9PiAkYWNjZXNzX3Rva2VuKSk7CisKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJHRva2VuKSA/IGZhbHNlIDogJHRva2VuOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwpCisgICAgeworICAgICAgICAvLyBpZiBpdCBleGlzdHMsIHVwZGF0ZSBpdC4KKyAgICAgICAgaWYgKCR0aGlzLT5nZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKSkgeworICAgICAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ2FjY2Vzc190b2tlbl90YWJsZScpLT51cGRhdGUoCisgICAgICAgICAgICAgICAgYXJyYXkoJ2FjY2Vzc190b2tlbicgPT4gJGFjY2Vzc190b2tlbiksCisgICAgICAgICAgICAgICAgYXJyYXkoJyRzZXQnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAnZXhwaXJlcycgPT4gJGV4cGlyZXMsCisgICAgICAgICAgICAgICAgICAgICd1c2VyX2lkJyA9PiAkdXNlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUKKyAgICAgICAgICAgICAgICApKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0b2tlbiA9IGFycmF5KAorICAgICAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICRhY2Nlc3NfdG9rZW4sCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAnZXhwaXJlcycgPT4gJGV4cGlyZXMsCisgICAgICAgICAgICAgICAgJ3VzZXJfaWQnID0+ICR1c2VyX2lkLAorICAgICAgICAgICAgICAgICdzY29wZScgPT4gJHNjb3BlCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ2FjY2Vzc190b2tlbl90YWJsZScpLT5pbnNlcnQoJHRva2VuKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2FjY2Vzc190b2tlbl90YWJsZScpLT5yZW1vdmUoYXJyYXkoCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyA9PiAkYWNjZXNzX3Rva2VuCisgICAgICAgICksIGFycmF5KCd3JyA9PiAxKSk7CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHRbJ24nXSA+IDA7CisgICAgfQorCisKKyAgICAvKiBBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSkKKyAgICB7CisgICAgICAgICRjb2RlID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2NvZGVfdGFibGUnKS0+ZmluZE9uZShhcnJheSgnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAkY29kZSkpOworCisgICAgICAgIHJldHVybiBpc19udWxsKCRjb2RlKSA/IGZhbHNlIDogJGNvZGU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwsICRpZF90b2tlbiA9IG51bGwpCisgICAgeworICAgICAgICAvLyBpZiBpdCBleGlzdHMsIHVwZGF0ZSBpdC4KKyAgICAgICAgaWYgKCR0aGlzLT5nZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5jb2xsZWN0aW9uKCdjb2RlX3RhYmxlJyktPnVwZGF0ZSgKKyAgICAgICAgICAgICAgICBhcnJheSgnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAkY29kZSksCisgICAgICAgICAgICAgICAgYXJyYXkoJyRzZXQnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAgICAgICAgICdleHBpcmVzJyA9PiAkZXhwaXJlcywKKyAgICAgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUsCisgICAgICAgICAgICAgICAgICAgICdpZF90b2tlbicgPT4gJGlkX3Rva2VuLAorICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRva2VuID0gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2F1dGhvcml6YXRpb25fY29kZScgPT4gJGNvZGUsCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJHJlZGlyZWN0X3VyaSwKKyAgICAgICAgICAgICAgICAnZXhwaXJlcycgPT4gJGV4cGlyZXMsCisgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUsCisgICAgICAgICAgICAgICAgJ2lkX3Rva2VuJyA9PiAkaWRfdG9rZW4sCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ2NvZGVfdGFibGUnKS0+aW5zZXJ0KCR0b2tlbik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlQXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworICAgICAgICAkdGhpcy0+Y29sbGVjdGlvbignY29kZV90YWJsZScpLT5yZW1vdmUoYXJyYXkoJ2F1dGhvcml6YXRpb25fY29kZScgPT4gJGNvZGUpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiBVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tVc2VyQ3JlZGVudGlhbHMoJHVzZXJuYW1lLCAkcGFzc3dvcmQpCisgICAgeworICAgICAgICBpZiAoJHVzZXIgPSAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNoZWNrUGFzc3dvcmQoJHVzZXIsICRwYXNzd29yZCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgIGlmICgkdXNlciA9ICR0aGlzLT5nZXRVc2VyKCR1c2VybmFtZSkpIHsKKyAgICAgICAgICAgICR1c2VyWyd1c2VyX2lkJ10gPSAkdXNlclsndXNlcm5hbWUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdXNlcjsKKyAgICB9CisKKyAgICAvKiBSZWZyZXNoVG9rZW5JbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPmNvbGxlY3Rpb24oJ3JlZnJlc2hfdG9rZW5fdGFibGUnKS0+ZmluZE9uZShhcnJheSgncmVmcmVzaF90b2tlbicgPT4gJHJlZnJlc2hfdG9rZW4pKTsKKworICAgICAgICByZXR1cm4gaXNfbnVsbCgkdG9rZW4pID8gZmFsc2UgOiAkdG9rZW47CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRva2VuID0gYXJyYXkoCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbicgPT4gJHJlZnJlc2hfdG9rZW4sCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgJ3VzZXJfaWQnID0+ICR1c2VyX2lkLAorICAgICAgICAgICAgJ2V4cGlyZXMnID0+ICRleHBpcmVzLAorICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUKKyAgICAgICAgKTsKKyAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ3JlZnJlc2hfdG9rZW5fdGFibGUnKS0+aW5zZXJ0KCR0b2tlbik7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdyZWZyZXNoX3Rva2VuX3RhYmxlJyktPnJlbW92ZShhcnJheSgKKyAgICAgICAgICAgICdyZWZyZXNoX3Rva2VuJyA9PiAkcmVmcmVzaF90b2tlbgorICAgICAgICApLCBhcnJheSgndycgPT4gMSkpOworCisgICAgICAgIHJldHVybiAkcmVzdWx0WyduJ10gPiAwOworICAgIH0KKworICAgIC8vIHBsYWludGV4dCBwYXNzd29yZHMgYXJlIGJhZCEgIE92ZXJyaWRlIHRoaXMgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2hlY2tQYXNzd29yZCgkdXNlciwgJHBhc3N3b3JkKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR1c2VyWydwYXNzd29yZCddID09ICRwYXNzd29yZDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlcigkdXNlcm5hbWUpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ3VzZXJfdGFibGUnKS0+ZmluZE9uZShhcnJheSgndXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOworCisgICAgICAgIHJldHVybiBpc19udWxsKCRyZXN1bHQpID8gZmFsc2UgOiAkcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VyKCR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZmlyc3ROYW1lID0gbnVsbCwgJGxhc3ROYW1lID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmICgkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICAkdGhpcy0+Y29sbGVjdGlvbigndXNlcl90YWJsZScpLT51cGRhdGUoCisgICAgICAgICAgICAgICAgYXJyYXkoJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUpLAorICAgICAgICAgICAgICAgIGFycmF5KCckc2V0JyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAkcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICdmaXJzdF9uYW1lJyA9PiAkZmlyc3ROYW1lLAorICAgICAgICAgICAgICAgICAgICAnbGFzdF9uYW1lJyA9PiAkbGFzdE5hbWUKKyAgICAgICAgICAgICAgICApKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR1c2VyID0gYXJyYXkoCisgICAgICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsCisgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAkcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgJ2ZpcnN0X25hbWUnID0+ICRmaXJzdE5hbWUsCisgICAgICAgICAgICAgICAgJ2xhc3RfbmFtZScgPT4gJGxhc3ROYW1lCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPmNvbGxlY3Rpb24oJ3VzZXJfdGFibGUnKS0+aW5zZXJ0KCR1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRLZXkoJGNsaWVudF9pZCwgJHN1YmplY3QpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2p3dF90YWJsZScpLT5maW5kT25lKGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICdzdWJqZWN0JyA9PiAkc3ViamVjdAorICAgICAgICApKTsKKworICAgICAgICByZXR1cm4gaXNfbnVsbCgkcmVzdWx0KSA/IGZhbHNlIDogJHJlc3VsdFsna2V5J107CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudFNjb3BlKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICBpZiAoISRjbGllbnREZXRhaWxzID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkY2xpZW50RGV0YWlsc1snc2NvcGUnXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkY2xpZW50RGV0YWlsc1snc2NvcGUnXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyYXRpb24sICRqdGkpCisgICAgeworICAgICAgICAvL1RPRE86IE5lZWRzIG1vbmdvZGIgaW1wbGVtZW50YXRpb24uCisgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCdnZXRKdGkoKSBmb3IgdGhlIE1vbmdvREIgZHJpdmVyIGlzIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyYXRpb24sICRqdGkpCisgICAgeworICAgICAgICAvL1RPRE86IE5lZWRzIG1vbmdvZGIgaW1wbGVtZW50YXRpb24uCisgICAgICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCdzZXRKdGkoKSBmb3IgdGhlIE1vbmdvREIgZHJpdmVyIGlzIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQdWJsaWNLZXkoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJGNsaWVudF9pZCkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdrZXlfdGFibGUnKS0+ZmluZE9uZShhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkCisgICAgICAgICAgICApKTsKKyAgICAgICAgICAgIGlmICgkcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHRbJ3B1YmxpY19rZXknXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbigna2V5X3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiBudWxsCisgICAgICAgICkpOworICAgICAgICByZXR1cm4gaXNfbnVsbCgkcmVzdWx0KSA/IGZhbHNlIDogJHJlc3VsdFsncHVibGljX2tleSddOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcml2YXRlS2V5KCRjbGllbnRfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCRjbGllbnRfaWQpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbigna2V5X3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZAorICAgICAgICAgICAgKSk7CisgICAgICAgICAgICBpZiAoJHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAkcmVzdWx0Wydwcml2YXRlX2tleSddOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdrZXlfdGFibGUnKS0+ZmluZE9uZShhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+IG51bGwKKyAgICAgICAgKSk7CisgICAgICAgIHJldHVybiBpc19udWxsKCRyZXN1bHQpID8gZmFsc2UgOiAkcmVzdWx0Wydwcml2YXRlX2tleSddOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRFbmNyeXB0aW9uQWxnb3JpdGhtKCRjbGllbnRfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCRjbGllbnRfaWQpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbigna2V5X3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZAorICAgICAgICAgICAgKSk7CisgICAgICAgICAgICBpZiAoJHJlc3VsdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAkcmVzdWx0WydlbmNyeXB0aW9uX2FsZ29yaXRobSddOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdrZXlfdGFibGUnKS0+ZmluZE9uZShhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+IG51bGwKKyAgICAgICAgKSk7CisgICAgICAgIHJldHVybiBpc19udWxsKCRyZXN1bHQpID8gJ1JTMjU2JyA6ICRyZXN1bHRbJ2VuY3J5cHRpb25fYWxnb3JpdGhtJ107CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9Nb25nb0RCLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvTW9uZ29EQi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRmNzQwZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvTW9uZ29EQi5waHAKQEAgLTAsMCArMSwzODAgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKwordXNlIE1vbmdvREJcQ2xpZW50OwordXNlIE1vbmdvREJcRGF0YWJhc2U7Cit1c2UgT0F1dGgyXE9wZW5JRFxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlIGFzIE9wZW5JREF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlOworCisvKioKKyAqIFNpbXBsZSBNb25nb0RCIHN0b3JhZ2UgZm9yIGFsbCBzdG9yYWdlIHR5cGVzCisgKgorICogTk9URTogVGhpcyBjbGFzcyBpcyBtZWFudCB0byBnZXQgdXNlcnMgc3RhcnRlZAorICogcXVpY2tseS4gSWYgeW91ciBhcHBsaWNhdGlvbiByZXF1aXJlcyBmdXJ0aGVyCisgKiBjdXN0b21pemF0aW9uLCBleHRlbmQgdGhpcyBjbGFzcyBvciBjcmVhdGUgeW91ciBvd24uCisgKgorICogTk9URTogUGFzc3dvcmRzIGFyZSBzdG9yZWQgaW4gcGxhaW50ZXh0LCB3aGljaCBpcyBuZXZlcgorICogYSBnb29kIGlkZWEuICBCZSBzdXJlIHRvIG92ZXJyaWRlIHRoaXMgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAqCisgKiBAYXV0aG9yIEp1bGllbiBDaGF1bW9uZCA8Y2hhdW1vbmRAZ21haWwuY29tPgorICovCitjbGFzcyBNb25nb0RCIGltcGxlbWVudHMgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UsCisgICAgVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIEFjY2Vzc1Rva2VuSW50ZXJmYWNlLAorICAgIENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIFJlZnJlc2hUb2tlbkludGVyZmFjZSwKKyAgICBKd3RCZWFyZXJJbnRlcmZhY2UsCisgICAgUHVibGljS2V5SW50ZXJmYWNlLAorICAgIE9wZW5JREF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlCit7CisgICAgcHJvdGVjdGVkICRkYjsKKyAgICBwcm90ZWN0ZWQgJGNvbmZpZzsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY29ubmVjdGlvbiwgJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICBpZiAoJGNvbm5lY3Rpb24gaW5zdGFuY2VvZiBEYXRhYmFzZSkgeworICAgICAgICAgICAgJHRoaXMtPmRiID0gJGNvbm5lY3Rpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIWlzX2FycmF5KCRjb25uZWN0aW9uKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdGaXJzdCBhcmd1bWVudCB0byBPQXV0aDJcU3RvcmFnZVxNb25nbyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIE1vbmdvREJcRGF0YWJhc2Ugb3IgYSBjb25maWd1cmF0aW9uIGFycmF5Jyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkc2VydmVyID0gc3ByaW50ZignbW9uZ29kYjovLyVzOiVkJywgJGNvbm5lY3Rpb25bJ2hvc3QnXSwgJGNvbm5lY3Rpb25bJ3BvcnQnXSk7CisgICAgICAgICAgICAkbSA9IG5ldyBDbGllbnQoJHNlcnZlcik7CisgICAgICAgICAgICAkdGhpcy0+ZGIgPSAkbS0+c2VsZWN0RGF0YWJhc2UoJGNvbm5lY3Rpb25bJ2RhdGFiYXNlJ10pOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5jb25maWcgPSBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfdGFibGUnID0+ICdvYXV0aF9jbGllbnRzJywKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW5fdGFibGUnID0+ICdvYXV0aF9hY2Nlc3NfdG9rZW5zJywKKyAgICAgICAgICAgICdyZWZyZXNoX3Rva2VuX3RhYmxlJyA9PiAnb2F1dGhfcmVmcmVzaF90b2tlbnMnLAorICAgICAgICAgICAgJ2NvZGVfdGFibGUnID0+ICdvYXV0aF9hdXRob3JpemF0aW9uX2NvZGVzJywKKyAgICAgICAgICAgICd1c2VyX3RhYmxlJyA9PiAnb2F1dGhfdXNlcnMnLAorICAgICAgICAgICAgJ2p3dF90YWJsZScgPT4gJ29hdXRoX2p3dCcsCisgICAgICAgICAgICAnanRpX3RhYmxlJyA9PiAnb2F1dGhfanRpJywKKyAgICAgICAgICAgICdzY29wZV90YWJsZScgID0+ICdvYXV0aF9zY29wZXMnLAorICAgICAgICAgICAgJ2tleV90YWJsZScgID0+ICdvYXV0aF9rZXlzJywKKyAgICAgICAgKSwgJGNvbmZpZyk7CisgICAgfQorCisgICAgLyogQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tDbGllbnRDcmVkZW50aWFscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdjbGllbnRfdGFibGUnKS0+ZmluZE9uZShhcnJheSgnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkKSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkcmVzdWx0WydjbGllbnRfc2VjcmV0J10gPT0gJGNsaWVudF9zZWNyZXQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1B1YmxpY0NsaWVudCgkY2xpZW50X2lkKQorICAgIHsKKyAgICAgICAgaWYgKCEkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2NsaWVudF90YWJsZScpLT5maW5kT25lKGFycmF5KCdjbGllbnRfaWQnID0+ICRjbGllbnRfaWQpKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlbXB0eSgkcmVzdWx0WydjbGllbnRfc2VjcmV0J10pOworICAgIH0KKworICAgIC8qIENsaWVudEludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2NsaWVudF90YWJsZScpLT5maW5kT25lKGFycmF5KCdjbGllbnRfaWQnID0+ICRjbGllbnRfaWQpKTsKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJHJlc3VsdCkgPyBmYWxzZSA6ICRyZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldENsaWVudERldGFpbHMoJGNsaWVudF9pZCwgJGNsaWVudF9zZWNyZXQgPSBudWxsLCAkcmVkaXJlY3RfdXJpID0gbnVsbCwgJGdyYW50X3R5cGVzID0gbnVsbCwgJHNjb3BlID0gbnVsbCwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2NsaWVudF90YWJsZScpLT51cGRhdGVPbmUoCisgICAgICAgICAgICAgICAgYXJyYXkoJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCksCisgICAgICAgICAgICAgICAgYXJyYXkoJyRzZXQnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJGNsaWVudF9zZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAkcmVkaXJlY3RfdXJpLAorICAgICAgICAgICAgICAgICAgICAnZ3JhbnRfdHlwZXMnICAgPT4gJGdyYW50X3R5cGVzLAorICAgICAgICAgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJHNjb3BlLAorICAgICAgICAgICAgICAgICAgICAndXNlcl9pZCcgICAgICAgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0TWF0Y2hlZENvdW50KCkgPiAwOworICAgICAgICB9CisgICAgICAgICRjbGllbnQgPSBhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICRjbGllbnRfc2VjcmV0LAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAnZ3JhbnRfdHlwZXMnICAgPT4gJGdyYW50X3R5cGVzLAorICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICRzY29wZSwKKyAgICAgICAgICAgICd1c2VyX2lkJyAgICAgICA9PiAkdXNlcl9pZCwKKyAgICAgICAgKTsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdjbGllbnRfdGFibGUnKS0+aW5zZXJ0T25lKCRjbGllbnQpOworICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0SW5zZXJ0ZWRDb3VudCgpID4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tSZXN0cmljdGVkR3JhbnRUeXBlKCRjbGllbnRfaWQsICRncmFudF90eXBlKQorICAgIHsKKyAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzc2V0KCRkZXRhaWxzWydncmFudF90eXBlcyddKSkgeworICAgICAgICAgICAgJGdyYW50X3R5cGVzID0gZXhwbG9kZSgnICcsICRkZXRhaWxzWydncmFudF90eXBlcyddKTsKKyAgICAgICAgICAgIHJldHVybiBpbl9hcnJheSgkZ3JhbnRfdHlwZSwgJGdyYW50X3R5cGVzKTsKKyAgICAgICAgfQorICAgICAgICAvLyBpZiBncmFudF90eXBlcyBhcmUgbm90IGRlZmluZWQsIHRoZW4gbm9uZSBhcmUgcmVzdHJpY3RlZAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiBBY2Nlc3NUb2tlbkludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2FjY2Vzc190b2tlbl90YWJsZScpLT5maW5kT25lKGFycmF5KCdhY2Nlc3NfdG9rZW4nID0+ICRhY2Nlc3NfdG9rZW4pKTsKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJHRva2VuKSA/IGZhbHNlIDogJHRva2VuOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwpCisgICAgeworICAgICAgICAvLyBpZiBpdCBleGlzdHMsIHVwZGF0ZSBpdC4KKyAgICAgICAgaWYgKCR0aGlzLT5nZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdhY2Nlc3NfdG9rZW5fdGFibGUnKS0+dXBkYXRlT25lKAorICAgICAgICAgICAgICAgIGFycmF5KCdhY2Nlc3NfdG9rZW4nID0+ICRhY2Nlc3NfdG9rZW4pLAorICAgICAgICAgICAgICAgIGFycmF5KCckc2V0JyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAgICAgJ2V4cGlyZXMnID0+ICRleHBpcmVzLAorICAgICAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICdzY29wZScgPT4gJHNjb3BlCisgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0TWF0Y2hlZENvdW50KCkgPiAwOworICAgICAgICB9CisgICAgICAgICR0b2tlbiA9IGFycmF5KAorICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gJGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICRjbGllbnRfaWQsCisgICAgICAgICAgICAnZXhwaXJlcycgPT4gJGV4cGlyZXMsCisgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAnc2NvcGUnID0+ICRzY29wZQorICAgICAgICApOworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2FjY2Vzc190b2tlbl90YWJsZScpLT5pbnNlcnRPbmUoJHRva2VuKTsKKyAgICAgICAgcmV0dXJuICRyZXN1bHQtPmdldEluc2VydGVkQ291bnQoKSA+IDA7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbikKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbignYWNjZXNzX3Rva2VuX3RhYmxlJyktPmRlbGV0ZU9uZShhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICRhY2Nlc3NfdG9rZW4KKyAgICAgICAgKSk7CisgICAgICAgIHJldHVybiAkcmVzdWx0LT5nZXREZWxldGVkQ291bnQoKSA+IDA7CisgICAgfQorCisgICAgLyogQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworICAgICAgICAkY29kZSA9ICR0aGlzLT5jb2xsZWN0aW9uKCdjb2RlX3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoCisgICAgICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAkY29kZQorICAgICAgICApKTsKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJGNvZGUpID8gZmFsc2UgOiAkY29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0QXV0aG9yaXphdGlvbkNvZGUoJGNvZGUsICRjbGllbnRfaWQsICR1c2VyX2lkLCAkcmVkaXJlY3RfdXJpLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCwgJGlkX3Rva2VuID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIGlmIGl0IGV4aXN0cywgdXBkYXRlIGl0LgorICAgICAgICBpZiAoJHRoaXMtPmdldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdjb2RlX3RhYmxlJyktPnVwZGF0ZU9uZSgKKyAgICAgICAgICAgICAgICBhcnJheSgnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAkY29kZSksCisgICAgICAgICAgICAgICAgYXJyYXkoJyRzZXQnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAgICAgICAgICdleHBpcmVzJyA9PiAkZXhwaXJlcywKKyAgICAgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUsCisgICAgICAgICAgICAgICAgICAgICdpZF90b2tlbicgPT4gJGlkX3Rva2VuLAorICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICApOworICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQtPmdldE1hdGNoZWRDb3VudCgpID4gMDsKKyAgICAgICAgfQorICAgICAgICAkdG9rZW4gPSBhcnJheSgKKyAgICAgICAgICAgICdhdXRob3JpemF0aW9uX2NvZGUnID0+ICRjb2RlLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICd1c2VyX2lkJyA9PiAkdXNlcl9pZCwKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICRyZWRpcmVjdF91cmksCisgICAgICAgICAgICAnZXhwaXJlcycgPT4gJGV4cGlyZXMsCisgICAgICAgICAgICAnc2NvcGUnID0+ICRzY29wZSwKKyAgICAgICAgICAgICdpZF90b2tlbicgPT4gJGlkX3Rva2VuLAorICAgICAgICApOworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2NvZGVfdGFibGUnKS0+aW5zZXJ0T25lKCR0b2tlbik7CisgICAgICAgIHJldHVybiAkcmVzdWx0LT5nZXRJbnNlcnRlZENvdW50KCkgPiAwOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBleHBpcmVBdXRob3JpemF0aW9uQ29kZSgkY29kZSkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbignY29kZV90YWJsZScpLT5kZWxldGVPbmUoYXJyYXkoCisgICAgICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiAkY29kZQorICAgICAgICApKTsKKyAgICAgICAgcmV0dXJuICRyZXN1bHQtPmdldERlbGV0ZWRDb3VudCgpID4gMDsKKyAgICB9CisKKyAgICAvKiBVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tVc2VyQ3JlZGVudGlhbHMoJHVzZXJuYW1lLCAkcGFzc3dvcmQpCisgICAgeworICAgICAgICBpZiAoJHVzZXIgPSAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmNoZWNrUGFzc3dvcmQoJHVzZXIsICRwYXNzd29yZCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyRGV0YWlscygkdXNlcm5hbWUpCisgICAgeworICAgICAgICBpZiAoJHVzZXIgPSAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICAkdXNlclsndXNlcl9pZCddID0gJHVzZXJbJ3VzZXJuYW1lJ107CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICR1c2VyOworICAgIH0KKworICAgIC8qIFJlZnJlc2hUb2tlbkludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4pCisgICAgeworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+Y29sbGVjdGlvbigncmVmcmVzaF90b2tlbl90YWJsZScpLT5maW5kT25lKGFycmF5KAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICRyZWZyZXNoX3Rva2VuCisgICAgICAgICkpOworICAgICAgICByZXR1cm4gaXNfbnVsbCgkdG9rZW4pID8gZmFsc2UgOiAkdG9rZW47CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRva2VuID0gYXJyYXkoCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbicgPT4gJHJlZnJlc2hfdG9rZW4sCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgJ3VzZXJfaWQnID0+ICR1c2VyX2lkLAorICAgICAgICAgICAgJ2V4cGlyZXMnID0+ICRleHBpcmVzLAorICAgICAgICAgICAgJ3Njb3BlJyA9PiAkc2NvcGUKKyAgICAgICAgKTsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdyZWZyZXNoX3Rva2VuX3RhYmxlJyktPmluc2VydE9uZSgkdG9rZW4pOworICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0SW5zZXJ0ZWRDb3VudCgpID4gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdW5zZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4pCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ3JlZnJlc2hfdG9rZW5fdGFibGUnKS0+ZGVsZXRlT25lKGFycmF5KAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICRyZWZyZXNoX3Rva2VuCisgICAgICAgICkpOworICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0RGVsZXRlZENvdW50KCkgPiAwOworICAgIH0KKworICAgIC8vIHBsYWludGV4dCBwYXNzd29yZHMgYXJlIGJhZCEgIE92ZXJyaWRlIHRoaXMgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2hlY2tQYXNzd29yZCgkdXNlciwgJHBhc3N3b3JkKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR1c2VyWydwYXNzd29yZCddID09ICRwYXNzd29yZDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlcigkdXNlcm5hbWUpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ3VzZXJfdGFibGUnKS0+ZmluZE9uZShhcnJheSgndXNlcm5hbWUnID0+ICR1c2VybmFtZSkpOworICAgICAgICByZXR1cm4gaXNfbnVsbCgkcmVzdWx0KSA/IGZhbHNlIDogJHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXNlcigkdXNlcm5hbWUsICRwYXNzd29yZCwgJGZpcnN0TmFtZSA9IG51bGwsICRsYXN0TmFtZSA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPmdldFVzZXIoJHVzZXJuYW1lKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCd1c2VyX3RhYmxlJyktPnVwZGF0ZU9uZSgKKyAgICAgICAgICAgICAgICBhcnJheSgndXNlcm5hbWUnID0+ICR1c2VybmFtZSksCisgICAgICAgICAgICAgICAgYXJyYXkoJyRzZXQnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmQnID0+ICRwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgJ2ZpcnN0X25hbWUnID0+ICRmaXJzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICdsYXN0X25hbWUnID0+ICRsYXN0TmFtZQorICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICApOworCisgICAgICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0TWF0Y2hlZENvdW50KCkgPiAwOworICAgICAgICB9CisKKyAgICAgICAgJHVzZXIgPSBhcnJheSgKKyAgICAgICAgICAgICd1c2VybmFtZScgPT4gJHVzZXJuYW1lLAorICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAkcGFzc3dvcmQsCisgICAgICAgICAgICAnZmlyc3RfbmFtZScgPT4gJGZpcnN0TmFtZSwKKyAgICAgICAgICAgICdsYXN0X25hbWUnID0+ICRsYXN0TmFtZQorICAgICAgICApOworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ3VzZXJfdGFibGUnKS0+aW5zZXJ0T25lKCR1c2VyKTsKKyAgICAgICAgcmV0dXJuICRyZXN1bHQtPmdldEluc2VydGVkQ291bnQoKSA+IDA7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudEtleSgkY2xpZW50X2lkLCAkc3ViamVjdCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y29sbGVjdGlvbignand0X3RhYmxlJyktPmZpbmRPbmUoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLAorICAgICAgICAgICAgJ3N1YmplY3QnID0+ICRzdWJqZWN0CisgICAgICAgICkpOworICAgICAgICByZXR1cm4gaXNfbnVsbCgkcmVzdWx0KSA/IGZhbHNlIDogJHJlc3VsdFsna2V5J107CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudFNjb3BlKCRjbGllbnRfaWQpCisgICAgeworICAgICAgICBpZiAoISRjbGllbnREZXRhaWxzID0gJHRoaXMtPmdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNzZXQoJGNsaWVudERldGFpbHNbJ3Njb3BlJ10pKSB7CisgICAgICAgICAgICByZXR1cm4gJGNsaWVudERldGFpbHNbJ3Njb3BlJ107CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJlcywgJGp0aSkKKyAgICB7CisgICAgICAgIC8vVE9ETzogTmVlZHMgbW9uZ29kYiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ2dldEp0aSgpIGZvciB0aGUgTW9uZ29EQiBkcml2ZXIgaXMgY3VycmVudGx5IHVuaW1wbGVtZW50ZWQuJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEp0aSgkY2xpZW50X2lkLCAkc3ViamVjdCwgJGF1ZGllbmNlLCAkZXhwaXJlcywgJGp0aSkKKyAgICB7CisgICAgICAgIC8vVE9ETzogTmVlZHMgbW9uZ29kYiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ3NldEp0aSgpIGZvciB0aGUgTW9uZ29EQiBkcml2ZXIgaXMgY3VycmVudGx5IHVuaW1wbGVtZW50ZWQuJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFB1YmxpY0tleSgkY2xpZW50X2lkID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmICgkY2xpZW50X2lkKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2tleV90YWJsZScpLT5maW5kT25lKGFycmF5KAorICAgICAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICRjbGllbnRfaWQKKyAgICAgICAgICAgICkpOworICAgICAgICAgICAgaWYgKCRyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdFsncHVibGljX2tleSddOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdrZXlfdGFibGUnKS0+ZmluZE9uZShhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+IG51bGwKKyAgICAgICAgKSk7CisgICAgICAgIHJldHVybiBpc19udWxsKCRyZXN1bHQpID8gZmFsc2UgOiAkcmVzdWx0WydwdWJsaWNfa2V5J107CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFByaXZhdGVLZXkoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJGNsaWVudF9pZCkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdrZXlfdGFibGUnKS0+ZmluZE9uZShhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkCisgICAgICAgICAgICApKTsKKyAgICAgICAgICAgIGlmICgkcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHRbJ3ByaXZhdGVfa2V5J107CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2tleV90YWJsZScpLT5maW5kT25lKGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gbnVsbAorICAgICAgICApKTsKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJHJlc3VsdCkgPyBmYWxzZSA6ICRyZXN1bHRbJ3ByaXZhdGVfa2V5J107CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEVuY3J5cHRpb25BbGdvcml0aG0oJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJGNsaWVudF9pZCkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jb2xsZWN0aW9uKCdrZXlfdGFibGUnKS0+ZmluZE9uZShhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkCisgICAgICAgICAgICApKTsKKyAgICAgICAgICAgIGlmICgkcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRyZXN1bHRbJ2VuY3J5cHRpb25fYWxnb3JpdGhtJ107CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbGxlY3Rpb24oJ2tleV90YWJsZScpLT5maW5kT25lKGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gbnVsbAorICAgICAgICApKTsKKyAgICAgICAgcmV0dXJuIGlzX251bGwoJHJlc3VsdCkgPyAnUlMyNTYnIDogJHJlc3VsdFsnZW5jcnlwdGlvbl9hbGdvcml0aG0nXTsKKyAgICB9CisKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gYWNjZXNzIGEgTW9uZ29EQiBjb2xsZWN0aW9uIGJ5IGB0eXBlYDoKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29sbGVjdGlvbigkbmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZGItPnskdGhpcy0+Y29uZmlnWyRuYW1lXX07CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvUGRvLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvUGRvLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzRjZWU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9QZG8ucGhwCkBAIC0wLDAgKzEsNzMxIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK3VzZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2VcVXNlckNsYWltc0ludGVyZmFjZTsKK3VzZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgYXMgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2U7Cit1c2UgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uOworCisvKioKKyAqIFNpbXBsZSBQRE8gc3RvcmFnZSBmb3IgYWxsIHN0b3JhZ2UgdHlwZXMKKyAqCisgKiBOT1RFOiBUaGlzIGNsYXNzIGlzIG1lYW50IHRvIGdldCB1c2VycyBzdGFydGVkCisgKiBxdWlja2x5LiBJZiB5b3VyIGFwcGxpY2F0aW9uIHJlcXVpcmVzIGZ1cnRoZXIKKyAqIGN1c3RvbWl6YXRpb24sIGV4dGVuZCB0aGlzIGNsYXNzIG9yIGNyZWF0ZSB5b3VyIG93bi4KKyAqCisgKiBOT1RFOiBQYXNzd29yZHMgYXJlIHN0b3JlZCBpbiBwbGFpbnRleHQsIHdoaWNoIGlzIG5ldmVyCisgKiBhIGdvb2QgaWRlYS4gIEJlIHN1cmUgdG8gb3ZlcnJpZGUgdGhpcyBmb3IgeW91ciBhcHBsaWNhdGlvbgorICoKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2NsYXNzIFBkbyBpbXBsZW1lbnRzCisgICAgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UsCisgICAgQWNjZXNzVG9rZW5JbnRlcmZhY2UsCisgICAgQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIFJlZnJlc2hUb2tlbkludGVyZmFjZSwKKyAgICBKd3RCZWFyZXJJbnRlcmZhY2UsCisgICAgU2NvcGVJbnRlcmZhY2UsCisgICAgUHVibGljS2V5SW50ZXJmYWNlLAorICAgIFVzZXJDbGFpbXNJbnRlcmZhY2UsCisgICAgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIFxQRE8KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGRiOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkY29uZmlnOworCisgICAgLyoqCisgICAgICogQHBhcmFtIG1peGVkICRjb25uZWN0aW9uCisgICAgICogQHBhcmFtIGFycmF5ICRjb25maWcKKyAgICAgKgorICAgICAqIEB0aHJvd3MgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRjb25uZWN0aW9uLCAkY29uZmlnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgIGlmICghJGNvbm5lY3Rpb24gaW5zdGFuY2VvZiBcUERPKSB7CisgICAgICAgICAgICBpZiAoaXNfc3RyaW5nKCRjb25uZWN0aW9uKSkgeworICAgICAgICAgICAgICAgICRjb25uZWN0aW9uID0gYXJyYXkoJ2RzbicgPT4gJGNvbm5lY3Rpb24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpc19hcnJheSgkY29ubmVjdGlvbikpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignRmlyc3QgYXJndW1lbnQgdG8gT0F1dGgyXFN0b3JhZ2VcUGRvIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgUERPLCBhIERTTiBzdHJpbmcsIG9yIGEgY29uZmlndXJhdGlvbiBhcnJheScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpc3NldCgkY29ubmVjdGlvblsnZHNuJ10pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ2NvbmZpZ3VyYXRpb24gYXJyYXkgbXVzdCBjb250YWluICJkc24iJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBtZXJnZSBvcHRpb25hbCBwYXJhbWV0ZXJzCisgICAgICAgICAgICAkY29ubmVjdGlvbiA9IGFycmF5X21lcmdlKGFycmF5KAorICAgICAgICAgICAgICAgICd1c2VybmFtZScgPT4gbnVsbCwKKyAgICAgICAgICAgICAgICAncGFzc3dvcmQnID0+IG51bGwsCisgICAgICAgICAgICAgICAgJ29wdGlvbnMnID0+IGFycmF5KCksCisgICAgICAgICAgICApLCAkY29ubmVjdGlvbik7CisgICAgICAgICAgICAkY29ubmVjdGlvbiA9IG5ldyBcUERPKCRjb25uZWN0aW9uWydkc24nXSwgJGNvbm5lY3Rpb25bJ3VzZXJuYW1lJ10sICRjb25uZWN0aW9uWydwYXNzd29yZCddLCAkY29ubmVjdGlvblsnb3B0aW9ucyddKTsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+ZGIgPSAkY29ubmVjdGlvbjsKKworICAgICAgICAvLyBkZWJ1Z2dpbmcKKyAgICAgICAgJGNvbm5lY3Rpb24tPnNldEF0dHJpYnV0ZShcUERPOjpBVFRSX0VSUk1PREUsIFxQRE86OkVSUk1PREVfRVhDRVBUSU9OKTsKKworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X3RhYmxlJyA9PiAnb2F1dGhfY2xpZW50cycsCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuX3RhYmxlJyA9PiAnb2F1dGhfYWNjZXNzX3Rva2VucycsCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbl90YWJsZScgPT4gJ29hdXRoX3JlZnJlc2hfdG9rZW5zJywKKyAgICAgICAgICAgICdjb2RlX3RhYmxlJyA9PiAnb2F1dGhfYXV0aG9yaXphdGlvbl9jb2RlcycsCisgICAgICAgICAgICAndXNlcl90YWJsZScgPT4gJ29hdXRoX3VzZXJzJywKKyAgICAgICAgICAgICdqd3RfdGFibGUnICA9PiAnb2F1dGhfand0JywKKyAgICAgICAgICAgICdqdGlfdGFibGUnICA9PiAnb2F1dGhfanRpJywKKyAgICAgICAgICAgICdzY29wZV90YWJsZScgID0+ICdvYXV0aF9zY29wZXMnLAorICAgICAgICAgICAgJ3B1YmxpY19rZXlfdGFibGUnICA9PiAnb2F1dGhfcHVibGljX2tleXMnLAorICAgICAgICApLCAkY29uZmlnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGNsaWVudF9zZWNyZXQKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tDbGllbnRDcmVkZW50aWFscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCA9IG51bGwpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdTRUxFQ1QgKiBmcm9tICVzIHdoZXJlIGNsaWVudF9pZCA9IDpjbGllbnRfaWQnLCAkdGhpcy0+Y29uZmlnWydjbGllbnRfdGFibGUnXSkpOworICAgICAgICAkc3RtdC0+ZXhlY3V0ZShjb21wYWN0KCdjbGllbnRfaWQnKSk7CisgICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goXFBETzo6RkVUQ0hfQVNTT0MpOworCisgICAgICAgIC8vIG1ha2UgdGhpcyBleHRlbnNpYmxlCisgICAgICAgIHJldHVybiAkcmVzdWx0ICYmICRyZXN1bHRbJ2NsaWVudF9zZWNyZXQnXSA9PSAkY2xpZW50X3NlY3JldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNQdWJsaWNDbGllbnQoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKHNwcmludGYoJ1NFTEVDVCAqIGZyb20gJXMgd2hlcmUgY2xpZW50X2lkID0gOmNsaWVudF9pZCcsICR0aGlzLT5jb25maWdbJ2NsaWVudF90YWJsZSddKSk7CisgICAgICAgICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2NsaWVudF9pZCcpKTsKKworICAgICAgICBpZiAoISRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goXFBETzo6RkVUQ0hfQVNTT0MpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZW1wdHkoJHJlc3VsdFsnY2xpZW50X3NlY3JldCddKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIGFycmF5fG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudERldGFpbHMoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKHNwcmludGYoJ1NFTEVDVCAqIGZyb20gJXMgd2hlcmUgY2xpZW50X2lkID0gOmNsaWVudF9pZCcsICR0aGlzLT5jb25maWdbJ2NsaWVudF90YWJsZSddKSk7CisgICAgICAgICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2NsaWVudF9pZCcpKTsKKworICAgICAgICByZXR1cm4gJHN0bXQtPmZldGNoKFxQRE86OkZFVENIX0FTU09DKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gbnVsbHxzdHJpbmcgJGNsaWVudF9zZWNyZXQKKyAgICAgKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHJlZGlyZWN0X3VyaQorICAgICAqIEBwYXJhbSBudWxsfGFycmF5ICAkZ3JhbnRfdHlwZXMKKyAgICAgKiBAcGFyYW0gbnVsbHxzdHJpbmcgJHNjb3BlCisgICAgICogQHBhcmFtIG51bGx8c3RyaW5nICR1c2VyX2lkCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldENsaWVudERldGFpbHMoJGNsaWVudF9pZCwgJGNsaWVudF9zZWNyZXQgPSBudWxsLCAkcmVkaXJlY3RfdXJpID0gbnVsbCwgJGdyYW50X3R5cGVzID0gbnVsbCwgJHNjb3BlID0gbnVsbCwgJHVzZXJfaWQgPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gaWYgaXQgZXhpc3RzLCB1cGRhdGUgaXQuCisgICAgICAgIGlmICgkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCA9IHNwcmludGYoJ1VQREFURSAlcyBTRVQgY2xpZW50X3NlY3JldD06Y2xpZW50X3NlY3JldCwgcmVkaXJlY3RfdXJpPTpyZWRpcmVjdF91cmksIGdyYW50X3R5cGVzPTpncmFudF90eXBlcywgc2NvcGU9OnNjb3BlLCB1c2VyX2lkPTp1c2VyX2lkIHdoZXJlIGNsaWVudF9pZD06Y2xpZW50X2lkJywgJHRoaXMtPmNvbmZpZ1snY2xpZW50X3RhYmxlJ10pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKHNwcmludGYoJ0lOU0VSVCBJTlRPICVzIChjbGllbnRfaWQsIGNsaWVudF9zZWNyZXQsIHJlZGlyZWN0X3VyaSwgZ3JhbnRfdHlwZXMsIHNjb3BlLCB1c2VyX2lkKSBWQUxVRVMgKDpjbGllbnRfaWQsIDpjbGllbnRfc2VjcmV0LCA6cmVkaXJlY3RfdXJpLCA6Z3JhbnRfdHlwZXMsIDpzY29wZSwgOnVzZXJfaWQpJywgJHRoaXMtPmNvbmZpZ1snY2xpZW50X3RhYmxlJ10pKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkc3RtdC0+ZXhlY3V0ZShjb21wYWN0KCdjbGllbnRfaWQnLCAnY2xpZW50X3NlY3JldCcsICdyZWRpcmVjdF91cmknLCAnZ3JhbnRfdHlwZXMnLCAnc2NvcGUnLCAndXNlcl9pZCcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSAkZ3JhbnRfdHlwZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUoJGNsaWVudF9pZCwgJGdyYW50X3R5cGUpCisgICAgeworICAgICAgICAkZGV0YWlscyA9ICR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpOworICAgICAgICBpZiAoaXNzZXQoJGRldGFpbHNbJ2dyYW50X3R5cGVzJ10pKSB7CisgICAgICAgICAgICAkZ3JhbnRfdHlwZXMgPSBleHBsb2RlKCcgJywgJGRldGFpbHNbJ2dyYW50X3R5cGVzJ10pOworCisgICAgICAgICAgICByZXR1cm4gaW5fYXJyYXkoJGdyYW50X3R5cGUsIChhcnJheSkgJGdyYW50X3R5cGVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIGdyYW50X3R5cGVzIGFyZSBub3QgZGVmaW5lZCwgdGhlbiBub25lIGFyZSByZXN0cmljdGVkCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFjY2Vzc190b2tlbgorICAgICAqIEByZXR1cm4gYXJyYXl8Ym9vbHxtaXhlZHxudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdTRUxFQ1QgKiBmcm9tICVzIHdoZXJlIGFjY2Vzc190b2tlbiA9IDphY2Nlc3NfdG9rZW4nLCAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fdGFibGUnXSkpOworCisgICAgICAgICR0b2tlbiA9ICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2FjY2Vzc190b2tlbicpKTsKKyAgICAgICAgaWYgKCR0b2tlbiA9ICRzdG10LT5mZXRjaChcUERPOjpGRVRDSF9BU1NPQykpIHsKKyAgICAgICAgICAgIC8vIGNvbnZlcnQgZGF0ZSBzdHJpbmcgYmFjayB0byB0aW1lc3RhbXAKKyAgICAgICAgICAgICR0b2tlblsnZXhwaXJlcyddID0gc3RydG90aW1lKCR0b2tlblsnZXhwaXJlcyddKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkYWNjZXNzX3Rva2VuCisgICAgICogQHBhcmFtIG1peGVkICAkY2xpZW50X2lkCisgICAgICogQHBhcmFtIG1peGVkICAkdXNlcl9pZAorICAgICAqIEBwYXJhbSBpbnQgICAgJGV4cGlyZXMKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzY29wZQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwpCisgICAgeworICAgICAgICAvLyBjb252ZXJ0IGV4cGlyZXMgdG8gZGF0ZXN0cmluZworICAgICAgICAkZXhwaXJlcyA9IGRhdGUoJ1ktbS1kIEg6aTpzJywgJGV4cGlyZXMpOworCisgICAgICAgIC8vIGlmIGl0IGV4aXN0cywgdXBkYXRlIGl0LgorICAgICAgICBpZiAoJHRoaXMtPmdldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pKSB7CisgICAgICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdVUERBVEUgJXMgU0VUIGNsaWVudF9pZD06Y2xpZW50X2lkLCBleHBpcmVzPTpleHBpcmVzLCB1c2VyX2lkPTp1c2VyX2lkLCBzY29wZT06c2NvcGUgd2hlcmUgYWNjZXNzX3Rva2VuPTphY2Nlc3NfdG9rZW4nLCAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fdGFibGUnXSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoc3ByaW50ZignSU5TRVJUIElOVE8gJXMgKGFjY2Vzc190b2tlbiwgY2xpZW50X2lkLCBleHBpcmVzLCB1c2VyX2lkLCBzY29wZSkgVkFMVUVTICg6YWNjZXNzX3Rva2VuLCA6Y2xpZW50X2lkLCA6ZXhwaXJlcywgOnVzZXJfaWQsIDpzY29wZSknLCAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fdGFibGUnXSkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2FjY2Vzc190b2tlbicsICdjbGllbnRfaWQnLCAndXNlcl9pZCcsICdleHBpcmVzJywgJ3Njb3BlJykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSAkYWNjZXNzX3Rva2VuCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0QWNjZXNzVG9rZW4oJGFjY2Vzc190b2tlbikKKyAgICB7CisgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKHNwcmludGYoJ0RFTEVURSBGUk9NICVzIFdIRVJFIGFjY2Vzc190b2tlbiA9IDphY2Nlc3NfdG9rZW4nLCAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fdGFibGUnXSkpOworCisgICAgICAgICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2FjY2Vzc190b2tlbicpKTsKKworICAgICAgICByZXR1cm4gJHN0bXQtPnJvd0NvdW50KCkgPiAwOworICAgIH0KKworICAgIC8qIE9BdXRoMlxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlICovCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY29kZQorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdTRUxFQ1QgKiBmcm9tICVzIHdoZXJlIGF1dGhvcml6YXRpb25fY29kZSA9IDpjb2RlJywgJHRoaXMtPmNvbmZpZ1snY29kZV90YWJsZSddKSk7CisgICAgICAgICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2NvZGUnKSk7CisKKyAgICAgICAgaWYgKCRjb2RlID0gJHN0bXQtPmZldGNoKFxQRE86OkZFVENIX0FTU09DKSkgeworICAgICAgICAgICAgLy8gY29udmVydCBkYXRlIHN0cmluZyBiYWNrIHRvIHRpbWVzdGFtcAorICAgICAgICAgICAgJGNvZGVbJ2V4cGlyZXMnXSA9IHN0cnRvdGltZSgkY29kZVsnZXhwaXJlcyddKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkY29kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2RlCisgICAgICogQHBhcmFtIG1peGVkICAkY2xpZW50X2lkCisgICAgICogQHBhcmFtIG1peGVkICAkdXNlcl9pZAorICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlZGlyZWN0X3VyaQorICAgICAqIEBwYXJhbSBpbnQgICAgJGV4cGlyZXMKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzY29wZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGlkX3Rva2VuCisgICAgICogQHJldHVybiBib29sfG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwsICRpZF90b2tlbiA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoZnVuY19udW1fYXJncygpID4gNikgeworICAgICAgICAgICAgLy8gd2UgYXJlIGNhbGxpbmcgd2l0aCBhbiBpZCB0b2tlbgorICAgICAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAnc2V0QXV0aG9yaXphdGlvbkNvZGVXaXRoSWRUb2tlbicpLCBmdW5jX2dldF9hcmdzKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gY29udmVydCBleHBpcmVzIHRvIGRhdGVzdHJpbmcKKyAgICAgICAgJGV4cGlyZXMgPSBkYXRlKCdZLW0tZCBIOmk6cycsICRleHBpcmVzKTsKKworICAgICAgICAvLyBpZiBpdCBleGlzdHMsIHVwZGF0ZSBpdC4KKyAgICAgICAgaWYgKCR0aGlzLT5nZXRBdXRob3JpemF0aW9uQ29kZSgkY29kZSkpIHsKKyAgICAgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwgPSBzcHJpbnRmKCdVUERBVEUgJXMgU0VUIGNsaWVudF9pZD06Y2xpZW50X2lkLCB1c2VyX2lkPTp1c2VyX2lkLCByZWRpcmVjdF91cmk9OnJlZGlyZWN0X3VyaSwgZXhwaXJlcz06ZXhwaXJlcywgc2NvcGU9OnNjb3BlIHdoZXJlIGF1dGhvcml6YXRpb25fY29kZT06Y29kZScsICR0aGlzLT5jb25maWdbJ2NvZGVfdGFibGUnXSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoc3ByaW50ZignSU5TRVJUIElOVE8gJXMgKGF1dGhvcml6YXRpb25fY29kZSwgY2xpZW50X2lkLCB1c2VyX2lkLCByZWRpcmVjdF91cmksIGV4cGlyZXMsIHNjb3BlKSBWQUxVRVMgKDpjb2RlLCA6Y2xpZW50X2lkLCA6dXNlcl9pZCwgOnJlZGlyZWN0X3VyaSwgOmV4cGlyZXMsIDpzY29wZSknLCAkdGhpcy0+Y29uZmlnWydjb2RlX3RhYmxlJ10pKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkc3RtdC0+ZXhlY3V0ZShjb21wYWN0KCdjb2RlJywgJ2NsaWVudF9pZCcsICd1c2VyX2lkJywgJ3JlZGlyZWN0X3VyaScsICdleHBpcmVzJywgJ3Njb3BlJykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvZGUKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VyX2lkCisgICAgICogQHBhcmFtIHN0cmluZyAkcmVkaXJlY3RfdXJpCisgICAgICogQHBhcmFtIHN0cmluZyAkZXhwaXJlcworICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlCisgICAgICogQHBhcmFtIHN0cmluZyAkaWRfdG9rZW4KKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIHNldEF1dGhvcml6YXRpb25Db2RlV2l0aElkVG9rZW4oJGNvZGUsICRjbGllbnRfaWQsICR1c2VyX2lkLCAkcmVkaXJlY3RfdXJpLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCwgJGlkX3Rva2VuID0gbnVsbCkKKyAgICB7CisgICAgICAgIC8vIGNvbnZlcnQgZXhwaXJlcyB0byBkYXRlc3RyaW5nCisgICAgICAgICRleHBpcmVzID0gZGF0ZSgnWS1tLWQgSDppOnMnLCAkZXhwaXJlcyk7CisKKyAgICAgICAgLy8gaWYgaXQgZXhpc3RzLCB1cGRhdGUgaXQuCisgICAgICAgIGlmICgkdGhpcy0+Z2V0QXV0aG9yaXphdGlvbkNvZGUoJGNvZGUpKSB7CisgICAgICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsID0gc3ByaW50ZignVVBEQVRFICVzIFNFVCBjbGllbnRfaWQ9OmNsaWVudF9pZCwgdXNlcl9pZD06dXNlcl9pZCwgcmVkaXJlY3RfdXJpPTpyZWRpcmVjdF91cmksIGV4cGlyZXM9OmV4cGlyZXMsIHNjb3BlPTpzY29wZSwgaWRfdG9rZW4gPTppZF90b2tlbiB3aGVyZSBhdXRob3JpemF0aW9uX2NvZGU9OmNvZGUnLCAkdGhpcy0+Y29uZmlnWydjb2RlX3RhYmxlJ10pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKHNwcmludGYoJ0lOU0VSVCBJTlRPICVzIChhdXRob3JpemF0aW9uX2NvZGUsIGNsaWVudF9pZCwgdXNlcl9pZCwgcmVkaXJlY3RfdXJpLCBleHBpcmVzLCBzY29wZSwgaWRfdG9rZW4pIFZBTFVFUyAoOmNvZGUsIDpjbGllbnRfaWQsIDp1c2VyX2lkLCA6cmVkaXJlY3RfdXJpLCA6ZXhwaXJlcywgOnNjb3BlLCA6aWRfdG9rZW4pJywgJHRoaXMtPmNvbmZpZ1snY29kZV90YWJsZSddKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHN0bXQtPmV4ZWN1dGUoY29tcGFjdCgnY29kZScsICdjbGllbnRfaWQnLCAndXNlcl9pZCcsICdyZWRpcmVjdF91cmknLCAnZXhwaXJlcycsICdzY29wZScsICdpZF90b2tlbicpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2RlCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGV4cGlyZUF1dGhvcml6YXRpb25Db2RlKCRjb2RlKQorICAgIHsKKyAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoc3ByaW50ZignREVMRVRFIEZST00gJXMgV0hFUkUgYXV0aG9yaXphdGlvbl9jb2RlID0gOmNvZGUnLCAkdGhpcy0+Y29uZmlnWydjb2RlX3RhYmxlJ10pKTsKKworICAgICAgICByZXR1cm4gJHN0bXQtPmV4ZWN1dGUoY29tcGFjdCgnY29kZScpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrVXNlckNyZWRlbnRpYWxzKCR1c2VybmFtZSwgJHBhc3N3b3JkKQorICAgIHsKKyAgICAgICAgaWYgKCR1c2VyID0gJHRoaXMtPmdldFVzZXIoJHVzZXJuYW1lKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jaGVja1Bhc3N3b3JkKCR1c2VyLCAkcGFzc3dvcmQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCisgICAgICogQHJldHVybiBhcnJheXxib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBtaXhlZCAgJHVzZXJfaWQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjbGFpbXMKKyAgICAgKiBAcmV0dXJuIGFycmF5fGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckNsYWltcygkdXNlcl9pZCwgJGNsYWltcykKKyAgICB7CisgICAgICAgIGlmICghJHVzZXJEZXRhaWxzID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzKCR1c2VyX2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJGNsYWltcyA9IGV4cGxvZGUoJyAnLCB0cmltKCRjbGFpbXMpKTsKKyAgICAgICAgJHVzZXJDbGFpbXMgPSBhcnJheSgpOworCisgICAgICAgIC8vIGZvciBlYWNoIHJlcXVlc3RlZCBjbGFpbSwgaWYgdGhlIHVzZXIgaGFzIHRoZSBjbGFpbSwgc2V0IGl0IGluIHRoZSByZXNwb25zZQorICAgICAgICAkdmFsaWRDbGFpbXMgPSBleHBsb2RlKCcgJywgc2VsZjo6VkFMSURfQ0xBSU1TKTsKKyAgICAgICAgZm9yZWFjaCAoJHZhbGlkQ2xhaW1zIGFzICR2YWxpZENsYWltKSB7CisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHZhbGlkQ2xhaW0sICRjbGFpbXMpKSB7CisgICAgICAgICAgICAgICAgaWYgKCR2YWxpZENsYWltID09ICdhZGRyZXNzJykgeworICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzIGlzIGFuIG9iamVjdCB3aXRoIHN1YmZpZWxkcworICAgICAgICAgICAgICAgICAgICAkdXNlckNsYWltc1snYWRkcmVzcyddID0gJHRoaXMtPmdldFVzZXJDbGFpbSgkdmFsaWRDbGFpbSwgJHVzZXJEZXRhaWxzWydhZGRyZXNzJ10gPzogJHVzZXJEZXRhaWxzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkdXNlckNsYWltcyA9IGFycmF5X21lcmdlKCR1c2VyQ2xhaW1zLCAkdGhpcy0+Z2V0VXNlckNsYWltKCR2YWxpZENsYWltLCAkdXNlckRldGFpbHMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHVzZXJDbGFpbXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xhaW0KKyAgICAgKiBAcGFyYW0gYXJyYXkgICR1c2VyRGV0YWlscworICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0VXNlckNsYWltKCRjbGFpbSwgJHVzZXJEZXRhaWxzKQorICAgIHsKKyAgICAgICAgJHVzZXJDbGFpbXMgPSBhcnJheSgpOworICAgICAgICAkY2xhaW1WYWx1ZXNTdHJpbmcgPSBjb25zdGFudChzcHJpbnRmKCdzZWxmOjolc19DTEFJTV9WQUxVRVMnLCBzdHJ0b3VwcGVyKCRjbGFpbSkpKTsKKyAgICAgICAgJGNsYWltVmFsdWVzID0gZXhwbG9kZSgnICcsICRjbGFpbVZhbHVlc1N0cmluZyk7CisKKyAgICAgICAgZm9yZWFjaCAoJGNsYWltVmFsdWVzIGFzICR2YWx1ZSkgeworICAgICAgICAgICAgJHVzZXJDbGFpbXNbJHZhbHVlXSA9IGlzc2V0KCR1c2VyRGV0YWlsc1skdmFsdWVdKSA/ICR1c2VyRGV0YWlsc1skdmFsdWVdIDogbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdXNlckNsYWltczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyZWZyZXNoX3Rva2VuCisgICAgICogQHJldHVybiBib29sfG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbikKKyAgICB7CisgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKHNwcmludGYoJ1NFTEVDVCAqIEZST00gJXMgV0hFUkUgcmVmcmVzaF90b2tlbiA9IDpyZWZyZXNoX3Rva2VuJywgJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl90YWJsZSddKSk7CisKKyAgICAgICAgJHRva2VuID0gJHN0bXQtPmV4ZWN1dGUoY29tcGFjdCgncmVmcmVzaF90b2tlbicpKTsKKyAgICAgICAgaWYgKCR0b2tlbiA9ICRzdG10LT5mZXRjaChcUERPOjpGRVRDSF9BU1NPQykpIHsKKyAgICAgICAgICAgIC8vIGNvbnZlcnQgZXhwaXJlcyB0byBlcG9jaCB0aW1lCisgICAgICAgICAgICAkdG9rZW5bJ2V4cGlyZXMnXSA9IHN0cnRvdGltZSgkdG9rZW5bJ2V4cGlyZXMnXSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlZnJlc2hfdG9rZW4KKyAgICAgKiBAcGFyYW0gbWl4ZWQgICRjbGllbnRfaWQKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR1c2VyX2lkCisgICAgICogQHBhcmFtIHN0cmluZyAkZXhwaXJlcworICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbiwgJGNsaWVudF9pZCwgJHVzZXJfaWQsICRleHBpcmVzLCAkc2NvcGUgPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gY29udmVydCBleHBpcmVzIHRvIGRhdGVzdHJpbmcKKyAgICAgICAgJGV4cGlyZXMgPSBkYXRlKCdZLW0tZCBIOmk6cycsICRleHBpcmVzKTsKKworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdJTlNFUlQgSU5UTyAlcyAocmVmcmVzaF90b2tlbiwgY2xpZW50X2lkLCB1c2VyX2lkLCBleHBpcmVzLCBzY29wZSkgVkFMVUVTICg6cmVmcmVzaF90b2tlbiwgOmNsaWVudF9pZCwgOnVzZXJfaWQsIDpleHBpcmVzLCA6c2NvcGUpJywgJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl90YWJsZSddKSk7CisKKyAgICAgICAgcmV0dXJuICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ3JlZnJlc2hfdG9rZW4nLCAnY2xpZW50X2lkJywgJ3VzZXJfaWQnLCAnZXhwaXJlcycsICdzY29wZScpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyZWZyZXNoX3Rva2VuCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoc3ByaW50ZignREVMRVRFIEZST00gJXMgV0hFUkUgcmVmcmVzaF90b2tlbiA9IDpyZWZyZXNoX3Rva2VuJywgJHRoaXMtPmNvbmZpZ1sncmVmcmVzaF90b2tlbl90YWJsZSddKSk7CisKKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoY29tcGFjdCgncmVmcmVzaF90b2tlbicpKTsKKworICAgICAgICByZXR1cm4gJHN0bXQtPnJvd0NvdW50KCkgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIHBsYWludGV4dCBwYXNzd29yZHMgYXJlIGJhZCEgIE92ZXJyaWRlIHRoaXMgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkdXNlcgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoZWNrUGFzc3dvcmQoJHVzZXIsICRwYXNzd29yZCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdXNlclsncGFzc3dvcmQnXSA9PSAkdGhpcy0+aGFzaFBhc3N3b3JkKCRwYXNzd29yZCk7CisgICAgfQorCisgICAgLy8gdXNlIGEgc2VjdXJlIGhhc2hpbmcgYWxnb3JpdGhtIHdoZW4gc3RvcmluZyBwYXNzd29yZHMuIE92ZXJyaWRlIHRoaXMgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaGFzaFBhc3N3b3JkKCRwYXNzd29yZCkKKyAgICB7CisgICAgICAgIHJldHVybiBzaGExKCRwYXNzd29yZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkdXNlcm5hbWUKKyAgICAgKiBAcmV0dXJuIGFycmF5fGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlcigkdXNlcm5hbWUpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsID0gc3ByaW50ZignU0VMRUNUICogZnJvbSAlcyB3aGVyZSB1c2VybmFtZT06dXNlcm5hbWUnLCAkdGhpcy0+Y29uZmlnWyd1c2VyX3RhYmxlJ10pKTsKKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUpKTsKKworICAgICAgICBpZiAoISR1c2VySW5mbyA9ICRzdG10LT5mZXRjaChcUERPOjpGRVRDSF9BU1NPQykpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHVzZSAidXNlcm5hbWUiIGFzIHRoZSB1c2VyX2lkCisgICAgICAgIHJldHVybiBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICd1c2VyX2lkJyA9PiAkdXNlcm5hbWUKKyAgICAgICAgKSwgJHVzZXJJbmZvKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBwbGFpbnRleHQgcGFzc3dvcmRzIGFyZSBiYWQhICBPdmVycmlkZSB0aGlzIGZvciB5b3VyIGFwcGxpY2F0aW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkCisgICAgICogQHBhcmFtIHN0cmluZyAkZmlyc3ROYW1lCisgICAgICogQHBhcmFtIHN0cmluZyAkbGFzdE5hbWUKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXNlcigkdXNlcm5hbWUsICRwYXNzd29yZCwgJGZpcnN0TmFtZSA9IG51bGwsICRsYXN0TmFtZSA9IG51bGwpCisgICAgeworICAgICAgICAvLyBkbyBub3Qgc3RvcmUgaW4gcGxhaW50ZXh0CisgICAgICAgICRwYXNzd29yZCA9ICR0aGlzLT5oYXNoUGFzc3dvcmQoJHBhc3N3b3JkKTsKKworICAgICAgICAvLyBpZiBpdCBleGlzdHMsIHVwZGF0ZSBpdC4KKyAgICAgICAgaWYgKCR0aGlzLT5nZXRVc2VyKCR1c2VybmFtZSkpIHsKKyAgICAgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwgPSBzcHJpbnRmKCdVUERBVEUgJXMgU0VUIHBhc3N3b3JkPTpwYXNzd29yZCwgZmlyc3RfbmFtZT06Zmlyc3ROYW1lLCBsYXN0X25hbWU9Omxhc3ROYW1lIHdoZXJlIHVzZXJuYW1lPTp1c2VybmFtZScsICR0aGlzLT5jb25maWdbJ3VzZXJfdGFibGUnXSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoc3ByaW50ZignSU5TRVJUIElOVE8gJXMgKHVzZXJuYW1lLCBwYXNzd29yZCwgZmlyc3RfbmFtZSwgbGFzdF9uYW1lKSBWQUxVRVMgKDp1c2VybmFtZSwgOnBhc3N3b3JkLCA6Zmlyc3ROYW1lLCA6bGFzdE5hbWUpJywgJHRoaXMtPmNvbmZpZ1sndXNlcl90YWJsZSddKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHN0bXQtPmV4ZWN1dGUoY29tcGFjdCgndXNlcm5hbWUnLCAncGFzc3dvcmQnLCAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNjb3BlCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNjb3BlRXhpc3RzKCRzY29wZSkKKyAgICB7CisgICAgICAgICRzY29wZSA9IGV4cGxvZGUoJyAnLCAkc2NvcGUpOworICAgICAgICAkd2hlcmVJbiA9IGltcGxvZGUoJywnLCBhcnJheV9maWxsKDAsIGNvdW50KCRzY29wZSksICc/JykpOworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdTRUxFQ1QgY291bnQoc2NvcGUpIGFzIGNvdW50IEZST00gJXMgV0hFUkUgc2NvcGUgSU4gKCVzKScsICR0aGlzLT5jb25maWdbJ3Njb3BlX3RhYmxlJ10sICR3aGVyZUluKSk7CisgICAgICAgICRzdG10LT5leGVjdXRlKCRzY29wZSk7CisKKyAgICAgICAgaWYgKCRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goXFBETzo6RkVUQ0hfQVNTT0MpKSB7CisgICAgICAgICAgICByZXR1cm4gJHJlc3VsdFsnY291bnQnXSA9PSBjb3VudCgkc2NvcGUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBtaXhlZCAkY2xpZW50X2lkCisgICAgICogQHJldHVybiBudWxsfHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWZhdWx0U2NvcGUoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdTRUxFQ1Qgc2NvcGUgRlJPTSAlcyBXSEVSRSBpc19kZWZhdWx0PTppc19kZWZhdWx0JywgJHRoaXMtPmNvbmZpZ1snc2NvcGVfdGFibGUnXSkpOworICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnaXNfZGVmYXVsdCcgPT4gdHJ1ZSkpOworCisgICAgICAgIGlmICgkcmVzdWx0ID0gJHN0bXQtPmZldGNoQWxsKFxQRE86OkZFVENIX0FTU09DKSkgeworICAgICAgICAgICAgJGRlZmF1bHRTY29wZSA9IGFycmF5X21hcChmdW5jdGlvbiAoJHJvdykgeworICAgICAgICAgICAgICAgIHJldHVybiAkcm93WydzY29wZSddOworICAgICAgICAgICAgfSwgJHJlc3VsdCk7CisKKyAgICAgICAgICAgIHJldHVybiBpbXBsb2RlKCcgJywgJGRlZmF1bHRTY29wZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSAkc3ViamVjdAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudEtleSgkY2xpZW50X2lkLCAkc3ViamVjdCkKKyAgICB7CisgICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwgPSBzcHJpbnRmKCdTRUxFQ1QgcHVibGljX2tleSBmcm9tICVzIHdoZXJlIGNsaWVudF9pZD06Y2xpZW50X2lkIEFORCBzdWJqZWN0PTpzdWJqZWN0JywgJHRoaXMtPmNvbmZpZ1snand0X3RhYmxlJ10pKTsKKworICAgICAgICAkc3RtdC0+ZXhlY3V0ZShhcnJheSgnY2xpZW50X2lkJyA9PiAkY2xpZW50X2lkLCAnc3ViamVjdCcgPT4gJHN1YmplY3QpKTsKKworICAgICAgICByZXR1cm4gJHN0bXQtPmZldGNoQ29sdW1uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIG1peGVkICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIGJvb2x8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRTY29wZSgkY2xpZW50X2lkKQorICAgIHsKKyAgICAgICAgaWYgKCEkY2xpZW50RGV0YWlscyA9ICR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNzZXQoJGNsaWVudERldGFpbHNbJ3Njb3BlJ10pKSB7CisgICAgICAgICAgICByZXR1cm4gJGNsaWVudERldGFpbHNbJ3Njb3BlJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSAkc3ViamVjdAorICAgICAqIEBwYXJhbSAkYXVkaWVuY2UKKyAgICAgKiBAcGFyYW0gJGV4cGlyZXMKKyAgICAgKiBAcGFyYW0gJGp0aQorICAgICAqIEByZXR1cm4gYXJyYXl8bnVsbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyZXMsICRqdGkpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsID0gc3ByaW50ZignU0VMRUNUICogRlJPTSAlcyBXSEVSRSBpc3N1ZXI9OmNsaWVudF9pZCBBTkQgc3ViamVjdD06c3ViamVjdCBBTkQgYXVkaWVuY2U9OmF1ZGllbmNlIEFORCBleHBpcmVzPTpleHBpcmVzIEFORCBqdGk9Omp0aScsICR0aGlzLT5jb25maWdbJ2p0aV90YWJsZSddKSk7CisKKyAgICAgICAgJHN0bXQtPmV4ZWN1dGUoY29tcGFjdCgnY2xpZW50X2lkJywgJ3N1YmplY3QnLCAnYXVkaWVuY2UnLCAnZXhwaXJlcycsICdqdGknKSk7CisKKyAgICAgICAgaWYgKCRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goXFBETzo6RkVUQ0hfQVNTT0MpKSB7CisgICAgICAgICAgICByZXR1cm4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2lzc3VlcicgPT4gJHJlc3VsdFsnaXNzdWVyJ10sCisgICAgICAgICAgICAgICAgJ3N1YmplY3QnID0+ICRyZXN1bHRbJ3N1YmplY3QnXSwKKyAgICAgICAgICAgICAgICAnYXVkaWVuY2UnID0+ICRyZXN1bHRbJ2F1ZGllbmNlJ10sCisgICAgICAgICAgICAgICAgJ2V4cGlyZXMnID0+ICRyZXN1bHRbJ2V4cGlyZXMnXSwKKyAgICAgICAgICAgICAgICAnanRpJyA9PiAkcmVzdWx0WydqdGknXSwKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJGNsaWVudF9pZAorICAgICAqIEBwYXJhbSAkc3ViamVjdAorICAgICAqIEBwYXJhbSAkYXVkaWVuY2UKKyAgICAgKiBAcGFyYW0gJGV4cGlyZXMKKyAgICAgKiBAcGFyYW0gJGp0aQorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyZXMsICRqdGkpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZShzcHJpbnRmKCdJTlNFUlQgSU5UTyAlcyAoaXNzdWVyLCBzdWJqZWN0LCBhdWRpZW5jZSwgZXhwaXJlcywganRpKSBWQUxVRVMgKDpjbGllbnRfaWQsIDpzdWJqZWN0LCA6YXVkaWVuY2UsIDpleHBpcmVzLCA6anRpKScsICR0aGlzLT5jb25maWdbJ2p0aV90YWJsZSddKSk7CisKKyAgICAgICAgcmV0dXJuICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2NsaWVudF9pZCcsICdzdWJqZWN0JywgJ2F1ZGllbmNlJywgJ2V4cGlyZXMnLCAnanRpJykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBtaXhlZCAkY2xpZW50X2lkCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQdWJsaWNLZXkoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsID0gc3ByaW50ZignU0VMRUNUIHB1YmxpY19rZXkgRlJPTSAlcyBXSEVSRSBjbGllbnRfaWQ9OmNsaWVudF9pZCBPUiBjbGllbnRfaWQgSVMgTlVMTCBPUkRFUiBCWSBjbGllbnRfaWQgSVMgTk9UIE5VTEwgREVTQycsICR0aGlzLT5jb25maWdbJ3B1YmxpY19rZXlfdGFibGUnXSkpOworCisgICAgICAgICRzdG10LT5leGVjdXRlKGNvbXBhY3QoJ2NsaWVudF9pZCcpKTsKKyAgICAgICAgaWYgKCRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goXFBETzo6RkVUQ0hfQVNTT0MpKSB7CisgICAgICAgICAgICByZXR1cm4gJHJlc3VsdFsncHVibGljX2tleSddOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIG1peGVkICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFByaXZhdGVLZXkoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsID0gc3ByaW50ZignU0VMRUNUIHByaXZhdGVfa2V5IEZST00gJXMgV0hFUkUgY2xpZW50X2lkPTpjbGllbnRfaWQgT1IgY2xpZW50X2lkIElTIE5VTEwgT1JERVIgQlkgY2xpZW50X2lkIElTIE5PVCBOVUxMIERFU0MnLCAkdGhpcy0+Y29uZmlnWydwdWJsaWNfa2V5X3RhYmxlJ10pKTsKKworICAgICAgICAkc3RtdC0+ZXhlY3V0ZShjb21wYWN0KCdjbGllbnRfaWQnKSk7CisgICAgICAgIGlmICgkcmVzdWx0ID0gJHN0bXQtPmZldGNoKFxQRE86OkZFVENIX0FTU09DKSkgeworICAgICAgICAgICAgcmV0dXJuICRyZXN1bHRbJ3ByaXZhdGVfa2V5J107CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEVuY3J5cHRpb25BbGdvcml0aG0oJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsID0gc3ByaW50ZignU0VMRUNUIGVuY3J5cHRpb25fYWxnb3JpdGhtIEZST00gJXMgV0hFUkUgY2xpZW50X2lkPTpjbGllbnRfaWQgT1IgY2xpZW50X2lkIElTIE5VTEwgT1JERVIgQlkgY2xpZW50X2lkIElTIE5PVCBOVUxMIERFU0MnLCAkdGhpcy0+Y29uZmlnWydwdWJsaWNfa2V5X3RhYmxlJ10pKTsKKworICAgICAgICAkc3RtdC0+ZXhlY3V0ZShjb21wYWN0KCdjbGllbnRfaWQnKSk7CisgICAgICAgIGlmICgkcmVzdWx0ID0gJHN0bXQtPmZldGNoKFxQRE86OkZFVENIX0FTU09DKSkgeworICAgICAgICAgICAgcmV0dXJuICRyZXN1bHRbJ2VuY3J5cHRpb25fYWxnb3JpdGhtJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJ1JTMjU2JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEREwgdG8gY3JlYXRlIE9BdXRoMiBkYXRhYmFzZSBhbmQgdGFibGVzIGZvciBQRE8gc3RvcmFnZQorICAgICAqCisgICAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vZHNxdWllci9vYXV0aDItc2VydmVyLXBocC1teXNxbAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZGJOYW1lCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QnVpbGRTcWwoJGRiTmFtZSA9ICdvYXV0aDJfc2VydmVyX3BocCcpCisgICAgeworICAgICAgICAkc3FsID0gIgorICAgICAgICBDUkVBVEUgVEFCTEUgeyR0aGlzLT5jb25maWdbJ2NsaWVudF90YWJsZSddfSAoCisgICAgICAgICAgY2xpZW50X2lkICAgICAgICAgICAgIFZBUkNIQVIoODApICAgTk9UIE5VTEwsCisgICAgICAgICAgY2xpZW50X3NlY3JldCAgICAgICAgIFZBUkNIQVIoODApLAorICAgICAgICAgIHJlZGlyZWN0X3VyaSAgICAgICAgICBWQVJDSEFSKDIwMDApLAorICAgICAgICAgIGdyYW50X3R5cGVzICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICBzY29wZSAgICAgICAgICAgICAgICAgVkFSQ0hBUig0MDAwKSwKKyAgICAgICAgICB1c2VyX2lkICAgICAgICAgICAgICAgVkFSQ0hBUig4MCksCisgICAgICAgICAgUFJJTUFSWSBLRVkgKGNsaWVudF9pZCkKKyAgICAgICAgKTsKKworICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIHskdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fdGFibGUnXX0gKAorICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4gICAgICAgICBWQVJDSEFSKDQwKSAgICBOT1QgTlVMTCwKKyAgICAgICAgICAgICAgY2xpZW50X2lkICAgICAgICAgICAgVkFSQ0hBUig4MCkgICAgTk9UIE5VTEwsCisgICAgICAgICAgICAgIHVzZXJfaWQgICAgICAgICAgICAgIFZBUkNIQVIoODApLAorICAgICAgICAgICAgICBleHBpcmVzICAgICAgICAgICAgICBUSU1FU1RBTVAgICAgICBOT1QgTlVMTCwKKyAgICAgICAgICAgICAgc2NvcGUgICAgICAgICAgICAgICAgVkFSQ0hBUig0MDAwKSwKKyAgICAgICAgICAgICAgUFJJTUFSWSBLRVkgKGFjY2Vzc190b2tlbikKKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIENSRUFURSBUQUJMRSB7JHRoaXMtPmNvbmZpZ1snY29kZV90YWJsZSddfSAoCisgICAgICAgICAgICAgIGF1dGhvcml6YXRpb25fY29kZSAgVkFSQ0hBUig0MCkgICAgTk9UIE5VTEwsCisgICAgICAgICAgICAgIGNsaWVudF9pZCAgICAgICAgICAgVkFSQ0hBUig4MCkgICAgTk9UIE5VTEwsCisgICAgICAgICAgICAgIHVzZXJfaWQgICAgICAgICAgICAgVkFSQ0hBUig4MCksCisgICAgICAgICAgICAgIHJlZGlyZWN0X3VyaSAgICAgICAgVkFSQ0hBUigyMDAwKSwKKyAgICAgICAgICAgICAgZXhwaXJlcyAgICAgICAgICAgICBUSU1FU1RBTVAgICAgICBOT1QgTlVMTCwKKyAgICAgICAgICAgICAgc2NvcGUgICAgICAgICAgICAgICBWQVJDSEFSKDQwMDApLAorICAgICAgICAgICAgICBpZF90b2tlbiAgICAgICAgICAgIFZBUkNIQVIoMTAwMCksCisgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChhdXRob3JpemF0aW9uX2NvZGUpCisgICAgICAgICAgICApOworCisgICAgICAgICAgICBDUkVBVEUgVEFCTEUgeyR0aGlzLT5jb25maWdbJ3JlZnJlc2hfdG9rZW5fdGFibGUnXX0gKAorICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuICAgICAgIFZBUkNIQVIoNDApICAgIE5PVCBOVUxMLAorICAgICAgICAgICAgICBjbGllbnRfaWQgICAgICAgICAgIFZBUkNIQVIoODApICAgIE5PVCBOVUxMLAorICAgICAgICAgICAgICB1c2VyX2lkICAgICAgICAgICAgIFZBUkNIQVIoODApLAorICAgICAgICAgICAgICBleHBpcmVzICAgICAgICAgICAgIFRJTUVTVEFNUCAgICAgIE5PVCBOVUxMLAorICAgICAgICAgICAgICBzY29wZSAgICAgICAgICAgICAgIFZBUkNIQVIoNDAwMCksCisgICAgICAgICAgICAgIFBSSU1BUlkgS0VZIChyZWZyZXNoX3Rva2VuKQorICAgICAgICAgICAgKTsKKworICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIHskdGhpcy0+Y29uZmlnWyd1c2VyX3RhYmxlJ119ICgKKyAgICAgICAgICAgICAgdXNlcm5hbWUgICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgcGFzc3dvcmQgICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgZmlyc3RfbmFtZSAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgbGFzdF9uYW1lICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgZW1haWwgICAgICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgZW1haWxfdmVyaWZpZWQgICAgICBCT09MRUFOLAorICAgICAgICAgICAgICBzY29wZSAgICAgICAgICAgICAgIFZBUkNIQVIoNDAwMCkKKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIENSRUFURSBUQUJMRSB7JHRoaXMtPmNvbmZpZ1snc2NvcGVfdGFibGUnXX0gKAorICAgICAgICAgICAgICBzY29wZSAgICAgICAgICAgICAgIFZBUkNIQVIoODApICBOT1QgTlVMTCwKKyAgICAgICAgICAgICAgaXNfZGVmYXVsdCAgICAgICAgICBCT09MRUFOLAorICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoc2NvcGUpCisgICAgICAgICAgICApOworCisgICAgICAgICAgICBDUkVBVEUgVEFCTEUgeyR0aGlzLT5jb25maWdbJ2p3dF90YWJsZSddfSAoCisgICAgICAgICAgICAgIGNsaWVudF9pZCAgICAgICAgICAgVkFSQ0hBUig4MCkgICBOT1QgTlVMTCwKKyAgICAgICAgICAgICAgc3ViamVjdCAgICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgcHVibGljX2tleSAgICAgICAgICBWQVJDSEFSKDIwMDApIE5PVCBOVUxMCisgICAgICAgICAgICApOworCisgICAgICAgICAgICBDUkVBVEUgVEFCTEUgeyR0aGlzLT5jb25maWdbJ2p0aV90YWJsZSddfSAoCisgICAgICAgICAgICAgIGlzc3VlciAgICAgICAgICAgICAgVkFSQ0hBUig4MCkgICBOT1QgTlVMTCwKKyAgICAgICAgICAgICAgc3ViamVjdCAgICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgYXVkaWFuY2UgICAgICAgICAgICBWQVJDSEFSKDgwKSwKKyAgICAgICAgICAgICAgZXhwaXJlcyAgICAgICAgICAgICBUSU1FU1RBTVAgICAgIE5PVCBOVUxMLAorICAgICAgICAgICAgICBqdGkgICAgICAgICAgICAgICAgIFZBUkNIQVIoMjAwMCkgTk9UIE5VTEwKKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIENSRUFURSBUQUJMRSB7JHRoaXMtPmNvbmZpZ1sncHVibGljX2tleV90YWJsZSddfSAoCisgICAgICAgICAgICAgIGNsaWVudF9pZCAgICAgICAgICAgIFZBUkNIQVIoODApLAorICAgICAgICAgICAgICBwdWJsaWNfa2V5ICAgICAgICAgICBWQVJDSEFSKDIwMDApLAorICAgICAgICAgICAgICBwcml2YXRlX2tleSAgICAgICAgICBWQVJDSEFSKDIwMDApLAorICAgICAgICAgICAgICBlbmNyeXB0aW9uX2FsZ29yaXRobSBWQVJDSEFSKDEwMCkgREVGQVVMVCAnUlMyNTYnCisgICAgICAgICAgICApCisgICAgICAgICI7CisKKyAgICAgICAgcmV0dXJuICRzcWw7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvUHVibGljS2V5SW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvUHVibGljS2V5SW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmRjNDlmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9QdWJsaWNLZXlJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMzAgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworLyoqCisgKiBJbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UgdG8gc3BlY2lmeSB3aGVyZSB0aGUgT0F1dGgyIFNlcnZlcgorICogc2hvdWxkIGdldCBwdWJsaWMvcHJpdmF0ZSBrZXkgaW5mb3JtYXRpb24KKyAqCisgKiBAYXV0aG9yIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICovCitpbnRlcmZhY2UgUHVibGljS2V5SW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHBhcmFtIG1peGVkICRjbGllbnRfaWQKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFB1YmxpY0tleSgkY2xpZW50X2lkID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHJpdmF0ZUtleSgkY2xpZW50X2lkID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJGNsaWVudF9pZAorICAgICAqIEByZXR1cm4gbWl4ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW5jcnlwdGlvbkFsZ29yaXRobSgkY2xpZW50X2lkID0gbnVsbCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9SZWRpcy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL1JlZGlzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjI5NGUyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9SZWRpcy5waHAKQEAgLTAsMCArMSwzMjEgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKwordXNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZSBhcyBPcGVuSURBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZTsKKworLyoqCisgKiByZWRpcyBzdG9yYWdlIGZvciBhbGwgc3RvcmFnZSB0eXBlcworICoKKyAqIFRvIHVzZSwgaW5zdGFsbCAicHJlZGlzL3ByZWRpcyIgdmlhIGNvbXBvc2VyCisgKgorICogUmVnaXN0ZXIgY2xpZW50OgorICogPGNvZGU+CisgKiAgJHN0b3JhZ2UgPSBuZXcgT0F1dGgyXFN0b3JhZ2VcUmVkaXMoJHJlZGlzKTsKKyAqICAkc3RvcmFnZS0+c2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCwgJHJlZGlyZWN0X3VyaSk7CisgKiA8L2NvZGU+CisgKi8KK2NsYXNzIFJlZGlzIGltcGxlbWVudHMgQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UsCisgICAgQWNjZXNzVG9rZW5JbnRlcmZhY2UsCisgICAgQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UsCisgICAgVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLAorICAgIFJlZnJlc2hUb2tlbkludGVyZmFjZSwKKyAgICBKd3RCZWFyZXJJbnRlcmZhY2UsCisgICAgU2NvcGVJbnRlcmZhY2UsCisgICAgT3BlbklEQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKK3sKKworICAgIHByaXZhdGUgJGNhY2hlOworCisgICAgLyogVGhlIHJlZGlzIGNsaWVudCAqLworICAgIHByb3RlY3RlZCAkcmVkaXM7CisKKyAgICAvKiBDb25maWd1cmF0aW9uIGFycmF5ICovCisgICAgcHJvdGVjdGVkICRjb25maWc7CisKKyAgICAvKioKKyAgICAgKiBSZWRpcyBTdG9yYWdlIQorICAgICAqCisgICAgICogQHBhcmFtIFxQcmVkaXNcQ2xpZW50ICRyZWRpcworICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAkY29uZmlnCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRyZWRpcywgJGNvbmZpZz1hcnJheSgpKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlZGlzID0gJHJlZGlzOworICAgICAgICAkdGhpcy0+Y29uZmlnID0gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2tleScgPT4gJ29hdXRoX2NsaWVudHM6JywKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW5fa2V5JyA9PiAnb2F1dGhfYWNjZXNzX3Rva2VuczonLAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW5fa2V5JyA9PiAnb2F1dGhfcmVmcmVzaF90b2tlbnM6JywKKyAgICAgICAgICAgICdjb2RlX2tleScgPT4gJ29hdXRoX2F1dGhvcml6YXRpb25fY29kZXM6JywKKyAgICAgICAgICAgICd1c2VyX2tleScgPT4gJ29hdXRoX3VzZXJzOicsCisgICAgICAgICAgICAnand0X2tleScgPT4gJ29hdXRoX2p3dDonLAorICAgICAgICAgICAgJ3Njb3BlX2tleScgPT4gJ29hdXRoX3Njb3BlczonLAorICAgICAgICApLCAkY29uZmlnKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0VmFsdWUoJGtleSkKKyAgICB7CisgICAgICAgIGlmICggaXNzZXQoJHRoaXMtPmNhY2hlWyRrZXldKSApIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2FjaGVbJGtleV07CisgICAgICAgIH0KKyAgICAgICAgJHZhbHVlID0gJHRoaXMtPnJlZGlzLT5nZXQoJGtleSk7CisgICAgICAgIGlmICggaXNzZXQoJHZhbHVlKSApIHsKKyAgICAgICAgICAgIHJldHVybiBqc29uX2RlY29kZSgkdmFsdWUsIHRydWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFZhbHVlKCRrZXksICR2YWx1ZSwgJGV4cGlyZT0wKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmNhY2hlWyRrZXldID0gJHZhbHVlOworICAgICAgICAkc3RyID0ganNvbl9lbmNvZGUoJHZhbHVlKTsKKyAgICAgICAgaWYgKCRleHBpcmUgPiAwKSB7CisgICAgICAgICAgICAkc2Vjb25kcyA9ICRleHBpcmUgLSB0aW1lKCk7CisgICAgICAgICAgICAkcmV0ID0gJHRoaXMtPnJlZGlzLT5zZXRleCgka2V5LCAkc2Vjb25kcywgJHN0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcmV0ID0gJHRoaXMtPnJlZGlzLT5zZXQoJGtleSwgJHN0cik7CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSBrZXkgd2FzIHNldCBwcm9wZXJseQorICAgICAgICAvLyBpZiB0aGlzIGZhaWxzLCBhbiBleGNlcHRpb24gd2lsbCB1c3VhbGx5IHRocm93biwgc28gdGhpcyBzdGVwIGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeQorICAgICAgICByZXR1cm4gaXNfYm9vbCgkcmV0KSA/ICRyZXQgOiAkcmV0LT5nZXRQYXlsb2FkKCkgPT0gJ09LJzsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXhwaXJlVmFsdWUoJGtleSkKKyAgICB7CisgICAgICAgIHVuc2V0KCR0aGlzLT5jYWNoZVska2V5XSk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yZWRpcy0+ZGVsKCRrZXkpOworICAgIH0KKworICAgIC8qIEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF1dGhvcml6YXRpb25Db2RlKCRjb2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydjb2RlX2tleSddIC4gJGNvZGUpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBdXRob3JpemF0aW9uQ29kZSgkYXV0aG9yaXphdGlvbl9jb2RlLCAkY2xpZW50X2lkLCAkdXNlcl9pZCwgJHJlZGlyZWN0X3VyaSwgJGV4cGlyZXMsICRzY29wZSA9IG51bGwsICRpZF90b2tlbiA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKAorICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1snY29kZV9rZXknXSAuICRhdXRob3JpemF0aW9uX2NvZGUsCisgICAgICAgICAgICBjb21wYWN0KCdhdXRob3JpemF0aW9uX2NvZGUnLCAnY2xpZW50X2lkJywgJ3VzZXJfaWQnLCAncmVkaXJlY3RfdXJpJywgJ2V4cGlyZXMnLCAnc2NvcGUnLCAnaWRfdG9rZW4nKSwKKyAgICAgICAgICAgICRleHBpcmVzCisgICAgICAgICk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGV4cGlyZUF1dGhvcml6YXRpb25Db2RlKCRjb2RlKQorICAgIHsKKyAgICAgICAgJGtleSA9ICR0aGlzLT5jb25maWdbJ2NvZGVfa2V5J10gLiAkY29kZTsKKyAgICAgICAgdW5zZXQoJHRoaXMtPmNhY2hlWyRrZXldKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmV4cGlyZVZhbHVlKCRrZXkpOworICAgIH0KKworICAgIC8qIFVzZXJDcmVkZW50aWFsc0ludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja1VzZXJDcmVkZW50aWFscygkdXNlcm5hbWUsICRwYXNzd29yZCkKKyAgICB7CisgICAgICAgICR1c2VyID0gJHRoaXMtPmdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSk7CisKKyAgICAgICAgcmV0dXJuICR1c2VyICYmICR1c2VyWydwYXNzd29yZCddID09PSAkcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyKCR1c2VybmFtZSkKKyAgICB7CisgICAgICAgIGlmICghJHVzZXJJbmZvID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3VzZXJfa2V5J10gLiAkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byB1c2UgInVzZXJuYW1lIiBhcyB0aGUgdXNlcl9pZAorICAgICAgICByZXR1cm4gYXJyYXlfbWVyZ2UoYXJyYXkoCisgICAgICAgICAgICAndXNlcl9pZCcgPT4gJHVzZXJuYW1lLAorICAgICAgICApLCAkdXNlckluZm8pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRVc2VyKCR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZmlyc3RfbmFtZSA9IG51bGwsICRsYXN0X25hbWUgPSBudWxsKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zZXRWYWx1ZSgKKyAgICAgICAgICAgICR0aGlzLT5jb25maWdbJ3VzZXJfa2V5J10gLiAkdXNlcm5hbWUsCisgICAgICAgICAgICBjb21wYWN0KCd1c2VybmFtZScsICdwYXNzd29yZCcsICdmaXJzdF9uYW1lJywgJ2xhc3RfbmFtZScpCisgICAgICAgICk7CisgICAgfQorCisgICAgLyogQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tDbGllbnRDcmVkZW50aWFscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoISRjbGllbnQgPSAkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGlzc2V0KCRjbGllbnRbJ2NsaWVudF9zZWNyZXQnXSkKKyAgICAgICAgICAgICYmICRjbGllbnRbJ2NsaWVudF9zZWNyZXQnXSA9PSAkY2xpZW50X3NlY3JldDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNQdWJsaWNDbGllbnQoJGNsaWVudF9pZCkKKyAgICB7CisgICAgICAgIGlmICghJGNsaWVudCA9ICR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZW1wdHkoJGNsaWVudFsnY2xpZW50X3NlY3JldCddKTsKKyAgICB9CisKKyAgICAvKiBDbGllbnRJbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydjbGllbnRfa2V5J10gLiAkY2xpZW50X2lkKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkLCAkY2xpZW50X3NlY3JldCA9IG51bGwsICRyZWRpcmVjdF91cmkgPSBudWxsLCAkZ3JhbnRfdHlwZXMgPSBudWxsLCAkc2NvcGUgPSBudWxsLCAkdXNlcl9pZCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldFZhbHVlKAorICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1snY2xpZW50X2tleSddIC4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgIGNvbXBhY3QoJ2NsaWVudF9pZCcsICdjbGllbnRfc2VjcmV0JywgJ3JlZGlyZWN0X3VyaScsICdncmFudF90eXBlcycsICdzY29wZScsICd1c2VyX2lkJykKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tSZXN0cmljdGVkR3JhbnRUeXBlKCRjbGllbnRfaWQsICRncmFudF90eXBlKQorICAgIHsKKyAgICAgICAgJGRldGFpbHMgPSAkdGhpcy0+Z2V0Q2xpZW50RGV0YWlscygkY2xpZW50X2lkKTsKKyAgICAgICAgaWYgKGlzc2V0KCRkZXRhaWxzWydncmFudF90eXBlcyddKSkgeworICAgICAgICAgICAgJGdyYW50X3R5cGVzID0gZXhwbG9kZSgnICcsICRkZXRhaWxzWydncmFudF90eXBlcyddKTsKKworICAgICAgICAgICAgcmV0dXJuIGluX2FycmF5KCRncmFudF90eXBlLCAoYXJyYXkpICRncmFudF90eXBlcyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBncmFudF90eXBlcyBhcmUgbm90IGRlZmluZWQsIHRoZW4gbm9uZSBhcmUgcmVzdHJpY3RlZAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiBSZWZyZXNoVG9rZW5JbnRlcmZhY2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2tleSddIC4gJHJlZnJlc2hfdG9rZW4pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c2V0VmFsdWUoCisgICAgICAgICAgICAkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2tleSddIC4gJHJlZnJlc2hfdG9rZW4sCisgICAgICAgICAgICBjb21wYWN0KCdyZWZyZXNoX3Rva2VuJywgJ2NsaWVudF9pZCcsICd1c2VyX2lkJywgJ2V4cGlyZXMnLCAnc2NvcGUnKSwKKyAgICAgICAgICAgICRleHBpcmVzCisgICAgICAgICk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHVuc2V0UmVmcmVzaFRva2VuKCRyZWZyZXNoX3Rva2VuKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5leHBpcmVWYWx1ZSgkdGhpcy0+Y29uZmlnWydyZWZyZXNoX3Rva2VuX2tleSddIC4gJHJlZnJlc2hfdG9rZW4pOworCisgICAgICAgIHJldHVybiAkcmVzdWx0ID4gMDsKKyAgICB9CisKKyAgICAvKiBBY2Nlc3NUb2tlbkludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlbigkYWNjZXNzX3Rva2VuKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fa2V5J10uJGFjY2Vzc190b2tlbik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c2V0VmFsdWUoCisgICAgICAgICAgICAkdGhpcy0+Y29uZmlnWydhY2Nlc3NfdG9rZW5fa2V5J10uJGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgIGNvbXBhY3QoJ2FjY2Vzc190b2tlbicsICdjbGllbnRfaWQnLCAndXNlcl9pZCcsICdleHBpcmVzJywgJ3Njb3BlJyksCisgICAgICAgICAgICAkZXhwaXJlcworICAgICAgICApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnNldEFjY2Vzc1Rva2VuKCRhY2Nlc3NfdG9rZW4pCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmV4cGlyZVZhbHVlKCR0aGlzLT5jb25maWdbJ2FjY2Vzc190b2tlbl9rZXknXSAuICRhY2Nlc3NfdG9rZW4pOworCisgICAgICAgIHJldHVybiAkcmVzdWx0ID4gMDsKKyAgICB9CisKKyAgICAvKiBTY29wZUludGVyZmFjZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzY29wZUV4aXN0cygkc2NvcGUpCisgICAgeworICAgICAgICAkc2NvcGUgPSBleHBsb2RlKCcgJywgJHNjb3BlKTsKKworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3Njb3BlX2tleSddLidzdXBwb3J0ZWQ6Z2xvYmFsJyk7CisKKyAgICAgICAgJHN1cHBvcnRlZFNjb3BlID0gZXhwbG9kZSgnICcsIChzdHJpbmcpICRyZXN1bHQpOworCisgICAgICAgIHJldHVybiAoY291bnQoYXJyYXlfZGlmZigkc2NvcGUsICRzdXBwb3J0ZWRTY29wZSkpID09IDApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWZhdWx0U2NvcGUoJGNsaWVudF9pZCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkY2xpZW50X2lkKSB8fCAhJHJlc3VsdCA9ICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydzY29wZV9rZXknXS4nZGVmYXVsdDonLiRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmdldFZhbHVlKCR0aGlzLT5jb25maWdbJ3Njb3BlX2tleSddLidkZWZhdWx0Omdsb2JhbCcpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFNjb3BlKCRzY29wZSwgJGNsaWVudF9pZCA9IG51bGwsICR0eXBlID0gJ3N1cHBvcnRlZCcpCisgICAgeworICAgICAgICBpZiAoIWluX2FycmF5KCR0eXBlLCBhcnJheSgnZGVmYXVsdCcsICdzdXBwb3J0ZWQnKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCciJHR5cGUiIG11c3QgYmUgb25lIG9mICJkZWZhdWx0IiwgInN1cHBvcnRlZCInKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc19udWxsKCRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICAka2V5ID0gJHRoaXMtPmNvbmZpZ1snc2NvcGVfa2V5J10uJHR5cGUuJzpnbG9iYWwnOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGtleSA9ICR0aGlzLT5jb25maWdbJ3Njb3BlX2tleSddLiR0eXBlLic6Jy4kY2xpZW50X2lkOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zZXRWYWx1ZSgka2V5LCAkc2NvcGUpOworICAgIH0KKworICAgIC8qSldUQmVhcmVySW50ZXJmYWNlICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsaWVudEtleSgkY2xpZW50X2lkLCAkc3ViamVjdCkKKyAgICB7CisgICAgICAgIGlmICghJGp3dCA9ICR0aGlzLT5nZXRWYWx1ZSgkdGhpcy0+Y29uZmlnWydqd3Rfa2V5J10gLiAkY2xpZW50X2lkKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzc2V0KCRqd3RbJ3N1YmplY3QnXSkgJiYgJGp3dFsnc3ViamVjdCddID09ICRzdWJqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gJGp3dFsna2V5J107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0Q2xpZW50S2V5KCRjbGllbnRfaWQsICRrZXksICRzdWJqZWN0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c2V0VmFsdWUoJHRoaXMtPmNvbmZpZ1snand0X2tleSddIC4gJGNsaWVudF9pZCwgYXJyYXkoCisgICAgICAgICAgICAna2V5JyA9PiAka2V5LAorICAgICAgICAgICAgJ3N1YmplY3QnID0+ICRzdWJqZWN0CisgICAgICAgICkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDbGllbnRTY29wZSgkY2xpZW50X2lkKQorICAgIHsKKyAgICAgICAgaWYgKCEkY2xpZW50RGV0YWlscyA9ICR0aGlzLT5nZXRDbGllbnREZXRhaWxzKCRjbGllbnRfaWQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNzZXQoJGNsaWVudERldGFpbHNbJ3Njb3BlJ10pKSB7CisgICAgICAgICAgICByZXR1cm4gJGNsaWVudERldGFpbHNbJ3Njb3BlJ107CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SnRpKCRjbGllbnRfaWQsICRzdWJqZWN0LCAkYXVkaWVuY2UsICRleHBpcmF0aW9uLCAkanRpKQorICAgIHsKKyAgICAgICAgLy9UT0RPOiBOZWVkcyByZWRpcyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ2dldEp0aSgpIGZvciB0aGUgUmVkaXMgZHJpdmVyIGlzIGN1cnJlbnRseSB1bmltcGxlbWVudGVkLicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRKdGkoJGNsaWVudF9pZCwgJHN1YmplY3QsICRhdWRpZW5jZSwgJGV4cGlyYXRpb24sICRqdGkpCisgICAgeworICAgICAgICAvL1RPRE86IE5lZWRzIHJlZGlzIGltcGxlbWVudGF0aW9uLgorICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignc2V0SnRpKCkgZm9yIHRoZSBSZWRpcyBkcml2ZXIgaXMgY3VycmVudGx5IHVuaW1wbGVtZW50ZWQuJyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9SZWZyZXNoVG9rZW5JbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9SZWZyZXNoVG9rZW5JbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NDA3ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL1JlZnJlc2hUb2tlbkludGVyZmFjZS5waHAKQEAgLTAsMCArMSw4MiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCisvKioKKyAqIEltcGxlbWVudCB0aGlzIGludGVyZmFjZSB0byBzcGVjaWZ5IHdoZXJlIHRoZSBPQXV0aDIgU2VydmVyCisgKiBzaG91bGQgZ2V0L3NhdmUgcmVmcmVzaCB0b2tlbnMgZm9yIHRoZSAiUmVmcmVzaCBUb2tlbiIKKyAqIGdyYW50IHR5cGUKKyAqCisgKiBAYXV0aG9yIEJyZW50IFNoYWZmZXIgPGJzaGFmcyBhdCBnbWFpbCBkb3QgY29tPgorICovCitpbnRlcmZhY2UgUmVmcmVzaFRva2VuSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogR3JhbnQgcmVmcmVzaCBhY2Nlc3MgdG9rZW5zLgorICAgICAqCisgICAgICogUmV0cmlldmUgdGhlIHN0b3JlZCBkYXRhIGZvciB0aGUgZ2l2ZW4gcmVmcmVzaCB0b2tlbi4KKyAgICAgKgorICAgICAqIFJlcXVpcmVkIGZvciBPQXV0aDI6OkdSQU5UX1RZUEVfUkVGUkVTSF9UT0tFTi4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkcmVmcmVzaF90b2tlbgorICAgICAqIFJlZnJlc2ggdG9rZW4gdG8gYmUgY2hlY2sgd2l0aC4KKyAgICAgKgorICAgICAqIEByZXR1cm4KKyAgICAgKiBBbiBhc3NvY2lhdGl2ZSBhcnJheSBhcyBiZWxvdywgYW5kIE5VTEwgaWYgdGhlIHJlZnJlc2hfdG9rZW4gaXMKKyAgICAgKiBpbnZhbGlkOgorICAgICAqIC0gcmVmcmVzaF90b2tlbjogUmVmcmVzaCB0b2tlbiBpZGVudGlmaWVyLgorICAgICAqIC0gY2xpZW50X2lkOiBDbGllbnQgaWRlbnRpZmllci4KKyAgICAgKiAtIHVzZXJfaWQ6IFVzZXIgaWRlbnRpZmllci4KKyAgICAgKiAtIGV4cGlyZXM6IEV4cGlyYXRpb24gdW5peCB0aW1lc3RhbXAsIG9yIDAgaWYgdGhlIHRva2VuIGRvZXNuJ3QgZXhwaXJlLgorICAgICAqIC0gc2NvcGU6IChvcHRpb25hbCkgU2NvcGUgdmFsdWVzIGluIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NDkjc2VjdGlvbi02CisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl82CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlZnJlc2hUb2tlbigkcmVmcmVzaF90b2tlbik7CisKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSBwcm92aWRlZCByZWZyZXNoIHRva2VuIHZhbHVlcyBhbmQgc3RvcmUgdGhlbSBzb21ld2hlcmUuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB0aGUgc3RvcmFnZSBjb3VudGVycGFydCB0byBnZXRSZWZyZXNoVG9rZW4oKS4KKyAgICAgKgorICAgICAqIElmIHN0b3JhZ2UgZmFpbHMgZm9yIHNvbWUgcmVhc29uLCB3ZSdyZSBub3QgY3VycmVudGx5IGNoZWNraW5nIGZvcgorICAgICAqIGFueSBzb3J0IG9mIHN1Y2Nlc3MvZmFpbHVyZSwgc28geW91IHNob3VsZCBiYWlsIG91dCBvZiB0aGUgc2NyaXB0CisgICAgICogYW5kIHByb3ZpZGUgYSBkZXNjcmlwdGl2ZSBmYWlsIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBSZXF1aXJlZCBmb3IgT0F1dGgyOjpHUkFOVF9UWVBFX1JFRlJFU0hfVE9LRU4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gJHJlZnJlc2hfdG9rZW4KKyAgICAgKiBSZWZyZXNoIHRva2VuIHRvIGJlIHN0b3JlZC4KKyAgICAgKiBAcGFyYW0gJGNsaWVudF9pZAorICAgICAqIENsaWVudCBpZGVudGlmaWVyIHRvIGJlIHN0b3JlZC4KKyAgICAgKiBAcGFyYW0gJHVzZXJfaWQKKyAgICAgKiBVc2VyIGlkZW50aWZpZXIgdG8gYmUgc3RvcmVkLgorICAgICAqIEBwYXJhbSAkZXhwaXJlcworICAgICAqIEV4cGlyYXRpb24gdGltZXN0YW1wIHRvIGJlIHN0b3JlZC4gMCBpZiB0aGUgdG9rZW4gZG9lc24ndCBleHBpcmUuCisgICAgICogQHBhcmFtICRzY29wZQorICAgICAqIChvcHRpb25hbCkgU2NvcGVzIHRvIGJlIHN0b3JlZCBpbiBzcGFjZS1zZXBhcmF0ZWQgc3RyaW5nLgorICAgICAqCisgICAgICogQGluZ3JvdXAgb2F1dGgyX3NlY3Rpb25fNgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4sICRjbGllbnRfaWQsICR1c2VyX2lkLCAkZXhwaXJlcywgJHNjb3BlID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBFeHBpcmUgYSB1c2VkIHJlZnJlc2ggdG9rZW4uCisgICAgICoKKyAgICAgKiBUaGlzIGlzIG5vdCBleHBsaWNpdGx5IHJlcXVpcmVkIGluIHRoZSBzcGVjLCBidXQgaXMgYWxtb3N0IGltcGxpZWQuCisgICAgICogQWZ0ZXIgZ3JhbnRpbmcgYSBuZXcgcmVmcmVzaCB0b2tlbiwgdGhlIG9sZCBvbmUgaXMgbm8gbG9uZ2VyIHVzZWZ1bCBhbmQKKyAgICAgKiBzbyBzaG91bGQgYmUgZm9yY2libHkgZXhwaXJlZCBpbiB0aGUgZGF0YSBzdG9yZSBzbyBpdCBjYW4ndCBiZSB1c2VkIGFnYWluLgorICAgICAqCisgICAgICogSWYgc3RvcmFnZSBmYWlscyBmb3Igc29tZSByZWFzb24sIHdlJ3JlIG5vdCBjdXJyZW50bHkgY2hlY2tpbmcgZm9yCisgICAgICogYW55IHNvcnQgb2Ygc3VjY2Vzcy9mYWlsdXJlLCBzbyB5b3Ugc2hvdWxkIGJhaWwgb3V0IG9mIHRoZSBzY3JpcHQKKyAgICAgKiBhbmQgcHJvdmlkZSBhIGRlc2NyaXB0aXZlIGZhaWwgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkcmVmcmVzaF90b2tlbgorICAgICAqIFJlZnJlc2ggdG9rZW4gdG8gYmUgZXhwaXJlZC4KKyAgICAgKgorICAgICAqIEBpbmdyb3VwIG9hdXRoMl9zZWN0aW9uXzYKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdW5zZXRSZWZyZXNoVG9rZW4oJHJlZnJlc2hfdG9rZW4pOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9TY29wZUludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL1Njb3BlSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODI5MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYy9PQXV0aDIvU3RvcmFnZS9TY29wZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSw0NiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCisvKioKKyAqIEltcGxlbWVudCB0aGlzIGludGVyZmFjZSB0byBzcGVjaWZ5IHdoZXJlIHRoZSBPQXV0aDIgU2VydmVyCisgKiBzaG91bGQgcmV0cmlldmUgZGF0YSBpbnZvbHZpbmcgdGhlIHJlbGV2ZW50IHNjb3BlcyBhc3NvY2lhdGVkCisgKiB3aXRoIHRoaXMgaW1wbGVtZW50YXRpb24uCisgKgorICogQGF1dGhvciBCcmVudCBTaGFmZmVyIDxic2hhZnMgYXQgZ21haWwgZG90IGNvbT4KKyAqLworaW50ZXJmYWNlIFNjb3BlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHByb3ZpZGVkIHNjb3BlIGV4aXN0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkc2NvcGUKKyAgICAgKiBBIHNwYWNlLXNlcGFyYXRlZCBzdHJpbmcgb2Ygc2NvcGVzLgorICAgICAqCisgICAgICogQHJldHVybgorICAgICAqIFRSVUUgaWYgaXQgZXhpc3RzLCBGQUxTRSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNjb3BlRXhpc3RzKCRzY29wZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBzY29wZSB0byB1c2UgaW4gdGhlIGV2ZW50IHRoZSBjbGllbnQKKyAgICAgKiBkb2VzIG5vdCByZXF1ZXN0IG9uZS4gQnkgcmV0dXJuaW5nICJmYWxzZSIsIGEKKyAgICAgKiByZXF1ZXN0X2Vycm9yIGlzIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIgdG8gZm9yY2UgYQorICAgICAqIHNjb3BlIHJlcXVlc3QgYnkgdGhlIGNsaWVudC4gQnkgcmV0dXJuaW5nICJudWxsIiwKKyAgICAgKiBvcHQgb3V0IG9mIHJlcXVpcmluZyBzY29wZXMKKyAgICAgKgorICAgICAqIEBwYXJhbSAkY2xpZW50X2lkCisgICAgICogQW4gb3B0aW9uYWwgY2xpZW50IGlkIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmV0dXJuIGN1c3RvbWl6ZWQgZGVmYXVsdCBzY29wZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuCisgICAgICogc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGRlZmF1bHQgc2NvcGUsIG51bGwgaWYKKyAgICAgKiBzY29wZXMgYXJlIG5vdCBkZWZpbmVkLCBvciBmYWxzZSB0byBmb3JjZSBzY29wZQorICAgICAqIHJlcXVlc3QgYnkgdGhlIGNsaWVudAorICAgICAqCisgICAgICogZXg6CisgICAgICogICAgICdkZWZhdWx0JworICAgICAqIGV4OgorICAgICAqICAgICBudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldERlZmF1bHRTY29wZSgkY2xpZW50X2lkID0gbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL1VzZXJDcmVkZW50aWFsc0ludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9TdG9yYWdlL1VzZXJDcmVkZW50aWFsc0ludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU1MDU3OQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1N0b3JhZ2UvVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDUyIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKKy8qKgorICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIHRvIHNwZWNpZnkgd2hlcmUgdGhlIE9BdXRoMiBTZXJ2ZXIKKyAqIHNob3VsZCByZXRyaWV2ZSB1c2VyIGNyZWRlbnRpYWxzIGZvciB0aGUKKyAqICJSZXNvdXJjZSBPd25lciBQYXNzd29yZCBDcmVkZW50aWFscyIgZ3JhbnQgdHlwZQorICoKKyAqIEBhdXRob3IgQnJlbnQgU2hhZmZlciA8YnNoYWZzIGF0IGdtYWlsIGRvdCBjb20+CisgKi8KK2ludGVyZmFjZSBVc2VyQ3JlZGVudGlhbHNJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBHcmFudCBhY2Nlc3MgdG9rZW5zIGZvciBiYXNpYyB1c2VyIGNyZWRlbnRpYWxzLgorICAgICAqCisgICAgICogQ2hlY2sgdGhlIHN1cHBsaWVkIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgdmFsaWRpdHkuCisgICAgICoKKyAgICAgKiBZb3UgY2FuIGFsc28gdXNlIHRoZSAkY2xpZW50X2lkIHBhcmFtIHRvIGRvIGFueSBjaGVja3MgcmVxdWlyZWQgYmFzZWQKKyAgICAgKiBvbiBhIGNsaWVudCwgaWYgeW91IG5lZWQgdGhhdC4KKyAgICAgKgorICAgICAqIFJlcXVpcmVkIGZvciBPQXV0aDI6OkdSQU5UX1RZUEVfVVNFUl9DUkVERU5USUFMUy4KKyAgICAgKgorICAgICAqIEBwYXJhbSAkdXNlcm5hbWUKKyAgICAgKiBVc2VybmFtZSB0byBiZSBjaGVjayB3aXRoLgorICAgICAqIEBwYXJhbSAkcGFzc3dvcmQKKyAgICAgKiBQYXNzd29yZCB0byBiZSBjaGVjayB3aXRoLgorICAgICAqCisgICAgICogQHJldHVybgorICAgICAqIFRSVUUgaWYgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgdmFsaWQsIGFuZCBGQUxTRSBpZiBpdCBpc24ndC4KKyAgICAgKiBNb3Jlb3ZlciwgaWYgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgdmFsaWQsIGFuZCB5b3Ugd2FudCB0bworICAgICAqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4zCisgICAgICoKKyAgICAgKiBAaW5ncm91cCBvYXV0aDJfc2VjdGlvbl80CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrVXNlckNyZWRlbnRpYWxzKCR1c2VybmFtZSwgJHBhc3N3b3JkKTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lIC0gdXNlcm5hbWUgdG8gZ2V0IGRldGFpbHMgZm9yCisgICAgICogQHJldHVybiBhcnJheXxmYWxzZSAgICAgLSB0aGUgYXNzb2NpYXRlZCAidXNlcl9pZCIgYW5kIG9wdGlvbmFsICJzY29wZSIgdmFsdWVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIE1VU1QgcmV0dXJuIEZBTFNFIGlmIHRoZSByZXF1ZXN0ZWQgdXNlciBkb2VzIG5vdCBleGlzdCBvciBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZC4gInNjb3BlIiBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIHJlc3RyaWN0ZWQgc2NvcGVzLgorICAgICAqIEBjb2RlCisgICAgICogICAgIHJldHVybiBhcnJheSgKKyAgICAgKiAgICAgICAgICJ1c2VyX2lkIiAgPT4gVVNFUl9JRCwgICAgLy8gUkVRVUlSRUQgdXNlcl9pZCB0byBiZSBzdG9yZWQgd2l0aCB0aGUgYXV0aG9yaXphdGlvbiBjb2RlIG9yIGFjY2VzcyB0b2tlbgorICAgICAqICAgICAgICAgInNjb3BlIiAgICA9PiBTQ09QRSAgICAgICAvLyBPUFRJT05BTCBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiByZXN0cmljdGVkIHNjb3BlcworICAgICAqICAgICApOworICAgICAqIEBlbmRjb2RlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Ub2tlblR5cGUvQmVhcmVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Rva2VuVHlwZS9CZWFyZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhYzg1OTYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Ub2tlblR5cGUvQmVhcmVyLnBocApAQCAtMCwwICsxLDEzMCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxUb2tlblR5cGU7CisKK3VzZSBPQXV0aDJcUmVxdWVzdEludGVyZmFjZTsKK3VzZSBPQXV0aDJcUmVzcG9uc2VJbnRlcmZhY2U7CisKKy8qKgorKgorKi8KK2NsYXNzIEJlYXJlciBpbXBsZW1lbnRzIFRva2VuVHlwZUludGVyZmFjZQoreworICAgIHByaXZhdGUgJGNvbmZpZzsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChhcnJheSAkY29uZmlnID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgICR0aGlzLT5jb25maWcgPSBhcnJheV9tZXJnZShhcnJheSgKKyAgICAgICAgICAgICd0b2tlbl9wYXJhbV9uYW1lJyAgICAgICAgID0+ICdhY2Nlc3NfdG9rZW4nLAorICAgICAgICAgICAgJ3Rva2VuX2JlYXJlcl9oZWFkZXJfbmFtZScgPT4gJ0JlYXJlcicsCisgICAgICAgICksICRjb25maWcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUb2tlblR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICdCZWFyZXInOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSByZXF1ZXN0IGhhcyBzdXBwbGllZCB0b2tlbgorICAgICAqCisgICAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvaXNzdWVzLzM0OSNpc3N1ZWNvbW1lbnQtMzc5OTM1ODgKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcmVxdWVzdEhhc1Rva2VuKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QpCisgICAgeworICAgICAgICAkaGVhZGVycyA9ICRyZXF1ZXN0LT5oZWFkZXJzKCdBVVRIT1JJWkFUSU9OJyk7CisKKyAgICAgICAgLy8gY2hlY2sgdGhlIGhlYWRlciwgdGhlbiB0aGUgcXVlcnlzdHJpbmcsIHRoZW4gdGhlIHJlcXVlc3QgYm9keQorICAgICAgICByZXR1cm4gIWVtcHR5KCRoZWFkZXJzKSB8fCAoYm9vbCkgKCRyZXF1ZXN0LT5yZXF1ZXN0KCR0aGlzLT5jb25maWdbJ3Rva2VuX3BhcmFtX25hbWUnXSkpIHx8IChib29sKSAoJHJlcXVlc3QtPnF1ZXJ5KCR0aGlzLT5jb25maWdbJ3Rva2VuX3BhcmFtX25hbWUnXSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGdldCB0aGUgdG9rZW4sIHdoaWNoIGNhbiB0aGVuCisgICAgICogYmUgcGFzc2VkIHRvIGdldEFjY2Vzc1Rva2VuRGF0YSgpLiBUaGUgY29uc3RyYWludHMgc3BlY2lmaWVkIGJ5IHRoZSBkcmFmdCBhcmUKKyAgICAgKiBhdHRlbXB0ZWQgdG8gYmUgYWRoZWFyZWQgdG8gaW4gdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAgKiBBcyBwZXIgdGhlIEJlYXJlciBzcGVjIChkcmFmdCA4LCBzZWN0aW9uIDIpIC0gdGhlcmUgYXJlIHRocmVlIHdheXMgZm9yIGEgY2xpZW50CisgICAgICogdG8gc3BlY2lmeSB0aGUgYmVhcmVyIHRva2VuLCBpbiBvcmRlciBvZiBwcmVmZXJlbmNlOiBBdXRob3JpemF0aW9uIEhlYWRlciwKKyAgICAgKiBQT1NUIGFuZCBHRVQuCisgICAgICoKKyAgICAgKiBOQjogUmVzb3VyY2Ugc2VydmVycyBNVVNUIGFjY2VwdCB0b2tlbnMgdmlhIHRoZSBBdXRob3JpemF0aW9uIHNjaGVtZQorICAgICAqIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzUwI3NlY3Rpb24tMikuCisgICAgICoKKyAgICAgKiBAdG9kbyBTaG91bGQgd2UgZW5mb3JjZSBUTFMvU1NMIGluIHRoaXMgZnVuY3Rpb24/CisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NTAjc2VjdGlvbi0yLjEKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NTAjc2VjdGlvbi0yLjIKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY3NTAjc2VjdGlvbi0yLjMKKyAgICAgKgorICAgICAqIE9sZCBBbmRyb2lkIHZlcnNpb24gYnVnIChhdCBsZWFzdCB3aXRoIHZlcnNpb24gMi4yKQorICAgICAqIEBzZWUgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2FuZHJvaWQvaXNzdWVzL2RldGFpbD9pZD02Njg0CisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWNjZXNzVG9rZW5QYXJhbWV0ZXIoUmVxdWVzdEludGVyZmFjZSAkcmVxdWVzdCwgUmVzcG9uc2VJbnRlcmZhY2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgJGhlYWRlcnMgPSAkcmVxdWVzdC0+aGVhZGVycygnQVVUSE9SSVpBVElPTicpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbnN1cmUgbW9yZSB0aGFuIG9uZSBtZXRob2QgaXMgbm90IHVzZWQgZm9yIGluY2x1ZGluZyBhbgorICAgICAgICAgKiBhY2Nlc3MgdG9rZW4KKyAgICAgICAgICoKKyAgICAgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzUwI3NlY3Rpb24tMy4xCisgICAgICAgICAqLworICAgICAgICAkbWV0aG9kc1VzZWQgPSAhZW1wdHkoJGhlYWRlcnMpICsgKGJvb2wpICgkcmVxdWVzdC0+cXVlcnkoJHRoaXMtPmNvbmZpZ1sndG9rZW5fcGFyYW1fbmFtZSddKSkgKyAoYm9vbCkgKCRyZXF1ZXN0LT5yZXF1ZXN0KCR0aGlzLT5jb25maWdbJ3Rva2VuX3BhcmFtX25hbWUnXSkpOworICAgICAgICBpZiAoJG1ldGhvZHNVc2VkID4gMSkgeworICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3JlcXVlc3QnLCAnT25seSBvbmUgbWV0aG9kIG1heSBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSBhdCBhIHRpbWUgKEF1dGggaGVhZGVyLCBHRVQgb3IgUE9TVCknKTsKKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgbm8gYXV0aGVudGljYXRpb24gaXMgcHJvdmlkZWQsIHNldCB0aGUgc3RhdHVzIGNvZGUKKyAgICAgICAgICogdG8gNDAxIGFuZCByZXR1cm4gbm8gb3RoZXIgZXJyb3IgaW5mb3JtYXRpb24KKyAgICAgICAgICoKKyAgICAgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzUwI3NlY3Rpb24tMy4xCisgICAgICAgICAqLworICAgICAgICBpZiAoJG1ldGhvZHNVc2VkID09IDApIHsKKyAgICAgICAgICAgICRyZXNwb25zZS0+c2V0U3RhdHVzQ29kZSg0MDEpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEhFQURFUjogR2V0IHRoZSBhY2Nlc3MgdG9rZW4gZnJvbSB0aGUgaGVhZGVyCisgICAgICAgIGlmICghZW1wdHkoJGhlYWRlcnMpKSB7CisgICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy8nIC4gJHRoaXMtPmNvbmZpZ1sndG9rZW5fYmVhcmVyX2hlYWRlcl9uYW1lJ10gLiAnXHMoXFMrKS9pJywgJGhlYWRlcnMsICRtYXRjaGVzKSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9yZXF1ZXN0JywgJ01hbGZvcm1lZCBhdXRoIGhlYWRlcicpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkcmVxdWVzdC0+cmVxdWVzdCgkdGhpcy0+Y29uZmlnWyd0b2tlbl9wYXJhbV9uYW1lJ10pKSB7CisgICAgICAgICAgICAvLyAvLyBQT1NUOiBHZXQgdGhlIHRva2VuIGZyb20gUE9TVCBkYXRhCisgICAgICAgICAgICBpZiAoIWluX2FycmF5KHN0cnRvbG93ZXIoJHJlcXVlc3QtPnNlcnZlcignUkVRVUVTVF9NRVRIT0QnKSksIGFycmF5KCdwb3N0JywgJ3B1dCcpKSkgeworICAgICAgICAgICAgICAgICRyZXNwb25zZS0+c2V0RXJyb3IoNDAwLCAnaW52YWxpZF9yZXF1ZXN0JywgJ1doZW4gcHV0dGluZyB0aGUgdG9rZW4gaW4gdGhlIGJvZHksIHRoZSBtZXRob2QgbXVzdCBiZSBQT1NUIG9yIFBVVCcsICcjc2VjdGlvbi0yLjInKTsKKworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkY29udGVudFR5cGUgPSAkcmVxdWVzdC0+c2VydmVyKCdDT05URU5UX1RZUEUnKTsKKyAgICAgICAgICAgIGlmIChmYWxzZSAhPT0gJHBvcyA9IHN0cnBvcygkY29udGVudFR5cGUsICc7JykpIHsKKyAgICAgICAgICAgICAgICAkY29udGVudFR5cGUgPSBzdWJzdHIoJGNvbnRlbnRUeXBlLCAwLCAkcG9zKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRjb250ZW50VHlwZSAhPT0gbnVsbCAmJiAkY29udGVudFR5cGUgIT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIHsKKyAgICAgICAgICAgICAgICAvLyBJRVRGIHNwZWNpZmllcyBjb250ZW50LXR5cGUuIE5COiBOb3QgYWxsIHdlYnNlcnZlcnMgcG9wdWxhdGUgdGhpcyBfU0VSVkVSIHZhcmlhYmxlCisgICAgICAgICAgICAgICAgLy8gQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzUwI3NlY3Rpb24tMi4yCisgICAgICAgICAgICAgICAgJHJlc3BvbnNlLT5zZXRFcnJvcig0MDAsICdpbnZhbGlkX3JlcXVlc3QnLCAnVGhlIGNvbnRlbnQgdHlwZSBmb3IgUE9TVCByZXF1ZXN0cyBtdXN0IGJlICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiJyk7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuICRyZXF1ZXN0LT5yZXF1ZXN0KCR0aGlzLT5jb25maWdbJ3Rva2VuX3BhcmFtX25hbWUnXSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBHRVQgbWV0aG9kCisgICAgICAgIHJldHVybiAkcmVxdWVzdC0+cXVlcnkoJHRoaXMtPmNvbmZpZ1sndG9rZW5fcGFyYW1fbmFtZSddKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Ub2tlblR5cGUvTWFjLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Rva2VuVHlwZS9NYWMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNmE4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Ub2tlblR5cGUvTWFjLnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFRva2VuVHlwZTsKKwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKKworLyoqCisqIFRoaXMgaXMgbm90IHlldCBzdXBwb3J0ZWQhCisqLworY2xhc3MgTWFjIGltcGxlbWVudHMgVG9rZW5UeXBlSW50ZXJmYWNlCit7CisgICAgcHVibGljIGZ1bmN0aW9uIGdldFRva2VuVHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4gJ21hYyc7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFjY2Vzc1Rva2VuUGFyYW1ldGVyKFJlcXVlc3RJbnRlcmZhY2UgJHJlcXVlc3QsIFJlc3BvbnNlSW50ZXJmYWNlICRyZXNwb25zZSkKKyAgICB7CisgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIk5vdCBzdXBwb3J0ZWQiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Ub2tlblR5cGUvVG9rZW5UeXBlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMvT0F1dGgyL1Rva2VuVHlwZS9Ub2tlblR5cGVJbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkNzdkNGEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvc3JjL09BdXRoMi9Ub2tlblR5cGUvVG9rZW5UeXBlSW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDIxIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFRva2VuVHlwZTsKKwordXNlIE9BdXRoMlxSZXF1ZXN0SW50ZXJmYWNlOwordXNlIE9BdXRoMlxSZXNwb25zZUludGVyZmFjZTsKKworaW50ZXJmYWNlIFRva2VuVHlwZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIFRva2VuIHR5cGUgaWRlbnRpZmljYXRpb24gc3RyaW5nCisgICAgICoKKyAgICAgKiBleDogImJlYXJlciIgb3IgIm1hYyIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VG9rZW5UeXBlKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIHRva2VuIHN0cmluZyBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBY2Nlc3NUb2tlblBhcmFtZXRlcihSZXF1ZXN0SW50ZXJmYWNlICRyZXF1ZXN0LCBSZXNwb25zZUludGVyZmFjZSAkcmVzcG9uc2UpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0F1dG9sb2FkVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQXV0b2xvYWRUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2IyOTIzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0F1dG9sb2FkVGVzdC5waHAKQEAgLTAsMCArMSwxOCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMjsKKwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCitjbGFzcyBBdXRvbG9hZFRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q2xhc3Nlc0V4aXN0KCkKKyAgICB7CisgICAgICAgIC8vIGF1dG9sb2FkZXIgaXMgY2FsbGVkIGluIHRlc3QvYm9vdHN0cmFwLnBocAorICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShjbGFzc19leGlzdHMoJ09BdXRoMlxTZXJ2ZXInKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKGNsYXNzX2V4aXN0cygnT0F1dGgyXFJlcXVlc3QnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKGNsYXNzX2V4aXN0cygnT0F1dGgyXFJlc3BvbnNlJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShjbGFzc19leGlzdHMoJ09BdXRoMlxHcmFudFR5cGVcVXNlckNyZWRlbnRpYWxzJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShpbnRlcmZhY2VfZXhpc3RzKCdPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZScpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzNTUzYgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9Db250cm9sbGVyL0F1dGhvcml6ZUNvbnRyb2xsZXJUZXN0LnBocApAQCAtMCwwICsxLDQ5MyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcTWVtb3J5OwordXNlIE9BdXRoMlxTY29wZTsKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXEF1dGhvcml6YXRpb25Db2RlOwordXNlIE9BdXRoMlxSZXF1ZXN0OwordXNlIE9BdXRoMlxSZXNwb25zZTsKK3VzZSBPQXV0aDJcUmVxdWVzdFxUZXN0UmVxdWVzdDsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgQXV0aG9yaXplQ29udHJvbGxlclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9DbGllbnRJZFJlc3BvbnNlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCBmYWxzZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfY2xpZW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdObyBjbGllbnQgaWQgc3VwcGxpZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRDbGllbnRJZFJlc3BvbnNlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ0Zha2UgQ2xpZW50IElEJywgLy8gaW52YWxpZCBjbGllbnQgaWQKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCBmYWxzZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfY2xpZW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgY2xpZW50IGlkIHN1cHBsaWVkIGlzIGludmFsaWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5vUmVkaXJlY3RVcmlTdXBwbGllZE9yU3RvcmVkUmVzcG9uc2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCBmYWxzZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfdXJpJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdObyByZWRpcmVjdCBVUkkgd2FzIHN1cHBsaWVkIG9yIHN0b3JlZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9SZXNwb25zZVR5cGVSZXNwb25zZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLCAvLyB2YWxpZCByZWRpcmVjdCBVUkkKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCBmYWxzZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgcGFyc2Vfc3RyKCRwYXJ0c1sncXVlcnknXSwgJHF1ZXJ5KTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRxdWVyeVsnZXJyb3InXSwgJ2ludmFsaWRfcmVxdWVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRxdWVyeVsnZXJyb3JfZGVzY3JpcHRpb24nXSwgJ0ludmFsaWQgb3IgbWlzc2luZyByZXNwb25zZSB0eXBlJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkUmVzcG9uc2VUeXBlUmVzcG9uc2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2ludmFsaWQnLCAvLyBpbnZhbGlkIHJlc3BvbnNlIHR5cGUKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCBmYWxzZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgcGFyc2Vfc3RyKCRwYXJ0c1sncXVlcnknXSwgJHF1ZXJ5KTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRxdWVyeVsnZXJyb3InXSwgJ2ludmFsaWRfcmVxdWVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRxdWVyeVsnZXJyb3JfZGVzY3JpcHRpb24nXSwgJ0ludmFsaWQgb3IgbWlzc2luZyByZXNwb25zZSB0eXBlJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZWRpcmVjdFVyaUZyYWdtZW50UmVzcG9uc2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICdodHRwOi8vYWRvYmUuY29tI2ZyYWdtZW50JywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLCAvLyBpbnZhbGlkIHJlc3BvbnNlIHR5cGUKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF91cmknKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1RoZSByZWRpcmVjdCBVUkkgbXVzdCBub3QgY29udGFpbiBhIGZyYWdtZW50Jyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbmZvcmNlU3RhdGUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdlbmZvcmNlX3N0YXRlJyA9PiB0cnVlKSk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ2Vycm9yJ10sICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ2Vycm9yX2Rlc2NyaXB0aW9uJ10sICdUaGUgc3RhdGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3REb05vdEVuZm9yY2VTdGF0ZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoYXJyYXkoJ2VuZm9yY2Vfc3RhdGUnID0+IGZhbHNlKSk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3RDb250YWlucygnZXJyb3InLCAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RW5mb3JjZVNjb3BlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkc2NvcGVTdG9yYWdlID0gbmV3IE1lbW9yeShhcnJheSgnZGVmYXVsdF9zY29wZScgPT4gZmFsc2UsICdzdXBwb3J0ZWRfc2NvcGVzJyA9PiBhcnJheSgndGVzdHNjb3BlJykpKTsKKyAgICAgICAgJHNlcnZlci0+c2V0U2NvcGVVdGlsKG5ldyBTY29wZSgkc2NvcGVTdG9yYWdlKSk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLCAvLyB2YWxpZCByZWRpcmVjdCBVUkkKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAnY29kZScsCisgICAgICAgICAgICAnc3RhdGUnID0+ICd4eXonLAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHF1ZXJ5WydlcnJvciddLCAnaW52YWxpZF9jbGllbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ2Vycm9yX2Rlc2NyaXB0aW9uJ10sICdUaGlzIGFwcGxpY2F0aW9uIHJlcXVpcmVzIHlvdSBzcGVjaWZ5IGEgc2NvcGUgcGFyYW1ldGVyJyk7CisKKyAgICAgICAgJHJlcXVlc3QtPnF1ZXJ5WydzY29wZSddID0gJ3Rlc3RzY29wZSc7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90Q29udGFpbnMoJ2Vycm9yJywgJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRSZWRpcmVjdFVyaSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCB3aXRoIFJlZGlyZWN0IFVyaScsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLCAvLyBpbnZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAncmVkaXJlY3RfdXJpX21pc21hdGNoJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgcmVkaXJlY3QgVVJJIHByb3ZpZGVkIGlzIG1pc3Npbmcgb3IgZG9lcyBub3QgbWF0Y2gnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRSZWRpcmVjdFVyaUFwcHJvdmVkQnlCdWdneVJlZ2lzdGVyZWRVcmkoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPnNldENvbmZpZygncmVxdWlyZV9leGFjdF9yZWRpcmVjdF91cmknLCBmYWxzZSk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQgd2l0aCBCdWdneSBSZWRpcmVjdCBVcmknLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gaW52YWxpZCByZWRpcmVjdCBVUkkKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAnY29kZScsCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ3JlZGlyZWN0X3VyaV9taXNtYXRjaCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIHJlZGlyZWN0IFVSSSBwcm92aWRlZCBpcyBtaXNzaW5nIG9yIGRvZXMgbm90IG1hdGNoJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb1JlZGlyZWN0VXJpV2l0aE11bHRpcGxlUmVkaXJlY3RVcmlzKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworCisgICAgICAgIC8vIGNyZWF0ZSBhIHJlcXVlc3Qgd2l0aCBubyAicmVkaXJlY3RfdXJpIiBpbiBxdWVyeXN0cmluZworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEIHdpdGggTXVsdGlwbGUgUmVkaXJlY3QgVXJpcycsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3VyaScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnQSByZWRpcmVjdCBVUkkgbXVzdCBiZSBzdXBwbGllZCB3aGVuIG11bHRpcGxlIHJlZGlyZWN0IFVSSXMgYXJlIHJlZ2lzdGVyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFJlZGlyZWN0VXJpV2l0aFZhbGlkUmVkaXJlY3RVcmkoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisKKyAgICAgICAgLy8gY3JlYXRlIGEgcmVxdWVzdCB3aXRoIG5vICJyZWRpcmVjdF91cmkiIGluIHF1ZXJ5c3RyaW5nCisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEIHdpdGggUmVkaXJlY3QgVXJpIFBhcnRzJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICdodHRwOi8vdXNlcjpwYXNzQGJyZW50ZXJ0YWlubWVudC5jb206MjIyMi9hdXRob3JpemUvY2I/YXV0aF90eXBlPW9hdXRoJnRlc3Q9dHJ1ZScsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ3h5eicsCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Q29udGFpbnMoJ2NvZGUnLCAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmVkaXJlY3RVcmlXaXRoRGlmZmVyZW50UXVlcnlBbmRFeGFjdE1hdGNoUmVxdWlyZWQoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdyZXF1aXJlX2V4YWN0X3JlZGlyZWN0X3VyaScgPT4gdHJ1ZSkpOworCisgICAgICAgIC8vIGNyZWF0ZSBhIHJlcXVlc3Qgd2l0aCBubyAicmVkaXJlY3RfdXJpIiBpbiBxdWVyeXN0cmluZworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEIHdpdGggUmVkaXJlY3QgVXJpIFBhcnRzJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly91c2VyOnBhc3NAYnJlbnRlcnRhaW5tZW50LmNvbToyMjIyL2F1dGhvcml6ZS9jYj9hdXRoX3R5cGU9b2F1dGgmdGVzdD10cnVlJmhlcmVpc2E9cXVlcnlzdHJpbmcnLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ3JlZGlyZWN0X3VyaV9taXNtYXRjaCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIHJlZGlyZWN0IFVSSSBwcm92aWRlZCBpcyBtaXNzaW5nIG9yIGRvZXMgbm90IG1hdGNoJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZWRpcmVjdFVyaVdpdGhEaWZmZXJlbnRRdWVyeUFuZEV4YWN0TWF0Y2hOb3RSZXF1aXJlZCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoYXJyYXkoJ3JlcXVpcmVfZXhhY3RfcmVkaXJlY3RfdXJpJyA9PiBmYWxzZSkpOworCisgICAgICAgIC8vIGNyZWF0ZSBhIHJlcXVlc3Qgd2l0aCBubyAicmVkaXJlY3RfdXJpIiBpbiBxdWVyeXN0cmluZworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCB3aXRoIFJlZGlyZWN0IFVyaSBQYXJ0cycsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL3VzZXI6cGFzc0BicmVudGVydGFpbm1lbnQuY29tOjIyMjIvYXV0aG9yaXplL2NiP2F1dGhfdHlwZT1vYXV0aCZ0ZXN0PXRydWUmaGVyZWlzYT1xdWVyeXN0cmluZycsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ3h5eicsCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Q29udGFpbnMoJ2NvZGUnLCAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVSZWRpcmVjdFVyaXMoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEIHdpdGggTXVsdGlwbGUgUmVkaXJlY3QgVXJpcycsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICdodHRwOi8vYnJlbnRlcnRhaW5tZW50LmNvbScsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAneHl6JworICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICR0aGlzLT5hc3NlcnRDb250YWlucygnY29kZScsICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKSk7CisKKyAgICAgICAgLy8gY2FsbCBhZ2FpbiB3aXRoIGRpZmZlcmVudCAoYnV0IHN0aWxsIHZhbGlkKSByZWRpcmVjdCBVUkkKKyAgICAgICAgJHJlcXVlc3QtPnF1ZXJ5WydyZWRpcmVjdF91cmknXSA9ICdodHRwOi8vbW9yZWhhemFyZHMuY29tJzsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICR0aGlzLT5hc3NlcnRDb250YWlucygnY29kZScsICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzQ5I3NlY3Rpb24tNC4xLjMKKyAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9pc3N1ZXMvMTYzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb1JlZGlyZWN0VXJpU3VwcGxpZWREb2VzTm90UmVxdWlyZVRva2VuUmVkaXJlY3RVcmkoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEIHdpdGggUmVkaXJlY3QgVXJpJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAorICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgID0+ICd4eXonLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICR0aGlzLT5hc3NlcnRDb250YWlucygnc3RhdGUnLCAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0U3RyaW5nU3RhcnRzV2l0aCgnaHR0cDovL2JyZW50ZXJ0YWlubWVudC5jb20/Y29kZT0nLCAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworCisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworCisgICAgICAgIC8vIGNhbGwgdG9rZW4gZW5kcG9pbnQgd2l0aCBubyByZWRpcmVjdF91cmkgc3VwcGxpZWQKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQgd2l0aCBSZWRpcmVjdCBVcmknLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldDInLAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLAorICAgICAgICAgICAgJ2NvZGUnICAgICAgICAgID0+ICRxdWVyeVsnY29kZSddLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMjAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2FjY2Vzc190b2tlbicpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFVzZXJEZW5pZXNBY2Nlc3NSZXNwb25zZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLCAvLyB2YWxpZCByZWRpcmVjdCBVUkkKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAnY29kZScsCisgICAgICAgICAgICAnc3RhdGUnID0+ICd4eXonLAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIGZhbHNlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkbG9jYXRpb24gPSAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJyk7CisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkbG9jYXRpb24pOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHF1ZXJ5WydlcnJvciddLCAnYWNjZXNzX2RlbmllZCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRxdWVyeVsnZXJyb3JfZGVzY3JpcHRpb24nXSwgJ1RoZSB1c2VyIGRlbmllZCBhY2Nlc3MgdG8geW91ciBhcHBsaWNhdGlvbicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29kZVF1ZXJ5UGFyYW1Jc1NldCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL2Fkb2JlLmNvbScsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAneHl6JywKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkbG9jYXRpb24gPSAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJyk7CisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkbG9jYXRpb24pOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworCisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnaHR0cCcsICRwYXJ0c1snc2NoZW1lJ10pOyAvLyBzYW1lIGFzIHBhc3NlZCBpbiB0byByZWRpcmVjdF91cmkKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnYWRvYmUuY29tJywgJHBhcnRzWydob3N0J10pOyAvLyBzYW1lIGFzIHBhc3NlZCBpbiB0byByZWRpcmVjdF91cmkKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdxdWVyeScsICRwYXJ0cyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcGFydHNbJ2ZyYWdtZW50J10pKTsKKworICAgICAgICAvLyBhc3NlcnQgZnJhZ21lbnQgaXMgaW4gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZm9ybWF0CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnY29kZScsICRxdWVyeSk7CisKKyAgICAgICAgLy8gZW5zdXJlIG5vIGlkX3Rva2VuIHdhcyBzYXZlZCwgc2luY2UgdGhlIG9wZW5pZCBzY29wZSB3YXNuJ3QgcmVxdWVzdGVkCisgICAgICAgICRzdG9yYWdlID0gJHNlcnZlci0+Z2V0U3RvcmFnZSgnYXV0aG9yaXphdGlvbl9jb2RlJyk7CisgICAgICAgICRjb2RlID0gJHN0b3JhZ2UtPmdldEF1dGhvcml6YXRpb25Db2RlKCRxdWVyeVsnY29kZSddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoZW1wdHkoJGNvZGVbJ2lkX3Rva2VuJ10pKTsKKworICAgICAgICAvLyBlbnN1cmUgbm8gZXJyb3Igd2FzIHJldHVybmVkCisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcXVlcnlbJ2Vycm9yJ10pKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKGlzc2V0KCRxdWVyeVsnZXJyb3JfZGVzY3JpcHRpb24nXSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3VjY2Vzc2Z1bFJlcXVlc3RSZXR1cm5zU3RhdGVQYXJhbWV0ZXIoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSkpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUnLAorICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgID0+ICd0ZXN0JywgLy8gdmFsaWQgc3RhdGUgc3RyaW5nIChqdXN0IG5lZWRzIHRvIGJlIHBhc3NlZCBiYWNrIHRvIHVzKQorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdxdWVyeScsICRwYXJ0cyk7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdzdGF0ZScsICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHF1ZXJ5WydzdGF0ZSddLCAndGVzdCcpOworCisgICAgICAgIC8vIGVuc3VyZSBubyBlcnJvciB3YXMgcmV0dXJuZWQKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKGlzc2V0KCRxdWVyeVsnZXJyb3InXSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoaXNzZXQoJHF1ZXJ5WydlcnJvcl9kZXNjcmlwdGlvbiddKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdWNjZXNzZnVsUmVxdWVzdFN0cmlwc0V4dHJhUGFyYW1ldGVycygpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoYXJyYXkoJ2FsbG93X2ltcGxpY2l0JyA9PiB0cnVlKSk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLCAvLyB2YWxpZCByZWRpcmVjdCBVUkkKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAnY29kZScsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ3Rlc3QnLCAgICAgIC8vIHZhbGlkIHN0YXRlIHN0cmluZyAoanVzdCBuZWVkcyB0byBiZSBwYXNzZWQgYmFjayB0byB1cykKKyAgICAgICAgICAgICdmYWtlJyAgICAgICAgICA9PiAnc29tZXRoaW5nJywgLy8gZXh0cmEgcXVlcnkgcGFyYW0KKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkbG9jYXRpb24gPSAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3RDb250YWlucygnZXJyb3InLCAkbG9jYXRpb24pOworCisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkbG9jYXRpb24pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoaXNzZXQoJHBhcnRzWydmYWtlJ10pKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdxdWVyeScsICRwYXJ0cyk7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKGlzc2V0KCRwYXJtYXNbJ2Zha2UnXSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N0YXRlJywgJHF1ZXJ5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ3N0YXRlJ10sICd0ZXN0Jyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdWNjZXNzZnVsT3BlbmlkQ29ubmVjdFJlcXVlc3QoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICdib2phbnonLAorICAgICAgICApKTsKKworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAneHl6JywKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnb3BlbmlkJywKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkbG9jYXRpb24gPSAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJyk7CisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkbG9jYXRpb24pOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworCisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgncXVlcnknLCAkcGFydHMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoaXNzZXQoJHBhcnRzWydmcmFnbWVudCddKSk7CisKKyAgICAgICAgLy8gYXNzZXJ0IGZyYWdtZW50IGlzIGluICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiIGZvcm1hdAorICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2NvZGUnLCAkcXVlcnkpOworCisgICAgICAgIC8vIGVuc3VyZSBubyBlcnJvciB3YXMgcmV0dXJuZWQKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKGlzc2V0KCRxdWVyeVsnZXJyb3InXSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoaXNzZXQoJHF1ZXJ5WydlcnJvcl9kZXNjcmlwdGlvbiddKSk7CisKKyAgICAgICAgLy8gY29uZmlybSB0aGF0IHRoZSBpZF90b2tlbiBoYXMgYmVlbiBjcmVhdGVkLgorICAgICAgICAkc3RvcmFnZSA9ICRzZXJ2ZXItPmdldFN0b3JhZ2UoJ2F1dGhvcml6YXRpb25fY29kZScpOworICAgICAgICAkY29kZSA9ICRzdG9yYWdlLT5nZXRBdXRob3JpemF0aW9uQ29kZSgkcXVlcnlbJ2NvZGUnXSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCFlbXB0eSgkY29kZVsnaWRfdG9rZW4nXSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlQ29udHJvbGxlcigpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkY29udHJvbGxlciA9IG5ldyBBdXRob3JpemVDb250cm9sbGVyKCRzdG9yYWdlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSwgJGNvbmZpZyk7CisKKyAgICAgICAgLy8gQWRkIHRoZSB0d28gdHlwZXMgc3VwcG9ydGVkIGZvciBhdXRob3JpemF0aW9uIGdyYW50CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQXV0aG9yaXphdGlvbkNvZGUoJHN0b3JhZ2UpKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQ29udHJvbGxlci9SZXNvdXJjZUNvbnRyb2xsZXJUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9Db250cm9sbGVyL1Jlc291cmNlQ29udHJvbGxlclRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNTRkMjMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQ29udHJvbGxlci9SZXNvdXJjZUNvbnRyb2xsZXJUZXN0LnBocApAQCAtMCwwICsxLDE3NyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIE9BdXRoMlxTZXJ2ZXI7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxBdXRob3JpemF0aW9uQ29kZTsKK3VzZSBPQXV0aDJcUmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIFJlc291cmNlQ29udHJvbGxlclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9BY2Nlc3NUb2tlbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpOworICAgICAgICAkYWxsb3cgPSAkc2VydmVyLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRhbGxvdyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAxKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJycsICRyZXNwb25zZS0+Z2V0UmVzcG9uc2VCb2R5KCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWFsZm9ybWVkSGVhZGVyKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCk7CisgICAgICAgICRyZXF1ZXN0LT5oZWFkZXJzWydBVVRIT1JJWkFUSU9OJ10gPSAndEgxcyBpNSBCMGdVNSc7CisgICAgICAgICRhbGxvdyA9ICRzZXJ2ZXItPnZlcmlmeVJlc291cmNlUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJGFsbG93KTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdNYWxmb3JtZWQgYXV0aCBoZWFkZXInKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE11bHRpcGxlVG9rZW5zU3VibWl0dGVkKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCk7CisgICAgICAgICRyZXF1ZXN0LT5yZXF1ZXN0WydhY2Nlc3NfdG9rZW4nXSA9ICdURVNUJzsKKyAgICAgICAgJHJlcXVlc3QtPnF1ZXJ5WydhY2Nlc3NfdG9rZW4nXSA9ICdURVNUJzsKKyAgICAgICAgJGFsbG93ID0gJHNlcnZlci0+dmVyaWZ5UmVzb3VyY2VSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkYWxsb3cpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ09ubHkgb25lIG1ldGhvZCBtYXkgYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgYXQgYSB0aW1lIChBdXRoIGhlYWRlciwgR0VUIG9yIFBPU1QpJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkUmVxdWVzdE1ldGhvZCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpOworICAgICAgICAkcmVxdWVzdC0+c2VydmVyWydSRVFVRVNUX01FVEhPRCddID0gJ0dFVCc7CisgICAgICAgICRyZXF1ZXN0LT5yZXF1ZXN0WydhY2Nlc3NfdG9rZW4nXSA9ICdURVNUJzsKKyAgICAgICAgJGFsbG93ID0gJHNlcnZlci0+dmVyaWZ5UmVzb3VyY2VSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkYWxsb3cpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1doZW4gcHV0dGluZyB0aGUgdG9rZW4gaW4gdGhlIGJvZHksIHRoZSBtZXRob2QgbXVzdCBiZSBQT1NUIG9yIFBVVCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZENvbnRlbnRUeXBlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCk7CisgICAgICAgICRyZXF1ZXN0LT5zZXJ2ZXJbJ1JFUVVFU1RfTUVUSE9EJ10gPSAnUE9TVCc7CisgICAgICAgICRyZXF1ZXN0LT5zZXJ2ZXJbJ0NPTlRFTlRfVFlQRSddID0gJ2FwcGxpY2F0aW9uL2pzb24nOworICAgICAgICAkcmVxdWVzdC0+cmVxdWVzdFsnYWNjZXNzX3Rva2VuJ10gPSAnVEVTVCc7CisgICAgICAgICRhbGxvdyA9ICRzZXJ2ZXItPnZlcmlmeVJlc291cmNlUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJGFsbG93KTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgY29udGVudCB0eXBlIGZvciBQT1NUIHJlcXVlc3RzIG11c3QgYmUgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCInKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRUb2tlbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpOworICAgICAgICAkcmVxdWVzdC0+aGVhZGVyc1snQVVUSE9SSVpBVElPTiddID0gJ0JlYXJlciBURVNUVE9LRU4nOworICAgICAgICAkYWxsb3cgPSAkc2VydmVyLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRhbGxvdyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAxKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfdG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1RoZSBhY2Nlc3MgdG9rZW4gcHJvdmlkZWQgaXMgaW52YWxpZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RXhwaXJlZFRva2VuKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCk7CisgICAgICAgICRyZXF1ZXN0LT5oZWFkZXJzWydBVVRIT1JJWkFUSU9OJ10gPSAnQmVhcmVyIGFjY2Vzc3Rva2VuLWV4cGlyZWQnOworICAgICAgICAkYWxsb3cgPSAkc2VydmVyLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRhbGxvdyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAxKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfdG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1RoZSBhY2Nlc3MgdG9rZW4gcHJvdmlkZWQgaGFzIGV4cGlyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE91dE9mU2NvcGVUb2tlbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpOworICAgICAgICAkcmVxdWVzdC0+aGVhZGVyc1snQVVUSE9SSVpBVElPTiddID0gJ0JlYXJlciBhY2Nlc3N0b2tlbi1zY29wZSc7CisgICAgICAgICRzY29wZSA9ICdvdXRvZnNjb3BlJzsKKyAgICAgICAgJGFsbG93ID0gJHNlcnZlci0+dmVyaWZ5UmVzb3VyY2VSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgJHNjb3BlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRhbGxvdyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAzKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2luc3VmZmljaWVudF9zY29wZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIHJlcXVlc3QgcmVxdWlyZXMgaGlnaGVyIHByaXZpbGVnZXMgdGhhbiBwcm92aWRlZCBieSB0aGUgYWNjZXNzIHRva2VuJyk7CisKKyAgICAgICAgLy8gdmVyaWZ5IHRoZSAic2NvcGUiIGhhcyBiZWVuIHNldCBpbiB0aGUgIldXVy1BdXRoZW50aWNhdGUiIGhlYWRlcgorICAgICAgICBwcmVnX21hdGNoKCcvc2NvcGU9IiguKj8pIi8nLCAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ1dXVy1BdXRoZW50aWNhdGUnKSwgJG1hdGNoZXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDIsIGNvdW50KCRtYXRjaGVzKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJG1hdGNoZXNbMV0sICdvdXRvZnNjb3BlJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNYWxmb3JtZWRUb2tlbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpOworICAgICAgICAkcmVxdWVzdC0+aGVhZGVyc1snQVVUSE9SSVpBVElPTiddID0gJ0JlYXJlciBhY2Nlc3N0b2tlbi1tYWxmb3JtZWQnOworICAgICAgICAkYWxsb3cgPSAkc2VydmVyLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRhbGxvdyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAxKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ21hbGZvcm1lZF90b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnTWFsZm9ybWVkIHRva2VuIChtaXNzaW5nICJleHBpcmVzIiknKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkVG9rZW4oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gUmVxdWVzdDo6Y3JlYXRlRnJvbUdsb2JhbHMoKTsKKyAgICAgICAgJHJlcXVlc3QtPmhlYWRlcnNbJ0FVVEhPUklaQVRJT04nXSA9ICdCZWFyZXIgYWNjZXNzdG9rZW4tc2NvcGUnOworICAgICAgICAkYWxsb3cgPSAkc2VydmVyLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJGFsbG93KTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkVG9rZW5XaXRoU2NvcGVQYXJhbSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBSZXF1ZXN0OjpjcmVhdGVGcm9tR2xvYmFscygpOworICAgICAgICAkcmVxdWVzdC0+aGVhZGVyc1snQVVUSE9SSVpBVElPTiddID0gJ0JlYXJlciBhY2Nlc3N0b2tlbi1zY29wZSc7CisgICAgICAgICRyZXF1ZXN0LT5xdWVyeVsnc2NvcGUnXSA9ICd0ZXN0c2NvcGUnOworICAgICAgICAkYWxsb3cgPSAkc2VydmVyLT52ZXJpZnlSZXNvdXJjZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJGFsbG93KTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZUNvbnRyb2xsZXIoKQorICAgIHsKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHRva2VuVHlwZSA9IG5ldyBcT0F1dGgyXFRva2VuVHlwZVxCZWFyZXIoKTsKKyAgICAgICAgJGNvbnRyb2xsZXIgPSBuZXcgUmVzb3VyY2VDb250cm9sbGVyKCR0b2tlblR5cGUsICRzdG9yYWdlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSwgJGNvbmZpZyk7CisKKyAgICAgICAgLy8gQWRkIHRoZSB0d28gdHlwZXMgc3VwcG9ydGVkIGZvciBhdXRob3JpemF0aW9uIGdyYW50CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQXV0aG9yaXphdGlvbkNvZGUoJHN0b3JhZ2UpKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQ29udHJvbGxlci9Ub2tlbkNvbnRyb2xsZXJUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9Db250cm9sbGVyL1Rva2VuQ29udHJvbGxlclRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxOGVhYTYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvQ29udHJvbGxlci9Ub2tlbkNvbnRyb2xsZXJUZXN0LnBocApAQCAtMCwwICsxLDMzMiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxDb250cm9sbGVyOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIE9BdXRoMlxTZXJ2ZXI7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxBdXRob3JpemF0aW9uQ29kZTsKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXENsaWVudENyZWRlbnRpYWxzOwordXNlIE9BdXRoMlxHcmFudFR5cGVcVXNlckNyZWRlbnRpYWxzOwordXNlIE9BdXRoMlxTY29wZTsKK3VzZSBPQXV0aDJcUmVxdWVzdFxUZXN0UmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIFRva2VuQ29udHJvbGxlclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9HcmFudFR5cGUoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoKSwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1RoZSBncmFudCB0eXBlIHdhcyBub3Qgc3BlY2lmaWVkIGluIHRoZSByZXF1ZXN0Jyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkR3JhbnRUeXBlKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnaW52YWxpZF9ncmFudF90eXBlJywgLy8gaW52YWxpZCBncmFudCB0eXBlCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAndW5zdXBwb3J0ZWRfZ3JhbnRfdHlwZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnR3JhbnQgdHlwZSAiaW52YWxpZF9ncmFudF90eXBlIiBub3Qgc3VwcG9ydGVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb0NsaWVudElkKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NvZGUnICAgICAgID0+ICd0ZXN0Y29kZScsCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9jbGllbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0NsaWVudCBjcmVkZW50aWFscyB3ZXJlIG5vdCBmb3VuZCBpbiB0aGUgaGVhZGVycyBvciBib2R5Jyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb0NsaWVudFNlY3JldFdpdGhDb25maWRlbnRpYWxDbGllbnQoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY29kZScgICAgICAgPT4gJ3Rlc3Rjb2RlJywKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfY2xpZW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGlzIGNsaWVudCBpcyBpbnZhbGlkIG9yIG11c3QgYXV0aGVudGljYXRlIHVzaW5nIGEgY2xpZW50IHNlY3JldCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9DbGllbnRTZWNyZXRXaXRoRW1wdHlTZWNyZXQoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY29kZScgICAgICAgPT4gJ3Rlc3Rjb2RlLWVtcHR5LXNlY3JldCcsCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQgRW1wdHkgU2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAyMDApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZENsaWVudElkKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NvZGUnICAgICAgID0+ICd0ZXN0Y29kZScsCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgPT4gJ0Zha2UgQ2xpZW50IElEJywgLy8gaW52YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2NsaWVudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIGNsaWVudCBjcmVkZW50aWFscyBhcmUgaW52YWxpZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZENsaWVudFNlY3JldCgpCisgICAgeworICAgICAgICAvLyBhZGQgdGhlIHRlc3QgcGFyYW1ldGVycyBpbiBtZW1vcnkKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjb2RlJyAgICAgICA9PiAndGVzdGNvZGUnLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdGYWtlIENsaWVudCBTZWNyZXQnLCAvLyBpbnZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2NsaWVudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIGNsaWVudCBjcmVkZW50aWFscyBhcmUgaW52YWxpZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRUb2tlblJlc3BvbnNlKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnY29kZScgPT4gJ3Rlc3Rjb2RlJywgLy8gdmFsaWQgYXV0aG9yaXphdGlvbiBjb2RlCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkcmVzcG9uc2UgaW5zdGFuY2VvZiBSZXNwb25zZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDIwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignYWNjZXNzX3Rva2VuJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXhwaXJlc19pbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ3Rva2VuX3R5cGUnKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZENsaWVudElkU2NvcGUoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY29kZScgICAgICAgPT4gJ3Rlc3Rjb2RlJywKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3Njb3BlJyA9PiAnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDIwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyJywgJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ3Njb3BlJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZENsaWVudElkU2NvcGUoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY29kZScgICAgICAgPT4gJ3Rlc3Rjb2RlLXdpdGgtc2NvcGUnLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnc2NvcGUnID0+ICdjbGllbnRzY29wZTMnCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9zY29wZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIHNjb3BlIHJlcXVlc3RlZCBpcyBpbnZhbGlkIGZvciB0aGlzIHJlcXVlc3QnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEVuZm9yY2VTY29wZSgpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQ2xpZW50Q3JlZGVudGlhbHMoJHN0b3JhZ2UpKTsKKworICAgICAgICAkc2NvcGUgPSBuZXcgU2NvcGUoYXJyYXkoCisgICAgICAgICAgICAnZGVmYXVsdF9zY29wZScgPT4gZmFsc2UsCisgICAgICAgICAgICAnc3VwcG9ydGVkX3Njb3BlcycgPT4gYXJyYXkoJ3Rlc3RzY29wZScpCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5zZXRTY29wZVV0aWwoJHNjb3BlKTsKKworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdjbGllbnRfY3JlZGVudGlhbHMnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICkpOworICAgICAgICAkcmVzcG9uc2UgPSAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3Njb3BlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGlzIGFwcGxpY2F0aW9uIHJlcXVpcmVzIHlvdSBzcGVjaWZ5IGEgc2NvcGUgcGFyYW1ldGVyJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDYW5SZWNlaXZlQWNjZXNzVG9rZW5Vc2luZ1Bhc3N3b3JkR3JhbnRUeXBlV2l0aG91dENsaWVudFNlY3JldCgpCisgICAgeworICAgICAgICAvLyBhZGQgdGhlIHRlc3QgcGFyYW1ldGVycyBpbiBtZW1vcnkKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoJHN0b3JhZ2UpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IFVzZXJDcmVkZW50aWFscygkc3RvcmFnZSkpOworCisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3Bhc3N3b3JkJywgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnICA9PiAnVGVzdCBDbGllbnQgSUQgRm9yIFBhc3N3b3JkIEdyYW50JywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAndXNlcm5hbWUnICAgPT4gJ2pvaG5kb2UnLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIHVzZXJuYW1lCisgICAgICAgICAgICAncGFzc3dvcmQnICAgPT4gJ3Bhc3N3b3JkJywgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbGlkIHBhc3N3b3JkIGZvciB1c2VybmFtZQorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHJlc3BvbnNlIGluc3RhbmNlb2YgUmVzcG9uc2UpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDIwMCwgJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIHZhcl9leHBvcnQoJHJlc3BvbnNlLCAxKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignYWNjZXNzX3Rva2VuJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXhwaXJlc19pbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ3Rva2VuX3R5cGUnKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkVG9rZW5UeXBlSGludEZvclJldm9rZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ3Rva2VuX3R5cGVfaGludCcgPT4gJ2ZvbycsCisgICAgICAgICAgICAndG9rZW4nID0+ICdzb21ldG9rZW4nCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVJldm9rZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkcmVzcG9uc2UgaW5zdGFuY2VvZiBSZXNwb25zZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoNDAwLCAkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgdmFyX2V4cG9ydCgkcmVzcG9uc2UsIDEpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfcmVxdWVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVG9rZW4gdHlwZSBoaW50IG11c3QgYmUgZWl0aGVyIFwnYWNjZXNzX3Rva2VuXCcgb3IgXCdyZWZyZXNoX3Rva2VuXCcnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE1pc3NpbmdUb2tlbkZvclJldm9rZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ3Rva2VuX3R5cGVfaGludCcgPT4gJ2FjY2Vzc190b2tlbicKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlUmV2b2tlUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkcmVzcG9uc2UgaW5zdGFuY2VvZiBSZXNwb25zZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoNDAwLCAkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgdmFyX2V4cG9ydCgkcmVzcG9uc2UsIDEpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfcmVxdWVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnTWlzc2luZyB0b2tlbiBwYXJhbWV0ZXIgdG8gcmV2b2tlJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkUmVxdWVzdE1ldGhvZEZvclJldm9rZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAkcmVxdWVzdCA9IG5ldyBUZXN0UmVxdWVzdCgpOworICAgICAgICAkcmVxdWVzdC0+c2V0UXVlcnkoYXJyYXkoCisgICAgICAgICAgICAndG9rZW5fdHlwZV9oaW50JyA9PiAnYWNjZXNzX3Rva2VuJworICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVSZXZva2VSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRyZXNwb25zZSBpbnN0YW5jZW9mIFJlc3BvbnNlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyg0MDUsICRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCB2YXJfZXhwb3J0KCRyZXNwb25zZSwgMSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgcmVxdWVzdCBtZXRob2QgbXVzdCBiZSBQT1NUIHdoZW4gcmV2b2tpbmcgYW4gYWNjZXNzIHRva2VuJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDYW5Vc2VDcm9zc09yaWdpblJlcXVlc3RGb3JSZXZva2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgVGVzdFJlcXVlc3QoKTsKKyAgICAgICAgJHJlcXVlc3QtPnNldE1ldGhvZCgnT1BUSU9OUycpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVJldm9rZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHJlc3BvbnNlIGluc3RhbmNlb2YgUmVzcG9uc2UpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDIwMCwgJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIHZhcl9leHBvcnQoJHJlc3BvbnNlLCAxKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdBbGxvdycpLCAnUE9TVCwgT1BUSU9OUycpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZFJlcXVlc3RNZXRob2RGb3JBY2Nlc3NUb2tlbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAkcmVxdWVzdCA9IG5ldyBUZXN0UmVxdWVzdCgpOworICAgICAgICAkcmVxdWVzdC0+c2V0UXVlcnkoYXJyYXkoCisgICAgICAgICAgICAndG9rZW5fdHlwZV9oaW50JyA9PiAnYWNjZXNzX3Rva2VuJworICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHJlc3BvbnNlIGluc3RhbmNlb2YgUmVzcG9uc2UpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQwNSwgJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIHZhcl9leHBvcnQoJHJlc3BvbnNlLCAxKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1RoZSByZXF1ZXN0IG1ldGhvZCBtdXN0IGJlIFBPU1Qgd2hlbiByZXF1ZXN0aW5nIGFuIGFjY2VzcyB0b2tlbicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q2FuVXNlQ3Jvc3NPcmlnaW5SZXF1ZXN0Rm9yQWNjZXNzVG9rZW4oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgVGVzdFJlcXVlc3QoKTsKKyAgICAgICAgJHJlcXVlc3QtPnNldE1ldGhvZCgnT1BUSU9OUycpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkcmVzcG9uc2UgaW5zdGFuY2VvZiBSZXNwb25zZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoMjAwLCAkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgdmFyX2V4cG9ydCgkcmVzcG9uc2UsIDEpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0FsbG93JyksICdQT1NULCBPUFRJT05TJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDcmVhdGVDb250cm9sbGVyKCkKKyAgICB7CisgICAgICAgICRzdG9yYWdlID0gQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXRNZW1vcnlTdG9yYWdlKCk7CisgICAgICAgICRhY2Nlc3NUb2tlbiA9IG5ldyBcT0F1dGgyXFJlc3BvbnNlVHlwZVxBY2Nlc3NUb2tlbigkc3RvcmFnZSk7CisgICAgICAgICRjb250cm9sbGVyID0gbmV3IFRva2VuQ29udHJvbGxlcigkYWNjZXNzVG9rZW4sICRzdG9yYWdlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoKQorICAgIHsKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoJHN0b3JhZ2UpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IEF1dGhvcml6YXRpb25Db2RlKCRzdG9yYWdlKSk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0VuY3J5cHRpb24vRmlyZWJhc2VKd3RUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9FbmNyeXB0aW9uL0ZpcmViYXNlSnd0VGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdlOTJjMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9FbmNyeXB0aW9uL0ZpcmViYXNlSnd0VGVzdC5waHAKQEAgLTAsMCArMSwxMDMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcRW5jcnlwdGlvbjsKKwordXNlIE9BdXRoMlxTdG9yYWdlXEJvb3RzdHJhcDsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgRmlyZWJhc2VKd3RUZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwcml2YXRlICRwcml2YXRlS2V5OworCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFVwKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5wcml2YXRlS2V5ID0gPDw8RU9ECistLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCitNSUlDWEFJQkFBS0JnUUM1L1N4VmxFOGducEZxQ3hnbDJ3amh6WTd1Y0VpMDBzMGtVZzN4cDdsVkV2Z0xnWWNBCituSGlXcCtndFNqT0ZmSDJ6c3ZwaVdtNkx6NWY3NDNqL0ZFekhJTzFvd1IwcDRkOXBPYUpLMDdkMDErUnpvUUxPCitJUUFnWHJyNFQxQ0NXVWVzbmN3d1BCVkN5eTJNdzNObWhtcjlNckY4VWx2ZFJLQnhyaVJubFAzcUpRSURBUUFCCitBb0dBVmdKSlZVNGZoWU11MWU1SmZZQWNUR2ZGK0dmK2gzaVFtNEpDcG9VY3hNWGY1VnBCOXp0azNLN0xSTjV5Citrd0Z1RkFMcG5VQWFyUmNVUHMwRDhGb1A0cUJsdUtrc2JBdGdIa083Yk1TSDllbU4rbUg0bGU0cXBGbFI3K1AxCiszZkxFMlkxOUlCd1B3RWZDbEMrVHBKdnVvZzZ4cVVZR1BsZzZYTHEvTXhRVUI0RUNRUURnb3ZQMXYrT05TZUdTCitSK05nSlRSNDdub1RrUVQzTTJpemxjZS9PRzdhK08weXc2Qk9aak5YcUgyd3gzRHNocU1jUFVGclRqaWJJQ2xQCitsL3RFUTNTaEFrRUEwL1RkQllEdFhwTk5qcWcwUjlHVkgycHc3S2g2OG5lNm1aVHVqMGtDZ0ZZcFVGNkw2aU1tCit6WGFtSUo1MXJURHNUeUtUQVoxSnVBaEFzSy9NMkJiREJRSkFLUTVmWEVrSUEraSs2NGRzRFVSL2hLTEJlUllHCitQRkFQRU5PTlFHdkdCd3Q3L3MwMlhWM2NnR2J4SWdBeHFXa3FJcDBuZWI5QUpVb0pndHlhTmUzR1FRSkFOb0w0CitRUTBhZjBOVkpBWmdnOFFFSFROTDNhR3JGU2J6eDhJRTVMYjdQTFJzSmE1YlA1bFF4bkRvWXVVK0VJL1BocjYyCituaWlzcC9iL1pER2lka1RNWFFKQkFMZVJzSDFJK0xtSUNBdldYcExLYTlHdjB6R0N3a3VJSkxpVWJWOWM2Q1ZoCitzdW9jQ0F0ZVF3TDVpVzJnQTRBbllyNU9HZUhGc0VsN05DUWN3ZlBacEowPQorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KK0VPRDsKKyAgICB9CisKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlQ2xpZW50Q3JlZGVudGlhbHMgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEp3dFV0aWwoJGNsaWVudF9pZCwgJGNsaWVudF9rZXkpCisgICAgeworICAgICAgICAkand0VXRpbCA9IG5ldyBGaXJlYmFzZUp3dCgpOworCisgICAgICAgICRwYXJhbXMgPSBhcnJheSgKKyAgICAgICAgICAgICdpc3MnID0+ICRjbGllbnRfaWQsCisgICAgICAgICAgICAnZXhwJyA9PiB0aW1lKCkgKyAxMDAwLAorICAgICAgICAgICAgJ2lhdCcgPT4gdGltZSgpLAorICAgICAgICAgICAgJ3N1YicgPT4gJ3Rlc3R1c2VyQG91cmRvbWFpbi5jb20nLAorICAgICAgICAgICAgJ2F1ZCcgPT4gJ2h0dHA6Ly9teWFwcC5jb20vb2F1dGgvYXV0aCcsCisgICAgICAgICAgICAnc2NvcGUnID0+IG51bGwsCisgICAgICAgICk7CisKKyAgICAgICAgJGVuY29kZWQgPSAkand0VXRpbC0+ZW5jb2RlKCRwYXJhbXMsICR0aGlzLT5wcml2YXRlS2V5LCAnUlMyNTYnKTsKKworICAgICAgICAvLyB0ZXN0IEJDIGJlaGF2aW91ciBvZiB0cnVzdGluZyB0aGUgYWxnb3JpdGhtIGluIHRoZSBoZWFkZXIKKyAgICAgICAgJHBheWxvYWQgPSAkand0VXRpbC0+ZGVjb2RlKCRlbmNvZGVkLCAkY2xpZW50X2tleSwgYXJyYXkoJ1JTMjU2JykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbXMsICRwYXlsb2FkKTsKKworICAgICAgICAvLyB0ZXN0IEJDIGJlaGF2aW91ciBvZiBub3QgdmVyaWZ5aW5nIGJ5IHBhc3NpbmcgZmFsc2UKKyAgICAgICAgJHBheWxvYWQgPSAkand0VXRpbC0+ZGVjb2RlKCRlbmNvZGVkLCAkY2xpZW50X2tleSwgZmFsc2UpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbXMsICRwYXlsb2FkKTsKKworICAgICAgICAvLyB0ZXN0IHRoZSBuZXcgcmVzdHJpY3RlZCBhbGdvcml0aG1zIGhlYWRlcgorICAgICAgICAkcGF5bG9hZCA9ICRqd3RVdGlsLT5kZWNvZGUoJGVuY29kZWQsICRjbGllbnRfa2V5LCBhcnJheSgnUlMyNTYnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtcywgJHBheWxvYWQpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZEp3dCgpCisgICAgeworICAgICAgICAkand0VXRpbCA9IG5ldyBGaXJlYmFzZUp3dCgpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkand0VXRpbC0+ZGVjb2RlKCdnb29iJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJGp3dFV0aWwtPmRlY29kZSgnZ28uby5iJykpOworICAgIH0KKworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVDbGllbnRDcmVkZW50aWFscyAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZEp3dEhlYWRlcigkY2xpZW50X2lkLCAkY2xpZW50X2tleSkKKyAgICB7CisgICAgICAgICRqd3RVdGlsID0gbmV3IEZpcmViYXNlSnd0KCk7CisKKyAgICAgICAgJHBhcmFtcyA9IGFycmF5KAorICAgICAgICAgICAgJ2lzcycgPT4gJGNsaWVudF9pZCwKKyAgICAgICAgICAgICdleHAnID0+IHRpbWUoKSArIDEwMDAsCisgICAgICAgICAgICAnaWF0JyA9PiB0aW1lKCksCisgICAgICAgICAgICAnc3ViJyA9PiAndGVzdHVzZXJAb3VyZG9tYWluLmNvbScsCisgICAgICAgICAgICAnYXVkJyA9PiAnaHR0cDovL215YXBwLmNvbS9vYXV0aC9hdXRoJywKKyAgICAgICAgICAgICdzY29wZScgPT4gbnVsbCwKKyAgICAgICAgKTsKKworICAgICAgICAvLyB0ZXN0aW5nIGZvciBhbGdvcml0aG0gdGFtcGVyaW5nIHdoZW4gb25seSBSU0EyNTYgc2lnbmluZyBpcyBhbGxvd2VkCisgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9hdXRoMC5jb20vYmxvZy8yMDE1LzAzLzMxL2NyaXRpY2FsLXZ1bG5lcmFiaWxpdGllcy1pbi1qc29uLXdlYi10b2tlbi1saWJyYXJpZXMvCisgICAgICAgICR0YW1wZXJlZCA9ICRqd3RVdGlsLT5lbmNvZGUoJHBhcmFtcywgJGNsaWVudF9rZXksICdIUzI1NicpOworCisgICAgICAgICRwYXlsb2FkID0gJGp3dFV0aWwtPmRlY29kZSgkdGFtcGVyZWQsICRjbGllbnRfa2V5LCBhcnJheSgnUlMyNTYnKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRwYXlsb2FkKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gcHJvdmlkZUNsaWVudENyZWRlbnRpYWxzKCkKKyAgICB7CisgICAgICAgICRzdG9yYWdlID0gQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXRNZW1vcnlTdG9yYWdlKCk7CisgICAgICAgICRjbGllbnRfaWQgID0gJ1Rlc3QgQ2xpZW50IElEJzsKKyAgICAgICAgJGNsaWVudF9rZXkgPSAkc3RvcmFnZS0+Z2V0Q2xpZW50S2V5KCRjbGllbnRfaWQsICJ0ZXN0dXNlckBvdXJkb21haW4uY29tIik7CisKKyAgICAgICAgcmV0dXJuIGFycmF5KAorICAgICAgICAgICAgYXJyYXkoJGNsaWVudF9pZCwgJGNsaWVudF9rZXkpLAorICAgICAgICApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9FbmNyeXB0aW9uL0p3dFRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0VuY3J5cHRpb24vSnd0VGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczYjRjOQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9FbmNyeXB0aW9uL0p3dFRlc3QucGhwCkBAIC0wLDAgKzEsMTAzIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEVuY3J5cHRpb247CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIEp3dFRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHByaXZhdGUgJHByaXZhdGVLZXk7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXAoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnByaXZhdGVLZXkgPSA8PDxFT0QKKy0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK01JSUNYQUlCQUFLQmdRQzUvU3hWbEU4Z25wRnFDeGdsMndqaHpZN3VjRWkwMHMwa1VnM3hwN2xWRXZnTGdZY0EKK25IaVdwK2d0U2pPRmZIMnpzdnBpV202THo1Zjc0M2ovRkV6SElPMW93UjBwNGQ5cE9hSkswN2QwMStSem9RTE8KK0lRQWdYcnI0VDFDQ1dVZXNuY3d3UEJWQ3l5Mk13M05taG1yOU1yRjhVbHZkUktCeHJpUm5sUDNxSlFJREFRQUIKK0FvR0FWZ0pKVlU0ZmhZTXUxZTVKZllBY1RHZkYrR2YraDNpUW00SkNwb1VjeE1YZjVWcEI5enRrM0s3TFJONXkKK2t3RnVGQUxwblVBYXJSY1VQczBEOEZvUDRxQmx1S2tzYkF0Z0hrTzdiTVNIOWVtTittSDRsZTRxcEZsUjcrUDEKKzNmTEUyWTE5SUJ3UHdFZkNsQytUcEp2dW9nNnhxVVlHUGxnNlhMcS9NeFFVQjRFQ1FRRGdvdlAxditPTlNlR1MKK1IrTmdKVFI0N25vVGtRVDNNMml6bGNlL09HN2ErTzB5dzZCT1pqTlhxSDJ3eDNEc2hxTWNQVUZyVGppYklDbFAKK2wvdEVRM1NoQWtFQTAvVGRCWUR0WHBOTmpxZzBSOUdWSDJwdzdLaDY4bmU2bVpUdWowa0NnRllwVUY2TDZpTW0KK3pYYW1JSjUxclREc1R5S1RBWjFKdUFoQXNLL00yQmJEQlFKQUtRNWZYRWtJQStpKzY0ZHNEVVIvaEtMQmVSWUcKK1BGQVBFTk9OUUd2R0J3dDcvczAyWFYzY2dHYnhJZ0F4cVdrcUlwMG5lYjlBSlVvSmd0eWFOZTNHUVFKQU5vTDQKK1FRMGFmME5WSkFaZ2c4UUVIVE5MM2FHckZTYnp4OElFNUxiN1BMUnNKYTViUDVsUXhuRG9ZdVUrRUkvUGhyNjIKK25paXNwL2IvWkRHaWRrVE1YUUpCQUxlUnNIMUkrTG1JQ0F2V1hwTEthOUd2MHpHQ3drdUlKTGlVYlY5YzZDVmgKK3N1b2NDQXRlUXdMNWlXMmdBNEFuWXI1T0dlSEZzRWw3TkNRY3dmUFpwSjA9CistLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQorRU9EOworICAgIH0KKworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVDbGllbnRDcmVkZW50aWFscyAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Snd0VXRpbCgkY2xpZW50X2lkLCAkY2xpZW50X2tleSkKKyAgICB7CisgICAgICAgICRqd3RVdGlsID0gbmV3IEp3dCgpOworCisgICAgICAgICRwYXJhbXMgPSBhcnJheSgKKyAgICAgICAgICAgICdpc3MnID0+ICRjbGllbnRfaWQsCisgICAgICAgICAgICAnZXhwJyA9PiB0aW1lKCkgKyAxMDAwLAorICAgICAgICAgICAgJ2lhdCcgPT4gdGltZSgpLAorICAgICAgICAgICAgJ3N1YicgPT4gJ3Rlc3R1c2VyQG91cmRvbWFpbi5jb20nLAorICAgICAgICAgICAgJ2F1ZCcgPT4gJ2h0dHA6Ly9teWFwcC5jb20vb2F1dGgvYXV0aCcsCisgICAgICAgICAgICAnc2NvcGUnID0+IG51bGwsCisgICAgICAgICk7CisKKyAgICAgICAgJGVuY29kZWQgPSAkand0VXRpbC0+ZW5jb2RlKCRwYXJhbXMsICR0aGlzLT5wcml2YXRlS2V5LCAnUlMyNTYnKTsKKworICAgICAgICAvLyB0ZXN0IEJDIGJlaGF2aW91ciBvZiB0cnVzdGluZyB0aGUgYWxnb3JpdGhtIGluIHRoZSBoZWFkZXIKKyAgICAgICAgJHBheWxvYWQgPSAkand0VXRpbC0+ZGVjb2RlKCRlbmNvZGVkLCAkY2xpZW50X2tleSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtcywgJHBheWxvYWQpOworCisgICAgICAgIC8vIHRlc3QgQkMgYmVoYXZpb3VyIG9mIG5vdCB2ZXJpZnlpbmcgYnkgcGFzc2luZyBmYWxzZQorICAgICAgICAkcGF5bG9hZCA9ICRqd3RVdGlsLT5kZWNvZGUoJGVuY29kZWQsICRjbGllbnRfa2V5LCBmYWxzZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtcywgJHBheWxvYWQpOworCisgICAgICAgIC8vIHRlc3QgdGhlIG5ldyByZXN0cmljdGVkIGFsZ29yaXRobXMgaGVhZGVyCisgICAgICAgICRwYXlsb2FkID0gJGp3dFV0aWwtPmRlY29kZSgkZW5jb2RlZCwgJGNsaWVudF9rZXksIGFycmF5KCdSUzI1NicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcGFyYW1zLCAkcGF5bG9hZCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkSnd0KCkKKyAgICB7CisgICAgICAgICRqd3RVdGlsID0gbmV3IEp3dCgpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkand0VXRpbC0+ZGVjb2RlKCdnb29iJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJGp3dFV0aWwtPmRlY29kZSgnZ28uby5iJykpOworICAgIH0KKworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVDbGllbnRDcmVkZW50aWFscyAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZEp3dEhlYWRlcigkY2xpZW50X2lkLCAkY2xpZW50X2tleSkKKyAgICB7CisgICAgICAgICRqd3RVdGlsID0gbmV3IEp3dCgpOworCisgICAgICAgICRwYXJhbXMgPSBhcnJheSgKKyAgICAgICAgICAgICdpc3MnID0+ICRjbGllbnRfaWQsCisgICAgICAgICAgICAnZXhwJyA9PiB0aW1lKCkgKyAxMDAwLAorICAgICAgICAgICAgJ2lhdCcgPT4gdGltZSgpLAorICAgICAgICAgICAgJ3N1YicgPT4gJ3Rlc3R1c2VyQG91cmRvbWFpbi5jb20nLAorICAgICAgICAgICAgJ2F1ZCcgPT4gJ2h0dHA6Ly9teWFwcC5jb20vb2F1dGgvYXV0aCcsCisgICAgICAgICAgICAnc2NvcGUnID0+IG51bGwsCisgICAgICAgICk7CisKKyAgICAgICAgLy8gdGVzdGluZyBmb3IgYWxnb3JpdGhtIHRhbXBlcmluZyB3aGVuIG9ubHkgUlNBMjU2IHNpZ25pbmcgaXMgYWxsb3dlZAorICAgICAgICAvLyBAc2VlIGh0dHBzOi8vYXV0aDAuY29tL2Jsb2cvMjAxNS8wMy8zMS9jcml0aWNhbC12dWxuZXJhYmlsaXRpZXMtaW4tanNvbi13ZWItdG9rZW4tbGlicmFyaWVzLworICAgICAgICAkdGFtcGVyZWQgPSAkand0VXRpbC0+ZW5jb2RlKCRwYXJhbXMsICRjbGllbnRfa2V5LCAnSFMyNTYnKTsKKworICAgICAgICAkcGF5bG9hZCA9ICRqd3RVdGlsLT5kZWNvZGUoJHRhbXBlcmVkLCAkY2xpZW50X2tleSwgYXJyYXkoJ1JTMjU2JykpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkcGF5bG9hZCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHByb3ZpZGVDbGllbnRDcmVkZW50aWFscygpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkY2xpZW50X2lkICA9ICdUZXN0IENsaWVudCBJRCc7CisgICAgICAgICRjbGllbnRfa2V5ID0gJHN0b3JhZ2UtPmdldENsaWVudEtleSgkY2xpZW50X2lkLCAidGVzdHVzZXJAb3VyZG9tYWluLmNvbSIpOworCisgICAgICAgIHJldHVybiBhcnJheSgKKyAgICAgICAgICAgIGFycmF5KCRjbGllbnRfaWQsICRjbGllbnRfa2V5KSwKKyAgICAgICAgKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIzMTRmZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9HcmFudFR5cGUvQXV0aG9yaXphdGlvbkNvZGVUZXN0LnBocApAQCAtMCwwICsxLDIyNCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVxdWVzdFxUZXN0UmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIEF1dGhvcml6YXRpb25Db2RlVGVzdCBleHRlbmRzIFRlc3RDYXNlCit7CisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb0NvZGUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfcmVxdWVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnTWlzc2luZyBwYXJhbWV0ZXI6ICJjb2RlIiBpcyByZXF1aXJlZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZENvZGUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgICAgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdjb2RlJyAgICAgICAgICA9PiAnSW52YWxpZENvZGUnLCAvLyBpbnZhbGlkIGF1dGhvcml6YXRpb24gY29kZQorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0F1dGhvcml6YXRpb24gY29kZSBkb2VzblwndCBleGlzdCBvciBpcyBpbnZhbGlkIGZvciB0aGUgY2xpZW50Jyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDb2RlQ2Fubm90QmVVc2VkVHdpY2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgICAgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdjb2RlJyAgICAgICAgICA9PiAndGVzdGNvZGUnLCAvLyB2YWxpZCBjb2RlCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAyMDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignYWNjZXNzX3Rva2VuJykpOworCisgICAgICAgIC8vIHRyeSB0byB1c2UgdGhlIHNhbWUgY29kZSBhZ2FpbgorICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9ncmFudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnQXV0aG9yaXphdGlvbiBjb2RlIGRvZXNuXCd0IGV4aXN0IG9yIGlzIGludmFsaWQgZm9yIHRoZSBjbGllbnQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEV4cGlyZWRDb2RlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnY29kZScgICAgICAgICAgPT4gJ3Rlc3Rjb2RlLWV4cGlyZWQnLCAvLyBleHBpcmVkIGF1dGhvcml6YXRpb24gY29kZQorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ1RoZSBhdXRob3JpemF0aW9uIGNvZGUgaGFzIGV4cGlyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ29kZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ2NvZGUnICAgICAgICAgID0+ICd0ZXN0Y29kZScsIC8vIHZhbGlkIGNvZGUKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZFJlZGlyZWN0VXJpKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJ2h0dHA6Ly9icmVudGVydGFpbm1lbnQuY29tL3ZvaWwlQzMlQTAnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdjb2RlJyAgICAgICAgICA9PiAndGVzdGNvZGUtcmVkaXJlY3QtdXJpJywgLy8gdmFsaWQgY29kZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHRva2VuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ29kZU5vU2NvcGUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgICAgPT4gJ2F1dGhvcml6YXRpb25fY29kZScsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdjb2RlJyAgICAgICAgICA9PiAndGVzdGNvZGUtd2l0aC1zY29wZScsIC8vIHZhbGlkIGNvZGUKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnc2NvcGUnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnc2NvcGUnXSwgJ3Njb3BlMSBzY29wZTInKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ29kZVNhbWVTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ2NvZGUnICAgICAgICAgID0+ICd0ZXN0Y29kZS13aXRoLXNjb3BlJywgLy8gdmFsaWQgY29kZQorICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICdzY29wZTIgc2NvcGUxJywKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnc2NvcGUnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnc2NvcGUnXSwgJ3Njb3BlMiBzY29wZTEnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ29kZUxlc3NTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ2NvZGUnICAgICAgICAgID0+ICd0ZXN0Y29kZS13aXRoLXNjb3BlJywgLy8gdmFsaWQgY29kZQorICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICdzY29wZTEnLAorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdzY29wZScsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWydzY29wZSddLCAnc2NvcGUxJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZENvZGVEaWZmZXJlbnRTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ2NvZGUnICAgICAgICAgID0+ICd0ZXN0Y29kZS13aXRoLXNjb3BlJywgLy8gdmFsaWQgY29kZQorICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICdzY29wZTMnLAorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3Njb3BlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgc2NvcGUgcmVxdWVzdGVkIGlzIGludmFsaWQgZm9yIHRoaXMgcmVxdWVzdCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRDb2RlSW52YWxpZFNjb3BlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnY29kZScgICAgICAgICAgPT4gJ3Rlc3Rjb2RlLXdpdGgtc2NvcGUnLCAvLyB2YWxpZCBjb2RlCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJ2ludmFsaWQtc2NvcGUnLAorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3Njb3BlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgc2NvcGUgcmVxdWVzdGVkIGlzIGludmFsaWQgZm9yIHRoaXMgcmVxdWVzdCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRDbGllbnREaWZmZXJlbnRDb2RlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgU29tZSBPdGhlciBDbGllbnQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldDMnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnY29kZScgICAgICAgICAgPT4gJ3Rlc3Rjb2RlJywgLy8gdmFsaWQgY29kZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdhdXRob3JpemF0aW9uX2NvZGUgZG9lc25cJ3QgZXhpc3Qgb3IgaXMgaW52YWxpZCBmb3IgdGhlIGNsaWVudCcpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0VGVzdFNlcnZlcigpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQXV0aG9yaXphdGlvbkNvZGUoJHN0b3JhZ2UpKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL0NsaWVudENyZWRlbnRpYWxzVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL0NsaWVudENyZWRlbnRpYWxzVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE3ZDBlYgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9HcmFudFR5cGUvQ2xpZW50Q3JlZGVudGlhbHNUZXN0LnBocApAQCAtMCwwICsxLDE2MCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVxdWVzdFxUZXN0UmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIENsaWVudENyZWRlbnRpYWxzVGVzdCBleHRlbmRzIFRlc3RDYXNlCit7CisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkQ3JlZGVudGlhbHMoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ2NsaWVudF9jcmVkZW50aWFscycsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdGYWtlU2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfY2xpZW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgY2xpZW50IGNyZWRlbnRpYWxzIGFyZSBpbnZhbGlkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZENyZWRlbnRpYWxzKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdjbGllbnRfY3JlZGVudGlhbHMnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3Njb3BlJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHRva2VuWydzY29wZSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ3JlZGVudGlhbHNXaXRoU2NvcGUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ2NsaWVudF9jcmVkZW50aWFscycsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3Njb3BlJyA9PiAnc2NvcGUxJywKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnc2NvcGUnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnc2NvcGUnXSwgJ3Njb3BlMScpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRDcmVkZW50aWFsc0ludmFsaWRTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnc2NvcGUnID0+ICdpbnZhbGlkLXNjb3BlJywKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9zY29wZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnQW4gdW5zdXBwb3J0ZWQgc2NvcGUgd2FzIHJlcXVlc3RlZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRDcmVkZW50aWFsc0luSGVhZGVyKCkKKyAgICB7CisgICAgICAgIC8vIGNyZWF0ZSB3aXRoIEhUVFBfQVVUSE9SSVpBVElPTiBpbiBoZWFkZXIKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRoZWFkZXJzID0gYXJyYXkoJ0hUVFBfQVVUSE9SSVpBVElPTicgPT4gJ0Jhc2ljICcuYmFzZTY0X2VuY29kZSgnVGVzdCBDbGllbnQgSUQ6VGVzdFNlY3JldCcpLCAnUkVRVUVTVF9NRVRIT0QnID0+ICdQT1NUJyk7CisgICAgICAgICRwYXJhbXMgID0gYXJyYXkoJ2dyYW50X3R5cGUnID0+ICdjbGllbnRfY3JlZGVudGlhbHMnKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgpLCAkcGFyYW1zLCBhcnJheSgpLCBhcnJheSgpLCBhcnJheSgpLCAkaGVhZGVycyk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlblsnYWNjZXNzX3Rva2VuJ10pOworCisgICAgICAgIC8vIGNyZWF0ZSB1c2luZyBQSFAgQXV0aG9yaXphdGlvbiBHbG9iYWxzCisgICAgICAgICRoZWFkZXJzID0gYXJyYXkoJ1BIUF9BVVRIX1VTRVInID0+ICdUZXN0IENsaWVudCBJRCcsICdQSFBfQVVUSF9QVycgPT4gJ1Rlc3RTZWNyZXQnLCAnUkVRVUVTVF9NRVRIT0QnID0+ICdQT1NUJyk7CisgICAgICAgICRwYXJhbXMgID0gYXJyYXkoJ2dyYW50X3R5cGUnID0+ICdjbGllbnRfY3JlZGVudGlhbHMnKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgpLCAkcGFyYW1zLCBhcnJheSgpLCBhcnJheSgpLCBhcnJheSgpLCAkaGVhZGVycyk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlblsnYWNjZXNzX3Rva2VuJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRDcmVkZW50aWFsc0luUmVxdWVzdCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICkpOworICAgICAgICAkdG9rZW4gPSAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW5bJ2FjY2Vzc190b2tlbiddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ3JlZGVudGlhbHNJblF1ZXJ5c3RyaW5nKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdjbGllbnRfY3JlZGVudGlhbHMnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlblsnYWNjZXNzX3Rva2VuJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q2xpZW50VXNlcklkSXNTZXRJbkFjY2Vzc1Rva2VuKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdjbGllbnRfY3JlZGVudGlhbHMnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ0NsaWVudCBJRCBXaXRoIFVzZXIgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisKKyAgICAgICAgLy8gdmVyaWZ5IHRoZSB1c2VyX2lkIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRva2VuCisgICAgICAgICRzdG9yYWdlID0gJHNlcnZlci0+Z2V0U3RvcmFnZSgnY2xpZW50Jyk7CisgICAgICAgICR0b2tlbiA9ICRzdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbigkdG9rZW5bJ2FjY2Vzc190b2tlbiddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCd1c2VyX2lkJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdG9rZW5bJ3VzZXJfaWQnXSwgJ2JyZW50QGJyZW50ZXJ0YWlubWVudC5jb20nKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoKQorICAgIHsKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoJHN0b3JhZ2UpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IENsaWVudENyZWRlbnRpYWxzKCRzdG9yYWdlKSk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0dyYW50VHlwZS9JbXBsaWNpdFRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0dyYW50VHlwZS9JbXBsaWNpdFRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0YmY5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL0ltcGxpY2l0VGVzdC5waHAKQEAgLTAsMCArMSwxNDQgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcR3JhbnRUeXBlOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIE9BdXRoMlxTZXJ2ZXI7Cit1c2UgT0F1dGgyXFJlcXVlc3Q7Cit1c2UgT0F1dGgyXFJlc3BvbnNlOwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCitjbGFzcyBJbXBsaWNpdFRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW1wbGljaXROb3RBbGxvd2VkUmVzcG9uc2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ3Rva2VuJywgLy8gaW52YWxpZCByZXNwb25zZSB0eXBlCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgZmFsc2UpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ2Vycm9yJ10sICd1bnN1cHBvcnRlZF9yZXNwb25zZV90eXBlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHF1ZXJ5WydlcnJvcl9kZXNjcmlwdGlvbiddLCAnaW1wbGljaXQgZ3JhbnQgdHlwZSBub3Qgc3VwcG9ydGVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2VyRGVuaWVzQWNjZXNzUmVzcG9uc2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSkpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAnaHR0cDovL2Fkb2JlLmNvbScsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICd0b2tlbicsIC8vIHZhbGlkIHJlc3BvbnNlIHR5cGUKKyAgICAgICAgICAgICdzdGF0ZScgPT4gJ3h5eicsCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgZmFsc2UpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ2Vycm9yJ10sICdhY2Nlc3NfZGVuaWVkJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHF1ZXJ5WydlcnJvcl9kZXNjcmlwdGlvbiddLCAnVGhlIHVzZXIgZGVuaWVkIGFjY2VzcyB0byB5b3VyIGFwcGxpY2F0aW9uJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdWNjZXNzZnVsUmVxdWVzdEZyYWdtZW50UGFyYW1ldGVyKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcihhcnJheSgnYWxsb3dfaW1wbGljaXQnID0+IHRydWUpKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLCAvLyB2YWxpZCByZWRpcmVjdCBVUkkKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAndG9rZW4nLCAvLyB2YWxpZCByZXNwb25zZSB0eXBlCisgICAgICAgICAgICAnc3RhdGUnID0+ICd4eXonLAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykpOworCisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnaHR0cCcsICRwYXJ0c1snc2NoZW1lJ10pOyAvLyBzYW1lIGFzIHBhc3NlZCBpbiB0byByZWRpcmVjdF91cmkKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnYWRvYmUuY29tJywgJHBhcnRzWydob3N0J10pOyAvLyBzYW1lIGFzIHBhc3NlZCBpbiB0byByZWRpcmVjdF91cmkKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdmcmFnbWVudCcsICRwYXJ0cyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcGFydHNbJ3F1ZXJ5J10pKTsKKworICAgICAgICAvLyBhc3NlcnQgZnJhZ21lbnQgaXMgaW4gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZm9ybWF0CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ2ZyYWdtZW50J10sICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdleHBpcmVzX2luJywgJHBhcmFtcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgndG9rZW5fdHlwZScsICRwYXJhbXMpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3VjY2Vzc2Z1bFJlcXVlc3RSZXR1cm5zU3RhdGVQYXJhbWV0ZXIoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSkpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAnaHR0cDovL2Fkb2JlLmNvbScsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICd0b2tlbicsIC8vIHZhbGlkIHJlc3BvbnNlIHR5cGUKKyAgICAgICAgICAgICdzdGF0ZScgPT4gJ3Rlc3QnLCAvLyB2YWxpZCBzdGF0ZSBzdHJpbmcgKGp1c3QgbmVlZHMgdG8gYmUgcGFzc2VkIGJhY2sgdG8gdXMpCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSk7CisKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdmcmFnbWVudCcsICRwYXJ0cyk7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ2ZyYWdtZW50J10sICRwYXJhbXMpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnc3RhdGUnLCAkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcGFyYW1zWydzdGF0ZSddLCAndGVzdCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3VjY2Vzc2Z1bFJlcXVlc3RTdHJpcHNFeHRyYVBhcmFtZXRlcnMoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSkpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAnaHR0cDovL2Fkb2JlLmNvbT9mYWtlPXNvbWV0aGluZycsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICd0b2tlbicsIC8vIHZhbGlkIHJlc3BvbnNlIHR5cGUKKyAgICAgICAgICAgICdzdGF0ZScgPT4gJ3Rlc3QnLCAvLyB2YWxpZCBzdGF0ZSBzdHJpbmcgKGp1c3QgbmVlZHMgdG8gYmUgcGFzc2VkIGJhY2sgdG8gdXMpCisgICAgICAgICAgICAnZmFrZScgPT4gJ3NvbWV0aGluZycsIC8vIGFkZCBleHRyYSBwYXJhbSB0byBxdWVyeXN0cmluZworICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJykpOworCisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcGFydHNbJ2Zha2UnXSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2ZyYWdtZW50JywgJHBhcnRzKTsKKyAgICAgICAgcGFyc2Vfc3RyKCRwYXJ0c1snZnJhZ21lbnQnXSwgJHBhcmFtcyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKGlzc2V0KCRwYXJhbXNbJ2Zha2UnXSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N0YXRlJywgJHBhcmFtcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtc1snc3RhdGUnXSwgJ3Rlc3QnKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSwgJGNvbmZpZyk7CisKKyAgICAgICAgLy8gQWRkIHRoZSB0d28gdHlwZXMgc3VwcG9ydGVkIGZvciBhdXRob3JpemF0aW9uIGdyYW50CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQXV0aG9yaXphdGlvbkNvZGUoJHN0b3JhZ2UpKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL0p3dEJlYXJlclRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0dyYW50VHlwZS9Kd3RCZWFyZXJUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjAwMjNiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0dyYW50VHlwZS9Kd3RCZWFyZXJUZXN0LnBocApAQCAtMCwwICsxLDM2MSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVxdWVzdFxUZXN0UmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgT0F1dGgyXEVuY3J5cHRpb25cSnd0OwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCitjbGFzcyBKd3RCZWFyZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwcml2YXRlICRwcml2YXRlS2V5OworCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFVwKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5wcml2YXRlS2V5ID0gPDw8RU9ECistLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCitNSUlDWEFJQkFBS0JnUUM1L1N4VmxFOGducEZxQ3hnbDJ3amh6WTd1Y0VpMDBzMGtVZzN4cDdsVkV2Z0xnWWNBCituSGlXcCtndFNqT0ZmSDJ6c3ZwaVdtNkx6NWY3NDNqL0ZFekhJTzFvd1IwcDRkOXBPYUpLMDdkMDErUnpvUUxPCitJUUFnWHJyNFQxQ0NXVWVzbmN3d1BCVkN5eTJNdzNObWhtcjlNckY4VWx2ZFJLQnhyaVJubFAzcUpRSURBUUFCCitBb0dBVmdKSlZVNGZoWU11MWU1SmZZQWNUR2ZGK0dmK2gzaVFtNEpDcG9VY3hNWGY1VnBCOXp0azNLN0xSTjV5Citrd0Z1RkFMcG5VQWFyUmNVUHMwRDhGb1A0cUJsdUtrc2JBdGdIa083Yk1TSDllbU4rbUg0bGU0cXBGbFI3K1AxCiszZkxFMlkxOUlCd1B3RWZDbEMrVHBKdnVvZzZ4cVVZR1BsZzZYTHEvTXhRVUI0RUNRUURnb3ZQMXYrT05TZUdTCitSK05nSlRSNDdub1RrUVQzTTJpemxjZS9PRzdhK08weXc2Qk9aak5YcUgyd3gzRHNocU1jUFVGclRqaWJJQ2xQCitsL3RFUTNTaEFrRUEwL1RkQllEdFhwTk5qcWcwUjlHVkgycHc3S2g2OG5lNm1aVHVqMGtDZ0ZZcFVGNkw2aU1tCit6WGFtSUo1MXJURHNUeUtUQVoxSnVBaEFzSy9NMkJiREJRSkFLUTVmWEVrSUEraSs2NGRzRFVSL2hLTEJlUllHCitQRkFQRU5PTlFHdkdCd3Q3L3MwMlhWM2NnR2J4SWdBeHFXa3FJcDBuZWI5QUpVb0pndHlhTmUzR1FRSkFOb0w0CitRUTBhZjBOVkpBWmdnOFFFSFROTDNhR3JGU2J6eDhJRTVMYjdQTFJzSmE1YlA1bFF4bkRvWXVVK0VJL1BocjYyCituaWlzcC9iL1pER2lka1RNWFFKQkFMZVJzSDFJK0xtSUNBdldYcExLYTlHdjB6R0N3a3VJSkxpVWJWOWM2Q1ZoCitzdW9jQ0F0ZVF3TDVpVzJnQTRBbllyNU9HZUhGc0VsN05DUWN3ZlBacEowPQorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KK0VPRDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE1hbGZvcm1lZEpXVCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy9HZXQgdGhlIGp3dCBhbmQgYnJlYWsgaXQKKyAgICAgICAgJGp3dCA9ICR0aGlzLT5nZXRKV1QoKTsKKyAgICAgICAgJGp3dCA9IHN1YnN0cl9yZXBsYWNlKCRqd3QsICdicm9rZW4nLCAzLCA2KTsKKworICAgICAgICAkcmVxdWVzdC0+cmVxdWVzdFsnYXNzZXJ0aW9uJ10gPSAkand0OworCisgICAgICAgICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdKV1QgaXMgbWFsZm9ybWVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCcm9rZW5TaWduYXR1cmUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3VybjppZXRmOnBhcmFtczpvYXV0aDpncmFudC10eXBlOmp3dC1iZWFyZXInLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICkpOworCisgICAgICAgIC8vR2V0IHRoZSBqd3QgYW5kIGJyZWFrIHNpZ25hdHVyZQorICAgICAgICAkand0ID0gJHRoaXMtPmdldEpXVCgpIC4gJ25vdFN1cHBvc2VUb0JlSGVyZSc7CisgICAgICAgICRyZXF1ZXN0LT5yZXF1ZXN0Wydhc3NlcnRpb24nXSA9ICRqd3Q7CisKKyAgICAgICAgJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdKV1QgZmFpbGVkIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24nKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEV4cGlyZWRKV1QoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3VybjppZXRmOnBhcmFtczpvYXV0aDpncmFudC10eXBlOmp3dC1iZWFyZXInLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICkpOworCisgICAgICAgIC8vR2V0IGFuIGV4cGlyZWQgSldUCisgICAgICAgICRqd3QgPSAkdGhpcy0+Z2V0SldUKDEyMzQpOworICAgICAgICAkcmVxdWVzdC0+cmVxdWVzdFsnYXNzZXJ0aW9uJ10gPSAkand0OworCisgICAgICAgICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9ncmFudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnSldUIGhhcyBleHBpcmVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCYWRFeHAoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3VybjppZXRmOnBhcmFtczpvYXV0aDpncmFudC10eXBlOmp3dC1iZWFyZXInLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICkpOworCisgICAgICAgIC8vR2V0IGFuIGV4cGlyZWQgSldUCisgICAgICAgICRqd3QgPSAkdGhpcy0+Z2V0SldUKCdiYWR0aW1lc3RhbXAnKTsKKyAgICAgICAgJHJlcXVlc3QtPnJlcXVlc3RbJ2Fzc2VydGlvbiddID0gJGp3dDsKKworICAgICAgICAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0V4cGlyYXRpb24gKGV4cCkgdGltZSBtdXN0IGJlIGEgdW5peCB0aW1lIHN0YW1wJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb0Fzc2VydCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy9EbyBub3QgcGFzcyB0aGUgYXNzZXJ0IChKV1QpCisKKyAgICAgICAgJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ01pc3NpbmcgcGFyYW1ldGVyczogImFzc2VydGlvbiIgcmVxdWlyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5vdEJlZm9yZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy9HZXQgYSBmdXR1cmUgTkJGCisgICAgICAgICRqd3QgPSAkdGhpcy0+Z2V0SldUKG51bGwsIHRpbWUoKSArIDEwMDAwKTsKKyAgICAgICAgJHJlcXVlc3QtPnJlcXVlc3RbJ2Fzc2VydGlvbiddID0gJGp3dDsKKworICAgICAgICAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0pXVCBjYW5ub3QgYmUgdXNlZCBiZWZvcmUgdGhlIE5vdCBCZWZvcmUgKG5iZikgdGltZScpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QmFkTm90QmVmb3JlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICApKTsKKworICAgICAgICAvL0dldCBhIG5vbiB0aW1lc3RhbXAgbmJmCisgICAgICAgICRqd3QgPSAkdGhpcy0+Z2V0SldUKG51bGwsICdub3RhdGltZXN0YW1wJyk7CisgICAgICAgICRyZXF1ZXN0LT5yZXF1ZXN0Wydhc3NlcnRpb24nXSA9ICRqd3Q7CisKKyAgICAgICAgJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdOb3QgQmVmb3JlIChuYmYpIHRpbWUgbXVzdCBiZSBhIHVuaXggdGltZSBzdGFtcCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9uTWF0Y2hpbmdBdWRpZW5jZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoJ2h0dHA6Ly9nb29nbGUuY29tL29hdXRoL28vYXV0aCcpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2Fzc2VydGlvbicgPT4gJHRoaXMtPmdldEpXVCgpLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0ludmFsaWQgYXVkaWVuY2UgKGF1ZCknKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEJhZENsaWVudElEKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdhc3NlcnRpb24nID0+ICR0aGlzLT5nZXRKV1QobnVsbCwgbnVsbCwgbnVsbCwgJ2JhZF9jbGllbnRfaWQnKSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdJbnZhbGlkIGlzc3VlciAoaXNzKSBvciBzdWJqZWN0IChzdWIpIHByb3ZpZGVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RCYWRTdWJqZWN0KCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdhc3NlcnRpb24nID0+ICR0aGlzLT5nZXRKV1QobnVsbCwgbnVsbCwgJ2Fub3RoZXJ1c2VyQG91cmRvbWFpbixjb20nKSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdJbnZhbGlkIGlzc3VlciAoaXNzKSBvciBzdWJqZWN0IChzdWIpIHByb3ZpZGVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNaXNzaW5nS2V5KCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdhc3NlcnRpb24nID0+ICR0aGlzLT5nZXRKV1QobnVsbCwgbnVsbCwgbnVsbCwgJ01pc3NpbmcgS2V5IENsaSxudCcpLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0ludmFsaWQgaXNzdWVyIChpc3MpIG9yIHN1YmplY3QgKHN1YikgcHJvdmlkZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkSnd0KCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdhc3NlcnRpb24nID0+ICR0aGlzLT5nZXRKV1QoKSwgLy8gdmFsaWQgYXNzZXJ0aW9uCisgICAgICAgICkpOworCisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkdG9rZW4pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRKd3RXaXRoU2NvcGUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3VybjppZXRmOnBhcmFtczpvYXV0aDpncmFudC10eXBlOmp3dC1iZWFyZXInLCAgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2Fzc2VydGlvbicgID0+ICR0aGlzLT5nZXRKV1QobnVsbCwgbnVsbCwgbnVsbCwgJ1Rlc3QgQ2xpZW50IElEJyksIC8vIHZhbGlkIGFzc2VydGlvbgorICAgICAgICAgICAgJ3Njb3BlJyAgICAgID0+ICdzY29wZTEnLCAvLyB2YWxpZCBzY29wZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdzY29wZScsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWydzY29wZSddLCAnc2NvcGUxJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZEp3dEludmFsaWRTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcicsICAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnYXNzZXJ0aW9uJyAgPT4gJHRoaXMtPmdldEpXVChudWxsLCBudWxsLCBudWxsLCAnVGVzdCBDbGllbnQgSUQnKSwgLy8gdmFsaWQgYXNzZXJ0aW9uCisgICAgICAgICAgICAnc2NvcGUnICAgICAgPT4gJ2ludmFsaWQtc2NvcGUnLCAvLyBpbnZhbGlkIHNjb3BlCisgICAgICAgICkpOworICAgICAgICAkdG9rZW4gPSAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfc2NvcGUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0FuIHVuc3VwcG9ydGVkIHNjb3BlIHdhcyByZXF1ZXN0ZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkSnRpKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcicsICAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAgICAgJ2Fzc2VydGlvbicgPT4gJHRoaXMtPmdldEpXVChudWxsLCBudWxsLCAndGVzdHVzZXJAb3VyZG9tYWluLmNvbScsICdUZXN0IENsaWVudCBJRCcsICd1bnVzZWRfanRpJyksIC8vIHZhbGlkIGFzc2VydGlvbiB3aXRoIGludmFsaWQgc2NvcGUKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnZhbGlkSnRpKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAndXJuOmlldGY6cGFyYW1zOm9hdXRoOmdyYW50LXR5cGU6and0LWJlYXJlcicsICAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAgICAgJ2Fzc2VydGlvbicgPT4gJHRoaXMtPmdldEpXVCg5OTk5OTk5OTkwMCwgbnVsbCwgJ3Rlc3R1c2VyQG91cmRvbWFpbi5jb20nLCAnVGVzdCBDbGllbnQgSUQnLCAndXNlZF9qdGknKSwgLy8gdmFsaWQgYXNzZXJ0aW9uIHdpdGggaW52YWxpZCBzY29wZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdKU09OIFRva2VuIElkZW50aWZpZXIgKGp0aSkgaGFzIGFscmVhZHkgYmVlbiB1c2VkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RKdGlSZXBsYXlBdHRhY2soKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICd1cm46aWV0ZjpwYXJhbXM6b2F1dGg6Z3JhbnQtdHlwZTpqd3QtYmVhcmVyJywgIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICAgICAnYXNzZXJ0aW9uJyA9PiAkdGhpcy0+Z2V0SldUKDk5OTk5OTk5OTAwLCBudWxsLCAndGVzdHVzZXJAb3VyZG9tYWluLmNvbScsICdUZXN0IENsaWVudCBJRCcsICd0b3RhbGx5X25ld19qdGknKSwgLy8gdmFsaWQgYXNzZXJ0aW9uIHdpdGggaW52YWxpZCBzY29wZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHRva2VuKTsKKworICAgICAgICAvL1JlcGxheSB0aGUgc2FtZSByZXF1ZXN0CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9ncmFudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnSlNPTiBUb2tlbiBJZGVudGlmaWVyIChqdGkpIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIEpXVAorICAgICAqIEBwYXJhbSAkZXhwIFRoZSBleHBpcmF0aW9uIGRhdGUuIElmIHRoZSBjdXJyZW50IHRpbWUgaXMgZ3JlYXRlciB0aGFuIHRoZSBleHAsIHRoZSBKV1QgaXMgaW52YWxpZC4KKyAgICAgKiBAcGFyYW0gJG5iZiBUaGUgIm5vdCBiZWZvcmUiIHRpbWUuIElmIHRoZSBjdXJyZW50IHRpbWUgaXMgbGVzcyB0aGFuIHRoZSBuYmYsIHRoZSBKV1QgaXMgaW52YWxpZC4KKyAgICAgKiBAcGFyYW0gJHN1YiBUaGUgc3ViamVjdCB3ZSBhcmUgYWN0aW5nIG9uIGJlaGFsZiBvZi4gVGhpcyBjb3VsZCBiZSB0aGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgdXNlciBpbiB0aGUgc3lzdGVtLgorICAgICAqIEBwYXJhbSAkaXNzIFRoZSBpc3N1ZXIsIHVzdWFsbHkgdGhlIGNsaWVudF9pZC4KKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0SldUKCRleHAgPSBudWxsLCAkbmJmID0gbnVsbCwgJHN1YiA9IG51bGwsICRpc3MgPSAnVGVzdCBDbGllbnQgSUQnLCAkanRpID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmICghJGV4cCkgeworICAgICAgICAgICAgJGV4cCA9IHRpbWUoKSArIDEwMDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRzdWIpIHsKKyAgICAgICAgICAgICRzdWIgPSAidGVzdHVzZXJAb3VyZG9tYWluLmNvbSI7CisgICAgICAgIH0KKworICAgICAgICAkcGFyYW1zID0gYXJyYXkoCisgICAgICAgICAgICAnaXNzJyA9PiAkaXNzLAorICAgICAgICAgICAgJ2V4cCcgPT4gJGV4cCwKKyAgICAgICAgICAgICdpYXQnID0+IHRpbWUoKSwKKyAgICAgICAgICAgICdzdWInID0+ICRzdWIsCisgICAgICAgICAgICAnYXVkJyA9PiAnaHR0cDovL215YXBwLmNvbS9vYXV0aC9hdXRoJywKKyAgICAgICAgKTsKKworICAgICAgICBpZiAoJG5iZikgeworICAgICAgICAgICAgJHBhcmFtc1snbmJmJ10gPSAkbmJmOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCRqdGkpIHsKKyAgICAgICAgICAgICRwYXJhbXNbJ2p0aSddID0gJGp0aTsKKyAgICAgICAgfQorCisgICAgICAgICRqd3RVdGlsID0gbmV3IEp3dCgpOworCisgICAgICAgIHJldHVybiAkand0VXRpbC0+ZW5jb2RlKCRwYXJhbXMsICR0aGlzLT5wcml2YXRlS2V5LCAnUlMyNTYnKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGF1ZGllbmNlID0gJ2h0dHA6Ly9teWFwcC5jb20vb2F1dGgvYXV0aCcpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgSnd0QmVhcmVyKCRzdG9yYWdlLCAkYXVkaWVuY2UsIG5ldyBKd3QoKSkpOworCisgICAgICAgIHJldHVybiAkc2VydmVyOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9HcmFudFR5cGUvUmVmcmVzaFRva2VuVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL1JlZnJlc2hUb2tlblRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NjRjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL1JlZnJlc2hUb2tlblRlc3QucGhwCkBAIC0wLDAgKzEsMjA1IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXEdyYW50VHlwZTsKKwordXNlIE9BdXRoMlxTdG9yYWdlXEJvb3RzdHJhcDsKK3VzZSBPQXV0aDJcU2VydmVyOwordXNlIE9BdXRoMlxSZXF1ZXN0XFRlc3RSZXF1ZXN0OwordXNlIE9BdXRoMlxSZXNwb25zZTsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgUmVmcmVzaFRva2VuVGVzdCBleHRlbmRzIFRlc3RDYXNlCit7CisgICAgcHJpdmF0ZSAkc3RvcmFnZTsKKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9SZWZyZXNoVG9rZW4oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgUmVmcmVzaFRva2VuKCR0aGlzLT5zdG9yYWdlKSk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsICAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3JlcXVlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ01pc3NpbmcgcGFyYW1ldGVyOiAicmVmcmVzaF90b2tlbiIgaXMgcmVxdWlyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRSZWZyZXNoVG9rZW4oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgUmVmcmVzaFRva2VuKCR0aGlzLT5zdG9yYWdlKSk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICdmYWtlLXRva2VuJywgLy8gaW52YWxpZCByZWZyZXNoIHRva2VuCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfZ3JhbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3JfZGVzY3JpcHRpb24nKSwgJ0ludmFsaWQgcmVmcmVzaCB0b2tlbicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRSZWZyZXNoVG9rZW5XaXRoTmV3UmVmcmVzaFRva2VuSW5SZXNwb25zZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkR3JhbnRUeXBlKG5ldyBSZWZyZXNoVG9rZW4oJHRoaXMtPnN0b3JhZ2UsIGFycmF5KCdhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nID0+IHRydWUpKSk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbicsIC8vIHZhbGlkIHJlZnJlc2ggdG9rZW4KKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoaXNzZXQoJHRva2VuWydyZWZyZXNoX3Rva2VuJ10pLCAncmVmcmVzaCB0b2tlbiBzaG91bGQgYWx3YXlzIHJlZnJlc2gnKTsKKworICAgICAgICAkcmVmcmVzaF90b2tlbiA9ICR0aGlzLT5zdG9yYWdlLT5nZXRSZWZyZXNoVG9rZW4oJHRva2VuWydyZWZyZXNoX3Rva2VuJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcmVmcmVzaF90b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlZnJlc2hfdG9rZW5bJ3JlZnJlc2hfdG9rZW4nXSwgJHRva2VuWydyZWZyZXNoX3Rva2VuJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZWZyZXNoX3Rva2VuWydjbGllbnRfaWQnXSwgJHJlcXVlc3QtPnJlcXVlc3QoJ2NsaWVudF9pZCcpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHRva2VuWydyZWZyZXNoX3Rva2VuJ10gIT0gJ3Rlc3QtcmVmcmVzaHRva2VuJywgJ3RoZSByZWZyZXNoIHRva2VuIHJldHVybmVkIGlzIG5vdCB0aGUgb25lIHVzZWQnKTsKKyAgICAgICAgJHVzZWRfdG9rZW4gPSAkdGhpcy0+c3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCd0ZXN0LXJlZnJlc2h0b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHVzZWRfdG9rZW4sICd0aGUgcmVmcmVzaCB0b2tlbiB1c2VkIGlzIG5vIGxvbmdlciB2YWxpZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRSZWZyZXNoVG9rZW5Eb2VzTm90VW5zZXRUb2tlbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkR3JhbnRUeXBlKG5ldyBSZWZyZXNoVG9rZW4oJHRoaXMtPnN0b3JhZ2UsIGFycmF5KAorICAgICAgICAgICAgJ2Fsd2F5c19pc3N1ZV9uZXdfcmVmcmVzaF90b2tlbicgPT4gdHJ1ZSwKKyAgICAgICAgICAgICd1bnNldF9yZWZyZXNoX3Rva2VuX2FmdGVyX3VzZScgID0+IGZhbHNlLAorICAgICAgICApKSk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbicsIC8vIHZhbGlkIHJlZnJlc2ggdG9rZW4KKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoaXNzZXQoJHRva2VuWydyZWZyZXNoX3Rva2VuJ10pLCAncmVmcmVzaCB0b2tlbiBzaG91bGQgYWx3YXlzIHJlZnJlc2gnKTsKKworICAgICAgICAkdXNlZF90b2tlbiA9ICR0aGlzLT5zdG9yYWdlLT5nZXRSZWZyZXNoVG9rZW4oJ3Rlc3QtcmVmcmVzaHRva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR1c2VkX3Rva2VuLCAndGhlIHJlZnJlc2ggdG9rZW4gdXNlZCBpcyBzdGlsbCB2YWxpZCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRSZWZyZXNoVG9rZW5XaXRoTm9SZWZyZXNoVG9rZW5JblJlc3BvbnNlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IFJlZnJlc2hUb2tlbigkdGhpcy0+c3RvcmFnZSwgYXJyYXkoJ2Fsd2F5c19pc3N1ZV9uZXdfcmVmcmVzaF90b2tlbicgPT4gZmFsc2UpKSk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbicsIC8vIHZhbGlkIHJlZnJlc2ggdG9rZW4KKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKGlzc2V0KCR0b2tlblsncmVmcmVzaF90b2tlbiddKSwgJ3JlZnJlc2ggdG9rZW4gc2hvdWxkIG5vdCBiZSByZXR1cm5lZCcpOworCisgICAgICAgICR1c2VkX3Rva2VuID0gJHRoaXMtPnN0b3JhZ2UtPmdldFJlZnJlc2hUb2tlbigndGVzdC1yZWZyZXNodG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHVzZWRfdG9rZW4sICd0aGUgcmVmcmVzaCB0b2tlbiB1c2VkIGlzIHN0aWxsIHZhbGlkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZFJlZnJlc2hUb2tlblNhbWVTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbi13aXRoLXNjb3BlJywgLy8gdmFsaWQgcmVmcmVzaCB0b2tlbiAod2l0aCBzY29wZSkKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnc2NvcGUyIHNjb3BlMScsCisgICAgICAgICkpOworICAgICAgICAkdG9rZW4gPSAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3Njb3BlJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdG9rZW5bJ3Njb3BlJ10sICdzY29wZTIgc2NvcGUxJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZFJlZnJlc2hUb2tlbkxlc3NTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbi13aXRoLXNjb3BlJywgLy8gdmFsaWQgcmVmcmVzaCB0b2tlbiAod2l0aCBzY29wZSkKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnc2NvcGUxJywKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnc2NvcGUnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnc2NvcGUnXSwgJ3Njb3BlMScpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRSZWZyZXNoVG9rZW5EaWZmZXJlbnRTY29wZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncmVmcmVzaF90b2tlbicsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbi13aXRoLXNjb3BlJywgLy8gdmFsaWQgcmVmcmVzaCB0b2tlbiAod2l0aCBzY29wZSkKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnc2NvcGUzJywKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9zY29wZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIHNjb3BlIHJlcXVlc3RlZCBpcyBpbnZhbGlkIGZvciB0aGlzIHJlcXVlc3QnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkUmVmcmVzaFRva2VuSW52YWxpZFNjb3BlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdyZWZyZXNoX3Rva2VuJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAncmVmcmVzaF90b2tlbicgPT4gJ3Rlc3QtcmVmcmVzaHRva2VuLXdpdGgtc2NvcGUnLCAvLyB2YWxpZCByZWZyZXNoIHRva2VuICh3aXRoIHNjb3BlKQorICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICdpbnZhbGlkLXNjb3BlJywKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9zY29wZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnVGhlIHNjb3BlIHJlcXVlc3RlZCBpcyBpbnZhbGlkIGZvciB0aGlzIHJlcXVlc3QnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ2xpZW50RGlmZmVyZW50UmVmcmVzaFRva2VuKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdyZWZyZXNoX3Rva2VuJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IFNvbWUgT3RoZXIgQ2xpZW50JywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQzJywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW4nID0+ICd0ZXN0LXJlZnJlc2h0b2tlbicsIC8vIHZhbGlkIHJlZnJlc2ggdG9rZW4KKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9ncmFudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAncmVmcmVzaF90b2tlbiBkb2VzblwndCBleGlzdCBvciBpcyBpbnZhbGlkIGZvciB0aGUgY2xpZW50Jyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRUZXN0U2VydmVyKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5zdG9yYWdlID0gQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXRNZW1vcnlTdG9yYWdlKCk7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCR0aGlzLT5zdG9yYWdlKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvR3JhbnRUeXBlL1VzZXJDcmVkZW50aWFsc1Rlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0dyYW50VHlwZS9Vc2VyQ3JlZGVudGlhbHNUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjcyNWUxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL0dyYW50VHlwZS9Vc2VyQ3JlZGVudGlhbHNUZXN0LnBocApAQCAtMCwwICsxLDE3MyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxHcmFudFR5cGU7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVxdWVzdFxUZXN0UmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIFVzZXJDcmVkZW50aWFsc1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9Vc2VybmFtZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncGFzc3dvcmQnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdwYXNzd29yZCcgPT4gJ3Rlc3RwYXNzJywgLy8gdmFsaWQgcGFzc3dvcmQKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdNaXNzaW5nIHBhcmFtZXRlcnM6ICJ1c2VybmFtZSIgYW5kICJwYXNzd29yZCIgcmVxdWlyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5vUGFzc3dvcmQoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3Bhc3N3b3JkJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAndXNlcm5hbWUnID0+ICd0ZXN0LXVzZXJuYW1lJywgLy8gdmFsaWQgdXNlcm5hbWUKKyAgICAgICAgKSk7CisgICAgICAgICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdNaXNzaW5nIHBhcmFtZXRlcnM6ICJ1c2VybmFtZSIgYW5kICJwYXNzd29yZCIgcmVxdWlyZWQnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRVc2VybmFtZSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAncGFzc3dvcmQnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICd1c2VybmFtZScgPT4gJ2Zha2UtdXNlcm5hbWUnLCAvLyB2YWxpZCB1c2VybmFtZQorICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAndGVzdHBhc3MnLCAvLyB2YWxpZCBwYXNzd29yZAorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX2dyYW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdJbnZhbGlkIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjb21iaW5hdGlvbicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW52YWxpZFBhc3N3b3JkKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdwYXNzd29yZCcsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAndGVzdC11c2VybmFtZScsIC8vIHZhbGlkIHVzZXJuYW1lCisgICAgICAgICAgICAncGFzc3dvcmQnID0+ICdmYWtlcGFzcycsIC8vIGludmFsaWQgcGFzc3dvcmQKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDEpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9ncmFudCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcl9kZXNjcmlwdGlvbicpLCAnSW52YWxpZCB1c2VybmFtZSBhbmQgcGFzc3dvcmQgY29tYmluYXRpb24nKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkQ3JlZGVudGlhbHMoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3Bhc3N3b3JkJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAndXNlcm5hbWUnID0+ICd0ZXN0LXVzZXJuYW1lJywgLy8gdmFsaWQgdXNlcm5hbWUKKyAgICAgICAgICAgICdwYXNzd29yZCcgPT4gJ3Rlc3RwYXNzJywgLy8gdmFsaWQgcGFzc3dvcmQKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZENyZWRlbnRpYWxzV2l0aFNjb3BlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdwYXNzd29yZCcsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAndGVzdC11c2VybmFtZScsIC8vIHZhbGlkIHVzZXJuYW1lCisgICAgICAgICAgICAncGFzc3dvcmQnID0+ICd0ZXN0cGFzcycsIC8vIHZhbGlkIHBhc3N3b3JkCisgICAgICAgICAgICAnc2NvcGUnICAgID0+ICdzY29wZTEnLCAvLyB2YWxpZCBzY29wZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdzY29wZScsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWydzY29wZSddLCAnc2NvcGUxJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZENyZWRlbnRpYWxzSW52YWxpZFNjb3BlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdwYXNzd29yZCcsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAndGVzdC11c2VybmFtZScsIC8vIHZhbGlkIHVzZXJuYW1lCisgICAgICAgICAgICAncGFzc3dvcmQnID0+ICd0ZXN0cGFzcycsIC8vIHZhbGlkIHBhc3N3b3JkCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJ2ludmFsaWQtc2NvcGUnLAorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDQwMCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJyksICdpbnZhbGlkX3Njb3BlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdBbiB1bnN1cHBvcnRlZCBzY29wZSB3YXMgcmVxdWVzdGVkJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROb1NlY3JldFdpdGhQdWJsaWNDbGllbnQoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3Bhc3N3b3JkJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gJ1Rlc3QgQ2xpZW50IElEIEVtcHR5IFNlY3JldCcsIC8vIHZhbGlkIHB1YmxpYyBjbGllbnQKKyAgICAgICAgICAgICd1c2VybmFtZScgPT4gJ3Rlc3QtdXNlcm5hbWUnLCAvLyB2YWxpZCB1c2VybmFtZQorICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAndGVzdHBhc3MnLCAvLyB2YWxpZCBwYXNzd29yZAorICAgICAgICApKTsKKworICAgICAgICAkdG9rZW4gPSAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkdG9rZW4pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm9TZWNyZXRXaXRoQ29uZmlkZW50aWFsQ2xpZW50KCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdwYXNzd29yZCcsIC8vIHZhbGlkIGdyYW50IHR5cGUKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIHB1YmxpYyBjbGllbnQKKyAgICAgICAgICAgICd1c2VybmFtZScgPT4gJ3Rlc3QtdXNlcm5hbWUnLCAvLyB2YWxpZCB1c2VybmFtZQorICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiAndGVzdHBhc3MnLCAvLyB2YWxpZCBwYXNzd29yZAorICAgICAgICApKTsKKworICAgICAgICAkdG9rZW4gPSAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgNDAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignZXJyb3InKSwgJ2ludmFsaWRfY2xpZW50Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGlzIGNsaWVudCBpcyBpbnZhbGlkIG9yIG11c3QgYXV0aGVudGljYXRlIHVzaW5nIGEgY2xpZW50IHNlY3JldCcpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0VGVzdFNlcnZlcigpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgVXNlckNyZWRlbnRpYWxzKCRzdG9yYWdlKSk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9Db250cm9sbGVyL0F1dGhvcml6ZUNvbnRyb2xsZXJUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRjMTZkYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9BdXRob3JpemVDb250cm9sbGVyVGVzdC5waHAKQEAgLTAsMCArMSwxODMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXENvbnRyb2xsZXI7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIEF1dGhvcml6ZUNvbnRyb2xsZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkYXRlQXV0aG9yaXplUmVxdWVzdCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL2Fkb2JlLmNvbScsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdpZF90b2tlbicsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ2FmMGlmanNsZGtqJywKKyAgICAgICAgICAgICdub25jZScgICAgICAgICA9PiAnbi0wUzZfV3pBMk1qJywKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gVGVzdCB2YWxpZCBpZF90b2tlbiByZXF1ZXN0CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSwgdHJ1ZSk7CisKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKSk7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ2ZyYWdtZW50J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnbi0wUzZfV3pBMk1qJywgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpLT5nZXROb25jZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ3N0YXRlJ10sICdhZjBpZmpzbGRraicpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaWRfdG9rZW4nLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N0YXRlJywgJHF1ZXJ5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5Tm90SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlOb3RIYXNLZXkoJ2V4cGlyZXNfaW4nLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlOb3RIYXNLZXkoJ3Rva2VuX3R5cGUnLCAkcXVlcnkpOworCisgICAgICAgIC8vIFRlc3QgdmFsaWQgdG9rZW4gaWRfdG9rZW4gcmVxdWVzdAorICAgICAgICAkcmVxdWVzdC0+cXVlcnlbJ3Jlc3BvbnNlX3R5cGUnXSA9ICdpZF90b2tlbiB0b2tlbic7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSwgdHJ1ZSk7CisKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKSk7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ2ZyYWdtZW50J10sICRxdWVyeSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnbi0wUzZfV3pBMk1qJywgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpLT5nZXROb25jZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcXVlcnlbJ3N0YXRlJ10sICdhZjBpZmpzbGRraicpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHF1ZXJ5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdleHBpcmVzX2luJywgJHF1ZXJ5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCd0b2tlbl90eXBlJywgJHF1ZXJ5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdzdGF0ZScsICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaWRfdG9rZW4nLCAkcXVlcnkpOworCisgICAgICAgIC8vIGFzc2VydCB0aGF0IHdpdGggbXVsdGlwbGUtdmFsdWVkIHJlc3BvbnNlIHR5cGVzLCBvcmRlciBkb2VzIG5vdCBtYXR0ZXIKKyAgICAgICAgJHJlcXVlc3QtPnF1ZXJ5WydyZXNwb25zZV90eXBlJ10gPSAndG9rZW4gaWRfdG9rZW4nOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UsIHRydWUpOworCisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydmcmFnbWVudCddLCAkcXVlcnkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ24tMFM2X1d6QTJNaicsICRzZXJ2ZXItPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKS0+Z2V0Tm9uY2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHF1ZXJ5WydzdGF0ZSddLCAnYWYwaWZqc2xka2onKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnZXhwaXJlc19pbicsICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgndG9rZW5fdHlwZScsICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnc3RhdGUnLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lkX3Rva2VuJywgJHF1ZXJ5KTsKKworICAgICAgICAvLyBhc3NlcnQgdGhhdCB3aXRoIG11bHRpcGxlLXZhbHVlZCByZXNwb25zZSB0eXBlcyB3aXRoIGV4dHJhIHNwYWNlcyBkbyBub3QgbWF0dGVyCisgICAgICAgICRyZXF1ZXN0LT5xdWVyeVsncmVzcG9uc2VfdHlwZSddID0gJyB0b2tlbiAgaWRfdG9rZW4gJzsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCB0cnVlKTsKKworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpKTsKKyAgICAgICAgcGFyc2Vfc3RyKCRwYXJ0c1snZnJhZ21lbnQnXSwgJHF1ZXJ5KTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCduLTBTNl9XekEyTWonLCAkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCktPmdldE5vbmNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRxdWVyeVsnc3RhdGUnXSwgJ2FmMGlmanNsZGtqJyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cGlyZXNfaW4nLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3Rva2VuX3R5cGUnLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N0YXRlJywgJHF1ZXJ5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpZF90b2tlbicsICRxdWVyeSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNaXNzaW5nTm9uY2UoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciAgICA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRhdXRob3JpemUgPSAkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCk7CisKKyAgICAgICAgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCk7CisgICAgICAgICRyZXF1ZXN0ICA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICdodHRwOi8vYWRvYmUuY29tJywgLy8gdmFsaWQgcmVkaXJlY3QgVVJJCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2lkX3Rva2VuJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAneHl6JywKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gVGVzdCBtaXNzaW5nIG5vbmNlIGZvciAnaWRfdG9rZW4nIHJlc3BvbnNlIHR5cGUKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCB0cnVlKTsKKyAgICAgICAgJHBhcmFtcyA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVycygpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtc1snZXJyb3InXSwgJ2ludmFsaWRfbm9uY2UnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcGFyYW1zWydlcnJvcl9kZXNjcmlwdGlvbiddLCAnVGhpcyBhcHBsaWNhdGlvbiByZXF1aXJlcyB5b3Ugc3BlY2lmeSBhIG5vbmNlIHBhcmFtZXRlcicpOworCisgICAgICAgIC8vIFRlc3QgbWlzc2luZyBub25jZSBmb3IgJ2lkX3Rva2VuIHRva2VuJyByZXNwb25zZSB0eXBlCisgICAgICAgICRyZXF1ZXN0LT5xdWVyeVsncmVzcG9uc2VfdHlwZSddID0gJ2lkX3Rva2VuIHRva2VuJzsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCB0cnVlKTsKKyAgICAgICAgJHBhcmFtcyA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVycygpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtc1snZXJyb3InXSwgJ2ludmFsaWRfbm9uY2UnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcGFyYW1zWydlcnJvcl9kZXNjcmlwdGlvbiddLCAnVGhpcyBhcHBsaWNhdGlvbiByZXF1aXJlcyB5b3Ugc3BlY2lmeSBhIG5vbmNlIHBhcmFtZXRlcicpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Tm90R3JhbnRlZEFwcGxpY2F0aW9uKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworCisgICAgICAgICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpOworICAgICAgICAkcmVxdWVzdCAgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL2Fkb2JlLmNvbScsIC8vIHZhbGlkIHJlZGlyZWN0IFVSSQorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdpZF90b2tlbicsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ2FmMGlmanNsZGtqJywKKyAgICAgICAgICAgICdub25jZScgICAgICAgICA9PiAnbi0wUzZfV3pBMk1qJywKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gVGVzdCBub3QgYXBwcm92ZWQgYXBwbGljYXRpb24KKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCBmYWxzZSk7CisKKyAgICAgICAgJHBhcmFtcyA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVycygpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtc1snZXJyb3InXSwgJ2NvbnNlbnRfcmVxdWlyZWQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcGFyYW1zWydlcnJvcl9kZXNjcmlwdGlvbiddLCAnVGhlIHVzZXIgZGVuaWVkIGFjY2VzcyB0byB5b3VyIGFwcGxpY2F0aW9uJyk7CisKKyAgICAgICAgLy8gVGVzdCBub3QgYXBwcm92ZWQgYXBwbGljYXRpb24gd2l0aCBwcm9tcHQgcGFyYW1ldGVyCisgICAgICAgICRyZXF1ZXN0LT5xdWVyeVsncHJvbXB0J10gPSAnbm9uZSc7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSwgZmFsc2UpOworCisgICAgICAgICRwYXJhbXMgPSAkcmVzcG9uc2UtPmdldFBhcmFtZXRlcnMoKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbXNbJ2Vycm9yJ10sICdsb2dpbl9yZXF1aXJlZCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbXNbJ2Vycm9yX2Rlc2NyaXB0aW9uJ10sICdUaGUgdXNlciBtdXN0IGxvZyBpbicpOworCisgICAgICAgIC8vIFRlc3Qgbm90IGFwcHJvdmVkIGFwcGxpY2F0aW9uIHdpdGggdXNlcl9pZCBzZXQKKyAgICAgICAgJHJlcXVlc3QtPnF1ZXJ5Wydwcm9tcHQnXSA9ICdub25lJzsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlLCBmYWxzZSwgJ3NvbWUtdXNlci1pZCcpOworCisgICAgICAgICRwYXJhbXMgPSAkcmVzcG9uc2UtPmdldFBhcmFtZXRlcnMoKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbXNbJ2Vycm9yJ10sICdpbnRlcmFjdGlvbl9yZXF1aXJlZCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbXNbJ2Vycm9yX2Rlc2NyaXB0aW9uJ10sICdUaGUgdXNlciBtdXN0IGdyYW50IGFjY2VzcyB0byB5b3VyIGFwcGxpY2F0aW9uJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROZWVkc0lkVG9rZW4oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisgICAgICAgICRhdXRob3JpemUgPSAkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJGF1dGhvcml6ZS0+bmVlZHNJZFRva2VuKCdvcGVuaWQnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRhdXRob3JpemUtPm5lZWRzSWRUb2tlbignb3BlbmlkIHByb2ZpbGUnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkYXV0aG9yaXplLT5uZWVkc0lkVG9rZW4oJycpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRhdXRob3JpemUtPm5lZWRzSWRUb2tlbignc29tZS1zY29wZScpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkY29uZmlnICs9IGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInICAgICAgICAgICAgID0+ICdwaHB1bml0JywKKyAgICAgICAgICAgICdhbGxvd19pbXBsaWNpdCcgICAgID0+IHRydWUKKyAgICAgICAgKTsKKworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyICA9IG5ldyBTZXJ2ZXIoJHN0b3JhZ2UsICRjb25maWcpOworCisgICAgICAgIHJldHVybiAkc2VydmVyOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9Vc2VySW5mb0NvbnRyb2xsZXJUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvQ29udHJvbGxlci9Vc2VySW5mb0NvbnRyb2xsZXJUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmU4NGRmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9Db250cm9sbGVyL1VzZXJJbmZvQ29udHJvbGxlclRlc3QucGhwCkBAIC0wLDAgKzEsNDUgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXENvbnRyb2xsZXI7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVxdWVzdDsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIFVzZXJJbmZvQ29udHJvbGxlclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlQ29udHJvbGxlcigpCisgICAgeworICAgICAgICAkdG9rZW5UeXBlID0gbmV3IFxPQXV0aDJcVG9rZW5UeXBlXEJlYXJlcigpOworICAgICAgICAkc3RvcmFnZSA9IG5ldyBcT0F1dGgyXFN0b3JhZ2VcTWVtb3J5KCk7CisgICAgICAgICRjb250cm9sbGVyID0gbmV3IFVzZXJJbmZvQ29udHJvbGxlcigkdG9rZW5UeXBlLCAkc3RvcmFnZSwgJHN0b3JhZ2UpOworCisgICAgICAgICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpOworICAgICAgICAkY29udHJvbGxlci0+aGFuZGxlVXNlckluZm9SZXF1ZXN0KG5ldyBSZXF1ZXN0KCksICRyZXNwb25zZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoNDAxLCAkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZFRva2VuKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFJlcXVlc3Q6OmNyZWF0ZUZyb21HbG9iYWxzKCk7CisgICAgICAgICRyZXF1ZXN0LT5oZWFkZXJzWydBVVRIT1JJWkFUSU9OJ10gPSAnQmVhcmVyIGFjY2Vzc3Rva2VuLW9wZW5pZC1jb25uZWN0JzsKKyAgICAgICAgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCk7CisKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVXNlckluZm9SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UpOworICAgICAgICAkcGFyYW1ldGVycyA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVycygpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbWV0ZXJzWydzdWInXSwgJ3Rlc3R1c2VyJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHBhcmFtZXRlcnNbJ2VtYWlsJ10sICd0ZXN0dXNlckB0ZXN0LmNvbScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbWV0ZXJzWydlbWFpbF92ZXJpZmllZCddLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSwgJGNvbmZpZyk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9HcmFudFR5cGUvQXV0aG9yaXphdGlvbkNvZGVUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvR3JhbnRUeXBlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg5YTFhZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvR3JhbnRUeXBlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAKQEAgLTAsMCArMSw1OCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxPcGVuSURcR3JhbnRUeXBlOworCit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIE9BdXRoMlxTZXJ2ZXI7Cit1c2UgT0F1dGgyXFJlcXVlc3RcVGVzdFJlcXVlc3Q7Cit1c2UgT0F1dGgyXFJlc3BvbnNlOwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCitjbGFzcyBBdXRob3JpemF0aW9uQ29kZVRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRDb2RlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAnY29kZScgICAgICAgICAgPT4gJ3Rlc3Rjb2RlLW9wZW5pZCcsIC8vIHZhbGlkIGNvZGUKKyAgICAgICAgKSk7CisgICAgICAgICR0b2tlbiA9ICRzZXJ2ZXItPmdyYW50QWNjZXNzVG9rZW4oJHJlcXVlc3QsIG5ldyBSZXNwb25zZSgpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lkX3Rva2VuJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygndGVzdF9pZF90b2tlbicsICR0b2tlblsnaWRfdG9rZW4nXSk7CisKKyAgICAgICAgLy8gdGhpcyBpcyBvbmx5IHRydWUgaWYgIm9mZmxpbmVfYWNjZXNzIiB3YXMgcmVxdWVzdGVkCisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkdG9rZW5bJ3JlZnJlc2hfdG9rZW4nXSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0T2ZmbGluZUFjY2VzcygpCisgICAgeworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICAgICAgJ2NvZGUnICAgICAgICAgID0+ICd0ZXN0Y29kZS1vcGVuaWQnLCAvLyB2YWxpZCBjb2RlCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJ29mZmxpbmVfYWNjZXNzJywgLy8gdmFsaWQgY29kZQorICAgICAgICApKTsKKyAgICAgICAgJHRva2VuID0gJHNlcnZlci0+Z3JhbnRBY2Nlc3NUb2tlbigkcmVxdWVzdCwgbmV3IFJlc3BvbnNlKCkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaWRfdG9rZW4nLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCd0ZXN0X2lkX3Rva2VuJywgJHRva2VuWydpZF90b2tlbiddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoaXNzZXQoJHRva2VuWydyZWZyZXNoX3Rva2VuJ10pKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoKQorICAgIHsKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoJHN0b3JhZ2UsIGFycmF5KCd1c2Vfb3BlbmlkX2Nvbm5lY3QnID0+IHRydWUpKTsKKyAgICAgICAgJHNlcnZlci0+YWRkR3JhbnRUeXBlKG5ldyBBdXRob3JpemF0aW9uQ29kZSgkc3RvcmFnZSkpOworCisgICAgICAgIHJldHVybiAkc2VydmVyOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0NvZGVJZFRva2VuVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9Db2RlSWRUb2tlblRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiODkyYzkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9Db2RlSWRUb2tlblRlc3QucGhwCkBAIC0wLDAgKzEsMTgzIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGU7CisKK3VzZSBPQXV0aDJcU2VydmVyOwordXNlIE9BdXRoMlxSZXF1ZXN0OwordXNlIE9BdXRoMlxSZXNwb25zZTsKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxDbGllbnRDcmVkZW50aWFsczsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgQ29kZUlkVG9rZW5UZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworCisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2NvZGUgaWRfdG9rZW4nLAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgID0+ICdodHRwOi8vYWRvYmUuY29tJywKKyAgICAgICAgICAgICdjbGllbnRfaWQnICAgICA9PiAnVGVzdCBDbGllbnQgSUQnLAorICAgICAgICAgICAgJ3Njb3BlJyAgICAgICAgID0+ICdvcGVuaWQnLAorICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgID0+ICd0ZXN0JywKKyAgICAgICAgICAgICdub25jZScgICAgICAgICA9PiAndGVzdCcsCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkbG9jYXRpb24gPSAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3RDb250YWlucygnZXJyb3InLCAkbG9jYXRpb24pOworCisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkbG9jYXRpb24pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3F1ZXJ5JywgJHBhcnRzKTsKKworICAgICAgICAvLyBhc3NlcnQgZnJhZ21lbnQgaXMgaW4gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZm9ybWF0CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpZF90b2tlbicsICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2NvZGUnLCAkcGFyYW1zKTsKKworICAgICAgICAvLyB2YWxpZGF0ZSBJRCBUb2tlbgorICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcuJywgJHBhcmFtc1snaWRfdG9rZW4nXSk7CisgICAgICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAmJHBhcnQpIHsKKyAgICAgICAgICAgIC8vIEVhY2ggcGFydCBpcyBhIGJhc2U2NHVybCBlbmNvZGVkIGpzb24gc3RyaW5nLgorICAgICAgICAgICAgJHBhcnQgPSBzdHJfcmVwbGFjZShhcnJheSgnLScsICdfJyksIGFycmF5KCcrJywgJy8nKSwgJHBhcnQpOworICAgICAgICAgICAgJHBhcnQgPSBiYXNlNjRfZGVjb2RlKCRwYXJ0KTsKKyAgICAgICAgICAgICRwYXJ0ID0ganNvbl9kZWNvZGUoJHBhcnQsIHRydWUpOworICAgICAgICB9CisgICAgICAgIGxpc3QoJGhlYWRlciwgJGNsYWltcywgJHNpZ25hdHVyZSkgPSAkcGFydHM7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpc3MnLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdzdWInLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdWQnLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpYXQnLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdleHAnLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdXRoX3RpbWUnLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdub25jZScsICRjbGFpbXMpOworCisgICAgICAgIC8vIG9ubHkgZXhpc3RzIGlmIGFuIGFjY2VzcyB0b2tlbiB3YXMgZ3JhbnRlZCBhbG9uZyB3aXRoIHRoZSBpZF90b2tlbgorICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlOb3RIYXNLZXkoJ2F0X2hhc2gnLCAkY2xhaW1zKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGFpbXNbJ2lzcyddLCAndGVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGFpbXNbJ2F1ZCddLCAnVGVzdCBDbGllbnQgSUQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY2xhaW1zWydub25jZSddLCAndGVzdCcpOworICAgICAgICAkZHVyYXRpb24gPSAkY2xhaW1zWydleHAnXSAtICRjbGFpbXNbJ2lhdCddOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRkdXJhdGlvbiwgMzYwMCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2VyQ2xhaW1zV2l0aFVzZXJJZCgpCisgICAgeworICAgICAgICAvLyBhZGQgdGhlIHRlc3QgcGFyYW1ldGVycyBpbiBtZW1vcnkKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAnY29kZSBpZF90b2tlbicsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJ29wZW5pZCBlbWFpbCcsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ3Rlc3QnLAorICAgICAgICAgICAgJ25vbmNlJyAgICAgICAgID0+ICd0ZXN0JywKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHVzZXJJZCA9ICd0ZXN0dXNlcic7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlLCAkdXNlcklkKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCAzMDIpOworICAgICAgICAkbG9jYXRpb24gPSAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3RDb250YWlucygnZXJyb3InLCAkbG9jYXRpb24pOworCisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkbG9jYXRpb24pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3F1ZXJ5JywgJHBhcnRzKTsKKworICAgICAgICAvLyBhc3NlcnQgZnJhZ21lbnQgaXMgaW4gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZm9ybWF0CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpZF90b2tlbicsICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2NvZGUnLCAkcGFyYW1zKTsKKworICAgICAgICAvLyB2YWxpZGF0ZSBJRCBUb2tlbgorICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcuJywgJHBhcmFtc1snaWRfdG9rZW4nXSk7CisgICAgICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAmJHBhcnQpIHsKKyAgICAgICAgICAgIC8vIEVhY2ggcGFydCBpcyBhIGJhc2U2NHVybCBlbmNvZGVkIGpzb24gc3RyaW5nLgorICAgICAgICAgICAgJHBhcnQgPSBzdHJfcmVwbGFjZShhcnJheSgnLScsICdfJyksIGFycmF5KCcrJywgJy8nKSwgJHBhcnQpOworICAgICAgICAgICAgJHBhcnQgPSBiYXNlNjRfZGVjb2RlKCRwYXJ0KTsKKyAgICAgICAgICAgICRwYXJ0ID0ganNvbl9kZWNvZGUoJHBhcnQsIHRydWUpOworICAgICAgICB9CisgICAgICAgIGxpc3QoJGhlYWRlciwgJGNsYWltcywgJHNpZ25hdHVyZSkgPSAkcGFydHM7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdlbWFpbCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2VtYWlsX3ZlcmlmaWVkJywgJGNsYWltcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRjbGFpbXNbJ2VtYWlsJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkY2xhaW1zWydlbWFpbF92ZXJpZmllZCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFVzZXJDbGFpbXNXaXRob3V0VXNlcklkKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlIGlkX3Rva2VuJywKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL2Fkb2JlLmNvbScsCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnb3BlbmlkIGVtYWlsJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAndGVzdCcsCisgICAgICAgICAgICAnbm9uY2UnICAgICAgICAgPT4gJ3Rlc3QnLAorICAgICAgICApKTsKKworICAgICAgICAkdXNlcklkID0gbnVsbDsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUsICR1c2VySWQpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICRsb2NhdGlvbiA9ICRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdENvbnRhaW5zKCdlcnJvcicsICRsb2NhdGlvbik7CisKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRsb2NhdGlvbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgncXVlcnknLCAkcGFydHMpOworCisgICAgICAgIC8vIGFzc2VydCBmcmFnbWVudCBpcyBpbiAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiBmb3JtYXQKKyAgICAgICAgcGFyc2Vfc3RyKCRwYXJ0c1sncXVlcnknXSwgJHBhcmFtcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lkX3Rva2VuJywgJHBhcmFtcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnY29kZScsICRwYXJhbXMpOworCisgICAgICAgIC8vIHZhbGlkYXRlIElEIFRva2VuCisgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoJy4nLCAkcGFyYW1zWydpZF90b2tlbiddKTsKKyAgICAgICAgZm9yZWFjaCAoJHBhcnRzIGFzICYkcGFydCkgeworICAgICAgICAgICAgLy8gRWFjaCBwYXJ0IGlzIGEgYmFzZTY0dXJsIGVuY29kZWQganNvbiBzdHJpbmcuCisgICAgICAgICAgICAkcGFydCA9IHN0cl9yZXBsYWNlKGFycmF5KCctJywgJ18nKSwgYXJyYXkoJysnLCAnLycpLCAkcGFydCk7CisgICAgICAgICAgICAkcGFydCA9IGJhc2U2NF9kZWNvZGUoJHBhcnQpOworICAgICAgICAgICAgJHBhcnQgPSBqc29uX2RlY29kZSgkcGFydCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgbGlzdCgkaGVhZGVyLCAkY2xhaW1zLCAkc2lnbmF0dXJlKSA9ICRwYXJ0czsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlOb3RIYXNLZXkoJ2VtYWlsJywgJGNsYWltcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheU5vdEhhc0tleSgnZW1haWxfdmVyaWZpZWQnLCAkY2xhaW1zKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkY29uZmlnICs9IGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICd0ZXN0JywKKyAgICAgICAgICAgICdpZF9saWZldGltZScgPT4gMzYwMCwKKyAgICAgICAgICAgICdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSwKKyAgICAgICAgKTsKKworICAgICAgICAkbWVtb3J5U3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkbWVtb3J5U3RvcmFnZS0+c3VwcG9ydGVkU2NvcGVzW10gPSAnZW1haWwnOworICAgICAgICAkcmVzcG9uc2VUeXBlcyA9IGFycmF5KAorICAgICAgICAgICAgJ2NvZGUnICAgICA9PiAkY29kZSAgICA9IG5ldyBBdXRob3JpemF0aW9uQ29kZSgkbWVtb3J5U3RvcmFnZSksCisgICAgICAgICAgICAnaWRfdG9rZW4nID0+ICRpZFRva2VuID0gbmV3IElkVG9rZW4oJG1lbW9yeVN0b3JhZ2UsICRtZW1vcnlTdG9yYWdlLCAkY29uZmlnKSwKKyAgICAgICAgICAgICdjb2RlIGlkX3Rva2VuJyA9PiBuZXcgQ29kZUlkVG9rZW4oJGNvZGUsICRpZFRva2VuKSwKKyAgICAgICAgKTsKKworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkbWVtb3J5U3RvcmFnZSwgJGNvbmZpZywgYXJyYXkoKSwgJHJlc3BvbnNlVHlwZXMpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IENsaWVudENyZWRlbnRpYWxzKCRtZW1vcnlTdG9yYWdlKSk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvSWRUb2tlblRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9SZXNwb25zZVR5cGUvSWRUb2tlblRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZGYzYTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9JZFRva2VuVGVzdC5waHAKQEAgLTAsMCArMSwxODUgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZTsKKwordXNlIE9BdXRoMlxTZXJ2ZXI7Cit1c2UgT0F1dGgyXFJlcXVlc3Q7Cit1c2UgT0F1dGgyXFJlc3BvbnNlOwordXNlIE9BdXRoMlxTdG9yYWdlXEJvb3RzdHJhcDsKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXENsaWVudENyZWRlbnRpYWxzOwordXNlIE9BdXRoMlxFbmNyeXB0aW9uXEp3dDsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgSWRUb2tlblRlc3QgZXh0ZW5kcyBUZXN0Q2FzZQoreworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRhdGVBdXRob3JpemVSZXF1ZXN0KCkKKyAgICB7CisgICAgICAgICRxdWVyeSA9IGFycmF5KAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdpZF90b2tlbicsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJ29wZW5pZCcsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ3Rlc3QnLAorICAgICAgICApOworCisgICAgICAgIC8vIGF0dGVtcHQgdG8gZG8gdGhlIHJlcXVlc3Qgd2l0aG91dCBhIG5vbmNlLgorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoYXJyYXkoJ2FsbG93X2ltcGxpY2l0JyA9PiB0cnVlKSk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJHF1ZXJ5KTsKKyAgICAgICAgJHZhbGlkID0gJHNlcnZlci0+dmFsaWRhdGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgLy8gQWRkIGEgbm9uY2UgYW5kIHJldHJ5LgorICAgICAgICAkcXVlcnlbJ25vbmNlJ10gPSAndGVzdCc7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJHF1ZXJ5KTsKKyAgICAgICAgJHZhbGlkID0gJHNlcnZlci0+dmFsaWRhdGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCR2YWxpZCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RIYW5kbGVBdXRob3JpemVSZXF1ZXN0KCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoYXJyYXkoJ2FsbG93X2ltcGxpY2l0JyA9PiB0cnVlKSk7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2lkX3Rva2VuJywKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL2Fkb2JlLmNvbScsCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnb3BlbmlkIGVtYWlsJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAndGVzdCcsCisgICAgICAgICAgICAnbm9uY2UnICAgICAgICAgPT4gJ3Rlc3QnLAorICAgICAgICApKTsKKworICAgICAgICAkdXNlcl9pZCA9ICd0ZXN0dXNlcic7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlLCAkdXNlcl9pZCk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90Q29udGFpbnMoJ2Vycm9yJywgJGxvY2F0aW9uKTsKKworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdmcmFnbWVudCcsICRwYXJ0cyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcGFydHNbJ3F1ZXJ5J10pKTsKKworICAgICAgICAvLyBhc3NlcnQgZnJhZ21lbnQgaXMgaW4gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZm9ybWF0CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ2ZyYWdtZW50J10sICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpZF90b2tlbicsICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlOb3RIYXNLZXkoJ2FjY2Vzc190b2tlbicsICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+dmFsaWRhdGVJZFRva2VuKCRwYXJhbXNbJ2lkX3Rva2VuJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UGFzc0luQXV0aFRpbWUoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSkpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdpZF90b2tlbicsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyAgPT4gJ2h0dHA6Ly9hZG9iZS5jb20nLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsCisgICAgICAgICAgICAnc2NvcGUnICAgICAgICAgPT4gJ29wZW5pZCBlbWFpbCcsCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgPT4gJ3Rlc3QnLAorICAgICAgICAgICAgJ25vbmNlJyAgICAgICAgID0+ICd0ZXN0JywKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gdGVzdCB3aXRoIGEgc2NhbGFyIHVzZXIgaWQKKyAgICAgICAgJHVzZXJfaWQgPSAndGVzdHVzZXIxMjMnOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSwgJHVzZXJfaWQpOworCisgICAgICAgIGxpc3QoJGhlYWRlciwgJHBheWxvYWQsICRzaWduYXR1cmUpID0gJHRoaXMtPmV4dHJhY3RUb2tlbkRhdGFGcm9tUmVzcG9uc2UoJHJlc3BvbnNlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShpc19hcnJheSgkcGF5bG9hZCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N1YicsICRwYXlsb2FkKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdXNlcl9pZCwgJHBheWxvYWRbJ3N1YiddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdXRoX3RpbWUnLCAkcGF5bG9hZCk7CisKKyAgICAgICAgLy8gdGVzdCB3aXRoIGFuIGFycmF5IG9mIHVzZXIgaW5mbworICAgICAgICAkdXNlckluZm8gPSBhcnJheSgKKyAgICAgICAgICAgICd1c2VyX2lkJyA9PiAndGVzdHVzZXIxMjM0JywKKyAgICAgICAgICAgICdhdXRoX3RpbWUnID0+IGRhdGUoJ1ktbS1kIEg6aTpzJywgc3RydG90aW1lKCcyMCBtaW51dGVzIGFnbycpCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmhhbmRsZUF1dGhvcml6ZVJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpLCB0cnVlLCAkdXNlckluZm8pOworCisgICAgICAgIGxpc3QoJGhlYWRlciwgJHBheWxvYWQsICRzaWduYXR1cmUpID0gJHRoaXMtPmV4dHJhY3RUb2tlbkRhdGFGcm9tUmVzcG9uc2UoJHJlc3BvbnNlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShpc19hcnJheSgkcGF5bG9hZCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N1YicsICRwYXlsb2FkKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdXNlckluZm9bJ3VzZXJfaWQnXSwgJHBheWxvYWRbJ3N1YiddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdXRoX3RpbWUnLCAkcGF5bG9hZCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHVzZXJJbmZvWydhdXRoX3RpbWUnXSwgJHBheWxvYWRbJ2F1dGhfdGltZSddKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGV4dHJhY3RUb2tlbkRhdGFGcm9tUmVzcG9uc2UoUmVzcG9uc2UgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90Q29udGFpbnMoJ2Vycm9yJywgJGxvY2F0aW9uKTsKKworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdmcmFnbWVudCcsICRwYXJ0cyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcGFydHNbJ3F1ZXJ5J10pKTsKKworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydmcmFnbWVudCddLCAkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHBhcmFtcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaWRfdG9rZW4nLCAkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5Tm90SGFzS2V5KCdhY2Nlc3NfdG9rZW4nLCAkcGFyYW1zKTsKKworICAgICAgICBsaXN0KCRoZWFkYjY0LCAkcGF5bG9hZGI2NCwgJHNpZ25hdHVyZSkgPSBleHBsb2RlKCcuJywgJHBhcmFtc1snaWRfdG9rZW4nXSk7CisKKyAgICAgICAgJGp3dCA9IG5ldyBKd3QoKTsKKyAgICAgICAgJGhlYWRlciA9IGpzb25fZGVjb2RlKCRqd3QtPnVybFNhZmVCNjREZWNvZGUoJGhlYWRiNjQpLCB0cnVlKTsKKyAgICAgICAgJHBheWxvYWQgPSBqc29uX2RlY29kZSgkand0LT51cmxTYWZlQjY0RGVjb2RlKCRwYXlsb2FkYjY0KSwgdHJ1ZSk7CisKKyAgICAgICAgcmV0dXJuIGFycmF5KCRoZWFkZXIsICRwYXlsb2FkLCAkc2lnbmF0dXJlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlSWRUb2tlbigkaWRfdG9rZW4pCisgICAgeworICAgICAgICAkcGFydHMgPSBleHBsb2RlKCcuJywgJGlkX3Rva2VuKTsKKyAgICAgICAgZm9yZWFjaCAoJHBhcnRzIGFzICYkcGFydCkgeworICAgICAgICAgICAgLy8gRWFjaCBwYXJ0IGlzIGEgYmFzZTY0dXJsIGVuY29kZWQganNvbiBzdHJpbmcuCisgICAgICAgICAgICAkcGFydCA9IHN0cl9yZXBsYWNlKGFycmF5KCctJywgJ18nKSwgYXJyYXkoJysnLCAnLycpLCAkcGFydCk7CisgICAgICAgICAgICAkcGFydCA9IGJhc2U2NF9kZWNvZGUoJHBhcnQpOworICAgICAgICAgICAgJHBhcnQgPSBqc29uX2RlY29kZSgkcGFydCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgbGlzdCgkaGVhZGVyLCAkY2xhaW1zLCAkc2lnbmF0dXJlKSA9ICRwYXJ0czsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lzcycsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N1YicsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2F1ZCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lhdCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2F1dGhfdGltZScsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ25vbmNlJywgJGNsYWltcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnZW1haWwnLCAkY2xhaW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdlbWFpbF92ZXJpZmllZCcsICRjbGFpbXMpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsYWltc1snaXNzJ10sICd0ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsYWltc1snYXVkJ10sICdUZXN0IENsaWVudCBJRCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGFpbXNbJ25vbmNlJ10sICd0ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsYWltc1snZW1haWwnXSwgJ3Rlc3R1c2VyQHRlc3QuY29tJyk7CisgICAgICAgICRkdXJhdGlvbiA9ICRjbGFpbXNbJ2V4cCddIC0gJGNsYWltc1snaWF0J107CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGR1cmF0aW9uLCAzNjAwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkY29uZmlnICs9IGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICd0ZXN0JywKKyAgICAgICAgICAgICdpZF9saWZldGltZScgPT4gMzYwMCwKKyAgICAgICAgKTsKKworICAgICAgICAkbWVtb3J5U3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkbWVtb3J5U3RvcmFnZS0+c3VwcG9ydGVkU2NvcGVzW10gPSAnZW1haWwnOworICAgICAgICAkc3RvcmFnZSA9IGFycmF5KAorICAgICAgICAgICAgJ2NsaWVudCcgPT4gJG1lbW9yeVN0b3JhZ2UsCisgICAgICAgICAgICAnc2NvcGUnID0+ICRtZW1vcnlTdG9yYWdlLAorICAgICAgICApOworICAgICAgICAkcmVzcG9uc2VUeXBlcyA9IGFycmF5KAorICAgICAgICAgICAgJ2lkX3Rva2VuJyA9PiBuZXcgSWRUb2tlbigkbWVtb3J5U3RvcmFnZSwgJG1lbW9yeVN0b3JhZ2UsICRjb25maWcpLAorICAgICAgICApOworCisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCRzdG9yYWdlLCAkY29uZmlnLCBhcnJheSgpLCAkcmVzcG9uc2VUeXBlcyk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQ2xpZW50Q3JlZGVudGlhbHMoJG1lbW9yeVN0b3JhZ2UpKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9JZFRva2VuVG9rZW5UZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvUmVzcG9uc2VUeXBlL0lkVG9rZW5Ub2tlblRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NzNhOTgKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1Jlc3BvbnNlVHlwZS9JZFRva2VuVG9rZW5UZXN0LnBocApAQCAtMCwwICsxLDkyIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGU7CisKK3VzZSBPQXV0aDJcU2VydmVyOwordXNlIE9BdXRoMlxSZXF1ZXN0OwordXNlIE9BdXRoMlxSZXNwb25zZTsKK3VzZSBPQXV0aDJcU3RvcmFnZVxCb290c3RyYXA7Cit1c2UgT0F1dGgyXEdyYW50VHlwZVxDbGllbnRDcmVkZW50aWFsczsKK3VzZSBPQXV0aDJcUmVzcG9uc2VUeXBlXEFjY2Vzc1Rva2VuOwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCitjbGFzcyBJZFRva2VuVG9rZW5UZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SGFuZGxlQXV0aG9yaXplUmVxdWVzdCgpCisgICAgeworICAgICAgICAvLyBhZGQgdGhlIHRlc3QgcGFyYW1ldGVycyBpbiBtZW1vcnkKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKGFycmF5KCdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSkpOworCisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoYXJyYXkoCisgICAgICAgICAgICAncmVzcG9uc2VfdHlwZScgPT4gJ2lkX3Rva2VuIHRva2VuJywKKyAgICAgICAgICAgICdyZWRpcmVjdF91cmknICA9PiAnaHR0cDovL2Fkb2JlLmNvbScsCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywKKyAgICAgICAgICAgICdzY29wZScgICAgICAgICA9PiAnb3BlbmlkJywKKyAgICAgICAgICAgICdzdGF0ZScgICAgICAgICA9PiAndGVzdCcsCisgICAgICAgICAgICAnbm9uY2UnICAgICAgICAgPT4gJ3Rlc3QnLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJGxvY2F0aW9uID0gJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90Q29udGFpbnMoJ2Vycm9yJywgJGxvY2F0aW9uKTsKKworICAgICAgICAkcGFydHMgPSBwYXJzZV91cmwoJGxvY2F0aW9uKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdmcmFnbWVudCcsICRwYXJ0cyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcGFydHNbJ3F1ZXJ5J10pKTsKKworICAgICAgICAvLyBhc3NlcnQgZnJhZ21lbnQgaXMgaW4gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgZm9ybWF0CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ2ZyYWdtZW50J10sICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkcGFyYW1zKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpZF90b2tlbicsICRwYXJhbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICRwYXJhbXMpOworCisgICAgICAgIC8vIHZhbGlkYXRlIElEIFRva2VuCisgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoJy4nLCAkcGFyYW1zWydpZF90b2tlbiddKTsKKyAgICAgICAgZm9yZWFjaCAoJHBhcnRzIGFzICYkcGFydCkgeworICAgICAgICAgICAgLy8gRWFjaCBwYXJ0IGlzIGEgYmFzZTY0dXJsIGVuY29kZWQganNvbiBzdHJpbmcuCisgICAgICAgICAgICAkcGFydCA9IHN0cl9yZXBsYWNlKGFycmF5KCctJywgJ18nKSwgYXJyYXkoJysnLCAnLycpLCAkcGFydCk7CisgICAgICAgICAgICAkcGFydCA9IGJhc2U2NF9kZWNvZGUoJHBhcnQpOworICAgICAgICAgICAgJHBhcnQgPSBqc29uX2RlY29kZSgkcGFydCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgbGlzdCgkaGVhZGVyLCAkY2xhaW1zLCAkc2lnbmF0dXJlKSA9ICRwYXJ0czsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lzcycsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3N1YicsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2F1ZCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lhdCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cCcsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2F1dGhfdGltZScsICRjbGFpbXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ25vbmNlJywgJGNsYWltcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYXRfaGFzaCcsICRjbGFpbXMpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsYWltc1snaXNzJ10sICd0ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsYWltc1snYXVkJ10sICdUZXN0IENsaWVudCBJRCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGFpbXNbJ25vbmNlJ10sICd0ZXN0Jyk7CisgICAgICAgICRkdXJhdGlvbiA9ICRjbGFpbXNbJ2V4cCddIC0gJGNsYWltc1snaWF0J107CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGR1cmF0aW9uLCAzNjAwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkY29uZmlnICs9IGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICd0ZXN0JywKKyAgICAgICAgICAgICdpZF9saWZldGltZScgPT4gMzYwMCwKKyAgICAgICAgKTsKKworICAgICAgICAkbWVtb3J5U3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkcmVzcG9uc2VUeXBlcyA9IGFycmF5KAorICAgICAgICAgICAgJ3Rva2VuJyAgICAgPT4gJHRva2VuICAgPSBuZXcgQWNjZXNzVG9rZW4oJG1lbW9yeVN0b3JhZ2UsICRtZW1vcnlTdG9yYWdlKSwKKyAgICAgICAgICAgICdpZF90b2tlbicgID0+ICRpZFRva2VuID0gbmV3IElkVG9rZW4oJG1lbW9yeVN0b3JhZ2UsICRtZW1vcnlTdG9yYWdlLCAkY29uZmlnKSwKKyAgICAgICAgICAgICdpZF90b2tlbiB0b2tlbicgPT4gbmV3IElkVG9rZW5Ub2tlbigkdG9rZW4sICRpZFRva2VuKSwKKyAgICAgICAgKTsKKworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkbWVtb3J5U3RvcmFnZSwgJGNvbmZpZywgYXJyYXkoKSwgJHJlc3BvbnNlVHlwZXMpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IENsaWVudENyZWRlbnRpYWxzKCRtZW1vcnlTdG9yYWdlKSk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9TdG9yYWdlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1N0b3JhZ2UvQXV0aG9yaXphdGlvbkNvZGVUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGZiMDg1Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL09wZW5JRC9TdG9yYWdlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAKQEAgLTAsMCArMSw5NSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxPcGVuSURcU3RvcmFnZTsKKwordXNlIE9BdXRoMlxTdG9yYWdlXEJhc2VUZXN0OwordXNlIE9BdXRoMlxTdG9yYWdlXE51bGxTdG9yYWdlOworCitjbGFzcyBBdXRob3JpemF0aW9uQ29kZVRlc3QgZXh0ZW5kcyBCYXNlVGVzdAoreworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDcmVhdGVBdXRob3JpemF0aW9uQ29kZSgkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkc3RvcmFnZSBpbnN0YW5jZW9mIEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBhc3NlcnQgY29kZSB3ZSBhcmUgYWJvdXQgdG8gYWRkIGRvZXMgbm90IGV4aXN0CisgICAgICAgICRjb2RlID0gJHN0b3JhZ2UtPmdldEF1dGhvcml6YXRpb25Db2RlKCduZXctb3BlbmlkLWNvZGUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRjb2RlKTsKKworICAgICAgICAvLyBhZGQgbmV3IGNvZGUKKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAyMDsKKyAgICAgICAgJHNjb3BlID0gbnVsbDsKKyAgICAgICAgJGlkX3Rva2VuID0gJ2Zha2VfaWRfdG9rZW4nOworICAgICAgICAkc3VjY2VzcyA9ICRzdG9yYWdlLT5zZXRBdXRob3JpemF0aW9uQ29kZSgnbmV3LW9wZW5pZC1jb2RlJywgJ2NsaWVudCBJRCcsICdTT01FVVNFUklEJywgJ2h0dHA6Ly9leGFtcGxlLmNvbScsICRleHBpcmVzLCAkc2NvcGUsICRpZF90b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAkY29kZSA9ICRzdG9yYWdlLT5nZXRBdXRob3JpemF0aW9uQ29kZSgnbmV3LW9wZW5pZC1jb2RlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdXRob3JpemF0aW9uX2NvZGUnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnY2xpZW50X2lkJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3VzZXJfaWQnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgncmVkaXJlY3RfdXJpJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cGlyZXMnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2F1dGhvcml6YXRpb25fY29kZSddLCAnbmV3LW9wZW5pZC1jb2RlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2NsaWVudF9pZCddLCAnY2xpZW50IElEJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ3VzZXJfaWQnXSwgJ1NPTUVVU0VSSUQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsncmVkaXJlY3RfdXJpJ10sICdodHRwOi8vZXhhbXBsZS5jb20nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsnZXhwaXJlcyddLCAkZXhwaXJlcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2lkX3Rva2VuJ10sICRpZF90b2tlbik7CisKKyAgICAgICAgLy8gY2hhbmdlIGV4aXN0aW5nIGNvZGUKKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyA0MjsKKyAgICAgICAgJG5ld19pZF90b2tlbiA9ICdmYWtlX2lkX3Rva2VuLTInOworICAgICAgICAkc3VjY2VzcyA9ICRzdG9yYWdlLT5zZXRBdXRob3JpemF0aW9uQ29kZSgnbmV3LW9wZW5pZC1jb2RlJywgJ2NsaWVudCBJRDInLCAnU09NRU9USEVSSUQnLCAnaHR0cDovL2V4YW1wbGUub3JnJywgJGV4cGlyZXMsICRzY29wZSwgJG5ld19pZF90b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAkY29kZSA9ICRzdG9yYWdlLT5nZXRBdXRob3JpemF0aW9uQ29kZSgnbmV3LW9wZW5pZC1jb2RlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdXRob3JpemF0aW9uX2NvZGUnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnY2xpZW50X2lkJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3VzZXJfaWQnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgncmVkaXJlY3RfdXJpJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cGlyZXMnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2F1dGhvcml6YXRpb25fY29kZSddLCAnbmV3LW9wZW5pZC1jb2RlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2NsaWVudF9pZCddLCAnY2xpZW50IElEMicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb2RlWyd1c2VyX2lkJ10sICdTT01FT1RIRVJJRCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb2RlWydyZWRpcmVjdF91cmknXSwgJ2h0dHA6Ly9leGFtcGxlLm9yZycpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb2RlWydleHBpcmVzJ10sICRleHBpcmVzKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsnaWRfdG9rZW4nXSwgJG5ld19pZF90b2tlbik7CisgICAgfQorCisgICAgICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZW1vdmVJZFRva2VuRnJvbUF1dGhvcml6YXRpb25Db2RlKCRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgLy8gYWRkIG5ldyBjb2RlCisgICAgICAgICRleHBpcmVzID0gdGltZSgpICsgMjA7CisgICAgICAgICRzY29wZSA9IG51bGw7CisgICAgICAgICRpZF90b2tlbiA9ICdmYWtlX2lkX3Rva2VuX3RvX3JlbW92ZSc7CisgICAgICAgICRhdXRoY29kZSA9ICduZXctb3BlbmlkLWNvZGUtJy5yYW5kKCk7CisgICAgICAgICRzdWNjZXNzID0gJHN0b3JhZ2UtPnNldEF1dGhvcml6YXRpb25Db2RlKCRhdXRoY29kZSwgJ2NsaWVudCBJRCcsICdTT01FVVNFUklEJywgJ2h0dHA6Ly9leGFtcGxlLmNvbScsICRleHBpcmVzLCAkc2NvcGUsICRpZF90b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAvLyB2ZXJpZnkgcGFyYW1zIHdlcmUgc2V0CisgICAgICAgICRjb2RlID0gJHN0b3JhZ2UtPmdldEF1dGhvcml6YXRpb25Db2RlKCRhdXRoY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdpZF90b2tlbicsICRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsnaWRfdG9rZW4nXSwgJGlkX3Rva2VuKTsKKworICAgICAgICAvLyByZW1vdmUgdGhlIGlkX3Rva2VuCisgICAgICAgICRzdWNjZXNzID0gJHN0b3JhZ2UtPnNldEF1dGhvcml6YXRpb25Db2RlKCRhdXRoY29kZSwgJ2NsaWVudCBJRCcsICdTT01FVVNFUklEJywgJ2h0dHA6Ly9leGFtcGxlLmNvbScsICRleHBpcmVzLCAkc2NvcGUsIG51bGwpOworCisgICAgICAgIC8vIHZlcmlmeSB0aGUgImlkX3Rva2VuIiBpcyBub3cgbnVsbAorICAgICAgICAkY29kZSA9ICRzdG9yYWdlLT5nZXRBdXRob3JpemF0aW9uQ29kZSgkYXV0aGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaWRfdG9rZW4nLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2lkX3Rva2VuJ10sIG51bGwpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9PcGVuSUQvU3RvcmFnZS9Vc2VyQ2xhaW1zVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1N0b3JhZ2UvVXNlckNsYWltc1Rlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MGY2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvT3BlbklEL1N0b3JhZ2UvVXNlckNsYWltc1Rlc3QucGhwCkBAIC0wLDAgKzEsNDEgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcT3BlbklEXFN0b3JhZ2U7CisKK3VzZSBPQXV0aDJcU3RvcmFnZVxCYXNlVGVzdDsKK3VzZSBPQXV0aDJcU3RvcmFnZVxOdWxsU3RvcmFnZTsKKworY2xhc3MgVXNlckNsYWltc1Rlc3QgZXh0ZW5kcyBCYXNlVGVzdAoreworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRVc2VyQ2xhaW1zKCRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRzdG9yYWdlIGluc3RhbmNlb2YgVXNlckNsYWltc0ludGVyZmFjZSkgeworICAgICAgICAgICAgLy8gaW5jb21wYXRpYmxlIHN0b3JhZ2UKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGludmFsaWQgdXNlcgorICAgICAgICAkY2xhaW1zID0gJHN0b3JhZ2UtPmdldFVzZXJDbGFpbXMoJ2Zha2UtdXNlcicsICcnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRjbGFpbXMpOworCisgICAgICAgIC8vIHZhbGlkIHVzZXIgKG5vIHNjb3BlKQorICAgICAgICAkY2xhaW1zID0gJHN0b3JhZ2UtPmdldFVzZXJDbGFpbXMoJ3Rlc3R1c2VyJywgJycpOworCisgICAgICAgIC8qIGFzc2VydCB0aGUgZGVjb2RlZCB0b2tlbiBpcyB0aGUgc2FtZSAqLworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoaXNzZXQoJGNsYWltc1snZW1haWwnXSkpOworCisgICAgICAgIC8vIHZhbGlkIHVzZXIKKyAgICAgICAgJGNsYWltcyA9ICRzdG9yYWdlLT5nZXRVc2VyQ2xhaW1zKCd0ZXN0dXNlcicsICdlbWFpbCcpOworCisgICAgICAgIC8qIGFzc2VydCB0aGUgZGVjb2RlZCB0b2tlbiBpcyB0aGUgc2FtZSAqLworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGFpbXNbJ2VtYWlsJ10sICJ0ZXN0dXNlckB0ZXN0LmNvbSIpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGFpbXNbJ2VtYWlsX3ZlcmlmaWVkJ10sIHRydWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9SZXF1ZXN0VGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVxdWVzdFRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MGNkODkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVxdWVzdFRlc3QucGhwCkBAIC0wLDAgKzEsMTE3IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyOworCit1c2UgT0F1dGgyXFJlcXVlc3RcVGVzdFJlcXVlc3Q7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIE9BdXRoMlxHcmFudFR5cGVcQXV0aG9yaXphdGlvbkNvZGU7Cit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIFJlcXVlc3RUZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFJlcXVlc3RPdmVycmlkZSgpCisgICAgeworICAgICAgICAkcmVxdWVzdCA9IG5ldyBUZXN0UmVxdWVzdCgpOworICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKworICAgICAgICAvLyBTbW9rZSB0ZXN0IGZvciBvdmVycmlkZSByZXF1ZXN0IGNsYXNzCisgICAgICAgIC8vICRzZXJ2ZXItPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAvLyAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignUmVzcG9uc2UnLCAkcmVzcG9uc2UpOworICAgICAgICAvLyAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisgICAgICAgIC8vICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdSZXNwb25zZScsICRyZXNwb25zZSk7CisgICAgICAgIC8vICRyZXNwb25zZSA9ICRzZXJ2ZXItPnZlcmlmeVJlc291cmNlUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAvLyAkdGhpcy0+YXNzZXJ0VHJ1ZShpc19ib29sKCRyZXNwb25zZSkpOworCisgICAgICAgIC8qKiogbWFrZSBzb21lIHZhbGlkIHJlcXVlc3RzICoqKi8KKworICAgICAgICAvLyBWYWxpZCBUb2tlbiBSZXF1ZXN0CisgICAgICAgICRyZXF1ZXN0LT5zZXRQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnID0+ICdhdXRob3JpemF0aW9uX2NvZGUnLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgID0+ICdUZXN0IENsaWVudCBJRCcsCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLAorICAgICAgICAgICAgJ2NvZGUnID0+ICd0ZXN0Y29kZScsCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMjAwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TlVsbCgkcmVzcG9uc2UtPmdldFBhcmFtZXRlcignYWNjZXNzX3Rva2VuJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SGVhZGVyc1JldHVybnNWYWx1ZUJ5S2V5KCkKKyAgICB7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoKSwKKyAgICAgICAgICAgIGFycmF5KCksCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoKSwKKyAgICAgICAgICAgIGFycmF5KCksCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoJ0FVVEhPUklaQVRJT04nID0+ICdCYXNpYyBzZWNyZXQnKQorICAgICAgICApOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0Jhc2ljIHNlY3JldCcsICRyZXF1ZXN0LT5oZWFkZXJzKCdBVVRIT1JJWkFUSU9OJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SGVhZGVyc1JldHVybnNEZWZhdWx0SWZIZWFkZXJOb3RQcmVzZW50KCkKKyAgICB7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdCZWFyZXInLCAkcmVxdWVzdC0+aGVhZGVycygnQVVUSE9SSVpBVElPTicsICdCZWFyZXInKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RIZWFkZXJzSXNDYXNlSW5zZW5zaXRpdmUoKQorICAgIHsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgKKyAgICAgICAgICAgIGFycmF5KCksCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoKSwKKyAgICAgICAgICAgIGFycmF5KCksCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoKSwKKyAgICAgICAgICAgIGFycmF5KCksCisgICAgICAgICAgICBhcnJheSgnQVVUSE9SSVpBVElPTicgPT4gJ0Jhc2ljIHNlY3JldCcpCisgICAgICAgICk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnQmFzaWMgc2VjcmV0JywgJHJlcXVlc3QtPmhlYWRlcnMoJ0F1dGhvcml6YXRpb24nKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZXF1ZXN0UmV0dXJuc1Bvc3RQYXJhbUlmTm9RdWVyeVBhcmFtQXZhaWxhYmxlKCkKKyAgICB7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoJ2NsaWVudF9pZCcgPT4gJ2NvcnJlY3QnKQorICAgICAgICApOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2NvcnJlY3QnLCAkcmVxdWVzdC0+cXVlcnkoJ2NsaWVudF9pZCcsICRyZXF1ZXN0LT5yZXF1ZXN0KCdjbGllbnRfaWQnKSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmVxdWVzdEhhc0hlYWRlcnNBbmRTZXJ2ZXJIZWFkZXJzKCkKKyAgICB7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IFJlcXVlc3QoCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoKSwKKyAgICAgICAgICAgIGFycmF5KCksCisgICAgICAgICAgICBhcnJheSgpLAorICAgICAgICAgICAgYXJyYXkoKSwKKyAgICAgICAgICAgIGFycmF5KCdDT05URU5UX1RZUEUnID0+ICd0ZXh0L3htbCcsICdQSFBfQVVUSF9VU0VSJyA9PiAnY2xpZW50X2lkJywgJ1BIUF9BVVRIX1BXJyA9PiAnY2xpZW50X3Bhc3MnKSwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBhcnJheSgnQ09OVEVOVF9UWVBFJyA9PiAnYXBwbGljYXRpb24vanNvbicpCisgICAgICAgICk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJ2NsaWVudF9pZCcsICRyZXF1ZXN0LT5oZWFkZXJzKCdQSFBfQVVUSF9VU0VSJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnY2xpZW50X3Bhc3MnLCAkcmVxdWVzdC0+aGVhZGVycygnUEhQX0FVVEhfUFcnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCdhcHBsaWNhdGlvbi9qc29uJywgJHJlcXVlc3QtPmhlYWRlcnMoJ0NPTlRFTlRfVFlQRScpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSwgJGNvbmZpZyk7CisKKyAgICAgICAgLy8gQWRkIHRoZSB0d28gdHlwZXMgc3VwcG9ydGVkIGZvciBhdXRob3JpemF0aW9uIGdyYW50CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgQXV0aG9yaXphdGlvbkNvZGUoJHN0b3JhZ2UpKTsKKworICAgICAgICByZXR1cm4gJHNlcnZlcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVzcG9uc2VUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9SZXNwb25zZVRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MmJjODgKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVzcG9uc2VUZXN0LnBocApAQCAtMCwwICsxLDM4IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyOworCit1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CisKK2NsYXNzIFJlc3BvbnNlVGVzdCBleHRlbmRzIFRlc3RDYXNlCit7CisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZW5kZXJBc1htbCgpCisgICAgeworICAgICAgICAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYXJyYXkoCisgICAgICAgICAgICAnZm9vJyA9PiAnYmFyJywKKyAgICAgICAgICAgICdoYWxsYW5kJyA9PiAnb2F0ZXMnLAorICAgICAgICApKTsKKworICAgICAgICAkc3RyaW5nID0gJHJlc3BvbnNlLT5nZXRSZXNwb25zZUJvZHkoJ3htbCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Q29udGFpbnMoJzxyZXNwb25zZT48Zm9vPmJhcjwvZm9vPjxoYWxsYW5kPm9hdGVzPC9oYWxsYW5kPjwvcmVzcG9uc2U+JywgJHN0cmluZyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRSZWRpcmVjdCgpCisgICAgeworICAgICAgICAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKTsKKyAgICAgICAgJHVybCA9ICdodHRwczovL2Zvby9iYXInOworICAgICAgICAkc3RhdGUgPSAnc3RhdGVwYXJhbSc7CisgICAgICAgICRyZXNwb25zZS0+c2V0UmVkaXJlY3QoMzAxLCAkdXJsLCAkc3RhdGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAorICAgICAgICAgICAgc3ByaW50ZignJXM/c3RhdGU9JXMnLCAkdXJsLCAkc3RhdGUpLAorICAgICAgICAgICAgJHJlc3BvbnNlLT5nZXRIdHRwSGVhZGVyKCdMb2NhdGlvbicpCisgICAgICAgICk7CisKKyAgICAgICAgJHF1ZXJ5ID0gJ3F1ZXJ5PWZvbyc7CisgICAgICAgICRyZXNwb25zZS0+c2V0UmVkaXJlY3QoMzAxLCAkdXJsIC4gJz8nIC4gJHF1ZXJ5LCAkc3RhdGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAorICAgICAgICAgICAgc3ByaW50ZignJXM/JXMmc3RhdGU9JXMnLCAkdXJsLCAkcXVlcnksICRzdGF0ZSksCisgICAgICAgICAgICAkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykKKyAgICAgICAgKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVzcG9uc2VUeXBlL0FjY2Vzc1Rva2VuVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVzcG9uc2VUeXBlL0FjY2Vzc1Rva2VuVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNiMDIyNQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9SZXNwb25zZVR5cGUvQWNjZXNzVG9rZW5UZXN0LnBocApAQCAtMCwwICsxLDEwOCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxSZXNwb25zZVR5cGU7CisKK3VzZSBPQXV0aDJcU2VydmVyOwordXNlIE9BdXRoMlxTdG9yYWdlXE1lbW9yeTsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgQWNjZXNzVG9rZW5UZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFJldm9rZUFjY2Vzc1Rva2VuV2l0aFR5cGVIaW50KCkKKyAgICB7CisgICAgICAgICR0b2tlblN0b3JhZ2UgPSBuZXcgTWVtb3J5KGFycmF5KAorICAgICAgICAgICAgJ2FjY2Vzc190b2tlbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICdyZXZva2UnID0+IGFycmF5KCdteXRva2VuJyksCisgICAgICAgICAgICApLAorICAgICAgICApKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKGFycmF5KCdteXRva2VuJyksICR0b2tlblN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCdyZXZva2UnKSk7CisgICAgICAgICRhY2Nlc3NUb2tlbiA9IG5ldyBBY2Nlc3NUb2tlbigkdG9rZW5TdG9yYWdlKTsKKyAgICAgICAgJGFjY2Vzc1Rva2VuLT5yZXZva2VUb2tlbigncmV2b2tlJywgJ2FjY2Vzc190b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRva2VuU3RvcmFnZS0+Z2V0QWNjZXNzVG9rZW4oJ3Jldm9rZScpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFJldm9rZUFjY2Vzc1Rva2VuV2l0aG91dFR5cGVIaW50KCkKKyAgICB7CisgICAgICAgICR0b2tlblN0b3JhZ2UgPSBuZXcgTWVtb3J5KGFycmF5KAorICAgICAgICAgICAgJ2FjY2Vzc190b2tlbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICdyZXZva2UnID0+IGFycmF5KCdteXRva2VuJyksCisgICAgICAgICAgICApLAorICAgICAgICApKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKGFycmF5KCdteXRva2VuJyksICR0b2tlblN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCdyZXZva2UnKSk7CisgICAgICAgICRhY2Nlc3NUb2tlbiA9IG5ldyBBY2Nlc3NUb2tlbigkdG9rZW5TdG9yYWdlKTsKKyAgICAgICAgJGFjY2Vzc1Rva2VuLT5yZXZva2VUb2tlbigncmV2b2tlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkdG9rZW5TdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbigncmV2b2tlJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmV2b2tlUmVmcmVzaFRva2VuV2l0aFR5cGVIaW50KCkKKyAgICB7CisgICAgICAgICR0b2tlblN0b3JhZ2UgPSBuZXcgTWVtb3J5KGFycmF5KAorICAgICAgICAgICAgJ3JlZnJlc2hfdG9rZW5zJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAncmV2b2tlJyA9PiBhcnJheSgnbXl0b2tlbicpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhhcnJheSgnbXl0b2tlbicpLCAkdG9rZW5TdG9yYWdlLT5nZXRSZWZyZXNoVG9rZW4oJ3Jldm9rZScpKTsKKyAgICAgICAgJGFjY2Vzc1Rva2VuID0gbmV3IEFjY2Vzc1Rva2VuKG5ldyBNZW1vcnksICR0b2tlblN0b3JhZ2UpOworICAgICAgICAkYWNjZXNzVG9rZW4tPnJldm9rZVRva2VuKCdyZXZva2UnLCAncmVmcmVzaF90b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRva2VuU3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCdyZXZva2UnKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZXZva2VSZWZyZXNoVG9rZW5XaXRob3V0VHlwZUhpbnQoKQorICAgIHsKKyAgICAgICAgJHRva2VuU3RvcmFnZSA9IG5ldyBNZW1vcnkoYXJyYXkoCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgICdyZXZva2UnID0+IGFycmF5KCdteXRva2VuJyksCisgICAgICAgICAgICApLAorICAgICAgICApKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKGFycmF5KCdteXRva2VuJyksICR0b2tlblN0b3JhZ2UtPmdldFJlZnJlc2hUb2tlbigncmV2b2tlJykpOworICAgICAgICAkYWNjZXNzVG9rZW4gPSBuZXcgQWNjZXNzVG9rZW4obmV3IE1lbW9yeSwgJHRva2VuU3RvcmFnZSk7CisgICAgICAgICRhY2Nlc3NUb2tlbi0+cmV2b2tlVG9rZW4oJ3Jldm9rZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRva2VuU3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCdyZXZva2UnKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZXZva2VBY2Nlc3NUb2tlbldpdGhSZWZyZXNoVG9rZW5UeXBlSGludCgpCisgICAgeworICAgICAgICAkdG9rZW5TdG9yYWdlID0gbmV3IE1lbW9yeShhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW5zJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAncmV2b2tlJyA9PiBhcnJheSgnbXl0b2tlbicpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhhcnJheSgnbXl0b2tlbicpLCAkdG9rZW5TdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbigncmV2b2tlJykpOworICAgICAgICAkYWNjZXNzVG9rZW4gPSBuZXcgQWNjZXNzVG9rZW4oJHRva2VuU3RvcmFnZSk7CisgICAgICAgICRhY2Nlc3NUb2tlbi0+cmV2b2tlVG9rZW4oJ3Jldm9rZScsICdyZWZyZXNoX3Rva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkdG9rZW5TdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbigncmV2b2tlJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmV2b2tlQWNjZXNzVG9rZW5XaXRoQm9ndXNUeXBlSGludCgpCisgICAgeworICAgICAgICAkdG9rZW5TdG9yYWdlID0gbmV3IE1lbW9yeShhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW5zJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAncmV2b2tlJyA9PiBhcnJheSgnbXl0b2tlbicpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhhcnJheSgnbXl0b2tlbicpLCAkdG9rZW5TdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbigncmV2b2tlJykpOworICAgICAgICAkYWNjZXNzVG9rZW4gPSBuZXcgQWNjZXNzVG9rZW4oJHRva2VuU3RvcmFnZSk7CisgICAgICAgICRhY2Nlc3NUb2tlbi0+cmV2b2tlVG9rZW4oJ3Jldm9rZScsICdmb28nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCR0b2tlblN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCdyZXZva2UnKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RSZXZva2VSZWZyZXNoVG9rZW5XaXRoQm9ndXNUeXBlSGludCgpCisgICAgeworICAgICAgICAkdG9rZW5TdG9yYWdlID0gbmV3IE1lbW9yeShhcnJheSgKKyAgICAgICAgICAgICdyZWZyZXNoX3Rva2VucycgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ3Jldm9rZScgPT4gYXJyYXkoJ215dG9rZW4nKSwKKyAgICAgICAgICAgICksCisgICAgICAgICkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoYXJyYXkoJ215dG9rZW4nKSwgJHRva2VuU3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCdyZXZva2UnKSk7CisgICAgICAgICRhY2Nlc3NUb2tlbiA9IG5ldyBBY2Nlc3NUb2tlbihuZXcgTWVtb3J5LCAkdG9rZW5TdG9yYWdlKTsKKyAgICAgICAgJGFjY2Vzc1Rva2VuLT5yZXZva2VUb2tlbigncmV2b2tlJywgJ2ZvbycpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRva2VuU3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCdyZXZva2UnKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1Jlc3BvbnNlVHlwZS9Kd3RBY2Nlc3NUb2tlblRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1Jlc3BvbnNlVHlwZS9Kd3RBY2Nlc3NUb2tlblRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxOTVkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvUmVzcG9uc2VUeXBlL0p3dEFjY2Vzc1Rva2VuVGVzdC5waHAKQEAgLTAsMCArMSwxNzggQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcUmVzcG9uc2VUeXBlOworCit1c2UgT0F1dGgyXFNlcnZlcjsKK3VzZSBPQXV0aDJcUmVzcG9uc2U7Cit1c2UgT0F1dGgyXFJlcXVlc3RcVGVzdFJlcXVlc3Q7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIE9BdXRoMlxTdG9yYWdlXEp3dEFjY2Vzc1Rva2VuIGFzIEp3dEFjY2Vzc1Rva2VuU3RvcmFnZTsKK3VzZSBPQXV0aDJcR3JhbnRUeXBlXENsaWVudENyZWRlbnRpYWxzOwordXNlIE9BdXRoMlxHcmFudFR5cGVcVXNlckNyZWRlbnRpYWxzOwordXNlIE9BdXRoMlxHcmFudFR5cGVcUmVmcmVzaFRva2VuOwordXNlIE9BdXRoMlxFbmNyeXB0aW9uXEp3dDsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgSnd0QWNjZXNzVG9rZW5UZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZUFjY2Vzc1Rva2VuKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkand0UmVzcG9uc2VUeXBlID0gJHNlcnZlci0+Z2V0UmVzcG9uc2VUeXBlKCd0b2tlbicpOworCisgICAgICAgICRhY2Nlc3NUb2tlbiA9ICRqd3RSZXNwb25zZVR5cGUtPmNyZWF0ZUFjY2Vzc1Rva2VuKCdUZXN0IENsaWVudCBJRCcsIDEyMywgJ3Rlc3QnLCBmYWxzZSk7CisgICAgICAgICRqd3QgPSBuZXcgSnd0OworICAgICAgICAkZGVjb2RlZEFjY2Vzc1Rva2VuID0gJGp3dC0+ZGVjb2RlKCRhY2Nlc3NUb2tlblsnYWNjZXNzX3Rva2VuJ10sIG51bGwsIGZhbHNlKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2lkJywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnanRpJywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaXNzJywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYXVkJywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnZXhwJywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnaWF0JywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgndG9rZW5fdHlwZScsICRkZWNvZGVkQWNjZXNzVG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3Njb3BlJywgJGRlY29kZWRBY2Nlc3NUb2tlbik7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20nLCAkZGVjb2RlZEFjY2Vzc1Rva2VuWydpc3MnXSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ1Rlc3QgQ2xpZW50IElEJywgJGRlY29kZWRBY2Nlc3NUb2tlblsnYXVkJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDEyMywgJGRlY29kZWRBY2Nlc3NUb2tlblsnc3ViJ10pOworICAgICAgICAkZGVsdGEgPSAkZGVjb2RlZEFjY2Vzc1Rva2VuWydleHAnXSAtICRkZWNvZGVkQWNjZXNzVG9rZW5bJ2lhdCddOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDM2MDAsICRkZWx0YSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGRlY29kZWRBY2Nlc3NUb2tlblsnaWQnXSwgJGRlY29kZWRBY2Nlc3NUb2tlblsnanRpJ10pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEV4dHJhUGF5bG9hZENhbGxiYWNrKCkKKyAgICB7CisgICAgICAgICRqd3Rjb25maWcgPSBhcnJheSgnand0X2V4dHJhX3BheWxvYWRfY2FsbGFibGUnID0+IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIGFycmF5KCdjdXN0b21fcGFyYW0nID0+ICdjdXN0b21fdmFsdWUnKTsKKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoJGp3dGNvbmZpZyk7CisgICAgICAgICRqd3RSZXNwb25zZVR5cGUgPSAkc2VydmVyLT5nZXRSZXNwb25zZVR5cGUoJ3Rva2VuJyk7CisgICAgICAgIAorICAgICAgICAkYWNjZXNzVG9rZW4gPSAkand0UmVzcG9uc2VUeXBlLT5jcmVhdGVBY2Nlc3NUb2tlbignVGVzdCBDbGllbnQgSUQnLCAxMjMsICd0ZXN0JywgZmFsc2UpOworICAgICAgICAkand0ID0gbmV3IEp3dDsKKyAgICAgICAgJGRlY29kZWRBY2Nlc3NUb2tlbiA9ICRqd3QtPmRlY29kZSgkYWNjZXNzVG9rZW5bJ2FjY2Vzc190b2tlbiddLCBudWxsLCBmYWxzZSk7CisgICAgICAgIAorICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2N1c3RvbV9wYXJhbScsICRkZWNvZGVkQWNjZXNzVG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdjdXN0b21fdmFsdWUnLCAkZGVjb2RlZEFjY2Vzc1Rva2VuWydjdXN0b21fcGFyYW0nXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHcmFudEp3dEFjY2Vzc1Rva2VuKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsICAgICAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsICAgICAgICAgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2FjY2Vzc190b2tlbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygyLCBzdWJzdHJfY291bnQoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2FjY2Vzc190b2tlbicpLCAnLicpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEFjY2Vzc1Jlc291cmNlV2l0aEp3dEFjY2Vzc1Rva2VuKCkKKyAgICB7CisgICAgICAgIC8vIGFkZCB0aGUgdGVzdCBwYXJhbWV0ZXJzIGluIG1lbW9yeQorICAgICAgICAkc2VydmVyID0gJHRoaXMtPmdldFRlc3RTZXJ2ZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAnY2xpZW50X2NyZWRlbnRpYWxzJywgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsICAgICAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsICAgICAgICAgLy8gdmFsaWQgY2xpZW50IHNlY3JldAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlVG9rZW5SZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRKd3RBY2Nlc3NUb2tlbiA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdhY2Nlc3NfdG9rZW4nKSk7CisKKyAgICAgICAgLy8gbWFrZSBhIGNhbGwgdG8gdGhlIHJlc291cmNlIHNlcnZlciB1c2luZyB0aGUgY3J5cHRvIHRva2VuCisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyA9PiAkSnd0QWNjZXNzVG9rZW4sCisgICAgICAgICkpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzZXJ2ZXItPnZlcmlmeVJlc291cmNlUmVxdWVzdCgkcmVxdWVzdCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWNjZXNzUmVzb3VyY2VXaXRoSnd0QWNjZXNzVG9rZW5Vc2luZ1NlY29uZGFyeVN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgLy8gYWRkIHRoZSB0ZXN0IHBhcmFtZXRlcnMgaW4gbWVtb3J5CisgICAgICAgICRzZXJ2ZXIgPSAkdGhpcy0+Z2V0VGVzdFNlcnZlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdjbGllbnRfY3JlZGVudGlhbHMnLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgICAgIC8vIHZhbGlkIGNsaWVudCBpZAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICdUZXN0U2VjcmV0JywgICAgICAgICAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJEp3dEFjY2Vzc1Rva2VuID0gJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2FjY2Vzc190b2tlbicpKTsKKworICAgICAgICAvLyBtYWtlIGEgY2FsbCB0byB0aGUgcmVzb3VyY2Ugc2VydmVyIHVzaW5nIHRoZSBjcnlwdG8gdG9rZW4KKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICRKd3RBY2Nlc3NUb2tlbiwKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gY3JlYXRlIGEgcmVzb3VyY2Ugc2VydmVyIHdpdGggdGhlICJtZW1vcnkiIHN0b3JhZ2UgZnJvbSB0aGUgZ3JhbnQgc2VydmVyCisgICAgICAgICRyZXNvdXJjZVNlcnZlciA9IG5ldyBTZXJ2ZXIoJHNlcnZlci0+Z2V0U3RvcmFnZSgnY2xpZW50X2NyZWRlbnRpYWxzJykpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRyZXNvdXJjZVNlcnZlci0+dmVyaWZ5UmVzb3VyY2VSZXF1ZXN0KCRyZXF1ZXN0KSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RKd3RBY2Nlc3NUb2tlbldpdGhSZWZyZXNoVG9rZW4oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9ICR0aGlzLT5nZXRUZXN0U2VydmVyKCk7CisKKyAgICAgICAgLy8gYWRkICJVc2VyQ3JlZGVudGlhbHMiIGdyYW50IHR5cGUgYW5kICJKd3RBY2Nlc3NUb2tlbiIgcmVzcG9uc2UgdHlwZQorICAgICAgICAvLyBhbmQgZW5zdXJlICJKd3RBY2Nlc3NUb2tlbiIgcmVzcG9uc2UgdHlwZSBoYXMgIlJlZnJlc2hUb2tlbiIgc3RvcmFnZQorICAgICAgICAkbWVtb3J5U3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IFVzZXJDcmVkZW50aWFscygkbWVtb3J5U3RvcmFnZSkpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IFJlZnJlc2hUb2tlbigkbWVtb3J5U3RvcmFnZSkpOworICAgICAgICAkc2VydmVyLT5hZGRSZXNwb25zZVR5cGUobmV3IEp3dEFjY2Vzc1Rva2VuKCRtZW1vcnlTdG9yYWdlLCAkbWVtb3J5U3RvcmFnZSwgJG1lbW9yeVN0b3JhZ2UpLCAndG9rZW4nKTsKKworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2dyYW50X3R5cGUnICAgID0+ICdwYXNzd29yZCcsICAgICAgICAgLy8gdmFsaWQgZ3JhbnQgdHlwZQorICAgICAgICAgICAgJ2NsaWVudF9pZCcgICAgID0+ICdUZXN0IENsaWVudCBJRCcsICAgLy8gdmFsaWQgY2xpZW50IGlkCisgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gJ1Rlc3RTZWNyZXQnLCAgICAgICAvLyB2YWxpZCBjbGllbnQgc2VjcmV0CisgICAgICAgICAgICAndXNlcm5hbWUnICAgICAgPT4gJ3Rlc3QtdXNlcm5hbWUnLCAgICAvLyB2YWxpZCB1c2VybmFtZQorICAgICAgICAgICAgJ3Bhc3N3b3JkJyAgICAgID0+ICd0ZXN0cGFzcycsICAgICAgICAgLy8gdmFsaWQgcGFzc3dvcmQKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gbWFrZSB0aGUgY2FsbCB0byBncmFudCBhIGNyeXB0byB0b2tlbgorICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJEp3dEFjY2Vzc1Rva2VuID0gJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2FjY2Vzc190b2tlbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlZnJlc2hUb2tlbiA9ICRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdyZWZyZXNoX3Rva2VuJykpOworCisgICAgICAgIC8vIGRlY29kZSB0b2tlbiBhbmQgbWFrZSBzdXJlIHJlZnJlc2hfdG9rZW4gaXNuJ3Qgc2V0CisgICAgICAgIGxpc3QoJGhlYWRlciwgJHBheWxvYWQsICRzaWduYXR1cmUpID0gZXhwbG9kZSgnLicsICRKd3RBY2Nlc3NUb2tlbik7CisgICAgICAgICRkZWNvZGVkVG9rZW4gPSBqc29uX2RlY29kZShiYXNlNjRfZGVjb2RlKCRwYXlsb2FkKSwgdHJ1ZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShhcnJheV9rZXlfZXhpc3RzKCdyZWZyZXNoX3Rva2VuJywgJGRlY29kZWRUb2tlbikpOworCisgICAgICAgIC8vIHVzZSB0aGUgcmVmcmVzaCB0b2tlbiB0byBnZXQgYW5vdGhlciBhY2Nlc3MgdG9rZW4KKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyAgICA9PiAncmVmcmVzaF90b2tlbicsCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgICAgPT4gJ1Rlc3QgQ2xpZW50IElEJywgICAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsICAgICAgIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdyZWZyZXNoX3Rva2VuJyA9PiAkcmVmcmVzaFRva2VuLAorICAgICAgICApKTsKKworICAgICAgICAkc2VydmVyLT5oYW5kbGVUb2tlblJlcXVlc3QoJHJlcXVlc3QsICRyZXNwb25zZSA9IG5ldyBSZXNwb25zZSgpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2FjY2Vzc190b2tlbicpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RTZXJ2ZXIoJGp3dGNvbmZpZyA9IGFycmF5KCkpCisgICAgeworICAgICAgICAkbWVtb3J5U3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworCisgICAgICAgICRzdG9yYWdlID0gYXJyYXkoCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyA9PiBuZXcgSnd0QWNjZXNzVG9rZW5TdG9yYWdlKCRtZW1vcnlTdG9yYWdlKSwKKyAgICAgICAgICAgICdjbGllbnQnID0+ICRtZW1vcnlTdG9yYWdlLAorICAgICAgICAgICAgJ2NsaWVudF9jcmVkZW50aWFscycgPT4gJG1lbW9yeVN0b3JhZ2UsCisgICAgICAgICk7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCRzdG9yYWdlKTsKKyAgICAgICAgJHNlcnZlci0+YWRkR3JhbnRUeXBlKG5ldyBDbGllbnRDcmVkZW50aWFscygkbWVtb3J5U3RvcmFnZSkpOworCisgICAgICAgIC8vIG1ha2UgdGhlICJ0b2tlbiIgcmVzcG9uc2UgdHlwZSBhIEp3dEFjY2Vzc1Rva2VuCisgICAgICAgICRjb25maWcgPSBhcnJheV9tZXJnZShhcnJheSgnaXNzdWVyJyA9PiAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20nKSwgJGp3dGNvbmZpZyk7CisgICAgICAgICRzZXJ2ZXItPmFkZFJlc3BvbnNlVHlwZShuZXcgSnd0QWNjZXNzVG9rZW4oJG1lbW9yeVN0b3JhZ2UsICRtZW1vcnlTdG9yYWdlLCBudWxsLCAkY29uZmlnKSk7CisKKyAgICAgICAgcmV0dXJuICRzZXJ2ZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1Njb3BlVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU2NvcGVUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjUxYmUxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1Njb3BlVGVzdC5waHAKQEAgLTAsMCArMSw0MyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMjsKKwordXNlIE9BdXRoMlxTdG9yYWdlXE1lbW9yeTsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgU2NvcGVUZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENoZWNrU2NvcGUoKQorICAgIHsKKyAgICAgICAgJHNjb3BlVXRpbCA9IG5ldyBTY29wZSgpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkc2NvcGVVdGlsLT5jaGVja1Njb3BlKCdpbnZhbGlkJywgJ2xpc3Qgb2Ygc2NvcGVzJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc2NvcGVVdGlsLT5jaGVja1Njb3BlKCd2YWxpZCcsICd2YWxpZCBhbmQtc29tZSBvdGhlci1zY29wZXMnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzY29wZVV0aWwtPmNoZWNrU2NvcGUoJ3ZhbGlkIGFub3RoZXItdmFsaWQnLCAndmFsaWQgYW5vdGhlci12YWxpZCBhbmQtc29tZSBvdGhlci1zY29wZXMnKSk7CisgICAgICAgIC8vIGFsbCBzY29wZXMgbXVzdCBtYXRjaAorICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHNjb3BlVXRpbC0+Y2hlY2tTY29wZSgndmFsaWQgaW52YWxpZCcsICd2YWxpZCBhbmQtc29tZSBvdGhlci1zY29wZXMnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkc2NvcGVVdGlsLT5jaGVja1Njb3BlKCd2YWxpZCB2YWxpZDIgaW52YWxpZCcsICd2YWxpZCB2YWxpZDIgYW5kLXNvbWUgb3RoZXItc2NvcGVzJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2NvcGVTdG9yYWdlKCkKKyAgICB7CisgICAgICAgICRzY29wZVV0aWwgPSBuZXcgU2NvcGUoKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkc2NvcGVVdGlsLT5nZXREZWZhdWx0U2NvcGUoKSwgbnVsbCk7CisKKyAgICAgICAgJHNjb3BlVXRpbCA9IG5ldyBTY29wZShhcnJheSgKKyAgICAgICAgICAgICdkZWZhdWx0X3Njb3BlJyA9PiAnZGVmYXVsdCcsCisgICAgICAgICAgICAnc3VwcG9ydGVkX3Njb3BlcycgPT4gYXJyYXkoJ3RoaXMnLCAndGhhdCcsICdhbm90aGVyJyksCisgICAgICAgICkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRzY29wZVV0aWwtPmdldERlZmF1bHRTY29wZSgpLCAnZGVmYXVsdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc2NvcGVVdGlsLT5zY29wZUV4aXN0cygndGhpcyB0aGF0IGFub3RoZXInLCAnY2xpZW50X2lkJykpOworCisgICAgICAgICRtZW1vcnlTdG9yYWdlID0gbmV3IE1lbW9yeShhcnJheSgKKyAgICAgICAgICAgICdkZWZhdWx0X3Njb3BlJyA9PiAnYmFzZScsCisgICAgICAgICAgICAnc3VwcG9ydGVkX3Njb3BlcycgPT4gYXJyYXkoJ29ubHktdGhpcy1vbmUnKSwKKyAgICAgICAgKSk7CisgICAgICAgICRzY29wZVV0aWwgPSBuZXcgU2NvcGUoJG1lbW9yeVN0b3JhZ2UpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHNjb3BlVXRpbC0+Z2V0RGVmYXVsdFNjb3BlKCksICdiYXNlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzY29wZVV0aWwtPnNjb3BlRXhpc3RzKCdvbmx5LXRoaXMtb25lJywgJ2NsaWVudF9pZCcpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU2VydmVyVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU2VydmVyVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEwNjk2MQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TZXJ2ZXJUZXN0LnBocApAQCAtMCwwICsxLDY4NSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMjsKKwordXNlIE9BdXRoMlxSZXF1ZXN0XFRlc3RSZXF1ZXN0OwordXNlIE9BdXRoMlxSZXNwb25zZVR5cGVcQXV0aG9yaXphdGlvbkNvZGU7Cit1c2UgT0F1dGgyXFN0b3JhZ2VcQm9vdHN0cmFwOwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCitjbGFzcyBTZXJ2ZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UKK3sKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0QXV0aG9yaXplQ29udHJvbGxlcldpdGhOb0NsaWVudFN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgLy8gbXVzdCBzZXQgQ2xpZW50IFN0b3JhZ2UKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBleHBlY3RlZEV4Y2VwdGlvbiBMb2dpY0V4Y2VwdGlvbiBPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZQorICAgICAqKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldEF1dGhvcml6ZUNvbnRyb2xsZXJXaXRoTm9BY2Nlc3NUb2tlblN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgLy8gbXVzdCBzZXQgQWNjZXNzVG9rZW4gb3IgQXV0aG9yaXphdGlvbkNvZGUKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRBdXRob3JpemVDb250cm9sbGVyV2l0aENsaWVudFN0b3JhZ2VBbmRBY2Nlc3NUb2tlblJlc3BvbnNlVHlwZSgpCisgICAgeworICAgICAgICAvLyBtdXN0IHNldCBBY2Nlc3NUb2tlbiBvciBBdXRob3JpemF0aW9uQ29kZQorICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UnKSk7CisgICAgICAgICRzZXJ2ZXItPmFkZFJlc3BvbnNlVHlwZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFJlc3BvbnNlVHlwZVxBY2Nlc3NUb2tlbkludGVyZmFjZScpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0QXV0aG9yaXplQ29udHJvbGxlcldpdGhDbGllbnRTdG9yYWdlQW5kQXV0aG9yaXphdGlvbkNvZGVSZXNwb25zZVR5cGUoKQorICAgIHsKKyAgICAgICAgLy8gbXVzdCBzZXQgQWNjZXNzVG9rZW4gb3IgQXV0aG9yaXphdGlvbkNvZGUKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5hZGRSZXNwb25zZVR5cGUoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxSZXNwb25zZVR5cGVcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UnKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gYWxsb3dfaW1wbGljaXQKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRBdXRob3JpemVDb250cm9sbGVyV2l0aENsaWVudFN0b3JhZ2VBbmRBY2Nlc3NUb2tlblN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgLy8gbXVzdCBzZXQgQXV0aG9yaXphdGlvbkNvZGUgb3IgQWNjZXNzVG9rZW4gLyBpbXBsaWNpdAorICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UnKSk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlJykpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRzZXJ2ZXItPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRBdXRob3JpemVDb250cm9sbGVyV2l0aENsaWVudFN0b3JhZ2VBbmRBY2Nlc3NUb2tlblN0b3JhZ2UoKQorICAgIHsKKyAgICAgICAgLy8gbXVzdCBzZXQgQXV0aG9yaXphdGlvbkNvZGUgb3IgQWNjZXNzVG9rZW4gLyBpbXBsaWNpdAorICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgpLCBhcnJheSgnYWxsb3dfaW1wbGljaXQnID0+IHRydWUpKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZScpKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0QXV0aG9yaXplQ29udHJvbGxlcldpdGhDbGllbnRTdG9yYWdlQW5kQXV0aG9yaXphdGlvbkNvZGVTdG9yYWdlKCkKKyAgICB7CisgICAgICAgIC8vIG11c3Qgc2V0IEFjY2Vzc1Rva2VuIG9yIEF1dGhvcml6YXRpb25Db2RlCisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZScpKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UnKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gZ3JhbnRfdHlwZXMKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRUb2tlbkNvbnRyb2xsZXJXaXRoR3JhbnRUeXBlU3RvcmFnZVRocm93c0V4Y2VwdGlvbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5nZXRUb2tlbkNvbnRyb2xsZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gT0F1dGgyXFN0b3JhZ2VcQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRUb2tlbkNvbnRyb2xsZXJXaXRoTm9DbGllbnRDcmVkZW50aWFsc1N0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcVXNlckNyZWRlbnRpYWxzSW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5nZXRUb2tlbkNvbnRyb2xsZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2UKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRUb2tlbkNvbnRyb2xsZXJXaXRoTm9BY2Nlc3NUb2tlblN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UnKSk7CisgICAgICAgICRzZXJ2ZXItPmdldFRva2VuQ29udHJvbGxlcigpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0VG9rZW5Db250cm9sbGVyV2l0aEFjY2Vzc1Rva2VuQW5kQ2xpZW50Q3JlZGVudGlhbHNTdG9yYWdlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZScpKTsKKyAgICAgICAgJHNlcnZlci0+Z2V0VG9rZW5Db250cm9sbGVyKCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRUb2tlbkNvbnRyb2xsZXJBY2Nlc3NUb2tlblN0b3JhZ2VBbmRDbGllbnRDcmVkZW50aWFsc1N0b3JhZ2VBbmRHcmFudFR5cGVzKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZScpKTsKKyAgICAgICAgJHNlcnZlci0+YWRkR3JhbnRUeXBlKCR0aGlzLT5nZXRNb2NrQnVpbGRlcignT0F1dGgyXEdyYW50VHlwZVxBdXRob3JpemF0aW9uQ29kZScpLT5kaXNhYmxlT3JpZ2luYWxDb25zdHJ1Y3RvcigpLT5nZXRNb2NrKCkpOworICAgICAgICAkc2VydmVyLT5nZXRUb2tlbkNvbnRyb2xsZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2UKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRSZXNvdXJjZUNvbnRyb2xsZXJXaXRoTm9BY2Nlc3NUb2tlblN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+Z2V0UmVzb3VyY2VDb250cm9sbGVyKCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRSZXNvdXJjZUNvbnRyb2xsZXJXaXRoQWNjZXNzVG9rZW5TdG9yYWdlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5nZXRSZXNvdXJjZUNvbnRyb2xsZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIE9BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWRkaW5nU3RvcmFnZVdpdGhJbnZhbGlkQ2xhc3MoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZShuZXcgXFN0ZENsYXNzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBleHBlY3RlZEV4Y2VwdGlvbiBJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gYWNjZXNzX3Rva2VuCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWRkaW5nU3RvcmFnZVdpdGhJbnZhbGlkS2V5KCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEFjY2Vzc1Rva2VuSW50ZXJmYWNlJyksICdub25leGlzdGFudF9zdG9yYWdlJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBPQXV0aDJcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZQorICAgICAqKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEFkZGluZ1N0b3JhZ2VXaXRoSW52YWxpZEtleVN0b3JhZ2VDb21iaW5hdGlvbigpCisgICAgeworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZScpLCAnYXV0aG9yaXphdGlvbl9jb2RlJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBZGRpbmdTdG9yYWdlV2l0aFZhbGlkS2V5T25seVNldHNUaGF0S2V5KCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXE1lbW9yeScpLCAnYWNjZXNzX3Rva2VuJyk7CisKKyAgICAgICAgJHJlZmxlY3Rpb24gPSBuZXcgXFJlZmxlY3Rpb25DbGFzcygkc2VydmVyKTsKKyAgICAgICAgJHByb3AgPSAkcmVmbGVjdGlvbi0+Z2V0UHJvcGVydHkoJ3N0b3JhZ2VzJyk7CisgICAgICAgICRwcm9wLT5zZXRBY2Nlc3NpYmxlKHRydWUpOworCisgICAgICAgICRzdG9yYWdlcyA9ICRwcm9wLT5nZXRWYWx1ZSgkc2VydmVyKTsgLy8gZ2V0IHRoZSBwcml2YXRlICJzdG9yYWdlcyIgcHJvcGVydHkKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDEsIGNvdW50KCRzdG9yYWdlcykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShpc3NldCgkc3RvcmFnZXNbJ2FjY2Vzc190b2tlbiddKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkc3RvcmFnZXNbJ2F1dGhvcml6YXRpb25fY29kZSddKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBZGRpbmdDbGllbnRTdG9yYWdlU2V0c0NsaWVudENyZWRlbnRpYWxzU3RvcmFnZUJ5RGVmYXVsdCgpCisgICAgeworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkbWVtb3J5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXE1lbW9yeScpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCRtZW1vcnksICdjbGllbnQnKTsKKworICAgICAgICAkY2xpZW50X2NyZWRlbnRpYWxzID0gJHNlcnZlci0+Z2V0U3RvcmFnZSgnY2xpZW50X2NyZWRlbnRpYWxzJyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJGNsaWVudF9jcmVkZW50aWFscyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsaWVudF9jcmVkZW50aWFscywgJG1lbW9yeSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBZGRTdG9yYWdlV2l0aE51bGxWYWx1ZSgpCisgICAgeworICAgICAgICAkbWVtb3J5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXE1lbW9yeScpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkbWVtb3J5KTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZShudWxsLCAncmVmcmVzaF90b2tlbicpOworCisgICAgICAgICRjbGllbnRfY3JlZGVudGlhbHMgPSAkc2VydmVyLT5nZXRTdG9yYWdlKCdjbGllbnRfY3JlZGVudGlhbHMnKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkY2xpZW50X2NyZWRlbnRpYWxzKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY2xpZW50X2NyZWRlbnRpYWxzLCAkbWVtb3J5KTsKKworICAgICAgICAkcmVmcmVzaF90b2tlbiA9ICRzZXJ2ZXItPmdldFN0b3JhZ2UoJ3JlZnJlc2hfdG9rZW4nKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkcmVmcmVzaF90b2tlbik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROZXdTZXJ2ZXJXaXRoTnVsbFN0b3JhZ2VWYWx1ZSgpCisgICAgeworICAgICAgICAkbWVtb3J5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXE1lbW9yeScpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfY3JlZGVudGlhbHMnID0+ICRtZW1vcnksCisgICAgICAgICAgICAncmVmcmVzaF90b2tlbicgICAgICA9PiBudWxsLAorICAgICAgICApKTsKKworICAgICAgICAkY2xpZW50X2NyZWRlbnRpYWxzID0gJHNlcnZlci0+Z2V0U3RvcmFnZSgnY2xpZW50X2NyZWRlbnRpYWxzJyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJGNsaWVudF9jcmVkZW50aWFscyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNsaWVudF9jcmVkZW50aWFscywgJG1lbW9yeSk7CisKKyAgICAgICAgJHJlZnJlc2hfdG9rZW4gPSAkc2VydmVyLT5nZXRTdG9yYWdlKCdyZWZyZXNoX3Rva2VuJyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHJlZnJlc2hfdG9rZW4pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWRkaW5nQ2xpZW50Q3JlZGVudGlhbHNTdG9yYWdlU2V0c0NsaWVudFN0b3JhZ2VCeURlZmF1bHQoKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoKTsKKyAgICAgICAgJG1lbW9yeSA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxNZW1vcnknKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkbWVtb3J5LCAnY2xpZW50X2NyZWRlbnRpYWxzJyk7CisKKyAgICAgICAgJGNsaWVudCA9ICRzZXJ2ZXItPmdldFN0b3JhZ2UoJ2NsaWVudCcpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRjbGllbnQpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGllbnQsICRtZW1vcnkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0dGluZ0NsaWVudFN0b3JhZ2VCeURlZmF1bHREb2VzTm90T3ZlcnJpZGVTZXRTdG9yYWdlKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRwZG8gPSAkdGhpcy0+Z2V0TW9ja0J1aWxkZXIoJ09BdXRoMlxTdG9yYWdlXFBkbycpCisgICAgICAgICAgICAtPmRpc2FibGVPcmlnaW5hbENvbnN0cnVjdG9yKCktPmdldE1vY2soKTsKKworICAgICAgICAkbWVtb3J5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXE1lbW9yeScpOworCisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHBkbywgJ2NsaWVudCcpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCRtZW1vcnksICdjbGllbnRfY3JlZGVudGlhbHMnKTsKKworICAgICAgICAkY2xpZW50ID0gJHNlcnZlci0+Z2V0U3RvcmFnZSgnY2xpZW50Jyk7CisgICAgICAgICRjbGllbnRfY3JlZGVudGlhbHMgPSAkc2VydmVyLT5nZXRTdG9yYWdlKCdjbGllbnRfY3JlZGVudGlhbHMnKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGllbnQsICRwZG8pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjbGllbnRfY3JlZGVudGlhbHMsICRtZW1vcnkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWRkaW5nUmVzcG9uc2VUeXBlKCkKKyAgICB7CisgICAgICAgICRzdG9yYWdlID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXE1lbW9yeScpOworICAgICAgICAkc3RvcmFnZQorICAgICAgICAgIC0+ZXhwZWN0cygkdGhpcy0+YW55KCkpCisgICAgICAgICAgLT5tZXRob2QoJ2dldENsaWVudERldGFpbHMnKQorICAgICAgICAgIC0+d2lsbCgkdGhpcy0+cmV0dXJuVmFsdWUoYXJyYXkoJ2NsaWVudF9pZCcgPT4gJ3NvbWVfY2xpZW50JykpKTsKKyAgICAgICAgJHN0b3JhZ2UKKyAgICAgICAgICAtPmV4cGVjdHMoJHRoaXMtPmFueSgpKQorICAgICAgICAgIC0+bWV0aG9kKCdjaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUnKQorICAgICAgICAgIC0+d2lsbCgkdGhpcy0+cmV0dXJuVmFsdWUodHJ1ZSkpOworCisgICAgICAgIC8vIGFkZCB3aXRoIHRoZSAiY29kZSIga2V5IGV4cGxpY2l0bHkgc2V0CisgICAgICAgICRjb2RlVHlwZSA9IG5ldyBBdXRob3JpemF0aW9uQ29kZSgkc3RvcmFnZSk7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFN0b3JhZ2UoJHN0b3JhZ2UpOworICAgICAgICAkc2VydmVyLT5hZGRSZXNwb25zZVR5cGUoJGNvZGVUeXBlKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVxdWVzdChhcnJheSgKKyAgICAgICAgICAgICdyZXNwb25zZV90eXBlJyA9PiAnY29kZScsCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnc29tZV9jbGllbnQnLAorICAgICAgICAgICAgJ3JlZGlyZWN0X3VyaScgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbScsCisgICAgICAgICAgICAnc3RhdGUnID0+ICd4eXgnLAorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+aGFuZGxlQXV0aG9yaXplUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCksIHRydWUpOworCisgICAgICAgIC8vIHRoZSByZXNwb25zZSBpcyBzdWNjZXNzZnVsCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRTdGF0dXNDb2RlKCksIDMwMik7CisgICAgICAgICRwYXJ0cyA9IHBhcnNlX3VybCgkcmVzcG9uc2UtPmdldEh0dHBIZWFkZXIoJ0xvY2F0aW9uJykpOworICAgICAgICBwYXJzZV9zdHIoJHBhcnRzWydxdWVyeSddLCAkcXVlcnkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShpc3NldCgkcXVlcnlbJ2NvZGUnXSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoaXNzZXQoJHF1ZXJ5WydlcnJvciddKSk7CisKKyAgICAgICAgLy8gYWRkIHdpdGggdGhlICJjb2RlIiBrZXkgbm90IHNldAorICAgICAgICAkY29kZVR5cGUgPSBuZXcgQXV0aG9yaXphdGlvbkNvZGUoJHN0b3JhZ2UpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgkc3RvcmFnZSksIGFycmF5KCksIGFycmF5KCksIGFycmF5KCRjb2RlVHlwZSkpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGFycmF5KAorICAgICAgICAgICAgJ3Jlc3BvbnNlX3R5cGUnID0+ICdjb2RlJywKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdzb21lX2NsaWVudCcsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAnaHR0cDovL2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdzdGF0ZScgPT4gJ3h5eCcsCisgICAgICAgICkpOworICAgICAgICAkc2VydmVyLT5oYW5kbGVBdXRob3JpemVSZXF1ZXN0KCRyZXF1ZXN0LCAkcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKSwgdHJ1ZSk7CisKKyAgICAgICAgLy8gdGhlIHJlc3BvbnNlIGlzIHN1Y2Nlc3NmdWwKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2UtPmdldFN0YXR1c0NvZGUoKSwgMzAyKTsKKyAgICAgICAgJHBhcnRzID0gcGFyc2VfdXJsKCRyZXNwb25zZS0+Z2V0SHR0cEhlYWRlcignTG9jYXRpb24nKSk7CisgICAgICAgIHBhcnNlX3N0cigkcGFydHNbJ3F1ZXJ5J10sICRxdWVyeSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKGlzc2V0KCRxdWVyeVsnY29kZSddKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShpc3NldCgkcXVlcnlbJ2Vycm9yJ10pKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEN1c3RvbUNsaWVudEFzc2VydGlvblR5cGUoKQorICAgIHsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdncmFudF90eXBlJyA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+J1Rlc3QgQ2xpZW50IElEJywKKyAgICAgICAgICAgICdjb2RlJyA9PiAndGVzdGNvZGUnLAorICAgICAgICApKTsKKyAgICAgICAgLy8gdmVyaWZ5IHRoZSBtb2NrIGNsaWVudEFzc2VydGlvblR5cGUgd2FzIGNhbGxlZCBhcyBleHBlY3RlZAorICAgICAgICAkY2xpZW50QXNzZXJ0aW9uVHlwZSA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcQ2xpZW50QXNzZXJ0aW9uVHlwZVxDbGllbnRBc3NlcnRpb25UeXBlSW50ZXJmYWNlJywgYXJyYXkoJ3ZhbGlkYXRlUmVxdWVzdCcsICdnZXRDbGllbnRJZCcpKTsKKyAgICAgICAgJGNsaWVudEFzc2VydGlvblR5cGUKKyAgICAgICAgICAgIC0+ZXhwZWN0cygkdGhpcy0+b25jZSgpKQorICAgICAgICAgICAgLT5tZXRob2QoJ3ZhbGlkYXRlUmVxdWVzdCcpCisgICAgICAgICAgICAtPndpbGwoJHRoaXMtPnJldHVyblZhbHVlKHRydWUpKTsKKyAgICAgICAgJGNsaWVudEFzc2VydGlvblR5cGUKKyAgICAgICAgICAgIC0+ZXhwZWN0cygkdGhpcy0+b25jZSgpKQorICAgICAgICAgICAgLT5tZXRob2QoJ2dldENsaWVudElkJykKKyAgICAgICAgICAgIC0+d2lsbCgkdGhpcy0+cmV0dXJuVmFsdWUoJ1Rlc3QgQ2xpZW50IElEJykpOworCisgICAgICAgIC8vIGNyZWF0ZSBtb2NrIHN0b3JhZ2UKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJHN0b3JhZ2UpLCBhcnJheSgpLCBhcnJheSgpLCBhcnJheSgpLCBudWxsLCBudWxsLCAkY2xpZW50QXNzZXJ0aW9uVHlwZSk7CisgICAgICAgICRzZXJ2ZXItPmhhbmRsZVRva2VuUmVxdWVzdCgkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SHR0cEJhc2ljQ29uZmlnKCkKKyAgICB7CisgICAgICAgIC8vIGNyZWF0ZSBtb2NrIHN0b3JhZ2UKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJHN0b3JhZ2UpLCBhcnJheSgKKyAgICAgICAgICAgICdhbGxvd19jcmVkZW50aWFsc19pbl9yZXF1ZXN0X2JvZHknID0+IGZhbHNlLAorICAgICAgICAgICAgJ2FsbG93X3B1YmxpY19jbGllbnRzJyA9PiBmYWxzZQorICAgICAgICApKTsKKyAgICAgICAgJHNlcnZlci0+Z2V0VG9rZW5Db250cm9sbGVyKCk7CisgICAgICAgICRodHRwQmFzaWMgPSAkc2VydmVyLT5nZXRDbGllbnRBc3NlcnRpb25UeXBlKCk7CisKKyAgICAgICAgJHJlZmxlY3Rpb24gPSBuZXcgXFJlZmxlY3Rpb25DbGFzcygkaHR0cEJhc2ljKTsKKyAgICAgICAgJHByb3AgPSAkcmVmbGVjdGlvbi0+Z2V0UHJvcGVydHkoJ2NvbmZpZycpOworICAgICAgICAkcHJvcC0+c2V0QWNjZXNzaWJsZSh0cnVlKTsKKworICAgICAgICAkY29uZmlnID0gJHByb3AtPmdldFZhbHVlKCRodHRwQmFzaWMpOyAvLyBnZXQgdGhlIHByaXZhdGUgImNvbmZpZyIgcHJvcGVydHkKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb25maWdbJ2FsbG93X2NyZWRlbnRpYWxzX2luX3JlcXVlc3RfYm9keSddLCBmYWxzZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvbmZpZ1snYWxsb3dfcHVibGljX2NsaWVudHMnXSwgZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmVmcmVzaFRva2VuQ29uZmlnKCkKKyAgICB7CisgICAgICAgIC8vIGNyZWF0ZSBtb2NrIHN0b3JhZ2UKKyAgICAgICAgJHN0b3JhZ2UgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNlcnZlcjEgPSBuZXcgU2VydmVyKGFycmF5KCRzdG9yYWdlKSk7CisgICAgICAgICRzZXJ2ZXIyID0gbmV3IFNlcnZlcihhcnJheSgkc3RvcmFnZSksIGFycmF5KCdhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nID0+IHRydWUsICd1bnNldF9yZWZyZXNoX3Rva2VuX2FmdGVyX3VzZScgPT4gZmFsc2UpKTsKKworICAgICAgICAkc2VydmVyMS0+Z2V0VG9rZW5Db250cm9sbGVyKCk7CisgICAgICAgICRyZWZyZXNoVG9rZW4xID0gJHNlcnZlcjEtPmdldEdyYW50VHlwZSgncmVmcmVzaF90b2tlbicpOworCisgICAgICAgICRzZXJ2ZXIyLT5nZXRUb2tlbkNvbnRyb2xsZXIoKTsKKyAgICAgICAgJHJlZnJlc2hUb2tlbjIgPSAkc2VydmVyMi0+Z2V0R3JhbnRUeXBlKCdyZWZyZXNoX3Rva2VuJyk7CisKKyAgICAgICAgJHJlZmxlY3Rpb24xID0gbmV3IFxSZWZsZWN0aW9uQ2xhc3MoJHJlZnJlc2hUb2tlbjEpOworICAgICAgICAkcHJvcDEgPSAkcmVmbGVjdGlvbjEtPmdldFByb3BlcnR5KCdjb25maWcnKTsKKyAgICAgICAgJHByb3AxLT5zZXRBY2Nlc3NpYmxlKHRydWUpOworCisgICAgICAgICRyZWZsZWN0aW9uMiA9IG5ldyBcUmVmbGVjdGlvbkNsYXNzKCRyZWZyZXNoVG9rZW4yKTsKKyAgICAgICAgJHByb3AyID0gJHJlZmxlY3Rpb24yLT5nZXRQcm9wZXJ0eSgnY29uZmlnJyk7CisgICAgICAgICRwcm9wMi0+c2V0QWNjZXNzaWJsZSh0cnVlKTsKKworICAgICAgICAvLyBnZXQgdGhlIHByaXZhdGUgImNvbmZpZyIgcHJvcGVydHkKKyAgICAgICAgJGNvbmZpZzEgPSAkcHJvcDEtPmdldFZhbHVlKCRyZWZyZXNoVG9rZW4xKTsKKyAgICAgICAgJGNvbmZpZzIgPSAkcHJvcDItPmdldFZhbHVlKCRyZWZyZXNoVG9rZW4yKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb25maWcxWydhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nXSwgZmFsc2UpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb25maWcyWydhbHdheXNfaXNzdWVfbmV3X3JlZnJlc2hfdG9rZW4nXSwgdHJ1ZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29uZmlnMVsndW5zZXRfcmVmcmVzaF90b2tlbl9hZnRlcl91c2UnXSwgdHJ1ZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvbmZpZzJbJ3Vuc2V0X3JlZnJlc2hfdG9rZW5fYWZ0ZXJfdXNlJ10sIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHNldHRpbmcgImFsd2F5c19pc3N1ZV9uZXdfcmVmcmVzaF90b2tlbiIgb24gYSBzZXJ2ZXIgbGV2ZWwKKyAgICAgKgorICAgICAqIEBzZWUgdGVzdC9PQXV0aDIvR3JhbnRUeXBlL1JlZnJlc2hUb2tlblRlc3Q6OnRlc3RWYWxpZFJlZnJlc2hUb2tlbldpdGhOZXdSZWZyZXNoVG9rZW5JblJlc3BvbnNlCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmFsaWRSZWZyZXNoVG9rZW5XaXRoTmV3UmVmcmVzaFRva2VuSW5SZXNwb25zZSgpCisgICAgeworICAgICAgICAkc3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigkc3RvcmFnZSwgYXJyYXkoJ2Fsd2F5c19pc3N1ZV9uZXdfcmVmcmVzaF90b2tlbicgPT4gdHJ1ZSkpOworCisgICAgICAgICRyZXF1ZXN0ID0gVGVzdFJlcXVlc3Q6OmNyZWF0ZVBvc3QoYXJyYXkoCisgICAgICAgICAgICAnZ3JhbnRfdHlwZScgPT4gJ3JlZnJlc2hfdG9rZW4nLCAvLyB2YWxpZCBncmFudCB0eXBlCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAnVGVzdCBDbGllbnQgSUQnLCAvLyB2YWxpZCBjbGllbnQgaWQKKyAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiAnVGVzdFNlY3JldCcsIC8vIHZhbGlkIGNsaWVudCBzZWNyZXQKKyAgICAgICAgICAgICdyZWZyZXNoX3Rva2VuJyA9PiAndGVzdC1yZWZyZXNodG9rZW4nLCAvLyB2YWxpZCByZWZyZXNoIHRva2VuCisgICAgICAgICkpOworICAgICAgICAkdG9rZW4gPSAkc2VydmVyLT5ncmFudEFjY2Vzc1Rva2VuKCRyZXF1ZXN0LCBuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKGlzc2V0KCR0b2tlblsncmVmcmVzaF90b2tlbiddKSwgJ3JlZnJlc2ggdG9rZW4gc2hvdWxkIGFsd2F5cyByZWZyZXNoJyk7CisKKyAgICAgICAgJHJlZnJlc2hfdG9rZW4gPSAkc3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCR0b2tlblsncmVmcmVzaF90b2tlbiddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHJlZnJlc2hfdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZWZyZXNoX3Rva2VuWydyZWZyZXNoX3Rva2VuJ10sICR0b2tlblsncmVmcmVzaF90b2tlbiddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVmcmVzaF90b2tlblsnY2xpZW50X2lkJ10sICRyZXF1ZXN0LT5yZXF1ZXN0KCdjbGllbnRfaWQnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCR0b2tlblsncmVmcmVzaF90b2tlbiddICE9ICd0ZXN0LXJlZnJlc2h0b2tlbicsICd0aGUgcmVmcmVzaCB0b2tlbiByZXR1cm5lZCBpcyBub3QgdGhlIG9uZSB1c2VkJyk7CisgICAgICAgICR1c2VkX3Rva2VuID0gJHN0b3JhZ2UtPmdldFJlZnJlc2hUb2tlbigndGVzdC1yZWZyZXNodG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCR1c2VkX3Rva2VuLCAndGhlIHJlZnJlc2ggdG9rZW4gdXNlZCBpcyBubyBsb25nZXIgdmFsaWQnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIE9BdXRoMlxSZXNwb25zZVR5cGVcQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBZGRpbmdVbmtub3duUmVzcG9uc2VUeXBlVGhyb3dzRXhjZXB0aW9uKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZFJlc3BvbnNlVHlwZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFJlc3BvbnNlVHlwZVxSZXNwb25zZVR5cGVJbnRlcmZhY2UnKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIExvZ2ljRXhjZXB0aW9uIE9BdXRoMlxTdG9yYWdlXFB1YmxpY0tleUludGVyZmFjZQorICAgICAqKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFVzaW5nSnd0QWNjZXNzVG9rZW5zV2l0aG91dFB1YmxpY0tleVN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoKSwgYXJyYXkoJ3VzZV9qd3RfYWNjZXNzX3Rva2VucycgPT4gdHJ1ZSkpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxHcmFudFR5cGVcR3JhbnRUeXBlSW50ZXJmYWNlJykpOworICAgICAgICAkc2VydmVyLT5hZGRTdG9yYWdlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZScpKTsKKyAgICAgICAgJHNlcnZlci0+YWRkU3RvcmFnZSgkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50Q3JlZGVudGlhbHNJbnRlcmZhY2UnKSk7CisKKyAgICAgICAgJHNlcnZlci0+Z2V0VG9rZW5Db250cm9sbGVyKCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2luZ0p1c3RKd3RBY2Nlc3NUb2tlblN0b3JhZ2VXaXRoUmVzb3VyY2VDb250cm9sbGVySXNPa2F5KCkKKyAgICB7CisgICAgICAgICRwdWJrZXkgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlJyk7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKGFycmF5KCRwdWJrZXkpLCBhcnJheSgndXNlX2p3dF9hY2Nlc3NfdG9rZW5zJyA9PiB0cnVlKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHNlcnZlci0+Z2V0UmVzb3VyY2VDb250cm9sbGVyKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlJywgJHNlcnZlci0+Z2V0U3RvcmFnZSgncHVibGljX2tleScpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VXNpbmdKdXN0Snd0QWNjZXNzVG9rZW5TdG9yYWdlV2l0aEF1dGhvcml6ZUNvbnRyb2xsZXJUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJHB1YmtleSA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJHB1YmtleSksIGFycmF5KCd1c2Vfand0X2FjY2Vzc190b2tlbnMnID0+IHRydWUpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gZ3JhbnRfdHlwZXMKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2luZ0p1c3RKd3RBY2Nlc3NUb2tlblN0b3JhZ2VXaXRoVG9rZW5Db250cm9sbGVyVGhyb3dzRXhjZXB0aW9uKCkKKyAgICB7CisgICAgICAgICRwdWJrZXkgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlJyk7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKGFycmF5KCRwdWJrZXkpLCBhcnJheSgndXNlX2p3dF9hY2Nlc3NfdG9rZW5zJyA9PiB0cnVlKSk7CisgICAgICAgICRzZXJ2ZXItPmdldFRva2VuQ29udHJvbGxlcigpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VXNpbmdKd3RBY2Nlc3NUb2tlbkFuZENsaWVudFN0b3JhZ2VXaXRoQXV0aG9yaXplQ29udHJvbGxlcklzT2theSgpCisgICAgeworICAgICAgICAkcHVia2V5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXFB1YmxpY0tleUludGVyZmFjZScpOworICAgICAgICAkY2xpZW50ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZScpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgkcHVia2V5LCAkY2xpZW50KSwgYXJyYXkoJ3VzZV9qd3RfYWNjZXNzX3Rva2VucycgPT4gdHJ1ZSwgJ2FsbG93X2ltcGxpY2l0JyA9PiB0cnVlKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRzZXJ2ZXItPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ09BdXRoMlxSZXNwb25zZVR5cGVcSnd0QWNjZXNzVG9rZW4nLCAkc2VydmVyLT5nZXRSZXNwb25zZVR5cGUoJ3Rva2VuJykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBleHBlY3RlZEV4Y2VwdGlvbiBMb2dpY0V4Y2VwdGlvbiBVc2VyQ2xhaW1zCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VXNpbmdPcGVuSURDb25uZWN0V2l0aG91dFVzZXJDbGFpbXNUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJGNsaWVudCA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoJGNsaWVudCwgYXJyYXkoJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSkpOworCisgICAgICAgICRzZXJ2ZXItPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gTG9naWNFeGNlcHRpb24gUHVibGljS2V5SW50ZXJmYWNlCisgICAgICoqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VXNpbmdPcGVuSURDb25uZWN0V2l0aG91dFB1YmxpY0tleVRocm93c0V4Y2VwdGlvbigpCisgICAgeworICAgICAgICAkY2xpZW50ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZScpOworICAgICAgICAkdXNlcmNsYWltcyA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcT1BlbklEXFN0b3JhZ2VcVXNlckNsYWltc0ludGVyZmFjZScpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgkY2xpZW50LCAkdXNlcmNsYWltcyksIGFycmF5KCd1c2Vfb3BlbmlkX2Nvbm5lY3QnID0+IHRydWUpKTsKKworICAgICAgICAkc2VydmVyLT5nZXRBdXRob3JpemVDb250cm9sbGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIExvZ2ljRXhjZXB0aW9uIGlzc3VlcgorICAgICAqKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFVzaW5nT3BlbklEQ29ubmVjdFdpdGhvdXRJc3N1ZXJUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJGNsaWVudCA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UnKTsKKyAgICAgICAgJHVzZXJjbGFpbXMgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXE9wZW5JRFxTdG9yYWdlXFVzZXJDbGFpbXNJbnRlcmZhY2UnKTsKKyAgICAgICAgJHB1YmtleSA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJGNsaWVudCwgJHVzZXJjbGFpbXMsICRwdWJrZXkpLCBhcnJheSgndXNlX29wZW5pZF9jb25uZWN0JyA9PiB0cnVlKSk7CisKKyAgICAgICAgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VXNpbmdPcGVuSURDb25uZWN0V2l0aElzc3VlclB1YmxpY0tleUFuZFVzZXJDbGFpbXNJc09rYXkoKQorICAgIHsKKyAgICAgICAgJGNsaWVudCA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UnKTsKKyAgICAgICAgJHVzZXJjbGFpbXMgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXE9wZW5JRFxTdG9yYWdlXFVzZXJDbGFpbXNJbnRlcmZhY2UnKTsKKyAgICAgICAgJHB1YmtleSA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJGNsaWVudCwgJHVzZXJjbGFpbXMsICRwdWJrZXkpLCBhcnJheSgKKyAgICAgICAgICAgICd1c2Vfb3BlbmlkX2Nvbm5lY3QnID0+IHRydWUsCisgICAgICAgICAgICAnaXNzdWVyJyA9PiAnc29tZWd1eScsCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0SW5zdGFuY2VPZignT0F1dGgyXE9wZW5JRFxSZXNwb25zZVR5cGVcSWRUb2tlbkludGVyZmFjZScsICRzZXJ2ZXItPmdldFJlc3BvbnNlVHlwZSgnaWRfdG9rZW4nKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRzZXJ2ZXItPmdldFJlc3BvbnNlVHlwZSgnaWRfdG9rZW4gdG9rZW4nKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIExvZ2ljRXhjZXB0aW9uIE9BdXRoMlxSZXNwb25zZVR5cGVcQWNjZXNzVG9rZW5JbnRlcmZhY2UKKyAgICAgKiovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2luZ09wZW5JRENvbm5lY3RXaXRoQWxsb3dJbXBsaWNpdFdpdGhvdXRUb2tlblN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJGNsaWVudCA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRJbnRlcmZhY2UnKTsKKyAgICAgICAgJHVzZXJjbGFpbXMgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXE9wZW5JRFxTdG9yYWdlXFVzZXJDbGFpbXNJbnRlcmZhY2UnKTsKKyAgICAgICAgJHB1YmtleSA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxQdWJsaWNLZXlJbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJGNsaWVudCwgJHVzZXJjbGFpbXMsICRwdWJrZXkpLCBhcnJheSgKKyAgICAgICAgICAgICd1c2Vfb3BlbmlkX2Nvbm5lY3QnID0+IHRydWUsCisgICAgICAgICAgICAnaXNzdWVyJyA9PiAnc29tZWd1eScsCisgICAgICAgICAgICAnYWxsb3dfaW1wbGljaXQnID0+IHRydWUsCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmdldEF1dGhvcml6ZUNvbnRyb2xsZXIoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFVzaW5nT3BlbklEQ29ubmVjdFdpdGhBbGxvd0ltcGxpY2l0QW5kVXNlSnd0QWNjZXNzVG9rZW5zSXNPa2F5KCkKKyAgICB7CisgICAgICAgICRjbGllbnQgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlJyk7CisgICAgICAgICR1c2VyY2xhaW1zID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlJyk7CisgICAgICAgICRwdWJrZXkgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlJyk7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKGFycmF5KCRjbGllbnQsICR1c2VyY2xhaW1zLCAkcHVia2V5KSwgYXJyYXkoCisgICAgICAgICAgICAndXNlX29wZW5pZF9jb25uZWN0JyA9PiB0cnVlLAorICAgICAgICAgICAgJ2lzc3VlcicgPT4gJ3NvbWVndXknLAorICAgICAgICAgICAgJ2FsbG93X2ltcGxpY2l0JyA9PiB0cnVlLAorICAgICAgICAgICAgJ3VzZV9qd3RfYWNjZXNzX3Rva2VucycgPT4gdHJ1ZSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxJZFRva2VuSW50ZXJmYWNlJywgJHNlcnZlci0+Z2V0UmVzcG9uc2VUeXBlKCdpZF90b2tlbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ09BdXRoMlxPcGVuSURcUmVzcG9uc2VUeXBlXElkVG9rZW5Ub2tlbkludGVyZmFjZScsICRzZXJ2ZXItPmdldFJlc3BvbnNlVHlwZSgnaWRfdG9rZW4gdG9rZW4nKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2luZ09wZW5JRENvbm5lY3RXaXRoQWxsb3dJbXBsaWNpdEFuZEFjY2Vzc1Rva2VuU3RvcmFnZUlzT2theSgpCisgICAgeworICAgICAgICAkY2xpZW50ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXENsaWVudEludGVyZmFjZScpOworICAgICAgICAkdXNlcmNsYWltcyA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcT3BlbklEXFN0b3JhZ2VcVXNlckNsYWltc0ludGVyZmFjZScpOworICAgICAgICAkcHVia2V5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXFB1YmxpY0tleUludGVyZmFjZScpOworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJGNsaWVudCwgJHVzZXJjbGFpbXMsICRwdWJrZXksICR0b2tlbiksIGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICdzb21lZ3V5JywKKyAgICAgICAgICAgICdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxJZFRva2VuSW50ZXJmYWNlJywgJHNlcnZlci0+Z2V0UmVzcG9uc2VUeXBlKCdpZF90b2tlbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ09BdXRoMlxPcGVuSURcUmVzcG9uc2VUeXBlXElkVG9rZW5Ub2tlbkludGVyZmFjZScsICRzZXJ2ZXItPmdldFJlc3BvbnNlVHlwZSgnaWRfdG9rZW4gdG9rZW4nKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVc2luZ09wZW5JRENvbm5lY3RXaXRoQWxsb3dJbXBsaWNpdEFuZEFjY2Vzc1Rva2VuUmVzcG9uc2VUeXBlSXNPa2F5KCkKKyAgICB7CisgICAgICAgICRjbGllbnQgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQ2xpZW50SW50ZXJmYWNlJyk7CisgICAgICAgICR1c2VyY2xhaW1zID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlJyk7CisgICAgICAgICRwdWJrZXkgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlJyk7CisgICAgICAgIC8vICR0b2tlbiA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZScpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgkY2xpZW50LCAkdXNlcmNsYWltcywgJHB1YmtleSksIGFycmF5KAorICAgICAgICAgICAgJ3VzZV9vcGVuaWRfY29ubmVjdCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdpc3N1ZXInID0+ICdzb21lZ3V5JywKKyAgICAgICAgICAgICdhbGxvd19pbXBsaWNpdCcgPT4gdHJ1ZSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHRva2VuID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxSZXNwb25zZVR5cGVcQWNjZXNzVG9rZW5JbnRlcmZhY2UnKTsKKyAgICAgICAgJHNlcnZlci0+YWRkUmVzcG9uc2VUeXBlKCR0b2tlbiwgJ3Rva2VuJyk7CisKKyAgICAgICAgJHNlcnZlci0+Z2V0QXV0aG9yaXplQ29udHJvbGxlcigpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdPQXV0aDJcT3BlbklEXFJlc3BvbnNlVHlwZVxJZFRva2VuSW50ZXJmYWNlJywgJHNlcnZlci0+Z2V0UmVzcG9uc2VUeXBlKCdpZF90b2tlbicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2YoJ09BdXRoMlxPcGVuSURcUmVzcG9uc2VUeXBlXElkVG9rZW5Ub2tlbkludGVyZmFjZScsICRzZXJ2ZXItPmdldFJlc3BvbnNlVHlwZSgnaWRfdG9rZW4gdG9rZW4nKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIExvZ2ljRXhjZXB0aW9uIE9BdXRoMlxPcGVuSURcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZQorICAgICAqKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFVzaW5nT3BlbklEQ29ubmVjdFdpdGhBdXRob3JpemF0aW9uQ29kZVN0b3JhZ2VUaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJGNsaWVudCA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxDbGllbnRDcmVkZW50aWFsc0ludGVyZmFjZScpOworICAgICAgICAkdXNlcmNsYWltcyA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcT3BlbklEXFN0b3JhZ2VcVXNlckNsYWltc0ludGVyZmFjZScpOworICAgICAgICAkcHVia2V5ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXFB1YmxpY0tleUludGVyZmFjZScpOworICAgICAgICAkdG9rZW4gPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcQWNjZXNzVG9rZW5JbnRlcmZhY2UnKTsKKyAgICAgICAgJGF1dGhjb2RlID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlJyk7CisKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJGNsaWVudCwgJHVzZXJjbGFpbXMsICRwdWJrZXksICR0b2tlbiwgJGF1dGhjb2RlKSwgYXJyYXkoCisgICAgICAgICAgICAndXNlX29wZW5pZF9jb25uZWN0JyA9PiB0cnVlLAorICAgICAgICAgICAgJ2lzc3VlcicgPT4gJ3NvbWVndXknCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmdldFRva2VuQ29udHJvbGxlcigpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdPQXV0aDJcT3BlbklEXEdyYW50VHlwZVxBdXRob3JpemF0aW9uQ29kZScsICRzZXJ2ZXItPmdldEdyYW50VHlwZSgnYXV0aG9yaXphdGlvbl9jb2RlJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VXNpbmdPcGVuSURDb25uZWN0V2l0aE9wZW5JREF1dGhvcml6YXRpb25Db2RlU3RvcmFnZUNyZWF0ZXNPcGVuSURBdXRob3JpemF0aW9uQ29kZUdyYW50VHlwZSgpCisgICAgeworICAgICAgICAkY2xpZW50ID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlJyk7CisgICAgICAgICR1c2VyY2xhaW1zID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxPcGVuSURcU3RvcmFnZVxVc2VyQ2xhaW1zSW50ZXJmYWNlJyk7CisgICAgICAgICRwdWJrZXkgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXFN0b3JhZ2VcUHVibGljS2V5SW50ZXJmYWNlJyk7CisgICAgICAgICR0b2tlbiA9ICR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxBY2Nlc3NUb2tlbkludGVyZmFjZScpOworICAgICAgICAkYXV0aGNvZGUgPSAkdGhpcy0+Z2V0TW9jaygnT0F1dGgyXE9wZW5JRFxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlJyk7CisKKyAgICAgICAgJHNlcnZlciA9IG5ldyBTZXJ2ZXIoYXJyYXkoJGNsaWVudCwgJHVzZXJjbGFpbXMsICRwdWJrZXksICR0b2tlbiwgJGF1dGhjb2RlKSwgYXJyYXkoCisgICAgICAgICAgICAndXNlX29wZW5pZF9jb25uZWN0JyA9PiB0cnVlLAorICAgICAgICAgICAgJ2lzc3VlcicgPT4gJ3NvbWVndXknCisgICAgICAgICkpOworCisgICAgICAgICRzZXJ2ZXItPmdldFRva2VuQ29udHJvbGxlcigpOworCisgICAgICAgICR0aGlzLT5hc3NlcnRJbnN0YW5jZU9mKCdPQXV0aDJcT3BlbklEXEdyYW50VHlwZVxBdXRob3JpemF0aW9uQ29kZScsICRzZXJ2ZXItPmdldEdyYW50VHlwZSgnYXV0aG9yaXphdGlvbl9jb2RlJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TXVsdGlwbGVWYWx1ZWRSZXNwb25zZVR5cGVPcmRlckRvZXNudE1hdHRlcigpCisgICAgeworICAgICAgICAkcmVzcG9uc2VUeXBlID0gJHRoaXMtPmdldE1vY2soJ09BdXRoMlxPcGVuSURcUmVzcG9uc2VUeXBlXElkVG9rZW5Ub2tlbkludGVyZmFjZScpOworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcihhcnJheSgpLCBhcnJheSgpLCBhcnJheSgpLCBhcnJheSgKKyAgICAgICAgICAgICd0b2tlbiBpZF90b2tlbicgPT4gJHJlc3BvbnNlVHlwZSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkcmVzcG9uc2VUeXBlLCAkc2VydmVyLT5nZXRSZXNwb25zZVR5cGUoJ2lkX3Rva2VuIHRva2VuJykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWRkR3JhbnRUeXBlV2l0aG91dEtleSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IFxPQXV0aDJcR3JhbnRUeXBlXEF1dGhvcml6YXRpb25Db2RlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZScpKSk7CisKKyAgICAgICAgJGdyYW50VHlwZXMgPSAkc2VydmVyLT5nZXRHcmFudFR5cGVzKCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2F1dGhvcml6YXRpb25fY29kZScsIGtleSgkZ3JhbnRUeXBlcykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QWRkR3JhbnRUeXBlV2l0aEtleSgpCisgICAgeworICAgICAgICAkc2VydmVyID0gbmV3IFNlcnZlcigpOworICAgICAgICAkc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IFxPQXV0aDJcR3JhbnRUeXBlXEF1dGhvcml6YXRpb25Db2RlKCR0aGlzLT5nZXRNb2NrKCdPQXV0aDJcU3RvcmFnZVxBdXRob3JpemF0aW9uQ29kZUludGVyZmFjZScpKSwgJ2FjJyk7CisKKyAgICAgICAgJGdyYW50VHlwZXMgPSAkc2VydmVyLT5nZXRHcmFudFR5cGVzKCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2FjJywga2V5KCRncmFudFR5cGVzKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBZGRHcmFudFR5cGVXaXRoS2V5Tm90U3RyaW5nKCkKKyAgICB7CisgICAgICAgICRzZXJ2ZXIgPSBuZXcgU2VydmVyKCk7CisgICAgICAgICRzZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgXE9BdXRoMlxHcmFudFR5cGVcQXV0aG9yaXphdGlvbkNvZGUoJHRoaXMtPmdldE1vY2soJ09BdXRoMlxTdG9yYWdlXEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlJykpLCA0Mik7CisKKyAgICAgICAgJGdyYW50VHlwZXMgPSAkc2VydmVyLT5nZXRHcmFudFR5cGVzKCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2F1dGhvcml6YXRpb25fY29kZScsIGtleSgkZ3JhbnRUeXBlcykpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0FjY2Vzc1Rva2VuVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9BY2Nlc3NUb2tlblRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNGUwYmYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9BY2Nlc3NUb2tlblRlc3QucGhwCkBAIC0wLDAgKzEsMTAyIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK2NsYXNzIEFjY2Vzc1Rva2VuVGVzdCBleHRlbmRzIEJhc2VUZXN0Cit7CisgICAgLyoqIEBkYXRhUHJvdmlkZXIgcHJvdmlkZVN0b3JhZ2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFNldEFjY2Vzc1Rva2VuKEFjY2Vzc1Rva2VuSW50ZXJmYWNlICRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBhc3NlcnQgdG9rZW4gd2UgYXJlIGFib3V0IHRvIGFkZCBkb2VzIG5vdCBleGlzdAorICAgICAgICAkdG9rZW4gPSAkc3RvcmFnZS0+Z2V0QWNjZXNzVG9rZW4oJ25ld3Rva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkdG9rZW4pOworCisgICAgICAgIC8vIGFkZCBuZXcgdG9rZW4KKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAyMDsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0QWNjZXNzVG9rZW4oJ25ld3Rva2VuJywgJ2NsaWVudCBJRCcsICdTT01FVVNFUklEJywgJGV4cGlyZXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2Vzcyk7CisKKyAgICAgICAgJHRva2VuID0gJHN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCduZXd0b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2FjY2Vzc190b2tlbicsICR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnY2xpZW50X2lkJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCd1c2VyX2lkJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdleHBpcmVzJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdG9rZW5bJ2FjY2Vzc190b2tlbiddLCAnbmV3dG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdG9rZW5bJ2NsaWVudF9pZCddLCAnY2xpZW50IElEJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWyd1c2VyX2lkJ10sICdTT01FVVNFUklEJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWydleHBpcmVzJ10sICRleHBpcmVzKTsKKworICAgICAgICAvLyBjaGFuZ2UgZXhpc3RpbmcgdG9rZW4KKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyA0MjsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0QWNjZXNzVG9rZW4oJ25ld3Rva2VuJywgJ2NsaWVudCBJRDInLCAnU09NRU9USEVSSUQnLCAkZXhwaXJlcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAkdG9rZW4gPSAkc3RvcmFnZS0+Z2V0QWNjZXNzVG9rZW4oJ25ld3Rva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCR0b2tlbik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYWNjZXNzX3Rva2VuJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdjbGllbnRfaWQnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3VzZXJfaWQnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cGlyZXMnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnYWNjZXNzX3Rva2VuJ10sICduZXd0b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnY2xpZW50X2lkJ10sICdjbGllbnQgSUQyJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWyd1c2VyX2lkJ10sICdTT01FT1RIRVJJRCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnZXhwaXJlcyddLCAkZXhwaXJlcyk7CisKKyAgICAgICAgLy8gYWRkIHRva2VuIHdpdGggc2NvcGUgaGF2aW5nIGFuIGVtcHR5IHN0cmluZyB2YWx1ZQorICAgICAgICAkZXhwaXJlcyA9IHRpbWUoKSArIDQyOworICAgICAgICAkc3VjY2VzcyA9ICRzdG9yYWdlLT5zZXRBY2Nlc3NUb2tlbignbmV3dG9rZW4nLCAnY2xpZW50IElEJywgJ1NPTUVPVEhFUklEJywgJGV4cGlyZXMsICcnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHN1Y2Nlc3MpOworICAgIH0KKworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVbnNldEFjY2Vzc1Rva2VuKEFjY2Vzc1Rva2VuSW50ZXJmYWNlICRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UgfHwgIW1ldGhvZF9leGlzdHMoJHN0b3JhZ2UsICd1bnNldEFjY2Vzc1Rva2VuJykpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBhc3NlcnQgdG9rZW4gd2UgYXJlIGFib3V0IHRvIHVuc2V0IGRvZXMgbm90IGV4aXN0CisgICAgICAgICR0b2tlbiA9ICRzdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbigncmV2b2thYmxldG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCR0b2tlbik7CisKKyAgICAgICAgLy8gYWRkIG5ldyB0b2tlbgorICAgICAgICAkZXhwaXJlcyA9IHRpbWUoKSArIDIwOworICAgICAgICAkc3VjY2VzcyA9ICRzdG9yYWdlLT5zZXRBY2Nlc3NUb2tlbigncmV2b2thYmxldG9rZW4nLCAnY2xpZW50IElEJywgJ1NPTUVVU0VSSUQnLCAkZXhwaXJlcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAvLyBhc3NlcnQgdW5zZXRBY2Nlc3NUb2tlbiByZXR1cm5zIHRydWUKKyAgICAgICAgJHJlc3VsdCA9ICRzdG9yYWdlLT51bnNldEFjY2Vzc1Rva2VuKCdyZXZva2FibGV0b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkcmVzdWx0KTsKKworICAgICAgICAvLyBhc3NlcnQgdG9rZW4gd2UgdW5zZXQgZG9lcyBub3QgZXhpc3QKKyAgICAgICAgJHRva2VuID0gJHN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCdyZXZva2FibGV0b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHRva2VuKTsKKyAgICB9CisKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VW5zZXRBY2Nlc3NUb2tlblJldHVybnNGYWxzZShBY2Nlc3NUb2tlbkludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlIHx8ICFtZXRob2RfZXhpc3RzKCRzdG9yYWdlLCAndW5zZXRBY2Nlc3NUb2tlbicpKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gYXNzZXJ0IHRva2VuIHdlIGFyZSBhYm91dCB0byB1bnNldCBkb2VzIG5vdCBleGlzdAorICAgICAgICAkdG9rZW4gPSAkc3RvcmFnZS0+Z2V0QWNjZXNzVG9rZW4oJ25vbmV4aXN0YW50dG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCR0b2tlbik7CisKKyAgICAgICAgLy8gYXNzZXJ0IHVuc2V0QWNjZXNzVG9rZW4gcmV0dXJucyBmYWxzZQorICAgICAgICAkcmVzdWx0ID0gJHN0b3JhZ2UtPnVuc2V0QWNjZXNzVG9rZW4oJ25vbmV4aXN0YW50dG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRyZXN1bHQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0F1dGhvcml6YXRpb25Db2RlVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9BdXRob3JpemF0aW9uQ29kZVRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkOTAxYjUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9BdXRob3JpemF0aW9uQ29kZVRlc3QucGhwCkBAIC0wLDAgKzEsMTA2IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK2NsYXNzIEF1dGhvcml6YXRpb25Db2RlVGVzdCBleHRlbmRzIEJhc2VUZXN0Cit7CisgICAgLyoqIEBkYXRhUHJvdmlkZXIgcHJvdmlkZVN0b3JhZ2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldEF1dGhvcml6YXRpb25Db2RlKEF1dGhvcml6YXRpb25Db2RlSW50ZXJmYWNlICRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBub25leGlzdGFudCBjbGllbnRfaWQKKyAgICAgICAgJGRldGFpbHMgPSAkc3RvcmFnZS0+Z2V0QXV0aG9yaXphdGlvbkNvZGUoJ2Zha2V0b2tlbicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJGRldGFpbHMpOworCisgICAgICAgIC8vIHZhbGlkIGNsaWVudF9pZAorICAgICAgICAkZGV0YWlscyA9ICRzdG9yYWdlLT5nZXRBdXRob3JpemF0aW9uQ29kZSgndGVzdHRva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRkZXRhaWxzKTsKKyAgICB9CisKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0QXV0aG9yaXphdGlvbkNvZGUoQXV0aG9yaXphdGlvbkNvZGVJbnRlcmZhY2UgJHN0b3JhZ2UpCisgICAgeworICAgICAgICBpZiAoJHN0b3JhZ2UgaW5zdGFuY2VvZiBOdWxsU3RvcmFnZSkgeworICAgICAgICAgICAgJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgnU2tpcHBlZCBTdG9yYWdlOiAnIC4gJHN0b3JhZ2UtPmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFzc2VydCBjb2RlIHdlIGFyZSBhYm91dCB0byBhZGQgZG9lcyBub3QgZXhpc3QKKyAgICAgICAgJGNvZGUgPSAkc3RvcmFnZS0+Z2V0QXV0aG9yaXphdGlvbkNvZGUoJ25ld2NvZGUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRjb2RlKTsKKworICAgICAgICAvLyBhZGQgbmV3IGNvZGUKKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAyMDsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0QXV0aG9yaXphdGlvbkNvZGUoJ25ld2NvZGUnLCAnY2xpZW50IElEJywgJ1NPTUVVU0VSSUQnLCAnaHR0cDovL2V4YW1wbGUuY29tJywgJGV4cGlyZXMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2Vzcyk7CisKKyAgICAgICAgJGNvZGUgPSAkc3RvcmFnZS0+Z2V0QXV0aG9yaXphdGlvbkNvZGUoJ25ld2NvZGUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2F1dGhvcml6YXRpb25fY29kZScsICRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdjbGllbnRfaWQnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgndXNlcl9pZCcsICRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdyZWRpcmVjdF91cmknLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnZXhwaXJlcycsICRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsnYXV0aG9yaXphdGlvbl9jb2RlJ10sICduZXdjb2RlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2NsaWVudF9pZCddLCAnY2xpZW50IElEJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ3VzZXJfaWQnXSwgJ1NPTUVVU0VSSUQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsncmVkaXJlY3RfdXJpJ10sICdodHRwOi8vZXhhbXBsZS5jb20nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsnZXhwaXJlcyddLCAkZXhwaXJlcyk7CisKKyAgICAgICAgLy8gY2hhbmdlIGV4aXN0aW5nIGNvZGUKKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyA0MjsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0QXV0aG9yaXphdGlvbkNvZGUoJ25ld2NvZGUnLCAnY2xpZW50IElEMicsICdTT01FT1RIRVJJRCcsICdodHRwOi8vZXhhbXBsZS5vcmcnLCAkZXhwaXJlcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAkY29kZSA9ICRzdG9yYWdlLT5nZXRBdXRob3JpemF0aW9uQ29kZSgnbmV3Y29kZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnYXV0aG9yaXphdGlvbl9jb2RlJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2NsaWVudF9pZCcsICRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCd1c2VyX2lkJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3JlZGlyZWN0X3VyaScsICRjb2RlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdleHBpcmVzJywgJGNvZGUpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRjb2RlWydhdXRob3JpemF0aW9uX2NvZGUnXSwgJ25ld2NvZGUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkY29kZVsnY2xpZW50X2lkJ10sICdjbGllbnQgSUQyJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ3VzZXJfaWQnXSwgJ1NPTUVPVEhFUklEJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ3JlZGlyZWN0X3VyaSddLCAnaHR0cDovL2V4YW1wbGUub3JnJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2V4cGlyZXMnXSwgJGV4cGlyZXMpOworCisgICAgICAgIC8vIGFkZCBuZXcgY29kZSB3aXRoIHNjb3BlIGhhdmluZyBhbiBlbXB0eSBzdHJpbmcgdmFsdWUKKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAyMDsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0QXV0aG9yaXphdGlvbkNvZGUoJ25ld2NvZGUnLCAnY2xpZW50IElEJywgJ1NPTUVVU0VSSUQnLCAnaHR0cDovL2V4YW1wbGUuY29tJywgJGV4cGlyZXMsICcnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHN1Y2Nlc3MpOworICAgIH0KKworICAgICAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RXhwaXJlQWNjZXNzVG9rZW4oQWNjZXNzVG9rZW5JbnRlcmZhY2UgJHN0b3JhZ2UpCisgICAgeworICAgICAgICBpZiAoJHN0b3JhZ2UgaW5zdGFuY2VvZiBOdWxsU3RvcmFnZSkgeworICAgICAgICAgICAgJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgnU2tpcHBlZCBTdG9yYWdlOiAnIC4gJHN0b3JhZ2UtPmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNyZWF0ZSBhIHZhbGlkIGNvZGUKKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAyMDsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0QXV0aG9yaXphdGlvbkNvZGUoJ2NvZGUtdG8tZXhwaXJlJywgJ2NsaWVudCBJRCcsICdTT01FVVNFUklEJywgJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHRpbWUoKSArIDIwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHN1Y2Nlc3MpOworCisgICAgICAgIC8vIHZlcmlmeSB0aGUgbmV3IGNvZGUgZXhpc3RzCisgICAgICAgICRjb2RlID0gJHN0b3JhZ2UtPmdldEF1dGhvcml6YXRpb25Db2RlKCdjb2RlLXRvLWV4cGlyZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgkY29kZSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdhdXRob3JpemF0aW9uX2NvZGUnLCAkY29kZSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGNvZGVbJ2F1dGhvcml6YXRpb25fY29kZSddLCAnY29kZS10by1leHBpcmUnKTsKKworICAgICAgICAvLyBub3cgZXhwaXJlIHRoZSBjb2RlIGFuZCBlbnN1cmUgaXQncyBubyBsb25nZXIgYXZhaWxhYmxlCisgICAgICAgICRzdG9yYWdlLT5leHBpcmVBdXRob3JpemF0aW9uQ29kZSgnY29kZS10by1leHBpcmUnKTsKKyAgICAgICAgJGNvZGUgPSAkc3RvcmFnZS0+Z2V0QXV0aG9yaXphdGlvbkNvZGUoJ2NvZGUtdG8tZXhwaXJlJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkY29kZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvQ2xpZW50Q3JlZGVudGlhbHNUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0NsaWVudENyZWRlbnRpYWxzVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUyODlhZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0NsaWVudENyZWRlbnRpYWxzVGVzdC5waHAKQEAgLTAsMCArMSwyOCBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCitjbGFzcyBDbGllbnRDcmVkZW50aWFsc1Rlc3QgZXh0ZW5kcyBCYXNlVGVzdAoreworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDaGVja0NsaWVudENyZWRlbnRpYWxzKENsaWVudENyZWRlbnRpYWxzSW50ZXJmYWNlICRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBub25leGlzdGFudCBjbGllbnRfaWQKKyAgICAgICAgJHBhc3MgPSAkc3RvcmFnZS0+Y2hlY2tDbGllbnRDcmVkZW50aWFscygnZmFrZWNsaWVudCcsICd0ZXN0cGFzcycpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHBhc3MpOworCisgICAgICAgIC8vIGludmFsaWQgcGFzc3dvcmQKKyAgICAgICAgJHBhc3MgPSAkc3RvcmFnZS0+Y2hlY2tDbGllbnRDcmVkZW50aWFscygnb2F1dGhfdGVzdF9jbGllbnQnLCAnaW52YWxpZGNyZWRlbnRpYWxzJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkcGFzcyk7CisKKyAgICAgICAgLy8gdmFsaWQgY3JlZGVudGlhbHMKKyAgICAgICAgJHBhc3MgPSAkc3RvcmFnZS0+Y2hlY2tDbGllbnRDcmVkZW50aWFscygnb2F1dGhfdGVzdF9jbGllbnQnLCAndGVzdHBhc3MnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHBhc3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0NsaWVudFRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvQ2xpZW50VGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE1Y2MwYgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0NsaWVudFRlc3QucGhwCkBAIC0wLDAgKzEsMTEwIEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFN0b3JhZ2U7CisKK2NsYXNzIENsaWVudFRlc3QgZXh0ZW5kcyBCYXNlVGVzdAoreworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRDbGllbnREZXRhaWxzKENsaWVudEludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm9uZXhpc3RhbnQgY2xpZW50X2lkCisgICAgICAgICRkZXRhaWxzID0gJHN0b3JhZ2UtPmdldENsaWVudERldGFpbHMoJ2Zha2VjbGllbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRkZXRhaWxzKTsKKworICAgICAgICAvLyB2YWxpZCBjbGllbnRfaWQKKyAgICAgICAgJGRldGFpbHMgPSAkc3RvcmFnZS0+Z2V0Q2xpZW50RGV0YWlscygnb2F1dGhfdGVzdF9jbGllbnQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJGRldGFpbHMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2NsaWVudF9pZCcsICRkZXRhaWxzKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdjbGllbnRfc2VjcmV0JywgJGRldGFpbHMpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3JlZGlyZWN0X3VyaScsICRkZXRhaWxzKTsKKyAgICB9CisKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q2hlY2tSZXN0cmljdGVkR3JhbnRUeXBlKENsaWVudEludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgaW52YWxpZAorICAgICAgICAkcGFzcyA9ICRzdG9yYWdlLT5jaGVja1Jlc3RyaWN0ZWRHcmFudFR5cGUoJ29hdXRoX3Rlc3RfY2xpZW50JywgJ2F1dGhvcml6YXRpb25fY29kZScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHBhc3MpOworCisgICAgICAgIC8vIENoZWNrIHZhbGlkCisgICAgICAgICRwYXNzID0gJHN0b3JhZ2UtPmNoZWNrUmVzdHJpY3RlZEdyYW50VHlwZSgnb2F1dGhfdGVzdF9jbGllbnQnLCAnaW1wbGljaXQnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHBhc3MpOworICAgIH0KKworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRBY2Nlc3NUb2tlbihDbGllbnRJbnRlcmZhY2UgJHN0b3JhZ2UpCisgICAgeworICAgICAgICBpZiAoJHN0b3JhZ2UgaW5zdGFuY2VvZiBOdWxsU3RvcmFnZSkgeworICAgICAgICAgICAgJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgnU2tpcHBlZCBTdG9yYWdlOiAnIC4gJHN0b3JhZ2UtPmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vbmV4aXN0YW50IGNsaWVudF9pZAorICAgICAgICAkZGV0YWlscyA9ICRzdG9yYWdlLT5nZXRBY2Nlc3NUb2tlbignZmFrZXRva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkZGV0YWlscyk7CisKKyAgICAgICAgLy8gdmFsaWQgY2xpZW50X2lkCisgICAgICAgICRkZXRhaWxzID0gJHN0b3JhZ2UtPmdldEFjY2Vzc1Rva2VuKCd0ZXN0dG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJGRldGFpbHMpOworICAgIH0KKworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJc1B1YmxpY0NsaWVudChDbGllbnRJbnRlcmZhY2UgJHN0b3JhZ2UpCisgICAgeworICAgICAgICBpZiAoJHN0b3JhZ2UgaW5zdGFuY2VvZiBOdWxsU3RvcmFnZSkgeworICAgICAgICAgICAgJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgnU2tpcHBlZCBTdG9yYWdlOiAnIC4gJHN0b3JhZ2UtPmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgICRwdWJsaWNDbGllbnRJZCA9ICdwdWJsaWMtY2xpZW50LScucmFuZCgpOworICAgICAgICAkY29uZmlkZW50aWFsQ2xpZW50SWQgPSAnY29uZmlkZW50aWFsLWNsaWVudC0nLnJhbmQoKTsKKworICAgICAgICAvLyBjcmVhdGUgYSBuZXcgY2xpZW50CisgICAgICAgICRzdWNjZXNzMSA9ICRzdG9yYWdlLT5zZXRDbGllbnREZXRhaWxzKCRwdWJsaWNDbGllbnRJZCwgJycpOworICAgICAgICAkc3VjY2VzczIgPSAkc3RvcmFnZS0+c2V0Q2xpZW50RGV0YWlscygkY29uZmlkZW50aWFsQ2xpZW50SWQsICdzb21lLXNlY3JldCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2VzczEpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2VzczIpOworCisgICAgICAgIC8vIGFzc2VydCBpc1B1YmxpY0NsaWVudCBmb3IgYm90aAorICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3RvcmFnZS0+aXNQdWJsaWNDbGllbnQoJHB1YmxpY0NsaWVudElkKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkc3RvcmFnZS0+aXNQdWJsaWNDbGllbnQoJGNvbmZpZGVudGlhbENsaWVudElkKSk7CisgICAgfQorCisgICAgLyoqIEBkYXRhUHJvdmlkZXIgcHJvdmlkZVN0b3JhZ2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFNhdmVDbGllbnQoQ2xpZW50SW50ZXJmYWNlICRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAkY2xpZW50SWQgPSAnc29tZS1jbGllbnQtJy5yYW5kKCk7CisKKyAgICAgICAgLy8gY3JlYXRlIGEgbmV3IGNsaWVudAorICAgICAgICAkc3VjY2VzcyA9ICRzdG9yYWdlLT5zZXRDbGllbnREZXRhaWxzKCRjbGllbnRJZCwgJ3NvbWVzZWNyZXQnLCAnaHR0cDovL3Rlc3QuY29tJywgJ2NsaWVudF9jcmVkZW50aWFscycsICdjbGllbnRzY29wZTEnLCAnYnJlbnRAYnJlbnRlcnRhaW5tZW50LmNvbScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2Vzcyk7CisKKyAgICAgICAgLy8gdmFsaWQgY2xpZW50X2lkCisgICAgICAgICRkZXRhaWxzID0gJHN0b3JhZ2UtPmdldENsaWVudERldGFpbHMoJGNsaWVudElkKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkZGV0YWlsc1snY2xpZW50X3NlY3JldCddLCAnc29tZXNlY3JldCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRkZXRhaWxzWydyZWRpcmVjdF91cmknXSwgJ2h0dHA6Ly90ZXN0LmNvbScpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRkZXRhaWxzWydncmFudF90eXBlcyddLCAnY2xpZW50X2NyZWRlbnRpYWxzJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGRldGFpbHNbJ3Njb3BlJ10sICdjbGllbnRzY29wZTEnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkZGV0YWlsc1sndXNlcl9pZCddLCAnYnJlbnRAYnJlbnRlcnRhaW5tZW50LmNvbScpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0R5bmFtb0RCVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9EeW5hbW9EQlRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNDdmMDkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9EeW5hbW9EQlRlc3QucGhwCkBAIC0wLDAgKzEsNDAgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworY2xhc3MgRHluYW1vREJUZXN0IGV4dGVuZHMgQmFzZVRlc3QKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldERlZmF1bHRTY29wZSgpCisgICAgeworICAgICAgICAkY2xpZW50ID0gJHRoaXMtPmdldE1vY2tCdWlsZGVyKCdcQXdzXER5bmFtb0RiXER5bmFtb0RiQ2xpZW50JykKKyAgICAgICAgICAgIC0+ZGlzYWJsZU9yaWdpbmFsQ29uc3RydWN0b3IoKQorICAgICAgICAgICAgLT5zZXRNZXRob2RzKGFycmF5KCdxdWVyeScpKQorICAgICAgICAgICAgLT5nZXRNb2NrKCk7CisKKyAgICAgICAgJHJldHVybiA9ICR0aGlzLT5nZXRNb2NrQnVpbGRlcignXEd1enpsZVxTZXJ2aWNlXFJlc291cmNlXE1vZGVsJykKKyAgICAgICAgICAgIC0+c2V0TWV0aG9kcyhhcnJheSgnY291bnQnLCAndG9BcnJheScpKQorICAgICAgICAgICAgLT5nZXRNb2NrKCk7CisKKyAgICAgICAgJGRhdGEgPSBhcnJheSgKKyAgICAgICAgICAgICdJdGVtcycgPT4gYXJyYXkoKSwKKyAgICAgICAgICAgICdDb3VudCcgPT4gMCwKKyAgICAgICAgICAgICdTY2FubmVkQ291bnQnPT4gMAorICAgICAgICApOworCisgICAgICAgICRyZXR1cm4tPmV4cGVjdHMoJHRoaXMtPm9uY2UoKSkKKyAgICAgICAgICAgIC0+bWV0aG9kKCdjb3VudCcpCisgICAgICAgICAgICAtPndpbGwoJHRoaXMtPnJldHVyblZhbHVlKGNvdW50KCRkYXRhKSkpOworCisgICAgICAgICRyZXR1cm4tPmV4cGVjdHMoJHRoaXMtPm9uY2UoKSkKKyAgICAgICAgICAgIC0+bWV0aG9kKCd0b0FycmF5JykKKyAgICAgICAgICAgIC0+d2lsbCgkdGhpcy0+cmV0dXJuVmFsdWUoJGRhdGEpKTsKKworICAgICAgICAvLyBzaG91bGQgcmV0dXJuIG51bGwgZGVmYXVsdCBzY29wZSBpZiBub25lIGlzIHNldCBpbiBkYXRhYmFzZQorICAgICAgICAkY2xpZW50LT5leHBlY3RzKCR0aGlzLT5vbmNlKCkpCisgICAgICAgICAgICAtPm1ldGhvZCgncXVlcnknKQorICAgICAgICAgICAgLT53aWxsKCR0aGlzLT5yZXR1cm5WYWx1ZSgkcmV0dXJuKSk7CisKKyAgICAgICAgJHN0b3JhZ2UgPSBuZXcgRHluYW1vREIoJGNsaWVudCk7CisgICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRzdG9yYWdlLT5nZXREZWZhdWx0U2NvcGUoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvSnd0QWNjZXNzVG9rZW5UZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0p3dEFjY2Vzc1Rva2VuVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhY2JlYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL0p3dEFjY2Vzc1Rva2VuVGVzdC5waHAKQEAgLTAsMCArMSw0MSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCit1c2UgT0F1dGgyXEVuY3J5cHRpb25cSnd0OworCitjbGFzcyBKd3RBY2Nlc3NUb2tlblRlc3QgZXh0ZW5kcyBCYXNlVGVzdAoreworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTZXRBY2Nlc3NUb2tlbigkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICghJHN0b3JhZ2UgaW5zdGFuY2VvZiBQdWJsaWNLZXkpIHsKKyAgICAgICAgICAgIC8vIGluY29tcGF0aWJsZSBzdG9yYWdlCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAkY3J5cHRvID0gbmV3IGp3dEFjY2Vzc1Rva2VuKCRzdG9yYWdlKTsKKworICAgICAgICAkcHVibGljS2V5U3RvcmFnZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TWVtb3J5U3RvcmFnZSgpOworICAgICAgICAkZW5jcnlwdGlvblV0aWwgPSBuZXcgSnd0KCk7CisKKyAgICAgICAgJGp3dEFjY2Vzc1Rva2VuID0gYXJyYXkoCisgICAgICAgICAgICAnYWNjZXNzX3Rva2VuJyA9PiByYW5kKCksCisgICAgICAgICAgICAnZXhwaXJlcycgPT4gdGltZSgpICsgMTAwLAorICAgICAgICAgICAgJ3Njb3BlJyAgID0+ICdmb28nLAorICAgICAgICApOworCisgICAgICAgICR0b2tlbiA9ICRlbmNyeXB0aW9uVXRpbC0+ZW5jb2RlKCRqd3RBY2Nlc3NUb2tlbiwgJHN0b3JhZ2UtPmdldFByaXZhdGVLZXkoKSwgJHN0b3JhZ2UtPmdldEVuY3J5cHRpb25BbGdvcml0aG0oKSk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKworICAgICAgICAkdG9rZW5EYXRhID0gJGNyeXB0by0+Z2V0QWNjZXNzVG9rZW4oJHRva2VuKTsKKworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShpc19hcnJheSgkdG9rZW5EYXRhKSk7CisKKyAgICAgICAgLyogYXNzZXJ0IHRoZSBkZWNvZGVkIHRva2VuIGlzIHRoZSBzYW1lICovCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuRGF0YVsnYWNjZXNzX3Rva2VuJ10sICRqd3RBY2Nlc3NUb2tlblsnYWNjZXNzX3Rva2VuJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlbkRhdGFbJ2V4cGlyZXMnXSwgJGp3dEFjY2Vzc1Rva2VuWydleHBpcmVzJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlbkRhdGFbJ3Njb3BlJ10sICRqd3RBY2Nlc3NUb2tlblsnc2NvcGUnXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvSnd0QmVhcmVyVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9Kd3RCZWFyZXJUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGFiOWI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvSnd0QmVhcmVyVGVzdC5waHAKQEAgLTAsMCArMSwyNSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCitjbGFzcyBKd3RCZWFyZXJUZXN0IGV4dGVuZHMgQmFzZVRlc3QKK3sKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0Q2xpZW50S2V5KEp3dEJlYXJlckludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm9uZXhpc3RhbnQgY2xpZW50X2lkCisgICAgICAgICRrZXkgPSAkc3RvcmFnZS0+Z2V0Q2xpZW50S2V5KCd0aGlzLWlzLW5vdC1yZWFsJywgJ25vci1pcy10aGlzJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgka2V5KTsKKworICAgICAgICAvLyB2YWxpZCBjbGllbnRfaWQgYW5kIHN1YmplY3QKKyAgICAgICAgJGtleSA9ICRzdG9yYWdlLT5nZXRDbGllbnRLZXkoJ29hdXRoX3Rlc3RfY2xpZW50JywgJ3Rlc3Rfc3ViamVjdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0Tm90TnVsbCgka2V5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygka2V5LCBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldFRlc3RQdWJsaWNLZXkoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvUGRvVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9QZG9UZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTk5ZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvUGRvVGVzdC5waHAKQEAgLTAsMCArMSw0MSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCitjbGFzcyBQZG9UZXN0IGV4dGVuZHMgQmFzZVRlc3QKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVBkb1N0b3JhZ2VVc2luZ1Bkb0NsYXNzKCkKKyAgICB7CisgICAgICAgICRkc24gPSBzcHJpbnRmKCdzcWxpdGU6JXMnLCBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldFNxbGl0ZURpcigpKTsKKyAgICAgICAgJHBkbyA9IG5ldyBcUERPKCRkc24pOworICAgICAgICAkc3RvcmFnZSA9IG5ldyBQZG8oJHBkbyk7CisKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHN0b3JhZ2UtPmdldENsaWVudERldGFpbHMoJ29hdXRoX3Rlc3RfY2xpZW50JykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlUGRvU3RvcmFnZVVzaW5nRFNOKCkKKyAgICB7CisgICAgICAgICRkc24gPSBzcHJpbnRmKCdzcWxpdGU6JXMnLCBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldFNxbGl0ZURpcigpKTsKKyAgICAgICAgJHN0b3JhZ2UgPSBuZXcgUGRvKCRkc24pOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRzdG9yYWdlLT5nZXRDbGllbnREZXRhaWxzKCdvYXV0aF90ZXN0X2NsaWVudCcpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVBkb1N0b3JhZ2VVc2luZ0NvbmZpZygpCisgICAgeworICAgICAgICAkZHNuID0gc3ByaW50Zignc3FsaXRlOiVzJywgQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXRTcWxpdGVEaXIoKSk7CisgICAgICAgICRjb25maWcgPSBhcnJheSgnZHNuJyA9PiAkZHNuKTsKKyAgICAgICAgJHN0b3JhZ2UgPSBuZXcgUGRvKCRjb25maWcpOworCisgICAgICAgICR0aGlzLT5hc3NlcnROb3ROdWxsKCRzdG9yYWdlLT5nZXRDbGllbnREZXRhaWxzKCdvYXV0aF90ZXN0X2NsaWVudCcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGRzbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlUGRvU3RvcmFnZVdpdGhvdXREU05UaHJvd3NFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgJGNvbmZpZyA9IGFycmF5KCd1c2VybmFtZScgPT4gJ2JyZW50JywgJ3Bhc3N3b3JkJyA9PiAnYnJlbnRpc2FiYWxsZXInKTsKKyAgICAgICAgJHN0b3JhZ2UgPSBuZXcgUGRvKCRjb25maWcpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL1B1YmxpY0tleVRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvUHVibGljS2V5VGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg1MTk1OAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL1B1YmxpY0tleVRlc3QucGhwCkBAIC0wLDAgKzEsMjkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworY2xhc3MgUHVibGljS2V5VGVzdCBleHRlbmRzIEJhc2VUZXN0Cit7CisgICAgLyoqIEBkYXRhUHJvdmlkZXIgcHJvdmlkZVN0b3JhZ2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFNldEFjY2Vzc1Rva2VuKCRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRzdG9yYWdlIGluc3RhbmNlb2YgUHVibGljS2V5SW50ZXJmYWNlKSB7CisgICAgICAgICAgICAvLyBpbmNvbXBhdGlibGUgc3RvcmFnZQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgJGNvbmZpZ0RpciA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0Q29uZmlnRGlyKCk7CisgICAgICAgICRnbG9iYWxQdWJsaWNLZXkgID0gZmlsZV9nZXRfY29udGVudHMoJGNvbmZpZ0Rpci4nL2tleXMvaWRfcnNhLnB1YicpOworICAgICAgICAkZ2xvYmFsUHJpdmF0ZUtleSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRjb25maWdEaXIuJy9rZXlzL2lkX3JzYScpOworCisgICAgICAgIC8qIGFzc2VydCB2YWx1ZXMgZnJvbSBzdG9yYWdlICovCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHN0b3JhZ2UtPmdldFB1YmxpY0tleSgpLCAkZ2xvYmFsUHVibGljS2V5KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkc3RvcmFnZS0+Z2V0UHJpdmF0ZUtleSgpLCAkZ2xvYmFsUHJpdmF0ZUtleSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvUmVmcmVzaFRva2VuVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvU3RvcmFnZS9SZWZyZXNoVG9rZW5UZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTRjOTMxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvUmVmcmVzaFRva2VuVGVzdC5waHAKQEAgLTAsMCArMSw0MSBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCitjbGFzcyBSZWZyZXNoVG9rZW5UZXN0IGV4dGVuZHMgQmFzZVRlc3QKK3sKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2V0UmVmcmVzaFRva2VuKFJlZnJlc2hUb2tlbkludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gYXNzZXJ0IHRva2VuIHdlIGFyZSBhYm91dCB0byBhZGQgZG9lcyBub3QgZXhpc3QKKyAgICAgICAgJHRva2VuID0gJHN0b3JhZ2UtPmdldFJlZnJlc2hUb2tlbigncmVmcmVzaHRva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkdG9rZW4pOworCisgICAgICAgIC8vIGFkZCBuZXcgdG9rZW4KKyAgICAgICAgJGV4cGlyZXMgPSB0aW1lKCkgKyAyMDsKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0UmVmcmVzaFRva2VuKCdyZWZyZXNodG9rZW4nLCAnY2xpZW50IElEJywgJ1NPTUVVU0VSSUQnLCAkZXhwaXJlcyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRzdWNjZXNzKTsKKworICAgICAgICAkdG9rZW4gPSAkc3RvcmFnZS0+Z2V0UmVmcmVzaFRva2VuKCdyZWZyZXNodG9rZW4nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdyZWZyZXNoX3Rva2VuJywgJHRva2VuKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCdjbGllbnRfaWQnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ3VzZXJfaWQnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2V4cGlyZXMnLCAkdG9rZW4pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsncmVmcmVzaF90b2tlbiddLCAncmVmcmVzaHRva2VuJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHRva2VuWydjbGllbnRfaWQnXSwgJ2NsaWVudCBJRCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsndXNlcl9pZCddLCAnU09NRVVTRVJJRCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR0b2tlblsnZXhwaXJlcyddLCAkZXhwaXJlcyk7CisKKyAgICAgICAgLy8gYWRkIHRva2VuIHdpdGggc2NvcGUgaGF2aW5nIGFuIGVtcHR5IHN0cmluZyB2YWx1ZQorICAgICAgICAkZXhwaXJlcyA9IHRpbWUoKSArIDIwOworICAgICAgICAkc3VjY2VzcyA9ICRzdG9yYWdlLT5zZXRSZWZyZXNoVG9rZW4oJ3JlZnJlc2h0b2tlbjInLCAnY2xpZW50IElEJywgJ1NPTUVVU0VSSUQnLCAkZXhwaXJlcywgJycpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2Vzcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvU2NvcGVUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL1Njb3BlVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQxZWRlYgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL1Njb3BlVGVzdC5waHAKQEAgLTAsMCArMSw1MyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCit1c2UgT0F1dGgyXFNjb3BlOworCitjbGFzcyBTY29wZVRlc3QgZXh0ZW5kcyBCYXNlVGVzdAoreworICAgIC8qKiBAZGF0YVByb3ZpZGVyIHByb3ZpZGVTdG9yYWdlICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTY29wZUV4aXN0cygkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkc3RvcmFnZSBpbnN0YW5jZW9mIFNjb3BlSW50ZXJmYWNlKSB7CisgICAgICAgICAgICAvLyBpbmNvbXBhdGlibGUgc3RvcmFnZQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy9UZXN0IGdldHRpbmcgc2NvcGVzCisgICAgICAgICRzY29wZVV0aWwgPSBuZXcgU2NvcGUoJHN0b3JhZ2UpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc2NvcGVVdGlsLT5zY29wZUV4aXN0cygnc3VwcG9ydGVkc2NvcGUxJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc2NvcGVVdGlsLT5zY29wZUV4aXN0cygnc3VwcG9ydGVkc2NvcGUxIHN1cHBvcnRlZHNjb3BlMiBzdXBwb3J0ZWRzY29wZTMnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkc2NvcGVVdGlsLT5zY29wZUV4aXN0cygnZmFrZXNjb3BlJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHNjb3BlVXRpbC0+c2NvcGVFeGlzdHMoJ3N1cHBvcnRlZHNjb3BlMSBzdXBwb3J0ZWRzY29wZTIgc3VwcG9ydGVkc2NvcGUzIGZha2VzY29wZScpKTsKKyAgICB9CisKKyAgICAvKiogQGRhdGFQcm92aWRlciBwcm92aWRlU3RvcmFnZSAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0RGVmYXVsdFNjb3BlKCRzdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCRzdG9yYWdlIGluc3RhbmNlb2YgTnVsbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgICR0aGlzLT5tYXJrVGVzdFNraXBwZWQoJ1NraXBwZWQgU3RvcmFnZTogJyAuICRzdG9yYWdlLT5nZXRNZXNzYWdlKCkpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRzdG9yYWdlIGluc3RhbmNlb2YgU2NvcGVJbnRlcmZhY2UpIHsKKyAgICAgICAgICAgIC8vIGluY29tcGF0aWJsZSBzdG9yYWdlCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IGdldHRpbmcgZGVmYXVsdCBzY29wZQorICAgICAgICAkc2NvcGVVdGlsID0gbmV3IFNjb3BlKCRzdG9yYWdlKTsKKyAgICAgICAgJGV4cGVjdGVkID0gZXhwbG9kZSgnICcsICRzY29wZVV0aWwtPmdldERlZmF1bHRTY29wZSgpKTsKKyAgICAgICAgJGFjdHVhbCA9IGV4cGxvZGUoJyAnLCAnZGVmYXVsdHNjb3BlMSBkZWZhdWx0c2NvcGUyJyk7CisgICAgICAgIHNvcnQoJGV4cGVjdGVkKTsKKyAgICAgICAgc29ydCgkYWN0dWFsKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkZXhwZWN0ZWQsICRhY3R1YWwpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL1VzZXJDcmVkZW50aWFsc1Rlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1N0b3JhZ2UvVXNlckNyZWRlbnRpYWxzVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU2NTVhNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L09BdXRoMi9TdG9yYWdlL1VzZXJDcmVkZW50aWFsc1Rlc3QucGhwCkBAIC0wLDAgKzEsNDAgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworY2xhc3MgVXNlckNyZWRlbnRpYWxzVGVzdCBleHRlbmRzIEJhc2VUZXN0Cit7CisgICAgLyoqIEBkYXRhUHJvdmlkZXIgcHJvdmlkZVN0b3JhZ2UgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENoZWNrVXNlckNyZWRlbnRpYWxzKFVzZXJDcmVkZW50aWFsc0ludGVyZmFjZSAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICgkc3RvcmFnZSBpbnN0YW5jZW9mIE51bGxTdG9yYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFya1Rlc3RTa2lwcGVkKCdTa2lwcGVkIFN0b3JhZ2U6ICcgLiAkc3RvcmFnZS0+Z2V0TWVzc2FnZSgpKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gY3JlYXRlIGEgbmV3IHVzZXIgZm9yIHRlc3RpbmcKKyAgICAgICAgJHN1Y2Nlc3MgPSAkc3RvcmFnZS0+c2V0VXNlcigndGVzdHVzZXJuYW1lJywgJ3Rlc3RwYXNzJywgJ1Rlc3QnLCAnVXNlcicpOworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3VjY2Vzcyk7CisKKyAgICAgICAgLy8gY29ycmVjdCBjcmVkZW50aWFscworICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkc3RvcmFnZS0+Y2hlY2tVc2VyQ3JlZGVudGlhbHMoJ3Rlc3R1c2VybmFtZScsICd0ZXN0cGFzcycpKTsKKyAgICAgICAgLy8gaW52YWxpZCBwYXNzd29yZAorICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoJHN0b3JhZ2UtPmNoZWNrVXNlckNyZWRlbnRpYWxzKCd0ZXN0dXNlcm5hbWUnLCAnZmFrZXBhc3MnKSk7CisgICAgICAgIC8vIGludmFsaWQgdXNlcm5hbWUKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRzdG9yYWdlLT5jaGVja1VzZXJDcmVkZW50aWFscygnZmFrZXVzZXJuYW1lJywgJ3Rlc3RwYXNzJykpOworCisgICAgICAgIC8vIGludmFsaWQgdXNlcm5hbWUKKyAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRzdG9yYWdlLT5nZXRVc2VyRGV0YWlscygnZmFrZXVzZXJuYW1lJykpOworCisgICAgICAgIC8vIGVuc3VyZSBhbGwgcHJvcGVydGllcyBhcmUgc2V0CisgICAgICAgICR1c2VyID0gJHN0b3JhZ2UtPmdldFVzZXJEZXRhaWxzKCd0ZXN0dXNlcm5hbWUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoJHVzZXIgIT09IGZhbHNlKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEFycmF5SGFzS2V5KCd1c2VyX2lkJywgJHVzZXIpOworICAgICAgICAkdGhpcy0+YXNzZXJ0QXJyYXlIYXNLZXkoJ2ZpcnN0X25hbWUnLCAkdXNlcik7CisgICAgICAgICR0aGlzLT5hc3NlcnRBcnJheUhhc0tleSgnbGFzdF9uYW1lJywgJHVzZXIpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR1c2VyWyd1c2VyX2lkJ10sICd0ZXN0dXNlcm5hbWUnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkdXNlclsnZmlyc3RfbmFtZSddLCAnVGVzdCcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCR1c2VyWydsYXN0X25hbWUnXSwgJ1VzZXInKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9PQXV0aDIvVG9rZW5UeXBlL0JlYXJlclRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1Rva2VuVHlwZS9CZWFyZXJUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWNjYTNiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvT0F1dGgyL1Rva2VuVHlwZS9CZWFyZXJUZXN0LnBocApAQCAtMCwwICsxLDU5IEBACis8P3BocAorCituYW1lc3BhY2UgT0F1dGgyXFRva2VuVHlwZTsKKwordXNlIE9BdXRoMlxSZXF1ZXN0XFRlc3RSZXF1ZXN0OwordXNlIE9BdXRoMlxSZXNwb25zZTsKK3VzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKKworY2xhc3MgQmVhcmVyVGVzdCBleHRlbmRzIFRlc3RDYXNlCit7CisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RWYWxpZENvbnRlbnRUeXBlV2l0aENoYXJzZXQoKQorICAgIHsKKyAgICAgICAgJGJlYXJlciA9IG5ldyBCZWFyZXIoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBUZXN0UmVxdWVzdDo6Y3JlYXRlUG9zdChhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICdUaGlzSXNNeUFjY2Vzc1Rva2VuJworICAgICAgICApKTsKKyAgICAgICAgJHJlcXVlc3QtPnNlcnZlclsnQ09OVEVOVF9UWVBFJ10gPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04JzsKKworICAgICAgICAkcGFyYW0gPSAkYmVhcmVyLT5nZXRBY2Nlc3NUb2tlblBhcmFtZXRlcigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRwYXJhbSwgJ1RoaXNJc015QWNjZXNzVG9rZW4nKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEludmFsaWRDb250ZW50VHlwZSgpCisgICAgeworICAgICAgICAkYmVhcmVyID0gbmV3IEJlYXJlcigpOworICAgICAgICAkcmVxdWVzdCA9IFRlc3RSZXF1ZXN0OjpjcmVhdGVQb3N0KGFycmF5KAorICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gJ1RoaXNJc015QWNjZXNzVG9rZW4nCisgICAgICAgICkpOworICAgICAgICAkcmVxdWVzdC0+c2VydmVyWydDT05URU5UX1RZUEUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVURi04JzsKKworICAgICAgICAkcGFyYW0gPSAkYmVhcmVyLT5nZXRBY2Nlc3NUb2tlblBhcmFtZXRlcigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkcGFyYW0pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0U3RhdHVzQ29kZSgpLCA0MDApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRyZXNwb25zZS0+Z2V0UGFyYW1ldGVyKCdlcnJvcicpLCAnaW52YWxpZF9yZXF1ZXN0Jyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHJlc3BvbnNlLT5nZXRQYXJhbWV0ZXIoJ2Vycm9yX2Rlc2NyaXB0aW9uJyksICdUaGUgY29udGVudCB0eXBlIGZvciBQT1NUIHJlcXVlc3RzIG11c3QgYmUgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCInKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkUmVxdWVzdFVzaW5nQXV0aG9yaXphdGlvbkhlYWRlcigpCisgICAgeworICAgICAgICAkYmVhcmVyID0gbmV3IEJlYXJlcigpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBUZXN0UmVxdWVzdCgpOworICAgICAgICAkcmVxdWVzdC0+aGVhZGVyc1snQVVUSE9SSVpBVElPTiddID0gJ0JlYXJlciBNeVRva2VuJzsKKyAgICAgICAgJHJlcXVlc3QtPnNlcnZlclsnQ09OVEVOVF9UWVBFJ10gPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04JzsKKworICAgICAgICAkcGFyYW0gPSAkYmVhcmVyLT5nZXRBY2Nlc3NUb2tlblBhcmFtZXRlcigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdNeVRva2VuJywgJHBhcmFtKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZhbGlkUmVxdWVzdFVzaW5nQXV0aG9yaXphdGlvbkhlYWRlckNhc2VJbnNlbnNpdGl2ZSgpCisgICAgeworICAgICAgICAkYmVhcmVyID0gbmV3IEJlYXJlcigpOworICAgICAgICAkcmVxdWVzdCA9IG5ldyBUZXN0UmVxdWVzdCgpOworICAgICAgICAkcmVxdWVzdC0+c2VydmVyWydDT05URU5UX1RZUEUnXSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgnOworICAgICAgICAkcmVxdWVzdC0+aGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gJ0JlYXJlciBNeVRva2VuJzsKKworICAgICAgICAkcGFyYW0gPSAkYmVhcmVyLT5nZXRBY2Nlc3NUb2tlblBhcmFtZXRlcigkcmVxdWVzdCwgJHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdNeVRva2VuJywgJHBhcmFtKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9ib290c3RyYXAucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvYm9vdHN0cmFwLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTRhZjA3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvYm9vdHN0cmFwLnBocApAQCAtMCwwICsxLDEyIEBACis8P3BocAorCityZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy8uLi9zcmMvT0F1dGgyL0F1dG9sb2FkZXIucGhwJyk7CitPQXV0aDJcQXV0b2xvYWRlcjo6cmVnaXN0ZXIoKTsKKworLy8gcmVnaXN0ZXIgdGVzdCBjbGFzc2VzCitPQXV0aDJcQXV0b2xvYWRlcjo6cmVnaXN0ZXIoZGlybmFtZShfX0ZJTEVfXykuJy9saWInKTsKKworLy8gcmVnaXN0ZXIgdmVuZG9ycyBpZiBwb3NzaWJsZQoraWYgKGZpbGVfZXhpc3RzKF9fRElSX18uJy8uLi92ZW5kb3IvYXV0b2xvYWQucGhwJykpIHsKKyAgICByZXF1aXJlX29uY2UoX19ESVJfXy4nLy4uL3ZlbmRvci9hdXRvbG9hZC5waHAnKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2NsZWFudXAucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvY2xlYW51cC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2M2E5MAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2NsZWFudXAucGhwCkBAIC0wLDAgKzEsMTUgQEAKKzw/cGhwCisKK3JlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nLy4uL3NyYy9PQXV0aDIvQXV0b2xvYWRlci5waHAnKTsKK09BdXRoMlxBdXRvbG9hZGVyOjpyZWdpc3RlcigpOworCisvLyByZWdpc3RlciB0ZXN0IGNsYXNzZXMKK09BdXRoMlxBdXRvbG9hZGVyOjpyZWdpc3RlcihkaXJuYW1lKF9fRklMRV9fKS4nL2xpYicpOworCisvLyByZWdpc3RlciB2ZW5kb3JzIGlmIHBvc3NpYmxlCitpZiAoZmlsZV9leGlzdHMoX19ESVJfXy4nLy4uL3ZlbmRvci9hdXRvbG9hZC5waHAnKSkgeworICAgIHJlcXVpcmVfb25jZShfX0RJUl9fLicvLi4vdmVuZG9yL2F1dG9sb2FkLnBocCcpOworfQorCisvLyByZW1vdmUgdGhlIGR5bmFtb0RCIGRhdGFiYXNlIHRoYXQgd2FzIGNyZWF0ZWQgZm9yIHRoaXMgYnVpbGQKK09BdXRoMlxTdG9yYWdlXEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Y2xlYW51cFRyYXZpc0R5bmFtb0RiKCk7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9jb25maWcva2V5cy9pZF9yc2EgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9jb25maWcva2V5cy9pZF9yc2EKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThiOWVmZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2NvbmZpZy9rZXlzL2lkX3JzYQpAQCAtMCwwICsxLDE1IEBACistLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCitNSUlDWFFJQkFBS0JnUUM4ZnBpMDZOZlZZSEFPQW54Tk1WblRYci9wdHNMc05qUCt1QXQyZU8wY2M1SjlINVhWCis4bEZWdWpPclJ1L0pXaTFURG1Bdk9hZi82QTNCcGhJQTFQd3AwQUFxbFpkd2l6SXVtOGowS3pwc0dZSDVxUmVOCitRRHdGM29VU0tNc1FDQ0dDREhyRFlpZkcvcFJpOWJOMVpWakVYUHIzNUhKdUJlK0ZRcFpUczhEZXd3SURBUUFCCitBb0dBUmZOeE5rbm10eC9uMWJza1ovMDFpWlJ6QWdlNkJMRUUwTFY2UTRnUzdta1JadS9PeWl2MzlTbDV2VWxBCisrV2RHeExqa0J3S05qeEdOOFZ4dzkvQVNkOHJTc3FlQVVZSXdBZWlmWHJIaGo1REJQUVQvcERQa2VGbnA5QjF3CitDNmpvKzNBYkJRNC9iME9OU0lFbkNMMnhHR2dsU0lBeE8xN1QxVmlYcDdselhQRUNRUURlNjNua1JkV00wT0NiCitvYUhRUFQzRTI2MjI0bWFJc3RyR0ZVZHQ5eXczeUpmNGJPRjdUdGlQTGxMdUhzVFRnZTN6K2ZHNm50QzB4RzU2CisxY2wzN0MzWkFrRUEySGRWY1JHdWdOcC9xbVZ6NExKVHBEK1daS2k3M1BMQU80N3dET3JZaDlQbjJJNmZjRUgwCitDUG5nZ3Qxa280dWp2R3pGVHZSSDY0SFhhNmFQQ3Yxait3SkJBTVFNYWgzVlFQTmYvRGxEVkZFVW13OVhlQlpnCitWSGFpZlg4NTFhRWpnWExwNnFWajlJWUNtTGlMc0FtVmE5cnI2UDdwOGFzRDQxOG5abGFIVUhFMGVEa0NRUUNyCit1eGlzNkdNeDFLYTk3MWpjSlgyWDY5NkxveFhQZDBLc3ZYeVNNdXB2Nzl5YWdLUGE4bWdCaXdQanJuSytFUFZvCitjajZpb2NoQS9iU0NzaFAvbXdGckFrQkhFS1BpNlY2Z2I5NEppbkNUN3gzd2VhaGJkcDZiSjYvbnpCSC9wOVZBCitIb1QxSnR3TkZoR3Y5QkNqbUR5ZHNoUUhmU1dwWTlOeGxjY0JLTDdJVG04UgorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9jb25maWcva2V5cy9pZF9yc2EucHViIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvY29uZmlnL2tleXMvaWRfcnNhLnB1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWMxNWY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvY29uZmlnL2tleXMvaWRfcnNhLnB1YgpAQCAtMCwwICsxLDE2IEBACistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNpRENDQWZHZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRUUZBREE5TVFzd0NRWURWUVFHRXdKVlV6RUwKK01Ba0dBMVVFQ0JNQ1ZWUXhJVEFmQmdOVkJBb1RHRlpwWjI1bGRIUmxJRU52Y25CdmNtRjBhVzl1SUZOQ1dEQWUKK0Z3MHhNVEV3TVRVd016RTRNamRhRncwek1URXdNVEF3TXpFNE1qZGFNRDB4Q3pBSkJnTlZCQVlUQWxWVE1Rc3cKK0NRWURWUVFJRXdKVlZERWhNQjhHQTFVRUNoTVlWbWxuYm1WMGRHVWdRMjl5Y0c5eVlYUnBiMjRnVTBKWU1JR2YKK01BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDOGZwaTA2TmZWWUhBT0FueE5NVm5UWHIvcHRzTHMKK05qUCt1QXQyZU8wY2M1SjlINVhWOGxGVnVqT3JSdS9KV2kxVERtQXZPYWYvNkEzQnBoSUExUHdwMEFBcWxaZHcKK2l6SXVtOGowS3pwc0dZSDVxUmVOUUR3RjNvVVNLTXNRQ0NHQ0RIckRZaWZHL3BSaTliTjFaVmpFWFByMzVISnUKK0JlK0ZRcFpUczhEZXd3SURBUUFCbzRHWE1JR1VNQjBHQTFVZERnUVdCQlJlOGhyRVhtK1lpbTRZbEQ1TngrMUsKK3ZDWXM5REJsQmdOVkhTTUVYakJjZ0JSZThockVYbStZaW00WWxENU54KzFLdkNZczlLRkJwRDh3UFRFTE1Ba0cKK0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFsVlVNU0V3SHdZRFZRUUtFeGhXYVdkdVpYUjBaU0JEYjNKd2IzSmgKK2RHbHZiaUJUUWxpQ0FRQXdEQVlEVlIwVEJBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRUUZBQU9CZ1FCamh5UkQKK2xNN3ZuTG42ZHJnUVZmdFc1VjluREZBeVBBdWlHdk1JS0ZTYmlBZjFQeFhDUm41c2ZKcXV3V0tzSlVpNFpHTmwKK2FWaVhkRm1ONi9GMTNQU00reWc2M3RwS3kwZllxTWJUTStPZTVXdVNIa1NXMVZ1WU5IVisyNGFkZ05rL0ZSREwKK0ZScmxNMWY2czlWVExXdndHSXRqZnJvZjBCYThVcTdaRFNiOVhnPT0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9jb25maWcvc3RvcmFnZS5qc29uIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvY29uZmlnL3N0b3JhZ2UuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmQzZjIzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvY29uZmlnL3N0b3JhZ2UuanNvbgpAQCAtMCwwICsxLDE4OCBAQAoreworICAgICJhdXRob3JpemF0aW9uX2NvZGVzIjogeworICAgICAgICAidGVzdGNvZGUiOiB7CisgICAgICAgICAgICAiY2xpZW50X2lkIjogIlRlc3QgQ2xpZW50IElEIiwKKyAgICAgICAgICAgICJ1c2VyX2lkIjogIiIsCisgICAgICAgICAgICAicmVkaXJlY3RfdXJpIjogIiIsCisgICAgICAgICAgICAiZXhwaXJlcyI6ICI5OTk5OTk5OTk5IiwKKyAgICAgICAgICAgICJpZF90b2tlbiI6ICJJRFRPS0VOIgorICAgICAgICB9LAorICAgICAgICAidGVzdGNvZGUtd2l0aC1zY29wZSI6IHsKKyAgICAgICAgICAgICJjbGllbnRfaWQiOiAiVGVzdCBDbGllbnQgSUQiLAorICAgICAgICAgICAgInVzZXJfaWQiOiAiIiwKKyAgICAgICAgICAgICJyZWRpcmVjdF91cmkiOiAiIiwKKyAgICAgICAgICAgICJleHBpcmVzIjogIjk5OTk5OTk5OTkiLAorICAgICAgICAgICAgInNjb3BlIjogInNjb3BlMSBzY29wZTIiCisgICAgICAgIH0sCisgICAgICAgICJ0ZXN0Y29kZS1leHBpcmVkIjogeworICAgICAgICAgICAgImNsaWVudF9pZCI6ICJUZXN0IENsaWVudCBJRCIsCisgICAgICAgICAgICAidXNlcl9pZCI6ICIiLAorICAgICAgICAgICAgInJlZGlyZWN0X3VyaSI6ICIiLAorICAgICAgICAgICAgImV4cGlyZXMiOiAiMTM1Njk5ODQwMCIKKyAgICAgICAgfSwKKyAgICAgICAgInRlc3Rjb2RlLWVtcHR5LXNlY3JldCI6IHsKKyAgICAgICAgICAgICJjbGllbnRfaWQiOiAiVGVzdCBDbGllbnQgSUQgRW1wdHkgU2VjcmV0IiwKKyAgICAgICAgICAgICJ1c2VyX2lkIjogIiIsCisgICAgICAgICAgICAicmVkaXJlY3RfdXJpIjogIiIsCisgICAgICAgICAgICAiZXhwaXJlcyI6ICI5OTk5OTk5OTk5IgorICAgICAgICB9LAorICAgICAgICAidGVzdGNvZGUtb3BlbmlkIjogeworICAgICAgICAgICAgImNsaWVudF9pZCI6ICJUZXN0IENsaWVudCBJRCIsCisgICAgICAgICAgICAidXNlcl9pZCI6ICIiLAorICAgICAgICAgICAgInJlZGlyZWN0X3VyaSI6ICIiLAorICAgICAgICAgICAgImV4cGlyZXMiOiAiOTk5OTk5OTk5OSIsCisgICAgICAgICAgICAiaWRfdG9rZW4iOiAidGVzdF9pZF90b2tlbiIKKyAgICAgICAgfSwKKyAgICAgICAgInRlc3Rjb2RlLXJlZGlyZWN0LXVyaSI6IHsKKyAgICAgICAgICAgICJjbGllbnRfaWQiOiAiVGVzdCBDbGllbnQgSUQiLAorICAgICAgICAgICAgInVzZXJfaWQiOiAiIiwKKyAgICAgICAgICAgICJyZWRpcmVjdF91cmkiOiAiaHR0cDovL2JyZW50ZXJ0YWlubWVudC5jb20vdm9pbCVDMyVBMCIsCisgICAgICAgICAgICAiZXhwaXJlcyI6ICI5OTk5OTk5OTk5IiwKKyAgICAgICAgICAgICJpZF90b2tlbiI6ICJJRFRPS0VOIgorICAgICAgICB9CisgICAgfSwKKyAgICAiY2xpZW50X2NyZWRlbnRpYWxzIiA6IHsKKyAgICAgICAgIlRlc3QgQ2xpZW50IElEIjogeworICAgICAgICAgICAgImNsaWVudF9zZWNyZXQiOiAiVGVzdFNlY3JldCIKKyAgICAgICAgfSwKKyAgICAgICAgIlRlc3QgQ2xpZW50IElEIHdpdGggUmVkaXJlY3QgVXJpIjogeworICAgICAgICAgICAgImNsaWVudF9zZWNyZXQiOiAiVGVzdFNlY3JldDIiLAorICAgICAgICAgICAgInJlZGlyZWN0X3VyaSI6ICJodHRwOi8vYnJlbnRlcnRhaW5tZW50LmNvbSIKKyAgICAgICAgfSwKKyAgICAgICAgIlRlc3QgQ2xpZW50IElEIHdpdGggQnVnZ3kgUmVkaXJlY3QgVXJpIjogeworICAgICAgICAgICAgImNsaWVudF9zZWNyZXQiOiAiVGVzdFNlY3JldDIiLAorICAgICAgICAgICAgInJlZGlyZWN0X3VyaSI6ICIgIGh0dHA6Ly9icmVudGVydGFpbm1lbnQuY29tIgorICAgICAgICB9LAorICAgICAgICAiVGVzdCBDbGllbnQgSUQgd2l0aCBNdWx0aXBsZSBSZWRpcmVjdCBVcmlzIjogeworICAgICAgICAgICAgImNsaWVudF9zZWNyZXQiOiAiVGVzdFNlY3JldDMiLAorICAgICAgICAgICAgInJlZGlyZWN0X3VyaSI6ICJodHRwOi8vYnJlbnRlcnRhaW5tZW50LmNvbSBodHRwOi8vbW9yZWhhemFyZHMuY29tIgorICAgICAgICB9LAorICAgICAgICAiVGVzdCBDbGllbnQgSUQgd2l0aCBSZWRpcmVjdCBVcmkgUGFydHMiOiB7CisgICAgICAgICAgICAiY2xpZW50X3NlY3JldCI6ICJUZXN0U2VjcmV0NCIsCisgICAgICAgICAgICAicmVkaXJlY3RfdXJpIjogImh0dHA6Ly91c2VyOnBhc3NAYnJlbnRlcnRhaW5tZW50LmNvbToyMjIyL2F1dGhvcml6ZS9jYj9hdXRoX3R5cGU9b2F1dGgmdGVzdD10cnVlIgorICAgICAgICB9LAorICAgICAgICAiVGVzdCBTb21lIE90aGVyIENsaWVudCI6IHsKKyAgICAgICAgICAgICJjbGllbnRfc2VjcmV0IjogIlRlc3RTZWNyZXQzIgorICAgICAgICB9LAorICAgICAgICAiVGVzdCBDbGllbnQgSUQgRW1wdHkgU2VjcmV0IjogeworICAgICAgICAgICAgImNsaWVudF9zZWNyZXQiOiAiIgorICAgICAgICB9LAorICAgICAgICAgIlRlc3QgQ2xpZW50IElEIEZvciBQYXNzd29yZCBHcmFudCI6IHsKKyAgICAgICAgICAgICJncmFudF90eXBlcyI6ICJwYXNzd29yZCIsCisgICAgICAgICAgICAiY2xpZW50X3NlY3JldCI6ICIiCisgICAgICAgIH0sCisgICAgICAgICJDbGllbnQgSUQgV2l0aCBVc2VyIElEIjogeworICAgICAgICAgICAgImNsaWVudF9zZWNyZXQiOiAiVGVzdFNlY3JldCIsCisgICAgICAgICAgICAidXNlcl9pZCI6ICJicmVudEBicmVudGVydGFpbm1lbnQuY29tIgorICAgICAgICB9LAorICAgICAgICAib2F1dGhfdGVzdF9jbGllbnQiOiB7CisgICAgICAgICAgICAiY2xpZW50X3NlY3JldCI6ICJ0ZXN0cGFzcyIsCisgICAgICAgICAgICAiZ3JhbnRfdHlwZXMiOiAiaW1wbGljaXQgcGFzc3dvcmQiCisgICAgICAgIH0KKyAgICB9LAorICAgICJ1c2VyX2NyZWRlbnRpYWxzIiA6IHsKKyAgICAgICAgInRlc3QtdXNlcm5hbWUiOiB7CisgICAgICAgICAgICAicGFzc3dvcmQiOiAidGVzdHBhc3MiCisgICAgICAgIH0sCisgICAgICAgICJ0ZXN0dXNlcm5hbWUiOiAgeworICAgICAgICAgICAgInBhc3N3b3JkIjogInRlc3RwYXNzIgorICAgICAgICB9LAorICAgICAgICAidGVzdHVzZXIiOiB7CisgICAgICAgICAgICAicGFzc3dvcmQiOiAicGFzc3dvcmQiLAorICAgICAgICAgICAgImVtYWlsIjogInRlc3R1c2VyQHRlc3QuY29tIiwKKyAgICAgICAgICAgICJlbWFpbF92ZXJpZmllZCI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgImpvaG5kb2UiOiB7CisgICAgICAgICAgICAicGFzc3dvcmQiOiAicGFzc3dvcmQiCisgICAgICAgIH0KKyAgICB9LAorICAgICJyZWZyZXNoX3Rva2VucyIgOiB7CisgICAgICAgICJ0ZXN0LXJlZnJlc2h0b2tlbiI6IHsKKyAgICAgICAgICAgICJyZWZyZXNoX3Rva2VuIjogInRlc3QtcmVmcmVzaHRva2VuIiwKKyAgICAgICAgICAgICJjbGllbnRfaWQiOiAiVGVzdCBDbGllbnQgSUQiLAorICAgICAgICAgICAgInVzZXJfaWQiOiAidGVzdC11c2VybmFtZSIsCisgICAgICAgICAgICAiZXhwaXJlcyI6IDAsCisgICAgICAgICAgICAic2NvcGUiOiBudWxsCisgICAgICAgIH0sCisgICAgICAgICJ0ZXN0LXJlZnJlc2h0b2tlbi13aXRoLXNjb3BlIjogeworICAgICAgICAgICAgInJlZnJlc2hfdG9rZW4iOiAidGVzdC1yZWZyZXNodG9rZW4iLAorICAgICAgICAgICAgImNsaWVudF9pZCI6ICJUZXN0IENsaWVudCBJRCIsCisgICAgICAgICAgICAidXNlcl9pZCI6ICJ0ZXN0LXVzZXJuYW1lIiwKKyAgICAgICAgICAgICJleHBpcmVzIjogMCwKKyAgICAgICAgICAgICJzY29wZSI6ICJzY29wZTEgc2NvcGUyIgorICAgICAgICB9CisgICAgfSwKKyAgICAiYWNjZXNzX3Rva2VucyIgOiB7CisgICAgICAgICJhY2Nlc3N0b2tlbi1leHBpcmVkIjogeworICAgICAgICAgICAgImFjY2Vzc190b2tlbiI6ICJhY2Nlc3N0b2tlbi1leHBpcmVkIiwKKyAgICAgICAgICAgICJjbGllbnRfaWQiOiAiVGVzdCBDbGllbnQgSUQiLAorICAgICAgICAgICAgImV4cGlyZXMiOiAxMjM0NTY3LAorICAgICAgICAgICAgInNjb3BlIjogbnVsbAorICAgICAgICB9LAorICAgICAgICAiYWNjZXNzdG9rZW4tc2NvcGUiOiB7CisgICAgICAgICAgICAiYWNjZXNzX3Rva2VuIjogImFjY2Vzc3Rva2VuLXNjb3BlIiwKKyAgICAgICAgICAgICJjbGllbnRfaWQiOiAiVGVzdCBDbGllbnQgSUQiLAorICAgICAgICAgICAgImV4cGlyZXMiOiA5OTk5OTk5OTkwMCwKKyAgICAgICAgICAgICJzY29wZSI6ICJ0ZXN0c2NvcGUiCisgICAgICAgIH0sCisgICAgICAgICJhY2Nlc3N0b2tlbi1vcGVuaWQtY29ubmVjdCI6IHsKKyAgICAgICAgICAgICJhY2Nlc3NfdG9rZW4iOiAiYWNjZXNzdG9rZW4tb3BlbmlkLWNvbm5lY3QiLAorICAgICAgICAgICAgImNsaWVudF9pZCI6ICJUZXN0IENsaWVudCBJRCIsCisgICAgICAgICAgICAidXNlcl9pZCI6ICJ0ZXN0dXNlciIsCisgICAgICAgICAgICAiZXhwaXJlcyI6IDk5OTk5OTk5OTAwLAorICAgICAgICAgICAgInNjb3BlIjogIm9wZW5pZCBlbWFpbCIKKyAgICAgICAgfSwKKyAgICAgICAgImFjY2Vzc3Rva2VuLW1hbGZvcm1lZCI6IHsKKyAgICAgICAgICAgICJhY2Nlc3NfdG9rZW4iOiAiYWNjZXNzdG9rZW4tbWFsbGZvcm1lZCIsCisgICAgICAgICAgICAiZXhwaXJlcyI6IDk5OTk5OTk5OTAwLAorICAgICAgICAgICAgInNjb3BlIjogInRlc3RzY29wZSIKKyAgICAgICAgfQorICAgIH0sCisgICAgImp3dCI6IHsKKyAgICAgICAgIlRlc3QgQ2xpZW50IElEIjogeworICAgICAgICAgICAgImtleSI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDNS9TeFZsRThnbnBGcUN4Z2wyd2poelk3dVxuY0VpMDBzMGtVZzN4cDdsVkV2Z0xnWWNBbkhpV3ArZ3RTak9GZkgyenN2cGlXbTZMejVmNzQzai9GRXpISU8xb1xud1IwcDRkOXBPYUpLMDdkMDErUnpvUUxPSVFBZ1hycjRUMUNDV1Vlc25jd3dQQlZDeXkyTXczTm1obXI5TXJGOFxuVWx2ZFJLQnhyaVJubFAzcUpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0iLAorICAgICAgICAgICAgInN1YmplY3QiOiAidGVzdHVzZXJAb3VyZG9tYWluLmNvbSIKKyAgICAgICAgfSwKKyAgICAgICAgIlRlc3QgQ2xpZW50IElEIFBIUC01LjIiOiB7CisgICAgICAgICAgICAia2V5IjogIm15c2VjcmV0a2V5IiwKKyAgICAgICAgICAgICJzdWJqZWN0IjogInRlc3R1c2VyQG91cmRvbWFpbi5jb20iCisgICAgICAgIH0sCisgICAgICAgICJNaXNzaW5nIEtleSBDbGllbnQiOiB7CisgICAgICAgICAgICAia2V5IjogbnVsbCwKKyAgICAgICAgICAgICJzdWJqZWN0IjogInRlc3R1c2VyQG91cmRvbWFpbi5jb20iCisgICAgICAgIH0sCisgICAgICAgICJNaXNzaW5nIEtleSBDbGllbnQgUEhQLTUuMiI6IHsKKyAgICAgICAgICAgICJrZXkiOiBudWxsLAorICAgICAgICAgICAgInN1YmplY3QiOiAidGVzdHVzZXJAb3VyZG9tYWluLmNvbSIKKyAgICAgICAgfSwKKyAgICAgICAgIm9hdXRoX3Rlc3RfY2xpZW50IjogeworICAgICAgICAgICAgImtleSI6ICItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUNpRENDQWZHZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRUUZBREE5TVFzd0NRWURWUVFHRXdKVlV6RUxcbk1Ba0dBMVVFQ0JNQ1ZWUXhJVEFmQmdOVkJBb1RHRlpwWjI1bGRIUmxJRU52Y25CdmNtRjBhVzl1SUZOQ1dEQWVcbkZ3MHhNVEV3TVRVd016RTRNamRhRncwek1URXdNVEF3TXpFNE1qZGFNRDB4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dcbkNRWURWUVFJRXdKVlZERWhNQjhHQTFVRUNoTVlWbWxuYm1WMGRHVWdRMjl5Y0c5eVlYUnBiMjRnVTBKWU1JR2Zcbk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDOGZwaTA2TmZWWUhBT0FueE5NVm5UWHIvcHRzTHNcbk5qUCt1QXQyZU8wY2M1SjlINVhWOGxGVnVqT3JSdS9KV2kxVERtQXZPYWYvNkEzQnBoSUExUHdwMEFBcWxaZHdcbml6SXVtOGowS3pwc0dZSDVxUmVOUUR3RjNvVVNLTXNRQ0NHQ0RIckRZaWZHL3BSaTliTjFaVmpFWFByMzVISnVcbkJlK0ZRcFpUczhEZXd3SURBUUFCbzRHWE1JR1VNQjBHQTFVZERnUVdCQlJlOGhyRVhtK1lpbTRZbEQ1TngrMUtcbnZDWXM5REJsQmdOVkhTTUVYakJjZ0JSZThockVYbStZaW00WWxENU54KzFLdkNZczlLRkJwRDh3UFRFTE1Ba0dcbkExVUVCaE1DVlZNeEN6QUpCZ05WQkFnVEFsVlVNU0V3SHdZRFZRUUtFeGhXYVdkdVpYUjBaU0JEYjNKd2IzSmhcbmRHbHZiaUJUUWxpQ0FRQXdEQVlEVlIwVEJBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRUUZBQU9CZ1FCamh5UkRcbmxNN3ZuTG42ZHJnUVZmdFc1VjluREZBeVBBdWlHdk1JS0ZTYmlBZjFQeFhDUm41c2ZKcXV3V0tzSlVpNFpHTmxcbmFWaVhkRm1ONi9GMTNQU00reWc2M3RwS3kwZllxTWJUTStPZTVXdVNIa1NXMVZ1WU5IVisyNGFkZ05rL0ZSRExcbkZScmxNMWY2czlWVExXdndHSXRqZnJvZjBCYThVcTdaRFNiOVhnPT1cbi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0iLAorICAgICAgICAgICAgInN1YmplY3QiOiAidGVzdF9zdWJqZWN0IgorICAgICAgICB9CisgICAgfSwKKyAgICAianRpIjogWworICAgICAgICB7CisgICAgICAgICAgICAiaXNzdWVyIjogIlRlc3QgQ2xpZW50IElEIiwKKyAgICAgICAgICAgICJzdWJqZWN0IjogInRlc3R1c2VyQG91cmRvbWFpbi5jb20iLAorICAgICAgICAgICAgImF1ZGllbmNlIjogImh0dHA6Ly9teWFwcC5jb20vb2F1dGgvYXV0aCIsCisgICAgICAgICAgICAiZXhwaXJlcyI6IDk5OTk5OTk5OTAwLAorICAgICAgICAgICAgImp0aSI6ICJ1c2VkX2p0aSIKKyAgICAgICAgfQorICAgIF0sCisgICAgInN1cHBvcnRlZF9zY29wZXMiIDogWworICAgICAgICAic2NvcGUxIiwKKyAgICAgICAgInNjb3BlMiIsCisgICAgICAgICJzY29wZTMiLAorICAgICAgICAiY2xpZW50c2NvcGUxIiwKKyAgICAgICAgImNsaWVudHNjb3BlMiIsCisgICAgICAgICJjbGllbnRzY29wZTMiLAorICAgICAgICAic3VwcG9ydGVkc2NvcGUxIiwKKyAgICAgICAgInN1cHBvcnRlZHNjb3BlMiIsCisgICAgICAgICJzdXBwb3J0ZWRzY29wZTMiLAorICAgICAgICAic3VwcG9ydGVkc2NvcGU0IgorICAgIF0sCisgICAgImtleXMiOiB7CisgICAgICAgICJwdWJsaWNfa2V5IjogIi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLVxuTUlJQ2lEQ0NBZkdnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFRRkFEQTlNUXN3Q1FZRFZRUUdFd0pWVXpFTFxuTUFrR0ExVUVDQk1DVlZReElUQWZCZ05WQkFvVEdGWnBaMjVsZEhSbElFTnZjbkJ2Y21GMGFXOXVJRk5DV0RBZVxuRncweE1URXdNVFV3TXpFNE1qZGFGdzB6TVRFd01UQXdNekU0TWpkYU1EMHhDekFKQmdOVkJBWVRBbFZUTVFzd1xuQ1FZRFZRUUlFd0pWVkRFaE1COEdBMVVFQ2hNWVZtbG5ibVYwZEdVZ1EyOXljRzl5WVhScGIyNGdVMEpZTUlHZlxuTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUM4ZnBpMDZOZlZZSEFPQW54Tk1WblRYci9wdHNMc1xuTmpQK3VBdDJlTzBjYzVKOUg1WFY4bEZWdWpPclJ1L0pXaTFURG1Bdk9hZi82QTNCcGhJQTFQd3AwQUFxbFpkd1xuaXpJdW04ajBLenBzR1lINXFSZU5RRHdGM29VU0tNc1FDQ0dDREhyRFlpZkcvcFJpOWJOMVpWakVYUHIzNUhKdVxuQmUrRlFwWlRzOERld3dJREFRQUJvNEdYTUlHVU1CMEdBMVVkRGdRV0JCUmU4aHJFWG0rWWltNFlsRDVOeCsxS1xudkNZczlEQmxCZ05WSFNNRVhqQmNnQlJlOGhyRVhtK1lpbTRZbEQ1TngrMUt2Q1lzOUtGQnBEOHdQVEVMTUFrR1xuQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWdUQWxWVU1TRXdId1lEVlFRS0V4aFdhV2R1WlhSMFpTQkRiM0p3YjNKaFxuZEdsdmJpQlRRbGlDQVFBd0RBWURWUjBUQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFRRkFBT0JnUUJqaHlSRFxubE03dm5MbjZkcmdRVmZ0VzVWOW5ERkF5UEF1aUd2TUlLRlNiaUFmMVB4WENSbjVzZkpxdXdXS3NKVWk0WkdObFxuYVZpWGRGbU42L0YxM1BTTSt5ZzYzdHBLeTBmWXFNYlRNK09lNVd1U0hrU1cxVnVZTkhWKzI0YWRnTmsvRlJETFxuRlJybE0xZjZzOVZUTFd2d0dJdGpmcm9mMEJhOFVxN1pEU2I5WGc9PVxuLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLSIsCisgICAgICAgICJwcml2YXRlX2tleSI6ICItLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tXG5NSUlDWFFJQkFBS0JnUUM4ZnBpMDZOZlZZSEFPQW54Tk1WblRYci9wdHNMc05qUCt1QXQyZU8wY2M1SjlINVhWXG44bEZWdWpPclJ1L0pXaTFURG1Bdk9hZi82QTNCcGhJQTFQd3AwQUFxbFpkd2l6SXVtOGowS3pwc0dZSDVxUmVOXG5RRHdGM29VU0tNc1FDQ0dDREhyRFlpZkcvcFJpOWJOMVpWakVYUHIzNUhKdUJlK0ZRcFpUczhEZXd3SURBUUFCXG5Bb0dBUmZOeE5rbm10eC9uMWJza1ovMDFpWlJ6QWdlNkJMRUUwTFY2UTRnUzdta1JadS9PeWl2MzlTbDV2VWxBXG4rV2RHeExqa0J3S05qeEdOOFZ4dzkvQVNkOHJTc3FlQVVZSXdBZWlmWHJIaGo1REJQUVQvcERQa2VGbnA5QjF3XG5DNmpvKzNBYkJRNC9iME9OU0lFbkNMMnhHR2dsU0lBeE8xN1QxVmlYcDdselhQRUNRUURlNjNua1JkV00wT0NiXG5vYUhRUFQzRTI2MjI0bWFJc3RyR0ZVZHQ5eXczeUpmNGJPRjdUdGlQTGxMdUhzVFRnZTN6K2ZHNm50QzB4RzU2XG4xY2wzN0MzWkFrRUEySGRWY1JHdWdOcC9xbVZ6NExKVHBEK1daS2k3M1BMQU80N3dET3JZaDlQbjJJNmZjRUgwXG5DUG5nZ3Qxa280dWp2R3pGVHZSSDY0SFhhNmFQQ3Yxait3SkJBTVFNYWgzVlFQTmYvRGxEVkZFVW13OVhlQlpnXG5WSGFpZlg4NTFhRWpnWExwNnFWajlJWUNtTGlMc0FtVmE5cnI2UDdwOGFzRDQxOG5abGFIVUhFMGVEa0NRUUNyXG51eGlzNkdNeDFLYTk3MWpjSlgyWDY5NkxveFhQZDBLc3ZYeVNNdXB2Nzl5YWdLUGE4bWdCaXdQanJuSytFUFZvXG5jajZpb2NoQS9iU0NzaFAvbXdGckFrQkhFS1BpNlY2Z2I5NEppbkNUN3gzd2VhaGJkcDZiSjYvbnpCSC9wOVZBXG5Ib1QxSnR3TkZoR3Y5QkNqbUR5ZHNoUUhmU1dwWTlOeGxjY0JLTDdJVG04UlxuLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0iCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3Rlc3QvbGliL09BdXRoMi9SZXF1ZXN0L1Rlc3RSZXF1ZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2xpYi9PQXV0aDIvUmVxdWVzdC9UZXN0UmVxdWVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkxNmZmMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2xpYi9PQXV0aDIvUmVxdWVzdC9UZXN0UmVxdWVzdC5waHAKQEAgLTAsMCArMSw2NiBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxSZXF1ZXN0OworCit1c2UgT0F1dGgyXFJlcXVlc3Q7Cit1c2UgT0F1dGgyXFJlcXVlc3RJbnRlcmZhY2U7CisKKy8qKgorKgorKi8KK2NsYXNzIFRlc3RSZXF1ZXN0IGV4dGVuZHMgUmVxdWVzdCBpbXBsZW1lbnRzIFJlcXVlc3RJbnRlcmZhY2UKK3sKKyAgICBwdWJsaWMgJHF1ZXJ5LCAkcmVxdWVzdCwgJHNlcnZlciwgJGhlYWRlcnM7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnF1ZXJ5ID0gJF9HRVQ7CisgICAgICAgICR0aGlzLT5yZXF1ZXN0ID0gJF9QT1NUOworICAgICAgICAkdGhpcy0+c2VydmVyICA9ICRfU0VSVkVSOworICAgICAgICAkdGhpcy0+aGVhZGVycyA9IGFycmF5KCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHF1ZXJ5KCRuYW1lLCAkZGVmYXVsdCA9IG51bGwpCisgICAgeworICAgICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPnF1ZXJ5WyRuYW1lXSkgPyAkdGhpcy0+cXVlcnlbJG5hbWVdIDogJGRlZmF1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHJlcXVlc3QoJG5hbWUsICRkZWZhdWx0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cmVxdWVzdFskbmFtZV0pID8gJHRoaXMtPnJlcXVlc3RbJG5hbWVdIDogJGRlZmF1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNlcnZlcigkbmFtZSwgJGRlZmF1bHQgPSBudWxsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5zZXJ2ZXJbJG5hbWVdKSA/ICR0aGlzLT5zZXJ2ZXJbJG5hbWVdIDogJGRlZmF1bHQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEFsbFF1ZXJ5UGFyYW1ldGVycygpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5OworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRRdWVyeShhcnJheSAkcXVlcnkpCisgICAgeworICAgICAgICAkdGhpcy0+cXVlcnkgPSAkcXVlcnk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldE1ldGhvZCgkbWV0aG9kKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnNlcnZlclsnUkVRVUVTVF9NRVRIT0QnXSA9ICRtZXRob2Q7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFBvc3QoYXJyYXkgJHBhcmFtcykKKyAgICB7CisgICAgICAgICR0aGlzLT5zZXRNZXRob2QoJ1BPU1QnKTsKKyAgICAgICAgJHRoaXMtPnJlcXVlc3QgPSAkcGFyYW1zOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlUG9zdChhcnJheSAkcGFyYW1zID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgICRyZXF1ZXN0ID0gbmV3IHNlbGYoKTsKKyAgICAgICAgJHJlcXVlc3QtPnNldFBvc3QoJHBhcmFtcyk7CisKKyAgICAgICAgcmV0dXJuICRyZXF1ZXN0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2xpYi9PQXV0aDIvU3RvcmFnZS9CYXNlVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9saWIvT0F1dGgyL1N0b3JhZ2UvQmFzZVRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4NDFkM2EKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9saWIvT0F1dGgyL1N0b3JhZ2UvQmFzZVRlc3QucGhwCkBAIC0wLDAgKzEsMzggQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKwordXNlIFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlOworCithYnN0cmFjdCBjbGFzcyBCYXNlVGVzdCBleHRlbmRzIFRlc3RDYXNlCit7CisgICAgcHVibGljIGZ1bmN0aW9uIHByb3ZpZGVTdG9yYWdlKCkKKyAgICB7CisgICAgICAgICRtZW1vcnkgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1lbW9yeVN0b3JhZ2UoKTsKKyAgICAgICAgJHNxbGl0ZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0U3FsaXRlUGRvKCk7CisgICAgICAgICRteXNxbCA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0TXlzcWxQZG8oKTsKKyAgICAgICAgJHBvc3RncmVzID0gQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXRQb3N0Z3Jlc1BkbygpOworICAgICAgICAkbW9uZ28gPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldE1vbmdvKCk7CisgICAgICAgICRtb25nb0RiID0gQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXRNb25nb0RCKCk7CisgICAgICAgICRyZWRpcyA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0UmVkaXNTdG9yYWdlKCk7CisgICAgICAgICRjYXNzYW5kcmEgPSBCb290c3RyYXA6OmdldEluc3RhbmNlKCktPmdldENhc3NhbmRyYVN0b3JhZ2UoKTsKKyAgICAgICAgJGR5bmFtb2RiID0gQm9vdHN0cmFwOjpnZXRJbnN0YW5jZSgpLT5nZXREeW5hbW9EYlN0b3JhZ2UoKTsKKyAgICAgICAgJGNvdWNoYmFzZSA9IEJvb3RzdHJhcDo6Z2V0SW5zdGFuY2UoKS0+Z2V0Q291Y2hiYXNlKCk7CisKKyAgICAgICAgLyogaGFjayB1bnRpbCB3ZSBjYW4gZml4ICJkZWZhdWx0X3Njb3BlIiBkZXBlbmRlbmNpZXMgaW4gb3RoZXIgdGVzdHMgKi8KKyAgICAgICAgJG1lbW9yeS0+ZGVmYXVsdFNjb3BlID0gJ2RlZmF1bHRzY29wZTEgZGVmYXVsdHNjb3BlMic7CisKKyAgICAgICAgcmV0dXJuIGFycmF5KAorICAgICAgICAgICAgYXJyYXkoJG1lbW9yeSksCisgICAgICAgICAgICBhcnJheSgkc3FsaXRlKSwKKyAgICAgICAgICAgIGFycmF5KCRteXNxbCksCisgICAgICAgICAgICBhcnJheSgkcG9zdGdyZXMpLAorICAgICAgICAgICAgYXJyYXkoJG1vbmdvKSwKKyAgICAgICAgICAgIGFycmF5KCRtb25nb0RiKSwKKyAgICAgICAgICAgIGFycmF5KCRyZWRpcyksCisgICAgICAgICAgICBhcnJheSgkY2Fzc2FuZHJhKSwKKyAgICAgICAgICAgIGFycmF5KCRkeW5hbW9kYiksCisgICAgICAgICAgICBhcnJheSgkY291Y2hiYXNlKSwKKyAgICAgICAgKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9saWIvT0F1dGgyL1N0b3JhZ2UvQm9vdHN0cmFwLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2xpYi9PQXV0aDIvU3RvcmFnZS9Cb290c3RyYXAucGhwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlNDI4ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9saWIvT0F1dGgyL1N0b3JhZ2UvQm9vdHN0cmFwLnBocApAQCAtMCwwICsxLDk2NyBAQAorPD9waHAKKworbmFtZXNwYWNlIE9BdXRoMlxTdG9yYWdlOworCitjbGFzcyBCb290c3RyYXAKK3sKKyAgICBjb25zdCBEWU5BTU9EQl9QSFBfVkVSU0lPTiA9ICdub25lJzsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgJGluc3RhbmNlOworICAgIHByaXZhdGUgJG15c3FsOworICAgIHByaXZhdGUgJHNxbGl0ZTsKKyAgICBwcml2YXRlICRwb3N0Z3JlczsKKyAgICBwcml2YXRlICRtb25nbzsKKyAgICBwcml2YXRlICRtb25nb0RiOworICAgIHByaXZhdGUgJHJlZGlzOworICAgIHByaXZhdGUgJGNhc3NhbmRyYTsKKyAgICBwcml2YXRlICRjb25maWdEaXI7CisgICAgcHJpdmF0ZSAkZHluYW1vZGI7CisgICAgcHJpdmF0ZSAkY291Y2hiYXNlOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKKyAgICB7CisgICAgICAgICR0aGlzLT5jb25maWdEaXIgPSBfX0RJUl9fLicvLi4vLi4vLi4vY29uZmlnJzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmICghc2VsZjo6JGluc3RhbmNlKSB7CisgICAgICAgICAgICBzZWxmOjokaW5zdGFuY2UgPSBuZXcgc2VsZigpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNlbGY6OiRpbnN0YW5jZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3FsaXRlUGRvKCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPnNxbGl0ZSkgeworICAgICAgICAgICAgJHRoaXMtPnJlbW92ZVNxbGl0ZURiKCk7CisgICAgICAgICAgICAkcGRvID0gbmV3IFxQRE8oc3ByaW50Zignc3FsaXRlOiVzJywgJHRoaXMtPmdldFNxbGl0ZURpcigpKSk7CisgICAgICAgICAgICAkcGRvLT5zZXRBdHRyaWJ1dGUoXFBETzo6QVRUUl9FUlJNT0RFLCBcUERPOjpFUlJNT0RFX0VYQ0VQVElPTik7CisgICAgICAgICAgICAkdGhpcy0+Y3JlYXRlU3FsaXRlRGIoJHBkbyk7CisKKyAgICAgICAgICAgICR0aGlzLT5zcWxpdGUgPSBuZXcgUGRvKCRwZG8pOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zcWxpdGU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFBvc3RncmVzUGRvKCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPnBvc3RncmVzKSB7CisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJ3Bnc3FsJywgXFBETzo6Z2V0QXZhaWxhYmxlRHJpdmVycygpKSkgeworICAgICAgICAgICAgICAgICR0aGlzLT5yZW1vdmVQb3N0Z3Jlc0RiKCk7CisgICAgICAgICAgICAgICAgJHRoaXMtPmNyZWF0ZVBvc3RncmVzRGIoKTsKKyAgICAgICAgICAgICAgICBpZiAoJHBkbyA9ICR0aGlzLT5nZXRQb3N0Z3Jlc0RyaXZlcigpKSB7CisgICAgICAgICAgICAgICAgICAgICRwZG8tPnNldEF0dHJpYnV0ZShcUERPOjpBVFRSX0VSUk1PREUsIFxQRE86OkVSUk1PREVfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnBvcHVsYXRlUG9zdGdyZXNEYigkcGRvKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnBvc3RncmVzID0gbmV3IFBkbygkcGRvKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICR0aGlzLT5wb3N0Z3JlcyA9IG5ldyBOdWxsU3RvcmFnZSgnUG9zdGdyZXMnLCAnTWlzc2luZyBwb3N0Z3JlcyBQRE8gZXh0ZW5zaW9uLicpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5wb3N0Z3JlczsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UG9zdGdyZXNEcml2ZXIoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICRwZG8gPSBuZXcgXFBETygncGdzcWw6aG9zdD1sb2NhbGhvc3Q7ZGJuYW1lPW9hdXRoMl9zZXJ2ZXJfcGhwJywgJ3Bvc3RncmVzJyk7CisKKyAgICAgICAgICAgIHJldHVybiAkcGRvOworICAgICAgICB9IGNhdGNoIChcUERPRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICAkdGhpcy0+cG9zdGdyZXMgPSBuZXcgTnVsbFN0b3JhZ2UoJ1Bvc3RncmVzJywgJGUtPmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWVtb3J5U3RvcmFnZSgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IE1lbW9yeShqc29uX2RlY29kZShmaWxlX2dldF9jb250ZW50cygkdGhpcy0+Y29uZmlnRGlyLiAnL3N0b3JhZ2UuanNvbicpLCB0cnVlKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlZGlzU3RvcmFnZSgpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5yZWRpcykgeworICAgICAgICAgICAgaWYgKGNsYXNzX2V4aXN0cygnUHJlZGlzXENsaWVudCcpKSB7CisgICAgICAgICAgICAgICAgJHJlZGlzID0gbmV3IFxQcmVkaXNcQ2xpZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT50ZXN0UmVkaXNDb25uZWN0aW9uKCRyZWRpcykpIHsKKyAgICAgICAgICAgICAgICAgICAgJHJlZGlzLT5mbHVzaGRiKCk7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5yZWRpcyA9IG5ldyBSZWRpcygkcmVkaXMpOworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y3JlYXRlUmVkaXNEYigkdGhpcy0+cmVkaXMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5yZWRpcyA9IG5ldyBOdWxsU3RvcmFnZSgnUmVkaXMnLCAnVW5hYmxlIHRvIGNvbm5lY3QgdG8gcmVkaXMgc2VydmVyIG9uIHBvcnQgNjM3OScpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPnJlZGlzID0gbmV3IE51bGxTdG9yYWdlKCdSZWRpcycsICdNaXNzaW5nIHJlZGlzIGxpYnJhcnkuIFBsZWFzZSBydW4gImNvbXBvc2VyLnBoYXIgcmVxdWlyZSBwcmVkaXMvcHJlZGlzOmRldi1tYXN0ZXIiJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlzOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gdGVzdFJlZGlzQ29ubmVjdGlvbihcUHJlZGlzXENsaWVudCAkcmVkaXMpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgJHJlZGlzLT5jb25uZWN0KCk7CisgICAgICAgIH0gY2F0Y2ggKFxQcmVkaXNcQ29tbXVuaWNhdGlvbkV4Y2VwdGlvbiAkZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAvLyB3ZSB3ZXJlIHVuYWJsZSB0byBjb25uZWN0IHRvIHRoZSByZWRpcyBzZXJ2ZXIKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNeXNxbFBkbygpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5teXNxbCkgeworICAgICAgICAgICAgJHBkbyA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICRwZG8gPSBuZXcgXFBETygnbXlzcWw6aG9zdD1sb2NhbGhvc3Q7JywgJ3Jvb3QnKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFxQRE9FeGNlcHRpb24gJGUpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+bXlzcWwgPSBuZXcgTnVsbFN0b3JhZ2UoJ015U1FMJywgJ1VuYWJsZSB0byBjb25uZWN0IHRvIE15U1FMIG9uIHJvb3RAbG9jYWxob3N0Jyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgkcGRvKSB7CisgICAgICAgICAgICAgICAgJHBkby0+c2V0QXR0cmlidXRlKFxQRE86OkFUVFJfRVJSTU9ERSwgXFBETzo6RVJSTU9ERV9FWENFUFRJT04pOworICAgICAgICAgICAgICAgICR0aGlzLT5yZW1vdmVNeXNxbERiKCRwZG8pOworICAgICAgICAgICAgICAgICR0aGlzLT5jcmVhdGVNeXNxbERiKCRwZG8pOworCisgICAgICAgICAgICAgICAgJHRoaXMtPm15c3FsID0gbmV3IFBkbygkcGRvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWw7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE1vbmdvKCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPm1vbmdvKSB7CisgICAgICAgICAgICBpZiAoY2xhc3NfZXhpc3RzKCdNb25nb0NsaWVudCcpKSB7CisgICAgICAgICAgICAgICAgJG1vbmdvID0gbmV3IFxNb25nb0NsaWVudCgnbW9uZ29kYjovL2xvY2FsaG9zdDoyNzAxNycsIGFycmF5KCdjb25uZWN0JyA9PiBmYWxzZSkpOworICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+dGVzdE1vbmdvQ29ubmVjdGlvbigkbW9uZ28pKSB7CisgICAgICAgICAgICAgICAgICAgICRkYiA9ICRtb25nby0+b2F1dGgyX3NlcnZlcl9waHBfbGVnYWN5OworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cmVtb3ZlTW9uZ28oJGRiKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNyZWF0ZU1vbmdvKCRkYik7CisKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vbmdvID0gbmV3IE1vbmdvKCRkYik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vbmdvID0gbmV3IE51bGxTdG9yYWdlKCdNb25nbycsICdVbmFibGUgdG8gY29ubmVjdCB0byBtb25nbyBzZXJ2ZXIgb24gImxvY2FsaG9zdDoyNzAxNyInKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICR0aGlzLT5tb25nbyA9IG5ldyBOdWxsU3RvcmFnZSgnTW9uZ28nLCAnTWlzc2luZyBtb25nbyBwaHAgZXh0ZW5zaW9uLiBQbGVhc2UgaW5zdGFsbCBtb25nby5zbycpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5tb25nbzsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TW9uZ29EYigpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5tb25nb0RiKSB7CisgICAgICAgICAgICBpZiAoY2xhc3NfZXhpc3RzKCdNb25nb0RCXENsaWVudCcpKSB7CisgICAgICAgICAgICAgICAgJG1vbmdvRGIgPSBuZXcgXE1vbmdvREJcQ2xpZW50KCdtb25nb2RiOi8vbG9jYWxob3N0OjI3MDE3Jyk7CisgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT50ZXN0TW9uZ29EQkNvbm5lY3Rpb24oJG1vbmdvRGIpKSB7CisgICAgICAgICAgICAgICAgICAgICRkYiA9ICRtb25nb0RiLT5vYXV0aDJfc2VydmVyX3BocDsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlbW92ZU1vbmdvRGIoJGRiKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNyZWF0ZU1vbmdvRGIoJGRiKTsKKworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bW9uZ29EYiA9IG5ldyBNb25nb0RCKCRkYik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vbmdvRGIgPSBuZXcgTnVsbFN0b3JhZ2UoJ01vbmdvREInLCAnVW5hYmxlIHRvIGNvbm5lY3QgdG8gbW9uZ28gc2VydmVyIG9uICJsb2NhbGhvc3Q6MjcwMTciJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+bW9uZ29EYiA9IG5ldyBOdWxsU3RvcmFnZSgnTW9uZ29EQicsICdNaXNzaW5nIE1vbmdvREIgcGhwIGV4dGVuc2lvbi4gUGxlYXNlIGluc3RhbGwgbW9uZ29kYi5zbycpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5tb25nb0RiOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gdGVzdE1vbmdvQ29ubmVjdGlvbihcTW9uZ29DbGllbnQgJG1vbmdvKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICRtb25nby0+Y29ubmVjdCgpOworICAgICAgICB9IGNhdGNoIChcTW9uZ29Db25uZWN0aW9uRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIHRlc3RNb25nb0RCQ29ubmVjdGlvbihcTW9uZ29EQlxDbGllbnQgJG1vbmdvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENvdWNoYmFzZSgpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5jb3VjaGJhc2UpIHsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Z2V0RW52VmFyKCdTS0lQX0NPVUNIQkFTRV9URVNUUycpKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmNvdWNoYmFzZSA9IG5ldyBOdWxsU3RvcmFnZSgnQ291Y2hiYXNlJywgJ1NraXBwaW5nIENvdWNoYmFzZSB0ZXN0cycpOworICAgICAgICAgICAgfSBlbHNlaWYgKCFjbGFzc19leGlzdHMoJ0NvdWNoYmFzZScpKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmNvdWNoYmFzZSA9IG5ldyBOdWxsU3RvcmFnZSgnQ291Y2hiYXNlJywgJ01pc3NpbmcgQ291Y2hiYXNlIHBocCBleHRlbnNpb24uIFBsZWFzZSBpbnN0YWxsIGNvdWNoYmFzZS5zbycpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyByb3VuZC1hYm91dCB3YXkgdG8gbWFrZSBzdXJlIGNvdWNoYmFzZSBpcyB3b3JraW5nCisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIGl0IHRocm93cyBhICJmbG9hdGluZyBwb2ludCBleGNlcHRpb24iIG90aGVyd2lzZQorICAgICAgICAgICAgICAgICRjb2RlID0gIm5ldyBcQ291Y2hiYXNlKGFycmF5KCdsb2NhbGhvc3Q6ODA5MScpLCAnJywgJycsICdhdXRoJywgZmFsc2UpOyI7CisgICAgICAgICAgICAgICAgJGV4ZWMgPSBzcHJpbnRmKCdwaHAgLXIgIiVzIicsICRjb2RlKTsKKyAgICAgICAgICAgICAgICAkcmV0ID0gZXhlYygkZXhlYywgJHRlc3QsICR2YXIpOworICAgICAgICAgICAgICAgIGlmICgkcmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvdWNoYmFzZSA9IG5ldyBcQ291Y2hiYXNlKGFycmF5KCdsb2NhbGhvc3Q6ODA5MScpLCAnJywgJycsICdhdXRoJywgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnRlc3RDb3VjaGJhc2VDb25uZWN0aW9uKCRjb3VjaGJhc2UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y2xlYXJDb3VjaGJhc2UoJGNvdWNoYmFzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y3JlYXRlQ291Y2hiYXNlREIoJGNvdWNoYmFzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb3VjaGJhc2UgPSBuZXcgQ291Y2hiYXNlREIoJGNvdWNoYmFzZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y291Y2hiYXNlID0gbmV3IE51bGxTdG9yYWdlKCdDb3VjaGJhc2UnLCAnVW5hYmxlIHRvIGNvbm5lY3QgdG8gQ291Y2hiYXNlIHNlcnZlciBvbiAibG9jYWxob3N0OjgwOTEiJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y291Y2hiYXNlID0gbmV3IE51bGxTdG9yYWdlKCdDb3VjaGJhc2UnLCAnRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIGNvbm5lY3QgdG8gQ291Y2hiYXNlJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jb3VjaGJhc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiB0ZXN0Q291Y2hiYXNlQ29ubmVjdGlvbihcQ291Y2hiYXNlICRjb3VjaGJhc2UpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGNvdW50KCRjb3VjaGJhc2UtPmdldFNlcnZlcnMoKSkgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFxDb3VjaGJhc2VFeGNlcHRpb24gJGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDYXNzYW5kcmFTdG9yYWdlKCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPmNhc3NhbmRyYSkgeworICAgICAgICAgICAgaWYgKGNsYXNzX2V4aXN0cygncGhwY2Fzc2FcQ29sdW1uRmFtaWx5JykpIHsKKyAgICAgICAgICAgICAgICAkY2Fzc2FuZHJhID0gbmV3IFxwaHBjYXNzYVxDb25uZWN0aW9uXENvbm5lY3Rpb25Qb29sKCdvYXV0aDJfdGVzdCcsIGFycmF5KCcxMjcuMC4wLjE6OTE2MCcpKTsKKyAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnRlc3RDYXNzYW5kcmFDb25uZWN0aW9uKCRjYXNzYW5kcmEpKSB7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5yZW1vdmVDYXNzYW5kcmFEYigpOworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y2Fzc2FuZHJhID0gbmV3IENhc3NhbmRyYSgkY2Fzc2FuZHJhKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNyZWF0ZUNhc3NhbmRyYURiKCR0aGlzLT5jYXNzYW5kcmEpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jYXNzYW5kcmEgPSBuZXcgTnVsbFN0b3JhZ2UoJ0Nhc3NhbmRyYScsICdVbmFibGUgdG8gY29ubmVjdCB0byBjYXNzYW5kcmEgc2VydmVyIG9uICIxMjcuMC4wLjE6OTE2MCInKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICR0aGlzLT5jYXNzYW5kcmEgPSBuZXcgTnVsbFN0b3JhZ2UoJ0Nhc3NhbmRyYScsICdNaXNzaW5nIGNhc3NhbmRyYSBsaWJyYXJ5LiBQbGVhc2UgcnVuICJjb21wb3Nlci5waGFyIHJlcXVpcmUgdGhvYmJzL3BocGNhc3NhOmRldi1tYXN0ZXIiJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPmNhc3NhbmRyYTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIHRlc3RDYXNzYW5kcmFDb25uZWN0aW9uKFxwaHBjYXNzYVxDb25uZWN0aW9uXENvbm5lY3Rpb25Qb29sICRjYXNzYW5kcmEpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3IFxwaHBjYXNzYVxTeXN0ZW1NYW5hZ2VyKCdsb2NhbGhvc3Q6OTE2MCcpOworICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIHJlbW92ZUNhc3NhbmRyYURiKCkKKyAgICB7CisgICAgICAgICRzeXMgPSBuZXcgXHBocGNhc3NhXFN5c3RlbU1hbmFnZXIoJ2xvY2FsaG9zdDo5MTYwJyk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICRzeXMtPmRyb3Bfa2V5c3BhY2UoJ29hdXRoMl90ZXN0Jyk7CisgICAgICAgIH0gY2F0Y2ggKFxjYXNzYW5kcmFcSW52YWxpZFJlcXVlc3RFeGNlcHRpb24gJGUpIHsKKworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVDYXNzYW5kcmFEYihDYXNzYW5kcmEgJHN0b3JhZ2UpCisgICAgeworICAgICAgICAvLyBjcmVhdGUgdGhlIGNhc3NhbmRyYSBrZXlzcGFjZSBhbmQgY29sdW1uIGZhbWlseQorICAgICAgICAkc3lzID0gbmV3IFxwaHBjYXNzYVxTeXN0ZW1NYW5hZ2VyKCdsb2NhbGhvc3Q6OTE2MCcpOworCisgICAgICAgICRzeXMtPmNyZWF0ZV9rZXlzcGFjZSgnb2F1dGgyX3Rlc3QnLCBhcnJheSgKKyAgICAgICAgICAgICJzdHJhdGVneV9jbGFzcyIgPT4gXHBocGNhc3NhXFNjaGVtYVxTdHJhdGVneUNsYXNzOjpTSU1QTEVfU1RSQVRFR1ksCisgICAgICAgICAgICAic3RyYXRlZ3lfb3B0aW9ucyIgPT4gYXJyYXkoJ3JlcGxpY2F0aW9uX2ZhY3RvcicgPT4gJzEnKQorICAgICAgICApKTsKKworICAgICAgICAkc3lzLT5jcmVhdGVfY29sdW1uX2ZhbWlseSgnb2F1dGgyX3Rlc3QnLCAnYXV0aCcpOworICAgICAgICAkY2Fzc2FuZHJhID0gbmV3IFxwaHBjYXNzYVxDb25uZWN0aW9uXENvbm5lY3Rpb25Qb29sKCdvYXV0aDJfdGVzdCcsIGFycmF5KCcxMjcuMC4wLjE6OTE2MCcpKTsKKyAgICAgICAgJGNmID0gbmV3IFxwaHBjYXNzYVxDb2x1bW5GYW1pbHkoJGNhc3NhbmRyYSwgJ2F1dGgnKTsKKworICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgZGF0YQorICAgICAgICAkc3RvcmFnZS0+c2V0Q2xpZW50RGV0YWlscygib2F1dGhfdGVzdF9jbGllbnQiLCAidGVzdHBhc3MiLCAiaHR0cDovL2V4YW1wbGUuY29tIiwgJ2ltcGxpY2l0IHBhc3N3b3JkJyk7CisgICAgICAgICRzdG9yYWdlLT5zZXRBY2Nlc3NUb2tlbigidGVzdHRva2VuIiwgIlNvbWUgQ2xpZW50IiwgJycsIHRpbWUoKSArIDEwMDApOworICAgICAgICAkc3RvcmFnZS0+c2V0QXV0aG9yaXphdGlvbkNvZGUoInRlc3Rjb2RlIiwgIlNvbWUgQ2xpZW50IiwgJycsICcnLCB0aW1lKCkgKyAxMDAwKTsKKworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ3N1cHBvcnRlZHNjb3BlMSBzdXBwb3J0ZWRzY29wZTIgc3VwcG9ydGVkc2NvcGUzIHN1cHBvcnRlZHNjb3BlNCcpOworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ2RlZmF1bHRzY29wZTEgZGVmYXVsdHNjb3BlMicsIG51bGwsICdkZWZhdWx0Jyk7CisKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyJywgJ1Rlc3QgQ2xpZW50IElEJyk7CisgICAgICAgICRzdG9yYWdlLT5zZXRTY29wZSgnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicsICdUZXN0IENsaWVudCBJRCcsICdkZWZhdWx0Jyk7CisKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycsICdUZXN0IENsaWVudCBJRCAyJyk7CisgICAgICAgICRzdG9yYWdlLT5zZXRTY29wZSgnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicsICdUZXN0IENsaWVudCBJRCAyJywgJ2RlZmF1bHQnKTsKKworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTInLCAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCcpOworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTInLCAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCcsICdkZWZhdWx0Jyk7CisKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycsICdUZXN0IERlZmF1bHQgU2NvcGUgQ2xpZW50IElEIDInKTsKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTMnLCAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCAyJywgJ2RlZmF1bHQnKTsKKworICAgICAgICAkc3RvcmFnZS0+c2V0Q2xpZW50S2V5KCdvYXV0aF90ZXN0X2NsaWVudCcsICR0aGlzLT5nZXRUZXN0UHVibGljS2V5KCksICd0ZXN0X3N1YmplY3QnKTsKKworICAgICAgICAkY2YtPmluc2VydCgib2F1dGhfcHVibGljX2tleXM6Q2xpZW50SURfT25lIiwgYXJyYXkoJ19fZGF0YScgPT4ganNvbl9lbmNvZGUoYXJyYXkoInB1YmxpY19rZXkiID0+ICJjbGllbnRfMV9wdWJsaWMiLCAicHJpdmF0ZV9rZXkiID0+ICJjbGllbnRfMV9wcml2YXRlIiwgImVuY3J5cHRpb25fYWxnb3JpdGhtIiA9PiAiUlMyNTYiKSkpKTsKKyAgICAgICAgJGNmLT5pbnNlcnQoIm9hdXRoX3B1YmxpY19rZXlzOkNsaWVudElEX1R3byIsIGFycmF5KCdfX2RhdGEnID0+IGpzb25fZW5jb2RlKGFycmF5KCJwdWJsaWNfa2V5IiA9PiAiY2xpZW50XzJfcHVibGljIiwgInByaXZhdGVfa2V5IiA9PiAiY2xpZW50XzJfcHJpdmF0ZSIsICJlbmNyeXB0aW9uX2FsZ29yaXRobSIgPT4gIlJTMjU2IikpKSk7CisgICAgICAgICRjZi0+aW5zZXJ0KCJvYXV0aF9wdWJsaWNfa2V5czoiLCBhcnJheSgnX19kYXRhJyA9PiBqc29uX2VuY29kZShhcnJheSgicHVibGljX2tleSIgPT4gJHRoaXMtPmdldFRlc3RQdWJsaWNLZXkoKSwgInByaXZhdGVfa2V5IiA9PiAgJHRoaXMtPmdldFRlc3RQcml2YXRlS2V5KCksICJlbmNyeXB0aW9uX2FsZ29yaXRobSIgPT4gIlJTMjU2IikpKSk7CisKKyAgICAgICAgJGNmLT5pbnNlcnQoIm9hdXRoX3VzZXJzOnRlc3R1c2VyIiwgYXJyYXkoJ19fZGF0YScgPT5qc29uX2VuY29kZShhcnJheSgicGFzc3dvcmQiID0+ICJwYXNzd29yZCIsICJlbWFpbCIgPT4gInRlc3R1c2VyQHRlc3QuY29tIiwgImVtYWlsX3ZlcmlmaWVkIiA9PiB0cnVlKSkpKTsKKworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlU3FsaXRlRGIoXFBETyAkcGRvKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJ1blBkb1NxbCgkcGRvKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIHJlbW92ZVNxbGl0ZURiKCkKKyAgICB7CisgICAgICAgIGlmIChmaWxlX2V4aXN0cygkdGhpcy0+Z2V0U3FsaXRlRGlyKCkpKSB7CisgICAgICAgICAgICB1bmxpbmsoJHRoaXMtPmdldFNxbGl0ZURpcigpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlTXlzcWxEYihcUERPICRwZG8pCisgICAgeworICAgICAgICAkcGRvLT5leGVjKCdDUkVBVEUgREFUQUJBU0Ugb2F1dGgyX3NlcnZlcl9waHAnKTsKKyAgICAgICAgJHBkby0+ZXhlYygnVVNFIG9hdXRoMl9zZXJ2ZXJfcGhwJyk7CisgICAgICAgICR0aGlzLT5ydW5QZG9TcWwoJHBkbyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiByZW1vdmVNeXNxbERiKFxQRE8gJHBkbykKKyAgICB7CisgICAgICAgICRwZG8tPmV4ZWMoJ0RST1AgREFUQUJBU0UgSUYgRVhJU1RTIG9hdXRoMl9zZXJ2ZXJfcGhwJyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVQb3N0Z3Jlc0RiKCkKKyAgICB7CisgICAgICAgIGlmICghYHBzcWwgcG9zdGdyZXMgLXRBYyAiU0VMRUNUIDEgRlJPTSBwZ19yb2xlcyBXSEVSRSByb2xuYW1lPSdwb3N0Z3JlcyciYCkgeworICAgICAgICAgICAgYGNyZWF0ZXVzZXIgLXMgLXIgcG9zdGdyZXNgOworICAgICAgICB9CisKKyAgICAgICAgYGNyZWF0ZWRiIC1PIHBvc3RncmVzIG9hdXRoMl9zZXJ2ZXJfcGhwYDsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIHBvcHVsYXRlUG9zdGdyZXNEYihcUERPICRwZG8pCisgICAgeworICAgICAgICAkdGhpcy0+cnVuUGRvU3FsKCRwZG8pOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gcmVtb3ZlUG9zdGdyZXNEYigpCisgICAgeworICAgICAgICBpZiAodHJpbShgcHNxbCAtbCB8IGdyZXAgb2F1dGgyX3NlcnZlcl9waHAgfCB3YyAtbGApKSB7CisgICAgICAgICAgICBgZHJvcGRiIG9hdXRoMl9zZXJ2ZXJfcGhwYDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBydW5QZG9TcWwoXFBETyAkcGRvKQorICAgIHsKKyAgICAgICAgJHN0b3JhZ2UgPSBuZXcgUGRvKCRwZG8pOworICAgICAgICBmb3JlYWNoIChleHBsb2RlKCc7JywgJHN0b3JhZ2UtPmdldEJ1aWxkU3FsKCkpIGFzICRzdGF0ZW1lbnQpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkcGRvLT5leGVjKCRzdGF0ZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHVwIHNjb3BlcworICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPIG9hdXRoX3Njb3BlcyAoc2NvcGUpIFZBTFVFUyAoPyknOworICAgICAgICBmb3JlYWNoIChleHBsb2RlKCcgJywgJ3N1cHBvcnRlZHNjb3BlMSBzdXBwb3J0ZWRzY29wZTIgc3VwcG9ydGVkc2NvcGUzIHN1cHBvcnRlZHNjb3BlNCBjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycpIGFzICRzdXBwb3J0ZWRTY29wZSkgeworICAgICAgICAgICAgJHBkby0+cHJlcGFyZSgkc3FsKS0+ZXhlY3V0ZShhcnJheSgkc3VwcG9ydGVkU2NvcGUpKTsKKyAgICAgICAgfQorCisgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gb2F1dGhfc2NvcGVzIChzY29wZSwgaXNfZGVmYXVsdCkgVkFMVUVTICg/LCA/KSc7CisgICAgICAgIGZvcmVhY2ggKGFycmF5KCdkZWZhdWx0c2NvcGUxJywgJ2RlZmF1bHRzY29wZTInKSBhcyAkZGVmYXVsdFNjb3BlKSB7CisgICAgICAgICAgICAkcGRvLT5wcmVwYXJlKCRzcWwpLT5leGVjdXRlKGFycmF5KCRkZWZhdWx0U2NvcGUsIHRydWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCB1cCBjbGllbnRzCisgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gb2F1dGhfY2xpZW50cyAoY2xpZW50X2lkLCBjbGllbnRfc2VjcmV0LCBzY29wZSwgZ3JhbnRfdHlwZXMpIFZBTFVFUyAoPywgPywgPywgPyknOworICAgICAgICAkcGRvLT5wcmVwYXJlKCRzcWwpLT5leGVjdXRlKGFycmF5KCdUZXN0IENsaWVudCBJRCcsICdUZXN0U2VjcmV0JywgJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTInLCBudWxsKSk7CisgICAgICAgICRwZG8tPnByZXBhcmUoJHNxbCktPmV4ZWN1dGUoYXJyYXkoJ1Rlc3QgQ2xpZW50IElEIDInLCAnVGVzdFNlY3JldCcsICdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycsIG51bGwpKTsKKyAgICAgICAgJHBkby0+cHJlcGFyZSgkc3FsKS0+ZXhlY3V0ZShhcnJheSgnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCcsICdUZXN0U2VjcmV0JywgJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTInLCBudWxsKSk7CisgICAgICAgICRwZG8tPnByZXBhcmUoJHNxbCktPmV4ZWN1dGUoYXJyYXkoJ29hdXRoX3Rlc3RfY2xpZW50JywgJ3Rlc3RwYXNzJywgbnVsbCwgJ2ltcGxpY2l0IHBhc3N3b3JkJykpOworCisgICAgICAgIC8vIHNldCB1cCBtaXNjCisgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gb2F1dGhfYWNjZXNzX3Rva2VucyAoYWNjZXNzX3Rva2VuLCBjbGllbnRfaWQsIGV4cGlyZXMsIHVzZXJfaWQpIFZBTFVFUyAoPywgPywgPywgPyknOworICAgICAgICAkcGRvLT5wcmVwYXJlKCRzcWwpLT5leGVjdXRlKGFycmF5KCd0ZXN0dG9rZW4nLCAnU29tZSBDbGllbnQnLCBkYXRlKCdZLW0tZCBIOmk6cycsIHN0cnRvdGltZSgnKzEgaG91cicpKSwgbnVsbCkpOworICAgICAgICAkcGRvLT5wcmVwYXJlKCRzcWwpLT5leGVjdXRlKGFycmF5KCdhY2Nlc3N0b2tlbi1vcGVuaWQtY29ubmVjdCcsICdTb21lIENsaWVudCcsIGRhdGUoJ1ktbS1kIEg6aTpzJywgc3RydG90aW1lKCcrMSBob3VyJykpLCAndGVzdHVzZXInKSk7CisKKyAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyBvYXV0aF9hdXRob3JpemF0aW9uX2NvZGVzIChhdXRob3JpemF0aW9uX2NvZGUsIGNsaWVudF9pZCwgZXhwaXJlcykgVkFMVUVTICg/LCA/LCA/KSc7CisgICAgICAgICRwZG8tPnByZXBhcmUoJHNxbCktPmV4ZWN1dGUoYXJyYXkoJ3Rlc3Rjb2RlJywgJ1NvbWUgQ2xpZW50JywgZGF0ZSgnWS1tLWQgSDppOnMnLCBzdHJ0b3RpbWUoJysxIGhvdXInKSkpKTsKKworICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPIG9hdXRoX3VzZXJzICh1c2VybmFtZSwgcGFzc3dvcmQsIGVtYWlsLCBlbWFpbF92ZXJpZmllZCkgVkFMVUVTICg/LCA/LCA/LCA/KSc7CisgICAgICAgICRwZG8tPnByZXBhcmUoJHNxbCktPmV4ZWN1dGUoYXJyYXkoJ3Rlc3R1c2VyJywgJ3Bhc3N3b3JkJywgJ3Rlc3R1c2VyQHRlc3QuY29tJywgdHJ1ZSkpOworCisgICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gb2F1dGhfcHVibGljX2tleXMgKGNsaWVudF9pZCwgcHVibGljX2tleSwgcHJpdmF0ZV9rZXksIGVuY3J5cHRpb25fYWxnb3JpdGhtKSBWQUxVRVMgKD8sID8sID8sID8pJzsKKyAgICAgICAgJHBkby0+cHJlcGFyZSgkc3FsKS0+ZXhlY3V0ZShhcnJheSgnQ2xpZW50SURfT25lJywgJ2NsaWVudF8xX3B1YmxpYycsICdjbGllbnRfMV9wcml2YXRlJywgJ1JTMjU2JykpOworICAgICAgICAkcGRvLT5wcmVwYXJlKCRzcWwpLT5leGVjdXRlKGFycmF5KCdDbGllbnRJRF9Ud28nLCAnY2xpZW50XzJfcHVibGljJywgJ2NsaWVudF8yX3ByaXZhdGUnLCAnUlMyNTYnKSk7CisKKyAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyBvYXV0aF9wdWJsaWNfa2V5cyAoY2xpZW50X2lkLCBwdWJsaWNfa2V5LCBwcml2YXRlX2tleSwgZW5jcnlwdGlvbl9hbGdvcml0aG0pIFZBTFVFUyAoPywgPywgPywgPyknOworICAgICAgICAkcGRvLT5wcmVwYXJlKCRzcWwpLT5leGVjdXRlKGFycmF5KG51bGwsICR0aGlzLT5nZXRUZXN0UHVibGljS2V5KCksICR0aGlzLT5nZXRUZXN0UHJpdmF0ZUtleSgpLCAnUlMyNTYnKSk7CisKKyAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyBvYXV0aF9qd3QgKGNsaWVudF9pZCwgc3ViamVjdCwgcHVibGljX2tleSkgVkFMVUVTICg/LCA/LCA/KSc7CisgICAgICAgICRwZG8tPnByZXBhcmUoJHNxbCktPmV4ZWN1dGUoYXJyYXkoJ29hdXRoX3Rlc3RfY2xpZW50JywgJ3Rlc3Rfc3ViamVjdCcsICR0aGlzLT5nZXRUZXN0UHVibGljS2V5KCkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3FsaXRlRGlyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y29uZmlnRGlyLiAnL3Rlc3Quc3FsaXRlJzsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29uZmlnRGlyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y29uZmlnRGlyOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlQ291Y2hiYXNlREIoXENvdWNoYmFzZSAkZGIpCisgICAgeworICAgICAgICAkZGItPnNldCgnb2F1dGhfY2xpZW50cy1vYXV0aF90ZXN0X2NsaWVudCcsanNvbl9lbmNvZGUoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAib2F1dGhfdGVzdF9jbGllbnQiLAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICJ0ZXN0cGFzcyIsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAiaHR0cDovL2V4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICdncmFudF90eXBlcycgPT4gJ2ltcGxpY2l0IHBhc3N3b3JkJworICAgICAgICApKSk7CisKKyAgICAgICAgJGRiLT5zZXQoJ29hdXRoX2FjY2Vzc190b2tlbnMtdGVzdHRva2VuJyxqc29uX2VuY29kZShhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICJ0ZXN0dG9rZW4iLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gIlNvbWUgQ2xpZW50IgorICAgICAgICApKSk7CisKKyAgICAgICAgJGRiLT5zZXQoJ29hdXRoX2F1dGhvcml6YXRpb25fY29kZXMtdGVzdGNvZGUnLGpzb25fZW5jb2RlKGFycmF5KAorICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gInRlc3Rjb2RlIiwKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICJTb21lIENsaWVudCIKKyAgICAgICAgKSkpOworCisgICAgICAgICRkYi0+c2V0KCdvYXV0aF91c2Vycy10ZXN0dXNlcicsanNvbl9lbmNvZGUoYXJyYXkoCisgICAgICAgICAgICAndXNlcm5hbWUnID0+ICd0ZXN0dXNlcicsCisgICAgICAgICAgICAncGFzc3dvcmQnID0+ICdwYXNzd29yZCcsCisgICAgICAgICAgICAnZW1haWwnID0+ICd0ZXN0dXNlckB0ZXN0LmNvbScsCisgICAgICAgICAgICAnZW1haWxfdmVyaWZpZWQnID0+IHRydWUsCisgICAgICAgICkpKTsKKworICAgICAgICAkZGItPnNldCgnb2F1dGhfand0LW9hdXRoX3Rlc3RfY2xpZW50Jyxqc29uX2VuY29kZShhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdvYXV0aF90ZXN0X2NsaWVudCcsCisgICAgICAgICAgICAna2V5JyAgICAgICA9PiAkdGhpcy0+Z2V0VGVzdFB1YmxpY0tleSgpLAorICAgICAgICAgICAgJ3N1YmplY3QnICAgPT4gJ3Rlc3Rfc3ViamVjdCcsCisgICAgICAgICkpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGNsZWFyQ291Y2hiYXNlKFxDb3VjaGJhc2UgJGNiKQorICAgIHsKKyAgICAgICAgJGNiLT5kZWxldGUoJ29hdXRoX2F1dGhvcml6YXRpb25fY29kZXMtbmV3LW9wZW5pZC1jb2RlJyk7CisgICAgICAgICRjYi0+ZGVsZXRlKCdvYXV0aF9hY2Nlc3NfdG9rZW5zLW5ld3Rva2VuJyk7CisgICAgICAgICRjYi0+ZGVsZXRlKCdvYXV0aF9hdXRob3JpemF0aW9uX2NvZGVzLW5ld2NvZGUnKTsKKyAgICAgICAgJGNiLT5kZWxldGUoJ29hdXRoX3JlZnJlc2hfdG9rZW5zLXJlZnJlc2h0b2tlbicpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlTW9uZ28oXE1vbmdvREIgJGRiKQorICAgIHsKKyAgICAgICAgJGRiLT5vYXV0aF9jbGllbnRzLT5pbnNlcnQoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAib2F1dGhfdGVzdF9jbGllbnQiLAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICJ0ZXN0cGFzcyIsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAiaHR0cDovL2V4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICdncmFudF90eXBlcycgPT4gJ2ltcGxpY2l0IHBhc3N3b3JkJworICAgICAgICApKTsKKworICAgICAgICAkZGItPm9hdXRoX2FjY2Vzc190b2tlbnMtPmluc2VydChhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICJ0ZXN0dG9rZW4iLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gIlNvbWUgQ2xpZW50IgorICAgICAgICApKTsKKworICAgICAgICAkZGItPm9hdXRoX2F1dGhvcml6YXRpb25fY29kZXMtPmluc2VydChhcnJheSgKKyAgICAgICAgICAgICdhdXRob3JpemF0aW9uX2NvZGUnID0+ICJ0ZXN0Y29kZSIsCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAiU29tZSBDbGllbnQiCisgICAgICAgICkpOworCisgICAgICAgICRkYi0+b2F1dGhfdXNlcnMtPmluc2VydChhcnJheSgKKyAgICAgICAgICAgICd1c2VybmFtZScgPT4gJ3Rlc3R1c2VyJywKKyAgICAgICAgICAgICdwYXNzd29yZCcgPT4gJ3Bhc3N3b3JkJywKKyAgICAgICAgICAgICdlbWFpbCcgPT4gJ3Rlc3R1c2VyQHRlc3QuY29tJywKKyAgICAgICAgICAgICdlbWFpbF92ZXJpZmllZCcgPT4gdHJ1ZSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGRiLT5vYXV0aF9rZXlzLT5pbnNlcnQoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgID0+IG51bGwsCisgICAgICAgICAgICAncHVibGljX2tleScgPT4gJHRoaXMtPmdldFRlc3RQdWJsaWNLZXkoKSwKKyAgICAgICAgICAgICdwcml2YXRlX2tleScgPT4gJHRoaXMtPmdldFRlc3RQcml2YXRlS2V5KCksCisgICAgICAgICAgICAnZW5jcnlwdGlvbl9hbGdvcml0aG0nID0+ICdSUzI1NicKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGRiLT5vYXV0aF9qd3QtPmluc2VydChhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdvYXV0aF90ZXN0X2NsaWVudCcsCisgICAgICAgICAgICAna2V5JyA9PiAkdGhpcy0+Z2V0VGVzdFB1YmxpY0tleSgpLAorICAgICAgICAgICAgJ3N1YmplY3QnICAgPT4gJ3Rlc3Rfc3ViamVjdCcsCisgICAgICAgICkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVNb25nbyhcTW9uZ29EQiAkZGIpCisgICAgeworICAgICAgICAkZGItPmRyb3AoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZU1vbmdvREIoXE1vbmdvREJcRGF0YWJhc2UgJGRiKQorICAgIHsKKyAgICAgICAgJGRiLT5vYXV0aF9jbGllbnRzLT5pbnNlcnRPbmUoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAib2F1dGhfdGVzdF9jbGllbnQiLAorICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+ICJ0ZXN0cGFzcyIsCisgICAgICAgICAgICAncmVkaXJlY3RfdXJpJyA9PiAiaHR0cDovL2V4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICdncmFudF90eXBlcycgPT4gJ2ltcGxpY2l0IHBhc3N3b3JkJworICAgICAgICApKTsKKworICAgICAgICAkZGItPm9hdXRoX2FjY2Vzc190b2tlbnMtPmluc2VydE9uZShhcnJheSgKKyAgICAgICAgICAgICdhY2Nlc3NfdG9rZW4nID0+ICJ0ZXN0dG9rZW4iLAorICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gIlNvbWUgQ2xpZW50IgorICAgICAgICApKTsKKworICAgICAgICAkZGItPm9hdXRoX2F1dGhvcml6YXRpb25fY29kZXMtPmluc2VydE9uZShhcnJheSgKKyAgICAgICAgICAgICdhdXRob3JpemF0aW9uX2NvZGUnID0+ICJ0ZXN0Y29kZSIsCisgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiAiU29tZSBDbGllbnQiCisgICAgICAgICkpOworCisgICAgICAgICRkYi0+b2F1dGhfdXNlcnMtPmluc2VydE9uZShhcnJheSgKKyAgICAgICAgICAgICd1c2VybmFtZScgPT4gJ3Rlc3R1c2VyJywKKyAgICAgICAgICAgICdwYXNzd29yZCcgPT4gJ3Bhc3N3b3JkJywKKyAgICAgICAgICAgICdlbWFpbCcgPT4gJ3Rlc3R1c2VyQHRlc3QuY29tJywKKyAgICAgICAgICAgICdlbWFpbF92ZXJpZmllZCcgPT4gdHJ1ZSwKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGRiLT5vYXV0aF9rZXlzLT5pbnNlcnRPbmUoYXJyYXkoCisgICAgICAgICAgICAnY2xpZW50X2lkJyAgID0+IG51bGwsCisgICAgICAgICAgICAncHVibGljX2tleScgPT4gJHRoaXMtPmdldFRlc3RQdWJsaWNLZXkoKSwKKyAgICAgICAgICAgICdwcml2YXRlX2tleScgPT4gJHRoaXMtPmdldFRlc3RQcml2YXRlS2V5KCksCisgICAgICAgICAgICAnZW5jcnlwdGlvbl9hbGdvcml0aG0nID0+ICdSUzI1NicKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGRiLT5vYXV0aF9qd3QtPmluc2VydE9uZShhcnJheSgKKyAgICAgICAgICAgICdjbGllbnRfaWQnID0+ICdvYXV0aF90ZXN0X2NsaWVudCcsCisgICAgICAgICAgICAna2V5JyA9PiAkdGhpcy0+Z2V0VGVzdFB1YmxpY0tleSgpLAorICAgICAgICAgICAgJ3N1YmplY3QnICAgPT4gJ3Rlc3Rfc3ViamVjdCcsCisgICAgICAgICkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVNb25nb0RCKFxNb25nb0RCXERhdGFiYXNlICRkYikKKyAgICB7CisgICAgICAgICRkYi0+ZHJvcCgpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlUmVkaXNEYihSZWRpcyAkc3RvcmFnZSkKKyAgICB7CisgICAgICAgICRzdG9yYWdlLT5zZXRDbGllbnREZXRhaWxzKCJvYXV0aF90ZXN0X2NsaWVudCIsICJ0ZXN0cGFzcyIsICJodHRwOi8vZXhhbXBsZS5jb20iLCAnaW1wbGljaXQgcGFzc3dvcmQnKTsKKyAgICAgICAgJHN0b3JhZ2UtPnNldEFjY2Vzc1Rva2VuKCJ0ZXN0dG9rZW4iLCAiU29tZSBDbGllbnQiLCAnJywgdGltZSgpICsgMTAwMCk7CisgICAgICAgICRzdG9yYWdlLT5zZXRBdXRob3JpemF0aW9uQ29kZSgidGVzdGNvZGUiLCAiU29tZSBDbGllbnQiLCAnJywgJycsIHRpbWUoKSArIDEwMDApOworICAgICAgICAkc3RvcmFnZS0+c2V0VXNlcigidGVzdHVzZXIiLCAicGFzc3dvcmQiKTsKKworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ3N1cHBvcnRlZHNjb3BlMSBzdXBwb3J0ZWRzY29wZTIgc3VwcG9ydGVkc2NvcGUzIHN1cHBvcnRlZHNjb3BlNCcpOworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ2RlZmF1bHRzY29wZTEgZGVmYXVsdHNjb3BlMicsIG51bGwsICdkZWZhdWx0Jyk7CisKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyJywgJ1Rlc3QgQ2xpZW50IElEJyk7CisgICAgICAgICRzdG9yYWdlLT5zZXRTY29wZSgnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicsICdUZXN0IENsaWVudCBJRCcsICdkZWZhdWx0Jyk7CisKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycsICdUZXN0IENsaWVudCBJRCAyJyk7CisgICAgICAgICRzdG9yYWdlLT5zZXRTY29wZSgnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicsICdUZXN0IENsaWVudCBJRCAyJywgJ2RlZmF1bHQnKTsKKworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTInLCAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCcpOworICAgICAgICAkc3RvcmFnZS0+c2V0U2NvcGUoJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTInLCAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCcsICdkZWZhdWx0Jyk7CisKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycsICdUZXN0IERlZmF1bHQgU2NvcGUgQ2xpZW50IElEIDInKTsKKyAgICAgICAgJHN0b3JhZ2UtPnNldFNjb3BlKCdjbGllbnRzY29wZTMnLCAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCAyJywgJ2RlZmF1bHQnKTsKKworICAgICAgICAkc3RvcmFnZS0+c2V0Q2xpZW50S2V5KCdvYXV0aF90ZXN0X2NsaWVudCcsICR0aGlzLT5nZXRUZXN0UHVibGljS2V5KCksICd0ZXN0X3N1YmplY3QnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGVzdFB1YmxpY0tleSgpCisgICAgeworICAgICAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXy4nLy4uLy4uLy4uL2NvbmZpZy9rZXlzL2lkX3JzYS5wdWInKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRlc3RQcml2YXRlS2V5KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fLicvLi4vLi4vLi4vY29uZmlnL2tleXMvaWRfcnNhJyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldER5bmFtb0RiU3RvcmFnZSgpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5keW5hbW9kYikgeworICAgICAgICAgICAgLy8gb25seSBydW4gb25jZSBwZXIgdHJhdmlzIGJ1aWxkCisgICAgICAgICAgICBpZiAodHJ1ZSA9PSAkdGhpcy0+Z2V0RW52VmFyKCdUUkFWSVMnKSkgeworICAgICAgICAgICAgICAgIGlmIChzZWxmOjpEWU5BTU9EQl9QSFBfVkVSU0lPTiAhPSAkdGhpcy0+Z2V0RW52VmFyKCdUUkFWSVNfUEhQX1ZFUlNJT04nKSkgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZHluYW1vZGIgPSBuZXcgTnVsbFN0b3JhZ2UoJ0R5bmFtb0RiJywgJ1NraXBwaW5nIGZvciB0cmF2aXMuY2kgLSBvbmx5IHJ1biBvbmNlIHBlciBidWlsZCcpOworCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2xhc3NfZXhpc3RzKCdcQXdzXER5bmFtb0RiXER5bmFtb0RiQ2xpZW50JykpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGNsaWVudCA9ICR0aGlzLT5nZXREeW5hbW9EYkNsaWVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRyYXZpcyBydW5zIGEgdW5pcXVlIHNldCBvZiB0YWJsZXMgcGVyIGJ1aWxkLCB0byBhdm9pZCBjb25mbGljdAorICAgICAgICAgICAgICAgICAgICAkcHJlZml4ID0gJyc7CisgICAgICAgICAgICAgICAgICAgIGlmICgkYnVpbGRfaWQgPSAkdGhpcy0+Z2V0RW52VmFyKCdUUkFWSVNfSk9CX05VTUJFUicpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcHJlZml4ID0gc3ByaW50ZignYnVpbGRfJXNfJywgJGJ1aWxkX2lkKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPmRlbGV0ZUR5bmFtb0RiKCRjbGllbnQsICRwcmVmaXgsIHRydWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5keW5hbW9kYiA9IG5ldyBOdWxsU3RvcmFnZSgnRHluYW1vRGInLCAnVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIER5bmFtb0RCIGRlbGV0aW9uICgzMCBzZWNvbmRzKScpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jcmVhdGVEeW5hbW9EYigkY2xpZW50LCAkcHJlZml4KTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnBvcHVsYXRlRHluYW1vRGIoJGNsaWVudCwgJHByZWZpeCk7CisgICAgICAgICAgICAgICAgICAgICRjb25maWcgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbGllbnRfdGFibGUnID0+ICRwcmVmaXguJ29hdXRoX2NsaWVudHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjY2Vzc190b2tlbl90YWJsZScgPT4gJHByZWZpeC4nb2F1dGhfYWNjZXNzX3Rva2VucycsCisgICAgICAgICAgICAgICAgICAgICAgICAncmVmcmVzaF90b2tlbl90YWJsZScgPT4gJHByZWZpeC4nb2F1dGhfcmVmcmVzaF90b2tlbnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2NvZGVfdGFibGUnID0+ICRwcmVmaXguJ29hdXRoX2F1dGhvcml6YXRpb25fY29kZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXJfdGFibGUnID0+ICRwcmVmaXguJ29hdXRoX3VzZXJzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdqd3RfdGFibGUnICA9PiAkcHJlZml4LidvYXV0aF9qd3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Njb3BlX3RhYmxlJyAgPT4gJHByZWZpeC4nb2F1dGhfc2NvcGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdwdWJsaWNfa2V5X3RhYmxlJyAgPT4gJHByZWZpeC4nb2F1dGhfcHVibGljX2tleXMnLAorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZHluYW1vZGIgPSBuZXcgRHluYW1vREIoJGNsaWVudCwgJGNvbmZpZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCEkdGhpcy0+ZHluYW1vZGIpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmR5bmFtb2RiID0gbmV3IE51bGxTdG9yYWdlKCdEeW5hbW9EYicsICd1bmFibGUgdG8gY29ubmVjdCB0byBEeW5hbW9EQicpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmR5bmFtb2RiID0gbmV3IE51bGxTdG9yYWdlKCdEeW5hbW9EYicsICdNaXNzaW5nIER5bmFtb0RCIGxpYnJhcnkuIFBsZWFzZSBydW4gImNvbXBvc2VyLnBoYXIgcmVxdWlyZSBhd3MvYXdzLXNkay1waHA6ZGV2LW1hc3RlcicpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5keW5hbW9kYjsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldER5bmFtb0RiQ2xpZW50KCkKKyAgICB7CisgICAgICAgICRjb25maWcgPSBhcnJheSgpOworICAgICAgICAvLyBjaGVjayBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgICAgIGlmICgoJGtleSA9ICR0aGlzLT5nZXRFbnZWYXIoJ0FXU19BQ0NFU1NfS0VZX0lEJykpICYmICgkc2VjcmV0ID0gJHRoaXMtPmdldEVudlZhcignQVdTX1NFQ1JFVF9LRVknKSkpIHsKKyAgICAgICAgICAgICRjb25maWdbJ2tleSddICAgID0gJGtleTsKKyAgICAgICAgICAgICRjb25maWdbJ3NlY3JldCddID0gJHNlY3JldDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGZhbGwgYmFjayBvbiB+Ly5hd3MvY3JlZGVudGlhbHMgZmlsZQorICAgICAgICAgICAgLy8gQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hd3Mtc2RrLXBocC9ndWlkZS9sYXRlc3QvY3JlZGVudGlhbHMuaHRtbCNjcmVkZW50aWFsLXByb2ZpbGVzCisgICAgICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCR0aGlzLT5nZXRFbnZWYXIoJ0hPTUUnKSAuICcvLmF3cy9jcmVkZW50aWFscycpKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmR5bmFtb2RiID0gbmV3IE51bGxTdG9yYWdlKCdEeW5hbW9EYicsICdObyBhd3MgY3JlZGVudGlhbHMgZmlsZSBmb3VuZCwgYW5kIG5vIEFXU19BQ0NFU1NfS0VZX0lEIG9yIEFXU19TRUNSRVRfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlIHNldCcpOworCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzZXQgcHJvZmlsZSBpbiBBV1NfUFJPRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgZGVmYXVsdHMgdG8gImRlZmF1bHQiCisgICAgICAgICAgICAkY29uZmlnWydwcm9maWxlJ10gPSAkdGhpcy0+Z2V0RW52VmFyKCdBV1NfUFJPRklMRScsICdkZWZhdWx0Jyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZXQgcmVnaW9uIGluIEFXU19SRUdJT04gZW52aXJvbm1lbnQgdmFyaWFibGUsIGRlZmF1bHRzIHRvICJ1cy1lYXN0LTEiCisgICAgICAgICRjb25maWdbJ3JlZ2lvbiddID0gJHRoaXMtPmdldEVudlZhcignQVdTX1JFR0lPTicsIFxBd3NcQ29tbW9uXEVudW1cUmVnaW9uOjpVU19FQVNUXzEpOworCisgICAgICAgIHJldHVybiBcQXdzXER5bmFtb0RiXER5bmFtb0RiQ2xpZW50OjpmYWN0b3J5KCRjb25maWcpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZGVsZXRlRHluYW1vRGIoXEF3c1xEeW5hbW9EYlxEeW5hbW9EYkNsaWVudCAkY2xpZW50LCAkcHJlZml4ID0gbnVsbCwgJHdhaXRGb3JEZWxldGlvbiA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgJHRhYmxlc0xpc3QgPSBleHBsb2RlKCcgJywgJ29hdXRoX2FjY2Vzc190b2tlbnMgb2F1dGhfYXV0aG9yaXphdGlvbl9jb2RlcyBvYXV0aF9jbGllbnRzIG9hdXRoX2p3dCBvYXV0aF9wdWJsaWNfa2V5cyBvYXV0aF9yZWZyZXNoX3Rva2VucyBvYXV0aF9zY29wZXMgb2F1dGhfdXNlcnMnKTsKKyAgICAgICAgJG5iVGFibGVzICA9IGNvdW50KCR0YWJsZXNMaXN0KTsKKworICAgICAgICAvLyBEZWxldGUgYWxsIHRhYmxlLgorICAgICAgICBmb3JlYWNoICgkdGFibGVzTGlzdCBhcyAka2V5ID0+ICR0YWJsZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAkY2xpZW50LT5kZWxldGVUYWJsZShhcnJheSgnVGFibGVOYW1lJyA9PiAkcHJlZml4LiR0YWJsZSkpOworICAgICAgICAgICAgfSBjYXRjaCAoXEF3c1xEeW5hbW9EYlxFeGNlcHRpb25cRHluYW1vRGJFeGNlcHRpb24gJGUpIHsKKyAgICAgICAgICAgICAgICAvLyBUYWJsZSBkb2VzIG5vdCBleGlzdCA6IG5vdGhpbmcgdG8gZG8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFdhaXQgZm9yIGRlbGV0aW5nCisgICAgICAgIGlmICgkd2FpdEZvckRlbGV0aW9uKSB7CisgICAgICAgICAgICAkcmV0cmllcyA9IDU7CisgICAgICAgICAgICAkbmJUYWJsZURlbGV0ZWQgPSAwOworICAgICAgICAgICAgd2hpbGUgKCRuYlRhYmxlRGVsZXRlZCAhPSAkbmJUYWJsZXMpIHsKKyAgICAgICAgICAgICAgICAkbmJUYWJsZURlbGV0ZWQgPSAwOworICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0YWJsZXNMaXN0IGFzICRrZXkgPT4gJHRhYmxlKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJGNsaWVudC0+ZGVzY3JpYmVUYWJsZShhcnJheSgnVGFibGVOYW1lJyA9PiAkcHJlZml4LiR0YWJsZSkpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChcQXdzXER5bmFtb0RiXEV4Y2VwdGlvblxEeW5hbW9EYkV4Y2VwdGlvbiAkZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGFibGUgZG9lcyBub3QgZXhpc3QgOiBub3RoaW5nIHRvIGRvCisgICAgICAgICAgICAgICAgICAgICAgICAkbmJUYWJsZURlbGV0ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJG5iVGFibGVEZWxldGVkICE9ICRuYlRhYmxlcykgeworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldHJpZXMgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgdGlyZWQgb2Ygd2FpdGluZworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNsZWVwKDUpOworICAgICAgICAgICAgICAgICAgICBlY2hvICJTbGVlcGluZyA1IHNlY29uZHMgZm9yIER5bmFtb0RCICgkcmV0cmllcyBtb3JlIHJldHJpZXMpLi4uXG4iOworICAgICAgICAgICAgICAgICAgICAkcmV0cmllcy0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gY3JlYXRlRHluYW1vRGIoXEF3c1xEeW5hbW9EYlxEeW5hbW9EYkNsaWVudCAkY2xpZW50LCAkcHJlZml4ID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0YWJsZXNMaXN0ID0gZXhwbG9kZSgnICcsICdvYXV0aF9hY2Nlc3NfdG9rZW5zIG9hdXRoX2F1dGhvcml6YXRpb25fY29kZXMgb2F1dGhfY2xpZW50cyBvYXV0aF9qd3Qgb2F1dGhfcHVibGljX2tleXMgb2F1dGhfcmVmcmVzaF90b2tlbnMgb2F1dGhfc2NvcGVzIG9hdXRoX3VzZXJzJyk7CisgICAgICAgICRuYlRhYmxlcyAgPSBjb3VudCgkdGFibGVzTGlzdCk7CisgICAgICAgICRjbGllbnQtPmNyZWF0ZVRhYmxlKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfYWNjZXNzX3Rva2VucycsCisgICAgICAgICAgICAnQXR0cmlidXRlRGVmaW5pdGlvbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgIGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnYWNjZXNzX3Rva2VuJywnQXR0cmlidXRlVHlwZScgPT4gJ1MnKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdLZXlTY2hlbWEnID0+IGFycmF5KGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnYWNjZXNzX3Rva2VuJywnS2V5VHlwZScgPT4gJ0hBU0gnKSksCisgICAgICAgICAgICAnUHJvdmlzaW9uZWRUaHJvdWdocHV0JyA9PiBhcnJheSgnUmVhZENhcGFjaXR5VW5pdHMnICA9PiAxLCdXcml0ZUNhcGFjaXR5VW5pdHMnID0+IDEpCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPmNyZWF0ZVRhYmxlKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfYXV0aG9yaXphdGlvbl9jb2RlcycsCisgICAgICAgICAgICAnQXR0cmlidXRlRGVmaW5pdGlvbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgIGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywnQXR0cmlidXRlVHlwZScgPT4gJ1MnKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdLZXlTY2hlbWEnID0+IGFycmF5KGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnYXV0aG9yaXphdGlvbl9jb2RlJywnS2V5VHlwZScgPT4gJ0hBU0gnKSksCisgICAgICAgICAgICAnUHJvdmlzaW9uZWRUaHJvdWdocHV0JyA9PiBhcnJheSgnUmVhZENhcGFjaXR5VW5pdHMnICA9PiAxLCdXcml0ZUNhcGFjaXR5VW5pdHMnID0+IDEpCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPmNyZWF0ZVRhYmxlKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfY2xpZW50cycsCisgICAgICAgICAgICAnQXR0cmlidXRlRGVmaW5pdGlvbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgIGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnY2xpZW50X2lkJywnQXR0cmlidXRlVHlwZScgPT4gJ1MnKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdLZXlTY2hlbWEnID0+IGFycmF5KGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnY2xpZW50X2lkJywnS2V5VHlwZScgPT4gJ0hBU0gnKSksCisgICAgICAgICAgICAnUHJvdmlzaW9uZWRUaHJvdWdocHV0JyA9PiBhcnJheSgnUmVhZENhcGFjaXR5VW5pdHMnICA9PiAxLCdXcml0ZUNhcGFjaXR5VW5pdHMnID0+IDEpCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPmNyZWF0ZVRhYmxlKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfand0JywKKyAgICAgICAgICAgICdBdHRyaWJ1dGVEZWZpbml0aW9ucycgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgYXJyYXkoJ0F0dHJpYnV0ZU5hbWUnID0+ICdjbGllbnRfaWQnLCdBdHRyaWJ1dGVUeXBlJyA9PiAnUycpLAorICAgICAgICAgICAgICAgIGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnc3ViamVjdCcsJ0F0dHJpYnV0ZVR5cGUnID0+ICdTJykKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnS2V5U2NoZW1hJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICBhcnJheSgnQXR0cmlidXRlTmFtZScgPT4gJ2NsaWVudF9pZCcsJ0tleVR5cGUnID0+ICdIQVNIJyksCisgICAgICAgICAgICAgICAgYXJyYXkoJ0F0dHJpYnV0ZU5hbWUnID0+ICdzdWJqZWN0JywnS2V5VHlwZScgPT4gJ1JBTkdFJykKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnUHJvdmlzaW9uZWRUaHJvdWdocHV0JyA9PiBhcnJheSgnUmVhZENhcGFjaXR5VW5pdHMnICA9PiAxLCdXcml0ZUNhcGFjaXR5VW5pdHMnID0+IDEpCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPmNyZWF0ZVRhYmxlKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfcHVibGljX2tleXMnLAorICAgICAgICAgICAgJ0F0dHJpYnV0ZURlZmluaXRpb25zJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICBhcnJheSgnQXR0cmlidXRlTmFtZScgPT4gJ2NsaWVudF9pZCcsJ0F0dHJpYnV0ZVR5cGUnID0+ICdTJykKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnS2V5U2NoZW1hJyA9PiBhcnJheShhcnJheSgnQXR0cmlidXRlTmFtZScgPT4gJ2NsaWVudF9pZCcsJ0tleVR5cGUnID0+ICdIQVNIJykpLAorICAgICAgICAgICAgJ1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCcgPT4gYXJyYXkoJ1JlYWRDYXBhY2l0eVVuaXRzJyAgPT4gMSwnV3JpdGVDYXBhY2l0eVVuaXRzJyA9PiAxKQorICAgICAgICApKTsKKworICAgICAgICAkY2xpZW50LT5jcmVhdGVUYWJsZShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICRwcmVmaXguJ29hdXRoX3JlZnJlc2hfdG9rZW5zJywKKyAgICAgICAgICAgICdBdHRyaWJ1dGVEZWZpbml0aW9ucycgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgYXJyYXkoJ0F0dHJpYnV0ZU5hbWUnID0+ICdyZWZyZXNoX3Rva2VuJywnQXR0cmlidXRlVHlwZScgPT4gJ1MnKQorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdLZXlTY2hlbWEnID0+IGFycmF5KGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAncmVmcmVzaF90b2tlbicsJ0tleVR5cGUnID0+ICdIQVNIJykpLAorICAgICAgICAgICAgJ1Byb3Zpc2lvbmVkVGhyb3VnaHB1dCcgPT4gYXJyYXkoJ1JlYWRDYXBhY2l0eVVuaXRzJyAgPT4gMSwnV3JpdGVDYXBhY2l0eVVuaXRzJyA9PiAxKQorICAgICAgICApKTsKKworICAgICAgICAkY2xpZW50LT5jcmVhdGVUYWJsZShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICRwcmVmaXguJ29hdXRoX3Njb3BlcycsCisgICAgICAgICAgICAnQXR0cmlidXRlRGVmaW5pdGlvbnMnID0+IGFycmF5KAorICAgICAgICAgICAgICAgIGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnc2NvcGUnLCdBdHRyaWJ1dGVUeXBlJyA9PiAnUycpLAorICAgICAgICAgICAgICAgIGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAnaXNfZGVmYXVsdCcsJ0F0dHJpYnV0ZVR5cGUnID0+ICdTJykKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnS2V5U2NoZW1hJyA9PiBhcnJheShhcnJheSgnQXR0cmlidXRlTmFtZScgPT4gJ3Njb3BlJywnS2V5VHlwZScgPT4gJ0hBU0gnKSksCisgICAgICAgICAgICAnR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcycgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICdJbmRleE5hbWUnID0+ICdpc19kZWZhdWx0LWluZGV4JywKKyAgICAgICAgICAgICAgICAgICAgJ0tleVNjaGVtYScgPT4gYXJyYXkoYXJyYXkoJ0F0dHJpYnV0ZU5hbWUnID0+ICdpc19kZWZhdWx0JywgJ0tleVR5cGUnID0+ICdIQVNIJykpLAorICAgICAgICAgICAgICAgICAgICAnUHJvamVjdGlvbicgPT4gYXJyYXkoJ1Byb2plY3Rpb25UeXBlJyA9PiAnQUxMJyksCisgICAgICAgICAgICAgICAgICAgICdQcm92aXNpb25lZFRocm91Z2hwdXQnID0+IGFycmF5KCdSZWFkQ2FwYWNpdHlVbml0cycgID0+IDEsJ1dyaXRlQ2FwYWNpdHlVbml0cycgPT4gMSkKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdQcm92aXNpb25lZFRocm91Z2hwdXQnID0+IGFycmF5KCdSZWFkQ2FwYWNpdHlVbml0cycgID0+IDEsJ1dyaXRlQ2FwYWNpdHlVbml0cycgPT4gMSkKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGNsaWVudC0+Y3JlYXRlVGFibGUoYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF91c2VycycsCisgICAgICAgICAgICAnQXR0cmlidXRlRGVmaW5pdGlvbnMnID0+IGFycmF5KGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAndXNlcm5hbWUnLCdBdHRyaWJ1dGVUeXBlJyA9PiAnUycpKSwKKyAgICAgICAgICAgICdLZXlTY2hlbWEnID0+IGFycmF5KGFycmF5KCdBdHRyaWJ1dGVOYW1lJyA9PiAndXNlcm5hbWUnLCdLZXlUeXBlJyA9PiAnSEFTSCcpKSwKKyAgICAgICAgICAgICdQcm92aXNpb25lZFRocm91Z2hwdXQnID0+IGFycmF5KCdSZWFkQ2FwYWNpdHlVbml0cycgID0+IDEsJ1dyaXRlQ2FwYWNpdHlVbml0cycgPT4gMSkKKyAgICAgICAgKSk7CisKKyAgICAgICAgLy8gV2FpdCBmb3IgY3JlYXRpb24KKyAgICAgICAgJG5iVGFibGVDcmVhdGVkID0gMDsKKyAgICAgICAgd2hpbGUgKCRuYlRhYmxlQ3JlYXRlZCAhPSAkbmJUYWJsZXMpIHsKKyAgICAgICAgICAgICRuYlRhYmxlQ3JlYXRlZCA9IDA7CisgICAgICAgICAgICBmb3JlYWNoICgkdGFibGVzTGlzdCBhcyAka2V5ID0+ICR0YWJsZSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkY2xpZW50LT5kZXNjcmliZVRhYmxlKGFycmF5KCdUYWJsZU5hbWUnID0+ICRwcmVmaXguJHRhYmxlKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcmVzdWx0WydUYWJsZSddWydUYWJsZVN0YXR1cyddID09ICdBQ1RJVkUnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmJUYWJsZUNyZWF0ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFxBd3NcRHluYW1vRGJcRXhjZXB0aW9uXER5bmFtb0RiRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRhYmxlIGRvZXMgbm90IGV4aXN0IDogbm90aGluZyB0byBkbworICAgICAgICAgICAgICAgICAgICAkbmJUYWJsZUNyZWF0ZWQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJG5iVGFibGVDcmVhdGVkICE9ICRuYlRhYmxlcykgeworICAgICAgICAgICAgICAgIHNsZWVwKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBwb3B1bGF0ZUR5bmFtb0RiKCRjbGllbnQsICRwcmVmaXggPSBudWxsKQorICAgIHsKKyAgICAgICAgLy8gc2V0IHVwIHNjb3BlcworICAgICAgICBmb3JlYWNoIChleHBsb2RlKCcgJywgJ3N1cHBvcnRlZHNjb3BlMSBzdXBwb3J0ZWRzY29wZTIgc3VwcG9ydGVkc2NvcGUzIHN1cHBvcnRlZHNjb3BlNCBjbGllbnRzY29wZTEgY2xpZW50c2NvcGUyIGNsaWVudHNjb3BlMycpIGFzICRzdXBwb3J0ZWRTY29wZSkgeworICAgICAgICAgICAgJGNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9zY29wZXMnLAorICAgICAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgnc2NvcGUnID0+IGFycmF5KCdTJyA9PiAkc3VwcG9ydGVkU2NvcGUpKQorICAgICAgICAgICAgKSk7CisgICAgICAgIH0KKworICAgICAgICBmb3JlYWNoIChhcnJheSgnZGVmYXVsdHNjb3BlMScsICdkZWZhdWx0c2NvcGUyJykgYXMgJGRlZmF1bHRTY29wZSkgeworICAgICAgICAgICAgJGNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9zY29wZXMnLAorICAgICAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgnc2NvcGUnID0+IGFycmF5KCdTJyA9PiAkZGVmYXVsdFNjb3BlKSwgJ2lzX2RlZmF1bHQnID0+IGFycmF5KCdTJyA9PiAidHJ1ZSIpKQorICAgICAgICAgICAgKSk7CisgICAgICAgIH0KKworICAgICAgICAkY2xpZW50LT5wdXRJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfY2xpZW50cycsCisgICAgICAgICAgICAnSXRlbScgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gYXJyYXkoJ1MnID0+ICdUZXN0IENsaWVudCBJRCcpLAorICAgICAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiBhcnJheSgnUycgPT4gJ1Rlc3RTZWNyZXQnKSwKKyAgICAgICAgICAgICAgICAnc2NvcGUnID0+IGFycmF5KCdTJyA9PiAnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicpCisgICAgICAgICAgICApCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9jbGllbnRzJywKKyAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiBhcnJheSgnUycgPT4gJ1Rlc3QgQ2xpZW50IElEIDInKSwKKyAgICAgICAgICAgICAgICAnY2xpZW50X3NlY3JldCcgPT4gYXJyYXkoJ1MnID0+ICdUZXN0U2VjcmV0JyksCisgICAgICAgICAgICAgICAgJ3Njb3BlJyA9PiBhcnJheSgnUycgPT4gJ2NsaWVudHNjb3BlMSBjbGllbnRzY29wZTIgY2xpZW50c2NvcGUzJykKKyAgICAgICAgICAgICkKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICRwcmVmaXguJ29hdXRoX2NsaWVudHMnLAorICAgICAgICAgICAgJ0l0ZW0nID0+IGFycmF5KAorICAgICAgICAgICAgICAgICdjbGllbnRfaWQnID0+IGFycmF5KCdTJyA9PiAnVGVzdCBEZWZhdWx0IFNjb3BlIENsaWVudCBJRCcpLAorICAgICAgICAgICAgICAgICdjbGllbnRfc2VjcmV0JyA9PiBhcnJheSgnUycgPT4gJ1Rlc3RTZWNyZXQnKSwKKyAgICAgICAgICAgICAgICAnc2NvcGUnID0+IGFycmF5KCdTJyA9PiAnY2xpZW50c2NvcGUxIGNsaWVudHNjb3BlMicpCisgICAgICAgICAgICApCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9jbGllbnRzJywKKyAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiBhcnJheSgnUycgPT4gJ29hdXRoX3Rlc3RfY2xpZW50JyksCisgICAgICAgICAgICAgICAgJ2NsaWVudF9zZWNyZXQnID0+IGFycmF5KCdTJyA9PiAndGVzdHBhc3MnKSwKKyAgICAgICAgICAgICAgICAnZ3JhbnRfdHlwZXMnID0+IGFycmF5KCdTJyA9PiAnaW1wbGljaXQgcGFzc3dvcmQnKQorICAgICAgICAgICAgKQorICAgICAgICApKTsKKworICAgICAgICAkY2xpZW50LT5wdXRJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfYWNjZXNzX3Rva2VucycsCisgICAgICAgICAgICAnSXRlbScgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gYXJyYXkoJ1MnID0+ICd0ZXN0dG9rZW4nKSwKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiBhcnJheSgnUycgPT4gJ1NvbWUgQ2xpZW50JyksCisgICAgICAgICAgICApCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9hY2Nlc3NfdG9rZW5zJywKKyAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAgJ2FjY2Vzc190b2tlbicgPT4gYXJyYXkoJ1MnID0+ICdhY2Nlc3N0b2tlbi1vcGVuaWQtY29ubmVjdCcpLAorICAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiBhcnJheSgnUycgPT4gJ1NvbWUgQ2xpZW50JyksCisgICAgICAgICAgICAgICAgICd1c2VyX2lkJyA9PiBhcnJheSgnUycgPT4gJ3Rlc3R1c2VyJyksCisgICAgICAgICAgICApCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9hdXRob3JpemF0aW9uX2NvZGVzJywKKyAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlJyA9PiBhcnJheSgnUycgPT4gJ3Rlc3Rjb2RlJyksCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gYXJyYXkoJ1MnID0+ICdTb21lIENsaWVudCcpLAorICAgICAgICAgICAgKQorICAgICAgICApKTsKKworICAgICAgICAkY2xpZW50LT5wdXRJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfdXNlcnMnLAorICAgICAgICAgICAgJ0l0ZW0nID0+IGFycmF5KAorICAgICAgICAgICAgICAgICd1c2VybmFtZScgPT4gYXJyYXkoJ1MnID0+ICd0ZXN0dXNlcicpLAorICAgICAgICAgICAgICAgICdwYXNzd29yZCcgPT4gYXJyYXkoJ1MnID0+ICdwYXNzd29yZCcpLAorICAgICAgICAgICAgICAgICdlbWFpbCcgPT4gYXJyYXkoJ1MnID0+ICd0ZXN0dXNlckB0ZXN0LmNvbScpLAorICAgICAgICAgICAgICAgICdlbWFpbF92ZXJpZmllZCcgPT4gYXJyYXkoJ1MnID0+ICd0cnVlJyksCisgICAgICAgICAgICApCisgICAgICAgICkpOworCisgICAgICAgICRjbGllbnQtPnB1dEl0ZW0oYXJyYXkoCisgICAgICAgICAgICAnVGFibGVOYW1lJyA9PiAkcHJlZml4LidvYXV0aF9wdWJsaWNfa2V5cycsCisgICAgICAgICAgICAnSXRlbScgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gYXJyYXkoJ1MnID0+ICdDbGllbnRJRF9PbmUnKSwKKyAgICAgICAgICAgICAgICAncHVibGljX2tleScgPT4gYXJyYXkoJ1MnID0+ICdjbGllbnRfMV9wdWJsaWMnKSwKKyAgICAgICAgICAgICAgICAncHJpdmF0ZV9rZXknID0+IGFycmF5KCdTJyA9PiAnY2xpZW50XzFfcHJpdmF0ZScpLAorICAgICAgICAgICAgICAgICdlbmNyeXB0aW9uX2FsZ29yaXRobScgPT4gYXJyYXkoJ1MnID0+ICdSUzI1NicpLAorICAgICAgICAgICAgKQorICAgICAgICApKTsKKworICAgICAgICAkY2xpZW50LT5wdXRJdGVtKGFycmF5KAorICAgICAgICAgICAgJ1RhYmxlTmFtZScgPT4gJHByZWZpeC4nb2F1dGhfcHVibGljX2tleXMnLAorICAgICAgICAgICAgJ0l0ZW0nID0+IGFycmF5KAorICAgICAgICAgICAgICAgICdjbGllbnRfaWQnID0+IGFycmF5KCdTJyA9PiAnQ2xpZW50SURfVHdvJyksCisgICAgICAgICAgICAgICAgJ3B1YmxpY19rZXknID0+IGFycmF5KCdTJyA9PiAnY2xpZW50XzJfcHVibGljJyksCisgICAgICAgICAgICAgICAgJ3ByaXZhdGVfa2V5JyA9PiBhcnJheSgnUycgPT4gJ2NsaWVudF8yX3ByaXZhdGUnKSwKKyAgICAgICAgICAgICAgICAnZW5jcnlwdGlvbl9hbGdvcml0aG0nID0+IGFycmF5KCdTJyA9PiAnUlMyNTYnKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICRwcmVmaXguJ29hdXRoX3B1YmxpY19rZXlzJywKKyAgICAgICAgICAgICdJdGVtJyA9PiBhcnJheSgKKyAgICAgICAgICAgICAgICAnY2xpZW50X2lkJyA9PiBhcnJheSgnUycgPT4gJzAnKSwKKyAgICAgICAgICAgICAgICAncHVibGljX2tleScgPT4gYXJyYXkoJ1MnID0+ICR0aGlzLT5nZXRUZXN0UHVibGljS2V5KCkpLAorICAgICAgICAgICAgICAgICdwcml2YXRlX2tleScgPT4gYXJyYXkoJ1MnID0+ICR0aGlzLT5nZXRUZXN0UHJpdmF0ZUtleSgpKSwKKyAgICAgICAgICAgICAgICAnZW5jcnlwdGlvbl9hbGdvcml0aG0nID0+IGFycmF5KCdTJyA9PiAnUlMyNTYnKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgKSk7CisKKyAgICAgICAgJGNsaWVudC0+cHV0SXRlbShhcnJheSgKKyAgICAgICAgICAgICdUYWJsZU5hbWUnID0+ICRwcmVmaXguJ29hdXRoX2p3dCcsCisgICAgICAgICAgICAnSXRlbScgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ2NsaWVudF9pZCcgPT4gYXJyYXkoJ1MnID0+ICdvYXV0aF90ZXN0X2NsaWVudCcpLAorICAgICAgICAgICAgICAgICdzdWJqZWN0JyA9PiBhcnJheSgnUycgPT4gJ3Rlc3Rfc3ViamVjdCcpLAorICAgICAgICAgICAgICAgICdwdWJsaWNfa2V5JyA9PiBhcnJheSgnUycgPT4gJHRoaXMtPmdldFRlc3RQdWJsaWNLZXkoKSksCisgICAgICAgICAgICApCisgICAgICAgICkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhbnVwVHJhdmlzRHluYW1vRGIoJHByZWZpeCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkcHJlZml4KSkgeworICAgICAgICAgICAgLy8gc2tpcCB0aGlzIHdoZW4gbm90IGFwcGxpY2FibGUKKyAgICAgICAgICAgIGlmICghJHRoaXMtPmdldEVudlZhcignVFJBVklTJykgfHwgc2VsZjo6RFlOQU1PREJfUEhQX1ZFUlNJT04gIT0gJHRoaXMtPmdldEVudlZhcignVFJBVklTX1BIUF9WRVJTSU9OJykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRwcmVmaXggPSBzcHJpbnRmKCdidWlsZF8lc18nLCAkdGhpcy0+Z2V0RW52VmFyKCdUUkFWSVNfSk9CX05VTUJFUicpKTsKKyAgICAgICAgfQorCisgICAgICAgICRjbGllbnQgPSAkdGhpcy0+Z2V0RHluYW1vRGJDbGllbnQoKTsKKyAgICAgICAgJHRoaXMtPmRlbGV0ZUR5bmFtb0RiKCRjbGllbnQsICRwcmVmaXgpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0RW52VmFyKCR2YXIsICRkZWZhdWx0ID0gbnVsbCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkX1NFUlZFUlskdmFyXSkgPyAkX1NFUlZFUlskdmFyXSA6IChnZXRlbnYoJHZhcikgPzogJGRlZmF1bHQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC90ZXN0L2xpYi9PQXV0aDIvU3RvcmFnZS9OdWxsU3RvcmFnZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9saWIvT0F1dGgyL1N0b3JhZ2UvTnVsbFN0b3JhZ2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYWE2MjAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvYnNoYWZmZXIvb2F1dGgyLXNlcnZlci1waHAvdGVzdC9saWIvT0F1dGgyL1N0b3JhZ2UvTnVsbFN0b3JhZ2UucGhwCkBAIC0wLDAgKzEsMzIgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBPQXV0aDJcU3RvcmFnZTsKKworLyoqCisqCisqLworY2xhc3MgTnVsbFN0b3JhZ2UgZXh0ZW5kcyBNZW1vcnkKK3sKKyAgICBwcml2YXRlICRuYW1lOworICAgIHByaXZhdGUgJGRlc2NyaXB0aW9uOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRuYW1lLCAkZGVzY3JpcHRpb24gPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPm5hbWUgPSAkbmFtZTsKKyAgICAgICAgJHRoaXMtPmRlc2NyaXB0aW9uID0gJGRlc2NyaXB0aW9uOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX3RvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+bmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWVzc2FnZSgpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPmRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5kZXNjcmlwdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+bmFtZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvQ2xhc3NMb2FkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL0NsYXNzTG9hZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2U4NTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL0NsYXNzTG9hZGVyLnBocApAQCAtMCwwICsxLDQ0NSBAQAorPD9waHAKKworLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIENvbXBvc2VyLgorICoKKyAqIChjKSBOaWxzIEFkZXJtYW5uIDxuYWRlcm1hbkBuYWRlcm1hbi5kZT4KKyAqICAgICBKb3JkaSBCb2dnaWFubyA8ai5ib2dnaWFub0BzZWxkLmJlPgorICoKKyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCisgKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KKyAqLworCituYW1lc3BhY2UgQ29tcG9zZXJcQXV0b2xvYWQ7CisKKy8qKgorICogQ2xhc3NMb2FkZXIgaW1wbGVtZW50cyBhIFBTUi0wLCBQU1ItNCBhbmQgY2xhc3NtYXAgY2xhc3MgbG9hZGVyLgorICoKKyAqICAgICAkbG9hZGVyID0gbmV3IFxDb21wb3NlclxBdXRvbG9hZFxDbGFzc0xvYWRlcigpOworICoKKyAqICAgICAvLyByZWdpc3RlciBjbGFzc2VzIHdpdGggbmFtZXNwYWNlcworICogICAgICRsb2FkZXItPmFkZCgnU3ltZm9ueVxDb21wb25lbnQnLCBfX0RJUl9fLicvY29tcG9uZW50Jyk7CisgKiAgICAgJGxvYWRlci0+YWRkKCdTeW1mb255JywgICAgICAgICAgIF9fRElSX18uJy9mcmFtZXdvcmsnKTsKKyAqCisgKiAgICAgLy8gYWN0aXZhdGUgdGhlIGF1dG9sb2FkZXIKKyAqICAgICAkbG9hZGVyLT5yZWdpc3RlcigpOworICoKKyAqICAgICAvLyB0byBlbmFibGUgc2VhcmNoaW5nIHRoZSBpbmNsdWRlIHBhdGggKGVnLiBmb3IgUEVBUiBwYWNrYWdlcykKKyAqICAgICAkbG9hZGVyLT5zZXRVc2VJbmNsdWRlUGF0aCh0cnVlKTsKKyAqCisgKiBJbiB0aGlzIGV4YW1wbGUsIGlmIHlvdSB0cnkgdG8gdXNlIGEgY2xhc3MgaW4gdGhlIFN5bWZvbnlcQ29tcG9uZW50CisgKiBuYW1lc3BhY2Ugb3Igb25lIG9mIGl0cyBjaGlsZHJlbiAoU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZSBmb3IgaW5zdGFuY2UpLAorICogdGhlIGF1dG9sb2FkZXIgd2lsbCBmaXJzdCBsb29rIGZvciB0aGUgY2xhc3MgdW5kZXIgdGhlIGNvbXBvbmVudC8KKyAqIGRpcmVjdG9yeSwgYW5kIGl0IHdpbGwgdGhlbiBmYWxsYmFjayB0byB0aGUgZnJhbWV3b3JrLyBkaXJlY3RvcnkgaWYgbm90CisgKiBmb3VuZCBiZWZvcmUgZ2l2aW5nIHVwLgorICoKKyAqIFRoaXMgY2xhc3MgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgU3ltZm9ueSBVbml2ZXJzYWxDbGFzc0xvYWRlci4KKyAqCisgKiBAYXV0aG9yIEZhYmllbiBQb3RlbmNpZXIgPGZhYmllbkBzeW1mb255LmNvbT4KKyAqIEBhdXRob3IgSm9yZGkgQm9nZ2lhbm8gPGouYm9nZ2lhbm9Ac2VsZC5iZT4KKyAqIEBzZWUgICAgaHR0cDovL3d3dy5waHAtZmlnLm9yZy9wc3IvcHNyLTAvCisgKiBAc2VlICAgIGh0dHA6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci00LworICovCitjbGFzcyBDbGFzc0xvYWRlcgoreworICAgIC8vIFBTUi00CisgICAgcHJpdmF0ZSAkcHJlZml4TGVuZ3Roc1BzcjQgPSBhcnJheSgpOworICAgIHByaXZhdGUgJHByZWZpeERpcnNQc3I0ID0gYXJyYXkoKTsKKyAgICBwcml2YXRlICRmYWxsYmFja0RpcnNQc3I0ID0gYXJyYXkoKTsKKworICAgIC8vIFBTUi0wCisgICAgcHJpdmF0ZSAkcHJlZml4ZXNQc3IwID0gYXJyYXkoKTsKKyAgICBwcml2YXRlICRmYWxsYmFja0RpcnNQc3IwID0gYXJyYXkoKTsKKworICAgIHByaXZhdGUgJHVzZUluY2x1ZGVQYXRoID0gZmFsc2U7CisgICAgcHJpdmF0ZSAkY2xhc3NNYXAgPSBhcnJheSgpOworICAgIHByaXZhdGUgJGNsYXNzTWFwQXV0aG9yaXRhdGl2ZSA9IGZhbHNlOworICAgIHByaXZhdGUgJG1pc3NpbmdDbGFzc2VzID0gYXJyYXkoKTsKKyAgICBwcml2YXRlICRhcGN1UHJlZml4OworCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFByZWZpeGVzKCkKKyAgICB7CisgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPnByZWZpeGVzUHNyMCkpIHsKKyAgICAgICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheSgnYXJyYXlfbWVyZ2UnLCAkdGhpcy0+cHJlZml4ZXNQc3IwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhcnJheSgpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQcmVmaXhlc1BzcjQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5wcmVmaXhEaXJzUHNyNDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmFsbGJhY2tEaXJzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMDsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmFsbGJhY2tEaXJzUHNyNCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjQ7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENsYXNzTWFwKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y2xhc3NNYXA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGFycmF5ICRjbGFzc01hcCBDbGFzcyB0byBmaWxlbmFtZSBtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkQ2xhc3NNYXAoYXJyYXkgJGNsYXNzTWFwKQorICAgIHsKKyAgICAgICAgaWYgKCR0aGlzLT5jbGFzc01hcCkgeworICAgICAgICAgICAgJHRoaXMtPmNsYXNzTWFwID0gYXJyYXlfbWVyZ2UoJHRoaXMtPmNsYXNzTWFwLCAkY2xhc3NNYXApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPmNsYXNzTWFwID0gJGNsYXNzTWFwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgc2V0IG9mIFBTUi0wIGRpcmVjdG9yaWVzIGZvciBhIGdpdmVuIHByZWZpeCwgZWl0aGVyCisgICAgICogYXBwZW5kaW5nIG9yIHByZXBlbmRpbmcgdG8gdGhlIG9uZXMgcHJldmlvdXNseSBzZXQgZm9yIHRoaXMgcHJlZml4LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAkcHJlZml4ICBUaGUgcHJlZml4CisgICAgICogQHBhcmFtIGFycmF5fHN0cmluZyAkcGF0aHMgICBUaGUgUFNSLTAgcm9vdCBkaXJlY3RvcmllcworICAgICAqIEBwYXJhbSBib29sICAgICAgICAgJHByZXBlbmQgV2hldGhlciB0byBwcmVwZW5kIHRoZSBkaXJlY3RvcmllcworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGQoJHByZWZpeCwgJHBhdGhzLCAkcHJlcGVuZCA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgaWYgKCEkcHJlZml4KSB7CisgICAgICAgICAgICBpZiAoJHByZXBlbmQpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCA9IGFycmF5X21lcmdlKAorICAgICAgICAgICAgICAgICAgICAoYXJyYXkpICRwYXRocywKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjAKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCA9IGFycmF5X21lcmdlKAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCwKKyAgICAgICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAkZmlyc3QgPSAkcHJlZml4WzBdOworICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5wcmVmaXhlc1BzcjBbJGZpcnN0XVskcHJlZml4XSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5wcmVmaXhlc1BzcjBbJGZpcnN0XVskcHJlZml4XSA9IChhcnJheSkgJHBhdGhzOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRwcmVwZW5kKSB7CisgICAgICAgICAgICAkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF1bJHByZWZpeF0gPSBhcnJheV9tZXJnZSgKKyAgICAgICAgICAgICAgICAoYXJyYXkpICRwYXRocywKKyAgICAgICAgICAgICAgICAkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF1bJHByZWZpeF0KKyAgICAgICAgICAgICk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF1bJHByZWZpeF0gPSBhcnJheV9tZXJnZSgKKyAgICAgICAgICAgICAgICAkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF1bJHByZWZpeF0sCisgICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBzZXQgb2YgUFNSLTQgZGlyZWN0b3JpZXMgZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlLCBlaXRoZXIKKyAgICAgKiBhcHBlbmRpbmcgb3IgcHJlcGVuZGluZyB0byB0aGUgb25lcyBwcmV2aW91c2x5IHNldCBmb3IgdGhpcyBuYW1lc3BhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICRwcmVmaXggIFRoZSBwcmVmaXgvbmFtZXNwYWNlLCB3aXRoIHRyYWlsaW5nICdcXCcKKyAgICAgKiBAcGFyYW0gYXJyYXl8c3RyaW5nICRwYXRocyAgIFRoZSBQU1ItNCBiYXNlIGRpcmVjdG9yaWVzCisgICAgICogQHBhcmFtIGJvb2wgICAgICAgICAkcHJlcGVuZCBXaGV0aGVyIHRvIHByZXBlbmQgdGhlIGRpcmVjdG9yaWVzCisgICAgICoKKyAgICAgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkUHNyNCgkcHJlZml4LCAkcGF0aHMsICRwcmVwZW5kID0gZmFsc2UpCisgICAgeworICAgICAgICBpZiAoISRwcmVmaXgpIHsKKyAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGRpcmVjdG9yaWVzIGZvciB0aGUgcm9vdCBuYW1lc3BhY2UuCisgICAgICAgICAgICBpZiAoJHByZXBlbmQpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNCA9IGFycmF5X21lcmdlKAorICAgICAgICAgICAgICAgICAgICAoYXJyYXkpICRwYXRocywKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZhbGxiYWNrRGlyc1BzcjQKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNCA9IGFycmF5X21lcmdlKAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNCwKKyAgICAgICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2VpZiAoIWlzc2V0KCR0aGlzLT5wcmVmaXhEaXJzUHNyNFskcHJlZml4XSkpIHsKKyAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGRpcmVjdG9yaWVzIGZvciBhIG5ldyBuYW1lc3BhY2UuCisgICAgICAgICAgICAkbGVuZ3RoID0gc3RybGVuKCRwcmVmaXgpOworICAgICAgICAgICAgaWYgKCdcXCcgIT09ICRwcmVmaXhbJGxlbmd0aCAtIDFdKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIkEgbm9uLWVtcHR5IFBTUi00IHByZWZpeCBtdXN0IGVuZCB3aXRoIGEgbmFtZXNwYWNlIHNlcGFyYXRvci4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICR0aGlzLT5wcmVmaXhMZW5ndGhzUHNyNFskcHJlZml4WzBdXVskcHJlZml4XSA9ICRsZW5ndGg7CisgICAgICAgICAgICAkdGhpcy0+cHJlZml4RGlyc1BzcjRbJHByZWZpeF0gPSAoYXJyYXkpICRwYXRoczsKKyAgICAgICAgfSBlbHNlaWYgKCRwcmVwZW5kKSB7CisgICAgICAgICAgICAvLyBQcmVwZW5kIGRpcmVjdG9yaWVzIGZvciBhbiBhbHJlYWR5IHJlZ2lzdGVyZWQgbmFtZXNwYWNlLgorICAgICAgICAgICAgJHRoaXMtPnByZWZpeERpcnNQc3I0WyRwcmVmaXhdID0gYXJyYXlfbWVyZ2UoCisgICAgICAgICAgICAgICAgKGFycmF5KSAkcGF0aHMsCisgICAgICAgICAgICAgICAgJHRoaXMtPnByZWZpeERpcnNQc3I0WyRwcmVmaXhdCisgICAgICAgICAgICApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQXBwZW5kIGRpcmVjdG9yaWVzIGZvciBhbiBhbHJlYWR5IHJlZ2lzdGVyZWQgbmFtZXNwYWNlLgorICAgICAgICAgICAgJHRoaXMtPnByZWZpeERpcnNQc3I0WyRwcmVmaXhdID0gYXJyYXlfbWVyZ2UoCisgICAgICAgICAgICAgICAgJHRoaXMtPnByZWZpeERpcnNQc3I0WyRwcmVmaXhdLAorICAgICAgICAgICAgICAgIChhcnJheSkgJHBhdGhzCisgICAgICAgICAgICApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgc2V0IG9mIFBTUi0wIGRpcmVjdG9yaWVzIGZvciBhIGdpdmVuIHByZWZpeCwKKyAgICAgKiByZXBsYWNpbmcgYW55IG90aGVycyBwcmV2aW91c2x5IHNldCBmb3IgdGhpcyBwcmVmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICRwcmVmaXggVGhlIHByZWZpeAorICAgICAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJHBhdGhzICBUaGUgUFNSLTAgYmFzZSBkaXJlY3RvcmllcworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXQoJHByZWZpeCwgJHBhdGhzKQorICAgIHsKKyAgICAgICAgaWYgKCEkcHJlZml4KSB7CisgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCA9IChhcnJheSkgJHBhdGhzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPnByZWZpeGVzUHNyMFskcHJlZml4WzBdXVskcHJlZml4XSA9IChhcnJheSkgJHBhdGhzOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgc2V0IG9mIFBTUi00IGRpcmVjdG9yaWVzIGZvciBhIGdpdmVuIG5hbWVzcGFjZSwKKyAgICAgKiByZXBsYWNpbmcgYW55IG90aGVycyBwcmV2aW91c2x5IHNldCBmb3IgdGhpcyBuYW1lc3BhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICRwcmVmaXggVGhlIHByZWZpeC9uYW1lc3BhY2UsIHdpdGggdHJhaWxpbmcgJ1xcJworICAgICAqIEBwYXJhbSBhcnJheXxzdHJpbmcgJHBhdGhzICBUaGUgUFNSLTQgYmFzZSBkaXJlY3RvcmllcworICAgICAqCisgICAgICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFBzcjQoJHByZWZpeCwgJHBhdGhzKQorICAgIHsKKyAgICAgICAgaWYgKCEkcHJlZml4KSB7CisgICAgICAgICAgICAkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNCA9IChhcnJheSkgJHBhdGhzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGxlbmd0aCA9IHN0cmxlbigkcHJlZml4KTsKKyAgICAgICAgICAgIGlmICgnXFwnICE9PSAkcHJlZml4WyRsZW5ndGggLSAxXSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJBIG5vbi1lbXB0eSBQU1ItNCBwcmVmaXggbXVzdCBlbmQgd2l0aCBhIG5hbWVzcGFjZSBzZXBhcmF0b3IuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkdGhpcy0+cHJlZml4TGVuZ3Roc1BzcjRbJHByZWZpeFswXV1bJHByZWZpeF0gPSAkbGVuZ3RoOworICAgICAgICAgICAgJHRoaXMtPnByZWZpeERpcnNQc3I0WyRwcmVmaXhdID0gKGFycmF5KSAkcGF0aHM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUdXJucyBvbiBzZWFyY2hpbmcgdGhlIGluY2x1ZGUgcGF0aCBmb3IgY2xhc3MgZmlsZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYm9vbCAkdXNlSW5jbHVkZVBhdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXNlSW5jbHVkZVBhdGgoJHVzZUluY2x1ZGVQYXRoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnVzZUluY2x1ZGVQYXRoID0gJHVzZUluY2x1ZGVQYXRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSBhdXRvbG9hZGVyIHVzZXMgdGhlIGluY2x1ZGUgcGF0aCB0byBjaGVjaworICAgICAqIGZvciBjbGFzc2VzLgorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZUluY2x1ZGVQYXRoKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+dXNlSW5jbHVkZVBhdGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHVybnMgb2ZmIHNlYXJjaGluZyB0aGUgcHJlZml4IGFuZCBmYWxsYmFjayBkaXJlY3RvcmllcyBmb3IgY2xhc3NlcworICAgICAqIHRoYXQgaGF2ZSBub3QgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhlIGNsYXNzIG1hcC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBib29sICRjbGFzc01hcEF1dGhvcml0YXRpdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0Q2xhc3NNYXBBdXRob3JpdGF0aXZlKCRjbGFzc01hcEF1dGhvcml0YXRpdmUpCisgICAgeworICAgICAgICAkdGhpcy0+Y2xhc3NNYXBBdXRob3JpdGF0aXZlID0gJGNsYXNzTWFwQXV0aG9yaXRhdGl2ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaG91bGQgY2xhc3MgbG9va3VwIGZhaWwgaWYgbm90IGZvdW5kIGluIHRoZSBjdXJyZW50IGNsYXNzIG1hcD8KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NsYXNzTWFwQXV0aG9yaXRhdGl2ZSgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmNsYXNzTWFwQXV0aG9yaXRhdGl2ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBUEN1IHByZWZpeCB0byB1c2UgdG8gY2FjaGUgZm91bmQvbm90LWZvdW5kIGNsYXNzZXMsIGlmIHRoZSBleHRlbnNpb24gaXMgZW5hYmxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkYXBjdVByZWZpeAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRBcGN1UHJlZml4KCRhcGN1UHJlZml4KQorICAgIHsKKyAgICAgICAgJHRoaXMtPmFwY3VQcmVmaXggPSBmdW5jdGlvbl9leGlzdHMoJ2FwY3VfZmV0Y2gnKSAmJiBmaWx0ZXJfdmFyKGluaV9nZXQoJ2FwYy5lbmFibGVkJyksIEZJTFRFUl9WQUxJREFURV9CT09MRUFOKSA/ICRhcGN1UHJlZml4IDogbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgQVBDdSBwcmVmaXggaW4gdXNlLCBvciBudWxsIGlmIEFQQ3UgY2FjaGluZyBpcyBub3QgZW5hYmxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXBjdVByZWZpeCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmFwY3VQcmVmaXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHRoaXMgaW5zdGFuY2UgYXMgYW4gYXV0b2xvYWRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBib29sICRwcmVwZW5kIFdoZXRoZXIgdG8gcHJlcGVuZCB0aGUgYXV0b2xvYWRlciBvciBub3QKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXIoJHByZXBlbmQgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlcihhcnJheSgkdGhpcywgJ2xvYWRDbGFzcycpLCB0cnVlLCAkcHJlcGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlcnMgdGhpcyBpbnN0YW5jZSBhcyBhbiBhdXRvbG9hZGVyLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB1bnJlZ2lzdGVyKCkKKyAgICB7CisgICAgICAgIHNwbF9hdXRvbG9hZF91bnJlZ2lzdGVyKGFycmF5KCR0aGlzLCAnbG9hZENsYXNzJykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIExvYWRzIHRoZSBnaXZlbiBjbGFzcyBvciBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHN0cmluZyAgICAkY2xhc3MgVGhlIG5hbWUgb2YgdGhlIGNsYXNzCisgICAgICogQHJldHVybiBib29sfG51bGwgVHJ1ZSBpZiBsb2FkZWQsIG51bGwgb3RoZXJ3aXNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGxvYWRDbGFzcygkY2xhc3MpCisgICAgeworICAgICAgICBpZiAoJGZpbGUgPSAkdGhpcy0+ZmluZEZpbGUoJGNsYXNzKSkgeworICAgICAgICAgICAgaW5jbHVkZUZpbGUoJGZpbGUpOworCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmRzIHRoZSBwYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBjbGFzcyBpcyBkZWZpbmVkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2xhc3MgVGhlIG5hbWUgb2YgdGhlIGNsYXNzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZ3xmYWxzZSBUaGUgcGF0aCBpZiBmb3VuZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGZpbmRGaWxlKCRjbGFzcykKKyAgICB7CisgICAgICAgIC8vIGNsYXNzIG1hcCBsb29rdXAKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5jbGFzc01hcFskY2xhc3NdKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jbGFzc01hcFskY2xhc3NdOworICAgICAgICB9CisgICAgICAgIGlmICgkdGhpcy0+Y2xhc3NNYXBBdXRob3JpdGF0aXZlIHx8IGlzc2V0KCR0aGlzLT5taXNzaW5nQ2xhc3Nlc1skY2xhc3NdKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChudWxsICE9PSAkdGhpcy0+YXBjdVByZWZpeCkgeworICAgICAgICAgICAgJGZpbGUgPSBhcGN1X2ZldGNoKCR0aGlzLT5hcGN1UHJlZml4LiRjbGFzcywgJGhpdCk7CisgICAgICAgICAgICBpZiAoJGhpdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAkZmlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRmaWxlID0gJHRoaXMtPmZpbmRGaWxlV2l0aEV4dGVuc2lvbigkY2xhc3MsICcucGhwJyk7CisKKyAgICAgICAgLy8gU2VhcmNoIGZvciBIYWNrIGZpbGVzIGlmIHdlIGFyZSBydW5uaW5nIG9uIEhIVk0KKyAgICAgICAgaWYgKGZhbHNlID09PSAkZmlsZSAmJiBkZWZpbmVkKCdISFZNX1ZFUlNJT04nKSkgeworICAgICAgICAgICAgJGZpbGUgPSAkdGhpcy0+ZmluZEZpbGVXaXRoRXh0ZW5zaW9uKCRjbGFzcywgJy5oaCcpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG51bGwgIT09ICR0aGlzLT5hcGN1UHJlZml4KSB7CisgICAgICAgICAgICBhcGN1X2FkZCgkdGhpcy0+YXBjdVByZWZpeC4kY2xhc3MsICRmaWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWxzZSA9PT0gJGZpbGUpIHsKKyAgICAgICAgICAgIC8vIFJlbWVtYmVyIHRoYXQgdGhpcyBjbGFzcyBkb2VzIG5vdCBleGlzdC4KKyAgICAgICAgICAgICR0aGlzLT5taXNzaW5nQ2xhc3Nlc1skY2xhc3NdID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkZmlsZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGZpbmRGaWxlV2l0aEV4dGVuc2lvbigkY2xhc3MsICRleHQpCisgICAgeworICAgICAgICAvLyBQU1ItNCBsb29rdXAKKyAgICAgICAgJGxvZ2ljYWxQYXRoUHNyNCA9IHN0cnRyKCRjbGFzcywgJ1xcJywgRElSRUNUT1JZX1NFUEFSQVRPUikgLiAkZXh0OworCisgICAgICAgICRmaXJzdCA9ICRjbGFzc1swXTsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wcmVmaXhMZW5ndGhzUHNyNFskZmlyc3RdKSkgeworICAgICAgICAgICAgJHN1YlBhdGggPSAkY2xhc3M7CisgICAgICAgICAgICB3aGlsZSAoZmFsc2UgIT09ICRsYXN0UG9zID0gc3RycnBvcygkc3ViUGF0aCwgJ1xcJykpIHsKKyAgICAgICAgICAgICAgICAkc3ViUGF0aCA9IHN1YnN0cigkc3ViUGF0aCwgMCwgJGxhc3RQb3MpOworICAgICAgICAgICAgICAgICRzZWFyY2ggPSAkc3ViUGF0aCAuICdcXCc7CisgICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wcmVmaXhEaXJzUHNyNFskc2VhcmNoXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJHBhdGhFbmQgPSBESVJFQ1RPUllfU0VQQVJBVE9SIC4gc3Vic3RyKCRsb2dpY2FsUGF0aFBzcjQsICRsYXN0UG9zICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5wcmVmaXhEaXJzUHNyNFskc2VhcmNoXSBhcyAkZGlyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGUgPSAkZGlyIC4gJHBhdGhFbmQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRmaWxlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUFNSLTQgZmFsbGJhY2sgZGlycworICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyNCBhcyAkZGlyKSB7CisgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGUgPSAkZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRsb2dpY2FsUGF0aFBzcjQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRmaWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUFNSLTAgbG9va3VwCisgICAgICAgIGlmIChmYWxzZSAhPT0gJHBvcyA9IHN0cnJwb3MoJGNsYXNzLCAnXFwnKSkgeworICAgICAgICAgICAgLy8gbmFtZXNwYWNlZCBjbGFzcyBuYW1lCisgICAgICAgICAgICAkbG9naWNhbFBhdGhQc3IwID0gc3Vic3RyKCRsb2dpY2FsUGF0aFBzcjQsIDAsICRwb3MgKyAxKQorICAgICAgICAgICAgICAgIC4gc3RydHIoc3Vic3RyKCRsb2dpY2FsUGF0aFBzcjQsICRwb3MgKyAxKSwgJ18nLCBESVJFQ1RPUllfU0VQQVJBVE9SKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFBFQVItbGlrZSBjbGFzcyBuYW1lCisgICAgICAgICAgICAkbG9naWNhbFBhdGhQc3IwID0gc3RydHIoJGNsYXNzLCAnXycsIERJUkVDVE9SWV9TRVBBUkFUT1IpIC4gJGV4dDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF0pKSB7CisgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cHJlZml4ZXNQc3IwWyRmaXJzdF0gYXMgJHByZWZpeCA9PiAkZGlycykgeworICAgICAgICAgICAgICAgIGlmICgwID09PSBzdHJwb3MoJGNsYXNzLCAkcHJlZml4KSkgeworICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZGlycyBhcyAkZGlyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGUgPSAkZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRsb2dpY2FsUGF0aFBzcjApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRmaWxlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUFNSLTAgZmFsbGJhY2sgZGlycworICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmFsbGJhY2tEaXJzUHNyMCBhcyAkZGlyKSB7CisgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGUgPSAkZGlyIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRsb2dpY2FsUGF0aFBzcjApKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRmaWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUFNSLTAgaW5jbHVkZSBwYXRocy4KKyAgICAgICAgaWYgKCR0aGlzLT51c2VJbmNsdWRlUGF0aCAmJiAkZmlsZSA9IHN0cmVhbV9yZXNvbHZlX2luY2x1ZGVfcGF0aCgkbG9naWNhbFBhdGhQc3IwKSkgeworICAgICAgICAgICAgcmV0dXJuICRmaWxlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworLyoqCisgKiBTY29wZSBpc29sYXRlZCBpbmNsdWRlLgorICoKKyAqIFByZXZlbnRzIGFjY2VzcyB0byAkdGhpcy9zZWxmIGZyb20gaW5jbHVkZWQgZmlsZXMuCisgKi8KK2Z1bmN0aW9uIGluY2x1ZGVGaWxlKCRmaWxlKQoreworICAgIGluY2x1ZGUgJGZpbGU7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvTElDRU5TRSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9jb21wb3Nlci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNzM5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvTElDRU5TRQpAQCAtMCwwICsxLDIxIEBACisKK0NvcHlyaWdodCAoYykgTmlscyBBZGVybWFubiwgSm9yZGkgQm9nZ2lhbm8KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQKK3RvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCitjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuCisKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9jbGFzc21hcC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfY2xhc3NtYXAucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MzkzMDYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfY2xhc3NtYXAucGhwCkBAIC0wLDAgKzEsMTQgQEAKKzw/cGhwCisKKy8vIGF1dG9sb2FkX2NsYXNzbWFwLnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCisKKyR2ZW5kb3JEaXIgPSBkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKTsKKyRiYXNlRGlyID0gZGlybmFtZSgkdmVuZG9yRGlyKTsKKworcmV0dXJuIGFycmF5KAorICAgICd1MmZsaWJfc2VydmVyXFxFcnJvcicgPT4gJHZlbmRvckRpciAuICcveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocCcsCisgICAgJ3UyZmxpYl9zZXJ2ZXJcXFJlZ2lzdGVyUmVxdWVzdCcgPT4gJHZlbmRvckRpciAuICcveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocCcsCisgICAgJ3UyZmxpYl9zZXJ2ZXJcXFJlZ2lzdHJhdGlvbicgPT4gJHZlbmRvckRpciAuICcveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocCcsCisgICAgJ3UyZmxpYl9zZXJ2ZXJcXFNpZ25SZXF1ZXN0JyA9PiAkdmVuZG9yRGlyIC4gJy95dWJpY28vdTJmbGliLXNlcnZlci9zcmMvdTJmbGliX3NlcnZlci9VMkYucGhwJywKKyAgICAndTJmbGliX3NlcnZlclxcVTJGJyA9PiAkdmVuZG9yRGlyIC4gJy95dWJpY28vdTJmbGliLXNlcnZlci9zcmMvdTJmbGliX3NlcnZlci9VMkYucGhwJywKKyk7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfZmlsZXMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX2ZpbGVzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmM1ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX2ZpbGVzLnBocApAQCAtMCwwICsxLDEwIEBACis8P3BocAorCisvLyBhdXRvbG9hZF9maWxlcy5waHAgQGdlbmVyYXRlZCBieSBDb21wb3NlcgorCiskdmVuZG9yRGlyID0gZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSk7CiskYmFzZURpciA9IGRpcm5hbWUoJHZlbmRvckRpcik7CisKK3JldHVybiBhcnJheSgKKyAgICAnMDRjNmM1YzJmNzA5NWNjZjZjNDgxZDNlNTNlMTc3NmYnID0+ICR2ZW5kb3JEaXIgLiAnL211c3Rhbmdvc3Rhbmcvc3B5Yy9TcHljLnBocCcsCispOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX25hbWVzcGFjZXMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX25hbWVzcGFjZXMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5YjUwYTEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfbmFtZXNwYWNlcy5waHAKQEAgLTAsMCArMSwxMCBAQAorPD9waHAKKworLy8gYXV0b2xvYWRfbmFtZXNwYWNlcy5waHAgQGdlbmVyYXRlZCBieSBDb21wb3NlcgorCiskdmVuZG9yRGlyID0gZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSk7CiskYmFzZURpciA9IGRpcm5hbWUoJHZlbmRvckRpcik7CisKK3JldHVybiBhcnJheSgKKyAgICAnT0F1dGgyJyA9PiBhcnJheSgkdmVuZG9yRGlyIC4gJy9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC9zcmMnKSwKKyk7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfcHNyNC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfcHNyNC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFiNzUxNAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9wc3I0LnBocApAQCAtMCwwICsxLDE2IEBACis8P3BocAorCisvLyBhdXRvbG9hZF9wc3I0LnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCisKKyR2ZW5kb3JEaXIgPSBkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKTsKKyRiYXNlRGlyID0gZGlybmFtZSgkdmVuZG9yRGlyKTsKKworcmV0dXJuIGFycmF5KAorICAgICdSb2JUaHJlZVxcQXV0aFxcJyA9PiBhcnJheSgkdmVuZG9yRGlyIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYicpLAorICAgICdQaHBNaW1lTWFpbFBhcnNlclxcJyA9PiBhcnJheSgkdmVuZG9yRGlyIC4gJy9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMnKSwKKyAgICAnUEhQTWFpbGVyXFxQSFBNYWlsZXJcXCcgPT4gYXJyYXkoJHZlbmRvckRpciAuICcvcGhwbWFpbGVyL3BocG1haWxlci9zcmMnKSwKKyAgICAnTWF0dGhpYXNNdWxsaWVcXFBhdGhDb252ZXJ0ZXJcXCcgPT4gYXJyYXkoJHZlbmRvckRpciAuICcvbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIvc3JjJyksCisgICAgJ01hdHRoaWFzTXVsbGllXFxNaW5pZnlcXCcgPT4gYXJyYXkoJHZlbmRvckRpciAuICcvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYycpLAorICAgICdIdG1sMlRleHRcXCcgPT4gYXJyYXkoJHZlbmRvckRpciAuICcvc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3NyYycpLAorICAgICdEZGVib2VyXFxJbWFwXFwnID0+IGFycmF5KCR2ZW5kb3JEaXIgLiAnL2RkZWJvZXIvaW1hcC9zcmMnKSwKKyk7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfcmVhbC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvYXV0b2xvYWRfcmVhbC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYyNzRlOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9yZWFsLnBocApAQCAtMCwwICsxLDczIEBACis8P3BocAorCisvLyBhdXRvbG9hZF9yZWFsLnBocCBAZ2VuZXJhdGVkIGJ5IENvbXBvc2VyCisKK2NsYXNzIENvbXBvc2VyQXV0b2xvYWRlckluaXQ4NzM0NjRlNGJkOTY1YTMxNjhmMTMzMjQ4YjFiMjE4YgoreworICAgIHByaXZhdGUgc3RhdGljICRsb2FkZXI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRDbGFzc0xvYWRlcigkY2xhc3MpCisgICAgeworICAgICAgICBpZiAoJ0NvbXBvc2VyXEF1dG9sb2FkXENsYXNzTG9hZGVyJyA9PT0gJGNsYXNzKSB7CisgICAgICAgICAgICByZXF1aXJlIF9fRElSX18gLiAnL0NsYXNzTG9hZGVyLnBocCc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFxDb21wb3NlclxBdXRvbG9hZFxDbGFzc0xvYWRlcgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0TG9hZGVyKCkKKyAgICB7CisgICAgICAgIGlmIChudWxsICE9PSBzZWxmOjokbG9hZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gc2VsZjo6JGxvYWRlcjsKKyAgICAgICAgfQorCisgICAgICAgIHNwbF9hdXRvbG9hZF9yZWdpc3RlcihhcnJheSgnQ29tcG9zZXJBdXRvbG9hZGVySW5pdDg3MzQ2NGU0YmQ5NjVhMzE2OGYxMzMyNDhiMWIyMThiJywgJ2xvYWRDbGFzc0xvYWRlcicpLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgc2VsZjo6JGxvYWRlciA9ICRsb2FkZXIgPSBuZXcgXENvbXBvc2VyXEF1dG9sb2FkXENsYXNzTG9hZGVyKCk7CisgICAgICAgIHNwbF9hdXRvbG9hZF91bnJlZ2lzdGVyKGFycmF5KCdDb21wb3NlckF1dG9sb2FkZXJJbml0ODczNDY0ZTRiZDk2NWEzMTY4ZjEzMzI0OGIxYjIxOGInLCAnbG9hZENsYXNzTG9hZGVyJykpOworCisgICAgICAgICR1c2VTdGF0aWNMb2FkZXIgPSBQSFBfVkVSU0lPTl9JRCA+PSA1MDYwMCAmJiAhZGVmaW5lZCgnSEhWTV9WRVJTSU9OJykgJiYgKCFmdW5jdGlvbl9leGlzdHMoJ3plbmRfbG9hZGVyX2ZpbGVfZW5jb2RlZCcpIHx8ICF6ZW5kX2xvYWRlcl9maWxlX2VuY29kZWQoKSk7CisgICAgICAgIGlmICgkdXNlU3RhdGljTG9hZGVyKSB7CisgICAgICAgICAgICByZXF1aXJlX29uY2UgX19ESVJfXyAuICcvYXV0b2xvYWRfc3RhdGljLnBocCc7CisKKyAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jKFxDb21wb3NlclxBdXRvbG9hZFxDb21wb3NlclN0YXRpY0luaXQ4NzM0NjRlNGJkOTY1YTMxNjhmMTMzMjQ4YjFiMjE4Yjo6Z2V0SW5pdGlhbGl6ZXIoJGxvYWRlcikpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG1hcCA9IHJlcXVpcmUgX19ESVJfXyAuICcvYXV0b2xvYWRfbmFtZXNwYWNlcy5waHAnOworICAgICAgICAgICAgZm9yZWFjaCAoJG1hcCBhcyAkbmFtZXNwYWNlID0+ICRwYXRoKSB7CisgICAgICAgICAgICAgICAgJGxvYWRlci0+c2V0KCRuYW1lc3BhY2UsICRwYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJG1hcCA9IHJlcXVpcmUgX19ESVJfXyAuICcvYXV0b2xvYWRfcHNyNC5waHAnOworICAgICAgICAgICAgZm9yZWFjaCAoJG1hcCBhcyAkbmFtZXNwYWNlID0+ICRwYXRoKSB7CisgICAgICAgICAgICAgICAgJGxvYWRlci0+c2V0UHNyNCgkbmFtZXNwYWNlLCAkcGF0aCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRjbGFzc01hcCA9IHJlcXVpcmUgX19ESVJfXyAuICcvYXV0b2xvYWRfY2xhc3NtYXAucGhwJzsKKyAgICAgICAgICAgIGlmICgkY2xhc3NNYXApIHsKKyAgICAgICAgICAgICAgICAkbG9hZGVyLT5hZGRDbGFzc01hcCgkY2xhc3NNYXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJGxvYWRlci0+cmVnaXN0ZXIodHJ1ZSk7CisKKyAgICAgICAgaWYgKCR1c2VTdGF0aWNMb2FkZXIpIHsKKyAgICAgICAgICAgICRpbmNsdWRlRmlsZXMgPSBDb21wb3NlclxBdXRvbG9hZFxDb21wb3NlclN0YXRpY0luaXQ4NzM0NjRlNGJkOTY1YTMxNjhmMTMzMjQ4YjFiMjE4Yjo6JGZpbGVzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGluY2x1ZGVGaWxlcyA9IHJlcXVpcmUgX19ESVJfXyAuICcvYXV0b2xvYWRfZmlsZXMucGhwJzsKKyAgICAgICAgfQorICAgICAgICBmb3JlYWNoICgkaW5jbHVkZUZpbGVzIGFzICRmaWxlSWRlbnRpZmllciA9PiAkZmlsZSkgeworICAgICAgICAgICAgY29tcG9zZXJSZXF1aXJlODczNDY0ZTRiZDk2NWEzMTY4ZjEzMzI0OGIxYjIxOGIoJGZpbGVJZGVudGlmaWVyLCAkZmlsZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGxvYWRlcjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbXBvc2VyUmVxdWlyZTg3MzQ2NGU0YmQ5NjVhMzE2OGYxMzMyNDhiMWIyMThiKCRmaWxlSWRlbnRpZmllciwgJGZpbGUpCit7CisgICAgaWYgKGVtcHR5KCRHTE9CQUxTWydfX2NvbXBvc2VyX2F1dG9sb2FkX2ZpbGVzJ11bJGZpbGVJZGVudGlmaWVyXSkpIHsKKyAgICAgICAgcmVxdWlyZSAkZmlsZTsKKworICAgICAgICAkR0xPQkFMU1snX19jb21wb3Nlcl9hdXRvbG9hZF9maWxlcyddWyRmaWxlSWRlbnRpZmllcl0gPSB0cnVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9zdGF0aWMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX3N0YXRpYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg2N2VlZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9zdGF0aWMucGhwCkBAIC0wLDAgKzEsOTcgQEAKKzw/cGhwCisKKy8vIGF1dG9sb2FkX3N0YXRpYy5waHAgQGdlbmVyYXRlZCBieSBDb21wb3NlcgorCituYW1lc3BhY2UgQ29tcG9zZXJcQXV0b2xvYWQ7CisKK2NsYXNzIENvbXBvc2VyU3RhdGljSW5pdDg3MzQ2NGU0YmQ5NjVhMzE2OGYxMzMyNDhiMWIyMThiCit7CisgICAgcHVibGljIHN0YXRpYyAkZmlsZXMgPSBhcnJheSAoCisgICAgICAgICcwNGM2YzVjMmY3MDk1Y2NmNmM0ODFkM2U1M2UxNzc2ZicgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9tdXN0YW5nb3N0YW5nL3NweWMvU3B5Yy5waHAnLAorICAgICk7CisKKyAgICBwdWJsaWMgc3RhdGljICRwcmVmaXhMZW5ndGhzUHNyNCA9IGFycmF5ICgKKyAgICAgICAgJ1InID0+IAorICAgICAgICBhcnJheSAoCisgICAgICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXCcgPT4gMTQsCisgICAgICAgICksCisgICAgICAgICdQJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgJ1BocE1pbWVNYWlsUGFyc2VyXFwnID0+IDE4LAorICAgICAgICAgICAgJ1BIUE1haWxlclxcUEhQTWFpbGVyXFwnID0+IDIwLAorICAgICAgICApLAorICAgICAgICAnTScgPT4gCisgICAgICAgIGFycmF5ICgKKyAgICAgICAgICAgICdNYXR0aGlhc011bGxpZVxcUGF0aENvbnZlcnRlclxcJyA9PiAyOSwKKyAgICAgICAgICAgICdNYXR0aGlhc011bGxpZVxcTWluaWZ5XFwnID0+IDIyLAorICAgICAgICApLAorICAgICAgICAnSCcgPT4gCisgICAgICAgIGFycmF5ICgKKyAgICAgICAgICAgICdIdG1sMlRleHRcXCcgPT4gMTAsCisgICAgICAgICksCisgICAgICAgICdEJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgJ0RkZWJvZXJcXEltYXBcXCcgPT4gMTMsCisgICAgICAgICksCisgICAgKTsKKworICAgIHB1YmxpYyBzdGF0aWMgJHByZWZpeERpcnNQc3I0ID0gYXJyYXkgKAorICAgICAgICAnUm9iVGhyZWVcXEF1dGhcXCcgPT4gCisgICAgICAgIGFycmF5ICgKKyAgICAgICAgICAgIDAgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYicsCisgICAgICAgICksCisgICAgICAgICdQaHBNaW1lTWFpbFBhcnNlclxcJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgMCA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYycsCisgICAgICAgICksCisgICAgICAgICdQSFBNYWlsZXJcXFBIUE1haWxlclxcJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgMCA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3BocG1haWxlci9waHBtYWlsZXIvc3JjJywKKyAgICAgICAgKSwKKyAgICAgICAgJ01hdHRoaWFzTXVsbGllXFxQYXRoQ29udmVydGVyXFwnID0+IAorICAgICAgICBhcnJheSAoCisgICAgICAgICAgICAwID0+IF9fRElSX18gLiAnLy4uJyAuICcvbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIvc3JjJywKKyAgICAgICAgKSwKKyAgICAgICAgJ01hdHRoaWFzTXVsbGllXFxNaW5pZnlcXCcgPT4gCisgICAgICAgIGFycmF5ICgKKyAgICAgICAgICAgIDAgPT4gX19ESVJfXyAuICcvLi4nIC4gJy9tYXR0aGlhc211bGxpZS9taW5pZnkvc3JjJywKKyAgICAgICAgKSwKKyAgICAgICAgJ0h0bWwyVGV4dFxcJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgMCA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9zcmMnLAorICAgICAgICApLAorICAgICAgICAnRGRlYm9lclxcSW1hcFxcJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgMCA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL2RkZWJvZXIvaW1hcC9zcmMnLAorICAgICAgICApLAorICAgICk7CisKKyAgICBwdWJsaWMgc3RhdGljICRwcmVmaXhlc1BzcjAgPSBhcnJheSAoCisgICAgICAgICdPJyA9PiAKKyAgICAgICAgYXJyYXkgKAorICAgICAgICAgICAgJ09BdXRoMicgPT4gCisgICAgICAgICAgICBhcnJheSAoCisgICAgICAgICAgICAgICAgMCA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwL3NyYycsCisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgICk7CisKKyAgICBwdWJsaWMgc3RhdGljICRjbGFzc01hcCA9IGFycmF5ICgKKyAgICAgICAgJ3UyZmxpYl9zZXJ2ZXJcXEVycm9yJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3l1Ymljby91MmZsaWItc2VydmVyL3NyYy91MmZsaWJfc2VydmVyL1UyRi5waHAnLAorICAgICAgICAndTJmbGliX3NlcnZlclxcUmVnaXN0ZXJSZXF1ZXN0JyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3l1Ymljby91MmZsaWItc2VydmVyL3NyYy91MmZsaWJfc2VydmVyL1UyRi5waHAnLAorICAgICAgICAndTJmbGliX3NlcnZlclxcUmVnaXN0cmF0aW9uJyA9PiBfX0RJUl9fIC4gJy8uLicgLiAnL3l1Ymljby91MmZsaWItc2VydmVyL3NyYy91MmZsaWJfc2VydmVyL1UyRi5waHAnLAorICAgICAgICAndTJmbGliX3NlcnZlclxcU2lnblJlcXVlc3QnID0+IF9fRElSX18gLiAnLy4uJyAuICcveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocCcsCisgICAgICAgICd1MmZsaWJfc2VydmVyXFxVMkYnID0+IF9fRElSX18gLiAnLy4uJyAuICcveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocCcsCisgICAgKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0SW5pdGlhbGl6ZXIoQ2xhc3NMb2FkZXIgJGxvYWRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBcQ2xvc3VyZTo6YmluZChmdW5jdGlvbiAoKSB1c2UgKCRsb2FkZXIpIHsKKyAgICAgICAgICAgICRsb2FkZXItPnByZWZpeExlbmd0aHNQc3I0ID0gQ29tcG9zZXJTdGF0aWNJbml0ODczNDY0ZTRiZDk2NWEzMTY4ZjEzMzI0OGIxYjIxOGI6OiRwcmVmaXhMZW5ndGhzUHNyNDsKKyAgICAgICAgICAgICRsb2FkZXItPnByZWZpeERpcnNQc3I0ID0gQ29tcG9zZXJTdGF0aWNJbml0ODczNDY0ZTRiZDk2NWEzMTY4ZjEzMzI0OGIxYjIxOGI6OiRwcmVmaXhEaXJzUHNyNDsKKyAgICAgICAgICAgICRsb2FkZXItPnByZWZpeGVzUHNyMCA9IENvbXBvc2VyU3RhdGljSW5pdDg3MzQ2NGU0YmQ5NjVhMzE2OGYxMzMyNDhiMWIyMThiOjokcHJlZml4ZXNQc3IwOworICAgICAgICAgICAgJGxvYWRlci0+Y2xhc3NNYXAgPSBDb21wb3NlclN0YXRpY0luaXQ4NzM0NjRlNGJkOTY1YTMxNjhmMTMzMjQ4YjFiMjE4Yjo6JGNsYXNzTWFwOworCisgICAgICAgIH0sIG51bGwsIENsYXNzTG9hZGVyOjpjbGFzcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2luc3RhbGxlZC5qc29uIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2NvbXBvc2VyL2luc3RhbGxlZC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzOGZkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvY29tcG9zZXIvaW5zdGFsbGVkLmpzb24KQEAgLTAsMCArMSw2MzQgQEAKK1sKKyAgICB7CisgICAgICAgICJuYW1lIjogImJzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwIiwKKyAgICAgICAgInZlcnNpb24iOiAidjEuMTEuMSIsCisgICAgICAgICJ2ZXJzaW9uX25vcm1hbGl6ZWQiOiAiMS4xMS4xLjAiLAorICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JzaGFmZmVyL29hdXRoMi1zZXJ2ZXItcGhwLmdpdCIsCisgICAgICAgICAgICAicmVmZXJlbmNlIjogIjVhMGM4MDAwZDQ3NjNiMjc2OTE5ZTIxMDZmNTRlZGRkYTZiYzUwZmEiCisgICAgICAgIH0sCisgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocC96aXBiYWxsLzVhMGM4MDAwZDQ3NjNiMjc2OTE5ZTIxMDZmNTRlZGRkYTZiYzUwZmEiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1YTBjODAwMGQ0NzYzYjI3NjkxOWUyMTA2ZjU0ZWRkZGE2YmM1MGZhIiwKKyAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICJwaHAiOiAiPj01LjMuOSIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgImF3cy9hd3Mtc2RrLXBocCI6ICJ+Mi44IiwKKyAgICAgICAgICAgICJmaXJlYmFzZS9waHAtand0IjogIn4yLjIiLAorICAgICAgICAgICAgIm1vbmdvZGIvbW9uZ29kYiI6ICJeMS4xIiwKKyAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiXjQuMCIsCisgICAgICAgICAgICAicHJlZGlzL3ByZWRpcyI6ICJkZXYtbWFzdGVyIiwKKyAgICAgICAgICAgICJ0aG9iYnMvcGhwY2Fzc2EiOiAiZGV2LW1hc3RlciIKKyAgICAgICAgfSwKKyAgICAgICAgInN1Z2dlc3QiOiB7CisgICAgICAgICAgICAiYXdzL2F3cy1zZGstcGhwIjogIn4yLjggaXMgcmVxdWlyZWQgdG8gdXNlIER5bmFtb0RCIHN0b3JhZ2UiLAorICAgICAgICAgICAgImZpcmViYXNlL3BocC1qd3QiOiAifjIuMiBpcyByZXF1aXJlZCB0byB1c2UgSldUIGZlYXR1cmVzIiwKKyAgICAgICAgICAgICJtb25nb2RiL21vbmdvZGIiOiAiXjEuMSBpcyByZXF1aXJlZCB0byB1c2UgTW9uZ29EQiBzdG9yYWdlIiwKKyAgICAgICAgICAgICJwcmVkaXMvcHJlZGlzIjogIlJlcXVpcmVkIHRvIHVzZSBSZWRpcyBzdG9yYWdlIiwKKyAgICAgICAgICAgICJ0aG9iYnMvcGhwY2Fzc2EiOiAiUmVxdWlyZWQgdG8gdXNlIENhc3NhbmRyYSBzdG9yYWdlIgorICAgICAgICB9LAorICAgICAgICAidGltZSI6ICIyMDE4LTEyLTA0VDAwOjI5OjMyKzAwOjAwIiwKKyAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICJpbnN0YWxsYXRpb24tc291cmNlIjogImRpc3QiLAorICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAicHNyLTAiOiB7CisgICAgICAgICAgICAgICAgIk9BdXRoMiI6ICJzcmMvIgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgXSwKKyAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiQnJlbnQgU2hhZmZlciIsCisgICAgICAgICAgICAgICAgImVtYWlsIjogImJzaGFmc0BnbWFpbC5jb20iLAorICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vYnJlbnRlcnRhaW5tZW50LmNvbSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIk9BdXRoMiBTZXJ2ZXIgZm9yIFBIUCIsCisgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vZ2l0aHViLmNvbS9ic2hhZmZlci9vYXV0aDItc2VydmVyLXBocCIsCisgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICJhdXRoIiwKKyAgICAgICAgICAgICJvYXV0aCIsCisgICAgICAgICAgICAib2F1dGgyIgorICAgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAgICJuYW1lIjogImRkZWJvZXIvaW1hcCIsCisgICAgICAgICJ2ZXJzaW9uIjogIjEuMTAuMCIsCisgICAgICAgICJ2ZXJzaW9uX25vcm1hbGl6ZWQiOiAiMS4xMC4wLjAiLAorICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC5naXQiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJmYzA5ZGJmNmZiOWJhNzMxN2E5NWM3MTllNDU4OTNlZmM0ZmU2YmRlIgorICAgICAgICB9LAorICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZGRlYm9lci9pbWFwL3ppcGJhbGwvZmMwOWRiZjZmYjliYTczMTdhOTVjNzE5ZTQ1ODkzZWZjNGZlNmJkZSIsCisgICAgICAgICAgICAicmVmZXJlbmNlIjogImZjMDlkYmY2ZmI5YmE3MzE3YTk1YzcxOWU0NTg5M2VmYzRmZTZiZGUiLAorICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgImV4dC1pY29udiI6ICIqIiwKKyAgICAgICAgICAgICJleHQtaW1hcCI6ICIqIiwKKyAgICAgICAgICAgICJleHQtbWJzdHJpbmciOiAiKiIsCisgICAgICAgICAgICAicGhwIjogIl43LjIiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICJmcmllbmRzb2ZwaHAvcGhwLWNzLWZpeGVyIjogIl4yLjE2IiwKKyAgICAgICAgICAgICJwaHBzdGFuL3BocHN0YW4iOiAiXjAuMTIiLAorICAgICAgICAgICAgInBocHN0YW4vcGhwc3Rhbi1waHB1bml0IjogIl4wLjEyIiwKKyAgICAgICAgICAgICJwaHBzdGFuL3BocHN0YW4tc3RyaWN0LXJ1bGVzIjogIl4wLjEyIiwKKyAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiXjguNSIsCisgICAgICAgICAgICAiemVuZGZyYW1ld29yay96ZW5kLW1haWwiOiAiXjIuMTAiCisgICAgICAgIH0sCisgICAgICAgICJ0aW1lIjogIjIwMjAtMDEtMjRUMDg6MTU6MjQrMDA6MDAiLAorICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgImluc3RhbGxhdGlvbi1zb3VyY2UiOiAiZGlzdCIsCisgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICAgICAiRGRlYm9lclxcSW1hcFxcIjogInNyYy8iCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAiTUlUIgorICAgICAgICBdLAorICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJEYXZpZCBkZSBCb2VyIiwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiAiZGF2aWRAZGRlYm9lci5ubCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiRmlsaXBwbyBUZXNzYXJvdHRvIiwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiAiem9lc2xhbUBnbWFpbC5jb20iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIkNvbW11bml0eSBjb250cmlidXRvcnMiLAorICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2dyYXBocy9jb250cmlidXRvcnMiCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qtb3JpZW50ZWQgSU1BUCBmb3IgUEhQIiwKKyAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgImVtYWlsIiwKKyAgICAgICAgICAgICJpbWFwIiwKKyAgICAgICAgICAgICJtYWlsIgorICAgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAgICJuYW1lIjogIm1hdHRoaWFzbXVsbGllL21pbmlmeSIsCisgICAgICAgICJ2ZXJzaW9uIjogIjEuMy42MyIsCisgICAgICAgICJ2ZXJzaW9uX25vcm1hbGl6ZWQiOiAiMS4zLjYzLjAiLAorICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS5naXQiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI5YmExYjQ1OTgyOGFkYzEzNDMwZjRkZDZjNDlkYWU0OTUwZGM0MTE3IgorICAgICAgICB9LAorICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3ppcGJhbGwvOWJhMWI0NTk4MjhhZGMxMzQzMGY0ZGQ2YzQ5ZGFlNDk1MGRjNDExNyIsCisgICAgICAgICAgICAicmVmZXJlbmNlIjogIjliYTFiNDU5ODI4YWRjMTM0MzBmNGRkNmM0OWRhZTQ5NTBkYzQxMTciLAorICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgImV4dC1wY3JlIjogIioiLAorICAgICAgICAgICAgIm1hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyIjogIn4xLjEiLAorICAgICAgICAgICAgInBocCI6ICI+PTUuMy4wIgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAiZnJpZW5kc29mcGhwL3BocC1jcy1maXhlciI6ICJ+Mi4wIiwKKyAgICAgICAgICAgICJtYXR0aGlhc211bGxpZS9zY3JhcGJvb2siOiAifjEuMCIsCisgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjgiCisgICAgICAgIH0sCisgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgInBzci9jYWNoZS1pbXBsZW1lbnRhdGlvbiI6ICJDYWNoZSBpbXBsZW1lbnRhdGlvbiB0byB1c2Ugd2l0aCBNaW5pZnk6OmNhY2hlIgorICAgICAgICB9LAorICAgICAgICAidGltZSI6ICIyMDIwLTAxLTIxVDIwOjIxOjA4KzAwOjAwIiwKKyAgICAgICAgImJpbiI6IFsKKyAgICAgICAgICAgICJiaW4vbWluaWZ5Y3NzIiwKKyAgICAgICAgICAgICJiaW4vbWluaWZ5anMiCisgICAgICAgIF0sCisgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAiaW5zdGFsbGF0aW9uLXNvdXJjZSI6ICJkaXN0IiwKKyAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgICAgICJNYXR0aGlhc011bGxpZVxcTWluaWZ5XFwiOiAic3JjLyIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICJNSVQiCisgICAgICAgIF0sCisgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIk1hdHRoaWFzIE11bGxpZSIsCisgICAgICAgICAgICAgICAgImVtYWlsIjogIm1pbmlmeUBtdWxsaWUuZXUiLAorICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vd3d3Lm11bGxpZS5ldSIsCisgICAgICAgICAgICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ1NTICYgSmF2YVNjcmlwdCBtaW5pZmllciwgaW4gUEhQLiBSZW1vdmVzIHdoaXRlc3BhY2UsIHN0cmlwcyBjb21tZW50cywgY29tYmluZXMgZmlsZXMgKGluY2wuIEBpbXBvcnQgc3RhdGVtZW50cyBhbmQgc21hbGwgYXNzZXRzIGluIENTUyBmaWxlcyksIGFuZCBvcHRpbWl6ZXMvc2hvcnRlbnMgYSBmZXcgY29tbW9uIHByb2dyYW1taW5nIHBhdHRlcm5zLiIsCisgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vd3d3Lm1pbmlmaWVyLm9yZyIsCisgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICJKUyIsCisgICAgICAgICAgICAiY3NzIiwKKyAgICAgICAgICAgICJqYXZhc2NyaXB0IiwKKyAgICAgICAgICAgICJtaW5pZmllciIsCisgICAgICAgICAgICAibWluaWZ5IgorICAgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAgICJuYW1lIjogIm1hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyIiwKKyAgICAgICAgInZlcnNpb24iOiAiMS4xLjMiLAorICAgICAgICAidmVyc2lvbl9ub3JtYWxpemVkIjogIjEuMS4zLjAiLAorICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyLmdpdCIsCisgICAgICAgICAgICAicmVmZXJlbmNlIjogImU3ZDEzYjJjN2UyZjIyNjhlMTQyNGFhZWQwMjA4NTUxOGFmYTAyZDkiCisgICAgICAgIH0sCisgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci96aXBiYWxsL2U3ZDEzYjJjN2UyZjIyNjhlMTQyNGFhZWQwMjA4NTUxOGFmYTAyZDkiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJlN2QxM2IyYzdlMmYyMjY4ZTE0MjRhYWVkMDIwODU1MThhZmEwMmQ5IiwKKyAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICJleHQtcGNyZSI6ICIqIiwKKyAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMCIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC44IgorICAgICAgICB9LAorICAgICAgICAidGltZSI6ICIyMDE5LTAyLTA1VDIzOjQxOjA5KzAwOjAwIiwKKyAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICJpbnN0YWxsYXRpb24tc291cmNlIjogImRpc3QiLAorICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAgICAgIk1hdHRoaWFzTXVsbGllXFxQYXRoQ29udmVydGVyXFwiOiAic3JjLyIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICJNSVQiCisgICAgICAgIF0sCisgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIk1hdHRoaWFzIE11bGxpZSIsCisgICAgICAgICAgICAgICAgImVtYWlsIjogInBhdGhjb252ZXJ0ZXJAbXVsbGllLmV1IiwKKyAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5tdWxsaWUuZXUiLAorICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlbGF0aXZlIHBhdGggY29udmVydGVyIiwKKyAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyIiwKKyAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgImNvbnZlcnRlciIsCisgICAgICAgICAgICAicGF0aCIsCisgICAgICAgICAgICAicGF0aHMiLAorICAgICAgICAgICAgInJlbGF0aXZlIgorICAgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAgICJuYW1lIjogIm11c3Rhbmdvc3Rhbmcvc3B5YyIsCisgICAgICAgICJ2ZXJzaW9uIjogIjAuNi4zIiwKKyAgICAgICAgInZlcnNpb25fbm9ybWFsaXplZCI6ICIwLjYuMy4wIiwKKyAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAidXJsIjogImdpdEBnaXRodWIuY29tOm11c3Rhbmdvc3Rhbmcvc3B5Yy5naXQiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI0NjI3YzgzOGIxNjU1MGI2NjZkMTVhZWFlMWU1Mjg5ZGQ1Yjc3ZGEwIgorICAgICAgICB9LAorICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbXVzdGFuZ29zdGFuZy9zcHljL3ppcGJhbGwvNDYyN2M4MzhiMTY1NTBiNjY2ZDE1YWVhZTFlNTI4OWRkNWI3N2RhMCIsCisgICAgICAgICAgICAicmVmZXJlbmNlIjogIjQ2MjdjODM4YjE2NTUwYjY2NmQxNWFlYWUxZTUyODlkZDViNzdkYTAiLAorICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgInBocCI6ICI+PTUuMy4xIgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIjQuMy4qQGRldiIKKyAgICAgICAgfSwKKyAgICAgICAgInRpbWUiOiAiMjAxOS0wOS0xMFQxMzoxNjoyOSswMDowMCIsCisgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjAuNS54LWRldiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgImluc3RhbGxhdGlvbi1zb3VyY2UiOiAiZGlzdCIsCisgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICJmaWxlcyI6IFsKKyAgICAgICAgICAgICAgICAiU3B5Yy5waHAiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAiTUlUIgorICAgICAgICBdLAorICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJtdXN0YW5nb3N0YW5nIiwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiAidmxhZC5hbmRlcnNlbkBnbWFpbC5jb20iCisgICAgICAgICAgICB9CisgICAgICAgIF0sCisgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNpbXBsZSBZQU1MIGxvYWRlci9kdW1wZXIgY2xhc3MgZm9yIFBIUCIsCisgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVzdGFuZ29zdGFuZy9zcHljLyIsCisgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICJzcHljIiwKKyAgICAgICAgICAgICJ5YW1sIiwKKyAgICAgICAgICAgICJ5bWwiCisgICAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAicGFyYWdvbmllL3JhbmRvbV9jb21wYXQiLAorICAgICAgICAidmVyc2lvbiI6ICJ2OS45OS45OSIsCisgICAgICAgICJ2ZXJzaW9uX25vcm1hbGl6ZWQiOiAiOS45OS45OS4wIiwKKyAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC5naXQiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI4NGI0ZGZiMTIwYzZmOWI0ZmY3YjM2ODVmOWI4ZjFhYTM2NWEwYzk1IgorICAgICAgICB9LAorICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvemlwYmFsbC84NGI0ZGZiMTIwYzZmOWI0ZmY3YjM2ODVmOWI4ZjFhYTM2NWEwYzk1IiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiODRiNGRmYjEyMGM2ZjliNGZmN2IzNjg1ZjliOGYxYWEzNjVhMGM5NSIsCisgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAicGhwIjogIl43IgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIjQuKnw1LioiLAorICAgICAgICAgICAgInZpbWVvL3BzYWxtIjogIl4xIgorICAgICAgICB9LAorICAgICAgICAic3VnZ2VzdCI6IHsKKyAgICAgICAgICAgICJleHQtbGlic29kaXVtIjogIlByb3ZpZGVzIGEgbW9kZXJuIGNyeXB0byBBUEkgdGhhdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSByYW5kb20gYnl0ZXMuIgorICAgICAgICB9LAorICAgICAgICAidGltZSI6ICIyMDE4LTA3LTAyVDE1OjU1OjU2KzAwOjAwIiwKKyAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICJpbnN0YWxsYXRpb24tc291cmNlIjogImRpc3QiLAorICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgXSwKKyAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiUGFyYWdvbiBJbml0aWF0aXZlIEVudGVycHJpc2VzIiwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiAic2VjdXJpdHlAcGFyYWdvbmllLmNvbSIsCisgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vcGFyYWdvbmllLmNvbSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIlBIUCA1LnggcG9seWZpbGwgZm9yIHJhbmRvbV9ieXRlcygpIGFuZCByYW5kb21faW50KCkgZnJvbSBQSFAgNyIsCisgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICJjc3BybmciLAorICAgICAgICAgICAgInBvbHlmaWxsIiwKKyAgICAgICAgICAgICJwc2V1ZG9yYW5kb20iLAorICAgICAgICAgICAgInJhbmRvbSIKKyAgICAgICAgXQorICAgIH0sCisgICAgeworICAgICAgICAibmFtZSI6ICJwaHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlciIsCisgICAgICAgICJ2ZXJzaW9uIjogIjUuMC41IiwKKyAgICAgICAgInZlcnNpb25fbm9ybWFsaXplZCI6ICI1LjAuNS4wIiwKKyAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci5naXQiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIyNzk4MzQzM2FhYmVjY2VlODMyNTczYzNjNTZlNmE0ODU1ZTU3NzQ1IgorICAgICAgICB9LAorICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvemlwYmFsbC8yNzk4MzQzM2FhYmVjY2VlODMyNTczYzNjNTZlNmE0ODU1ZTU3NzQ1IiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMjc5ODM0MzNhYWJlY2NlZTgzMjU3M2MzYzU2ZTZhNDg1NWU1Nzc0NSIsCisgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAiZXh0LW1haWxwYXJzZSI6ICIqIiwKKyAgICAgICAgICAgICJwaHAiOiAiXjcuMSIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcGxhY2UiOiB7CisgICAgICAgICAgICAiZXhvcnVzL3BocC1taW1lLW1haWwtcGFyc2VyIjogIioiLAorICAgICAgICAgICAgIm1lc3NhZ2VkL3BocC1taW1lLW1haWwtcGFyc2VyIjogIioiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICJwaHAtY292ZXJhbGxzL3BocC1jb3ZlcmFsbHMiOiAiXjIuMSIsCisgICAgICAgICAgICAicGhwdW5pdC9waHAtdG9rZW4tc3RyZWFtIjogIl4zLjAiLAorICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJeNy4wIiwKKyAgICAgICAgICAgICJzcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyIjogIl4zLjQiCisgICAgICAgIH0sCisgICAgICAgICJ0aW1lIjogIjIwMTktMDktMjNUMTE6NTc6NTgrMDA6MDAiLAorICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgImluc3RhbGxhdGlvbi1zb3VyY2UiOiAiZGlzdCIsCisgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICAgICAiUGhwTWltZU1haWxQYXJzZXJcXCI6ICJzcmMvIgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgXSwKKyAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZVhvcnVzIiwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiAiZXhvcnVzLnNwYW1AZ21haWwuY29tIiwKKyAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VYb3J1cy8iLAorICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiTS5WYWxpbnNraXMiLAorICAgICAgICAgICAgICAgICJlbWFpbCI6ICJNLlZhbGluc0BnbWFpbC5jb20iLAorICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3BocC1taW1lLW1haWwtcGFyc2VyIiwKKyAgICAgICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImV1Z2VuZS5lbW1ldHQud29vZCIsCisgICAgICAgICAgICAgICAgImVtYWlsIjogImdlbmVfd0BjZW1lbnRob3Jpem9uLmNvbSIsCisgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvcGhwLW1pbWUtbWFpbC1wYXJzZXIiLAorICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiYWxrbmV0c28iLAorICAgICAgICAgICAgICAgICJlbWFpbCI6ICJhbGtuZUBnbWFpbC5jb20iLAorICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3BocC1taW1lLW1haWwtcGFyc2VyIiwKKyAgICAgICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImJ1Y2FiYXkiLAorICAgICAgICAgICAgICAgICJlbWFpbCI6ICJnYWJlQGZpaml3ZWJkZXNpZ24uY29tIiwKKyAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5maWppd2ViZGVzaWduLmNvbSIsCisgICAgICAgICAgICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBmdWxseSB0ZXN0ZWQgZW1haWwgcGFyc2VyIGZvciBQSFAgNy4xKyAobWFpbHBhcnNlIGV4dGVuc2lvbiB3cmFwcGVyKS4iLAorICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyIiwKKyAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgIk1pbWVNYWlsUGFyc2VyIiwKKyAgICAgICAgICAgICJtYWlsIiwKKyAgICAgICAgICAgICJtYWlscGFyc2UiLAorICAgICAgICAgICAgIm1pbWUiLAorICAgICAgICAgICAgInBhcnNlciIsCisgICAgICAgICAgICAicGhwIgorICAgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAgICJuYW1lIjogInBocG1haWxlci9waHBtYWlsZXIiLAorICAgICAgICAidmVyc2lvbiI6ICJ2Ni4xLjYiLAorICAgICAgICAidmVyc2lvbl9ub3JtYWxpemVkIjogIjYuMS42LjAiLAorICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIuZ2l0IiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYzI3OTZjYjFjYjk5ZDc3MTcyOTBiNDhjNGU2ZjMyY2I2YzYwYjdiMyIKKyAgICAgICAgfSwKKyAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL1BIUE1haWxlci9QSFBNYWlsZXIvemlwYmFsbC9jMjc5NmNiMWNiOTlkNzcxNzI5MGI0OGM0ZTZmMzJjYjZjNjBiN2IzIiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYzI3OTZjYjFjYjk5ZDc3MTcyOTBiNDhjNGU2ZjMyY2I2YzYwYjdiMyIsCisgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAiZXh0LWN0eXBlIjogIioiLAorICAgICAgICAgICAgImV4dC1maWx0ZXIiOiAiKiIsCisgICAgICAgICAgICAicGhwIjogIj49NS41LjAiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICJkb2N0cmluZS9hbm5vdGF0aW9ucyI6ICJeMS4yIiwKKyAgICAgICAgICAgICJmcmllbmRzb2ZwaHAvcGhwLWNzLWZpeGVyIjogIl4yLjIiLAorICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJeNC44IHx8IF41LjciCisgICAgICAgIH0sCisgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgImV4dC1tYnN0cmluZyI6ICJOZWVkZWQgdG8gc2VuZCBlbWFpbCBpbiBtdWx0aWJ5dGUgZW5jb2RpbmcgY2hhcnNldCIsCisgICAgICAgICAgICAiaGF5YWdlZWsvb2F1dGgyLXlhaG9vIjogIk5lZWRlZCBmb3IgWWFob28gWE9BVVRIMiBhdXRoZW50aWNhdGlvbiIsCisgICAgICAgICAgICAibGVhZ3VlL29hdXRoMi1nb29nbGUiOiAiTmVlZGVkIGZvciBHb29nbGUgWE9BVVRIMiBhdXRoZW50aWNhdGlvbiIsCisgICAgICAgICAgICAicHNyL2xvZyI6ICJGb3Igb3B0aW9uYWwgUFNSLTMgZGVidWcgbG9nZ2luZyIsCisgICAgICAgICAgICAic3RldmVubWFndWlyZS9vYXV0aDItbWljcm9zb2Z0IjogIk5lZWRlZCBmb3IgTWljcm9zb2Z0IFhPQVVUSDIgYXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgInN5bWZvbnkvcG9seWZpbGwtbWJzdHJpbmciOiAiVG8gc3VwcG9ydCBVVEYtOCBpZiB0aGUgTWJzdHJpbmcgUEhQIGV4dGVuc2lvbiBpcyBub3QgZW5hYmxlZCAoXjEuMikiCisgICAgICAgIH0sCisgICAgICAgICJ0aW1lIjogIjIwMjAtMDUtMjdUMTI6MjQ6MDMrMDA6MDAiLAorICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgImluc3RhbGxhdGlvbi1zb3VyY2UiOiAiZGlzdCIsCisgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICAgICAiUEhQTWFpbGVyXFxQSFBNYWlsZXJcXCI6ICJzcmMvIgorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgIkxHUEwtMi4xLW9ubHkiCisgICAgICAgIF0sCisgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIk1hcmN1cyBCb2ludG9uIiwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiAicGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51ayIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiSmltIEphZ2llbHNraSIsCisgICAgICAgICAgICAgICAgImVtYWlsIjogImppbWphZ0BnbWFpbC5jb20iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIkFuZHkgUHJldm9zdCIsCisgICAgICAgICAgICAgICAgImVtYWlsIjogImNvZGV3b3J4dGVjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIkJyZW50IFIuIE1hdHplbGxlIgorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiUEhQTWFpbGVyIGlzIGEgZnVsbC1mZWF0dXJlZCBlbWFpbCBjcmVhdGlvbiBhbmQgdHJhbnNmZXIgY2xhc3MgZm9yIFBIUCIsCisgICAgICAgICJmdW5kaW5nIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmNocm8iLAorICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdGh1YiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH0sCisgICAgeworICAgICAgICAibmFtZSI6ICJyb2J0aHJlZS90d29mYWN0b3JhdXRoIiwKKyAgICAgICAgInZlcnNpb24iOiAiMS43LjAiLAorICAgICAgICAidmVyc2lvbl9ub3JtYWxpemVkIjogIjEuNy4wLjAiLAorICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGguZ2l0IiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMzc5ODNiZjY3NWM1YmFjYTA5ZDE5ZDY3MDUxNzA0ODlkMGRmMDAwMiIKKyAgICAgICAgfSwKKyAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvemlwYmFsbC8zNzk4M2JmNjc1YzViYWNhMDlkMTlkNjcwNTE3MDQ4OWQwZGYwMDAyIiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMzc5ODNiZjY3NWM1YmFjYTA5ZDE5ZDY3MDUxNzA0ODlkMGRmMDAwMiIsCisgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAicGhwIjogIj49NS42LjAiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiQHN0YWJsZSIKKyAgICAgICAgfSwKKyAgICAgICAgInRpbWUiOiAiMjAyMC0wMS0wMlQxOTo1Njo0NiswMDowMCIsCisgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAiaW5zdGFsbGF0aW9uLXNvdXJjZSI6ICJkaXN0IiwKKyAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgICAgICJSb2JUaHJlZVxcQXV0aFxcIjogImxpYiIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICJNSVQiCisgICAgICAgIF0sCisgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIlJvYiBKYW5zc2VuIiwKKyAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3JvYmlpaS5tZSIsCisgICAgICAgICAgICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgorICAgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiVHdvIEZhY3RvciBBdXRoZW50aWNhdGlvbiIsCisgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aCIsCisgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICJBdXRoZW50aWNhdGlvbiIsCisgICAgICAgICAgICAiTUZBIiwKKyAgICAgICAgICAgICJNdWx0aSBGYWN0b3IgQXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgIlR3byBGYWN0b3IgQXV0aGVudGljYXRpb24iLAorICAgICAgICAgICAgImF1dGhlbnRpY2F0b3IiLAorICAgICAgICAgICAgImF1dGh5IiwKKyAgICAgICAgICAgICJwaHAiLAorICAgICAgICAgICAgInRmYSIKKyAgICAgICAgXQorICAgIH0sCisgICAgeworICAgICAgICAibmFtZSI6ICJzb3VuZGFzbGVlcC9odG1sMnRleHQiLAorICAgICAgICAidmVyc2lvbiI6ICIwLjUuMCIsCisgICAgICAgICJ2ZXJzaW9uX25vcm1hbGl6ZWQiOiAiMC41LjAuMCIsCisgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0LmdpdCIsCisgICAgICAgICAgICAicmVmZXJlbmNlIjogImNkYjg5ZjZmZmEyYzRjYzc4ZjhlZDllYTZlZTA1OTRhOTEzM2NjYWQiCisgICAgICAgIH0sCisgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zb3VuZGFzbGVlcC9odG1sMnRleHQvemlwYmFsbC9jZGI4OWY2ZmZhMmM0Y2M3OGY4ZWQ5ZWE2ZWUwNTk0YTkxMzNjY2FkIiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiY2RiODlmNmZmYTJjNGNjNzhmOGVkOWVhNmVlMDU5NGE5MTMzY2NhZCIsCisgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgfSwKKyAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAiZXh0LWRvbSI6ICIqIiwKKyAgICAgICAgICAgICJleHQtbGlieG1sIjogIioiLAorICAgICAgICAgICAgInBocCI6ICI+PTUuMy4yIgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIj49NC4wIiwKKyAgICAgICAgICAgICJzb3VuZGFzbGVlcC9jb21wb25lbnQtdGVzdHMiOiAiZGV2LW1hc3RlciIKKyAgICAgICAgfSwKKyAgICAgICAgInRpbWUiOiAiMjAxNy0wNC0xOVQyMjowMTo1MCswMDowMCIsCisgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAiaW5zdGFsbGF0aW9uLXNvdXJjZSI6ICJkaXN0IiwKKyAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgICAgICJIdG1sMlRleHRcXCI6ICJzcmMiCisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAiRVBMLTEuMCIKKyAgICAgICAgXSwKKyAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiSmV2b24gV3JpZ2h0IiwKKyAgICAgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9qZXZvbi5vcmciLAorICAgICAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgUEhQIHNjcmlwdCB0byBjb252ZXJ0IEhUTUwgaW50byBhIHBsYWluIHRleHQgZm9ybWF0IiwKKyAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zb3VuZGFzbGVlcC9odG1sMnRleHQiLAorICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAiZW1haWwiLAorICAgICAgICAgICAgImh0bWwiLAorICAgICAgICAgICAgInBocCIsCisgICAgICAgICAgICAidGV4dCIKKyAgICAgICAgXQorICAgIH0sCisgICAgeworICAgICAgICAibmFtZSI6ICJ5dWJpY28vdTJmbGliLXNlcnZlciIsCisgICAgICAgICJ2ZXJzaW9uIjogIjEuMC4yIiwKKyAgICAgICAgInZlcnNpb25fbm9ybWFsaXplZCI6ICIxLjAuMi4wIiwKKyAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ZdWJpY28vcGhwLXUyZmxpYi1zZXJ2ZXIuZ2l0IiwKKyAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiNTVkODEzYWNmNjgyMTJhZDJjYWRlY2RlMDc1NTE2MDBkNjk3MTkzOSIKKyAgICAgICAgfSwKKyAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL1l1Ymljby9waHAtdTJmbGliLXNlcnZlci96aXBiYWxsLzU1ZDgxM2FjZjY4MjEyYWQyY2FkZWNkZTA3NTUxNjAwZDY5NzE5MzkiLAorICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1NWQ4MTNhY2Y2ODIxMmFkMmNhZGVjZGUwNzU1MTYwMGQ2OTcxOTM5IiwKKyAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICB9LAorICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICJleHQtb3BlbnNzbCI6ICIqIiwKKyAgICAgICAgICAgICJwYXJhZ29uaWUvcmFuZG9tX2NvbXBhdCI6ICI+PSAxIiwKKyAgICAgICAgICAgICJwaHAiOiAiPj01LjYiCisgICAgICAgIH0sCisgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjUuNyIsCisgICAgICAgICAgICAidmltZW8vcHNhbG0iOiAiXjB8XjF8XjIiCisgICAgICAgIH0sCisgICAgICAgICJ0aW1lIjogIjIwMTgtMDktMDdUMDg6MTY6NDQrMDA6MDAiLAorICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgImluc3RhbGxhdGlvbi1zb3VyY2UiOiAiZGlzdCIsCisgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICJCU0QtMi1DbGF1c2UiCisgICAgICAgIF0sCisgICAgICAgICJkZXNjcmlwdGlvbiI6ICJMaWJyYXJ5IGZvciBVMkYgaW1wbGVtZW50YXRpb24iLAorICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9kZXZlbG9wZXJzLnl1Ymljby5jb20vcGhwLXUyZmxpYi1zZXJ2ZXIiCisgICAgfQorXQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9DSEFOR0VMT0cubWQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL0NIQU5HRUxPRy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmZmZmFiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9DSEFOR0VMT0cubWQKQEAgLTAsMCArMSw2MzcgQEAKKyMgQ2hhbmdlbG9nCisKKyMjIFsxLjEwLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjEwLjApICgyMDIwLTAxLTI0KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjkuMC4uLjEuMTAuMCkKKworKipJbXBsZW1lbnRlZCBlbmhhbmNlbWVudHM6KioKKworLSBIYW5kbGUgY29tbWVudHMgXChDRldTXCkgaW4gRGF0ZSBoZWFkZXIgKyBub3QtdmFsaWQgZm9ybWF0cyBbXCM0MzldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MzkpIChbcHVwYXh4b10oaHR0cHM6Ly9naXRodWIuY29tL3B1cGF4eG8pKQorLSBTdXBwb3J0IFBIUCA3LjQsIHJlcXVpcmUgUEhQIDcuMiBbXCM0MzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MzMpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyoqQ2xvc2VkIGlzc3VlczoqKgorCistIEludmFsaWQgRGF0ZSBoZWFkZXIgd2hlbiB0cnlpbmcgdG8gZmV0Y2hpbmcgZGF0ZSBvbiBub3QgUkZDIGNvbXBsaWFudCBlbWFpbHMgW1wjNDM4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy80MzgpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBDbGVhciB0aGUgbGFzdCB1c2VkIG1haWxib3ggY2FjaGUgd2hlbiBjbG9zaW5nIGEgY29ubmVjdGlvbiBbXCM0NDddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80NDcpIChbZGh6YXZhbm5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kaHphdmFubikpCistIFJFQURNRTogdXBkYXRlIFBIUCB2ZXJzaW9uIHRvIG1hdGNoIGNvbXBvc2VyLmpzb24gW1wjNDQxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvNDQxKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBUeXBvIFtcIzQ0MF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQ0MCkgKFtPc2thclN0YXJrXShodHRwczovL2dpdGh1Yi5jb20vT3NrYXJTdGFyaykpCisKKyMjIFsxLjkuMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuOS4wKSAoMjAxOS0xMS0yNSkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS44LjAuLi4xLjkuMCkKKworKipJbXBsZW1lbnRlZCBlbmhhbmNlbWVudHM6KioKKworLSBRdW90YTogbGV0J3MgYWxzbyB0ZXN0IHRoZSBudW1iZXJzIFtcIzQzMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQzMSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gQWRkIGdldFF1b3RhIG1ldGhvZCB1c2luZyBpbWFwXF9nZXRcX3F1b3Rhcm9vdCB0byBDb25uZWN0aW9uIGNsYXNzIFtcIzQzMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQzMCkgKFthcmthZGl1c2pvbmN6ZWtdKGh0dHBzOi8vZ2l0aHViLmNvbS9hcmthZGl1c2pvbmN6ZWspKQorCisqKkNsb3NlZCBpc3N1ZXM6KioKKworLSBtYXJrQXNTZWVuXChcKSAgbm90IHdvcmsgW1wjNDE1XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy80MTUpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBDUyBGaXg6IHN0cmlwIHJlZHVuZGFudCBwaHAgZG9jcyBbXCM0MjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MjgpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEZpeDogVmFyaWFibGUgbmFtZSBbXCM0MTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MTIpIChbbG9jYWxoZWluel0oaHR0cHM6Ly9naXRodWIuY29tL2xvY2FsaGVpbnopKQorCisjIyBbMS44LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjguMCkgKDIwMTktMDQtMTUpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuNy4yLi4uMS44LjApCisKKyoqSW1wbGVtZW50ZWQgZW5oYW5jZW1lbnRzOioqCisKKy0gQWRkIHBocHN0YW4tc3RyaWN0LXJ1bGVzLCBleHBvc2UgUGFydGlJbnRlcmZhY2U6OmdldERlc2NyaXB0aW9uXChcKSBbXCM0MDldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MDkpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjcuMl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuNy4yKSAoMjAxOS0wNC0xMikKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS43LjEuLi4xLjcuMikKKworKipGaXhlZCBidWdzOioqCisKKy0gSGFuZGxlIG1lc3NhZ2UvcmZjODIyIHdoZW4gY29udGVudC1kaXNwb3NpdGlvbiBpcyBtaXNzaW5nIFtcIzQxMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQxMCkgKFtEYXJlZHppa10oaHR0cHM6Ly9naXRodWIuY29tL0RhcmVkemlrKSkKKworIyMgWzEuNy4xXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS43LjEpICgyMDE5LTAzLTE4KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjcuMC4uLjEuNy4xKQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSBFbmNvZGluZyBwcm9ibGVtIHdpdGggMS43IFtcIzQwNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvNDA1KQorLSBpbWFwXF9zZWFyY2gvaW1hcFxfc29ydDogZGVmYXVsdCBwYXJhbXMgbXVzdCBub3QgYmUgcGFzc2VkIGlmIHVuc3BlY2lmaWVkIFtcIzQwNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQwNikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuNy4wXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS43LjApICgyMDE5LTAzLTA0KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjYuMC4uLjEuNy4wKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIERvY2tlciBhbmQgVHJhdmlzIGRpZmZlcnMgaW4gaGFuZGxpbmcgbmV3IG1lc3NhZ2UgZW9scyBbXCM0MDRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MDQpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFVwZGF0ZSBQSFAtQ1MtRml4ZXIgcnVsZXMgW1wjNDAzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvNDAzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBBZGQgY2hhcnNldCBmb3IgaW1hcFxfc2VhcmNoIG9yIGltYXBcX3NvcnQgW1wjNDAyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvNDAyKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBQSFBTdGFuIGNsZWFuIHVwcyBbXCM0MDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MDApIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEFkZGluZyBhbiB1bmRlbGV0ZVwoXCkgbWVzc2FnZSBtZXRob2QgW1wjMzg2XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzg2KSAoW0MtRHV2XShodHRwczovL2dpdGh1Yi5jb20vQy1EdXYpKQorCisqKkNsb3NlZCBpc3N1ZXM6KioKKworLSBDb252ZXJ0IGZyb20gR0JLIFwoWC1HQktcKSB0byBVVEYtOCBJc3N1ZSBbXCMzOTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzM5NSkKKworKipNZXJnZWQgcHVsbCByZXF1ZXN0czoqKgorCistIEFkZCBuZXcgUmVzb3VyY2VDaGVja0ZhaWx1cmVFeGNlcHRpb24gdG8gaGFuZGxlIGltYXBcX2NoZWNrXChcKSBmYWxzZSBbXCMzOTldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zOTkpIChbcHlhdG5pdHNldl0oaHR0cHM6Ly9naXRodWIuY29tL3B5YXRuaXRzZXYpKQorLSBSZW1vdmUgR0JLIC1cPiBYLUdCSyBBbGlhcyBhbmQgYWRkIFgtR0JLIC1cPiBHQksgW1wjMzk2XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzk2KSAoW3B5YXRuaXRzZXZdKGh0dHBzOi8vZ2l0aHViLmNvbS9weWF0bml0c2V2KSkKKy0gQWRkIEZlYXR1cmUgUmVxdWVzdHMgdG8gUkVBRE1FLm1kIFtcIzM5NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzM5NCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuNi4wXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS42LjApICgyMDE4LTEyLTA0KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjUuNS4uLjEuNi4wKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIFJlcXVpcmUgUEhQIF43LjEgW1wjMjU3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yNTcpCistIFJlcXVpcmUgUEhQIF43LjEgW1wjMzgzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzgzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBBZGQgYWJpbGl0eSB0byBwYXNzIG9wdGlvbnMgYW5kIHJldHJpZXMgdG8gaW1hcFxfb3BlbiBbXCMzODJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zODIpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIERvY2tlciBzZXR1cCBmb3IgcnVubmluZyB0ZXN0cyBbXCMzNzRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zNzQpIChbTGVhZFRlY2hWaXNhc10oaHR0cHM6Ly9naXRodWIuY29tL0xlYWRUZWNoVmlzYXMpKQorLSBHZXQgbWVzc2FnZXMgYnkgVUlEIHNlcXVlbmNlIFtcIzM3M10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzM3MykgKFtMZWFkVGVjaFZpc2FzXShodHRwczovL2dpdGh1Yi5jb20vTGVhZFRlY2hWaXNhcykpCisKKyoqRml4ZWQgYnVnczoqKgorCistIFVuZGVsaXZlcmFibGUgbWFpbDogYXR0YWNobWVudCBwYXJzaW5nIGVycm9yIFtcIzMzNF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMzM0KQorLSBpbWFwXF9nZXRtYWlsYm94ZXMgcmV0dXJucyBmYWxzZTsgW1wjMTM0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xMzQpCistIEZpeCBtYWlsYm94IG5hbWUgYXMgb25seSBudW1iZXJzIFtcIzM4MV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzM4MSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gR3JhY2VmdWxseSBoYW5kbGUgcG9zc2libGUgbm9uLWFycmF5IHJldHVybiB2YWx1ZSBvZiBpbWFwXF9nZXRtYWlsYm94ZXMgW1wjMzcyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzcyKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisqKkNsb3NlZCBpc3N1ZXM6KioKKworLSBcW0FVVEhFTlRJQ0FUSU9ORkFJTEVEXF0gQXV0aGVudGljYXRpb24gZmFpbGVkIC0gVG9vIG1hbnkgbG9naW4gZmFpbHVyZXMgW1wjMzY4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zNjgpCistIGxhc3QgZm9sZGVyIGluIGxpc3QgW1wjMzUzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zNTMpCistIENhY2hpbmcgSU1BUCBzZXJ2ZXIgY29ubmVjdGlvbnMgW1wjODhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzg4KQorCisjIyBbMS41LjVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjUuNSkgKDIwMTgtMDgtMjEpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuNS40Li4uMS41LjUpCisKKyoqRml4ZWQgYnVnczoqKgorCistIFBsYWluIHRleHQgYXR0YWNobWVudHMgYXJlIG5vdCBpZGVudGlmaWVkIGFzIEF0dGFjaG1lbnQgcGFydHMgW1wjMzQxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zNDEpCistIEhhbmRsZSBwbGFpbi90ZXh0IGF0dGFjaG1lbnRzIHdpdGhvdXQgQ29udGVudC1UeXBlIGhlYWRlciBbXCMzNjddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zNjcpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjUuNF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuNS40KSAoMjAxOC0wOC0xOSkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS41LjMuLi4xLjUuNCkKKworKipGaXhlZCBidWdzOioqCisKKy0gVmVyeSBsb25nIGZpbGVuYW1lLCByZXN1bHQgb2YgZ2V0RmlsZW5hbWVcKFwpID0gTlVMTD8gW1wjMzY1XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zNjUpCistIFN1cHBvcnQgUkZDMjIzMSBhdHRhY2htZW50IGZpbGVuYW1lcyBbXCMzNjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zNjYpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjUuM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuNS4zKSAoMjAxOC0wNy0yMCkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS41LjIuLi4xLjUuMykKKworKipGaXhlZCBidWdzOioqCisKKy0gRGF0ZXM6IGhhbmRsZSBVVCB0aW1lem9uZSBbXCMzNjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zNjEpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjUuMl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuNS4yKSAoMjAxOC0wNy0xMCkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS41LjEuLi4xLjUuMikKKworKipGaXhlZCBidWdzOioqCisKKy0gRmFpbHMgdG8gbG9hZCBNZXNzYWdlIEhlYWRlcnMgW1wjMzU4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zNTgpCistIEhhbmRsZSBpbnZhbGlkIGhlYWRlcnMgW1wjMzU5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzU5KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS41LjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjUuMSkgKDIwMTgtMDUtMDQpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuNS4wLi4uMS41LjEpCisKKyoqRml4ZWQgYnVnczoqKgorCistIGdldENvbnRlbnRcKFwpIG1ldGhvZCByZXR1cm5zIHdyb25nIGNvbnRlbnQgcGFydCBbXCMzNDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzM0MikKKy0gRml4IGhhbmRsZSBvZiBhdHRhY2htZW50IG1lc3NhZ2VzIHdpdGggYXR0YWNobWVudHMgW1wjMzQzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzQzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS41LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjUuMCkgKDIwMTgtMDMtMjYpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuNC4xLi4uMS41LjApCisKKyoqSW1wbGVtZW50ZWQgZW5oYW5jZW1lbnRzOioqCisKKy0gSW1hcFJlc291cmNlOiBjYWNoZSBsYXN0IG9wZW5lZCBtYWlsYm94IFtcIzMyOF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzMyOCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworKipGaXhlZCBidWdzOioqCisKKy0gQWJzdHJhY3RQYXJ0Ojppc0F0dGFjaG1lbnRcKFwpIGhhbmRsZSB1bmtub3duIHBhcnQgdHlwZSBbXCMzMDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zMDIpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjQuMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuNC4xKSAoMjAxOC0wMy0yMikKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS40LjAuLi4xLjQuMSkKKworKipGaXhlZCBidWdzOioqCisKKy0gUmV0dXJuIHZhbHVlIG9mIERkZWJvZXJcXEltYXBcXE1lc3NhZ2VcXEFic3RyYWN0UGFydDo6Z2V0RGVjb2RlZENvbnRlbnRcKFwpIG11c3QgYmUgb2YgdGhlIHR5cGUgc3RyaW5nLCBib29sZWFuIHJldHVybmVkIFtcIzI4NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjg0KQorLSBiYXNlNjRcX2RlY29kZSBtYXkgcmV0dXJuIGZhbHNlIGluIFBIUCBcPCA3LjEgW1wjMzI0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzI0KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisqKk1lcmdlZCBwdWxsIHJlcXVlc3RzOioqCisKKy0gQWRkIGVudHJ5IGluIFJFQURNRSBhYm91dCBNYWlsYm94OjphZGRNZXNzYWdlIFtcIzMyNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzMyNSkgKFtzb3l3b2RdKGh0dHBzOi8vZ2l0aHViLmNvbS9zb3l3b2QpKQorCisjIyBbMS40LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjQuMCkgKDIwMTgtMDMtMTkpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMy4xLi4uMS40LjApCisKKyoqSW1wbGVtZW50ZWQgZW5oYW5jZW1lbnRzOioqCisKKy0gTGF6eSBsb2FkIE1lc3NhZ2UgW1wjMzIwXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzIwKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSBJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIGZvciBmb3JlYWNoXChcKSBpbiBQYXJhbWV0ZXJzLnBocCBsaW5lIDUyIFtcIzMxN10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMzE3KQorLSBNZXNzYWdlICIxMTk2NCIgZG9lcyBub3QgZXhpc3Q6IGltYXBcX2ZldGNoc3RydWN0dXJlXChcKTogQmFkIG1lc3NhZ2UgbnVtYmVyIFtcIzMxMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMzEwKQorLSBpbWFwXF9taW1lXF9oZWFkZXJcX2RlY29kZSBtYXkgcmV0dXJuIGZhbHNlIFtcIzMyMl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzMyMikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMy4xXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4zLjEpICgyMDE4LTAzLTA5KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjMuMC4uLjEuMy4xKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIEFsbG93IGVtcHR5IHBvcnQgW1wjMzEyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzEyKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisqKkNsb3NlZCBpc3N1ZXM6KioKKworLSBnZXRTZXJ2ZXJTdHJpbmdcKFwpIHdpdGggbm8gcG9ydCBbXCMzMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzMxMSkKKworIyMgWzEuMy4wXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4zLjApICgyMDE4LTAyLTI4KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjIuMy4uLjEuMy4wKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIEltcGxlbWVudCBidWxrLW1vdmUgW1wjMzA2XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzA2KSAoW3BhcnRpY2xlZmx1eF0oaHR0cHM6Ly9naXRodWIuY29tL3BhcnRpY2xlZmx1eCkpCisKKyoqQ2xvc2VkIGlzc3VlczoqKgorCistIGZlYXR1cmU6IEJ1bGsgbW92ZSBbXCMzMDVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzMwNSkKKworKipNZXJnZWQgcHVsbCByZXF1ZXN0czoqKgorCistIFJFQURNRS5tZDogYWRkIGBVbmtub3duIHNlYXJjaCBjcml0ZXJpb246IE9SYCBub3RlIFtcIzMwNF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzMwNCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMi4zXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4yLjMpICgyMDE4LTAyLTA5KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjIuMi4uLjEuMi4zKQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSAkcGFydC1cPnR5cGUgY2FuIGJlIDkgW1wjMzAxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zMDEpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBSRUFETUUubWQ6IGNvZGUtY292ZXJhZ2UgaGFzIGhpZ2hlciBwcmlvcml0eSB0aGFuIFNjcnV0aW5pemVyIFtcIzMwMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzMwMCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMi4yXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4yLjIpICgyMDE4LTAyLTA1KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjIuMS4uLjEuMi4yKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIEFsbG93IFBIUFVuaXQgXjcuMCBbXCMyOTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yOTYpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyoqRml4ZWQgYnVnczoqKgorCistIEF0dGFjaG1lbnQtXD5nZXRGaWxlbmFtZSByZXR1cm4gbnVsbCBbXCMyOTddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzI5NykKKy0gRG9uJ3QgaGFuZGxlIG11bHRpcGxhcnQgYXMgYW4gYXR0YWNobWVudCBbXCMyOThdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yOTgpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjIuMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuMi4xKSAoMjAxOC0wMS0yOSkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS4yLjAuLi4xLjIuMSkKKworKipJbXBsZW1lbnRlZCBlbmhhbmNlbWVudHM6KioKKworLSBJbnRyb2R1Y2Ugc3RyaWN0IGNvbXBhcmlzb24gW1wjMjg5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjg5KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSBJbnZhbGlkIERhdGUgaGVhZGVyIGZvdW5kOiAiVGh1ciwgMDQgSmFuIDIwMTggMDY6NDQ6MjMgKzA0MDAiIFtcIzI5M10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjkzKQorLSBNZXNzYWdlSXRlcmF0b3I6OmN1cnJlbnRcKFwpIGZhaWxzIHdoZW4gdGhlcmUgYXJlIG5vIG1lc3NhZ2VzIFtcIzI4OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjg4KQorLSBSZW1vdmUgd2Vla2RheSB3aGlsZSBwYXJzaW5nIGRhdGUgaGVhZGVyIFtcIzI5NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI5NCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gTWVzc2FnZUl0ZXJhdG9yOiBmb3JiaWQgcmF3IGNhbGxzIFtcIzI5MF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI5MCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMi4wXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4yLjApICgyMDE4LTAxLTE1KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjEuMi4uLjEuMi4wKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIE1ha2UgaW1hcFxfYXBwZW5kXChcKSBvcHRpb25hbCBhcmd1bWVudHMgcmVhY2hhYmxlIFtcIzI4MF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI4MCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gUEhQU3RhbjogaW50cm9kdWNlIHN0YXRpYyBhbmFseXNpcyBbXCMyNzZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yNzYpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyoqRml4ZWQgYnVnczoqKgorCistIGdldEF0dGFjaG1lbnRzXChcKSBwcm9ibGVtIHdoZW4gbWl4aW4gaW5saW5lIGFuZCBhdHRhY2htZW50IFtcIzI4MV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjgxKQorLSBVbmV4cGVjdGVkRW5jb2RpbmdFeGNlcHRpb246IENhbm5vdCBkZWNvZGUgIjUiIFtcIzI3OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjc4KQorLSBIYW5kbGUgY29ycmVjdGx5IG11bHRpcGxlIG5lc3RlZCBhdHRhY2htZW50cyBbXCMyODNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yODMpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIE1hbmFnZWFibGUgVW5leHBlY3RlZEVuY29kaW5nRXhjZXB0aW9uIFtcIzI4Ml0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI4MikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworKipDbG9zZWQgaXNzdWVzOioqCisKKy0gQXBwZW5kaW5nIG1haWwgd2l0aCBvcHRpb25zIFtcIzI3OV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjc5KQorCisjIyBbMS4xLjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjEuMikgKDIwMTctMTItMTIpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMS4xLi4uMS4xLjIpCisKKyoqRml4ZWQgYnVnczoqKgorCistIFVuc3VwcG9ydGVkIGNoYXJzZXQgIjEzNCI6IG1iXF9jb252ZXJ0XF9lbmNvZGluZ1woXCk6IElsbGVnYWwgY2hhcmFjdGVyIGVuY29kaW5nIHNwZWNpZmllZCBbXCMyNzBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzI3MCkKKy0gU3VwcG9ydCBNaWNyb3NvZnQgY2hhcnNldCB2YWx1ZXMgW1wjMjcxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjcxKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS4xLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjEuMSkgKDIwMTctMTEtMTApCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMS4wLi4uMS4xLjEpCisKKyoqSW1wbGVtZW50ZWQgZW5oYW5jZW1lbnRzOioqCisKKy0gVHJhbnNjb2RlcjogZXhwYW5kIGNoYXJzZXQgYWxpYXNlcyBsaXN0IFtcIzI2N10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI2NykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworKipGaXhlZCBidWdzOioqCisKKy0gQ2hhcnNldCBhbGlhc2VzOiBmaXggdG8gbG93ZXJjYXNlIHNlYXJjaCBbXCMyNjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yNjYpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBSRUFETUUubWQ6IGFkZCB0aW1lb3V0IG5vdGUgW1wjMjYzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjYzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS4xLjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjEuMCkgKDIwMTctMTEtMDYpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMC44Li4uMS4xLjApCisKKyoqSW1wbGVtZW50ZWQgZW5oYW5jZW1lbnRzOioqCisKKy0gRGVwcmVjYXRlIE1lc3NhZ2VJbnRlcmZhY2U6Om1hc2tBc1NlZW5cKFwpIGluIGZhdm91ciBvZiBNZXNzYWdlSW50ZXJmYWNlOjptYXJrQXNTZWVuXChcKSBbXCMyNTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yNTUpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIExhenkgbG9hZCBzdHJ1Y3R1cmVkIEhlYWRlcnMgW1wjMjUwXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjUwKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBJbXBsZW1lbnQgaW1hcFxfdGhyZWFkIFtcIzI0OV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI0OSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gUmVxdWlyZSBleHQtaWNvbnYgW1wjMjQ4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjQ4KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBNZXNzYWdlIFBhcnQ6IGV4cG9zZSAkcGFydE51bWJlciBbXCMyNDRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yNDQpIChbd3Vqa3VdKGh0dHBzOi8vZ2l0aHViLmNvbS93dWprdSkpCistIEFkZCBNb2NrYWJpbGl0eSBoZWxwZXJzIGFuZCBkb2N1bWVudGF0aW9uIFtcIzIzNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIzNikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gQWRkIG1pc3NpbmcgaW50ZXJmYWNlIGNoYW5nZSBmb3IgXCMyMjUgW1wjMjMzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjMzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBDb25uZWN0aW9uOiBjaGVjayBpZiB0aGUgY29ubmVjdGlvbiBpcyBzdGlsbCBhY3RpdmUgd2l0aCBgaW1hcFxfcGluZ2AgW1wjMjMyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjMyKSAoW3d1amt1XShodHRwczovL2dpdGh1Yi5jb20vd3Vqa3UpKQorLSBNZXNzYWdlOiBhZGQgYFJlZmVyZW5jZXNgIGFuZCBgSW4tUmVwbHktVG9gIGhlYWRlcnMgc2hvcnRjdXRzIFtcIzIzMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIzMCkgKFt3dWprdV0oaHR0cHM6Ly9naXRodWIuY29tL3d1amt1KSkKKy0gQWRkZWQgYnVsayBzZXQgLyBjbGVhciBmbGFncyBmdW5jdGlvbmFsaXR5IGZvciBtYWlsYm94IG1lc3NhZ2VzIFtcIzIyNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIyNSkgKFt3dWprdV0oaHR0cHM6Ly9naXRodWIuY29tL3d1amt1KSkKKworKipNZXJnZWQgcHVsbCByZXF1ZXN0czoqKgorCistIG1ha2UgZG9jcyBtb3JlIG9idmlvdXMgW1wjMjUyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjUyKSAoW2xnZ10oaHR0cHM6Ly9naXRodWIuY29tL2xnZykpCistIFJFQURNRS5tZDogYWRkIFRhYmxlIG9mIENvbnRlbnRzIHdpdGggVHJhdmlzIGNoZWNrZXIgW1wjMjM0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjM0KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS4wLjhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjAuOCkgKDIwMTctMTAtMjcpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMC43Li4uMS4wLjgpCisKKyoqSW1wbGVtZW50ZWQgZW5oYW5jZW1lbnRzOioqCisKKy0gSGVhZGVyczogbm8gY2F0Y2hhYmxlIGV4Y2VwdGlvbiBbXCMyNDZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzI0NikKKy0gaW1hcFxfdGhyZWFkIFtcIzExM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTEzKQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSBcW1R5cGVFcnJvclxdIFJldHVybiB2YWx1ZSBvZiBEZGVib2VyXEltYXBcTWVzc2FnZVxBYnN0cmFjdE1lc3NhZ2U6OmdldElkXChcKSBtdXN0IGJlIG9mIHRoZSB0eXBlIHN0cmluZywgbnVsbCByZXR1cm5lZCBbXCMyNTNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzI1MykKKy0gQmFzaWNNZXNzYWdlSW50ZXJmYWNlOjpnZXRJZFwoXCkgY2FuIGJlIG51bGwgW1wjMjU0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjU0KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS4wLjddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjAuNykgKDIwMTctMTAtMTYpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMC42Li4uMS4wLjcpCisKKyoqRml4ZWQgYnVnczoqKgorCistIFByb2JsZW0gd2l0aCBhIElNQVAgcmVzb3VyY2Ugc3RyZWFtIFtcIzI0NV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjQ1KQorLSBJTUFQIHJlc291cmNlIG11c3QgYmUgY2hlY2tlZCBhdCBldmVyeSBjYWxsIGZvciBtYWlsYm94IGNvbnRleHQgW1wjMjQ3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjQ3KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorCisjIyBbMS4wLjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8xLjAuNikgKDIwMTctMTAtMTIpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzEuMC41Li4uMS4wLjYpCisKKyoqRml4ZWQgYnVnczoqKgorCistIFxbVHlwZUVycm9yXF0gUmV0dXJuIHZhbHVlIG9mIEFic3RyYWN0TWVzc2FnZTo6Z2V0RnJvbVwoXCkgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBFbWFpbEFkZHJlc3MsIG51bGwgcmV0dXJuZWQgW1wjMjQxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yNDEpCistIE1lc3NhZ2U6IERhdGUgaGVhZGVyIGNhbiBiZSBhYnNlbnQgW1wjMjQzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjQzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBNZXNzYWdlOiBGcm9tIGhlYWRlciBjYW4gYmUgYWJzZW50IFtcIzI0Ml0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI0MikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMC41XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4wLjUpICgyMDE3LTEwLTEyKQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjAuNC4uLjEuMC41KQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSBVc2Ugc2V0XF9lcnJvclxfaGFuZGxlciB3aXRoIGxhdGUgZXhjZXB0aW9uIFtcIzI0MF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzI0MCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMC40XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4wLjQpICgyMDE3LTEwLTExKQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjAuMy4uLjEuMC40KQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIEF2b2lkIFwoc2V0fHJlc3RvclwpXF9lcnJvclxfaGFuZGxlciBbXCMyMzldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMzkpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyoqRml4ZWQgYnVnczoqKgorCistIEN1cnJlbnQgVHJhbnNjb2RlciBjbGFzcyBkb2VzIG5vdCBzdXBwb3J0IGFsbCBjaGFyc2V0cy4gIFtcIzIzN10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjM3KQorLSBSZWxheSBhbHNvIGljb252IGR1cmluZyBkZWNvZGluZyBbXCMyMzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMzgpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjAuM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuMC4zKSAoMjAxNy0xMC0xMSkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS4wLjIuLi4xLjAuMykKKworKipGaXhlZCBidWdzOioqCisKKy0gQXR0YWNobWVudDo6Z2V0RmlsZW5hbWVcKFwpIG1heSBiZSBudWxsIG9uIGlubGluZS1hdHQsIHdpZGVuIHJldHVybiB0eXBlIFtcIzIzNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIzNSkgKFt3dWprdV0oaHR0cHM6Ly9naXRodWIuY29tL3d1amt1KSkKKworIyMgWzEuMC4yXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4wLjIpICgyMDE3LTEwLTA2KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8xLjAuMS4uLjEuMC4yKQorCisqKkZpeGVkIGJ1Z3M6KioKKworLSBJc3N1ZSB3aXRoIHNhdmluZyBYTUwgYXR0YWNobWVudHMgW1wjMjI4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yMjgpCistIERvIG5vdCBjaGFyc2V0LWRlY29kZSBhdHRhY2htZW50cyBbXCMyMzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMzEpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCisKKyMjIFsxLjAuMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzEuMC4xKSAoMjAxNy0xMC0wNSkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMS4wLjAuLi4xLjAuMSkKKworKipGaXhlZCBidWdzOioqCisKKy0gRXJyb3Igd2l0aCBhdHRhY2htZW50IGNoYXJzZXQgW1wjMjI2XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yMjYpCistIElmIGNoYXJzZXQgaXMgbm90IHNwZWNpZmllZCBkZWZhdWx0cyB0byAidXMtYXNjaWkiIFtcIzIyN10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIyNykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzEuMC4wXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMS4wLjApICgyMDE3LTEwLTA0KQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8wLjUuMi4uLjEuMC4wKQorCisqKkltcGxlbWVudGVkIGVuaGFuY2VtZW50czoqKgorCistIE5lZWQgZ2V0QWxsIGZvciBoZWFkZXJzIFtcIzIwMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjAwKQorLSBUZXN0czogaW1wbGVtZW50IEBjb3ZlcnMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmUgb24gY29kZS1jb3ZlcmFnZSBbXCMxODhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzE4OCkKKy0gUmVtb3ZlIGNvbW1lbnRlZCBjb2RlIFtcIzE3NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTc0KQorLSBSZWdleCBpbiBTZWFyY2hFeHByZXNzaW9ucyBbXCMxNTddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzE1NykKKy0gSG93IGRvIEkgZ2V0IHVucmVhZCBtZXNzYWdlcyBjb3VudD8gW1wjOThdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzk4KQorLSBBZGQgbW9ja2luZyBhYmlsaXR5IHRocm91Z2ggSW50ZXJmYWNlcyBbXCMyMjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMjEpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFdyYXAgaW1hcCByZXNvdXJjZSB0byBwZXJpb2RpY2FsbHkgY2hlY2sgaXRzIHN0YXR1cyBbXCMyMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMjApIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEFkZCBtb3JlIGNvZGluZy1zdGFuZGFyZCBydWxlcyBbXCMyMThdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMTgpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEFsd2F5cyBrZWVwIHVuc2VlbjogcmVtb3ZlIGtlZXBVbnNlZW4sIGFkZCBtYXJrQXNTZWVuIFtcIzIxN10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIxNykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gRW1iZWRkZWQgbWVzc2FnZXM6IHJlZmFjdG9yIFwjMTA2IFtcIzIxNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIxNikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gSGVhZGVycyBub3cgZXh0ZW5kcyBcQXJyYXlJdGVyYXRvciBbXCMyMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMTUpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEltcGxlbWVudCBpbWFwXF9tYWlsXF9jb3B5IFtcIzIxNF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIxNCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gSW1hcCBzb3J0IFtcIzIxM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIxMykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gSW5jcmVhc2VkIGNvZGUtY292ZXJhZ2UgW1wjMjExXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjExKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBVcGRhdGUgdG8gUEhQVW5pdCBeNi4yIFtcIzIwOV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIwOSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gVXNlIHNwZWNpZmljIGV4Y2VwdGlvbnMgdG8gZWFzZSB1c2VyIGNhdGNoZXMgW1wjMjA4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjA4KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBXcmFwIEV4Y2VwdGlvbiBvbiBpbnZhbGlkIERhdGUgaGVhZGVyIFtcIzIwNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIwNSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gQWRkIHRlc3RzIGZvciBcIzE0NCBzZXQgZmxhZ3MgZnVuY3Rpb25hbGl0aWVzIFtcIzIwM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIwMykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gQWRkIGltYXBcX2ZldGNoaGVhZGVyXChcKSBmdW5jdGlvbmFsaXR5IHRvIGdldCByYXcgaGVhZGVycyBbXCMyMDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMDIpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFBhcnNlIGFsbCBlbWFpbCB0eXBlIGhlYWRlcnMgW1wjMTk5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTk5KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBUZXN0IHNlYXJjaCBjb25kaXRpb25zIFtcIzE5OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE5OCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gTWFpbGJveDogZ2V0IHN0YXR1cyBbXCMxOTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xOTIpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFNlYXJjaEV4cHJlc3Npb24gaXMgYSBTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlIFtcIzE5MV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE5MSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gU2VhcmNoQ29uZGl0aW9uOiBcX1xfdG9TdHJpbmdcKFwpIC1cPiB0b1N0cmluZ1woXCkgW1wjMTg3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTg3KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBSZXRhaW4gaW1hcFxfZ2V0bWFpbGJveGVzXChcKSByZXN1bHRzIFtcIzE4NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE4NCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gQWRkIHR5cGUgaGludHMgYW5kIHJldHVybiB0eXBlcyBbXCMxODNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xODMpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEV4Y2VwdGlvbjogaW5jcmVhc2UgdmVyYm9zaXR5IHdpdGggaW1hcFxfYWxlcnRzXChcKSBhbmQgaW1hcFxfZXJyb3JzXChcKSBbXCMxODJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xODIpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEFkZCBjb2Rpbmctc3RhbmRhcmRzIFtcIzE4MV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE4MSkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gVHJhdmlzOiByZS1lbmFibGUgY29kZS1jb3ZlcmFnZSBvbiBzY3J1dGluaXplciBbXCMxNzddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xNzcpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIEFkZCAuZ2l0YXR0cmlidXRlcyB0byByZW1vdmUgZnJvbSByZWxlYXNlcyB1bm5lZGVkIGZpbGVzIFtcIzE3M10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE3MykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gVHJhdmlzOiB1c2UgbG9jYWwgRG92ZWNvdCBpbnN0YWxsYXRpb24gW1wjMTcwXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTcwKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBOZWVkIGFsbCBIZWFkZXJzIGluIHN0cmluZyBmb3JtYXQgW1wjMTQ5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTQ5KSAoW0ZsYXNoV1NdKGh0dHBzOi8vZ2l0aHViLmNvbS9GbGFzaFdTKSkKKy0gR2V0IHJhdyBtYWlsIFtcIzE0Nl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE0NikgKFtzdHl4aXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9zdHl4aXQpKQorLSBhZGQgZ2V0QmNjXChcKSwgU2V0LCBDbGVhciBGbGFnXChcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnRcKSwgZ2V0SGVhZGVyc1Jhd1woXCkgW1wjMTQ0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTQ0KSAoW3RydW5ncHY5M10oaHR0cHM6Ly9naXRodWIuY29tL3RydW5ncHY5MykpCisKKyoqRml4ZWQgYnVnczoqKgorCistIFNlYXJjaFxDb25kaXRpb24gbmVlZHMgY2hhcnNldCBlc2NhcGluZy9pbmRpY2F0aW9uIFtcIzE5MF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTkwKQorLSBpbWFwXF91dGY3XF9cKGVuY29kZXxkZWNvZGVcKSAtXD4gbWJcX2NvbnZlcnRcX2VuY29kaW5nIFtcIzE4NV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTg1KQorLSBFc3Bhw7FhIFtcIzE3Nl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTc2KQorLSBnZXRIZWFkZXJzXChcKSBkZWNvZGUgYnJva2UgaW5mb3JtYXRpb24gW1wjMTcxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xNzEpCistIERhdGUgZm9ybWF0IGZvciBkYXRlIHNlYXJjaCBjb25kaXRpb24gW1wjMTY4XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xNjgpCistIEVycm9yIHdoZW4gdHJ5aW5nIGZldGNoIG1lc3NhZ2VzIGZyb20gY29udGFpbmVyIFtcIzE2N10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTY3KQorLSBBdHRhY2htZW50IGVuY29kaW5nIGVycm9yIFtcIzE1OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTU4KQorLSBnZXRGaWxlbmFtZVwoXCkgaXMgZW1wdHkgYW5kIG5vIGF0dGFjaG1lbnQsIGV2ZW4gd2hlbiB0aGVyZSBpcyBhbiBhdHRhY2htZW50LiBbXCMxNDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzE0MikKKy0gRW5jb2RpbmcgaXNzdWVzIFtcIzEzNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTM2KQorLSBVUkdFTlQ6IFRoZSB0aW1lem9uZSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlIFtcIzEzNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTM1KQorLSBJbmNvcnJlY3QgdHJhbnNjb2Rpbmcgb2YgdGV4dCBhdHRhY2htZW50cyBbXCMxMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzEzMikKKy0gVW5kZWZpbmVkIG9mZnNldCAgW1wjMTIzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xMjMpCistIElDUyBmaWxlIG5vdCBzdXBwb3J0ZWQgYXMgYXR0YWNobWVudCBbXCMxMjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzEyMCkKKy0gU2hvdWxkIGljb252IGJlIGEgcmVxdWlyZW1lbnQ/IFtcIzExNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTE1KQorLSBLZWVwVW5zZWVuIGRvZW4ndCB3b3JrIFtcIzkyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy85MikKKy0gUEhQIEZhdGFsIGVycm9yIEZhaWxlZCB0byBwYXJzZSB0aW1lIHN0cmluZyBpbiBkZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UucGhwIFtcIzg5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy84OSkKKy0gZW5jb2RpbmcgaXNzdWUgW1wjODVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzg1KQorLSBrZWVwVW5zZWVuIG5vdCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIEhvdG1haWwgW1wjODRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzg0KQorLSBJY29udiBFeGNlcHRpb24gW1wjNzhdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzc4KQorLSAkbWVzc2FnZS1cPmdldEF0dGFjaG1lbnRzXChcKSBkb2Vzbid0IHJlY29nbml6ZSBzb21lIGF0dGFjaG1lbnRzIFtcIzc0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy83NCkKKy0gTWVzc2FnZTo6bW92ZVwoXCkgZG9lc24ndCB3b3JrLiBbXCM3M10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvNzMpCistIE1lc3NhZ2VcUGFydDogcGFydCBudW1iZXIgbXVzdCBkaXN0aW5ndWlzaCBvcmlnaW5hbCBtZXNzYWdlIFtcIzIyM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIyMykgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gUmVjdXJzaXZlIEVtYmVkZGVkIGVtYWlsIGJvZHkgYnVnIFtcIzIyMl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIyMikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gRXhjbHVkZSBIVE1MIGZyb20gYWxsb3dlZCBhdHRhY2htZW50IHN1YnR5cGUgW1wjMjEyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjEyKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBGaXggaW1hcFxfbWFpbFxfbW92ZSBiZWhhdmlvdXIgYW5kIHRlc3QgaXQgW1wjMjA3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjA3KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBVbmRlZmluZWQgZW5jb2Rpbmc6IHRocm93IGV4Y2VwdGlvbiBbXCMxOTddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xOTcpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIE1lc3NhZ2UgY2hhcnNldDogbWJcX2NvbnZlcnRcX2VuY29kaW5nICsgYWxpYXNlcyBbXCMxOTZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xOTYpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIE1haWxib3g6IG9ubHkgVVRGLTggbmFtZXMgW1wjMTkzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTkzKSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBTZWFyY2hcRGF0ZVxBYnN0cmFjdERhdGU6IGZpeCBmb3JtYXQgdG8gUkZDLTM1MDEgW1wjMTg5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTg5KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBUcmF2aXM6IGZpeCBmYWlsaW5nIHRlc3RzIFtcIzE3Ml0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE3MikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gUmV0dXJuIGJvZHkgb2Ygc2luZ2xlLXBhcnQgSFRNTCBtZXNzYWdlIGFzIEhUTUwsIG5vdCB0ZXh0IFtcIzEwMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzEwMSkgKFtqb2tlcjgwNl0oaHR0cHM6Ly9naXRodWIuY29tL2pva2VyODA2KSkKKy0gSW1wbGVtZW50ICJ1bmRpc2Nsb3NlZCByZWNpcGllbnRzIiBhZGRyZXNzZXMgW1wjODZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC84NikgKFtkYXJpdF0oaHR0cHM6Ly9naXRodWIuY29tL2Rhcml0KSkKKworKipDbG9zZWQgaXNzdWVzOioqCisKKy0gUG90ZW50aWFsIG1lbW9yeSBpc3N1ZSB3aXRoIGF0dGFjaG1lbnRzIFtcIzE5NV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTk1KQorLSBFeHBsYWluIE1lc3NhZ2U6OmRlbGV0ZSBbXCMxNzVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzE3NSkKKy0gR2V0IHJhdyBtZXNzYWdlIFtcIzE2MV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTYxKQorLSBDb21wb3NlciBpbnN0YWxsIHByb2JsZW0gW1wjMTYwXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xNjApCistIFRyYW5zY29kZXIgbm90IGV4aXN0IFtcIzE1NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTU0KQorLSBUaGUgbGlicmFyeSBkb2Vzbid0IHN1cHBvcnQgdXNpbmcgc29ydCBieSBbXCMxNTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzE1MSkKKy0gT2ZmaWNlIDM2NSAtIEFycmF5IHRvIHN0cmluZyBjb252ZXJzaW9uIGVycm9yIFtcIzEzMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTMxKQorLSBJcyB0aGVyZSBhIG1ldGhvZCB0byB0dXJuIGEgc2VlbiBtZXNzYWdlIGludG8gYW4gInVuc2VlbiIgb25lID8gW1wjMTMwXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xMzApCistIENyZWF0ZSBtYWlsYm94IFtcIzEyNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTI2KQorLSBNb3ZlIGFuZCBEZWxldGUgTWVzc2FnZSBub3Qgd29ya2luZyBbXCMxMTJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzExMikKKy0gUHJvYmxlbSBvbiBwcm9kdWN0aW9uIHNlcnZlciBbXCMxMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzExMSkKKy0gQXV0aGVudGljYXRpb24gZmFpbGVkIGZvciBhIEdtYWlsIGFjY291bnQgW1wjMTA5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8xMDkpCistIEEgbWV0aG9kIHRvIHJ1biBJTUFQIGNvbW1hbmRzPyBbXCM4M10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvODMpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBVcGRhdGUgUkVBRE1FLm1kIHRvIGxhdGVzdCBkZXZlbG9wIGNoYW5nZXMgW1wjMjI0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjI0KSAoW1NsYW1kdW5rXShodHRwczovL2dpdGh1Yi5jb20vU2xhbWR1bmspKQorLSBBZGQgRmlsaXBwbyBUZXNzYXJvdHRvIGFzIGFuIGF1dGhvciBvZiB0aGUgcGFja2FnZSBbXCMyMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMTkpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFJFQURNRS5tZDogY2FsbCBDb25uZWN0aW9uOjpleHB1bmdlIGFmdGVyIG1vdmUgYW5kIGRlbGV0ZSBbXCMyMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8yMTApIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFJlbW92ZSBtaXNsZWFkaW5nIE1haWxib3g6OmV4cHVuZ2VcKFwpIFtcIzIwNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzIwNikgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKy0gQWRkIENIQU5HRUxPRy5tZCBbXCMxOTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xOTQpIChbU2xhbWR1bmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9TbGFtZHVuaykpCistIFJFQURNRS5tZCB1cGRhdGVzIFtcIzE3OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzE3OCkgKFtTbGFtZHVua10oaHR0cHM6Ly9naXRodWIuY29tL1NsYW1kdW5rKSkKKworIyMgWzAuNS4yXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMC41LjIpICgyMDE1LTEyLTAzKQorCitbRnVsbCBDaGFuZ2Vsb2ddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvY29tcGFyZS8wLjUuMS4uLjAuNS4yKQorCisqKkNsb3NlZCBpc3N1ZXM6KioKKworLSAkbWVzc2FnZS1cPmdldEF0dGFjaG1lbnRzXChcKSByZXR1cm5zIG51bGwgaWYgbWVzc2FnZSBoYXMgbm8gYXR0YWNobWVudHMgW1wjODBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzgwKQorLSBFbWFpbCBvYmplY3RzIHZpc2liaWxpdHkgW1wjNzZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzc2KQorCisqKk1lcmdlZCBwdWxsIHJlcXVlc3RzOioqCisKKy0gRml4ZWQgdGhlIGtlZXBVbnNlZW4gbWV0aG9kIFtcIzk1XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvOTUpIChbYWV5b2xsXShodHRwczovL2dpdGh1Yi5jb20vYWV5b2xsKSkKKy0gTWFyayBNYWlsYm94IGFzIGNvdW50YWJsZSwgZml4IGRvYyBjb21tZW50cyBbXCM5MV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzkxKSAoW2tyenlzaWVrcGlhc2Vja2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9rcnp5c2lla3BpYXNlY2tpKSkKKy0gTWVzc2FnZTo6Z2V0QXR0YWNobWVudHMgY29uZmlybSB0byBzaWduYXR1cmUgW1wjODJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC84MikgKFtib2Vra29vaV0oaHR0cHM6Ly9naXRodWIuY29tL2JvZWtrb29pKSkKKy0gQWRkZWQgaGFzTWFpbGJveCB0byBDb25uZWN0aW9uIFtcIzgxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvODEpIChbYm9la2tvb2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9ib2Vra29vaSkpCistIE1ha2Ugc3VyZSBpbWFwIGNvbm5lY3Rpb24gYXJlIHJlb3BlbmVkIFtcIzc5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvNzkpIChbam9zZXJvYmxlZGFdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb3Nlcm9ibGVkYSkpCisKKyMjIFswLjUuMV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzAuNS4xKSAoMjAxNS0wMi0wMSkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMC41LjAuLi4wLjUuMSkKKworKipDbG9zZWQgaXNzdWVzOioqCisKKy0gaW1hcFxfb3BlbiBlcnJvciAgW1wjNzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzcyKQorLSAkbWVzc2FnZS1cPmdldEF0dGFjaG1lbnRzXChcKSBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcsIGV2ZW4gdGhvdWdoIGEgbWVzc2FnZSBoYXMgYXQgbGVhc3Qgb25lIGF0dGFjaG1lbnQgW1wjNzFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzcxKQorLSBQcmVwYXJlIGRvY3MgZm9yIDEuMCBbXCM2OV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvNjkpCistICJkYXRlIiBoZWFkZXIgaXMgbm90IHJlbGlhYmxlIFtcIzYzXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy82MykKKy0gRmlsZSBBdHRhY2htZW50cyBkb24ndCBzaG93IHVwIFtcIzU1XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy81NSkKKworKipNZXJnZWQgcHVsbCByZXF1ZXN0czoqKgorCistIEFkZCBzdXBwb3J0IGZvciBhdHRhY2htZW50cyB3aXRob3V0IGNvbnRlbnQgZGlzcG9zaXRpb24gW1wjNzBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC83MCkgKFtkZGVib2VyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lcikpCisKKyMjIFswLjUuMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzAuNS4wKSAoMjAxNS0wMS0yNCkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMC40LjAuLi4wLjUuMCkKKworKipDbG9zZWQgaXNzdWVzOioqCisKKy0gVXNlIHV0ZjhcX2VuY29kZVwoXCkgZnVuY3Rpb24gdG8gZW5jb2RlIGNvbnRlbnQgW1wjNjZdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzY2KQorLSBQbGVhc2UgYWRkIGZ1bmN0aW9uIG9yZGVyIGJ5IGRhdGUgW1wjNTldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzU5KQorLSBtYlxfY29udmVydFxfZW5jb2RpbmcgYnJlYWtzIGNvZGUgW1wjNTddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzU3KQorLSBIb3cgZ2V0IEkgZ2V0TWVzc2FnZXMgYnV0IG5ld2VzdCBmaXJzdCAuLi4gW1wjMTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzExKQorCisjIyBbMC40LjBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8wLjQuMCkgKDIwMTUtMDEtMDQpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzAuMy4xLi4uMC40LjApCisKKyoqQ2xvc2VkIGlzc3VlczoqKgorCistIFBsZWFzZSBhZGQgNnRoIHBhcmFtZXRlciB0byBpbWFwXF9vcGVuIGNhbGwgW1wjNjJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzYyKQorLSBTaG91bGQgTWVzc2FnZTo6ZGVsZXRlXChcKSB1c2UgdGhlIE1lc3NhZ2UgVUlEPyBbXCM0Nl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvNDYpCistIG1iXF9jb252ZXJ0XF9lbmNvZGluZ1woXCk6IElsbGVnYWwgY2hhcmFjdGVyIGVuY29kaW5nIHNwZWNpZmllZCBbXCMzNV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMzUpCistIERlbGV0aW5nIGEgbWVzc2FnZSBpc24ndCB3b3JraW5nIFtcIzMwXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8zMCkKKy0gaW1hcFxfaGVhZGVyIGRvZXNuJ3Qgd29yayB3aXRoIG1lc3NhZ2UgdWlkIFtcIzI2XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yNikKKworKipNZXJnZWQgcHVsbCByZXF1ZXN0czoqKgorCistIEFkZGVkIGJhc2ljIHJlcXVpcmVtZW50IFtcIzYxXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvNjEpIChbbmlrb3NraXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9uaWtvc2tpcCkpCistIEZJWDogUEhQIGVycm9yOiAiQ2Fubm90IGRlY2xhcmUgY2xhc3MgRGRlYm9lclxJbWFwXFNlYXJjaFxUZXh0XFRleHQgLi4uIiBbXCM1OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzU4KSAoW3JhY3p0aWJvcnpvbHRhbl0oaHR0cHM6Ly9naXRodWIuY29tL3JhY3p0aWJvcnpvbHRhbikpCistIE1lc3NhZ2U6OmRlbGV0ZSBzZXRzIHRoZSBGVFxfVUlEIGZsYWcuICBGaXhlcyBcIzMwIEZpeGVzIFwjNDYgW1wjNTRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC81NCkgKFtjdGFsYm90XShodHRwczovL2dpdGh1Yi5jb20vY3RhbGJvdCkpCistIEFsbG93IGJpbmFyeS1lbmNvZGVkIHBhcnQgY29udGVudCBbXCM0OF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQ4KSAoW2pva2VyODA2XShodHRwczovL2dpdGh1Yi5jb20vam9rZXI4MDYpKQorLSBGaXggQ1MgW1wjNDddKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80NykgKFt4ZWxhbl0oaHR0cHM6Ly9naXRodWIuY29tL3hlbGFuKSkKKy0gZml4ZWQgdHlwbyBbXCM0NV0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQ1KSAoW3hlbGFuXShodHRwczovL2dpdGh1Yi5jb20veGVsYW4pKQorCisjIyBbMC4zLjFdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvdHJlZS8wLjMuMSkgKDIwMTQtMDgtMTEpCisKK1tGdWxsIENoYW5nZWxvZ10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9jb21wYXJlLzAuMy4wLi4uMC4zLjEpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBcaW1hcFxfaGVhZGVyIGRvc2VuJ3Qgd29yayB3aXRoIFVJRCBbXCM0NF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzQ0KSAoW3lzcmFtaXJlel0oaHR0cHM6Ly9naXRodWIuY29tL3lzcmFtaXJleikpCisKKyMjIFswLjMuMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC90cmVlLzAuMy4wKSAoMjAxNC0wOC0xMCkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMC4yLi4uMC4zLjApCisKKyoqQ2xvc2VkIGlzc3VlczoqKgorCistIHBsZWFzZSByZW1vdmUgdXNlbGVzcyB3aWtpIFtcIzQyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy80MikKKy0gVHJhdmlzIHRlc3RzIGFsbHdheXMgZmFpbD8gW1wjNDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvaXNzdWVzLzQwKQorLSBHYXJibGVkIGUtbWFpbCBib2R5IGVuY29kaW5nIFtcIzI3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yNykKKy0gSW1wcm92ZSBkb2NzIFtcIzI1XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy8yNSkKKy0gInVuZGlzY2xvc2VkLXJlY2lwaWVudHMiIHRocm93cyBlcnJvciBbXCMyM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjMpCisKKyoqTWVyZ2VkIHB1bGwgcmVxdWVzdHM6KioKKworLSBjb3JyZWN0IG1pbm9yIHR5cG8gW1wjNDNdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80MykgKFtjb3Jkb3ZhbF0oaHR0cHM6Ly9naXRodWIuY29tL2NvcmRvdmFsKSkKKy0gVXRmLTggZW5jb2RlIGJvZHkgY29udGVudC4gW1wjMzldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zOSkgKFtjbW9yYWxlc3dlYl0oaHR0cHM6Ly9naXRodWIuY29tL2Ntb3JhbGVzd2ViKSkKKy0gRml4IHJlZ2V4IHBhcnNpbmcgdGhlIGRhdGUgaGVhZGVyIFwoYWxsb3dpbmcgbXVsdGlwbGUgYnJhY2tldHNcKSBbXCMzOF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzM4KSAoW2pva2VyODA2XShodHRwczovL2dpdGh1Yi5jb20vam9rZXI4MDYpKQorLSBBbGxvdyBlbXB0eSBjb25uZWN0aW9uIGZsYWdzIFtcIzM0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMzQpIChbam9rZXI4MDZdKGh0dHBzOi8vZ2l0aHViLmNvbS9qb2tlcjgwNikpCistIEZpeGVkIHR5cG8gW1wjMzJdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8zMikgKFthYmhpbmF2a3VtYXI5NDBdKGh0dHBzOi8vZ2l0aHViLmNvbS9hYmhpbmF2a3VtYXI5NDApKQorCisjIyBbMC4yXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMC4yKSAoMjAxMy0xMS0yNCkKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvMC4xLi4uMC4yKQorCisjIyBbMC4xXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3RyZWUvMC4xKSAoMjAxMy0xMS0yMikKKworW0Z1bGwgQ2hhbmdlbG9nXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2NvbXBhcmUvYzAyZDQ5Y2RiOTI0NjkwMWJiMDBkMjExYTBmMmFiYTIwOGY2ZmFiNi4uLjAuMSkKKworKipDbG9zZWQgaXNzdWVzOioqCisKKy0gUHJldmVudCBzZXR0aW5nIFNFRU4gZmxhZyBbXCMyMF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMjApCistIEFkZCB0ZXN0cyBbXCMxOF0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMTgpCistIGRlbGV0ZSBtZXNzYWdlcyBbXCM5XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy85KQorLSBSRUFETUUgaXMgbWlzc2luZyBiYXNpYyB1c2FnZSBbXCM3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2lzc3Vlcy83KQorLSBTdWJqZWN0IGFuZCBvdGhlciB0ZXh0cyBhcmUgZGVjb2RlZCBpbmNvcnJlY3RseSAgW1wjM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMykKKworKipNZXJnZWQgcHVsbCByZXF1ZXN0czoqKgorCistIGFsc28gZmV0Y2ggaW5saW5lIGF0dGFjaG1lbnRzIFtcIzI0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjQpIChba2Fpc2VybG9zXShodHRwczovL2dpdGh1Yi5jb20va2Fpc2VybG9zKSkKKy0gc2luY2UgbGVhZGluZyBzbGFzaCBpcyBhbHdheXMgbmVlZGVkIFtcIzIyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMjIpIChbaHVnbGVzdGVyXShodHRwczovL2dpdGh1Yi5jb20vaHVnbGVzdGVyKSkKKy0gQWRkZWQgbWlzc2VkIGNyZWF0ZU1haWxib3hcKCRuYW1lXCkgZnVuY3Rpb24gW1wjMTldKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xOSkgKFtidXJjaV0oaHR0cHM6Ly9naXRodWIuY29tL2J1cmNpKSkKKy0gQWRkZWQgbW92ZSBhbmQgZGVsZXRlIGZ1bmN0aW9uIHRvIG1lc3NhZ2UgKyBleHB1bmdlIGZ1bmN0aW9uIFtcIzE3XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTcpIChbYnVyY2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9idXJjaSkpCistIENsZWFuIHVwIHNvbWUgdW51c2VkIHZhcmlhYmxlIFtcIzE2XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTYpIChbYnVyY2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9idXJjaSkpCistIEZpeGVkIG1haWxib3ggZW5jb2RpbmcgW1wjMTVdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xNSkgKFtidXJjaV0oaHR0cHM6Ly9naXRodWIuY29tL2J1cmNpKSkKKy0gQ3JlYXRlIG5ldyBtYWlsYm94IFtcIzE0XShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTQpIChbYnVyY2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9idXJjaSkpCistIEZpeGVkIGJ1ZyBpbiBnZXREZWNvZGVkQ29udGVudCB3aXRoICdmb3JtYXQ9Zmxvd2VkJyBlbWFpbCBbXCMxM10oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzEzKSAoW2J1cmNpXShodHRwczovL2dpdGh1Yi5jb20vYnVyY2kpKQorLSBGaXhlZCBkYXRlIHBhcnNpbmcgZm9yIHNvbWUgaW1hcCBzZXJ2ZXJzIFtcIzEyXShodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL3B1bGwvMTIpIChbdGhlbGZlbnNkcmZlcl0oaHR0cHM6Ly9naXRodWIuY29tL3RoZWxmZW5zZHJmZXIpKQorLSBBZGQgc3VwcG9ydCBmb3IgbW9yZSBjb21wbGV4IHNlYXJjaCBleHByZXNzaW9ucy4gW1wjMTBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC8xMCkgKFtqYW1lc2lhcm1lc10oaHR0cHM6Ly9naXRodWIuY29tL2phbWVzaWFybWVzKSkKKy0gQWxsb3cgdXNlciB0byBjaGFuZ2Ugc2VydmVyIGNvbm5lY3Rpb24gZmxhZ3MgW1wjNl0oaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9wdWxsLzYpIChbbXZhcl0oaHR0cHM6Ly9naXRodWIuY29tL212YXIpKQorLSBJbXByb3ZlbWVudHMgaW4gRW1haWxBZGRyZXNzIGNsYXNzIFtcIzRdKGh0dHBzOi8vZ2l0aHViLmNvbS9kZGVib2VyL2ltYXAvcHVsbC80KSAoW212YXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9tdmFyKSkKKworCisKK1wqICpUaGlzIENoYW5nZWxvZyB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgW2dpdGh1Yl9jaGFuZ2Vsb2dfZ2VuZXJhdG9yXShodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViLWNoYW5nZWxvZy1nZW5lcmF0b3IvZ2l0aHViLWNoYW5nZWxvZy1nZW5lcmF0b3IpKgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9MSUNFTlNFIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNjc5ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL0xJQ0VOU0UKQEAgLTAsMCArMSwxOSBAQAorQ29weXJpZ2h0IChDKSAyMDEzIERhdmlkIGRlIEJvZXIgPGRhdmlkQGRkZWJvZXIubmw+CisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YKK3RoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluCit0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvCit1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgordGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLAorc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvUkVBRE1FLm1kIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlkYzUzMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMzYxIEBACisjIElNQVAgbGlicmFyeQorCitbIVtCdWlsZCBTdGF0dXNdKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9kZGVib2VyL2ltYXAuc3ZnP2JyYW5jaD1tYXN0ZXIpXShodHRwczovL3RyYXZpcy1jaS5vcmcvZGRlYm9lci9pbWFwKQorWyFbQ29kZSBDb3ZlcmFnZV0oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9kZGVib2VyL2ltYXAvYmFkZ2VzL2NvdmVyYWdlLnBuZz9iPW1hc3RlcildKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvZGRlYm9lci9pbWFwLz9icmFuY2g9bWFzdGVyKQorWyFbU2NydXRpbml6ZXIgQ29kZSBRdWFsaXR5XShodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL2RkZWJvZXIvaW1hcC9iYWRnZXMvcXVhbGl0eS1zY29yZS5wbmc/Yj1tYXN0ZXIpXShodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL2RkZWJvZXIvaW1hcC8/YnJhbmNoPW1hc3RlcikKK1shW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9kZGVib2VyL2ltYXAvdi9zdGFibGUuc3ZnKV0oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2RkZWJvZXIvaW1hcCkKK1shW1RvdGFsIERvd25sb2Fkc10oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9kZGVib2VyL2ltYXAvZG93bmxvYWRzLnBuZyldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9kZGVib2VyL2ltYXApCisKK0EgUEhQIDcuMisgbGlicmFyeSB0byByZWFkIGFuZCBwcm9jZXNzIGUtbWFpbHMgb3ZlciBJTUFQLgorCitUaGlzIGxpYnJhcnkgcmVxdWlyZXMgW0lNQVBdKGh0dHBzOi8vc2VjdXJlLnBocC5uZXQvbWFudWFsL2VuL2Jvb2suaW1hcC5waHApLAorW2ljb252XShodHRwczovL3NlY3VyZS5waHAubmV0L21hbnVhbC9lbi9ib29rLmljb252LnBocCkgYW5kCitbTXVsdGlieXRlIFN0cmluZ10oaHR0cHM6Ly9zZWN1cmUucGhwLm5ldC9tYW51YWwvZW4vYm9vay5tYnN0cmluZy5waHApIGV4dGVuc2lvbnMgaW5zdGFsbGVkLgorCisjIyBUYWJsZSBvZiBDb250ZW50cworCisxLiBbRmVhdHVyZSBSZXF1ZXN0c10oI2ZlYXR1cmUtcmVxdWVzdHMpCisxLiBbSW5zdGFsbGF0aW9uXSgjaW5zdGFsbGF0aW9uKQorMS4gW1VzYWdlXSgjdXNhZ2UpCisgICAgMS4gW0Nvbm5lY3QgYW5kIEF1dGhlbnRpY2F0ZV0oI2Nvbm5lY3QtYW5kLWF1dGhlbnRpY2F0ZSkKKyAgICAxLiBbTWFpbGJveGVzXSgjbWFpbGJveGVzKQorICAgIDEuIFtNZXNzYWdlc10oI21lc3NhZ2VzKQorICAgICAgICAxLiBbU2VhcmNoaW5nIGZvciBNZXNzYWdlc10oI3NlYXJjaGluZy1mb3ItbWVzc2FnZXMpCisgICAgICAgIDEuIFtVbmtub3duIHNlYXJjaCBjcml0ZXJpb246IE9SXSgjdW5rbm93bi1zZWFyY2gtY3JpdGVyaW9uLW9yKQorICAgICAgICAxLiBbTWVzc2FnZSBQcm9wZXJ0aWVzIGFuZCBPcGVyYXRpb25zXSgjbWVzc2FnZS1wcm9wZXJ0aWVzLWFuZC1vcGVyYXRpb25zKQorICAgIDEuIFtNZXNzYWdlIEF0dGFjaG1lbnRzXSgjbWVzc2FnZS1hdHRhY2htZW50cykKKyAgICAxLiBbRW1iZWRkZWQgTWVzc2FnZXNdKCNlbWJlZGRlZC1tZXNzYWdlcykKKyAgICAxLiBbVGltZW91dHNdKCN0aW1lb3V0cykKKzEuIFtNb2NrIHRoZSBsaWJyYXJ5XSgjbW9jay10aGUtbGlicmFyeSkKKzEuIFtSdW5uaW5nIHRoZSBUZXN0c10oI3J1bm5pbmctdGhlLXRlc3RzKQorICAgIDEuIFtSdW5uaW5nIFRlc3RzIHVzaW5nIERvY2tlcl0oI3J1bm5pbmctdGVzdHMtdXNpbmctZG9ja2VyKQorCisjIyBGZWF0dXJlIFJlcXVlc3RzCisKK1shW0ZlYXR1cmUgUmVxdWVzdHNdKGh0dHBzOi8vZmVhdGh1Yi5jb20vZGRlYm9lci9pbWFwP2Zvcm1hdD1zdmcpXShodHRwczovL2ZlYXRodWIuY29tL2RkZWJvZXIvaW1hcCkKKworIyMgSW5zdGFsbGF0aW9uCisKK1RoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zdGFsbCB0aGUgSU1BUCBsaWJyYXJ5IGlzIHRocm91Z2ggW0NvbXBvc2VyXShodHRwczovL2dldGNvbXBvc2VyLm9yZyk6CisKK2BgYGJhc2gKKyQgY29tcG9zZXIgcmVxdWlyZSBkZGVib2VyL2ltYXAKK2BgYAorCitUaGlzIGNvbW1hbmQgcmVxdWlyZXMgeW91IHRvIGhhdmUgQ29tcG9zZXIgaW5zdGFsbGVkIGdsb2JhbGx5LCBhcyBleHBsYWluZWQKK2luIHRoZSBbaW5zdGFsbGF0aW9uIGNoYXB0ZXJdKGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnL2RvYy8wMC1pbnRyby5tZCkKK29mIHRoZSBDb21wb3NlciBkb2N1bWVudGF0aW9uLgorCisjIyBVc2FnZQorCisjIyMgQ29ubmVjdCBhbmQgQXV0aGVudGljYXRlCisKK2BgYHBocAordXNlIERkZWJvZXJcSW1hcFxTZXJ2ZXI7CisKKyRzZXJ2ZXIgPSBuZXcgU2VydmVyKCdpbWFwLmdtYWlsLmNvbScpOworCisvLyAkY29ubmVjdGlvbiBpcyBpbnN0YW5jZSBvZiBcRGRlYm9lclxJbWFwXENvbm5lY3Rpb24KKyRjb25uZWN0aW9uID0gJHNlcnZlci0+YXV0aGVudGljYXRlKCdteV91c2VybmFtZScsICdteV9wYXNzd29yZCcpOworYGBgCisKK1lvdSBjYW4gc3BlY2lmeSBwb3J0LCBbZmxhZ3MgYW5kIHBhcmFtZXRlcnNdKGh0dHBzOi8vc2VjdXJlLnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmltYXAtb3Blbi5waHApCit0byB0aGUgc2VydmVyOgorCitgYGBwaHAKKyRzZXJ2ZXIgPSBuZXcgU2VydmVyKAorICAgICRob3N0bmFtZSwgLy8gcmVxdWlyZWQKKyAgICAkcG9ydCwgICAgIC8vIGRlZmF1bHRzIHRvICc5OTMnCisgICAgJGZsYWdzLCAgICAvLyBkZWZhdWx0cyB0byAnL2ltYXAvc3NsL3ZhbGlkYXRlLWNlcnQnCisgICAgJHBhcmFtZXRlcnMKKyk7CitgYGAKKworIyMjIE1haWxib3hlcworCitSZXRyaWV2ZSBtYWlsYm94ZXMgKGFsc28ga25vd24gYXMgbWFpbCBmb2xkZXJzKSBmcm9tIHRoZSBtYWlsIHNlcnZlciBhbmQgaXRlcmF0ZQorb3ZlciB0aGVtOgorCitgYGBwaHAKKyRtYWlsYm94ZXMgPSAkY29ubmVjdGlvbi0+Z2V0TWFpbGJveGVzKCk7CisKK2ZvcmVhY2ggKCRtYWlsYm94ZXMgYXMgJG1haWxib3gpIHsKKyAgICAvLyBTa2lwIGNvbnRhaW5lci1vbmx5IG1haWxib3hlcworICAgIC8vIEBzZWUgaHR0cHM6Ly9zZWN1cmUucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uaW1hcC1nZXRtYWlsYm94ZXMucGhwCisgICAgaWYgKCRtYWlsYm94LT5nZXRBdHRyaWJ1dGVzKCkgJiBcTEFUVF9OT1NFTEVDVCkgeworICAgICAgICBjb250aW51ZTsKKyAgICB9CisKKyAgICAvLyAkbWFpbGJveCBpcyBpbnN0YW5jZSBvZiBcRGRlYm9lclxJbWFwXE1haWxib3gKKyAgICBwcmludGYoJ01haWxib3ggIiVzIiBoYXMgJXMgbWVzc2FnZXMnLCAkbWFpbGJveC0+Z2V0TmFtZSgpLCAkbWFpbGJveC0+Y291bnQoKSk7Cit9CitgYGAKKworT3IgcmV0cmlldmUgYSBzcGVjaWZpYyBtYWlsYm94OgorCitgYGBwaHAKKyRtYWlsYm94ID0gJGNvbm5lY3Rpb24tPmdldE1haWxib3goJ0lOQk9YJyk7CitgYGAKKworRGVsZXRlIGEgbWFpbGJveDoKKworYGBgcGhwCiskY29ubmVjdGlvbi0+ZGVsZXRlTWFpbGJveCgkbWFpbGJveCk7CitgYGAKKworWW91IGNhbiBidWxrIHNldCwgb3IgY2xlYXIsIGFueSBbZmxhZ10oaHR0cHM6Ly9zZWN1cmUucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uaW1hcC1zZXRmbGFnLWZ1bGwucGhwKSBvZiBtYWlsYm94IG1lc3NhZ2VzIChieSBVSURzKToKKworYGBgcGhwCiskbWFpbGJveC0+c2V0RmxhZygnXFxTZWVuIFxcRmxhZ2dlZCcsIFsnMTo1JywgJzcnLCAnOSddKTsKKyRtYWlsYm94LT5zZXRGbGFnKCdcXFNlZW4nLCAnMSwzLDUsNjo4Jyk7CisKKyRtYWlsYm94LT5jbGVhckZsYWcoJ1xcRmxhZ2dlZCcsICcxLDMnKTsKK2BgYAorCisqKldBUk5JTkcqKiBZb3UgbXVzdCByZXRyaWV2ZSBuZXcgTWVzc2FnZSBpbnN0YW5jZXMgaW4gY2FzZSBvZiBidWxrIG1vZGlmeSBmbGFncyB0byByZWZyZXNoIHRoZSBzaW5nbGUgTWVzc2FnZXMgZmxhZ3MuCisKKyMjIyBNZXNzYWdlcworCitSZXRyaWV2ZSBtZXNzYWdlcyAoZS1tYWlscykgZnJvbSBhIG1haWxib3ggYW5kIGl0ZXJhdGUgb3ZlciB0aGVtOgorCitgYGBwaHAKKyRtZXNzYWdlcyA9ICRtYWlsYm94LT5nZXRNZXNzYWdlcygpOworCitmb3JlYWNoICgkbWVzc2FnZXMgYXMgJG1lc3NhZ2UpIHsKKyAgICAvLyAkbWVzc2FnZSBpcyBpbnN0YW5jZSBvZiBcRGRlYm9lclxJbWFwXE1lc3NhZ2UKK30KK2BgYAorCitUbyBpbnNlcnQgYSBuZXcgbWVzc2FnZSAodGhhdCBqdXN0IGhhcyBiZWVuIHNlbnQpIGludG8gdGhlIFNlbnQgbWFpbGJveCBhbmQgZmxhZyBpdCBhcyBzZWVuOgorCitgYGBwaHAKKyRtYWlsYm94ID0gJGNvbm5lY3Rpb24tPmdldE1haWxib3goJ1NlbnQnKTsKKyRtYWlsYm94LT5hZGRNZXNzYWdlKCRtZXNzYWdlTUlNRSwgJ1xcU2VlbicpOworYGBgCisKK05vdGUgdGhhdCB0aGUgbWVzc2FnZSBzaG91bGQgYmUgYSBzdHJpbmcgYXQgTUlNRSBmb3JtYXQgKGFzIGRlc2NyaWJlZCBpbiB0aGUgW1JGQzIwNDVdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyMDQ1KSkuCisKKyMjIyMgU2VhcmNoaW5nIGZvciBNZXNzYWdlcworCitgYGBwaHAKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoRXhwcmVzc2lvbjsKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXEVtYWlsXFRvOwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcVGV4dFxCb2R5OworCiskc2VhcmNoID0gbmV3IFNlYXJjaEV4cHJlc3Npb24oKTsKKyRzZWFyY2gtPmFkZENvbmRpdGlvbihuZXcgVG8oJ21lQGhlcmUuY29tJykpOworJHNlYXJjaC0+YWRkQ29uZGl0aW9uKG5ldyBCb2R5KCdjb250ZW50cycpKTsKKworJG1lc3NhZ2VzID0gJG1haWxib3gtPmdldE1lc3NhZ2VzKCRzZWFyY2gpOworYGBgCisKKyoqV0FSTklORyoqIFdlIGFyZSBjdXJyZW50bHkgdW5hYmxlIHRvIGhhdmUgYm90aCBzcGFjZXMgX2FuZF8gZG91YmxlLXF1b3RlcworZXNjYXBlZCB0b2dldGhlci4gT25seSBzcGFjZXMgYXJlIGN1cnJlbnRseSBlc2NhcGVkIGNvcnJlY3RseS4KK1lvdSBjYW4gdXNlIGBEZGVib2VyXEltYXBcU2VhcmNoXFJhd0V4cHJlc3Npb25gIHRvIHdyaXRlIHRoZSBjb21wbGV0ZSBzZWFyY2gKK2NvbmRpdGlvbiBieSB5b3Vyc2VsZi4KKworTWVzc2FnZXMgY2FuIGFsc28gYmUgcmV0cmlldmVkIHNvcnRlZCBhcyBwZXIgW2ltYXBfc29ydF0oaHR0cHM6Ly9zZWN1cmUucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uaW1hcC1zb3J0LnBocCkKK2Z1bmN0aW9uOgorCitgYGBwaHAKKyR0b2RheSA9IG5ldyBEYXRlVGltZUltbXV0YWJsZSgpOworJHRoaXJ0eURheXNBZ28gPSAkdG9kYXktPnN1YihuZXcgRGF0ZUludGVydmFsKCdQMzBEJykpOworCiskbWVzc2FnZXMgPSAkbWFpbGJveC0+Z2V0TWVzc2FnZXMoCisgICAgbmV3IERkZWJvZXJcSW1hcFxTZWFyY2hcRGF0ZVxTaW5jZSgkdGhpcnR5RGF5c0FnbyksCisgICAgXFNPUlREQVRFLCAvLyBTb3J0IGNyaXRlcmlhCisgICAgdHJ1ZSAvLyBEZXNjZW5kaW5nIG9yZGVyCispOworYGBgCisKKyMjIyMgVW5rbm93biBzZWFyY2ggY3JpdGVyaW9uOiBPUgorCitOb3RlIHRoYXQgUEhQIGltYXAgbGlicmFyeSByZWxpZXMgb24gdGhlIGBjLWNsaWVudGAgbGlicmFyeSBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cud2FzaGluZ3Rvbi5lZHUvaW1hcC8KK3doaWNoIGRvZXNuJ3QgZnVsbHkgc3VwcG9ydCBzb21lIElNQVA0IHNlYXJjaCBjcml0ZXJpYSBsaWtlIGBPUmAuIElmIHlvdSB3YW50IHRob3NlIHVuc3VwcG9ydGVkIGNyaXRlcmlhLAoreW91IG5lZWQgdG8gbWFudWFsbHkgcGF0Y2ggdGhlIGxhdGVzdCB2ZXJzaW9uIChgaW1hcC0yMDA3ZmAgb2YgMjMtSnVsLTIwMTEgYXQgdGhlIHRpbWUgb2YgdGhpcyBjb21taXQpCithbmQgcmVjb21waWxlIFBIUCBvbnRvIHlvdXIgcGF0Y2hlZCBgYy1jbGllbnRgIGxpYnJhcnkuCisKK0J5IHRoZSB3YXkgbW9zdCBvZiB0aGUgY29tbW9uIHNlYXJjaCBjcml0ZXJpYSBhcmUgYXZhaWxhYmxlIGFuZCBmdW5jdGlvbmluZywgYnJvd3NlIHRoZW0gaW4gYC4vc3JjL1NlYXJjaGAuCisKK1JlZmVyZW5jZXM6CisKKzEuIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM2MzU2NzE1L2ltYXAtc2VhcmNoLXVua25vd24tc2VhcmNoLWNyaXRlcmlvbi1vcgorMS4gaW1hcC0yMDA3Zi50YXIuZ3o6IGAuL3NyYy9jLWNsaWVudC9tYWlsLmNgIGFuZCBgLi9kb2NzL2ludGVybmFsLnR4dGAKKworIyMjIyBNZXNzYWdlIFByb3BlcnRpZXMgYW5kIE9wZXJhdGlvbnMKKworR2V0IG1lc3NhZ2UgbnVtYmVyIGFuZCB1bmlxdWUgW21lc3NhZ2UgaWRdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01lc3NhZ2UtSUQpCitpbiB0aGUgZm9ybSA8Li4uPjoKKworYGBgcGhwCiskbWVzc2FnZS0+Z2V0TnVtYmVyKCk7CiskbWVzc2FnZS0+Z2V0SWQoKTsKK2BgYAorCitHZXQgb3RoZXIgbWVzc2FnZSBwcm9wZXJ0aWVzOgorCitgYGBwaHAKKyRtZXNzYWdlLT5nZXRTdWJqZWN0KCk7CiskbWVzc2FnZS0+Z2V0RnJvbSgpOyAgICAvLyBNZXNzYWdlXEVtYWlsQWRkcmVzcworJG1lc3NhZ2UtPmdldFRvKCk7ICAgICAgLy8gYXJyYXkgb2YgTWVzc2FnZVxFbWFpbEFkZHJlc3MKKyRtZXNzYWdlLT5nZXREYXRlKCk7ICAgIC8vIERhdGVUaW1lSW1tdXRhYmxlCiskbWVzc2FnZS0+aXNBbnN3ZXJlZCgpOworJG1lc3NhZ2UtPmlzRGVsZXRlZCgpOworJG1lc3NhZ2UtPmlzRHJhZnQoKTsKKyRtZXNzYWdlLT5pc1NlZW4oKTsKK2BgYAorCitHZXQgbWVzc2FnZSBoZWFkZXJzIGFzIGEgW1xEZGVib2VyXEltYXBcTWVzc2FnZVxIZWFkZXJzXSgvc3JjL0RkZWJvZXIvSW1hcC9NZXNzYWdlL0hlYWRlcnMucGhwKSBvYmplY3Q6CisKK2BgYHBocAorJG1lc3NhZ2UtPmdldEhlYWRlcnMoKTsKK2BgYAorCitHZXQgbWVzc2FnZSBib2R5IGFzIEhUTUwgb3IgcGxhaW4gdGV4dDoKKworYGBgcGhwCiskbWVzc2FnZS0+Z2V0Qm9keUh0bWwoKTsgICAgLy8gQ29udGVudCBvZiB0ZXh0L2h0bWwgcGFydCwgaWYgcHJlc2VudAorJG1lc3NhZ2UtPmdldEJvZHlUZXh0KCk7ICAgIC8vIENvbnRlbnQgb2YgdGV4dC9wbGFpbiBwYXJ0LCBpZiBwcmVzZW50CitgYGAKKworUmVhZGluZyB0aGUgbWVzc2FnZSBib2R5IGtlZXBzIHRoZSBtZXNzYWdlIGFzIHVuc2Vlbi4KK0lmIHlvdSB3YW50IHRvIG1hcmsgdGhlIG1lc3NhZ2UgYXMgc2VlbjoKKworYGBgcGhwCiskbWVzc2FnZS0+bWFya0FzU2VlbigpOworYGBgCisKK09yIHlvdSBjYW4gc2V0LCBvciBjbGVhciwgYW55IFtmbGFnXShodHRwczovL3NlY3VyZS5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5pbWFwLXNldGZsYWctZnVsbC5waHApOgorCitgYGBwaHAKKyRtZXNzYWdlLT5zZXRGbGFnKCdcXFNlZW4gXFxGbGFnZ2VkJyk7CiskbWVzc2FnZS0+Y2xlYXJGbGFnKCdcXEZsYWdnZWQnKTsKK2BgYAorCitNb3ZlIGEgbWVzc2FnZSB0byBhbm90aGVyIG1haWxib3g6CisKK2BgYHBocAorJG1haWxib3ggPSAkY29ubmVjdGlvbi0+Z2V0TWFpbGJveCgnYW5vdGhlci1tYWlsYm94Jyk7CiskbWVzc2FnZS0+bW92ZSgkbWFpbGJveCk7CiskY29ubmVjdGlvbi0+ZXhwdW5nZSgpOworYGBgCisKK0RlbGV0aW5nIG1lc3NhZ2VzOgorCitgYGBwaHAKKyRtYWlsYm94LT5nZXRNZXNzYWdlKDEpLT5kZWxldGUoKTsKKyRtYWlsYm94LT5nZXRNZXNzYWdlKDIpLT5kZWxldGUoKTsKKyRjb25uZWN0aW9uLT5leHB1bmdlKCk7CitgYGAKKworIyMjIE1lc3NhZ2UgQXR0YWNobWVudHMKKworR2V0IG1lc3NhZ2UgYXR0YWNobWVudHMgKGJvdGggaW5saW5lIGFuZCBhdHRhY2hlZCkgYW5kIGl0ZXJhdGUgb3ZlciB0aGVtOgorCitgYGBwaHAKKyRhdHRhY2htZW50cyA9ICRtZXNzYWdlLT5nZXRBdHRhY2htZW50cygpOworCitmb3JlYWNoICgkYXR0YWNobWVudHMgYXMgJGF0dGFjaG1lbnQpIHsKKyAgICAvLyAkYXR0YWNobWVudCBpcyBpbnN0YW5jZSBvZiBcRGRlYm9lclxJbWFwXE1lc3NhZ2VcQXR0YWNobWVudAorfQorYGBgCisKK0Rvd25sb2FkIGEgbWVzc2FnZSBhdHRhY2htZW50IHRvIGEgbG9jYWwgZmlsZToKKworYGBgcGhwCisvLyBnZXREZWNvZGVkQ29udGVudCgpIGRlY29kZXMgdGhlIGF0dGFjaG1lbnTigJlzIGNvbnRlbnRzIGF1dG9tYXRpY2FsbHk6CitmaWxlX3B1dF9jb250ZW50cygKKyAgICAnL215L2xvY2FsL2Rpci8nIC4gJGF0dGFjaG1lbnQtPmdldEZpbGVuYW1lKCksCisgICAgJGF0dGFjaG1lbnQtPmdldERlY29kZWRDb250ZW50KCkKKyk7CitgYGAKKworIyMjIEVtYmVkZGVkIE1lc3NhZ2VzCisKK0NoZWNrIGlmIGF0dGFjaG1lbnQgaXMgZW1iZWRkZWQgbWVzc2FnZSBhbmQgZ2V0IGl0OgorCitgYGBwaHAKKyRhdHRhY2htZW50cyA9ICRtZXNzYWdlLT5nZXRBdHRhY2htZW50cygpOworCitmb3JlYWNoICgkYXR0YWNobWVudHMgYXMgJGF0dGFjaG1lbnQpIHsKKyAgICBpZiAoJGF0dGFjaG1lbnQtPmlzRW1iZWRkZWRNZXNzYWdlKCkpIHsKKyAgICAgICAgJGVtYmVkZGVkTWVzc2FnZSA9ICRhdHRhY2htZW50LT5nZXRFbWJlZGRlZE1lc3NhZ2UoKTsKKyAgICAgICAgLy8gJGVtYmVkZGVkTWVzc2FnZSBpcyBpbnN0YW5jZSBvZiBcRGRlYm9lclxJbWFwXE1lc3NhZ2VcRW1iZWRkZWRNZXNzYWdlCisgICAgfQorfQorYGBgCisKK0FuIEVtYmVkZGVkTWVzc2FnZSBoYXMgdGhlIHNhbWUgQVBJIGFzIGEgbm9ybWFsIE1lc3NhZ2UsIGFwYXJ0IGZyb20gZmxhZ3MKK2FuZCBvcGVyYXRpb25zIGxpa2UgY29weSwgbW92ZSBvciBkZWxldGUuCisKKyMjIyBUaW1lb3V0cworCitUaGUgSU1BUCBleHRlbnNpb24gcHJvdmlkZXMgdGhlIFtpbWFwX3RpbWVvdXRdKGh0dHBzOi8vc2VjdXJlLnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmltYXAtdGltZW91dC5waHApCitmdW5jdGlvbiB0byBhZGp1c3QgdGhlIHRpbWVvdXQgc2Vjb25kcyBmb3IgdmFyaW91cyBvcGVyYXRpb25zLgorCitIb3dldmVyIHRoZSBleHRlbnNpb24ncyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGxpbmsgdGhlIGZ1bmN0aW9uYWxpdHkgdG8gYQorc3BlY2lmaWMgY29udGV4dCBvciBjb25uZWN0aW9uLCBpbnN0ZWFkIHRoZXkgYXJlIGdsb2JhbC4gU28gaW4gb3JkZXIgdG8gbm90CithZmZlY3QgZnVuY3Rpb25hbGl0aWVzIG91dHNpZGUgdGhpcyBsaWJyYXJ5LCB3ZSBoYWQgdG8gY2hvb3NlIHdoZXRoZXIgd3JhcAorZXZlcnkgYGltYXBfKmAgY2FsbCBhcm91bmQgYW4gb3B0aW9uYWwgdXNlci1wcm92aWRlZCB0aW1lb3V0IG9yIGxlYXZlIHRoaXMKK3Rhc2sgdG8gdGhlIHVzZXIuCisKK0JlY2F1c2Ugb2YgdGhlIGhldGVyb2dlbmVvdXMgd29ybGQgb2YgSU1BUCBzZXJ2ZXJzIGFuZCB0aGUgaGlnaCBjb21wbGV4aXR5CitidXJkZW4gY29zdCBmb3Igc3VjaCBhIGxpdHRsZSBnYWluIG9mIHRoZSBmb3JtZXIsIHdlIGNob3NlIHRoZSBsYXR0ZXIuCisKKyMjIE1vY2sgdGhlIGxpYnJhcnkKKworTW9ja2FiaWxpdHkgaXMgZ3JhbnRlZCBieSBpbnRlcmZhY2VzIHByZXNlbnQgZm9yIGVhY2ggQVBJLgorRGlnIGludG8gW01vY2thYmlsaXR5VGVzdF0odGVzdHMvTW9ja2FiaWxpdHlUZXN0LnBocCkgZm9yIGFuIGV4YW1wbGUgb2YgYQorbW9ja2VkIHdvcmtmbG93LgorCisjIyBSdW5uaW5nIHRoZSBUZXN0cworCitUaGlzIGxpYnJhcnkgaXMgZnVuY3Rpb25hbGx5IHRlc3RlZCBvbiBbVHJhdmlzIENJXShodHRwczovL3RyYXZpcy1jaS5vcmcvZGRlYm9lci9pbWFwKQorYWdhaW5zdCBhIGxvY2FsIERvdmVjb3Qgc2VydmVyLgorCitJZiB5b3UgaGF2ZSB5b3VyIG93biBJTUFQICh0ZXN0KSBhY2NvdW50LCB5b3UgY2FuIHJ1biB0aGUgdGVzdHMgbG9jYWxseSBieQorcHJvdmlkaW5nIHlvdXIgSU1BUCBjcmVkZW50aWFsczoKKworYGBgYmFzaAorJCBjb21wb3NlciBpbnN0YWxsCiskIElNQVBfU0VSVkVSX05BTUU9Im15LmltYXAuc2VydmVyLmNvbSIgSU1BUF9TRVJWRVJfUE9SVD0iNjA5OTMiIElNQVBfVVNFUk5BTUU9ImpvaG5kb2UiIElNQVBfUEFTU1dPUkQ9InA0c3N3b3JkIiB2ZW5kb3IvYmluL3BocHVuaXQKK2BgYAorCitZb3UgY2FuIGFsc28gY29weSBgcGhwdW5pdC54bWwuZGlzdGAgZmlsZSB0byBhIGN1c3RvbSBgcGhwdW5pdC54bWxgIGFuZCBwdXQKK3RoZXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBpdDoKKworYGBgeG1sCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHBocHVuaXQKKyAgICBib290c3RyYXA9Ii4vdmVuZG9yL2F1dG9sb2FkLnBocCIKKyAgICBjb2xvcnM9InRydWUiCisgICAgdmVyYm9zZT0idHJ1ZSIKKz4KKyAgICA8dGVzdHN1aXRlcz4KKyAgICAgICAgPHRlc3RzdWl0ZSBuYW1lPSJkZGVib2VyL2ltYXAiPgorICAgICAgICAgICAgPGRpcmVjdG9yeT4uL3Rlc3RzLzwvZGlyZWN0b3J5PgorICAgICAgICA8L3Rlc3RzdWl0ZT4KKyAgICA8L3Rlc3RzdWl0ZXM+CisgICAgPGZpbHRlcj4KKyAgICAgICAgPHdoaXRlbGlzdD4KKyAgICAgICAgICAgIDxkaXJlY3Rvcnkgc3VmZml4PSIucGhwIj4uL3NyYzwvZGlyZWN0b3J5PgorICAgICAgICA8L3doaXRlbGlzdD4KKyAgICA8L2ZpbHRlcj4KKyAgICA8cGhwPgorICAgICAgICA8ZW52IG5hbWU9IklNQVBfU0VSVkVSX05BTUUiIHZhbHVlPSJteS5pbWFwLnNlcnZlci5jb20iIC8+CisgICAgICAgIDxlbnYgbmFtZT0iSU1BUF9TRVJWRVJfUE9SVCIgdmFsdWU9IjYwOTkzIiAvPgorICAgICAgICA8ZW52IG5hbWU9IklNQVBfVVNFUk5BTUUiIHZhbHVlPSJqb2huZG9lIiAvPgorICAgICAgICA8ZW52IG5hbWU9IklNQVBfUEFTU1dPUkQiIHZhbHVlPSJwNHNzd29yZCIgLz4KKyAgICA8L3BocD4KKzwvcGhwdW5pdD4KK2BgYAorCisqKldBUk5JTkcqKiBUZXN0cyBjcmVhdGUgbmV3IG1haWxib3hlcyB3aXRob3V0IHJlbW92aW5nIHRoZW0uCisKKyMjIyBSdW5uaW5nIFRlc3RzIHVzaW5nIERvY2tlcgorCitJZiB5b3UgaGF2ZSBEb2NrZXIgaW5zdGFsbGVkIHlvdSBjYW4gcnVuIHRoZSB0ZXN0cyBsb2NhbGx5IHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kOgorCitgYGAKKyQgZG9ja2VyLWNvbXBvc2UgcnVuIHRlc3RzCitgYGAKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvY29tcG9zZXIuanNvbiBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvY29tcG9zZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDhhYzBkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9jb21wb3Nlci5qc29uCkBAIC0wLDAgKzEsNDggQEAKK3sKKyAgICAibmFtZSI6ICJkZGVib2VyL2ltYXAiLAorICAgICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qtb3JpZW50ZWQgSU1BUCBmb3IgUEhQIiwKKyAgICAia2V5d29yZHMiOiBbCisgICAgICAgICJlbWFpbCIsCisgICAgICAgICJtYWlsIiwKKyAgICAgICAgImltYXAiCisgICAgXSwKKyAgICAibGljZW5zZSI6ICJNSVQiLAorICAgICJhdXRob3JzIjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJEYXZpZCBkZSBCb2VyIiwKKyAgICAgICAgICAgICJlbWFpbCI6ICJkYXZpZEBkZGVib2VyLm5sIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJGaWxpcHBvIFRlc3Nhcm90dG8iLAorICAgICAgICAgICAgImVtYWlsIjogInpvZXNsYW1AZ21haWwuY29tIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJDb21tdW5pdHkgY29udHJpYnV0b3JzIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vZGRlYm9lci9pbWFwL2dyYXBocy9jb250cmlidXRvcnMiCisgICAgICAgIH0KKyAgICBdLAorICAgICJyZXF1aXJlIjogeworICAgICAgICAicGhwIjogIl43LjIiLAorICAgICAgICAiZXh0LWljb252IjogIioiLAorICAgICAgICAiZXh0LWltYXAiOiAiKiIsCisgICAgICAgICJleHQtbWJzdHJpbmciOiAiKiIKKyAgICB9LAorICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgImZyaWVuZHNvZnBocC9waHAtY3MtZml4ZXIiOiAiXjIuMTYiLAorICAgICAgICAicGhwc3Rhbi9waHBzdGFuIjogIl4wLjEyIiwKKyAgICAgICAgInBocHN0YW4vcGhwc3Rhbi1waHB1bml0IjogIl4wLjEyIiwKKyAgICAgICAgInBocHN0YW4vcGhwc3Rhbi1zdHJpY3QtcnVsZXMiOiAiXjAuMTIiLAorICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIl44LjUiLAorICAgICAgICAiemVuZGZyYW1ld29yay96ZW5kLW1haWwiOiAiXjIuMTAiCisgICAgfSwKKyAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICJEZGVib2VyXFxJbWFwXFwiOiAic3JjLyIKKyAgICAgICAgfQorICAgIH0sCisgICAgImF1dG9sb2FkLWRldiI6IHsKKyAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgIkRkZWJvZXJcXEltYXBcXFRlc3RzXFwiOiAidGVzdHMvIgorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvQ29ubmVjdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9Db25uZWN0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDJjN2NlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvQ29ubmVjdGlvbi5waHAKQEAgLTAsMCArMSwyMzQgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwOworCit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxDcmVhdGVNYWlsYm94RXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cRGVsZXRlTWFpbGJveEV4Y2VwdGlvbjsKK3VzZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uXEltYXBHZXRtYWlsYm94ZXNFeGNlcHRpb247Cit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxJbWFwTnVtTXNnRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW1hcFF1b3RhRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW52YWxpZFJlc291cmNlRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cTWFpbGJveERvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKKworLyoqCisgKiBBIGNvbm5lY3Rpb24gdG8gYW4gSU1BUCBzZXJ2ZXIgdGhhdCBpcyBhdXRoZW50aWNhdGVkIGZvciBhIHVzZXIuCisgKi8KK2ZpbmFsIGNsYXNzIENvbm5lY3Rpb24gaW1wbGVtZW50cyBDb25uZWN0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBJbWFwUmVzb3VyY2VJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcml2YXRlICRyZXNvdXJjZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkc2VydmVyOworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSAkbWFpbGJveGVzOworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSAkbWFpbGJveE5hbWVzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSW1hcFJlc291cmNlSW50ZXJmYWNlICRyZXNvdXJjZSwgc3RyaW5nICRzZXJ2ZXIpCisgICAgeworICAgICAgICAkdGhpcy0+cmVzb3VyY2UgPSAkcmVzb3VyY2U7CisgICAgICAgICR0aGlzLT5zZXJ2ZXIgICA9ICRzZXJ2ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IElNQVAgcmVzb3VyY2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc291cmNlKCk6IEltYXBSZXNvdXJjZUludGVyZmFjZQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yZXNvdXJjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWxldGUgYWxsIG1lc3NhZ2VzIG1hcmtlZCBmb3IgZGVsZXRpb24uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGV4cHVuZ2UoKTogYm9vbAorICAgIHsKKyAgICAgICAgcmV0dXJuIFxpbWFwX2V4cHVuZ2UoJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2UgY29ubmVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2xvc2UoaW50ICRmbGFnID0gMCk6IGJvb2wKKyAgICB7CisgICAgICAgICR0aGlzLT5yZXNvdXJjZS0+Y2xlYXJMYXN0TWFpbGJveFVzZWRDYWNoZSgpOworCisgICAgICAgIHJldHVybiBcaW1hcF9jbG9zZSgkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkZmxhZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IE1haWxib3ggcXVvdGEuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFF1b3RhKHN0cmluZyAkcm9vdCA9ICdJTkJPWCcpOiBhcnJheQorICAgIHsKKyAgICAgICAgJGVycm9yTWVzc2FnZSA9IG51bGw7CisgICAgICAgICRlcnJvck51bWJlciAgPSAwOworICAgICAgICBcc2V0X2Vycm9yX2hhbmRsZXIoc3RhdGljIGZ1bmN0aW9uICgkbnIsICRtZXNzYWdlKSB1c2UgKCYkZXJyb3JNZXNzYWdlLCAmJGVycm9yTnVtYmVyKTogYm9vbCB7CisgICAgICAgICAgICAkZXJyb3JNZXNzYWdlID0gJG1lc3NhZ2U7CisgICAgICAgICAgICAkZXJyb3JOdW1iZXIgPSAkbnI7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9KTsKKworICAgICAgICAkcmV0dXJuID0gXGltYXBfZ2V0X3F1b3Rhcm9vdCgkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkcm9vdCk7CisKKyAgICAgICAgXHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOworCisgICAgICAgIGlmIChmYWxzZSA9PT0gJHJldHVybiB8fCBudWxsICE9PSAkZXJyb3JNZXNzYWdlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW1hcFF1b3RhRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgIFxzcHJpbnRmKAorICAgICAgICAgICAgICAgICAgICAnSU1BUCBRdW90YSByZXF1ZXN0IGZhaWxlZCBmb3IgIiVzIiVzJywKKyAgICAgICAgICAgICAgICAgICAgJHJvb3QsCisgICAgICAgICAgICAgICAgICAgIG51bGwgIT09ICRlcnJvck1lc3NhZ2UgPyAnOiAnIC4gJGVycm9yTWVzc2FnZSA6ICcnCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAkZXJyb3JOdW1iZXIKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHJldHVybjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBsaXN0IG9mIG1haWxib3hlcyAoYWxzbyBrbm93biBhcyBmb2xkZXJzKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gTWFpbGJveEludGVyZmFjZVtdCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE1haWxib3hlcygpOiBhcnJheQorICAgIHsKKyAgICAgICAgJHRoaXMtPmluaXRNYWlsYm94TmFtZXMoKTsKKworICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPm1haWxib3hlcykgeworICAgICAgICAgICAgJHRoaXMtPm1haWxib3hlcyA9IFtdOworICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPm1haWxib3hOYW1lcyBhcyAkbWFpbGJveE5hbWUgPT4gJG1haWxib3hJbmZvKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPm1haWxib3hlc1soc3RyaW5nKSAkbWFpbGJveE5hbWVdID0gJHRoaXMtPmdldE1haWxib3goKHN0cmluZykgJG1haWxib3hOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+bWFpbGJveGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRoYXQgYSBtYWlsYm94IHdpdGggdGhlIGdpdmVuIG5hbWUgZXhpc3RzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBNYWlsYm94IG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFzTWFpbGJveChzdHJpbmcgJG5hbWUpOiBib29sCisgICAgeworICAgICAgICAkdGhpcy0+aW5pdE1haWxib3hOYW1lcygpOworCisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+bWFpbGJveE5hbWVzWyRuYW1lXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgbWFpbGJveCBieSBpdHMgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgTWFpbGJveCBuYW1lCisgICAgICoKKyAgICAgKiBAdGhyb3dzIE1haWxib3hEb2VzTm90RXhpc3RFeGNlcHRpb24gSWYgbWFpbGJveCBkb2VzIG5vdCBleGlzdAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNYWlsYm94KHN0cmluZyAkbmFtZSk6IE1haWxib3hJbnRlcmZhY2UKKyAgICB7CisgICAgICAgIGlmIChmYWxzZSA9PT0gJHRoaXMtPmhhc01haWxib3goJG5hbWUpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWFpbGJveERvZXNOb3RFeGlzdEV4Y2VwdGlvbihcc3ByaW50ZignTWFpbGJveCBuYW1lICIlcyIgZG9lcyBub3QgZXhpc3QnLCAkbmFtZSkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBNYWlsYm94KCR0aGlzLT5yZXNvdXJjZSwgJG5hbWUsICR0aGlzLT5tYWlsYm94TmFtZXNbJG5hbWVdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3VudCBudW1iZXIgb2YgbWVzc2FnZXMgbm90IGluIGFueSBtYWlsYm94LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY291bnQoKQorICAgIHsKKyAgICAgICAgJHJldHVybiA9IFxpbWFwX251bV9tc2coJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSk7CisKKyAgICAgICAgaWYgKGZhbHNlID09PSAkcmV0dXJuKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW1hcE51bU1zZ0V4Y2VwdGlvbignaW1hcF9udW1fbXNnIGZhaWxlZCcpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXR1cm47CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIGNvbm5lY3Rpb24gaXMgc3RpbGwgYWN0aXZlLgorICAgICAqCisgICAgICogQHRocm93cyBJbnZhbGlkUmVzb3VyY2VFeGNlcHRpb24gSWYgY29ubmVjdGlvbiB3YXMgY2xvc2VkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHBpbmcoKTogYm9vbAorICAgIHsKKyAgICAgICAgcmV0dXJuIFxpbWFwX3BpbmcoJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIG1haWxib3guCisgICAgICoKKyAgICAgKiBAdGhyb3dzIENyZWF0ZU1haWxib3hFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlTWFpbGJveChzdHJpbmcgJG5hbWUpOiBNYWlsYm94SW50ZXJmYWNlCisgICAgeworICAgICAgICBpZiAoZmFsc2UgPT09IFxpbWFwX2NyZWF0ZW1haWxib3goJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSwgJHRoaXMtPnNlcnZlciAuIFxtYl9jb252ZXJ0X2VuY29kaW5nKCRuYW1lLCAnVVRGNy1JTUFQJywgJ1VURi04JykpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQ3JlYXRlTWFpbGJveEV4Y2VwdGlvbihcc3ByaW50ZignQ2FuIG5vdCBjcmVhdGUgIiVzIiBtYWlsYm94IGF0ICIlcyInLCAkbmFtZSwgJHRoaXMtPnNlcnZlcikpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPm1haWxib3hOYW1lcyA9ICR0aGlzLT5tYWlsYm94ZXMgPSBudWxsOworICAgICAgICAkdGhpcy0+cmVzb3VyY2UtPmNsZWFyTGFzdE1haWxib3hVc2VkQ2FjaGUoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmdldE1haWxib3goJG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBtYWlsYm94LgorICAgICAqCisgICAgICogQHRocm93cyBEZWxldGVNYWlsYm94RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZU1haWxib3goTWFpbGJveEludGVyZmFjZSAkbWFpbGJveCk6IHZvaWQKKyAgICB7CisgICAgICAgIGlmIChmYWxzZSA9PT0gXGltYXBfZGVsZXRlbWFpbGJveCgkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkbWFpbGJveC0+Z2V0RnVsbEVuY29kZWROYW1lKCkpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVsZXRlTWFpbGJveEV4Y2VwdGlvbihcc3ByaW50ZignTWFpbGJveCAiJXMiIGNvdWxkIG5vdCBiZSBkZWxldGVkJywgJG1haWxib3gtPmdldE5hbWUoKSkpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPm1haWxib3hlcyA9ICR0aGlzLT5tYWlsYm94TmFtZXMgPSBudWxsOworICAgICAgICAkdGhpcy0+cmVzb3VyY2UtPmNsZWFyTGFzdE1haWxib3hVc2VkQ2FjaGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWFpbGJveCBuYW1lcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGluaXRNYWlsYm94TmFtZXMoKTogdm9pZAorICAgIHsKKyAgICAgICAgaWYgKG51bGwgIT09ICR0aGlzLT5tYWlsYm94TmFtZXMpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5tYWlsYm94TmFtZXMgPSBbXTsKKyAgICAgICAgJG1haWxib3hlc0luZm8gICAgICA9IFxpbWFwX2dldG1haWxib3hlcygkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkdGhpcy0+c2VydmVyLCAnKicpOworICAgICAgICBpZiAoIVxpc19hcnJheSgkbWFpbGJveGVzSW5mbykpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbWFwR2V0bWFpbGJveGVzRXhjZXB0aW9uKCdpbWFwX2dldG1haWxib3hlcyBmYWlsZWQnKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcmVhY2ggKCRtYWlsYm94ZXNJbmZvIGFzICRtYWlsYm94SW5mbykgeworICAgICAgICAgICAgJG5hbWUgICAgICAgICAgICAgICAgICAgICAgPSBcbWJfY29udmVydF9lbmNvZGluZyhcc3RyX3JlcGxhY2UoJHRoaXMtPnNlcnZlciwgJycsICRtYWlsYm94SW5mby0+bmFtZSksICdVVEYtOCcsICdVVEY3LUlNQVAnKTsKKyAgICAgICAgICAgICR0aGlzLT5tYWlsYm94TmFtZXNbJG5hbWVdID0gJG1haWxib3hJbmZvOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvQ29ubmVjdGlvbkludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9Db25uZWN0aW9uSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzYwNzdmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvQ29ubmVjdGlvbkludGVyZmFjZS5waHAKQEAgLTAsMCArMSw2NyBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXA7CisKKy8qKgorICogQSBjb25uZWN0aW9uIHRvIGFuIElNQVAgc2VydmVyIHRoYXQgaXMgYXV0aGVudGljYXRlZCBmb3IgYSB1c2VyLgorICovCitpbnRlcmZhY2UgQ29ubmVjdGlvbkludGVyZmFjZSBleHRlbmRzIFxDb3VudGFibGUKK3sKKyAgICAvKioKKyAgICAgKiBHZXQgSU1BUCByZXNvdXJjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzb3VyY2UoKTogSW1hcFJlc291cmNlSW50ZXJmYWNlOworCisgICAgLyoqCisgICAgICogRGVsZXRlIGFsbCBtZXNzYWdlcyBtYXJrZWQgZm9yIGRlbGV0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBleHB1bmdlKCk6IGJvb2w7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZSBjb25uZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjbG9zZShpbnQgJGZsYWcgPSAwKTogYm9vbDsKKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBjb25uZWN0aW9uIGlzIHN0aWxsIGFjdGl2ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcGluZygpOiBib29sOworCisgICAgLyoqCisgICAgICogR2V0IE1haWxib3ggcXVvdGEuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFF1b3RhKHN0cmluZyAkcm9vdCA9ICdJTkJPWCcpOiBhcnJheTsKKworICAgIC8qKgorICAgICAqIEdldCBhIGxpc3Qgb2YgbWFpbGJveGVzIChhbHNvIGtub3duIGFzIGZvbGRlcnMpLgorICAgICAqCisgICAgICogQHJldHVybiBNYWlsYm94SW50ZXJmYWNlW10KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWFpbGJveGVzKCk6IGFycmF5OworCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhhdCBhIG1haWxib3ggd2l0aCB0aGUgZ2l2ZW4gbmFtZSBleGlzdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIE1haWxib3ggbmFtZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNNYWlsYm94KHN0cmluZyAkbmFtZSk6IGJvb2w7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBtYWlsYm94IGJ5IGl0cyBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBNYWlsYm94IG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWFpbGJveChzdHJpbmcgJG5hbWUpOiBNYWlsYm94SW50ZXJmYWNlOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIG1haWxib3guCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZU1haWxib3goc3RyaW5nICRuYW1lKTogTWFpbGJveEludGVyZmFjZTsKKworICAgIC8qKgorICAgICAqIERlbGV0ZSBtYWlsYm94LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVNYWlsYm94KE1haWxib3hJbnRlcmZhY2UgJG1haWxib3gpOiB2b2lkOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0Fic3RyYWN0RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9BYnN0cmFjdEV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZjMWU1OAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9BYnN0cmFjdEV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw1NyBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCithYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEV4Y2VwdGlvbiBleHRlbmRzIFxSdW50aW1lRXhjZXB0aW9uCit7CisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljICRlcnJvckxhYmVscyA9IFsKKyAgICAgICAgXEVfRVJST1IgICAgICAgICAgICAgICAgPT4gJ0VfRVJST1InLAorICAgICAgICBcRV9XQVJOSU5HICAgICAgICAgICAgICA9PiAnRV9XQVJOSU5HJywKKyAgICAgICAgXEVfUEFSU0UgICAgICAgICAgICAgICAgPT4gJ0VfUEFSU0UnLAorICAgICAgICBcRV9OT1RJQ0UgICAgICAgICAgICAgICA9PiAnRV9OT1RJQ0UnLAorICAgICAgICBcRV9DT1JFX0VSUk9SICAgICAgICAgICA9PiAnRV9DT1JFX0VSUk9SJywKKyAgICAgICAgXEVfQ09SRV9XQVJOSU5HICAgICAgICAgPT4gJ0VfQ09SRV9XQVJOSU5HJywKKyAgICAgICAgXEVfQ09NUElMRV9FUlJPUiAgICAgICAgPT4gJ0VfQ09NUElMRV9FUlJPUicsCisgICAgICAgIFxFX0NPTVBJTEVfV0FSTklORyAgICAgID0+ICdFX0NPTVBJTEVfV0FSTklORycsCisgICAgICAgIFxFX1VTRVJfRVJST1IgICAgICAgICAgID0+ICdFX1VTRVJfRVJST1InLAorICAgICAgICBcRV9VU0VSX1dBUk5JTkcgICAgICAgICA9PiAnRV9VU0VSX1dBUk5JTkcnLAorICAgICAgICBcRV9VU0VSX05PVElDRSAgICAgICAgICA9PiAnRV9VU0VSX05PVElDRScsCisgICAgICAgIFxFX1NUUklDVCAgICAgICAgICAgICAgID0+ICdFX1NUUklDVCcsCisgICAgICAgIFxFX1JFQ09WRVJBQkxFX0VSUk9SICAgID0+ICdFX1JFQ09WRVJBQkxFX0VSUk9SJywKKyAgICAgICAgXEVfREVQUkVDQVRFRCAgICAgICAgICAgPT4gJ0VfREVQUkVDQVRFRCcsCisgICAgICAgIFxFX1VTRVJfREVQUkVDQVRFRCAgICAgID0+ICdFX1VTRVJfREVQUkVDQVRFRCcsCisgICAgXTsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICRtZXNzYWdlICBUaGUgZXhjZXB0aW9uIG1lc3NhZ2UKKyAgICAgKiBAcGFyYW0gaW50ICAgICAgICAkY29kZSAgICAgVGhlIGV4Y2VwdGlvbiBjb2RlCisgICAgICogQHBhcmFtIFxUaHJvd2FibGUgJHByZXZpb3VzIFRoZSBwcmV2aW91cyBleGNlcHRpb24KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3Qoc3RyaW5nICRtZXNzYWdlLCBpbnQgJGNvZGUgPSAwLCBcVGhyb3dhYmxlICRwcmV2aW91cyA9IG51bGwpCisgICAgeworICAgICAgICAkZXJyb3JUeXBlID0gJyc7CisgICAgICAgIGlmIChpc3NldChzZWxmOjokZXJyb3JMYWJlbHNbJGNvZGVdKSkgeworICAgICAgICAgICAgJGVycm9yVHlwZSA9IFxzcHJpbnRmKCdbJXNdICcsIHNlbGY6OiRlcnJvckxhYmVsc1skY29kZV0pOworICAgICAgICB9CisKKyAgICAgICAgJGpvaW5TdHJpbmcgICAgICA9ICJcbi0gIjsKKyAgICAgICAgJGFsZXJ0cyAgICAgICAgICA9IFxpbWFwX2FsZXJ0cygpOworICAgICAgICAkZXJyb3JzICAgICAgICAgID0gXGltYXBfZXJyb3JzKCk7CisgICAgICAgICRjb21wbGV0ZU1lc3NhZ2UgPSBcc3ByaW50ZigKKyAgICAgICAgICAgICIlcyVzXG5pbWFwX2FsZXJ0cyAoJXMpOiVzXG5pbWFwX2Vycm9ycyAoJXMpOiVzIiwKKyAgICAgICAgICAgICRlcnJvclR5cGUsCisgICAgICAgICAgICAkbWVzc2FnZSwKKyAgICAgICAgICAgIGZhbHNlICE9PSAkYWxlcnRzID8gXGNvdW50KCRhbGVydHMpIDogMCwKKyAgICAgICAgICAgIGZhbHNlICE9PSAkYWxlcnRzID8gJGpvaW5TdHJpbmcgLiBcaW1wbG9kZSgkam9pblN0cmluZywgJGFsZXJ0cykgOiAnJywKKyAgICAgICAgICAgIGZhbHNlICE9PSAkZXJyb3JzID8gXGNvdW50KCRlcnJvcnMpIDogMCwKKyAgICAgICAgICAgIGZhbHNlICE9PSAkZXJyb3JzID8gJGpvaW5TdHJpbmcgLiBcaW1wbG9kZSgkam9pblN0cmluZywgJGVycm9ycykgOiAnJworICAgICAgICApOworCisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJGNvbXBsZXRlTWVzc2FnZSwgJGNvZGUsICRwcmV2aW91cyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0F1dGhlbnRpY2F0aW9uRmFpbGVkRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9BdXRoZW50aWNhdGlvbkZhaWxlZEV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzBlOTNkMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9BdXRoZW50aWNhdGlvbkZhaWxlZEV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIEF1dGhlbnRpY2F0aW9uRmFpbGVkRXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9DcmVhdGVNYWlsYm94RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9DcmVhdGVNYWlsYm94RXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWJiM2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0NyZWF0ZU1haWxib3hFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBDcmVhdGVNYWlsYm94RXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9EZWxldGVNYWlsYm94RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9EZWxldGVNYWlsYm94RXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTRjM2E2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0RlbGV0ZU1haWxib3hFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBEZWxldGVNYWlsYm94RXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwRmV0Y2hib2R5RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwRmV0Y2hib2R5RXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTJmMzBmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBGZXRjaGJvZHlFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBJbWFwRmV0Y2hib2R5RXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwRmV0Y2hoZWFkZXJFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBGZXRjaGhlYWRlckV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE4Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwRmV0Y2hoZWFkZXJFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBJbWFwRmV0Y2hoZWFkZXJFeGNlcHRpb24gZXh0ZW5kcyBBYnN0cmFjdEV4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBHZXRtYWlsYm94ZXNFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBHZXRtYWlsYm94ZXNFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNjgzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW1hcEdldG1haWxib3hlc0V4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIEltYXBHZXRtYWlsYm94ZXNFeGNlcHRpb24gZXh0ZW5kcyBBYnN0cmFjdEV4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBNc2dub0V4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW1hcE1zZ25vRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWRlNGU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBNc2dub0V4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIEltYXBNc2dub0V4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW1hcE51bU1zZ0V4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW1hcE51bU1zZ0V4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdhNTVlZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwTnVtTXNnRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgSW1hcE51bU1zZ0V4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW1hcFF1b3RhRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwUXVvdGFFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNzNlNjcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW1hcFF1b3RhRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgSW1hcFF1b3RhRXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwU3RhdHVzRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbWFwU3RhdHVzRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTgwOGNkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ltYXBTdGF0dXNFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBJbWFwU3RhdHVzRXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbnZhbGlkRGF0ZUhlYWRlckV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW52YWxpZERhdGVIZWFkZXJFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NDAxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW52YWxpZERhdGVIZWFkZXJFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBJbnZhbGlkRGF0ZUhlYWRlckV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW52YWxpZEhlYWRlcnNFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ludmFsaWRIZWFkZXJzRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTU0NTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ludmFsaWRIZWFkZXJzRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgSW52YWxpZEhlYWRlcnNFeGNlcHRpb24gZXh0ZW5kcyBBYnN0cmFjdEV4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ludmFsaWRSZXNvdXJjZUV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW52YWxpZFJlc291cmNlRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2NiZjViCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL0ludmFsaWRSZXNvdXJjZUV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIEludmFsaWRSZXNvdXJjZUV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW52YWxpZFNlYXJjaENyaXRlcmlhRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9JbnZhbGlkU2VhcmNoQ3JpdGVyaWFFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4M2M2YmEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vSW52YWxpZFNlYXJjaENyaXRlcmlhRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgSW52YWxpZFNlYXJjaENyaXRlcmlhRXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9NYWlsYm94RG9lc05vdEV4aXN0RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9NYWlsYm94RG9lc05vdEV4aXN0RXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2RmMjhhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01haWxib3hEb2VzTm90RXhpc3RFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBNYWlsYm94RG9lc05vdEV4aXN0RXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9NZXNzYWdlQ29weUV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZUNvcHlFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMWFiNjgKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZUNvcHlFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBNZXNzYWdlQ29weUV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZURlbGV0ZUV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZURlbGV0ZUV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhkODhmZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9NZXNzYWdlRGVsZXRlRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgTWVzc2FnZURlbGV0ZUV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZURvZXNOb3RFeGlzdEV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZURvZXNOb3RFeGlzdEV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ4NWE2MwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9NZXNzYWdlRG9lc05vdEV4aXN0RXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgTWVzc2FnZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZU1vdmVFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01lc3NhZ2VNb3ZlRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjBjZDBjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01lc3NhZ2VNb3ZlRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgTWVzc2FnZU1vdmVFeGNlcHRpb24gZXh0ZW5kcyBBYnN0cmFjdEV4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01lc3NhZ2VTdHJ1Y3R1cmVFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01lc3NhZ2VTdHJ1Y3R1cmVFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZGQ0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZVN0cnVjdHVyZUV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIE1lc3NhZ2VTdHJ1Y3R1cmVFeGNlcHRpb24gZXh0ZW5kcyBBYnN0cmFjdEV4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01lc3NhZ2VVbmRlbGV0ZUV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTWVzc2FnZVVuZGVsZXRlRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjVmNDVjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL01lc3NhZ2VVbmRlbGV0ZUV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIE1lc3NhZ2VVbmRlbGV0ZUV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTm90RW1iZWRkZWRNZXNzYWdlRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9Ob3RFbWJlZGRlZE1lc3NhZ2VFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyYWZkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vTm90RW1iZWRkZWRNZXNzYWdlRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgTm90RW1iZWRkZWRNZXNzYWdlRXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9PdXRPZkJvdW5kc0V4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vT3V0T2ZCb3VuZHNFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NTI4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vT3V0T2ZCb3VuZHNFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vUmVvcGVuTWFpbGJveEV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vUmVvcGVuTWFpbGJveEV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ1YzY1NAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9SZW9wZW5NYWlsYm94RXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgUmVvcGVuTWFpbGJveEV4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vUmVzb3VyY2VDaGVja0ZhaWx1cmVFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL1Jlc291cmNlQ2hlY2tGYWlsdXJlRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzUxYzcxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL1Jlc291cmNlQ2hlY2tGYWlsdXJlRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgUmVzb3VyY2VDaGVja0ZhaWx1cmVFeGNlcHRpb24gZXh0ZW5kcyBBYnN0cmFjdEV4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL1VuZXhwZWN0ZWRFbmNvZGluZ0V4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vVW5leHBlY3RlZEVuY29kaW5nRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWMzOTQzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvRXhjZXB0aW9uL1VuZXhwZWN0ZWRFbmNvZGluZ0V4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIFVuZXhwZWN0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBleHRlbmRzIEFic3RyYWN0RXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0V4Y2VwdGlvbi9VbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NDM2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9FeGNlcHRpb24vVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvbjsKKworZmluYWwgY2xhc3MgVW5zdXBwb3J0ZWRDaGFyc2V0RXhjZXB0aW9uIGV4dGVuZHMgQWJzdHJhY3RFeGNlcHRpb24KK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0ltYXBSZXNvdXJjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9JbWFwUmVzb3VyY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwYzE2MTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9JbWFwUmVzb3VyY2UucGhwCkBAIC0wLDAgKzEsMTA3IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW52YWxpZFJlc291cmNlRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cUmVvcGVuTWFpbGJveEV4Y2VwdGlvbjsKKworLyoqCisgKiBBbiBpbWFwIHJlc291cmNlIHN0cmVhbS4KKyAqLworZmluYWwgY2xhc3MgSW1hcFJlc291cmNlIGltcGxlbWVudHMgSW1hcFJlc291cmNlSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBtaXhlZAorICAgICAqLworICAgIHByaXZhdGUgJHJlc291cmNlOworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfE1haWxib3hJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcml2YXRlICRtYWlsYm94OworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljICRsYXN0TWFpbGJveFVzZWRDYWNoZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHJlc291cmNlICRyZXNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcmVzb3VyY2UsIE1haWxib3hJbnRlcmZhY2UgJG1haWxib3ggPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnJlc291cmNlID0gJHJlc291cmNlOworICAgICAgICAkdGhpcy0+bWFpbGJveCAgPSAkbWFpbGJveDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgSU1BUCByZXNvdXJjZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEludmFsaWRSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiByZXNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTdHJlYW0oKQorICAgIHsKKyAgICAgICAgaWYgKGZhbHNlID09PSBcaXNfcmVzb3VyY2UoJHRoaXMtPnJlc291cmNlKSB8fCAnaW1hcCcgIT09IFxnZXRfcmVzb3VyY2VfdHlwZSgkdGhpcy0+cmVzb3VyY2UpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFJlc291cmNlRXhjZXB0aW9uKCdTdXBwbGllZCByZXNvdXJjZSBpcyBub3QgYSB2YWxpZCBpbWFwIHJlc291cmNlJyk7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+aW5pdE1haWxib3goKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnJlc291cmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGxhc3QgbWFpbGJveCB1c2VkIGNhY2hlLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckxhc3RNYWlsYm94VXNlZENhY2hlKCk6IHZvaWQKKyAgICB7CisgICAgICAgIHNlbGY6OiRsYXN0TWFpbGJveFVzZWRDYWNoZSA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgY29ubmVjdGlvbiBpcyBub3QgY3VycmVudGx5IGluIHRoaXMgbWFpbGJveCwgc3dpdGNoIGl0IHRvIHRoaXMgbWFpbGJveC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGluaXRNYWlsYm94KCk6IHZvaWQKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdGhpcy0+bWFpbGJveCB8fCBzZWxmOjppc01haWxib3hPcGVuKCR0aGlzLT5tYWlsYm94LCAkdGhpcy0+cmVzb3VyY2UpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBcaW1hcF9yZW9wZW4oJHRoaXMtPnJlc291cmNlLCAkdGhpcy0+bWFpbGJveC0+Z2V0RnVsbEVuY29kZWROYW1lKCkpOworCisgICAgICAgIGlmIChzZWxmOjppc01haWxib3hPcGVuKCR0aGlzLT5tYWlsYm94LCAkdGhpcy0+cmVzb3VyY2UpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aHJvdyBuZXcgUmVvcGVuTWFpbGJveEV4Y2VwdGlvbihcc3ByaW50ZignQ2Fubm90IHJlb3BlbiBtYWlsYm94ICIlcyInLCAkdGhpcy0+bWFpbGJveC0+Z2V0TmFtZSgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGUgY3VycmVudCBtYWlsYm94IGlzIG9wZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWl4ZWQgJHJlc291cmNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gaXNNYWlsYm94T3BlbihNYWlsYm94SW50ZXJmYWNlICRtYWlsYm94LCAkcmVzb3VyY2UpOiBib29sCisgICAgeworICAgICAgICAkY3VycmVudE1haWxib3hOYW1lID0gJG1haWxib3gtPmdldEZ1bGxFbmNvZGVkTmFtZSgpOworICAgICAgICBpZiAoJGN1cnJlbnRNYWlsYm94TmFtZSA9PT0gc2VsZjo6JGxhc3RNYWlsYm94VXNlZENhY2hlKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHNlbGY6OiRsYXN0TWFpbGJveFVzZWRDYWNoZSA9IG51bGw7CisgICAgICAgICRjaGVjayAgICAgICAgICAgICAgICAgICAgICA9IFxpbWFwX2NoZWNrKCRyZXNvdXJjZSk7CisgICAgICAgICRyZXR1cm4gICAgICAgICAgICAgICAgICAgICA9IGZhbHNlICE9PSAkY2hlY2sgJiYgJGNoZWNrLT5NYWlsYm94ID09PSAkY3VycmVudE1haWxib3hOYW1lOworCisgICAgICAgIGlmICh0cnVlID09PSAkcmV0dXJuKSB7CisgICAgICAgICAgICBzZWxmOjokbGFzdE1haWxib3hVc2VkQ2FjaGUgPSAkY3VycmVudE1haWxib3hOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXR1cm47CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvSW1hcFJlc291cmNlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0ltYXBSZXNvdXJjZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNjMTZmNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL0ltYXBSZXNvdXJjZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSwyMCBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXA7CisKK2ludGVyZmFjZSBJbWFwUmVzb3VyY2VJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBHZXQgSU1BUCByZXNvdXJjZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc291cmNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFN0cmVhbSgpOworCisgICAgLyoqCisgICAgICogQ2xlYXIgbGFzdCBtYWlsYm94IHVzZWQgY2FjaGUuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyTGFzdE1haWxib3hVc2VkQ2FjaGUoKTogdm9pZDsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01haWxib3gucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWFpbGJveC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRlMWJmNAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01haWxib3gucGhwCkBAIC0wLDAgKzEsMzIxIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKwordXNlIERhdGVUaW1lSW50ZXJmYWNlOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW1hcE51bU1zZ0V4Y2VwdGlvbjsKK3VzZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uXEltYXBTdGF0dXNFeGNlcHRpb247Cit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxJbnZhbGlkU2VhcmNoQ3JpdGVyaWFFeGNlcHRpb247Cit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxNZXNzYWdlQ29weUV4Y2VwdGlvbjsKK3VzZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uXE1lc3NhZ2VNb3ZlRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcTG9naWNhbE9wZXJhdG9yXEFsbDsKKworLyoqCisgKiBBbiBJTUFQIG1haWxib3ggKGNvbW1vbmx5IHJlZmVycmVkIHRvIGFzIGEgJ2ZvbGRlcicpLgorICovCitmaW5hbCBjbGFzcyBNYWlsYm94IGltcGxlbWVudHMgTWFpbGJveEludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgSW1hcFJlc291cmNlSW50ZXJmYWNlCisgICAgICovCisgICAgcHJpdmF0ZSAkcmVzb3VyY2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIFxzdGRDbGFzcworICAgICAqLworICAgIHByaXZhdGUgJGluZm87CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBJbWFwUmVzb3VyY2VJbnRlcmZhY2UgJHJlc291cmNlIElNQVAgcmVzb3VyY2UKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICRuYW1lICAgICBNYWlsYm94IGRlY29kZWQgbmFtZQorICAgICAqIEBwYXJhbSBcc3RkQ2xhc3MgICAgICAgICAgICAgJGluZm8gICAgIE1haWxib3ggaW5mbworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChJbWFwUmVzb3VyY2VJbnRlcmZhY2UgJHJlc291cmNlLCBzdHJpbmcgJG5hbWUsIFxzdGRDbGFzcyAkaW5mbykKKyAgICB7CisgICAgICAgICR0aGlzLT5yZXNvdXJjZSA9IG5ldyBJbWFwUmVzb3VyY2UoJHJlc291cmNlLT5nZXRTdHJlYW0oKSwgJHRoaXMpOworICAgICAgICAkdGhpcy0+bmFtZSAgICAgPSAkbmFtZTsKKyAgICAgICAgJHRoaXMtPmluZm8gICAgID0gJGluZm87CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG1haWxib3ggZGVjb2RlZCBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXROYW1lKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5uYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtYWlsYm94IGVuY29kZWQgcGF0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW5jb2RlZE5hbWUoKTogc3RyaW5nCisgICAgeworICAgICAgICAvKiogQHZhciBzdHJpbmcgJG5hbWUgKi8KKyAgICAgICAgJG5hbWUgPSAkdGhpcy0+aW5mby0+bmFtZTsKKworICAgICAgICByZXR1cm4gKHN0cmluZykgXHByZWdfcmVwbGFjZSgnL157Lit9LycsICcnLCAkbmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG1haWxib3ggZW5jb2RlZCBmdWxsIG5hbWUuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEZ1bGxFbmNvZGVkTmFtZSgpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+aW5mby0+bmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWFpbGJveCBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVzKCk6IGludAorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5pbmZvLT5hdHRyaWJ1dGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtYWlsYm94IGRlbGltaXRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGVsaW1pdGVyKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5pbmZvLT5kZWxpbWl0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG51bWJlciBvZiBtZXNzYWdlcyBpbiB0aGlzIG1haWxib3guCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudCgpCisgICAgeworICAgICAgICAkcmV0dXJuID0gXGltYXBfbnVtX21zZygkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpKTsKKworICAgICAgICBpZiAoZmFsc2UgPT09ICRyZXR1cm4pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbWFwTnVtTXNnRXhjZXB0aW9uKCdpbWFwX251bV9tc2cgZmFpbGVkJyk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHJldHVybjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgTWFpbGJveCBzdGF0dXMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFN0YXR1cyhpbnQgJGZsYWdzID0gbnVsbCk6IFxzdGRDbGFzcworICAgIHsKKyAgICAgICAgJHJldHVybiA9IFxpbWFwX3N0YXR1cygkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkdGhpcy0+Z2V0RnVsbEVuY29kZWROYW1lKCksICRmbGFncyA/PyBcU0FfQUxMKTsKKworICAgICAgICBpZiAoZmFsc2UgPT09ICRyZXR1cm4pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbWFwU3RhdHVzRXhjZXB0aW9uKCdpbWFwX3N0YXR1cyBmYWlsZWQnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmV0dXJuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJ1bGsgU2V0IEZsYWcgZm9yIE1lc3NhZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgJGZsYWcgICAgXFNlZW4sIFxBbnN3ZXJlZCwgXEZsYWdnZWQsIFxEZWxldGVkLCBhbmQgXERyYWZ0CisgICAgICogQHBhcmFtIGFycmF5fE1lc3NhZ2VJdGVyYXRvcnxzdHJpbmcgJG51bWJlcnMgTWVzc2FnZSBudW1iZXJzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldEZsYWcoc3RyaW5nICRmbGFnLCAkbnVtYmVycyk6IGJvb2wKKyAgICB7CisgICAgICAgIHJldHVybiBcaW1hcF9zZXRmbGFnX2Z1bGwoJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSwgJHRoaXMtPnByZXBhcmVNZXNzYWdlSWRzKCRudW1iZXJzKSwgJGZsYWcsIFxTVF9VSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJ1bGsgQ2xlYXIgRmxhZyBmb3IgTWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAkZmxhZyAgICBcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnQKKyAgICAgKiBAcGFyYW0gYXJyYXl8TWVzc2FnZUl0ZXJhdG9yfHN0cmluZyAkbnVtYmVycyBNZXNzYWdlIG51bWJlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJGbGFnKHN0cmluZyAkZmxhZywgJG51bWJlcnMpOiBib29sCisgICAgeworICAgICAgICByZXR1cm4gXGltYXBfY2xlYXJmbGFnX2Z1bGwoJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSwgJHRoaXMtPnByZXBhcmVNZXNzYWdlSWRzKCRudW1iZXJzKSwgJGZsYWcsIFxTVF9VSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGlkcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBDb25kaXRpb25JbnRlcmZhY2UgJHNlYXJjaCBTZWFyY2ggZXhwcmVzc2lvbiAob3B0aW9uYWwpCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE1lc3NhZ2VzKENvbmRpdGlvbkludGVyZmFjZSAkc2VhcmNoID0gbnVsbCwgaW50ICRzb3J0Q3JpdGVyaWEgPSBudWxsLCBib29sICRkZXNjZW5kaW5nID0gZmFsc2UsIHN0cmluZyAkY2hhcnNldCA9IG51bGwpOiBNZXNzYWdlSXRlcmF0b3JJbnRlcmZhY2UKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkc2VhcmNoKSB7CisgICAgICAgICAgICAkc2VhcmNoID0gbmV3IEFsbCgpOworICAgICAgICB9CisgICAgICAgICRxdWVyeSA9ICRzZWFyY2gtPnRvU3RyaW5nKCk7CisKKyAgICAgICAgLy8gV2UgbmVlZCB0byBjbGVhciB0aGUgc3RhY2sgdG8ga25vdyB3aGV0aGVyIGltYXBfbGFzdF9lcnJvcigpCisgICAgICAgIC8vIGlzIHJlbGF0ZWQgdG8gdGhpcyBpbWFwX3NlYXJjaAorICAgICAgICBcaW1hcF9lcnJvcnMoKTsKKworICAgICAgICBpZiAobnVsbCAhPT0gJHNvcnRDcml0ZXJpYSkgeworICAgICAgICAgICAgJHBhcmFtcyA9IFsKKyAgICAgICAgICAgICAgICAkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLAorICAgICAgICAgICAgICAgICRzb3J0Q3JpdGVyaWEsCisgICAgICAgICAgICAgICAgJGRlc2NlbmRpbmcgPyAxIDogMCwKKyAgICAgICAgICAgICAgICBcU0VfVUlELAorICAgICAgICAgICAgICAgICRxdWVyeSwKKyAgICAgICAgICAgIF07CisgICAgICAgICAgICBpZiAobnVsbCAhPT0gJGNoYXJzZXQpIHsKKyAgICAgICAgICAgICAgICAkcGFyYW1zW10gPSAkY2hhcnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRtZXNzYWdlTnVtYmVycyA9IFxpbWFwX3NvcnQoLi4uJHBhcmFtcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcGFyYW1zID0gWworICAgICAgICAgICAgICAgICR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksCisgICAgICAgICAgICAgICAgJHF1ZXJ5LAorICAgICAgICAgICAgICAgIFxTRV9VSUQsCisgICAgICAgICAgICBdOworICAgICAgICAgICAgaWYgKG51bGwgIT09ICRjaGFyc2V0KSB7CisgICAgICAgICAgICAgICAgJHBhcmFtc1tdID0gJGNoYXJzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkbWVzc2FnZU51bWJlcnMgPSBcaW1hcF9zZWFyY2goLi4uJHBhcmFtcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhbHNlID09PSAkbWVzc2FnZU51bWJlcnMpIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSAhPT0gXGltYXBfbGFzdF9lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRTZWFyY2hDcml0ZXJpYUV4Y2VwdGlvbihcc3ByaW50ZignSW52YWxpZCBzZWFyY2ggY3JpdGVyaWEgWyVzXScsICRxdWVyeSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpbWFwX3NlYXJjaCBjYW4gYWxzbyByZXR1cm4gZmFsc2UKKyAgICAgICAgICAgICRtZXNzYWdlTnVtYmVycyA9IFtdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlSXRlcmF0b3IoJHRoaXMtPnJlc291cmNlLCAkbWVzc2FnZU51bWJlcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGl0ZXJhdG9yIGZvciBhIHNlcXVlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc2VxdWVuY2UgTWVzc2FnZSBudW1iZXJzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE1lc3NhZ2VTZXF1ZW5jZShzdHJpbmcgJHNlcXVlbmNlKTogTWVzc2FnZUl0ZXJhdG9ySW50ZXJmYWNlCisgICAgeworICAgICAgICBcaW1hcF9lcnJvcnMoKTsKKworICAgICAgICAkb3ZlcnZpZXcgPSBcaW1hcF9mZXRjaF9vdmVydmlldygkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkc2VxdWVuY2UsIFxGVF9VSUQpOworICAgICAgICBpZiAoXGlzX2FycmF5KCRvdmVydmlldykgJiYgW10gIT09ICRvdmVydmlldykgeworICAgICAgICAgICAgJG1lc3NhZ2VOdW1iZXJzID0gXGFycmF5X2NvbHVtbigkb3ZlcnZpZXcsICd1aWQnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChmYWxzZSAhPT0gXGltYXBfbGFzdF9lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRTZWFyY2hDcml0ZXJpYUV4Y2VwdGlvbihcc3ByaW50ZignSW52YWxpZCBzZXF1ZW5jZSBbJXNdJywgJHNlcXVlbmNlKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRtZXNzYWdlTnVtYmVycyA9IFtdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlSXRlcmF0b3IoJHRoaXMtPnJlc291cmNlLCAkbWVzc2FnZU51bWJlcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIG1lc3NhZ2UgYnkgbWVzc2FnZSBudW1iZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW50ICRudW1iZXIgTWVzc2FnZSBudW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWVzc2FnZShpbnQgJG51bWJlcik6IE1lc3NhZ2VJbnRlcmZhY2UKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZSgkdGhpcy0+cmVzb3VyY2UsICRudW1iZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlcyBpbiB0aGlzIG1haWxib3guCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEl0ZXJhdG9yKCk6IE1lc3NhZ2VJdGVyYXRvckludGVyZmFjZQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRNZXNzYWdlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIG1haWxib3guCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZE1lc3NhZ2Uoc3RyaW5nICRtZXNzYWdlLCBzdHJpbmcgJG9wdGlvbnMgPSBudWxsLCBEYXRlVGltZUludGVyZmFjZSAkaW50ZXJuYWxEYXRlID0gbnVsbCk6IGJvb2wKKyAgICB7CisgICAgICAgICRhcmd1bWVudHMgPSBbCisgICAgICAgICAgICAkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLAorICAgICAgICAgICAgJHRoaXMtPmdldEZ1bGxFbmNvZGVkTmFtZSgpLAorICAgICAgICAgICAgJG1lc3NhZ2UsCisgICAgICAgIF07CisgICAgICAgIGlmIChudWxsICE9PSAkb3B0aW9ucykgeworICAgICAgICAgICAgJGFyZ3VtZW50c1tdID0gJG9wdGlvbnM7CisgICAgICAgICAgICBpZiAobnVsbCAhPT0gJGludGVybmFsRGF0ZSkgeworICAgICAgICAgICAgICAgICRhcmd1bWVudHNbXSA9ICRpbnRlcm5hbERhdGUtPmZvcm1hdCgnZC1NLVkgSDppOnMgTycpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFxpbWFwX2FwcGVuZCguLi4kYXJndW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdHJlZSBvZiB0aHJlYWRlZCBtZXNzYWdlIGZvciB0aGUgY3VycmVudCBNYWlsYm94LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaHJlYWQoKTogYXJyYXkKKyAgICB7CisgICAgICAgIFxzZXRfZXJyb3JfaGFuZGxlcihzdGF0aWMgZnVuY3Rpb24gKCk6IGJvb2wgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0pOworCisgICAgICAgIC8qKiBAdmFyIGFycmF5fGZhbHNlICR0cmVlICovCisgICAgICAgICR0cmVlID0gXGltYXBfdGhyZWFkKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCkpOworCisgICAgICAgIFxyZXN0b3JlX2Vycm9yX2hhbmRsZXIoKTsKKworICAgICAgICByZXR1cm4gZmFsc2UgIT09ICR0cmVlID8gJHRyZWUgOiBbXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWxrIG1vdmUgbWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXl8TWVzc2FnZUl0ZXJhdG9yfHN0cmluZyAkbnVtYmVycyBNZXNzYWdlIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gTWFpbGJveEludGVyZmFjZSAgICAgICAgICAgICAkbWFpbGJveCBEZXN0aW5hdGlvbiBNYWlsYm94IHRvIG1vdmUgdGhlIG1lc3NhZ2VzIHRvCisgICAgICoKKyAgICAgKiBAdGhyb3dzIFxEZGVib2VyXEltYXBcRXhjZXB0aW9uXE1lc3NhZ2VNb3ZlRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIG1vdmUoJG51bWJlcnMsIE1haWxib3hJbnRlcmZhY2UgJG1haWxib3gpOiB2b2lkCisgICAgeworICAgICAgICBpZiAoIVxpbWFwX21haWxfbW92ZSgkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkdGhpcy0+cHJlcGFyZU1lc3NhZ2VJZHMoJG51bWJlcnMpLCAkbWFpbGJveC0+Z2V0RW5jb2RlZE5hbWUoKSwgXENQX1VJRCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNZXNzYWdlTW92ZUV4Y2VwdGlvbihcc3ByaW50ZignTWVzc2FnZXMgY2Fubm90IGJlIG1vdmVkIHRvICIlcyInLCAkbWFpbGJveC0+Z2V0TmFtZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWxrIGNvcHkgbWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXl8TWVzc2FnZUl0ZXJhdG9yfHN0cmluZyAkbnVtYmVycyBNZXNzYWdlIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gTWFpbGJveEludGVyZmFjZSAgICAgICAgICAgICAkbWFpbGJveCBEZXN0aW5hdGlvbiBNYWlsYm94IHRvIGNvcHkgdGhlIG1lc3NhZ2VzIHRvCisgICAgICoKKyAgICAgKiBAdGhyb3dzIFxEZGVib2VyXEltYXBcRXhjZXB0aW9uXE1lc3NhZ2VDb3B5RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNvcHkoJG51bWJlcnMsIE1haWxib3hJbnRlcmZhY2UgJG1haWxib3gpOiB2b2lkCisgICAgeworICAgICAgICBpZiAoIVxpbWFwX21haWxfY29weSgkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAkdGhpcy0+cHJlcGFyZU1lc3NhZ2VJZHMoJG51bWJlcnMpLCAkbWFpbGJveC0+Z2V0RW5jb2RlZE5hbWUoKSwgXENQX1VJRCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNZXNzYWdlQ29weUV4Y2VwdGlvbihcc3ByaW50ZignTWVzc2FnZXMgY2Fubm90IGJlIGNvcGllZCB0byAiJXMiJywgJG1haWxib3gtPmdldE5hbWUoKSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJlcGFyZSBtZXNzYWdlIGlkcyBmb3IgdGhlIHVzZSB3aXRoIGJ1bGsgZnVuY3Rpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5fE1lc3NhZ2VJdGVyYXRvcnxzdHJpbmcgJG1lc3NhZ2VJZHMgTWVzc2FnZSBudW1iZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBwcmVwYXJlTWVzc2FnZUlkcygkbWVzc2FnZUlkcyk6IHN0cmluZworICAgIHsKKyAgICAgICAgaWYgKCRtZXNzYWdlSWRzIGluc3RhbmNlb2YgTWVzc2FnZUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAkbWVzc2FnZUlkcyA9ICRtZXNzYWdlSWRzLT5nZXRBcnJheUNvcHkoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChcaXNfYXJyYXkoJG1lc3NhZ2VJZHMpKSB7CisgICAgICAgICAgICAkbWVzc2FnZUlkcyA9IFxpbXBsb2RlKCcsJywgJG1lc3NhZ2VJZHMpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRtZXNzYWdlSWRzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01haWxib3hJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWFpbGJveEludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZlNDMyZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01haWxib3hJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMTE2IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKwordXNlIERhdGVUaW1lSW50ZXJmYWNlOwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIEFuIElNQVAgbWFpbGJveCAoY29tbW9ubHkgcmVmZXJyZWQgdG8gYXMgYSAnZm9sZGVyJykuCisgKi8KK2ludGVyZmFjZSBNYWlsYm94SW50ZXJmYWNlIGV4dGVuZHMgXENvdW50YWJsZSwgXEl0ZXJhdG9yQWdncmVnYXRlCit7CisgICAgLyoqCisgICAgICogR2V0IG1haWxib3ggZGVjb2RlZCBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXROYW1lKCk6IHN0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBtYWlsYm94IGVuY29kZWQgcGF0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW5jb2RlZE5hbWUoKTogc3RyaW5nOworCisgICAgLyoqCisgICAgICogR2V0IG1haWxib3ggZW5jb2RlZCBmdWxsIG5hbWUuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEZ1bGxFbmNvZGVkTmFtZSgpOiBzdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWFpbGJveCBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdHRyaWJ1dGVzKCk6IGludDsKKworICAgIC8qKgorICAgICAqIEdldCBtYWlsYm94IGRlbGltaXRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGVsaW1pdGVyKCk6IHN0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBNYWlsYm94IHN0YXR1cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3RhdHVzKGludCAkZmxhZ3MgPSBudWxsKTogXHN0ZENsYXNzOworCisgICAgLyoqCisgICAgICogQnVsayBTZXQgRmxhZyBmb3IgTWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAkZmxhZyAgICBcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnQKKyAgICAgKiBAcGFyYW0gYXJyYXl8TWVzc2FnZUl0ZXJhdG9yfHN0cmluZyAkbnVtYmVycyBNZXNzYWdlIG51bWJlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RmxhZyhzdHJpbmcgJGZsYWcsICRudW1iZXJzKTogYm9vbDsKKworICAgIC8qKgorICAgICAqIEJ1bGsgQ2xlYXIgRmxhZyBmb3IgTWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAkZmxhZyAgICBcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnQKKyAgICAgKiBAcGFyYW0gYXJyYXl8TWVzc2FnZUl0ZXJhdG9yfHN0cmluZyAkbnVtYmVycyBNZXNzYWdlIG51bWJlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJGbGFnKHN0cmluZyAkZmxhZywgJG51bWJlcnMpOiBib29sOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgaWRzLgorICAgICAqCisgICAgICogQHBhcmFtIENvbmRpdGlvbkludGVyZmFjZSAkc2VhcmNoIFNlYXJjaCBleHByZXNzaW9uIChvcHRpb25hbCkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWVzc2FnZXMoQ29uZGl0aW9uSW50ZXJmYWNlICRzZWFyY2ggPSBudWxsLCBpbnQgJHNvcnRDcml0ZXJpYSA9IG51bGwsIGJvb2wgJGRlc2NlbmRpbmcgPSBmYWxzZSwgc3RyaW5nICRjaGFyc2V0ID0gbnVsbCk6IE1lc3NhZ2VJdGVyYXRvckludGVyZmFjZTsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGl0ZXJhdG9yIGZvciBhIHNlcXVlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc2VxdWVuY2UgTWVzc2FnZSBudW1iZXJzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE1lc3NhZ2VTZXF1ZW5jZShzdHJpbmcgJHNlcXVlbmNlKTogTWVzc2FnZUl0ZXJhdG9ySW50ZXJmYWNlOworCisgICAgLyoqCisgICAgICogR2V0IGEgbWVzc2FnZSBieSBtZXNzYWdlIG51bWJlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnQgJG51bWJlciBNZXNzYWdlIG51bWJlcgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNZXNzYWdlKGludCAkbnVtYmVyKTogTWVzc2FnZUludGVyZmFjZTsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlcyBpbiB0aGlzIG1haWxib3guCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEl0ZXJhdG9yKCk6IE1lc3NhZ2VJdGVyYXRvckludGVyZmFjZTsKKworICAgIC8qKgorICAgICAqIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIG1haWxib3guCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZE1lc3NhZ2Uoc3RyaW5nICRtZXNzYWdlLCBzdHJpbmcgJG9wdGlvbnMgPSBudWxsLCBEYXRlVGltZUludGVyZmFjZSAkaW50ZXJuYWxEYXRlID0gbnVsbCk6IGJvb2w7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdHJlZSBvZiB0aHJlYWRlZCBtZXNzYWdlIGZvciB0aGUgY3VycmVudCBNYWlsYm94LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaHJlYWQoKTogYXJyYXk7CisKKyAgICAvKioKKyAgICAgKiBCdWxrIG1vdmUgbWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXl8TWVzc2FnZUl0ZXJhdG9yfHN0cmluZyAkbnVtYmVycyBNZXNzYWdlIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gTWFpbGJveEludGVyZmFjZSAgICAgICAgICAgICAkbWFpbGJveCBEZXN0aW5hdGlvbiBNYWlsYm94IHRvIG1vdmUgdGhlIG1lc3NhZ2VzIHRvCisgICAgICoKKyAgICAgKiBAdGhyb3dzIFxEZGVib2VyXEltYXBcRXhjZXB0aW9uXE1lc3NhZ2VNb3ZlRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIG1vdmUoJG51bWJlcnMsIHNlbGYgJG1haWxib3gpOiB2b2lkOworCisgICAgLyoqCisgICAgICogQnVsayBjb3B5IG1lc3NhZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5fE1lc3NhZ2VJdGVyYXRvcnxzdHJpbmcgJG51bWJlcnMgTWVzc2FnZSBudW1iZXJzCisgICAgICogQHBhcmFtIE1haWxib3hJbnRlcmZhY2UgICAgICAgICAgICAgJG1haWxib3ggRGVzdGluYXRpb24gTWFpbGJveCB0byBjb3B5IHRoZSBtZXNzYWdlcyB0bworICAgICAqCisgICAgICogQHRocm93cyBcRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxNZXNzYWdlQ29weUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5KCRudW1iZXJzLCBzZWxmICRtYWlsYm94KTogdm9pZDsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I1MDc3NwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UucGhwCkBAIC0wLDAgKzEsMzU1IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW1hcEZldGNoaGVhZGVyRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW52YWxpZEhlYWRlcnNFeGNlcHRpb247Cit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxNZXNzYWdlQ29weUV4Y2VwdGlvbjsKK3VzZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uXE1lc3NhZ2VEZWxldGVFeGNlcHRpb247Cit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxNZXNzYWdlRG9lc05vdEV4aXN0RXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cTWVzc2FnZU1vdmVFeGNlcHRpb247Cit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxNZXNzYWdlU3RydWN0dXJlRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cTWVzc2FnZVVuZGVsZXRlRXhjZXB0aW9uOworCisvKioKKyAqIEFuIElNQVAgbWVzc2FnZSAoZS1tYWlsKS4KKyAqLworZmluYWwgY2xhc3MgTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VcQWJzdHJhY3RNZXNzYWdlIGltcGxlbWVudHMgTWVzc2FnZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgYm9vbAorICAgICAqLworICAgIHByaXZhdGUgJG1lc3NhZ2VOdW1iZXJWZXJpZmllZCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBwcml2YXRlICRpbWFwTXNnTm8gPSAwOworCisgICAgLyoqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHJpdmF0ZSAkc3RydWN0dXJlTG9hZGVkID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8TWVzc2FnZVxIZWFkZXJzCisgICAgICovCisgICAgcHJpdmF0ZSAkaGVhZGVyczsKKworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICRyYXdIZWFkZXJzOworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJHJhd01lc3NhZ2U7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBJbWFwUmVzb3VyY2VJbnRlcmZhY2UgJHJlc291cmNlICAgICAgSU1BUCByZXNvdXJjZQorICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2VOdW1iZXIgTWVzc2FnZSBudW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSW1hcFJlc291cmNlSW50ZXJmYWNlICRyZXNvdXJjZSwgaW50ICRtZXNzYWdlTnVtYmVyKQorICAgIHsKKyAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkcmVzb3VyY2UsICRtZXNzYWdlTnVtYmVyLCAnMScsIG5ldyBcc3RkQ2xhc3MoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTGF6eSBsb2FkIHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbGF6eUxvYWRTdHJ1Y3R1cmUoKTogdm9pZAorICAgIHsKKyAgICAgICAgaWYgKHRydWUgPT09ICR0aGlzLT5zdHJ1Y3R1cmVMb2FkZWQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+c3RydWN0dXJlTG9hZGVkID0gdHJ1ZTsKKworICAgICAgICAkbWVzc2FnZU51bWJlciA9ICR0aGlzLT5nZXROdW1iZXIoKTsKKworICAgICAgICAkZXJyb3JNZXNzYWdlID0gbnVsbDsKKyAgICAgICAgJGVycm9yTnVtYmVyICA9IDA7CisgICAgICAgIFxzZXRfZXJyb3JfaGFuZGxlcihzdGF0aWMgZnVuY3Rpb24gKCRuciwgJG1lc3NhZ2UpIHVzZSAoJiRlcnJvck1lc3NhZ2UsICYkZXJyb3JOdW1iZXIpOiBib29sIHsKKyAgICAgICAgICAgICRlcnJvck1lc3NhZ2UgPSAkbWVzc2FnZTsKKyAgICAgICAgICAgICRlcnJvck51bWJlciA9ICRucjsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0pOworCisgICAgICAgICRzdHJ1Y3R1cmUgPSBcaW1hcF9mZXRjaHN0cnVjdHVyZSgKKyAgICAgICAgICAgICR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksCisgICAgICAgICAgICAkbWVzc2FnZU51bWJlciwKKyAgICAgICAgICAgIFxGVF9VSUQKKyAgICAgICAgKTsKKworICAgICAgICBccmVzdG9yZV9lcnJvcl9oYW5kbGVyKCk7CisKKyAgICAgICAgaWYgKCEkc3RydWN0dXJlIGluc3RhbmNlb2YgXHN0ZENsYXNzKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWVzc2FnZVN0cnVjdHVyZUV4Y2VwdGlvbihcc3ByaW50ZigKKyAgICAgICAgICAgICAgICAnTWVzc2FnZSAiJXMiIHN0cnVjdHVyZSBpcyBlbXB0eTogJXMnLAorICAgICAgICAgICAgICAgICRtZXNzYWdlTnVtYmVyLAorICAgICAgICAgICAgICAgICRlcnJvck1lc3NhZ2UKKyAgICAgICAgICAgICksICRlcnJvck51bWJlcik7CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+c2V0U3RydWN0dXJlKCRzdHJ1Y3R1cmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVuc3VyZSBtZXNzYWdlIGV4aXN0cy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXNzZXJ0TWVzc2FnZUV4aXN0cyhpbnQgJG1lc3NhZ2VOdW1iZXIpOiB2b2lkCisgICAgeworICAgICAgICBpZiAodHJ1ZSA9PT0gJHRoaXMtPm1lc3NhZ2VOdW1iZXJWZXJpZmllZCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5tZXNzYWdlTnVtYmVyVmVyaWZpZWQgPSB0cnVlOworCisgICAgICAgICRtc2dubyA9IFxpbWFwX21zZ25vKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksICRtZXNzYWdlTnVtYmVyKTsKKyAgICAgICAgaWYgKFxpc19udW1lcmljKCRtc2dubykgJiYgJG1zZ25vID4gMCkgeworICAgICAgICAgICAgJHRoaXMtPmltYXBNc2dObyA9ICRtc2dubzsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhyb3cgbmV3IE1lc3NhZ2VEb2VzTm90RXhpc3RFeGNlcHRpb24oXHNwcmludGYoCisgICAgICAgICAgICAnTWVzc2FnZSAiJXMiIGRvZXMgbm90IGV4aXN0JywKKyAgICAgICAgICAgICRtZXNzYWdlTnVtYmVyCisgICAgICAgICkpOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0TXNnTm8oKTogaW50CisgICAgeworICAgICAgICAvLyBUcmlnZ2VycyBhc3NlcnRNZXNzYWdlRXhpc3RzKCkKKyAgICAgICAgJHRoaXMtPmdldE51bWJlcigpOworCisgICAgICAgIHJldHVybiAkdGhpcy0+aW1hcE1zZ05vOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCByYXcgbWVzc2FnZSBoZWFkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSYXdIZWFkZXJzKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgaWYgKG51bGwgPT09ICR0aGlzLT5yYXdIZWFkZXJzKSB7CisgICAgICAgICAgICAkcmF3SGVhZGVycyA9IFxpbWFwX2ZldGNoaGVhZGVyKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksICR0aGlzLT5nZXROdW1iZXIoKSwgXEZUX1VJRCk7CisKKyAgICAgICAgICAgIGlmIChmYWxzZSA9PT0gJHJhd0hlYWRlcnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW1hcEZldGNoaGVhZGVyRXhjZXB0aW9uKCdpbWFwX2ZldGNoaGVhZGVyIGZhaWxlZCcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkdGhpcy0+cmF3SGVhZGVycyA9ICRyYXdIZWFkZXJzOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yYXdIZWFkZXJzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcmF3IG1lc3NhZ2UsIGluY2x1ZGluZyBhbGwgaGVhZGVycywgcGFydHMsIGV0Yy4gdW5lbmNvZGVkIGFuZCB1bnBhcnNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSByYXcgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSYXdNZXNzYWdlKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgaWYgKG51bGwgPT09ICR0aGlzLT5yYXdNZXNzYWdlKSB7CisgICAgICAgICAgICAkdGhpcy0+cmF3TWVzc2FnZSA9ICR0aGlzLT5kb0dldENvbnRlbnQoJycpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yYXdNZXNzYWdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGhlYWRlcnMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEhlYWRlcnMoKTogTWVzc2FnZVxIZWFkZXJzCisgICAgeworICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPmhlYWRlcnMpIHsKKyAgICAgICAgICAgIC8vIGltYXBfaGVhZGVyaW5mbyBpcyBtdWNoIGZhc3RlciB0aGFuIGltYXBfZmV0Y2hoZWFkZXIKKyAgICAgICAgICAgIC8vIGltYXBfaGVhZGVyaW5mbyByZXR1cm5zIG9ubHkgYSBzdWJzZXQgb2YgYWxsIG1haWwgaGVhZGVycywKKyAgICAgICAgICAgIC8vIGJ1dCBpdCBkb2VzIGluY2x1ZGUgdGhlIG1lc3NhZ2UgZmxhZ3MuCisgICAgICAgICAgICAkaGVhZGVycyA9IFxpbWFwX2hlYWRlcmluZm8oJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSwgJHRoaXMtPmdldE1zZ05vKCkpOworICAgICAgICAgICAgaWYgKGZhbHNlID09PSAkaGVhZGVycykgeworICAgICAgICAgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2RkZWJvZXIvaW1hcC9pc3N1ZXMvMzU4CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRIZWFkZXJzRXhjZXB0aW9uKFxzcHJpbnRmKCdNZXNzYWdlICIlcyIgaGFzIGludmFsaWQgaGVhZGVycycsICR0aGlzLT5nZXROdW1iZXIoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJHRoaXMtPmhlYWRlcnMgPSBuZXcgTWVzc2FnZVxIZWFkZXJzKCRoZWFkZXJzKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+aGVhZGVyczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhcm1lc3NhZ2UgaGVhZGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGNsZWFySGVhZGVycygpOiB2b2lkCisgICAgeworICAgICAgICAkdGhpcy0+aGVhZGVycyA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgcmVjZW50IGZsYWcgdmFsdWUgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzUmVjZW50KCk6ID9zdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0SGVhZGVycygpLT5nZXQoJ3JlY2VudCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIHVuc2VlbiBmbGFnIHZhbHVlIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1Vuc2VlbigpOiBib29sCisgICAgeworICAgICAgICByZXR1cm4gJ1UnID09PSAkdGhpcy0+Z2V0SGVhZGVycygpLT5nZXQoJ3Vuc2VlbicpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGZsYWdnZWQgZmxhZyB2YWx1ZSAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNGbGFnZ2VkKCk6IGJvb2wKKyAgICB7CisgICAgICAgIHJldHVybiAnRicgPT09ICR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgnZmxhZ2dlZCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGFuc3dlcmVkIGZsYWcgdmFsdWUgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzQW5zd2VyZWQoKTogYm9vbAorICAgIHsKKyAgICAgICAgcmV0dXJuICdBJyA9PT0gJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdhbnN3ZXJlZCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGRlbGV0ZWQgZmxhZyB2YWx1ZSAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNEZWxldGVkKCk6IGJvb2wKKyAgICB7CisgICAgICAgIHJldHVybiAnRCcgPT09ICR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgnZGVsZXRlZCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGRyYWZ0IGZsYWcgdmFsdWUgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzRHJhZnQoKTogYm9vbAorICAgIHsKKyAgICAgICAgcmV0dXJuICdYJyA9PT0gJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdkcmFmdCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhcyB0aGUgbWVzc2FnZSBiZWVuIG1hcmtlZCBhcyByZWFkPworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1NlZW4oKTogYm9vbAorICAgIHsKKyAgICAgICAgcmV0dXJuICdOJyAhPT0gJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdyZWNlbnQnKSAmJiAnVScgIT09ICR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgndW5zZWVuJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFyayBtZXNzYWdlIGFzIHNlZW4uCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDEuMSwgdG8gYmUgcmVtb3ZlZCBpbiAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gbWFza0FzU2VlbigpOiBib29sCisgICAgeworICAgICAgICBcdHJpZ2dlcl9lcnJvcihcc3ByaW50ZignJXMgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDIuMC4gVXNlICVzOjptYXJrQXNTZWVuIGluc3RlYWQuJywgX19NRVRIT0RfXywgX19DTEFTU19fKSwgXEVfVVNFUl9ERVBSRUNBVEVEKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPm1hcmtBc1NlZW4oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXJrIG1lc3NhZ2UgYXMgc2Vlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gbWFya0FzU2VlbigpOiBib29sCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNldEZsYWcoJ1xcU2VlbicpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vdmUgbWVzc2FnZSB0byBhbm90aGVyIG1haWxib3guCisgICAgICoKKyAgICAgKiBAdGhyb3dzIE1lc3NhZ2VDb3B5RXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNvcHkoTWFpbGJveEludGVyZmFjZSAkbWFpbGJveCk6IHZvaWQKKyAgICB7CisgICAgICAgIC8vICdkZWxldGVkJyBoZWFkZXIgY2hhbmdlZCwgZm9yY2UgdG8gcmVsb2FkIGhlYWRlcnMsIHdvdWxkIGJlIGJldHRlciB0byBzZXQgZGVsZXRlZCBmbGFnIHRvIHRydWUgb24gaGVhZGVyCisgICAgICAgICR0aGlzLT5jbGVhckhlYWRlcnMoKTsKKworICAgICAgICBpZiAoIVxpbWFwX21haWxfY29weSgkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLCAoc3RyaW5nKSAkdGhpcy0+Z2V0TnVtYmVyKCksICRtYWlsYm94LT5nZXRFbmNvZGVkTmFtZSgpLCBcQ1BfVUlEKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1lc3NhZ2VDb3B5RXhjZXB0aW9uKFxzcHJpbnRmKCdNZXNzYWdlICIlcyIgY2Fubm90IGJlIGNvcGllZCB0byAiJXMiJywgJHRoaXMtPmdldE51bWJlcigpLCAkbWFpbGJveC0+Z2V0TmFtZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3ZlIG1lc3NhZ2UgdG8gYW5vdGhlciBtYWlsYm94LgorICAgICAqCisgICAgICogQHRocm93cyBNZXNzYWdlTW92ZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBtb3ZlKE1haWxib3hJbnRlcmZhY2UgJG1haWxib3gpOiB2b2lkCisgICAgeworICAgICAgICAvLyAnZGVsZXRlZCcgaGVhZGVyIGNoYW5nZWQsIGZvcmNlIHRvIHJlbG9hZCBoZWFkZXJzLCB3b3VsZCBiZSBiZXR0ZXIgdG8gc2V0IGRlbGV0ZWQgZmxhZyB0byB0cnVlIG9uIGhlYWRlcgorICAgICAgICAkdGhpcy0+Y2xlYXJIZWFkZXJzKCk7CisKKyAgICAgICAgaWYgKCFcaW1hcF9tYWlsX21vdmUoJHRoaXMtPnJlc291cmNlLT5nZXRTdHJlYW0oKSwgKHN0cmluZykgJHRoaXMtPmdldE51bWJlcigpLCAkbWFpbGJveC0+Z2V0RW5jb2RlZE5hbWUoKSwgXENQX1VJRCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNZXNzYWdlTW92ZUV4Y2VwdGlvbihcc3ByaW50ZignTWVzc2FnZSAiJXMiIGNhbm5vdCBiZSBtb3ZlZCB0byAiJXMiJywgJHRoaXMtPmdldE51bWJlcigpLCAkbWFpbGJveC0+Z2V0TmFtZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWxldGUgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgTWVzc2FnZURlbGV0ZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoKTogdm9pZAorICAgIHsKKyAgICAgICAgLy8gJ2RlbGV0ZWQnIGhlYWRlciBjaGFuZ2VkLCBmb3JjZSB0byByZWxvYWQgaGVhZGVycywgd291bGQgYmUgYmV0dGVyIHRvIHNldCBkZWxldGVkIGZsYWcgdG8gdHJ1ZSBvbiBoZWFkZXIKKyAgICAgICAgJHRoaXMtPmNsZWFySGVhZGVycygpOworCisgICAgICAgIGlmICghXGltYXBfZGVsZXRlKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksICR0aGlzLT5nZXROdW1iZXIoKSwgXEZUX1VJRCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNZXNzYWdlRGVsZXRlRXhjZXB0aW9uKFxzcHJpbnRmKCdNZXNzYWdlICIlcyIgY2Fubm90IGJlIGRlbGV0ZWQnLCAkdGhpcy0+Z2V0TnVtYmVyKCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVuZGVsZXRlIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIE1lc3NhZ2VVbmRlbGV0ZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB1bmRlbGV0ZSgpOiB2b2lkCisgICAgeworICAgICAgICAvLyAnZGVsZXRlZCcgaGVhZGVyIGNoYW5nZWQsIGZvcmNlIHRvIHJlbG9hZCBoZWFkZXJzLCB3b3VsZCBiZSBiZXR0ZXIgdG8gc2V0IGRlbGV0ZWQgZmxhZyB0byBmYWxzZSBvbiBoZWFkZXIKKyAgICAgICAgJHRoaXMtPmNsZWFySGVhZGVycygpOworICAgICAgICBpZiAoIVxpbWFwX3VuZGVsZXRlKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksICR0aGlzLT5nZXROdW1iZXIoKSwgXEZUX1VJRCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNZXNzYWdlVW5kZWxldGVFeGNlcHRpb24oXHNwcmludGYoJ01lc3NhZ2UgIiVzIiBjYW5ub3QgYmUgdW5kZWxldGVkJywgJHRoaXMtPmdldE51bWJlcigpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgRmxhZyBNZXNzYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZmxhZyBcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RmxhZyhzdHJpbmcgJGZsYWcpOiBib29sCisgICAgeworICAgICAgICAkcmVzdWx0ID0gXGltYXBfc2V0ZmxhZ19mdWxsKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksIChzdHJpbmcpICR0aGlzLT5nZXROdW1iZXIoKSwgJGZsYWcsIFxTVF9VSUQpOworCisgICAgICAgICR0aGlzLT5jbGVhckhlYWRlcnMoKTsKKworICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciBGbGFnIE1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRmbGFnIFxTZWVuLCBcQW5zd2VyZWQsIFxGbGFnZ2VkLCBcRGVsZXRlZCwgYW5kIFxEcmFmdAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckZsYWcoc3RyaW5nICRmbGFnKTogYm9vbAorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9IFxpbWFwX2NsZWFyZmxhZ19mdWxsKCR0aGlzLT5yZXNvdXJjZS0+Z2V0U3RyZWFtKCksIChzdHJpbmcpICR0aGlzLT5nZXROdW1iZXIoKSwgJGZsYWcsIFxTVF9VSUQpOworCisgICAgICAgICR0aGlzLT5jbGVhckhlYWRlcnMoKTsKKworICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0Fic3RyYWN0TWVzc2FnZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0Fic3RyYWN0TWVzc2FnZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE4N2MzOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvQWJzdHJhY3RNZXNzYWdlLnBocApAQCAtMCwwICsxLDI2NiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcTWVzc2FnZTsKKwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW52YWxpZERhdGVIZWFkZXJFeGNlcHRpb247CisKK2Fic3RyYWN0IGNsYXNzIEFic3RyYWN0TWVzc2FnZSBleHRlbmRzIEFic3RyYWN0UGFydAoreworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxhcnJheQorICAgICAqLworICAgIHByaXZhdGUgJGF0dGFjaG1lbnRzOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgaGVhZGVycy4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0SGVhZGVycygpOiBIZWFkZXJzOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgaWQuCisgICAgICoKKyAgICAgKiBBIHVuaXF1ZSBtZXNzYWdlIGlkIGluIHRoZSBmb3JtIDwuLi4+CisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldElkKCk6ID9zdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0SGVhZGVycygpLT5nZXQoJ21lc3NhZ2VfaWQnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBzZW5kZXIgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldEZyb20oKTogP0VtYWlsQWRkcmVzcworICAgIHsKKyAgICAgICAgJGZyb20gPSAkdGhpcy0+Z2V0SGVhZGVycygpLT5nZXQoJ2Zyb20nKTsKKworICAgICAgICByZXR1cm4gbnVsbCAhPT0gJGZyb20gPyAkdGhpcy0+ZGVjb2RlRW1haWxBZGRyZXNzKCRmcm9tWzBdKSA6IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IFRvIHJlY2lwaWVudHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEVtYWlsQWRkcmVzc1tdIEVtcHR5IGFycmF5IGluIGNhc2UgbWVzc2FnZSBoYXMgbm8gVG86IHJlY2lwaWVudHMKKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0VG8oKTogYXJyYXkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZGVjb2RlRW1haWxBZGRyZXNzZXMoJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCd0bycpID86IFtdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgQ2MgcmVjaXBpZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gRW1haWxBZGRyZXNzW10gRW1wdHkgYXJyYXkgaW4gY2FzZSBtZXNzYWdlIGhhcyBubyBDQzogcmVjaXBpZW50cworICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRDYygpOiBhcnJheQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5kZWNvZGVFbWFpbEFkZHJlc3NlcygkdGhpcy0+Z2V0SGVhZGVycygpLT5nZXQoJ2NjJykgPzogW10pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBCY2MgcmVjaXBpZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gRW1haWxBZGRyZXNzW10gRW1wdHkgYXJyYXkgaW4gY2FzZSBtZXNzYWdlIGhhcyBubyBCQ0M6IHJlY2lwaWVudHMKKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0QmNjKCk6IGFycmF5CisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmRlY29kZUVtYWlsQWRkcmVzc2VzKCR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgnYmNjJykgPzogW10pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBSZXBseS1UbyByZWNpcGllbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBFbWFpbEFkZHJlc3NbXSBFbXB0eSBhcnJheSBpbiBjYXNlIG1lc3NhZ2UgaGFzIG5vIFJlcGx5LVRvOiByZWNpcGllbnRzCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldFJlcGx5VG8oKTogYXJyYXkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZGVjb2RlRW1haWxBZGRyZXNzZXMoJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdyZXBseV90bycpID86IFtdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgU2VuZGVyLgorICAgICAqCisgICAgICogQHJldHVybiBFbWFpbEFkZHJlc3NbXSBFbXB0eSBhcnJheSBpbiBjYXNlIG1lc3NhZ2UgaGFzIG5vIFNlbmRlcjogcmVjaXBpZW50cworICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRTZW5kZXIoKTogYXJyYXkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZGVjb2RlRW1haWxBZGRyZXNzZXMoJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdzZW5kZXInKSA/OiBbXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IFJldHVybi1QYXRoLgorICAgICAqCisgICAgICogQHJldHVybiBFbWFpbEFkZHJlc3NbXSBFbXB0eSBhcnJheSBpbiBjYXNlIG1lc3NhZ2UgaGFzIG5vIFJldHVybi1QYXRoOiByZWNpcGllbnRzCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldFJldHVyblBhdGgoKTogYXJyYXkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZGVjb2RlRW1haWxBZGRyZXNzZXMoJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdyZXR1cm5fcGF0aCcpID86IFtdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGF0ZSAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0RGF0ZSgpOiA/XERhdGVUaW1lSW1tdXRhYmxlCisgICAgeworICAgICAgICAvKiogQHZhciBudWxsfHN0cmluZyAkZGF0ZUhlYWRlciAqLworICAgICAgICAkZGF0ZUhlYWRlciA9ICR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgnZGF0ZScpOworICAgICAgICBpZiAobnVsbCA9PT0gJGRhdGVIZWFkZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgJGFsdGVyZWRWYWx1ZSA9ICRkYXRlSGVhZGVyOworICAgICAgICAkYWx0ZXJlZFZhbHVlID0gXHN0cl9yZXBsYWNlKCcsJywgJycsICRhbHRlcmVkVmFsdWUpOworICAgICAgICAkYWx0ZXJlZFZhbHVlID0gKHN0cmluZykgXHByZWdfcmVwbGFjZSgnL15bYS16QS1aXSsgPy8nLCAnJywgJGFsdGVyZWRWYWx1ZSk7CisgICAgICAgICRhbHRlcmVkVmFsdWUgPSAoc3RyaW5nKSBccHJlZ19yZXBsYWNlKCcvXCguKlwpLycsICcnLCAkYWx0ZXJlZFZhbHVlKTsKKyAgICAgICAgJGFsdGVyZWRWYWx1ZSA9IChzdHJpbmcpIFxwcmVnX3JlcGxhY2UoJy9cYlVUXGIvJywgJ1VUQycsICRhbHRlcmVkVmFsdWUpOworICAgICAgICBpZiAoMCA9PT0gXHByZWdfbWF0Y2goJy9cZFxkOlxkXGQ6XGRcZC4qIFtcK1wtXVxkXGQ6P1xkXGQvJywgJGFsdGVyZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgICRhbHRlcmVkVmFsdWUgLj0gJyArMDAwMCc7CisgICAgICAgIH0KKyAgICAgICAgLy8gSGFuZGxlIG51bWVyaWMgbW9udGhzCisgICAgICAgICRhbHRlcmVkVmFsdWUgPSAoc3RyaW5nKSBccHJlZ19yZXBsYWNlKCcvXihcZFxkKSAoXGRcZCkgKFxkXGQoPzpcZFxkKT8pIC8nLCAnJDMtJDItJDEgJywgJGFsdGVyZWRWYWx1ZSk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICRkYXRlID0gbmV3IFxEYXRlVGltZUltbXV0YWJsZSgkYWx0ZXJlZFZhbHVlKTsKKyAgICAgICAgfSBjYXRjaCAoXFRocm93YWJsZSAkZXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkRGF0ZUhlYWRlckV4Y2VwdGlvbihcc3ByaW50ZignSW52YWxpZCBEYXRlIGhlYWRlciBmb3VuZDogIiVzIicsICRkYXRlSGVhZGVyKSwgMCwgJGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkZGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBzaXplIChmcm9tIGhlYWRlcnMpLgorICAgICAqCisgICAgICogQHJldHVybiBudWxsfGludHxzdHJpbmcKKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0U2l6ZSgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdzaXplJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2Ugc3ViamVjdCAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0U3ViamVjdCgpOiA/c3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmdldEhlYWRlcnMoKS0+Z2V0KCdzdWJqZWN0Jyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgSW4tUmVwbHktVG8gKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldEluUmVwbHlUbygpOiBhcnJheQorICAgIHsKKyAgICAgICAgJGluUmVwbHlUbyA9ICR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgnaW5fcmVwbHlfdG8nKTsKKworICAgICAgICByZXR1cm4gbnVsbCAhPT0gJGluUmVwbHlUbyA/IFxleHBsb2RlKCcgJywgJGluUmVwbHlUbykgOiBbXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBSZWZlcmVuY2VzIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWZlcmVuY2VzKCk6IGFycmF5CisgICAgeworICAgICAgICAkcmVmZXJlbmNlcyA9ICR0aGlzLT5nZXRIZWFkZXJzKCktPmdldCgncmVmZXJlbmNlcycpOworCisgICAgICAgIHJldHVybiBudWxsICE9PSAkcmVmZXJlbmNlcyA/IFxleHBsb2RlKCcgJywgJHJlZmVyZW5jZXMpIDogW107CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGJvZHkgSFRNTC4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0Qm9keUh0bWwoKTogP3N0cmluZworICAgIHsKKyAgICAgICAgJGl0ZXJhdG9yID0gbmV3IFxSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKCR0aGlzLCBcUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6U0VMRl9GSVJTVCk7CisgICAgICAgIGZvcmVhY2ggKCRpdGVyYXRvciBhcyAkcGFydCkgeworICAgICAgICAgICAgaWYgKHNlbGY6OlNVQlRZUEVfSFRNTCA9PT0gJHBhcnQtPmdldFN1YnR5cGUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAkcGFydC0+Z2V0RGVjb2RlZENvbnRlbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIG1lc3NhZ2UgaGFzIG5vIHBhcnRzIGFuZCBpcyBIVE1MLCByZXR1cm4gY29udGVudCBvZiBtZXNzYWdlIGl0c2VsZi4KKyAgICAgICAgaWYgKHNlbGY6OlNVQlRZUEVfSFRNTCA9PT0gJHRoaXMtPmdldFN1YnR5cGUoKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5nZXREZWNvZGVkQ29udGVudCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGJvZHkgdGV4dC4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0Qm9keVRleHQoKTogP3N0cmluZworICAgIHsKKyAgICAgICAgJGl0ZXJhdG9yID0gbmV3IFxSZWN1cnNpdmVJdGVyYXRvckl0ZXJhdG9yKCR0aGlzLCBcUmVjdXJzaXZlSXRlcmF0b3JJdGVyYXRvcjo6U0VMRl9GSVJTVCk7CisgICAgICAgIGZvcmVhY2ggKCRpdGVyYXRvciBhcyAkcGFydCkgeworICAgICAgICAgICAgaWYgKHNlbGY6OlNVQlRZUEVfUExBSU4gPT09ICRwYXJ0LT5nZXRTdWJ0eXBlKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJHBhcnQtPmdldERlY29kZWRDb250ZW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiBtZXNzYWdlIGhhcyBubyBwYXJ0cywgcmV0dXJuIGNvbnRlbnQgb2YgbWVzc2FnZSBpdHNlbGYuCisgICAgICAgIGlmIChzZWxmOjpTVUJUWVBFX1BMQUlOID09PSAkdGhpcy0+Z2V0U3VidHlwZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmdldERlY29kZWRDb250ZW50KCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYXR0YWNobWVudHMgKGlmIGFueSkgbGlua2VkIHRvIHRoaXMgZS1tYWlsLgorICAgICAqCisgICAgICogQHJldHVybiBBdHRhY2htZW50SW50ZXJmYWNlW10KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudHMoKTogYXJyYXkKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdGhpcy0+YXR0YWNobWVudHMpIHsKKyAgICAgICAgICAgICR0aGlzLT5hdHRhY2htZW50cyA9IHNlbGY6OmdhdGhlckF0dGFjaG1lbnRzKCR0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+YXR0YWNobWVudHM7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZ2F0aGVyQXR0YWNobWVudHMoUGFydEludGVyZmFjZSAkcGFydCk6IGFycmF5CisgICAgeworICAgICAgICAkYXR0YWNobWVudHMgPSBbXTsKKyAgICAgICAgZm9yZWFjaCAoJHBhcnQtPmdldFBhcnRzKCkgYXMgJGNoaWxkUGFydCkgeworICAgICAgICAgICAgaWYgKCRjaGlsZFBhcnQgaW5zdGFuY2VvZiBBdHRhY2htZW50KSB7CisgICAgICAgICAgICAgICAgJGF0dGFjaG1lbnRzW10gPSAkY2hpbGRQYXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCRjaGlsZFBhcnQtPmhhc0NoaWxkcmVuKCkpIHsKKyAgICAgICAgICAgICAgICAkYXR0YWNobWVudHMgPSBcYXJyYXlfbWVyZ2UoJGF0dGFjaG1lbnRzLCBzZWxmOjpnYXRoZXJBdHRhY2htZW50cygkY2hpbGRQYXJ0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGF0dGFjaG1lbnRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgdGhpcyBtZXNzYWdlIGhhdmUgYXR0YWNobWVudHM/CisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGhhc0F0dGFjaG1lbnRzKCk6IGJvb2wKKyAgICB7CisgICAgICAgIHJldHVybiBcY291bnQoJHRoaXMtPmdldEF0dGFjaG1lbnRzKCkpID4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gXHN0ZENsYXNzW10gJGFkZHJlc3NlcworICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gZGVjb2RlRW1haWxBZGRyZXNzZXMoYXJyYXkgJGFkZHJlc3Nlcyk6IGFycmF5CisgICAgeworICAgICAgICAkcmV0dXJuID0gW107CisgICAgICAgIGZvcmVhY2ggKCRhZGRyZXNzZXMgYXMgJGFkZHJlc3MpIHsKKyAgICAgICAgICAgIGlmIChpc3NldCgkYWRkcmVzcy0+bWFpbGJveCkpIHsKKyAgICAgICAgICAgICAgICAkcmV0dXJuW10gPSAkdGhpcy0+ZGVjb2RlRW1haWxBZGRyZXNzKCRhZGRyZXNzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmV0dXJuOworICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZGVjb2RlRW1haWxBZGRyZXNzKFxzdGRDbGFzcyAkdmFsdWUpOiBFbWFpbEFkZHJlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgRW1haWxBZGRyZXNzKCR2YWx1ZS0+bWFpbGJveCwgJHZhbHVlLT5ob3N0LCAkdmFsdWUtPnBlcnNvbmFsKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0Fic3RyYWN0UGFydC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0Fic3RyYWN0UGFydC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIzZjMwMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvQWJzdHJhY3RQYXJ0LnBocApAQCAtMCwwICsxLDU3MiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcTWVzc2FnZTsKKwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cSW1hcEZldGNoYm9keUV4Y2VwdGlvbjsKK3VzZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uXFVuZXhwZWN0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK3VzZSBEZGVib2VyXEltYXBcSW1hcFJlc291cmNlSW50ZXJmYWNlOwordXNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCisvKioKKyAqIEEgbWVzc2FnZSBwYXJ0LgorICovCithYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBhcnQgaW1wbGVtZW50cyBQYXJ0SW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQHZhciBJbWFwUmVzb3VyY2VJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHJlc291cmNlOworCisgICAgLyoqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHJpdmF0ZSAkc3RydWN0dXJlUGFyc2VkID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSAkcGFydHMgPSBbXTsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkcGFydE51bWJlcjsKKworICAgIC8qKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgcHJpdmF0ZSAkbWVzc2FnZU51bWJlcjsKKworICAgIC8qKgorICAgICAqIEB2YXIgXHN0ZENsYXNzCisgICAgICovCisgICAgcHJpdmF0ZSAkc3RydWN0dXJlOworCisgICAgLyoqCisgICAgICogQHZhciBQYXJhbWV0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSAkcGFyYW1ldGVyczsKKworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICR0eXBlOworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJHN1YnR5cGU7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkZW5jb2Rpbmc7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkZGlzcG9zaXRpb247CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkZGVzY3JpcHRpb247CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkYnl0ZXM7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkbGluZXM7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkY29udGVudDsKKworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICRkZWNvZGVkQ29udGVudDsKKworICAgIC8qKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgcHJpdmF0ZSAka2V5ID0gMDsKKworICAgIC8qKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyAkdHlwZXNNYXAgPSBbCisgICAgICAgIFxUWVBFVEVYVCAgICAgICAgPT4gc2VsZjo6VFlQRV9URVhULAorICAgICAgICBcVFlQRU1VTFRJUEFSVCAgID0+IHNlbGY6OlRZUEVfTVVMVElQQVJULAorICAgICAgICBcVFlQRU1FU1NBR0UgICAgID0+IHNlbGY6OlRZUEVfTUVTU0FHRSwKKyAgICAgICAgXFRZUEVBUFBMSUNBVElPTiA9PiBzZWxmOjpUWVBFX0FQUExJQ0FUSU9OLAorICAgICAgICBcVFlQRUFVRElPICAgICAgID0+IHNlbGY6OlRZUEVfQVVESU8sCisgICAgICAgIFxUWVBFSU1BR0UgICAgICAgPT4gc2VsZjo6VFlQRV9JTUFHRSwKKyAgICAgICAgXFRZUEVWSURFTyAgICAgICA9PiBzZWxmOjpUWVBFX1ZJREVPLAorICAgICAgICBcVFlQRU1PREVMICAgICAgID0+IHNlbGY6OlRZUEVfTU9ERUwsCisgICAgICAgIFxUWVBFT1RIRVIgICAgICAgPT4gc2VsZjo6VFlQRV9PVEhFUiwKKyAgICBdOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljICRlbmNvZGluZ3NNYXAgPSBbCisgICAgICAgIFxFTkM3QklUICAgICAgICAgICAgPT4gc2VsZjo6RU5DT0RJTkdfN0JJVCwKKyAgICAgICAgXEVOQzhCSVQgICAgICAgICAgICA9PiBzZWxmOjpFTkNPRElOR184QklULAorICAgICAgICBcRU5DQklOQVJZICAgICAgICAgID0+IHNlbGY6OkVOQ09ESU5HX0JJTkFSWSwKKyAgICAgICAgXEVOQ0JBU0U2NCAgICAgICAgICA9PiBzZWxmOjpFTkNPRElOR19CQVNFNjQsCisgICAgICAgIFxFTkNRVU9URURQUklOVEFCTEUgPT4gc2VsZjo6RU5DT0RJTkdfUVVPVEVEX1BSSU5UQUJMRSwKKyAgICBdOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljICRhdHRhY2htZW50S2V5cyA9IFsKKyAgICAgICAgJ25hbWUnICAgICAgPT4gdHJ1ZSwKKyAgICAgICAgJ2ZpbGVuYW1lJyAgPT4gdHJ1ZSwKKyAgICAgICAgJ25hbWUqJyAgICAgPT4gdHJ1ZSwKKyAgICAgICAgJ2ZpbGVuYW1lKicgPT4gdHJ1ZSwKKyAgICBdOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSW1hcFJlc291cmNlSW50ZXJmYWNlICRyZXNvdXJjZSAgICAgIElNQVAgcmVzb3VyY2UKKyAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgICAgICAgICRtZXNzYWdlTnVtYmVyIE1lc3NhZ2UgbnVtYmVyCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkcGFydE51bWJlciAgICBQYXJ0IG51bWJlcgorICAgICAqIEBwYXJhbSBcc3RkQ2xhc3MgICAgICAgICAgICAgJHN0cnVjdHVyZSAgICAgUGFydCBzdHJ1Y3R1cmUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCisgICAgICAgIEltYXBSZXNvdXJjZUludGVyZmFjZSAkcmVzb3VyY2UsCisgICAgICAgIGludCAkbWVzc2FnZU51bWJlciwKKyAgICAgICAgc3RyaW5nICRwYXJ0TnVtYmVyLAorICAgICAgICBcc3RkQ2xhc3MgJHN0cnVjdHVyZQorICAgICkgeworICAgICAgICAkdGhpcy0+cmVzb3VyY2UgICAgICA9ICRyZXNvdXJjZTsKKyAgICAgICAgJHRoaXMtPm1lc3NhZ2VOdW1iZXIgPSAkbWVzc2FnZU51bWJlcjsKKyAgICAgICAgJHRoaXMtPnBhcnROdW1iZXIgICAgPSAkcGFydE51bWJlcjsKKyAgICAgICAgJHRoaXMtPnNldFN0cnVjdHVyZSgkc3RydWN0dXJlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBudW1iZXIgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldE51bWJlcigpOiBpbnQKKyAgICB7CisgICAgICAgICR0aGlzLT5hc3NlcnRNZXNzYWdlRXhpc3RzKCR0aGlzLT5tZXNzYWdlTnVtYmVyKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPm1lc3NhZ2VOdW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIG1lc3NhZ2UgZXhpc3RzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhc3NlcnRNZXNzYWdlRXhpc3RzKGludCAkbWVzc2FnZU51bWJlcik6IHZvaWQKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIFxzdGRDbGFzcyAkc3RydWN0dXJlIFBhcnQgc3RydWN0dXJlCisgICAgICovCisgICAgZmluYWwgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFN0cnVjdHVyZShcc3RkQ2xhc3MgJHN0cnVjdHVyZSk6IHZvaWQKKyAgICB7CisgICAgICAgICR0aGlzLT5zdHJ1Y3R1cmUgPSAkc3RydWN0dXJlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgc3RydWN0dXJlLgorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRTdHJ1Y3R1cmUoKTogXHN0ZENsYXNzCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eUxvYWRTdHJ1Y3R1cmUoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnN0cnVjdHVyZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMYXp5IGxvYWQgc3RydWN0dXJlLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBsYXp5TG9hZFN0cnVjdHVyZSgpOiB2b2lkCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyYW1ldGVycygpOiBQYXJhbWV0ZXJzCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJhbWV0ZXJzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgY2hhcnNldC4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2hhcnNldCgpOiA/c3RyaW5nCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJhbWV0ZXJzLT5nZXQoJ2NoYXJzZXQnKSA/OiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgdHlwZS4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0VHlwZSgpOiA/c3RyaW5nCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT50eXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgc3VidHlwZS4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0U3VidHlwZSgpOiA/c3RyaW5nCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zdWJ0eXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgZW5jb2RpbmcuCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldEVuY29kaW5nKCk6ID9zdHJpbmcKKyAgICB7CisgICAgICAgICR0aGlzLT5sYXp5UGFyc2VTdHJ1Y3R1cmUoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmVuY29kaW5nOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgZGlzcG9zaXRpb24uCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldERpc3Bvc2l0aW9uKCk6ID9zdHJpbmcKKyAgICB7CisgICAgICAgICR0aGlzLT5sYXp5UGFyc2VTdHJ1Y3R1cmUoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmRpc3Bvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgZGVzY3JpcHRpb24uCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldERlc2NyaXB0aW9uKCk6ID9zdHJpbmcKKyAgICB7CisgICAgICAgICR0aGlzLT5sYXp5UGFyc2VTdHJ1Y3R1cmUoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPmRlc2NyaXB0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnQgYnl0ZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG51bGx8aW50fHN0cmluZworICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRCeXRlcygpCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5ieXRlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJ0IGxpbmVzLgorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRMaW5lcygpOiA/c3RyaW5nCisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5saW5lczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgcmF3IHBhcnQgY29udGVudC4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29udGVudCgpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdGhpcy0+Y29udGVudCkgeworICAgICAgICAgICAgJHRoaXMtPmNvbnRlbnQgPSAkdGhpcy0+ZG9HZXRDb250ZW50KCR0aGlzLT5nZXRDb250ZW50UGFydE51bWJlcigpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+Y29udGVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY29udGVudCBwYXJ0IG51bWJlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0Q29udGVudFBhcnROdW1iZXIoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnBhcnROdW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHBhcnQgbnVtYmVyLgorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRQYXJ0TnVtYmVyKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJ0TnVtYmVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBkZWNvZGVkIHBhcnQgY29udGVudC4KKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gZ2V0RGVjb2RlZENvbnRlbnQoKTogc3RyaW5nCisgICAgeworICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPmRlY29kZWRDb250ZW50KSB7CisgICAgICAgICAgICBpZiAoc2VsZjo6RU5DT0RJTkdfVU5LTk9XTiA9PT0gJHRoaXMtPmdldEVuY29kaW5nKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEVuY29kaW5nRXhjZXB0aW9uKCdDYW5ub3QgZGVjb2RlIGEgY29udGVudCB3aXRoIGFuIHVrbm93biBlbmNvZGluZycpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkY29udGVudCA9ICR0aGlzLT5nZXRDb250ZW50KCk7CisgICAgICAgICAgICBpZiAoc2VsZjo6RU5DT0RJTkdfQkFTRTY0ID09PSAkdGhpcy0+Z2V0RW5jb2RpbmcoKSkgeworICAgICAgICAgICAgICAgICRjb250ZW50ID0gXGJhc2U2NF9kZWNvZGUoJGNvbnRlbnQsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZWlmIChzZWxmOjpFTkNPRElOR19RVU9URURfUFJJTlRBQkxFID09PSAkdGhpcy0+Z2V0RW5jb2RpbmcoKSkgeworICAgICAgICAgICAgICAgICRjb250ZW50ID0gXHF1b3RlZF9wcmludGFibGVfZGVjb2RlKCRjb250ZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZhbHNlID09PSAkY29udGVudCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkRW5jb2RpbmdFeGNlcHRpb24oJ0Nhbm5vdCBkZWNvZGUgY29udGVudCcpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB0aGlzIHBhcnQgaXMgYSB0ZXh0IHBhcnQsIGNvbnZlcnQgaXRzIGNoYXJzZXQgdG8gVVRGLTguCisgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGRlY29kZSBhbiBhdHRhY2htZW50J3MgY2hhcnNldC4KKyAgICAgICAgICAgIGlmICghJHRoaXMgaW5zdGFuY2VvZiBBdHRhY2htZW50ICYmIG51bGwgIT09ICR0aGlzLT5nZXRDaGFyc2V0KCkgJiYgc2VsZjo6VFlQRV9URVhUID09PSAkdGhpcy0+Z2V0VHlwZSgpKSB7CisgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSBUcmFuc2NvZGVyOjpkZWNvZGUoJGNvbnRlbnQsICR0aGlzLT5nZXRDaGFyc2V0KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkdGhpcy0+ZGVjb2RlZENvbnRlbnQgPSAkY29udGVudDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+ZGVjb2RlZENvbnRlbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHJhdyBtZXNzYWdlIGNvbnRlbnQuCisgICAgICovCisgICAgZmluYWwgcHJvdGVjdGVkIGZ1bmN0aW9uIGRvR2V0Q29udGVudChzdHJpbmcgJHBhcnROdW1iZXIpOiBzdHJpbmcKKyAgICB7CisgICAgICAgICRyZXR1cm4gPSBcaW1hcF9mZXRjaGJvZHkoCisgICAgICAgICAgICAkdGhpcy0+cmVzb3VyY2UtPmdldFN0cmVhbSgpLAorICAgICAgICAgICAgJHRoaXMtPmdldE51bWJlcigpLAorICAgICAgICAgICAgJHBhcnROdW1iZXIsCisgICAgICAgICAgICBcRlRfVUlEIHwgXEZUX1BFRUsKKyAgICAgICAgKTsKKworICAgICAgICBpZiAoZmFsc2UgPT09ICRyZXR1cm4pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbWFwRmV0Y2hib2R5RXhjZXB0aW9uKCdpbWFwX2ZldGNoYm9keSBmYWlsZWQnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmV0dXJuOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhbiBhcnJheSBvZiBhbGwgcGFydHMgZm9yIHRoaXMgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUGFydEludGVyZmFjZVtdCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGdldFBhcnRzKCk6IGFycmF5CisgICAgeworICAgICAgICAkdGhpcy0+bGF6eVBhcnNlU3RydWN0dXJlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJ0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY3VycmVudCBjaGlsZCBwYXJ0LgorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBjdXJyZW50KCkKKyAgICB7CisgICAgICAgICR0aGlzLT5sYXp5UGFyc2VTdHJ1Y3R1cmUoKTsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnBhcnRzWyR0aGlzLT5rZXldOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjdXJyZW50IGNoaWxkIHBhcnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFxSZWN1cnNpdmVJdGVyYXRvcgorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiBnZXRDaGlsZHJlbigpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY3VycmVudCBjaGlsZCBwYXJ0LgorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIGhhc0NoaWxkcmVuKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5sYXp5UGFyc2VTdHJ1Y3R1cmUoKTsKKworICAgICAgICByZXR1cm4gXGNvdW50KCR0aGlzLT5wYXJ0cykgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjdXJyZW50IHBhcnQga2V5LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQKKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24ga2V5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+a2V5OworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vdmUgdG8gbmV4dCBwYXJ0LgorICAgICAqCisgICAgICogQHJldHVybiB2b2lkCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIG5leHQoKQorICAgIHsKKyAgICAgICAgKyskdGhpcy0+a2V5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHBhcnQga2V5LgorICAgICAqCisgICAgICogQHJldHVybiB2b2lkCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIHJld2luZCgpCisgICAgeworICAgICAgICAkdGhpcy0+a2V5ID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiBjdXJyZW50IHBhcnQgaXMgYSB2YWxpZCBvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gdmFsaWQoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmxhenlQYXJzZVN0cnVjdHVyZSgpOworCisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cGFydHNbJHRoaXMtPmtleV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIHBhcnQgc3RydWN0dXJlLgorICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gbGF6eVBhcnNlU3RydWN0dXJlKCk6IHZvaWQKKyAgICB7CisgICAgICAgIGlmICh0cnVlID09PSAkdGhpcy0+c3RydWN0dXJlUGFyc2VkKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPnN0cnVjdHVyZVBhcnNlZCA9IHRydWU7CisKKyAgICAgICAgJHRoaXMtPmxhenlMb2FkU3RydWN0dXJlKCk7CisKKyAgICAgICAgJHRoaXMtPnR5cGUgPSBzZWxmOjokdHlwZXNNYXBbJHRoaXMtPnN0cnVjdHVyZS0+dHlwZV0gPz8gc2VsZjo6VFlQRV9VTktOT1dOOworCisgICAgICAgIC8vIEluIG91ciBjb250ZXh0LCBcRU5DT1RIRVIgaXMgYXMgdXNlZnVsIGFzIGFuIHVrbm93biBlbmNvZGluZworICAgICAgICAkdGhpcy0+ZW5jb2RpbmcgPSBzZWxmOjokZW5jb2RpbmdzTWFwWyR0aGlzLT5zdHJ1Y3R1cmUtPmVuY29kaW5nXSA/PyBzZWxmOjpFTkNPRElOR19VTktOT1dOOworICAgICAgICAkdGhpcy0+c3VidHlwZSAgPSAkdGhpcy0+c3RydWN0dXJlLT5zdWJ0eXBlOworCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+c3RydWN0dXJlLT5ieXRlcykpIHsKKyAgICAgICAgICAgICR0aGlzLT5ieXRlcyA9ICR0aGlzLT5zdHJ1Y3R1cmUtPmJ5dGVzOworICAgICAgICB9CisgICAgICAgIGlmICgkdGhpcy0+c3RydWN0dXJlLT5pZmRpc3Bvc2l0aW9uKSB7CisgICAgICAgICAgICAkdGhpcy0+ZGlzcG9zaXRpb24gPSAkdGhpcy0+c3RydWN0dXJlLT5kaXNwb3NpdGlvbjsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHRoaXMtPnN0cnVjdHVyZS0+aWZkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgJHRoaXMtPmRlc2NyaXB0aW9uID0gJHRoaXMtPnN0cnVjdHVyZS0+ZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICAkdGhpcy0+cGFyYW1ldGVycyA9IG5ldyBQYXJhbWV0ZXJzKCk7CisgICAgICAgIGlmICgkdGhpcy0+c3RydWN0dXJlLT5pZnBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgICR0aGlzLT5wYXJhbWV0ZXJzLT5hZGQoJHRoaXMtPnN0cnVjdHVyZS0+cGFyYW1ldGVycyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoJHRoaXMtPnN0cnVjdHVyZS0+aWZkcGFyYW1ldGVycykgeworICAgICAgICAgICAgJHRoaXMtPnBhcmFtZXRlcnMtPmFkZCgkdGhpcy0+c3RydWN0dXJlLT5kcGFyYW1ldGVycyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBXaGVuIHRoZSBtZXNzYWdlIGlzIG5vdCBtdWx0aXBhcnQgYW5kIHRoZSBib2R5IGlzIHRoZSBhdHRhY2htZW50IGNvbnRlbnQKKyAgICAgICAgLy8gUHJldmVudHMgaW5maW5pdGUgcmVjdXJzaW9uCisgICAgICAgIGlmIChzZWxmOjppc0F0dGFjaG1lbnQoJHRoaXMtPnN0cnVjdHVyZSkgJiYgISR0aGlzIGluc3RhbmNlb2YgQXR0YWNobWVudCkgeworICAgICAgICAgICAgJHRoaXMtPnBhcnRzW10gPSBuZXcgQXR0YWNobWVudCgkdGhpcy0+cmVzb3VyY2UsICR0aGlzLT5nZXROdW1iZXIoKSwgJzEnLCAkdGhpcy0+c3RydWN0dXJlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc3NldCgkdGhpcy0+c3RydWN0dXJlLT5wYXJ0cykpIHsKKyAgICAgICAgICAgICRwYXJ0cyA9ICR0aGlzLT5zdHJ1Y3R1cmUtPnBhcnRzOworICAgICAgICAgICAgLy8gaHR0cHM6Ly9zZWN1cmUucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uaW1hcC1mZXRjaGJvZHkucGhwIzg5MDAyCisgICAgICAgICAgICBpZiAoJHRoaXMgaW5zdGFuY2VvZiBBdHRhY2htZW50ICYmICR0aGlzLT5pc0VtYmVkZGVkTWVzc2FnZSgpICYmIDEgPT09IFxjb3VudCgkcGFydHMpICYmIFxUWVBFTVVMVElQQVJUID09PSAkcGFydHNbMF0tPnR5cGUpIHsKKyAgICAgICAgICAgICAgICAkcGFydHMgPSAkcGFydHNbMF0tPnBhcnRzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yZWFjaCAoJHBhcnRzIGFzICRrZXkgPT4gJHBhcnRTdHJ1Y3R1cmUpIHsKKyAgICAgICAgICAgICAgICAkcGFydE51bWJlciA9ICghJHRoaXMgaW5zdGFuY2VvZiBNZXNzYWdlKSA/ICR0aGlzLT5wYXJ0TnVtYmVyIC4gJy4nIDogJyc7CisgICAgICAgICAgICAgICAgJHBhcnROdW1iZXIgLj0gKHN0cmluZykgKCRrZXkgKyAxKTsKKworICAgICAgICAgICAgICAgICRuZXdQYXJ0Q2xhc3MgPSBzZWxmOjppc0F0dGFjaG1lbnQoJHBhcnRTdHJ1Y3R1cmUpCisgICAgICAgICAgICAgICAgICAgID8gQXR0YWNobWVudDo6Y2xhc3MKKyAgICAgICAgICAgICAgICAgICAgOiBTaW1wbGVQYXJ0OjpjbGFzcworICAgICAgICAgICAgICAgIDsKKworICAgICAgICAgICAgICAgICR0aGlzLT5wYXJ0c1tdID0gbmV3ICRuZXdQYXJ0Q2xhc3MoJHRoaXMtPnJlc291cmNlLCAkdGhpcy0+Z2V0TnVtYmVyKCksICRwYXJ0TnVtYmVyLCAkcGFydFN0cnVjdHVyZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gcGFydCBpcyBhbiBhdHRhY2htZW50LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGlzQXR0YWNobWVudChcc3RkQ2xhc3MgJHBhcnQpOiBib29sCisgICAgeworICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JHR5cGVzTWFwWyRwYXJ0LT50eXBlXSkgJiYgc2VsZjo6VFlQRV9NVUxUSVBBUlQgPT09IHNlbGY6OiR0eXBlc01hcFskcGFydC0+dHlwZV0pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEF0dGFjaG1lbnQgd2l0aCBjb3JyZWN0IENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyCisgICAgICAgIGlmICgkcGFydC0+aWZkaXNwb3NpdGlvbikgeworICAgICAgICAgICAgaWYgKCdhdHRhY2htZW50JyA9PT0gXHN0cnRvbG93ZXIoJHBhcnQtPmRpc3Bvc2l0aW9uKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoCisgICAgICAgICAgICAgICAgICAgICdpbmxpbmUnID09PSBcc3RydG9sb3dlcigkcGFydC0+ZGlzcG9zaXRpb24pCisgICAgICAgICAgICAgICAgJiYgc2VsZjo6U1VCVFlQRV9QTEFJTiAhPT0gXHN0cnRvdXBwZXIoJHBhcnQtPnN1YnR5cGUpCisgICAgICAgICAgICAgICAgJiYgc2VsZjo6U1VCVFlQRV9IVE1MICE9PSBcc3RydG91cHBlcigkcGFydC0+c3VidHlwZSkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXR0YWNobWVudCB3aXRob3V0IENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyCisgICAgICAgIGlmICgkcGFydC0+aWZwYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBmb3JlYWNoICgkcGFydC0+cGFyYW1ldGVycyBhcyAkcGFyYW1ldGVyKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRhdHRhY2htZW50S2V5c1tcc3RydG9sb3dlcigkcGFyYW1ldGVyLT5hdHRyaWJ1dGUpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgaWYgKCRwYXJ0LT5pZmRwYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICBmb3JlYWNoICgkcGFydC0+ZHBhcmFtZXRlcnMgYXMgJHBhcmFtZXRlcikgeworICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokYXR0YWNobWVudEtleXNbXHN0cnRvbG93ZXIoJHBhcmFtZXRlci0+YXR0cmlidXRlKV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgKi8KKworICAgICAgICBpZiAoc2VsZjo6U1VCVFlQRV9SRkM4MjIgPT09IFxzdHJ0b3VwcGVyKCRwYXJ0LT5zdWJ0eXBlKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9BdHRhY2htZW50LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvQXR0YWNobWVudC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ3Njc2OQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvQXR0YWNobWVudC5waHAKQEAgLTAsMCArMSw2MyBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcTWVzc2FnZTsKKwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cTm90RW1iZWRkZWRNZXNzYWdlRXhjZXB0aW9uOworCisvKioKKyAqIEFuIGUtbWFpbCBhdHRhY2htZW50LgorICovCitmaW5hbCBjbGFzcyBBdHRhY2htZW50IGV4dGVuZHMgQWJzdHJhY3RQYXJ0IGltcGxlbWVudHMgQXR0YWNobWVudEludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEdldCBhdHRhY2htZW50IGZpbGVuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRGaWxlbmFtZSgpOiA/c3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmdldFBhcmFtZXRlcnMoKS0+Z2V0KCdmaWxlbmFtZScpCisgICAgICAgICAgICA/OiAkdGhpcy0+Z2V0UGFyYW1ldGVycygpLT5nZXQoJ25hbWUnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYXR0YWNobWVudCBmaWxlIHNpemUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG51bGx8aW50IE51bWJlciBvZiBieXRlcworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTaXplKCkKKyAgICB7CisgICAgICAgICRzaXplID0gJHRoaXMtPmdldFBhcmFtZXRlcnMoKS0+Z2V0KCdzaXplJyk7CisgICAgICAgIGlmIChcaXNfbnVtZXJpYygkc2l6ZSkpIHsKKyAgICAgICAgICAgICRzaXplID0gKGludCkgJHNpemU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXMgdGhpcyBhdHRhY2htZW50IGFsc28gYW4gRW1iZWRkZWQgTWVzc2FnZT8KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNFbWJlZGRlZE1lc3NhZ2UoKTogYm9vbAorICAgIHsKKyAgICAgICAgcmV0dXJuIHNlbGY6OlRZUEVfTUVTU0FHRSA9PT0gJHRoaXMtPmdldFR5cGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZW1iZWRkZWQgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgTm90RW1iZWRkZWRNZXNzYWdlRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEVtYmVkZGVkTWVzc2FnZSgpOiBFbWJlZGRlZE1lc3NhZ2VJbnRlcmZhY2UKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPmlzRW1iZWRkZWRNZXNzYWdlKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOb3RFbWJlZGRlZE1lc3NhZ2VFeGNlcHRpb24oXHNwcmludGYoCisgICAgICAgICAgICAgICAgJ0F0dGFjaG1lbnQgIiVzIiBpbiBtZXNzYWdlICIlcyIgaXMgbm90IGVtYmVkZGVkIG1lc3NhZ2UnLAorICAgICAgICAgICAgICAgICR0aGlzLT5nZXRQYXJ0TnVtYmVyKCksCisgICAgICAgICAgICAgICAgJHRoaXMtPmdldE51bWJlcigpCisgICAgICAgICAgICApKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgRW1iZWRkZWRNZXNzYWdlKCR0aGlzLT5yZXNvdXJjZSwgJHRoaXMtPmdldE51bWJlcigpLCAkdGhpcy0+Z2V0UGFydE51bWJlcigpLCAkdGhpcy0+Z2V0U3RydWN0dXJlKCktPnBhcnRzWzBdKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0F0dGFjaG1lbnRJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9BdHRhY2htZW50SW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDIwZjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9BdHRhY2htZW50SW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDMzIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCisvKioKKyAqIEFuIGUtbWFpbCBhdHRhY2htZW50LgorICovCitpbnRlcmZhY2UgQXR0YWNobWVudEludGVyZmFjZSBleHRlbmRzIFBhcnRJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBHZXQgYXR0YWNobWVudCBmaWxlbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmlsZW5hbWUoKTogP3N0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBhdHRhY2htZW50IGZpbGUgc2l6ZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbnVsbHxpbnQgTnVtYmVyIG9mIGJ5dGVzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNpemUoKTsKKworICAgIC8qKgorICAgICAqIElzIHRoaXMgYXR0YWNobWVudCBhbHNvIGFuIEVtYmVkZGVkIE1lc3NhZ2U/CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzRW1iZWRkZWRNZXNzYWdlKCk6IGJvb2w7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZW1iZWRkZWQgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RW1iZWRkZWRNZXNzYWdlKCk6IEVtYmVkZGVkTWVzc2FnZUludGVyZmFjZTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvQmFzaWNNZXNzYWdlSW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvQmFzaWNNZXNzYWdlSW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGU2YjFhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9CYXNpY01lc3NhZ2VJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMTMwIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCitpbnRlcmZhY2UgQmFzaWNNZXNzYWdlSW50ZXJmYWNlIGV4dGVuZHMgUGFydEludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEdldCByYXcgbWVzc2FnZSBoZWFkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSYXdIZWFkZXJzKCk6IHN0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcmF3IG1lc3NhZ2UsIGluY2x1ZGluZyBhbGwgaGVhZGVycywgcGFydHMsIGV0Yy4gdW5lbmNvZGVkIGFuZCB1bnBhcnNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSByYXcgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSYXdNZXNzYWdlKCk6IHN0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGhlYWRlcnMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEhlYWRlcnMoKTogSGVhZGVyczsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGlkLgorICAgICAqCisgICAgICogQSB1bmlxdWUgbWVzc2FnZSBpZCBpbiB0aGUgZm9ybSA8Li4uPgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRJZCgpOiA/c3RyaW5nOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2Ugc2VuZGVyIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRGcm9tKCk6ID9FbWFpbEFkZHJlc3M7CisKKyAgICAvKioKKyAgICAgKiBHZXQgVG8gcmVjaXBpZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gRW1haWxBZGRyZXNzW10gRW1wdHkgYXJyYXkgaW4gY2FzZSBtZXNzYWdlIGhhcyBubyBUbzogcmVjaXBpZW50cworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUbygpOiBhcnJheTsKKworICAgIC8qKgorICAgICAqIEdldCBDYyByZWNpcGllbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBFbWFpbEFkZHJlc3NbXSBFbXB0eSBhcnJheSBpbiBjYXNlIG1lc3NhZ2UgaGFzIG5vIENDOiByZWNpcGllbnRzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENjKCk6IGFycmF5OworCisgICAgLyoqCisgICAgICogR2V0IEJjYyByZWNpcGllbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBFbWFpbEFkZHJlc3NbXSBFbXB0eSBhcnJheSBpbiBjYXNlIG1lc3NhZ2UgaGFzIG5vIEJDQzogcmVjaXBpZW50cworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRCY2MoKTogYXJyYXk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgUmVwbHktVG8gcmVjaXBpZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gRW1haWxBZGRyZXNzW10gRW1wdHkgYXJyYXkgaW4gY2FzZSBtZXNzYWdlIGhhcyBubyBSZXBseS1UbzogcmVjaXBpZW50cworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZXBseVRvKCk6IGFycmF5OworCisgICAgLyoqCisgICAgICogR2V0IFNlbmRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gRW1haWxBZGRyZXNzW10gRW1wdHkgYXJyYXkgaW4gY2FzZSBtZXNzYWdlIGhhcyBubyBTZW5kZXI6IHJlY2lwaWVudHMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2VuZGVyKCk6IGFycmF5OworCisgICAgLyoqCisgICAgICogR2V0IFJldHVybi1QYXRoLgorICAgICAqCisgICAgICogQHJldHVybiBFbWFpbEFkZHJlc3NbXSBFbXB0eSBhcnJheSBpbiBjYXNlIG1lc3NhZ2UgaGFzIG5vIFJldHVybi1QYXRoOiByZWNpcGllbnRzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJldHVyblBhdGgoKTogYXJyYXk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGF0ZSAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGF0ZSgpOiA/XERhdGVUaW1lSW1tdXRhYmxlOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2Ugc2l6ZSAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbnVsbHxpbnR8c3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNpemUoKTsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIHN1YmplY3QgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFN1YmplY3QoKTogP3N0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIEluLVJlcGx5LVRvIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRJblJlcGx5VG8oKTogYXJyYXk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBSZWZlcmVuY2VzIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWZlcmVuY2VzKCk6IGFycmF5OworCisgICAgLyoqCisgICAgICogR2V0IGJvZHkgSFRNTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbnVsbHxzdHJpbmcgTnVsbCBpZiBtZXNzYWdlIGhhcyBubyBIVE1MIG1lc3NhZ2UgcGFydAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRCb2R5SHRtbCgpOiA/c3RyaW5nOworCisgICAgLyoqCisgICAgICogR2V0IGJvZHkgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Qm9keVRleHQoKTogP3N0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBhdHRhY2htZW50cyAoaWYgYW55KSBsaW5rZWQgdG8gdGhpcyBlLW1haWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEF0dGFjaG1lbnRJbnRlcmZhY2VbXQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdHRhY2htZW50cygpOiBhcnJheTsKKworICAgIC8qKgorICAgICAqIERvZXMgdGhpcyBtZXNzYWdlIGhhdmUgYXR0YWNobWVudHM/CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGhhc0F0dGFjaG1lbnRzKCk6IGJvb2w7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0VtYWlsQWRkcmVzcy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0VtYWlsQWRkcmVzcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg4ZTBmOQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvRW1haWxBZGRyZXNzLnBocApAQCAtMCwwICsxLDg0IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCisvKioKKyAqIEFuIGUtbWFpbCBhZGRyZXNzLgorICovCitmaW5hbCBjbGFzcyBFbWFpbEFkZHJlc3MKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJG1haWxib3g7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkaG9zdG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkbmFtZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICRhZGRyZXNzOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHN0cmluZyAkbWFpbGJveCwgc3RyaW5nICRob3N0bmFtZSA9IG51bGwsIHN0cmluZyAkbmFtZSA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+bWFpbGJveCAgPSAkbWFpbGJveDsKKyAgICAgICAgJHRoaXMtPmhvc3RuYW1lID0gJGhvc3RuYW1lOworICAgICAgICAkdGhpcy0+bmFtZSAgICAgPSAkbmFtZTsKKworICAgICAgICBpZiAobnVsbCAhPT0gJGhvc3RuYW1lKSB7CisgICAgICAgICAgICAkdGhpcy0+YWRkcmVzcyA9ICRtYWlsYm94IC4gJ0AnIC4gJGhvc3RuYW1lOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBudWxsfHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBZGRyZXNzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+YWRkcmVzczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFkZHJlc3Mgd2l0aCBwZXJzb24gbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RnVsbEFkZHJlc3MoKTogc3RyaW5nCisgICAgeworICAgICAgICAkYWRkcmVzcyA9IFxzcHJpbnRmKCclc0AlcycsICR0aGlzLT5tYWlsYm94LCAkdGhpcy0+aG9zdG5hbWUpOworICAgICAgICBpZiAobnVsbCAhPT0gJHRoaXMtPm5hbWUpIHsKKyAgICAgICAgICAgICRhZGRyZXNzID0gXHNwcmludGYoJyIlcyIgPCVzPicsIFxhZGRjc2xhc2hlcygkdGhpcy0+bmFtZSwgJyInKSwgJGFkZHJlc3MpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRhZGRyZXNzOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNYWlsYm94KCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5tYWlsYm94OworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gbnVsbHxzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SG9zdG5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5ob3N0bmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIG51bGx8c3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5uYW1lOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvRW1iZWRkZWRNZXNzYWdlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvRW1iZWRkZWRNZXNzYWdlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDNjZmY2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9FbWJlZGRlZE1lc3NhZ2UucGhwCkBAIC0wLDAgKzEsNzUgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXE1lc3NhZ2U7CisKK2ZpbmFsIGNsYXNzIEVtYmVkZGVkTWVzc2FnZSBleHRlbmRzIEFic3RyYWN0TWVzc2FnZSBpbXBsZW1lbnRzIEVtYmVkZGVkTWVzc2FnZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxIZWFkZXJzCisgICAgICovCisgICAgcHJpdmF0ZSAkaGVhZGVyczsKKworICAgIC8qKgorICAgICAqIEB2YXIgbnVsbHxzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICRyYXdIZWFkZXJzOworCisgICAgLyoqCisgICAgICogQHZhciBudWxsfHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJHJhd01lc3NhZ2U7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBoZWFkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIZWFkZXJzKCk6IEhlYWRlcnMKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdGhpcy0+aGVhZGVycykgeworICAgICAgICAgICAgJHRoaXMtPmhlYWRlcnMgPSBuZXcgSGVhZGVycyhcaW1hcF9yZmM4MjJfcGFyc2VfaGVhZGVycygkdGhpcy0+Z2V0UmF3SGVhZGVycygpKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPmhlYWRlcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHJhdyBtZXNzYWdlIGhlYWRlcnMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJhd0hlYWRlcnMoKTogc3RyaW5nCisgICAgeworICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPnJhd0hlYWRlcnMpIHsKKyAgICAgICAgICAgICRyYXdIZWFkZXJzICAgICAgID0gXGV4cGxvZGUoIlxyXG5cclxuIiwgJHRoaXMtPmdldFJhd01lc3NhZ2UoKSwgMik7CisgICAgICAgICAgICAkdGhpcy0+cmF3SGVhZGVycyA9IFxjdXJyZW50KCRyYXdIZWFkZXJzKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+cmF3SGVhZGVyczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHJhdyBtZXNzYWdlLCBpbmNsdWRpbmcgYWxsIGhlYWRlcnMsIHBhcnRzLCBldGMuIHVuZW5jb2RlZCBhbmQgdW5wYXJzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgcmF3IG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmF3TWVzc2FnZSgpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdGhpcy0+cmF3TWVzc2FnZSkgeworICAgICAgICAgICAgJHRoaXMtPnJhd01lc3NhZ2UgPSAkdGhpcy0+ZG9HZXRDb250ZW50KCR0aGlzLT5nZXRQYXJ0TnVtYmVyKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5yYXdNZXNzYWdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjb250ZW50IHBhcnQgbnVtYmVyLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRDb250ZW50UGFydE51bWJlcigpOiBzdHJpbmcKKyAgICB7CisgICAgICAgICRwYXJ0TnVtYmVyID0gJHRoaXMtPmdldFBhcnROdW1iZXIoKTsKKyAgICAgICAgaWYgKDAgPT09IFxjb3VudCgkdGhpcy0+Z2V0UGFydHMoKSkpIHsKKyAgICAgICAgICAgICRwYXJ0TnVtYmVyIC49ICcuMSc7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHBhcnROdW1iZXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9FbWJlZGRlZE1lc3NhZ2VJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9FbWJlZGRlZE1lc3NhZ2VJbnRlcmZhY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ODVlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0VtYmVkZGVkTWVzc2FnZUludGVyZmFjZS5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCitpbnRlcmZhY2UgRW1iZWRkZWRNZXNzYWdlSW50ZXJmYWNlIGV4dGVuZHMgQmFzaWNNZXNzYWdlSW50ZXJmYWNlCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL0hlYWRlcnMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9IZWFkZXJzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzZmZWMzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9IZWFkZXJzLnBocApAQCAtMCwwICsxLDcyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCisvKioKKyAqIENvbGxlY3Rpb24gb2YgbWVzc2FnZSBoZWFkZXJzLgorICovCitmaW5hbCBjbGFzcyBIZWFkZXJzIGV4dGVuZHMgUGFyYW1ldGVycworeworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChcc3RkQ2xhc3MgJGhlYWRlcnMpCisgICAgeworICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CisKKyAgICAgICAgLy8gU3RvcmUgYWxsIGhlYWRlcnMgYXMgbG93ZXJjYXNlCisgICAgICAgICRoZWFkZXJzID0gXGFycmF5X2NoYW5nZV9rZXlfY2FzZSgoYXJyYXkpICRoZWFkZXJzKTsKKworICAgICAgICBmb3JlYWNoICgkaGVhZGVycyBhcyAka2V5ID0+ICR2YWx1ZSkgeworICAgICAgICAgICAgJHRoaXNbJGtleV0gPSAkdGhpcy0+cGFyc2VIZWFkZXIoJGtleSwgJHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBoZWFkZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG1peGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldChzdHJpbmcgJGtleSkKKyAgICB7CisgICAgICAgIHJldHVybiBwYXJlbnQ6OmdldChcc3RydG9sb3dlcigka2V5KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgaGVhZGVyLgorICAgICAqCisgICAgICogQHBhcmFtIG1peGVkICR2YWx1ZQorICAgICAqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gcGFyc2VIZWFkZXIoc3RyaW5nICRrZXksICR2YWx1ZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoJGtleSkgeworICAgICAgICAgICAgY2FzZSAnbXNnbm8nOgorICAgICAgICAgICAgICAgIHJldHVybiAoaW50KSAkdmFsdWU7CisgICAgICAgICAgICBjYXNlICdmcm9tJzoKKyAgICAgICAgICAgIGNhc2UgJ3RvJzoKKyAgICAgICAgICAgIGNhc2UgJ2NjJzoKKyAgICAgICAgICAgIGNhc2UgJ2JjYyc6CisgICAgICAgICAgICBjYXNlICdyZXBseV90byc6CisgICAgICAgICAgICBjYXNlICdzZW5kZXInOgorICAgICAgICAgICAgY2FzZSAncmV0dXJuX3BhdGgnOgorICAgICAgICAgICAgICAgIC8qKiBAdmFyIFxzdGRDbGFzcyAkYWRkcmVzcyAqLworICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR2YWx1ZSBhcyAkYWRkcmVzcykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFkZHJlc3MtPm1haWxib3gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYWRkcmVzcy0+aG9zdCAgICAgPSAkYWRkcmVzcy0+aG9zdCA/PyBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgJGFkZHJlc3MtPnBlcnNvbmFsID0gaXNzZXQoJGFkZHJlc3MtPnBlcnNvbmFsKSA/ICR0aGlzLT5kZWNvZGUoJGFkZHJlc3MtPnBlcnNvbmFsKSA6IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gJHZhbHVlOworICAgICAgICAgICAgY2FzZSAnZGF0ZSc6CisgICAgICAgICAgICBjYXNlICdzdWJqZWN0JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmRlY29kZSgkdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR2YWx1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL1BhcmFtZXRlcnMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9QYXJhbWV0ZXJzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjdkOGExCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9QYXJhbWV0ZXJzLnBocApAQCAtMCwwICsxLDc0IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCitjbGFzcyBQYXJhbWV0ZXJzIGV4dGVuZHMgXEFycmF5SXRlcmF0b3IKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgJGF0dGFjaG1lbnRDdXN0b21LZXlzID0gWworICAgICAgICAnbmFtZSonICAgICA9PiAnbmFtZScsCisgICAgICAgICdmaWxlbmFtZSonID0+ICdmaWxlbmFtZScsCisgICAgXTsKKworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChhcnJheSAkcGFyYW1ldGVycyA9IFtdKQorICAgIHsKKyAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOworCisgICAgICAgICR0aGlzLT5hZGQoJHBhcmFtZXRlcnMpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGQoYXJyYXkgJHBhcmFtZXRlcnMgPSBbXSk6IHZvaWQKKyAgICB7CisgICAgICAgIGZvcmVhY2ggKCRwYXJhbWV0ZXJzIGFzICRwYXJhbWV0ZXIpIHsKKyAgICAgICAgICAgICRrZXkgPSBcc3RydG9sb3dlcigkcGFyYW1ldGVyLT5hdHRyaWJ1dGUpOworICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRhdHRhY2htZW50Q3VzdG9tS2V5c1ska2V5XSkpIHsKKyAgICAgICAgICAgICAgICAka2V5ID0gc2VsZjo6JGF0dGFjaG1lbnRDdXN0b21LZXlzWyRrZXldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJHZhbHVlICAgICAgPSAkdGhpcy0+ZGVjb2RlKCRwYXJhbWV0ZXItPnZhbHVlKTsKKyAgICAgICAgICAgICR0aGlzWyRrZXldID0gJHZhbHVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICRrZXkpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXNbJGtleV0gPz8gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdmFsdWUuCisgICAgICovCisgICAgZmluYWwgcHJvdGVjdGVkIGZ1bmN0aW9uIGRlY29kZShzdHJpbmcgJHZhbHVlKTogc3RyaW5nCisgICAgeworICAgICAgICAkcGFydHMgPSBcaW1hcF9taW1lX2hlYWRlcl9kZWNvZGUoJHZhbHVlKTsKKyAgICAgICAgaWYgKCFcaXNfYXJyYXkoJHBhcnRzKSkgeworICAgICAgICAgICAgcmV0dXJuICR2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgICRkZWNvZGVkID0gJyc7CisgICAgICAgIGZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkgeworICAgICAgICAgICAgJHRleHQgPSAkcGFydC0+dGV4dDsKKyAgICAgICAgICAgIGlmICgnZGVmYXVsdCcgIT09ICRwYXJ0LT5jaGFyc2V0KSB7CisgICAgICAgICAgICAgICAgJHRleHQgPSBUcmFuc2NvZGVyOjpkZWNvZGUoJHRleHQsICRwYXJ0LT5jaGFyc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFJGQzIyMzEKKyAgICAgICAgICAgIGlmICgxID09PSBccHJlZ19tYXRjaCgnL14oPzxlbmNvZGluZz5bXlwnXSspXCdbXlwnXSo/XCcoPzx1cmx0ZXh0Pi4rKSQvJywgJHRleHQsICRtYXRjaGVzKSkgeworICAgICAgICAgICAgICAgICRoYXNJbnZhbGlkQ2hhcnMgPSAxID09PSBccHJlZ19tYXRjaCgnI1teJWEtekEtWjAtOVwtX1wuXCtdIycsICRtYXRjaGVzWyd1cmx0ZXh0J10pOworICAgICAgICAgICAgICAgICRoYXNFc2NhcGVkQ2hhcnMgPSAxID09PSBccHJlZ19tYXRjaCgnIyVbYS16QS1aMC05XXsyfSMnLCAkbWF0Y2hlc1sndXJsdGV4dCddKTsKKyAgICAgICAgICAgICAgICBpZiAoISRoYXNJbnZhbGlkQ2hhcnMgJiYgJGhhc0VzY2FwZWRDaGFycykgeworICAgICAgICAgICAgICAgICAgICAkdGV4dCA9IFRyYW5zY29kZXI6OmRlY29kZShcdXJsZGVjb2RlKCRtYXRjaGVzWyd1cmx0ZXh0J10pLCAkbWF0Y2hlc1snZW5jb2RpbmcnXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkZGVjb2RlZCAuPSAkdGV4dDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkZGVjb2RlZDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL1BhcnRJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9QYXJ0SW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGE4M2YyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZS9QYXJ0SW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDExMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcTWVzc2FnZTsKKworLyoqCisgKiBBIG1lc3NhZ2UgcGFydC4KKyAqLworaW50ZXJmYWNlIFBhcnRJbnRlcmZhY2UgZXh0ZW5kcyBcUmVjdXJzaXZlSXRlcmF0b3IKK3sKKyAgICBwdWJsaWMgY29uc3QgVFlQRV9URVhUICAgICAgICAgID0gJ3RleHQnOworICAgIHB1YmxpYyBjb25zdCBUWVBFX01VTFRJUEFSVCAgICAgPSAnbXVsdGlwYXJ0JzsKKyAgICBwdWJsaWMgY29uc3QgVFlQRV9NRVNTQUdFICAgICAgID0gJ21lc3NhZ2UnOworICAgIHB1YmxpYyBjb25zdCBUWVBFX0FQUExJQ0FUSU9OICAgPSAnYXBwbGljYXRpb24nOworICAgIHB1YmxpYyBjb25zdCBUWVBFX0FVRElPICAgICAgICAgPSAnYXVkaW8nOworICAgIHB1YmxpYyBjb25zdCBUWVBFX0lNQUdFICAgICAgICAgPSAnaW1hZ2UnOworICAgIHB1YmxpYyBjb25zdCBUWVBFX1ZJREVPICAgICAgICAgPSAndmlkZW8nOworICAgIHB1YmxpYyBjb25zdCBUWVBFX01PREVMICAgICAgICAgPSAnbW9kZWwnOworICAgIHB1YmxpYyBjb25zdCBUWVBFX09USEVSICAgICAgICAgPSAnb3RoZXInOworICAgIHB1YmxpYyBjb25zdCBUWVBFX1VOS05PV04gICAgICAgPSAndW5rbm93bic7CisKKyAgICBwdWJsaWMgY29uc3QgRU5DT0RJTkdfN0JJVCAgICAgICAgICAgICAgPSAnN2JpdCc7CisgICAgcHVibGljIGNvbnN0IEVOQ09ESU5HXzhCSVQgICAgICAgICAgICAgID0gJzhiaXQnOworICAgIHB1YmxpYyBjb25zdCBFTkNPRElOR19CSU5BUlkgICAgICAgICAgICA9ICdiaW5hcnknOworICAgIHB1YmxpYyBjb25zdCBFTkNPRElOR19CQVNFNjQgICAgICAgICAgICA9ICdiYXNlNjQnOworICAgIHB1YmxpYyBjb25zdCBFTkNPRElOR19RVU9URURfUFJJTlRBQkxFICA9ICdxdW90ZWQtcHJpbnRhYmxlJzsKKyAgICBwdWJsaWMgY29uc3QgRU5DT0RJTkdfVU5LTk9XTiAgICAgICAgICAgPSAndW5rbm93bic7CisKKyAgICBwdWJsaWMgY29uc3QgU1VCVFlQRV9QTEFJTiAgPSAnUExBSU4nOworICAgIHB1YmxpYyBjb25zdCBTVUJUWVBFX0hUTUwgICA9ICdIVE1MJzsKKyAgICBwdWJsaWMgY29uc3QgU1VCVFlQRV9SRkM4MjIgPSAnUkZDODIyJzsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIG51bWJlciAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TnVtYmVyKCk6IGludDsKKworICAgIC8qKgorICAgICAqIFBhcnQgY2hhcnNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2hhcnNldCgpOiA/c3RyaW5nOworCisgICAgLyoqCisgICAgICogUGFydCB0eXBlLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUeXBlKCk6ID9zdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBQYXJ0IHN1YnR5cGUuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFN1YnR5cGUoKTogP3N0cmluZzsKKworICAgIC8qKgorICAgICAqIFBhcnQgZW5jb2RpbmcuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEVuY29kaW5nKCk6ID9zdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBQYXJ0IGRpc3Bvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREaXNwb3NpdGlvbigpOiA/c3RyaW5nOworCisgICAgLyoqCisgICAgICogUGFydCBkZXNjcmlwdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGVzY3JpcHRpb24oKTogP3N0cmluZzsKKworICAgIC8qKgorICAgICAqIFBhcnQgYnl0ZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG51bGx8aW50fHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRCeXRlcygpOworCisgICAgLyoqCisgICAgICogUGFydCBsaW5lcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TGluZXMoKTogP3N0cmluZzsKKworICAgIC8qKgorICAgICAqIFBhcnQgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyYW1ldGVycygpOiBQYXJhbWV0ZXJzOworCisgICAgLyoqCisgICAgICogR2V0IHJhdyBwYXJ0IGNvbnRlbnQuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENvbnRlbnQoKTogc3RyaW5nOworCisgICAgLyoqCisgICAgICogR2V0IGRlY29kZWQgcGFydCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWNvZGVkQ29udGVudCgpOiBzdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBQYXJ0IHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3RydWN0dXJlKCk6IFxzdGRDbGFzczsKKworICAgIC8qKgorICAgICAqIEdldCBwYXJ0IG51bWJlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFydE51bWJlcigpOiBzdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYW4gYXJyYXkgb2YgYWxsIHBhcnRzIGZvciB0aGlzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFBhcnRJbnRlcmZhY2VbXQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQYXJ0cygpOiBhcnJheTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvU2ltcGxlUGFydC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL1NpbXBsZVBhcnQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNjE4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL1NpbXBsZVBhcnQucGhwCkBAIC0wLDAgKzEsMTIgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXE1lc3NhZ2U7CisKKy8qKgorICogQSBtZXNzYWdlIHBhcnQuCisgKi8KK2ZpbmFsIGNsYXNzIFNpbXBsZVBhcnQgZXh0ZW5kcyBBYnN0cmFjdFBhcnQKK3sKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2UvVHJhbnNjb2Rlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL1RyYW5zY29kZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZGZiODcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlL1RyYW5zY29kZXIucGhwCkBAIC0wLDAgKzEsMzI4IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxNZXNzYWdlOworCit1c2UgRGRlYm9lclxJbWFwXEV4Y2VwdGlvblxVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb247CisKK2ZpbmFsIGNsYXNzIFRyYW5zY29kZXIKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnLyNlbmNvZGluZ3MKKyAgICAgKiBAc2VlIGh0dHBzOi8vZHhyLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9zb3VyY2UvZG9tL2VuY29kaW5nL2xhYmVsc2VuY29kaW5ncy5wcm9wZXJ0aWVzCisgICAgICogQHNlZSBodHRwczovL2R4ci5tb3ppbGxhLm9yZy9tb3ppbGxhMS45LjEvc291cmNlL2ludGwvdWNvbnYvc3JjL2NoYXJzZXRhbGlhcy5wcm9wZXJ0aWVzCisgICAgICogQHNlZSBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2NjMTk0ODI5LmFzcHgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyAkY2hhcnNldEFsaWFzZXMgPSBbCisgICAgICAgICcxMjgnICAgICAgICAgICAgICAgICAgICAgICA9PiAnU2hpZnRfSklTJywKKyAgICAgICAgJzEyOScgICAgICAgICAgICAgICAgICAgICAgID0+ICdFVUMtS1InLAorICAgICAgICAnMTM0JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ0dCMjMxMicsCisgICAgICAgICcxMzYnICAgICAgICAgICAgICAgICAgICAgICA9PiAnQmlnNScsCisgICAgICAgICcxNjEnICAgICAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjUzJywKKyAgICAgICAgJzE2MicgICAgICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTQnLAorICAgICAgICAnMTc3JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NScsCisgICAgICAgICcxNzgnICAgICAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU2JywKKyAgICAgICAgJzE4NicgICAgICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTcnLAorICAgICAgICAnMjA0JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MScsCisgICAgICAgICcyMjInICAgICAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy04NzQnLAorICAgICAgICAnMjM4JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MCcsCisgICAgICAgICc1NjAxJyAgICAgICAgICAgICAgICAgICAgICA9PiAnRVVDLUtSJywKKyAgICAgICAgJzY0NicgICAgICAgICAgICAgICAgICAgICAgID0+ICd1cy1hc2NpaScsCisgICAgICAgICc4NTAnICAgICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODUwJywKKyAgICAgICAgJzg1MicgICAgICAgICAgICAgICAgICAgICAgID0+ICdJQk04NTInLAorICAgICAgICAnODU1JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ0lCTTg1NScsCisgICAgICAgICc4NTcnICAgICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODU3JywKKyAgICAgICAgJzg2MicgICAgICAgICAgICAgICAgICAgICAgID0+ICdJQk04NjInLAorICAgICAgICAnODY0JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ0lCTTg2NCcsCisgICAgICAgICc4NjRpJyAgICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODY0aScsCisgICAgICAgICc4NjYnICAgICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODY2JywKKyAgICAgICAgJ2Fuc2ktMTI1MScgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTEnLAorICAgICAgICAnYW5zaV94My40LTE5NjgnICAgICAgICAgICAgPT4gJ3VzLWFzY2lpJywKKyAgICAgICAgJ2FyYWJpYycgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS02JywKKyAgICAgICAgJ2FzY2lpJyAgICAgICAgICAgICAgICAgICAgID0+ICd1cy1hc2NpaScsCisgICAgICAgICdhc21vLTcwOCcgICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNicsCisgICAgICAgICdiaWc1LWhrc2NzJyAgICAgICAgICAgICAgICA9PiAnQmlnNScsCisgICAgICAgICdjaGluZXNlJyAgICAgICAgICAgICAgICAgICA9PiAnR0IyMzEyJywKKyAgICAgICAgJ2NuLWJpZzUnICAgICAgICAgICAgICAgICAgID0+ICdCaWc1JywKKyAgICAgICAgJ2NuczExNjQzJyAgICAgICAgICAgICAgICAgID0+ICd4LWV1Yy10dycsCisgICAgICAgICdjcC04NjYnICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODY2JywKKyAgICAgICAgJ2NwMTI1MCcgICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTAnLAorICAgICAgICAnY3AxMjUxJyAgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MScsCisgICAgICAgICdjcDEyNTInICAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjUyJywKKyAgICAgICAgJ2NwMTI1MycgICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTMnLAorICAgICAgICAnY3AxMjU0JyAgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NCcsCisgICAgICAgICdjcDEyNTUnICAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU1JywKKyAgICAgICAgJ2NwMTI1NicgICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTYnLAorICAgICAgICAnY3AxMjU3JyAgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NycsCisgICAgICAgICdjcDEyNTgnICAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU4JywKKyAgICAgICAgJ2NwODE5JyAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xJywKKyAgICAgICAgJ2NwODUwJyAgICAgICAgICAgICAgICAgICAgID0+ICdJQk04NTAnLAorICAgICAgICAnY3A4NTInICAgICAgICAgICAgICAgICAgICAgPT4gJ0lCTTg1MicsCisgICAgICAgICdjcDg1NScgICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODU1JywKKyAgICAgICAgJ2NwODU3JyAgICAgICAgICAgICAgICAgICAgID0+ICdJQk04NTcnLAorICAgICAgICAnY3A4NjInICAgICAgICAgICAgICAgICAgICAgPT4gJ0lCTTg2MicsCisgICAgICAgICdjcDg2NCcgICAgICAgICAgICAgICAgICAgICA9PiAnSUJNODY0JywKKyAgICAgICAgJ2NwODY0aScgICAgICAgICAgICAgICAgICAgID0+ICdJQk04NjRpJywKKyAgICAgICAgJ2NwODY2JyAgICAgICAgICAgICAgICAgICAgID0+ICdJQk04NjYnLAorICAgICAgICAnY3A5MzInICAgICAgICAgICAgICAgICAgICAgPT4gJ1NoaWZ0X0pJUycsCisgICAgICAgICdjc2JpZzUnICAgICAgICAgICAgICAgICAgICA9PiAnQmlnNScsCisgICAgICAgICdjc2V1Y2pwa2RmbXRqYXBhbmVzZScgICAgICA9PiAnRVVDLUpQJywKKyAgICAgICAgJ2NzZXVja3InICAgICAgICAgICAgICAgICAgID0+ICdFVUMtS1InLAorICAgICAgICAnY3NldWNwa2RmbXRqYXBhbmVzZScgICAgICAgPT4gJ0VVQy1KUCcsCisgICAgICAgICdjc2diMjMxMicgICAgICAgICAgICAgICAgICA9PiAnR0IyMzEyJywKKyAgICAgICAgJ2NzaWJtODUwJyAgICAgICAgICAgICAgICAgID0+ICdJQk04NTAnLAorICAgICAgICAnY3NpYm04NTInICAgICAgICAgICAgICAgICAgPT4gJ0lCTTg1MicsCisgICAgICAgICdjc2libTg1NScgICAgICAgICAgICAgICAgICA9PiAnSUJNODU1JywKKyAgICAgICAgJ2NzaWJtODU3JyAgICAgICAgICAgICAgICAgID0+ICdJQk04NTcnLAorICAgICAgICAnY3NpYm04NjInICAgICAgICAgICAgICAgICAgPT4gJ0lCTTg2MicsCisgICAgICAgICdjc2libTg2NCcgICAgICAgICAgICAgICAgICA9PiAnSUJNODY0JywKKyAgICAgICAgJ2NzaWJtODY0aScgICAgICAgICAgICAgICAgID0+ICdJQk04NjRpJywKKyAgICAgICAgJ2NzaWJtODY2JyAgICAgICAgICAgICAgICAgID0+ICdJQk04NjYnLAorICAgICAgICAnY3Npc28xMDN0NjE4Yml0JyAgICAgICAgICAgPT4gJ1QuNjEtOGJpdCcsCisgICAgICAgICdjc2lzbzExMWVjbWFjeXJpbGxpYycgICAgICA9PiAnSVNPLUlSLTExMScsCisgICAgICAgICdjc2lzbzIwMjJqcCcgICAgICAgICAgICAgICA9PiAnSVNPLTIwMjItSlAnLAorICAgICAgICAnY3Npc28yMDIyanAyJyAgICAgICAgICAgICAgPT4gJ0lTTy0yMDIyLUpQJywKKyAgICAgICAgJ2NzaXNvMjAyMmtyJyAgICAgICAgICAgICAgID0+ICdJU08tMjAyMi1LUicsCisgICAgICAgICdjc2lzbzU4Z2IyMzEyODAnICAgICAgICAgICA9PiAnR0IyMzEyJywKKyAgICAgICAgJ2NzaXNvODg1OTZlJyAgICAgICAgICAgICAgID0+ICdJU08tODg1OS02LUUnLAorICAgICAgICAnY3Npc284ODU5NmknICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTYtSScsCisgICAgICAgICdjc2lzbzg4NTk4ZScgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktOC1FJywKKyAgICAgICAgJ2NzaXNvODg1OThpJyAgICAgICAgICAgICAgID0+ICdJU08tODg1OS04LUknLAorICAgICAgICAnY3Npc29sYXRpbjEnICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEnLAorICAgICAgICAnY3Npc29sYXRpbjInICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTInLAorICAgICAgICAnY3Npc29sYXRpbjMnICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTMnLAorICAgICAgICAnY3Npc29sYXRpbjQnICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTQnLAorICAgICAgICAnY3Npc29sYXRpbjUnICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTknLAorICAgICAgICAnY3Npc29sYXRpbjYnICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEwJywKKyAgICAgICAgJ2NzaXNvbGF0aW45JyAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xNScsCisgICAgICAgICdjc2lzb2xhdGluYXJhYmljJyAgICAgICAgICA9PiAnSVNPLTg4NTktNicsCisgICAgICAgICdjc2lzb2xhdGluY3lyaWxsaWMnICAgICAgICA9PiAnSVNPLTg4NTktNScsCisgICAgICAgICdjc2lzb2xhdGluZ3JlZWsnICAgICAgICAgICA9PiAnSVNPLTg4NTktNycsCisgICAgICAgICdjc2lzb2xhdGluaGVicmV3JyAgICAgICAgICA9PiAnSVNPLTg4NTktOCcsCisgICAgICAgICdjc2tvaThyJyAgICAgICAgICAgICAgICAgICA9PiAnS09JOC1SJywKKyAgICAgICAgJ2Nza3NjNTYwMTE5ODcnICAgICAgICAgICAgID0+ICdFVUMtS1InLAorICAgICAgICAnY3NtYWNpbnRvc2gnICAgICAgICAgICAgICAgPT4gJ3gtbWFjLXJvbWFuJywKKyAgICAgICAgJ2Nzc2hpZnRqaXMnICAgICAgICAgICAgICAgID0+ICdTaGlmdF9KSVMnLAorICAgICAgICAnY3N1ZWNrcicgICAgICAgICAgICAgICAgICAgPT4gJ0VVQy1LUicsCisgICAgICAgICdjc3VuaWNvZGUnICAgICAgICAgICAgICAgICA9PiAnVVRGLTE2QkUnLAorICAgICAgICAnY3N1bmljb2RlMTEnICAgICAgICAgICAgICAgPT4gJ1VURi0xNkJFJywKKyAgICAgICAgJ2NzdW5pY29kZTExdXRmNycgICAgICAgICAgID0+ICdVVEYtNycsCisgICAgICAgICdjc3VuaWNvZGVhc2NpaScgICAgICAgICAgICA9PiAnVVRGLTE2QkUnLAorICAgICAgICAnY3N1bmljb2RlbGF0aW4xJyAgICAgICAgICAgPT4gJ1VURi0xNkJFJywKKyAgICAgICAgJ2NzdmlxcicgICAgICAgICAgICAgICAgICAgID0+ICdWSVFSJywKKyAgICAgICAgJ2NzdmlzY2lpJyAgICAgICAgICAgICAgICAgID0+ICdWSVNDSUknLAorICAgICAgICAnY3lyaWxsaWMnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTUnLAorICAgICAgICAnZG9zLTg3NCcgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtODc0JywKKyAgICAgICAgJ2VjbWEtMTE0JyAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS02JywKKyAgICAgICAgJ2VjbWEtMTE4JyAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS03JywKKyAgICAgICAgJ2VjbWEtY3lyaWxsaWMnICAgICAgICAgICAgID0+ICdJU08tSVItMTExJywKKyAgICAgICAgJ2Vsb3RfOTI4JyAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS03JywKKyAgICAgICAgJ2diXzIzMTInICAgICAgICAgICAgICAgICAgID0+ICdHQjIzMTInLAorICAgICAgICAnZ2JfMjMxMi04MCcgICAgICAgICAgICAgICAgPT4gJ0dCMjMxMicsCisgICAgICAgICdncmVlaycgICAgICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNycsCisgICAgICAgICdncmVlazgnICAgICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNycsCisgICAgICAgICdoZWJyZXcnICAgICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktOCcsCisgICAgICAgICdpYm0tODY0JyAgICAgICAgICAgICAgICAgICA9PiAnSUJNODY0JywKKyAgICAgICAgJ2libS04NjRpJyAgICAgICAgICAgICAgICAgID0+ICdJQk04NjRpJywKKyAgICAgICAgJ2libTgxOScgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xJywKKyAgICAgICAgJ2libTg3NCcgICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTg3NCcsCisgICAgICAgICdpc28tMTA2NDYnICAgICAgICAgICAgICAgICA9PiAnVVRGLTE2QkUnLAorICAgICAgICAnaXNvLTEwNjQ2LWotMScgICAgICAgICAgICAgPT4gJ1VURi0xNkJFJywKKyAgICAgICAgJ2lzby0xMDY0Ni11Y3MtMicgICAgICAgICAgID0+ICdVVEYtMTZCRScsCisgICAgICAgICdpc28tMTA2NDYtdWNzLTQnICAgICAgICAgICA9PiAnVVRGLTMyQkUnLAorICAgICAgICAnaXNvLTEwNjQ2LXVjcy1iYXNpYycgICAgICAgPT4gJ1VURi0xNkJFJywKKyAgICAgICAgJ2lzby0xMDY0Ni11bmljb2RlLWxhdGluMScgID0+ICdVVEYtMTZCRScsCisgICAgICAgICdpc28tMjAyMi1jbi1leHQnICAgICAgICAgICA9PiAnSVNPLTIwMjItQ04nLAorICAgICAgICAnaXNvLTIwMjItanAtMicgICAgICAgICAgICAgPT4gJ0lTTy0yMDIyLUpQJywKKyAgICAgICAgJ2lzby04ODU5LThpJyAgICAgICAgICAgICAgID0+ICdJU08tODg1OS04LUknLAorICAgICAgICAnaXNvLWlyLTEwMCcgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEnLAorICAgICAgICAnaXNvLWlyLTEwMScgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTInLAorICAgICAgICAnaXNvLWlyLTEwMycgICAgICAgICAgICAgICAgPT4gJ1QuNjEtOGJpdCcsCisgICAgICAgICdpc28taXItMTA5JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktMycsCisgICAgICAgICdpc28taXItMTEwJyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNCcsCisgICAgICAgICdpc28taXItMTI2JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNycsCisgICAgICAgICdpc28taXItMTI3JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNicsCisgICAgICAgICdpc28taXItMTM4JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktOCcsCisgICAgICAgICdpc28taXItMTQ0JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktNScsCisgICAgICAgICdpc28taXItMTQ4JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktOScsCisgICAgICAgICdpc28taXItMTQ5JyAgICAgICAgICAgICAgICA9PiAnRVVDLUtSJywKKyAgICAgICAgJ2lzby1pci0xNTcnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xMCcsCisgICAgICAgICdpc28taXItNTgnICAgICAgICAgICAgICAgICA9PiAnR0IyMzEyJywKKyAgICAgICAgJ2lzbzg4NTktMScgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xJywKKyAgICAgICAgJ2lzbzg4NTktMTAnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xMCcsCisgICAgICAgICdpc284ODU5LTExJyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktMTEnLAorICAgICAgICAnaXNvODg1OS0xMycgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEzJywKKyAgICAgICAgJ2lzbzg4NTktMTQnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xNCcsCisgICAgICAgICdpc284ODU5LTE1JyAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktMTUnLAorICAgICAgICAnaXNvODg1OS0yJyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTInLAorICAgICAgICAnaXNvODg1OS0zJyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTMnLAorICAgICAgICAnaXNvODg1OS00JyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTQnLAorICAgICAgICAnaXNvODg1OS01JyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTUnLAorICAgICAgICAnaXNvODg1OS02JyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTYnLAorICAgICAgICAnaXNvODg1OS03JyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTcnLAorICAgICAgICAnaXNvODg1OS04JyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTgnLAorICAgICAgICAnaXNvODg1OS05JyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTknLAorICAgICAgICAnaXNvODg1OTEnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEnLAorICAgICAgICAnaXNvODg1OTEwJyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEwJywKKyAgICAgICAgJ2lzbzg4NTkxMScgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xMScsCisgICAgICAgICdpc284ODU5MTInICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktMTInLAorICAgICAgICAnaXNvODg1OTEzJyAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEzJywKKyAgICAgICAgJ2lzbzg4NTkxNCcgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xNCcsCisgICAgICAgICdpc284ODU5MTUnICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktMTUnLAorICAgICAgICAnaXNvODg1OTInICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTInLAorICAgICAgICAnaXNvODg1OTMnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTMnLAorICAgICAgICAnaXNvODg1OTQnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTQnLAorICAgICAgICAnaXNvODg1OTUnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTUnLAorICAgICAgICAnaXNvODg1OTYnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTYnLAorICAgICAgICAnaXNvODg1OTcnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTcnLAorICAgICAgICAnaXNvODg1OTgnICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTgnLAorICAgICAgICAnaXNvODg1OTknICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTknLAorICAgICAgICAnaXNvXzg4NTktMScgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEnLAorICAgICAgICAnaXNvXzg4NTktMTUnICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTE1JywKKyAgICAgICAgJ2lzb184ODU5LTE6MTk4NycgICAgICAgICAgID0+ICdJU08tODg1OS0xJywKKyAgICAgICAgJ2lzb184ODU5LTInICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0yJywKKyAgICAgICAgJ2lzb184ODU5LTI6MTk4NycgICAgICAgICAgID0+ICdJU08tODg1OS0yJywKKyAgICAgICAgJ2lzb184ODU5LTMnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0zJywKKyAgICAgICAgJ2lzb184ODU5LTM6MTk4OCcgICAgICAgICAgID0+ICdJU08tODg1OS0zJywKKyAgICAgICAgJ2lzb184ODU5LTQnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS00JywKKyAgICAgICAgJ2lzb184ODU5LTQ6MTk4OCcgICAgICAgICAgID0+ICdJU08tODg1OS00JywKKyAgICAgICAgJ2lzb184ODU5LTUnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS01JywKKyAgICAgICAgJ2lzb184ODU5LTU6MTk4OCcgICAgICAgICAgID0+ICdJU08tODg1OS01JywKKyAgICAgICAgJ2lzb184ODU5LTYnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS02JywKKyAgICAgICAgJ2lzb184ODU5LTY6MTk4NycgICAgICAgICAgID0+ICdJU08tODg1OS02JywKKyAgICAgICAgJ2lzb184ODU5LTcnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS03JywKKyAgICAgICAgJ2lzb184ODU5LTc6MTk4NycgICAgICAgICAgID0+ICdJU08tODg1OS03JywKKyAgICAgICAgJ2lzb184ODU5LTgnICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS04JywKKyAgICAgICAgJ2lzb184ODU5LTg6MTk4OCcgICAgICAgICAgID0+ICdJU08tODg1OS04JywKKyAgICAgICAgJ2lzb184ODU5LTknICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS05JywKKyAgICAgICAgJ2lzb184ODU5LTk6MTk4OScgICAgICAgICAgID0+ICdJU08tODg1OS05JywKKyAgICAgICAgJ2tvaScgICAgICAgICAgICAgICAgICAgICAgID0+ICdLT0k4LVInLAorICAgICAgICAna29pOCcgICAgICAgICAgICAgICAgICAgICAgPT4gJ0tPSTgtUicsCisgICAgICAgICdrb2k4LXJ1JyAgICAgICAgICAgICAgICAgICA9PiAnS09JOC1VJywKKyAgICAgICAgJ2tvaThfcicgICAgICAgICAgICAgICAgICAgID0+ICdLT0k4LVInLAorICAgICAgICAna29yZWFuJyAgICAgICAgICAgICAgICAgICAgPT4gJ0VVQy1LUicsCisgICAgICAgICdrc19jXzU2MDEtMTk4NycgICAgICAgICAgICA9PiAnRVVDLUtSJywKKyAgICAgICAgJ2tzX2NfNTYwMS0xOTg5JyAgICAgICAgICAgID0+ICdFVUMtS1InLAorICAgICAgICAna3NjNTYwMScgICAgICAgICAgICAgICAgICAgPT4gJ0VVQy1LUicsCisgICAgICAgICdrc2NfNTYwMScgICAgICAgICAgICAgICAgICA9PiAnRVVDLUtSJywKKyAgICAgICAgJ2wxJyAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xJywKKyAgICAgICAgJ2wyJyAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0yJywKKyAgICAgICAgJ2wzJyAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0zJywKKyAgICAgICAgJ2w0JyAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS00JywKKyAgICAgICAgJ2w1JyAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS05JywKKyAgICAgICAgJ2w2JyAgICAgICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS0xMCcsCisgICAgICAgICdsOScgICAgICAgICAgICAgICAgICAgICAgICA9PiAnSVNPLTg4NTktMTUnLAorICAgICAgICAnbGF0aW4xJyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEnLAorICAgICAgICAnbGF0aW4yJyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTInLAorICAgICAgICAnbGF0aW4zJyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTMnLAorICAgICAgICAnbGF0aW40JyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTQnLAorICAgICAgICAnbGF0aW41JyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTknLAorICAgICAgICAnbGF0aW42JyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTEwJywKKyAgICAgICAgJ2xvZ2ljYWwnICAgICAgICAgICAgICAgICAgID0+ICdJU08tODg1OS04LUknLAorICAgICAgICAnbWFjJyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ3gtbWFjLXJvbWFuJywKKyAgICAgICAgJ21hY2ludG9zaCcgICAgICAgICAgICAgICAgID0+ICd4LW1hYy1yb21hbicsCisgICAgICAgICdtczkzMicgICAgICAgICAgICAgICAgICAgICA9PiAnU2hpZnRfSklTJywKKyAgICAgICAgJ21zX2thbmppJyAgICAgICAgICAgICAgICAgID0+ICdTaGlmdF9KSVMnLAorICAgICAgICAnc2hpZnQtamlzJyAgICAgICAgICAgICAgICAgPT4gJ1NoaWZ0X0pJUycsCisgICAgICAgICdzamlzJyAgICAgICAgICAgICAgICAgICAgICA9PiAnU2hpZnRfSklTJywKKyAgICAgICAgJ3N1bl9ldV9ncmVlaycgICAgICAgICAgICAgID0+ICdJU08tODg1OS03JywKKyAgICAgICAgJ3QuNjEnICAgICAgICAgICAgICAgICAgICAgID0+ICdULjYxLThiaXQnLAorICAgICAgICAndGlzNjIwJyAgICAgICAgICAgICAgICAgICAgPT4gJ1RJUy02MjAnLAorICAgICAgICAndW5pY29kZS0xLTEtdXRmLTcnICAgICAgICAgPT4gJ1VURi03JywKKyAgICAgICAgJ3VuaWNvZGUtMS0xLXV0Zi04JyAgICAgICAgID0+ICdVVEYtOCcsCisgICAgICAgICd1bmljb2RlLTItMC11dGYtNycgICAgICAgICA9PiAnVVRGLTcnLAorICAgICAgICAndmlzdWFsJyAgICAgICAgICAgICAgICAgICAgPT4gJ0lTTy04ODU5LTgnLAorICAgICAgICAnd2luZG93cy0zMWonICAgICAgICAgICAgICAgPT4gJ1NoaWZ0X0pJUycsCisgICAgICAgICd3aW5kb3dzLTk0OScgICAgICAgICAgICAgICA9PiAnRVVDLUtSJywKKyAgICAgICAgJ3gtY3AxMjUwJyAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTAnLAorICAgICAgICAneC1jcDEyNTEnICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MScsCisgICAgICAgICd4LWNwMTI1MicgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjUyJywKKyAgICAgICAgJ3gtY3AxMjUzJyAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTMnLAorICAgICAgICAneC1jcDEyNTQnICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NCcsCisgICAgICAgICd4LWNwMTI1NScgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU1JywKKyAgICAgICAgJ3gtY3AxMjU2JyAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTYnLAorICAgICAgICAneC1jcDEyNTcnICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NycsCisgICAgICAgICd4LWNwMTI1OCcgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU4JywKKyAgICAgICAgJ3gtZXVjLWpwJyAgICAgICAgICAgICAgICAgID0+ICdFVUMtSlAnLAorICAgICAgICAneC1nYmsnICAgICAgICAgICAgICAgICAgICAgPT4gJ2diaycsCisgICAgICAgICd4LWlzby0xMDY0Ni11Y3MtMi1iZScgICAgICA9PiAnVVRGLTE2QkUnLAorICAgICAgICAneC1pc28tMTA2NDYtdWNzLTItbGUnICAgICAgPT4gJ1VURi0xNkxFJywKKyAgICAgICAgJ3gtaXNvLTEwNjQ2LXVjcy00LWJlJyAgICAgID0+ICdVVEYtMzJCRScsCisgICAgICAgICd4LWlzby0xMDY0Ni11Y3MtNC1sZScgICAgICA9PiAnVVRGLTMyTEUnLAorICAgICAgICAneC1zamlzJyAgICAgICAgICAgICAgICAgICAgPT4gJ1NoaWZ0X0pJUycsCisgICAgICAgICd4LXVuaWNvZGUtMi0wLXV0Zi03JyAgICAgICA9PiAnVVRGLTcnLAorICAgICAgICAneC14LWJpZzUnICAgICAgICAgICAgICAgICAgPT4gJ0JpZzUnLAorICAgICAgICAnemhfY24uZXVjJyAgICAgICAgICAgICAgICAgPT4gJ0dCMjMxMicsCisgICAgICAgICd6aF90dy1iaWc1JyAgICAgICAgICAgICAgICA9PiAnQmlnNScsCisgICAgICAgICd6aF90dy1ldWMnICAgICAgICAgICAgICAgICA9PiAneC1ldWMtdHcnLAorICAgIF07CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGV4dCB0byBVVEYtOC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHRleHQgICAgICAgIFRleHQgdG8gZGVjb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkZnJvbUNoYXJzZXQgT3JpZ2luYWwgY2hhcnNldAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZGVjb2RlKHN0cmluZyAkdGV4dCwgc3RyaW5nICRmcm9tQ2hhcnNldCk6IHN0cmluZworICAgIHsKKyAgICAgICAgc3RhdGljICR1dGY4QWxpYXNlcyA9IFsKKyAgICAgICAgICAgICd1bmljb2RlLTEtMS11dGYtOCcgPT4gdHJ1ZSwKKyAgICAgICAgICAgICd1dGY4JyAgICAgICAgICAgICAgPT4gdHJ1ZSwKKyAgICAgICAgICAgICd1dGYtOCcgICAgICAgICAgICAgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdVVEY4JyAgICAgICAgICAgICAgPT4gdHJ1ZSwKKyAgICAgICAgICAgICdVVEYtOCcgICAgICAgICAgICAgPT4gdHJ1ZSwKKyAgICAgICAgXTsKKworICAgICAgICBpZiAoaXNzZXQoJHV0ZjhBbGlhc2VzWyRmcm9tQ2hhcnNldF0pKSB7CisgICAgICAgICAgICByZXR1cm4gJHRleHQ7CisgICAgICAgIH0KKworICAgICAgICAkb3JpZ2luYWxGcm9tQ2hhcnNldCAgPSAkZnJvbUNoYXJzZXQ7CisgICAgICAgICRsb3dlcmNhc2VGcm9tQ2hhcnNldCA9IFxzdHJ0b2xvd2VyKCRmcm9tQ2hhcnNldCk7CisgICAgICAgIGlmIChpc3NldChzZWxmOjokY2hhcnNldEFsaWFzZXNbJGxvd2VyY2FzZUZyb21DaGFyc2V0XSkpIHsKKyAgICAgICAgICAgICRmcm9tQ2hhcnNldCA9IHNlbGY6OiRjaGFyc2V0QWxpYXNlc1skbG93ZXJjYXNlRnJvbUNoYXJzZXRdOworICAgICAgICB9CisKKyAgICAgICAgXHNldF9lcnJvcl9oYW5kbGVyKHN0YXRpYyBmdW5jdGlvbiAoKTogYm9vbCB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgJGljb252RGVjb2RlZFRleHQgPSBcaWNvbnYoJGZyb21DaGFyc2V0LCAnVVRGLTgnLCAkdGV4dCk7CisgICAgICAgIGlmIChmYWxzZSA9PT0gJGljb252RGVjb2RlZFRleHQpIHsKKyAgICAgICAgICAgICRpY29udkRlY29kZWRUZXh0ID0gXGljb252KCRvcmlnaW5hbEZyb21DaGFyc2V0LCAnVVRGLTgnLCAkdGV4dCk7CisgICAgICAgIH0KKworICAgICAgICBccmVzdG9yZV9lcnJvcl9oYW5kbGVyKCk7CisKKyAgICAgICAgaWYgKGZhbHNlICE9PSAkaWNvbnZEZWNvZGVkVGV4dCkgeworICAgICAgICAgICAgcmV0dXJuICRpY29udkRlY29kZWRUZXh0OworICAgICAgICB9CisKKyAgICAgICAgJGVycm9yTWVzc2FnZSA9IG51bGw7CisgICAgICAgICRlcnJvck51bWJlciAgPSAwOworICAgICAgICBcc2V0X2Vycm9yX2hhbmRsZXIoc3RhdGljIGZ1bmN0aW9uICgkbnIsICRtZXNzYWdlKSB1c2UgKCYkZXJyb3JNZXNzYWdlLCAmJGVycm9yTnVtYmVyKTogYm9vbCB7CisgICAgICAgICAgICAkZXJyb3JNZXNzYWdlID0gJG1lc3NhZ2U7CisgICAgICAgICAgICAkZXJyb3JOdW1iZXIgPSAkbnI7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9KTsKKworICAgICAgICAkZGVjb2RlZFRleHQgPSBcbWJfY29udmVydF9lbmNvZGluZygkdGV4dCwgJ1VURi04JywgJGZyb21DaGFyc2V0KTsKKworICAgICAgICBccmVzdG9yZV9lcnJvcl9oYW5kbGVyKCk7CisKKyAgICAgICAgaWYgKG51bGwgIT09ICRlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZENoYXJzZXRFeGNlcHRpb24oXHNwcmludGYoCisgICAgICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIGNoYXJzZXQgIiVzIiVzOiAlcycsCisgICAgICAgICAgICAgICAgJG9yaWdpbmFsRnJvbUNoYXJzZXQsCisgICAgICAgICAgICAgICAgKCRmcm9tQ2hhcnNldCAhPT0gJG9yaWdpbmFsRnJvbUNoYXJzZXQpID8gXHNwcmludGYoJyAoYWxpYXMgZm91bmQ6ICIlcyIpJywgJGZyb21DaGFyc2V0KSA6ICcnLAorICAgICAgICAgICAgICAgICRlcnJvck1lc3NhZ2UKKyAgICAgICAgICAgICksICRlcnJvck51bWJlcik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGRlY29kZWRUZXh0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2VJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZUludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRhOGFiNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL01lc3NhZ2VJbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsOTcgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwOworCisvKioKKyAqIEFuIElNQVAgbWVzc2FnZSAoZS1tYWlsKS4KKyAqLworaW50ZXJmYWNlIE1lc3NhZ2VJbnRlcmZhY2UgZXh0ZW5kcyBNZXNzYWdlXEJhc2ljTWVzc2FnZUludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEdldCByYXcgcGFydCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDb250ZW50KCk6IHN0cmluZzsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIHJlY2VudCBmbGFnIHZhbHVlIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1JlY2VudCgpOiA/c3RyaW5nOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgdW5zZWVuIGZsYWcgdmFsdWUgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzVW5zZWVuKCk6IGJvb2w7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWVzc2FnZSBmbGFnZ2VkIGZsYWcgdmFsdWUgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzRmxhZ2dlZCgpOiBib29sOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgYW5zd2VyZWQgZmxhZyB2YWx1ZSAoZnJvbSBoZWFkZXJzKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNBbnN3ZXJlZCgpOiBib29sOworCisgICAgLyoqCisgICAgICogR2V0IG1lc3NhZ2UgZGVsZXRlZCBmbGFnIHZhbHVlIChmcm9tIGhlYWRlcnMpLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc0RlbGV0ZWQoKTogYm9vbDsKKworICAgIC8qKgorICAgICAqIEdldCBtZXNzYWdlIGRyYWZ0IGZsYWcgdmFsdWUgKGZyb20gaGVhZGVycykuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzRHJhZnQoKTogYm9vbDsKKworICAgIC8qKgorICAgICAqIEhhcyB0aGUgbWVzc2FnZSBiZWVuIG1hcmtlZCBhcyByZWFkPworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc1NlZW4oKTogYm9vbDsKKworICAgIC8qKgorICAgICAqIE1hcmsgbWVzc2FnZSBhcyBzZWVuLgorICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxLjEsIHRvIGJlIHJlbW92ZWQgaW4gMi4wCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIG1hc2tBc1NlZW4oKTogYm9vbDsKKworICAgIC8qKgorICAgICAqIE1hcmsgbWVzc2FnZSBhcyBzZWVuLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBtYXJrQXNTZWVuKCk6IGJvb2w7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlIG1lc3NhZ2UgdG8gYW5vdGhlciBtYWlsYm94LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5KE1haWxib3hJbnRlcmZhY2UgJG1haWxib3gpOiB2b2lkOworCisgICAgLyoqCisgICAgICogTW92ZSBtZXNzYWdlIHRvIGFub3RoZXIgbWFpbGJveC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gbW92ZShNYWlsYm94SW50ZXJmYWNlICRtYWlsYm94KTogdm9pZDsKKworICAgIC8qKgorICAgICAqIERlbGV0ZSBtZXNzYWdlLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoKTogdm9pZDsKKworICAgIC8qKgorICAgICAqIFVuZGVsZXRlIG1lc3NhZ2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHVuZGVsZXRlKCk6IHZvaWQ7CisKKyAgICAvKioKKyAgICAgKiBTZXQgRmxhZyBNZXNzYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZmxhZyBcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RmxhZyhzdHJpbmcgJGZsYWcpOiBib29sOworCisgICAgLyoqCisgICAgICogQ2xlYXIgRmxhZyBNZXNzYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZmxhZyBcU2VlbiwgXEFuc3dlcmVkLCBcRmxhZ2dlZCwgXERlbGV0ZWQsIGFuZCBcRHJhZnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJGbGFnKHN0cmluZyAkZmxhZyk6IGJvb2w7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlSXRlcmF0b3IucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZUl0ZXJhdG9yLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjE3NDc4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZUl0ZXJhdG9yLnBocApAQCAtMCwwICsxLDQ1IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKworZmluYWwgY2xhc3MgTWVzc2FnZUl0ZXJhdG9yIGV4dGVuZHMgXEFycmF5SXRlcmF0b3IgaW1wbGVtZW50cyBNZXNzYWdlSXRlcmF0b3JJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBAdmFyIEltYXBSZXNvdXJjZUludGVyZmFjZQorICAgICAqLworICAgIHByaXZhdGUgJHJlc291cmNlOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSW1hcFJlc291cmNlSW50ZXJmYWNlICRyZXNvdXJjZSAgICAgICBJTUFQIHJlc291cmNlCisgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAgICAgICAkbWVzc2FnZU51bWJlcnMgQXJyYXkgb2YgbWVzc2FnZSBudW1iZXJzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEltYXBSZXNvdXJjZUludGVyZmFjZSAkcmVzb3VyY2UsIGFycmF5ICRtZXNzYWdlTnVtYmVycykKKyAgICB7CisgICAgICAgICR0aGlzLT5yZXNvdXJjZSA9ICRyZXNvdXJjZTsKKworICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRtZXNzYWdlTnVtYmVycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGN1cnJlbnQgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY3VycmVudCgpOiBNZXNzYWdlSW50ZXJmYWNlCisgICAgeworICAgICAgICAkY3VycmVudCA9IHBhcmVudDo6Y3VycmVudCgpOworICAgICAgICBpZiAoIVxpc19pbnQoJGN1cnJlbnQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uXE91dE9mQm91bmRzRXhjZXB0aW9uKFxzcHJpbnRmKAorICAgICAgICAgICAgICAgICdUaGUgY3VycmVudCB2YWx1ZSAiJXMiIGlzblwndCBhbiBpbnRlZ2VyIGFuZCBkb2VzblwndCByZXByZXNlbnQgYSBtZXNzYWdlOycKKyAgICAgICAgICAgICAgICAuICcgdHJ5IHRvIGN5Y2xlIHRoaXMgIiVzIiB3aXRoIGEgbmF0aXZlIHBocCBmdW5jdGlvbiBsaWtlIGZvcmVhY2ggb3Igd2l0aCB0aGUgbWV0aG9kIGdldEFycmF5Q29weSgpLCcKKyAgICAgICAgICAgICAgICAuICcgb3IgY2hlY2sgaXQgYnkgY2FsbGluZyB0aGUgbWV0aG9kcyB2YWxpZCgpLicsCisgICAgICAgICAgICAgICAgXGlzX29iamVjdCgkY3VycmVudCkgPyBcZ2V0X2NsYXNzKCRjdXJyZW50KSA6IFxnZXR0eXBlKCRjdXJyZW50KSwKKyAgICAgICAgICAgICAgICBzdGF0aWM6OmNsYXNzCisgICAgICAgICAgICApKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZSgkdGhpcy0+cmVzb3VyY2UsICRjdXJyZW50KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9NZXNzYWdlSXRlcmF0b3JJbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZUl0ZXJhdG9ySW50ZXJmYWNlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWQ3OTg4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvTWVzc2FnZUl0ZXJhdG9ySW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDEzIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKworaW50ZXJmYWNlIE1lc3NhZ2VJdGVyYXRvckludGVyZmFjZSBleHRlbmRzIFxJdGVyYXRvcgoreworICAgIC8qKgorICAgICAqIEdldCBjdXJyZW50IG1lc3NhZ2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGN1cnJlbnQoKTogTWVzc2FnZUludGVyZmFjZTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9BYnN0cmFjdERhdGUucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0Fic3RyYWN0RGF0ZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RkNzMxMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9BYnN0cmFjdERhdGUucGhwCkBAIC0wLDAgKzEsNTEgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaDsKKwordXNlIERhdGVUaW1lSW50ZXJmYWNlOworCisvKioKKyAqIFJlcHJlc2VudHMgYSBkYXRlIGNvbmRpdGlvbi4KKyAqLworYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REYXRlIGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogRm9ybWF0IGZvciBkYXRlcyB0byBiZSBzZW50IHRvIHRoZSBJTUFQIHNlcnZlci4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSAkZGF0ZUZvcm1hdDsKKworICAgIC8qKgorICAgICAqIFRoZSBkYXRlIHRvIGJlIHVzZWQgZm9yIHRoZSBjb25kaXRpb24uCisgICAgICoKKyAgICAgKiBAdmFyIERhdGVUaW1lSW50ZXJmYWNlCisgICAgICovCisgICAgcHJpdmF0ZSAkZGF0ZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIERhdGVUaW1lSW50ZXJmYWNlICRkYXRlIG9wdGlvbmFsIGRhdGUgZm9yIHRoZSBjb25kaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRGF0ZVRpbWVJbnRlcmZhY2UgJGRhdGUsIHN0cmluZyAkZGF0ZUZvcm1hdCA9ICdqLU0tWScpCisgICAgeworICAgICAgICAkdGhpcy0+ZGF0ZSAgICAgICA9ICRkYXRlOworICAgICAgICAkdGhpcy0+ZGF0ZUZvcm1hdCA9ICRkYXRlRm9ybWF0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjb25kaXRpb24gdG8gYSBzdHJpbmcgdGhhdCBjYW4gYmUgc2VudCB0byB0aGUgSU1BUCBzZXJ2ZXIuCisgICAgICovCisgICAgZmluYWwgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuIFxzcHJpbnRmKCclcyAiJXMiJywgJHRoaXMtPmdldEtleXdvcmQoKSwgJHRoaXMtPmRhdGUtPmZvcm1hdCgkdGhpcy0+ZGF0ZUZvcm1hdCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEtleXdvcmQoKTogc3RyaW5nOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0Fic3RyYWN0VGV4dC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvQWJzdHJhY3RUZXh0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWIyNTE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0Fic3RyYWN0VGV4dC5waHAKQEAgLTAsMCArMSw0MiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoOworCisvKioKKyAqIFJlcHJlc2VudHMgYSB0ZXh0IGJhc2VkIGNvbmRpdGlvbi4gVGV4dCBiYXNlZCBjb25kaXRpb25zIHVzZSBhIGNvbnRhaW5zCisgKiByZXN0cmljdGlvbi4KKyAqLworYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RUZXh0IGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogVGV4dCB0byBiZSB1c2VkIGZvciB0aGUgY29uZGl0aW9uLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICR0ZXh0OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR0ZXh0IG9wdGlvbmFsIHRleHQgZm9yIHRoZSBjb25kaXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3Qoc3RyaW5nICR0ZXh0KQorICAgIHsKKyAgICAgICAgJHRoaXMtPnRleHQgPSAkdGV4dDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgY29uZGl0aW9uIHRvIGEgc3RyaW5nIHRoYXQgY2FuIGJlIHNlbnQgdG8gdGhlIElNQVAgc2VydmVyLgorICAgICAqLworICAgIGZpbmFsIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiBcc3ByaW50ZignJXMgIiVzIicsICR0aGlzLT5nZXRLZXl3b3JkKCksICR0aGlzLT50ZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZzsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9Db25kaXRpb25JbnRlcmZhY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0NvbmRpdGlvbkludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlZDI4YwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9Db25kaXRpb25JbnRlcmZhY2UucGhwCkBAIC0wLDAgKzEsMTYgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaDsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgY29uZGl0aW9uIHRoYXQgY2FuIGJlIHVzZWQgaW4gYSBzZWFyY2ggZXhwcmVzc2lvbi4KKyAqLworaW50ZXJmYWNlIENvbmRpdGlvbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjb25kaXRpb24gdG8gYSBzdHJpbmcgdGhhdCBjYW4gYmUgc2VudCB0byB0aGUgSU1BUCBzZXJ2ZXIuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZzsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9EYXRlL0JlZm9yZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRGF0ZS9CZWZvcmUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MWYzZjIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRGF0ZS9CZWZvcmUucGhwCkBAIC0wLDAgKzEsMjIgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaFxEYXRlOworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxBYnN0cmFjdERhdGU7CisKKy8qKgorICogUmVwcmVzZW50cyBhIGRhdGUgYmVmb3JlIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBoYXZlIGEgZGF0ZSBiZWZvcmUgdGhlCisgKiBzcGVjaWZpZWQgZGF0ZSBpbiBvcmRlciB0byBtYXRjaCB0aGUgY29uZGl0aW9uLgorICovCitmaW5hbCBjbGFzcyBCZWZvcmUgZXh0ZW5kcyBBYnN0cmFjdERhdGUKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdCRUZPUkUnOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9EYXRlL09uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9EYXRlL09uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjAwZGRlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0RhdGUvT24ucGhwCkBAIC0wLDAgKzEsMjIgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaFxEYXRlOworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxBYnN0cmFjdERhdGU7CisKKy8qKgorICogUmVwcmVzZW50cyBhIGRhdGUgb24gY29uZGl0aW9uLiBNZXNzYWdlcyBtdXN0IGhhdmUgYSBkYXRlIG1hdGNoaW5nIHRoZQorICogc3BlY2lmaWVkIGRhdGUgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgT24gZXh0ZW5kcyBBYnN0cmFjdERhdGUKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdPTic7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0RhdGUvU2luY2UucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0RhdGUvU2luY2UucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxODI1ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRGF0ZS9TaW5jZS5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXERhdGU7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXEFic3RyYWN0RGF0ZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgZGF0ZSBhZnRlciBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3QgaGF2ZSBhIGRhdGUgYWZ0ZXIgdGhlCisgKiBzcGVjaWZpZWQgZGF0ZSBpbiBvcmRlciB0byBtYXRjaCB0aGUgY29uZGl0aW9uLgorICovCitmaW5hbCBjbGFzcyBTaW5jZSBleHRlbmRzIEFic3RyYWN0RGF0ZQoreworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEtleXdvcmQoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJ1NJTkNFJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRW1haWwvQmNjLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9FbWFpbC9CY2MucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NTA5NzMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRW1haWwvQmNjLnBocApAQCAtMCwwICsxLDIzIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcRW1haWw7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXEFic3RyYWN0VGV4dDsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgIkJjYyIgZW1haWwgYWRkcmVzcyBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3QgaGF2ZSBiZWVuIGFkZHJlc3NlZAorICogdG8gdGhlIHNwZWNpZmllZCByZWNpcGllbnQgKGFsb25nIHdpdGggYW55IG90aGVycykgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlCisgKiBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIEJjYyBleHRlbmRzIEFic3RyYWN0VGV4dAoreworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEtleXdvcmQoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJ0JDQyc7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0VtYWlsL0NjLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9FbWFpbC9DYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJkMDY0MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9FbWFpbC9DYy5waHAKQEAgLTAsMCArMSwyMyBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXEVtYWlsOworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxBYnN0cmFjdFRleHQ7CisKKy8qKgorICogUmVwcmVzZW50cyBhICJDYyIgZW1haWwgYWRkcmVzcyBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3QgaGF2ZSBiZWVuIGFkZHJlc3NlZAorICogdG8gdGhlIHNwZWNpZmllZCByZWNpcGllbnQgKGFsb25nIHdpdGggYW55IG90aGVycykgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlCisgKiBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIENjIGV4dGVuZHMgQWJzdHJhY3RUZXh0Cit7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5d29yZCB0aGF0IHRoZSBjb25kaXRpb24gcmVwcmVzZW50cy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0S2V5d29yZCgpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnQ0MnOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9FbWFpbC9Gcm9tLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9FbWFpbC9Gcm9tLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjkwMTIxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0VtYWlsL0Zyb20ucGhwCkBAIC0wLDAgKzEsMjIgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaFxFbWFpbDsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQWJzdHJhY3RUZXh0OworCisvKioKKyAqIFJlcHJlc2VudHMgYSAiRnJvbSIgZW1haWwgYWRkcmVzcyBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3QgaGF2ZSBiZWVuIHNlbnQKKyAqIGZyb20gdGhlIHNwZWNpZmllZCBlbWFpbCBhZGRyZXNzIGluIG9yZGVyIHRvIG1hdGNoIHRoZSBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIEZyb20gZXh0ZW5kcyBBYnN0cmFjdFRleHQKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdGUk9NJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRW1haWwvVG8ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0VtYWlsL1RvLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmY1YzA5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0VtYWlsL1RvLnBocApAQCAtMCwwICsxLDIzIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcRW1haWw7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXEFic3RyYWN0VGV4dDsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgIlRvIiBlbWFpbCBhZGRyZXNzIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBoYXZlIGJlZW4gYWRkcmVzc2VkCisgKiB0byB0aGUgc3BlY2lmaWVkIHJlY2lwaWVudCAoYWxvbmcgd2l0aCBhbnkgb3RoZXJzKSBpbiBvcmRlciB0byBtYXRjaCB0aGUKKyAqIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgVG8gZXh0ZW5kcyBBYnN0cmFjdFRleHQKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdUTyc7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvQW5zd2VyZWQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvQW5zd2VyZWQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNjcxYTMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9BbnN3ZXJlZC5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXEZsYWc7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXENvbmRpdGlvbkludGVyZmFjZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGFuIEFOU1dFUkVEIGZsYWcgY29uZGl0aW9uLiBNZXNzYWdlcyBtdXN0IGhhdmUgdGhlIFxcQU5TV0VSRUQgZmxhZworICogc2V0IGluIG9yZGVyIHRvIG1hdGNoIHRoZSBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIEFuc3dlcmVkIGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5d29yZCB0aGF0IHRoZSBjb25kaXRpb24gcmVwcmVzZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdG9TdHJpbmcoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJ0FOU1dFUkVEJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9GbGFnZ2VkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9GbGFnL0ZsYWdnZWQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMTYxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9GbGFnZ2VkLnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcRmxhZzsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIFJlcHJlc2VudHMgYSBGTEFHR0VEIGZsYWcgY29uZGl0aW9uLiBNZXNzYWdlcyBtdXN0IGhhdmUgdGhlIFxcRkxBR0dFRCBmbGFnCisgKiAoaS5lLiB1cmdlbnQgb3IgaW1wb3J0YW50KSBzZXQgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgRmxhZ2dlZCBpbXBsZW1lbnRzIENvbmRpdGlvbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdGTEFHR0VEJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9SZWNlbnQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvUmVjZW50LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTBiYTczCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvUmVjZW50LnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcRmxhZzsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIFJlcHJlc2VudHMgYW4gUkVDRU5UIGZsYWcgY29uZGl0aW9uLiBNZXNzYWdlcyBtdXN0IGhhdmUgdGhlIFxcUkVDRU5UIGZsYWcKKyAqIHNldCBpbiBvcmRlciB0byBtYXRjaCB0aGUgY29uZGl0aW9uLgorICovCitmaW5hbCBjbGFzcyBSZWNlbnQgaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnUkVDRU5UJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9TZWVuLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9GbGFnL1NlZW4ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTJhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9TZWVuLnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcRmxhZzsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIFJlcHJlc2VudHMgYW4gU0VFTiBmbGFnIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBoYXZlIHRoZSBcXFNFRU4gZmxhZworICogc2V0IGluIG9yZGVyIHRvIG1hdGNoIHRoZSBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIFNlZW4gaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnU0VFTic7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvVW5hbnN3ZXJlZC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvRmxhZy9VbmFuc3dlcmVkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmM1NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvVW5hbnN3ZXJlZC5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXEZsYWc7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXENvbmRpdGlvbkludGVyZmFjZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGFuIFVOQU5TV0VSRUQgZmxhZyBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3Qgbm90IGhhdmUgdGhlCisgKiBcXEFOU1dFUkVEIGZsYWcgc2V0IGluIG9yZGVyIHRvIG1hdGNoIHRoZSBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIFVuYW5zd2VyZWQgaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnVU5BTlNXRVJFRCc7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvVW5mbGFnZ2VkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9GbGFnL1VuZmxhZ2dlZC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E1M2M2ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9GbGFnL1VuZmxhZ2dlZC5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXEZsYWc7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXENvbmRpdGlvbkludGVyZmFjZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgVU5GTEFHR0VEIGZsYWcgY29uZGl0aW9uLiBNZXNzYWdlcyBtdXN0IG5vIGhhdmUgdGhlIFxcRkxBR0dFRAorICogZmxhZyAoaS5lLiB1cmdlbnQgb3IgaW1wb3J0YW50KSBzZXQgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgVW5mbGFnZ2VkIGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5d29yZCB0aGF0IHRoZSBjb25kaXRpb24gcmVwcmVzZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdG9TdHJpbmcoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJ1VORkxBR0dFRCc7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL0ZsYWcvVW5zZWVuLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9GbGFnL1Vuc2Vlbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdkYjdkMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9GbGFnL1Vuc2Vlbi5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXEZsYWc7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXENvbmRpdGlvbkludGVyZmFjZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGFuIFVOU0VFTiBmbGFnIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBub3QgaGF2ZSB0aGUgXFxTRUVOIGZsYWcKKyAqIHNldCBpbiBvcmRlciB0byBtYXRjaCB0aGUgY29uZGl0aW9uLgorICovCitmaW5hbCBjbGFzcyBVbnNlZW4gaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnVU5TRUVOJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvTG9naWNhbE9wZXJhdG9yL0FsbC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvTG9naWNhbE9wZXJhdG9yL0FsbC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg2N2VjNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9Mb2dpY2FsT3BlcmF0b3IvQWxsLnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcTG9naWNhbE9wZXJhdG9yOworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxDb25kaXRpb25JbnRlcmZhY2U7CisKKy8qKgorICogUmVwcmVzZW50cyBhbiBBTEwgb3BlcmF0b3IuIE1lc3NhZ2VzIG11c3QgbWF0Y2ggYWxsIGNvbmRpdGlvbnMgZm9sbG93aW5nIHRoaXMKKyAqIG9wZXJhdG9yIGluIG9yZGVyIHRvIG1hdGNoIHRoZSBleHByZXNzaW9uLgorICovCitmaW5hbCBjbGFzcyBBbGwgaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnQUxMJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvTG9naWNhbE9wZXJhdG9yL09yQ29uZGl0aW9ucy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvTG9naWNhbE9wZXJhdG9yL09yQ29uZGl0aW9ucy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZlYmRkZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9Mb2dpY2FsT3BlcmF0b3IvT3JDb25kaXRpb25zLnBocApAQCAtMCwwICsxLDUwIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcTG9naWNhbE9wZXJhdG9yOworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxDb25kaXRpb25JbnRlcmZhY2U7CisKKy8qKgorICogUmVwcmVzZW50cyBhbiBPUiBvcGVyYXRvci4gTWVzc2FnZXMgb25seSBuZWVkIHRvIG1hdGNoIG9uZSBvZiB0aGUgY29uZGl0aW9ucworICogYWZ0ZXIgdGhpcyBvcGVyYXRvciB0byBtYXRjaCB0aGUgZXhwcmVzc2lvbi4KKyAqLworZmluYWwgY2xhc3MgT3JDb25kaXRpb25zIGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogVGhlIGNvbmRpdGlvbnMgdGhhdCB0b2dldGhlciByZXByZXNlbnQgdGhlIGV4cHJlc3Npb24uCisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSAkY29uZGl0aW9ucyA9IFtdOworCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRjb25kaXRpb25zKQorICAgIHsKKyAgICAgICAgZm9yZWFjaCAoJGNvbmRpdGlvbnMgYXMgJGNvbmRpdGlvbikgeworICAgICAgICAgICAgJHRoaXMtPmFkZENvbmRpdGlvbigkY29uZGl0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYSBuZXcgY29uZGl0aW9uIHRvIHRoZSBleHByZXNzaW9uLgorICAgICAqCisgICAgICogQHBhcmFtIENvbmRpdGlvbkludGVyZmFjZSAkY29uZGl0aW9uIHRoZSBjb25kaXRpb24gdG8gYmUgYWRkZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGFkZENvbmRpdGlvbihDb25kaXRpb25JbnRlcmZhY2UgJGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgICR0aGlzLT5jb25kaXRpb25zW10gPSAkY29uZGl0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgJGNvbmRpdGlvbnMgPSBcYXJyYXlfbWFwKHN0YXRpYyBmdW5jdGlvbiAoQ29uZGl0aW9uSW50ZXJmYWNlICRjb25kaXRpb24pOiBzdHJpbmcgeworICAgICAgICAgICAgcmV0dXJuICRjb25kaXRpb24tPnRvU3RyaW5nKCk7CisgICAgICAgIH0sICR0aGlzLT5jb25kaXRpb25zKTsKKworICAgICAgICByZXR1cm4gXHNwcmludGYoJyggJXMgKScsIFxpbXBsb2RlKCcgT1IgJywgJGNvbmRpdGlvbnMpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvUmF3RXhwcmVzc2lvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvUmF3RXhwcmVzc2lvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M2YTQ2NQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9SYXdFeHByZXNzaW9uLnBocApAQCAtMCwwICsxLDMxIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2g7CisKKy8qKgorICogUmVwcmVzZW50cyBhIHJhdyBleHByZXNzaW9uLgorICovCitmaW5hbCBjbGFzcyBSYXdFeHByZXNzaW9uIGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogVGV4dCB0byBiZSB1c2VkIGZvciB0aGUgY29uZGl0aW9uLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlICRleHByZXNzaW9uOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkZXhwcmVzc2lvbiB0ZXh0IGZvciB0aGUgY29uZGl0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHN0cmluZyAkZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgICR0aGlzLT5leHByZXNzaW9uID0gJGV4cHJlc3Npb247CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5leHByZXNzaW9uOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9TdGF0ZS9EZWxldGVkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9TdGF0ZS9EZWxldGVkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzQ1ODFlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1N0YXRlL0RlbGV0ZWQucGhwCkBAIC0wLDAgKzEsMjIgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaFxTdGF0ZTsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIFJlcHJlc2VudHMgYSBERUxFVEVEIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBoYXZlIGJlZW4gbWFya2VkIGZvciBkZWxldGlvbgorICogYnV0IG5vdCB5ZXQgZXhwdW5nZWQgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgRGVsZXRlZCBpbXBsZW1lbnRzIENvbmRpdGlvbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdERUxFVEVEJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvU3RhdGUvTmV3TWVzc2FnZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvU3RhdGUvTmV3TWVzc2FnZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThkZjRmYgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9TdGF0ZS9OZXdNZXNzYWdlLnBocApAQCAtMCwwICsxLDIxIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcU3RhdGU7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXENvbmRpdGlvbkludGVyZmFjZTsKKworLyoqCisgKiBSZXByZXNlbnRzIGEgTkVXIGNvbmRpdGlvbi4gT25seSBuZXcgbWVzc2FnZXMgd2lsbCBtYXRjaCB0aGlzIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgTmV3TWVzc2FnZSBpbXBsZW1lbnRzIENvbmRpdGlvbkludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRvU3RyaW5nKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdORVcnOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9TdGF0ZS9PbGQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1N0YXRlL09sZC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk2NjczZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9TdGF0ZS9PbGQucGhwCkBAIC0wLDAgKzEsMjEgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaFxTdGF0ZTsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIFJlcHJlc2VudHMgYW4gT0xEIGNvbmRpdGlvbi4gT25seSBvbGQgbWVzc2FnZXMgd2lsbCBtYXRjaCB0aGlzIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgT2xkIGltcGxlbWVudHMgQ29uZGl0aW9uSW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5d29yZCB0aGF0IHRoZSBjb25kaXRpb24gcmVwcmVzZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdG9TdHJpbmcoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJ09MRCc7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1N0YXRlL1VuZGVsZXRlZC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvU3RhdGUvVW5kZWxldGVkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmQyZDM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1N0YXRlL1VuZGVsZXRlZC5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXFN0YXRlOworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxDb25kaXRpb25JbnRlcmZhY2U7CisKKy8qKgorICogUmVwcmVzZW50cyBhIFVOREVMRVRFRCBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3Qgbm90IGhhdmUgYmVlbiBtYXJrZWQgZm9yCisgKiBkZWxldGlvbiBpbiBvcmRlciB0byBtYXRjaCB0aGUgY29uZGl0aW9uLgorICovCitmaW5hbCBjbGFzcyBVbmRlbGV0ZWQgaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0b1N0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnVU5ERUxFVEVEJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvVGV4dC9Cb2R5LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9UZXh0L0JvZHkucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNmQ1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvVGV4dC9Cb2R5LnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcVGV4dDsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQWJzdHJhY3RUZXh0OworCisvKioKKyAqIFJlcHJlc2VudHMgYSBib2R5IHRleHQgY29udGFpbnMgY29uZGl0aW9uLiBNZXNzYWdlcyBtdXN0IGhhdmUgYSBib2R5CisgKiBjb250YWluaW5nIHRoZSBzcGVjaWZpZWQgdGV4dCBpbiBvcmRlciB0byBtYXRjaCB0aGUgY29uZGl0aW9uLgorICovCitmaW5hbCBjbGFzcyBCb2R5IGV4dGVuZHMgQWJzdHJhY3RUZXh0Cit7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5d29yZCB0aGF0IHRoZSBjb25kaXRpb24gcmVwcmVzZW50cy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0S2V5d29yZCgpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnQk9EWSc7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1RleHQvS2V5d29yZC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvVGV4dC9LZXl3b3JkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmYxZTExCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1RleHQvS2V5d29yZC5waHAKQEAgLTAsMCArMSwyMiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcU2VhcmNoXFRleHQ7CisKK3VzZSBEZGVib2VyXEltYXBcU2VhcmNoXEFic3RyYWN0VGV4dDsKKworLyoqCisgKiBSZXByZXNlbnRzIGEga2V5d29yZCB0ZXh0IGNvbnRhaW5zIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBoYXZlIGEga2V5d29yZAorICogbWF0Y2hpbmcgdGhlIHNwZWNpZmllZCB0ZXh0IGluIG9yZGVyIHRvIG1hdGNoIHRoZSBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIEtleXdvcmQgZXh0ZW5kcyBBYnN0cmFjdFRleHQKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdLRVlXT1JEJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvVGV4dC9TdWJqZWN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9UZXh0L1N1YmplY3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNTE5OGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvVGV4dC9TdWJqZWN0LnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcVGV4dDsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQWJzdHJhY3RUZXh0OworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzdWJqZWN0IGNvbnRhaW5zIGNvbmRpdGlvbi4gTWVzc2FnZXMgbXVzdCBoYXZlIGEgc3ViamVjdAorICogY29udGFpbmluZyB0aGUgc3BlY2lmaWVkIHRleHQgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgU3ViamVjdCBleHRlbmRzIEFic3RyYWN0VGV4dAoreworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleXdvcmQgdGhhdCB0aGUgY29uZGl0aW9uIHJlcHJlc2VudHMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEtleXdvcmQoKTogc3RyaW5nCisgICAgeworICAgICAgICByZXR1cm4gJ1NVQkpFQ1QnOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9UZXh0L1RleHQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1RleHQvVGV4dC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljMzAxNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaC9UZXh0L1RleHQucGhwCkBAIC0wLDAgKzEsMjIgQEAKKzw/cGhwCisKK2RlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOworCituYW1lc3BhY2UgRGRlYm9lclxJbWFwXFNlYXJjaFxUZXh0OworCit1c2UgRGRlYm9lclxJbWFwXFNlYXJjaFxBYnN0cmFjdFRleHQ7CisKKy8qKgorICogUmVwcmVzZW50cyBhIG1lc3NhZ2UgdGV4dCBjb250YWlucyBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3QgY29udGFpbiB0aGUKKyAqIHNwZWNpZmllZCB0ZXh0IGluIG9yZGVyIHRvIG1hdGNoIHRoZSBjb25kaXRpb24uCisgKi8KK2ZpbmFsIGNsYXNzIFRleHQgZXh0ZW5kcyBBYnN0cmFjdFRleHQKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBrZXl3b3JkIHRoYXQgdGhlIGNvbmRpdGlvbiByZXByZXNlbnRzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3JkKCk6IHN0cmluZworICAgIHsKKyAgICAgICAgcmV0dXJuICdURVhUJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2gvVGV4dC9VbmtleXdvcmQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1RleHQvVW5rZXl3b3JkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGE3MDZkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VhcmNoL1RleHQvVW5rZXl3b3JkLnBocApAQCAtMCwwICsxLDIyIEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcFxTZWFyY2hcVGV4dDsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQWJzdHJhY3RUZXh0OworCisvKioKKyAqIFJlcHJlc2VudHMgYSBrZXl3b3JkIHRleHQgZG9lcyBub3QgY29udGFpbiBjb25kaXRpb24uIE1lc3NhZ2VzIG11c3Qgbm90IGhhdmUKKyAqIGEga2V5d29yZCBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIHRleHQgaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGNvbmRpdGlvbi4KKyAqLworZmluYWwgY2xhc3MgVW5rZXl3b3JkIGV4dGVuZHMgQWJzdHJhY3RUZXh0Cit7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5d29yZCB0aGF0IHRoZSBjb25kaXRpb24gcmVwcmVzZW50cy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0S2V5d29yZCgpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiAnVU5LRVlXT1JEJzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2hFeHByZXNzaW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlYXJjaEV4cHJlc3Npb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4OWQ0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZWFyY2hFeHByZXNzaW9uLnBocApAQCAtMCwwICsxLDQ0IEBACis8P3BocAorCitkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKKworbmFtZXNwYWNlIERkZWJvZXJcSW1hcDsKKwordXNlIERkZWJvZXJcSW1hcFxTZWFyY2hcQ29uZGl0aW9uSW50ZXJmYWNlOworCisvKioKKyAqIERlZmluZXMgYSBzZWFyY2ggZXhwcmVzc2lvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGxvb2sgdXAgZW1haWwgbWVzc2FnZXMuCisgKi8KK2ZpbmFsIGNsYXNzIFNlYXJjaEV4cHJlc3Npb24gaW1wbGVtZW50cyBDb25kaXRpb25JbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBUaGUgY29uZGl0aW9ucyB0aGF0IHRvZ2V0aGVyIHJlcHJlc2VudCB0aGUgZXhwcmVzc2lvbi4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlICRjb25kaXRpb25zID0gW107CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgbmV3IGNvbmRpdGlvbiB0byB0aGUgZXhwcmVzc2lvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBDb25kaXRpb25JbnRlcmZhY2UgJGNvbmRpdGlvbiB0aGUgY29uZGl0aW9uIHRvIGJlIGFkZGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZENvbmRpdGlvbihDb25kaXRpb25JbnRlcmZhY2UgJGNvbmRpdGlvbik6IHNlbGYKKyAgICB7CisgICAgICAgICR0aGlzLT5jb25kaXRpb25zW10gPSAkY29uZGl0aW9uOworCisgICAgICAgIHJldHVybiAkdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgZXhwcmVzc2lvbiB0byBhIHN0cmluZyB0aGF0IGNhbiBiZSBzZW50IHRvIHRoZSBJTUFQIHNlcnZlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdG9TdHJpbmcoKTogc3RyaW5nCisgICAgeworICAgICAgICAkY29uZGl0aW9ucyA9IFxhcnJheV9tYXAoc3RhdGljIGZ1bmN0aW9uIChDb25kaXRpb25JbnRlcmZhY2UgJGNvbmRpdGlvbik6IHN0cmluZyB7CisgICAgICAgICAgICByZXR1cm4gJGNvbmRpdGlvbi0+dG9TdHJpbmcoKTsKKyAgICAgICAgfSwgJHRoaXMtPmNvbmRpdGlvbnMpOworCisgICAgICAgIHJldHVybiBcaW1wbG9kZSgnICcsICRjb25kaXRpb25zKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9TZXJ2ZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VydmVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDEyZjAwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VydmVyLnBocApAQCAtMCwwICsxLDE0NiBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXA7CisKK3VzZSBEZGVib2VyXEltYXBcRXhjZXB0aW9uXEF1dGhlbnRpY2F0aW9uRmFpbGVkRXhjZXB0aW9uOwordXNlIERkZWJvZXJcSW1hcFxFeGNlcHRpb25cUmVzb3VyY2VDaGVja0ZhaWx1cmVFeGNlcHRpb247CisKKy8qKgorICogQW4gSU1BUCBzZXJ2ZXIuCisgKi8KK2ZpbmFsIGNsYXNzIFNlcnZlciBpbXBsZW1lbnRzIFNlcnZlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nIEludGVybmV0IGRvbWFpbiBuYW1lIG9yIGJyYWNrZXRlZCBJUCBhZGRyZXNzIG9mIHNlcnZlcgorICAgICAqLworICAgIHByaXZhdGUgJGhvc3RuYW1lOworCisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcgVENQIHBvcnQgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSAkcG9ydDsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nIE9wdGlvbmFsIGZsYWdzCisgICAgICovCisgICAgcHJpdmF0ZSAkZmxhZ3M7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSAkcGFyYW1ldGVyczsKKworICAgIC8qKgorICAgICAqIEB2YXIgaW50IENvbm5lY3Rpb24gb3B0aW9ucworICAgICAqLworICAgIHByaXZhdGUgJG9wdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIGludCBSZXRyaWVzIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgJHJldHJpZXM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGhvc3RuYW1lICAgSW50ZXJuZXQgZG9tYWluIG5hbWUgb3IgYnJhY2tldGVkIElQIGFkZHJlc3MKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHNlcnZlcgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBvcnQgICAgICAgVENQIHBvcnQgbnVtYmVyCisgICAgICogQHBhcmFtIHN0cmluZyAkZmxhZ3MgICAgICBPcHRpb25hbCBmbGFncworICAgICAqIEBwYXJhbSBhcnJheSAgJHBhcmFtZXRlcnMgQ29ubmVjdGlvbiBwYXJhbWV0ZXJzCisgICAgICogQHBhcmFtIGludCAgICAkb3B0aW9ucyAgICBDb25uZWN0aW9uIG9wdGlvbnMKKyAgICAgKiBAcGFyYW0gaW50ICAgICRyZXRyaWVzICAgIFJldHJpZXMgbnVtYmVyCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KAorICAgICAgICBzdHJpbmcgJGhvc3RuYW1lLAorICAgICAgICBzdHJpbmcgJHBvcnQgPSAnOTkzJywKKyAgICAgICAgc3RyaW5nICRmbGFncyA9ICcvaW1hcC9zc2wvdmFsaWRhdGUtY2VydCcsCisgICAgICAgIGFycmF5ICRwYXJhbWV0ZXJzID0gW10sCisgICAgICAgIGludCAkb3B0aW9ucyA9IDAsCisgICAgICAgIGludCAkcmV0cmllcyA9IDEKKyAgICApIHsKKyAgICAgICAgaWYgKCFcZnVuY3Rpb25fZXhpc3RzKCdpbWFwX29wZW4nKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdJTUFQIGV4dGVuc2lvbiBtdXN0IGJlIGVuYWJsZWQnKTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5ob3N0bmFtZSAgID0gJGhvc3RuYW1lOworICAgICAgICAkdGhpcy0+cG9ydCAgICAgICA9ICRwb3J0OworICAgICAgICAkdGhpcy0+ZmxhZ3MgICAgICA9ICcnICE9PSAkZmxhZ3MgPyAnLycgLiBcbHRyaW0oJGZsYWdzLCAnLycpIDogJyc7CisgICAgICAgICR0aGlzLT5wYXJhbWV0ZXJzID0gJHBhcmFtZXRlcnM7CisgICAgICAgICR0aGlzLT5vcHRpb25zICAgID0gJG9wdGlvbnM7CisgICAgICAgICR0aGlzLT5yZXRyaWVzICAgID0gJHJldHJpZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXV0aGVudGljYXRlIGNvbm5lY3Rpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VybmFtZSBVc2VybmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkIFBhc3N3b3JkCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEF1dGhlbnRpY2F0aW9uRmFpbGVkRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZShzdHJpbmcgJHVzZXJuYW1lLCBzdHJpbmcgJHBhc3N3b3JkKTogQ29ubmVjdGlvbkludGVyZmFjZQorICAgIHsKKyAgICAgICAgJGVycm9yTWVzc2FnZSA9IG51bGw7CisgICAgICAgICRlcnJvck51bWJlciAgPSAwOworICAgICAgICBcc2V0X2Vycm9yX2hhbmRsZXIoc3RhdGljIGZ1bmN0aW9uICgkbnIsICRtZXNzYWdlKSB1c2UgKCYkZXJyb3JNZXNzYWdlLCAmJGVycm9yTnVtYmVyKTogYm9vbCB7CisgICAgICAgICAgICAkZXJyb3JNZXNzYWdlID0gJG1lc3NhZ2U7CisgICAgICAgICAgICAkZXJyb3JOdW1iZXIgPSAkbnI7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9KTsKKworICAgICAgICAkcmVzb3VyY2UgPSBcaW1hcF9vcGVuKAorICAgICAgICAgICAgJHRoaXMtPmdldFNlcnZlclN0cmluZygpLAorICAgICAgICAgICAgJHVzZXJuYW1lLAorICAgICAgICAgICAgJHBhc3N3b3JkLAorICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnMsCisgICAgICAgICAgICAkdGhpcy0+cmV0cmllcywKKyAgICAgICAgICAgICR0aGlzLT5wYXJhbWV0ZXJzCisgICAgICAgICk7CisKKyAgICAgICAgXHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOworCisgICAgICAgIGlmIChmYWxzZSA9PT0gJHJlc291cmNlIHx8IG51bGwgIT09ICRlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkZhaWxlZEV4Y2VwdGlvbihcc3ByaW50ZigKKyAgICAgICAgICAgICAgICAnQXV0aGVudGljYXRpb24gZmFpbGVkIGZvciB1c2VyICIlcyIlcycsCisgICAgICAgICAgICAgICAgJHVzZXJuYW1lLAorICAgICAgICAgICAgICAgIG51bGwgIT09ICRlcnJvck1lc3NhZ2UgPyAnOiAnIC4gJGVycm9yTWVzc2FnZSA6ICcnCisgICAgICAgICAgICApLCAkZXJyb3JOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgJGNoZWNrID0gXGltYXBfY2hlY2soJHJlc291cmNlKTsKKworICAgICAgICBpZiAoZmFsc2UgPT09ICRjaGVjaykgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJlc291cmNlQ2hlY2tGYWlsdXJlRXhjZXB0aW9uKCdSZXNvdXJjZSBjaGVjayBmYWlsdXJlJyk7CisgICAgICAgIH0KKworICAgICAgICAkbWFpbGJveCAgICAgICA9ICRjaGVjay0+TWFpbGJveDsKKyAgICAgICAgJGNvbm5lY3Rpb24gICAgPSAkbWFpbGJveDsKKyAgICAgICAgJGN1cmx5UG9zaXRpb24gPSBcc3RycG9zKCRtYWlsYm94LCAnfScpOworICAgICAgICBpZiAoZmFsc2UgIT09ICRjdXJseVBvc2l0aW9uKSB7CisgICAgICAgICAgICAkY29ubmVjdGlvbiA9IFxzdWJzdHIoJG1haWxib3gsIDAsICRjdXJseVBvc2l0aW9uICsgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGVzZSBhcmUgbmVjZXNzYXJ5IHRvIGdldCByaWQgb2YgUEhQIHRocm93aW5nIElNQVAgZXJyb3JzCisgICAgICAgIFxpbWFwX2Vycm9ycygpOworICAgICAgICBcaW1hcF9hbGVydHMoKTsKKworICAgICAgICByZXR1cm4gbmV3IENvbm5lY3Rpb24obmV3IEltYXBSZXNvdXJjZSgkcmVzb3VyY2UpLCAkY29ubmVjdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2x1ZXMgaG9zdG5hbWUsIHBvcnQgYW5kIGZsYWdzIGFuZCByZXR1cm5zIHJlc3VsdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFNlcnZlclN0cmluZygpOiBzdHJpbmcKKyAgICB7CisgICAgICAgIHJldHVybiBcc3ByaW50ZigKKyAgICAgICAgICAgICd7JXMlcyVzfScsCisgICAgICAgICAgICAkdGhpcy0+aG9zdG5hbWUsCisgICAgICAgICAgICAnJyAhPT0gJHRoaXMtPnBvcnQgPyAnOicgLiAkdGhpcy0+cG9ydCA6ICcnLAorICAgICAgICAgICAgJHRoaXMtPmZsYWdzCisgICAgICAgICk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvU2VydmVySW50ZXJmYWNlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlcnZlckludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdlOTVmOQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9kZGVib2VyL2ltYXAvc3JjL1NlcnZlckludGVyZmFjZS5waHAKQEAgLTAsMCArMSwxOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXA7CisKKy8qKgorICogQW4gSU1BUCBzZXJ2ZXIuCisgKi8KK2ludGVyZmFjZSBTZXJ2ZXJJbnRlcmZhY2UKK3sKKyAgICAvKioKKyAgICAgKiBBdXRoZW50aWNhdGUgY29ubmVjdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lIFVzZXJuYW1lCisgICAgICogQHBhcmFtIHN0cmluZyAkcGFzc3dvcmQgUGFzc3dvcmQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYXV0aGVudGljYXRlKHN0cmluZyAkdXNlcm5hbWUsIHN0cmluZyAkcGFzc3dvcmQpOiBDb25uZWN0aW9uSW50ZXJmYWNlOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvVGVzdC9SYXdNZXNzYWdlSXRlcmF0b3IucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL2RkZWJvZXIvaW1hcC9zcmMvVGVzdC9SYXdNZXNzYWdlSXRlcmF0b3IucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NTAwYjYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvZGRlYm9lci9pbWFwL3NyYy9UZXN0L1Jhd01lc3NhZ2VJdGVyYXRvci5waHAKQEAgLTAsMCArMSwxOSBAQAorPD9waHAKKworZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CisKK25hbWVzcGFjZSBEZGVib2VyXEltYXBcVGVzdDsKKwordXNlIERkZWJvZXJcSW1hcFxNZXNzYWdlSW50ZXJmYWNlOwordXNlIERkZWJvZXJcSW1hcFxNZXNzYWdlSXRlcmF0b3JJbnRlcmZhY2U7CisKKy8qKgorICogQSBNZXNzYWdlSXRlcmF0b3IgdG8gYmUgdXNlZCBpbiBhIG1vY2tlZCBlbnZpcm9ubWVudC4KKyAqLworZmluYWwgY2xhc3MgUmF3TWVzc2FnZUl0ZXJhdG9yIGV4dGVuZHMgXEFycmF5SXRlcmF0b3IgaW1wbGVtZW50cyBNZXNzYWdlSXRlcmF0b3JJbnRlcmZhY2UKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gY3VycmVudCgpOiBNZXNzYWdlSW50ZXJmYWNlCisgICAgeworICAgICAgICByZXR1cm4gcGFyZW50OjpjdXJyZW50KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9DT05UUklCVVRJTkcubWQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L0NPTlRSSUJVVElORy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjZjZjk3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9DT05UUklCVVRJTkcubWQKQEAgLTAsMCArMSw1OSBAQAorIyBIb3cgdG8gY29udHJpYnV0ZQorCisKKyMjIElzc3VlcworCitXaGVuIFtmaWxpbmcgYnVnc10oaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMvbmV3KSwKK3RyeSB0byBiZSBhcyB0aG9yb3VnaCBhcyBwb3NzaWJsZToKKyogV2hhdCB2ZXJzaW9uIGRpZCB5b3UgdXNlPworKiBXaGF0IGRpZCB5b3UgdHJ5IHRvIGRvPyAqKipQbGVhc2UgcG9zdCB0aGUgcmVsZXZhbnQgcGFydHMgb2YgeW91ciBjb2RlLioqKgorKiBXaGF0IHdlbnQgd3Jvbmc/ICoqKlBsZWFzZSBpbmNsdWRlIGVycm9yIG1lc3NhZ2VzLCBpZiBhbnkuKioqCisqIFdoYXQgd2FzIHRoZSBleHBlY3RlZCByZXN1bHQ/CisKKworIyMgUHVsbCByZXF1ZXN0cworCitCdWcgZml4ZXMgYW5kIGdlbmVyYWwgaW1wcm92ZW1lbnRzIHRvIHRoZSBleGlzdGluZyBjb2RlYmFzZSBhcmUgYWx3YXlzIHdlbGNvbWUuCitOZXcgZmVhdHVyZXMgYXJlIGFsc28gd2VsY29tZSwgYnV0IHdpbGwgYmUganVkZ2VkIG9uIGFuIGluZGl2aWR1YWwgYmFzaXMuIElmCit5b3UnZCByYXRoZXIgbm90IHJpc2sgd2FzdGluZyB5b3VyIHRpbWUgaW1wbGVtZW50aW5nIGEgbmV3IGZlYXR1cmUgb25seSB0byBzZWUKK2l0IHR1cm5lZCBkb3duLCBwbGVhc2Ugc3RhcnQgdGhlIGRpc2N1c3Npb24gYnkKK1tvcGVuaW5nIGFuIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2lzc3Vlcy9uZXcpLgorCitEb24ndCBmb3JnZXQgdG8gYWRkIHlvdXIgY2hhbmdlcyB0byB0aGUgW2NoYW5nZWxvZ10oQ0hBTkdFTE9HLm1kKS4KKworCisjIyMgVGVzdGluZworCitQbGVhc2UgaW5jbHVkZSB0ZXN0cyBmb3IgZXZlcnkgY2hhbmdlIG9yIGFkZGl0aW9uIHRvIHRoZSBjb2RlLgorVG8gcnVuIHRoZSBjb21wbGV0ZSB0ZXN0IHN1aXRlOgorCitgYGBzaAordmVuZG9yL2Jpbi9waHB1bml0CitgYGAKKworV2hlbiBzdWJtaXR0aW5nIGEgbmV3IHB1bGwgcmVxdWVzdCwgcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHRoYXQgdGhlIHRlc3Qgc3VpdGUKK3Bhc3NlcyAoVHJhdmlzIENJIHdpbGwgcnVuIGl0ICYgcmVwb3J0IGJhY2sgb24geW91ciBwdWxsIHJlcXVlc3QuKQorCitUbyBydW4gdGhlIHRlc3RzIG9uIFdpbmRvd3MsIHJ1biBgdGVzdHMvY29udmVydF9zeW1saW5rc190b193aW5kb3dzX3N0eWxlLnNoYAorZnJvbSB0aGUgY29tbWFuZCBsaW5lIGluIG9yZGVyIHRvIGNvbnZlcnQgTGludXgtc3R5bGUgdGVzdCBzeW1saW5rcyB0bworV2luZG93cy1zdHlsZS4KKworCisjIyMgQ29kaW5nIHN0YW5kYXJkcworCitBbGwgY29kZSBtdXN0IGZvbGxvdyBbUFNSLTJdKGh0dHA6Ly93d3cucGhwLWZpZy5vcmcvcHNyL3Bzci0yLykuIEp1c3QgbWFrZSBzdXJlCit0byBydW4gcGhwLWNzLWZpeGVyIGJlZm9yZSBzdWJtaXR0aW5nIHRoZSBjb2RlLCBpdCdsbCB0YWtlIGNhcmUgb2YgdGhlCitmb3JtYXR0aW5nIGZvciB5b3U6CisKK2BgYHNoCit2ZW5kb3IvYmluL3BocC1jcy1maXhlciBmaXggc3JjCit2ZW5kb3IvYmluL3BocC1jcy1maXhlciBmaXggdGVzdHMKK2BgYAorCitEb2N1bWVudCB0aGUgY29kZSB0aG9yb3VnaGx5IQorCisKKyMjIExpY2Vuc2UKKworTm90ZSB0aGF0IG1pbmlmeSBpcyBNSVQtbGljZW5zZWQsIHdoaWNoIGJhc2ljYWxseSBhbGxvd3MgYW55b25lIHRvIGRvCithbnl0aGluZyB0aGV5IGxpa2Ugd2l0aCBpdCwgd2l0aG91dCByZXN0cmljdGlvbi4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvRG9ja2VyZmlsZSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvRG9ja2VyZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTdmOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9Eb2NrZXJmaWxlCkBAIC0wLDAgKzEsMTMgQEAKK0FSRyB2ZXJzaW9uPWNsaQorRlJPTSBwaHA6JHZlcnNpb24KKworQ09QWSAuIC92YXIvd3d3CitXT1JLRElSIC92YXIvd3d3CisKK1JVTiBhcHQtZ2V0IHVwZGF0ZQorUlVOIGFwdC1nZXQgaW5zdGFsbCAteSB6aXAgdW56aXAgemxpYjFnLWRldgorUlVOIGRvY2tlci1waHAtZXh0LWluc3RhbGwgemlwCitSVU4gZG9ja2VyLXBocC1leHQtaW5zdGFsbCBwY250bAorUlVOIGN1cmwgLXNTIGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnL2luc3RhbGxlciB8IHBocAorUlVOIG12IGNvbXBvc2VyLnBoYXIgL3Vzci9sb2NhbC9iaW4vY29tcG9zZXIKK1JVTiBjb21wb3NlciBpbnN0YWxsCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L0xJQ0VOU0UgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMwZDA4YQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvTElDRU5TRQpAQCAtMCwwICsxLDE4IEBACitDb3B5cmlnaHQgKGMpIDIwMTIgTWF0dGhpYXMgTXVsbGllCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YKK3RoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluCit0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvCit1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgordGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLAorc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTCitGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IKK0NPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUgorSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2Jpbi9taW5pZnljc3MgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2Jpbi9taW5pZnljc3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmE2ODFhOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvYmluL21pbmlmeWNzcwpAQCAtMCwwICsxLDQ1IEBACisjIS91c3IvYmluL2VudiBwaHAKKzw/cGhwCit1c2UgTWF0dGhpYXNNdWxsaWVcTWluaWZ5OworCisvLyBjb21tYW5kIGxpbmUgdXRpbGl0eSB0byBtaW5pZnkgQ1NTCitpZiAoZmlsZV9leGlzdHMoX19ESVJfXyAuICcvLi4vLi4vLi4vYXV0b2xvYWQucGhwJykpIHsKKyAgICAvLyBpZiBjb21wb3NlciBpbnN0YWxsCisgICAgcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnLy4uLy4uLy4uL2F1dG9sb2FkLnBocCc7Cit9IGVsc2UgeworICAgIHJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy8uLi9zcmMvTWluaWZ5LnBocCc7CisgICAgcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnLy4uL3NyYy9DU1MucGhwJzsKKyAgICByZXF1aXJlX29uY2UgX19ESVJfXyAuICcvLi4vc3JjL0V4Y2VwdGlvbi5waHAnOworfQorCitlcnJvcl9yZXBvcnRpbmcoRV9BTEwpOworLy8gY2hlY2sgUEhQIHNldHVwIGZvciBjbGkgYXJndW1lbnRzCitpZiAoIWlzc2V0KCRfU0VSVkVSWydhcmd2J10pICYmICFpc3NldCgkYXJndikpIHsKKyAgICBmd3JpdGUoU1RERVJSLCAnUGxlYXNlIGVuYWJsZSB0aGUgInJlZ2lzdGVyX2FyZ2NfYXJndiIgZGlyZWN0aXZlIGluIHlvdXIgcGhwLmluaScgLiBQSFBfRU9MKTsKKyAgICBleGl0KDEpOworfSBlbHNlaWYgKCFpc3NldCgkYXJndikpIHsKKyAgICAkYXJndiA9ICRfU0VSVkVSWydhcmd2J107Cit9CisvLyBjaGVjayBpZiBwYXRoIHRvIGZpbGUgZ2l2ZW4KK2lmICghaXNzZXQoJGFyZ3ZbMV0pKSB7CisgICAgZndyaXRlKFNUREVSUiwgJ0FyZ3VtZW50IGV4cGVjdGVkOiBwYXRoIHRvIGZpbGUnIC4gUEhQX0VPTCk7CisgICAgZXhpdCgxKTsKK30KKy8vIGNoZWNrIGlmIHNjcmlwdCBydW4gaW4gY2xpIGVudmlyb25tZW50CitpZiAoJ2NsaScgIT09IHBocF9zYXBpX25hbWUoKSkgeworICAgIGZ3cml0ZShTVERFUlIsICRhcmd2WzFdIC4gJyBtdXN0IGJlIHJ1biBpbiB0aGUgY29tbWFuZCBsaW5lJyAuIFBIUF9FT0wpOworICAgIGV4aXQoMSk7Cit9CisvLyBjaGVjayBpZiBzb3VyY2UgZmlsZSBleGlzdHMKK2lmICghZmlsZV9leGlzdHMoJGFyZ3ZbMV0pKSB7CisgICAgZndyaXRlKFNUREVSUiwgJ1NvdXJjZSBmaWxlICInIC4gJGFyZ3ZbMV0gLiAnIiBub3QgZm91bmQnIC4gUEhQX0VPTCk7CisgICAgZXhpdCgxKTsKK30KKwordHJ5IHsKKyAgICAkbWluaWZpZXIgPSBuZXcgTWluaWZ5XENTUygkYXJndlsxXSk7CisgICAgZWNobyAkbWluaWZpZXItPm1pbmlmeSgpOworfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CisgICAgZndyaXRlKFNUREVSUiwgJGUtPmdldE1lc3NhZ2UoKSwgUEhQX0VPTCk7CisgICAgZXhpdCgxKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvYmluL21pbmlmeWpzIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9iaW4vbWluaWZ5anMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGNiZTYzZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvYmluL21pbmlmeWpzCkBAIC0wLDAgKzEsNDUgQEAKKyMhL3Vzci9iaW4vZW52IHBocAorPD9waHAKK3VzZSBNYXR0aGlhc011bGxpZVxNaW5pZnk7CisKKy8vIGNvbW1hbmQgbGluZSB1dGlsaXR5IHRvIG1pbmlmeSBKUworaWYgKGZpbGVfZXhpc3RzKF9fRElSX18gLiAnLy4uLy4uLy4uL2F1dG9sb2FkLnBocCcpKSB7CisgICAgLy8gaWYgY29tcG9zZXIgaW5zdGFsbAorICAgIHJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy8uLi8uLi8uLi9hdXRvbG9hZC5waHAnOworfSBlbHNlIHsKKyAgICByZXF1aXJlX29uY2UgX19ESVJfXyAuICcvLi4vc3JjL01pbmlmeS5waHAnOworICAgIHJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy8uLi9zcmMvSlMucGhwJzsKKyAgICByZXF1aXJlX29uY2UgX19ESVJfXyAuICcvLi4vc3JjL0V4Y2VwdGlvbi5waHAnOworfQorCitlcnJvcl9yZXBvcnRpbmcoRV9BTEwpOworLy8gY2hlY2sgUEhQIHNldHVwIGZvciBjbGkgYXJndW1lbnRzCitpZiAoIWlzc2V0KCRfU0VSVkVSWydhcmd2J10pICYmICFpc3NldCgkYXJndikpIHsKKyAgICBmd3JpdGUoU1RERVJSLCAnUGxlYXNlIGVuYWJsZSB0aGUgInJlZ2lzdGVyX2FyZ2NfYXJndiIgZGlyZWN0aXZlIGluIHlvdXIgcGhwLmluaScgLiBQSFBfRU9MKTsKKyAgICBleGl0KDEpOworfSBlbHNlaWYgKCFpc3NldCgkYXJndikpIHsKKyAgICAkYXJndiA9ICRfU0VSVkVSWydhcmd2J107Cit9CisvLyBjaGVjayBpZiBwYXRoIHRvIGZpbGUgZ2l2ZW4KK2lmICghaXNzZXQoJGFyZ3ZbMV0pKSB7CisgICAgZndyaXRlKFNUREVSUiwgJ0FyZ3VtZW50IGV4cGVjdGVkOiBwYXRoIHRvIGZpbGUnIC4gUEhQX0VPTCk7CisgICAgZXhpdCgxKTsKK30KKy8vIGNoZWNrIGlmIHNjcmlwdCBydW4gaW4gY2xpIGVudmlyb25tZW50CitpZiAoJ2NsaScgIT09IHBocF9zYXBpX25hbWUoKSkgeworICAgIGZ3cml0ZShTVERFUlIsICRhcmd2WzFdIC4gJyBtdXN0IGJlIHJ1biBpbiB0aGUgY29tbWFuZCBsaW5lJyAuIFBIUF9FT0wpOworICAgIGV4aXQoMSk7Cit9CisvLyBjaGVjayBpZiBzb3VyY2UgZmlsZSBleGlzdHMKK2lmICghZmlsZV9leGlzdHMoJGFyZ3ZbMV0pKSB7CisgICAgZndyaXRlKFNUREVSUiwgJ1NvdXJjZSBmaWxlICInIC4gJGFyZ3ZbMV0gLiAnIiBub3QgZm91bmQnIC4gUEhQX0VPTCk7CisgICAgZXhpdCgxKTsKK30KKwordHJ5IHsKKyAgICAkbWluaWZpZXIgPSBuZXcgTWluaWZ5XEpTKCRhcmd2WzFdKTsKKyAgICBlY2hvICRtaW5pZmllci0+bWluaWZ5KCk7Cit9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKKyAgICBmd3JpdGUoU1RERVJSLCAkZS0+Z2V0TWVzc2FnZSgpLCBQSFBfRU9MKTsKKyAgICBleGl0KDEpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9jb21wb3Nlci5qc29uIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9jb21wb3Nlci5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkODFiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2NvbXBvc2VyLmpzb24KQEAgLTAsMCArMSwzOCBAQAoreworICAgICJuYW1lIjogIm1hdHRoaWFzbXVsbGllL21pbmlmeSIsCisgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgImRlc2NyaXB0aW9uIjogIkNTUyAmIEphdmFTY3JpcHQgbWluaWZpZXIsIGluIFBIUC4gUmVtb3ZlcyB3aGl0ZXNwYWNlLCBzdHJpcHMgY29tbWVudHMsIGNvbWJpbmVzIGZpbGVzIChpbmNsLiBAaW1wb3J0IHN0YXRlbWVudHMgYW5kIHNtYWxsIGFzc2V0cyBpbiBDU1MgZmlsZXMpLCBhbmQgb3B0aW1pemVzL3Nob3J0ZW5zIGEgZmV3IGNvbW1vbiBwcm9ncmFtbWluZyBwYXR0ZXJucy4iLAorICAgICJrZXl3b3JkcyI6IFsibWluaWZ5IiwgIm1pbmlmaWVyIiwgImNzcyIsICJqcyIsICJqYXZhc2NyaXB0Il0sCisgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cubWluaWZpZXIub3JnIiwKKyAgICAibGljZW5zZSI6ICJNSVQiLAorICAgICJhdXRob3JzIjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJNYXR0aGlhcyBNdWxsaWUiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cubXVsbGllLmV1IiwKKyAgICAgICAgICAgICJlbWFpbCI6ICJtaW5pZnlAbXVsbGllLmV1IiwKKyAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgfQorICAgIF0sCisgICAgInJlcXVpcmUiOiB7CisgICAgICAgICJwaHAiOiAiPj01LjMuMCIsCisgICAgICAgICJleHQtcGNyZSI6ICIqIiwKKyAgICAgICAgIm1hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyIjogIn4xLjEiCisgICAgfSwKKyAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICJtYXR0aGlhc211bGxpZS9zY3JhcGJvb2siOiAifjEuMCIsCisgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjQuOCIsCisgICAgICAgICJmcmllbmRzb2ZwaHAvcGhwLWNzLWZpeGVyIjogIn4yLjAiCisgICAgfSwKKyAgICAic3VnZ2VzdCI6IHsKKyAgICAgICAgInBzci9jYWNoZS1pbXBsZW1lbnRhdGlvbiI6ICJDYWNoZSBpbXBsZW1lbnRhdGlvbiB0byB1c2Ugd2l0aCBNaW5pZnk6OmNhY2hlIgorICAgIH0sCisgICAgImF1dG9sb2FkIjogeworICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAiTWF0dGhpYXNNdWxsaWVcXE1pbmlmeVxcIjogInNyYy8iCisgICAgICAgIH0KKyAgICB9LAorICAgICJiaW4iOiBbCisgICAgICAgICJiaW4vbWluaWZ5Y3NzIiwKKyAgICAgICAgImJpbi9taW5pZnlqcyIKKyAgICBdCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RhdGEvanMva2V5d29yZHNfYWZ0ZXIudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL2tleXdvcmRzX2FmdGVyLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzhjYmE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL2tleXdvcmRzX2FmdGVyLnR4dApAQCAtMCwwICsxLDcgQEAKK2luCitwdWJsaWMKK2V4dGVuZHMKK3ByaXZhdGUKK3Byb3RlY3RlZAoraW1wbGVtZW50cworaW5zdGFuY2VvZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvZGF0YS9qcy9rZXl3b3Jkc19iZWZvcmUudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL2tleXdvcmRzX2JlZm9yZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFiZjM1NwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvZGF0YS9qcy9rZXl3b3Jkc19iZWZvcmUudHh0CkBAIC0wLDAgKzEsMjYgQEAKK2RvCitpbgorbGV0CituZXcKK3ZhcgorY2FzZQorZWxzZQorZW51bQordm9pZAord2l0aAorY2xhc3MKK2NvbnN0Cit5aWVsZAorZGVsZXRlCitleHBvcnQKK2ltcG9ydAorcHVibGljCitzdGF0aWMKK3R5cGVvZgorZXh0ZW5kcworcGFja2FnZQorcHJpdmF0ZQorZnVuY3Rpb24KK3Byb3RlY3RlZAoraW1wbGVtZW50cworaW5zdGFuY2VvZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvZGF0YS9qcy9rZXl3b3Jkc19yZXNlcnZlZC50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RhdGEvanMva2V5d29yZHNfcmVzZXJ2ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhM2FkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RhdGEvanMva2V5d29yZHNfcmVzZXJ2ZWQudHh0CkBAIC0wLDAgKzEsNjMgQEAKK2RvCitpZgoraW4KK2ZvcgorbGV0CituZXcKK3RyeQordmFyCitjYXNlCitlbHNlCitlbnVtCitldmFsCitudWxsCit0aGlzCit0cnVlCit2b2lkCit3aXRoCiticmVhaworY2F0Y2gKK2NsYXNzCitjb25zdAorZmFsc2UKK3N1cGVyCit0aHJvdword2hpbGUKK3lpZWxkCitkZWxldGUKK2V4cG9ydAoraW1wb3J0CitwdWJsaWMKK3JldHVybgorc3RhdGljCitzd2l0Y2gKK3R5cGVvZgorZGVmYXVsdAorZXh0ZW5kcworZmluYWxseQorcGFja2FnZQorcHJpdmF0ZQorY29udGludWUKK2RlYnVnZ2VyCitmdW5jdGlvbgorYXJndW1lbnRzCitpbnRlcmZhY2UKK3Byb3RlY3RlZAoraW1wbGVtZW50cworaW5zdGFuY2VvZgorYWJzdHJhY3QKK2Jvb2xlYW4KK2J5dGUKK2NoYXIKK2RvdWJsZQorZmluYWwKK2Zsb2F0Citnb3RvCitpbnQKK2xvbmcKK25hdGl2ZQorc2hvcnQKK3N5bmNocm9uaXplZAordGhyb3dzCit0cmFuc2llbnQKK3ZvbGF0aWxlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL29wZXJhdG9ycy50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RhdGEvanMvb3BlcmF0b3JzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjYyMjlhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL29wZXJhdG9ycy50eHQKQEAgLTAsMCArMSw0NiBAQAorKworLQorKgorLworJQorPQorKz0KKy09CisqPQorLz0KKyU9Cis8PD0KKz4+PQorPj4+PQorJj0KK149Cit8PQorJgorfAorXgorfgorPDwKKz4+Cis+Pj4KKz09Cis9PT0KKyE9CishPT0KKz4KKzwKKz49Cis8PQorJiYKK3x8CishCisuCitbCitdCis/Cis6CissCis7CisoCispCit7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL29wZXJhdG9yc19hZnRlci50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RhdGEvanMvb3BlcmF0b3JzX2FmdGVyLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWE5YjcwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL29wZXJhdG9yc19hZnRlci50eHQKQEAgLTAsMCArMSw0MyBAQAorKworLQorKgorLworJQorPQorKz0KKy09CisqPQorLz0KKyU9Cis8PD0KKz4+PQorPj4+PQorJj0KK149Cit8PQorJgorfAorXgorPDwKKz4+Cis+Pj4KKz09Cis9PT0KKyE9CishPT0KKz4KKzwKKz49Cis8PQorJiYKK3x8CisuCitbCitdCis/Cis6CissCis7CisoCispCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL29wZXJhdG9yc19iZWZvcmUudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9kYXRhL2pzL29wZXJhdG9yc19iZWZvcmUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNTBkODcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RhdGEvanMvb3BlcmF0b3JzX2JlZm9yZS50eHQKQEAgLTAsMCArMSw0MyBAQAorKworLQorKgorLworJQorPQorKz0KKy09CisqPQorLz0KKyU9Cis8PD0KKz4+PQorPj4+PQorJj0KK149Cit8PQorJgorfAorXgorfgorPDwKKz4+Cis+Pj4KKz09Cis9PT0KKyE9CishPT0KKz4KKzwKKz49Cis8PQorJiYKK3x8CishCisuCitbCis/Cis6CissCis7CisoCit7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RvY2tlci1jb21wb3NlLnltbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvZG9ja2VyLWNvbXBvc2UueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MTNlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2RvY2tlci1jb21wb3NlLnltbApAQCAtMCwwICsxLDMxIEBACit2ZXJzaW9uOiAnMi4xJworc2VydmljZXM6CisgIHBocDoKKyAgICBidWlsZDoKKyAgICAgIGNvbnRleHQ6IC4KKyAgICAgIGRvY2tlcmZpbGU6IERvY2tlcmZpbGUKKyAgICB2b2x1bWVzOgorICAgICAgLSAuL3NyYzovdmFyL3d3dy9zcmMKKyAgICAgIC0gLi9kYXRhOi92YXIvd3d3L2RhdGEKKyAgICAgIC0gLi90ZXN0czovdmFyL3d3dy90ZXN0cworICAgICAgLSAuL3BocHVuaXQueG1sLmRpc3Q6L3Zhci93d3cvcGhwdW5pdC54bWwuZGlzdAorICAnNy4yJzoKKyAgICBleHRlbmRzOiBwaHAKKyAgICBidWlsZDoKKyAgICAgIGFyZ3M6CisgICAgICAgIHZlcnNpb246IDcuMi1jbGkKKyAgJzcuMSc6CisgICAgZXh0ZW5kczogcGhwCisgICAgYnVpbGQ6CisgICAgICBhcmdzOgorICAgICAgICB2ZXJzaW9uOiA3LjEtY2xpCisgICc3LjAnOgorICAgIGV4dGVuZHM6IHBocAorICAgIGJ1aWxkOgorICAgICAgYXJnczoKKyAgICAgICAgdmVyc2lvbjogNy4wLWNsaQorICAnNS42JzoKKyAgICBleHRlbmRzOiBwaHAKKyAgICBidWlsZDoKKyAgICAgIGFyZ3M6CisgICAgICAgIHZlcnNpb246IDUuNi1jbGkKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvc3JjL0NTUy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9DU1MucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZmNmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9DU1MucGhwCkBAIC0wLDAgKzEsNzUyIEBACis8P3BocAorLyoqCisgKiBDU1MgTWluaWZpZXIKKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KKworbmFtZXNwYWNlIE1hdHRoaWFzTXVsbGllXE1pbmlmeTsKKwordXNlIE1hdHRoaWFzTXVsbGllXE1pbmlmeVxFeGNlcHRpb25zXEZpbGVJbXBvcnRFeGNlcHRpb247Cit1c2UgTWF0dGhpYXNNdWxsaWVcUGF0aENvbnZlcnRlclxDb252ZXJ0ZXJJbnRlcmZhY2U7Cit1c2UgTWF0dGhpYXNNdWxsaWVcUGF0aENvbnZlcnRlclxDb252ZXJ0ZXI7CisKKy8qKgorICogQ1NTIG1pbmlmaWVyCisgKgorICogUGxlYXNlIHJlcG9ydCBidWdzIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc211bGxpZS9taW5pZnkvaXNzdWVzCisgKgorICogQHBhY2thZ2UgTWluaWZ5CisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBhdXRob3IgVGlqcyBWZXJrb3llbiA8bWluaWZ5QHZlcmtveWVuLmV1PgorICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTIsIE1hdHRoaWFzIE11bGxpZS4gQWxsIHJpZ2h0cyByZXNlcnZlZAorICogQGxpY2Vuc2UgTUlUIExpY2Vuc2UKKyAqLworY2xhc3MgQ1NTIGV4dGVuZHMgTWluaWZ5Cit7CisgICAgLyoqCisgICAgICogQHZhciBpbnQgbWF4aW11bSBpbnBvcnQgc2l6ZSBpbiBrQgorICAgICAqLworICAgIHByb3RlY3RlZCAkbWF4SW1wb3J0U2l6ZSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBAdmFyIHN0cmluZ1tdIHZhbGlkIGltcG9ydCBleHRlbnNpb25zCisgICAgICovCisgICAgcHJvdGVjdGVkICRpbXBvcnRFeHRlbnNpb25zID0gYXJyYXkoCisgICAgICAgICdnaWYnID0+ICdkYXRhOmltYWdlL2dpZicsCisgICAgICAgICdwbmcnID0+ICdkYXRhOmltYWdlL3BuZycsCisgICAgICAgICdqcGUnID0+ICdkYXRhOmltYWdlL2pwZWcnLAorICAgICAgICAnanBnJyA9PiAnZGF0YTppbWFnZS9qcGVnJywKKyAgICAgICAgJ2pwZWcnID0+ICdkYXRhOmltYWdlL2pwZWcnLAorICAgICAgICAnc3ZnJyA9PiAnZGF0YTppbWFnZS9zdmcreG1sJywKKyAgICAgICAgJ3dvZmYnID0+ICdkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC13b2ZmJywKKyAgICAgICAgJ3RpZicgPT4gJ2ltYWdlL3RpZmYnLAorICAgICAgICAndGlmZicgPT4gJ2ltYWdlL3RpZmYnLAorICAgICAgICAneGJtJyA9PiAnaW1hZ2UveC14Yml0bWFwJywKKyAgICApOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtYXhpbXVtIHNpemUgaWYgZmlsZXMgdG8gYmUgaW1wb3J0ZWQuCisgICAgICoKKyAgICAgKiBGaWxlcyBsYXJnZXIgdGhhbiB0aGlzIHNpemUgKGluIGtCKSB3aWxsIG5vdCBiZSBpbXBvcnRlZCBpbnRvIHRoZSBDU1MuCisgICAgICogSW1wb3J0aW5nIGZpbGVzIGludG8gdGhlIENTUyBhcyBkYXRhLXVyaSB3aWxsIHNhdmUgeW91IHNvbWUgY29ubmVjdGlvbnMsCisgICAgICogYnV0IHdlIHNob3VsZCBvbmx5IGltcG9ydCByZWxhdGl2ZWx5IHNtYWxsIGRlY29yYXRpdmUgaW1hZ2VzIHNvIHRoYXQgb3VyCisgICAgICogQ1NTIGZpbGUgZG9lc24ndCBnZXQgdG9vIGJ1bGt5LgorICAgICAqCisgICAgICogQHBhcmFtIGludCAkc2l6ZSBTaXplIGluIGtCCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldE1heEltcG9ydFNpemUoJHNpemUpCisgICAgeworICAgICAgICAkdGhpcy0+bWF4SW1wb3J0U2l6ZSA9ICRzaXplOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdHlwZSBvZiBleHRlbnNpb25zIHRvIGJlIGltcG9ydGVkIGludG8gdGhlIENTUyAodG8gc2F2ZSBuZXR3b3JrCisgICAgICogY29ubmVjdGlvbnMpLgorICAgICAqIEtleXMgb2YgdGhlIGFycmF5IHNob3VsZCBiZSB0aGUgZmlsZSBleHRlbnNpb25zICYgcmVzcGVjdGl2ZSB2YWx1ZXMKKyAgICAgKiBzaG91bGQgYmUgdGhlIGRhdGEgdHlwZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmdbXSAkZXh0ZW5zaW9ucyBBcnJheSBvZiBmaWxlIGV4dGVuc2lvbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0SW1wb3J0RXh0ZW5zaW9ucyhhcnJheSAkZXh0ZW5zaW9ucykKKyAgICB7CisgICAgICAgICR0aGlzLT5pbXBvcnRFeHRlbnNpb25zID0gJGV4dGVuc2lvbnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW92ZSBhbnkgaW1wb3J0IHN0YXRlbWVudHMgdG8gdGhlIHRvcC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQgTmVhcmx5IGZpbmlzaGVkIENTUyBjb250ZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBtb3ZlSW1wb3J0c1RvVG9wKCRjb250ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHByZWdfbWF0Y2hfYWxsKCcvKDs/KShAaW1wb3J0ICg/PHVybD51cmxcKCk/KD9QPHF1b3Rlcz5bIlwnXT8pLis/KD9QPXF1b3RlcykoPyh1cmwpXCkpKTs/LycsICRjb250ZW50LCAkbWF0Y2hlcykpIHsKKyAgICAgICAgICAgIC8vIHJlbW92ZSBmcm9tIGNvbnRlbnQKKyAgICAgICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzWzBdIGFzICRpbXBvcnQpIHsKKyAgICAgICAgICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCRpbXBvcnQsICcnLCAkY29udGVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGFkZCB0byB0b3AKKyAgICAgICAgICAgICRjb250ZW50ID0gaW1wbG9kZSgnOycsICRtYXRjaGVzWzJdKS4nOycudHJpbSgkY29udGVudCwgJzsnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkY29udGVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21iaW5lIENTUyBmcm9tIGltcG9ydCBzdGF0ZW1lbnRzLgorICAgICAqCisgICAgICogQGltcG9ydCdzIHdpbGwgYmUgbG9hZGVkIGFuZCB0aGVpciBjb250ZW50IG1lcmdlZCBpbnRvIHRoZSBvcmlnaW5hbCBmaWxlLAorICAgICAqIHRvIHNhdmUgSFRUUCByZXF1ZXN0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAkc291cmNlICBUaGUgZmlsZSB0byBjb21iaW5lIGltcG9ydHMgZm9yCisgICAgICogQHBhcmFtIHN0cmluZyAgICRjb250ZW50IFRoZSBDU1MgY29udGVudCB0byBjb21iaW5lIGltcG9ydHMgZm9yCisgICAgICogQHBhcmFtIHN0cmluZ1tdICRwYXJlbnRzIFBhcmVudCBwYXRocywgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZSBjaGVja3MKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEZpbGVJbXBvcnRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29tYmluZUltcG9ydHMoJHNvdXJjZSwgJGNvbnRlbnQsICRwYXJlbnRzKQorICAgIHsKKyAgICAgICAgJGltcG9ydFJlZ2V4ZXMgPSBhcnJheSgKKyAgICAgICAgICAgIC8vIEBpbXBvcnQgdXJsKHh4eCkKKyAgICAgICAgICAgICcvCisgICAgICAgICAgICAjIGltcG9ydCBzdGF0ZW1lbnQKKyAgICAgICAgICAgIEBpbXBvcnQKKworICAgICAgICAgICAgIyB3aGl0ZXNwYWNlCisgICAgICAgICAgICBccysKKworICAgICAgICAgICAgICAgICMgb3BlbiB1cmwoKQorICAgICAgICAgICAgICAgIHVybFwoCisKKyAgICAgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG9wZW4gcGF0aCBlbmNsb3N1cmUKKyAgICAgICAgICAgICAgICAgICAgKD9QPHF1b3Rlcz5bIlwnXT8pCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgZmV0Y2ggcGF0aAorICAgICAgICAgICAgICAgICAgICAgICAgKD9QPHBhdGg+Lis/KQorCisgICAgICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSBjbG9zZSBwYXRoIGVuY2xvc3VyZQorICAgICAgICAgICAgICAgICAgICAoP1A9cXVvdGVzKQorCisgICAgICAgICAgICAgICAgIyBjbG9zZSB1cmwoKQorICAgICAgICAgICAgICAgIFwpCisKKyAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgIFxzKgorCisgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG1lZGlhIHN0YXRlbWVudChzKQorICAgICAgICAgICAgICAgICg/UDxtZWRpYT5bXjtdKikKKworICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgXHMqCisKKyAgICAgICAgICAgICMgKG9wdGlvbmFsKSBjbG9zaW5nIHNlbWktY29sb24KKyAgICAgICAgICAgIDs/CisKKyAgICAgICAgICAgIC9peCcsCisKKyAgICAgICAgICAgIC8vIEBpbXBvcnQgJ3h4eCcKKyAgICAgICAgICAgICcvCisKKyAgICAgICAgICAgICMgaW1wb3J0IHN0YXRlbWVudAorICAgICAgICAgICAgQGltcG9ydAorCisgICAgICAgICAgICAjIHdoaXRlc3BhY2UKKyAgICAgICAgICAgIFxzKworCisgICAgICAgICAgICAgICAgIyBvcGVuIHBhdGggZW5jbG9zdXJlCisgICAgICAgICAgICAgICAgKD9QPHF1b3Rlcz5bIlwnXSkKKworICAgICAgICAgICAgICAgICAgICAjIGZldGNoIHBhdGgKKyAgICAgICAgICAgICAgICAgICAgKD9QPHBhdGg+Lis/KQorCisgICAgICAgICAgICAgICAgIyBjbG9zZSBwYXRoIGVuY2xvc3VyZQorICAgICAgICAgICAgICAgICg/UD1xdW90ZXMpCisKKyAgICAgICAgICAgICAgICAjIChvcHRpb25hbCkgdHJhaWxpbmcgd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgIFxzKgorCisgICAgICAgICAgICAgICAgIyAob3B0aW9uYWwpIG1lZGlhIHN0YXRlbWVudChzKQorICAgICAgICAgICAgICAgICg/UDxtZWRpYT5bXjtdKikKKworICAgICAgICAgICAgICAgICMgKG9wdGlvbmFsKSB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgXHMqCisKKyAgICAgICAgICAgICMgKG9wdGlvbmFsKSBjbG9zaW5nIHNlbWktY29sb24KKyAgICAgICAgICAgIDs/CisKKyAgICAgICAgICAgIC9peCcsCisgICAgICAgICk7CisKKyAgICAgICAgLy8gZmluZCBhbGwgcmVsYXRpdmUgaW1wb3J0cyBpbiBjc3MKKyAgICAgICAgJG1hdGNoZXMgPSBhcnJheSgpOworICAgICAgICBmb3JlYWNoICgkaW1wb3J0UmVnZXhlcyBhcyAkaW1wb3J0UmVnZXgpIHsKKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoX2FsbCgkaW1wb3J0UmVnZXgsICRjb250ZW50LCAkcmVnZXhNYXRjaGVzLCBQUkVHX1NFVF9PUkRFUikpIHsKKyAgICAgICAgICAgICAgICAkbWF0Y2hlcyA9IGFycmF5X21lcmdlKCRtYXRjaGVzLCAkcmVnZXhNYXRjaGVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRzZWFyY2ggPSBhcnJheSgpOworICAgICAgICAkcmVwbGFjZSA9IGFycmF5KCk7CisKKyAgICAgICAgLy8gbG9vcCB0aGUgbWF0Y2hlcworICAgICAgICBmb3JlYWNoICgkbWF0Y2hlcyBhcyAkbWF0Y2gpIHsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgcGF0aCBmb3IgdGhlIGZpbGUgdGhhdCB3aWxsIGJlIGltcG9ydGVkCisgICAgICAgICAgICAkaW1wb3J0UGF0aCA9IGRpcm5hbWUoJHNvdXJjZSkuJy8nLiRtYXRjaFsncGF0aCddOworCisgICAgICAgICAgICAvLyBvbmx5IHJlcGxhY2UgdGhlIGltcG9ydCB3aXRoIHRoZSBjb250ZW50IGlmIHdlIGNhbiBncmFiIHRoZQorICAgICAgICAgICAgLy8gY29udGVudCBvZiB0aGUgZmlsZQorICAgICAgICAgICAgaWYgKCEkdGhpcy0+Y2FuSW1wb3J0QnlQYXRoKCRtYXRjaFsncGF0aCddKSB8fCAhJHRoaXMtPmNhbkltcG9ydEZpbGUoJGltcG9ydFBhdGgpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIGN1cnJlbnQgZmlsZSB3YXMgbm90IGltcG9ydGVkIHByZXZpb3VzbHkgaW4gdGhlIHNhbWUKKyAgICAgICAgICAgIC8vIGltcG9ydCBjaGFpbi4KKyAgICAgICAgICAgIGlmIChpbl9hcnJheSgkaW1wb3J0UGF0aCwgJHBhcmVudHMpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEZpbGVJbXBvcnRFeGNlcHRpb24oJ0ZhaWxlZCB0byBpbXBvcnQgZmlsZSAiJy4kaW1wb3J0UGF0aC4nIjogY2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkLicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBncmFiIHJlZmVyZW5jZWQgZmlsZSAmIG1pbmlmeSBpdCAod2hpY2ggbWF5IGluY2x1ZGUgaW1wb3J0aW5nCisgICAgICAgICAgICAvLyB5ZXQgb3RoZXIgQGltcG9ydCBzdGF0ZW1lbnRzIHJlY3Vyc2l2ZWx5KQorICAgICAgICAgICAgJG1pbmlmaWVyID0gbmV3IHN0YXRpYygkaW1wb3J0UGF0aCk7CisgICAgICAgICAgICAkbWluaWZpZXItPnNldE1heEltcG9ydFNpemUoJHRoaXMtPm1heEltcG9ydFNpemUpOworICAgICAgICAgICAgJG1pbmlmaWVyLT5zZXRJbXBvcnRFeHRlbnNpb25zKCR0aGlzLT5pbXBvcnRFeHRlbnNpb25zKTsKKyAgICAgICAgICAgICRpbXBvcnRDb250ZW50ID0gJG1pbmlmaWVyLT5leGVjdXRlKCRzb3VyY2UsICRwYXJlbnRzKTsKKworICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBpcyBvbmx5IHZhbGlkIGZvciBjZXJ0YWluIG1lZGlhCisgICAgICAgICAgICBpZiAoIWVtcHR5KCRtYXRjaFsnbWVkaWEnXSkpIHsKKyAgICAgICAgICAgICAgICAkaW1wb3J0Q29udGVudCA9ICdAbWVkaWEgJy4kbWF0Y2hbJ21lZGlhJ10uJ3snLiRpbXBvcnRDb250ZW50Lid9JzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYWRkIHRvIHJlcGxhY2VtZW50IGFycmF5CisgICAgICAgICAgICAkc2VhcmNoW10gPSAkbWF0Y2hbMF07CisgICAgICAgICAgICAkcmVwbGFjZVtdID0gJGltcG9ydENvbnRlbnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXBsYWNlIHRoZSBpbXBvcnQgc3RhdGVtZW50cworICAgICAgICByZXR1cm4gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICRjb250ZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBvcnQgZmlsZXMgaW50byB0aGUgQ1NTLCBiYXNlNjQtaXplZC4KKyAgICAgKgorICAgICAqIEB1cmwoaW1hZ2UuanBnKSBpbWFnZXMgd2lsbCBiZSBsb2FkZWQgYW5kIHRoZWlyIGNvbnRlbnQgbWVyZ2VkIGludG8gdGhlCisgICAgICogb3JpZ2luYWwgZmlsZSwgdG8gc2F2ZSBIVFRQIHJlcXVlc3RzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc291cmNlICBUaGUgZmlsZSB0byBpbXBvcnQgZmlsZXMgZm9yCisgICAgICogQHBhcmFtIHN0cmluZyAkY29udGVudCBUaGUgQ1NTIGNvbnRlbnQgdG8gaW1wb3J0IGZpbGVzIGZvcgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW1wb3J0RmlsZXMoJHNvdXJjZSwgJGNvbnRlbnQpCisgICAgeworICAgICAgICAkcmVnZXggPSAnL3VybFwoKFsiXCddPykoLis/KVxcMVwpL2knOworICAgICAgICBpZiAoJHRoaXMtPmltcG9ydEV4dGVuc2lvbnMgJiYgcHJlZ19tYXRjaF9hbGwoJHJlZ2V4LCAkY29udGVudCwgJG1hdGNoZXMsIFBSRUdfU0VUX09SREVSKSkgeworICAgICAgICAgICAgJHNlYXJjaCA9IGFycmF5KCk7CisgICAgICAgICAgICAkcmVwbGFjZSA9IGFycmF5KCk7CisKKyAgICAgICAgICAgIC8vIGxvb3AgdGhlIG1hdGNoZXMKKyAgICAgICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzIGFzICRtYXRjaCkgeworICAgICAgICAgICAgICAgICRleHRlbnNpb24gPSBzdWJzdHIoc3RycmNocigkbWF0Y2hbMl0sICcuJyksIDEpOworICAgICAgICAgICAgICAgIGlmICgkZXh0ZW5zaW9uICYmICFhcnJheV9rZXlfZXhpc3RzKCRleHRlbnNpb24sICR0aGlzLT5pbXBvcnRFeHRlbnNpb25zKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHBhdGggZm9yIHRoZSBmaWxlIHRoYXQgd2lsbCBiZSBpbXBvcnRlZAorICAgICAgICAgICAgICAgICRwYXRoID0gJG1hdGNoWzJdOworICAgICAgICAgICAgICAgICRwYXRoID0gZGlybmFtZSgkc291cmNlKS4nLycuJHBhdGg7CisKKyAgICAgICAgICAgICAgICAvLyBvbmx5IHJlcGxhY2UgdGhlIGltcG9ydCB3aXRoIHRoZSBjb250ZW50IGlmIHdlJ3JlIGFibGUgdG8gZ2V0CisgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUsIGFuZCBpdCdzIHJlbGF0aXZlbHkgc21hbGwKKyAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmNhbkltcG9ydEZpbGUoJHBhdGgpICYmICR0aGlzLT5jYW5JbXBvcnRCeVNpemUoJHBhdGgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGdyYWIgY29udGVudCAmJiBiYXNlNjQtaXplCisgICAgICAgICAgICAgICAgICAgICRpbXBvcnRDb250ZW50ID0gJHRoaXMtPmxvYWQoJHBhdGgpOworICAgICAgICAgICAgICAgICAgICAkaW1wb3J0Q29udGVudCA9IGJhc2U2NF9lbmNvZGUoJGltcG9ydENvbnRlbnQpOworCisgICAgICAgICAgICAgICAgICAgIC8vIGJ1aWxkIHJlcGxhY2VtZW50CisgICAgICAgICAgICAgICAgICAgICRzZWFyY2hbXSA9ICRtYXRjaFswXTsKKyAgICAgICAgICAgICAgICAgICAgJHJlcGxhY2VbXSA9ICd1cmwoJy4kdGhpcy0+aW1wb3J0RXh0ZW5zaW9uc1skZXh0ZW5zaW9uXS4nO2Jhc2U2NCwnLiRpbXBvcnRDb250ZW50LicpJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIGltcG9ydCBzdGF0ZW1lbnRzCisgICAgICAgICAgICAkY29udGVudCA9IHN0cl9yZXBsYWNlKCRzZWFyY2gsICRyZXBsYWNlLCAkY29udGVudCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGNvbnRlbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWluaWZ5IHRoZSBkYXRhLgorICAgICAqIFBlcmZvcm0gQ1NTIG9wdGltaXphdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nW29wdGlvbmFsXSAkcGF0aCAgICBQYXRoIHRvIHdyaXRlIHRoZSBkYXRhIHRvCisgICAgICogQHBhcmFtIHN0cmluZ1tdICAgICAgICAgJHBhcmVudHMgUGFyZW50IHBhdGhzLCBmb3IgY2lyY3VsYXIgcmVmZXJlbmNlIGNoZWNrcworICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIG1pbmlmaWVkIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZXhlY3V0ZSgkcGF0aCA9IG51bGwsICRwYXJlbnRzID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgICRjb250ZW50ID0gJyc7CisKKyAgICAgICAgLy8gbG9vcCBDU1MgZGF0YSAocmF3IGRhdGEgYW5kIGZpbGVzKQorICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAkc291cmNlID0+ICRjc3MpIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBMZXQncyBmaXJzdCB0YWtlIG91dCBzdHJpbmdzICYgY29tbWVudHMsIHNpbmNlIHdlIGNhbid0IGp1c3QKKyAgICAgICAgICAgICAqIHJlbW92ZSB3aGl0ZXNwYWNlIGFueXdoZXJlLiBJZiB3aGl0ZXNwYWNlIG9jY3VycyBpbnNpZGUgYSBzdHJpbmcsCisgICAgICAgICAgICAgKiB3ZSBzaG91bGQgbGVhdmUgaXQgYWxvbmUuIEUuZy46CisgICAgICAgICAgICAgKiBwIHsgY29udGVudDogImEgICB0ZXN0IiB9CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICR0aGlzLT5leHRyYWN0U3RyaW5ncygpOworICAgICAgICAgICAgJHRoaXMtPnN0cmlwQ29tbWVudHMoKTsKKyAgICAgICAgICAgICR0aGlzLT5leHRyYWN0Q2FsY3MoKTsKKyAgICAgICAgICAgICRjc3MgPSAkdGhpcy0+cmVwbGFjZSgkY3NzKTsKKworICAgICAgICAgICAgJGNzcyA9ICR0aGlzLT5zdHJpcFdoaXRlc3BhY2UoJGNzcyk7CisgICAgICAgICAgICAkY3NzID0gJHRoaXMtPnNob3J0ZW5Db2xvcnMoJGNzcyk7CisgICAgICAgICAgICAkY3NzID0gJHRoaXMtPnNob3J0ZW5aZXJvZXMoJGNzcyk7CisgICAgICAgICAgICAkY3NzID0gJHRoaXMtPnNob3J0ZW5Gb250V2VpZ2h0cygkY3NzKTsKKyAgICAgICAgICAgICRjc3MgPSAkdGhpcy0+c3RyaXBFbXB0eVRhZ3MoJGNzcyk7CisKKyAgICAgICAgICAgIC8vIHJlc3RvcmUgdGhlIHN0cmluZyB3ZSd2ZSBleHRyYWN0ZWQgZWFybGllcgorICAgICAgICAgICAgJGNzcyA9ICR0aGlzLT5yZXN0b3JlRXh0cmFjdGVkRGF0YSgkY3NzKTsKKworICAgICAgICAgICAgJHNvdXJjZSA9IGlzX2ludCgkc291cmNlKSA/ICcnIDogJHNvdXJjZTsKKyAgICAgICAgICAgICRwYXJlbnRzID0gJHNvdXJjZSA/IGFycmF5X21lcmdlKCRwYXJlbnRzLCBhcnJheSgkc291cmNlKSkgOiAkcGFyZW50czsKKyAgICAgICAgICAgICRjc3MgPSAkdGhpcy0+Y29tYmluZUltcG9ydHMoJHNvdXJjZSwgJGNzcywgJHBhcmVudHMpOworICAgICAgICAgICAgJGNzcyA9ICR0aGlzLT5pbXBvcnRGaWxlcygkc291cmNlLCAkY3NzKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIElmIHdlJ2xsIHNhdmUgdG8gYSBuZXcgcGF0aCwgd2UnbGwgaGF2ZSB0byBmaXggdGhlIHJlbGF0aXZlIHBhdGhzCisgICAgICAgICAgICAgKiB0byBiZSByZWxhdGl2ZSBubyBsb25nZXIgdG8gdGhlIHNvdXJjZSBmaWxlLCBidXQgdG8gdGhlIG5ldyBwYXRoLgorICAgICAgICAgICAgICogSWYgd2UgZG9uJ3Qgd3JpdGUgdG8gYSBmaWxlLCBmYWxsIGJhY2sgdG8gc2FtZSBwYXRoIHNvIG5vCisgICAgICAgICAgICAgKiBjb252ZXJzaW9uIGhhcHBlbnMgKGJlY2F1c2Ugd2Ugc3RpbGwgd2FudCBpdCB0byBnbyB0aHJvdWdoIG1vc3QKKyAgICAgICAgICAgICAqIG9mIHRoZSBtb3ZlIGNvZGUsIHdoaWNoIGFsc28gYWRkcmVzc2VzIHVybCgpICYgQGltcG9ydCBzeW50YXguLi4pCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICRjb252ZXJ0ZXIgPSAkdGhpcy0+Z2V0UGF0aENvbnZlcnRlcigkc291cmNlLCAkcGF0aCA/OiAkc291cmNlKTsKKyAgICAgICAgICAgICRjc3MgPSAkdGhpcy0+bW92ZSgkY29udmVydGVyLCAkY3NzKTsKKworICAgICAgICAgICAgLy8gY29tYmluZSBjc3MKKyAgICAgICAgICAgICRjb250ZW50IC49ICRjc3M7CisgICAgICAgIH0KKworICAgICAgICAkY29udGVudCA9ICR0aGlzLT5tb3ZlSW1wb3J0c1RvVG9wKCRjb250ZW50KTsKKworICAgICAgICByZXR1cm4gJGNvbnRlbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW92aW5nIGEgY3NzIGZpbGUgc2hvdWxkIHVwZGF0ZSBhbGwgcmVsYXRpdmUgdXJscy4KKyAgICAgKiBSZWxhdGl2ZSByZWZlcmVuY2VzIChlLmcuIC4uL2ltYWdlcy9pbWFnZS5naWYpIGluIGEgY2VydGFpbiBjc3MgZmlsZSwKKyAgICAgKiB3aWxsIGhhdmUgdG8gYmUgdXBkYXRlZCB3aGVuIGEgZmlsZSBpcyBiZWluZyBzYXZlZCBhdCBhbm90aGVyIGxvY2F0aW9uCisgICAgICogKGUuZy4gLi4vLi4vaW1hZ2VzL2ltYWdlLmdpZiwgaWYgdGhlIG5ldyBDU1MgZmlsZSBpcyAxIGZvbGRlciBkZWVwZXIpLgorICAgICAqCisgICAgICogQHBhcmFtIENvbnZlcnRlckludGVyZmFjZSAkY29udmVydGVyIFJlbGF0aXZlIHBhdGggY29udmVydGVyCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAkY29udGVudCAgIFRoZSBDU1MgY29udGVudCB0byB1cGRhdGUgcmVsYXRpdmUgdXJscyBmb3IKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG1vdmUoQ29udmVydGVySW50ZXJmYWNlICRjb252ZXJ0ZXIsICRjb250ZW50KQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogUmVsYXRpdmUgcGF0aCByZWZlcmVuY2VzIHdpbGwgdXN1YWxseSBiZSBlbmNsb3NlZCBieSB1cmwoKS4gQGltcG9ydAorICAgICAgICAgKiBpcyBhbiBleGNlcHRpb24sIHdoZXJlIHVybCgpIGlzIG5vdCBuZWNlc3NhcnkgYXJvdW5kIHRoZSBwYXRoIChidXQgaXMKKyAgICAgICAgICogYWxsb3dlZCkuCisgICAgICAgICAqIFRoaXMgKmNvdWxkKiBiZSAxIHJlZ3VsYXIgZXhwcmVzc2lvbiwgd2hlcmUgYm90aCByZWd1bGFyIGV4cHJlc3Npb25zCisgICAgICAgICAqIGluIHRoaXMgYXJyYXkgYXJlIG9uIGRpZmZlcmVudCBzaWRlcyBvZiBhIHwuIEJ1dCB3ZSdyZSB1c2luZyBuYW1lZAorICAgICAgICAgKiBwYXR0ZXJucyBpbiBib3RoIHJlZ2V4ZXMsIHRoZSBzYW1lIG5hbWUgb24gYm90aCByZWdleGVzLiBUaGlzIGlzIG9ubHkKKyAgICAgICAgICogcG9zc2libGUgd2l0aCBhICg/SikgbW9kaWZpZXIsIGJ1dCB0aGF0IG9ubHkgd29ya3MgYWZ0ZXIgYSBmYWlybHkKKyAgICAgICAgICogcmVjZW50IFBDUkUgdmVyc2lvbi4gVGhhdCdzIHdoeSBJJ20gZG9pbmcgMiBzZXBhcmF0ZSByZWd1bGFyCisgICAgICAgICAqIGV4cHJlc3Npb25zICYgY29tYmluaW5nIHRoZSBtYXRjaGVzIGFmdGVyIGV4ZWN1dGluZyBvZiBib3RoLgorICAgICAgICAgKi8KKyAgICAgICAgJHJlbGF0aXZlUmVnZXhlcyA9IGFycmF5KAorICAgICAgICAgICAgLy8gdXJsKHh4eCkKKyAgICAgICAgICAgICcvCisgICAgICAgICAgICAjIG9wZW4gdXJsKCkKKyAgICAgICAgICAgIHVybFwoCisKKyAgICAgICAgICAgICAgICBccyoKKworICAgICAgICAgICAgICAgICMgb3BlbiBwYXRoIGVuY2xvc3VyZQorICAgICAgICAgICAgICAgICg/UDxxdW90ZXM+WyJcJ10pPworCisgICAgICAgICAgICAgICAgICAgICMgZmV0Y2ggcGF0aAorICAgICAgICAgICAgICAgICAgICAoP1A8cGF0aD4uKz8pCisKKyAgICAgICAgICAgICAgICAjIGNsb3NlIHBhdGggZW5jbG9zdXJlCisgICAgICAgICAgICAgICAgKD8ocXVvdGVzKSg/UD1xdW90ZXMpKQorCisgICAgICAgICAgICAgICAgXHMqCisKKyAgICAgICAgICAgICMgY2xvc2UgdXJsKCkKKyAgICAgICAgICAgIFwpCisKKyAgICAgICAgICAgIC9peCcsCisKKyAgICAgICAgICAgIC8vIEBpbXBvcnQgInh4eCIKKyAgICAgICAgICAgICcvCisgICAgICAgICAgICAjIGltcG9ydCBzdGF0ZW1lbnQKKyAgICAgICAgICAgIEBpbXBvcnQKKworICAgICAgICAgICAgIyB3aGl0ZXNwYWNlCisgICAgICAgICAgICBccysKKworICAgICAgICAgICAgICAgICMgd2UgZG9uXCd0IGhhdmUgdG8gY2hlY2sgZm9yIEBpbXBvcnQgdXJsKCksIGJlY2F1c2UgdGhlCisgICAgICAgICAgICAgICAgIyBjb25kaXRpb24gYWJvdmUgd2lsbCBhbHJlYWR5IGNhdGNoIHRoZXNlCisKKyAgICAgICAgICAgICAgICAjIG9wZW4gcGF0aCBlbmNsb3N1cmUKKyAgICAgICAgICAgICAgICAoP1A8cXVvdGVzPlsiXCddKQorCisgICAgICAgICAgICAgICAgICAgICMgZmV0Y2ggcGF0aAorICAgICAgICAgICAgICAgICAgICAoP1A8cGF0aD4uKz8pCisKKyAgICAgICAgICAgICAgICAjIGNsb3NlIHBhdGggZW5jbG9zdXJlCisgICAgICAgICAgICAgICAgKD9QPXF1b3RlcykKKworICAgICAgICAgICAgL2l4JywKKyAgICAgICAgKTsKKworICAgICAgICAvLyBmaW5kIGFsbCByZWxhdGl2ZSB1cmxzIGluIGNzcworICAgICAgICAkbWF0Y2hlcyA9IGFycmF5KCk7CisgICAgICAgIGZvcmVhY2ggKCRyZWxhdGl2ZVJlZ2V4ZXMgYXMgJHJlbGF0aXZlUmVnZXgpIHsKKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoX2FsbCgkcmVsYXRpdmVSZWdleCwgJGNvbnRlbnQsICRyZWdleE1hdGNoZXMsIFBSRUdfU0VUX09SREVSKSkgeworICAgICAgICAgICAgICAgICRtYXRjaGVzID0gYXJyYXlfbWVyZ2UoJG1hdGNoZXMsICRyZWdleE1hdGNoZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJHNlYXJjaCA9IGFycmF5KCk7CisgICAgICAgICRyZXBsYWNlID0gYXJyYXkoKTsKKworICAgICAgICAvLyBsb29wIGFsbCB1cmxzCisgICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzIGFzICRtYXRjaCkgeworICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIGlmIGl0J3MgYSB1cmwoKSBvciBhbiBAaW1wb3J0IG1hdGNoCisgICAgICAgICAgICAkdHlwZSA9IChzdHJwb3MoJG1hdGNoWzBdLCAnQGltcG9ydCcpID09PSAwID8gJ2ltcG9ydCcgOiAndXJsJyk7CisKKyAgICAgICAgICAgICR1cmwgPSAkbWF0Y2hbJ3BhdGgnXTsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Y2FuSW1wb3J0QnlQYXRoKCR1cmwpKSB7CisgICAgICAgICAgICAgICAgLy8gYXR0ZW1wdGluZyB0byBpbnRlcnByZXQgR0VULXBhcmFtcyBtYWtlcyBubyBzZW5zZSwgc28gbGV0J3MgZGlzY2FyZCB0aGVtIGZvciBhd2hpbGUKKyAgICAgICAgICAgICAgICAkcGFyYW1zID0gc3RycmNocigkdXJsLCAnPycpOworICAgICAgICAgICAgICAgICR1cmwgPSAkcGFyYW1zID8gc3Vic3RyKCR1cmwsIDAsIC1zdHJsZW4oJHBhcmFtcykpIDogJHVybDsKKworICAgICAgICAgICAgICAgIC8vIGZpeCByZWxhdGl2ZSB1cmwKKyAgICAgICAgICAgICAgICAkdXJsID0gJGNvbnZlcnRlci0+Y29udmVydCgkdXJsKTsKKworICAgICAgICAgICAgICAgIC8vIG5vdyB0aGF0IHRoZSBwYXRoIGhhcyBiZWVuIGNvbnZlcnRlZCwgcmUtYXBwbHkgR0VULXBhcmFtcworICAgICAgICAgICAgICAgICR1cmwgLj0gJHBhcmFtczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFVybHMgd2l0aCBjb250cm9sIGNoYXJhY3RlcnMgYWJvdmUgMHg3ZSBzaG91bGQgYmUgcXVvdGVkLgorICAgICAgICAgICAgICogQWNjb3JkaW5nIHRvIE1vemlsbGEncyBwYXJzZXIsIHdoaXRlc3BhY2UgaXMgb25seSBhbGxvd2VkIGF0IHRoZQorICAgICAgICAgICAgICogZW5kIG9mIHVucXVvdGVkIHVybHMuCisgICAgICAgICAgICAgKiBVcmxzIHdpdGggYClgIChhcyBjb3VsZCBoYXBwZW4gd2l0aCBkYXRhOiB1cmlzKSBzaG91bGQgYWxzbyBiZQorICAgICAgICAgICAgICogcXVvdGVkIHRvIGF2b2lkIGJlaW5nIGNvbmZ1c2VkIGZvciB0aGUgdXJsKCkgY2xvc2luZyBwYXJlbnRoZXNlcy4KKyAgICAgICAgICAgICAqIEFuZCB1cmxzIHdpdGggYSAjIGhhdmUgYWxzbyBiZWVuIHJlcG9ydGVkIHRvIGNhdXNlIGlzc3Vlcy4KKyAgICAgICAgICAgICAqIFVybHMgd2l0aCBxdW90ZXMgaW5zaWRlIHNob3VsZCBhbHNvIHJlbWFpbiBlc2NhcGVkLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvbmwvZG9jcy9XZWIvQ1NTL3VybCNUaGVfdXJsKClfZnVuY3Rpb25hbF9ub3RhdGlvbgorICAgICAgICAgICAgICogQHNlZSBodHRwczovL2hnLm1vemlsbGEub3JnL21vemlsbGEtY2VudHJhbC9yZXYvMTRhYmNhNGU3Mzc4CisgICAgICAgICAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc211bGxpZS9taW5pZnkvaXNzdWVzLzE5MworICAgICAgICAgICAgICovCisgICAgICAgICAgICAkdXJsID0gdHJpbSgkdXJsKTsKKyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvW1xzXClcJyIjXHh7N2Z9LVx4ezlmfV0vdScsICR1cmwpKSB7CisgICAgICAgICAgICAgICAgJHVybCA9ICRtYXRjaFsncXVvdGVzJ10gLiAkdXJsIC4gJG1hdGNoWydxdW90ZXMnXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYnVpbGQgcmVwbGFjZW1lbnQKKyAgICAgICAgICAgICRzZWFyY2hbXSA9ICRtYXRjaFswXTsKKyAgICAgICAgICAgIGlmICgkdHlwZSA9PT0gJ3VybCcpIHsKKyAgICAgICAgICAgICAgICAkcmVwbGFjZVtdID0gJ3VybCgnLiR1cmwuJyknOworICAgICAgICAgICAgfSBlbHNlaWYgKCR0eXBlID09PSAnaW1wb3J0JykgeworICAgICAgICAgICAgICAgICRyZXBsYWNlW10gPSAnQGltcG9ydCAiJy4kdXJsLiciJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHJlcGxhY2UgdXJscworICAgICAgICByZXR1cm4gc3RyX3JlcGxhY2UoJHNlYXJjaCwgJHJlcGxhY2UsICRjb250ZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaG9ydGhhbmQgaGV4IGNvbG9yIGNvZGVzLgorICAgICAqICNGRjAwMDAgLT4gI0YwMC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQgVGhlIENTUyBjb250ZW50IHRvIHNob3J0ZW4gdGhlIGhleCBjb2xvciBjb2RlcyBmb3IKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNob3J0ZW5Db2xvcnMoJGNvbnRlbnQpCisgICAgeworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnLyg/PD1bOiBdKSMoWzAtOWEtel0pXFwxKFswLTlhLXpdKVxcMihbMC05YS16XSlcXDMoPzooWzAtOWEtel0pXFw0KT8oPz1bOyB9XSkvaScsICcjJDEkMiQzJDQnLCAkY29udGVudCk7CisKKyAgICAgICAgLy8gcmVtb3ZlIGFscGhhIGNoYW5uZWwgaWYgaXQncyBwb2ludGxlc3MuLi4KKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy8oPzw9WzogXSkjKFswLTlhLXpdezZ9KWZmPyg/PVs7IH1dKS9pJywgJyMkMScsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy8oPzw9WzogXSkjKFswLTlhLXpdezN9KWY/KD89WzsgfV0pL2knLCAnIyQxJywgJGNvbnRlbnQpOworCisgICAgICAgICRjb2xvcnMgPSBhcnJheSgKKyAgICAgICAgICAgIC8vIHdlIGNhbiBzaG9ydGVuIHNvbWUgZXZlbiBtb3JlIGJ5IHJlcGxhY2luZyB0aGVtIHdpdGggdGhlaXIgY29sb3IgbmFtZQorICAgICAgICAgICAgJyNGMEZGRkYnID0+ICdhenVyZScsCisgICAgICAgICAgICAnI0Y1RjVEQycgPT4gJ2JlaWdlJywKKyAgICAgICAgICAgICcjQTUyQTJBJyA9PiAnYnJvd24nLAorICAgICAgICAgICAgJyNGRjdGNTAnID0+ICdjb3JhbCcsCisgICAgICAgICAgICAnI0ZGRDcwMCcgPT4gJ2dvbGQnLAorICAgICAgICAgICAgJyM4MDgwODAnID0+ICdncmF5JywKKyAgICAgICAgICAgICcjMDA4MDAwJyA9PiAnZ3JlZW4nLAorICAgICAgICAgICAgJyM0QjAwODInID0+ICdpbmRpZ28nLAorICAgICAgICAgICAgJyNGRkZGRjAnID0+ICdpdm9yeScsCisgICAgICAgICAgICAnI0YwRTY4QycgPT4gJ2toYWtpJywKKyAgICAgICAgICAgICcjRkFGMEU2JyA9PiAnbGluZW4nLAorICAgICAgICAgICAgJyM4MDAwMDAnID0+ICdtYXJvb24nLAorICAgICAgICAgICAgJyMwMDAwODAnID0+ICduYXZ5JywKKyAgICAgICAgICAgICcjODA4MDAwJyA9PiAnb2xpdmUnLAorICAgICAgICAgICAgJyNDRDg1M0YnID0+ICdwZXJ1JywKKyAgICAgICAgICAgICcjRkZDMENCJyA9PiAncGluaycsCisgICAgICAgICAgICAnI0REQTBERCcgPT4gJ3BsdW0nLAorICAgICAgICAgICAgJyM4MDAwODAnID0+ICdwdXJwbGUnLAorICAgICAgICAgICAgJyNGMDAnID0+ICdyZWQnLAorICAgICAgICAgICAgJyNGQTgwNzInID0+ICdzYWxtb24nLAorICAgICAgICAgICAgJyNBMDUyMkQnID0+ICdzaWVubmEnLAorICAgICAgICAgICAgJyNDMEMwQzAnID0+ICdzaWx2ZXInLAorICAgICAgICAgICAgJyNGRkZBRkEnID0+ICdzbm93JywKKyAgICAgICAgICAgICcjRDJCNDhDJyA9PiAndGFuJywKKyAgICAgICAgICAgICcjRkY2MzQ3JyA9PiAndG9tYXRvJywKKyAgICAgICAgICAgICcjRUU4MkVFJyA9PiAndmlvbGV0JywKKyAgICAgICAgICAgICcjRjVERUIzJyA9PiAnd2hlYXQnLAorICAgICAgICAgICAgLy8gb3IgdGhlIG90aGVyIHdheSBhcm91bmQKKyAgICAgICAgICAgICdXSElURScgPT4gJyNmZmYnLAorICAgICAgICAgICAgJ0JMQUNLJyA9PiAnIzAwMCcsCisgICAgICAgICk7CisKKyAgICAgICAgcmV0dXJuIHByZWdfcmVwbGFjZV9jYWxsYmFjaygKKyAgICAgICAgICAgICcvKD88PVs6IF0pKCcuaW1wbG9kZSgnfCcsIGFycmF5X2tleXMoJGNvbG9ycykpLicpKD89WzsgfV0pL2knLAorICAgICAgICAgICAgZnVuY3Rpb24gKCRtYXRjaCkgdXNlICgkY29sb3JzKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRjb2xvcnNbc3RydG91cHBlcigkbWF0Y2hbMF0pXTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAkY29udGVudAorICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNob3J0ZW4gQ1NTIGZvbnQgd2VpZ2h0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQgVGhlIENTUyBjb250ZW50IHRvIHNob3J0ZW4gdGhlIGZvbnQgd2VpZ2h0cyBmb3IKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNob3J0ZW5Gb250V2VpZ2h0cygkY29udGVudCkKKyAgICB7CisgICAgICAgICR3ZWlnaHRzID0gYXJyYXkoCisgICAgICAgICAgICAnbm9ybWFsJyA9PiA0MDAsCisgICAgICAgICAgICAnYm9sZCcgPT4gNzAwLAorICAgICAgICApOworCisgICAgICAgICRjYWxsYmFjayA9IGZ1bmN0aW9uICgkbWF0Y2gpIHVzZSAoJHdlaWdodHMpIHsKKyAgICAgICAgICAgIHJldHVybiAkbWF0Y2hbMV0uJHdlaWdodHNbJG1hdGNoWzJdXTsKKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvKGZvbnQtd2VpZ2h0XHMqOlxzKikoJy5pbXBsb2RlKCd8JywgYXJyYXlfa2V5cygkd2VpZ2h0cykpLicpKD89Wzt9XSkvJywgJGNhbGxiYWNrLCAkY29udGVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2hvcnRoYW5kIDAgdmFsdWVzIHRvIHBsYWluIDAsIGluc3RlYWQgb2YgZS5nLiAtMGVtLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY29udGVudCBUaGUgQ1NTIGNvbnRlbnQgdG8gc2hvcnRlbiB0aGUgemVybyB2YWx1ZXMgZm9yCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzaG9ydGVuWmVyb2VzKCRjb250ZW50KQorICAgIHsKKyAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBzdHJpcCB1bml0cyBpbiBgY2FsYygpYCBleHByZXNzaW9uczoKKyAgICAgICAgLy8gYDVweCAtIDBweGAgaXMgdmFsaWQsIGJ1dCBgNXB4IC0gMGAgaXMgbm90CisgICAgICAgIC8vIGAxMHB4ICogMGAgaXMgdmFsaWQgKGVxdWF0ZXMgdG8gMCksIGFuZCBzbyBpcyBgMTAgKiAwcHhgLCBidXQKKyAgICAgICAgLy8gYDEwICogMGAgaXMgaW52YWxpZAorICAgICAgICAvLyB3ZSd2ZSBleHRyYWN0ZWQgY2FsY3MgZWFybGllciwgc28gd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB0aGlzCisKKyAgICAgICAgLy8gcmV1c2FibGUgYml0cyBvZiBjb2RlIHRocm91Z2hvdXQgdGhlc2UgcmVnZXhlczoKKyAgICAgICAgLy8gYmVmb3JlICYgYWZ0ZXIgYXJlIHVzZWQgdG8gbWFrZSBzdXJlIHdlIGRvbid0IG1hdGNoIGxvc2UgdW5pbnRlbmRlZAorICAgICAgICAvLyAwLWxpa2UgdmFsdWVzIChlLmcuIGluICMwMDAsIG9yIGluIGh0dHA6Ly91cmwvMS4wKQorICAgICAgICAvLyB1bml0cyBjYW4gYmUgc3RyaXBwZWQgZnJvbSAwIHZhbHVlcywgb3IgdXNlZCB0byByZWNvZ25pemUgbm9uIDAKKyAgICAgICAgLy8gdmFsdWVzICh3aGVyZSB3YSBtYXkgYmUgYWJsZSB0byBzdHJpcCBhIC4wIHN1ZmZpeCkKKyAgICAgICAgJGJlZm9yZSA9ICcoPzw9WzooLCBdKSc7CisgICAgICAgICRhZnRlciA9ICcoPz1bICwpO31dKSc7CisgICAgICAgICR1bml0cyA9ICcoZW18ZXh8JXxweHxjbXxtbXxpbnxwdHxwY3xjaHxyZW18dmh8dnd8dm1pbnx2bWF4fHZtKSc7CisKKyAgICAgICAgLy8gc3RyaXAgdW5pdHMgYWZ0ZXIgemVyb2VzICgwcHggLT4gMCkKKyAgICAgICAgLy8gTk9URTogaXQgc2hvdWxkIGJlIHNhZmUgdG8gcmVtb3ZlIGFsbCB1bml0cyBmb3IgYSAwIHZhbHVlLCBidXQgaW4KKyAgICAgICAgLy8gcHJhY3RpY2UsIFdlYmtpdCAoZXNwZWNpYWxseSBTYWZhcmkpIHNlZW1zIHRvIHN0dW1ibGUgb3ZlciBhdCBsZWFzdAorICAgICAgICAvLyAwJSwgcG90ZW50aWFsbHkgb3RoZXIgdW5pdHMgYXMgd2VsbC4gT25seSBzdHJpcHBpbmcgJ3B4JyBmb3Igbm93LgorICAgICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc211bGxpZS9taW5pZnkvaXNzdWVzLzYwCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvJy4kYmVmb3JlLicoLT8wKihcLjArKT8pKD88PTApcHgnLiRhZnRlci4nLycsICdcXDEnLCAkY29udGVudCk7CisKKyAgICAgICAgLy8gc3RyaXAgMC1kaWdpdHMgKC4wIC0+IDApCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvJy4kYmVmb3JlLidcLjArJy4kdW5pdHMuJz8nLiRhZnRlci4nLycsICcwXFwxJywgJGNvbnRlbnQpOworICAgICAgICAvLyBzdHJpcCB0cmFpbGluZyAwOiA1MC4xMCAtPiA1MC4xLCA1MC4xMHB4IC0+IDUwLjFweAorICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnLycuJGJlZm9yZS4nKC0/WzAtOV0rXC5bMC05XSspMCsnLiR1bml0cy4nPycuJGFmdGVyLicvJywgJ1xcMVxcMicsICRjb250ZW50KTsKKyAgICAgICAgLy8gc3RyaXAgdHJhaWxpbmcgMDogNTAuMDAgLT4gNTAsIDUwLjAwcHggLT4gNTBweAorICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnLycuJGJlZm9yZS4nKC0/WzAtOV0rKVwuMCsnLiR1bml0cy4nPycuJGFmdGVyLicvJywgJ1xcMVxcMicsICRjb250ZW50KTsKKyAgICAgICAgLy8gc3RyaXAgbGVhZGluZyAwOiAwLjEgLT4gLjEsIDAxLjEgLT4gMS4xCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvJy4kYmVmb3JlLicoLT8pMCsoWzAtOV0qXC5bMC05XSspJy4kdW5pdHMuJz8nLiRhZnRlci4nLycsICdcXDFcXDJcXDMnLCAkY29udGVudCk7CisKKyAgICAgICAgLy8gc3RyaXAgbmVnYXRpdmUgemVyb2VzICgtMCAtPiAwKSAmIHRydW5jYXRlIHplcm9lcyAoMDAgLT4gMCkKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy8nLiRiZWZvcmUuJy0/MCsnLiR1bml0cy4nPycuJGFmdGVyLicvJywgJzBcXDEnLCAkY29udGVudCk7CisKKyAgICAgICAgLy8gSUUgZG9lc24ndCBzZWVtIHRvIHVuZGVyc3RhbmQgYSB1bml0bGVzcyBmbGV4LWJhc2lzIHZhbHVlIChjb3JyZWN0IC0KKyAgICAgICAgLy8gaXQgZ29lcyBhZ2FpbnN0IHRoZSBzcGVjKSwgc28gbGV0J3MgYWRkIGl0IGluIGFnYWluIChtYWtlIGl0IGAlYCwKKyAgICAgICAgLy8gd2hpY2ggaXMgb25seSAxIGNoYXI6IDAlLCAwcHgsIDAgYW55dGhpbmcsIGl0J3MgYWxsIGp1c3QgdGhlIHNhbWUpCisgICAgICAgIC8vIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvbmwvZG9jcy9XZWIvQ1NTL2ZsZXgKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9mbGV4OihbMC05XStcc1swLTldK1xzKTAoWztcfV0pLycsICdmbGV4OiR7MX0wJSR7Mn0nLCAkY29udGVudCk7CisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvZmxleC1iYXNpczowKFs7XH1dKS8nLCAnZmxleC1iYXNpczowJSR7MX0nLCAkY29udGVudCk7CisKKyAgICAgICAgcmV0dXJuICRjb250ZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0cmlwIGVtcHR5IHRhZ3MgZnJvbSBzb3VyY2UgY29kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHN0cmlwRW1wdHlUYWdzKCRjb250ZW50KQorICAgIHsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy8oPzw9XilbXlx7XH07XStce1xzKlx9LycsICcnLCAkY29udGVudCk7CisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvKD88PShcfXw7KSlbXlx7XH07XStce1xzKlx9LycsICcnLCAkY29udGVudCk7CisKKyAgICAgICAgcmV0dXJuICRjb250ZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0cmlwIGNvbW1lbnRzIGZyb20gc291cmNlIGNvZGUuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHN0cmlwQ29tbWVudHMoKQorICAgIHsKKyAgICAgICAgLy8gUEhQIG9ubHkgc3VwcG9ydHMgJHRoaXMgaW5zaWRlIGFub255bW91cyBmdW5jdGlvbnMgc2luY2UgNS40CisgICAgICAgICRtaW5pZmllciA9ICR0aGlzOworICAgICAgICAkY2FsbGJhY2sgPSBmdW5jdGlvbiAoJG1hdGNoKSB1c2UgKCRtaW5pZmllcikgeworICAgICAgICAgICAgJGNvdW50ID0gY291bnQoJG1pbmlmaWVyLT5leHRyYWN0ZWQpOworICAgICAgICAgICAgJHBsYWNlaG9sZGVyID0gJy8qJy4kY291bnQuJyovJzsKKyAgICAgICAgICAgICRtaW5pZmllci0+ZXh0cmFjdGVkWyRwbGFjZWhvbGRlcl0gPSAkbWF0Y2hbMF07CisKKyAgICAgICAgICAgIHJldHVybiAkcGxhY2Vob2xkZXI7CisgICAgICAgIH07CisgICAgICAgICR0aGlzLT5yZWdpc3RlclBhdHRlcm4oJy9cbj9cL1wqKCF8Lio/QGxpY2Vuc2V8Lio/QHByZXNlcnZlKS4qP1wqXC9cbj8vcycsICRjYWxsYmFjayk7CisKKyAgICAgICAgJHRoaXMtPnJlZ2lzdGVyUGF0dGVybignL1wvXCouKj9cKlwvL3MnLCAnJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RyaXAgd2hpdGVzcGFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQgVGhlIENTUyBjb250ZW50IHRvIHN0cmlwIHRoZSB3aGl0ZXNwYWNlIGZvcgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc3RyaXBXaGl0ZXNwYWNlKCRjb250ZW50KQorICAgIHsKKyAgICAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgJiB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvXlxzKi9tJywgJycsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9ccyokL20nLCAnJywgJGNvbnRlbnQpOworCisgICAgICAgIC8vIHJlcGxhY2UgbmV3bGluZXMgd2l0aCBhIHNpbmdsZSBzcGFjZQorICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnL1xzKy8nLCAnICcsICRjb250ZW50KTsKKworICAgICAgICAvLyByZW1vdmUgd2hpdGVzcGFjZSBhcm91bmQgbWV0YSBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGluc3BpcmVkIGJ5IHN0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNTE5NTc1MC9taW5pZnktY29tcHJlc3MtY3NzLXdpdGgtcmVnZXgKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9ccyooW1wqJH5efF0/Kz18W3t9Oyw+fl18IWltcG9ydGFudFxiKVxzKi8nLCAnJDEnLCAkY29udGVudCk7CisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvKFtcWyg6PlwrXSlccysvJywgJyQxJywgJGNvbnRlbnQpOworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnL1xzKyhbXF1cKT5cK10pLycsICckMScsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9ccysoOikoPyFbXlx9XSpceykvJywgJyQxJywgJGNvbnRlbnQpOworCisgICAgICAgIC8vIHdoaXRlc3BhY2UgYXJvdW5kICsgYW5kIC0gY2FuIG9ubHkgYmUgc3RyaXBwZWQgaW5zaWRlIHNvbWUgcHNldWRvLQorICAgICAgICAvLyBjbGFzc2VzLCBsaWtlIGA6bnRoLWNoaWxkKDMrMm4pYAorICAgICAgICAvLyBub3QgaW4gdGhpbmdzIGxpa2UgYGNhbGMoM3B4ICsgMnB4KWAsIHNob3J0aGFuZHMgbGlrZSBgM3B4IC0ycHhgLCBvcgorICAgICAgICAvLyBzZWxlY3RvcnMgbGlrZSBgZGl2LndlaXJkLSBwYAorICAgICAgICAkcHNldWRvcyA9IGFycmF5KCdudGgtY2hpbGQnLCAnbnRoLWxhc3QtY2hpbGQnLCAnbnRoLWxhc3Qtb2YtdHlwZScsICdudGgtb2YtdHlwZScpOworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnLzooJy5pbXBsb2RlKCd8JywgJHBzZXVkb3MpLicpXChccyooWystXT8pXHMqKC4rPylccyooWystXT8pXHMqKC4qPylccypcKS8nLCAnOiQxKCQyJDMkNCQ1KScsICRjb250ZW50KTsKKworICAgICAgICAvLyByZW1vdmUgc2VtaWNvbG9uL3doaXRlc3BhY2UgZm9sbG93ZWQgYnkgY2xvc2luZyBicmFja2V0CisgICAgICAgICRjb250ZW50ID0gc3RyX3JlcGxhY2UoJzt9JywgJ30nLCAkY29udGVudCk7CisKKyAgICAgICAgcmV0dXJuIHRyaW0oJGNvbnRlbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGxhY2UgYWxsIGBjYWxjKClgIG9jY3VycmVuY2VzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0Q2FsY3MoKQorICAgIHsKKyAgICAgICAgLy8gUEhQIG9ubHkgc3VwcG9ydHMgJHRoaXMgaW5zaWRlIGFub255bW91cyBmdW5jdGlvbnMgc2luY2UgNS40CisgICAgICAgICRtaW5pZmllciA9ICR0aGlzOworICAgICAgICAkY2FsbGJhY2sgPSBmdW5jdGlvbiAoJG1hdGNoKSB1c2UgKCRtaW5pZmllcikgeworICAgICAgICAgICAgJGxlbmd0aCA9IHN0cmxlbigkbWF0Y2hbMV0pOworICAgICAgICAgICAgJGV4cHIgPSAnJzsKKyAgICAgICAgICAgICRvcGVuZWQgPSAwOworCisgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7CisgICAgICAgICAgICAgICAgJGNoYXIgPSAkbWF0Y2hbMV1bJGldOworICAgICAgICAgICAgICAgICRleHByIC49ICRjaGFyOworICAgICAgICAgICAgICAgIGlmICgkY2hhciA9PT0gJygnKSB7CisgICAgICAgICAgICAgICAgICAgICRvcGVuZWQrKzsKKyAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJGNoYXIgPT09ICcpJyAmJiAtLSRvcGVuZWQgPT09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgJHJlc3QgPSBzdHJfcmVwbGFjZSgkZXhwciwgJycsICRtYXRjaFsxXSk7CisgICAgICAgICAgICAkZXhwciA9IHRyaW0oc3Vic3RyKCRleHByLCAxLCAtMSkpOworCisgICAgICAgICAgICAkY291bnQgPSBjb3VudCgkbWluaWZpZXItPmV4dHJhY3RlZCk7CisgICAgICAgICAgICAkcGxhY2Vob2xkZXIgPSAnY2FsYygnLiRjb3VudC4nKSc7CisgICAgICAgICAgICAkbWluaWZpZXItPmV4dHJhY3RlZFskcGxhY2Vob2xkZXJdID0gJ2NhbGMoJy4kZXhwci4nKSc7CisKKyAgICAgICAgICAgIHJldHVybiAkcGxhY2Vob2xkZXIuJHJlc3Q7CisgICAgICAgIH07CisKKyAgICAgICAgJHRoaXMtPnJlZ2lzdGVyUGF0dGVybignL2NhbGMoXCguKz8pKD89JHw7fH18Y2FsY1woKS8nLCAkY2FsbGJhY2spOworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvY2FsYyhcKC4rPykoPz0kfDt8fXxjYWxjXCgpL20nLCAkY2FsbGJhY2spOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIGZpbGUgaXMgc21hbGwgZW5vdWdoIHRvIGJlIGltcG9ydGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkcGF0aCBUaGUgcGF0aCB0byB0aGUgZmlsZQorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNhbkltcG9ydEJ5U2l6ZSgkcGF0aCkKKyAgICB7CisgICAgICAgIHJldHVybiAoJHNpemUgPSBAZmlsZXNpemUoJHBhdGgpKSAmJiAkc2l6ZSA8PSAkdGhpcy0+bWF4SW1wb3J0U2l6ZSAqIDEwMjQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgZmlsZSBhIGZpbGUgY2FuIGJlIGltcG9ydGVkLCBnb2luZyBieSB0aGUgcGF0aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGgKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYW5JbXBvcnRCeVBhdGgoJHBhdGgpCisgICAgeworICAgICAgICByZXR1cm4gcHJlZ19tYXRjaCgnL14oZGF0YTp8aHR0cHM/OnxcXC8pLycsICRwYXRoKSA9PT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjb252ZXJ0ZXIgdG8gdXBkYXRlIHJlbGF0aXZlIHBhdGhzIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBuZXcKKyAgICAgKiBkZXN0aW5hdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHNvdXJjZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHRhcmdldAorICAgICAqCisgICAgICogQHJldHVybiBDb252ZXJ0ZXJJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UGF0aENvbnZlcnRlcigkc291cmNlLCAkdGFyZ2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb252ZXJ0ZXIoJHNvdXJjZSwgJHRhcmdldCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvc3JjL0V4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAzODk4ZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvc3JjL0V4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSwyMCBAQAorPD9waHAKKy8qKgorICogQmFzZSBFeGNlcHRpb24KKyAqCisgKiBAZGVwcmVjYXRlZCBVc2UgRXhjZXB0aW9uc1xCYXNpY0V4Y2VwdGlvbiBpbnN0ZWFkCisgKgorICogQGF1dGhvciBNYXR0aGlhcyBNdWxsaWUgPG1pbmlmeUBtdWxsaWUuZXU+CisgKi8KK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxNaW5pZnk7CisKKy8qKgorICogQmFzZSBFeGNlcHRpb24gQ2xhc3MKKyAqIEBkZXByZWNhdGVkIFVzZSBFeGNlcHRpb25zXEJhc2ljRXhjZXB0aW9uIGluc3RlYWQKKyAqCisgKiBAcGFja2FnZSBNaW5pZnkKKyAqIEBhdXRob3IgTWF0dGhpYXMgTXVsbGllIDxtaW5pZnlAbXVsbGllLmV1PgorICovCithYnN0cmFjdCBjbGFzcyBFeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9FeGNlcHRpb25zL0Jhc2ljRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvc3JjL0V4Y2VwdGlvbnMvQmFzaWNFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNWU4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9FeGNlcHRpb25zL0Jhc2ljRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDIzIEBACis8P3BocAorLyoqCisgKiBCYXNpYyBleGNlcHRpb24KKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxNaW5pZnlcRXhjZXB0aW9uczsKKwordXNlIE1hdHRoaWFzTXVsbGllXE1pbmlmeVxFeGNlcHRpb247CisKKy8qKgorICogQmFzaWMgRXhjZXB0aW9uIENsYXNzCisgKgorICogQHBhY2thZ2UgTWluaWZ5XEV4Y2VwdGlvbgorICogQGF1dGhvciBNYXR0aGlhcyBNdWxsaWUgPG1pbmlmeUBtdWxsaWUuZXU+CisgKi8KK2Fic3RyYWN0IGNsYXNzIEJhc2ljRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9FeGNlcHRpb25zL0ZpbGVJbXBvcnRFeGNlcHRpb24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvRXhjZXB0aW9ucy9GaWxlSW1wb3J0RXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTJhMmM5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvRXhjZXB0aW9ucy9GaWxlSW1wb3J0RXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDIxIEBACis8P3BocAorLyoqCisgKiBGaWxlIEltcG9ydCBFeGNlcHRpb24KKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxNaW5pZnlcRXhjZXB0aW9uczsKKworLyoqCisgKiBGaWxlIEltcG9ydCBFeGNlcHRpb24gQ2xhc3MKKyAqCisgKiBAcGFja2FnZSBNaW5pZnlcRXhjZXB0aW9uCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqLworY2xhc3MgRmlsZUltcG9ydEV4Y2VwdGlvbiBleHRlbmRzIEJhc2ljRXhjZXB0aW9uCit7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9FeGNlcHRpb25zL0lPRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9taW5pZnkvc3JjL0V4Y2VwdGlvbnMvSU9FeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNzJlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9FeGNlcHRpb25zL0lPRXhjZXB0aW9uLnBocApAQCAtMCwwICsxLDIxIEBACis8P3BocAorLyoqCisgKiBJTyBFeGNlcHRpb24KKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxNaW5pZnlcRXhjZXB0aW9uczsKKworLyoqCisgKiBJTyBFeGNlcHRpb24gQ2xhc3MKKyAqCisgKiBAcGFja2FnZSBNaW5pZnlcRXhjZXB0aW9uCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqLworY2xhc3MgSU9FeGNlcHRpb24gZXh0ZW5kcyBCYXNpY0V4Y2VwdGlvbgoreworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvSlMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvSlMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyMzg5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9KUy5waHAKQEAgLTAsMCArMSw2MTIgQEAKKzw/cGhwCisvKioKKyAqIEphdmFTY3JpcHQgbWluaWZpZXIKKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxNaW5pZnk7CisKKy8qKgorICogSmF2YVNjcmlwdCBNaW5pZmllciBDbGFzcworICoKKyAqIFBsZWFzZSByZXBvcnQgYnVncyBvbiBodHRwczovL2dpdGh1Yi5jb20vbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2lzc3VlcworICoKKyAqIEBwYWNrYWdlIE1pbmlmeQorICogQGF1dGhvciBNYXR0aGlhcyBNdWxsaWUgPG1pbmlmeUBtdWxsaWUuZXU+CisgKiBAYXV0aG9yIFRpanMgVmVya295ZW4gPG1pbmlmeUB2ZXJrb3llbi5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK2NsYXNzIEpTIGV4dGVuZHMgTWluaWZ5Cit7CisgICAgLyoqCisgICAgICogVmFyLW1hdGNoaW5nIHJlZ2V4IGJhc2VkIG9uIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzkzMzcwNDcvODAyOTkzLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNpbmcgdGhhdCBiaXQgbXVzdCBoYXZlIHRoZSBQQ1JFX1VURjgKKyAgICAgKiBwYXR0ZXJuIG1vZGlmaWVyICgvdSkgc2V0LgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBjb25zdCBSRUdFWF9WQVJJQUJMRSA9ICdcYlskQS1aXF9hLXpceGFhXHhiNVx4YmFceGMwLVx4ZDZceGQ4LVx4ZjZceGY4LVx4ezAyYzF9XHh7MDJjNn0tXHh7MDJkMX1ceHswMmUwfS1ceHswMmU0fVx4ezAyZWN9XHh7MDJlZX1ceHswMzcwfS1ceHswMzc0fVx4ezAzNzZ9XHh7MDM3N31ceHswMzdhfS1ceHswMzdkfVx4ezAzODZ9XHh7MDM4OH0tXHh7MDM4YX1ceHswMzhjfVx4ezAzOGV9LVx4ezAzYTF9XHh7MDNhM30tXHh7MDNmNX1ceHswM2Y3fS1ceHswNDgxfVx4ezA0OGF9LVx4ezA1Mjd9XHh7MDUzMX0tXHh7MDU1Nn1ceHswNTU5fVx4ezA1NjF9LVx4ezA1ODd9XHh7MDVkMH0tXHh7MDVlYX1ceHswNWYwfS1ceHswNWYyfVx4ezA2MjB9LVx4ezA2NGF9XHh7MDY2ZX1ceHswNjZmfVx4ezA2NzF9LVx4ezA2ZDN9XHh7MDZkNX1ceHswNmU1fVx4ezA2ZTZ9XHh7MDZlZX1ceHswNmVmfVx4ezA2ZmF9LVx4ezA2ZmN9XHh7MDZmZn1ceHswNzEwfVx4ezA3MTJ9LVx4ezA3MmZ9XHh7MDc0ZH0tXHh7MDdhNX1ceHswN2IxfVx4ezA3Y2F9LVx4ezA3ZWF9XHh7MDdmNH1ceHswN2Y1fVx4ezA3ZmF9XHh7MDgwMH0tXHh7MDgxNX1ceHswODFhfVx4ezA4MjR9XHh7MDgyOH1ceHswODQwfS1ceHswODU4fVx4ezA4YTB9XHh7MDhhMn0tXHh7MDhhY31ceHswOTA0fS1ceHswOTM5fVx4ezA5M2R9XHh7MDk1MH1ceHswOTU4fS1ceHswOTYxfVx4ezA5NzF9LVx4ezA5Nzd9XHh7MDk3OX0tXHh7MDk3Zn1ceHswOTg1fS1ceHswOThjfVx4ezA5OGZ9XHh7MDk5MH1ceHswOTkzfS1ceHswOWE4fVx4ezA5YWF9LVx4ezA5YjB9XHh7MDliMn1ceHswOWI2fS1ceHswOWI5fVx4ezA5YmR9XHh7MDljZX1ceHswOWRjfVx4ezA5ZGR9XHh7MDlkZn0tXHh7MDllMX1ceHswOWYwfVx4ezA5ZjF9XHh7MGEwNX0tXHh7MGEwYX1ceHswYTBmfVx4ezBhMTB9XHh7MGExM30tXHh7MGEyOH1ceHswYTJhfS1ceHswYTMwfVx4ezBhMzJ9XHh7MGEzM31ceHswYTM1fVx4ezBhMzZ9XHh7MGEzOH1ceHswYTM5fVx4ezBhNTl9LVx4ezBhNWN9XHh7MGE1ZX1ceHswYTcyfS1ceHswYTc0fVx4ezBhODV9LVx4ezBhOGR9XHh7MGE4Zn0tXHh7MGE5MX1ceHswYTkzfS1ceHswYWE4fVx4ezBhYWF9LVx4ezBhYjB9XHh7MGFiMn1ceHswYWIzfVx4ezBhYjV9LVx4ezBhYjl9XHh7MGFiZH1ceHswYWQwfVx4ezBhZTB9XHh7MGFlMX1ceHswYjA1fS1ceHswYjBjfVx4ezBiMGZ9XHh7MGIxMH1ceHswYjEzfS1ceHswYjI4fVx4ezBiMmF9LVx4ezBiMzB9XHh7MGIzMn1ceHswYjMzfVx4ezBiMzV9LVx4ezBiMzl9XHh7MGIzZH1ceHswYjVjfVx4ezBiNWR9XHh7MGI1Zn0tXHh7MGI2MX1ceHswYjcxfVx4ezBiODN9XHh7MGI4NX0tXHh7MGI4YX1ceHswYjhlfS1ceHswYjkwfVx4ezBiOTJ9LVx4ezBiOTV9XHh7MGI5OX1ceHswYjlhfVx4ezBiOWN9XHh7MGI5ZX1ceHswYjlmfVx4ezBiYTN9XHh7MGJhNH1ceHswYmE4fS1ceHswYmFhfVx4ezBiYWV9LVx4ezBiYjl9XHh7MGJkMH1ceHswYzA1fS1ceHswYzBjfVx4ezBjMGV9LVx4ezBjMTB9XHh7MGMxMn0tXHh7MGMyOH1ceHswYzJhfS1ceHswYzMzfVx4ezBjMzV9LVx4ezBjMzl9XHh7MGMzZH1ceHswYzU4fVx4ezBjNTl9XHh7MGM2MH1ceHswYzYxfVx4ezBjODV9LVx4ezBjOGN9XHh7MGM4ZX0tXHh7MGM5MH1ceHswYzkyfS1ceHswY2E4fVx4ezBjYWF9LVx4ezBjYjN9XHh7MGNiNX0tXHh7MGNiOX1ceHswY2JkfVx4ezBjZGV9XHh7MGNlMH1ceHswY2UxfVx4ezBjZjF9XHh7MGNmMn1ceHswZDA1fS1ceHswZDBjfVx4ezBkMGV9LVx4ezBkMTB9XHh7MGQxMn0tXHh7MGQzYX1ceHswZDNkfVx4ezBkNGV9XHh7MGQ2MH1ceHswZDYxfVx4ezBkN2F9LVx4ezBkN2Z9XHh7MGQ4NX0tXHh7MGQ5Nn1ceHswZDlhfS1ceHswZGIxfVx4ezBkYjN9LVx4ezBkYmJ9XHh7MGRiZH1ceHswZGMwfS1ceHswZGM2fVx4ezBlMDF9LVx4ezBlMzB9XHh7MGUzMn1ceHswZTMzfVx4ezBlNDB9LVx4ezBlNDZ9XHh7MGU4MX1ceHswZTgyfVx4ezBlODR9XHh7MGU4N31ceHswZTg4fVx4ezBlOGF9XHh7MGU4ZH1ceHswZTk0fS1ceHswZTk3fVx4ezBlOTl9LVx4ezBlOWZ9XHh7MGVhMX0tXHh7MGVhM31ceHswZWE1fVx4ezBlYTd9XHh7MGVhYX1ceHswZWFifVx4ezBlYWR9LVx4ezBlYjB9XHh7MGViMn1ceHswZWIzfVx4ezBlYmR9XHh7MGVjMH0tXHh7MGVjNH1ceHswZWM2fVx4ezBlZGN9LVx4ezBlZGZ9XHh7MGYwMH1ceHswZjQwfS1ceHswZjQ3fVx4ezBmNDl9LVx4ezBmNmN9XHh7MGY4OH0tXHh7MGY4Y31ceHsxMDAwfS1ceHsxMDJhfVx4ezEwM2Z9XHh7MTA1MH0tXHh7MTA1NX1ceHsxMDVhfS1ceHsxMDVkfVx4ezEwNjF9XHh7MTA2NX1ceHsxMDY2fVx4ezEwNmV9LVx4ezEwNzB9XHh7MTA3NX0tXHh7MTA4MX1ceHsxMDhlfVx4ezEwYTB9LVx4ezEwYzV9XHh7MTBjN31ceHsxMGNkfVx4ezEwZDB9LVx4ezEwZmF9XHh7MTBmY30tXHh7MTI0OH1ceHsxMjRhfS1ceHsxMjRkfVx4ezEyNTB9LVx4ezEyNTZ9XHh7MTI1OH1ceHsxMjVhfS1ceHsxMjVkfVx4ezEyNjB9LVx4ezEyODh9XHh7MTI4YX0tXHh7MTI4ZH1ceHsxMjkwfS1ceHsxMmIwfVx4ezEyYjJ9LVx4ezEyYjV9XHh7MTJiOH0tXHh7MTJiZX1ceHsxMmMwfVx4ezEyYzJ9LVx4ezEyYzV9XHh7MTJjOH0tXHh7MTJkNn1ceHsxMmQ4fS1ceHsxMzEwfVx4ezEzMTJ9LVx4ezEzMTV9XHh7MTMxOH0tXHh7MTM1YX1ceHsxMzgwfS1ceHsxMzhmfVx4ezEzYTB9LVx4ezEzZjR9XHh7MTQwMX0tXHh7MTY2Y31ceHsxNjZmfS1ceHsxNjdmfVx4ezE2ODF9LVx4ezE2OWF9XHh7MTZhMH0tXHh7MTZlYX1ceHsxNmVlfS1ceHsxNmYwfVx4ezE3MDB9LVx4ezE3MGN9XHh7MTcwZX0tXHh7MTcxMX1ceHsxNzIwfS1ceHsxNzMxfVx4ezE3NDB9LVx4ezE3NTF9XHh7MTc2MH0tXHh7MTc2Y31ceHsxNzZlfS1ceHsxNzcwfVx4ezE3ODB9LVx4ezE3YjN9XHh7MTdkN31ceHsxN2RjfVx4ezE4MjB9LVx4ezE4Nzd9XHh7MTg4MH0tXHh7MThhOH1ceHsxOGFhfVx4ezE4YjB9LVx4ezE4ZjV9XHh7MTkwMH0tXHh7MTkxY31ceHsxOTUwfS1ceHsxOTZkfVx4ezE5NzB9LVx4ezE5NzR9XHh7MTk4MH0tXHh7MTlhYn1ceHsxOWMxfS1ceHsxOWM3fVx4ezFhMDB9LVx4ezFhMTZ9XHh7MWEyMH0tXHh7MWE1NH1ceHsxYWE3fVx4ezFiMDV9LVx4ezFiMzN9XHh7MWI0NX0tXHh7MWI0Yn1ceHsxYjgzfS1ceHsxYmEwfVx4ezFiYWV9XHh7MWJhZn1ceHsxYmJhfS1ceHsxYmU1fVx4ezFjMDB9LVx4ezFjMjN9XHh7MWM0ZH0tXHh7MWM0Zn1ceHsxYzVhfS1ceHsxYzdkfVx4ezFjZTl9LVx4ezFjZWN9XHh7MWNlZX0tXHh7MWNmMX1ceHsxY2Y1fVx4ezFjZjZ9XHh7MWQwMH0tXHh7MWRiZn1ceHsxZTAwfS1ceHsxZjE1fVx4ezFmMTh9LVx4ezFmMWR9XHh7MWYyMH0tXHh7MWY0NX1ceHsxZjQ4fS1ceHsxZjRkfVx4ezFmNTB9LVx4ezFmNTd9XHh7MWY1OX1ceHsxZjVifVx4ezFmNWR9XHh7MWY1Zn0tXHh7MWY3ZH1ceHsxZjgwfS1ceHsxZmI0fVx4ezFmYjZ9LVx4ezFmYmN9XHh7MWZiZX1ceHsxZmMyfS1ceHsxZmM0fVx4ezFmYzZ9LVx4ezFmY2N9XHh7MWZkMH0tXHh7MWZkM31ceHsxZmQ2fS1ceHsxZmRifVx4ezFmZTB9LVx4ezFmZWN9XHh7MWZmMn0tXHh7MWZmNH1ceHsxZmY2fS1ceHsxZmZjfVx4ezIwNzF9XHh7MjA3Zn1ceHsyMDkwfS1ceHsyMDljfVx4ezIxMDJ9XHh7MjEwN31ceHsyMTBhfS1ceHsyMTEzfVx4ezIxMTV9XHh7MjExOX0tXHh7MjExZH1ceHsyMTI0fVx4ezIxMjZ9XHh7MjEyOH1ceHsyMTJhfS1ceHsyMTJkfVx4ezIxMmZ9LVx4ezIxMzl9XHh7MjEzY30tXHh7MjEzZn1ceHsyMTQ1fS1ceHsyMTQ5fVx4ezIxNGV9XHh7MjE2MH0tXHh7MjE4OH1ceHsyYzAwfS1ceHsyYzJlfVx4ezJjMzB9LVx4ezJjNWV9XHh7MmM2MH0tXHh7MmNlNH1ceHsyY2VifS1ceHsyY2VlfVx4ezJjZjJ9XHh7MmNmM31ceHsyZDAwfS1ceHsyZDI1fVx4ezJkMjd9XHh7MmQyZH1ceHsyZDMwfS1ceHsyZDY3fVx4ezJkNmZ9XHh7MmQ4MH0tXHh7MmQ5Nn1ceHsyZGEwfS1ceHsyZGE2fVx4ezJkYTh9LVx4ezJkYWV9XHh7MmRiMH0tXHh7MmRiNn1ceHsyZGI4fS1ceHsyZGJlfVx4ezJkYzB9LVx4ezJkYzZ9XHh7MmRjOH0tXHh7MmRjZX1ceHsyZGQwfS1ceHsyZGQ2fVx4ezJkZDh9LVx4ezJkZGV9XHh7MmUyZn1ceHszMDA1fS1ceHszMDA3fVx4ezMwMjF9LVx4ezMwMjl9XHh7MzAzMX0tXHh7MzAzNX1ceHszMDM4fS1ceHszMDNjfVx4ezMwNDF9LVx4ezMwOTZ9XHh7MzA5ZH0tXHh7MzA5Zn1ceHszMGExfS1ceHszMGZhfVx4ezMwZmN9LVx4ezMwZmZ9XHh7MzEwNX0tXHh7MzEyZH1ceHszMTMxfS1ceHszMThlfVx4ezMxYTB9LVx4ezMxYmF9XHh7MzFmMH0tXHh7MzFmZn1ceHszNDAwfS1ceHs0ZGI1fVx4ezRlMDB9LVx4ezlmY2N9XHh7YTAwMH0tXHh7YTQ4Y31ceHthNGQwfS1ceHthNGZkfVx4e2E1MDB9LVx4e2E2MGN9XHh7YTYxMH0tXHh7YTYxZn1ceHthNjJhfVx4e2E2MmJ9XHh7YTY0MH0tXHh7YTY2ZX1ceHthNjdmfS1ceHthNjk3fVx4e2E2YTB9LVx4e2E2ZWZ9XHh7YTcxN30tXHh7YTcxZn1ceHthNzIyfS1ceHthNzg4fVx4e2E3OGJ9LVx4e2E3OGV9XHh7YTc5MH0tXHh7YTc5M31ceHthN2EwfS1ceHthN2FhfVx4e2E3Zjh9LVx4e2E4MDF9XHh7YTgwM30tXHh7YTgwNX1ceHthODA3fS1ceHthODBhfVx4e2E4MGN9LVx4e2E4MjJ9XHh7YTg0MH0tXHh7YTg3M31ceHthODgyfS1ceHthOGIzfVx4e2E4ZjJ9LVx4e2E4Zjd9XHh7YThmYn1ceHthOTBhfS1ceHthOTI1fVx4e2E5MzB9LVx4e2E5NDZ9XHh7YTk2MH0tXHh7YTk3Y31ceHthOTg0fS1ceHthOWIyfVx4e2E5Y2Z9XHh7YWEwMH0tXHh7YWEyOH1ceHthYTQwfS1ceHthYTQyfVx4e2FhNDR9LVx4e2FhNGJ9XHh7YWE2MH0tXHh7YWE3Nn1ceHthYTdhfVx4e2FhODB9LVx4e2FhYWZ9XHh7YWFiMX1ceHthYWI1fVx4e2FhYjZ9XHh7YWFiOX0tXHh7YWFiZH1ceHthYWMwfVx4e2FhYzJ9XHh7YWFkYn0tXHh7YWFkZH1ceHthYWUwfS1ceHthYWVhfVx4e2FhZjJ9LVx4e2FhZjR9XHh7YWIwMX0tXHh7YWIwNn1ceHthYjA5fS1ceHthYjBlfVx4e2FiMTF9LVx4e2FiMTZ9XHh7YWIyMH0tXHh7YWIyNn1ceHthYjI4fS1ceHthYjJlfVx4e2FiYzB9LVx4e2FiZTJ9XHh7YWMwMH0tXHh7ZDdhM31ceHtkN2IwfS1ceHtkN2M2fVx4e2Q3Y2J9LVx4e2Q3ZmJ9XHh7ZjkwMH0tXHh7ZmE2ZH1ceHtmYTcwfS1ceHtmYWQ5fVx4e2ZiMDB9LVx4e2ZiMDZ9XHh7ZmIxM30tXHh7ZmIxN31ceHtmYjFkfVx4e2ZiMWZ9LVx4e2ZiMjh9XHh7ZmIyYX0tXHh7ZmIzNn1ceHtmYjM4fS1ceHtmYjNjfVx4e2ZiM2V9XHh7ZmI0MH1ceHtmYjQxfVx4e2ZiNDN9XHh7ZmI0NH1ceHtmYjQ2fS1ceHtmYmIxfVx4e2ZiZDN9LVx4e2ZkM2R9XHh7ZmQ1MH0tXHh7ZmQ4Zn1ceHtmZDkyfS1ceHtmZGM3fVx4e2ZkZjB9LVx4e2ZkZmJ9XHh7ZmU3MH0tXHh7ZmU3NH1ceHtmZTc2fS1ceHtmZWZjfVx4e2ZmMjF9LVx4e2ZmM2F9XHh7ZmY0MX0tXHh7ZmY1YX1ceHtmZjY2fS1ceHtmZmJlfVx4e2ZmYzJ9LVx4e2ZmYzd9XHh7ZmZjYX0tXHh7ZmZjZn1ceHtmZmQyfS1ceHtmZmQ3fVx4e2ZmZGF9LVx4e2ZmZGN9XVskQS1aXF9hLXpceGFhXHhiNVx4YmFceGMwLVx4ZDZceGQ4LVx4ZjZceGY4LVx4ezAyYzF9XHh7MDJjNn0tXHh7MDJkMX1ceHswMmUwfS1ceHswMmU0fVx4ezAyZWN9XHh7MDJlZX1ceHswMzcwfS1ceHswMzc0fVx4ezAzNzZ9XHh7MDM3N31ceHswMzdhfS1ceHswMzdkfVx4ezAzODZ9XHh7MDM4OH0tXHh7MDM4YX1ceHswMzhjfVx4ezAzOGV9LVx4ezAzYTF9XHh7MDNhM30tXHh7MDNmNX1ceHswM2Y3fS1ceHswNDgxfVx4ezA0OGF9LVx4ezA1Mjd9XHh7MDUzMX0tXHh7MDU1Nn1ceHswNTU5fVx4ezA1NjF9LVx4ezA1ODd9XHh7MDVkMH0tXHh7MDVlYX1ceHswNWYwfS1ceHswNWYyfVx4ezA2MjB9LVx4ezA2NGF9XHh7MDY2ZX1ceHswNjZmfVx4ezA2NzF9LVx4ezA2ZDN9XHh7MDZkNX1ceHswNmU1fVx4ezA2ZTZ9XHh7MDZlZX1ceHswNmVmfVx4ezA2ZmF9LVx4ezA2ZmN9XHh7MDZmZn1ceHswNzEwfVx4ezA3MTJ9LVx4ezA3MmZ9XHh7MDc0ZH0tXHh7MDdhNX1ceHswN2IxfVx4ezA3Y2F9LVx4ezA3ZWF9XHh7MDdmNH1ceHswN2Y1fVx4ezA3ZmF9XHh7MDgwMH0tXHh7MDgxNX1ceHswODFhfVx4ezA4MjR9XHh7MDgyOH1ceHswODQwfS1ceHswODU4fVx4ezA4YTB9XHh7MDhhMn0tXHh7MDhhY31ceHswOTA0fS1ceHswOTM5fVx4ezA5M2R9XHh7MDk1MH1ceHswOTU4fS1ceHswOTYxfVx4ezA5NzF9LVx4ezA5Nzd9XHh7MDk3OX0tXHh7MDk3Zn1ceHswOTg1fS1ceHswOThjfVx4ezA5OGZ9XHh7MDk5MH1ceHswOTkzfS1ceHswOWE4fVx4ezA5YWF9LVx4ezA5YjB9XHh7MDliMn1ceHswOWI2fS1ceHswOWI5fVx4ezA5YmR9XHh7MDljZX1ceHswOWRjfVx4ezA5ZGR9XHh7MDlkZn0tXHh7MDllMX1ceHswOWYwfVx4ezA5ZjF9XHh7MGEwNX0tXHh7MGEwYX1ceHswYTBmfVx4ezBhMTB9XHh7MGExM30tXHh7MGEyOH1ceHswYTJhfS1ceHswYTMwfVx4ezBhMzJ9XHh7MGEzM31ceHswYTM1fVx4ezBhMzZ9XHh7MGEzOH1ceHswYTM5fVx4ezBhNTl9LVx4ezBhNWN9XHh7MGE1ZX1ceHswYTcyfS1ceHswYTc0fVx4ezBhODV9LVx4ezBhOGR9XHh7MGE4Zn0tXHh7MGE5MX1ceHswYTkzfS1ceHswYWE4fVx4ezBhYWF9LVx4ezBhYjB9XHh7MGFiMn1ceHswYWIzfVx4ezBhYjV9LVx4ezBhYjl9XHh7MGFiZH1ceHswYWQwfVx4ezBhZTB9XHh7MGFlMX1ceHswYjA1fS1ceHswYjBjfVx4ezBiMGZ9XHh7MGIxMH1ceHswYjEzfS1ceHswYjI4fVx4ezBiMmF9LVx4ezBiMzB9XHh7MGIzMn1ceHswYjMzfVx4ezBiMzV9LVx4ezBiMzl9XHh7MGIzZH1ceHswYjVjfVx4ezBiNWR9XHh7MGI1Zn0tXHh7MGI2MX1ceHswYjcxfVx4ezBiODN9XHh7MGI4NX0tXHh7MGI4YX1ceHswYjhlfS1ceHswYjkwfVx4ezBiOTJ9LVx4ezBiOTV9XHh7MGI5OX1ceHswYjlhfVx4ezBiOWN9XHh7MGI5ZX1ceHswYjlmfVx4ezBiYTN9XHh7MGJhNH1ceHswYmE4fS1ceHswYmFhfVx4ezBiYWV9LVx4ezBiYjl9XHh7MGJkMH1ceHswYzA1fS1ceHswYzBjfVx4ezBjMGV9LVx4ezBjMTB9XHh7MGMxMn0tXHh7MGMyOH1ceHswYzJhfS1ceHswYzMzfVx4ezBjMzV9LVx4ezBjMzl9XHh7MGMzZH1ceHswYzU4fVx4ezBjNTl9XHh7MGM2MH1ceHswYzYxfVx4ezBjODV9LVx4ezBjOGN9XHh7MGM4ZX0tXHh7MGM5MH1ceHswYzkyfS1ceHswY2E4fVx4ezBjYWF9LVx4ezBjYjN9XHh7MGNiNX0tXHh7MGNiOX1ceHswY2JkfVx4ezBjZGV9XHh7MGNlMH1ceHswY2UxfVx4ezBjZjF9XHh7MGNmMn1ceHswZDA1fS1ceHswZDBjfVx4ezBkMGV9LVx4ezBkMTB9XHh7MGQxMn0tXHh7MGQzYX1ceHswZDNkfVx4ezBkNGV9XHh7MGQ2MH1ceHswZDYxfVx4ezBkN2F9LVx4ezBkN2Z9XHh7MGQ4NX0tXHh7MGQ5Nn1ceHswZDlhfS1ceHswZGIxfVx4ezBkYjN9LVx4ezBkYmJ9XHh7MGRiZH1ceHswZGMwfS1ceHswZGM2fVx4ezBlMDF9LVx4ezBlMzB9XHh7MGUzMn1ceHswZTMzfVx4ezBlNDB9LVx4ezBlNDZ9XHh7MGU4MX1ceHswZTgyfVx4ezBlODR9XHh7MGU4N31ceHswZTg4fVx4ezBlOGF9XHh7MGU4ZH1ceHswZTk0fS1ceHswZTk3fVx4ezBlOTl9LVx4ezBlOWZ9XHh7MGVhMX0tXHh7MGVhM31ceHswZWE1fVx4ezBlYTd9XHh7MGVhYX1ceHswZWFifVx4ezBlYWR9LVx4ezBlYjB9XHh7MGViMn1ceHswZWIzfVx4ezBlYmR9XHh7MGVjMH0tXHh7MGVjNH1ceHswZWM2fVx4ezBlZGN9LVx4ezBlZGZ9XHh7MGYwMH1ceHswZjQwfS1ceHswZjQ3fVx4ezBmNDl9LVx4ezBmNmN9XHh7MGY4OH0tXHh7MGY4Y31ceHsxMDAwfS1ceHsxMDJhfVx4ezEwM2Z9XHh7MTA1MH0tXHh7MTA1NX1ceHsxMDVhfS1ceHsxMDVkfVx4ezEwNjF9XHh7MTA2NX1ceHsxMDY2fVx4ezEwNmV9LVx4ezEwNzB9XHh7MTA3NX0tXHh7MTA4MX1ceHsxMDhlfVx4ezEwYTB9LVx4ezEwYzV9XHh7MTBjN31ceHsxMGNkfVx4ezEwZDB9LVx4ezEwZmF9XHh7MTBmY30tXHh7MTI0OH1ceHsxMjRhfS1ceHsxMjRkfVx4ezEyNTB9LVx4ezEyNTZ9XHh7MTI1OH1ceHsxMjVhfS1ceHsxMjVkfVx4ezEyNjB9LVx4ezEyODh9XHh7MTI4YX0tXHh7MTI4ZH1ceHsxMjkwfS1ceHsxMmIwfVx4ezEyYjJ9LVx4ezEyYjV9XHh7MTJiOH0tXHh7MTJiZX1ceHsxMmMwfVx4ezEyYzJ9LVx4ezEyYzV9XHh7MTJjOH0tXHh7MTJkNn1ceHsxMmQ4fS1ceHsxMzEwfVx4ezEzMTJ9LVx4ezEzMTV9XHh7MTMxOH0tXHh7MTM1YX1ceHsxMzgwfS1ceHsxMzhmfVx4ezEzYTB9LVx4ezEzZjR9XHh7MTQwMX0tXHh7MTY2Y31ceHsxNjZmfS1ceHsxNjdmfVx4ezE2ODF9LVx4ezE2OWF9XHh7MTZhMH0tXHh7MTZlYX1ceHsxNmVlfS1ceHsxNmYwfVx4ezE3MDB9LVx4ezE3MGN9XHh7MTcwZX0tXHh7MTcxMX1ceHsxNzIwfS1ceHsxNzMxfVx4ezE3NDB9LVx4ezE3NTF9XHh7MTc2MH0tXHh7MTc2Y31ceHsxNzZlfS1ceHsxNzcwfVx4ezE3ODB9LVx4ezE3YjN9XHh7MTdkN31ceHsxN2RjfVx4ezE4MjB9LVx4ezE4Nzd9XHh7MTg4MH0tXHh7MThhOH1ceHsxOGFhfVx4ezE4YjB9LVx4ezE4ZjV9XHh7MTkwMH0tXHh7MTkxY31ceHsxOTUwfS1ceHsxOTZkfVx4ezE5NzB9LVx4ezE5NzR9XHh7MTk4MH0tXHh7MTlhYn1ceHsxOWMxfS1ceHsxOWM3fVx4ezFhMDB9LVx4ezFhMTZ9XHh7MWEyMH0tXHh7MWE1NH1ceHsxYWE3fVx4ezFiMDV9LVx4ezFiMzN9XHh7MWI0NX0tXHh7MWI0Yn1ceHsxYjgzfS1ceHsxYmEwfVx4ezFiYWV9XHh7MWJhZn1ceHsxYmJhfS1ceHsxYmU1fVx4ezFjMDB9LVx4ezFjMjN9XHh7MWM0ZH0tXHh7MWM0Zn1ceHsxYzVhfS1ceHsxYzdkfVx4ezFjZTl9LVx4ezFjZWN9XHh7MWNlZX0tXHh7MWNmMX1ceHsxY2Y1fVx4ezFjZjZ9XHh7MWQwMH0tXHh7MWRiZn1ceHsxZTAwfS1ceHsxZjE1fVx4ezFmMTh9LVx4ezFmMWR9XHh7MWYyMH0tXHh7MWY0NX1ceHsxZjQ4fS1ceHsxZjRkfVx4ezFmNTB9LVx4ezFmNTd9XHh7MWY1OX1ceHsxZjVifVx4ezFmNWR9XHh7MWY1Zn0tXHh7MWY3ZH1ceHsxZjgwfS1ceHsxZmI0fVx4ezFmYjZ9LVx4ezFmYmN9XHh7MWZiZX1ceHsxZmMyfS1ceHsxZmM0fVx4ezFmYzZ9LVx4ezFmY2N9XHh7MWZkMH0tXHh7MWZkM31ceHsxZmQ2fS1ceHsxZmRifVx4ezFmZTB9LVx4ezFmZWN9XHh7MWZmMn0tXHh7MWZmNH1ceHsxZmY2fS1ceHsxZmZjfVx4ezIwNzF9XHh7MjA3Zn1ceHsyMDkwfS1ceHsyMDljfVx4ezIxMDJ9XHh7MjEwN31ceHsyMTBhfS1ceHsyMTEzfVx4ezIxMTV9XHh7MjExOX0tXHh7MjExZH1ceHsyMTI0fVx4ezIxMjZ9XHh7MjEyOH1ceHsyMTJhfS1ceHsyMTJkfVx4ezIxMmZ9LVx4ezIxMzl9XHh7MjEzY30tXHh7MjEzZn1ceHsyMTQ1fS1ceHsyMTQ5fVx4ezIxNGV9XHh7MjE2MH0tXHh7MjE4OH1ceHsyYzAwfS1ceHsyYzJlfVx4ezJjMzB9LVx4ezJjNWV9XHh7MmM2MH0tXHh7MmNlNH1ceHsyY2VifS1ceHsyY2VlfVx4ezJjZjJ9XHh7MmNmM31ceHsyZDAwfS1ceHsyZDI1fVx4ezJkMjd9XHh7MmQyZH1ceHsyZDMwfS1ceHsyZDY3fVx4ezJkNmZ9XHh7MmQ4MH0tXHh7MmQ5Nn1ceHsyZGEwfS1ceHsyZGE2fVx4ezJkYTh9LVx4ezJkYWV9XHh7MmRiMH0tXHh7MmRiNn1ceHsyZGI4fS1ceHsyZGJlfVx4ezJkYzB9LVx4ezJkYzZ9XHh7MmRjOH0tXHh7MmRjZX1ceHsyZGQwfS1ceHsyZGQ2fVx4ezJkZDh9LVx4ezJkZGV9XHh7MmUyZn1ceHszMDA1fS1ceHszMDA3fVx4ezMwMjF9LVx4ezMwMjl9XHh7MzAzMX0tXHh7MzAzNX1ceHszMDM4fS1ceHszMDNjfVx4ezMwNDF9LVx4ezMwOTZ9XHh7MzA5ZH0tXHh7MzA5Zn1ceHszMGExfS1ceHszMGZhfVx4ezMwZmN9LVx4ezMwZmZ9XHh7MzEwNX0tXHh7MzEyZH1ceHszMTMxfS1ceHszMThlfVx4ezMxYTB9LVx4ezMxYmF9XHh7MzFmMH0tXHh7MzFmZn1ceHszNDAwfS1ceHs0ZGI1fVx4ezRlMDB9LVx4ezlmY2N9XHh7YTAwMH0tXHh7YTQ4Y31ceHthNGQwfS1ceHthNGZkfVx4e2E1MDB9LVx4e2E2MGN9XHh7YTYxMH0tXHh7YTYxZn1ceHthNjJhfVx4e2E2MmJ9XHh7YTY0MH0tXHh7YTY2ZX1ceHthNjdmfS1ceHthNjk3fVx4e2E2YTB9LVx4e2E2ZWZ9XHh7YTcxN30tXHh7YTcxZn1ceHthNzIyfS1ceHthNzg4fVx4e2E3OGJ9LVx4e2E3OGV9XHh7YTc5MH0tXHh7YTc5M31ceHthN2EwfS1ceHthN2FhfVx4e2E3Zjh9LVx4e2E4MDF9XHh7YTgwM30tXHh7YTgwNX1ceHthODA3fS1ceHthODBhfVx4e2E4MGN9LVx4e2E4MjJ9XHh7YTg0MH0tXHh7YTg3M31ceHthODgyfS1ceHthOGIzfVx4e2E4ZjJ9LVx4e2E4Zjd9XHh7YThmYn1ceHthOTBhfS1ceHthOTI1fVx4e2E5MzB9LVx4e2E5NDZ9XHh7YTk2MH0tXHh7YTk3Y31ceHthOTg0fS1ceHthOWIyfVx4e2E5Y2Z9XHh7YWEwMH0tXHh7YWEyOH1ceHthYTQwfS1ceHthYTQyfVx4e2FhNDR9LVx4e2FhNGJ9XHh7YWE2MH0tXHh7YWE3Nn1ceHthYTdhfVx4e2FhODB9LVx4e2FhYWZ9XHh7YWFiMX1ceHthYWI1fVx4e2FhYjZ9XHh7YWFiOX0tXHh7YWFiZH1ceHthYWMwfVx4e2FhYzJ9XHh7YWFkYn0tXHh7YWFkZH1ceHthYWUwfS1ceHthYWVhfVx4e2FhZjJ9LVx4e2FhZjR9XHh7YWIwMX0tXHh7YWIwNn1ceHthYjA5fS1ceHthYjBlfVx4e2FiMTF9LVx4e2FiMTZ9XHh7YWIyMH0tXHh7YWIyNn1ceHthYjI4fS1ceHthYjJlfVx4e2FiYzB9LVx4e2FiZTJ9XHh7YWMwMH0tXHh7ZDdhM31ceHtkN2IwfS1ceHtkN2M2fVx4e2Q3Y2J9LVx4e2Q3ZmJ9XHh7ZjkwMH0tXHh7ZmE2ZH1ceHtmYTcwfS1ceHtmYWQ5fVx4e2ZiMDB9LVx4e2ZiMDZ9XHh7ZmIxM30tXHh7ZmIxN31ceHtmYjFkfVx4e2ZiMWZ9LVx4e2ZiMjh9XHh7ZmIyYX0tXHh7ZmIzNn1ceHtmYjM4fS1ceHtmYjNjfVx4e2ZiM2V9XHh7ZmI0MH1ceHtmYjQxfVx4e2ZiNDN9XHh7ZmI0NH1ceHtmYjQ2fS1ceHtmYmIxfVx4e2ZiZDN9LVx4e2ZkM2R9XHh7ZmQ1MH0tXHh7ZmQ4Zn1ceHtmZDkyfS1ceHtmZGM3fVx4e2ZkZjB9LVx4e2ZkZmJ9XHh7ZmU3MH0tXHh7ZmU3NH1ceHtmZTc2fS1ceHtmZWZjfVx4e2ZmMjF9LVx4e2ZmM2F9XHh7ZmY0MX0tXHh7ZmY1YX1ceHtmZjY2fS1ceHtmZmJlfVx4e2ZmYzJ9LVx4e2ZmYzd9XHh7ZmZjYX0tXHh7ZmZjZn1ceHtmZmQyfS1ceHtmZmQ3fVx4e2ZmZGF9LVx4e2ZmZGN9MC05XHh7MDMwMH0tXHh7MDM2Zn1ceHswNDgzfS1ceHswNDg3fVx4ezA1OTF9LVx4ezA1YmR9XHh7MDViZn1ceHswNWMxfVx4ezA1YzJ9XHh7MDVjNH1ceHswNWM1fVx4ezA1Yzd9XHh7MDYxMH0tXHh7MDYxYX1ceHswNjRifS1ceHswNjY5fVx4ezA2NzB9XHh7MDZkNn0tXHh7MDZkY31ceHswNmRmfS1ceHswNmU0fVx4ezA2ZTd9XHh7MDZlOH1ceHswNmVhfS1ceHswNmVkfVx4ezA2ZjB9LVx4ezA2Zjl9XHh7MDcxMX1ceHswNzMwfS1ceHswNzRhfVx4ezA3YTZ9LVx4ezA3YjB9XHh7MDdjMH0tXHh7MDdjOX1ceHswN2VifS1ceHswN2YzfVx4ezA4MTZ9LVx4ezA4MTl9XHh7MDgxYn0tXHh7MDgyM31ceHswODI1fS1ceHswODI3fVx4ezA4Mjl9LVx4ezA4MmR9XHh7MDg1OX0tXHh7MDg1Yn1ceHswOGU0fS1ceHswOGZlfVx4ezA5MDB9LVx4ezA5MDN9XHh7MDkzYX0tXHh7MDkzY31ceHswOTNlfS1ceHswOTRmfVx4ezA5NTF9LVx4ezA5NTd9XHh7MDk2Mn1ceHswOTYzfVx4ezA5NjZ9LVx4ezA5NmZ9XHh7MDk4MX0tXHh7MDk4M31ceHswOWJjfVx4ezA5YmV9LVx4ezA5YzR9XHh7MDljN31ceHswOWM4fVx4ezA5Y2J9LVx4ezA5Y2R9XHh7MDlkN31ceHswOWUyfVx4ezA5ZTN9XHh7MDllNn0tXHh7MDllZn1ceHswYTAxfS1ceHswYTAzfVx4ezBhM2N9XHh7MGEzZX0tXHh7MGE0Mn1ceHswYTQ3fVx4ezBhNDh9XHh7MGE0Yn0tXHh7MGE0ZH1ceHswYTUxfVx4ezBhNjZ9LVx4ezBhNzF9XHh7MGE3NX1ceHswYTgxfS1ceHswYTgzfVx4ezBhYmN9XHh7MGFiZX0tXHh7MGFjNX1ceHswYWM3fS1ceHswYWM5fVx4ezBhY2J9LVx4ezBhY2R9XHh7MGFlMn1ceHswYWUzfVx4ezBhZTZ9LVx4ezBhZWZ9XHh7MGIwMX0tXHh7MGIwM31ceHswYjNjfVx4ezBiM2V9LVx4ezBiNDR9XHh7MGI0N31ceHswYjQ4fVx4ezBiNGJ9LVx4ezBiNGR9XHh7MGI1Nn1ceHswYjU3fVx4ezBiNjJ9XHh7MGI2M31ceHswYjY2fS1ceHswYjZmfVx4ezBiODJ9XHh7MGJiZX0tXHh7MGJjMn1ceHswYmM2fS1ceHswYmM4fVx4ezBiY2F9LVx4ezBiY2R9XHh7MGJkN31ceHswYmU2fS1ceHswYmVmfVx4ezBjMDF9LVx4ezBjMDN9XHh7MGMzZX0tXHh7MGM0NH1ceHswYzQ2fS1ceHswYzQ4fVx4ezBjNGF9LVx4ezBjNGR9XHh7MGM1NX1ceHswYzU2fVx4ezBjNjJ9XHh7MGM2M31ceHswYzY2fS1ceHswYzZmfVx4ezBjODJ9XHh7MGM4M31ceHswY2JjfVx4ezBjYmV9LVx4ezBjYzR9XHh7MGNjNn0tXHh7MGNjOH1ceHswY2NhfS1ceHswY2NkfVx4ezBjZDV9XHh7MGNkNn1ceHswY2UyfVx4ezBjZTN9XHh7MGNlNn0tXHh7MGNlZn1ceHswZDAyfVx4ezBkMDN9XHh7MGQzZX0tXHh7MGQ0NH1ceHswZDQ2fS1ceHswZDQ4fVx4ezBkNGF9LVx4ezBkNGR9XHh7MGQ1N31ceHswZDYyfVx4ezBkNjN9XHh7MGQ2Nn0tXHh7MGQ2Zn1ceHswZDgyfVx4ezBkODN9XHh7MGRjYX1ceHswZGNmfS1ceHswZGQ0fVx4ezBkZDZ9XHh7MGRkOH0tXHh7MGRkZn1ceHswZGYyfVx4ezBkZjN9XHh7MGUzMX1ceHswZTM0fS1ceHswZTNhfVx4ezBlNDd9LVx4ezBlNGV9XHh7MGU1MH0tXHh7MGU1OX1ceHswZWIxfVx4ezBlYjR9LVx4ezBlYjl9XHh7MGViYn1ceHswZWJjfVx4ezBlYzh9LVx4ezBlY2R9XHh7MGVkMH0tXHh7MGVkOX1ceHswZjE4fVx4ezBmMTl9XHh7MGYyMH0tXHh7MGYyOX1ceHswZjM1fVx4ezBmMzd9XHh7MGYzOX1ceHswZjNlfVx4ezBmM2Z9XHh7MGY3MX0tXHh7MGY4NH1ceHswZjg2fVx4ezBmODd9XHh7MGY4ZH0tXHh7MGY5N31ceHswZjk5fS1ceHswZmJjfVx4ezBmYzZ9XHh7MTAyYn0tXHh7MTAzZX1ceHsxMDQwfS1ceHsxMDQ5fVx4ezEwNTZ9LVx4ezEwNTl9XHh7MTA1ZX0tXHh7MTA2MH1ceHsxMDYyfS1ceHsxMDY0fVx4ezEwNjd9LVx4ezEwNmR9XHh7MTA3MX0tXHh7MTA3NH1ceHsxMDgyfS1ceHsxMDhkfVx4ezEwOGZ9LVx4ezEwOWR9XHh7MTM1ZH0tXHh7MTM1Zn1ceHsxNzEyfS1ceHsxNzE0fVx4ezE3MzJ9LVx4ezE3MzR9XHh7MTc1Mn1ceHsxNzUzfVx4ezE3NzJ9XHh7MTc3M31ceHsxN2I0fS1ceHsxN2QzfVx4ezE3ZGR9XHh7MTdlMH0tXHh7MTdlOX1ceHsxODBifS1ceHsxODBkfVx4ezE4MTB9LVx4ezE4MTl9XHh7MThhOX1ceHsxOTIwfS1ceHsxOTJifVx4ezE5MzB9LVx4ezE5M2J9XHh7MTk0Nn0tXHh7MTk0Zn1ceHsxOWIwfS1ceHsxOWMwfVx4ezE5Yzh9XHh7MTljOX1ceHsxOWQwfS1ceHsxOWQ5fVx4ezFhMTd9LVx4ezFhMWJ9XHh7MWE1NX0tXHh7MWE1ZX1ceHsxYTYwfS1ceHsxYTdjfVx4ezFhN2Z9LVx4ezFhODl9XHh7MWE5MH0tXHh7MWE5OX1ceHsxYjAwfS1ceHsxYjA0fVx4ezFiMzR9LVx4ezFiNDR9XHh7MWI1MH0tXHh7MWI1OX1ceHsxYjZifS1ceHsxYjczfVx4ezFiODB9LVx4ezFiODJ9XHh7MWJhMX0tXHh7MWJhZH1ceHsxYmIwfS1ceHsxYmI5fVx4ezFiZTZ9LVx4ezFiZjN9XHh7MWMyNH0tXHh7MWMzN31ceHsxYzQwfS1ceHsxYzQ5fVx4ezFjNTB9LVx4ezFjNTl9XHh7MWNkMH0tXHh7MWNkMn1ceHsxY2Q0fS1ceHsxY2U4fVx4ezFjZWR9XHh7MWNmMn0tXHh7MWNmNH1ceHsxZGMwfS1ceHsxZGU2fVx4ezFkZmN9LVx4ezFkZmZ9XHh7MjAwY31ceHsyMDBkfVx4ezIwM2Z9XHh7MjA0MH1ceHsyMDU0fVx4ezIwZDB9LVx4ezIwZGN9XHh7MjBlMX1ceHsyMGU1fS1ceHsyMGYwfVx4ezJjZWZ9LVx4ezJjZjF9XHh7MmQ3Zn1ceHsyZGUwfS1ceHsyZGZmfVx4ezMwMmF9LVx4ezMwMmZ9XHh7MzA5OX1ceHszMDlhfVx4e2E2MjB9LVx4e2E2Mjl9XHh7YTY2Zn1ceHthNjc0fS1ceHthNjdkfVx4e2E2OWZ9XHh7YTZmMH1ceHthNmYxfVx4e2E4MDJ9XHh7YTgwNn1ceHthODBifVx4e2E4MjN9LVx4e2E4Mjd9XHh7YTg4MH1ceHthODgxfVx4e2E4YjR9LVx4e2E4YzR9XHh7YThkMH0tXHh7YThkOX1ceHthOGUwfS1ceHthOGYxfVx4e2E5MDB9LVx4e2E5MDl9XHh7YTkyNn0tXHh7YTkyZH1ceHthOTQ3fS1ceHthOTUzfVx4e2E5ODB9LVx4e2E5ODN9XHh7YTliM30tXHh7YTljMH1ceHthOWQwfS1ceHthOWQ5fVx4e2FhMjl9LVx4e2FhMzZ9XHh7YWE0M31ceHthYTRjfVx4e2FhNGR9XHh7YWE1MH0tXHh7YWE1OX1ceHthYTdifVx4e2FhYjB9XHh7YWFiMn0tXHh7YWFiNH1ceHthYWI3fVx4e2FhYjh9XHh7YWFiZX1ceHthYWJmfVx4e2FhYzF9XHh7YWFlYn0tXHh7YWFlZn1ceHthYWY1fVx4e2FhZjZ9XHh7YWJlM30tXHh7YWJlYX1ceHthYmVjfVx4e2FiZWR9XHh7YWJmMH0tXHh7YWJmOX1ceHtmYjFlfVx4e2ZlMDB9LVx4e2ZlMGZ9XHh7ZmUyMH0tXHh7ZmUyNn1ceHtmZTMzfVx4e2ZlMzR9XHh7ZmU0ZH0tXHh7ZmU0Zn1ceHtmZjEwfS1ceHtmZjE5fVx4e2ZmM2Z9XSpcYic7CisKKyAgICAvKioKKyAgICAgKiBGdWxsIGxpc3Qgb2YgSmF2YVNjcmlwdCByZXNlcnZlZCB3b3Jkcy4KKyAgICAgKiBXaWxsIGJlIGxvYWRlZCBmcm9tIC9kYXRhL2pzL2tleXdvcmRzX3Jlc2VydmVkLnR4dC4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL3Jlc2VydmVkLWtleXdvcmRzCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ1tdCisgICAgICovCisgICAgcHJvdGVjdGVkICRrZXl3b3Jkc1Jlc2VydmVkID0gYXJyYXkoKTsKKworICAgIC8qKgorICAgICAqIExpc3Qgb2YgSmF2YVNjcmlwdCByZXNlcnZlZCB3b3JkcyB0aGF0IGFjY2VwdCBhIDx2YXJpYWJsZSwgdmFsdWUsIC4uLj4KKyAgICAgKiBhZnRlciB0aGVtLiBTb21lIGVuZCBvZiBsaW5lcyBhcmUgbm90IHRoZSBlbmQgb2YgYSBzdGF0ZW1lbnQsIGxpa2Ugd2l0aAorICAgICAqIHRoZXNlIGtleXdvcmRzLgorICAgICAqCisgICAgICogRS5nLjogd2Ugc2hvdWxkbid0IGluc2VydCBhIDsgYWZ0ZXIgdGhpcyBlbHNlCisgICAgICogZWxzZQorICAgICAqICAgICBjb25zb2xlLmxvZygndGhpcyBpcyBxdWl0ZSBmaW5lJykKKyAgICAgKgorICAgICAqIFdpbGwgYmUgbG9hZGVkIGZyb20gL2RhdGEvanMva2V5d29yZHNfYmVmb3JlLnR4dAorICAgICAqCisgICAgICogQHZhciBzdHJpbmdbXQorICAgICAqLworICAgIHByb3RlY3RlZCAka2V5d29yZHNCZWZvcmUgPSBhcnJheSgpOworCisgICAgLyoqCisgICAgICogTGlzdCBvZiBKYXZhU2NyaXB0IHJlc2VydmVkIHdvcmRzIHRoYXQgYWNjZXB0IGEgPHZhcmlhYmxlLCB2YWx1ZSwgLi4uPgorICAgICAqIGJlZm9yZSB0aGVtLiBTb21lIGVuZCBvZiBsaW5lcyBhcmUgbm90IHRoZSBlbmQgb2YgYSBzdGF0ZW1lbnQsIGxpa2Ugd2hlbgorICAgICAqIGNvbnRpbnVlZCBieSBvbmUgb2YgdGhlc2Uga2V5d29yZHMgb24gdGhlIG5ld2xpbmUuCisgICAgICoKKyAgICAgKiBFLmcuOiB3ZSBzaG91bGRuJ3QgaW5zZXJ0IGEgOyBiZWZvcmUgdGhpcyBpbnN0YW5jZW9mCisgICAgICogdmFyaWFibGUKKyAgICAgKiAgICAgaW5zdGFuY2VvZiBTdHJpbmcKKyAgICAgKgorICAgICAqIFdpbGwgYmUgbG9hZGVkIGZyb20gL2RhdGEvanMva2V5d29yZHNfYWZ0ZXIudHh0CisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ1tdCisgICAgICovCisgICAgcHJvdGVjdGVkICRrZXl3b3Jkc0FmdGVyID0gYXJyYXkoKTsKKworICAgIC8qKgorICAgICAqIExpc3Qgb2YgYWxsIEphdmFTY3JpcHQgb3BlcmF0b3JzLgorICAgICAqCisgICAgICogV2lsbCBiZSBsb2FkZWQgZnJvbSAvZGF0YS9qcy9vcGVyYXRvcnMudHh0CisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvRXhwcmVzc2lvbnNfYW5kX09wZXJhdG9ycworICAgICAqCisgICAgICogQHZhciBzdHJpbmdbXQorICAgICAqLworICAgIHByb3RlY3RlZCAkb3BlcmF0b3JzID0gYXJyYXkoKTsKKworICAgIC8qKgorICAgICAqIExpc3Qgb2YgSmF2YVNjcmlwdCBvcGVyYXRvcnMgdGhhdCBhY2NlcHQgYSA8dmFyaWFibGUsIHZhbHVlLCAuLi4+IGFmdGVyCisgICAgICogdGhlbS4gU29tZSBlbmQgb2YgbGluZXMgYXJlIG5vdCB0aGUgZW5kIG9mIGEgc3RhdGVtZW50LCBsaWtlIHdpdGggdGhlc2UKKyAgICAgKiBvcGVyYXRvcnMuCisgICAgICoKKyAgICAgKiBOb3RlOiBNb3N0IG9wZXJhdG9ycyBhcmUgZmluZSwgd2UndmUgb25seSByZW1vdmVkICsrIGFuZCAtLS4KKyAgICAgKiArKyAmIC0tIGhhdmUgdG8gYmUgam9pbmVkIHdpdGggdGhlIHZhbHVlIHRoZXkncmUgaW4tL2RlY3JlbWVudGluZy4KKyAgICAgKgorICAgICAqIFdpbGwgYmUgbG9hZGVkIGZyb20gL2RhdGEvanMvb3BlcmF0b3JzX2JlZm9yZS50eHQKKyAgICAgKgorICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9FeHByZXNzaW9uc19hbmRfT3BlcmF0b3JzCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ1tdCisgICAgICovCisgICAgcHJvdGVjdGVkICRvcGVyYXRvcnNCZWZvcmUgPSBhcnJheSgpOworCisgICAgLyoqCisgICAgICogTGlzdCBvZiBKYXZhU2NyaXB0IG9wZXJhdG9ycyB0aGF0IGFjY2VwdCBhIDx2YXJpYWJsZSwgdmFsdWUsIC4uLj4gYmVmb3JlCisgICAgICogdGhlbS4gU29tZSBlbmQgb2YgbGluZXMgYXJlIG5vdCB0aGUgZW5kIG9mIGEgc3RhdGVtZW50LCBsaWtlIHdoZW4KKyAgICAgKiBjb250aW51ZWQgYnkgb25lIG9mIHRoZXNlIG9wZXJhdG9ycyBvbiB0aGUgbmV3bGluZS4KKyAgICAgKgorICAgICAqIE5vdGU6IE1vc3Qgb3BlcmF0b3JzIGFyZSBmaW5lLCB3ZSd2ZSBvbmx5IHJlbW92ZWQgKSwgXSwgKyssIC0tLCAhIGFuZCB+LgorICAgICAqIFRoZXJlIGNhbid0IGJlIGEgbmV3bGluZSBzZXBhcmF0aW5nICEgb3IgfiBhbmQgd2hhdGV2ZXIgaXQgaXMgbmVnYXRpbmcuCisgICAgICogKysgJiAtLSBoYXZlIHRvIGJlIGpvaW5lZCB3aXRoIHRoZSB2YWx1ZSB0aGV5J3JlIGluLS9kZWNyZW1lbnRpbmcuCisgICAgICogKSAmIF0gYXJlICJzcGVjaWFsIiBpbiB0aGF0IHRoZXkgaGF2ZSBsb3RzIG9yIHVzZWNhc2VzLiAoKSBmb3IgZXhhbXBsZQorICAgICAqIGlzIHVzZWQgZm9yIGZ1bmN0aW9uIGNhbGxzLCBmb3IgZ3JvdXBpbmcsIGluIGlmICgpIGFuZCBmb3IgKCksIC4uLgorICAgICAqCisgICAgICogV2lsbCBiZSBsb2FkZWQgZnJvbSAvZGF0YS9qcy9vcGVyYXRvcnNfYWZ0ZXIudHh0CisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvRXhwcmVzc2lvbnNfYW5kX09wZXJhdG9ycworICAgICAqCisgICAgICogQHZhciBzdHJpbmdbXQorICAgICAqLworICAgIHByb3RlY3RlZCAkb3BlcmF0b3JzQWZ0ZXIgPSBhcnJheSgpOworCisgICAgLyoqCisgICAgICoge0Bpbmhlcml0ZG9jfQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCisgICAgeworICAgICAgICBjYWxsX3VzZXJfZnVuY19hcnJheShhcnJheSgncGFyZW50JywgJ19fY29uc3RydWN0JyksIGZ1bmNfZ2V0X2FyZ3MoKSk7CisKKyAgICAgICAgJGRhdGFEaXIgPSBfX0RJUl9fLicvLi4vZGF0YS9qcy8nOworICAgICAgICAkb3B0aW9ucyA9IEZJTEVfSUdOT1JFX05FV19MSU5FUyB8IEZJTEVfU0tJUF9FTVBUWV9MSU5FUzsKKyAgICAgICAgJHRoaXMtPmtleXdvcmRzUmVzZXJ2ZWQgPSBmaWxlKCRkYXRhRGlyLidrZXl3b3Jkc19yZXNlcnZlZC50eHQnLCAkb3B0aW9ucyk7CisgICAgICAgICR0aGlzLT5rZXl3b3Jkc0JlZm9yZSA9IGZpbGUoJGRhdGFEaXIuJ2tleXdvcmRzX2JlZm9yZS50eHQnLCAkb3B0aW9ucyk7CisgICAgICAgICR0aGlzLT5rZXl3b3Jkc0FmdGVyID0gZmlsZSgkZGF0YURpci4na2V5d29yZHNfYWZ0ZXIudHh0JywgJG9wdGlvbnMpOworICAgICAgICAkdGhpcy0+b3BlcmF0b3JzID0gZmlsZSgkZGF0YURpci4nb3BlcmF0b3JzLnR4dCcsICRvcHRpb25zKTsKKyAgICAgICAgJHRoaXMtPm9wZXJhdG9yc0JlZm9yZSA9IGZpbGUoJGRhdGFEaXIuJ29wZXJhdG9yc19iZWZvcmUudHh0JywgJG9wdGlvbnMpOworICAgICAgICAkdGhpcy0+b3BlcmF0b3JzQWZ0ZXIgPSBmaWxlKCRkYXRhRGlyLidvcGVyYXRvcnNfYWZ0ZXIudHh0JywgJG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1pbmlmeSB0aGUgZGF0YS4KKyAgICAgKiBQZXJmb3JtIEpTIG9wdGltaXphdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nW29wdGlvbmFsXSAkcGF0aCBQYXRoIHRvIHdyaXRlIHRoZSBkYXRhIHRvCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgbWluaWZpZWQgZGF0YQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBleGVjdXRlKCRwYXRoID0gbnVsbCkKKyAgICB7CisgICAgICAgICRjb250ZW50ID0gJyc7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogTGV0J3MgZmlyc3QgdGFrZSBvdXQgc3RyaW5ncywgY29tbWVudHMgYW5kIHJlZ3VsYXIgZXhwcmVzc2lvbnMuCisgICAgICAgICAqIEFsbCBvZiB0aGVzZSBjYW4gY29udGFpbiBKUyBjb2RlLWxpa2UgY2hhcmFjdGVycywgYW5kIHdlIHNob3VsZCBtYWtlCisgICAgICAgICAqIHN1cmUgYW55IGZ1cnRoZXIgbWFnaWMgaWdub3JlcyBhbnl0aGluZyBpbnNpZGUgb2YgdGhlc2UuCisgICAgICAgICAqCisgICAgICAgICAqIENvbnNpZGVyIHRoaXMgZXhhbXBsZSwgd2hlcmUgd2Ugc2hvdWxkIG5vdCBzdHJpcCBhbnkgd2hpdGVzcGFjZToKKyAgICAgICAgICogdmFyIHN0ciA9ICJhICAgdGVzdCI7CisgICAgICAgICAqCisgICAgICAgICAqIENvbW1lbnRzIHdpbGwgYmUgcmVtb3ZlZCBhbHRvZ2V0aGVyLCBzdHJpbmdzIGFuZCByZWd1bGFyIGV4cHJlc3Npb25zCisgICAgICAgICAqIHdpbGwgYmUgcmVwbGFjZWQgYnkgcGxhY2Vob2xkZXIgdGV4dCwgd2hpY2ggd2UnbGwgcmVzdG9yZSBsYXRlci4KKyAgICAgICAgICovCisgICAgICAgICR0aGlzLT5leHRyYWN0U3RyaW5ncygnXCciYCcpOworICAgICAgICAkdGhpcy0+c3RyaXBDb21tZW50cygpOworICAgICAgICAkdGhpcy0+ZXh0cmFjdFJlZ2V4KCk7CisKKyAgICAgICAgLy8gbG9vcCBmaWxlcworICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAkc291cmNlID0+ICRqcykgeworICAgICAgICAgICAgLy8gdGFrZSBvdXQgc3RyaW5ncywgY29tbWVudHMgJiByZWdleCAoZm9yIHdoaWNoIHdlJ3ZlIHJlZ2lzdGVyZWQKKyAgICAgICAgICAgIC8vIHRoZSByZWdleGVzIGp1c3QgYSBmZXcgbGluZXMgZWFybGllcikKKyAgICAgICAgICAgICRqcyA9ICR0aGlzLT5yZXBsYWNlKCRqcyk7CisKKyAgICAgICAgICAgICRqcyA9ICR0aGlzLT5wcm9wZXJ0eU5vdGF0aW9uKCRqcyk7CisgICAgICAgICAgICAkanMgPSAkdGhpcy0+c2hvcnRlbkJvb2xzKCRqcyk7CisgICAgICAgICAgICAkanMgPSAkdGhpcy0+c3RyaXBXaGl0ZXNwYWNlKCRqcyk7CisKKyAgICAgICAgICAgIC8vIGNvbWJpbmUganM6IHNlcGFyYXRpbmcgdGhlIHNjcmlwdHMgYnkgYSA7CisgICAgICAgICAgICAkY29udGVudCAuPSAkanMuIjsiOworICAgICAgICB9CisKKyAgICAgICAgLy8gY2xlYW4gdXAgbGVmdG92ZXIgYDtgcyBmcm9tIHRoZSBjb21iaW5hdGlvbiBvZiBtdWx0aXBsZSBzY3JpcHRzCisgICAgICAgICRjb250ZW50ID0gbHRyaW0oJGNvbnRlbnQsICc7Jyk7CisgICAgICAgICRjb250ZW50ID0gKHN0cmluZykgc3Vic3RyKCRjb250ZW50LCAwLCAtMSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRWFybGllciwgd2UgZXh0cmFjdGVkIHN0cmluZ3MgJiByZWd1bGFyIGV4cHJlc3Npb25zIGFuZCByZXBsYWNlZCB0aGVtCisgICAgICAgICAqIHdpdGggcGxhY2Vob2xkZXIgdGV4dC4gVGhpcyB3aWxsIHJlc3RvcmUgdGhlbS4KKyAgICAgICAgICovCisgICAgICAgICRjb250ZW50ID0gJHRoaXMtPnJlc3RvcmVFeHRyYWN0ZWREYXRhKCRjb250ZW50KTsKKworICAgICAgICByZXR1cm4gJGNvbnRlbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RyaXAgY29tbWVudHMgZnJvbSBzb3VyY2UgY29kZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc3RyaXBDb21tZW50cygpCisgICAgeworICAgICAgICAvLyBQSFAgb25seSBzdXBwb3J0cyAkdGhpcyBpbnNpZGUgYW5vbnltb3VzIGZ1bmN0aW9ucyBzaW5jZSA1LjQKKyAgICAgICAgJG1pbmlmaWVyID0gJHRoaXM7CisgICAgICAgICRjYWxsYmFjayA9IGZ1bmN0aW9uICgkbWF0Y2gpIHVzZSAoJG1pbmlmaWVyKSB7CisgICAgICAgICAgICAkY291bnQgPSBjb3VudCgkbWluaWZpZXItPmV4dHJhY3RlZCk7CisgICAgICAgICAgICAkcGxhY2Vob2xkZXIgPSAnLyonLiRjb3VudC4nKi8nOworICAgICAgICAgICAgJG1pbmlmaWVyLT5leHRyYWN0ZWRbJHBsYWNlaG9sZGVyXSA9ICRtYXRjaFswXTsKKworICAgICAgICAgICAgcmV0dXJuICRwbGFjZWhvbGRlcjsKKyAgICAgICAgfTsKKyAgICAgICAgLy8gbXVsdGktbGluZSBjb21tZW50cworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvXG4/XC9cKighfC4qP0BsaWNlbnNlfC4qP0BwcmVzZXJ2ZSkuKj9cKlwvXG4/L3MnLCAkY2FsbGJhY2spOworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvXC9cKi4qP1wqXC8vcycsICcnKTsKKworICAgICAgICAvLyBzaW5nbGUtbGluZSBjb21tZW50cworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvXC9cLy4qJC9tJywgJycpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEpTIGNhbiBoYXZlIC8tZGVsaW1pdGVkIHJlZ3VsYXIgZXhwcmVzc2lvbnMsIGxpa2U6IC9hYitjLy5tYXRjaChzdHJpbmcpLgorICAgICAqCisgICAgICogVGhlIGNvbnRlbnQgaW5zaWRlIHRoZSByZWdleCBjYW4gY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIGNvbmZ1c2VkCisgICAgICogZm9yIEpTIGNvZGU6IGUuZy4gaXQgY291bGQgY29udGFpbiB3aGl0ZXNwYWNlIGl0IG5lZWRzIHRvIG1hdGNoICYgd2UKKyAgICAgKiBkb24ndCB3YW50IHRvIHN0cmlwIHdoaXRlc3BhY2UgaW4gdGhlcmUuCisgICAgICoKKyAgICAgKiBUaGUgcmVnZXggY2FuIGJlIHByZXR0eSBzaW1wbGU6IHdlIGRvbid0IGhhdmUgdG8gY2FyZSBhYm91dCBjb21tZW50cywKKyAgICAgKiAod2hpY2ggYWxzbyB1c2Ugc2xhc2hlcykgYmVjYXVzZSBzdHJpcENvbW1lbnRzKCkgd2lsbCBoYXZlIHN0cmlwcGVkIHRob3NlCisgICAgICogYWxyZWFkeS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgcmVwbGFjZSBhbGwgc3RyaW5nIGNvbnRlbnQgd2l0aCBzaW1wbGUgUkVHRVgjCisgICAgICogcGxhY2Vob2xkZXIgdGV4dCwgc28gd2UndmUgcmlkIGFsbCByZWd1bGFyIGV4cHJlc3Npb25zIGZyb20gY2hhcmFjdGVycworICAgICAqIHRoYXQgbWF5IGJlIG1pc2ludGVycHJldGVkLiBPcmlnaW5hbCByZWdleCBjb250ZW50IHdpbGwgYmUgc2F2ZWQgaW4KKyAgICAgKiAkdGhpcy0+ZXh0cmFjdGVkIGFuZCBhZnRlciBkb2luZyBhbGwgb3RoZXIgbWluaWZ5aW5nLCB3ZSBjYW4gcmVzdG9yZSB0aGUKKyAgICAgKiBvcmlnaW5hbCBjb250ZW50IHZpYSByZXN0b3JlUmVnZXgoKQorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0UmVnZXgoKQorICAgIHsKKyAgICAgICAgLy8gUEhQIG9ubHkgc3VwcG9ydHMgJHRoaXMgaW5zaWRlIGFub255bW91cyBmdW5jdGlvbnMgc2luY2UgNS40CisgICAgICAgICRtaW5pZmllciA9ICR0aGlzOworICAgICAgICAkY2FsbGJhY2sgPSBmdW5jdGlvbiAoJG1hdGNoKSB1c2UgKCRtaW5pZmllcikgeworICAgICAgICAgICAgJGNvdW50ID0gY291bnQoJG1pbmlmaWVyLT5leHRyYWN0ZWQpOworICAgICAgICAgICAgJHBsYWNlaG9sZGVyID0gJyInLiRjb3VudC4nIic7CisgICAgICAgICAgICAkbWluaWZpZXItPmV4dHJhY3RlZFskcGxhY2Vob2xkZXJdID0gJG1hdGNoWzBdOworCisgICAgICAgICAgICByZXR1cm4gJHBsYWNlaG9sZGVyOworICAgICAgICB9OworCisgICAgICAgIC8vIG1hdGNoIGFsbCBjaGFycyBleGNlcHQgYC9gIGFuZCBgXGAKKyAgICAgICAgLy8gYFxgIGlzIGFsbG93ZWQgdGhvdWdoLCBhbG9uZyB3aXRoIHdoYXRldmVyIGNoYXIgZm9sbG93cyAod2hpY2ggaXMgdGhlCisgICAgICAgIC8vIG9uZSBiZWluZyBlc2NhcGVkKQorICAgICAgICAvLyB0aGlzIHNob3VsZCBhbGxvdyBhbGwgY2hhcnMsIGV4Y2VwdCBmb3IgYW4gdW5lc2NhcGVkIGAvYCAoPSB0aGUgb25lCisgICAgICAgIC8vIGNsb3NpbmcgdGhlIHJlZ2V4KQorICAgICAgICAvLyB0aGVuIGFsc28gaWdub3JlIGJhcmUgYC9gIGluc2lkZSBgW11gLCB3aGVyZSB0aGV5IGRvbid0IG5lZWQgdG8gYmUKKyAgICAgICAgLy8gZXNjYXBlZDogYW55dGhpbmcgaW5zaWRlIGBbXWAgY2FuIGJlIGlnbm9yZWQgc2FmZWx5CisgICAgICAgICRwYXR0ZXJuID0gJ1xcLyg/IVwqKSg/OlteXFxbXFwvXFxcXFxuXHJdKyt8KD86XFxcXC4pKyt8KD86XFxbKD86W15cXF1cXFxcXG5ccl0rK3woPzpcXFxcLikrKykrK1xcXSkrKykrK1xcL1tnaW11eV0qJzsKKworICAgICAgICAvLyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGZldyBvcGVyYXRvcnMgb3Igc29tZQorICAgICAgICAvLyBvZiB0aGUgUmVnRXhwIG1ldGhvZHMgKGEgYFxgIGZvbGxvd2VkIGJ5IGEgdmFyaWFibGUgb3IgdmFsdWUgaXMKKyAgICAgICAgLy8gbGlrZWx5IHBhcnQgb2YgYSBkaXZpc2lvbiwgbm90IGEgcmVnZXgpCisgICAgICAgICRrZXl3b3JkcyA9IGFycmF5KCdkbycsICdpbicsICduZXcnLCAnZWxzZScsICd0aHJvdycsICd5aWVsZCcsICdkZWxldGUnLCAncmV0dXJuJywgICd0eXBlb2YnKTsKKyAgICAgICAgJGJlZm9yZSA9ICcoWz06LDtcK1wtXCpcL1x9XChce1xbJlx8IV18XnwnLmltcGxvZGUoJ3wnLCAka2V5d29yZHMpLicpXHMqJzsKKyAgICAgICAgJHByb3BlcnRpZXNBbmRNZXRob2RzID0gYXJyYXkoCisgICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9SZWdFeHAjUHJvcGVydGllc18yCisgICAgICAgICAgICAnY29uc3RydWN0b3InLAorICAgICAgICAgICAgJ2ZsYWdzJywKKyAgICAgICAgICAgICdnbG9iYWwnLAorICAgICAgICAgICAgJ2lnbm9yZUNhc2UnLAorICAgICAgICAgICAgJ211bHRpbGluZScsCisgICAgICAgICAgICAnc291cmNlJywKKyAgICAgICAgICAgICdzdGlja3knLAorICAgICAgICAgICAgJ3VuaWNvZGUnLAorICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvUmVnRXhwI01ldGhvZHNfMgorICAgICAgICAgICAgJ2NvbXBpbGUoJywKKyAgICAgICAgICAgICdleGVjKCcsCisgICAgICAgICAgICAndGVzdCgnLAorICAgICAgICAgICAgJ3RvU291cmNlKCcsCisgICAgICAgICAgICAndG9TdHJpbmcoJywKKyAgICAgICAgKTsKKyAgICAgICAgJGRlbGltaXRlcnMgPSBhcnJheV9maWxsKDAsIGNvdW50KCRwcm9wZXJ0aWVzQW5kTWV0aG9kcyksICcvJyk7CisgICAgICAgICRwcm9wZXJ0aWVzQW5kTWV0aG9kcyA9IGFycmF5X21hcCgncHJlZ19xdW90ZScsICRwcm9wZXJ0aWVzQW5kTWV0aG9kcywgJGRlbGltaXRlcnMpOworICAgICAgICAkYWZ0ZXIgPSAnKD89XHMqKFtcLiw7XClcfSZcfCtdfFwvXC98JHxcLignLmltcGxvZGUoJ3wnLCAkcHJvcGVydGllc0FuZE1ldGhvZHMpLicpKSknOworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvJy4kYmVmb3JlLidcSycuJHBhdHRlcm4uJGFmdGVyLicvJywgJGNhbGxiYWNrKTsKKworICAgICAgICAvLyByZWd1bGFyIGV4cHJlc3Npb25zIGZvbGxvd2luZyBhIGApYCBhcmUgcmF0aGVyIGFubm95aW5nIHRvIGRldGVjdC4uLgorICAgICAgICAvLyBxdWl0ZSBvZnRlbiwgYC9gIGFmdGVyIGApYCBpcyBhIGRpdmlzaW9uIG9wZXJhdG9yICYgaWYgaXQgaGFwcGVucyB0bworICAgICAgICAvLyBiZSBmb2xsb3dlZCBieSBhbm90aGVyIG9uZSAob3IgYSBjb21tZW50KSwgaXQgaXMgbGlrZWx5IHRvIGJlCisgICAgICAgIC8vIGNvbmZ1c2VkIGZvciBhIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAgICAvLyBob3dldmVyLCBpdCdzIHBlcmZlY3RseSBwb3NzaWJsZSBmb3IgYSByZWdleCB0byBmb2xsb3cgYSBgKWA6IGFmdGVyCisgICAgICAgIC8vIGEgc2luZ2xlLWxpbmUgYGlmKClgLCBgd2hpbGUoKWAsIC4uLiBzdGF0ZW1lbnQsIGZvciBleGFtcGxlCisgICAgICAgIC8vIHNpbmNlLCB3aGVuIHRoZXkgb2NjdXIgbGlrZSB0aGF0LCB0aGV5J3JlIGFsd2F5cyB0aGUgc3RhcnQgb2YgYQorICAgICAgICAvLyBzdGF0ZW1lbnQsIHRoZXJlJ3Mgb25seSBhIGxpbWl0ZWQgYW1vdW50IG9mIHdheXMgdGhleSBjYW4gYmUgdXNlZnVsOgorICAgICAgICAvLyBieSBjYWxsaW5nIHRoZSByZWdleCBtZXRob2RzIGRpcmVjdGx5CisgICAgICAgIC8vIGlmIGEgcmVnZXggZm9sbG93aW5nIGApYCBpcyBub3QgZm9sbG93ZWQgYnkgYC48cHJvcGVydHkgb3IgbWV0aG9kPmAsCisgICAgICAgIC8vIGl0J3MgcXVpdGUgbGlrZWx5IG5vdCBhIHJlZ2V4CisgICAgICAgICRiZWZvcmUgPSAnXClccyonOworICAgICAgICAkYWZ0ZXIgPSAnKD89XHMqXC4oJy5pbXBsb2RlKCd8JywgJHByb3BlcnRpZXNBbmRNZXRob2RzKS4nKSknOworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvJy4kYmVmb3JlLidcSycuJHBhdHRlcm4uJGFmdGVyLicvJywgJGNhbGxiYWNrKTsKKworICAgICAgICAvLyAxIG1vcmUgZWRnZSBjYXNlOiBhIHJlZ2V4IGNhbiBiZSBmb2xsb3dlZCBieSBhIGxvdCBtb3JlIG9wZXJhdG9ycyBvcgorICAgICAgICAvLyBrZXl3b3JkcyBpZiB0aGVyZSdzIGEgbmV3bGluZSAoQVNJKSBpbiBiZXR3ZWVuLCB3aGVyZSB0aGUgb3BlcmF0b3IKKyAgICAgICAgLy8gYWN0dWFsbHkgc3RhcnRzIGEgbmV3IHN0YXRlbWVudAorICAgICAgICAvLyAoaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMvNTYpCisgICAgICAgICRvcGVyYXRvcnMgPSAkdGhpcy0+Z2V0T3BlcmF0b3JzRm9yUmVnZXgoJHRoaXMtPm9wZXJhdG9yc0JlZm9yZSwgJy8nKTsKKyAgICAgICAgJG9wZXJhdG9ycyArPSAkdGhpcy0+Z2V0T3BlcmF0b3JzRm9yUmVnZXgoJHRoaXMtPmtleXdvcmRzUmVzZXJ2ZWQsICcvJyk7CisgICAgICAgICRhZnRlciA9ICcoPz1ccypcblxzKignLmltcGxvZGUoJ3wnLCAkb3BlcmF0b3JzKS4nKSknOworICAgICAgICAkdGhpcy0+cmVnaXN0ZXJQYXR0ZXJuKCcvJy4kcGF0dGVybi4kYWZ0ZXIuJy8nLCAkY2FsbGJhY2spOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0cmlwIHdoaXRlc3BhY2UuCisgICAgICoKKyAgICAgKiBXZSB3b24ndCBzdHJpcCAqYWxsKiB3aGl0ZXNwYWNlLCBidXQgYXMgbXVjaCBhcyBwb3NzaWJsZS4gVGhlIHRoaW5nIHRoYXQKKyAgICAgKiB3ZSdsbCBwcmVzZXJ2ZSBhcmUgbmV3bGluZXMgd2UncmUgdW5zdXJlIGFib3V0LgorICAgICAqIEphdmFTY3JpcHQgZG9lc24ndCByZXF1aXJlIHN0YXRlbWVudHMgdG8gYmUgdGVybWluYXRlZCB3aXRoIGEgc2VtaWNvbG9uLgorICAgICAqIEl0IHdpbGwgYXV0b21hdGljYWxseSBmaXggbWlzc2luZyBzZW1pY29sb25zIHdpdGggQVNJIChhdXRvbWF0aWMgc2VtaS0KKyAgICAgKiBjb2xvbiBpbnNlcnRpb24pIGF0IHRoZSBlbmQgb2YgbGluZSBjYXVzaW5nIGVycm9ycyAod2l0aG91dCBzZW1pY29sb24uKQorICAgICAqCisgICAgICogQmVjYXVzZSBpdCdzIHNvbWV0aW1lcyBoYXJkIHRvIHRlbGwgaWYgYSBuZXdsaW5lIGlzIHBhcnQgb2YgYSBzdGF0ZW1lbnQKKyAgICAgKiB0aGF0IHNob3VsZCBiZSB0ZXJtaW5hdGVkIG9yIG5vdCwgd2UnbGwganVzdCBsZWF2ZSBzb21lIG9mIHRoZW0gYWxvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb250ZW50IFRoZSBjb250ZW50IHRvIHN0cmlwIHRoZSB3aGl0ZXNwYWNlIGZvcgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc3RyaXBXaGl0ZXNwYWNlKCRjb250ZW50KQorICAgIHsKKyAgICAgICAgLy8gdW5pZm9ybSBsaW5lIGVuZGluZ3MsIG1ha2UgdGhlbSBhbGwgbGluZSBmZWVkCisgICAgICAgICRjb250ZW50ID0gc3RyX3JlcGxhY2UoYXJyYXkoIlxyXG4iLCAiXHIiKSwgIlxuIiwgJGNvbnRlbnQpOworCisgICAgICAgIC8vIGNvbGxhcHNlIGFsbCBub24tbGluZSBmZWVkIHdoaXRlc3BhY2UgaW50byBhIHNpbmdsZSBzcGFjZQorICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnL1teXFNcbl0rLycsICcgJywgJGNvbnRlbnQpOworCisgICAgICAgIC8vIHN0cmlwIGxlYWRpbmcgJiB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICAgICRjb250ZW50ID0gc3RyX3JlcGxhY2UoYXJyYXkoIiBcbiIsICJcbiAiKSwgIlxuIiwgJGNvbnRlbnQpOworCisgICAgICAgIC8vIGNvbGxhcHNlIGNvbnNlY3V0aXZlIGxpbmUgZmVlZHMgaW50byBqdXN0IDEKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9cbisvJywgIlxuIiwgJGNvbnRlbnQpOworCisgICAgICAgICRvcGVyYXRvcnNCZWZvcmUgPSAkdGhpcy0+Z2V0T3BlcmF0b3JzRm9yUmVnZXgoJHRoaXMtPm9wZXJhdG9yc0JlZm9yZSwgJy8nKTsKKyAgICAgICAgJG9wZXJhdG9yc0FmdGVyID0gJHRoaXMtPmdldE9wZXJhdG9yc0ZvclJlZ2V4KCR0aGlzLT5vcGVyYXRvcnNBZnRlciwgJy8nKTsKKyAgICAgICAgJG9wZXJhdG9ycyA9ICR0aGlzLT5nZXRPcGVyYXRvcnNGb3JSZWdleCgkdGhpcy0+b3BlcmF0b3JzLCAnLycpOworICAgICAgICAka2V5d29yZHNCZWZvcmUgPSAkdGhpcy0+Z2V0S2V5d29yZHNGb3JSZWdleCgkdGhpcy0+a2V5d29yZHNCZWZvcmUsICcvJyk7CisgICAgICAgICRrZXl3b3Jkc0FmdGVyID0gJHRoaXMtPmdldEtleXdvcmRzRm9yUmVnZXgoJHRoaXMtPmtleXdvcmRzQWZ0ZXIsICcvJyk7CisKKyAgICAgICAgLy8gc3RyaXAgd2hpdGVzcGFjZSB0aGF0IGVuZHMgaW4gKG9yIG5leHQgbGluZSBiZWdpbiB3aXRoKSBhbiBvcGVyYXRvcgorICAgICAgICAvLyB0aGF0IGFsbG93cyBzdGF0ZW1lbnRzIHRvIGJlIGJyb2tlbiB1cCBvdmVyIG11bHRpcGxlIGxpbmVzCisgICAgICAgIHVuc2V0KCRvcGVyYXRvcnNCZWZvcmVbJysnXSwgJG9wZXJhdG9yc0JlZm9yZVsnLSddLCAkb3BlcmF0b3JzQWZ0ZXJbJysnXSwgJG9wZXJhdG9yc0FmdGVyWyctJ10pOworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgKKyAgICAgICAgICAgIGFycmF5KAorICAgICAgICAgICAgICAgICcvKCcuaW1wbG9kZSgnfCcsICRvcGVyYXRvcnNCZWZvcmUpLicpXHMrLycsCisgICAgICAgICAgICAgICAgJy9ccysoJy5pbXBsb2RlKCd8JywgJG9wZXJhdG9yc0FmdGVyKS4nKS8nLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICdcXDEnLAorICAgICAgICAgICAgJGNvbnRlbnQKKyAgICAgICAgKTsKKworICAgICAgICAvLyBtYWtlIHN1cmUgKyBhbmQgLSBjYW4ndCBiZSBtaXN0YWtlbiBmb3IsIG9yIGpvaW5lZCBpbnRvICsrIGFuZCAtLQorICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgKKyAgICAgICAgICAgIGFycmF5KAorICAgICAgICAgICAgICAgICcvKD88IVtcK1wtXSlccyooW1wrXC1dKSg/IVtcK1wtXSkvJywKKyAgICAgICAgICAgICAgICAnLyg/PCFbXCtcLV0pKFtcK1wtXSlccyooPyFbXCtcLV0pLycsCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ1xcMScsCisgICAgICAgICAgICAkY29udGVudAorICAgICAgICApOworCisgICAgICAgIC8vIGNvbGxhcHNlIHdoaXRlc3BhY2UgYXJvdW5kIHJlc2VydmVkIHdvcmRzIGludG8gc2luZ2xlIHNwYWNlCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvKF58WztcfVxzXSlcSygnLmltcGxvZGUoJ3wnLCAka2V5d29yZHNCZWZvcmUpLicpXHMrLycsICdcXDIgJywgJGNvbnRlbnQpOworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnL1xzKygnLmltcGxvZGUoJ3wnLCAka2V5d29yZHNBZnRlcikuJykoPz0oWztce1xzXXwkKSkvJywgJyBcXDEnLCAkY29udGVudCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgZGlkbid0IHN0cmlwIHdoaXRlc3BhY2UgYWZ0ZXIgYSBjb3VwbGUgb2Ygb3BlcmF0b3JzIGJlY2F1c2UgdGhleQorICAgICAgICAgKiBjb3VsZCBiZSB1c2VkIGluIGRpZmZlcmVudCBjb250ZXh0cyBhbmQgd2UgY2FuJ3QgYmUgc3VyZSBpdCdzIG9rIHRvCisgICAgICAgICAqIHN0cmlwIHRoZSBuZXdsaW5lcy4gSG93ZXZlciwgd2UgY2FuIHNhZmVseSBzdHJpcCBhbnkgbm9uLWxpbmUgZmVlZAorICAgICAgICAgKiB3aGl0ZXNwYWNlIHRoYXQgZm9sbG93cyB0aGVtLgorICAgICAgICAgKi8KKyAgICAgICAgJG9wZXJhdG9yc0RpZmZCZWZvcmUgPSBhcnJheV9kaWZmKCRvcGVyYXRvcnMsICRvcGVyYXRvcnNCZWZvcmUpOworICAgICAgICAkb3BlcmF0b3JzRGlmZkFmdGVyID0gYXJyYXlfZGlmZigkb3BlcmF0b3JzLCAkb3BlcmF0b3JzQWZ0ZXIpOworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnLygnLmltcGxvZGUoJ3wnLCAkb3BlcmF0b3JzRGlmZkJlZm9yZSkuJylbXlxTXG5dKy8nLCAnXFwxJywgJGNvbnRlbnQpOworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZSgnL1teXFNcbl0rKCcuaW1wbG9kZSgnfCcsICRvcGVyYXRvcnNEaWZmQWZ0ZXIpLicpLycsICdcXDEnLCAkY29udGVudCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2hpdGVzcGFjZSBhZnRlciBgcmV0dXJuYCBjYW4gYmUgb21pdHRlZCBpbiBhIGZldyBvY2Nhc2lvbnMKKyAgICAgICAgICogKHN1Y2ggYXMgd2hlbiBmb2xsb3dlZCBieSBhIHN0cmluZyBvciByZWdleCkKKyAgICAgICAgICogU2FtZSBmb3Igd2hpdGVzcGFjZSBpbiBiZXR3ZWVuIGApYCBhbmQgYHtgLCBvciBiZXR3ZWVuIGB7YCBhbmQgc29tZQorICAgICAgICAgKiBrZXl3b3Jkcy4KKyAgICAgICAgICovCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvXGJyZXR1cm5ccysoWyJcJ1wvXCtcLV0pLycsICdyZXR1cm4kMScsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9cKVxzK1x7LycsICcpeycsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy99XG4oZWxzZXxjYXRjaHxmaW5hbGx5KVxiLycsICd9JDEnLCAkY29udGVudCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogR2V0IHJpZCBvZiBkb3VibGUgc2VtaWNvbG9ucywgZXhjZXB0IHdoZXJlIHRoZXkgY2FuIGJlIHVzZWQgbGlrZToKKyAgICAgICAgICogImZvcih2PTEsXz1iOzspIiwgImZvcih2PTE7O3YrKykiIG9yICJmb3IoOztqYXx8KGphPXRydWUpKSIuCisgICAgICAgICAqIEknbGwgc2FmZWd1YXJkIHRoZXNlIGRvdWJsZSBzZW1pY29sb25zIGluc2lkZSBmb3ItbG9vcHMgYnkKKyAgICAgICAgICogdGVtcG9yYXJpbHkgcmVwbGFjaW5nIHRoZW0gd2l0aCBhbiBpbnZhbGlkIGNvbmRpdGlvbjogdGhleSB3b24ndCBoYXZlCisgICAgICAgICAqIGEgZG91YmxlIHNlbWljb2xvbiBhbmQgd2lsbCBiZSBlYXN5IHRvIHNwb3QgdG8gcmVzdG9yZSBhZnRlcndhcmRzLgorICAgICAgICAgKi8KKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9cYmZvclwoKFteO10qKTs7KFteO10qKVwpLycsICdmb3IoXFwxOy07XFwyKScsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy87Ky8nLCAnOycsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9cYmZvclwoKFteO10qKTstOyhbXjtdKilcKS8nLCAnZm9yKFxcMTs7XFwyKScsICRjb250ZW50KTsKKworICAgICAgICAvKgorICAgICAgICAgKiBOZXh0LCB3ZSdsbCBiZSByZW1vdmluZyBhbGwgc2VtaWNvbG9ucyB3aGVyZSBBU0kga2lja3MgaW4uCisgICAgICAgICAqIGZvci1sb29wcyBob3dldmVyLCBjYW4gaGF2ZSBhbiBlbXB0eSBib2R5IChlbmRpbmcgaW4gb25seSBhCisgICAgICAgICAqIHNlbWljb2xvbiksIGxpa2U6IGBmb3IoaT0xO2k8MztpKyspO2AsIG9mIGBmb3IoaSBpbiBsaXN0KTtgCisgICAgICAgICAqIEhlcmUsIG5vdGhpbmcgaGFwcGVucyBkdXJpbmcgdGhlIGxvb3A7IGl0J3MganVzdCB1c2VkIHRvIGtlZXAKKyAgICAgICAgICogaW5jcmVhc2luZyBgaWAuIFdpdGggdGhhdCA7IG9taXR0ZWQsIHRoZSBuZXh0IGxpbmUgd291bGQgYmUgZXhwZWN0ZWQKKyAgICAgICAgICogdG8gYmUgdGhlIGZvci1sb29wJ3MgYm9keS4uLiBTYW1lIGdvZXMgZm9yIHdoaWxlIGxvb3BzLgorICAgICAgICAgKiBJJ20gZ29pbmcgdG8gZG91YmxlIHRoYXQgc2VtaWNvbG9uIChpZiBhbnkpIHNvIGFmdGVyIHRoZSBuZXh0IGxpbmUsCisgICAgICAgICAqIHdoaWNoIHN0cmlwcyBzZW1pY29sb25zIGhlcmUgJiB0aGVyZSwgd2UncmUgc3RpbGwgbGVmdCB3aXRoIHRoaXMgb25lLgorICAgICAgICAgKi8KKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy8oZm9yXChbXjtce10qO1teO1x7XSo7W147XHtdKlwpKTsoXH18JCkvcycsICdcXDE7O1xcMicsICRjb250ZW50KTsKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy8oZm9yXChbXjtce10rXHMraW5ccytbXjtce10rXCkpOyhcfXwkKS9zJywgJ1xcMTs7XFwyJywgJGNvbnRlbnQpOworICAgICAgICAvKgorICAgICAgICAgKiBCZWxvdyB3aWxsIGFsc28ga2VlcCBgO2AgYWZ0ZXIgYSBgZG97fXdoaWxlKCk7YCBhbG9uZyB3aXRoIGB3aGlsZSgpO2AKKyAgICAgICAgICogV2hpbGUgdGhlc2UgY291bGQgYmUgc3RyaXBwZWQgYWZ0ZXIgZG8td2hpbGUsIGRldGVjdGluZyB0aGlzCisgICAgICAgICAqIGRpc3RpbmN0aW9uIGlzIGN1bWJlcnNvbWUsIHNvIEknbGwgcGxheSBpdCBzYWZlIGFuZCBtYWtlIHN1cmUgYDtgCisgICAgICAgICAqIGFmdGVyIGFueSBraW5kIG9mIGB3aGlsZWAgaXMga2VwdC4KKyAgICAgICAgICovCisgICAgICAgICRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCcvKHdoaWxlXChbXjtce10rXCkpOyhcfXwkKS9zJywgJ1xcMTs7XFwyJywgJGNvbnRlbnQpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFdlIGFsc28gY2FuJ3Qgc3RyaXAgZW1wdHkgZWxzZS1zdGF0ZW1lbnRzLiBFdmVuIHRob3VnaCB0aGV5J3JlCisgICAgICAgICAqIHVzZWxlc3MgYW5kIHByb2JhYmx5IHNob3VsZG4ndCBiZSBpbiB0aGUgY29kZSBpbiB0aGUgZmlyc3QgcGxhY2UsIHdlCisgICAgICAgICAqIHNob3VsZG4ndCBiZSBzdHJpcHBpbmcgdGhlIGA7YCB0aGF0IGZvbGxvd3MgaXQgYXMgaXQgYnJlYWtzIHRoZSBjb2RlLgorICAgICAgICAgKiBXZSBjYW4ganVzdCByZW1vdmUgdGhvc2UgdXNlbGVzcyBlbHNlLXN0YXRlbWVudHMgY29tcGxldGVseS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2lzc3Vlcy85MQorICAgICAgICAgKi8KKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9lbHNlOy9zJywgJycsICRjb250ZW50KTsKKworICAgICAgICAvKgorICAgICAgICAgKiBXZSBhbHNvIGRvbid0IHJlYWxseSB3YW50IHRvIHRlcm1pbmF0ZSBzdGF0ZW1lbnRzIGZvbGxvd2VkIGJ5IGNsb3NpbmcKKyAgICAgICAgICogY3VybHkgYnJhY2VzICh3aGljaCB3ZSd2ZSBpZ25vcmVkIGNvbXBsZXRlbHkgdXAgdW50aWwgbm93KSBvciBlbmQtb2YtCisgICAgICAgICAqIHNjcmlwdDogQVNJIHdpbGwga2ljayBpbiBoZXJlICYgd2UncmUgYWxsIGFib3V0IG1pbmlmeWluZy4KKyAgICAgICAgICogU2VtaWNvbG9ucyBhdCBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgZG9uJ3QgbWFrZSBhbnkgc2Vuc2UgZWl0aGVyLgorICAgICAgICAgKi8KKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy87KFx9fCQpL3MnLCAnXFwxJywgJGNvbnRlbnQpOworICAgICAgICAkY29udGVudCA9IGx0cmltKCRjb250ZW50LCAnOycpOworCisgICAgICAgIC8vIGdldCByaWQgb2YgcmVtYWluaW5nIHdoaXRlc3BhY2UgYWYgYmVnaW5uaW5nL2VuZAorICAgICAgICByZXR1cm4gdHJpbSgkY29udGVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogV2UnbGwgc3RyaXAgd2hpdGVzcGFjZSBhcm91bmQgY2VydGFpbiBvcGVyYXRvcnMgd2l0aCByZWd1bGFyIGV4cHJlc3Npb25zLgorICAgICAqIFRoaXMgd2lsbCBwcmVwYXJlIHRoZSBnaXZlbiBhcnJheSBieSBlc2NhcGluZyBhbGwgY2hhcmFjdGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmdbXSAkb3BlcmF0b3JzCisgICAgICogQHBhcmFtIHN0cmluZyAgICRkZWxpbWl0ZXIKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nW10KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0T3BlcmF0b3JzRm9yUmVnZXgoYXJyYXkgJG9wZXJhdG9ycywgJGRlbGltaXRlciA9ICcvJykKKyAgICB7CisgICAgICAgIC8vIGVzY2FwZSBvcGVyYXRvcnMgZm9yIHVzZSBpbiByZWdleAorICAgICAgICAkZGVsaW1pdGVycyA9IGFycmF5X2ZpbGwoMCwgY291bnQoJG9wZXJhdG9ycyksICRkZWxpbWl0ZXIpOworICAgICAgICAkZXNjYXBlZCA9IGFycmF5X21hcCgncHJlZ19xdW90ZScsICRvcGVyYXRvcnMsICRkZWxpbWl0ZXJzKTsKKworICAgICAgICAkb3BlcmF0b3JzID0gYXJyYXlfY29tYmluZSgkb3BlcmF0b3JzLCAkZXNjYXBlZCk7CisKKyAgICAgICAgLy8gaWdub3JlICsgJiAtIGZvciBub3csIHRoZXknbGwgZ2V0IHNwZWNpYWwgdHJlYXRtZW50CisgICAgICAgIHVuc2V0KCRvcGVyYXRvcnNbJysnXSwgJG9wZXJhdG9yc1snLSddKTsKKworICAgICAgICAvLyBkb3QgY2FuIG5vdCBqdXN0IGltbWVkaWF0ZWx5IGZvbGxvdyBhIG51bWJlcjsgaXQgY2FuIGJlIGNvbmZ1c2VkIGZvcgorICAgICAgICAvLyBkZWNpbWFsIHBvaW50LCBvciBjYWxsaW5nIGEgbWV0aG9kIG9uIGl0LCBlLmcuIDQyIC50b1N0cmluZygpCisgICAgICAgICRvcGVyYXRvcnNbJy4nXSA9ICcoPzwhWzAtOV1ccylcLic7CisKKyAgICAgICAgLy8gZG9uJ3QgY29uZnVzZSA9IHdpdGggb3RoZXIgYXNzaWdubWVudCBzaG9ydGN1dHMgKGUuZy4gKz0pCisgICAgICAgICRjaGFycyA9IHByZWdfcXVvdGUoJystKlw9PD4lJnwnLCAkZGVsaW1pdGVyKTsKKyAgICAgICAgJG9wZXJhdG9yc1snPSddID0gJyg/PCFbJy4kY2hhcnMuJ10pXD0nOworCisgICAgICAgIHJldHVybiAkb3BlcmF0b3JzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdlJ2xsIHN0cmlwIHdoaXRlc3BhY2UgYXJvdW5kIGNlcnRhaW4ga2V5d29yZHMgd2l0aCByZWd1bGFyIGV4cHJlc3Npb25zLgorICAgICAqIFRoaXMgd2lsbCBwcmVwYXJlIHRoZSBnaXZlbiBhcnJheSBieSBlc2NhcGluZyBhbGwgY2hhcmFjdGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmdbXSAka2V5d29yZHMKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJGRlbGltaXRlcgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmdbXQorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXl3b3Jkc0ZvclJlZ2V4KGFycmF5ICRrZXl3b3JkcywgJGRlbGltaXRlciA9ICcvJykKKyAgICB7CisgICAgICAgIC8vIGVzY2FwZSBrZXl3b3JkcyBmb3IgdXNlIGluIHJlZ2V4CisgICAgICAgICRkZWxpbWl0ZXIgPSBhcnJheV9maWxsKDAsIGNvdW50KCRrZXl3b3JkcyksICRkZWxpbWl0ZXIpOworICAgICAgICAkZXNjYXBlZCA9IGFycmF5X21hcCgncHJlZ19xdW90ZScsICRrZXl3b3JkcywgJGRlbGltaXRlcik7CisKKyAgICAgICAgLy8gYWRkIHdvcmQgYm91bmRhcmllcworICAgICAgICBhcnJheV93YWxrKCRrZXl3b3JkcywgZnVuY3Rpb24gKCR2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuICdcYicuJHZhbHVlLidcYic7CisgICAgICAgIH0pOworCisgICAgICAgICRrZXl3b3JkcyA9IGFycmF5X2NvbWJpbmUoJGtleXdvcmRzLCAkZXNjYXBlZCk7CisKKyAgICAgICAgcmV0dXJuICRrZXl3b3JkczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgYXJyYXlbJ2tleSddIGJ5IGFycmF5LmtleS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHByb3BlcnR5Tm90YXRpb24oJGNvbnRlbnQpCisgICAgeworICAgICAgICAvLyBQSFAgb25seSBzdXBwb3J0cyAkdGhpcyBpbnNpZGUgYW5vbnltb3VzIGZ1bmN0aW9ucyBzaW5jZSA1LjQKKyAgICAgICAgJG1pbmlmaWVyID0gJHRoaXM7CisgICAgICAgICRrZXl3b3JkcyA9ICR0aGlzLT5rZXl3b3Jkc1Jlc2VydmVkOworICAgICAgICAkY2FsbGJhY2sgPSBmdW5jdGlvbiAoJG1hdGNoKSB1c2UgKCRtaW5pZmllciwgJGtleXdvcmRzKSB7CisgICAgICAgICAgICAkcHJvcGVydHkgPSB0cmltKCRtaW5pZmllci0+ZXh0cmFjdGVkWyRtYXRjaFsxXV0sICdcJyInKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIENoZWNrIGlmIHRoZSBwcm9wZXJ0eSBpcyBhIHJlc2VydmVkIGtleXdvcmQuIEluIHRoaXMgY29udGV4dCAoYXMKKyAgICAgICAgICAgICAqIHByb3BlcnR5IG9mIGFuIG9iamVjdCBsaXRlcmFsL2FycmF5KSBpdCBzaG91bGRuJ3QgbWF0dGVyLCBidXQgSUU4CisgICAgICAgICAgICAgKiBmcmVha3Mgb3V0IHdpdGggIkV4cGVjdGVkIGlkZW50aWZpZXIiLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHByb3BlcnR5LCAka2V5d29yZHMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICRtYXRjaFswXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFNlZSBpZiB0aGUgcHJvcGVydHkgaXMgaW4gYSB2YXJpYWJsZS1saWtlIGZvcm1hdCAoZS5nLgorICAgICAgICAgICAgICogYXJyYXlbJ2tleS1oZXJlJ10gY2FuJ3QgYmUgcmVwbGFjZWQgYnkgYXJyYXkua2V5LWhlcmUgc2luY2UgJy0nCisgICAgICAgICAgICAgKiBpcyBub3QgYSB2YWxpZCBjaGFyYWN0ZXIgdGhlcmUuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICghcHJlZ19tYXRjaCgnL14nLiRtaW5pZmllcjo6UkVHRVhfVkFSSUFCTEUuJyQvdScsICRwcm9wZXJ0eSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJG1hdGNoWzBdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gJy4nLiRwcm9wZXJ0eTsKKyAgICAgICAgfTsKKworICAgICAgICAvKgorICAgICAgICAgKiBGaWd1cmUgb3V0IGlmIHByZXZpb3VzIGNoYXJhY3RlciBpcyBhIHZhcmlhYmxlIG5hbWUgKG9mIHRoZSBhcnJheQorICAgICAgICAgKiB3ZSB3YW50IHRvIHVzZSBwcm9wZXJ0eSBub3RhdGlvbiBvbikgLSB0aGlzIGlzIHRvIG1ha2Ugc3VyZQorICAgICAgICAgKiBzdGFuZGFsb25lIFsndmFsdWUnXSBhcnJheXMgYXJlbid0IGNvbmZ1c2VkIGZvciBrZXlzLW9mLWFuLWFycmF5LgorICAgICAgICAgKiBXZSBjYW4gKGFuZCBvbmx5IGhhdmUgdG8pIGNoZWNrIHRoZSBsYXN0IGNoYXJhY3RlciwgYmVjYXVzZSBQSFAncworICAgICAgICAgKiByZWdleCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGFsbG93IHVuZml4ZWQtbGVuZ3RoIGxvb2stYmVoaW5kCisgICAgICAgICAqIGFzc2VydGlvbnMuCisgICAgICAgICAqLworICAgICAgICBwcmVnX21hdGNoKCcvKFxbW15cXV0rXF0pW15cXV0qJC8nLCBzdGF0aWM6OlJFR0VYX1ZBUklBQkxFLCAkcHJldmlvdXNDaGFyKTsKKyAgICAgICAgJHByZXZpb3VzQ2hhciA9ICRwcmV2aW91c0NoYXJbMV07CisKKyAgICAgICAgLyoKKyAgICAgICAgICogTWFrZSBzdXJlIHdvcmQgcHJlY2VkaW5nIHRoZSBbJ3ZhbHVlJ10gaXMgbm90IGEga2V5d29yZCwgZS5nLgorICAgICAgICAgKiByZXR1cm5bJ3gnXS4gQmVjYXVzZSAtYWdhaW4tIFBIUCdzIHJlZ2V4IGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgYWxsb3cKKyAgICAgICAgICogdW5maXhlZC1sZW5ndGggbG9vay1iZWhpbmQgYXNzZXJ0aW9ucywgSSdtIGp1c3QgZ29pbmcgdG8gZG8gYSBsb3Qgb2YKKyAgICAgICAgICogc2VwYXJhdGUgbG9vay1iZWhpbmQgYXNzZXJ0aW9ucywgb25lIGZvciBlYWNoIGtleXdvcmQuCisgICAgICAgICAqLworICAgICAgICAka2V5d29yZHMgPSAkdGhpcy0+Z2V0S2V5d29yZHNGb3JSZWdleCgka2V5d29yZHMpOworICAgICAgICAka2V5d29yZHMgPSAnKD88IScuaW1wbG9kZSgnKSg/PCEnLCAka2V5d29yZHMpLicpJzsKKworICAgICAgICByZXR1cm4gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcvKD88PScuJHByZXZpb3VzQ2hhci4nfFxdKScuJGtleXdvcmRzLidcW1xzKigoW1wnIl0pWzAtOV0rXFwyKVxzKlxdL3UnLCAkY2FsbGJhY2ssICRjb250ZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0cnVlICYgZmFsc2UgYnkgITAgYW5kICExLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY29udGVudAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2hvcnRlbkJvb2xzKCRjb250ZW50KQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogJ3RydWUnIG9yICdmYWxzZScgY291bGQgYmUgdXNlZCBhcyBwcm9wZXJ0eSBuYW1lcyAod2hpY2ggbWF5IGJlCisgICAgICAgICAqIGZvbGxvd2VkIGJ5IHdoaXRlc3BhY2UpIC0gd2UgbXVzdCBub3QgcmVwbGFjZSB0aG9zZSEKKyAgICAgICAgICogU2luY2UgUEhQIGRvZXNuJ3QgYWxsb3cgdmFyaWFibGUtbGVuZ3RoICh0byBhY2NvdW50IGZvciB0aGUKKyAgICAgICAgICogd2hpdGVzcGFjZSkgbG9va2JlaGluZCBhc3NlcnRpb25zLCBJIG5lZWQgdG8gY2FwdHVyZSB0aGUgbGVhZGluZworICAgICAgICAgKiBjaGFyYWN0ZXIgYW5kIGNoZWNrIGlmIGl0J3MgYSBgLmAKKyAgICAgICAgICovCisgICAgICAgICRjYWxsYmFjayA9IGZ1bmN0aW9uICgkbWF0Y2gpIHsKKyAgICAgICAgICAgIGlmICh0cmltKCRtYXRjaFsxXSkgPT09ICcuJykgeworICAgICAgICAgICAgICAgIHJldHVybiAkbWF0Y2hbMF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAkbWF0Y2hbMV0uKCRtYXRjaFsyXSA9PT0gJ3RydWUnID8gJyEwJyA6ICchMScpOworICAgICAgICB9OworICAgICAgICAkY29udGVudCA9IHByZWdfcmVwbGFjZV9jYWxsYmFjaygnLyhefC5ccyopXGIodHJ1ZXxmYWxzZSlcYig/ITopLycsICRjYWxsYmFjaywgJGNvbnRlbnQpOworCisgICAgICAgIC8vIGZvcig7OykgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyB3aGlsZSh0cnVlKSwgYnV0IHNob3J0ZXIgOikKKyAgICAgICAgJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJy9cYndoaWxlXCghMFwpey8nLCAnZm9yKDs7KXsnLCAkY29udGVudCk7CisKKyAgICAgICAgLy8gbm93IG1ha2Ugc3VyZSB3ZSBkaWRuJ3QgdHVybiBhbnkgZG8gLi4uIHdoaWxlKHRydWUpIGludG8gZG8gLi4uIGZvcig7OykKKyAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cYmRvXGIvJywgJGNvbnRlbnQsICRkb3MsIFBSRUdfT0ZGU0VUX0NBUFRVUkUgfCBQUkVHX1NFVF9PUkRFUik7CisKKyAgICAgICAgLy8gZ28gYmFja3dhcmQgdG8gbWFrZSBzdXJlIHBvc2l0aW9uYWwgb2Zmc2V0cyBhcmVuJ3QgYWx0ZXJlZCB3aGVuICRjb250ZW50IGNoYW5nZXMKKyAgICAgICAgJGRvcyA9IGFycmF5X3JldmVyc2UoJGRvcyk7CisgICAgICAgIGZvcmVhY2ggKCRkb3MgYXMgJGRvKSB7CisgICAgICAgICAgICAkb2Zmc2V0RG8gPSAkZG9bMF1bMV07CisKKyAgICAgICAgICAgIC8vIGZpbmQgYWxsIGB3aGlsZWAgKG5vdyBgZm9yYCkgZm9sbG93aW5nIGBkb2A6IG9uZSBvZiB0aG9zZSBtdXN0IGJlCisgICAgICAgICAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIGBkb2AgYW5kIGJlIHR1cm5lZCBiYWNrIGludG8gYHdoaWxlYAorICAgICAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cYmZvclwoOztcKS8nLCAkY29udGVudCwgJHdoaWxlcywgUFJFR19PRkZTRVRfQ0FQVFVSRSB8IFBSRUdfU0VUX09SREVSLCAkb2Zmc2V0RG8pOworICAgICAgICAgICAgZm9yZWFjaCAoJHdoaWxlcyBhcyAkd2hpbGUpIHsKKyAgICAgICAgICAgICAgICAkb2Zmc2V0V2hpbGUgPSAkd2hpbGVbMF1bMV07CisKKyAgICAgICAgICAgICAgICAkb3BlbiA9IHN1YnN0cl9jb3VudCgkY29udGVudCwgJ3snLCAkb2Zmc2V0RG8sICRvZmZzZXRXaGlsZSAtICRvZmZzZXREbyk7CisgICAgICAgICAgICAgICAgJGNsb3NlID0gc3Vic3RyX2NvdW50KCRjb250ZW50LCAnfScsICRvZmZzZXREbywgJG9mZnNldFdoaWxlIC0gJG9mZnNldERvKTsKKyAgICAgICAgICAgICAgICBpZiAoJG9wZW4gPT09ICRjbG9zZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHJlc3RvcmUgYHdoaWxlYCBpZiBhbW91bnQgb2YgYHtgIGFuZCBgfWAgYXJlIHRoZSBzYW1lOworICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHRoYXQgYGZvcmAgaXNuJ3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYGRvYAorICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9IHN1YnN0cl9yZXBsYWNlKCRjb250ZW50LCAnd2hpbGUoITApJywgJG9mZnNldFdoaWxlLCBzdHJsZW4oJ2Zvcig7OyknKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkY29udGVudDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvbWluaWZ5L3NyYy9NaW5pZnkucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvTWluaWZ5LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjQwYmMxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL21pbmlmeS9zcmMvTWluaWZ5LnBocApAQCAtMCwwICsxLDQ5NyBAQAorPD9waHAKKy8qKgorICogQWJzdHJhY3QgbWluaWZpZXIgY2xhc3MKKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL21pbmlmeS9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8bWluaWZ5QG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDEyLCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxNaW5pZnk7CisKK3VzZSBNYXR0aGlhc011bGxpZVxNaW5pZnlcRXhjZXB0aW9uc1xJT0V4Y2VwdGlvbjsKK3VzZSBQc3JcQ2FjaGVcQ2FjaGVJdGVtSW50ZXJmYWNlOworCisvKioKKyAqIEFic3RyYWN0IG1pbmlmaWVyIGNsYXNzLgorICoKKyAqIFBsZWFzZSByZXBvcnQgYnVncyBvbiBodHRwczovL2dpdGh1Yi5jb20vbWF0dGhpYXNtdWxsaWUvbWluaWZ5L2lzc3VlcworICoKKyAqIEBwYWNrYWdlIE1pbmlmeQorICogQGF1dGhvciBNYXR0aGlhcyBNdWxsaWUgPG1pbmlmeUBtdWxsaWUuZXU+CisgKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxMiwgTWF0dGhpYXMgTXVsbGllLiBBbGwgcmlnaHRzIHJlc2VydmVkCisgKiBAbGljZW5zZSBNSVQgTGljZW5zZQorICovCithYnN0cmFjdCBjbGFzcyBNaW5pZnkKK3sKKyAgICAvKioKKyAgICAgKiBUaGUgZGF0YSB0byBiZSBtaW5pZmllZC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nW10KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGRhdGEgPSBhcnJheSgpOworCisgICAgLyoqCisgICAgICogQXJyYXkgb2YgcGF0dGVybnMgdG8gbWF0Y2guCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ1tdCisgICAgICovCisgICAgcHJvdGVjdGVkICRwYXR0ZXJucyA9IGFycmF5KCk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGFycmF5IHdpbGwgaG9sZCBjb250ZW50IG9mIHN0cmluZ3MgYW5kIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdGhhdCBoYXZlCisgICAgICogYmVlbiBleHRyYWN0ZWQgZnJvbSB0aGUgSlMgc291cmNlIGNvZGUsIHNvIHdlIGNhbiByZWxpYWJseSBtYXRjaCAiY29kZSIsCisgICAgICogd2l0aG91dCBoYXZpbmcgdG8gd29ycnkgYWJvdXQgcG90ZW50aWFsICJjb2RlLWxpa2UiIGNoYXJhY3RlcnMgaW5zaWRlLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmdbXQorICAgICAqLworICAgIHB1YmxpYyAkZXh0cmFjdGVkID0gYXJyYXkoKTsKKworICAgIC8qKgorICAgICAqIEluaXQgdGhlIG1pbmlmeSBjbGFzcyAtIG9wdGlvbmFsbHksIGNvZGUgbWF5IGJlIHBhc3NlZCBhbG9uZyBhbHJlYWR5LgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgvKiAkZGF0YSA9IG51bGwsIC4uLiAqLykKKyAgICB7CisgICAgICAgIC8vIGl0J3MgcG9zc2libGUgdG8gYWRkIHRoZSBzb3VyY2UgdGhyb3VnaCB0aGUgY29uc3RydWN0b3IgYXMgd2VsbCA7KQorICAgICAgICBpZiAoZnVuY19udW1fYXJncygpKSB7CisgICAgICAgICAgICBjYWxsX3VzZXJfZnVuY19hcnJheShhcnJheSgkdGhpcywgJ2FkZCcpLCBmdW5jX2dldF9hcmdzKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgZmlsZSBvciBzdHJhaWdodC11cCBjb2RlIHRvIGJlIG1pbmlmaWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZ3xzdHJpbmdbXSAkZGF0YQorICAgICAqCisgICAgICogQHJldHVybiBzdGF0aWMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkKCRkYXRhIC8qICRkYXRhID0gbnVsbCwgLi4uICovKQorICAgIHsKKyAgICAgICAgLy8gYm9ndXMgInVzYWdlIiBvZiBwYXJhbWV0ZXIgJGRhdGE6IHNjcnV0aW5pemVyIHdhcm5zIHRoaXMgdmFyaWFibGUgaXMKKyAgICAgICAgLy8gbm90IHVzZWQgKHdlJ3JlIHVzaW5nIGZ1bmNfZ2V0X2FyZ3MgaW5zdGVhZCB0byBzdXBwb3J0IG92ZXJsb2FkaW5nKSwKKyAgICAgICAgLy8gYnV0IGl0IHN0aWxsIG5lZWRzIHRvIGJlIGRlZmluZWQgYmVjYXVzZSBpdCBtYWtlcyBubyBzZW5zZSB0byBoYXZlCisgICAgICAgIC8vIHRoaXMgZnVuY3Rpb24gd2l0aG91dCBhcmd1bWVudCA6KQorICAgICAgICAkYXJncyA9IGFycmF5KCRkYXRhKSArIGZ1bmNfZ2V0X2FyZ3MoKTsKKworICAgICAgICAvLyB0aGlzIG1ldGhvZCBjYW4gYmUgb3ZlcmxvYWRlZAorICAgICAgICBmb3JlYWNoICgkYXJncyBhcyAkZGF0YSkgeworICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRkYXRhKSkgeworICAgICAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAnYWRkJyksICRkYXRhKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcmVkZWZpbmUgdmFyCisgICAgICAgICAgICAkZGF0YSA9IChzdHJpbmcpICRkYXRhOworCisgICAgICAgICAgICAvLyBsb2FkIGRhdGEKKyAgICAgICAgICAgICR2YWx1ZSA9ICR0aGlzLT5sb2FkKCRkYXRhKTsKKyAgICAgICAgICAgICRrZXkgPSAoJGRhdGEgIT0gJHZhbHVlKSA/ICRkYXRhIDogY291bnQoJHRoaXMtPmRhdGEpOworCisgICAgICAgICAgICAvLyByZXBsYWNlIENSIGxpbmVmZWVkcyBldGMuCisgICAgICAgICAgICAvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc211bGxpZS9taW5pZnkvcHVsbC8xMzkKKyAgICAgICAgICAgICR2YWx1ZSA9IHN0cl9yZXBsYWNlKGFycmF5KCJcclxuIiwgIlxyIiksICJcbiIsICR2YWx1ZSk7CisKKyAgICAgICAgICAgIC8vIHN0b3JlIGRhdGEKKyAgICAgICAgICAgICR0aGlzLT5kYXRhWyRrZXldID0gJHZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIGZpbGUgdG8gYmUgbWluaWZpZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nfHN0cmluZ1tdICRkYXRhCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXRpYworICAgICAqIAorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkRmlsZSgkZGF0YSAvKiAkZGF0YSA9IG51bGwsIC4uLiAqLykKKyAgICB7CisgICAgICAgIC8vIGJvZ3VzICJ1c2FnZSIgb2YgcGFyYW1ldGVyICRkYXRhOiBzY3J1dGluaXplciB3YXJucyB0aGlzIHZhcmlhYmxlIGlzCisgICAgICAgIC8vIG5vdCB1c2VkICh3ZSdyZSB1c2luZyBmdW5jX2dldF9hcmdzIGluc3RlYWQgdG8gc3VwcG9ydCBvdmVybG9hZGluZyksCisgICAgICAgIC8vIGJ1dCBpdCBzdGlsbCBuZWVkcyB0byBiZSBkZWZpbmVkIGJlY2F1c2UgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gaGF2ZQorICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgYXJndW1lbnQgOikKKyAgICAgICAgJGFyZ3MgPSBhcnJheSgkZGF0YSkgKyBmdW5jX2dldF9hcmdzKCk7CisKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgY2FuIGJlIG92ZXJsb2FkZWQKKyAgICAgICAgZm9yZWFjaCAoJGFyZ3MgYXMgJHBhdGgpIHsKKyAgICAgICAgICAgIGlmIChpc19hcnJheSgkcGF0aCkpIHsKKyAgICAgICAgICAgICAgICBjYWxsX3VzZXJfZnVuY19hcnJheShhcnJheSgkdGhpcywgJ2FkZEZpbGUnKSwgJHBhdGgpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyByZWRlZmluZSB2YXIKKyAgICAgICAgICAgICRwYXRoID0gKHN0cmluZykgJHBhdGg7CisKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIHdlIGNhbiByZWFkIHRoZSBmaWxlCisgICAgICAgICAgICBpZiAoISR0aGlzLT5jYW5JbXBvcnRGaWxlKCRwYXRoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbignVGhlIGZpbGUgIicuJHBhdGguJyIgY291bGQgbm90IGJlIG9wZW5lZCBmb3IgcmVhZGluZy4gQ2hlY2sgaWYgUEhQIGhhcyBlbm91Z2ggcGVybWlzc2lvbnMuJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICR0aGlzLT5hZGQoJHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1pbmlmeSB0aGUgZGF0YSAmIChvcHRpb25hbGx5KSBzYXZlcyBpdCB0byBhIGZpbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nW29wdGlvbmFsXSAkcGF0aCBQYXRoIHRvIHdyaXRlIHRoZSBkYXRhIHRvCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgbWluaWZpZWQgZGF0YQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBtaW5pZnkoJHBhdGggPSBudWxsKQorICAgIHsKKyAgICAgICAgJGNvbnRlbnQgPSAkdGhpcy0+ZXhlY3V0ZSgkcGF0aCk7CisKKyAgICAgICAgLy8gc2F2ZSB0byBwYXRoCisgICAgICAgIGlmICgkcGF0aCAhPT0gbnVsbCkgeworICAgICAgICAgICAgJHRoaXMtPnNhdmUoJGNvbnRlbnQsICRwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkY29udGVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNaW5pZnkgJiBnemlwIHRoZSBkYXRhICYgKG9wdGlvbmFsbHkpIHNhdmVzIGl0IHRvIGEgZmlsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmdbb3B0aW9uYWxdICRwYXRoICBQYXRoIHRvIHdyaXRlIHRoZSBkYXRhIHRvCisgICAgICogQHBhcmFtIGludFtvcHRpb25hbF0gICAgJGxldmVsIENvbXByZXNzaW9uIGxldmVsLCBmcm9tIDAgdG8gOQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIG1pbmlmaWVkICYgZ3ppcHBlZCBkYXRhCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGd6aXAoJHBhdGggPSBudWxsLCAkbGV2ZWwgPSA5KQorICAgIHsKKyAgICAgICAgJGNvbnRlbnQgPSAkdGhpcy0+ZXhlY3V0ZSgkcGF0aCk7CisgICAgICAgICRjb250ZW50ID0gZ3plbmNvZGUoJGNvbnRlbnQsICRsZXZlbCwgRk9SQ0VfR1pJUCk7CisKKyAgICAgICAgLy8gc2F2ZSB0byBwYXRoCisgICAgICAgIGlmICgkcGF0aCAhPT0gbnVsbCkgeworICAgICAgICAgICAgJHRoaXMtPnNhdmUoJGNvbnRlbnQsICRwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkY29udGVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNaW5pZnkgdGhlIGRhdGEgJiB3cml0ZSBpdCB0byBhIENhY2hlSXRlbUludGVyZmFjZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gQ2FjaGVJdGVtSW50ZXJmYWNlICRpdGVtIENhY2hlIGl0ZW0gdG8gd3JpdGUgdGhlIGRhdGEgdG8KKyAgICAgKgorICAgICAqIEByZXR1cm4gQ2FjaGVJdGVtSW50ZXJmYWNlIENhY2hlIGl0ZW0gd2l0aCB0aGUgbWluaWZpZXIgZGF0YQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjYWNoZShDYWNoZUl0ZW1JbnRlcmZhY2UgJGl0ZW0pCisgICAgeworICAgICAgICAkY29udGVudCA9ICR0aGlzLT5leGVjdXRlKCk7CisgICAgICAgICRpdGVtLT5zZXQoJGNvbnRlbnQpOworCisgICAgICAgIHJldHVybiAkaXRlbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNaW5pZnkgdGhlIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nW29wdGlvbmFsXSAkcGF0aCBQYXRoIHRvIHdyaXRlIHRoZSBkYXRhIHRvCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgbWluaWZpZWQgZGF0YQorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiBleGVjdXRlKCRwYXRoID0gbnVsbCk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkYXRhIEVpdGhlciBhIHBhdGggdG8gYSBmaWxlIG9yIHRoZSBjb250ZW50IGl0c2VsZgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbG9hZCgkZGF0YSkKKyAgICB7CisgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBkYXRhIGlzIGEgZmlsZQorICAgICAgICBpZiAoJHRoaXMtPmNhbkltcG9ydEZpbGUoJGRhdGEpKSB7CisgICAgICAgICAgICAkZGF0YSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRkYXRhKTsKKworICAgICAgICAgICAgLy8gc3RyaXAgQk9NLCBpZiBhbnkKKyAgICAgICAgICAgIGlmIChzdWJzdHIoJGRhdGEsIDAsIDMpID09ICJceGVmXHhiYlx4YmYiKSB7CisgICAgICAgICAgICAgICAgJGRhdGEgPSBzdWJzdHIoJGRhdGEsIDMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRkYXRhOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdG8gZmlsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnQgVGhlIG1pbmlmaWVkIGRhdGEKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoICAgIFRoZSBwYXRoIHRvIHNhdmUgdGhlIG1pbmlmaWVkIGRhdGEgdG8KKyAgICAgKgorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2F2ZSgkY29udGVudCwgJHBhdGgpCisgICAgeworICAgICAgICAkaGFuZGxlciA9ICR0aGlzLT5vcGVuRmlsZUZvcldyaXRpbmcoJHBhdGgpOworCisgICAgICAgICR0aGlzLT53cml0ZVRvRmlsZSgkaGFuZGxlciwgJGNvbnRlbnQpOworCisgICAgICAgIEBmY2xvc2UoJGhhbmRsZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgcGF0dGVybiB0byBleGVjdXRlIGFnYWluc3QgdGhlIHNvdXJjZSBjb250ZW50LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAkcGF0dGVybiAgICAgUENSRSBwYXR0ZXJuCisgICAgICogQHBhcmFtIHN0cmluZ3xjYWxsYWJsZSAkcmVwbGFjZW1lbnQgUmVwbGFjZW1lbnQgdmFsdWUgZm9yIG1hdGNoZWQgcGF0dGVybgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZWdpc3RlclBhdHRlcm4oJHBhdHRlcm4sICRyZXBsYWNlbWVudCA9ICcnKQorICAgIHsKKyAgICAgICAgLy8gc3R1ZHkgdGhlIHBhdHRlcm4sIHdlJ2xsIGV4ZWN1dGUgaXQgbW9yZSB0aGFuIG9uY2UKKyAgICAgICAgJHBhdHRlcm4gLj0gJ1MnOworCisgICAgICAgICR0aGlzLT5wYXR0ZXJuc1tdID0gYXJyYXkoJHBhdHRlcm4sICRyZXBsYWNlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogV2UgY2FuJ3QgImp1c3QiIHJ1biBzb21lIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYWdhaW5zdCBKYXZhU2NyaXB0OiBpdCdzIGEKKyAgICAgKiBjb21wbGV4IGxhbmd1YWdlLiBFLmcuIGhhdmluZyBhbiBvY2N1cnJlbmNlIG9mIC8vIHh5eiB3b3VsZCBiZSBhIGNvbW1lbnQsCisgICAgICogdW5sZXNzIGl0J3MgdXNlZCB3aXRoaW4gYSBzdHJpbmcuIE9mIHlvdSBjb3VsZCBoYXZlIHNvbWV0aGluZyB0aGF0IGxvb2tzCisgICAgICogbGlrZSBhICdzdHJpbmcnLCBidXQgaW5zaWRlIGEgY29tbWVudC4KKyAgICAgKiBUaGUgb25seSB3YXkgdG8gYWNjdXJhdGVseSByZXBsYWNlIHRoZXNlIHBpZWNlcyBpcyB0byB0cmF2ZXJzZSB0aGUgSlMgb25lCisgICAgICogY2hhcmFjdGVyIGF0IGEgdGltZSBhbmQgdHJ5IHRvIGZpbmQgd2hhdGV2ZXIgc3RhcnRzIGZpcnN0LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY29udGVudCBUaGUgY29udGVudCB0byByZXBsYWNlIHBhdHRlcm5zIGluCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgKG1hbmlwdWxhdGVkKSBjb250ZW50CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlcGxhY2UoJGNvbnRlbnQpCisgICAgeworICAgICAgICAkcHJvY2Vzc2VkID0gJyc7CisgICAgICAgICRwb3NpdGlvbnMgPSBhcnJheV9maWxsKDAsIGNvdW50KCR0aGlzLT5wYXR0ZXJucyksIC0xKTsKKyAgICAgICAgJG1hdGNoZXMgPSBhcnJheSgpOworCisgICAgICAgIHdoaWxlICgkY29udGVudCkgeworICAgICAgICAgICAgLy8gZmluZCBmaXJzdCBtYXRjaCBmb3IgYWxsIHBhdHRlcm5zCisgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+cGF0dGVybnMgYXMgJGkgPT4gJHBhdHRlcm4pIHsKKyAgICAgICAgICAgICAgICBsaXN0KCRwYXR0ZXJuLCAkcmVwbGFjZW1lbnQpID0gJHBhdHRlcm47CisKKyAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gc2FmZWx5IGlnbm9yZSBwYXR0ZXJucyBmb3IgcG9zaXRpb25zIHdlJ3ZlIHVuc2V0IGVhcmxpZXIsCisgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB3ZSBrbm93IHRoZXNlIHdvbid0IHNob3cgdXAgYW55bW9yZQorICAgICAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRpLCAkcG9zaXRpb25zKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBubyBuZWVkIHRvIHJlLXJ1biBtYXRjaGVzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBwYXJ0IG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvbnRlbnQgdGhhdCBoYXNuJ3QgYmVlbiBwcm9jZXNzZWQKKyAgICAgICAgICAgICAgICBpZiAoJHBvc2l0aW9uc1skaV0gPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkbWF0Y2ggPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCRwYXR0ZXJuLCAkY29udGVudCwgJG1hdGNoLCBQUkVHX09GRlNFVF9DQVBUVVJFKSkgeworICAgICAgICAgICAgICAgICAgICAkbWF0Y2hlc1skaV0gPSAkbWF0Y2g7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UnbGwgc3RvcmUgdGhlIG1hdGNoIHBvc2l0aW9uIGFzIHdlbGw7IHRoYXQgd2F5LCB3ZQorICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBoYXZlIHRvIHJlZG8gYWxsIHByZWdfbWF0Y2hlcyBhZnRlciBjaGFuZ2luZyBvbmx5CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCAod2UnbGwgc3RpbGwga25vdyB3aGVyZSB0aG9zZSBvdGhlcnMgYXJlKQorICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb25zWyRpXSA9ICRtYXRjaFswXVsxXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcGF0dGVybiBjb3VsZG4ndCBiZSBtYXRjaGVkLCB0aGVyZSdzIG5vIHBvaW50IGluCisgICAgICAgICAgICAgICAgICAgIC8vIGV4ZWN1dGluZyBpdCBhZ2FpbiBpbiBsYXRlciBydW5zIG9uIHRoaXMgc2FtZSBjb250ZW50OworICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgdGhpcyBvbmUgdW50aWwgd2UgcmVhY2ggZW5kIG9mIGNvbnRlbnQKKyAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG1hdGNoZXNbJGldLCAkcG9zaXRpb25zWyRpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBubyBtb3JlIG1hdGNoZXMgdG8gZmluZDogZXZlcnl0aGluZydzIGJlZW4gcHJvY2Vzc2VkLCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmICghJG1hdGNoZXMpIHsKKyAgICAgICAgICAgICAgICAkcHJvY2Vzc2VkIC49ICRjb250ZW50OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzZWUgd2hpY2ggb2YgdGhlIHBhdHRlcm5zIGFjdHVhbGx5IGZvdW5kIHRoZSBmaXJzdCB0aGluZyAod2UnbGwKKyAgICAgICAgICAgIC8vIG9ubHkgd2FudCB0byBleGVjdXRlIHRoYXQgb25lLCBzaW5jZSB3ZSdyZSB1bnN1cmUgaWYgd2hhdCB0aGUKKyAgICAgICAgICAgIC8vIG90aGVyIGZvdW5kIHdhcyBub3QgaW5zaWRlIHdoYXQgdGhlIGZpcnN0IGZvdW5kKQorICAgICAgICAgICAgJGRpc2NhcmRMZW5ndGggPSBtaW4oJHBvc2l0aW9ucyk7CisgICAgICAgICAgICAkZmlyc3RQYXR0ZXJuID0gYXJyYXlfc2VhcmNoKCRkaXNjYXJkTGVuZ3RoLCAkcG9zaXRpb25zKTsKKyAgICAgICAgICAgICRtYXRjaCA9ICRtYXRjaGVzWyRmaXJzdFBhdHRlcm5dWzBdWzBdOworCisgICAgICAgICAgICAvLyBleGVjdXRlIHRoZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyBlYXJsaWVzdCBpbiB0aGUgY29udGVudCBzdHJpbmcKKyAgICAgICAgICAgIGxpc3QoJHBhdHRlcm4sICRyZXBsYWNlbWVudCkgPSAkdGhpcy0+cGF0dGVybnNbJGZpcnN0UGF0dGVybl07CisgICAgICAgICAgICAkcmVwbGFjZW1lbnQgPSAkdGhpcy0+cmVwbGFjZVBhdHRlcm4oJHBhdHRlcm4sICRyZXBsYWNlbWVudCwgJGNvbnRlbnQpOworCisgICAgICAgICAgICAvLyBmaWd1cmUgb3V0IHdoaWNoIHBhcnQgb2YgdGhlIHN0cmluZyB3YXMgdW5tYXRjaGVkOyB0aGF0J3MgdGhlCisgICAgICAgICAgICAvLyBwYXJ0IHdlJ2xsIGV4ZWN1dGUgdGhlIHBhdHRlcm5zIG9uIGFnYWluIG5leHQKKyAgICAgICAgICAgICRjb250ZW50ID0gKHN0cmluZykgc3Vic3RyKCRjb250ZW50LCAkZGlzY2FyZExlbmd0aCk7CisgICAgICAgICAgICAkdW5tYXRjaGVkID0gKHN0cmluZykgc3Vic3RyKCRjb250ZW50LCBzdHJwb3MoJGNvbnRlbnQsICRtYXRjaCkgKyBzdHJsZW4oJG1hdGNoKSk7CisKKyAgICAgICAgICAgIC8vIG1vdmUgdGhlIHJlcGxhY2VkIHBhcnQgdG8gJHByb2Nlc3NlZCBhbmQgcHJlcGFyZSAkY29udGVudCB0bworICAgICAgICAgICAgLy8gYWdhaW4gbWF0Y2ggYmF0Y2ggb2YgcGF0dGVybnMgYWdhaW5zdAorICAgICAgICAgICAgJHByb2Nlc3NlZCAuPSBzdWJzdHIoJHJlcGxhY2VtZW50LCAwLCBzdHJsZW4oJHJlcGxhY2VtZW50KSAtIHN0cmxlbigkdW5tYXRjaGVkKSk7CisgICAgICAgICAgICAkY29udGVudCA9ICR1bm1hdGNoZWQ7CisKKyAgICAgICAgICAgIC8vIGZpcnN0IG1hdGNoIGhhcyBiZWVuIHJlcGxhY2VkICYgdGhhdCBjb250ZW50IGlzIHRvIGJlIGxlZnQgYWxvbmUsCisgICAgICAgICAgICAvLyB0aGUgbmV4dCBtYXRjaGVzIHdpbGwgc3RhcnQgYWZ0ZXIgdGhpcyByZXBsYWNlbWVudCwgc28gd2Ugc2hvdWxkCisgICAgICAgICAgICAvLyBmaXggdGhlaXIgb2Zmc2V0cworICAgICAgICAgICAgZm9yZWFjaCAoJHBvc2l0aW9ucyBhcyAkaSA9PiAkcG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAkcG9zaXRpb25zWyRpXSAtPSAkZGlzY2FyZExlbmd0aCArIHN0cmxlbigkbWF0Y2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRwcm9jZXNzZWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyB3aGVyZSBhIHBhdHRlcm4gaXMgbWF0Y2hlZCBhZ2FpbnN0ICRjb250ZW50IGFuZCB0aGUgbWF0Y2hlcworICAgICAqIGFyZSByZXBsYWNlZCBieSB0aGVpciByZXNwZWN0aXZlIHZhbHVlLgorICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgcGxlbnR5IG9mIHRpbWVzLCB3aGVyZSAkY29udGVudCB3aWxsIGFsd2F5cworICAgICAqIG1vdmUgdXAgMSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRwYXR0ZXJuICAgICBQYXR0ZXJuIHRvIG1hdGNoCisgICAgICogQHBhcmFtIHN0cmluZ3xjYWxsYWJsZSAkcmVwbGFjZW1lbnQgUmVwbGFjZW1lbnQgdmFsdWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRjb250ZW50ICAgICBDb250ZW50IHRvIG1hdGNoIHBhdHRlcm4gYWdhaW5zdAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcmVwbGFjZVBhdHRlcm4oJHBhdHRlcm4sICRyZXBsYWNlbWVudCwgJGNvbnRlbnQpCisgICAgeworICAgICAgICBpZiAoaXNfY2FsbGFibGUoJHJlcGxhY2VtZW50KSkgeworICAgICAgICAgICAgcmV0dXJuIHByZWdfcmVwbGFjZV9jYWxsYmFjaygkcGF0dGVybiwgJHJlcGxhY2VtZW50LCAkY29udGVudCwgMSwgJGNvdW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBwcmVnX3JlcGxhY2UoJHBhdHRlcm4sICRyZXBsYWNlbWVudCwgJGNvbnRlbnQsIDEsICRjb3VudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmdzIGFyZSBhIHBhdHRlcm4gd2UgbmVlZCB0byBtYXRjaCwgaW4gb3JkZXIgdG8gaWdub3JlIHBvdGVudGlhbAorICAgICAqIGNvZGUtbGlrZSBjb250ZW50IGluc2lkZSB0aGVtLCBidXQgd2UganVzdCB3YW50IGFsbCBvZiB0aGUgc3RyaW5nCisgICAgICogY29udGVudCB0byByZW1haW4gdW50b3VjaGVkLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2Qgd2lsbCByZXBsYWNlIGFsbCBzdHJpbmcgY29udGVudCB3aXRoIHNpbXBsZSBTVFJJTkcjCisgICAgICogcGxhY2Vob2xkZXIgdGV4dCwgc28gd2UndmUgcmlkIGFsbCBzdHJpbmdzIGZyb20gY2hhcmFjdGVycyB0aGF0IG1heSBiZQorICAgICAqIG1pc2ludGVycHJldGVkLiBPcmlnaW5hbCBzdHJpbmcgY29udGVudCB3aWxsIGJlIHNhdmVkIGluICR0aGlzLT5leHRyYWN0ZWQKKyAgICAgKiBhbmQgYWZ0ZXIgZG9pbmcgYWxsIG90aGVyIG1pbmlmeWluZywgd2UgY2FuIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGNvbnRlbnQKKyAgICAgKiB2aWEgcmVzdG9yZVN0cmluZ3MoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmdbb3B0aW9uYWxdICRjaGFycworICAgICAqIEBwYXJhbSBzdHJpbmdbb3B0aW9uYWxdICRwbGFjZWhvbGRlclByZWZpeAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBleHRyYWN0U3RyaW5ncygkY2hhcnMgPSAnXCciJywgJHBsYWNlaG9sZGVyUHJlZml4ID0gJycpCisgICAgeworICAgICAgICAvLyBQSFAgb25seSBzdXBwb3J0cyAkdGhpcyBpbnNpZGUgYW5vbnltb3VzIGZ1bmN0aW9ucyBzaW5jZSA1LjQKKyAgICAgICAgJG1pbmlmaWVyID0gJHRoaXM7CisgICAgICAgICRjYWxsYmFjayA9IGZ1bmN0aW9uICgkbWF0Y2gpIHVzZSAoJG1pbmlmaWVyLCAkcGxhY2Vob2xkZXJQcmVmaXgpIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBzZWNvbmQgaW5kZXggaGVyZSwgYmVjYXVzZSB0aGUgZmlyc3QgYWx3YXlzIGNvbnRhaW5zIGEgcXVvdGUKKyAgICAgICAgICAgIGlmICgkbWF0Y2hbMl0gPT09ICcnKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBFbXB0eSBzdHJpbmdzIG5lZWQgbm8gcGxhY2Vob2xkZXI7IHRoZXkgY2FuJ3QgYmUgY29uZnVzZWQgZm9yCisgICAgICAgICAgICAgICAgICogYW55dGhpbmcgZWxzZSBhbnl3YXkuCisgICAgICAgICAgICAgICAgICogQnV0IHdlIHN0aWxsIG5lZWRlZCB0byBtYXRjaCB0aGVtLCBmb3IgdGhlIGV4dHJhY3Rpb24gcm91dGluZQorICAgICAgICAgICAgICAgICAqIHRvIHNraXAgb3ZlciB0aGlzIHBhcnRpY3VsYXIgc3RyaW5nLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHJldHVybiAkbWF0Y2hbMF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRjb3VudCA9IGNvdW50KCRtaW5pZmllci0+ZXh0cmFjdGVkKTsKKyAgICAgICAgICAgICRwbGFjZWhvbGRlciA9ICRtYXRjaFsxXS4kcGxhY2Vob2xkZXJQcmVmaXguJGNvdW50LiRtYXRjaFsxXTsKKyAgICAgICAgICAgICRtaW5pZmllci0+ZXh0cmFjdGVkWyRwbGFjZWhvbGRlcl0gPSAkbWF0Y2hbMV0uJG1hdGNoWzJdLiRtYXRjaFsxXTsKKworICAgICAgICAgICAgcmV0dXJuICRwbGFjZWhvbGRlcjsKKyAgICAgICAgfTsKKworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgXFwgbWVzc2luZXNzIGV4cGxhaW5lZDoKKyAgICAgICAgICogKiBEb24ndCBjb3VudCAnIG9yICIgYXMgZW5kLW9mLXN0cmluZyBpZiBpdCdzIGVzY2FwZWQgKGhhcyBiYWNrc2xhc2gKKyAgICAgICAgICogaW4gZnJvbnQgb2YgaXQpCisgICAgICAgICAqICogVW5sZXNzLi4uIHRoYXQgYmFja3NsYXNoIGl0c2VsZiBpcyBlc2NhcGVkIChhbm90aGVyIGxlYWRpbmcgc2xhc2gpLAorICAgICAgICAgKiBpbiB3aGljaCBjYXNlIGl0J3Mgbm8gbG9uZ2VyIGVzY2FwaW5nIHRoZSAnIG9yICIKKyAgICAgICAgICogKiBTbyB0aGVyZSBjYW4gYmUgZWl0aGVyIG5vIGJhY2tzbGFzaCwgb3IgYW4gZXZlbiBudW1iZXIKKyAgICAgICAgICogKiBtdWx0aXBseSBhbGwgb2YgdGhhdCB0aW1lcyA0LCB0byBhY2NvdW50IGZvciB0aGUgZXNjYXBpbmcgdGhhdCBoYXMKKyAgICAgICAgICogdG8gYmUgZG9uZSB0byBwYXNzIHRoZSBiYWNrc2xhc2ggaW50byB0aGUgUEhQIHN0cmluZyB3aXRob3V0IGl0IGJlaW5nCisgICAgICAgICAqIGNvbnNpZGVyZWQgYXMgZXNjYXBlLWNoYXIgKHRpbWVzIDIpIGFuZCB0byBnZXQgaXQgaW4gdGhlIHJlZ2V4LAorICAgICAgICAgKiBlc2NhcGVkICh0aW1lcyAyKQorICAgICAgICAgKi8KKyAgICAgICAgJHRoaXMtPnJlZ2lzdGVyUGF0dGVybignLyhbJy4kY2hhcnMuJ10pKC4qPyg/PCFcXFxcKShcXFxcXFxcXCkqKylcXDEvcycsICRjYWxsYmFjayk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2Qgd2lsbCByZXN0b3JlIGFsbCBleHRyYWN0ZWQgZGF0YSAoc3RyaW5ncywgcmVnZXhlcykgdGhhdCB3ZXJlCisgICAgICogcmVwbGFjZWQgd2l0aCBwbGFjZWhvbGRlciB0ZXh0IGluIGV4dHJhY3QqKCkuIFRoZSBvcmlnaW5hbCBjb250ZW50IHdhcworICAgICAqIHNhdmVkIGluICR0aGlzLT5leHRyYWN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjb250ZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZXN0b3JlRXh0cmFjdGVkRGF0YSgkY29udGVudCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPmV4dHJhY3RlZCkgeworICAgICAgICAgICAgLy8gbm90aGluZyB3YXMgZXh0cmFjdGVkLCBub3RoaW5nIHRvIHJlc3RvcmUKKyAgICAgICAgICAgIHJldHVybiAkY29udGVudDsKKyAgICAgICAgfQorCisgICAgICAgICRjb250ZW50ID0gc3RydHIoJGNvbnRlbnQsICR0aGlzLT5leHRyYWN0ZWQpOworCisgICAgICAgICR0aGlzLT5leHRyYWN0ZWQgPSBhcnJheSgpOworCisgICAgICAgIHJldHVybiAkY29udGVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiB0aGUgcGF0aCBpcyBhIHJlZ3VsYXIgZmlsZSBhbmQgY2FuIGJlIHJlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2FuSW1wb3J0RmlsZSgkcGF0aCkKKyAgICB7CisgICAgICAgICRwYXJzZWQgPSBwYXJzZV91cmwoJHBhdGgpOworICAgICAgICBpZiAoCisgICAgICAgICAgICAvLyBmaWxlIGlzIGVsc2V3aGVyZQorICAgICAgICAgICAgaXNzZXQoJHBhcnNlZFsnaG9zdCddKSB8fAorICAgICAgICAgICAgLy8gZmlsZSByZXNwb25kcyB0byBxdWVyaWVzIChtYXkgY2hhbmdlLCBvciBuZWVkIHRvIGJ5cGFzcyBjYWNoZSkKKyAgICAgICAgICAgIGlzc2V0KCRwYXJzZWRbJ3F1ZXJ5J10pCisgICAgICAgICkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0cmxlbigkcGF0aCkgPCBQSFBfTUFYUEFUSExFTiAmJiBAaXNfZmlsZSgkcGF0aCkgJiYgaXNfcmVhZGFibGUoJHBhdGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHRzIHRvIG9wZW4gZmlsZSBzcGVjaWZpZWQgYnkgJHBhdGggZm9yIHdyaXRpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIFRoZSBwYXRoIHRvIHRoZSBmaWxlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc291cmNlIFNwZWNpZmllciBmb3IgdGhlIHRhcmdldCBmaWxlCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG9wZW5GaWxlRm9yV3JpdGluZygkcGF0aCkKKyAgICB7CisgICAgICAgIGlmICgoJGhhbmRsZXIgPSBAZm9wZW4oJHBhdGgsICd3JykpID09PSBmYWxzZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCdUaGUgZmlsZSAiJy4kcGF0aC4nIiBjb3VsZCBub3QgYmUgb3BlbmVkIGZvciB3cml0aW5nLiBDaGVjayBpZiBQSFAgaGFzIGVub3VnaCBwZXJtaXNzaW9ucy4nKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkaGFuZGxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0cyB0byB3cml0ZSAkY29udGVudCB0byB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgJGhhbmRsZXIuICRwYXRoIGlzIHVzZWQgZm9yIHByaW50aW5nIGV4Y2VwdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJGhhbmRsZXIgVGhlIHJlc291cmNlIHRvIHdyaXRlIHRvCisgICAgICogQHBhcmFtIHN0cmluZyAgICRjb250ZW50IFRoZSBjb250ZW50IHRvIHdyaXRlCisgICAgICogQHBhcmFtIHN0cmluZyAgICRwYXRoICAgIFRoZSBwYXRoIHRvIHRoZSBmaWxlIChmb3IgZXhjZXB0aW9uIHByaW50aW5nIG9ubHkpCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHdyaXRlVG9GaWxlKCRoYW5kbGVyLCAkY29udGVudCwgJHBhdGggPSAnJykKKyAgICB7CisgICAgICAgIGlmICgoJHJlc3VsdCA9IEBmd3JpdGUoJGhhbmRsZXIsICRjb250ZW50KSkgPT09IGZhbHNlIHx8ICgkcmVzdWx0IDwgc3RybGVuKCRjb250ZW50KSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbignVGhlIGZpbGUgIicuJHBhdGguJyIgY291bGQgbm90IGJlIHdyaXR0ZW4gdG8uIENoZWNrIHlvdXIgZGlzayBzcGFjZSBhbmQgZmlsZSBwZXJtaXNzaW9ucy4nKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9MSUNFTlNFIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyL0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkxMjk1YQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9MSUNFTlNFCkBAIC0wLDAgKzEsMTggQEAKK0NvcHlyaWdodCAoYykgMjAxNSBNYXR0aGlhcyBNdWxsaWUKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgordGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KK3RoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KK3VzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCit0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sCitzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCitjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MKK0ZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgorQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSCitJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9jb21wb3Nlci5qc29uIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyL2NvbXBvc2VyLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNiNmE0YwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9jb21wb3Nlci5qc29uCkBAIC0wLDAgKzEsMjggQEAKK3sKKyAgICAibmFtZSI6ICJtYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlciIsCisgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgImRlc2NyaXB0aW9uIjogIlJlbGF0aXZlIHBhdGggY29udmVydGVyIiwKKyAgICAia2V5d29yZHMiOiBbInJlbGF0aXZlIiwgInBhdGgiLCAiY29udmVydGVyIiwgInBhdGhzIl0sCisgICAgImhvbWVwYWdlIjogImh0dHA6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyIiwKKyAgICAibGljZW5zZSI6ICJNSVQiLAorICAgICJhdXRob3JzIjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJNYXR0aGlhcyBNdWxsaWUiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cubXVsbGllLmV1IiwKKyAgICAgICAgICAgICJlbWFpbCI6ICJwYXRoY29udmVydGVyQG11bGxpZS5ldSIsCisgICAgICAgICAgICAicm9sZSI6ICJEZXZlbG9wZXIiCisgICAgICAgIH0KKyAgICBdLAorICAgICJyZXF1aXJlIjogeworICAgICAgICAicGhwIjogIj49NS4zLjAiLAorICAgICAgICAiZXh0LXBjcmUiOiAiKiIKKyAgICB9LAorICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC44IgorICAgIH0sCisgICAgImF1dG9sb2FkIjogeworICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAiTWF0dGhpYXNNdWxsaWVcXFBhdGhDb252ZXJ0ZXJcXCI6ICJzcmMvIgorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyL3NyYy9Db252ZXJ0ZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyL3NyYy9Db252ZXJ0ZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwY2YyNjkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIvc3JjL0NvbnZlcnRlci5waHAKQEAgLTAsMCArMSwyMDQgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxQYXRoQ29udmVydGVyOworCisvKioKKyAqIENvbnZlcnQgcGF0aHMgcmVsYXRpdmUgZnJvbSAxIGZpbGUgdG8gYW5vdGhlci4KKyAqCisgKiBFLmcuCisgKiAgICAgLi4vLi4vaW1hZ2VzL2ljb24uanBnIHJlbGF0aXZlIHRvIC9jc3MvaW1wb3J0cy9pY29ucy5jc3MKKyAqIGJlY29tZXMKKyAqICAgICAuLi9pbWFnZXMvaWNvbi5qcGcgcmVsYXRpdmUgdG8gL2Nzcy9taW5pZmllZC5jc3MKKyAqCisgKiBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb24gaHR0cHM6Ly9naXRodWIuY29tL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyL2lzc3VlcworICoKKyAqIEBhdXRob3IgTWF0dGhpYXMgTXVsbGllIDxwYXRoY29udmVydGVyQG11bGxpZS5ldT4KKyAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IChjKSAyMDE1LCBNYXR0aGlhcyBNdWxsaWUuIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyAqIEBsaWNlbnNlIE1JVCBMaWNlbnNlCisgKi8KK2NsYXNzIENvbnZlcnRlciBpbXBsZW1lbnRzIENvbnZlcnRlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRmcm9tOworCisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHRvOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkZnJvbSBUaGUgb3JpZ2luYWwgYmFzZSBwYXRoIChkaXJlY3RvcnksIG5vdCBmaWxlISkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR0byAgIFRoZSBuZXcgYmFzZSBwYXRoIChkaXJlY3RvcnksIG5vdCBmaWxlISkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRyb290IFJvb3QgZGlyZWN0b3J5IChkZWZhdWx0cyB0byBgZ2V0Y3dkYCkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGZyb20sICR0bywgJHJvb3QgPSAnJykKKyAgICB7CisgICAgICAgICRzaGFyZWQgPSAkdGhpcy0+c2hhcmVkKCRmcm9tLCAkdG8pOworICAgICAgICBpZiAoJHNoYXJlZCA9PT0gJycpIHsKKyAgICAgICAgICAgIC8vIHdoZW4gYm90aCBwYXRocyBoYXZlIG5vdGhpbmcgaW4gY29tbW9uLCBvbmUgb2YgdGhlbSBpcyBwcm9iYWJseQorICAgICAgICAgICAgLy8gYWJzb2x1dGUgd2hpbGUgdGhlIG90aGVyIGlzIHJlbGF0aXZlCisgICAgICAgICAgICAkcm9vdCA9ICRyb290ID86IGdldGN3ZCgpOworICAgICAgICAgICAgJGZyb20gPSBzdHJwb3MoJGZyb20sICRyb290KSA9PT0gMCA/ICRmcm9tIDogcHJlZ19yZXBsYWNlKCcvXC8rLycsICcvJywgJHJvb3QuJy8nLiRmcm9tKTsKKyAgICAgICAgICAgICR0byA9IHN0cnBvcygkdG8sICRyb290KSA9PT0gMCA/ICR0byA6IHByZWdfcmVwbGFjZSgnL1wvKy8nLCAnLycsICRyb290LicvJy4kdG8pOworCisgICAgICAgICAgICAvLyBvciB0cmF2ZWxpbmcgdGhlIHRyZWUgdmlhIGAuLmAKKyAgICAgICAgICAgIC8vIGF0dGVtcHQgdG8gcmVzb2x2ZSBwYXRoLCBvciBhc3N1bWUgaXQncyBmaW5lIGlmIGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAgICAgICAgICRmcm9tID0gQHJlYWxwYXRoKCRmcm9tKSA/OiAkZnJvbTsKKyAgICAgICAgICAgICR0byA9IEByZWFscGF0aCgkdG8pID86ICR0bzsKKyAgICAgICAgfQorCisgICAgICAgICRmcm9tID0gJHRoaXMtPmRpcm5hbWUoJGZyb20pOworICAgICAgICAkdG8gPSAkdGhpcy0+ZGlybmFtZSgkdG8pOworCisgICAgICAgICRmcm9tID0gJHRoaXMtPm5vcm1hbGl6ZSgkZnJvbSk7CisgICAgICAgICR0byA9ICR0aGlzLT5ub3JtYWxpemUoJHRvKTsKKworICAgICAgICAkdGhpcy0+ZnJvbSA9ICRmcm9tOworICAgICAgICAkdGhpcy0+dG8gPSAkdG87CisgICAgfQorCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIHBhdGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBub3JtYWxpemUoJHBhdGgpCisgICAgeworICAgICAgICAvLyBkZWFsIHdpdGggZGlmZmVyZW50IG9wZXJhdGluZyBzeXN0ZW1zJyBkaXJlY3Rvcnkgc3RydWN0dXJlCisgICAgICAgICRwYXRoID0gcnRyaW0oc3RyX3JlcGxhY2UoRElSRUNUT1JZX1NFUEFSQVRPUiwgJy8nLCAkcGF0aCksICcvJyk7CisKKyAgICAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgY3VycmVudCBkaXJlY3RvcnkuCisgICAgICAgIGlmIChzdWJzdHIoJHBhdGgsIDAsIDIpID09PSAnLi8nKSB7CisgICAgICAgICAgICAkcGF0aCA9IHN1YnN0cigkcGF0aCwgMik7CisgICAgICAgIH0KKworICAgICAgICAvLyByZW1vdmUgcmVmZXJlbmNlcyB0byBjdXJyZW50IGRpcmVjdG9yeSBpbiB0aGUgcGF0aC4KKyAgICAgICAgJHBhdGggPSBzdHJfcmVwbGFjZSgnLy4vJywgJy8nLCAkcGF0aCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRXhhbXBsZToKKyAgICAgICAgICogICAgIC9ob21lL2ZvcmtjbXMvZnJvbnRlbmQvY2FjaGUvY29tcGlsZWRfdGVtcGxhdGVzLy4uLy4uL2NvcmUvbGF5b3V0L2Nzcy8uLi9pbWFnZXMvaW1nLmdpZgorICAgICAgICAgKiB0bworICAgICAgICAgKiAgICAgL2hvbWUvZm9ya2Ntcy9mcm9udGVuZC9jb3JlL2xheW91dC9pbWFnZXMvaW1nLmdpZgorICAgICAgICAgKi8KKyAgICAgICAgZG8geworICAgICAgICAgICAgJHBhdGggPSBwcmVnX3JlcGxhY2UoJy9bXlwvXSsoPzwhXC5cLilcL1wuXC5cLy8nLCAnJywgJHBhdGgsIC0xLCAkY291bnQpOworICAgICAgICB9IHdoaWxlICgkY291bnQpOworCisgICAgICAgIHJldHVybiAkcGF0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWd1cmUgb3V0IHRoZSBzaGFyZWQgcGF0aCBvZiAyIGxvY2F0aW9ucy4KKyAgICAgKgorICAgICAqIEV4YW1wbGU6CisgICAgICogICAgIC9ob21lL2ZvcmtjbXMvZnJvbnRlbmQvY29yZS9sYXlvdXQvaW1hZ2VzL2ltZy5naWYKKyAgICAgKiBhbmQKKyAgICAgKiAgICAgL2hvbWUvZm9ya2Ntcy9mcm9udGVuZC9jYWNoZS9taW5pZmllZF9jc3MKKyAgICAgKiBzaGFyZQorICAgICAqICAgICAvaG9tZS9mb3JrY21zL2Zyb250ZW5kCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoMQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGgyCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzaGFyZWQoJHBhdGgxLCAkcGF0aDIpCisgICAgeworICAgICAgICAvLyAkcGF0aCBjb3VsZCB0aGVvcmV0aWNhbGx5IGJlIGVtcHR5IChlLmcuIG5vIHBhdGggaXMgZ2l2ZW4pLCBpbiB3aGljaAorICAgICAgICAvLyBjYXNlIGl0IHNob3VsZG4ndCBleHBhbmQgdG8gYXJyYXkoJycpLCB3aGljaCB3b3VsZCBjb21wYXJlIHRvIG9uZSdzCisgICAgICAgIC8vIHJvb3QgLworICAgICAgICAkcGF0aDEgPSAkcGF0aDEgPyBleHBsb2RlKCcvJywgJHBhdGgxKSA6IGFycmF5KCk7CisgICAgICAgICRwYXRoMiA9ICRwYXRoMiA/IGV4cGxvZGUoJy8nLCAkcGF0aDIpIDogYXJyYXkoKTsKKworICAgICAgICAkc2hhcmVkID0gYXJyYXkoKTsKKworICAgICAgICAvLyBjb21wYXJlIHBhdGhzICYgc3RyaXAgaWRlbnRpY2FsIGFuY2VzdG9ycworICAgICAgICBmb3JlYWNoICgkcGF0aDEgYXMgJGkgPT4gJGNodW5rKSB7CisgICAgICAgICAgICBpZiAoaXNzZXQoJHBhdGgyWyRpXSkgJiYgJHBhdGgxWyRpXSA9PSAkcGF0aDJbJGldKSB7CisgICAgICAgICAgICAgICAgJHNoYXJlZFtdID0gJGNodW5rOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbXBsb2RlKCcvJywgJHNoYXJlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBwYXRocyByZWxhdGl2ZSBmcm9tIDEgZmlsZSB0byBhbm90aGVyLgorICAgICAqCisgICAgICogRS5nLgorICAgICAqICAgICAuLi9pbWFnZXMvaW1nLmdpZiByZWxhdGl2ZSB0byAvaG9tZS9mb3JrY21zL2Zyb250ZW5kL2NvcmUvbGF5b3V0L2NzcworICAgICAqIHNob3VsZCBiZWNvbWU6CisgICAgICogICAgIC4uLy4uL2NvcmUvbGF5b3V0L2ltYWdlcy9pbWcuZ2lmIHJlbGF0aXZlIHRvCisgICAgICogICAgIC9ob21lL2ZvcmtjbXMvZnJvbnRlbmQvY2FjaGUvbWluaWZpZWRfY3NzCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIFRoZSByZWxhdGl2ZSBwYXRoIHRoYXQgbmVlZHMgdG8gYmUgY29udmVydGVkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgbmV3IHJlbGF0aXZlIHBhdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY29udmVydCgkcGF0aCkKKyAgICB7CisgICAgICAgIC8vIHF1aXQgZWFybHkgaWYgY29udmVyc2lvbiBtYWtlcyBubyBzZW5zZQorICAgICAgICBpZiAoJHRoaXMtPmZyb20gPT09ICR0aGlzLT50bykgeworICAgICAgICAgICAgcmV0dXJuICRwYXRoOworICAgICAgICB9CisKKyAgICAgICAgJHBhdGggPSAkdGhpcy0+bm9ybWFsaXplKCRwYXRoKTsKKyAgICAgICAgLy8gaWYgd2UncmUgbm90IGRlYWxpbmcgd2l0aCBhIHJlbGF0aXZlIHBhdGgsIGp1c3QgcmV0dXJuIGFic29sdXRlCisgICAgICAgIGlmIChzdHJwb3MoJHBhdGgsICcvJykgPT09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAkcGF0aDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vcm1hbGl6ZSBwYXRocworICAgICAgICAkcGF0aCA9ICR0aGlzLT5ub3JtYWxpemUoJHRoaXMtPmZyb20uJy8nLiRwYXRoKTsKKworICAgICAgICAvLyBzdHJpcCBzaGFyZWQgYW5jZXN0b3IgcGF0aHMKKyAgICAgICAgJHNoYXJlZCA9ICR0aGlzLT5zaGFyZWQoJHBhdGgsICR0aGlzLT50byk7CisgICAgICAgICRwYXRoID0gbWJfc3Vic3RyKCRwYXRoLCBtYl9zdHJsZW4oJHNoYXJlZCkpOworICAgICAgICAkdG8gPSBtYl9zdWJzdHIoJHRoaXMtPnRvLCBtYl9zdHJsZW4oJHNoYXJlZCkpOworCisgICAgICAgIC8vIGFkZCAuLiBmb3IgZXZlcnkgZGlyZWN0b3J5IHRoYXQgbmVlZHMgdG8gYmUgdHJhdmVyc2VkIHRvIG5ldyBwYXRoCisgICAgICAgICR0byA9IHN0cl9yZXBlYXQoJy4uLycsIGNvdW50KGFycmF5X2ZpbHRlcihleHBsb2RlKCcvJywgJHRvKSkpKTsKKworICAgICAgICByZXR1cm4gJHRvLmx0cmltKCRwYXRoLCAnLycpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gZ2V0IHRoZSBkaXJlY3RvcnkgbmFtZSBmcm9tIGEgcGF0aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGgKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGRpcm5hbWUoJHBhdGgpCisgICAgeworICAgICAgICBpZiAoQGlzX2ZpbGUoJHBhdGgpKSB7CisgICAgICAgICAgICByZXR1cm4gZGlybmFtZSgkcGF0aCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoQGlzX2RpcigkcGF0aCkpIHsKKyAgICAgICAgICAgIHJldHVybiBydHJpbSgkcGF0aCwgJy8nKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vIGtub3duIGZpbGUvZGlyLCBzdGFydCBtYWtpbmcgYXNzdW1wdGlvbnMKKworICAgICAgICAvLyBlbmRzIGluIC8gPSBkaXIKKyAgICAgICAgaWYgKG1iX3N1YnN0cigkcGF0aCwgLTEpID09PSAnLycpIHsKKyAgICAgICAgICAgIHJldHVybiBydHJpbSgkcGF0aCwgJy8nKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGhhcyBhIGRvdCBpbiB0aGUgbmFtZSwgbGlrZWx5IGEgZmlsZQorICAgICAgICBpZiAocHJlZ19tYXRjaCgnLy4qXC4uKiQvJywgYmFzZW5hbWUoJHBhdGgpKSAhPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGRpcm5hbWUoJHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8geW91J3JlIG9uIHlvdXIgb3duIGhlcmUhCisgICAgICAgIHJldHVybiAkcGF0aDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIvc3JjL0NvbnZlcnRlckludGVyZmFjZS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbWF0dGhpYXNtdWxsaWUvcGF0aC1jb252ZXJ0ZXIvc3JjL0NvbnZlcnRlckludGVyZmFjZS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxYjc2NQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9zcmMvQ29udmVydGVySW50ZXJmYWNlLnBocApAQCAtMCwwICsxLDI0IEBACis8P3BocAorCituYW1lc3BhY2UgTWF0dGhpYXNNdWxsaWVcUGF0aENvbnZlcnRlcjsKKworLyoqCisgKiBDb252ZXJ0IGZpbGUgcGF0aHMuCisgKgorICogUGxlYXNlIHJlcG9ydCBidWdzIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8cGF0aGNvbnZlcnRlckBtdWxsaWUuZXU+CisgKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNSwgTWF0dGhpYXMgTXVsbGllLiBBbGwgcmlnaHRzIHJlc2VydmVkCisgKiBAbGljZW5zZSBNSVQgTGljZW5zZQorICovCitpbnRlcmZhY2UgQ29udmVydGVySW50ZXJmYWNlCit7CisgICAgLyoqCisgICAgICogQ29udmVydCBmaWxlIHBhdGhzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkcGF0aCBUaGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBuZXcgcGF0aAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjb252ZXJ0KCRwYXRoKTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9zcmMvTm9Db252ZXJ0ZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL21hdHRoaWFzbXVsbGllL3BhdGgtY29udmVydGVyL3NyYy9Ob0NvbnZlcnRlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZjZmQwZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9zcmMvTm9Db252ZXJ0ZXIucGhwCkBAIC0wLDAgKzEsMjMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBNYXR0aGlhc011bGxpZVxQYXRoQ29udmVydGVyOworCisvKioKKyAqIERvbid0IGNvbnZlcnQgcGF0aHMuCisgKgorICogUGxlYXNlIHJlcG9ydCBidWdzIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0aGlhc211bGxpZS9wYXRoLWNvbnZlcnRlci9pc3N1ZXMKKyAqCisgKiBAYXV0aG9yIE1hdHRoaWFzIE11bGxpZSA8cGF0aGNvbnZlcnRlckBtdWxsaWUuZXU+CisgKiBAY29weXJpZ2h0IENvcHlyaWdodCAoYykgMjAxNSwgTWF0dGhpYXMgTXVsbGllLiBBbGwgcmlnaHRzIHJlc2VydmVkCisgKiBAbGljZW5zZSBNSVQgTGljZW5zZQorICovCitjbGFzcyBOb0NvbnZlcnRlciBpbXBsZW1lbnRzIENvbnZlcnRlckludGVyZmFjZQoreworICAgIC8qKgorICAgICAqIHtAaW5oZXJpdGRvY30KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY29udmVydCgkcGF0aCkKKyAgICB7CisgICAgICAgIHJldHVybiAkcGF0aDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljLy5naXRpZ25vcmUgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUyOTRmNAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDMgQEAKK3ZlbmRvcgorY29tcG9zZXIubG9jaworLkRTX1N0b3JlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL0NPUFlJTkcgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL0NPUFlJTkcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU3ZGRiYwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvQ09QWUlORwpAQCAtMCwwICsxLDIxIEBACitUaGUgTUlUIExpY2Vuc2UKKworQ29weXJpZ2h0IChjKSAyMDExIFZsYWRpbWlyIEFuZGVyc2VuCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKK29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgorVEhFIFNPRlRXQVJFLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvUkVBRE1FLm1kIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWViYmRjNQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMzAgQEAKKyoqU3B5YyoqIGlzIGEgWUFNTCBsb2FkZXIvZHVtcGVyIHdyaXR0ZW4gaW4gcHVyZSBQSFAuIEdpdmVuIGEgWUFNTCBkb2N1bWVudCwgU3B5YyB3aWxsIHJldHVybiBhbiBhcnJheSB0aGF0Cit5b3UgY2FuIHVzZSBob3dldmVyIHlvdSBzZWUgZml0LiBHaXZlbiBhbiBhcnJheSwgU3B5YyB3aWxsIHJldHVybiBhIHN0cmluZyB3aGljaCBjb250YWlucyBhIFlBTUwgZG9jdW1lbnQgCitidWlsdCBmcm9tIHlvdXIgZGF0YS4KKworKipZQU1MKiogaXMgYW4gYW1hemluZ2x5IGh1bWFuIGZyaWVuZGx5IGFuZCBzdHJpa2luZ2x5IHZlcnNhdGlsZSBkYXRhIHNlcmlhbGl6YXRpb24gbGFuZ3VhZ2Ugd2hpY2ggY2FuIGJlIHVzZWQgCitmb3IgbG9nIGZpbGVzLCBjb25maWcgZmlsZXMsIGN1c3RvbSBwcm90b2NvbHMsIHRoZSB3b3Jrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LnlhbWwub3JnLgorCitTcHljIHN1cHBvcnRzIFlBTUwgMS4wIHNwZWNpZmljYXRpb24uCisKKyMjIFVzaW5nIFNweWMKKworVXNpbmcgU3B5YyBpcyB0cml2aWFsOgorCitgYGBwaHAKKzw/cGhwCityZXF1aXJlX29uY2UgInNweWMucGhwIjsKKyREYXRhID0gU3B5Yzo6WUFNTExvYWQoJ3NweWMueWFtbCcpOworYGBgCisKK29yIChpZiB5b3UgcHJlZmVyIGZ1bmN0aW9uYWwgc3ludGF4KQorCitgYGBwaHAKKzw/cGhwCityZXF1aXJlX29uY2UgInNweWMucGhwIjsKKyREYXRhID0gc3B5Y19sb2FkX2ZpbGUoJ3NweWMueWFtbCcpOworYGBgCisKKyMjIERvbmF0aW9ucywgYW55b25lPworCitJZiB5b3UgZmluZCBTcHljIHVzZWZ1bCwgSSdtIGFjY2VwdGluZyBCaXRjb2luIGRvbmF0aW9ucyAod2hvIGRvZXNuJ3QgdGhlc2UgZGF5cz8pIGF0IDE5M2JFa0xQN3pNck5MWm05VWRVZXQ0cHVHRDVtUWlMYWkKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvU3B5Yy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL1NweWMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZTBmNjIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL1NweWMucGhwCkBAIC0wLDAgKzEsMTE4NiBAQAorPD9waHAKKy8qKgorICAgKiBTcHljIC0tIEEgU2ltcGxlIFBIUCBZQU1MIENsYXNzCisgICAqIEB2ZXJzaW9uIDAuNi4yCisgICAqIEBhdXRob3IgVmxhZCBBbmRlcnNlbiA8dmxhZC5hbmRlcnNlbkBnbWFpbC5jb20+CisgICAqIEBhdXRob3IgQ2hyaXMgV2Fuc3RyYXRoIDxjaHJpc0Bvem1tLm9yZz4KKyAgICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL211c3Rhbmdvc3Rhbmcvc3B5Yy8KKyAgICogQGNvcHlyaWdodCBDb3B5cmlnaHQgMjAwNS0yMDA2IENocmlzIFdhbnN0cmF0aCwgMjAwNi0yMDExIFZsYWQgQW5kZXJzZW4KKyAgICogQGxpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAgTUlUIExpY2Vuc2UKKyAgICogQHBhY2thZ2UgU3B5YworICAgKi8KKworaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3NweWNfbG9hZCcpKSB7CisgIC8qKgorICAgKiBQYXJzZXMgWUFNTCB0byBhcnJheS4KKyAgICogQHBhcmFtIHN0cmluZyAkc3RyaW5nIFlBTUwgc3RyaW5nLgorICAgKiBAcmV0dXJuIGFycmF5CisgICAqLworICBmdW5jdGlvbiBzcHljX2xvYWQgKCRzdHJpbmcpIHsKKyAgICByZXR1cm4gU3B5Yzo6WUFNTExvYWRTdHJpbmcoJHN0cmluZyk7CisgIH0KK30KKworaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3NweWNfbG9hZF9maWxlJykpIHsKKyAgLyoqCisgICAqIFBhcnNlcyBZQU1MIHRvIGFycmF5LgorICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlIFBhdGggdG8gWUFNTCBmaWxlLgorICAgKiBAcmV0dXJuIGFycmF5CisgICAqLworICBmdW5jdGlvbiBzcHljX2xvYWRfZmlsZSAoJGZpbGUpIHsKKyAgICByZXR1cm4gU3B5Yzo6WUFNTExvYWQoJGZpbGUpOworICB9Cit9CisKK2lmICghZnVuY3Rpb25fZXhpc3RzKCdzcHljX2R1bXAnKSkgeworICAvKioKKyAgICogRHVtcHMgYXJyYXkgdG8gWUFNTC4KKyAgICogQHBhcmFtIGFycmF5ICRkYXRhIEFycmF5LgorICAgKiBAcmV0dXJuIHN0cmluZworICAgKi8KKyAgZnVuY3Rpb24gc3B5Y19kdW1wICgkZGF0YSkgeworICAgIHJldHVybiBTcHljOjpZQU1MRHVtcCgkZGF0YSwgZmFsc2UsIGZhbHNlLCB0cnVlKTsKKyAgfQorfQorCitpZiAoIWNsYXNzX2V4aXN0cygnU3B5YycpKSB7CisKKy8qKgorICAgKiBUaGUgU2ltcGxlIFBIUCBZQU1MIENsYXNzLgorICAgKgorICAgKiBUaGlzIGNsYXNzIGNhbiBiZSB1c2VkIHRvIHJlYWQgYSBZQU1MIGZpbGUgYW5kIGNvbnZlcnQgaXRzIGNvbnRlbnRzCisgICAqIGludG8gYSBQSFAgYXJyYXkuICBJdCBjdXJyZW50bHkgc3VwcG9ydHMgYSB2ZXJ5IGxpbWl0ZWQgc3Vic2VjdGlvbiBvZgorICAgKiB0aGUgWUFNTCBzcGVjLgorICAgKgorICAgKiBVc2FnZToKKyAgICogPGNvZGU+CisgICAqICAgJFNweWMgID0gbmV3IFNweWM7CisgICAqICAgJGFycmF5ID0gJFNweWMtPmxvYWQoJGZpbGUpOworICAgKiA8L2NvZGU+CisgICAqIG9yOgorICAgKiA8Y29kZT4KKyAgICogICAkYXJyYXkgPSBTcHljOjpZQU1MTG9hZCgkZmlsZSk7CisgICAqIDwvY29kZT4KKyAgICogb3I6CisgICAqIDxjb2RlPgorICAgKiAgICRhcnJheSA9IHNweWNfbG9hZF9maWxlKCRmaWxlKTsKKyAgICogPC9jb2RlPgorICAgKiBAcGFja2FnZSBTcHljCisgICAqLworY2xhc3MgU3B5YyB7CisKKyAgLy8gU0VUVElOR1MKKworICBjb25zdCBSRU1QVFkgPSAiXDBcMFwwXDBcMCI7CisKKyAgLyoqCisgICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgZm9yY2UgWUFNTER1bXAgdG8gZW5jbG9zZSBhbnkgc3RyaW5nIHZhbHVlIGluCisgICAqIHF1b3Rlcy4gIEZhbHNlIGJ5IGRlZmF1bHQuCisgICAqCisgICAqIEB2YXIgYm9vbAorICAgKi8KKyAgcHVibGljICRzZXR0aW5nX2R1bXBfZm9yY2VfcXVvdGVzID0gZmFsc2U7CisKKyAgLyoqCisgICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgZm9yc2UgWUFNTExvYWQgdG8gdXNlIHN5Y2tfbG9hZCBmdW5jdGlvbiB3aGVuCisgICAqIHBvc3NpYmxlLiBGYWxzZSBieSBkZWZhdWx0LgorICAgKiBAdmFyIGJvb2wKKyAgICovCisgIHB1YmxpYyAkc2V0dGluZ191c2Vfc3lja19pc19wb3NzaWJsZSA9IGZhbHNlOworCisgIC8qKgorICAgKiBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGZvcnNlIFlBTUxMb2FkIHRvIHVzZSBzeWNrX2xvYWQgZnVuY3Rpb24gd2hlbgorICAgKiBwb3NzaWJsZS4gRmFsc2UgYnkgZGVmYXVsdC4KKyAgICogQHZhciBib29sCisgICAqLworICBwdWJsaWMgJHNldHRpbmdfZW1wdHlfaGFzaF9hc19vYmplY3QgPSBmYWxzZTsKKworCisgIC8qKiNAKworICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAqIEB2YXIgbWl4ZWQKKyAgKi8KKyAgcHJpdmF0ZSAkX2R1bXBJbmRlbnQ7CisgIHByaXZhdGUgJF9kdW1wV29yZFdyYXA7CisgIHByaXZhdGUgJF9jb250YWluc0dyb3VwQW5jaG9yID0gZmFsc2U7CisgIHByaXZhdGUgJF9jb250YWluc0dyb3VwQWxpYXMgPSBmYWxzZTsKKyAgcHJpdmF0ZSAkcGF0aDsKKyAgcHJpdmF0ZSAkcmVzdWx0OworICBwcml2YXRlICRMaXRlcmFsUGxhY2VIb2xkZXIgPSAnX19fWUFNTF9MaXRlcmFsX0Jsb2NrX19fJzsKKyAgcHJpdmF0ZSAkU2F2ZWRHcm91cHMgPSBhcnJheSgpOworICBwcml2YXRlICRpbmRlbnQ7CisgIC8qKgorICAgKiBQYXRoIG1vZGlmaWVyIHRoYXQgc2hvdWxkIGJlIGFwcGxpZWQgYWZ0ZXIgYWRkaW5nIGN1cnJlbnQgZWxlbWVudC4KKyAgICogQHZhciBhcnJheQorICAgKi8KKyAgcHJpdmF0ZSAkZGVsYXllZFBhdGggPSBhcnJheSgpOworCisgIC8qKiNAKworICAqIEBhY2Nlc3MgcHVibGljCisgICogQHZhciBtaXhlZAorICAqLworICBwdWJsaWMgJF9ub2RlSWQ7CisKKy8qKgorICogTG9hZCBhIHZhbGlkIFlBTUwgc3RyaW5nIHRvIFNweWMuCisgKiBAcGFyYW0gc3RyaW5nICRpbnB1dAorICogQHJldHVybiBhcnJheQorICovCisgIHB1YmxpYyBmdW5jdGlvbiBsb2FkICgkaW5wdXQpIHsKKyAgICByZXR1cm4gJHRoaXMtPl9sb2FkU3RyaW5nKCRpbnB1dCk7CisgIH0KKworIC8qKgorICogTG9hZCBhIHZhbGlkIFlBTUwgZmlsZSB0byBTcHljLgorICogQHBhcmFtIHN0cmluZyAkZmlsZQorICogQHJldHVybiBhcnJheQorICovCisgIHB1YmxpYyBmdW5jdGlvbiBsb2FkRmlsZSAoJGZpbGUpIHsKKyAgICByZXR1cm4gJHRoaXMtPl9sb2FkKCRmaWxlKTsKKyAgfQorCisgIC8qKgorICAgICAqIExvYWQgWUFNTCBpbnRvIGEgUEhQIGFycmF5IHN0YXRpY2FsbHkKKyAgICAgKgorICAgICAqIFRoZSBsb2FkIG1ldGhvZCwgd2hlbiBzdXBwbGllZCB3aXRoIGEgWUFNTCBzdHJlYW0gKHN0cmluZyBvciBmaWxlKSwKKyAgICAgKiB3aWxsIGRvIGl0cyBiZXN0IHRvIGNvbnZlcnQgWUFNTCBpbiBhIGZpbGUgaW50byBhIFBIUCBhcnJheS4gIFByZXR0eQorICAgICAqIHNpbXBsZS4KKyAgICAgKiAgVXNhZ2U6CisgICAgICogIDxjb2RlPgorICAgICAqICAgJGFycmF5ID0gU3B5Yzo6WUFNTExvYWQoJ2x1Y2t5LnlhbWwnKTsKKyAgICAgKiAgIHByaW50X3IoJGFycmF5KTsKKyAgICAgKiAgPC9jb2RlPgorICAgICAqIEBhY2Nlc3MgcHVibGljCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGlucHV0IFBhdGggb2YgWUFNTCBmaWxlIG9yIHN0cmluZyBjb250YWluaW5nIFlBTUwKKyAgICAgKiBAcGFyYW0gYXJyYXkgc2V0IG9wdGlvbnMKKyAgICAgKi8KKyAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBZQU1MTG9hZCgkaW5wdXQsICRvcHRpb25zID0gW10pIHsKKyAgICAkU3B5YyA9IG5ldyBTcHljOworICAgIGZvcmVhY2ggKCRvcHRpb25zIGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICAgIGlmIChwcm9wZXJ0eV9leGlzdHMoJFNweWMsICRrZXkpKSB7CisgICAgICAgICAgICAkU3B5Yy0+JGtleSA9ICR2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gJFNweWMtPl9sb2FkKCRpbnB1dCk7CisgIH0KKworICAvKioKKyAgICAgKiBMb2FkIGEgc3RyaW5nIG9mIFlBTUwgaW50byBhIFBIUCBhcnJheSBzdGF0aWNhbGx5CisgICAgICoKKyAgICAgKiBUaGUgbG9hZCBtZXRob2QsIHdoZW4gc3VwcGxpZWQgd2l0aCBhIFlBTUwgc3RyaW5nLCB3aWxsIGRvIGl0cyBiZXN0CisgICAgICogdG8gY29udmVydCBZQU1MIGluIGEgc3RyaW5nIGludG8gYSBQSFAgYXJyYXkuICBQcmV0dHkgc2ltcGxlLgorICAgICAqCisgICAgICogTm90ZTogdXNlIHRoaXMgZnVuY3Rpb24gaWYgeW91IGRvbid0IHdhbnQgZmlsZXMgZnJvbSB0aGUgZmlsZSBzeXN0ZW0KKyAgICAgKiBsb2FkZWQgYW5kIHByb2Nlc3NlZCBhcyBZQU1MLiAgVGhpcyBpcyBvZiBpbnRlcmVzdCB0byBwZW9wbGUgY29uY2VybmVkCisgICAgICogYWJvdXQgc2VjdXJpdHkgd2hvc2UgaW5wdXQgaXMgZnJvbSBhIHN0cmluZy4KKyAgICAgKgorICAgICAqICBVc2FnZToKKyAgICAgKiAgPGNvZGU+CisgICAgICogICAkYXJyYXkgPSBTcHljOjpZQU1MTG9hZFN0cmluZygiLS0tXG4wOiBoZWxsbyB3b3JsZFxuIik7CisgICAgICogICBwcmludF9yKCRhcnJheSk7CisgICAgICogIDwvY29kZT4KKyAgICAgKiBAYWNjZXNzIHB1YmxpYworICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpbnB1dCBTdHJpbmcgY29udGFpbmluZyBZQU1MCisgICAgICogQHBhcmFtIGFycmF5IHNldCBvcHRpb25zCisgICAgICovCisgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gWUFNTExvYWRTdHJpbmcoJGlucHV0LCAkb3B0aW9ucyA9IFtdKSB7CisgICAgJFNweWMgPSBuZXcgU3B5YzsKKyAgICBmb3JlYWNoICgkb3B0aW9ucyBhcyAka2V5ID0+ICR2YWx1ZSkgeworICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCRTcHljLCAka2V5KSkgeworICAgICAgICAgICAgJFNweWMtPiRrZXkgPSAkdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICRTcHljLT5fbG9hZFN0cmluZygkaW5wdXQpOworICB9CisKKyAgLyoqCisgICAgICogRHVtcCBZQU1MIGZyb20gUEhQIGFycmF5IHN0YXRpY2FsbHkKKyAgICAgKgorICAgICAqIFRoZSBkdW1wIG1ldGhvZCwgd2hlbiBzdXBwbGllZCB3aXRoIGFuIGFycmF5LCB3aWxsIGRvIGl0cyBiZXN0CisgICAgICogdG8gY29udmVydCB0aGUgYXJyYXkgaW50byBmcmllbmRseSBZQU1MLiAgUHJldHR5IHNpbXBsZS4gIEZlZWwgZnJlZSB0bworICAgICAqIHNhdmUgdGhlIHJldHVybmVkIHN0cmluZyBhcyBub3RoaW5nLnlhbWwgYW5kIHBhc3MgaXQgYXJvdW5kLgorICAgICAqCisgICAgICogT2gsIGFuZCB5b3UgY2FuIGRlY2lkZSBob3cgYmlnIHRoZSBpbmRlbnQgaXMgYW5kIHdoYXQgdGhlIHdvcmR3cmFwCisgICAgICogZm9yIGZvbGRpbmcgaXMuICBQcmV0dHkgY29vbCAtLSBqdXN0IHBhc3MgaW4gJ2ZhbHNlJyBmb3IgZWl0aGVyIGlmCisgICAgICogeW91IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0LgorICAgICAqCisgICAgICogSW5kZW50J3MgZGVmYXVsdCBpcyAyIHNwYWNlcywgd29yZHdyYXAncyBkZWZhdWx0IGlzIDQwIGNoYXJhY3RlcnMuICBBbmQKKyAgICAgKiB5b3UgY2FuIHR1cm4gb2ZmIHdvcmR3cmFwIGJ5IHBhc3NpbmcgaW4gMC4KKyAgICAgKgorICAgICAqIEBhY2Nlc3MgcHVibGljCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gYXJyYXl8XHN0ZENsYXNzICRhcnJheSBQSFAgYXJyYXkKKyAgICAgKiBAcGFyYW0gaW50ICRpbmRlbnQgUGFzcyBpbiBmYWxzZSB0byB1c2UgdGhlIGRlZmF1bHQsIHdoaWNoIGlzIDIKKyAgICAgKiBAcGFyYW0gaW50ICR3b3Jkd3JhcCBQYXNzIGluIDAgZm9yIG5vIHdvcmR3cmFwLCBmYWxzZSBmb3IgZGVmYXVsdCAoNDApCisgICAgICogQHBhcmFtIGJvb2wgJG5vX29wZW5pbmdfZGFzaGVzIERvIG5vdCBzdGFydCBZQU1MIGZpbGUgd2l0aCAiLS0tXG4iCisgICAgICovCisgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gWUFNTER1bXAoJGFycmF5LCAkaW5kZW50ID0gZmFsc2UsICR3b3Jkd3JhcCA9IGZhbHNlLCAkbm9fb3BlbmluZ19kYXNoZXMgPSBmYWxzZSkgeworICAgICRzcHljID0gbmV3IFNweWM7CisgICAgcmV0dXJuICRzcHljLT5kdW1wKCRhcnJheSwgJGluZGVudCwgJHdvcmR3cmFwLCAkbm9fb3BlbmluZ19kYXNoZXMpOworICB9CisKKworICAvKioKKyAgICAgKiBEdW1wIFBIUCBhcnJheSB0byBZQU1MCisgICAgICoKKyAgICAgKiBUaGUgZHVtcCBtZXRob2QsIHdoZW4gc3VwcGxpZWQgd2l0aCBhbiBhcnJheSwgd2lsbCBkbyBpdHMgYmVzdAorICAgICAqIHRvIGNvbnZlcnQgdGhlIGFycmF5IGludG8gZnJpZW5kbHkgWUFNTC4gIFByZXR0eSBzaW1wbGUuICBGZWVsIGZyZWUgdG8KKyAgICAgKiBzYXZlIHRoZSByZXR1cm5lZCBzdHJpbmcgYXMgdGFzdGVmdWwueWFtbCBhbmQgcGFzcyBpdCBhcm91bmQuCisgICAgICoKKyAgICAgKiBPaCwgYW5kIHlvdSBjYW4gZGVjaWRlIGhvdyBiaWcgdGhlIGluZGVudCBpcyBhbmQgd2hhdCB0aGUgd29yZHdyYXAKKyAgICAgKiBmb3IgZm9sZGluZyBpcy4gIFByZXR0eSBjb29sIC0tIGp1c3QgcGFzcyBpbiAnZmFsc2UnIGZvciBlaXRoZXIgaWYKKyAgICAgKiB5b3Ugd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCisgICAgICoKKyAgICAgKiBJbmRlbnQncyBkZWZhdWx0IGlzIDIgc3BhY2VzLCB3b3Jkd3JhcCdzIGRlZmF1bHQgaXMgNDAgY2hhcmFjdGVycy4gIEFuZAorICAgICAqIHlvdSBjYW4gdHVybiBvZmYgd29yZHdyYXAgYnkgcGFzc2luZyBpbiAwLgorICAgICAqCisgICAgICogQGFjY2VzcyBwdWJsaWMKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqIEBwYXJhbSBhcnJheSAkYXJyYXkgUEhQIGFycmF5CisgICAgICogQHBhcmFtIGludCAkaW5kZW50IFBhc3MgaW4gZmFsc2UgdG8gdXNlIHRoZSBkZWZhdWx0LCB3aGljaCBpcyAyCisgICAgICogQHBhcmFtIGludCAkd29yZHdyYXAgUGFzcyBpbiAwIGZvciBubyB3b3Jkd3JhcCwgZmFsc2UgZm9yIGRlZmF1bHQgKDQwKQorICAgICAqLworICBwdWJsaWMgZnVuY3Rpb24gZHVtcCgkYXJyYXksJGluZGVudCA9IGZhbHNlLCR3b3Jkd3JhcCA9IGZhbHNlLCAkbm9fb3BlbmluZ19kYXNoZXMgPSBmYWxzZSkgeworICAgIC8vIER1bXBzIHRvIHNvbWUgdmVyeSBjbGVhbiBZQU1MLiAgV2UnbGwgaGF2ZSB0byBhZGQgc29tZSBtb3JlIGZlYXR1cmVzCisgICAgLy8gYW5kIG9wdGlvbnMgc29vbi4gIEFuZCBiZXR0ZXIgc3VwcG9ydCBmb3IgZm9sZGluZy4KKworICAgIC8vIE5ldyBmZWF0dXJlcyBhbmQgb3B0aW9ucy4KKyAgICBpZiAoJGluZGVudCA9PT0gZmFsc2Ugb3IgIWlzX251bWVyaWMoJGluZGVudCkpIHsKKyAgICAgICR0aGlzLT5fZHVtcEluZGVudCA9IDI7CisgICAgfSBlbHNlIHsKKyAgICAgICR0aGlzLT5fZHVtcEluZGVudCA9ICRpbmRlbnQ7CisgICAgfQorCisgICAgaWYgKCR3b3Jkd3JhcCA9PT0gZmFsc2Ugb3IgIWlzX251bWVyaWMoJHdvcmR3cmFwKSkgeworICAgICAgJHRoaXMtPl9kdW1wV29yZFdyYXAgPSA0MDsKKyAgICB9IGVsc2UgeworICAgICAgJHRoaXMtPl9kdW1wV29yZFdyYXAgPSAkd29yZHdyYXA7CisgICAgfQorCisgICAgLy8gTmV3IFlBTUwgZG9jdW1lbnQKKyAgICAkc3RyaW5nID0gIiI7CisgICAgaWYgKCEkbm9fb3BlbmluZ19kYXNoZXMpICRzdHJpbmcgPSAiLS0tXG4iOworCisgICAgLy8gU3RhcnQgYXQgdGhlIGJhc2Ugb2YgdGhlIGFycmF5IGFuZCBtb3ZlIHRocm91Z2ggaXQuCisgICAgaWYgKCRhcnJheSkgeworICAgICAgJGFycmF5ID0gKGFycmF5KSRhcnJheTsKKyAgICAgICRwcmV2aW91c19rZXkgPSAtMTsKKyAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgeworICAgICAgICBpZiAoIWlzc2V0KCRmaXJzdF9rZXkpKSAkZmlyc3Rfa2V5ID0gJGtleTsKKyAgICAgICAgJHN0cmluZyAuPSAkdGhpcy0+X3lhbWxpemUoJGtleSwkdmFsdWUsMCwkcHJldmlvdXNfa2V5LCAkZmlyc3Rfa2V5LCAkYXJyYXkpOworICAgICAgICAkcHJldmlvdXNfa2V5ID0gJGtleTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICRzdHJpbmc7CisgIH0KKworICAvKioKKyAgICAgKiBBdHRlbXB0cyB0byBjb252ZXJ0IGEga2V5IC8gdmFsdWUgYXJyYXkgaXRlbSB0byBZQU1MCisgICAgICogQGFjY2VzcyBwcml2YXRlCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gJGtleSBUaGUgbmFtZSBvZiB0aGUga2V5CisgICAgICogQHBhcmFtICR2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGl0ZW0KKyAgICAgKiBAcGFyYW0gJGluZGVudCBUaGUgaW5kZW50IG9mIHRoZSBjdXJyZW50IG5vZGUKKyAgICAgKi8KKyAgcHJpdmF0ZSBmdW5jdGlvbiBfeWFtbGl6ZSgka2V5LCR2YWx1ZSwkaW5kZW50LCAkcHJldmlvdXNfa2V5ID0gLTEsICRmaXJzdF9rZXkgPSAwLCAkc291cmNlX2FycmF5ID0gbnVsbCkgeworICAgIGlmKGlzX29iamVjdCgkdmFsdWUpKSAkdmFsdWUgPSAoYXJyYXkpJHZhbHVlOworICAgIGlmIChpc19hcnJheSgkdmFsdWUpKSB7CisgICAgICBpZiAoZW1wdHkgKCR2YWx1ZSkpCisgICAgICAgIHJldHVybiAkdGhpcy0+X2R1bXBOb2RlKCRrZXksIGFycmF5KCksICRpbmRlbnQsICRwcmV2aW91c19rZXksICRmaXJzdF9rZXksICRzb3VyY2VfYXJyYXkpOworICAgICAgLy8gSXQgaGFzIGNoaWxkcmVuLiAgV2hhdCB0byBkbz8KKyAgICAgIC8vIE1ha2UgaXQgdGhlIHJpZ2h0IGtpbmQgb2YgaXRlbQorICAgICAgJHN0cmluZyA9ICR0aGlzLT5fZHVtcE5vZGUoJGtleSwgc2VsZjo6UkVNUFRZLCAkaW5kZW50LCAkcHJldmlvdXNfa2V5LCAkZmlyc3Rfa2V5LCAkc291cmNlX2FycmF5KTsKKyAgICAgIC8vIEFkZCB0aGUgaW5kZW50CisgICAgICAkaW5kZW50ICs9ICR0aGlzLT5fZHVtcEluZGVudDsKKyAgICAgIC8vIFlhbWxpemUgdGhlIGFycmF5CisgICAgICAkc3RyaW5nIC49ICR0aGlzLT5feWFtbGl6ZUFycmF5KCR2YWx1ZSwkaW5kZW50KTsKKyAgICB9IGVsc2VpZiAoIWlzX2FycmF5KCR2YWx1ZSkpIHsKKyAgICAgIC8vIEl0IGRvZXNuJ3QgaGF2ZSBjaGlsZHJlbi4gIFlpcC4KKyAgICAgICRzdHJpbmcgPSAkdGhpcy0+X2R1bXBOb2RlKCRrZXksICR2YWx1ZSwgJGluZGVudCwgJHByZXZpb3VzX2tleSwgJGZpcnN0X2tleSwgJHNvdXJjZV9hcnJheSk7CisgICAgfQorICAgIHJldHVybiAkc3RyaW5nOworICB9CisKKyAgLyoqCisgICAgICogQXR0ZW1wdHMgdG8gY29udmVydCBhbiBhcnJheSB0byBZQU1MCisgICAgICogQGFjY2VzcyBwcml2YXRlCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gJGFycmF5IFRoZSBhcnJheSB5b3Ugd2FudCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtICRpbmRlbnQgVGhlIGluZGVudCBvZiB0aGUgY3VycmVudCBsZXZlbAorICAgICAqLworICBwcml2YXRlIGZ1bmN0aW9uIF95YW1saXplQXJyYXkoJGFycmF5LCRpbmRlbnQpIHsKKyAgICBpZiAoaXNfYXJyYXkoJGFycmF5KSkgeworICAgICAgJHN0cmluZyA9ICcnOworICAgICAgJHByZXZpb3VzX2tleSA9IC0xOworICAgICAgZm9yZWFjaCAoJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICAgIGlmICghaXNzZXQoJGZpcnN0X2tleSkpICRmaXJzdF9rZXkgPSAka2V5OworICAgICAgICAkc3RyaW5nIC49ICR0aGlzLT5feWFtbGl6ZSgka2V5LCAkdmFsdWUsICRpbmRlbnQsICRwcmV2aW91c19rZXksICRmaXJzdF9rZXksICRhcnJheSk7CisgICAgICAgICRwcmV2aW91c19rZXkgPSAka2V5OworICAgICAgfQorICAgICAgcmV0dXJuICRzdHJpbmc7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKworICAvKioKKyAgICAgKiBSZXR1cm5zIFlBTUwgZnJvbSBhIGtleSBhbmQgYSB2YWx1ZQorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtICRrZXkgVGhlIG5hbWUgb2YgdGhlIGtleQorICAgICAqIEBwYXJhbSAkdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBpdGVtCisgICAgICogQHBhcmFtICRpbmRlbnQgVGhlIGluZGVudCBvZiB0aGUgY3VycmVudCBub2RlCisgICAgICovCisgIHByaXZhdGUgZnVuY3Rpb24gX2R1bXBOb2RlKCRrZXksICR2YWx1ZSwgJGluZGVudCwgJHByZXZpb3VzX2tleSA9IC0xLCAkZmlyc3Rfa2V5ID0gMCwgJHNvdXJjZV9hcnJheSA9IG51bGwpIHsKKyAgICAvLyBkbyBzb21lIGZvbGRpbmcgaGVyZSwgZm9yIGJsb2NrcworICAgIGlmIChpc19zdHJpbmcgKCR2YWx1ZSkgJiYgKChzdHJwb3MoJHZhbHVlLCJcbiIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCI6ICIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCItICIpICE9PSBmYWxzZSB8fAorICAgICAgc3RycG9zKCR2YWx1ZSwiKiIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCIjIikgIT09IGZhbHNlIHx8IHN0cnBvcygkdmFsdWUsIjwiKSAhPT0gZmFsc2UgfHwgc3RycG9zKCR2YWx1ZSwiPiIpICE9PSBmYWxzZSB8fCBzdHJwb3MgKCR2YWx1ZSwgJyUnKSAhPT0gZmFsc2UgfHwgc3RycG9zICgkdmFsdWUsICcgICcpICE9PSBmYWxzZSB8fAorICAgICAgc3RycG9zKCR2YWx1ZSwiWyIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCJdIikgIT09IGZhbHNlIHx8IHN0cnBvcygkdmFsdWUsInsiKSAhPT0gZmFsc2UgfHwgc3RycG9zKCR2YWx1ZSwifSIpICE9PSBmYWxzZSkgfHwgc3RycG9zKCR2YWx1ZSwiJiIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCAiJyIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCAiISIpID09PSAwIHx8CisgICAgICBzdWJzdHIgKCR2YWx1ZSwgLTEsIDEpID09ICc6JykKKyAgICApIHsKKyAgICAgICR2YWx1ZSA9ICR0aGlzLT5fZG9MaXRlcmFsQmxvY2soJHZhbHVlLCRpbmRlbnQpOworICAgIH0gZWxzZSB7CisgICAgICAkdmFsdWUgID0gJHRoaXMtPl9kb0ZvbGRpbmcoJHZhbHVlLCRpbmRlbnQpOworICAgIH0KKworICAgIGlmICgkdmFsdWUgPT09IGFycmF5KCkpICR2YWx1ZSA9ICdbIF0nOworICAgIGlmICgkdmFsdWUgPT09ICIiKSAkdmFsdWUgPSAnIiInOworICAgIGlmIChzZWxmOjppc1RyYW5zbGF0aW9uV29yZCgkdmFsdWUpKSB7CisgICAgICAkdmFsdWUgPSAkdGhpcy0+X2RvTGl0ZXJhbEJsb2NrKCR2YWx1ZSwgJGluZGVudCk7CisgICAgfQorICAgIGlmICh0cmltICgkdmFsdWUpICE9ICR2YWx1ZSkKKyAgICAgICAkdmFsdWUgPSAkdGhpcy0+X2RvTGl0ZXJhbEJsb2NrKCR2YWx1ZSwkaW5kZW50KTsKKworICAgIGlmIChpc19ib29sKCR2YWx1ZSkpIHsKKyAgICAgICAkdmFsdWUgPSAkdmFsdWUgPyAidHJ1ZSIgOiAiZmFsc2UiOworICAgIH0KKworICAgIGlmICgkdmFsdWUgPT09IG51bGwpICR2YWx1ZSA9ICdudWxsJzsKKyAgICBpZiAoJHZhbHVlID09PSAiJyIgLiBzZWxmOjpSRU1QVFkgLiAiJyIpICR2YWx1ZSA9IG51bGw7CisKKyAgICAkc3BhY2VzID0gc3RyX3JlcGVhdCgnICcsJGluZGVudCk7CisKKyAgICAvL2lmIChpc19pbnQoJGtleSkgJiYgJGtleSAtIDEgPT0gJHByZXZpb3VzX2tleSAmJiAkZmlyc3Rfa2V5PT09MCkgeworICAgIGlmIChpc19hcnJheSAoJHNvdXJjZV9hcnJheSkgJiYgYXJyYXlfa2V5cygkc291cmNlX2FycmF5KSA9PT0gcmFuZ2UoMCwgY291bnQoJHNvdXJjZV9hcnJheSkgLSAxKSkgeworICAgICAgLy8gSXQncyBhIHNlcXVlbmNlCisgICAgICAkc3RyaW5nID0gJHNwYWNlcy4nLSAnLiR2YWx1ZS4iXG4iOworICAgIH0gZWxzZSB7CisgICAgICAvLyBpZiAoJGZpcnN0X2tleT09PTApICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdLZXlzIGFyZSBhbGwgc2NyZXd5LiAgVGhlIGZpcnN0IG9uZSB3YXMgemVybywgbm93IGl0XCdzICInLiAka2V5IC4nIicpOworICAgICAgLy8gSXQncyBtYXBwZWQKKyAgICAgIGlmIChzdHJwb3MoJGtleSwgIjoiKSAhPT0gZmFsc2UgfHwgc3RycG9zKCRrZXksICIjIikgIT09IGZhbHNlKSB7ICRrZXkgPSAnIicgLiAka2V5IC4gJyInOyB9CisgICAgICAkc3RyaW5nID0gcnRyaW0gKCRzcGFjZXMuJGtleS4nOiAnLiR2YWx1ZSkuIlxuIjsKKyAgICB9CisgICAgcmV0dXJuICRzdHJpbmc7CisgIH0KKworICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbGl0ZXJhbCBibG9jayBmb3IgZHVtcGluZworICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtICR2YWx1ZQorICAgICAqIEBwYXJhbSAkaW5kZW50IGludCBUaGUgdmFsdWUgb2YgdGhlIGluZGVudAorICAgICAqLworICBwcml2YXRlIGZ1bmN0aW9uIF9kb0xpdGVyYWxCbG9jaygkdmFsdWUsJGluZGVudCkgeworICAgIGlmICgkdmFsdWUgPT09ICJcbiIpIHJldHVybiAnXG4nOworICAgIGlmIChzdHJwb3MoJHZhbHVlLCAiXG4iKSA9PT0gZmFsc2UgJiYgc3RycG9zKCR2YWx1ZSwgIiciKSA9PT0gZmFsc2UpIHsKKyAgICAgIHJldHVybiBzcHJpbnRmICgiJyVzJyIsICR2YWx1ZSk7CisgICAgfQorICAgIGlmIChzdHJwb3MoJHZhbHVlLCAiXG4iKSA9PT0gZmFsc2UgJiYgc3RycG9zKCR2YWx1ZSwgJyInKSA9PT0gZmFsc2UpIHsKKyAgICAgIHJldHVybiBzcHJpbnRmICgnIiVzIicsICR2YWx1ZSk7CisgICAgfQorICAgICRleHBsb2RlZCA9IGV4cGxvZGUoIlxuIiwkdmFsdWUpOworICAgICRuZXdWYWx1ZSA9ICd8JzsKKyAgICBpZiAoaXNzZXQoJGV4cGxvZGVkWzBdKSAmJiAoJGV4cGxvZGVkWzBdID09ICJ8IiB8fCAkZXhwbG9kZWRbMF0gPT0gInwtIiB8fCAkZXhwbG9kZWRbMF0gPT0gIj4iKSkgeworICAgICAgICAkbmV3VmFsdWUgPSAkZXhwbG9kZWRbMF07CisgICAgICAgIHVuc2V0KCRleHBsb2RlZFswXSk7CisgICAgfQorICAgICRpbmRlbnQgKz0gJHRoaXMtPl9kdW1wSW5kZW50OworICAgICRzcGFjZXMgICA9IHN0cl9yZXBlYXQoJyAnLCRpbmRlbnQpOworICAgIGZvcmVhY2ggKCRleHBsb2RlZCBhcyAkbGluZSkgeworICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKKyAgICAgIGlmIChzdHJwb3MoJGxpbmUsICciJykgPT09IDAgJiYgc3RycnBvcygkbGluZSwgJyInKSA9PSAoc3RybGVuKCRsaW5lKS0xKSB8fCBzdHJwb3MoJGxpbmUsICInIikgPT09IDAgJiYgc3RycnBvcygkbGluZSwgIiciKSA9PSAoc3RybGVuKCRsaW5lKS0xKSkgeworICAgICAgICAkbGluZSA9IHN1YnN0cigkbGluZSwgMSwgLTEpOworICAgICAgfQorICAgICAgJG5ld1ZhbHVlIC49ICJcbiIgLiAkc3BhY2VzIC4gKCRsaW5lKTsKKyAgICB9CisgICAgcmV0dXJuICRuZXdWYWx1ZTsKKyAgfQorCisgIC8qKgorICAgICAqIEZvbGRzIGEgc3RyaW5nIG9mIHRleHQsIGlmIG5lY2Vzc2FyeQorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtICR2YWx1ZSBUaGUgc3RyaW5nIHlvdSB3aXNoIHRvIGZvbGQKKyAgICAgKi8KKyAgcHJpdmF0ZSBmdW5jdGlvbiBfZG9Gb2xkaW5nKCR2YWx1ZSwkaW5kZW50KSB7CisgICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgd29yZHdyYXAgaXMgc2V0IHRvIDAKKworICAgIGlmICgkdGhpcy0+X2R1bXBXb3JkV3JhcCAhPT0gMCAmJiBpc19zdHJpbmcgKCR2YWx1ZSkgJiYgc3RybGVuKCR2YWx1ZSkgPiAkdGhpcy0+X2R1bXBXb3JkV3JhcCkgeworICAgICAgJGluZGVudCArPSAkdGhpcy0+X2R1bXBJbmRlbnQ7CisgICAgICAkaW5kZW50ID0gc3RyX3JlcGVhdCgnICcsJGluZGVudCk7CisgICAgICAkd3JhcHBlZCA9IHdvcmR3cmFwKCR2YWx1ZSwkdGhpcy0+X2R1bXBXb3JkV3JhcCwiXG4kaW5kZW50Iik7CisgICAgICAkdmFsdWUgICA9ICI+XG4iLiRpbmRlbnQuJHdyYXBwZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgIGlmICgkdGhpcy0+c2V0dGluZ19kdW1wX2ZvcmNlX3F1b3RlcyAmJiBpc19zdHJpbmcgKCR2YWx1ZSkgJiYgJHZhbHVlICE9PSBzZWxmOjpSRU1QVFkpCisgICAgICAgICR2YWx1ZSA9ICciJyAuICR2YWx1ZSAuICciJzsKKyAgICAgIGlmIChpc19udW1lcmljKCR2YWx1ZSkgJiYgaXNfc3RyaW5nKCR2YWx1ZSkpCisgICAgICAgICR2YWx1ZSA9ICciJyAuICR2YWx1ZSAuICciJzsKKyAgICB9CisKKworICAgIHJldHVybiAkdmFsdWU7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIGlzVHJ1ZVdvcmQoJHZhbHVlKSB7CisgICAgJHdvcmRzID0gc2VsZjo6Z2V0VHJhbnNsYXRpb25zKGFycmF5KCd0cnVlJywgJ29uJywgJ3llcycsICd5JykpOworICAgIHJldHVybiBpbl9hcnJheSgkdmFsdWUsICR3b3JkcywgdHJ1ZSk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIGlzRmFsc2VXb3JkKCR2YWx1ZSkgeworICAgICR3b3JkcyA9IHNlbGY6OmdldFRyYW5zbGF0aW9ucyhhcnJheSgnZmFsc2UnLCAnb2ZmJywgJ25vJywgJ24nKSk7CisgICAgcmV0dXJuIGluX2FycmF5KCR2YWx1ZSwgJHdvcmRzLCB0cnVlKTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gaXNOdWxsV29yZCgkdmFsdWUpIHsKKyAgICAkd29yZHMgPSBzZWxmOjpnZXRUcmFuc2xhdGlvbnMoYXJyYXkoJ251bGwnLCAnficpKTsKKyAgICByZXR1cm4gaW5fYXJyYXkoJHZhbHVlLCAkd29yZHMsIHRydWUpOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBpc1RyYW5zbGF0aW9uV29yZCgkdmFsdWUpIHsKKyAgICByZXR1cm4gKAorICAgICAgc2VsZjo6aXNUcnVlV29yZCgkdmFsdWUpICB8fAorICAgICAgc2VsZjo6aXNGYWxzZVdvcmQoJHZhbHVlKSB8fAorICAgICAgc2VsZjo6aXNOdWxsV29yZCgkdmFsdWUpCisgICAgKTsKKyAgfQorCisgIC8qKgorICAgICAqIENvZXJjZSBhIHN0cmluZyBpbnRvIGEgbmF0aXZlIHR5cGUKKyAgICAgKiBSZWZlcmVuY2U6IGh0dHA6Ly95YW1sLm9yZy90eXBlL2Jvb2wuaHRtbAorICAgICAqIFRPRE86IFVzZSBvbmx5IHdvcmRzIGZyb20gdGhlIFlBTUwgc3BlYy4KKyAgICAgKiBAYWNjZXNzIHByaXZhdGUKKyAgICAgKiBAcGFyYW0gJHZhbHVlIFRoZSB2YWx1ZSB0byBjb2VyY2UKKyAgICAgKi8KKyAgcHJpdmF0ZSBmdW5jdGlvbiBjb2VyY2VWYWx1ZSgmJHZhbHVlKSB7CisgICAgaWYgKHNlbGY6OmlzVHJ1ZVdvcmQoJHZhbHVlKSkgeworICAgICAgJHZhbHVlID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKHNlbGY6OmlzRmFsc2VXb3JkKCR2YWx1ZSkpIHsKKyAgICAgICR2YWx1ZSA9IGZhbHNlOworICAgIH0gZWxzZSBpZiAoc2VsZjo6aXNOdWxsV29yZCgkdmFsdWUpKSB7CisgICAgICAkdmFsdWUgPSBudWxsOworICAgIH0KKyAgfQorCisgIC8qKgorICAgICAqIEdpdmVuIGEgc2V0IG9mIHdvcmRzLCBwZXJmb3JtIHRoZSBhcHByb3ByaWF0ZSB0cmFuc2xhdGlvbnMgb24gdGhlbSB0bworICAgICAqIG1hdGNoIHRoZSBZQU1MIDEuMSBzcGVjaWZpY2F0aW9uIGZvciB0eXBlIGNvZXJjaW5nLgorICAgICAqIEBwYXJhbSAkd29yZHMgVGhlIHdvcmRzIHRvIHRyYW5zbGF0ZQorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqLworICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBnZXRUcmFuc2xhdGlvbnMoYXJyYXkgJHdvcmRzKSB7CisgICAgJHJlc3VsdCA9IGFycmF5KCk7CisgICAgZm9yZWFjaCAoJHdvcmRzIGFzICRpKSB7CisgICAgICAkcmVzdWx0ID0gYXJyYXlfbWVyZ2UoJHJlc3VsdCwgYXJyYXkodWNmaXJzdCgkaSksIHN0cnRvdXBwZXIoJGkpLCBzdHJ0b2xvd2VyKCRpKSkpOworICAgIH0KKyAgICByZXR1cm4gJHJlc3VsdDsKKyAgfQorCisvLyBMT0FESU5HIEZVTkNUSU9OUworCisgIHByaXZhdGUgZnVuY3Rpb24gX2xvYWQoJGlucHV0KSB7CisgICAgJFNvdXJjZSA9ICR0aGlzLT5sb2FkRnJvbVNvdXJjZSgkaW5wdXQpOworICAgIHJldHVybiAkdGhpcy0+bG9hZFdpdGhTb3VyY2UoJFNvdXJjZSk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIF9sb2FkU3RyaW5nKCRpbnB1dCkgeworICAgICRTb3VyY2UgPSAkdGhpcy0+bG9hZEZyb21TdHJpbmcoJGlucHV0KTsKKyAgICByZXR1cm4gJHRoaXMtPmxvYWRXaXRoU291cmNlKCRTb3VyY2UpOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBsb2FkV2l0aFNvdXJjZSgkU291cmNlKSB7CisgICAgaWYgKGVtcHR5ICgkU291cmNlKSkgcmV0dXJuIGFycmF5KCk7CisgICAgaWYgKCR0aGlzLT5zZXR0aW5nX3VzZV9zeWNrX2lzX3Bvc3NpYmxlICYmIGZ1bmN0aW9uX2V4aXN0cyAoJ3N5Y2tfbG9hZCcpKSB7CisgICAgICAkYXJyYXkgPSBzeWNrX2xvYWQgKGltcGxvZGUgKCJcbiIsICRTb3VyY2UpKTsKKyAgICAgIHJldHVybiBpc19hcnJheSgkYXJyYXkpID8gJGFycmF5IDogYXJyYXkoKTsKKyAgICB9CisKKyAgICAkdGhpcy0+cGF0aCA9IGFycmF5KCk7CisgICAgJHRoaXMtPnJlc3VsdCA9IGFycmF5KCk7CisKKyAgICAkY250ID0gY291bnQoJFNvdXJjZSk7CisgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNudDsgJGkrKykgeworICAgICAgJGxpbmUgPSAkU291cmNlWyRpXTsKKworICAgICAgJHRoaXMtPmluZGVudCA9IHN0cmxlbigkbGluZSkgLSBzdHJsZW4obHRyaW0oJGxpbmUpKTsKKyAgICAgICR0ZW1wUGF0aCA9ICR0aGlzLT5nZXRQYXJlbnRQYXRoQnlJbmRlbnQoJHRoaXMtPmluZGVudCk7CisgICAgICAkbGluZSA9IHNlbGY6OnN0cmlwSW5kZW50KCRsaW5lLCAkdGhpcy0+aW5kZW50KTsKKyAgICAgIGlmIChzZWxmOjppc0NvbW1lbnQoJGxpbmUpKSBjb250aW51ZTsKKyAgICAgIGlmIChzZWxmOjppc0VtcHR5KCRsaW5lKSkgY29udGludWU7CisgICAgICAkdGhpcy0+cGF0aCA9ICR0ZW1wUGF0aDsKKworICAgICAgJGxpdGVyYWxCbG9ja1N0eWxlID0gc2VsZjo6c3RhcnRzTGl0ZXJhbEJsb2NrKCRsaW5lKTsKKyAgICAgIGlmICgkbGl0ZXJhbEJsb2NrU3R5bGUpIHsKKyAgICAgICAgJGxpbmUgPSBydHJpbSAoJGxpbmUsICRsaXRlcmFsQmxvY2tTdHlsZSAuICIgXG4iKTsKKyAgICAgICAgJGxpdGVyYWxCbG9jayA9ICcnOworICAgICAgICAkbGluZSAuPSAnICcuJHRoaXMtPkxpdGVyYWxQbGFjZUhvbGRlcjsKKyAgICAgICAgJGxpdGVyYWxfYmxvY2tfaW5kZW50ID0gc3RybGVuKCRTb3VyY2VbJGkrMV0pIC0gc3RybGVuKGx0cmltKCRTb3VyY2VbJGkrMV0pKTsKKyAgICAgICAgd2hpbGUgKCsrJGkgPCAkY250ICYmICR0aGlzLT5saXRlcmFsQmxvY2tDb250aW51ZXMoJFNvdXJjZVskaV0sICR0aGlzLT5pbmRlbnQpKSB7CisgICAgICAgICAgJGxpdGVyYWxCbG9jayA9ICR0aGlzLT5hZGRMaXRlcmFsTGluZSgkbGl0ZXJhbEJsb2NrLCAkU291cmNlWyRpXSwgJGxpdGVyYWxCbG9ja1N0eWxlLCAkbGl0ZXJhbF9ibG9ja19pbmRlbnQpOworICAgICAgICB9CisgICAgICAgICRpLS07CisgICAgICB9CisKKyAgICAgIC8vIFN0cmlwIG91dCBjb21tZW50cworICAgICAgaWYgKHN0cnBvcyAoJGxpbmUsICcjJykpIHsKKyAgICAgICAgICAkbGluZSA9IHByZWdfcmVwbGFjZSgnL1xzKiMoW14iXCddKykkLycsJycsJGxpbmUpOworICAgICAgfQorCisgICAgICB3aGlsZSAoKyskaSA8ICRjbnQgJiYgc2VsZjo6Z3JlZWRpbHlOZWVkTmV4dExpbmUoJGxpbmUpKSB7CisgICAgICAgICRsaW5lID0gcnRyaW0gKCRsaW5lLCAiIFxuXHRcciIpIC4gJyAnIC4gbHRyaW0gKCRTb3VyY2VbJGldLCAiIFx0Iik7CisgICAgICB9CisgICAgICAkaS0tOworCisgICAgICAkbGluZUFycmF5ID0gJHRoaXMtPl9wYXJzZUxpbmUoJGxpbmUpOworCisgICAgICBpZiAoJGxpdGVyYWxCbG9ja1N0eWxlKQorICAgICAgICAkbGluZUFycmF5ID0gJHRoaXMtPnJldmVydExpdGVyYWxQbGFjZUhvbGRlciAoJGxpbmVBcnJheSwgJGxpdGVyYWxCbG9jayk7CisKKyAgICAgICR0aGlzLT5hZGRBcnJheSgkbGluZUFycmF5LCAkdGhpcy0+aW5kZW50KTsKKworICAgICAgZm9yZWFjaCAoJHRoaXMtPmRlbGF5ZWRQYXRoIGFzICRpbmRlbnQgPT4gJGRlbGF5ZWRQYXRoKQorICAgICAgICAkdGhpcy0+cGF0aFskaW5kZW50XSA9ICRkZWxheWVkUGF0aDsKKworICAgICAgJHRoaXMtPmRlbGF5ZWRQYXRoID0gYXJyYXkoKTsKKworICAgIH0KKyAgICByZXR1cm4gJHRoaXMtPnJlc3VsdDsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gbG9hZEZyb21Tb3VyY2UgKCRpbnB1dCkgeworICAgIGlmICghZW1wdHkoJGlucHV0KSAmJiBzdHJwb3MoJGlucHV0LCAiXG4iKSA9PT0gZmFsc2UgJiYgZmlsZV9leGlzdHMoJGlucHV0KSkKKyAgICAgICRpbnB1dCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRpbnB1dCk7CisKKyAgICByZXR1cm4gJHRoaXMtPmxvYWRGcm9tU3RyaW5nKCRpbnB1dCk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIGxvYWRGcm9tU3RyaW5nICgkaW5wdXQpIHsKKyAgICAkbGluZXMgPSBleHBsb2RlKCJcbiIsJGlucHV0KTsKKyAgICBmb3JlYWNoICgkbGluZXMgYXMgJGsgPT4gJF8pIHsKKyAgICAgICRsaW5lc1ska10gPSBydHJpbSAoJF8sICJcciIpOworICAgIH0KKyAgICByZXR1cm4gJGxpbmVzOworICB9CisKKyAgLyoqCisgICAgICogUGFyc2VzIFlBTUwgY29kZSBhbmQgcmV0dXJucyBhbiBhcnJheSBmb3IgYSBub2RlCisgICAgICogQGFjY2VzcyBwcml2YXRlCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGxpbmUgQSBsaW5lIGZyb20gdGhlIFlBTUwgZmlsZQorICAgICAqLworICBwcml2YXRlIGZ1bmN0aW9uIF9wYXJzZUxpbmUoJGxpbmUpIHsKKyAgICBpZiAoISRsaW5lKSByZXR1cm4gYXJyYXkoKTsKKyAgICAkbGluZSA9IHRyaW0oJGxpbmUpOworICAgIGlmICghJGxpbmUpIHJldHVybiBhcnJheSgpOworCisgICAgJGFycmF5ID0gYXJyYXkoKTsKKworICAgICRncm91cCA9ICR0aGlzLT5ub2RlQ29udGFpbnNHcm91cCgkbGluZSk7CisgICAgaWYgKCRncm91cCkgeworICAgICAgJHRoaXMtPmFkZEdyb3VwKCRsaW5lLCAkZ3JvdXApOworICAgICAgJGxpbmUgPSAkdGhpcy0+c3RyaXBHcm91cCAoJGxpbmUsICRncm91cCk7CisgICAgfQorCisgICAgaWYgKCR0aGlzLT5zdGFydHNNYXBwZWRTZXF1ZW5jZSgkbGluZSkpIHsKKyAgICAgIHJldHVybiAkdGhpcy0+cmV0dXJuTWFwcGVkU2VxdWVuY2UoJGxpbmUpOworICAgIH0KKworICAgIGlmICgkdGhpcy0+c3RhcnRzTWFwcGVkVmFsdWUoJGxpbmUpKSB7CisgICAgICByZXR1cm4gJHRoaXMtPnJldHVybk1hcHBlZFZhbHVlKCRsaW5lKTsKKyAgICB9CisKKyAgICBpZiAoJHRoaXMtPmlzQXJyYXlFbGVtZW50KCRsaW5lKSkKKyAgICAgIHJldHVybiAkdGhpcy0+cmV0dXJuQXJyYXlFbGVtZW50KCRsaW5lKTsKKworICAgIGlmICgkdGhpcy0+aXNQbGFpbkFycmF5KCRsaW5lKSkKKyAgICAgcmV0dXJuICR0aGlzLT5yZXR1cm5QbGFpbkFycmF5KCRsaW5lKTsKKworICAgIHJldHVybiAkdGhpcy0+cmV0dXJuS2V5VmFsdWVQYWlyKCRsaW5lKTsKKworICB9CisKKyAgLyoqCisgICAgICogRmluZHMgdGhlIHR5cGUgb2YgdGhlIHBhc3NlZCB2YWx1ZSwgcmV0dXJucyB0aGUgdmFsdWUgYXMgdGhlIG5ldyB0eXBlLgorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHZhbHVlCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICBwcml2YXRlIGZ1bmN0aW9uIF90b1R5cGUoJHZhbHVlKSB7CisgICAgaWYgKCR2YWx1ZSA9PT0gJycpIHJldHVybiAiIjsKKworICAgIGlmICgkdGhpcy0+c2V0dGluZ19lbXB0eV9oYXNoX2FzX29iamVjdCAmJiAkdmFsdWUgPT09ICd7fScpIHsKKyAgICAgIHJldHVybiBuZXcgc3RkQ2xhc3MoKTsKKyAgICB9CisKKyAgICAkZmlyc3RfY2hhcmFjdGVyID0gJHZhbHVlWzBdOworICAgICRsYXN0X2NoYXJhY3RlciA9IHN1YnN0cigkdmFsdWUsIC0xLCAxKTsKKworICAgICRpc19xdW90ZWQgPSBmYWxzZTsKKyAgICBkbyB7CisgICAgICBpZiAoISR2YWx1ZSkgYnJlYWs7CisgICAgICBpZiAoJGZpcnN0X2NoYXJhY3RlciAhPSAnIicgJiYgJGZpcnN0X2NoYXJhY3RlciAhPSAiJyIpIGJyZWFrOworICAgICAgaWYgKCRsYXN0X2NoYXJhY3RlciAhPSAnIicgJiYgJGxhc3RfY2hhcmFjdGVyICE9ICInIikgYnJlYWs7CisgICAgICAkaXNfcXVvdGVkID0gdHJ1ZTsKKyAgICB9IHdoaWxlICgwKTsKKworICAgIGlmICgkaXNfcXVvdGVkKSB7CisgICAgICAkdmFsdWUgPSBzdHJfcmVwbGFjZSgnXG4nLCAiXG4iLCAkdmFsdWUpOworICAgICAgaWYgKCRmaXJzdF9jaGFyYWN0ZXIgPT0gIiciKQorICAgICAgICByZXR1cm4gc3RydHIoc3Vic3RyICgkdmFsdWUsIDEsIC0xKSwgYXJyYXkgKCdcJ1wnJyA9PiAnXCcnLCAnXFxcJyc9PiAnXCcnKSk7CisgICAgICByZXR1cm4gc3RydHIoc3Vic3RyICgkdmFsdWUsIDEsIC0xKSwgYXJyYXkgKCdcXCInID0+ICciJywgJ1xcXCcnPT4gJ1wnJykpOworICAgIH0KKworICAgIGlmIChzdHJwb3MoJHZhbHVlLCAnICMnKSAhPT0gZmFsc2UgJiYgISRpc19xdW90ZWQpCisgICAgICAkdmFsdWUgPSBwcmVnX3JlcGxhY2UoJy9ccysjKC4rKSQvJywnJywkdmFsdWUpOworCisgICAgaWYgKCRmaXJzdF9jaGFyYWN0ZXIgPT0gJ1snICYmICRsYXN0X2NoYXJhY3RlciA9PSAnXScpIHsKKyAgICAgIC8vIFRha2Ugb3V0IHN0cmluZ3Mgc2VxdWVuY2VzIGFuZCBtYXBwaW5ncworICAgICAgJGlubmVyVmFsdWUgPSB0cmltKHN1YnN0ciAoJHZhbHVlLCAxLCAtMSkpOworICAgICAgaWYgKCRpbm5lclZhbHVlID09PSAnJykgcmV0dXJuIGFycmF5KCk7CisgICAgICAkZXhwbG9kZSA9ICR0aGlzLT5faW5saW5lRXNjYXBlKCRpbm5lclZhbHVlKTsKKyAgICAgIC8vIFByb3BhZ2F0ZSB2YWx1ZSBhcnJheQorICAgICAgJHZhbHVlICA9IGFycmF5KCk7CisgICAgICBmb3JlYWNoICgkZXhwbG9kZSBhcyAkdikgeworICAgICAgICAkdmFsdWVbXSA9ICR0aGlzLT5fdG9UeXBlKCR2KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiAkdmFsdWU7CisgICAgfQorCisgICAgaWYgKHN0cnBvcygkdmFsdWUsJzogJykhPT1mYWxzZSAmJiAkZmlyc3RfY2hhcmFjdGVyICE9ICd7JykgeworICAgICAgJGFycmF5ID0gZXhwbG9kZSgnOiAnLCR2YWx1ZSk7CisgICAgICAka2V5ICAgPSB0cmltKCRhcnJheVswXSk7CisgICAgICBhcnJheV9zaGlmdCgkYXJyYXkpOworICAgICAgJHZhbHVlID0gdHJpbShpbXBsb2RlKCc6ICcsJGFycmF5KSk7CisgICAgICAkdmFsdWUgPSAkdGhpcy0+X3RvVHlwZSgkdmFsdWUpOworICAgICAgcmV0dXJuIGFycmF5KCRrZXkgPT4gJHZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAoJGZpcnN0X2NoYXJhY3RlciA9PSAneycgJiYgJGxhc3RfY2hhcmFjdGVyID09ICd9JykgeworICAgICAgJGlubmVyVmFsdWUgPSB0cmltKHN1YnN0ciAoJHZhbHVlLCAxLCAtMSkpOworICAgICAgaWYgKCRpbm5lclZhbHVlID09PSAnJykgcmV0dXJuIGFycmF5KCk7CisgICAgICAvLyBJbmxpbmUgTWFwcGluZworICAgICAgLy8gVGFrZSBvdXQgc3RyaW5ncyBzZXF1ZW5jZXMgYW5kIG1hcHBpbmdzCisgICAgICAkZXhwbG9kZSA9ICR0aGlzLT5faW5saW5lRXNjYXBlKCRpbm5lclZhbHVlKTsKKyAgICAgIC8vIFByb3BhZ2F0ZSB2YWx1ZSBhcnJheQorICAgICAgJGFycmF5ID0gYXJyYXkoKTsKKyAgICAgIGZvcmVhY2ggKCRleHBsb2RlIGFzICR2KSB7CisgICAgICAgICRTdWJBcnIgPSAkdGhpcy0+X3RvVHlwZSgkdik7CisgICAgICAgIGlmIChlbXB0eSgkU3ViQXJyKSkgY29udGludWU7CisgICAgICAgIGlmIChpc19hcnJheSAoJFN1YkFycikpIHsKKyAgICAgICAgICAkYXJyYXlba2V5KCRTdWJBcnIpXSA9ICRTdWJBcnJba2V5KCRTdWJBcnIpXTsgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgJGFycmF5W10gPSAkU3ViQXJyOworICAgICAgfQorICAgICAgcmV0dXJuICRhcnJheTsKKyAgICB9CisKKyAgICBpZiAoJHZhbHVlID09ICdudWxsJyB8fCAkdmFsdWUgPT0gJ05VTEwnIHx8ICR2YWx1ZSA9PSAnTnVsbCcgfHwgJHZhbHVlID09ICcnIHx8ICR2YWx1ZSA9PSAnficpIHsKKyAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIGlmICggaXNfbnVtZXJpYygkdmFsdWUpICYmIHByZWdfbWF0Y2ggKCcvXigtfClbMS05XStbMC05XSokLycsICR2YWx1ZSkgKXsKKyAgICAgICRpbnR2YWx1ZSA9IChpbnQpJHZhbHVlOworICAgICAgaWYgKCRpbnR2YWx1ZSAhPSBQSFBfSU5UX01BWCAmJiAkaW50dmFsdWUgIT0gflBIUF9JTlRfTUFYKQorICAgICAgICAkdmFsdWUgPSAkaW50dmFsdWU7CisgICAgICByZXR1cm4gJHZhbHVlOworICAgIH0KKworICAgIGlmICggaXNfc3RyaW5nKCR2YWx1ZSkgJiYgcHJlZ19tYXRjaCgnL14wW3hYXVswLTlhLWZBLUZdKyQvJywgJHZhbHVlKSkgeworICAgICAgLy8gSGV4YWRlY2ltYWwgdmFsdWUuCisgICAgICByZXR1cm4gaGV4ZGVjKCR2YWx1ZSk7CisgICAgfQorCisgICAgJHRoaXMtPmNvZXJjZVZhbHVlKCR2YWx1ZSk7CisKKyAgICBpZiAoaXNfbnVtZXJpYygkdmFsdWUpKSB7CisgICAgICBpZiAoJHZhbHVlID09PSAnMCcpIHJldHVybiAwOworICAgICAgaWYgKHJ0cmltICgkdmFsdWUsIDApID09PSAkdmFsdWUpCisgICAgICAgICR2YWx1ZSA9IChmbG9hdCkkdmFsdWU7CisgICAgICByZXR1cm4gJHZhbHVlOworICAgIH0KKworICAgIHJldHVybiAkdmFsdWU7CisgIH0KKworICAvKioKKyAgICAgKiBVc2VkIGluIGlubGluZXMgdG8gY2hlY2sgZm9yIG1vcmUgaW5saW5lcyBvciBxdW90ZWQgc3RyaW5ncworICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgcHJpdmF0ZSBmdW5jdGlvbiBfaW5saW5lRXNjYXBlKCRpbmxpbmUpIHsKKyAgICAvLyBUaGVyZSdzIGdvdHRhIGJlIGEgY2xlYW5lciB3YXkgdG8gZG8gdGhpcy4uLgorICAgIC8vIFdoaWxlIHB1cmUgc2VxdWVuY2VzIHNlZW0gdG8gYmUgbmVzdGluZyBqdXN0IGZpbmUsCisgICAgLy8gcHVyZSBtYXBwaW5ncyBhbmQgbWFwcGluZ3Mgd2l0aCBzZXF1ZW5jZXMgaW5zaWRlIGNhbid0IGdvIHZlcnkKKyAgICAvLyBkZWVwLiAgVGhpcyBuZWVkcyB0byBiZSBmaXhlZC4KKworICAgICRzZXFzID0gYXJyYXkoKTsKKyAgICAkbWFwcyA9IGFycmF5KCk7CisgICAgJHNhdmVkX3N0cmluZ3MgPSBhcnJheSgpOworICAgICRzYXZlZF9lbXB0aWVzID0gYXJyYXkoKTsKKworICAgIC8vIENoZWNrIGZvciBlbXB0eSBzdHJpbmdzCisgICAgJHJlZ2V4ID0gJy8oIiIpfChcJ1wnKS8nOworICAgIGlmIChwcmVnX21hdGNoX2FsbCgkcmVnZXgsJGlubGluZSwkc3RyaW5ncykpIHsKKyAgICAgICRzYXZlZF9lbXB0aWVzID0gJHN0cmluZ3NbMF07CisgICAgICAkaW5saW5lICA9IHByZWdfcmVwbGFjZSgkcmVnZXgsJ1lBTUxFbXB0eScsJGlubGluZSk7CisgICAgfQorICAgIHVuc2V0KCRyZWdleCk7CisKKyAgICAvLyBDaGVjayBmb3Igc3RyaW5ncworICAgICRyZWdleCA9ICcvKD86KCIpfCg/OlwnKSkoKD8oMSlbXiJdK3xbXlwnXSspKSg/KDEpInxcJykvJzsKKyAgICBpZiAocHJlZ19tYXRjaF9hbGwoJHJlZ2V4LCRpbmxpbmUsJHN0cmluZ3MpKSB7CisgICAgICAkc2F2ZWRfc3RyaW5ncyA9ICRzdHJpbmdzWzBdOworICAgICAgJGlubGluZSAgPSBwcmVnX3JlcGxhY2UoJHJlZ2V4LCdZQU1MU3RyaW5nJywkaW5saW5lKTsKKyAgICB9CisgICAgdW5zZXQoJHJlZ2V4KTsKKworICAgIC8vIGVjaG8gJGlubGluZTsKKworICAgICRpID0gMDsKKyAgICBkbyB7CisKKyAgICAvLyBDaGVjayBmb3Igc2VxdWVuY2VzCisgICAgd2hpbGUgKHByZWdfbWF0Y2goJy9cWyhbXnt9XFtcXV0rKVxdL1UnLCRpbmxpbmUsJG1hdGNoc2VxcykpIHsKKyAgICAgICRzZXFzW10gPSAkbWF0Y2hzZXFzWzBdOworICAgICAgJGlubGluZSA9IHByZWdfcmVwbGFjZSgnL1xbKFtee31cW1xdXSspXF0vVScsICgnWUFNTFNlcScgLiAoY291bnQoJHNlcXMpIC0gMSkgLiAncycpLCAkaW5saW5lLCAxKTsKKyAgICB9CisKKyAgICAvLyBDaGVjayBmb3IgbWFwcGluZ3MKKyAgICB3aGlsZSAocHJlZ19tYXRjaCgnL3soW15cW1xde31dKyl9L1UnLCRpbmxpbmUsJG1hdGNobWFwcykpIHsKKyAgICAgICRtYXBzW10gPSAkbWF0Y2htYXBzWzBdOworICAgICAgJGlubGluZSA9IHByZWdfcmVwbGFjZSgnL3soW15cW1xde31dKyl9L1UnLCAoJ1lBTUxNYXAnIC4gKGNvdW50KCRtYXBzKSAtIDEpIC4gJ3MnKSwgJGlubGluZSwgMSk7CisgICAgfQorCisgICAgaWYgKCRpKysgPj0gMTApIGJyZWFrOworCisgICAgfSB3aGlsZSAoc3RycG9zICgkaW5saW5lLCAnWycpICE9PSBmYWxzZSB8fCBzdHJwb3MgKCRpbmxpbmUsICd7JykgIT09IGZhbHNlKTsKKworICAgICRleHBsb2RlID0gZXhwbG9kZSgnLCcsJGlubGluZSk7CisgICAgJGV4cGxvZGUgPSBhcnJheV9tYXAoJ3RyaW0nLCAkZXhwbG9kZSk7CisgICAgJHN0cmluZ2kgPSAwOyAkaSA9IDA7CisKKyAgICB3aGlsZSAoMSkgeworCisgICAgLy8gUmUtYWRkIHRoZSBzZXF1ZW5jZXMKKyAgICBpZiAoIWVtcHR5KCRzZXFzKSkgeworICAgICAgZm9yZWFjaCAoJGV4cGxvZGUgYXMgJGtleSA9PiAkdmFsdWUpIHsKKyAgICAgICAgaWYgKHN0cnBvcygkdmFsdWUsJ1lBTUxTZXEnKSAhPT0gZmFsc2UpIHsKKyAgICAgICAgICBmb3JlYWNoICgkc2VxcyBhcyAkc2VxayA9PiAkc2VxKSB7CisgICAgICAgICAgICAkZXhwbG9kZVska2V5XSA9IHN0cl9yZXBsYWNlKCgnWUFNTFNlcScuJHNlcWsuJ3MnKSwkc2VxLCR2YWx1ZSk7CisgICAgICAgICAgICAkdmFsdWUgPSAkZXhwbG9kZVska2V5XTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICAvLyBSZS1hZGQgdGhlIG1hcHBpbmdzCisgICAgaWYgKCFlbXB0eSgkbWFwcykpIHsKKyAgICAgIGZvcmVhY2ggKCRleHBsb2RlIGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICAgIGlmIChzdHJwb3MoJHZhbHVlLCdZQU1MTWFwJykgIT09IGZhbHNlKSB7CisgICAgICAgICAgZm9yZWFjaCAoJG1hcHMgYXMgJG1hcGsgPT4gJG1hcCkgeworICAgICAgICAgICAgJGV4cGxvZGVbJGtleV0gPSBzdHJfcmVwbGFjZSgoJ1lBTUxNYXAnLiRtYXBrLidzJyksICRtYXAsICR2YWx1ZSk7CisgICAgICAgICAgICAkdmFsdWUgPSAkZXhwbG9kZVska2V5XTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKworICAgIC8vIFJlLWFkZCB0aGUgc3RyaW5ncworICAgIGlmICghZW1wdHkoJHNhdmVkX3N0cmluZ3MpKSB7CisgICAgICBmb3JlYWNoICgkZXhwbG9kZSBhcyAka2V5ID0+ICR2YWx1ZSkgeworICAgICAgICB3aGlsZSAoc3RycG9zKCR2YWx1ZSwnWUFNTFN0cmluZycpICE9PSBmYWxzZSkgeworICAgICAgICAgICRleHBsb2RlWyRrZXldID0gcHJlZ19yZXBsYWNlKCcvWUFNTFN0cmluZy8nLCRzYXZlZF9zdHJpbmdzWyRzdHJpbmdpXSwkdmFsdWUsIDEpOworICAgICAgICAgIHVuc2V0KCRzYXZlZF9zdHJpbmdzWyRzdHJpbmdpXSk7CisgICAgICAgICAgKyskc3RyaW5naTsKKyAgICAgICAgICAkdmFsdWUgPSAkZXhwbG9kZVska2V5XTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworCisgICAgLy8gUmUtYWRkIHRoZSBlbXB0aWVzCisgICAgaWYgKCFlbXB0eSgkc2F2ZWRfZW1wdGllcykpIHsKKyAgICAgIGZvcmVhY2ggKCRleHBsb2RlIGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICAgIHdoaWxlIChzdHJwb3MoJHZhbHVlLCdZQU1MRW1wdHknKSAhPT0gZmFsc2UpIHsKKyAgICAgICAgICAkZXhwbG9kZVska2V5XSA9IHByZWdfcmVwbGFjZSgnL1lBTUxFbXB0eS8nLCAnJywgJHZhbHVlLCAxKTsKKyAgICAgICAgICAkdmFsdWUgPSAkZXhwbG9kZVska2V5XTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworICAgICRmaW5pc2hlZCA9IHRydWU7CisgICAgZm9yZWFjaCAoJGV4cGxvZGUgYXMgJGtleSA9PiAkdmFsdWUpIHsKKyAgICAgIGlmIChzdHJwb3MoJHZhbHVlLCdZQU1MU2VxJykgIT09IGZhbHNlKSB7CisgICAgICAgICRmaW5pc2hlZCA9IGZhbHNlOyBicmVhazsKKyAgICAgIH0KKyAgICAgIGlmIChzdHJwb3MoJHZhbHVlLCdZQU1MTWFwJykgIT09IGZhbHNlKSB7CisgICAgICAgICRmaW5pc2hlZCA9IGZhbHNlOyBicmVhazsKKyAgICAgIH0KKyAgICAgIGlmIChzdHJwb3MoJHZhbHVlLCdZQU1MU3RyaW5nJykgIT09IGZhbHNlKSB7CisgICAgICAgICRmaW5pc2hlZCA9IGZhbHNlOyBicmVhazsKKyAgICAgIH0KKyAgICAgIGlmIChzdHJwb3MoJHZhbHVlLCdZQU1MRW1wdHknKSAhPT0gZmFsc2UpIHsKKyAgICAgICAgJGZpbmlzaGVkID0gZmFsc2U7IGJyZWFrOworICAgICAgfQorICAgIH0KKyAgICBpZiAoJGZpbmlzaGVkKSBicmVhazsKKworICAgICRpKys7CisgICAgaWYgKCRpID4gMTApCisgICAgICBicmVhazsgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wcy4KKyAgICB9CisKKworICAgIHJldHVybiAkZXhwbG9kZTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gbGl0ZXJhbEJsb2NrQ29udGludWVzICgkbGluZSwgJGxpbmVJbmRlbnQpIHsKKyAgICBpZiAoIXRyaW0oJGxpbmUpKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoc3RybGVuKCRsaW5lKSAtIHN0cmxlbihsdHJpbSgkbGluZSkpID4gJGxpbmVJbmRlbnQpIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gcmVmZXJlbmNlQ29udGVudHNCeUFsaWFzICgkYWxpYXMpIHsKKyAgICBkbyB7CisgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5TYXZlZEdyb3Vwc1skYWxpYXNdKSkgeyBlY2hvICJCYWQgZ3JvdXAgbmFtZTogJGFsaWFzLiI7IGJyZWFrOyB9CisgICAgICAkZ3JvdXBQYXRoID0gJHRoaXMtPlNhdmVkR3JvdXBzWyRhbGlhc107CisgICAgICAkdmFsdWUgPSAkdGhpcy0+cmVzdWx0OworICAgICAgZm9yZWFjaCAoJGdyb3VwUGF0aCBhcyAkaykgeworICAgICAgICAkdmFsdWUgPSAkdmFsdWVbJGtdOworICAgICAgfQorICAgIH0gd2hpbGUgKGZhbHNlKTsKKyAgICByZXR1cm4gJHZhbHVlOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBhZGRBcnJheUlubGluZSAoJGFycmF5LCAkaW5kZW50KSB7CisgICAgICAkQ29tbW9uR3JvdXBQYXRoID0gJHRoaXMtPnBhdGg7CisgICAgICBpZiAoZW1wdHkgKCRhcnJheSkpIHJldHVybiBmYWxzZTsKKworICAgICAgZm9yZWFjaCAoJGFycmF5IGFzICRrID0+ICRfKSB7CisgICAgICAgICR0aGlzLT5hZGRBcnJheShhcnJheSgkayA9PiAkXyksICRpbmRlbnQpOworICAgICAgICAkdGhpcy0+cGF0aCA9ICRDb21tb25Hcm91cFBhdGg7CisgICAgICB9CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gYWRkQXJyYXkgKCRpbmNvbWluZ19kYXRhLCAkaW5jb21pbmdfaW5kZW50KSB7CisKKyAgIC8vIHByaW50X3IgKCRpbmNvbWluZ19kYXRhKTsKKworICAgIGlmIChjb3VudCAoJGluY29taW5nX2RhdGEpID4gMSkKKyAgICAgIHJldHVybiAkdGhpcy0+YWRkQXJyYXlJbmxpbmUgKCRpbmNvbWluZ19kYXRhLCAkaW5jb21pbmdfaW5kZW50KTsKKworICAgICRrZXkgPSBrZXkgKCRpbmNvbWluZ19kYXRhKTsKKyAgICAkdmFsdWUgPSBpc3NldCgkaW5jb21pbmdfZGF0YVska2V5XSkgPyAkaW5jb21pbmdfZGF0YVska2V5XSA6IG51bGw7CisgICAgaWYgKCRrZXkgPT09ICdfXyFZQU1MWmVybycpICRrZXkgPSAnMCc7CisKKyAgICBpZiAoJGluY29taW5nX2luZGVudCA9PSAwICYmICEkdGhpcy0+X2NvbnRhaW5zR3JvdXBBbGlhcyAmJiAhJHRoaXMtPl9jb250YWluc0dyb3VwQW5jaG9yKSB7IC8vIFNob3J0Y3V0IGZvciByb290LWxldmVsIHZhbHVlcy4KKyAgICAgIGlmICgka2V5IHx8ICRrZXkgPT09ICcnIHx8ICRrZXkgPT09ICcwJykgeworICAgICAgICAkdGhpcy0+cmVzdWx0WyRrZXldID0gJHZhbHVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgJHRoaXMtPnJlc3VsdFtdID0gJHZhbHVlOyBlbmQgKCR0aGlzLT5yZXN1bHQpOyAka2V5ID0ga2V5ICgkdGhpcy0+cmVzdWx0KTsKKyAgICAgIH0KKyAgICAgICR0aGlzLT5wYXRoWyRpbmNvbWluZ19pbmRlbnRdID0gJGtleTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKworCisgICAgJGhpc3RvcnkgPSBhcnJheSgpOworICAgIC8vIFVuZm9sZGluZyBpbm5lciBhcnJheSB0cmVlLgorICAgICRoaXN0b3J5W10gPSAkX2FyciA9ICR0aGlzLT5yZXN1bHQ7CisgICAgZm9yZWFjaCAoJHRoaXMtPnBhdGggYXMgJGspIHsKKyAgICAgICRoaXN0b3J5W10gPSAkX2FyciA9ICRfYXJyWyRrXTsKKyAgICB9CisKKyAgICBpZiAoJHRoaXMtPl9jb250YWluc0dyb3VwQWxpYXMpIHsKKyAgICAgICR2YWx1ZSA9ICR0aGlzLT5yZWZlcmVuY2VDb250ZW50c0J5QWxpYXMoJHRoaXMtPl9jb250YWluc0dyb3VwQWxpYXMpOworICAgICAgJHRoaXMtPl9jb250YWluc0dyb3VwQWxpYXMgPSBmYWxzZTsKKyAgICB9CisKKworICAgIC8vIEFkZGluZyBzdHJpbmcgb3IgbnVtZXJpYyBrZXkgdG8gdGhlIGlubmVybW9zdCBsZXZlbCBvciAkdGhpcy0+YXJyLgorICAgIGlmIChpc19zdHJpbmcoJGtleSkgJiYgJGtleSA9PSAnPDwnKSB7CisgICAgICBpZiAoIWlzX2FycmF5ICgkX2FycikpIHsgJF9hcnIgPSBhcnJheSAoKTsgfQorCisgICAgICAkX2FyciA9IGFycmF5X21lcmdlICgkX2FyciwgJHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKCRrZXkgfHwgJGtleSA9PT0gJycgfHwgJGtleSA9PT0gJzAnKSB7CisgICAgICBpZiAoIWlzX2FycmF5ICgkX2FycikpCisgICAgICAgICRfYXJyID0gYXJyYXkgKCRrZXk9PiR2YWx1ZSk7CisgICAgICBlbHNlCisgICAgICAgICRfYXJyWyRrZXldID0gJHZhbHVlOworICAgIH0gZWxzZSB7CisgICAgICBpZiAoIWlzX2FycmF5ICgkX2FycikpIHsgJF9hcnIgPSBhcnJheSAoJHZhbHVlKTsgJGtleSA9IDA7IH0KKyAgICAgIGVsc2UgeyAkX2FycltdID0gJHZhbHVlOyBlbmQgKCRfYXJyKTsgJGtleSA9IGtleSAoJF9hcnIpOyB9CisgICAgfQorCisgICAgJHJldmVyc2VfcGF0aCA9IGFycmF5X3JldmVyc2UoJHRoaXMtPnBhdGgpOworICAgICRyZXZlcnNlX2hpc3RvcnkgPSBhcnJheV9yZXZlcnNlICgkaGlzdG9yeSk7CisgICAgJHJldmVyc2VfaGlzdG9yeVswXSA9ICRfYXJyOworICAgICRjbnQgPSBjb3VudCgkcmV2ZXJzZV9oaXN0b3J5KSAtIDE7CisgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNudDsgJGkrKykgeworICAgICAgJHJldmVyc2VfaGlzdG9yeVskaSsxXVskcmV2ZXJzZV9wYXRoWyRpXV0gPSAkcmV2ZXJzZV9oaXN0b3J5WyRpXTsKKyAgICB9CisgICAgJHRoaXMtPnJlc3VsdCA9ICRyZXZlcnNlX2hpc3RvcnlbJGNudF07CisKKyAgICAkdGhpcy0+cGF0aFskaW5jb21pbmdfaW5kZW50XSA9ICRrZXk7CisKKyAgICBpZiAoJHRoaXMtPl9jb250YWluc0dyb3VwQW5jaG9yKSB7CisgICAgICAkdGhpcy0+U2F2ZWRHcm91cHNbJHRoaXMtPl9jb250YWluc0dyb3VwQW5jaG9yXSA9ICR0aGlzLT5wYXRoOworICAgICAgaWYgKGlzX2FycmF5ICgkdmFsdWUpKSB7CisgICAgICAgICRrID0ga2V5ICgkdmFsdWUpOworICAgICAgICBpZiAoIWlzX2ludCAoJGspKSB7CisgICAgICAgICAgJHRoaXMtPlNhdmVkR3JvdXBzWyR0aGlzLT5fY29udGFpbnNHcm91cEFuY2hvcl1bJGluY29taW5nX2luZGVudCArIDJdID0gJGs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgICR0aGlzLT5fY29udGFpbnNHcm91cEFuY2hvciA9IGZhbHNlOworICAgIH0KKworICB9CisKKyAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gc3RhcnRzTGl0ZXJhbEJsb2NrICgkbGluZSkgeworICAgICRsYXN0Q2hhciA9IHN1YnN0ciAodHJpbSgkbGluZSksIC0xKTsKKyAgICBpZiAoJGxhc3RDaGFyICE9ICc+JyAmJiAkbGFzdENoYXIgIT0gJ3wnKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKCRsYXN0Q2hhciA9PSAnfCcpIHJldHVybiAkbGFzdENoYXI7CisgICAgLy8gSFRNTCB0YWdzIHNob3VsZCBub3QgYmUgY291bnRlZCBhcyBsaXRlcmFsIGJsb2Nrcy4KKyAgICBpZiAocHJlZ19tYXRjaCAoJyM8Lio/PiQjJywgJGxpbmUpKSByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuICRsYXN0Q2hhcjsKKyAgfQorCisgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdyZWVkaWx5TmVlZE5leHRMaW5lKCRsaW5lKSB7CisgICAgJGxpbmUgPSB0cmltICgkbGluZSk7CisgICAgaWYgKCFzdHJsZW4oJGxpbmUpKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKHN1YnN0ciAoJGxpbmUsIC0xLCAxKSA9PSAnXScpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoJGxpbmVbMF0gPT0gJ1snKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAocHJlZ19tYXRjaCAoJyNeW146XSs/OlxzKlxbIycsICRsaW5lKSkgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBhZGRMaXRlcmFsTGluZSAoJGxpdGVyYWxCbG9jaywgJGxpbmUsICRsaXRlcmFsQmxvY2tTdHlsZSwgJGluZGVudCA9IC0xKSB7CisgICAgJGxpbmUgPSBzZWxmOjpzdHJpcEluZGVudCgkbGluZSwgJGluZGVudCk7CisgICAgaWYgKCRsaXRlcmFsQmxvY2tTdHlsZSAhPT0gJ3wnKSB7CisgICAgICAgICRsaW5lID0gc2VsZjo6c3RyaXBJbmRlbnQoJGxpbmUpOworICAgIH0KKyAgICAkbGluZSA9IHJ0cmltICgkbGluZSwgIlxyXG5cdCAiKSAuICJcbiI7CisgICAgaWYgKCRsaXRlcmFsQmxvY2tTdHlsZSA9PSAnfCcpIHsKKyAgICAgIHJldHVybiAkbGl0ZXJhbEJsb2NrIC4gJGxpbmU7CisgICAgfQorICAgIGlmIChzdHJsZW4oJGxpbmUpID09IDApCisgICAgICByZXR1cm4gcnRyaW0oJGxpdGVyYWxCbG9jaywgJyAnKSAuICJcbiI7CisgICAgaWYgKCRsaW5lID09ICJcbiIgJiYgJGxpdGVyYWxCbG9ja1N0eWxlID09ICc+JykgeworICAgICAgcmV0dXJuIHJ0cmltICgkbGl0ZXJhbEJsb2NrLCAiIFx0IikgLiAiXG4iOworICAgIH0KKyAgICBpZiAoJGxpbmUgIT0gIlxuIikKKyAgICAgICRsaW5lID0gdHJpbSAoJGxpbmUsICJcclxuICIpIC4gIiAiOworICAgIHJldHVybiAkbGl0ZXJhbEJsb2NrIC4gJGxpbmU7CisgIH0KKworICAgZnVuY3Rpb24gcmV2ZXJ0TGl0ZXJhbFBsYWNlSG9sZGVyICgkbGluZUFycmF5LCAkbGl0ZXJhbEJsb2NrKSB7CisgICAgIGZvcmVhY2ggKCRsaW5lQXJyYXkgYXMgJGsgPT4gJF8pIHsKKyAgICAgIGlmIChpc19hcnJheSgkXykpCisgICAgICAgICRsaW5lQXJyYXlbJGtdID0gJHRoaXMtPnJldmVydExpdGVyYWxQbGFjZUhvbGRlciAoJF8sICRsaXRlcmFsQmxvY2spOworICAgICAgZWxzZSBpZiAoc3Vic3RyKCRfLCAtMSAqIHN0cmxlbiAoJHRoaXMtPkxpdGVyYWxQbGFjZUhvbGRlcikpID09ICR0aGlzLT5MaXRlcmFsUGxhY2VIb2xkZXIpCisJICAgICAgICRsaW5lQXJyYXlbJGtdID0gcnRyaW0gKCRsaXRlcmFsQmxvY2ssICIgXHJcbiIpOworICAgICB9CisgICAgIHJldHVybiAkbGluZUFycmF5OworICAgfQorCisgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIHN0cmlwSW5kZW50ICgkbGluZSwgJGluZGVudCA9IC0xKSB7CisgICAgaWYgKCRpbmRlbnQgPT0gLTEpICRpbmRlbnQgPSBzdHJsZW4oJGxpbmUpIC0gc3RybGVuKGx0cmltKCRsaW5lKSk7CisgICAgcmV0dXJuIHN1YnN0ciAoJGxpbmUsICRpbmRlbnQpOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRQYXJlbnRQYXRoQnlJbmRlbnQgKCRpbmRlbnQpIHsKKyAgICBpZiAoJGluZGVudCA9PSAwKSByZXR1cm4gYXJyYXkoKTsKKyAgICAkbGluZVBhdGggPSAkdGhpcy0+cGF0aDsKKyAgICBkbyB7CisgICAgICBlbmQoJGxpbmVQYXRoKTsgJGxhc3RJbmRlbnRJblBhcmVudFBhdGggPSBrZXkoJGxpbmVQYXRoKTsKKyAgICAgIGlmICgkaW5kZW50IDw9ICRsYXN0SW5kZW50SW5QYXJlbnRQYXRoKSBhcnJheV9wb3AgKCRsaW5lUGF0aCk7CisgICAgfSB3aGlsZSAoJGluZGVudCA8PSAkbGFzdEluZGVudEluUGFyZW50UGF0aCk7CisgICAgcmV0dXJuICRsaW5lUGF0aDsKKyAgfQorCisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBjbGVhckJpZ2dlclBhdGhWYWx1ZXMgKCRpbmRlbnQpIHsKKworCisgICAgaWYgKCRpbmRlbnQgPT0gMCkgJHRoaXMtPnBhdGggPSBhcnJheSgpOworICAgIGlmIChlbXB0eSAoJHRoaXMtPnBhdGgpKSByZXR1cm4gdHJ1ZTsKKworICAgIGZvcmVhY2ggKCR0aGlzLT5wYXRoIGFzICRrID0+ICRfKSB7CisgICAgICBpZiAoJGsgPiAkaW5kZW50KSB1bnNldCAoJHRoaXMtPnBhdGhbJGtdKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisKKyAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gaXNDb21tZW50ICgkbGluZSkgeworICAgIGlmICghJGxpbmUpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoJGxpbmVbMF0gPT0gJyMnKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHJpbSgkbGluZSwgIiBcclxuXHQiKSA9PSAnLS0tJykgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gaXNFbXB0eSAoJGxpbmUpIHsKKyAgICByZXR1cm4gKHRyaW0gKCRsaW5lKSA9PT0gJycpOworICB9CisKKworICBwcml2YXRlIGZ1bmN0aW9uIGlzQXJyYXlFbGVtZW50ICgkbGluZSkgeworICAgIGlmICghJGxpbmUgfHwgIWlzX3NjYWxhcigkbGluZSkpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3Vic3RyKCRsaW5lLCAwLCAyKSAhPSAnLSAnKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKHN0cmxlbiAoJGxpbmUpID4gMykKKyAgICAgIGlmIChzdWJzdHIoJGxpbmUsMCwzKSA9PSAnLS0tJykgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIGlzSGFzaEVsZW1lbnQgKCRsaW5lKSB7CisgICAgcmV0dXJuIHN0cnBvcygkbGluZSwgJzonKTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gaXNMaXRlcmFsICgkbGluZSkgeworICAgIGlmICgkdGhpcy0+aXNBcnJheUVsZW1lbnQoJGxpbmUpKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKCR0aGlzLT5pc0hhc2hFbGVtZW50KCRsaW5lKSkgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworICB9CisKKworICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiB1bnF1b3RlICgkdmFsdWUpIHsKKyAgICBpZiAoISR2YWx1ZSkgcmV0dXJuICR2YWx1ZTsKKyAgICBpZiAoIWlzX3N0cmluZygkdmFsdWUpKSByZXR1cm4gJHZhbHVlOworICAgIGlmICgkdmFsdWVbMF0gPT0gJ1wnJykgcmV0dXJuIHRyaW0gKCR2YWx1ZSwgJ1wnJyk7CisgICAgaWYgKCR2YWx1ZVswXSA9PSAnIicpIHJldHVybiB0cmltICgkdmFsdWUsICciJyk7CisgICAgcmV0dXJuICR2YWx1ZTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gc3RhcnRzTWFwcGVkU2VxdWVuY2UgKCRsaW5lKSB7CisgICAgcmV0dXJuIChzdWJzdHIoJGxpbmUsIDAsIDIpID09ICctICcgJiYgc3Vic3RyICgkbGluZSwgLTEsIDEpID09ICc6Jyk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIHJldHVybk1hcHBlZFNlcXVlbmNlICgkbGluZSkgeworICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgJGtleSAgICAgICAgID0gc2VsZjo6dW5xdW90ZSh0cmltKHN1YnN0cigkbGluZSwxLC0xKSkpOworICAgICRhcnJheVska2V5XSA9IGFycmF5KCk7CisgICAgJHRoaXMtPmRlbGF5ZWRQYXRoID0gYXJyYXkoc3RycG9zICgkbGluZSwgJGtleSkgKyAkdGhpcy0+aW5kZW50ID0+ICRrZXkpOworICAgIHJldHVybiBhcnJheSgkYXJyYXkpOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiBjaGVja0tleXNJblZhbHVlKCR2YWx1ZSkgeworICAgIGlmIChzdHJjaHIoJ1t7IlwnJywgJHZhbHVlWzBdKSA9PT0gZmFsc2UpIHsKKyAgICAgIGlmIChzdHJjaHIoJHZhbHVlLCAnOiAnKSAhPT0gZmFsc2UpIHsKKyAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdUb28gbWFueSBrZXlzOiAnLiR2YWx1ZSk7CisgICAgICB9CisgICAgfQorICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiByZXR1cm5NYXBwZWRWYWx1ZSAoJGxpbmUpIHsKKyAgICAkdGhpcy0+Y2hlY2tLZXlzSW5WYWx1ZSgkbGluZSk7CisgICAgJGFycmF5ID0gYXJyYXkoKTsKKyAgICAka2V5ICAgICAgICAgPSBzZWxmOjp1bnF1b3RlICh0cmltKHN1YnN0cigkbGluZSwwLC0xKSkpOworICAgICRhcnJheVska2V5XSA9ICcnOworICAgIHJldHVybiAkYXJyYXk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIHN0YXJ0c01hcHBlZFZhbHVlICgkbGluZSkgeworICAgIHJldHVybiAoc3Vic3RyICgkbGluZSwgLTEsIDEpID09ICc6Jyk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIGlzUGxhaW5BcnJheSAoJGxpbmUpIHsKKyAgICByZXR1cm4gKCRsaW5lWzBdID09ICdbJyAmJiBzdWJzdHIgKCRsaW5lLCAtMSwgMSkgPT0gJ10nKTsKKyAgfQorCisgIHByaXZhdGUgZnVuY3Rpb24gcmV0dXJuUGxhaW5BcnJheSAoJGxpbmUpIHsKKyAgICByZXR1cm4gJHRoaXMtPl90b1R5cGUoJGxpbmUpOworICB9CisKKyAgcHJpdmF0ZSBmdW5jdGlvbiByZXR1cm5LZXlWYWx1ZVBhaXIgKCRsaW5lKSB7CisgICAgJGFycmF5ID0gYXJyYXkoKTsKKyAgICAka2V5ID0gJyc7CisgICAgaWYgKHN0cnBvcyAoJGxpbmUsICc6ICcpKSB7CisgICAgICAvLyBJdCdzIGEga2V5L3ZhbHVlIHBhaXIgbW9zdCBsaWtlbHkKKyAgICAgIC8vIElmIHRoZSBrZXkgaXMgaW4gZG91YmxlIHF1b3RlcyBwdWxsIGl0IG91dAorICAgICAgaWYgKCgkbGluZVswXSA9PSAnIicgfHwgJGxpbmVbMF0gPT0gIiciKSAmJiBwcmVnX21hdGNoKCcvXihbIlwnXSguKilbIlwnXShccykqOikvJywkbGluZSwkbWF0Y2hlcykpIHsKKyAgICAgICAgJHZhbHVlID0gdHJpbShzdHJfcmVwbGFjZSgkbWF0Y2hlc1sxXSwnJywkbGluZSkpOworICAgICAgICAka2V5ICAgPSAkbWF0Y2hlc1syXTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIERvIHNvbWUgZ3Vlc3N3b3JrIGFzIHRvIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZQorICAgICAgICAkZXhwbG9kZSA9IGV4cGxvZGUoJzogJywgJGxpbmUpOworICAgICAgICAka2V5ICAgICA9IHRyaW0oYXJyYXlfc2hpZnQoJGV4cGxvZGUpKTsKKyAgICAgICAgJHZhbHVlICAgPSB0cmltKGltcGxvZGUoJzogJywgJGV4cGxvZGUpKTsKKyAgICAgICAgJHRoaXMtPmNoZWNrS2V5c0luVmFsdWUoJHZhbHVlKTsKKyAgICAgIH0KKyAgICAgIC8vIFNldCB0aGUgdHlwZSBvZiB0aGUgdmFsdWUuICBJbnQsIHN0cmluZywgZXRjCisgICAgICAkdmFsdWUgPSAkdGhpcy0+X3RvVHlwZSgkdmFsdWUpOworCisgICAgICBpZiAoJGtleSA9PT0gJzAnKSAka2V5ID0gJ19fIVlBTUxaZXJvJzsKKyAgICAgICRhcnJheVska2V5XSA9ICR2YWx1ZTsKKyAgICB9IGVsc2UgeworICAgICAgJGFycmF5ID0gYXJyYXkgKCRsaW5lKTsKKyAgICB9CisgICAgcmV0dXJuICRhcnJheTsKKworICB9CisKKworICBwcml2YXRlIGZ1bmN0aW9uIHJldHVybkFycmF5RWxlbWVudCAoJGxpbmUpIHsKKyAgICAgaWYgKHN0cmxlbigkbGluZSkgPD0gMSkgcmV0dXJuIGFycmF5KGFycmF5KCkpOyAvLyBXZWlyZCAlKQorICAgICAkYXJyYXkgPSBhcnJheSgpOworICAgICAkdmFsdWUgICA9IHRyaW0oc3Vic3RyKCRsaW5lLDEpKTsKKyAgICAgJHZhbHVlICAgPSAkdGhpcy0+X3RvVHlwZSgkdmFsdWUpOworICAgICBpZiAoJHRoaXMtPmlzQXJyYXlFbGVtZW50KCR2YWx1ZSkpIHsKKyAgICAgICAkdmFsdWUgPSAkdGhpcy0+cmV0dXJuQXJyYXlFbGVtZW50KCR2YWx1ZSk7CisgICAgIH0KKyAgICAgJGFycmF5W10gPSAkdmFsdWU7CisgICAgIHJldHVybiAkYXJyYXk7CisgIH0KKworCisgIHByaXZhdGUgZnVuY3Rpb24gbm9kZUNvbnRhaW5zR3JvdXAgKCRsaW5lKSB7CisgICAgJHN5bWJvbHNGb3JSZWZlcmVuY2UgPSAnQS16MC05X1wtJzsKKyAgICBpZiAoc3RycG9zKCRsaW5lLCAnJicpID09PSBmYWxzZSAmJiBzdHJwb3MoJGxpbmUsICcqJykgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7IC8vIFBsZWFzZSBkaWUgZmFzdCA7LSkKKyAgICBpZiAoJGxpbmVbMF0gPT0gJyYnICYmIHByZWdfbWF0Y2goJy9eKCZbJy4kc3ltYm9sc0ZvclJlZmVyZW5jZS4nXSspLycsICRsaW5lLCAkbWF0Y2hlcykpIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICBpZiAoJGxpbmVbMF0gPT0gJyonICYmIHByZWdfbWF0Y2goJy9eKFwqWycuJHN5bWJvbHNGb3JSZWZlcmVuY2UuJ10rKS8nLCAkbGluZSwgJG1hdGNoZXMpKSByZXR1cm4gJG1hdGNoZXNbMV07CisgICAgaWYgKHByZWdfbWF0Y2goJy8oJlsnLiRzeW1ib2xzRm9yUmVmZXJlbmNlLiddKykkLycsICRsaW5lLCAkbWF0Y2hlcykpIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICBpZiAocHJlZ19tYXRjaCgnLyhcKlsnLiRzeW1ib2xzRm9yUmVmZXJlbmNlLiddKyQpLycsICRsaW5lLCAkbWF0Y2hlcykpIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICBpZiAocHJlZ19tYXRjaCAoJyNeXHMqPDxccyo6XHMqKFwqW15cc10rKS4qJCMnLCAkbGluZSwgJG1hdGNoZXMpKSByZXR1cm4gJG1hdGNoZXNbMV07CisgICAgcmV0dXJuIGZhbHNlOworCisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIGFkZEdyb3VwICgkbGluZSwgJGdyb3VwKSB7CisgICAgaWYgKCRncm91cFswXSA9PSAnJicpICR0aGlzLT5fY29udGFpbnNHcm91cEFuY2hvciA9IHN1YnN0ciAoJGdyb3VwLCAxKTsKKyAgICBpZiAoJGdyb3VwWzBdID09ICcqJykgJHRoaXMtPl9jb250YWluc0dyb3VwQWxpYXMgPSBzdWJzdHIgKCRncm91cCwgMSk7CisgICAgLy9wcmludF9yICgkdGhpcy0+cGF0aCk7CisgIH0KKworICBwcml2YXRlIGZ1bmN0aW9uIHN0cmlwR3JvdXAgKCRsaW5lLCAkZ3JvdXApIHsKKyAgICAkbGluZSA9IHRyaW0oc3RyX3JlcGxhY2UoJGdyb3VwLCAnJywgJGxpbmUpKTsKKyAgICByZXR1cm4gJGxpbmU7CisgIH0KK30KK30KKworLy8gRW5hYmxlIHVzZSBvZiBTcHljIGZyb20gY29tbWFuZCBsaW5lCisvLyBUaGUgc3ludGF4IGlzIHRoZSBmb2xsb3dpbmc6IHBocCBTcHljLnBocCBzcHljLnlhbWwKKworZG8geworICBpZiAoUEhQX1NBUEkgIT0gJ2NsaScpIGJyZWFrOworICBpZiAoZW1wdHkgKCRfU0VSVkVSWydhcmdjJ10pIHx8ICRfU0VSVkVSWydhcmdjJ10gPCAyKSBicmVhazsKKyAgaWYgKGVtcHR5ICgkX1NFUlZFUlsnUEhQX1NFTEYnXSkgfHwgRkFMU0UgPT09IHN0cnBvcyAoJF9TRVJWRVJbJ1BIUF9TRUxGJ10sICdTcHljLnBocCcpICkgYnJlYWs7CisgICRmaWxlID0gJGFyZ3ZbMV07CisgIGVjaG8ganNvbl9lbmNvZGUgKHNweWNfbG9hZF9maWxlICgkZmlsZSkpOworfSB3aGlsZSAoMCk7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL2NvbXBvc2VyLmpzb24gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL2NvbXBvc2VyLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVhYjc3NgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvY29tcG9zZXIuanNvbgpAQCAtMCwwICsxLDMwIEBACit7CisgICAgIm5hbWUiOiAibXVzdGFuZ29zdGFuZy9zcHljIiwKKyAgICAiZGVzY3JpcHRpb24iOiAiQSBzaW1wbGUgWUFNTCBsb2FkZXIvZHVtcGVyIGNsYXNzIGZvciBQSFAiLAorICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgInNweWMiLAorICAgICAgICAieWFtbCIsCisgICAgICAgICJ5bWwiCisgICAgXSwKKyAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL211c3Rhbmdvc3Rhbmcvc3B5Yy8iLAorICAgICJhdXRob3JzIiA6IFt7CisgICAgICAgICJuYW1lIjogIm11c3Rhbmdvc3RhbmciLAorICAgICAgICAiZW1haWwiOiAidmxhZC5hbmRlcnNlbkBnbWFpbC5jb20iCisgICAgfV0sCisgICAgImxpY2Vuc2UiOiAiTUlUIiwKKyAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgInBocCI6ICI+PTUuMy4xIgorICAgIH0sCisgICAgImF1dG9sb2FkIjogeworICAgICAgICAiZmlsZXMiOiBbICJTcHljLnBocCIgXQorICAgIH0sCisgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIjQuMy4qQGRldiIKKyAgICB9LAorICAgICJleHRyYSI6IHsKKyAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjAuNS54LWRldiIKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvZXhhbXBsZXMveWFtbC1kdW1wLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvZXhhbXBsZXMveWFtbC1kdW1wLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDIxNjBhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9leGFtcGxlcy95YW1sLWR1bXAucGhwCkBAIC0wLDAgKzEsMjUgQEAKKzw/cGhwCisKKyMKKyMgICAgUyBQIFkgQworIyAgICAgIGEgc2ltcGxlIHBocCB5YW1sIGNsYXNzCisjCisjIEZlZWwgZnJlZSB0byBkdW1wIGFuIGFycmF5IHRvIFlBTUwsIGFuZCB0aGVuIHRvIGxvYWQgdGhhdCBZQU1MIGJhY2sgaW50byBhbgorIyBhcnJheS4gIFRoaXMgaXMgYSBnb29kIHdheSB0byB0ZXN0IHRoZSBsaW1pdGF0aW9ucyBvZiB0aGUgcGFyc2VyIGFuZCBtYXliZQorIyBsZWFybiBzb21lIGJhc2ljIFlBTUwuCisjCisKK2luY2x1ZGUoJy4uL1NweWMucGhwJyk7CisKKyRhcnJheVtdID0gJ1NlcXVlbmNlIGl0ZW0nOworJGFycmF5WydUaGUgS2V5J10gPSAnTWFwcGVkIHZhbHVlJzsKKyRhcnJheVtdID0gYXJyYXkoJ0Egc2VxdWVuY2UnLCdvZiBhIHNlcXVlbmNlJyk7CiskYXJyYXlbXSA9IGFycmF5KCdmaXJzdCcgPT4gJ0Egc2VxdWVuY2UnLCdzZWNvbmQnID0+ICdvZiBtYXBwZWQgdmFsdWVzJyk7CiskYXJyYXlbJ01hcHBlZCddID0gYXJyYXkoJ0Egc2VxdWVuY2UnLCd3aGljaCBpcyBtYXBwZWQnKTsKKyRhcnJheVsnQSBOb3RlJ10gPSAnV2hhdCBpZiB5b3VyIHRleHQgaXMgdG9vIGxvbmc/JzsKKyRhcnJheVsnQW5vdGhlciBOb3RlJ10gPSAnSWYgdGhhdCBpcyB0aGUgY2FzZSwgdGhlIGR1bXBlciB3aWxsIHByb2JhYmx5IGZvbGQgeW91ciB0ZXh0IGJ5IHVzaW5nIGEgYmxvY2suICBLaW5kYSBsaWtlIHRoaXMuJzsKKyRhcnJheVsnVGhlIHRyaWNrPyddID0gJ1RoZSB0cmljayBpcyB0aGF0IHdlIG92ZXJyb2RlIHRoZSBkZWZhdWx0IGluZGVudCwgMiwgdG8gNCBhbmQgdGhlIGRlZmF1bHQgd29yZHdyYXAsIDQwLCB0byA2MC4nOworJGFycmF5WydPbGQgRG9nJ10gPSAiQW5kIGlmIHlvdSB3YW50XG4gdG8gcHJlc2VydmUgbGluZSBicmVha3MsIFxuZ28gYWhlYWQhIjsKKyRhcnJheVsna2V5OndpdGhjb2xvbiddID0gIlNob3VsZCBzdXBwb3J0IHRoaXMgdG8iOworCiskeWFtbCA9IFNweWM6OllBTUxEdW1wKCRhcnJheSw0LDYwKTsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvZXhhbXBsZXMveWFtbC1sb2FkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvZXhhbXBsZXMveWFtbC1sb2FkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTQ1N2UxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9leGFtcGxlcy95YW1sLWxvYWQucGhwCkBAIC0wLDAgKzEsMjEgQEAKKzw/cGhwCisKKyMKKyMgICAgUyBQIFkgQworIyAgICAgIGEgc2ltcGxlIHBocCB5YW1sIGNsYXNzCisjCisjIGxpY2Vuc2U6IFtNSVQgTGljZW5zZSwgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBdCisjCisKK2luY2x1ZGUoJy4uL1NweWMucGhwJyk7CisKKyRhcnJheSA9IFNweWM6OllBTUxMb2FkKCcuLi9zcHljLnlhbWwnKTsKKworZWNobyAnPHByZT48YSBocmVmPSJzcHljLnlhbWwiPnNweWMueWFtbDwvYT4gbG9hZGVkIGludG8gUEhQOjxici8+JzsKK3ByaW50X3IoJGFycmF5KTsKK2VjaG8gJzwvcHJlPic7CisKKworZWNobyAnPHByZT5ZQU1MIERhdGEgZHVtcGVkIGJhY2s6PGJyLz4nOworZWNobyBTcHljOjpZQU1MRHVtcCgkYXJyYXkpOworZWNobyAnPC9wcmU+JzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvcGhwNC81dG80LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvcGhwNC81dG80LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTQ4Njk0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9waHA0LzV0bzQucGhwCkBAIC0wLDAgKzEsMTcgQEAKKzw/cGhwCisKK3BocDV0bzQgKCIuLi9zcHljLnBocCIsICdzcHljLWxhdGVzdC5waHA0Jyk7CisKK2Z1bmN0aW9uIHBocDV0bzQgKCRzcmMsICRkZXN0KSB7CisgICRjb2RlID0gZmlsZV9nZXRfY29udGVudHMgKCRzcmMpOworICAkY29kZSA9IHByZWdfcmVwbGFjZSAoJyMocHVibGljfHByaXZhdGV8cHJvdGVjdGVkKVxzK1wkI2knLCAndmFyIFwkJywgJGNvZGUpOworICAkY29kZSA9IHByZWdfcmVwbGFjZSAoJyMocHVibGljfHByaXZhdGV8cHJvdGVjdGVkKVxzK3N0YXRpY1xzK1wkI2knLCAndmFyIFwkJywgJGNvZGUpOworICAkY29kZSA9IHByZWdfcmVwbGFjZSAoJyMocHVibGljfHByaXZhdGV8cHJvdGVjdGVkKVxzK2Z1bmN0aW9uI2knLCAnZnVuY3Rpb24nLCAkY29kZSk7CisgICRjb2RlID0gcHJlZ19yZXBsYWNlICgnIyhwdWJsaWN8cHJpdmF0ZXxwcm90ZWN0ZWQpXHMrc3RhdGljXHMrZnVuY3Rpb24jaScsICdmdW5jdGlvbicsICRjb2RlKTsKKyAgJGNvZGUgPSBwcmVnX3JlcGxhY2UgKCcjdGhyb3cgbmV3IEV4Y2VwdGlvblxcKChbXildKilcXCkjaScsICd0cmlnZ2VyX2Vycm9yKCQxLEVfVVNFUl9FUlJPUiknLCAkY29kZSk7CisgICRjb2RlID0gc3RyX3JlcGxhY2UgKCdzZWxmOjonLCAnJHRoaXMtPicsICRjb2RlKTsKKyAgJGYgPSBmb3BlbiAoJGRlc3QsICd3Jyk7CisgIGZ3cml0ZSgkZiwgJGNvZGUpOworICBmY2xvc2UgKCRmKTsKKyAgcHJpbnQgIldyaXR0ZW4gdG8gJGRlc3QuXG4iOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvcGhwNC9zcHljLnBocDQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3BocDQvc3B5Yy5waHA0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczZjA4Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3BocDQvc3B5Yy5waHA0CkBAIC0wLDAgKzEsMTAyMyBAQAorPD9waHAKKy8qKgorICAgKiBTcHljIC0tIEEgU2ltcGxlIFBIUCBZQU1MIENsYXNzCisgICAqIEB2ZXJzaW9uIDAuNC41CisgICAqIEBhdXRob3IgVmxhZCBBbmRlcnNlbiA8dmxhZC5hbmRlcnNlbkBnbWFpbC5jb20+CisgICAqIEBhdXRob3IgQ2hyaXMgV2Fuc3RyYXRoIDxjaHJpc0Bvem1tLm9yZz4KKyAgICogQGxpbmsgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3NweWMvCisgICAqIEBjb3B5cmlnaHQgQ29weXJpZ2h0IDIwMDUtMjAwNiBDaHJpcyBXYW5zdHJhdGgsIDIwMDYtMjAwOSBWbGFkIEFuZGVyc2VuCisgICAqIEBsaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwIE1JVCBMaWNlbnNlCisgICAqIEBwYWNrYWdlIFNweWMKKyAgICovCisKK2lmICghZnVuY3Rpb25fZXhpc3RzKCdzcHljX2xvYWQnKSkgeworICAvKioKKyAgICogUGFyc2VzIFlBTUwgdG8gYXJyYXkuCisgICAqIEBwYXJhbSBzdHJpbmcgJHN0cmluZyBZQU1MIHN0cmluZy4KKyAgICogQHJldHVybiBhcnJheQorICAgKi8KKyAgZnVuY3Rpb24gc3B5Y19sb2FkICgkc3RyaW5nKSB7CisgICAgcmV0dXJuIFNweWM6OllBTUxMb2FkU3RyaW5nKCRzdHJpbmcpOworICB9Cit9CisKK2lmICghZnVuY3Rpb25fZXhpc3RzKCdzcHljX2xvYWRfZmlsZScpKSB7CisgIC8qKgorICAgKiBQYXJzZXMgWUFNTCB0byBhcnJheS4KKyAgICogQHBhcmFtIHN0cmluZyAkZmlsZSBQYXRoIHRvIFlBTUwgZmlsZS4KKyAgICogQHJldHVybiBhcnJheQorICAgKi8KKyAgZnVuY3Rpb24gc3B5Y19sb2FkX2ZpbGUgKCRmaWxlKSB7CisgICAgcmV0dXJuIFNweWM6OllBTUxMb2FkKCRmaWxlKTsKKyAgfQorfQorCisvKioKKyAgICogVGhlIFNpbXBsZSBQSFAgWUFNTCBDbGFzcy4KKyAgICoKKyAgICogVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCB0byByZWFkIGEgWUFNTCBmaWxlIGFuZCBjb252ZXJ0IGl0cyBjb250ZW50cworICAgKiBpbnRvIGEgUEhQIGFycmF5LiAgSXQgY3VycmVudGx5IHN1cHBvcnRzIGEgdmVyeSBsaW1pdGVkIHN1YnNlY3Rpb24gb2YKKyAgICogdGhlIFlBTUwgc3BlYy4KKyAgICoKKyAgICogVXNhZ2U6CisgICAqIDxjb2RlPgorICAgKiAgICRTcHljICA9IG5ldyBTcHljOworICAgKiAgICRhcnJheSA9ICRTcHljLT5sb2FkKCRmaWxlKTsKKyAgICogPC9jb2RlPgorICAgKiBvcjoKKyAgICogPGNvZGU+CisgICAqICAgJGFycmF5ID0gU3B5Yzo6WUFNTExvYWQoJGZpbGUpOworICAgKiA8L2NvZGU+CisgICAqIG9yOgorICAgKiA8Y29kZT4KKyAgICogICAkYXJyYXkgPSBzcHljX2xvYWRfZmlsZSgkZmlsZSk7CisgICAqIDwvY29kZT4KKyAgICogQHBhY2thZ2UgU3B5YworICAgKi8KK2NsYXNzIFNweWMgeworCisgIC8vIFNFVFRJTkdTCisKKyAgLyoqCisgICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgZm9yY2UgWUFNTER1bXAgdG8gZW5jbG9zZSBhbnkgc3RyaW5nIHZhbHVlIGluCisgICAqIHF1b3Rlcy4gIEZhbHNlIGJ5IGRlZmF1bHQuCisgICAqIAorICAgKiBAdmFyIGJvb2wKKyAgICovCisgIHZhciAkc2V0dGluZ19kdW1wX2ZvcmNlX3F1b3RlcyA9IGZhbHNlOworCisgIC8qKgorICAgKiBTZXR0aW5nIHRoaXMgdG8gdHJ1ZSB3aWxsIGZvcnNlIFlBTUxMb2FkIHRvIHVzZSBzeWNrX2xvYWQgZnVuY3Rpb24gd2hlbgorICAgKiBwb3NzaWJsZS4gRmFsc2UgYnkgZGVmYXVsdC4KKyAgICogQHZhciBib29sCisgICAqLworICB2YXIgJHNldHRpbmdfdXNlX3N5Y2tfaXNfcG9zc2libGUgPSBmYWxzZTsKKworCisKKyAgLyoqI0ArCisgICogQGFjY2VzcyBwcml2YXRlCisgICogQHZhciBtaXhlZAorICAqLworICB2YXIgJF9kdW1wSW5kZW50OworICB2YXIgJF9kdW1wV29yZFdyYXA7CisgIHZhciAkX2NvbnRhaW5zR3JvdXBBbmNob3IgPSBmYWxzZTsKKyAgdmFyICRfY29udGFpbnNHcm91cEFsaWFzID0gZmFsc2U7CisgIHZhciAkcGF0aDsKKyAgdmFyICRyZXN1bHQ7CisgIHZhciAkTGl0ZXJhbFBsYWNlSG9sZGVyID0gJ19fX1lBTUxfTGl0ZXJhbF9CbG9ja19fXyc7CisgIHZhciAkU2F2ZWRHcm91cHMgPSBhcnJheSgpOworICB2YXIgJGluZGVudDsKKyAgLyoqCisgICAqIFBhdGggbW9kaWZpZXIgdGhhdCBzaG91bGQgYmUgYXBwbGllZCBhZnRlciBhZGRpbmcgY3VycmVudCBlbGVtZW50LgorICAgKiBAdmFyIGFycmF5CisgICAqLworICB2YXIgJGRlbGF5ZWRQYXRoID0gYXJyYXkoKTsKKworICAvKiojQCsKKyAgKiBAYWNjZXNzIHB1YmxpYworICAqIEB2YXIgbWl4ZWQKKyAgKi8KKyAgdmFyICRfbm9kZUlkOworCisvKioKKyAqIExvYWQgYSB2YWxpZCBZQU1MIHN0cmluZyB0byBTcHljLgorICogQHBhcmFtIHN0cmluZyAkaW5wdXQKKyAqIEByZXR1cm4gYXJyYXkKKyAqLworICBmdW5jdGlvbiBsb2FkICgkaW5wdXQpIHsKKyAgICByZXR1cm4gJHRoaXMtPl9fbG9hZFN0cmluZygkaW5wdXQpOworICB9CisKKyAvKioKKyAqIExvYWQgYSB2YWxpZCBZQU1MIGZpbGUgdG8gU3B5Yy4KKyAqIEBwYXJhbSBzdHJpbmcgJGZpbGUKKyAqIEByZXR1cm4gYXJyYXkKKyAqLworICBmdW5jdGlvbiBsb2FkRmlsZSAoJGZpbGUpIHsKKyAgICByZXR1cm4gJHRoaXMtPl9fbG9hZCgkZmlsZSk7CisgIH0KKworICAvKioKKyAgICAgKiBMb2FkIFlBTUwgaW50byBhIFBIUCBhcnJheSBzdGF0aWNhbGx5CisgICAgICoKKyAgICAgKiBUaGUgbG9hZCBtZXRob2QsIHdoZW4gc3VwcGxpZWQgd2l0aCBhIFlBTUwgc3RyZWFtIChzdHJpbmcgb3IgZmlsZSksCisgICAgICogd2lsbCBkbyBpdHMgYmVzdCB0byBjb252ZXJ0IFlBTUwgaW4gYSBmaWxlIGludG8gYSBQSFAgYXJyYXkuICBQcmV0dHkKKyAgICAgKiBzaW1wbGUuCisgICAgICogIFVzYWdlOgorICAgICAqICA8Y29kZT4KKyAgICAgKiAgICRhcnJheSA9IFNweWM6OllBTUxMb2FkKCdsdWNreS55YW1sJyk7CisgICAgICogICBwcmludF9yKCRhcnJheSk7CisgICAgICogIDwvY29kZT4KKyAgICAgKiBAYWNjZXNzIHB1YmxpYworICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpbnB1dCBQYXRoIG9mIFlBTUwgZmlsZSBvciBzdHJpbmcgY29udGFpbmluZyBZQU1MCisgICAgICovCisgIGZ1bmN0aW9uIFlBTUxMb2FkKCRpbnB1dCkgeworICAgICRTcHljID0gbmV3IFNweWM7CisgICAgcmV0dXJuICRTcHljLT5fX2xvYWQoJGlucHV0KTsKKyAgfQorCisgIC8qKgorICAgICAqIExvYWQgYSBzdHJpbmcgb2YgWUFNTCBpbnRvIGEgUEhQIGFycmF5IHN0YXRpY2FsbHkKKyAgICAgKgorICAgICAqIFRoZSBsb2FkIG1ldGhvZCwgd2hlbiBzdXBwbGllZCB3aXRoIGEgWUFNTCBzdHJpbmcsIHdpbGwgZG8gaXRzIGJlc3QgCisgICAgICogdG8gY29udmVydCBZQU1MIGluIGEgc3RyaW5nIGludG8gYSBQSFAgYXJyYXkuICBQcmV0dHkgc2ltcGxlLgorICAgICAqCisgICAgICogTm90ZTogdXNlIHRoaXMgZnVuY3Rpb24gaWYgeW91IGRvbid0IHdhbnQgZmlsZXMgZnJvbSB0aGUgZmlsZSBzeXN0ZW0KKyAgICAgKiBsb2FkZWQgYW5kIHByb2Nlc3NlZCBhcyBZQU1MLiAgVGhpcyBpcyBvZiBpbnRlcmVzdCB0byBwZW9wbGUgY29uY2VybmVkCisgICAgICogYWJvdXQgc2VjdXJpdHkgd2hvc2UgaW5wdXQgaXMgZnJvbSBhIHN0cmluZy4KKyAgICAgKgorICAgICAqICBVc2FnZToKKyAgICAgKiAgPGNvZGU+CisgICAgICogICAkYXJyYXkgPSBTcHljOjpZQU1MTG9hZFN0cmluZygiLS0tXG4wOiBoZWxsbyB3b3JsZFxuIik7CisgICAgICogICBwcmludF9yKCRhcnJheSk7CisgICAgICogIDwvY29kZT4KKyAgICAgKiBAYWNjZXNzIHB1YmxpYworICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpbnB1dCBTdHJpbmcgY29udGFpbmluZyBZQU1MCisgICAgICovCisgIGZ1bmN0aW9uIFlBTUxMb2FkU3RyaW5nKCRpbnB1dCkgeworICAgICRTcHljID0gbmV3IFNweWM7CisgICAgcmV0dXJuICRTcHljLT5fX2xvYWRTdHJpbmcoJGlucHV0KTsKKyAgfQorCisgIC8qKgorICAgICAqIER1bXAgWUFNTCBmcm9tIFBIUCBhcnJheSBzdGF0aWNhbGx5CisgICAgICoKKyAgICAgKiBUaGUgZHVtcCBtZXRob2QsIHdoZW4gc3VwcGxpZWQgd2l0aCBhbiBhcnJheSwgd2lsbCBkbyBpdHMgYmVzdAorICAgICAqIHRvIGNvbnZlcnQgdGhlIGFycmF5IGludG8gZnJpZW5kbHkgWUFNTC4gIFByZXR0eSBzaW1wbGUuICBGZWVsIGZyZWUgdG8KKyAgICAgKiBzYXZlIHRoZSByZXR1cm5lZCBzdHJpbmcgYXMgbm90aGluZy55YW1sIGFuZCBwYXNzIGl0IGFyb3VuZC4KKyAgICAgKgorICAgICAqIE9oLCBhbmQgeW91IGNhbiBkZWNpZGUgaG93IGJpZyB0aGUgaW5kZW50IGlzIGFuZCB3aGF0IHRoZSB3b3Jkd3JhcAorICAgICAqIGZvciBmb2xkaW5nIGlzLiAgUHJldHR5IGNvb2wgLS0ganVzdCBwYXNzIGluICdmYWxzZScgZm9yIGVpdGhlciBpZgorICAgICAqIHlvdSB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4KKyAgICAgKgorICAgICAqIEluZGVudCdzIGRlZmF1bHQgaXMgMiBzcGFjZXMsIHdvcmR3cmFwJ3MgZGVmYXVsdCBpcyA0MCBjaGFyYWN0ZXJzLiAgQW5kCisgICAgICogeW91IGNhbiB0dXJuIG9mZiB3b3Jkd3JhcCBieSBwYXNzaW5nIGluIDAuCisgICAgICoKKyAgICAgKiBAYWNjZXNzIHB1YmxpYworICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtIGFycmF5ICRhcnJheSBQSFAgYXJyYXkKKyAgICAgKiBAcGFyYW0gaW50ICRpbmRlbnQgUGFzcyBpbiBmYWxzZSB0byB1c2UgdGhlIGRlZmF1bHQsIHdoaWNoIGlzIDIKKyAgICAgKiBAcGFyYW0gaW50ICR3b3Jkd3JhcCBQYXNzIGluIDAgZm9yIG5vIHdvcmR3cmFwLCBmYWxzZSBmb3IgZGVmYXVsdCAoNDApCisgICAgICovCisgIGZ1bmN0aW9uIFlBTUxEdW1wKCRhcnJheSwkaW5kZW50ID0gZmFsc2UsJHdvcmR3cmFwID0gZmFsc2UpIHsKKyAgICAkc3B5YyA9IG5ldyBTcHljOworICAgIHJldHVybiAkc3B5Yy0+ZHVtcCgkYXJyYXksJGluZGVudCwkd29yZHdyYXApOworICB9CisKKworICAvKioKKyAgICAgKiBEdW1wIFBIUCBhcnJheSB0byBZQU1MCisgICAgICoKKyAgICAgKiBUaGUgZHVtcCBtZXRob2QsIHdoZW4gc3VwcGxpZWQgd2l0aCBhbiBhcnJheSwgd2lsbCBkbyBpdHMgYmVzdAorICAgICAqIHRvIGNvbnZlcnQgdGhlIGFycmF5IGludG8gZnJpZW5kbHkgWUFNTC4gIFByZXR0eSBzaW1wbGUuICBGZWVsIGZyZWUgdG8KKyAgICAgKiBzYXZlIHRoZSByZXR1cm5lZCBzdHJpbmcgYXMgdGFzdGVmdWwueWFtbCBhbmQgcGFzcyBpdCBhcm91bmQuCisgICAgICoKKyAgICAgKiBPaCwgYW5kIHlvdSBjYW4gZGVjaWRlIGhvdyBiaWcgdGhlIGluZGVudCBpcyBhbmQgd2hhdCB0aGUgd29yZHdyYXAKKyAgICAgKiBmb3IgZm9sZGluZyBpcy4gIFByZXR0eSBjb29sIC0tIGp1c3QgcGFzcyBpbiAnZmFsc2UnIGZvciBlaXRoZXIgaWYKKyAgICAgKiB5b3Ugd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCisgICAgICoKKyAgICAgKiBJbmRlbnQncyBkZWZhdWx0IGlzIDIgc3BhY2VzLCB3b3Jkd3JhcCdzIGRlZmF1bHQgaXMgNDAgY2hhcmFjdGVycy4gIEFuZAorICAgICAqIHlvdSBjYW4gdHVybiBvZmYgd29yZHdyYXAgYnkgcGFzc2luZyBpbiAwLgorICAgICAqCisgICAgICogQGFjY2VzcyBwdWJsaWMKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqIEBwYXJhbSBhcnJheSAkYXJyYXkgUEhQIGFycmF5CisgICAgICogQHBhcmFtIGludCAkaW5kZW50IFBhc3MgaW4gZmFsc2UgdG8gdXNlIHRoZSBkZWZhdWx0LCB3aGljaCBpcyAyCisgICAgICogQHBhcmFtIGludCAkd29yZHdyYXAgUGFzcyBpbiAwIGZvciBubyB3b3Jkd3JhcCwgZmFsc2UgZm9yIGRlZmF1bHQgKDQwKQorICAgICAqLworICBmdW5jdGlvbiBkdW1wKCRhcnJheSwkaW5kZW50ID0gZmFsc2UsJHdvcmR3cmFwID0gZmFsc2UpIHsKKyAgICAvLyBEdW1wcyB0byBzb21lIHZlcnkgY2xlYW4gWUFNTC4gIFdlJ2xsIGhhdmUgdG8gYWRkIHNvbWUgbW9yZSBmZWF0dXJlcworICAgIC8vIGFuZCBvcHRpb25zIHNvb24uICBBbmQgYmV0dGVyIHN1cHBvcnQgZm9yIGZvbGRpbmcuCisKKyAgICAvLyBOZXcgZmVhdHVyZXMgYW5kIG9wdGlvbnMuCisgICAgaWYgKCRpbmRlbnQgPT09IGZhbHNlIG9yICFpc19udW1lcmljKCRpbmRlbnQpKSB7CisgICAgICAkdGhpcy0+X2R1bXBJbmRlbnQgPSAyOworICAgIH0gZWxzZSB7CisgICAgICAkdGhpcy0+X2R1bXBJbmRlbnQgPSAkaW5kZW50OworICAgIH0KKworICAgIGlmICgkd29yZHdyYXAgPT09IGZhbHNlIG9yICFpc19udW1lcmljKCR3b3Jkd3JhcCkpIHsKKyAgICAgICR0aGlzLT5fZHVtcFdvcmRXcmFwID0gNDA7CisgICAgfSBlbHNlIHsKKyAgICAgICR0aGlzLT5fZHVtcFdvcmRXcmFwID0gJHdvcmR3cmFwOworICAgIH0KKworICAgIC8vIE5ldyBZQU1MIGRvY3VtZW50CisgICAgJHN0cmluZyA9ICItLS1cbiI7CisKKyAgICAvLyBTdGFydCBhdCB0aGUgYmFzZSBvZiB0aGUgYXJyYXkgYW5kIG1vdmUgdGhyb3VnaCBpdC4KKyAgICBpZiAoJGFycmF5KSB7CisgICAgICAkYXJyYXkgPSAoYXJyYXkpJGFycmF5OworICAgICAgJGZpcnN0X2tleSA9IGtleSgkYXJyYXkpOworICAgICAgCisgICAgICAkcHJldmlvdXNfa2V5ID0gLTE7CisgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpIHsKKyAgICAgICAgJHN0cmluZyAuPSAkdGhpcy0+X3lhbWxpemUoJGtleSwkdmFsdWUsMCwkcHJldmlvdXNfa2V5LCAkZmlyc3Rfa2V5KTsKKyAgICAgICAgJHByZXZpb3VzX2tleSA9ICRrZXk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiAkc3RyaW5nOworICB9CisKKyAgLyoqCisgICAgICogQXR0ZW1wdHMgdG8gY29udmVydCBhIGtleSAvIHZhbHVlIGFycmF5IGl0ZW0gdG8gWUFNTAorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtICRrZXkgVGhlIG5hbWUgb2YgdGhlIGtleQorICAgICAqIEBwYXJhbSAkdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBpdGVtCisgICAgICogQHBhcmFtICRpbmRlbnQgVGhlIGluZGVudCBvZiB0aGUgY3VycmVudCBub2RlCisgICAgICovCisgIGZ1bmN0aW9uIF95YW1saXplKCRrZXksJHZhbHVlLCRpbmRlbnQsICRwcmV2aW91c19rZXkgPSAtMSwgJGZpcnN0X2tleSA9IDApIHsKKyAgICBpZiAoaXNfYXJyYXkoJHZhbHVlKSkgeworICAgICAgaWYgKGVtcHR5ICgkdmFsdWUpKQorICAgICAgICByZXR1cm4gJHRoaXMtPl9kdW1wTm9kZSgka2V5LCBhcnJheSgpLCAkaW5kZW50LCAkcHJldmlvdXNfa2V5LCAkZmlyc3Rfa2V5KTsKKyAgICAgIC8vIEl0IGhhcyBjaGlsZHJlbi4gIFdoYXQgdG8gZG8/CisgICAgICAvLyBNYWtlIGl0IHRoZSByaWdodCBraW5kIG9mIGl0ZW0KKyAgICAgICRzdHJpbmcgPSAkdGhpcy0+X2R1bXBOb2RlKCRrZXksIE5VTEwsICRpbmRlbnQsICRwcmV2aW91c19rZXksICRmaXJzdF9rZXkpOworICAgICAgLy8gQWRkIHRoZSBpbmRlbnQKKyAgICAgICRpbmRlbnQgKz0gJHRoaXMtPl9kdW1wSW5kZW50OworICAgICAgLy8gWWFtbGl6ZSB0aGUgYXJyYXkKKyAgICAgICRzdHJpbmcgLj0gJHRoaXMtPl95YW1saXplQXJyYXkoJHZhbHVlLCRpbmRlbnQpOworICAgIH0gZWxzZWlmICghaXNfYXJyYXkoJHZhbHVlKSkgeworICAgICAgLy8gSXQgZG9lc24ndCBoYXZlIGNoaWxkcmVuLiAgWWlwLgorICAgICAgJHN0cmluZyA9ICR0aGlzLT5fZHVtcE5vZGUoJGtleSwgJHZhbHVlLCAkaW5kZW50LCAkcHJldmlvdXNfa2V5LCAkZmlyc3Rfa2V5KTsKKyAgICB9CisgICAgcmV0dXJuICRzdHJpbmc7CisgIH0KKworICAvKioKKyAgICAgKiBBdHRlbXB0cyB0byBjb252ZXJ0IGFuIGFycmF5IHRvIFlBTUwKKyAgICAgKiBAYWNjZXNzIHByaXZhdGUKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqIEBwYXJhbSAkYXJyYXkgVGhlIGFycmF5IHlvdSB3YW50IHRvIGNvbnZlcnQKKyAgICAgKiBAcGFyYW0gJGluZGVudCBUaGUgaW5kZW50IG9mIHRoZSBjdXJyZW50IGxldmVsCisgICAgICovCisgIGZ1bmN0aW9uIF95YW1saXplQXJyYXkoJGFycmF5LCRpbmRlbnQpIHsKKyAgICBpZiAoaXNfYXJyYXkoJGFycmF5KSkgeworICAgICAgJHN0cmluZyA9ICcnOworICAgICAgJHByZXZpb3VzX2tleSA9IC0xOworICAgICAgJGZpcnN0X2tleSA9IGtleSgkYXJyYXkpOworICAgICAgZm9yZWFjaCAoJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICAgICRzdHJpbmcgLj0gJHRoaXMtPl95YW1saXplKCRrZXksICR2YWx1ZSwgJGluZGVudCwgJHByZXZpb3VzX2tleSwgJGZpcnN0X2tleSk7CisgICAgICAgICRwcmV2aW91c19rZXkgPSAka2V5OworICAgICAgfQorICAgICAgcmV0dXJuICRzdHJpbmc7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0KKworICAvKioKKyAgICAgKiBSZXR1cm5zIFlBTUwgZnJvbSBhIGtleSBhbmQgYSB2YWx1ZQorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtICRrZXkgVGhlIG5hbWUgb2YgdGhlIGtleQorICAgICAqIEBwYXJhbSAkdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBpdGVtCisgICAgICogQHBhcmFtICRpbmRlbnQgVGhlIGluZGVudCBvZiB0aGUgY3VycmVudCBub2RlCisgICAgICovCisgIGZ1bmN0aW9uIF9kdW1wTm9kZSgka2V5LCAkdmFsdWUsICRpbmRlbnQsICRwcmV2aW91c19rZXkgPSAtMSwgJGZpcnN0X2tleSA9IDApIHsKKyAgICAvLyBkbyBzb21lIGZvbGRpbmcgaGVyZSwgZm9yIGJsb2NrcworICAgIGlmIChpc19zdHJpbmcgKCR2YWx1ZSkgJiYgKChzdHJwb3MoJHZhbHVlLCJcbiIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCI6ICIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCItICIpICE9PSBmYWxzZSB8fAorICAgICAgc3RycG9zKCR2YWx1ZSwiKiIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCIjIikgIT09IGZhbHNlIHx8IHN0cnBvcygkdmFsdWUsIjwiKSAhPT0gZmFsc2UgfHwgc3RycG9zKCR2YWx1ZSwiPiIpICE9PSBmYWxzZSB8fAorICAgICAgc3RycG9zKCR2YWx1ZSwiWyIpICE9PSBmYWxzZSB8fCBzdHJwb3MoJHZhbHVlLCJdIikgIT09IGZhbHNlIHx8IHN0cnBvcygkdmFsdWUsInsiKSAhPT0gZmFsc2UgfHwgc3RycG9zKCR2YWx1ZSwifSIpICE9PSBmYWxzZSkgfHwgc3Vic3RyICgkdmFsdWUsIC0xLCAxKSA9PSAnOicpKSB7CisgICAgICAkdmFsdWUgPSAkdGhpcy0+X2RvTGl0ZXJhbEJsb2NrKCR2YWx1ZSwkaW5kZW50KTsKKyAgICB9IGVsc2UgeworICAgICAgJHZhbHVlICA9ICR0aGlzLT5fZG9Gb2xkaW5nKCR2YWx1ZSwkaW5kZW50KTsKKyAgICAgIGlmIChpc19ib29sKCR2YWx1ZSkpIHsKKyAgICAgICAgJHZhbHVlID0gKCR2YWx1ZSkgPyAidHJ1ZSIgOiAiZmFsc2UiOworICAgICAgfQorICAgIH0KKworICAgIGlmICgkdmFsdWUgPT09IGFycmF5KCkpICR2YWx1ZSA9ICdbIF0nOworCisgICAgJHNwYWNlcyA9IHN0cl9yZXBlYXQoJyAnLCRpbmRlbnQpOworCisgICAgaWYgKGlzX2ludCgka2V5KSAmJiAka2V5IC0gMSA9PSAkcHJldmlvdXNfa2V5ICYmICRmaXJzdF9rZXk9PT0wKSB7CisgICAgICAvLyBJdCdzIGEgc2VxdWVuY2UKKyAgICAgICRzdHJpbmcgPSAkc3BhY2VzLictICcuJHZhbHVlLiJcbiI7CisgICAgfSBlbHNlIHsKKyAgICAgIGlmICgkZmlyc3Rfa2V5PT09MCkgIHRocm93IG5ldyBFeGNlcHRpb24oJ0tleXMgYXJlIGFsbCBzY3Jld3kuICBUaGUgZmlyc3Qgb25lIHdhcyB6ZXJvLCBub3cgaXRcJ3MgIicuICRrZXkgLiciJyk7CisgICAgICAvLyBJdCdzIG1hcHBlZAorICAgICAgaWYgKHN0cnBvcygka2V5LCAiOiIpICE9PSBmYWxzZSkgeyAka2V5ID0gJyInIC4gJGtleSAuICciJzsgfQorICAgICAgJHN0cmluZyA9ICRzcGFjZXMuJGtleS4nOiAnLiR2YWx1ZS4iXG4iOworICAgIH0KKyAgICByZXR1cm4gJHN0cmluZzsKKyAgfQorCisgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsaXRlcmFsIGJsb2NrIGZvciBkdW1waW5nCisgICAgICogQGFjY2VzcyBwcml2YXRlCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gJHZhbHVlCisgICAgICogQHBhcmFtICRpbmRlbnQgaW50IFRoZSB2YWx1ZSBvZiB0aGUgaW5kZW50CisgICAgICovCisgIGZ1bmN0aW9uIF9kb0xpdGVyYWxCbG9jaygkdmFsdWUsJGluZGVudCkgeworICAgIGlmIChzdHJwb3MoJHZhbHVlLCAiXG4iKSA9PT0gZmFsc2UgJiYgc3RycG9zKCR2YWx1ZSwgIiciKSA9PT0gZmFsc2UpIHsKKyAgICAgIHJldHVybiBzcHJpbnRmICgiJyVzJyIsICR2YWx1ZSk7CisgICAgfQorICAgIGlmIChzdHJwb3MoJHZhbHVlLCAiXG4iKSA9PT0gZmFsc2UgJiYgc3RycG9zKCR2YWx1ZSwgJyInKSA9PT0gZmFsc2UpIHsKKyAgICAgIHJldHVybiBzcHJpbnRmICgnIiVzIicsICR2YWx1ZSk7CisgICAgfQorICAgICRleHBsb2RlZCA9IGV4cGxvZGUoIlxuIiwkdmFsdWUpOworICAgICRuZXdWYWx1ZSA9ICd8JzsKKyAgICAkaW5kZW50ICArPSAkdGhpcy0+X2R1bXBJbmRlbnQ7CisgICAgJHNwYWNlcyAgID0gc3RyX3JlcGVhdCgnICcsJGluZGVudCk7CisgICAgZm9yZWFjaCAoJGV4cGxvZGVkIGFzICRsaW5lKSB7CisgICAgICAkbmV3VmFsdWUgLj0gIlxuIiAuICRzcGFjZXMgLiB0cmltKCRsaW5lKTsKKyAgICB9CisgICAgcmV0dXJuICRuZXdWYWx1ZTsKKyAgfQorCisgIC8qKgorICAgICAqIEZvbGRzIGEgc3RyaW5nIG9mIHRleHQsIGlmIG5lY2Vzc2FyeQorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICogQHBhcmFtICR2YWx1ZSBUaGUgc3RyaW5nIHlvdSB3aXNoIHRvIGZvbGQKKyAgICAgKi8KKyAgZnVuY3Rpb24gX2RvRm9sZGluZygkdmFsdWUsJGluZGVudCkgeworICAgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHdvcmR3cmFwIGlzIHNldCB0byAwCisKKyAgICBpZiAoJHRoaXMtPl9kdW1wV29yZFdyYXAgIT09IDAgJiYgaXNfc3RyaW5nICgkdmFsdWUpICYmIHN0cmxlbigkdmFsdWUpID4gJHRoaXMtPl9kdW1wV29yZFdyYXApIHsKKyAgICAgICRpbmRlbnQgKz0gJHRoaXMtPl9kdW1wSW5kZW50OworICAgICAgJGluZGVudCA9IHN0cl9yZXBlYXQoJyAnLCRpbmRlbnQpOworICAgICAgJHdyYXBwZWQgPSB3b3Jkd3JhcCgkdmFsdWUsJHRoaXMtPl9kdW1wV29yZFdyYXAsIlxuJGluZGVudCIpOworICAgICAgJHZhbHVlICAgPSAiPlxuIi4kaW5kZW50LiR3cmFwcGVkOworICAgIH0gZWxzZSB7CisgICAgICBpZiAoJHRoaXMtPnNldHRpbmdfZHVtcF9mb3JjZV9xdW90ZXMgJiYgaXNfc3RyaW5nICgkdmFsdWUpKQorICAgICAgICAkdmFsdWUgPSAnIicgLiAkdmFsdWUgLiAnIic7CisgICAgfQorCisKKyAgICByZXR1cm4gJHZhbHVlOworICB9CisKKy8vIExPQURJTkcgRlVOQ1RJT05TCisKKyAgZnVuY3Rpb24gX19sb2FkKCRpbnB1dCkgeworICAgICRTb3VyY2UgPSAkdGhpcy0+bG9hZEZyb21Tb3VyY2UoJGlucHV0KTsKKyAgICByZXR1cm4gJHRoaXMtPmxvYWRXaXRoU291cmNlKCRTb3VyY2UpOworICB9CisKKyAgZnVuY3Rpb24gX19sb2FkU3RyaW5nKCRpbnB1dCkgeworICAgICRTb3VyY2UgPSAkdGhpcy0+bG9hZEZyb21TdHJpbmcoJGlucHV0KTsKKyAgICByZXR1cm4gJHRoaXMtPmxvYWRXaXRoU291cmNlKCRTb3VyY2UpOworICB9CisKKyAgZnVuY3Rpb24gbG9hZFdpdGhTb3VyY2UoJFNvdXJjZSkgeworICAgIGlmIChlbXB0eSAoJFNvdXJjZSkpIHJldHVybiBhcnJheSgpOworICAgIGlmICgkdGhpcy0+c2V0dGluZ191c2Vfc3lja19pc19wb3NzaWJsZSAmJiBmdW5jdGlvbl9leGlzdHMgKCdzeWNrX2xvYWQnKSkgeworICAgICAgJGFycmF5ID0gc3lja19sb2FkIChpbXBsb2RlICgnJywgJFNvdXJjZSkpOworICAgICAgcmV0dXJuIGlzX2FycmF5KCRhcnJheSkgPyAkYXJyYXkgOiBhcnJheSgpOworICAgIH0KKworICAgICR0aGlzLT5wYXRoID0gYXJyYXkoKTsKKyAgICAkdGhpcy0+cmVzdWx0ID0gYXJyYXkoKTsKKworICAgICRjbnQgPSBjb3VudCgkU291cmNlKTsKKyAgICBmb3IgKCRpID0gMDsgJGkgPCAkY250OyAkaSsrKSB7CisgICAgICAkbGluZSA9ICRTb3VyY2VbJGldOworICAgICAgCisgICAgICAkdGhpcy0+aW5kZW50ID0gc3RybGVuKCRsaW5lKSAtIHN0cmxlbihsdHJpbSgkbGluZSkpOworICAgICAgJHRlbXBQYXRoID0gJHRoaXMtPmdldFBhcmVudFBhdGhCeUluZGVudCgkdGhpcy0+aW5kZW50KTsKKyAgICAgICRsaW5lID0gJHRoaXMtPnN0cmlwSW5kZW50KCRsaW5lLCAkdGhpcy0+aW5kZW50KTsKKyAgICAgIGlmICgkdGhpcy0+aXNDb21tZW50KCRsaW5lKSkgY29udGludWU7CisgICAgICBpZiAoJHRoaXMtPmlzRW1wdHkoJGxpbmUpKSBjb250aW51ZTsKKyAgICAgICR0aGlzLT5wYXRoID0gJHRlbXBQYXRoOworCisgICAgICAkbGl0ZXJhbEJsb2NrU3R5bGUgPSAkdGhpcy0+c3RhcnRzTGl0ZXJhbEJsb2NrKCRsaW5lKTsKKyAgICAgIGlmICgkbGl0ZXJhbEJsb2NrU3R5bGUpIHsKKyAgICAgICAgJGxpbmUgPSBydHJpbSAoJGxpbmUsICRsaXRlcmFsQmxvY2tTdHlsZSAuICIgXG4iKTsKKyAgICAgICAgJGxpdGVyYWxCbG9jayA9ICcnOworICAgICAgICAkbGluZSAuPSAkdGhpcy0+TGl0ZXJhbFBsYWNlSG9sZGVyOworCisgICAgICAgIHdoaWxlICgrKyRpIDwgJGNudCAmJiAkdGhpcy0+bGl0ZXJhbEJsb2NrQ29udGludWVzKCRTb3VyY2VbJGldLCAkdGhpcy0+aW5kZW50KSkgeworICAgICAgICAgICRsaXRlcmFsQmxvY2sgPSAkdGhpcy0+YWRkTGl0ZXJhbExpbmUoJGxpdGVyYWxCbG9jaywgJFNvdXJjZVskaV0sICRsaXRlcmFsQmxvY2tTdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgJGktLTsKKyAgICAgIH0KKworICAgICAgd2hpbGUgKCsrJGkgPCAkY250ICYmICR0aGlzLT5ncmVlZGlseU5lZWROZXh0TGluZSgkbGluZSkpIHsKKyAgICAgICAgJGxpbmUgPSBydHJpbSAoJGxpbmUsICIgXG5cdFxyIikgLiAnICcgLiBsdHJpbSAoJFNvdXJjZVskaV0sICIgXHQiKTsKKyAgICAgIH0KKyAgICAgICRpLS07CisKKworCisgICAgICBpZiAoc3RycG9zICgkbGluZSwgJyMnKSkgeworICAgICAgICBpZiAoc3RycG9zICgkbGluZSwgJyInKSA9PT0gZmFsc2UgJiYgc3RycG9zICgkbGluZSwgIiciKSA9PT0gZmFsc2UpCisgICAgICAgICAgJGxpbmUgPSBwcmVnX3JlcGxhY2UoJy9ccysjKC4rKSQvJywnJywkbGluZSk7CisgICAgICB9CisKKyAgICAgICRsaW5lQXJyYXkgPSAkdGhpcy0+X3BhcnNlTGluZSgkbGluZSk7CisKKyAgICAgIGlmICgkbGl0ZXJhbEJsb2NrU3R5bGUpCisgICAgICAgICRsaW5lQXJyYXkgPSAkdGhpcy0+cmV2ZXJ0TGl0ZXJhbFBsYWNlSG9sZGVyICgkbGluZUFycmF5LCAkbGl0ZXJhbEJsb2NrKTsKKworICAgICAgJHRoaXMtPmFkZEFycmF5KCRsaW5lQXJyYXksICR0aGlzLT5pbmRlbnQpOworCisgICAgICBmb3JlYWNoICgkdGhpcy0+ZGVsYXllZFBhdGggYXMgJGluZGVudCA9PiAkZGVsYXllZFBhdGgpCisgICAgICAgICR0aGlzLT5wYXRoWyRpbmRlbnRdID0gJGRlbGF5ZWRQYXRoOworCisgICAgICAkdGhpcy0+ZGVsYXllZFBhdGggPSBhcnJheSgpOworCisgICAgfQorICAgIHJldHVybiAkdGhpcy0+cmVzdWx0OworICB9CisKKyAgZnVuY3Rpb24gbG9hZEZyb21Tb3VyY2UgKCRpbnB1dCkgeworICAgIGlmICghZW1wdHkoJGlucHV0KSAmJiBzdHJwb3MoJGlucHV0LCAiXG4iKSA9PT0gZmFsc2UgJiYgZmlsZV9leGlzdHMoJGlucHV0KSkKKyAgICByZXR1cm4gZmlsZSgkaW5wdXQpOworCisgICAgcmV0dXJuICR0aGlzLT5sb2FkRnJvbVN0cmluZygkaW5wdXQpOworICB9CisKKyAgZnVuY3Rpb24gbG9hZEZyb21TdHJpbmcgKCRpbnB1dCkgeworICAgICRsaW5lcyA9IGV4cGxvZGUoIlxuIiwkaW5wdXQpOworICAgIGZvcmVhY2ggKCRsaW5lcyBhcyAkayA9PiAkXykgeworICAgICAgJGxpbmVzWyRrXSA9IHJ0cmltICgkXywgIlxyIik7CisgICAgfQorICAgIHJldHVybiAkbGluZXM7CisgIH0KKworICAvKioKKyAgICAgKiBQYXJzZXMgWUFNTCBjb2RlIGFuZCByZXR1cm5zIGFuIGFycmF5IGZvciBhIG5vZGUKKyAgICAgKiBAYWNjZXNzIHByaXZhdGUKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICogQHBhcmFtIHN0cmluZyAkbGluZSBBIGxpbmUgZnJvbSB0aGUgWUFNTCBmaWxlCisgICAgICovCisgIGZ1bmN0aW9uIF9wYXJzZUxpbmUoJGxpbmUpIHsKKyAgICBpZiAoISRsaW5lKSByZXR1cm4gYXJyYXkoKTsKKyAgICAkbGluZSA9IHRyaW0oJGxpbmUpOworCisgICAgaWYgKCEkbGluZSkgcmV0dXJuIGFycmF5KCk7CisgICAgJGFycmF5ID0gYXJyYXkoKTsKKworICAgICRncm91cCA9ICR0aGlzLT5ub2RlQ29udGFpbnNHcm91cCgkbGluZSk7CisgICAgaWYgKCRncm91cCkgeworICAgICAgJHRoaXMtPmFkZEdyb3VwKCRsaW5lLCAkZ3JvdXApOworICAgICAgJGxpbmUgPSAkdGhpcy0+c3RyaXBHcm91cCAoJGxpbmUsICRncm91cCk7CisgICAgfQorCisgICAgaWYgKCR0aGlzLT5zdGFydHNNYXBwZWRTZXF1ZW5jZSgkbGluZSkpCisgICAgICByZXR1cm4gJHRoaXMtPnJldHVybk1hcHBlZFNlcXVlbmNlKCRsaW5lKTsKKworICAgIGlmICgkdGhpcy0+c3RhcnRzTWFwcGVkVmFsdWUoJGxpbmUpKQorICAgICAgcmV0dXJuICR0aGlzLT5yZXR1cm5NYXBwZWRWYWx1ZSgkbGluZSk7CisKKyAgICBpZiAoJHRoaXMtPmlzQXJyYXlFbGVtZW50KCRsaW5lKSkKKyAgICAgcmV0dXJuICR0aGlzLT5yZXR1cm5BcnJheUVsZW1lbnQoJGxpbmUpOworCisgICAgaWYgKCR0aGlzLT5pc1BsYWluQXJyYXkoJGxpbmUpKQorICAgICByZXR1cm4gJHRoaXMtPnJldHVyblBsYWluQXJyYXkoJGxpbmUpOyAKKyAgICAgCisgICAgIAorICAgIHJldHVybiAkdGhpcy0+cmV0dXJuS2V5VmFsdWVQYWlyKCRsaW5lKTsKKworICB9CisKKyAgLyoqCisgICAgICogRmluZHMgdGhlIHR5cGUgb2YgdGhlIHBhc3NlZCB2YWx1ZSwgcmV0dXJucyB0aGUgdmFsdWUgYXMgdGhlIG5ldyB0eXBlLgorICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHZhbHVlCisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICBmdW5jdGlvbiBfdG9UeXBlKCR2YWx1ZSkgeworICAgIGlmICgkdmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbDsKKyAgICAkZmlyc3RfY2hhcmFjdGVyID0gJHZhbHVlWzBdOworICAgICRsYXN0X2NoYXJhY3RlciA9IHN1YnN0cigkdmFsdWUsIC0xLCAxKTsKKworICAgICRpc19xdW90ZWQgPSBmYWxzZTsKKyAgICBkbyB7CisgICAgICBpZiAoISR2YWx1ZSkgYnJlYWs7CisgICAgICBpZiAoJGZpcnN0X2NoYXJhY3RlciAhPSAnIicgJiYgJGZpcnN0X2NoYXJhY3RlciAhPSAiJyIpIGJyZWFrOworICAgICAgaWYgKCRsYXN0X2NoYXJhY3RlciAhPSAnIicgJiYgJGxhc3RfY2hhcmFjdGVyICE9ICInIikgYnJlYWs7CisgICAgICAkaXNfcXVvdGVkID0gdHJ1ZTsKKyAgICB9IHdoaWxlICgwKTsKKworICAgIGlmICgkaXNfcXVvdGVkKQorICAgICAgcmV0dXJuIHN0cnRyKHN1YnN0ciAoJHZhbHVlLCAxLCAtMSksIGFycmF5ICgnXFwiJyA9PiAnIicsICdcJ1wnJyA9PiAnXCcnLCAnXFxcJycgPT4gJ1wnJykpOworICAgIAorICAgIGlmIChzdHJwb3MoJHZhbHVlLCAnICMnKSAhPT0gZmFsc2UpCisgICAgICAkdmFsdWUgPSBwcmVnX3JlcGxhY2UoJy9ccysjKC4rKSQvJywnJywkdmFsdWUpOworCisgICAgaWYgKCRmaXJzdF9jaGFyYWN0ZXIgPT0gJ1snICYmICRsYXN0X2NoYXJhY3RlciA9PSAnXScpIHsKKyAgICAgIC8vIFRha2Ugb3V0IHN0cmluZ3Mgc2VxdWVuY2VzIGFuZCBtYXBwaW5ncworICAgICAgJGlubmVyVmFsdWUgPSB0cmltKHN1YnN0ciAoJHZhbHVlLCAxLCAtMSkpOworICAgICAgaWYgKCRpbm5lclZhbHVlID09PSAnJykgcmV0dXJuIGFycmF5KCk7CisgICAgICAkZXhwbG9kZSA9ICR0aGlzLT5faW5saW5lRXNjYXBlKCRpbm5lclZhbHVlKTsKKyAgICAgIC8vIFByb3BhZ2F0ZSB2YWx1ZSBhcnJheQorICAgICAgJHZhbHVlICA9IGFycmF5KCk7CisgICAgICBmb3JlYWNoICgkZXhwbG9kZSBhcyAkdikgeworICAgICAgICAkdmFsdWVbXSA9ICR0aGlzLT5fdG9UeXBlKCR2KTsKKyAgICAgIH0KKyAgICAgIHJldHVybiAkdmFsdWU7CisgICAgfQorCisgICAgaWYgKHN0cnBvcygkdmFsdWUsJzogJykhPT1mYWxzZSAmJiAkZmlyc3RfY2hhcmFjdGVyICE9ICd7JykgeworICAgICAgJGFycmF5ID0gZXhwbG9kZSgnOiAnLCR2YWx1ZSk7CisgICAgICAka2V5ICAgPSB0cmltKCRhcnJheVswXSk7CisgICAgICBhcnJheV9zaGlmdCgkYXJyYXkpOworICAgICAgJHZhbHVlID0gdHJpbShpbXBsb2RlKCc6ICcsJGFycmF5KSk7CisgICAgICAkdmFsdWUgPSAkdGhpcy0+X3RvVHlwZSgkdmFsdWUpOworICAgICAgcmV0dXJuIGFycmF5KCRrZXkgPT4gJHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgaWYgKCRmaXJzdF9jaGFyYWN0ZXIgPT0gJ3snICYmICRsYXN0X2NoYXJhY3RlciA9PSAnfScpIHsKKyAgICAgICRpbm5lclZhbHVlID0gdHJpbShzdWJzdHIgKCR2YWx1ZSwgMSwgLTEpKTsKKyAgICAgIGlmICgkaW5uZXJWYWx1ZSA9PT0gJycpIHJldHVybiBhcnJheSgpOworICAgICAgLy8gSW5saW5lIE1hcHBpbmcKKyAgICAgIC8vIFRha2Ugb3V0IHN0cmluZ3Mgc2VxdWVuY2VzIGFuZCBtYXBwaW5ncworICAgICAgJGV4cGxvZGUgPSAkdGhpcy0+X2lubGluZUVzY2FwZSgkaW5uZXJWYWx1ZSk7CisgICAgICAvLyBQcm9wYWdhdGUgdmFsdWUgYXJyYXkKKyAgICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgICBmb3JlYWNoICgkZXhwbG9kZSBhcyAkdikgeworICAgICAgICAkU3ViQXJyID0gJHRoaXMtPl90b1R5cGUoJHYpOworICAgICAgICBpZiAoZW1wdHkoJFN1YkFycikpIGNvbnRpbnVlOworICAgICAgICBpZiAoaXNfYXJyYXkgKCRTdWJBcnIpKSB7CisgICAgICAgICAgJGFycmF5W2tleSgkU3ViQXJyKV0gPSAkU3ViQXJyW2tleSgkU3ViQXJyKV07IGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgICRhcnJheVtdID0gJFN1YkFycjsKKyAgICAgIH0KKyAgICAgIHJldHVybiAkYXJyYXk7CisgICAgfQorCisgICAgaWYgKCR2YWx1ZSA9PSAnbnVsbCcgfHwgJHZhbHVlID09ICdOVUxMJyB8fCAkdmFsdWUgPT0gJ051bGwnIHx8ICR2YWx1ZSA9PSAnJyB8fCAkdmFsdWUgPT0gJ34nKSB7CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBpZiAoaW50dmFsKCRmaXJzdF9jaGFyYWN0ZXIpID4gMCAmJiBwcmVnX21hdGNoICgnL15bMS05XStbMC05XSokLycsICR2YWx1ZSkpIHsKKyAgICAgICRpbnR2YWx1ZSA9IChpbnQpJHZhbHVlOworICAgICAgaWYgKCRpbnR2YWx1ZSAhPSBQSFBfSU5UX01BWCkKKyAgICAgICAgJHZhbHVlID0gJGludHZhbHVlOworICAgICAgcmV0dXJuICR2YWx1ZTsKKyAgICB9CisKKyAgICBpZiAoaW5fYXJyYXkoJHZhbHVlLAorICAgICAgICAgICAgICAgICBhcnJheSgndHJ1ZScsICdvbicsICcrJywgJ3llcycsICd5JywgJ1RydWUnLCAnVFJVRScsICdPbicsICdPTicsICdZRVMnLCAnWWVzJywgJ1knKSkpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChpbl9hcnJheShzdHJ0b2xvd2VyKCR2YWx1ZSksCisgICAgICAgICAgICAgICAgIGFycmF5KCdmYWxzZScsICdvZmYnLCAnLScsICdubycsICduJykpKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGlzX251bWVyaWMoJHZhbHVlKSkgeworICAgICAgaWYgKCR2YWx1ZSA9PT0gJzAnKSByZXR1cm4gMDsKKyAgICAgIGlmICh0cmltICgkdmFsdWUsIDApID09PSAkdmFsdWUpCisgICAgICAgICR2YWx1ZSA9IChmbG9hdCkkdmFsdWU7CisgICAgICByZXR1cm4gJHZhbHVlOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gJHZhbHVlOworICB9CisKKyAgLyoqCisgICAgICogVXNlZCBpbiBpbmxpbmVzIHRvIGNoZWNrIGZvciBtb3JlIGlubGluZXMgb3IgcXVvdGVkIHN0cmluZ3MKKyAgICAgKiBAYWNjZXNzIHByaXZhdGUKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgIGZ1bmN0aW9uIF9pbmxpbmVFc2NhcGUoJGlubGluZSkgeworICAgIC8vIFRoZXJlJ3MgZ290dGEgYmUgYSBjbGVhbmVyIHdheSB0byBkbyB0aGlzLi4uCisgICAgLy8gV2hpbGUgcHVyZSBzZXF1ZW5jZXMgc2VlbSB0byBiZSBuZXN0aW5nIGp1c3QgZmluZSwKKyAgICAvLyBwdXJlIG1hcHBpbmdzIGFuZCBtYXBwaW5ncyB3aXRoIHNlcXVlbmNlcyBpbnNpZGUgY2FuJ3QgZ28gdmVyeQorICAgIC8vIGRlZXAuICBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkLgorCisgICAgJHNlcXMgPSBhcnJheSgpOworICAgICRtYXBzID0gYXJyYXkoKTsKKyAgICAkc2F2ZWRfc3RyaW5ncyA9IGFycmF5KCk7CisKKyAgICAvLyBDaGVjayBmb3Igc3RyaW5ncworICAgICRyZWdleCA9ICcvKD86KCIpfCg/OlwnKSkoKD8oMSlbXiJdK3xbXlwnXSspKSg/KDEpInxcJykvJzsKKyAgICBpZiAocHJlZ19tYXRjaF9hbGwoJHJlZ2V4LCRpbmxpbmUsJHN0cmluZ3MpKSB7CisgICAgICAkc2F2ZWRfc3RyaW5ncyA9ICRzdHJpbmdzWzBdOworICAgICAgJGlubGluZSAgPSBwcmVnX3JlcGxhY2UoJHJlZ2V4LCdZQU1MU3RyaW5nJywkaW5saW5lKTsKKyAgICB9CisgICAgdW5zZXQoJHJlZ2V4KTsKKworICAgICRpID0gMDsKKyAgICBkbyB7CisKKyAgICAvLyBDaGVjayBmb3Igc2VxdWVuY2VzCisgICAgd2hpbGUgKHByZWdfbWF0Y2goJy9cWyhbXnt9XFtcXV0rKVxdL1UnLCRpbmxpbmUsJG1hdGNoc2VxcykpIHsKKyAgICAgICRzZXFzW10gPSAkbWF0Y2hzZXFzWzBdOworICAgICAgJGlubGluZSA9IHByZWdfcmVwbGFjZSgnL1xbKFtee31cW1xdXSspXF0vVScsICgnWUFNTFNlcScgLiAoY291bnQoJHNlcXMpIC0gMSkgLiAncycpLCAkaW5saW5lLCAxKTsKKyAgICB9CisKKyAgICAvLyBDaGVjayBmb3IgbWFwcGluZ3MKKyAgICB3aGlsZSAocHJlZ19tYXRjaCgnL3soW15cW1xde31dKyl9L1UnLCRpbmxpbmUsJG1hdGNobWFwcykpIHsKKyAgICAgICRtYXBzW10gPSAkbWF0Y2htYXBzWzBdOworICAgICAgJGlubGluZSA9IHByZWdfcmVwbGFjZSgnL3soW15cW1xde31dKyl9L1UnLCAoJ1lBTUxNYXAnIC4gKGNvdW50KCRtYXBzKSAtIDEpIC4gJ3MnKSwgJGlubGluZSwgMSk7CisgICAgfQorCisgICAgaWYgKCRpKysgPj0gMTApIGJyZWFrOworCisgICAgfSB3aGlsZSAoc3RycG9zICgkaW5saW5lLCAnWycpICE9PSBmYWxzZSB8fCBzdHJwb3MgKCRpbmxpbmUsICd7JykgIT09IGZhbHNlKTsKKworICAgICRleHBsb2RlID0gZXhwbG9kZSgnLCAnLCRpbmxpbmUpOworICAgICRzdHJpbmdpID0gMDsgJGkgPSAwOworCisgICAgd2hpbGUgKDEpIHsKKworICAgIC8vIFJlLWFkZCB0aGUgc2VxdWVuY2VzCisgICAgaWYgKCFlbXB0eSgkc2VxcykpIHsKKyAgICAgIGZvcmVhY2ggKCRleHBsb2RlIGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICAgIGlmIChzdHJwb3MoJHZhbHVlLCdZQU1MU2VxJykgIT09IGZhbHNlKSB7CisgICAgICAgICAgZm9yZWFjaCAoJHNlcXMgYXMgJHNlcWsgPT4gJHNlcSkgeworICAgICAgICAgICAgJGV4cGxvZGVbJGtleV0gPSBzdHJfcmVwbGFjZSgoJ1lBTUxTZXEnLiRzZXFrLidzJyksJHNlcSwkdmFsdWUpOworICAgICAgICAgICAgJHZhbHVlID0gJGV4cGxvZGVbJGtleV07CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorCisgICAgLy8gUmUtYWRkIHRoZSBtYXBwaW5ncworICAgIGlmICghZW1wdHkoJG1hcHMpKSB7CisgICAgICBmb3JlYWNoICgkZXhwbG9kZSBhcyAka2V5ID0+ICR2YWx1ZSkgeworICAgICAgICBpZiAoc3RycG9zKCR2YWx1ZSwnWUFNTE1hcCcpICE9PSBmYWxzZSkgeworICAgICAgICAgIGZvcmVhY2ggKCRtYXBzIGFzICRtYXBrID0+ICRtYXApIHsKKyAgICAgICAgICAgICRleHBsb2RlWyRrZXldID0gc3RyX3JlcGxhY2UoKCdZQU1MTWFwJy4kbWFway4ncycpLCAkbWFwLCAkdmFsdWUpOworICAgICAgICAgICAgJHZhbHVlID0gJGV4cGxvZGVbJGtleV07CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorCisKKyAgICAvLyBSZS1hZGQgdGhlIHN0cmluZ3MKKyAgICBpZiAoIWVtcHR5KCRzYXZlZF9zdHJpbmdzKSkgeworICAgICAgZm9yZWFjaCAoJGV4cGxvZGUgYXMgJGtleSA9PiAkdmFsdWUpIHsKKyAgICAgICAgd2hpbGUgKHN0cnBvcygkdmFsdWUsJ1lBTUxTdHJpbmcnKSAhPT0gZmFsc2UpIHsKKyAgICAgICAgICAkZXhwbG9kZVska2V5XSA9IHByZWdfcmVwbGFjZSgnL1lBTUxTdHJpbmcvJywkc2F2ZWRfc3RyaW5nc1skc3RyaW5naV0sJHZhbHVlLCAxKTsKKyAgICAgICAgICB1bnNldCgkc2F2ZWRfc3RyaW5nc1skc3RyaW5naV0pOworICAgICAgICAgICsrJHN0cmluZ2k7CisgICAgICAgICAgJHZhbHVlID0gJGV4cGxvZGVbJGtleV07CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisKKyAgICAkZmluaXNoZWQgPSB0cnVlOworICAgIGZvcmVhY2ggKCRleHBsb2RlIGFzICRrZXkgPT4gJHZhbHVlKSB7CisgICAgICBpZiAoc3RycG9zKCR2YWx1ZSwnWUFNTFNlcScpICE9PSBmYWxzZSkgeworICAgICAgICAkZmluaXNoZWQgPSBmYWxzZTsgYnJlYWs7CisgICAgICB9CisgICAgICBpZiAoc3RycG9zKCR2YWx1ZSwnWUFNTE1hcCcpICE9PSBmYWxzZSkgeworICAgICAgICAkZmluaXNoZWQgPSBmYWxzZTsgYnJlYWs7CisgICAgICB9CisgICAgICBpZiAoc3RycG9zKCR2YWx1ZSwnWUFNTFN0cmluZycpICE9PSBmYWxzZSkgeworICAgICAgICAkZmluaXNoZWQgPSBmYWxzZTsgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIGlmICgkZmluaXNoZWQpIGJyZWFrOworCisgICAgJGkrKzsKKyAgICBpZiAoJGkgPiAxMCkgCisgICAgICBicmVhazsgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wcy4KKyAgICB9CisKKyAgICByZXR1cm4gJGV4cGxvZGU7CisgIH0KKworICBmdW5jdGlvbiBsaXRlcmFsQmxvY2tDb250aW51ZXMgKCRsaW5lLCAkbGluZUluZGVudCkgeworICAgIGlmICghdHJpbSgkbGluZSkpIHJldHVybiB0cnVlOworICAgIGlmIChzdHJsZW4oJGxpbmUpIC0gc3RybGVuKGx0cmltKCRsaW5lKSkgPiAkbGluZUluZGVudCkgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgZnVuY3Rpb24gcmVmZXJlbmNlQ29udGVudHNCeUFsaWFzICgkYWxpYXMpIHsKKyAgICBkbyB7CisgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5TYXZlZEdyb3Vwc1skYWxpYXNdKSkgeyBlY2hvICJCYWQgZ3JvdXAgbmFtZTogJGFsaWFzLiI7IGJyZWFrOyB9CisgICAgICAkZ3JvdXBQYXRoID0gJHRoaXMtPlNhdmVkR3JvdXBzWyRhbGlhc107CisgICAgICAkdmFsdWUgPSAkdGhpcy0+cmVzdWx0OworICAgICAgZm9yZWFjaCAoJGdyb3VwUGF0aCBhcyAkaykgeworICAgICAgICAkdmFsdWUgPSAkdmFsdWVbJGtdOworICAgICAgfQorICAgIH0gd2hpbGUgKGZhbHNlKTsKKyAgICByZXR1cm4gJHZhbHVlOworICB9CisKKyAgZnVuY3Rpb24gYWRkQXJyYXlJbmxpbmUgKCRhcnJheSwgJGluZGVudCkgeworICAgICAgJENvbW1vbkdyb3VwUGF0aCA9ICR0aGlzLT5wYXRoOworICAgICAgaWYgKGVtcHR5ICgkYXJyYXkpKSByZXR1cm4gZmFsc2U7CisgICAgICAKKyAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAkayA9PiAkXykgeworICAgICAgICAkdGhpcy0+YWRkQXJyYXkoYXJyYXkoJGsgPT4gJF8pLCAkaW5kZW50KTsKKyAgICAgICAgJHRoaXMtPnBhdGggPSAkQ29tbW9uR3JvdXBQYXRoOworICAgICAgfQorICAgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBmdW5jdGlvbiBhZGRBcnJheSAoJGluY29taW5nX2RhdGEsICRpbmNvbWluZ19pbmRlbnQpIHsKKworICAgLy8gcHJpbnRfciAoJGluY29taW5nX2RhdGEpOworCisgICAgaWYgKGNvdW50ICgkaW5jb21pbmdfZGF0YSkgPiAxKQorICAgICAgcmV0dXJuICR0aGlzLT5hZGRBcnJheUlubGluZSAoJGluY29taW5nX2RhdGEsICRpbmNvbWluZ19pbmRlbnQpOworICAgIAorICAgICRrZXkgPSBrZXkgKCRpbmNvbWluZ19kYXRhKTsKKyAgICAkdmFsdWUgPSBpc3NldCgkaW5jb21pbmdfZGF0YVska2V5XSkgPyAkaW5jb21pbmdfZGF0YVska2V5XSA6IG51bGw7CisgICAgaWYgKCRrZXkgPT09ICdfXyFZQU1MWmVybycpICRrZXkgPSAnMCc7CisKKyAgICBpZiAoJGluY29taW5nX2luZGVudCA9PSAwICYmICEkdGhpcy0+X2NvbnRhaW5zR3JvdXBBbGlhcyAmJiAhJHRoaXMtPl9jb250YWluc0dyb3VwQW5jaG9yKSB7IC8vIFNob3J0Y3V0IGZvciByb290LWxldmVsIHZhbHVlcy4KKyAgICAgIGlmICgka2V5IHx8ICRrZXkgPT09ICcnIHx8ICRrZXkgPT09ICcwJykgeworICAgICAgICAkdGhpcy0+cmVzdWx0WyRrZXldID0gJHZhbHVlOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgJHRoaXMtPnJlc3VsdFtdID0gJHZhbHVlOyBlbmQgKCR0aGlzLT5yZXN1bHQpOyAka2V5ID0ga2V5ICgkdGhpcy0+cmVzdWx0KTsKKyAgICAgIH0KKyAgICAgICR0aGlzLT5wYXRoWyRpbmNvbWluZ19pbmRlbnRdID0gJGtleTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKworICAgIAorICAgICRoaXN0b3J5ID0gYXJyYXkoKTsKKyAgICAvLyBVbmZvbGRpbmcgaW5uZXIgYXJyYXkgdHJlZS4KKyAgICAkaGlzdG9yeVtdID0gJF9hcnIgPSAkdGhpcy0+cmVzdWx0OworICAgIGZvcmVhY2ggKCR0aGlzLT5wYXRoIGFzICRrKSB7CisgICAgICAkaGlzdG9yeVtdID0gJF9hcnIgPSAkX2Fyclska107CisgICAgfQorCisgICAgaWYgKCR0aGlzLT5fY29udGFpbnNHcm91cEFsaWFzKSB7CisgICAgICAkdmFsdWUgPSAkdGhpcy0+cmVmZXJlbmNlQ29udGVudHNCeUFsaWFzKCR0aGlzLT5fY29udGFpbnNHcm91cEFsaWFzKTsKKyAgICAgICR0aGlzLT5fY29udGFpbnNHcm91cEFsaWFzID0gZmFsc2U7CisgICAgfQorCisKKyAgICAvLyBBZGRpbmcgc3RyaW5nIG9yIG51bWVyaWMga2V5IHRvIHRoZSBpbm5lcm1vc3QgbGV2ZWwgb3IgJHRoaXMtPmFyci4KKyAgICBpZiAoaXNfc3RyaW5nKCRrZXkpICYmICRrZXkgPT0gJzw8JykgeworICAgICAgaWYgKCFpc19hcnJheSAoJF9hcnIpKSB7ICRfYXJyID0gYXJyYXkgKCk7IH0KKyAgICAgICRfYXJyID0gYXJyYXlfbWVyZ2UgKCRfYXJyLCAkdmFsdWUpOworICAgIH0gZWxzZSBpZiAoJGtleSB8fCAka2V5ID09PSAnJyB8fCAka2V5ID09PSAnMCcpIHsKKyAgICAgICRfYXJyWyRrZXldID0gJHZhbHVlOworICAgIH0gZWxzZSB7CisgICAgICBpZiAoIWlzX2FycmF5ICgkX2FycikpIHsgJF9hcnIgPSBhcnJheSAoJHZhbHVlKTsgJGtleSA9IDA7IH0KKyAgICAgIGVsc2UgeyAkX2FycltdID0gJHZhbHVlOyBlbmQgKCRfYXJyKTsgJGtleSA9IGtleSAoJF9hcnIpOyB9CisgICAgfQorCisgICAgJHJldmVyc2VfcGF0aCA9IGFycmF5X3JldmVyc2UoJHRoaXMtPnBhdGgpOworICAgICRyZXZlcnNlX2hpc3RvcnkgPSBhcnJheV9yZXZlcnNlICgkaGlzdG9yeSk7CisgICAgJHJldmVyc2VfaGlzdG9yeVswXSA9ICRfYXJyOworICAgICRjbnQgPSBjb3VudCgkcmV2ZXJzZV9oaXN0b3J5KSAtIDE7CisgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNudDsgJGkrKykgeworICAgICAgJHJldmVyc2VfaGlzdG9yeVskaSsxXVskcmV2ZXJzZV9wYXRoWyRpXV0gPSAkcmV2ZXJzZV9oaXN0b3J5WyRpXTsKKyAgICB9CisgICAgJHRoaXMtPnJlc3VsdCA9ICRyZXZlcnNlX2hpc3RvcnlbJGNudF07CisKKyAgICAkdGhpcy0+cGF0aFskaW5jb21pbmdfaW5kZW50XSA9ICRrZXk7CisKKyAgICBpZiAoJHRoaXMtPl9jb250YWluc0dyb3VwQW5jaG9yKSB7CisgICAgICAkdGhpcy0+U2F2ZWRHcm91cHNbJHRoaXMtPl9jb250YWluc0dyb3VwQW5jaG9yXSA9ICR0aGlzLT5wYXRoOworICAgICAgaWYgKGlzX2FycmF5ICgkdmFsdWUpKSB7CisgICAgICAgICRrID0ga2V5ICgkdmFsdWUpOworICAgICAgICBpZiAoIWlzX2ludCAoJGspKSB7CisgICAgICAgICAgJHRoaXMtPlNhdmVkR3JvdXBzWyR0aGlzLT5fY29udGFpbnNHcm91cEFuY2hvcl1bJGluY29taW5nX2luZGVudCArIDJdID0gJGs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgICR0aGlzLT5fY29udGFpbnNHcm91cEFuY2hvciA9IGZhbHNlOworICAgIH0KKworICB9CisKKyAgZnVuY3Rpb24gc3RhcnRzTGl0ZXJhbEJsb2NrICgkbGluZSkgeworICAgICRsYXN0Q2hhciA9IHN1YnN0ciAodHJpbSgkbGluZSksIC0xKTsKKyAgICBpZiAoJGxhc3RDaGFyICE9ICc+JyAmJiAkbGFzdENoYXIgIT0gJ3wnKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKCRsYXN0Q2hhciA9PSAnfCcpIHJldHVybiAkbGFzdENoYXI7CisgICAgLy8gSFRNTCB0YWdzIHNob3VsZCBub3QgYmUgY291bnRlZCBhcyBsaXRlcmFsIGJsb2Nrcy4KKyAgICBpZiAocHJlZ19tYXRjaCAoJyM8Lio/PiQjJywgJGxpbmUpKSByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuICRsYXN0Q2hhcjsKKyAgfQorCisgIGZ1bmN0aW9uIGdyZWVkaWx5TmVlZE5leHRMaW5lKCRsaW5lKSB7CisgICAgJGxpbmUgPSB0cmltICgkbGluZSk7CisgICAgaWYgKCFzdHJsZW4oJGxpbmUpKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKHN1YnN0ciAoJGxpbmUsIC0xLCAxKSA9PSAnXScpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoJGxpbmVbMF0gPT0gJ1snKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAocHJlZ19tYXRjaCAoJyNeW146XSs/OlxzKlxbIycsICRsaW5lKSkgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgZnVuY3Rpb24gYWRkTGl0ZXJhbExpbmUgKCRsaXRlcmFsQmxvY2ssICRsaW5lLCAkbGl0ZXJhbEJsb2NrU3R5bGUpIHsKKyAgICAkbGluZSA9ICR0aGlzLT5zdHJpcEluZGVudCgkbGluZSk7CisgICAgJGxpbmUgPSBydHJpbSAoJGxpbmUsICJcclxuXHQgIikgLiAiXG4iOworICAgIGlmICgkbGl0ZXJhbEJsb2NrU3R5bGUgPT0gJ3wnKSB7CisgICAgICByZXR1cm4gJGxpdGVyYWxCbG9jayAuICRsaW5lOworICAgIH0KKyAgICBpZiAoc3RybGVuKCRsaW5lKSA9PSAwKQorICAgICAgcmV0dXJuIHJ0cmltKCRsaXRlcmFsQmxvY2ssICcgJykgLiAiXG4iOworICAgIGlmICgkbGluZSA9PSAiXG4iICYmICRsaXRlcmFsQmxvY2tTdHlsZSA9PSAnPicpIHsKKyAgICAgIHJldHVybiBydHJpbSAoJGxpdGVyYWxCbG9jaywgIiBcdCIpIC4gIlxuIjsKKyAgICB9CisgICAgaWYgKCRsaW5lICE9ICJcbiIpCisgICAgICAkbGluZSA9IHRyaW0gKCRsaW5lLCAiXHJcbiAiKSAuICIgIjsKKyAgICByZXR1cm4gJGxpdGVyYWxCbG9jayAuICRsaW5lOworICB9CisKKyAgIGZ1bmN0aW9uIHJldmVydExpdGVyYWxQbGFjZUhvbGRlciAoJGxpbmVBcnJheSwgJGxpdGVyYWxCbG9jaykgeworICAgICBmb3JlYWNoICgkbGluZUFycmF5IGFzICRrID0+ICRfKSB7CisgICAgICBpZiAoaXNfYXJyYXkoJF8pKQorICAgICAgICAkbGluZUFycmF5WyRrXSA9ICR0aGlzLT5yZXZlcnRMaXRlcmFsUGxhY2VIb2xkZXIgKCRfLCAkbGl0ZXJhbEJsb2NrKTsKKyAgICAgIGVsc2UgaWYgKHN1YnN0cigkXywgLTEgKiBzdHJsZW4gKCR0aGlzLT5MaXRlcmFsUGxhY2VIb2xkZXIpKSA9PSAkdGhpcy0+TGl0ZXJhbFBsYWNlSG9sZGVyKQorCSAgICAgICAkbGluZUFycmF5WyRrXSA9IHJ0cmltICgkbGl0ZXJhbEJsb2NrLCAiIFxyXG4iKTsKKyAgICAgfQorICAgICByZXR1cm4gJGxpbmVBcnJheTsKKyAgIH0KKworICBmdW5jdGlvbiBzdHJpcEluZGVudCAoJGxpbmUsICRpbmRlbnQgPSAtMSkgeworICAgIGlmICgkaW5kZW50ID09IC0xKSAkaW5kZW50ID0gc3RybGVuKCRsaW5lKSAtIHN0cmxlbihsdHJpbSgkbGluZSkpOworICAgIHJldHVybiBzdWJzdHIgKCRsaW5lLCAkaW5kZW50KTsKKyAgfQorCisgIGZ1bmN0aW9uIGdldFBhcmVudFBhdGhCeUluZGVudCAoJGluZGVudCkgeworICAgIGlmICgkaW5kZW50ID09IDApIHJldHVybiBhcnJheSgpOworICAgICRsaW5lUGF0aCA9ICR0aGlzLT5wYXRoOworICAgIGRvIHsKKyAgICAgIGVuZCgkbGluZVBhdGgpOyAkbGFzdEluZGVudEluUGFyZW50UGF0aCA9IGtleSgkbGluZVBhdGgpOworICAgICAgaWYgKCRpbmRlbnQgPD0gJGxhc3RJbmRlbnRJblBhcmVudFBhdGgpIGFycmF5X3BvcCAoJGxpbmVQYXRoKTsKKyAgICB9IHdoaWxlICgkaW5kZW50IDw9ICRsYXN0SW5kZW50SW5QYXJlbnRQYXRoKTsKKyAgICByZXR1cm4gJGxpbmVQYXRoOworICB9CisKKworICBmdW5jdGlvbiBjbGVhckJpZ2dlclBhdGhWYWx1ZXMgKCRpbmRlbnQpIHsKKworCisgICAgaWYgKCRpbmRlbnQgPT0gMCkgJHRoaXMtPnBhdGggPSBhcnJheSgpOworICAgIGlmIChlbXB0eSAoJHRoaXMtPnBhdGgpKSByZXR1cm4gdHJ1ZTsKKworICAgIGZvcmVhY2ggKCR0aGlzLT5wYXRoIGFzICRrID0+ICRfKSB7CisgICAgICBpZiAoJGsgPiAkaW5kZW50KSB1bnNldCAoJHRoaXMtPnBhdGhbJGtdKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisKKyAgZnVuY3Rpb24gaXNDb21tZW50ICgkbGluZSkgeworICAgIGlmICghJGxpbmUpIHJldHVybiBmYWxzZTsKKyAgICBpZiAoJGxpbmVbMF0gPT0gJyMnKSByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodHJpbSgkbGluZSwgIiBcclxuXHQiKSA9PSAnLS0tJykgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgZnVuY3Rpb24gaXNFbXB0eSAoJGxpbmUpIHsKKyAgICByZXR1cm4gKHRyaW0gKCRsaW5lKSA9PT0gJycpOworICB9CisKKworICBmdW5jdGlvbiBpc0FycmF5RWxlbWVudCAoJGxpbmUpIHsKKyAgICBpZiAoISRsaW5lKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKCRsaW5lWzBdICE9ICctJykgcmV0dXJuIGZhbHNlOworICAgIGlmIChzdHJsZW4gKCRsaW5lKSA+IDMpCisgICAgICBpZiAoc3Vic3RyKCRsaW5lLDAsMykgPT0gJy0tLScpIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIGZ1bmN0aW9uIGlzSGFzaEVsZW1lbnQgKCRsaW5lKSB7CisgICAgcmV0dXJuIHN0cnBvcygkbGluZSwgJzonKTsKKyAgfQorCisgIGZ1bmN0aW9uIGlzTGl0ZXJhbCAoJGxpbmUpIHsKKyAgICBpZiAoJHRoaXMtPmlzQXJyYXlFbGVtZW50KCRsaW5lKSkgcmV0dXJuIGZhbHNlOworICAgIGlmICgkdGhpcy0+aXNIYXNoRWxlbWVudCgkbGluZSkpIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisKKyAgZnVuY3Rpb24gdW5xdW90ZSAoJHZhbHVlKSB7CisgICAgaWYgKCEkdmFsdWUpIHJldHVybiAkdmFsdWU7CisgICAgaWYgKCFpc19zdHJpbmcoJHZhbHVlKSkgcmV0dXJuICR2YWx1ZTsKKyAgICBpZiAoJHZhbHVlWzBdID09ICdcJycpIHJldHVybiB0cmltICgkdmFsdWUsICdcJycpOworICAgIGlmICgkdmFsdWVbMF0gPT0gJyInKSByZXR1cm4gdHJpbSAoJHZhbHVlLCAnIicpOworICAgIHJldHVybiAkdmFsdWU7CisgIH0KKworICBmdW5jdGlvbiBzdGFydHNNYXBwZWRTZXF1ZW5jZSAoJGxpbmUpIHsKKyAgICByZXR1cm4gKCRsaW5lWzBdID09ICctJyAmJiBzdWJzdHIgKCRsaW5lLCAtMSwgMSkgPT0gJzonKTsKKyAgfQorCisgIGZ1bmN0aW9uIHJldHVybk1hcHBlZFNlcXVlbmNlICgkbGluZSkgeworICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgJGtleSAgICAgICAgID0gJHRoaXMtPnVucXVvdGUodHJpbShzdWJzdHIoJGxpbmUsMSwtMSkpKTsKKyAgICAkYXJyYXlbJGtleV0gPSBhcnJheSgpOworICAgICR0aGlzLT5kZWxheWVkUGF0aCA9IGFycmF5KHN0cnBvcyAoJGxpbmUsICRrZXkpICsgJHRoaXMtPmluZGVudCA9PiAka2V5KTsKKyAgICByZXR1cm4gYXJyYXkoJGFycmF5KTsKKyAgfQorCisgIGZ1bmN0aW9uIHJldHVybk1hcHBlZFZhbHVlICgkbGluZSkgeworICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgJGtleSAgICAgICAgID0gJHRoaXMtPnVucXVvdGUgKHRyaW0oc3Vic3RyKCRsaW5lLDAsLTEpKSk7CisgICAgJGFycmF5WyRrZXldID0gJyc7CisgICAgcmV0dXJuICRhcnJheTsKKyAgfQorCisgIGZ1bmN0aW9uIHN0YXJ0c01hcHBlZFZhbHVlICgkbGluZSkgeworICAgIHJldHVybiAoc3Vic3RyICgkbGluZSwgLTEsIDEpID09ICc6Jyk7CisgIH0KKyAgCisgIGZ1bmN0aW9uIGlzUGxhaW5BcnJheSAoJGxpbmUpIHsKKyAgICByZXR1cm4gKCRsaW5lWzBdID09ICdbJyAmJiBzdWJzdHIgKCRsaW5lLCAtMSwgMSkgPT0gJ10nKTsKKyAgfQorICAKKyAgZnVuY3Rpb24gcmV0dXJuUGxhaW5BcnJheSAoJGxpbmUpIHsKKyAgICByZXR1cm4gJHRoaXMtPl90b1R5cGUoJGxpbmUpOyAKKyAgfSAgCisKKyAgZnVuY3Rpb24gcmV0dXJuS2V5VmFsdWVQYWlyICgkbGluZSkgeworICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgJGtleSA9ICcnOworICAgIGlmIChzdHJwb3MgKCRsaW5lLCAnOicpKSB7CisgICAgICAvLyBJdCdzIGEga2V5L3ZhbHVlIHBhaXIgbW9zdCBsaWtlbHkKKyAgICAgIC8vIElmIHRoZSBrZXkgaXMgaW4gZG91YmxlIHF1b3RlcyBwdWxsIGl0IG91dAorICAgICAgaWYgKCgkbGluZVswXSA9PSAnIicgfHwgJGxpbmVbMF0gPT0gIiciKSAmJiBwcmVnX21hdGNoKCcvXihbIlwnXSguKilbIlwnXShccykqOikvJywkbGluZSwkbWF0Y2hlcykpIHsKKyAgICAgICAgJHZhbHVlID0gdHJpbShzdHJfcmVwbGFjZSgkbWF0Y2hlc1sxXSwnJywkbGluZSkpOworICAgICAgICAka2V5ICAgPSAkbWF0Y2hlc1syXTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIERvIHNvbWUgZ3Vlc3N3b3JrIGFzIHRvIHRoZSBrZXkgYW5kIHRoZSB2YWx1ZQorICAgICAgICAkZXhwbG9kZSA9IGV4cGxvZGUoJzonLCRsaW5lKTsKKyAgICAgICAgJGtleSAgICAgPSB0cmltKCRleHBsb2RlWzBdKTsKKyAgICAgICAgYXJyYXlfc2hpZnQoJGV4cGxvZGUpOworICAgICAgICAkdmFsdWUgICA9IHRyaW0oaW1wbG9kZSgnOicsJGV4cGxvZGUpKTsKKyAgICAgIH0KKyAgICAgIC8vIFNldCB0aGUgdHlwZSBvZiB0aGUgdmFsdWUuICBJbnQsIHN0cmluZywgZXRjCisgICAgICAkdmFsdWUgPSAkdGhpcy0+X3RvVHlwZSgkdmFsdWUpOworICAgICAgaWYgKCRrZXkgPT09ICcwJykgJGtleSA9ICdfXyFZQU1MWmVybyc7CisgICAgICAkYXJyYXlbJGtleV0gPSAkdmFsdWU7CisgICAgfSBlbHNlIHsKKyAgICAgICRhcnJheSA9IGFycmF5ICgkbGluZSk7CisgICAgfQorICAgIHJldHVybiAkYXJyYXk7CisKKyAgfQorCisKKyAgZnVuY3Rpb24gcmV0dXJuQXJyYXlFbGVtZW50ICgkbGluZSkgeworICAgICBpZiAoc3RybGVuKCRsaW5lKSA8PSAxKSByZXR1cm4gYXJyYXkoYXJyYXkoKSk7IC8vIFdlaXJkICUpCisgICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgICR2YWx1ZSAgID0gdHJpbShzdWJzdHIoJGxpbmUsMSkpOworICAgICAkdmFsdWUgICA9ICR0aGlzLT5fdG9UeXBlKCR2YWx1ZSk7CisgICAgICRhcnJheVtdID0gJHZhbHVlOworICAgICByZXR1cm4gJGFycmF5OworICB9CisKKworICBmdW5jdGlvbiBub2RlQ29udGFpbnNHcm91cCAoJGxpbmUpIHsgICAgCisgICAgJHN5bWJvbHNGb3JSZWZlcmVuY2UgPSAnQS16MC05X1wtJzsKKyAgICBpZiAoc3RycG9zKCRsaW5lLCAnJicpID09PSBmYWxzZSAmJiBzdHJwb3MoJGxpbmUsICcqJykgPT09IGZhbHNlKSByZXR1cm4gZmFsc2U7IC8vIFBsZWFzZSBkaWUgZmFzdCA7LSkKKyAgICBpZiAoJGxpbmVbMF0gPT0gJyYnICYmIHByZWdfbWF0Y2goJy9eKCZbJy4kc3ltYm9sc0ZvclJlZmVyZW5jZS4nXSspLycsICRsaW5lLCAkbWF0Y2hlcykpIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICBpZiAoJGxpbmVbMF0gPT0gJyonICYmIHByZWdfbWF0Y2goJy9eKFwqWycuJHN5bWJvbHNGb3JSZWZlcmVuY2UuJ10rKS8nLCAkbGluZSwgJG1hdGNoZXMpKSByZXR1cm4gJG1hdGNoZXNbMV07CisgICAgaWYgKHByZWdfbWF0Y2goJy8oJlsnLiRzeW1ib2xzRm9yUmVmZXJlbmNlLiddKykkLycsICRsaW5lLCAkbWF0Y2hlcykpIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICBpZiAocHJlZ19tYXRjaCgnLyhcKlsnLiRzeW1ib2xzRm9yUmVmZXJlbmNlLiddKyQpLycsICRsaW5lLCAkbWF0Y2hlcykpIHJldHVybiAkbWF0Y2hlc1sxXTsKKyAgICBpZiAocHJlZ19tYXRjaCAoJyNeXHMqPDxccyo6XHMqKFwqW15cc10rKS4qJCMnLCAkbGluZSwgJG1hdGNoZXMpKSByZXR1cm4gJG1hdGNoZXNbMV07CisgICAgcmV0dXJuIGZhbHNlOworCisgIH0KKworICBmdW5jdGlvbiBhZGRHcm91cCAoJGxpbmUsICRncm91cCkgeworICAgIGlmICgkZ3JvdXBbMF0gPT0gJyYnKSAkdGhpcy0+X2NvbnRhaW5zR3JvdXBBbmNob3IgPSBzdWJzdHIgKCRncm91cCwgMSk7CisgICAgaWYgKCRncm91cFswXSA9PSAnKicpICR0aGlzLT5fY29udGFpbnNHcm91cEFsaWFzID0gc3Vic3RyICgkZ3JvdXAsIDEpOworICAgIC8vcHJpbnRfciAoJHRoaXMtPnBhdGgpOworICB9CisKKyAgZnVuY3Rpb24gc3RyaXBHcm91cCAoJGxpbmUsICRncm91cCkgeworICAgICRsaW5lID0gdHJpbShzdHJfcmVwbGFjZSgkZ3JvdXAsICcnLCAkbGluZSkpOworICAgIHJldHVybiAkbGluZTsKKyAgfQorfQorCisvLyBFbmFibGUgdXNlIG9mIFNweWMgZnJvbSBjb21tYW5kIGxpbmUKKy8vIFRoZSBzeW50YXggaXMgdGhlIGZvbGxvd2luZzogcGhwIHNweWMucGhwIHNweWMueWFtbAorCitkZWZpbmUgKCdTUFlDX0ZST01fQ09NTUFORF9MSU5FJywgZmFsc2UpOworCitkbyB7CisgIGlmICghU1BZQ19GUk9NX0NPTU1BTkRfTElORSkgYnJlYWs7CisgIGlmIChlbXB0eSAoJF9TRVJWRVJbJ2FyZ2MnXSkgfHwgJF9TRVJWRVJbJ2FyZ2MnXSA8IDIpIGJyZWFrOworICBpZiAoZW1wdHkgKCRfU0VSVkVSWydQSFBfU0VMRiddKSB8fCAkX1NFUlZFUlsnUEhQX1NFTEYnXSAhPSAnc3B5Yy5waHAnKSBicmVhazsKKyAgJGZpbGUgPSAkYXJndlsxXTsKKyAgcHJpbnRmICgiU3B5YyBsb2FkaW5nIGZpbGU6ICVzXG4iLCAkZmlsZSk7CisgIHByaW50X3IgKHNweWNfbG9hZF9maWxlICgkZmlsZSkpOworfSB3aGlsZSAoMCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9waHA0L3Rlc3QucGhwNCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvcGhwNC90ZXN0LnBocDQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE1ZjUwMQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvcGhwNC90ZXN0LnBocDQKQEAgLTAsMCArMSwxNjIgQEAKKzw/cGhwCisjCisjICAgIFMgUCBZIEMKKyMgICAgICBhIHNpbXBsZSBwaHAgeWFtbCBjbGFzcworIyAgIHYwLjMKKyMKKyMgYXV0aG9yOiBbY2hyaXMgd2Fuc3RyYXRoLCBjaHJpc0Bvem1tLm9yZ10KKyMgd2Vic2l0ZXM6IFtodHRwOi8vd3d3LnlhbWwub3JnLCBodHRwOi8vc3B5Yy5zb3VyY2Vmb3JnZS5uZXQvXQorIyBsaWNlbnNlOiBbTUlUIExpY2Vuc2UsIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXQorIyBjb3B5cmlnaHQ6IChjKSAyMDA1LTIwMDYgQ2hyaXMgV2Fuc3RyYXRoCisjCisjIFdlJ3JlIGdvbm5hIGxvYWQgYSBmaWxlIGludG8gbWVtb3J5IGFuZCBzZWUgaWYgd2UgZ2V0IHdoYXQgd2UgZXhwZWN0LgorIyBJZiBub3QsIHdlJ3JlIGdvbm5hIGNvbXBsYWluLgorIworIyBQcmV0dHkgbG8tZmkuICBMZXQncyBzZWUgaWYgd2UgY2FuJ3QgZ2V0IHNvbWUgdW5pdCB0ZXN0aW5nIGdvaW5nIGluIHRoZSBuZXh0LAorIyBJIGR1bm5vLCAyMCBtb250aHM/ICBBbHJpZ2h0LiAgR28gdGVhbS4KKyMKKworZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsKKworaW5jbHVkZSgnc3B5Yy5waHA0Jyk7CisKKyR5YW1sID0gU3B5Yzo6WUFNTExvYWQoJy4uL3NweWMueWFtbCcpOworCisvLyBwcmludF9yICgkeWFtbCk7CisKKyMgQWRkZWQgaW4gLjIKK2lmICgkeWFtbFsxMDQwXSAhPSAiT29vLCBhIG51bWVyaWMga2V5ISIpCisJZGllKCdLZXk6IDEwNDAgZmFpbGVkJyk7CisKKyMgVGVzdCBtYXBwaW5ncyAvIHR5cGVzCitpZiAoJHlhbWxbJ1N0cmluZyddICE9ICJBbnlvbmUncyBuYW1lLCByZWFsbHkuIikKKwlkaWUoJ0tleTogU3RyaW5nIGZhaWxlZCcpOworCitpZiAoJHlhbWxbJ0ludCddICE9PSAxMykKKwlkaWUoJ0tleTogSW50IGZhaWxlZCcpOworCitpZiAoJHlhbWxbJ1RydWUnXSAhPT0gdHJ1ZSkKKwlkaWUoJ0tleTogVHJ1ZSBmYWlsZWQnKTsKKworaWYgKCR5YW1sWydGYWxzZSddICE9PSBmYWxzZSkKKwlkaWUoJ0tleTogRmFsc2UgZmFpbGVkJyk7CisKK2lmICgkeWFtbFsnWmVybyddICE9PSAwKQorCWRpZSgnS2V5OiBaZXJvIGZhaWxlZCcpOworCitpZiAoaXNzZXQoJHlhbWxbJ051bGwnXSkpCisJZGllKCdLZXk6IE51bGwgZmFpbGVkJyk7CisKK2lmICgkeWFtbFsnRmxvYXQnXSAhPT0gNS4zNCkKKwlkaWUoJ0tleTogRmxvYXQgZmFpbGVkJyk7CisKKworIyBUZXN0IHNlcXVlbmNlcworaWYgKCR5YW1sWzBdICE9ICJQSFAgQ2xhc3MiKQorCWRpZSgnU2VxdWVuY2UgMCBmYWlsZWQnKTsKKworaWYgKCR5YW1sWzFdICE9ICJCYXNpYyBZQU1MIExvYWRlciIpCisJZGllKCdTZXF1ZW5jZSAxIGZhaWxlZCcpOworCitpZiAoJHlhbWxbMl0gIT0gIlZlcnkgQmFzaWMgWUFNTCBEdW1wZXIiKQorCWRpZSgnU2VxdWVuY2UgMiBmYWlsZWQnKTsKKworIyBBIHNlcXVlbmNlIG9mIGEgc2VxdWVuY2UKK2lmICgkeWFtbFszXSAhPSBhcnJheSgiWUFNTCBpcyBzbyBlYXN5IHRvIGxlYXJuLiIsCisJCQkJCQkJCQkJCSJZb3VyIGNvbmZpZyBmaWxlcyB3aWxsIG5ldmVyIGJlIHRoZSBzYW1lLiIpKQorCWRpZSgnU2VxdWVuY2UgMyBmYWlsZWQnKTsKKworIyBTZXF1ZW5jZSBvZiBtYXBwaW5ncworaWYgKCR5YW1sWzRdICE9IGFycmF5KCJjcHUiID0+ICIxLjVnaHoiLCAicmFtIiA9PiAiMSBnaWciLAorCQkJCQkJCQkJCQkib3MiID0+ICJvcyB4IDEwLjQuMSIpKQorCWRpZSgnU2VxdWVuY2UgNCBmYWlsZWQnKTsKKworIyBNYXBwZWQgc2VxdWVuY2UKK2lmICgkeWFtbFsnZG9tYWlucyddICE9IGFycmF5KCJ5YW1sLm9yZyIsICJwaHAubmV0IikpCisJZGllKCJLZXk6ICdkb21haW5zJyBmYWlsZWQiKTsKKworIyBBIHNlcXVlbmNlIGxpa2UgdGhpcy4KK2lmICgkeWFtbFs1XSAhPSBhcnJheSgicHJvZ3JhbSIgPT4gIkFkaXVtIiwgInBsYXRmb3JtIiA9PiAiT1MgWCIsCisJCQkJCQkJCQkJCSJ0eXBlIiA9PiAiQ2hhdCBDbGllbnQiKSkKKwlkaWUoJ1NlcXVlbmNlIDUgZmFpbGVkJyk7CisKKyMgQSBmb2xkZWQgYmxvY2sgYXMgYSBtYXBwZWQgdmFsdWUKK2lmICgkeWFtbFsnbm8gdGltZSddICE9ICJUaGVyZSBpc24ndCBhbnkgdGltZSBmb3IgeW91ciB0cmlja3MhXG5EbyB5b3UgdW5kZXJzdGFuZD8iKQorCWRpZSgiS2V5OiAnbm8gdGltZScgZmFpbGVkIik7CisKKyMgQSBsaXRlcmFsIGJsb2NrIGFzIGEgbWFwcGVkIHZhbHVlCitpZiAoJHlhbWxbJ3NvbWUgdGltZSddICE9ICJUaGVyZSBpcyBub3RoaW5nIGJ1dCB0aW1lXG5mb3IgeW91ciB0cmlja3MuIikKKwlkaWUoIktleTogJ3NvbWUgdGltZScgZmFpbGVkIik7CisKKyMgQ3JhenkgY29tYmluYXRpb25zCitpZiAoJHlhbWxbJ2RhdGFiYXNlcyddICE9IGFycmF5KCBhcnJheSgibmFtZSIgPT4gInNwYXJ0YW4iLCAibm90ZXMiID0+CisJCQkJCQkJCQkJCQkJCQkJCQkJYXJyYXkoICJOZWVkcyB0byBiZSBiYWNrZWQgdXAiLAorCQkJCQkJCQkJCQkJCQkJCQkJCQkJCSAiTmVlZHMgdG8gYmUgbm9ybWFsaXplZCIgKSwKKwkJCQkJCQkJCQkJCQkJCQkJCQkgInR5cGUiID0+ICJteXNxbCIgKSkpCisgIGRpZSgiS2V5OiAnZGF0YWJhc2VzJyBmYWlsZWQiKTsKKworIyBZb3UgY2FuIGJlIGEgYml0IHRyaWNreQoraWYgKCR5YW1sWyJpZjogeW91J2QiXSAhPSAibGlrZSIpCisJZGllKCJLZXk6ICdpZjogeW91XCdkJyBmYWlsZWQiKTsKKworIyBJbmxpbmUgc2VxdWVuY2VzCitpZiAoJHlhbWxbNl0gIT0gYXJyYXkoIk9uZSIsICJUd28iLCAiVGhyZWUiLCAiRm91ciIpKQorCWRpZSgiU2VxdWVuY2UgNiBmYWlsZWQiKTsKKworIyBOZXN0ZWQgSW5saW5lIFNlcXVlbmNlcworaWYgKCR5YW1sWzddICE9IGFycmF5KCJPbmUiLCBhcnJheSgiVHdvIiwgIkFuZCIsICJUaHJlZSIpLCAiRm91ciIsICJGaXZlIikpCisJZGllKCJTZXF1ZW5jZSA3IGZhaWxlZCIpOworCisjIE5lc3RlZCBOZXN0ZWQgSW5saW5lIFNlcXVlbmNlcworaWYgKCR5YW1sWzhdICE9IGFycmF5KCAiVGhpcyIsIGFycmF5KCJJcyIsICJHZXR0aW5nIiwgYXJyYXkoIlJpZGljdWxvdXMiLCAiR3V5cyIpKSwKKwkJCQkJCQkJCSJTZXJpb3VzbHkiLCBhcnJheSgiU2hvdyIsICJNZXJjeSIpKSkKKwlkaWUoIlNlcXVlbmNlIDggZmFpbGVkIik7CisKKyMgSW5saW5lIG1hcHBpbmdzCitpZiAoJHlhbWxbOV0gIT0gYXJyYXkoIm5hbWUiID0+ICJjaHJpcyIsICJhZ2UiID0+ICJ5b3VuZyIsICJicmFuZCIgPT4gImx1Y2t5IHN0cmlrZSIpKQorCWRpZSgiU2VxdWVuY2UgOSBmYWlsZWQiKTsKKworIyBOZXN0ZWQgaW5saW5lIG1hcHBpbmdzCitpZiAoJHlhbWxbMTBdICE9IGFycmF5KCJuYW1lIiA9PiAibWFyayIsICJhZ2UiID0+ICJvbGRlciB0aGFuIGNocmlzIiwKKwkJCQkJCQkJCQkJICJicmFuZCIgPT4gYXJyYXkoIm1hcmxib3JvIiwgImx1Y2t5IHN0cmlrZSIpKSkKKwlkaWUoIlNlcXVlbmNlIDEwIGZhaWxlZCIpOworCisjIFJlZmVyZW5jZXMgLS0gdGhleSdyZSBzaGFreSwgYnV0IGZ1bmN0aW9uYWwKK2lmICgkeWFtbFsnZHluYW1pYyBsYW5ndWFnZXMnXSAhPSBhcnJheSgnUGVybCcsICdQeXRob24nLCAnUEhQJywgJ1J1YnknKSkKKwlkaWUoIktleTogJ2R5bmFtaWMgbGFuZ3VhZ2VzJyBmYWlsZWQiKTsKKworaWYgKCR5YW1sWydjb21waWxlZCBsYW5ndWFnZXMnXSAhPSBhcnJheSgnQy9DKysnLCAnSmF2YScpKQorCWRpZSgiS2V5OiAnY29tcGlsZWQgbGFuZ3VhZ2VzJyBmYWlsZWQiKTsKKworaWYgKCR5YW1sWydhbGwgbGFuZ3VhZ2VzJ10gIT0gYXJyYXkoCisJCQkJCQkJCQkJCQkJCQkJCQlhcnJheSgnUGVybCcsICdQeXRob24nLCAnUEhQJywgJ1J1YnknKSwKKwkJCQkJCQkJCQkJCQkJCQkJCWFycmF5KCdDL0MrKycsICdKYXZhJykKKwkJCQkJCQkJCQkJCQkJCQkJICkpCisJZGllKCJLZXk6ICdhbGwgbGFuZ3VhZ2VzJyBmYWlsZWQiKTsKKworIyBBZGRlZCBpbiAuMi4yOiBFc2NhcGVkIHF1b3RlcworaWYgKCR5YW1sWzExXSAhPSAieW91IGtub3csIHRoaXMgc2hvdWxkbid0IHdvcmsuICBidXQgaXQgZG9lcy4iKQorCWRpZSgiU2VxdWVuY2UgMTEgZmFpbGVkLiIpOworCitpZiAoJHlhbWxbMTJdICE9ICJ0aGF0J3MgbXkgdmFsdWUuIikKKwlkaWUoIlNlcXVlbmNlIDEyIGZhaWxlZC4iKTsKKworaWYgKCR5YW1sWzEzXSAhPSAiYWdhaW4sIHRoYXQncyBteSB2YWx1ZS4iKQorCWRpZSgiU2VxdWVuY2UgMTMgZmFpbGVkLiIpOworCitpZiAoJHlhbWxbMTRdICE9ICJoZXJlJ3MgdG8gXCJxdW90ZXNcIiwgYm9zcy4iKQorCWRpZSgiU2VxdWVuY2UgMTQgZmFpbGVkLiIpOworCitpZiAoJHlhbWxbMTVdICE9IGFycmF5KCAnbmFtZScgPT4gIkZvbywgQmFyJ3MiLCAnYWdlJyA9PiAyMCkpCisJZGllKCJTZXF1ZW5jZSAxNSBmYWlsZWQuIik7CisKK2lmICgkeWFtbFsxNl0gIT0gYXJyYXkoIDAgPT4gImEiLCAxID0+IGFycmF5ICgwID0+IDEsIDEgPT4gMiksIDIgPT4gImIiKSkKKwlkaWUoIlNlcXVlbmNlIDE2IGZhaWxlZC4iKTsKKworaWYgKCR5YW1sWydlbmRsb29wJ10gIT0gIkRvZXMgdGhpcyBsaW5lIGluIHRoZSBlbmQgaW5kZWVkIG1ha2UgU3B5YyBnbyB0byBhbiBpbmZpbml0ZSBsb29wPyIpCisJZGllKCJbZW5kbG9vcF0gZmFpbGVkLiIpOworCisKK3ByaW50ICJzcHljLnlhbWwgcGFyc2VkIGNvcnJlY3RseVxuIjsKKworPz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3BocHVuaXQueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9waHB1bml0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjE1MWFmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9waHB1bml0LnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cGhwdW5pdCBjb2xvcnM9InRydWUiIGJvb3RzdHJhcD0idmVuZG9yL2F1dG9sb2FkLnBocCI+CisgICAgPHRlc3RzdWl0ZXM+CisgICAgICAgIDx0ZXN0c3VpdGUgbmFtZT0iYWxsIj4KKyAgICAgICAgICAgIDxkaXJlY3Rvcnkgc3VmZml4PSJUZXN0LnBocCI+dGVzdHMvPC9kaXJlY3Rvcnk+CisgICAgICAgIDwvdGVzdHN1aXRlPgorICAgIDwvdGVzdHN1aXRlcz4KKzwvcGhwdW5pdD4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvc3B5Yy55YW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy9zcHljLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg5ZjI4YwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvc3B5Yy55YW1sCkBAIC0wLDAgKzEsMjE5IEBACisjCisjICAgIFMgUCBZIEMKKyMgICAgICBhIHNpbXBsZSBwaHAgeWFtbCBjbGFzcworIworIyBhdXRob3JzOiBbdmxhZCBhbmRlcnNlbiAodmxhZC5hbmRlcnNlbkBnbWFpbC5jb20pLCBjaHJpcyB3YW5zdHJhdGggKGNocmlzQG96bW0ub3JnKV0KKyMgd2Vic2l0ZXM6IFtodHRwOi8vd3d3LnlhbWwub3JnLCBodHRwOi8vc3B5Yy5zb3VyY2Vmb3JnZS5uZXQvXQorIyBsaWNlbnNlOiBbTUlUIExpY2Vuc2UsIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXQorIyBjb3B5cmlnaHQ6IChjKSAyMDA1LTIwMDYgQ2hyaXMgV2Fuc3RyYXRoLCAyMDA2LTIwMTQgVmxhZCBBbmRlcnNlbgorIworIyBzcHljLnlhbWwgLSBBIGZpbGUgY29udGFpbmluZyB0aGUgWUFNTCB0aGF0IFNweWMgdW5kZXJzdGFuZHMuCisKKy0tLQorCisjIE1hcHBpbmdzIC0gd2l0aCBwcm9wZXIgdHlwZXMKK1N0cmluZzogQW55b25lJ3MgbmFtZSwgcmVhbGx5LgorSW50OiAxMworQmFkSGV4OiBmMHhmMworSGV4OiAweGYzCitUcnVlOiB0cnVlCitGYWxzZTogZmFsc2UKK1plcm86IDAKK051bGw6IE5VTEwKK05vdE51bGw6ICdudWxsJworTm90VHJ1ZTogJ3knCitOb3RCb29sVHJ1ZTogJ3RydWUnCitOb3RJbnQ6ICc1JworRmxvYXQ6IDUuMzQKK05lZ2F0aXZlOiAtOTAKK1NtYWxsRmxvYXQ6IDAuNworTmV3TGluZTogXG4KK1F1b3RlZE5ld0xpbmU6ICJcbiIKKworIyBBIHNlcXVlbmNlCistIFBIUCBDbGFzcworLSBCYXNpYyBZQU1MIExvYWRlcgorLSBWZXJ5IEJhc2ljIFlBTUwgRHVtcGVyCisKKyMgQSBzZXF1ZW5jZSBvZiBhIHNlcXVlbmNlCistCisgIC0gWUFNTCBpcyBzbyBlYXN5IHRvIGxlYXJuLgorICAtIFlvdXIgY29uZmlnIGZpbGVzIHdpbGwgbmV2ZXIgYmUgdGhlIHNhbWUuCisKKyMgU2VxdWVuY2Ugb2YgbWFwcGluZ3MKKy0KKyAgY3B1OiAxLjVnaHoKKyAgcmFtOiAxIGdpZworICBvcyA6IG9zIHggMTAuNC4xCisKKyMgTWFwcGVkIHNlcXVlbmNlCitkb21haW5zOgorICAtIHlhbWwub3JnCisgIC0gcGhwLm5ldAorCisjIEEgc2VxdWVuY2UgbGlrZSB0aGlzLgorLSBwcm9ncmFtOiBBZGl1bQorICBwbGF0Zm9ybTogT1MgWAorICB0eXBlOiBDaGF0IENsaWVudAorCisjIEEgZm9sZGVkIGJsb2NrIGFzIGEgbWFwcGVkIHZhbHVlCitubyB0aW1lOiA+CisgIFRoZXJlIGlzbid0IGFueSB0aW1lCisgIGZvciB5b3VyIHRyaWNrcyEKKworICBEbyB5b3UgdW5kZXJzdGFuZD8KKworIyBBIGxpdGVyYWwgYmxvY2sgYXMgYSBtYXBwZWQgdmFsdWUKK3NvbWUgdGltZTogfAorICBUaGVyZSBpcyBub3RoaW5nIGJ1dCB0aW1lCisgIGZvciB5b3VyIHRyaWNrcy4KKworIyBDcmF6eSBjb21iaW5hdGlvbnMKK2RhdGFiYXNlczoKKyAgLSBuYW1lOiBzcGFydGFuCisgICAgbm90ZXM6CisgICAgICAtIE5lZWRzIHRvIGJlIGJhY2tlZCB1cAorICAgICAgLSBOZWVkcyB0byBiZSBub3JtYWxpemVkCisgICAgdHlwZTogbXlzcWwKKworIyBZb3UgY2FuIGJlIGEgYml0IHRyaWNreQorImlmOiB5b3UnZCI6IGxpa2UKKworIyBJbmxpbmUgc2VxdWVuY2VzCistIFtPbmUsIFR3bywgVGhyZWUsIEZvdXJdCisKKyMgTmVzdGVkIElubGluZSBTZXF1ZW5jZXMKKy0gW09uZSwgW1R3bywgQW5kLCBUaHJlZV0sIEZvdXIsIEZpdmVdCisKKyMgTmVzdGVkIE5lc3RlZCBJbmxpbmUgU2VxdWVuY2VzCistIFtUaGlzLCBbSXMsIEdldHRpbmcsIFtSaWRpY3Vsb3VzLCBHdXlzXV0sIFNlcmlvdXNseSwgW1Nob3csIE1lcmN5XV0KKworIyBJbmxpbmUgbWFwcGluZ3MKKy0ge25hbWU6IGNocmlzLCBhZ2U6IHlvdW5nLCBicmFuZDogbHVja3kgc3RyaWtlfQorCisjIE5lc3RlZCBpbmxpbmUgbWFwcGluZ3MKKy0ge25hbWU6IG1hcmssIGFnZTogb2xkZXIgdGhhbiBjaHJpcywgYnJhbmQ6IFttYXJsYm9ybywgbHVja3kgc3RyaWtlXX0KKworIyBSZWZlcmVuY2VzIC0tIHRoZXkncmUgc2hha3ksIGJ1dCBmdW5jdGlvbmFsCitkeW5hbWljIGxhbmd1YWdlczogJkRMQU5HUworICAtIFBlcmwKKyAgLSBQeXRob24KKyAgLSBQSFAKKyAgLSBSdWJ5Citjb21waWxlZCBsYW5ndWFnZXM6ICZDTEFOR1MKKyAgLSBDL0MrKworICAtIEphdmEKK2FsbCBsYW5ndWFnZXM6CisgIC0gKkRMQU5HUworICAtICpDTEFOR1MKKworIyBBZGRlZCBpbiAuMi4yOiBFc2NhcGVkIHF1b3RlcworLSB5b3Uga25vdywgdGhpcyBzaG91bGRuJ3Qgd29yay4gIGJ1dCBpdCBkb2VzLgorLSAndGhhdCcncyBteSB2YWx1ZS4nCistICdhZ2FpbiwgdGhhdFwncyBteSB2YWx1ZS4nCistICJoZXJlJ3MgdG8gXCJxdW90ZXNcIiwgYm9zcy4iCisKKyMgYWRkZWQgaW4gLjIuMworLSB7bmFtZTogIkZvbywgQmFyJ3MiLCBhZ2U6IDIwfQorCisjIEFkZGVkIGluIC4yLjQ6IGJ1ZyBbIDE0MTgxOTMgXSBRdW90ZSBWYWx1ZXMgaW4gTmVzdGVkIEFycmF5cworLSBbYSwgWycxJywgIjIiXSwgYl0KKworIyBBZGQgaW4gLjUuMjogUXVvdGVkIG5ldyBsaW5lIHZhbHVlcy4KKy0gIkZpcnN0IGxpbmVcblNlY29uZCBsaW5lXG5UaGlyZCBsaW5lIgorCisjIEFkZGVkIGluIC4yLjQ6IG1hbGZvcm1lZCBZQU1MCithbGwKKyAgamF2YXNjcmlwdHM6ICAgICBbZG9tMS5qcywgZG9tLmpzXQorCisjIEFkZGVkIGluIC4yCisxMDQwOiBPb28sIGEgbnVtZXJpYyBrZXkhICMgQW5kIHdvcmtpbmcgY29tbWVudHM/IFdvdyEgQ29sb25zIGluIGNvbW1lbnRzOiBhIG1lbmFjZSAoMC4zKS4KKworaGFzaF8xOiBIYXNoICNhbmQgYSBjb21tZW50CitoYXNoXzI6ICJIYXNoICNhbmQgYSBjb21tZW50IgorImhhc2gjMyI6ICJIYXNoICgjKSBjYW4gYXBwZWFyIGluIGtleSB0b28iCisKK2Zsb2F0X3Rlc3Q6IDEuMAorZmxvYXRfdGVzdF93aXRoX3F1b3RlczogJzEuMCcKK2Zsb2F0X2ludmVyc2VfdGVzdDogMDAxCisKK2FfcmVhbGx5X2xhcmdlX251bWJlcjogMTE1NzkyMDg5MjM3MzE2MTk1NDIzNTcwOTg1MDA4Njg3OTA3ODUzMjY5OTg0NjY1NjQwNTY0MDM5NDU3NTg0MDA3OTEzMTI5NjM5OTM2ICMgMl4yNTYKKworaW50IGFycmF5OiBbIDEsIDIsIDMgXQorCithcnJheSBvbiBzZXZlcmFsIGxpbmVzOgorICBbIDAsICAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDksCisgICAgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTkgXQorCittb3JlbGVzc2tleTogIjx2YWx1ZT4iCisKK2FycmF5X29mX3plcm86IFswXQorc29waGlzdGljYXRlZF9hcnJheV9vZl96ZXJvOiB7cng6IHt0eDogWzBdfSB9CisKK3N3aXRjaGVzOgorICAtIHsgcm93OiAwLCBjb2w6IDAsIGZ1bmM6IHt0eDogWzAsIDFdfSB9CisKK2VtcHR5X3NlcXVlbmNlOiBbIF0KK2VtcHR5X2hhc2g6IHsgfQorCitzcGVjaWFsX2NoYXJhY3RlcnM6ICJbe11de3tdXSIKKworYXN0ZXJpc2tzOiAiKiIKKworZW1wdHlfa2V5OgorICA6CisgICAga2V5OiB2YWx1ZQorCit0cmFpbGluZ19jb2xvbjogImZvbzoiCisKK211bHRpbGluZV9pdGVtczoKKyAgLSB0eXBlOiBTb21lSXRlbQorICAgIHZhbHVlczogW2JsYWgsIGJsYWgsIGJsYWgsCisgICAgICBibGFoXQorICAgIGludHM6IFsyLCA1NCwgMTIsCisgICAgICAyMTQzXQorCittYW55X2xpbmVzOiB8CisgIEEgcXVpY2sKKyAgZm94CisKKworICBqdW1wZWQKKyAgb3ZlcgorCisKKworCisKKyAgYSBsYXp5CisKKworCisgIGRvZworCisKK3dlcnRlOgorICAxOiBudW1tZXIgMQorICAwOiBTdHVuZGUgMAorCitub2luZGVudF9yZWNvcmRzOgorLSByZWNvcmQxOiB2YWx1ZTEKKy0gcmVjb3JkMjogdmFsdWUyCisKKyJhOjEiOiBbMTAwMF0KKyJhOjIiOgorICAtIDIwMDAKK2E6MzogWzMwMDBdCisKK2NvbXBsZXhfdW5xdW90ZWRfa2V5OgorICBhOmI6Jyd0ZXN0JzogdmFsdWUKKworYXJyYXkgd2l0aCBjb21tYXM6CisgIFsiMCIsIjEiXQorCitpbnZvaWNlOiBbIlNvbWV0aGluZyIsICIiLCAnJywgIlNvbWV0aGluZyBlbHNlIl0KK3F1b3RlczogWydTb21ldGhpbmcnLCAiTm90aGluZyIsICdBbnl0aGluZycsICJUaGluZyJdCisKKyMgW0VuZGxvb3BdCitlbmRsb29wOiB8CisgIERvZXMgdGhpcyBsaW5lIGluIHRoZSBlbmQgaW5kZWVkIG1ha2UgU3B5YyBnbyB0byBhbiBpbmZpbml0ZSBsb29wPwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9EdW1wVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL0R1bXBUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWI1YzhlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9EdW1wVGVzdC5waHAKQEAgLTAsMCArMSwxOTQgQEAKKzw/cGhwCisKK2NsYXNzIER1bXBUZXN0IGV4dGVuZHMgUEhQVW5pdF9GcmFtZXdvcmtfVGVzdENhc2UgeworCisgICAgcHJpdmF0ZSAkZmlsZXNfdG9fdGVzdCA9IGFycmF5KCk7CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VXAoKSB7CisgICAgICAkdGhpcy0+ZmlsZXNfdG9fdGVzdCA9IGFycmF5IChfX0RJUl9fLicvLi4vc3B5Yy55YW1sJywgJ2ZhaWxpbmcxLnlhbWwnLCAnaW5kZW50XzEueWFtbCcsICdxdW90ZXMueWFtbCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2hvcnRTeW50YXgoKSB7CisgICAgICAkZHVtcCA9IHNweWNfZHVtcChhcnJheSAoJ2l0ZW0xJywgJ2l0ZW0yJywgJ2l0ZW0zJykpOworICAgICAgJGF3YWl0aW5nID0gIi0gaXRlbTFcbi0gaXRlbTJcbi0gaXRlbTNcbiI7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdER1bXAoKSB7CisgICAgICBmb3JlYWNoICgkdGhpcy0+ZmlsZXNfdG9fdGVzdCBhcyAkZmlsZSkgeworICAgICAgICAkeWFtbCA9IHNweWNfbG9hZChmaWxlX2dldF9jb250ZW50cygkZmlsZSkpOworICAgICAgICAkZHVtcCA9IFNweWM6OllBTUxEdW1wICgkeWFtbCk7CisgICAgICAgICR5YW1sX2FmdGVyX2R1bXAgPSBTcHljOjpZQU1MTG9hZCAoJGR1bXApOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkeWFtbCwgJHlhbWxfYWZ0ZXJfZHVtcCk7CisgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3REdW1wV2l0aFF1b3RlcygpIHsKKyAgICAgICRTcHljID0gbmV3IFNweWMoKTsKKyAgICAgICRTcHljLT5zZXR0aW5nX2R1bXBfZm9yY2VfcXVvdGVzID0gdHJ1ZTsKKyAgICAgIGZvcmVhY2ggKCR0aGlzLT5maWxlc190b190ZXN0IGFzICRmaWxlKSB7CisgICAgICAgICR5YW1sID0gJFNweWMtPmxvYWQoZmlsZV9nZXRfY29udGVudHMoJGZpbGUpKTsKKyAgICAgICAgJGR1bXAgPSAkU3B5Yy0+ZHVtcCAoJHlhbWwpOworICAgICAgICAkeWFtbF9hZnRlcl9kdW1wID0gU3B5Yzo6WUFNTExvYWQgKCRkdW1wKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJHlhbWwsICR5YW1sX2FmdGVyX2R1bXApOworICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RHVtcEFycmF5cygpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCdpdGVtMScsICdpdGVtMicsICdpdGVtMycpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbi0gaXRlbTFcbi0gaXRlbTJcbi0gaXRlbTNcbiI7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE51bGwoKSB7CisgICAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkoJ2EnID0+IDEsICdiJyA9PiBudWxsLCAnYycgPT4gMykpOworICAgICAgICAkYXdhaXRpbmcgPSAiLS0tXG5hOiAxXG5iOiBudWxsXG5jOiAzXG4iOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5leHQoKSB7CisgICAgICAgICRhcnJheSA9IGFycmF5KCJhYWEiLCAiYmJiIiwgImNjYyIpOworICAgICAgICAjc2V0IGFycmF5cyBpbnRlcm5hbCBwb2ludGVyIHRvIG5leHQgZWxlbWVudAorICAgICAgICBuZXh0KCRhcnJheSk7CisgICAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoJGFycmF5KTsKKyAgICAgICAgJGF3YWl0aW5nID0gIi0tLVxuLSBhYWFcbi0gYmJiXG4tIGNjY1xuIjsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3REdW1waW5nTWl4ZWRBcnJheXMoKSB7CisgICAgICAgICRhcnJheSA9IGFycmF5KCk7CisgICAgICAgICRhcnJheVtdID0gJ1NlcXVlbmNlIGl0ZW0nOworICAgICAgICAkYXJyYXlbJ1RoZSBLZXknXSA9ICdNYXBwZWQgdmFsdWUnOworICAgICAgICAkYXJyYXlbXSA9IGFycmF5KCdBIHNlcXVlbmNlJywnb2YgYSBzZXF1ZW5jZScpOworICAgICAgICAkYXJyYXlbXSA9IGFycmF5KCdmaXJzdCcgPT4gJ0Egc2VxdWVuY2UnLCdzZWNvbmQnID0+ICdvZiBtYXBwZWQgdmFsdWVzJyk7CisgICAgICAgICRhcnJheVsnTWFwcGVkJ10gPSBhcnJheSgnQSBzZXF1ZW5jZScsJ3doaWNoIGlzIG1hcHBlZCcpOworICAgICAgICAkYXJyYXlbJ0EgTm90ZSddID0gJ1doYXQgaWYgeW91ciB0ZXh0IGlzIHRvbyBsb25nPyc7CisgICAgICAgICRhcnJheVsnQW5vdGhlciBOb3RlJ10gPSAnSWYgdGhhdCBpcyB0aGUgY2FzZSwgdGhlIGR1bXBlciB3aWxsIHByb2JhYmx5IGZvbGQgeW91ciB0ZXh0IGJ5IHVzaW5nIGEgYmxvY2suICBLaW5kYSBsaWtlIHRoaXMuJzsKKyAgICAgICAgJGFycmF5WydUaGUgdHJpY2s/J10gPSAnVGhlIHRyaWNrIGlzIHRoYXQgd2Ugb3ZlcnJvZGUgdGhlIGRlZmF1bHQgaW5kZW50LCAyLCB0byA0IGFuZCB0aGUgZGVmYXVsdCB3b3Jkd3JhcCwgNDAsIHRvIDYwLic7CisgICAgICAgICRhcnJheVsnT2xkIERvZyddID0gIkFuZCBpZiB5b3Ugd2FudFxuIHRvIHByZXNlcnZlIGxpbmUgYnJlYWtzLCBcbmdvIGFoZWFkISI7CisgICAgICAgICRhcnJheVsna2V5OndpdGhjb2xvbiddID0gIlNob3VsZCBzdXBwb3J0IHRoaXMgdG8iOworCisgICAgICAgICR5YW1sID0gU3B5Yzo6WUFNTER1bXAoJGFycmF5LDQsNjApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWl4ZWQoKSB7CisgICAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkoMCA9PiAxLCAnYicgPT4gMiwgMSA9PiAzKSk7CisgICAgICAgICRhd2FpdGluZyA9ICItLS1cbjA6IDFcbmI6IDJcbjE6IDNcbiI7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RHVtcE51bWVyaWNzKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJzQwNCcsICc0MDUnLCAnNTAwJykpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuLSBcIjQwNFwiXG4tIFwiNDA1XCJcbi0gXCI1MDBcIlxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RHVtcEFzdGVyaXNrcygpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCcqJykpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuLSAnKidcbiI7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdER1bXBBbXBlcnNhbmRzKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJ3NvbWUnID0+ICcmZm9vJykpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuc29tZTogJyZmb28nXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3REdW1wRXhjbGFtYXRpb25zKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJ3NvbWUnID0+ICchZm9vJykpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuc29tZTogJyFmb28nXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3REdW1wRXhjbGFtYXRpb25zMigpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCdzb21lJyA9PiAnZm9vIScpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbnNvbWU6IGZvbyFcbiI7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdER1bXBBcG9zdHJvcGhlcygpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCdzb21lJyA9PiAiJ0JpeicgcGltcHQgYmVkcmlqdmVudGVycmVpbmVuIikpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuc29tZTogXCInQml6JyBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW5cIlxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RHVtcE51bWVyaWNIYXNoZXMoKSB7CisgICAgICAkZHVtcCA9IFNweWM6OllBTUxEdW1wKGFycmF5ICgidGl0ZWwiPT4gYXJyYXkoIjAiID0+ICIiLCAxID0+ICJEci4iLCA1ID0+ICJQcm9mLiIsIDYgPT4gIlByb2YuIERyLiIpKSk7CisgICAgICAkYXdhaXRpbmcgPSAiLS0tXG50aXRlbDpcbiAgMDogXCJcIlxuICAxOiBEci5cbiAgNTogUHJvZi5cbiAgNjogUHJvZi4gRHIuXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbXB0eSgpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkoImZvbyIgPT4gYXJyYXkoKSkpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuZm9vOiBbIF1cbiI7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEhhc2hlc0luS2V5cygpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCcjY29sb3InID0+ICcjZmZmZmZmJykpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxuXCIjY29sb3JcIjogJyNmZmZmZmYnXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQYXJhZ3JhcGgoKSB7CisgICAgICAkZHVtcCA9IFNweWM6OllBTUxEdW1wKGFycmF5ICgna2V5JyA9PiAifFxuICB2YWx1ZSIpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbmtleTogfFxuICB2YWx1ZVxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UGFyYWdyYXBoVHdvKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJ2tleScgPT4gJ0NvbmdyYXRzLCBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW4gcGltcHQgYmVkcmlqdmVudGVycmVpbmVuIHBpbXB0IGJlZHJpanZlbnRlcnJlaW5lbiEnKSk7CisgICAgICAkYXdhaXRpbmcgPSAiLS0tXG5rZXk6ID5cbiAgQ29uZ3JhdHMsIHBpbXB0IGJlZHJpanZlbnRlcnJlaW5lbiBwaW1wdFxuICBiZWRyaWp2ZW50ZXJyZWluZW4gcGltcHRcbiAgYmVkcmlqdmVudGVycmVpbmVuIVxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3RyaW5nKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJ2tleScgPT4gYXJyYXkoJ2tleV9vbmUnID0+ICdDb25ncmF0cywgcGltcHQgYmVkcmlqdmVudGVycmVpbmVuIScpKSk7CisgICAgICAkYXdhaXRpbmcgPSAiLS0tXG5rZXk6XG4gIGtleV9vbmU6IENvbmdyYXRzLCBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW4hXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdHJpbmdMb25nKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJ2tleScgPT4gYXJyYXkoJ2tleV9vbmUnID0+ICdDb25ncmF0cywgcGltcHQgYmVkcmlqdmVudGVycmVpbmVuIHBpbXB0IGJlZHJpanZlbnRlcnJlaW5lbiBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW4hJykpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbmtleTpcbiAga2V5X29uZTogPlxuICAgIENvbmdyYXRzLCBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW4gcGltcHRcbiAgICBiZWRyaWp2ZW50ZXJyZWluZW4gcGltcHRcbiAgICBiZWRyaWp2ZW50ZXJyZWluZW4hXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdHJpbmdEb3VibGVRdW90ZSgpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCdrZXknID0+IGFycmF5KCdrZXlfb25lJyA9PiAgYXJyYXkoJ2tleV90d28nID0+ICciU3lzdMOobWUgZFwnZS1yw6lzZXJ2YXRpb24iJykpKSk7CisgICAgICAkYXdhaXRpbmcgPSAiLS0tXG5rZXk6XG4gIGtleV9vbmU6XG4gICAga2V5X3R3bzogfFxuICAgICAgU3lzdMOobWUgZCdlLXLDqXNlcnZhdGlvblxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TG9uZ1N0cmluZ0RvdWJsZVF1b3RlKCkgeworICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcChhcnJheSAoJ2tleScgPT4gYXJyYXkoJ2tleV9vbmUnID0+ICBhcnJheSgna2V5X3R3bycgPT4gJyJTeXN0w6htZSBkXCdlLXLDqXNlcnZhdGlvbiBiZWRyaWp2ZW50ZXJyZWluZW4gcGltcHQiIGJlZHJpanZlbnRlcnJlaW5lbiEnKSkpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbmtleTpcbiAga2V5X29uZTpcbiAgICBrZXlfdHdvOiB8XG4gICAgICBcIlN5c3TDqG1lIGQnZS1yw6lzZXJ2YXRpb24gYmVkcmlqdmVudGVycmVpbmVuIHBpbXB0XCIgYmVkcmlqdmVudGVycmVpbmVuIVxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3RyaW5nU3RhcnRpbmdXaXRoU3BhY2UoKSB7CisgICAgICAkZHVtcCA9IFNweWM6OllBTUxEdW1wKGFycmF5ICgna2V5JyA9PiBhcnJheSgna2V5X29uZScgPT4gIiAgICBDb25ncmF0cywgcGltcHQgYmVkcmlqdmVudGVycmVpbmVuIFxuICAgIHBpbXB0IGJlZHJpanZlbnRlcnJlaW5lbiBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW4hIikpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbmtleTpcbiAga2V5X29uZTogfFxuICAgIENvbmdyYXRzLCBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW5cbiAgICBwaW1wdCBiZWRyaWp2ZW50ZXJyZWluZW4gcGltcHQgYmVkcmlqdmVudGVycmVpbmVuIVxuIjsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRhd2FpdGluZywgJGR1bXApOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UGVyQ2VudE9uZSgpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCdrZXknID0+ICIlbmFtZSUsIHBpbXB0cyBiZWRyaWp2ZW50ZXJyZWluZW4hIikpOworICAgICAgJGF3YWl0aW5nID0gIi0tLVxua2V5OiAnJW5hbWUlLCBwaW1wdHMgYmVkcmlqdmVudGVycmVpbmVuISdcbiI7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkYXdhaXRpbmcsICRkdW1wKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFBlckNlbnRBbmRTaW1wbGVRdW90ZSgpIHsKKyAgICAgICRkdW1wID0gU3B5Yzo6WUFNTER1bXAoYXJyYXkgKCdrZXknID0+ICIlbmFtZSUsIHBpbXB0J3MgYmVkcmlqdmVudGVycmVpbmVuISIpKTsKKyAgICAgICRhd2FpdGluZyA9ICItLS1cbmtleTogXCIlbmFtZSUsIHBpbXB0J3MgYmVkcmlqdmVudGVycmVpbmVuIVwiXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQZXJDZW50QW5kRG91YmxlUXVvdGUoKSB7CisgICAgICAkZHVtcCA9IFNweWM6OllBTUxEdW1wKGFycmF5ICgna2V5JyA9PiAnJW5hbWUlLCBwaW1wdFwncyAiYmVkInJpanZlbnRlcnJlaW5lbiEnKSk7CisgICAgICAkYXdhaXRpbmcgPSAiLS0tXG5rZXk6IHxcbiAgJW5hbWUlLCBwaW1wdCdzIFwiYmVkXCJyaWp2ZW50ZXJyZWluZW4hXG4iOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJGF3YWl0aW5nLCAkZHVtcCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL0luZGVudFRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9JbmRlbnRUZXN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2NkY2FiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9JbmRlbnRUZXN0LnBocApAQCAtMCwwICsxLDY4IEBACis8P3BocAorCitjbGFzcyBJbmRlbnRUZXN0IGV4dGVuZHMgUEhQVW5pdF9GcmFtZXdvcmtfVGVzdENhc2UgeworCisgICAgcHJvdGVjdGVkICRZOworCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFVwKCkgeworICAgICAgICAkdGhpcy0+WSA9IFNweWM6OllBTUxMb2FkKF9fRElSX18uIi9pbmRlbnRfMS55YW1sIik7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbmRlbnRfMSgpIHsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKCdjaGlsZF8xJyA9PiAyLCAnY2hpbGRfMicgPT4gMCwgJ2NoaWxkXzMnID0+IDEpLCAkdGhpcy0+WVsncm9vdCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEluZGVudF8yKCkgeworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ2NoaWxkXzEnID0+IDEsICdjaGlsZF8yJyA9PiAyKSwgJHRoaXMtPllbJ3Jvb3QyJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW5kZW50XzMoKSB7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5IChhcnJheSAoJ3Jlc29sdXRpb25zJyA9PiBhcnJheSAoMTAyNCA9PiA3NjgsIDE5MjAgPT4gMTIwMCksICdwcm9kdWNlcicgPT4gJ05lYycpKSwgJHRoaXMtPllbJ2Rpc3BsYXknXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbmRlbnRfNCgpIHsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKAorICAgICAgICAgICAgYXJyYXkgKCdyZXNvbHV0aW9ucycgPT4gYXJyYXkgKDEwMjQgPT4gNzY4KSksCisgICAgICAgICAgICBhcnJheSAoJ3Jlc29sdXRpb25zJyA9PiBhcnJheSAoMTkyMCA9PiAxMjAwKSksCisgICAgICAgICksICR0aGlzLT5ZWydkaXNwbGF5cyddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEluZGVudF81KCkgeworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoYXJyYXkgKAorICAgICAgICAgICAgJ3JvdycgPT4gMCwKKyAgICAgICAgICAgICdjb2wnID0+IDAsCisgICAgICAgICAgICAnaGVhZHNldHNfYWZmZWN0ZWQnID0+IGFycmF5ICgKKyAgICAgICAgICAgICAgICBhcnJheSAoCisgICAgICAgICAgICAgICAgICAgICdwb3J0cycgPT4gYXJyYXkgKDApLAorICAgICAgICAgICAgICAgICAgICAnc2lkZScgPT4gJ2xlZnQnLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnc3dpdGNoX2Z1bmN0aW9uJyA9PiBhcnJheSAoCisgICAgICAgICAgICAgICAgJ2ljc19wdHQnID0+IHRydWUKKyAgICAgICAgICAgICkKKyAgICAgICAgKSksICR0aGlzLT5ZWyduZXN0ZWRfaGFzaGVzX2FuZF9zZXFzJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW5kZW50XzYoKSB7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5ICgKKyAgICAgICAgICAgICdoJyA9PiBhcnJheSAoCisgICAgICAgICAgICAgICAgYXJyYXkgKCdhJyA9PiAnYicsICdhMScgPT4gJ2IxJyksCisgICAgICAgICAgICAgICAgYXJyYXkgKCdjJyA9PiAnZCcpCisgICAgICAgICAgICApCisgICAgICAgICksICR0aGlzLT5ZWydlYXNpZXJfbmVzdCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEluZGVudF9zcGFjZSgpIHsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIkJ5IGZvdXJcbiAgc3BhY2VzIiwgJHRoaXMtPllbJ29uZV9zcGFjZSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdExpc3RBbmRDb21tZW50KCkgeworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ29uZScsICd0d28nLCAndGhyZWUnKSwgJHRoaXMtPllbJ2xpc3RfYW5kX2NvbW1lbnQnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBbmNob3JBbmRBbGlhcygpIHsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKCdkYXRhYmFzZScgPT4gJ3JhaWxzX2RldicsICdhZGFwdGVyJyA9PiAnbXlzcWwnLCAnaG9zdCcgPT4gJ2xvY2FsaG9zdCcpLCAkdGhpcy0+WVsnZGV2ZWxvcG1lbnQnXSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5ICgxID0+ICdhYmMnKSwgJHRoaXMtPllbJ3p6eiddKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvTG9hZFRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9Mb2FkVGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI1ZDM2ZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvTG9hZFRlc3QucGhwCkBAIC0wLDAgKzEsMTcgQEAKKzw/cGhwCisKK2NsYXNzIExvYWRUZXN0IGV4dGVuZHMgUEhQVW5pdF9GcmFtZXdvcmtfVGVzdENhc2UgeworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UXVvdGVzKCkgeworICAgICAgICAkdGVzdF92YWx1ZXMgPSBhcnJheSgKKyAgICAgICAgICAgICJhZGphY2VudCAnJycnIFwiXCJcIlwiIHF1b3Rlcy4iLAorICAgICAgICAgICAgImFkamFjZW50ICcnJycgcXVvdGVzLiIsCisgICAgICAgICAgICAiYWRqYWNlbnQgXCJcIlwiXCIgcXVvdGVzLiIsCisgICAgICAgICk7CisgICAgICAgIGZvcmVhY2goJHRlc3RfdmFsdWVzIGFzICR2YWx1ZSkgeworICAgICAgICAgICAgJHlhbWwgPSBhcnJheSgkdmFsdWUpOworICAgICAgICAgICAgJGR1bXAgPSBTcHljOjpZQU1MRHVtcCAoJHlhbWwpOworICAgICAgICAgICAgJHlhbWxfbG9hZGVkID0gU3B5Yzo6WUFNTExvYWQgKCRkdW1wKTsKKyAgICAgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCR5YW1sLCAkeWFtbF9sb2FkZWQpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9QYXJzZVRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9QYXJzZVRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZTc3Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL1BhcnNlVGVzdC5waHAKQEAgLTAsMCArMSw0MTMgQEAKKzw/cGhwCisKK2NsYXNzIFBhcnNlVGVzdCBleHRlbmRzIFBIUFVuaXRfRnJhbWV3b3JrX1Rlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCAkeWFtbDsKKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRVcCgpIHsKKyAgICAgICR0aGlzLT55YW1sID0gc3B5Y19sb2FkX2ZpbGUoX19ESVJfXy4nLy4uL3NweWMueWFtbCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWVyZ2VIYXNoS2V5cygpIHsKKyAgICAgICRFeHBlY3RlZCA9ICBhcnJheSAoCisgICAgICAgIGFycmF5ICgnc3RlcCcgPT4gYXJyYXkoJ2luc3RydW1lbnQnID0+ICdMYXNpayAyMDAwJywgJ3B1bHNlRW5lcmd5JyA9PiA1LjQsICdwdWxzZUR1cmF0aW9uJyA9PiAxMiwgJ3JlcGV0aXRpb24nID0+IDEwMDAsICdzcG90U2l6ZScgPT4gJzFtbScpKSwKKyAgICAgICAgYXJyYXkgKCdzdGVwJyA9PiBhcnJheSgnaW5zdHJ1bWVudCcgPT4gJ0xhc2lrIDIwMDAnLCAncHVsc2VFbmVyZ3knID0+IDUuNCwgJ3B1bHNlRHVyYXRpb24nID0+IDEyLCAncmVwZXRpdGlvbicgPT4gMTAwMCwgJ3Nwb3RTaXplJyA9PiAnMm1tJykpLAorICAgICAgKTsKKyAgICAgICRBY3R1YWwgPSBzcHljX2xvYWRfZmlsZSAoX19ESVJfXy4nL2luZGVudF8xLnlhbWwnKTsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRFeHBlY3RlZCwgJEFjdHVhbFsnc3RlcHMnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3REZWF0aE1hc2tzKCkgeworICAgICAgJEV4cGVjdGVkID0gYXJyYXkgKCdzYWQnID0+IDIsICdtYWduaWZpY2VudCcgPT4gNCk7CisgICAgICAkQWN0dWFsID0gc3B5Y19sb2FkX2ZpbGUgKF9fRElSX18uJy9pbmRlbnRfMS55YW1sJyk7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkRXhwZWN0ZWQsICRBY3R1YWxbJ2RlYXRoIG1hc2tzIGFyZSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdERldkRiKCkgeworICAgICAgJEV4cGVjdGVkID0gYXJyYXkgKCdhZGFwdGVyJyA9PiAnbXlzcWwnLCAnaG9zdCcgPT4gJ2xvY2FsaG9zdCcsICdkYXRhYmFzZScgPT4gJ3JhaWxzX2RldicpOworICAgICAgJEFjdHVhbCA9IHNweWNfbG9hZF9maWxlIChfX0RJUl9fLicvaW5kZW50XzEueWFtbCcpOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJEV4cGVjdGVkLCAkQWN0dWFsWydkZXZlbG9wbWVudCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE51bWVyaWNLZXkoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgiT29vLCBhIG51bWVyaWMga2V5ISIsICR0aGlzLT55YW1sWzEwNDBdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE1hcHBpbmdzU3RyaW5nKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIkFueW9uZSdzIG5hbWUsIHJlYWxseS4iLCAkdGhpcy0+eWFtbFsnU3RyaW5nJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWFwcGluZ3NJbnQoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoMTMsICR0aGlzLT55YW1sWydJbnQnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNYXBwaW5nc0hleCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lICgyNDMsICR0aGlzLT55YW1sWydIZXgnXSk7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoJ2YweGYzJywgJHRoaXMtPnlhbWxbJ0JhZEhleCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE1hcHBpbmdzQm9vbGVhblRydWUoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAodHJ1ZSwgJHRoaXMtPnlhbWxbJ1RydWUnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNYXBwaW5nc0Jvb2xlYW5GYWxzZSgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lIChmYWxzZSwgJHRoaXMtPnlhbWxbJ0ZhbHNlJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWFwcGluZ3NaZXJvKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKDAsICR0aGlzLT55YW1sWydaZXJvJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWFwcGluZ3NOdWxsKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKG51bGwsICR0aGlzLT55YW1sWydOdWxsJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TWFwcGluZ3NOb3ROdWxsKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKCdudWxsJywgJHRoaXMtPnlhbWxbJ05vdE51bGwnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNYXBwaW5nc0Zsb2F0KCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKDUuMzQsICR0aGlzLT55YW1sWydGbG9hdCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE1hcHBpbmdzTmVnYXRpdmUoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoLTkwLCAkdGhpcy0+eWFtbFsnTmVnYXRpdmUnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNYXBwaW5nc1NtYWxsRmxvYXQoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoMC43LCAkdGhpcy0+eWFtbFsnU21hbGxGbG9hdCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5ld2xpbmUoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoJ1xuJywgJHRoaXMtPnlhbWxbJ05ld0xpbmUnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RRdW90ZWROZXdsaW5lKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKCJcbiIsICR0aGlzLT55YW1sWydRdW90ZWROZXdMaW5lJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2VxMCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCJQSFAgQ2xhc3MiLCAkdGhpcy0+eWFtbFswXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTZXExKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIkJhc2ljIFlBTUwgTG9hZGVyIiwgJHRoaXMtPnlhbWxbMV0pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2VxMigpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCJWZXJ5IEJhc2ljIFlBTUwgRHVtcGVyIiwgJHRoaXMtPnlhbWxbMl0pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U2VxMygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5KCJZQU1MIGlzIHNvIGVhc3kgdG8gbGVhcm4uIiwKKwkJCQkJCQkJCQkJIllvdXIgY29uZmlnIGZpbGVzIHdpbGwgbmV2ZXIgYmUgdGhlIHNhbWUuIiksICR0aGlzLT55YW1sWzNdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFNlcU1hcCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5KCJjcHUiID0+ICIxLjVnaHoiLCAicmFtIiA9PiAiMSBnaWciLAorCQkJCQkJCQkJCQkib3MiID0+ICJvcyB4IDEwLjQuMSIpLCAkdGhpcy0+eWFtbFs0XSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNYXBwZWRTZXF1ZW5jZSgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5KCJ5YW1sLm9yZyIsICJwaHAubmV0IiksICR0aGlzLT55YW1sWydkb21haW5zJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QW5vdGhlclNlcXVlbmNlKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkoInByb2dyYW0iID0+ICJBZGl1bSIsICJwbGF0Zm9ybSIgPT4gIk9TIFgiLAorCQkJCQkJCQkJCQkidHlwZSIgPT4gIkNoYXQgQ2xpZW50IiksICR0aGlzLT55YW1sWzVdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEZvbGRlZEJsb2NrKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIlRoZXJlIGlzbid0IGFueSB0aW1lIGZvciB5b3VyIHRyaWNrcyFcbkRvIHlvdSB1bmRlcnN0YW5kPyIsICR0aGlzLT55YW1sWydubyB0aW1lJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0TGl0ZXJhbEFzTWFwcGVkKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIlRoZXJlIGlzIG5vdGhpbmcgYnV0IHRpbWVcbmZvciB5b3VyIHRyaWNrcy4iLCAkdGhpcy0+eWFtbFsnc29tZSB0aW1lJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JhenkoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSggYXJyYXkoIm5hbWUiID0+ICJzcGFydGFuIiwgIm5vdGVzIiA9PgorCQkJCQkJCQkJCQkJCQkJCQkJCWFycmF5KCAiTmVlZHMgdG8gYmUgYmFja2VkIHVwIiwKKwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkgIk5lZWRzIHRvIGJlIG5vcm1hbGl6ZWQiICksCisJCQkJCQkJCQkJCQkJCQkJCQkJICJ0eXBlIiA9PiAibXlzcWwiICkpLCAkdGhpcy0+eWFtbFsnZGF0YWJhc2VzJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29sb25zKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoImxpa2UiLCAkdGhpcy0+eWFtbFsiaWY6IHlvdSdkIl0pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0SW5saW5lKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkoIk9uZSIsICJUd28iLCAiVGhyZWUiLCAiRm91ciIpLCAkdGhpcy0+eWFtbFs2XSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROZXN0ZWRJbmxpbmUoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSgiT25lIiwgYXJyYXkoIlR3byIsICJBbmQiLCAiVGhyZWUiKSwgIkZvdXIiLCAiRml2ZSIpLCAkdGhpcy0+eWFtbFs3XSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROZXN0ZWROZXN0ZWRJbmxpbmUoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSggIlRoaXMiLCBhcnJheSgiSXMiLCAiR2V0dGluZyIsIGFycmF5KCJSaWRpY3Vsb3VzIiwgIkd1eXMiKSksCisJCQkJCQkJCQkiU2VyaW91c2x5IiwgYXJyYXkoIlNob3ciLCAiTWVyY3kiKSksICR0aGlzLT55YW1sWzhdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdElubGluZU1hcHBpbmdzKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkoIm5hbWUiID0+ICJjaHJpcyIsICJhZ2UiID0+ICJ5b3VuZyIsICJicmFuZCIgPT4gImx1Y2t5IHN0cmlrZSIpLCAkdGhpcy0+eWFtbFs5XSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3ROZXN0ZWRJbmxpbmVNYXBwaW5ncygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5KCJuYW1lIiA9PiAibWFyayIsICJhZ2UiID0+ICJvbGRlciB0aGFuIGNocmlzIiwKKwkJCQkJCQkJCQkJICJicmFuZCIgPT4gYXJyYXkoIm1hcmxib3JvIiwgImx1Y2t5IHN0cmlrZSIpKSwgJHRoaXMtPnlhbWxbMTBdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFJlZmVyZW5jZXMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSgnUGVybCcsICdQeXRob24nLCAnUEhQJywgJ1J1YnknKSwgJHRoaXMtPnlhbWxbJ2R5bmFtaWMgbGFuZ3VhZ2VzJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmVmZXJlbmNlczIoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSgnQy9DKysnLCAnSmF2YScpLCAkdGhpcy0+eWFtbFsnY29tcGlsZWQgbGFuZ3VhZ2VzJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UmVmZXJlbmNlczMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSgKKwkJCQkJCQkJCQkJCQkJCQkJCWFycmF5KCdQZXJsJywgJ1B5dGhvbicsICdQSFAnLCAnUnVieScpLAorCQkJCQkJCQkJCQkJCQkJCQkJYXJyYXkoJ0MvQysrJywgJ0phdmEnKQorCQkJCQkJCQkJCQkJCQkJCQkgKSwgJHRoaXMtPnlhbWxbJ2FsbCBsYW5ndWFnZXMnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFc2NhcGVkUXVvdGVzKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoInlvdSBrbm93LCB0aGlzIHNob3VsZG4ndCB3b3JrLiAgYnV0IGl0IGRvZXMuIiwgJHRoaXMtPnlhbWxbMTFdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEVzY2FwZWRRdW90ZXNfMigpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCAidGhhdCdzIG15IHZhbHVlLiIsICR0aGlzLT55YW1sWzEyXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFc2NhcGVkUXVvdGVzXzMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgiYWdhaW4sIHRoYXQncyBteSB2YWx1ZS4iLCAkdGhpcy0+eWFtbFsxM10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UXVvdGVzKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoImhlcmUncyB0byBcInF1b3Rlc1wiLCBib3NzLiIsICR0aGlzLT55YW1sWzE0XSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RRdW90ZVNlcXVlbmNlKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIGFycmF5KCAnbmFtZScgPT4gIkZvbywgQmFyJ3MiLCAnYWdlJyA9PiAyMCksICR0aGlzLT55YW1sWzE1XSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTaG9ydFNlcXVlbmNlKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkoIDAgPT4gImEiLCAxID0+IGFycmF5ICgwID0+IDEsIDEgPT4gMiksIDIgPT4gImIiKSwgJHRoaXMtPnlhbWxbMTZdKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFF1b3RlZE5ld2xpbmVzKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoIkZpcnN0IGxpbmVcblNlY29uZCBsaW5lXG5UaGlyZCBsaW5lIiwgJHRoaXMtPnlhbWxbMTddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEhhc2hfMSgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCJIYXNoIiwgJHRoaXMtPnlhbWxbJ2hhc2hfMSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEhhc2hfMigpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCdIYXNoICNhbmQgYSBjb21tZW50JywgJHRoaXMtPnlhbWxbJ2hhc2hfMiddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEhhc2hfMygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCdIYXNoICgjKSBjYW4gYXBwZWFyIGluIGtleSB0b28nLCAkdGhpcy0+eWFtbFsnaGFzaCMzJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RW5kbG9vcCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCJEb2VzIHRoaXMgbGluZSBpbiB0aGUgZW5kIGluZGVlZCBtYWtlIFNweWMgZ28gdG8gYW4gaW5maW5pdGUgbG9vcD8iLCAkdGhpcy0+eWFtbFsnZW5kbG9vcCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFJlYWxseUxhcmdlTnVtYmVyKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJzExNTc5MjA4OTIzNzMxNjE5NTQyMzU3MDk4NTAwODY4NzkwNzg1MzI2OTk4NDY2NTY0MDU2NDAzOTQ1NzU4NDAwNzkxMzEyOTYzOTkzNicsICR0aGlzLT55YW1sWydhX3JlYWxseV9sYXJnZV9udW1iZXInXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RGbG9hdFdpdGhaZXJvcygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lICgnMS4wJywgJHRoaXMtPnlhbWxbJ2Zsb2F0X3Rlc3QnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RGbG9hdFdpdGhRdW90ZXMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoJzEuMCcsICR0aGlzLT55YW1sWydmbG9hdF90ZXN0X3dpdGhfcXVvdGVzJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RmxvYXRJbnZlcnNlKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJzAwMScsICR0aGlzLT55YW1sWydmbG9hdF9pbnZlcnNlX3Rlc3QnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RJbnRBcnJheSgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5ICgxLCAyLCAzKSwgJHRoaXMtPnlhbWxbJ2ludCBhcnJheSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEFycmF5T25TZXZlcmFsTGluZXMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTkpLCAkdGhpcy0+eWFtbFsnYXJyYXkgb24gc2V2ZXJhbCBsaW5lcyddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEFycmF5V2l0aENvbW1hcygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoYXJyYXkgKDAsIDEpLCAkdGhpcy0+eWFtbFsnYXJyYXkgd2l0aCBjb21tYXMnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3Rtb3JlTGVzc0tleSgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCc8dmFsdWU+JywgJHRoaXMtPnlhbWxbJ21vcmVsZXNza2V5J10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QXJyYXlPZlplcm8oKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoYXJyYXkoMCksICR0aGlzLT55YW1sWydhcnJheV9vZl96ZXJvJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U29waGlzdGljYXRlZEFycmF5T2ZaZXJvKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5KCdyeCcgPT4gYXJyYXkgKCd0eCcgPT4gYXJyYXkgKDApKSksICR0aGlzLT55YW1sWydzb3BoaXN0aWNhdGVkX2FycmF5X29mX3plcm8nXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTd2l0Y2hlcygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5IChhcnJheSAoJ3JvdycgPT4gMCwgJ2NvbCcgPT4gMCwgJ2Z1bmMnID0+IGFycmF5ICgndHgnID0+IGFycmF5KDAsIDEpKSkpLCAkdGhpcy0+eWFtbFsnc3dpdGNoZXMnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbXB0eVNlcXVlbmNlKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5KCksICR0aGlzLT55YW1sWydlbXB0eV9zZXF1ZW5jZSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEVtcHR5SGFzaCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lIChhcnJheSgpLCAkdGhpcy0+eWFtbFsnZW1wdHlfaGFzaCddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEVtcHR5a2V5KCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5KCcnID0+IGFycmF5ICgna2V5JyA9PiAndmFsdWUnKSksICR0aGlzLT55YW1sWydlbXB0eV9rZXknXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNdWx0aWxpbmVzKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5KGFycmF5KCd0eXBlJyA9PiAnU29tZUl0ZW0nLCAndmFsdWVzJyA9PiBhcnJheSAoJ2JsYWgnLCAnYmxhaCcsICdibGFoJywgJ2JsYWgnKSwgJ2ludHMnID0+IGFycmF5KDIsIDU0LCAxMiwgMjE0MykpKSwgJHRoaXMtPnlhbWxbJ211bHRpbGluZV9pdGVtcyddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE1hbnlOZXdsaW5lcygpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lICgnQSBxdWljaworZm94CisKKworanVtcGVkCitvdmVyCisKKworCisKKworYSBsYXp5CisKKworCitkb2cnLCAkdGhpcy0+eWFtbFsnbWFueV9saW5lcyddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFdlcnRlKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5ICgnMScgPT4gJ251bW1lciAxJywgJzAnID0+ICdTdHVuZGUgMCcpLCAkdGhpcy0+eWFtbFsnd2VydGUnXSk7CisgICAgfQorCisgICAgLyogcHVibGljIGZ1bmN0aW9uIHRlc3ROb0luZGVudCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lIChhcnJheSgKKyAgICAgICAgYXJyYXkgKCdyZWNvcmQxJz0+J3ZhbHVlMScpLAorICAgICAgICBhcnJheSAoJ3JlY29yZDInPT4ndmFsdWUyJykKKyAgICAgICkKKyAgICAgICwgJHRoaXMtPnlhbWxbJ25vaW5kZW50X3JlY29yZHMnXSk7CisgICAgfSAqLworCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDb2xvbnNJbktleXMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoYXJyYXkgKDEwMDApLCAkdGhpcy0+eWFtbFsnYToxJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29sb25zSW5LZXlzMigpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRTYW1lIChhcnJheSAoMjAwMCksICR0aGlzLT55YW1sWydhOjInXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RVbnF1b3RlZENvbG9uc0luS2V5cygpIHsKKyAgICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5ICgzMDAwKSwgJHRoaXMtPnlhbWxbJ2E6MyddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENvbXBsaWNhdGVkS2V5V2l0aENvbG9uKCkgeworICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZShhcnJheSgiYTpiOicndGVzdCciID0+ICd2YWx1ZScpLCAkdGhpcy0+eWFtbFsnY29tcGxleF91bnF1b3RlZF9rZXknXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RLZXlzSW5NYXBwZWRWYWx1ZUV4Y2VwdGlvbigpIHsKKyAgICAgICAgJHRoaXMtPnNldEV4cGVjdGVkRXhjZXB0aW9uKCdFeGNlcHRpb24nKTsKKyAgICAgICAgU3B5Yzo6WUFNTExvYWQoJ3g6IHk6IHo6Jyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RLZXlzSW5WYWx1ZUV4Y2VwdGlvbigpIHsKKyAgICAgICAgJHRoaXMtPnNldEV4cGVjdGVkRXhjZXB0aW9uKCdFeGNlcHRpb24nKTsKKyAgICAgICAgU3B5Yzo6WUFNTExvYWQoJ3g6IHk6IHonKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFNwZWNpYWxDaGFyYWN0ZXJzKCkgeworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKCdbe11de3tdXScsICR0aGlzLT55YW1sWydzcGVjaWFsX2NoYXJhY3RlcnMnXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RBbmdsZVF1b3RlcygpIHsKKyAgICAgICRRdW90ZXMgPSBTcHljOjpZQU1MTG9hZChfX0RJUl9fLicvcXVvdGVzLnlhbWwnKTsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5ICgnaHRtbF90YWdzJyA9PiBhcnJheSAoJzxicj4nLCAnPHA+JyksICdodG1sX2NvbnRlbnQnID0+IGFycmF5ICgnPHA+aGVsbG8gd29ybGQ8L3A+JywgJ2hlbGxvPGJyPndvcmxkJyksICd0ZXh0X2NvbnRlbnQnID0+IGFycmF5ICgnaGVsbG8gd29ybGQnKSksCisgICAgICAgICAgJFF1b3Rlcyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RGYWlsaW5nQ29sb25zKCkgeworICAgICAgJEZhaWxpbmcgPSBTcHljOjpZQU1MTG9hZChfX0RJUl9fLicvZmFpbGluZzEueWFtbCcpOworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKGFycmF5ICgnTXlPYmplY3QnID0+IGFycmF5ICgnUHJvcDEnID0+IGFycmF5ICgna2V5MTp2YWwxJykpKSwKKyAgICAgICAgICAkRmFpbGluZyk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RRdW90ZXNXaXRoQ29tbWVudHMoKSB7CisgICAgICAkRXhwZWN0ZWQgPSAnYmFyJzsKKyAgICAgICRBY3R1YWwgPSBzcHljX2xvYWRfZmlsZSAoX19ESVJfXy4nL2NvbW1lbnRzLnlhbWwnKTsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRFeHBlY3RlZCwgJEFjdHVhbFsnZm9vJ10pOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QXJyYXlXaXRoQ29tbWVudHMoKSB7CisgICAgICAkRXhwZWN0ZWQgPSBhcnJheSAoJ3gnLCAneScsICd6Jyk7CisgICAgICAkQWN0dWFsID0gc3B5Y19sb2FkX2ZpbGUgKF9fRElSX18uJy9jb21tZW50cy55YW1sJyk7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzICgkRXhwZWN0ZWQsICRBY3R1YWxbJ2FyciddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEFmdGVyQXJyYXlXaXRoS2l0dGVucygpIHsKKyAgICAgICRFeHBlY3RlZCA9ICdraXR0ZW5zJzsKKyAgICAgICRBY3R1YWwgPSBzcHljX2xvYWRfZmlsZSAoX19ESVJfXy4nL2NvbW1lbnRzLnlhbWwnKTsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKCRFeHBlY3RlZCwgJEFjdHVhbFsnYmFyJ10pOworICAgIH0KKworICAgIC8vIFBsYWluIGNoYXJhY3RlcnMgaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyNzg5NTEwCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RLYWkoKSB7CisgICAgICAkRXhwZWN0ZWQgPSBhcnJheSgnLWV4YW1wbGUnID0+ICd2YWx1ZScpOworICAgICAgJEFjdHVhbCA9IHNweWNfbG9hZF9maWxlIChfX0RJUl9fLicvaW5kZW50XzEueWFtbCcpOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJEV4cGVjdGVkLCAkQWN0dWFsWydrYWknXSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RLYWlMaXN0KCkgeworICAgICAgJEV4cGVjdGVkID0gYXJyYXkgKCctaXRlbScsICctaXRlbScsICctaXRlbScpOworICAgICAgJEFjdHVhbCA9IHNweWNfbG9hZF9maWxlIChfX0RJUl9fLicvaW5kZW50XzEueWFtbCcpOworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoJEV4cGVjdGVkLCAkQWN0dWFsWydrYWlfbGlzdF9vZl9pdGVtcyddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdERpZmZlcmVudFF1b3RlVHlwZXMoKSB7CisgICAgICAkZXhwZWN0ZWQgPSBhcnJheSAoJ1NvbWV0aGluZycsICIiLCAiIiwgIlNvbWV0aGluZyBlbHNlIik7CisgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSAoJGV4cGVjdGVkLCAkdGhpcy0+eWFtbFsnaW52b2ljZSddKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdERpZmZlcmVudFF1b3RlVHlwZXMyKCkgeworICAgICAgJGV4cGVjdGVkID0gYXJyYXkgKCdTb21ldGhpbmcnLCAiTm90aGluZyIsICJBbnl0aGluZyIsICJUaGluZyIpOworICAgICAgJHRoaXMtPmFzc2VydFNhbWUgKCRleHBlY3RlZCwgJHRoaXMtPnlhbWxbJ3F1b3RlcyddKTsKKyAgICB9CisKKyAgICAvLyBTZXBhcmF0aW9uIHNwYWNlcyBodHRwOi8vd3d3LnlhbWwub3JnL3NwZWMvMS4yL3NwZWMuaHRtbCNpZDI3NzgzOTQKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE11bHRpcGxlQXJyYXlzKCkgeworICAgICAgJGV4cGVjdGVkID0gYXJyYXkoYXJyYXkoYXJyYXkoJ3gnKSkpOworICAgICAgJHRoaXMtPmFzc2VydFNhbWUoJGV4cGVjdGVkLCBTcHljOjpZQU1MTG9hZCgiLSAtIC0geCIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEVsZW1lbnRXaXRoRW1wdHlIYXNoKCkKKyAgICB7CisgICAgICAgICRlbGVtZW50ID0gImhhc2g6IHt9XG5hcnJheTogW10iOworICAgICAgICAkeWFtbCA9IFNweWM6OllBTUxMb2FkU3RyaW5nKCRlbGVtZW50KTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkeWFtbFsnaGFzaCddLCBbXSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJHlhbWxbJ2FycmF5J10sIFtdKTsKKworICAgICAgICAkeWFtbCA9IFNweWM6OllBTUxMb2FkU3RyaW5nKCRlbGVtZW50LCBbCisgICAgICAgICAgICAnc2V0dGluZ19lbXB0eV9oYXNoX2FzX29iamVjdCcgPT4gdHJ1ZQorICAgICAgICBdKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEluc3RhbmNlT2Yoc3RkQ2xhc3M6OmNsYXNzLCAkeWFtbFsnaGFzaCddKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkeWFtbFsnYXJyYXknXSwgW10pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvUm91bmRUcmlwVGVzdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL1JvdW5kVHJpcFRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNzA3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL1JvdW5kVHJpcFRlc3QucGhwCkBAIC0wLDAgKzEsNzYgQEAKKzw/cGhwCisKK2Z1bmN0aW9uIHJvdW5kVHJpcCgkYSkgeyByZXR1cm4gU3B5Yzo6WUFNTExvYWQoU3B5Yzo6WUFNTER1bXAoYXJyYXkoJ3gnID0+ICRhKSkpOyB9CisKKworY2xhc3MgUm91bmRUcmlwVGVzdCBleHRlbmRzIFBIUFVuaXRfRnJhbWV3b3JrX1Rlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRVcCgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE51bGwoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ3gnID0+IG51bGwpLCByb3VuZFRyaXAgKG51bGwpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFkoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ3gnID0+ICd5JyksIHJvdW5kVHJpcCAoJ3knKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RXhjbGFtKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKCd4JyA9PiAnIXllYWgnKSwgcm91bmRUcmlwICgnIXllYWgnKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3Q1KCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKCd4JyA9PiAnNScpLCByb3VuZFRyaXAgKCc1JykpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0U3BhY2VzKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKCd4JyA9PiAneCAnKSwgcm91bmRUcmlwICgneCAnKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QXBvc3Ryb3BoZXMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ3gnID0+ICInYml6JyIpLCByb3VuZFRyaXAgKCInYml6JyIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5ld0xpbmVzKCkgeworICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyAoYXJyYXkgKCd4JyA9PiAiXG4iKSwgcm91bmRUcmlwICgiXG4iKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RIYXNoZXMoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ3gnID0+IGFycmF5ICgiI2NvbG9yIiA9PiAnI2ZmZicpKSwgcm91bmRUcmlwIChhcnJheSAoIiNjb2xvciIgPT4gJyNmZmYnKSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UHJlc2VydmVTdHJpbmcoKSB7CisgICAgICAkcmVzdWx0MSA9IHJvdW5kVHJpcCAoJzAnKTsKKyAgICAgICRyZXN1bHQyID0gcm91bmRUcmlwICgndHJ1ZScpOworICAgICAgJHRoaXMtPmFzc2VydFRydWUgKGlzX3N0cmluZyAoJHJlc3VsdDFbJ3gnXSkpOworICAgICAgJHRoaXMtPmFzc2VydFRydWUgKGlzX3N0cmluZyAoJHJlc3VsdDJbJ3gnXSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0UHJlc2VydmVCb29sKCkgeworICAgICAgJHJlc3VsdCA9IHJvdW5kVHJpcCAodHJ1ZSk7CisgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSAoaXNfYm9vbCAoJHJlc3VsdFsneCddKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQcmVzZXJ2ZUludGVnZXIoKSB7CisgICAgICAkcmVzdWx0ID0gcm91bmRUcmlwICgwKTsKKyAgICAgICR0aGlzLT5hc3NlcnRUcnVlIChpc19pbnQgKCRyZXN1bHRbJ3gnXSkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0V29yZFdyYXAoKSB7CisgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzIChhcnJheSAoJ3gnID0+ICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhICBiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiKSwgcm91bmRUcmlwICgiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSAgYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIikpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0QUJDRCgpIHsKKyAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMgKGFycmF5ICgnYScsICdiJywgJ2MnLCAnZCcpLCBTcHljOjpZQU1MTG9hZChTcHljOjpZQU1MRHVtcChhcnJheSgnYScsICdiJywgJ2MnLCAnZCcpKSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEFCQ0QyKCkgeworICAgICAgICAkYSA9IGFycmF5KCdhJywgJ2InLCAnYycsICdkJyk7IC8vIENyZWF0ZSBhIHNpbXBsZSBsaXN0CisgICAgICAgICRiID0gU3B5Yzo6WUFNTER1bXAoJGEpOyAgICAgICAgLy8gRHVtcCB0aGUgbGlzdCBhcyBZQU1MCisgICAgICAgICRjID0gU3B5Yzo6WUFNTExvYWQoJGIpOyAgICAgICAgLy8gTG9hZCB0aGUgZHVtcGVkIFlBTUwKKyAgICAgICAgJGQgPSBTcHljOjpZQU1MRHVtcCgkYyk7ICAgICAgICAvLyBSZS1kdW1wIHRoZSBkYXRhCisgICAgICAgICR0aGlzLT5hc3NlcnRTYW1lKCRiLCAkZCk7CisgICAgfQorICAgCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL2NvbW1lbnRzLnlhbWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL2NvbW1lbnRzLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA1MDEyZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvY29tbWVudHMueWFtbApAQCAtMCwwICsxLDMgQEAKK2ZvbzogJ2JhcicgI0NvbW1lbnQKK2FycjogWyd4JywgJ3knLCAneiddICMgQ29tbWVudCBoZXJlCitiYXI6IGtpdHRlbnMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL2ZhaWxpbmcxLnlhbWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL2ZhaWxpbmcxLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkwNmE1MQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvZmFpbGluZzEueWFtbApAQCAtMCwwICsxLDIgQEAKK015T2JqZWN0OgorICBQcm9wMToge2tleTE6dmFsMX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL2luZGVudF8xLnlhbWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvbXVzdGFuZ29zdGFuZy9zcHljL3Rlc3RzL2luZGVudF8xLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkNmVjZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvaW5kZW50XzEueWFtbApAQCAtMCwwICsxLDcwIEBACityb290OgorICBjaGlsZF8xOiAyCisKKyAgY2hpbGRfMjogMAorICBjaGlsZF8zOiAxCisKK3Jvb3QyOgorICBjaGlsZF8xOiAxCisjIEEgY29tbWVudAorICBjaGlsZF8yOiAyCisKK2Rpc3BsYXlzOgorICAtIHJlc29sdXRpb25zOgorICAgICAgMTAyNDogNzY4CisgIC0gcmVzb2x1dGlvbnM6CisgICAgICAxOTIwOiAxMjAwCisKK2Rpc3BsYXk6CisgIC0gcmVzb2x1dGlvbnM6CisgICAgICAxMDI0OiA3NjgKKyAgICAgIDE5MjA6IDEyMDAKKyAgICBwcm9kdWNlcjogIk5lYyIKKworbmVzdGVkX2hhc2hlc19hbmRfc2VxczoKKyAtIHsgcm93OiAwLCBjb2w6IDAsIGhlYWRzZXRzX2FmZmVjdGVkOiBbe3BvcnRzOiBbMF0sIHNpZGU6IGxlZnR9XSwgc3dpdGNoX2Z1bmN0aW9uOiB7aWNzX3B0dDogdHJ1ZX0gfQorCitlYXNpZXJfbmVzdDogeyBoOiBbe2E6IGIsIGExOiBiMX0sIHtjOiBkfV0gfQorCitvbmVfc3BhY2U6IHwKKyAgICBCeSBmb3VyCisgICAgICBzcGFjZXMKKworc3RlcHM6CisgIC0gc3RlcDogJmlkMDAxCisgICAgICBpbnN0cnVtZW50OiAgICAgIExhc2lrIDIwMDAKKyAgICAgIHB1bHNlRW5lcmd5OiAgICAgNS40CisgICAgICBwdWxzZUR1cmF0aW9uOiAgIDEyCisgICAgICByZXBldGl0aW9uOiAgICAgIDEwMDAKKyAgICAgIHNwb3RTaXplOiAgICAgICAgMW1tCisgIC0gc3RlcDoKKyAgICAgIDw8OiAqaWQwMDEKKyAgICAgIHNwb3RTaXplOiAgICAgICAybW0KKworZGVhdGggbWFza3MgYXJlOgorICAgc2FkOiAyCisgICA8PDoge21hZ25pZmljZW50OiA0fQorCitsb2dpbjogJmxvZ2luCisgICBhZGFwdGVyOiBteXNxbAorICAgaG9zdDogbG9jYWxob3N0CisKK2RldmVsb3BtZW50OgorICAgZGF0YWJhc2U6IHJhaWxzX2RldgorICAgPDw6ICpsb2dpbgorCisia2V5IjogInZhbHVlOiIKK2NvbG9uX29ubHk6ICI6IgorCitsaXN0X2FuZF9jb21tZW50OiBbb25lLCB0d28sIHRocmVlXSAjIGNvbW1lbnQKK2thaToKKyAgLWV4YW1wbGU6IHZhbHVlCitrYWlfbGlzdF9vZl9pdGVtczoKKyAgLSAtaXRlbQorICAtICctaXRlbScKKyAgLWl0ZW0KKworJmZvbyBiYXI6CisgIDE6ICJhYmMiCisKK3p6ejogKmZvbwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL211c3Rhbmdvc3Rhbmcvc3B5Yy90ZXN0cy9xdW90ZXMueWFtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvcXVvdGVzLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNlZWE4NgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9tdXN0YW5nb3N0YW5nL3NweWMvdGVzdHMvcXVvdGVzLnlhbWwKQEAgLTAsMCArMSw4IEBACitodG1sX3RhZ3M6CisgIC0gPGJyPgorICAtIDxwPgoraHRtbF9jb250ZW50OgorICAtIDxwPmhlbGxvIHdvcmxkPC9wPgorICAtIGhlbGxvPGJyPndvcmxkCit0ZXh0X2NvbnRlbnQ6CisgIC0gaGVsbG8gd29ybGQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvTElDRU5TRSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1YzcwMTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvTElDRU5TRQpAQCAtMCwwICsxLDIyIEBACitUaGUgTUlUIExpY2Vuc2UgKE1JVCkKKworQ29weXJpZ2h0IChjKSAyMDE1IFBhcmFnb24gSW5pdGlhdGl2ZSBFbnRlcnByaXNlcworCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4KKwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L2J1aWxkLXBoYXIuc2ggYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvYnVpbGQtcGhhci5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNGE1YmEzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L2J1aWxkLXBoYXIuc2gKQEAgLTAsMCArMSw1IEBACisjIS91c3IvYmluL2VudiBiYXNoCisKK2Jhc2VkaXI9JCggZGlybmFtZSAkKCByZWFkbGluayAtZiAke0JBU0hfU09VUkNFWzBdfSApICkKKworcGhwIC1kcGhhci5yZWFkb25seT0wICIkYmFzZWRpci9vdGhlci9idWlsZF9waGFyLnBocCIgJCoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvY29tcG9zZXIuanNvbiBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9jb21wb3Nlci5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmYThkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvY29tcG9zZXIuanNvbgpAQCAtMCwwICsxLDM0IEBACit7CisgICJuYW1lIjogICAgICAgICAicGFyYWdvbmllL3JhbmRvbV9jb21wYXQiLAorICAiZGVzY3JpcHRpb24iOiAgIlBIUCA1LnggcG9seWZpbGwgZm9yIHJhbmRvbV9ieXRlcygpIGFuZCByYW5kb21faW50KCkgZnJvbSBQSFAgNyIsCisgICJrZXl3b3JkcyI6IFsKKyAgICAiY3Nwcm5nIiwKKyAgICAicmFuZG9tIiwKKyAgICAicG9seWZpbGwiLAorICAgICJwc2V1ZG9yYW5kb20iCisgIF0sCisgICJsaWNlbnNlIjogICAgICAiTUlUIiwKKyAgInR5cGUiOiAgICAgICAgICJsaWJyYXJ5IiwKKyAgImF1dGhvcnMiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAgICAgIlBhcmFnb24gSW5pdGlhdGl2ZSBFbnRlcnByaXNlcyIsCisgICAgICAiZW1haWwiOiAgICAic2VjdXJpdHlAcGFyYWdvbmllLmNvbSIsCisgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9wYXJhZ29uaWUuY29tIgorICAgIH0KKyAgXSwKKyAgInN1cHBvcnQiOiB7CisgICAgImlzc3VlcyI6ICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L2lzc3VlcyIsCisgICAgImVtYWlsIjogICAgICAiaW5mb0BwYXJhZ29uaWUuY29tIiwKKyAgICAic291cmNlIjogICAgICJodHRwczovL2dpdGh1Yi5jb20vcGFyYWdvbmllL3JhbmRvbV9jb21wYXQiCisgIH0sCisgICJyZXF1aXJlIjogeworICAgICJwaHAiOiAiXjciCisgIH0sCisgICJyZXF1aXJlLWRldiI6IHsKKyAgICAidmltZW8vcHNhbG0iOiAiXjEiLAorICAgICJwaHB1bml0L3BocHVuaXQiOiAiNC4qfDUuKiIKKyAgfSwKKyAgInN1Z2dlc3QiOiB7CisgICAgImV4dC1saWJzb2RpdW0iOiAiUHJvdmlkZXMgYSBtb2Rlcm4gY3J5cHRvIEFQSSB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHJhbmRvbSBieXRlcy4iCisgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9kaXN0L3JhbmRvbV9jb21wYXQucGhhci5wdWJrZXkgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvZGlzdC9yYW5kb21fY29tcGF0LnBoYXIucHVia2V5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNTBlYmYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvZGlzdC9yYW5kb21fY29tcGF0LnBoYXIucHVia2V5CkBAIC0wLDAgKzEsNSBAQAorLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KK01IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFRWQrd0NxSkRyeDVCNE9sZE0wZFFFMFpNWCtseDFaV20KK3B1aTBTVXFENEcyOUwzTkdzejlVaEovMEhqQmRibmtoSUs1eHZpVDBYNXZ0amFjRjZhamdjQ0FyYlRCK2RzK3AKKytoN1EwODROdVN1SXBOYjZZUGZvVUZnQy9DTDlrQW9jCistLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9kaXN0L3JhbmRvbV9jb21wYXQucGhhci5wdWJrZXkuYXNjIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L2Rpc3QvcmFuZG9tX2NvbXBhdC5waGFyLnB1YmtleS5hc2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmExZDdmMwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9kaXN0L3JhbmRvbV9jb21wYXQucGhhci5wdWJrZXkuYXNjCkBAIC0wLDAgKzEsMTEgQEAKKy0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCitWZXJzaW9uOiBHbnVQRyB2Mi4wLjIyIChNaW5nVzMyKQorCitpUUVjQkFBQkFnQUdCUUpXdFcxaEFBb0pFR3VYb2NLQ1pBVGFKZjBIK3diWkdnc2tLMWRjUlRzdVZKbDlJV2lwCitRd0d3L3FJS0kyODBTRDYvY2tvVU14S0RDSmlGdVBSMTR6bXFuUzM2azdONVVOUG5wZFRKVFM4VDExanR0U3BnCisxTENtZ3BiRUlwZ2FUYWgrY0VMRHFGQ2F2OTlmUytiRWlBTDVsV0RBSEJURS9YUGpHVkNxZWVoeVBZcmVmNElXCitOREJJRXN2bkhQSFBMc242WDVqcTQrWWo1b1VpeGd4YU1QaVIrYmNPNFNoK1J6T1ZCNmkyRDB1cFdmUlhCRlhBCitOTm5zZzkvemp2b0M3Wlc3M3k5dVNIK2RQSlR0L1ZnZmVpdjUyL3Y0MVhsaXl6YlV5TGFsZjAyR05QWSs5Z29WCitKSEcxdWxFRUJKT0NpVUQ5Y0UxUFVJSndIQS9IcXloSEl2VjM1MFlvRUZpSGw4aVN3bTdTaVp1NWtQamFxNzQ9Cis9QjYrOAorLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvbGliL3JhbmRvbS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvbGliL3JhbmRvbS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc3MzFhNQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9saWIvcmFuZG9tLnBocApAQCAtMCwwICsxLDMyIEBACis8P3BocAorLyoqCisgKiBSYW5kb21fKiBDb21wYXRpYmlsaXR5IExpYnJhcnkKKyAqIGZvciB1c2luZyB0aGUgbmV3IFBIUCA3IHJhbmRvbV8qIEFQSSBpbiBQSFAgNSBwcm9qZWN0cworICoKKyAqIEB2ZXJzaW9uIDIuOTkuOTkKKyAqIEByZWxlYXNlZCAyMDE4LTA2LTA2CisgKgorICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCisgKgorICogQ29weXJpZ2h0IChjKSAyMDE1IC0gMjAxOCBQYXJhZ29uIEluaXRpYXRpdmUgRW50ZXJwcmlzZXMKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCisgKi8KKworLy8gTk9QCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvb3RoZXIvYnVpbGRfcGhhci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvb3RoZXIvYnVpbGRfcGhhci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBlZjRiMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9vdGhlci9idWlsZF9waGFyLnBocApAQCAtMCwwICsxLDU3IEBACis8P3BocAorJGRpc3QgPSBkaXJuYW1lKF9fRElSX18pLicvZGlzdCc7CitpZiAoIWlzX2RpcigkZGlzdCkpIHsKKyAgICBta2RpcigkZGlzdCwgMDc1NSk7Cit9CitpZiAoZmlsZV9leGlzdHMoJGRpc3QuJy9yYW5kb21fY29tcGF0LnBoYXInKSkgeworICAgIHVubGluaygkZGlzdC4nL3JhbmRvbV9jb21wYXQucGhhcicpOworfQorJHBoYXIgPSBuZXcgUGhhcigKKyAgICAkZGlzdC4nL3JhbmRvbV9jb21wYXQucGhhcicsCisgICAgRmlsZXN5c3RlbUl0ZXJhdG9yOjpDVVJSRU5UX0FTX0ZJTEVJTkZPIHwgXEZpbGVzeXN0ZW1JdGVyYXRvcjo6S0VZX0FTX0ZJTEVOQU1FLAorICAgICdyYW5kb21fY29tcGF0LnBoYXInCispOworcmVuYW1lKAorICAgIGRpcm5hbWUoX19ESVJfXykuJy9saWIvcmFuZG9tLnBocCcsIAorICAgIGRpcm5hbWUoX19ESVJfXykuJy9saWIvaW5kZXgucGhwJworKTsKKyRwaGFyLT5idWlsZEZyb21EaXJlY3RvcnkoZGlybmFtZShfX0RJUl9fKS4nL2xpYicpOworcmVuYW1lKAorICAgIGRpcm5hbWUoX19ESVJfXykuJy9saWIvaW5kZXgucGhwJywgCisgICAgZGlybmFtZShfX0RJUl9fKS4nL2xpYi9yYW5kb20ucGhwJworKTsKKworLyoqCisgKiBJZiB3ZSBwYXNzIGFuIChvcHRpb25hbCkgcGF0aCB0byBhIHByaXZhdGUga2V5IGFzIGEgc2Vjb25kIGFyZ3VtZW50LCB3ZSB3aWxsCisgKiBzaWduIHRoZSBQaGFyIHdpdGggT3BlblNTTC4KKyAqIAorICogSWYgeW91IGxlYXZlIHRoaXMgb3V0LCBpdCB3aWxsIHByb2R1Y2UgYW4gdW5zaWduZWQgLnBoYXIhCisgKi8KK2lmICgkYXJnYyA+IDEpIHsKKyAgICBpZiAoIUBpc19yZWFkYWJsZSgkYXJndlsxXSkpIHsKKyAgICAgICAgZWNobyAnQ291bGQgbm90IHJlYWQgdGhlIHByaXZhdGUga2V5IGZpbGU6JywgJGFyZ3ZbMV0sICJcbiI7CisgICAgICAgIGV4aXQoMjU1KTsKKyAgICB9CisgICAgJHBrZXlGaWxlID0gZmlsZV9nZXRfY29udGVudHMoJGFyZ3ZbMV0pOworICAgIAorICAgICRwcml2YXRlID0gb3BlbnNzbF9nZXRfcHJpdmF0ZWtleSgkcGtleUZpbGUpOworICAgIGlmICgkcHJpdmF0ZSAhPT0gZmFsc2UpIHsKKyAgICAgICAgJHBrZXkgPSAnJzsKKyAgICAgICAgb3BlbnNzbF9wa2V5X2V4cG9ydCgkcHJpdmF0ZSwgJHBrZXkpOworICAgICAgICAkcGhhci0+c2V0U2lnbmF0dXJlQWxnb3JpdGhtKFBoYXI6Ok9QRU5TU0wsICRwa2V5KTsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBTYXZlIHRoZSBjb3JyZXNwb25kaW5nIHB1YmxpYyBrZXkgdG8gdGhlIGZpbGUKKyAgICAgICAgICovCisgICAgICAgIGlmICghQGlzX3JlYWRhYmxlKCRkaXN0LicvcmFuZG9tX2NvbXBhdC5waGFyLnB1YmtleScpKSB7CisgICAgICAgICAgICAkZGV0YWlscyA9IG9wZW5zc2xfcGtleV9nZXRfZGV0YWlscygkcHJpdmF0ZSk7CisgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygKKyAgICAgICAgICAgICAgICAkZGlzdC4nL3JhbmRvbV9jb21wYXQucGhhci5wdWJrZXknLAorICAgICAgICAgICAgICAgICRkZXRhaWxzWydrZXknXQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGVjaG8gJ0FuIGVycm9yIG9jY3VycmVkIHJlYWRpbmcgdGhlIHByaXZhdGUga2V5IGZyb20gT3BlblNTTC4nLCAiXG4iOworICAgICAgICBleGl0KDI1NSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L3BzYWxtLWF1dG9sb2FkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9wc2FsbS1hdXRvbG9hZC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcxZDFiOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9wYXJhZ29uaWUvcmFuZG9tX2NvbXBhdC9wc2FsbS1hdXRvbG9hZC5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCityZXF1aXJlX29uY2UgJ2xpYi9ieXRlX3NhZmVfc3RyaW5ncy5waHAnOworcmVxdWlyZV9vbmNlICdsaWIvY2FzdF90b19pbnQucGhwJzsKK3JlcXVpcmVfb25jZSAnbGliL2Vycm9yX3BvbHlmaWxsLnBocCc7CityZXF1aXJlX29uY2UgJ290aGVyL2lkZV9zdHVicy9saWJzb2RpdW0ucGhwJzsKK3JlcXVpcmVfb25jZSAnbGliL3JhbmRvbS5waHAnOworCiskaW50ID0gcmFuZG9tX2ludCgwLCA2NTUzNik7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvcHNhbG0ueG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L3BzYWxtLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTZkOTlkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BhcmFnb25pZS9yYW5kb21fY29tcGF0L3BzYWxtLnhtbApAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxwc2FsbQorICAgIGF1dG9sb2FkZXI9InBzYWxtLWF1dG9sb2FkLnBocCIKKyAgICBzdG9wT25GaXJzdEVycm9yPSJmYWxzZSIKKyAgICB1c2VEb2NibG9ja1R5cGVzPSJ0cnVlIgorPgorICAgIDxwcm9qZWN0RmlsZXM+CisgICAgICAgIDxkaXJlY3RvcnkgbmFtZT0ibGliIiAvPgorICAgIDwvcHJvamVjdEZpbGVzPgorICAgIDxpc3N1ZUhhbmRsZXJzPgorICAgICAgICA8UmVkdW5kYW50Q29uZGl0aW9uR2l2ZW5Eb2NibG9ja1R5cGUgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPFVucmVzb2x2YWJsZUluY2x1ZGUgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPER1cGxpY2F0ZUNsYXNzIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxJbnZhbGlkT3BlcmFuZCBlcnJvckxldmVsPSJpbmZvIiAvPgorICAgICAgICA8VW5kZWZpbmVkQ29uc3RhbnQgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPE1pc3NpbmdSZXR1cm5UeXBlIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxJbnZhbGlkUmV0dXJuVHlwZSBlcnJvckxldmVsPSJpbmZvIiAvPgorICAgIDwvaXNzdWVIYW5kbGVycz4KKzwvcHNhbG0+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvTElDRU5TRSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiODU2ODYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvTElDRU5TRQpAQCAtMCwwICsxLDIxIEBACitUaGUgTUlUIExpY2Vuc2UgKE1JVCkKKworQ29weXJpZ2h0IChjKSAyMDE2IFZpbmNlbnQgRGF1Y2UKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KK2FsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCitUSEUgU09GVFdBUkUuCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvUkVBRE1FLm1kIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGY5OTdhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL1JFQURNRS5tZApAQCAtMCwwICsxLDI1NCBAQAorIyBwaHAtbWltZS1tYWlsLXBhcnNlcgorCitBIGZ1bGx5IHRlc3RlZCBlbWFpbCBwYXJzZXIgZm9yIFBIUCA3LjErIChtYWlscGFyc2UgZXh0ZW5zaW9uIHdyYXBwZXIpLgorCitJdCdzIHRoZSBtb3N0IGVmZmVjdGl2ZSBwaHAgZW1haWwgcGFyc2VyIGFyb3VuZCBpbiB0ZXJtcyBvZiBwZXJmb3JtYW5jZSwgZm9yZWlnbiBjaGFyYWN0ZXIgZW5jb2RpbmcsIGF0dGFjaG1lbnQgaGFuZGxpbmcsIGFuZCBlYXNlIG9mIHVzZS4KK0ludGVybmV0IE1lc3NhZ2UgRm9ybWF0IFJGQyBbODIyXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODIyKSwgWzI4MjJdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODIyKSwgWzUzMjJdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyKS4KKworWyFbTGF0ZXN0IFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3YvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIuc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9naXRodWIuY29tL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3JlbGVhc2VzKQorWyFbVG90YWwgRG93bmxvYWRzXShodHRwczovL2ltZy5zaGllbGRzLmlvL3BhY2thZ2lzdC9kdC9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIpCitbIVtTb2Z0d2FyZSBMaWNlbnNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWJyaWdodGdyZWVuLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKExJQ0VOU0UpCisKKyMjIFdoeT8KKworVGhpcyBleHRlbnNpb24gY2FuIGJlIHVzZWQgdG8uLi4KKyAqIFBhcnNlIGFuZCByZWFkIGVtYWlsIGZyb20gUG9zdGZpeAorICogRm9yIHJlYWRpbmcgbWVzc2FnZXMgKEZpbGVuYW1lIGV4dGVuc2lvbjogZW1sKQorICogQ3JlYXRlIHdlYm1haWwgCisgKiBTdG9yZSBlbWFpbCBpbmZvcm1hdGlvbiBzdWNoIGEgc3ViamVjdCwgSFRNTCBib2R5LCBhdHRhY2htZW50cywgYW5kIGV0Yy4gaW50byBhIGRhdGFiYXNlCisKKyMjIElzIGl0IHJlbGlhYmxlPworCitZZXMuIEFsbCBrbm93biBpc3N1ZXMgaGF2ZSBiZWVuIHJlcHJvZHVjZWQsIGZpeGVkIGFuZCB0ZXN0ZWQuCisKK1dlIHVzZSBHaXRIdWIgQWN0aW9ucywgQ29kZWNvdiwgQ29kYWN5IHRvIGhlbHAgZW5zdXJlIGNvZGUgcXVhbGl0eS4gWW91IGNhbiBzZWUgcmVhbC10aW1lIHN0YXRpc3RpY3MgYmVsb3c6CisKK1shW0FjdGlvbnMgU3RhdHVzXShodHRwczovL3dkcDlmd3cwcjkuZXhlY3V0ZS1hcGkudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vcHJvZHVjdGlvbi9iYWRnZS9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlcj9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vd2RwOWZ3dzByOS5leGVjdXRlLWFwaS51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS9wcm9kdWN0aW9uL3Jlc3VsdHMvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIpCitbIVtDb3ZlcmFnZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2gvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXI/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL2NvZGVjb3YuaW8vZ2gvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIpCitbIVtDb2RlIFF1YWxpdHldKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY29kYWN5L2dyYWRlLzRlMGU0NGZlZTIxMTQ3ZGRiZGQxOGZmOTc2MjUxODc1P3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly9hcHAuY29kYWN5LmNvbS9hcHAvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIpCisKKworIyMgSG93IGRvIEkgaW5zdGFsbCBpdD8KKworVGhlIGVhc2llc3Qgd2F5IGlzIHZpYSBbQ29tcG9zZXJdKGh0dHBzOi8vZ2V0Y29tcG9zZXIub3JnLykuCisKK1RvIGluc3RhbGwgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFBIUCBNSU1FIE1haWwgUGFyc2VyLCBydW4gdGhlIGNvbW1hbmQgYmVsb3c6CisKKwljb21wb3NlciByZXF1aXJlIHBocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyCisKKyMjIFJlcXVpcmVtZW50cworCitUaGUgZm9sbG93aW5nIHZlcnNpb25zIG9mIFBIUCBhcmUgc3VwcG9ydGVkOgorCisqIFBIUCA3LjEKKyogUEhQIDcuMgorKiBQSFAgNy4zCisKK1ByZXZpb3VzIFZlcnNpb25zOgorCit8IFBIUCBDb21wYXRpYmlsaXR5ICB8IFZlcnNpb24gfAorfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLSB8Cit8IEhIVk0gIHwgcGhwLW1pbWUtbWFpbC1wYXJzZXIgMi4xMS4xICB8Cit8IFBIUCA1LjQgIHwgcGhwLW1pbWUtbWFpbC1wYXJzZXIgMi4xMS4xICB8Cit8IFBIUCA1LjUgIHwgcGhwLW1pbWUtbWFpbC1wYXJzZXIgMi4xMS4xICB8Cit8IFBIUCA1LjYgIHwgcGhwLW1pbWUtbWFpbC1wYXJzZXIgMy4wLjQgIHwKK3wgUEhQIDcuMCAgfCBwaHAtbWltZS1tYWlsLXBhcnNlciAzLjAuNCAgfAorCitNYWtlIHN1cmUgeW91IGhhdmUgdGhlIG1haWxwYXJzZSBleHRlbnNpb24gKGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9ib29rLm1haWxwYXJzZS5waHApIHByb3Blcmx5IGluc3RhbGxlZC4gVGhlIGNvbW1hbmQgbGluZSBgcGhwIC1tIHwgZ3JlcCBtYWlscGFyc2VgIG5lZWQgdG8gcmV0dXJuICJtYWlscGFyc2UiLgorCisKKyMjIyBJbnN0YWxsIG1haWxwYXJzZSBleHRlbnNpb24KKworIyMjIyBVYnVudHUsIERlYmlhbiAmIGRlcml2YXRpdmVzCitgYGAKK3N1ZG8gYXB0IGluc3RhbGwgcGhwLWNsaSBwaHAtbWFpbHBhcnNlCitgYGAKKworIyMjIyBPdGhlcnMgcGxhdGZvcm1zCitgYGAKK3N1ZG8gYXB0IGluc3RhbGwgcGhwLWNsaSBwaHAtcGVhciBwaHAtZGV2IHBocC1tYnN0cmluZworcGVjbCBpbnN0YWxsIG1haWxwYXJzZQorYGBgCisKKyMjIyMgRnJvbSBzb3VyY2UKKworQUFBQU1NREQgc2hvdWxkIGJlIGBwaHAtY29uZmlnIC0tZXh0ZW5zaW9uLWRpcmAKK2BgYAorZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9waHAvcGVjbC1tYWlsLW1haWxwYXJzZS5naXQKK2NkIHBlY2wtbWFpbC1tYWlscGFyc2UKK3BocGl6ZQorLi9jb25maWd1cmUKK3NlZCAtaSAncy8jaWZccyFIQVZFX01CU1RSSU5HLyNpZm5kZWYgTUJGTF9NQkZJTFRFUl9ILycgLi9tYWlscGFyc2UuYworbWFrZQorc3VkbyBtdiBtb2R1bGVzL21haWxwYXJzZS5zbyAvdXNyL2xpYi9waHAvQUFBQU1NREQvCitlY2hvICJleHRlbnNpb249bWFpbHBhcnNlLnNvIiB8IHN1ZG8gdGVlIC9ldGMvcGhwLzcuMS9tb2RzLWF2YWlsYWJsZS9tYWlscGFyc2UuaW5pCitzdWRvIHBocGVubW9kIG1haWxwYXJzZQorYGBgCisKKyMjIyMgV2luZG93cworWW91IG5lZWQgdG8gZG93bmxvYWQgbWFpbHBhcnNlIERMTCBmcm9tIGh0dHA6Ly9wZWNsLnBocC5uZXQvcGFja2FnZS9tYWlscGFyc2UgYW5kIGFkZCB0aGUgbGluZSAiZXh0ZW5zaW9uPXBocF9tYWlscGFyc2UuZGxsIiB0byBwaHAuaW5pIGFjY29yZGluZ2x5LgorCisjIyBIb3cgZG8gSSB1c2UgaXQ/CisKKyMjIyBMb2FkaW5nIGFuIGVtYWlsCisKK1lvdSBjYW4gbG9hZCBhbiBlbWFpbCB3aXRoIDQgZGlmZmVyZW50cyB3YXlzLiBZb3Ugb25seSBuZWVkIHRvIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3VyLgorCitgYGBwaHAKK3JlcXVpcmVfb25jZSBfX0RJUl9fLicvdmVuZG9yL2F1dG9sb2FkLnBocCc7CisKKyRwYXRoID0gJ3BhdGgvdG8vZW1haWwuZW1sJzsKKyRwYXJzZXIgPSBuZXcgUGhwTWltZU1haWxQYXJzZXJcUGFyc2VyKCk7CisKKy8vIDEuIFNwZWNpZnkgYSBmaWxlIHBhdGggKHN0cmluZykKKyRwYXJzZXItPnNldFBhdGgoJHBhdGgpOyAKKworLy8gMi4gU3BlY2lmeSB0aGUgcmF3IG1pbWUgbWFpbCB0ZXh0IChzdHJpbmcpCiskcGFyc2VyLT5zZXRUZXh0KGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoKSk7CisKKy8vIDMuIFNwZWNpZnkgYSBwaHAgZmlsZSByZXNvdXJjZSAoc3RyZWFtKQorJHBhcnNlci0+c2V0U3RyZWFtKGZvcGVuKCRwYXRoLCAiciIpKTsKKworLy8gNC4gIFNwZWNpZnkgYSBzdHJlYW0gdG8gd29yayB3aXRoIG1haWwgc2VydmVyIChzdHJlYW0pCiskcGFyc2VyLT5zZXRTdHJlYW0oZm9wZW4oInBocDovL3N0ZGluIiwgInIiKSk7CitgYGAKKworIyMjIEdldCB0aGUgbWV0YWRhdGEgb2YgdGhlIG1lc3NhZ2UKKworR2V0IHRoZSBzZW5kZXIgYW5kIHRoZSByZWNlaXZlcjoKKworYGBgcGhwCiskcmF3SGVhZGVyVG8gPSAkcGFyc2VyLT5nZXRIZWFkZXIoJ3RvJyk7CisvLyByZXR1cm4gInRlc3QiIDx0ZXN0QGV4YW1wbGUuY29tPiwgInRlc3QyIiA8dGVzdDJAZXhhbXBsZS5jb20+CisKKyRhcnJheUhlYWRlclRvID0gJHBhcnNlci0+Z2V0QWRkcmVzc2VzKCd0bycpOworLy8gcmV0dXJuIFtbImRpc3BsYXkiPT4idGVzdCIsICJhZGRyZXNzIj0+InRlc3RAZXhhbXBsZS5jb20iLCBmYWxzZV1dCisKKyRyYXdIZWFkZXJGcm9tID0gJHBhcnNlci0+Z2V0SGVhZGVyKCdmcm9tJyk7CisvLyByZXR1cm4gInRlc3QiIDx0ZXN0QGV4YW1wbGUuY29tPgorCiskYXJyYXlIZWFkZXJGcm9tID0gJHBhcnNlci0+Z2V0QWRkcmVzc2VzKCdmcm9tJyk7CisvLyByZXR1cm4gW1siZGlzcGxheSI9PiJ0ZXN0IiwgImFkZHJlc3MiPT4idGVzdEBleGFtcGxlLmNvbSIsICJpc19ncm91cCI9PmZhbHNlXV0KK2BgYAorCitHZXQgdGhlIHN1YmplY3Q6CisKK2BgYHBocAorJHN1YmplY3QgPSAkcGFyc2VyLT5nZXRIZWFkZXIoJ3N1YmplY3QnKTsKK2BgYAorCitHZXQgb3RoZXIgaGVhZGVyczoKKworYGBgcGhwCiskc3RyaW5nSGVhZGVycyA9ICRwYXJzZXItPmdldEhlYWRlcnNSYXcoKTsKKy8vIHJldHVybiBhbGwgaGVhZGVycyBhcyBhIHN0cmluZywgbm8gY2hhcnNldCBjb252ZXJzaW9uCisKKyRhcnJheUhlYWRlcnMgPSAkcGFyc2VyLT5nZXRIZWFkZXJzKCk7CisvLyByZXR1cm4gYWxsIGhlYWRlcnMgYXMgYW4gYXJyYXksIHdpdGggY2hhcnNldCBjb252ZXJzaW9uCitgYGAKKworIyMjIEdldCB0aGUgYm9keSBvZiB0aGUgbWVzc2FnZQorCitgYGBwaHAKKyR0ZXh0ID0gJHBhcnNlci0+Z2V0TWVzc2FnZUJvZHkoJ3RleHQnKTsKKy8vIHJldHVybiB0aGUgdGV4dCB2ZXJzaW9uCisKKyRodG1sID0gJHBhcnNlci0+Z2V0TWVzc2FnZUJvZHkoJ2h0bWwnKTsKKy8vIHJldHVybiB0aGUgaHRtbCB2ZXJzaW9uCisKKyRodG1sRW1iZWRkZWQgPSAkcGFyc2VyLT5nZXRNZXNzYWdlQm9keSgnaHRtbEVtYmVkZGVkJyk7CisvLyByZXR1cm4gdGhlIGh0bWwgdmVyc2lvbiB3aXRoIHRoZSBlbWJlZGRlZCBjb250ZW50cyBsaWtlIGltYWdlcworCitgYGAKKworIyMjIEdldCBhdHRhY2htZW50cworCitTYXZlIGFsbCBhdHRhY2htZW50cyBpbiBhIGRpcmVjdG9yeQorCitgYGBwaHAKKyRwYXJzZXItPnNhdmVBdHRhY2htZW50cygnL3BhdGgvdG8vc2F2ZS9hdHRhY2htZW50cy8nKTsKKy8vIHJldHVybiBhbGwgYXR0YWNobWVudHMgc2F2ZWQgaW4gdGhlIGRpcmVjdG9yeSAoaW5jbHVkZSBpbmxpbmUgYXR0YWNobWVudHMpCisKKyRwYXJzZXItPnNhdmVBdHRhY2htZW50cygnL3BhdGgvdG8vc2F2ZS9hdHRhY2htZW50cy8nLCBmYWxzZSk7CisvLyByZXR1cm4gYWxsIGF0dGFjaG1lbnRzIHNhdmVkIGluIHRoZSBkaXJlY3RvcnkgKGV4Y2x1ZGUgaW5saW5lIGF0dGFjaG1lbnRzKQorCisvLyBTYXZlIGFsbCBhdHRhY2htZW50cyB3aXRoIHRoZSBzdHJhdGVneSBBVFRBQ0hNRU5UX0RVUExJQ0FURV9TVUZGSVggKGRlZmF1bHQpCiskcGFyc2VyLT5zYXZlQXR0YWNobWVudHMoJy9wYXRoL3RvL3NhdmUvYXR0YWNobWVudHMvJywgZmFsc2UsIFBhcnNlcjo6QVRUQUNITUVOVF9EVVBMSUNBVEVfU1VGRklYKTsKKy8vIHJldHVybiBhbGwgYXR0YWNobWVudHMgc2F2ZWQgaW4gdGhlIGRpcmVjdG9yeTogbG9nby5qcGcsIGxvZ29fMS5qcGcsIC4uLiwgbG9nb18xMDAuanBnLCBZWTM0VUZIQkouanBnCisKKy8vIFNhdmUgYWxsIGF0dGFjaG1lbnRzIHdpdGggdGhlIHN0cmF0ZWd5IEFUVEFDSE1FTlRfUkFORE9NX0ZJTEVOQU1FCiskcGFyc2VyLT5zYXZlQXR0YWNobWVudHMoJy9wYXRoL3RvL3NhdmUvYXR0YWNobWVudHMvJywgZmFsc2UsIFBhcnNlcjo6QVRUQUNITUVOVF9SQU5ET01fRklMRU5BTUUpOworLy8gcmV0dXJuIGFsbCBhdHRhY2htZW50cyBzYXZlZCBpbiB0aGUgZGlyZWN0b3J5OiBZWTM0VUZIQkouanBnIGFuZCBGOThEQlo5RlpGLmpwZworCisvLyBTYXZlIGFsbCBhdHRhY2htZW50cyB3aXRoIHRoZSBzdHJhdGVneSBBVFRBQ0hNRU5UX0RVUExJQ0FURV9USFJPVworJHBhcnNlci0+c2F2ZUF0dGFjaG1lbnRzKCcvcGF0aC90by9zYXZlL2F0dGFjaG1lbnRzLycsIGZhbHNlLCBQYXJzZXI6OkFUVEFDSE1FTlRfRFVQTElDQVRFX1RIUk9XKTsKKy8vIHJldHVybiBhbiBleGNlcHRpb24gd2hlbiB0aGVyZSBpcyBhdHRhY2htZW50cyBkdXBsaWNhdGUuCisKK2BgYAorCitHZXQgYWxsIGF0dGFjaG1lbnRzCisKK2BgYHBocAorJGF0dGFjaG1lbnRzID0gJHBhcnNlci0+Z2V0QXR0YWNobWVudHMoKTsKKy8vIHJldHVybiBhbiBhcnJheSBvZiBhbGwgYXR0YWNobWVudHMgKGluY2x1ZGUgaW5saW5lIGF0dGFjaG1lbnRzKQorCiskYXR0YWNobWVudHMgPSAkcGFyc2VyLT5nZXRBdHRhY2htZW50cyhmYWxzZSk7CisvLyByZXR1cm4gYW4gYXJyYXkgb2YgYWxsIGF0dGFjaG1lbnRzIChleGNsdWRlIGlubGluZSBhdHRhY2htZW50cykKK2BgYAorCisKK0xvb3AgdGhyb3VnaCBhbGwgdGhlIEF0dGFjaG1lbnRzCitgYGBwaHAKK2ZvcmVhY2ggKCRhdHRhY2htZW50cyBhcyAkYXR0YWNobWVudCkgeworICAgIGVjaG8gJ0ZpbGVuYW1lIDogJy4kYXR0YWNobWVudC0+Z2V0RmlsZW5hbWUoKS4nPGJyIC8+JzsKKyAgICAvLyByZXR1cm4gbG9nby5qcGcKKyAgICAKKyAgICBlY2hvICdGaWxlc2l6ZSA6ICcuZmlsZXNpemUoJGF0dGFjaF9kaXIuJGF0dGFjaG1lbnQtPmdldEZpbGVuYW1lKCkpLic8YnIgLz4nOworICAgIC8vIHJldHVybiAxMDAwCisgICAgCisgICAgZWNobyAnRmlsZXR5cGUgOiAnLiRhdHRhY2htZW50LT5nZXRDb250ZW50VHlwZSgpLic8YnIgLz4nOworICAgIC8vIHJldHVybiBpbWFnZS9qcGVnCisgICAgCisgICAgZWNobyAnTUlNRSBwYXJ0IHN0cmluZyA6ICcuJGF0dGFjaG1lbnQtPmdldE1pbWVQYXJ0U3RyKCkuJzxiciAvPic7CisgICAgLy8gcmV0dXJuIHRoZSB3aG9sZSBNSU1FIHBhcnQgb2YgdGhlIGF0dGFjaG1lbnQKKworICAgICRhdHRhY2htZW50LT5zYXZlKCcvcGF0aC90by9zYXZlL215YXR0YWNobWVudC8nLCBQYXJzZXI6OkFUVEFDSE1FTlRfRFVQTElDQVRFX1NVRkZJWCk7CisgICAgLy8gcmV0dXJuIHRoZSBwYXRoIGFuZCB0aGUgZmlsZW5hbWUgc2F2ZWQgKHNhbWUgc3RyYXRlZ3kgYXZhaWxhYmxlIHRoYW4gc2F2ZUF0dGFjaG1lbnRzKQorfQorYGBgCisKKyMjIFBvc3RmaXggY29uZmlndXJhdGlvbiB0byBtYW5hZ2UgZW1haWwgZnJvbSBhIG1haWwgc2VydmVyCisKK05leHQgeW91IG5lZWQgdG8gZm9yd2FyZCBlbWFpbHMgdG8gdGhpcyBzY3JpcHQgYWJvdmUuIEZvciB0aGF0IEknbSB1c2luZyBbUG9zdGZpeF0oaHR0cDovL3d3dy5wb3N0Zml4Lm9yZy8pIGxpa2UgYSBtYWlsIHNlcnZlciwgeW91IG5lZWQgdG8gY29uZmlndXJlIC9ldGMvcG9zdGZpeC9tYXN0ZXIuY2YKKworQWRkIHRoaXMgbGluZSBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlIChzcGVjaWZ5IG15aG9vayB0byBzZW5kIGFsbCBlbWFpbHMgdG8gdGhlIHNjcmlwdCB0ZXN0LnBocCkKK2BgYAorbXlob29rIHVuaXggLSBuIG4gLSAtIHBpcGUKKyAgCQkJCWZsYWdzPUYgdXNlcj13d3ctZGF0YSBhcmd2PXBocCAtYyAvZXRjL3BocDUvYXBhY2hlMi9waHAuaW5pIC1mIC92YXIvd3d3L3Rlc3QucGhwICR7c2VuZGVyfSAke3NpemV9ICR7cmVjaXBpZW50fQorYGBgCisKK0VkaXQgdGhpcyBsaW5lIChyZWdpc3RlciBteWhvb2spCitgYGAKK3NtdHAgICAgICBpbmV0ICBuICAgICAgIC0gICAgICAgLSAgICAgICAtICAgICAgIC0gICAgICAgc210cGQKKyAgICAgICAgCQkJLW8gY29udGVudF9maWx0ZXI9bXlob29rOmR1bW15CitgYGAKKworVGhlIHBocCBzY3JpcHQgbXVzdCB1c2UgdGhlIGZvdXJ0aCBtZXRob2QgdG8gd29yayB3aXRoIHRoaXMgY29uZmlndXJhdGlvbi4KKworQW5kIGZpbmFsbHkgdGhlIGVhc2llc3Qgd2F5IGlzIHRvIHVzZSBteSBTYWFTIGh0dHBzOi8vbWFpbGNhcmUuaW8KKworCisjIyBDYW4gSSBjb250cmlidXRlPworCitGZWVsIGZyZWUgdG8gY29udHJpYnV0ZSEKKworCWdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIKKwljZCBwaHAtbWltZS1tYWlsLXBhcnNlcgorCWNvbXBvc2VyIGluc3RhbGwKKwkuL3ZlbmRvci9iaW4vcGhwdW5pdAorCitJZiB5b3UgcmVwb3J0IGFuIGlzc3VlLCBwbGVhc2UgcHJvdmlkZSB0aGUgcmF3IGVtYWlsIHRoYXQgdHJpZ2dlcmVkIGl0LiBUaGlzIGhlbHBzIHVzIHJlcHJvZHVjZSB0aGUgaXNzdWUgYW5kIGZpeCBpdCBtb3JlIHF1aWNrbHkuCisKKyMjIExpY2Vuc2UKKworVGhlIHBocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyIGlzIG9wZW4tc291cmNlZCBzb2Z0d2FyZSBsaWNlbnNlZCB1bmRlciB0aGUgW01JVCBsaWNlbnNlXShodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL2NvbXBpbGVfbWFpbHBhcnNlLnNoIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL2NvbXBpbGVfbWFpbHBhcnNlLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg1MDUwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvY29tcGlsZV9tYWlscGFyc2Uuc2gKQEAgLTAsMCArMSwxMCBAQAorIyEvYmluL3NoCisKK2dpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vcGhwL3BlY2wtbWFpbC1tYWlscGFyc2UuZ2l0CitjZCBwZWNsLW1haWwtbWFpbHBhcnNlCitwaHBpemUKKy4vY29uZmlndXJlCitzZWQgLWkgJ3MvI2lmXHMhSEFWRV9NQlNUUklORy8jaWZuZGVmIE1CRkxfTUJGSUxURVJfSC8nIC4vbWFpbHBhcnNlLmMKK21ha2UKK3N1ZG8gbXYgbW9kdWxlcy9tYWlscGFyc2Uuc28gL2hvbWUvdHJhdmlzLy5waHBlbnYvdmVyc2lvbnMvNy4zLjIvbGliL3BocC9leHRlbnNpb25zL25vLWRlYnVnLXp0cy0yMDE4MDczMS8KK2VjaG8gJ2V4dGVuc2lvbj1tYWlscGFyc2Uuc28nID4+IH4vLnBocGVudi92ZXJzaW9ucy8kKHBocGVudiB2ZXJzaW9uLW5hbWUpL2V0Yy9waHAuaW5pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL2NvbXBvc2VyLmpzb24gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvY29tcG9zZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzk3MTgzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL2NvbXBvc2VyLmpzb24KQEAgLTAsMCArMSw2MSBAQAoreworICAgICJuYW1lIjogInBocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyIiwKKyAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiQSBmdWxseSB0ZXN0ZWQgZW1haWwgcGFyc2VyIGZvciBQSFAgNy4xKyAobWFpbHBhcnNlIGV4dGVuc2lvbiB3cmFwcGVyKS4iLAorICAgICJrZXl3b3JkcyI6IFsibWltZSIsICJtYWlsIiwgIm1haWxwYXJzZSIsICJNaW1lTWFpbFBhcnNlciIsICJwYXJzZXIiLCAicGhwIl0sCisgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlciIsCisgICAgImxpY2Vuc2UiOiAiTUlUIiwKKyAgICAiYXV0aG9ycyI6IFsgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiJlWG9ydXMiLAorICAgICAgICAgICAgImVtYWlsIjoiZXhvcnVzLnNwYW1AZ21haWwuY29tIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6Imh0dHBzOi8vZ2l0aHViLmNvbS9lWG9ydXMvIiwKKyAgICAgICAgICAgICJyb2xlIjoiRGV2ZWxvcGVyIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6Ik0uVmFsaW5za2lzIiwKKyAgICAgICAgICAgICJlbWFpbCI6Ik0uVmFsaW5zQGdtYWlsLmNvbSIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiJodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3BocC1taW1lLW1haWwtcGFyc2VyIiwKKyAgICAgICAgICAgICJyb2xlIjoiRGV2ZWxvcGVyIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ImV1Z2VuZS5lbW1ldHQud29vZCIsCisgICAgICAgICAgICAiZW1haWwiOiJnZW5lX3dAY2VtZW50aG9yaXpvbi5jb20iLAorICAgICAgICAgICAgImhvbWVwYWdlIjoiaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9waHAtbWltZS1tYWlsLXBhcnNlciIsCisgICAgICAgICAgICAicm9sZSI6IkRldmVsb3BlciIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiJhbGtuZXRzbyIsCisgICAgICAgICAgICAiZW1haWwiOiJhbGtuZUBnbWFpbC5jb20iLAorICAgICAgICAgICAgImhvbWVwYWdlIjoiaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9waHAtbWltZS1tYWlsLXBhcnNlciIsCisgICAgICAgICAgICAicm9sZSI6IkRldmVsb3BlciIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiJidWNhYmF5IiwKKyAgICAgICAgICAgICJlbWFpbCI6ImdhYmVAZmlqaXdlYmRlc2lnbi5jb20iLAorICAgICAgICAgICAgImhvbWVwYWdlIjoiaHR0cDovL3d3dy5maWppd2ViZGVzaWduLmNvbSIsCisgICAgICAgICAgICAicm9sZSI6IkRldmVsb3BlciIKKyAgICAgICAgfQorICAgIF0sCisgICAgInJlcG9zaXRvcnkiOnsKKyAgICAgICAgInR5cGUiOiJnaXQiLAorICAgICAgICAidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyLmdpdCIKKyAgICB9LAorICAgICJyZXF1aXJlIjogeworICAgICAgICAicGhwIjogICAgICAgICAgICJeNy4xIiwKKyAgICAgICAgImV4dC1tYWlscGFyc2UiOiAiKiIKKyAgICB9LAorICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICAgICAgICAgICAgICAiXjcuMCIsCisgICAgICAgICJwaHB1bml0L3BocC10b2tlbi1zdHJlYW0iOiAgICAgIl4zLjAiLAorICAgICAgICAicGhwLWNvdmVyYWxscy9waHAtY292ZXJhbGxzIjogICJeMi4xIiwKKyAgICAgICAgInNxdWl6bGFicy9waHBfY29kZXNuaWZmZXIiOiAgICAiXjMuNCIKKyAgICB9LAorICAgICJyZXBsYWNlIjogeworICAgICAgICAiZXhvcnVzL3BocC1taW1lLW1haWwtcGFyc2VyIjogICAiKiIsCisgICAgICAgICJtZXNzYWdlZC9waHAtbWltZS1tYWlsLXBhcnNlciI6ICIqIgorICAgIH0sCisgICAgImF1dG9sb2FkIjogeworICAgICAgICAicHNyLTQiOiB7ICJQaHBNaW1lTWFpbFBhcnNlclxcIjogInNyYy8iIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvbWFpbHBhcnNlLXN0dWJzLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9tYWlscGFyc2Utc3R1YnMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyYjVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvbWFpbHBhcnNlLXN0dWJzLnBocApAQCAtMCwwICsxLDMwMyBAQAorPD9waHAKKy8qKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL21haWxwYXJzZS5jb25zdGFudHMucGhwCisgKi8KK2RlZmluZSgnTUFJTFBBUlNFX0VYVFJBQ1RfT1VUUFVUJywgMCk7CisKKy8qKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL21haWxwYXJzZS5jb25zdGFudHMucGhwCisgKi8KK2RlZmluZSgnTUFJTFBBUlNFX0VYVFJBQ1RfU1RSRUFNJywgMSk7CisKKy8qKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL21haWxwYXJzZS5jb25zdGFudHMucGhwCisgKi8KK2RlZmluZSgnTUFJTFBBUlNFX0VYVFJBQ1RfUkVUVVJOJywgMik7CisKKy8qKgorICogUGFyc2VzIGEgZmlsZS4gVGhpcyBpcyB0aGUgb3B0aW1hbCB3YXkgb2YgcGFyc2luZyBhIG1haWwgZmlsZSB0aGF0IHlvdSBoYXZlIG9uCisgKiBkaXNrLgorICoKKyAqIEBsaW5rIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbnMubWFpbHBhcnNlLW1zZy1wYXJzZS1maWxlLnBocAorICoKKyAqIEBwYXJhbSBzdHJpbmcgJGZpbGVuYW1lIFBhdGggdG8gdGhlIGZpbGUgaG9sZGluZyB0aGUgbWVzc2FnZS4gVGhlIGZpbGUgaXMgb3BlbmVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgc3RyZWFtZWQgdGhyb3VnaCB0aGUgcGFyc2VyCisgKgorICogQHJldHVybiByZXNvdXJjZSBSZXR1cm5zIGEgTUlNRSByZXNvdXJjZSByZXByZXNlbnRpbmcgdGhlIHN0cnVjdHVyZSwgb3IgZmFsc2Ugb24gZXJyb3IKKyAqLworZnVuY3Rpb24gbWFpbHBhcnNlX21zZ19wYXJzZV9maWxlKCRmaWxlbmFtZSkKK3sKK30KKworLyoqCisgKiAuCisgKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9ucy5tYWlscGFyc2UtbXNnLWdldC1wYXJ0LnBocAorICoKKyAqIEBwYXJhbSByZXNvdXJjZSAkbWltZW1haWwgQSB2YWxpZCBNSU1FIHJlc291cmNlCisgKiBAcGFyYW0gc3RyaW5nICAgJG1pbWVzZWN0aW9uCisgKgorICogQHJldHVybiByZXNvdXJjZQorICovCitmdW5jdGlvbiBtYWlscGFyc2VfbXNnX2dldF9wYXJ0KCRtaW1lbWFpbCwgJG1pbWVzZWN0aW9uKQoreworfQorCisvKioKKyAqIC4KKyAqCisgKiBAbGluayBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb25zLm1haWxwYXJzZS1tc2ctZ2V0LXN0cnVjdHVyZS5waHAKKyAqCisgKiBAcGFyYW0gcmVzb3VyY2UgJG1pbWVtYWlsIEEgdmFsaWQgTUlNRSByZXNvdXJjZQorICoKKyAqIEByZXR1cm4gYXJyYXkKKyAqLworZnVuY3Rpb24gbWFpbHBhcnNlX21zZ19nZXRfc3RydWN0dXJlKCRtaW1lbWFpbCkKK3sKK30KKworLyoqCisgKiAuCisgKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9ucy5tYWlscGFyc2UtbXNnLWdldC1wYXJ0LWRhdGEucGhwCisgKgorICogQHBhcmFtIHJlc291cmNlICRtaW1lbWFpbCBBIHZhbGlkIE1JTUUgcmVzb3VyY2UKKyAqCisgKiBAcmV0dXJuIGFycmF5CisgKi8KK2Z1bmN0aW9uIG1haWxwYXJzZV9tc2dfZ2V0X3BhcnRfZGF0YSgkbWltZW1haWwpCit7Cit9CisKKy8qKgorICogLgorICoKKyAqIEBsaW5rIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbnMubWFpbHBhcnNlLW1zZy1leHRyYWN0LXBhcnQucGhwCisgKgorICogQHBhcmFtIHJlc291cmNlICRtaW1lbWFpbCBBIHZhbGlkIE1JTUUgcmVzb3VyY2UKKyAqIEBwYXJhbSBzdHJpbmcgICAkbXNnYm9keQorICogQHBhcmFtIGNhbGxhYmxlICRjYWxsYmFja2Z1bmMKKyAqCisgKiBAcmV0dXJuIHZvaWQKKyAqLworZnVuY3Rpb24gbWFpbHBhcnNlX21zZ19leHRyYWN0X3BhcnQoJG1pbWVtYWlsLCAkbXNnYm9keSwgJGNhbGxiYWNrZnVuYykKK3sKK30KKworLyoqCisgKiBFeHRyYWN0cy9kZWNvZGVzIGEgbWVzc2FnZSBzZWN0aW9uIGZyb20gdGhlIHN1cHBsaWVkIGZpbGVuYW1lLgorICoKKyAqIEBsaW5rIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbnMubWFpbHBhcnNlLW1zZy1leHRyYWN0LXBhcnQtZmlsZS5waHAKKyAqCisgKiBAcGFyYW0gcmVzb3VyY2UgJG1pbWVtYWlsICAgICBBIHZhbGlkIE1JTUUgcmVzb3VyY2UsIGNyZWF0ZWQgd2l0aAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbHBhcnNlX21zZ19jcmVhdGUKKyAqIEBwYXJhbSBtaXhlZCAgICAkZmlsZW5hbWUgICAgIENhbiBiZSBhIGZpbGUgbmFtZSBvciBhIHZhbGlkIHN0cmVhbSByZXNvdXJjZQorICogQHBhcmFtIGNhbGxhYmxlICRjYWxsYmFja2Z1bmMgSWYgc2V0LCB0aGlzIG11c3QgYmUgZWl0aGVyIGEgdmFsaWQgY2FsbGJhY2sgdGhhdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSBwYXNzZWQgdGhlIGV4dHJhY3RlZCBzZWN0aW9uLCBvciBudWxsIHRvIG1ha2UgdGhpcyBmdW5jdGlvbiByZXR1cm4gdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYWN0ZWQgc2VjdGlvbgorICoKKyAqIEByZXR1cm4gc3RyaW5nIElmICRjYWxsYmFja2Z1bmMgaXMgbm90IG51bGwgcmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MKKyAqLworZnVuY3Rpb24gbWFpbHBhcnNlX21zZ19leHRyYWN0X3BhcnRfZmlsZSgkbWltZW1haWwsICRmaWxlbmFtZSwgJGNhbGxiYWNrZnVuYyA9IGZhbHNlKQoreworfQorCisvKioKKyAqIC4KKyAqCisgKiBAbGluayBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb25zLm1haWxwYXJzZS1tc2ctZXh0cmFjdC13aG9sZS1wYXJ0LWZpbGUucGhwCisgKgorICogQHBhcmFtIHJlc291cmNlICRtaW1lbWFpbCBBIHZhbGlkIE1JTUUgcmVzb3VyY2UKKyAqIEBwYXJhbSBzdHJpbmcgICAkZmlsZW5hbWUKKyAqIEBwYXJhbSBjYWxsYWJsZSAkY2FsbGJhY2tmdW5jCisgKgorICogQHJldHVybiBzdHJpbmcKKyAqLworZnVuY3Rpb24gbWFpbHBhcnNlX21zZ19leHRyYWN0X3dob2xlX3BhcnRfZmlsZSgkbWltZW1haWwsICRmaWxlbmFtZSwgJGNhbGxiYWNrZnVuYykKK3sKK30KKworLyoqCisgKiBDcmVhdGUgYSBNSU1FIG1haWwgcmVzb3VyY2UuCisgKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9ucy5tYWlscGFyc2UtbXNnLWNyZWF0ZS5waHAKKyAqIEByZXR1cm4gcmVzb3VyY2UgUmV0dXJucyBhIGhhbmRsZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHBhcnNlIGEgbWVzc2FnZQorICovCitmdW5jdGlvbiBtYWlscGFyc2VfbXNnX2NyZWF0ZSgpCit7Cit9CisKKy8qKgorICogRnJlZXMgYSBNSU1FIHJlc291cmNlLgorICoKKyAqIEBsaW5rIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbnMubWFpbHBhcnNlLW1zZy1mcmVlLnBocAorICoKKyAqIEBwYXJhbSByZXNvdXJjZSAkbWltZW1haWwgQSB2YWxpZCBNSU1FIHJlc291cmNlIGFsbG9jYXRlZCBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBtYWlscGFyc2VfbXNnX2NyZWF0ZSBvciBtYWlscGFyc2VfbXNnX3BhcnNlX2ZpbGUKKyAqCisgKiBAcmV0dXJuIGJvb2xlYW58bnVsbAorICovCitmdW5jdGlvbiBtYWlscGFyc2VfbXNnX2ZyZWUoJG1pbWVtYWlsKQoreworfQorCisvKioKKyAqIEluY3JlbWVudGFsbHkgcGFyc2UgZGF0YSBpbnRvIHRoZSBzdXBwbGllZCBtaW1lIG1haWwgcmVzb3VyY2UuCisgKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9ucy5tYWlscGFyc2UtbXNnLXBhcnNlLnBocAorICoKKyAqIEBwYXJhbSByZXNvdXJjZSAkbWltZW1haWwgQSB2YWxpZCBNSU1FIHJlc291cmNlCisgKiBAcGFyYW0gc3RyaW5nICAgJGRhdGEKKyAqCisgKiBAcmV0dXJuIGJvb2xlYW58bnVsbAorICovCitmdW5jdGlvbiBtYWlscGFyc2VfbXNnX3BhcnNlKCRtaW1lbWFpbCwgJGRhdGEpCit7Cit9CisKKy8qKgorICogUGFyc2VzIGEgUkZDIDgyMiBjb21wbGlhbnQgcmVjaXBpZW50IGxpc3QsIHN1Y2ggYXMgdGhhdCBmb3VuZCBpbiB0aGUgVG86IGhlYWRlci4KKyAqCisgKiBAbGluayBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb25zLm1haWxwYXJzZS1yZmM4MjItcGFyc2UtYWRkcmVzc2VzLnBocAorICoKKyAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3NlcyBBIHN0cmluZyBjb250YWluaW5nIGFkZHJlc3NlcywgbGlrZSBpbjogV2V6IEZ1cmxvbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXpAZXhhbXBsZS5jb20sIGRvZUBleGFtcGxlLmNvbQorICoKKyAqIEByZXR1cm4gYXJyYXkgUmV0dXJucyBhbiBhcnJheSBvZiBhc3NvY2lhdGl2ZSBhcnJheXMgd2l0aCB0aGUgZm9sbG93aW5nIGtleXMgZm9yIGVhY2gKKyAqICAgICAgICAgcmVjaXBpZW50OiBkaXNwbGF5IFRoZSByZWNpcGllbnQgbmFtZSwgZm9yIGRpc3BsYXkgcHVycG9zZS4gSWYgdGhpcyBwYXJ0IGlzIG5vdAorICogICAgICAgICBzZXQgZm9yIGEgcmVjaXBpZW50LCB0aGlzIGtleSB3aWxsIGhvbGQgdGhlIHNhbWUgdmFsdWUgYXMgYWRkcmVzcy4gYWRkcmVzcyBUaGUKKyAqICAgICAgICAgZW1haWwgYWRkcmVzcyBpc19ncm91cCB0cnVlIGlmIHRoZSByZWNpcGllbnQgaXMgYSBuZXdzZ3JvdXAsIGZhbHNlIG90aGVyd2lzZQorICovCitmdW5jdGlvbiBtYWlscGFyc2VfcmZjODIyX3BhcnNlX2FkZHJlc3NlcygkYWRkcmVzc2VzKQoreworfQorCisvKioKKyAqIEZpZ3VyZXMgb3V0IHRoZSBiZXN0IHdheSBvZiBlbmNvZGluZyB0aGUgY29udGVudCByZWFkIGZyb20gdGhlIGdpdmVuIGZpbGUKKyAqIHBvaW50ZXIuCisgKgorICogQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9ucy5tYWlscGFyc2UtZGV0ZXJtaW5lLWJlc3QteGZlci1lbmNvZGluZy5waHAKKyAqCisgKiBAcGFyYW0gcmVzb3VyY2UgJGZwIEEgdmFsaWQgZmlsZSBwb2ludGVyLCB3aGljaCBtdXN0IGJlIHNlZWstYWJsZQorICoKKyAqIEByZXR1cm4gc3RyaW5nIFJldHVybnMgb25lIG9mIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmdzIHN1cHBvcnRlZCBieSB0aGUgbWJzdHJpbmcgbW9kdWxlCisgKi8KK2Z1bmN0aW9uIG1haWxwYXJzZV9kZXRlcm1pbmVfYmVzdF94ZmVyX2VuY29kaW5nKCRmcCkKK3sKK30KKworLyoqCisgKiBTdHJlYW1zIGRhdGEgZnJvbSB0aGUgc291cmNlIGZpbGUgcG9pbnRlciwgYXBwbHkgJGVuY29kaW5nIGFuZCB3cml0ZSB0byB0aGUKKyAqIGRlc3RpbmF0aW9uIGZpbGUgcG9pbnRlci4KKyAqCisgKiBAbGluayBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb25zLm1haWxwYXJzZS1zdHJlYW0tZW5jb2RlLnBocAorICoKKyAqIEBwYXJhbSByZXNvdXJjZSAkc291cmNlZnAgQSB2YWxpZCBmaWxlIGhhbmRsZS4gVGhlIGZpbGUgaXMgc3RyZWFtZWQgdGhyb3VnaCB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyCisgKiBAcGFyYW0gcmVzb3VyY2UgJGRlc3RmcCAgIFRoZSBkZXN0aW5hdGlvbiBmaWxlIGhhbmRsZSBpbiB3aGljaCB0aGUgZW5jb2RlZCBkYXRhCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgd3JpdHRlbgorICogQHBhcmFtIHN0cmluZyAgICRlbmNvZGluZyBPbmUgb2YgdGhlIGNoYXJhY3RlciBlbmNvZGluZ3Mgc3VwcG9ydGVkIGJ5IHRoZSBtYnN0cmluZworICogICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGUKKyAqCisgKiBAcmV0dXJuIGJvb2xlYW58bnVsbAorICovCitmdW5jdGlvbiBtYWlscGFyc2Vfc3RyZWFtX2VuY29kZSgkc291cmNlZnAsICRkZXN0ZnAsICRlbmNvZGluZykKK3sKK30KKworLyoqCisgKiBTY2FucyB0aGUgZGF0YSBmcm9tIHRoZSBnaXZlbiBmaWxlIHBvaW50ZXIgYW5kIGV4dHJhY3QgZWFjaCBlbWJlZGRlZCB1dWVuY29kZWQKKyAqIGZpbGUgaW50byBhIHRlbXBvcmFyeSBmaWxlLgorICoKKyAqIEBsaW5rIGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbnMubWFpbHBhcnNlLXV1ZGVjb2RlLWFsbC5waHAKKyAqCisgKiBAcGFyYW0gcmVzb3VyY2UgJGZwIEEgdmFsaWQgZmlsZSBwb2ludGVyCisgKgorICogQHJldHVybiBhcnJheSBSZXR1cm5zIGFuIGFycmF5IG9mIGFzc29jaWF0aXZlIGFycmF5cyBsaXN0aW5nIGZpbGVuYW1lIGluZm9ybWF0aW9uLgorICogICAgICAgICBmaWxlbmFtZSBQYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZSBuYW1lIGNyZWF0ZWQgb3JpZ2ZpbGVuYW1lIFRoZSBvcmlnaW5hbAorICogICAgICAgICBmaWxlbmFtZSwgZm9yIHV1ZW5jb2RlZCBwYXJ0cyBvbmx5IFRoZSBmaXJzdCBmaWxlbmFtZSBlbnRyeSBpcyB0aGUgbWVzc2FnZSBib2R5LgorICogICAgICAgICBUaGUgbmV4dCBlbnRyaWVzIGFyZSB0aGUgZGVjb2RlZCB1dWVuY29kZWQgZmlsZXMKKyAqLworZnVuY3Rpb24gbWFpbHBhcnNlX3V1ZGVjb2RlX2FsbCgkZnApCit7Cit9CisKKy8qKgorICogQHJldHVybgorICovCitmdW5jdGlvbiBtYWlscGFyc2VfdGVzdCgpCit7Cit9CisKK2NsYXNzIG1pbWVtZXNzYWdlCit7CisgICAgLyoqCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBtaW1lbWVzc2FnZSgpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NoaWxkKCkKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2hpbGRfY291bnQoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldF9wYXJlbnQoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGV4dHJhY3RfaGVhZGVycygpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZXh0cmFjdF9ib2R5KCkKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBlbnVtX3V1ZSgpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZXh0cmFjdF91dWUoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZSgpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX2NoaWxkKCkKKyAgICB7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3BocHVuaXQueG1sLmRpc3QgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwdW5pdC54bWwuZGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmIxZGJiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3BocHVuaXQueG1sLmRpc3QKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHBocHVuaXQgY29sb3JzPSJ0cnVlIiBib290c3RyYXA9InZlbmRvci9hdXRvbG9hZC5waHAiPgorICAgIDx0ZXN0c3VpdGUgbmFtZT0iZVhvcnVzIFBocE1pbWVNYWlsUGFyc2VyIFRlc3QgU3VpdGUiPgorICAgICAgICA8ZGlyZWN0b3J5IHN1ZmZpeD0iVGVzdC5waHAiPnRlc3RzPC9kaXJlY3Rvcnk+CisgICAgPC90ZXN0c3VpdGU+Cis8L3BocHVuaXQ+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL0F0dGFjaG1lbnQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9BdHRhY2htZW50LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTczMTYzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9BdHRhY2htZW50LnBocApAQCAtMCwwICsxLDI3NiBAQAorPD9waHAKKworbmFtZXNwYWNlIFBocE1pbWVNYWlsUGFyc2VyOworCit1c2UgZnVuY3Rpb24gdmFyX2R1bXA7CisKKy8qKgorICogQXR0YWNobWVudCBvZiBwaHAtbWltZS1tYWlsLXBhcnNlcgorICoKKyAqIEZ1bGx5IFRlc3RlZCBNYWlscGFyc2UgRXh0ZW5zaW9uIFdyYXBwZXIgZm9yIFBIUCA1LjQrCisgKgorICovCitjbGFzcyBBdHRhY2htZW50Cit7CisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcgJGZpbGVuYW1lIEZpbGVuYW1lCisgICAgICovCisgICAgcHJvdGVjdGVkICRmaWxlbmFtZTsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nICRjb250ZW50VHlwZSBNaW1lIFR5cGUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGNvbnRlbnRUeXBlOworCisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcgJGNvbnRlbnQgRmlsZSBDb250ZW50CisgICAgICovCisgICAgcHJvdGVjdGVkICRjb250ZW50OworCisgICAgLyoqCisgICAgICogQHZhciBzdHJpbmcgJGNvbnRlbnREaXNwb3NpdGlvbiBDb250ZW50LURpc3Bvc2l0aW9uIChhdHRhY2htZW50IG9yIGlubGluZSkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGNvbnRlbnREaXNwb3NpdGlvbjsKKworICAgIC8qKgorICAgICAqIEB2YXIgc3RyaW5nICRjb250ZW50SWQgQ29udGVudC1JRAorICAgICAqLworICAgIHByb3RlY3RlZCAkY29udGVudElkOworCisgICAgLyoqCisgICAgICogQHZhciBhcnJheSAkaGVhZGVycyBBbiBBcnJheSBvZiB0aGUgYXR0YWNobWVudCBoZWFkZXJzCisgICAgICovCisgICAgcHJvdGVjdGVkICRoZWFkZXJzOworCisgICAgLyoqCisgICAgICogQHZhciByZXNvdXJjZSAkc3RyZWFtCisgICAgICovCisgICAgcHJvdGVjdGVkICRzdHJlYW07CisKKyAgICAvKioKKyAgICAgKiBAdmFyIHN0cmluZyAkbWltZVBhcnRTdHIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG1pbWVQYXJ0U3RyOworCisgICAgLyoqCisgICAgICogQHZhciBpbnRlZ2VyICRtYXhEdXBsaWNhdGVOdW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgJG1heER1cGxpY2F0ZU51bWJlciA9IDEwMDsKKworICAgIC8qKgorICAgICAqIEF0dGFjaG1lbnQgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJGZpbGVuYW1lCisgICAgICogQHBhcmFtIHN0cmluZyAgICRjb250ZW50VHlwZQorICAgICAqIEBwYXJhbSByZXNvdXJjZSAkc3RyZWFtCisgICAgICogQHBhcmFtIHN0cmluZyAgICRjb250ZW50RGlzcG9zaXRpb24KKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJGNvbnRlbnRJZAorICAgICAqIEBwYXJhbSBhcnJheSAgICAkaGVhZGVycworICAgICAqIEBwYXJhbSBzdHJpbmcgICAkbWltZVBhcnRTdHIKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoCisgICAgICAgICRmaWxlbmFtZSwKKyAgICAgICAgJGNvbnRlbnRUeXBlLAorICAgICAgICAkc3RyZWFtLAorICAgICAgICAkY29udGVudERpc3Bvc2l0aW9uID0gJ2F0dGFjaG1lbnQnLAorICAgICAgICAkY29udGVudElkID0gJycsCisgICAgICAgICRoZWFkZXJzID0gW10sCisgICAgICAgICRtaW1lUGFydFN0ciA9ICcnCisgICAgKSB7CisgICAgICAgICR0aGlzLT5maWxlbmFtZSA9ICRmaWxlbmFtZTsKKyAgICAgICAgJHRoaXMtPmNvbnRlbnRUeXBlID0gJGNvbnRlbnRUeXBlOworICAgICAgICAkdGhpcy0+c3RyZWFtID0gJHN0cmVhbTsKKyAgICAgICAgJHRoaXMtPmNvbnRlbnQgPSBudWxsOworICAgICAgICAkdGhpcy0+Y29udGVudERpc3Bvc2l0aW9uID0gJGNvbnRlbnREaXNwb3NpdGlvbjsKKyAgICAgICAgJHRoaXMtPmNvbnRlbnRJZCA9ICRjb250ZW50SWQ7CisgICAgICAgICR0aGlzLT5oZWFkZXJzID0gJGhlYWRlcnM7CisgICAgICAgICR0aGlzLT5taW1lUGFydFN0ciA9ICRtaW1lUGFydFN0cjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiByZXRyaWV2ZSB0aGUgYXR0YWNobWVudCBmaWxlbmFtZQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RmlsZW5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5maWxlbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgQXR0YWNobWVudCBDb250ZW50LVR5cGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENvbnRlbnRUeXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y29udGVudFR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIEF0dGFjaG1lbnQgQ29udGVudC1EaXNwb3NpdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29udGVudERpc3Bvc2l0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+Y29udGVudERpc3Bvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBBdHRhY2htZW50IENvbnRlbnQtSUQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENvbnRlbnRJRCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmNvbnRlbnRJZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgQXR0YWNobWVudCBIZWFkZXJzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEhlYWRlcnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5oZWFkZXJzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGhhbmRsZSB0byB0aGUgc3RyZWFtCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc291cmNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFN0cmVhbSgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnN0cmVhbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW5hbWUgYSBmaWxlIGlmIGl0IGFscmVhZHkgZXhpc3RzIGF0IGl0cyBkZXN0aW5hdGlvbi4KKyAgICAgKiBSZW5hbWluZyBpcyBkb25lIGJ5IGFkZGluZyBhIGR1cGxpY2F0ZSBudW1iZXIgdG8gdGhlIGZpbGUgbmFtZS4gRS5nLiBleGlzdGluZ0ZpbGVOYW1lXzEuZXh0LgorICAgICAqIEFmdGVyIGEgbWF4IGR1cGxpY2F0ZSBudW1iZXIsIHJlbmFtaW5nIHRoZSBmaWxlIHdpbGwgc3dpdGNoIG92ZXIgdG8gZ2VuZXJhdGluZyBhIHJhbmRvbSBzdWZmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlTmFtZSAgQ29tcGxldGUgcGF0aCB0byB0aGUgZmlsZS4KKyAgICAgKiBAcmV0dXJuIHN0cmluZyAgICAgICAgICAgVGhlIHN1ZmZpeGVkIGZpbGUgbmFtZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc3VmZml4RmlsZU5hbWUoc3RyaW5nICRmaWxlTmFtZSk6IHN0cmluZworICAgIHsKKyAgICAgICAgJHBhdGhJbmZvID0gcGF0aGluZm8oJGZpbGVOYW1lKTsKKyAgICAgICAgJGRpcm5hbWUgPSAkcGF0aEluZm9bJ2Rpcm5hbWUnXS5ESVJFQ1RPUllfU0VQQVJBVE9SOworICAgICAgICAkZmlsZW5hbWUgPSAkcGF0aEluZm9bJ2ZpbGVuYW1lJ107CisgICAgICAgICRleHRlbnNpb24gID0gZW1wdHkoJHBhdGhJbmZvWydleHRlbnNpb24nXSkgPyAnJyA6ICcuJy4kcGF0aEluZm9bJ2V4dGVuc2lvbiddOworCisgICAgICAgICRpID0gMDsKKyAgICAgICAgZG8geworICAgICAgICAgICAgJGkrKzsKKworICAgICAgICAgICAgaWYgKCRpID4gJHRoaXMtPm1heER1cGxpY2F0ZU51bWJlcikgeworICAgICAgICAgICAgICAgICRkdXBsaWNhdGVFeHRlbnNpb24gPSB1bmlxaWQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJGR1cGxpY2F0ZUV4dGVuc2lvbiA9ICRpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkcmVzdWx0TmFtZSA9ICRkaXJuYW1lLiRmaWxlbmFtZS4iXyRkdXBsaWNhdGVFeHRlbnNpb24iLiRleHRlbnNpb247CisgICAgICAgIH0gd2hpbGUgKGZpbGVfZXhpc3RzKCRyZXN1bHROYW1lKSk7CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHROYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGNvbnRlbnRzIGEgZmV3IGJ5dGVzIGF0IGEgdGltZSB1bnRpbCBjb21wbGV0ZWQKKyAgICAgKiBPbmNlIHJlYWQgdG8gY29tcGxldGlvbiwgaXQgYWx3YXlzIHJldHVybnMgZmFsc2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnQgJGJ5dGVzIChkZWZhdWx0OiAyMDgyKQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmd8Ym9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiByZWFkKCRieXRlcyA9IDIwODIpCisgICAgeworICAgICAgICByZXR1cm4gZmVvZigkdGhpcy0+c3RyZWFtKSA/IGZhbHNlIDogZnJlYWQoJHRoaXMtPnN0cmVhbSwgJGJ5dGVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgZmlsZSBjb250ZW50IGluIG9uZSBnbworICAgICAqIE9uY2UgeW91IHJldHJpZXZlIHRoZSBjb250ZW50IHlvdSBjYW5ub3QgdXNlIE1pbWVNYWlsUGFyc2VyX2F0dGFjaG1lbnQ6OnJlYWQoKQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29udGVudCgpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPmNvbnRlbnQgPT09IG51bGwpIHsKKyAgICAgICAgICAgIGZzZWVrKCR0aGlzLT5zdHJlYW0sIDApOworICAgICAgICAgICAgd2hpbGUgKCgkYnVmID0gJHRoaXMtPnJlYWQoKSkgIT09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmNvbnRlbnQgLj0gJGJ1ZjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+Y29udGVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWltZSBwYXJ0IHN0cmluZyBmb3IgdGhpcyBhdHRhY2htZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNaW1lUGFydFN0cigpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPm1pbWVQYXJ0U3RyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIGF0dGFjaG1lbnQgaW5kaXZpZHVhbGx5CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhdHRhY2hfZGlyCisgICAgICogQHBhcmFtIHN0cmluZyAkZmlsZW5hbWVTdHJhdGVneQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZSgKKyAgICAgICAgJGF0dGFjaF9kaXIsCisgICAgICAgICRmaWxlbmFtZVN0cmF0ZWd5ID0gUGFyc2VyOjpBVFRBQ0hNRU5UX0RVUExJQ0FURV9TVUZGSVgKKyAgICApIHsKKyAgICAgICAgJGF0dGFjaF9kaXIgPSBydHJpbSgkYXR0YWNoX2RpciwgRElSRUNUT1JZX1NFUEFSQVRPUikuRElSRUNUT1JZX1NFUEFSQVRPUjsKKyAgICAgICAgaWYgKCFpc19kaXIoJGF0dGFjaF9kaXIpKSB7CisgICAgICAgICAgICBta2RpcigkYXR0YWNoX2Rpcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBEZXRlcm1pbmUgZmlsZW5hbWUKKyAgICAgICAgc3dpdGNoICgkZmlsZW5hbWVTdHJhdGVneSkgeworICAgICAgICAgICAgY2FzZSBQYXJzZXI6OkFUVEFDSE1FTlRfUkFORE9NX0ZJTEVOQU1FOgorICAgICAgICAgICAgICAgICRmaWxlSW5mbyA9IHBhdGhpbmZvKCR0aGlzLT5nZXRGaWxlbmFtZSgpKTsKKyAgICAgICAgICAgICAgICAkZXh0ZW5zaW9uICA9IGVtcHR5KCRmaWxlSW5mb1snZXh0ZW5zaW9uJ10pID8gJycgOiAnLicuJGZpbGVJbmZvWydleHRlbnNpb24nXTsKKyAgICAgICAgICAgICAgICAkYXR0YWNobWVudF9wYXRoID0gJGF0dGFjaF9kaXIudW5pcWlkKCkuJGV4dGVuc2lvbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUGFyc2VyOjpBVFRBQ0hNRU5UX0RVUExJQ0FURV9USFJPVzoKKyAgICAgICAgICAgIGNhc2UgUGFyc2VyOjpBVFRBQ0hNRU5UX0RVUExJQ0FURV9TVUZGSVg6CisgICAgICAgICAgICAgICAgJGF0dGFjaG1lbnRfcGF0aCA9ICRhdHRhY2hfZGlyLiR0aGlzLT5nZXRGaWxlbmFtZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGZpbGVuYW1lIHN0cmF0ZWd5IGFyZ3VtZW50IHByb3ZpZGVkLicpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSGFuZGxlIGR1cGxpY2F0ZSBmaWxlbmFtZQorICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGF0dGFjaG1lbnRfcGF0aCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoJGZpbGVuYW1lU3RyYXRlZ3kpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBhcnNlcjo6QVRUQUNITUVOVF9EVVBMSUNBVEVfVEhST1c6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NvdWxkIG5vdCBjcmVhdGUgZmlsZSBmb3IgYXR0YWNobWVudDogZHVwbGljYXRlIGZpbGVuYW1lLicpOworICAgICAgICAgICAgICAgIGNhc2UgUGFyc2VyOjpBVFRBQ0hNRU5UX0RVUExJQ0FURV9TVUZGSVg6CisgICAgICAgICAgICAgICAgICAgICRhdHRhY2htZW50X3BhdGggPSAkdGhpcy0+c3VmZml4RmlsZU5hbWUoJGF0dGFjaG1lbnRfcGF0aCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqIEB2YXIgcmVzb3VyY2UgJGZwICovCisgICAgICAgIGlmICgkZnAgPSBmb3BlbigkYXR0YWNobWVudF9wYXRoLCAndycpKSB7CisgICAgICAgICAgICB3aGlsZSAoJGJ5dGVzID0gJHRoaXMtPnJlYWQoKSkgeworICAgICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICRieXRlcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmY2xvc2UoJGZwKTsKKyAgICAgICAgICAgIHJldHVybiByZWFscGF0aCgkYXR0YWNobWVudF9wYXRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0NvdWxkIG5vdCB3cml0ZSBhdHRhY2htZW50cy4gWW91ciBkaXJlY3RvcnkgbWF5IGJlIHVud3JpdGFibGUgYnkgUEhQLicpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9DaGFyc2V0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMvQ2hhcnNldC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2QyMTlmMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMvQ2hhcnNldC5waHAKQEAgLTAsMCArMSwzNzAgQEAKKzw/cGhwIG5hbWVzcGFjZSBQaHBNaW1lTWFpbFBhcnNlcjsKKwordXNlIFBocE1pbWVNYWlsUGFyc2VyXENvbnRyYWN0c1xDaGFyc2V0TWFuYWdlcjsKKworY2xhc3MgQ2hhcnNldCBpbXBsZW1lbnRzIENoYXJzZXRNYW5hZ2VyCit7CisgICAgLyoqCisgICAgICogQ2hhcnNldCBBbGlhc2VzCisgICAgICovCisgICAgcHJpdmF0ZSAkY2hhcnNldEFsaWFzID0gWworICAgICAgICAnYXNjaWknICAgICAgICAgICAgICAgICAgICA9PiAndXMtYXNjaWknLAorICAgICAgICAndXMtYXNjaWknICAgICAgICAgICAgICAgICA9PiAndXMtYXNjaWknLAorICAgICAgICAnYW5zaV94My40LTE5NjgnICAgICAgICAgICA9PiAndXMtYXNjaWknLAorICAgICAgICAnNjQ2JyAgICAgICAgICAgICAgICAgICAgICA9PiAndXMtYXNjaWknLAorICAgICAgICAnaXNvLTg4NTktMScgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMScsCisgICAgICAgICdpc28tODg1OS0yJyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0yJywKKyAgICAgICAgJ2lzby04ODU5LTMnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTMnLAorICAgICAgICAnaXNvLTg4NTktNCcgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNCcsCisgICAgICAgICdpc28tODg1OS01JyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS01JywKKyAgICAgICAgJ2lzby04ODU5LTYnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYnLAorICAgICAgICAnaXNvLTg4NTktNi1pJyAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNi1pJywKKyAgICAgICAgJ2lzby04ODU5LTYtZScgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYtZScsCisgICAgICAgICdpc28tODg1OS03JyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS03JywKKyAgICAgICAgJ2lzby04ODU5LTgnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTgnLAorICAgICAgICAnaXNvLTg4NTktOC1pJyAgICAgICAgICAgICA9PiAnaXNvLTg4NTktOCcsCisgICAgICAgICdpc28tODg1OS04LWUnICAgICAgICAgICAgID0+ICdpc28tODg1OS04LWUnLAorICAgICAgICAnaXNvLTg4NTktOScgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktOScsCisgICAgICAgICdpc28tODg1OS0xMCcgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xMCcsCisgICAgICAgICdpc28tODg1OS0xMScgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xMScsCisgICAgICAgICdpc28tODg1OS0xMycgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xMycsCisgICAgICAgICdpc28tODg1OS0xNCcgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xNCcsCisgICAgICAgICdpc28tODg1OS0xNScgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xNScsCisgICAgICAgICdpc28tODg1OS0xNicgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xNicsCisgICAgICAgICdpc28taXItMTExJyAgICAgICAgICAgICAgID0+ICdpc28taXItMTExJywKKyAgICAgICAgJ2lzby0yMDIyLWNuJyAgICAgICAgICAgICAgPT4gJ2lzby0yMDIyLWNuJywKKyAgICAgICAgJ2lzby0yMDIyLWNuLWV4dCcgICAgICAgICAgPT4gJ2lzby0yMDIyLWNuJywKKyAgICAgICAgJ2lzby0yMDIyLWtyJyAgICAgICAgICAgICAgPT4gJ2lzby0yMDIyLWtyJywKKyAgICAgICAgJ2lzby0yMDIyLWpwJyAgICAgICAgICAgICAgPT4gJ2lzby0yMDIyLWpwJywKKyAgICAgICAgJ3V0Zi0xNmJlJyAgICAgICAgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ3V0Zi0xNmxlJyAgICAgICAgICAgICAgICAgPT4gJ3V0Zi0xNmxlJywKKyAgICAgICAgJ3V0Zi0xNicgICAgICAgICAgICAgICAgICAgPT4gJ3V0Zi0xNicsCisgICAgICAgICd3aW5kb3dzLTEyNTAnICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTAnLAorICAgICAgICAnd2luZG93cy0xMjUxJyAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjUxJywKKyAgICAgICAgJ3dpbmRvd3MtMTI1MicgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MicsCisgICAgICAgICd3aW5kb3dzLTEyNTMnICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTMnLAorICAgICAgICAnd2luZG93cy0xMjU0JyAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU0JywKKyAgICAgICAgJ3dpbmRvd3MtMTI1NScgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NScsCisgICAgICAgICd3aW5kb3dzLTEyNTYnICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTYnLAorICAgICAgICAnd2luZG93cy0xMjU3JyAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU3JywKKyAgICAgICAgJ3dpbmRvd3MtMTI1OCcgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1OCcsCisgICAgICAgICdpYm04NjYnICAgICAgICAgICAgICAgICAgID0+ICdpYm04NjYnLAorICAgICAgICAnaWJtODUwJyAgICAgICAgICAgICAgICAgICA9PiAnaWJtODUwJywKKyAgICAgICAgJ2libTg1MicgICAgICAgICAgICAgICAgICAgPT4gJ2libTg1MicsCisgICAgICAgICdpYm04NTUnICAgICAgICAgICAgICAgICAgID0+ICdpYm04NTUnLAorICAgICAgICAnaWJtODU3JyAgICAgICAgICAgICAgICAgICA9PiAnaWJtODU3JywKKyAgICAgICAgJ2libTg2MicgICAgICAgICAgICAgICAgICAgPT4gJ2libTg2MicsCisgICAgICAgICdpYm04NjQnICAgICAgICAgICAgICAgICAgID0+ICdpYm04NjQnLAorICAgICAgICAndXRmLTgnICAgICAgICAgICAgICAgICAgICA9PiAndXRmLTgnLAorICAgICAgICAndXRmLTcnICAgICAgICAgICAgICAgICAgICA9PiAndXRmLTcnLAorICAgICAgICAnc2hpZnRfamlzJyAgICAgICAgICAgICAgICA9PiAnc2hpZnRfamlzJywKKyAgICAgICAgJ2JpZzUnICAgICAgICAgICAgICAgICAgICAgPT4gJ2JpZzUnLAorICAgICAgICAnZXVjLWpwJyAgICAgICAgICAgICAgICAgICA9PiAnZXVjLWpwJywKKyAgICAgICAgJ2V1Yy1rcicgICAgICAgICAgICAgICAgICAgPT4gJ2V1Yy1rcicsCisgICAgICAgICdnYjIzMTInICAgICAgICAgICAgICAgICAgID0+ICdnYjIzMTInLAorICAgICAgICAnZ2IxODAzMCcgICAgICAgICAgICAgICAgICA9PiAnZ2IxODAzMCcsCisgICAgICAgICd2aXNjaWknICAgICAgICAgICAgICAgICAgID0+ICd2aXNjaWknLAorICAgICAgICAna29pOC1yJyAgICAgICAgICAgICAgICAgICA9PiAna29pOC1yJywKKyAgICAgICAgJ2tvaThfcicgICAgICAgICAgICAgICAgICAgPT4gJ2tvaTgtcicsCisgICAgICAgICdjc2tvaThyJyAgICAgICAgICAgICAgICAgID0+ICdrb2k4LXInLAorICAgICAgICAna29pJyAgICAgICAgICAgICAgICAgICAgICA9PiAna29pOC1yJywKKyAgICAgICAgJ2tvaTgnICAgICAgICAgICAgICAgICAgICAgPT4gJ2tvaTgtcicsCisgICAgICAgICdrb2k4LXUnICAgICAgICAgICAgICAgICAgID0+ICdrb2k4LXUnLAorICAgICAgICAndGlzLTYyMCcgICAgICAgICAgICAgICAgICA9PiAndGlzLTYyMCcsCisgICAgICAgICd0LjYxLThiaXQnICAgICAgICAgICAgICAgID0+ICd0LjYxLThiaXQnLAorICAgICAgICAnaHotZ2ItMjMxMicgICAgICAgICAgICAgICA9PiAnaHotZ2ItMjMxMicsCisgICAgICAgICdiaWc1LWhrc2NzJyAgICAgICAgICAgICAgID0+ICdiaWc1LWhrc2NzJywKKyAgICAgICAgJ2diaycgICAgICAgICAgICAgICAgICAgICAgPT4gJ2diaycsCisgICAgICAgICdjbnMxMTY0MycgICAgICAgICAgICAgICAgID0+ICd4LWV1Yy10dycsCisgICAgICAgICd4LWltYXA0LW1vZGlmaWVkLXV0ZjcnICAgID0+ICd4LWltYXA0LW1vZGlmaWVkLXV0ZjcnLAorICAgICAgICAneC1ldWMtdHcnICAgICAgICAgICAgICAgICA9PiAneC1ldWMtdHcnLAorICAgICAgICAneC1tYWMtY2UnICAgICAgICAgICAgICAgICA9PiAnbWFjY2UnLAorICAgICAgICAneC1tYWMtdHVya2lzaCcgICAgICAgICAgICA9PiAnbWFjdHVya2lzaCcsCisgICAgICAgICd4LW1hYy1ncmVlaycgICAgICAgICAgICAgID0+ICdtYWNncmVlaycsCisgICAgICAgICd4LW1hYy1pY2VsYW5kaWMnICAgICAgICAgID0+ICdtYWNpY2VsYW5kaWMnLAorICAgICAgICAneC1tYWMtY3JvYXRpYW4nICAgICAgICAgICA9PiAnbWFjY3JvYXRpYW4nLAorICAgICAgICAneC1tYWMtcm9tYW5pYW4nICAgICAgICAgICA9PiAnbWFjcm9tYW5pYW4nLAorICAgICAgICAneC1tYWMtY3lyaWxsaWMnICAgICAgICAgICA9PiAnbWFjY3lyaWxsaWMnLAorICAgICAgICAneC1tYWMtdWtyYWluaWFuJyAgICAgICAgICA9PiAnbWFjdWtyYWluaWFuJywKKyAgICAgICAgJ3gtbWFjLWhlYnJldycgICAgICAgICAgICAgPT4gJ21hY2hlYnJldycsCisgICAgICAgICd4LW1hYy1hcmFiaWMnICAgICAgICAgICAgID0+ICdtYWNhcmFiaWMnLAorICAgICAgICAneC1tYWMtZmFyc2knICAgICAgICAgICAgICA9PiAnbWFjZmFyc2knLAorICAgICAgICAneC1tYWMtZGV2YW5hZ2FyaScgICAgICAgICA9PiAnbWFjZGV2YW5hZ2FyaScsCisgICAgICAgICd4LW1hYy1ndWphcmF0aScgICAgICAgICAgID0+ICdtYWNndWphcmF0aScsCisgICAgICAgICd4LW1hYy1ndXJtdWtoaScgICAgICAgICAgID0+ICdtYWNndXJtdWtoaScsCisgICAgICAgICdhcm1zY2lpLTgnICAgICAgICAgICAgICAgID0+ICdhcm1zY2lpLTgnLAorICAgICAgICAneC12aWV0LXRjdm41NzEyJyAgICAgICAgICA9PiAneC12aWV0LXRjdm41NzEyJywKKyAgICAgICAgJ3gtdmlldC12cHMnICAgICAgICAgICAgICAgPT4gJ3gtdmlldC12cHMnLAorICAgICAgICAnaXNvLTEwNjQ2LXVjcy0yJyAgICAgICAgICA9PiAndXRmLTE2YmUnLAorICAgICAgICAneC1pc28tMTA2NDYtdWNzLTItYmUnICAgICA9PiAndXRmLTE2YmUnLAorICAgICAgICAneC1pc28tMTA2NDYtdWNzLTItbGUnICAgICA9PiAndXRmLTE2bGUnLAorICAgICAgICAneC11c2VyLWRlZmluZWQnICAgICAgICAgICA9PiAneC11c2VyLWRlZmluZWQnLAorICAgICAgICAneC1qb2hhYicgICAgICAgICAgICAgICAgICA9PiAneC1qb2hhYicsCisgICAgICAgICdsYXRpbjEnICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xJywKKyAgICAgICAgJ2lzb184ODU5LTEnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEnLAorICAgICAgICAnaXNvODg1OS0xJyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMScsCisgICAgICAgICdpc284ODU5LTInICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0yJywKKyAgICAgICAgJ2lzbzg4NTktMycgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTMnLAorICAgICAgICAnaXNvODg1OS00JyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNCcsCisgICAgICAgICdpc284ODU5LTUnICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS01JywKKyAgICAgICAgJ2lzbzg4NTktNicgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYnLAorICAgICAgICAnaXNvODg1OS03JyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNycsCisgICAgICAgICdpc284ODU5LTgnICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS04JywKKyAgICAgICAgJ2lzbzg4NTktOScgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTknLAorICAgICAgICAnaXNvODg1OS0xMCcgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTAnLAorICAgICAgICAnaXNvODg1OS0xMScgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTEnLAorICAgICAgICAnaXNvODg1OS0xMycgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTMnLAorICAgICAgICAnaXNvODg1OS0xNCcgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTQnLAorICAgICAgICAnaXNvODg1OS0xNScgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTUnLAorICAgICAgICAnaXNvXzg4NTktMToxOTg3JyAgICAgICAgICA9PiAnaXNvLTg4NTktMScsCisgICAgICAgICdpc28taXItMTAwJyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xJywKKyAgICAgICAgJ2wxJyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEnLAorICAgICAgICAnaWJtODE5JyAgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMScsCisgICAgICAgICdjcDgxOScgICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0xJywKKyAgICAgICAgJ2NzaXNvbGF0aW4xJyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEnLAorICAgICAgICAnbGF0aW4yJyAgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMicsCisgICAgICAgICdpc29fODg1OS0yJyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0yJywKKyAgICAgICAgJ2lzb184ODU5LTI6MTk4NycgICAgICAgICAgPT4gJ2lzby04ODU5LTInLAorICAgICAgICAnaXNvLWlyLTEwMScgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMicsCisgICAgICAgICdsMicgICAgICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0yJywKKyAgICAgICAgJ2NzaXNvbGF0aW4yJyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTInLAorICAgICAgICAnbGF0aW4zJyAgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMycsCisgICAgICAgICdpc29fODg1OS0zJyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0zJywKKyAgICAgICAgJ2lzb184ODU5LTM6MTk4OCcgICAgICAgICAgPT4gJ2lzby04ODU5LTMnLAorICAgICAgICAnaXNvLWlyLTEwOScgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMycsCisgICAgICAgICdsMycgICAgICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0zJywKKyAgICAgICAgJ2NzaXNvbGF0aW4zJyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTMnLAorICAgICAgICAnbGF0aW40JyAgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNCcsCisgICAgICAgICdpc29fODg1OS00JyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS00JywKKyAgICAgICAgJ2lzb184ODU5LTQ6MTk4OCcgICAgICAgICAgPT4gJ2lzby04ODU5LTQnLAorICAgICAgICAnaXNvLWlyLTExMCcgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNCcsCisgICAgICAgICdsNCcgICAgICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS00JywKKyAgICAgICAgJ2NzaXNvbGF0aW40JyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTQnLAorICAgICAgICAnY3lyaWxsaWMnICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNScsCisgICAgICAgICdpc29fODg1OS01JyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS01JywKKyAgICAgICAgJ2lzb184ODU5LTU6MTk4OCcgICAgICAgICAgPT4gJ2lzby04ODU5LTUnLAorICAgICAgICAnaXNvLWlyLTE0NCcgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNScsCisgICAgICAgICdjc2lzb2xhdGluY3lyaWxsaWMnICAgICAgID0+ICdpc28tODg1OS01JywKKyAgICAgICAgJ2FyYWJpYycgICAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYnLAorICAgICAgICAnaXNvXzg4NTktNicgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNicsCisgICAgICAgICdpc29fODg1OS02OjE5ODcnICAgICAgICAgID0+ICdpc28tODg1OS02JywKKyAgICAgICAgJ2lzby1pci0xMjcnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYnLAorICAgICAgICAnZWNtYS0xMTQnICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNicsCisgICAgICAgICdhc21vLTcwOCcgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS02JywKKyAgICAgICAgJ2NzaXNvbGF0aW5hcmFiaWMnICAgICAgICAgPT4gJ2lzby04ODU5LTYnLAorICAgICAgICAnY3Npc284ODU5NmknICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNi1pJywKKyAgICAgICAgJ2NzaXNvODg1OTZlJyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYtZScsCisgICAgICAgICdncmVlaycgICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS03JywKKyAgICAgICAgJ2dyZWVrOCcgICAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTcnLAorICAgICAgICAnc3VuX2V1X2dyZWVrJyAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNycsCisgICAgICAgICdpc29fODg1OS03JyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS03JywKKyAgICAgICAgJ2lzb184ODU5LTc6MTk4NycgICAgICAgICAgPT4gJ2lzby04ODU5LTcnLAorICAgICAgICAnaXNvLWlyLTEyNicgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNycsCisgICAgICAgICdlbG90XzkyOCcgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS03JywKKyAgICAgICAgJ2VjbWEtMTE4JyAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTcnLAorICAgICAgICAnY3Npc29sYXRpbmdyZWVrJyAgICAgICAgICA9PiAnaXNvLTg4NTktNycsCisgICAgICAgICdoZWJyZXcnICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS04JywKKyAgICAgICAgJ2lzb184ODU5LTgnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTgnLAorICAgICAgICAndmlzdWFsJyAgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktOCcsCisgICAgICAgICdpc29fODg1OS04OjE5ODgnICAgICAgICAgID0+ICdpc28tODg1OS04JywKKyAgICAgICAgJ2lzby1pci0xMzgnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTgnLAorICAgICAgICAnY3Npc29sYXRpbmhlYnJldycgICAgICAgICA9PiAnaXNvLTg4NTktOCcsCisgICAgICAgICdjc2lzbzg4NTk4aScgICAgICAgICAgICAgID0+ICdpc28tODg1OS04JywKKyAgICAgICAgJ2lzby04ODU5LThpJyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTgnLAorICAgICAgICAnbG9naWNhbCcgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktOCcsCisgICAgICAgICdjc2lzbzg4NTk4ZScgICAgICAgICAgICAgID0+ICdpc28tODg1OS04LWUnLAorICAgICAgICAnbGF0aW41JyAgICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktOScsCisgICAgICAgICdpc29fODg1OS05JyAgICAgICAgICAgICAgID0+ICdpc28tODg1OS05JywKKyAgICAgICAgJ2lzb184ODU5LTk6MTk4OScgICAgICAgICAgPT4gJ2lzby04ODU5LTknLAorICAgICAgICAnaXNvLWlyLTE0OCcgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktOScsCisgICAgICAgICdsNScgICAgICAgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS05JywKKyAgICAgICAgJ2NzaXNvbGF0aW41JyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTknLAorICAgICAgICAndW5pY29kZS0xLTEtdXRmLTgnICAgICAgICA9PiAndXRmLTgnLAorICAgICAgICAndXRmOCcgICAgICAgICAgICAgICAgICAgICA9PiAndXRmLTgnLAorICAgICAgICAneC1zamlzJyAgICAgICAgICAgICAgICAgICA9PiAnc2hpZnRfamlzJywKKyAgICAgICAgJ3NoaWZ0LWppcycgICAgICAgICAgICAgICAgPT4gJ3NoaWZ0X2ppcycsCisgICAgICAgICdtc19rYW5qaScgICAgICAgICAgICAgICAgID0+ICdzaGlmdF9qaXMnLAorICAgICAgICAnY3NzaGlmdGppcycgICAgICAgICAgICAgICA9PiAnc2hpZnRfamlzJywKKyAgICAgICAgJ3dpbmRvd3MtMzFqJyAgICAgICAgICAgICAgPT4gJ3NoaWZ0X2ppcycsCisgICAgICAgICdjcDkzMicgICAgICAgICAgICAgICAgICAgID0+ICdzaGlmdF9qaXMnLAorICAgICAgICAnc2ppcycgICAgICAgICAgICAgICAgICAgICA9PiAnc2hpZnRfamlzJywKKyAgICAgICAgJ2NzZXVjcGtkZm10amFwYW5lc2UnICAgICAgPT4gJ2V1Yy1qcCcsCisgICAgICAgICd4LWV1Yy1qcCcgICAgICAgICAgICAgICAgID0+ICdldWMtanAnLAorICAgICAgICAnY3Npc28yMDIyanAnICAgICAgICAgICAgICA9PiAnaXNvLTIwMjItanAnLAorICAgICAgICAnaXNvLTIwMjItanAtMicgICAgICAgICAgICA9PiAnaXNvLTIwMjItanAnLAorICAgICAgICAnY3Npc28yMDIyanAyJyAgICAgICAgICAgICA9PiAnaXNvLTIwMjItanAnLAorICAgICAgICAnY3NiaWc1JyAgICAgICAgICAgICAgICAgICA9PiAnYmlnNScsCisgICAgICAgICdjbi1iaWc1JyAgICAgICAgICAgICAgICAgID0+ICdiaWc1JywKKyAgICAgICAgJ3gteC1iaWc1JyAgICAgICAgICAgICAgICAgPT4gJ2JpZzUnLAorICAgICAgICAnemhfdHctYmlnNScgICAgICAgICAgICAgICA9PiAnYmlnNScsCisgICAgICAgICdjc2V1Y2tyJyAgICAgICAgICAgICAgICAgID0+ICdldWMta3InLAorICAgICAgICAna3NfY181NjAxLTE5ODcnICAgICAgICAgICA9PiAnZXVjLWtyJywKKyAgICAgICAgJ2lzby1pci0xNDknICAgICAgICAgICAgICAgPT4gJ2V1Yy1rcicsCisgICAgICAgICdrc19jXzU2MDEtMTk4OScgICAgICAgICAgID0+ICdldWMta3InLAorICAgICAgICAna3NjXzU2MDEnICAgICAgICAgICAgICAgICA9PiAnZXVjLWtyJywKKyAgICAgICAgJ2tzYzU2MDEnICAgICAgICAgICAgICAgICAgPT4gJ2V1Yy1rcicsCisgICAgICAgICdrb3JlYW4nICAgICAgICAgICAgICAgICAgID0+ICdldWMta3InLAorICAgICAgICAnY3Nrc2M1NjAxMTk4NycgICAgICAgICAgICA9PiAnZXVjLWtyJywKKyAgICAgICAgJzU2MDEnICAgICAgICAgICAgICAgICAgICAgPT4gJ2V1Yy1rcicsCisgICAgICAgICd3aW5kb3dzLTk0OScgICAgICAgICAgICAgID0+ICdldWMta3InLAorICAgICAgICAnZ2JfMjMxMi04MCcgICAgICAgICAgICAgICA9PiAnZ2IyMzEyJywKKyAgICAgICAgJ2lzby1pci01OCcgICAgICAgICAgICAgICAgPT4gJ2diMjMxMicsCisgICAgICAgICdjaGluZXNlJyAgICAgICAgICAgICAgICAgID0+ICdnYjIzMTInLAorICAgICAgICAnY3Npc281OGdiMjMxMjgwJyAgICAgICAgICA9PiAnZ2IyMzEyJywKKyAgICAgICAgJ2NzZ2IyMzEyJyAgICAgICAgICAgICAgICAgPT4gJ2diMjMxMicsCisgICAgICAgICd6aF9jbi5ldWMnICAgICAgICAgICAgICAgID0+ICdnYjIzMTInLAorICAgICAgICAnZ2JfMjMxMicgICAgICAgICAgICAgICAgICA9PiAnZ2IyMzEyJywKKyAgICAgICAgJ3gtY3AxMjUwJyAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MCcsCisgICAgICAgICd4LWNwMTI1MScgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTEnLAorICAgICAgICAneC1jcDEyNTInICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjUyJywKKyAgICAgICAgJ3gtY3AxMjUzJyAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MycsCisgICAgICAgICd4LWNwMTI1NCcgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTQnLAorICAgICAgICAneC1jcDEyNTUnICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU1JywKKyAgICAgICAgJ3gtY3AxMjU2JyAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NicsCisgICAgICAgICd4LWNwMTI1NycgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTcnLAorICAgICAgICAneC1jcDEyNTgnICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU4JywKKyAgICAgICAgJ3dpbmRvd3MtODc0JyAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtODc0JywKKyAgICAgICAgJ2libTg3NCcgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtODc0JywKKyAgICAgICAgJ2Rvcy04NzQnICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtODc0JywKKyAgICAgICAgJ21hY2ludG9zaCcgICAgICAgICAgICAgICAgPT4gJ21hY2ludG9zaCcsCisgICAgICAgICd4LW1hYy1yb21hbicgICAgICAgICAgICAgID0+ICdtYWNpbnRvc2gnLAorICAgICAgICAnbWFjJyAgICAgICAgICAgICAgICAgICAgICA9PiAnbWFjaW50b3NoJywKKyAgICAgICAgJ2NzbWFjaW50b3NoJyAgICAgICAgICAgICAgPT4gJ21hY2ludG9zaCcsCisgICAgICAgICdjcDg2NicgICAgICAgICAgICAgICAgICAgID0+ICdpYm04NjYnLAorICAgICAgICAnY3AtODY2JyAgICAgICAgICAgICAgICAgICA9PiAnaWJtODY2JywKKyAgICAgICAgJzg2NicgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg2NicsCisgICAgICAgICdjc2libTg2NicgICAgICAgICAgICAgICAgID0+ICdpYm04NjYnLAorICAgICAgICAnY3A4NTAnICAgICAgICAgICAgICAgICAgICA9PiAnaWJtODUwJywKKyAgICAgICAgJzg1MCcgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg1MCcsCisgICAgICAgICdjc2libTg1MCcgICAgICAgICAgICAgICAgID0+ICdpYm04NTAnLAorICAgICAgICAnY3A4NTInICAgICAgICAgICAgICAgICAgICA9PiAnaWJtODUyJywKKyAgICAgICAgJzg1MicgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg1MicsCisgICAgICAgICdjc2libTg1MicgICAgICAgICAgICAgICAgID0+ICdpYm04NTInLAorICAgICAgICAnY3A4NTUnICAgICAgICAgICAgICAgICAgICA9PiAnaWJtODU1JywKKyAgICAgICAgJzg1NScgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg1NScsCisgICAgICAgICdjc2libTg1NScgICAgICAgICAgICAgICAgID0+ICdpYm04NTUnLAorICAgICAgICAnY3A4NTcnICAgICAgICAgICAgICAgICAgICA9PiAnaWJtODU3JywKKyAgICAgICAgJzg1NycgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg1NycsCisgICAgICAgICdjc2libTg1NycgICAgICAgICAgICAgICAgID0+ICdpYm04NTcnLAorICAgICAgICAnY3A4NjInICAgICAgICAgICAgICAgICAgICA9PiAnaWJtODYyJywKKyAgICAgICAgJzg2MicgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg2MicsCisgICAgICAgICdjc2libTg2MicgICAgICAgICAgICAgICAgID0+ICdpYm04NjInLAorICAgICAgICAnY3A4NjQnICAgICAgICAgICAgICAgICAgICA9PiAnaWJtODY0JywKKyAgICAgICAgJzg2NCcgICAgICAgICAgICAgICAgICAgICAgPT4gJ2libTg2NCcsCisgICAgICAgICdjc2libTg2NCcgICAgICAgICAgICAgICAgID0+ICdpYm04NjQnLAorICAgICAgICAnaWJtLTg2NCcgICAgICAgICAgICAgICAgICA9PiAnaWJtODY0JywKKyAgICAgICAgJ3QuNjEnICAgICAgICAgICAgICAgICAgICAgPT4gJ3QuNjEtOGJpdCcsCisgICAgICAgICdpc28taXItMTAzJyAgICAgICAgICAgICAgID0+ICd0LjYxLThiaXQnLAorICAgICAgICAnY3Npc28xMDN0NjE4Yml0JyAgICAgICAgICA9PiAndC42MS04Yml0JywKKyAgICAgICAgJ3gtdW5pY29kZS0yLTAtdXRmLTcnICAgICAgPT4gJ3V0Zi03JywKKyAgICAgICAgJ3VuaWNvZGUtMi0wLXV0Zi03JyAgICAgICAgPT4gJ3V0Zi03JywKKyAgICAgICAgJ3VuaWNvZGUtMS0xLXV0Zi03JyAgICAgICAgPT4gJ3V0Zi03JywKKyAgICAgICAgJ2NzdW5pY29kZTExdXRmNycgICAgICAgICAgPT4gJ3V0Zi03JywKKyAgICAgICAgJ2NzdW5pY29kZScgICAgICAgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2NzdW5pY29kZTExJyAgICAgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2lzby0xMDY0Ni11Y3MtYmFzaWMnICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2NzdW5pY29kZWFzY2lpJyAgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2lzby0xMDY0Ni11bmljb2RlLWxhdGluMScgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2NzdW5pY29kZWxhdGluMScgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2lzby0xMDY0NicgICAgICAgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2lzby0xMDY0Ni1qLTEnICAgICAgICAgICAgPT4gJ3V0Zi0xNmJlJywKKyAgICAgICAgJ2xhdGluNicgICAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEwJywKKyAgICAgICAgJ2lzby1pci0xNTcnICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEwJywKKyAgICAgICAgJ2w2JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEwJywKKyAgICAgICAgJ2NzaXNvbGF0aW42JyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTEwJywKKyAgICAgICAgJ2lzb184ODU5LTE1JyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTE1JywKKyAgICAgICAgJ2NzaXNvbGF0aW45JyAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTE1JywKKyAgICAgICAgJ2w5JyAgICAgICAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTE1JywKKyAgICAgICAgJ2VjbWEtY3lyaWxsaWMnICAgICAgICAgICAgPT4gJ2lzby1pci0xMTEnLAorICAgICAgICAnY3Npc28xMTFlY21hY3lyaWxsaWMnICAgICA9PiAnaXNvLWlyLTExMScsCisgICAgICAgICdjc2lzbzIwMjJrcicgICAgICAgICAgICAgID0+ICdpc28tMjAyMi1rcicsCisgICAgICAgICdjc3Zpc2NpaScgICAgICAgICAgICAgICAgID0+ICd2aXNjaWknLAorICAgICAgICAnemhfdHctZXVjJyAgICAgICAgICAgICAgICA9PiAneC1ldWMtdHcnLAorICAgICAgICAnaXNvODg1OTEnICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMScsCisgICAgICAgICdpc284ODU5MicgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS0yJywKKyAgICAgICAgJ2lzbzg4NTkzJyAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTMnLAorICAgICAgICAnaXNvODg1OTQnICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNCcsCisgICAgICAgICdpc284ODU5NScgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS01JywKKyAgICAgICAgJ2lzbzg4NTk2JyAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTYnLAorICAgICAgICAnaXNvODg1OTcnICAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktNycsCisgICAgICAgICdpc284ODU5OCcgICAgICAgICAgICAgICAgID0+ICdpc28tODg1OS04JywKKyAgICAgICAgJ2lzbzg4NTk5JyAgICAgICAgICAgICAgICAgPT4gJ2lzby04ODU5LTknLAorICAgICAgICAnaXNvODg1OTEwJyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTAnLAorICAgICAgICAnaXNvODg1OTExJyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTEnLAorICAgICAgICAnaXNvODg1OTEyJyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTInLAorICAgICAgICAnaXNvODg1OTEzJyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTMnLAorICAgICAgICAnaXNvODg1OTE0JyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTQnLAorICAgICAgICAnaXNvODg1OTE1JyAgICAgICAgICAgICAgICA9PiAnaXNvLTg4NTktMTUnLAorICAgICAgICAndGlzNjIwJyAgICAgICAgICAgICAgICAgICA9PiAndGlzLTYyMCcsCisgICAgICAgICdjcDEyNTAnICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTAnLAorICAgICAgICAnY3AxMjUxJyAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjUxJywKKyAgICAgICAgJ2NwMTI1MicgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MicsCisgICAgICAgICdjcDEyNTMnICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTMnLAorICAgICAgICAnY3AxMjU0JyAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU0JywKKyAgICAgICAgJ2NwMTI1NScgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1NScsCisgICAgICAgICdjcDEyNTYnICAgICAgICAgICAgICAgICAgID0+ICd3aW5kb3dzLTEyNTYnLAorICAgICAgICAnY3AxMjU3JyAgICAgICAgICAgICAgICAgICA9PiAnd2luZG93cy0xMjU3JywKKyAgICAgICAgJ2NwMTI1OCcgICAgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1OCcsCisgICAgICAgICd4LWdiaycgICAgICAgICAgICAgICAgICAgID0+ICdnYmsnLAorICAgICAgICAnd2luZG93cy05MzYnICAgICAgICAgICAgICA9PiAnZ2JrJywKKyAgICAgICAgJ2Fuc2ktMTI1MScgICAgICAgICAgICAgICAgPT4gJ3dpbmRvd3MtMTI1MScsCisgICAgXTsKKworICAgIC8qKgorICAgICAqIHtAaW5oZXJpdGRvY30KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZGVjb2RlQ2hhcnNldCgkZW5jb2RlZFN0cmluZywgJGNoYXJzZXQpCisgICAgeworICAgICAgICAkY2hhcnNldCA9ICR0aGlzLT5nZXRDaGFyc2V0QWxpYXMoJGNoYXJzZXQpOworCisgICAgICAgIGlmICgkY2hhcnNldCA9PSAndXRmLTgnIHx8ICRjaGFyc2V0ID09ICd1cy1hc2NpaScpIHsKKyAgICAgICAgICAgIHJldHVybiAkZW5jb2RlZFN0cmluZzsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21iX2NvbnZlcnRfZW5jb2RpbmcnKSkgeworICAgICAgICAgICAgaWYgKCRjaGFyc2V0ID09ICdpc28tMjAyMi1qcCcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWJfY29udmVydF9lbmNvZGluZygkZW5jb2RlZFN0cmluZywgJ3V0Zi04JywgJ2lzby0yMDIyLWpwLW1zJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChhcnJheV9zZWFyY2goJGNoYXJzZXQsICR0aGlzLT5nZXRTdXBwb3J0ZWRFbmNvZGluZ3MoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWJfY29udmVydF9lbmNvZGluZygkZW5jb2RlZFN0cmluZywgJ3V0Zi04JywgJGNoYXJzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGljb252KCRjaGFyc2V0LCAndXRmLTgvL3RyYW5zbGl0Ly9pZ25vcmUnLCAkZW5jb2RlZFN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICoge0Bpbmhlcml0ZG9jfQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDaGFyc2V0QWxpYXMoJGNoYXJzZXQpCisgICAgeworICAgICAgICAkY2hhcnNldCA9IHN0cnRvbG93ZXIoJGNoYXJzZXQpOworCisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRjaGFyc2V0LCAkdGhpcy0+Y2hhcnNldEFsaWFzKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jaGFyc2V0QWxpYXNbJGNoYXJzZXRdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gJ3VzLWFzY2lpJzsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFN1cHBvcnRlZEVuY29kaW5ncygpCisgICAgeworICAgICAgICByZXR1cm4KKyAgICAgICAgYXJyYXlfbWFwKAorICAgICAgICAgICAgJ3N0cnRvbG93ZXInLAorICAgICAgICAgICAgYXJyYXlfdW5pcXVlKAorICAgICAgICAgICAgICAgIGFycmF5X21lcmdlKAorICAgICAgICAgICAgICAgICAgICAkZW5jID0gbWJfbGlzdF9lbmNvZGluZ3MoKSwKKyAgICAgICAgICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmNfYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAnYXJyYXlfbWVyZ2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfbWFwKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYl9lbmNvZGluZ19hbGlhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5jCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9Db250cmFjdHMvQ2hhcnNldE1hbmFnZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9Db250cmFjdHMvQ2hhcnNldE1hbmFnZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MGVjMDAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL0NvbnRyYWN0cy9DaGFyc2V0TWFuYWdlci5waHAKQEAgLTAsMCArMSwyNCBAQAorPD9waHAgbmFtZXNwYWNlIFBocE1pbWVNYWlsUGFyc2VyXENvbnRyYWN0czsKKworaW50ZXJmYWNlIENoYXJzZXRNYW5hZ2VyCit7CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIHN0cmluZyBmcm9tIENoYXJzZXQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kZWRTdHJpbmcgVGhlIHN0cmluZyBpbiBpdHMgb3JpZ2luYWwgZW5jb2RlZCBzdGF0ZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNoYXJzZXQgICAgICAgVGhlIENoYXJzZXQgaGVhZGVyIG9mIHRoZSBwYXJ0LgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIGRlY29kZWQgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGRlY29kZUNoYXJzZXQoJGVuY29kZWRTdHJpbmcsICRjaGFyc2V0KTsKKworICAgIC8qKgorICAgICAqIEdldCBjaGFyc2V0IGFsaWFzCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjaGFyc2V0IC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBjaGFyc2V0IGFsaWFzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldENoYXJzZXRBbGlhcygkY2hhcnNldCk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL0NvbnRyYWN0cy9NaWRkbGV3YXJlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMvQ29udHJhY3RzL01pZGRsZXdhcmUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5YWVkNGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL0NvbnRyYWN0cy9NaWRkbGV3YXJlLnBocApAQCAtMCwwICsxLDIzIEBACis8P3BocAorCituYW1lc3BhY2UgUGhwTWltZU1haWxQYXJzZXJcQ29udHJhY3RzOworCit1c2UgUGhwTWltZU1haWxQYXJzZXJcTWltZVBhcnQ7Cit1c2UgUGhwTWltZU1haWxQYXJzZXJcTWlkZGxld2FyZVN0YWNrOworCisvKioKKyAqIFByb2Nlc3MgTWltZSBwYXJ0cyBieSBlaXRoZXI6CisgKiAgcHJvY2Vzc2luZyB0aGUgcGFydCBvciBjYWxsaW5nIHRoZSAkbmV4dCBNaWRkbGV3YXJlU3RhY2sKKyAqLworaW50ZXJmYWNlIE1pZGRsZXdhcmUKK3sKKyAgICAvKioKKyAgICAgKiAgUHJvY2VzcyBhIG1pbWUgcGFydCwgb3B0aW9uYWxseSBkZWxlZ2F0aW5nIHBhcnNpbmcgdG8gdGhlICRuZXh0IE1pZGRsZXdhcmVTdGFjaworICAgICAqCisgICAgICogQHBhcmFtIE1pbWVQYXJ0ICRwYXJ0CisgICAgICogQHBhcmFtIE1pZGRsZXdhcmVTdGFjayAkbmV4dAorICAgICAqCisgICAgICogQHJldHVybiBNaW1lUGFydAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBwYXJzZShNaW1lUGFydCAkcGFydCwgTWlkZGxld2FyZVN0YWNrICRuZXh0KTsKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMvRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMvRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzUzN2UyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9FeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsOCBAQAorPD9waHAKKworbmFtZXNwYWNlIFBocE1pbWVNYWlsUGFyc2VyOworCitjbGFzcyBFeGNlcHRpb24gZXh0ZW5kcyBcUnVudGltZUV4Y2VwdGlvbgoreworCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL01pZGRsZXdhcmUucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9NaWRkbGV3YXJlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWViOTBhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9NaWRkbGV3YXJlLnBocApAQCAtMCwwICsxLDI5IEBACis8P3BocAorCituYW1lc3BhY2UgUGhwTWltZU1haWxQYXJzZXI7CisKKy8qKgorICogV3JhcHMgYSBjYWxsYWJsZSBhcyBhIE1pZGRsZXdhcmUKKyAqLworY2xhc3MgTWlkZGxld2FyZSBpbXBsZW1lbnRzIENvbnRyYWN0c1xNaWRkbGV3YXJlCit7CisgICAgcHJvdGVjdGVkICRwYXJzZXI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBtaWRkbGV3YXJlIHVzaW5nIGEgY2FsbGFibGUgJGZuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGFibGUgJGZuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGNhbGxhYmxlICRmbikKKyAgICB7CisgICAgICAgICR0aGlzLT5wYXJzZXIgPSAkZm47CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBhIG1pbWUgcGFydCwgb3B0aW9uYWxseSBkZWxlZ2F0aW5nIHBhcnNpbmcgdG8gdGhlICRuZXh0IE1pZGRsZXdhcmVTdGFjaworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBwYXJzZShNaW1lUGFydCAkcGFydCwgTWlkZGxld2FyZVN0YWNrICRuZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jKCR0aGlzLT5wYXJzZXIsICRwYXJ0LCAkbmV4dCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9NaWRkbGV3YXJlU3RhY2sucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9NaWRkbGV3YXJlU3RhY2sucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZjZkYTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL01pZGRsZXdhcmVTdGFjay5waHAKQEAgLTAsMCArMSw4OSBAQAorPD9waHAKKworbmFtZXNwYWNlIFBocE1pbWVNYWlsUGFyc2VyOworCit1c2UgUGhwTWltZU1haWxQYXJzZXJcQ29udHJhY3RzXE1pZGRsZVdhcmUgYXMgTWlkZGxlV2FyZUNvbnRyYWN0czsKKworLyoqCisgKiBBIHN0YWNrIG9mIG1pZGRsZXdhcmUgY2hhaW5lZCB0b2dldGhlciBieSAoTWlkZGxld2FyZVN0YWNrICRuZXh0KQorICovCitjbGFzcyBNaWRkbGV3YXJlU3RhY2sKK3sKKyAgICAvKioKKyAgICAgKiBOZXh0IE1pZGRsZXdhcmVTdGFjayBpbiBjaGFpbgorICAgICAqCisgICAgICogQHZhciBNaWRkbGV3YXJlU3RhY2sKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG5leHQ7CisKKyAgICAvKioKKyAgICAgKiBNaWRkbGV3YXJlIGluIHRoaXMgTWlkZGxld2FyZVN0YWNrCisgICAgICoKKyAgICAgKiBAdmFyIE1pZGRsZXdhcmUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG1pZGRsZXdhcmU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgdGhlIGZpcnN0IG1pZGRsZXdhcmUgaW4gdGhpcyBNaWRkbGV3YXJlU3RhY2sKKyAgICAgKiBUaGUgbmV4dCBtaWRkbGV3YXJlIGlzIGNoYWluZWQgdGhyb3VnaCAkTWlkZGxld2FyZVN0YWNrLT5hZGQoJE1pZGRsZXdhcmUpCisgICAgICoKKyAgICAgKiBAcGFyYW0gTWlkZGxld2FyZSAkbWlkZGxld2FyZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChNaWRkbGVXYXJlQ29udHJhY3RzICRtaWRkbGV3YXJlID0gbnVsbCkKKyAgICB7CisgICAgICAgICR0aGlzLT5taWRkbGV3YXJlID0gJG1pZGRsZXdhcmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNoYWluZWQgbWlkZGxld2FyZSBpbiBNaWRkbGV3YXJlU3RhY2sKKyAgICAgKgorICAgICAqIEBwYXJhbSBNaWRkbGV3YXJlICRtaWRkbGV3YXJlCisgICAgICogQHJldHVybiBNaWRkbGV3YXJlU3RhY2sgSW1tdXRhYmxlIE1pZGRsZXdhcmVTdGFjaworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGQoTWlkZGxlV2FyZUNvbnRyYWN0cyAkbWlkZGxld2FyZSkKKyAgICB7CisgICAgICAgICRzdGFjayA9IG5ldyBzdGF0aWMoJG1pZGRsZXdhcmUpOworICAgICAgICAkc3RhY2stPm5leHQgPSAkdGhpczsKKyAgICAgICAgcmV0dXJuICRzdGFjazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIE1pbWVQYXJ0IGJ5IHBhc3NpbmcgaXQgdGhyb3VnaCB0aGUgTWlkZGxld2FyZQorICAgICAqIEBwYXJhbSBNaW1lUGFydCAkcGFydAorICAgICAqIEByZXR1cm4gTWltZVBhcnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcGFyc2UoTWltZVBhcnQgJHBhcnQpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5taWRkbGV3YXJlKSB7CisgICAgICAgICAgICByZXR1cm4gJHBhcnQ7CisgICAgICAgIH0KKyAgICAgICAgJHBhcnQgPSBjYWxsX3VzZXJfZnVuYyhhcnJheSgkdGhpcy0+bWlkZGxld2FyZSwgJ3BhcnNlJyksICRwYXJ0LCAkdGhpcy0+bmV4dCk7CisgICAgICAgIHJldHVybiAkcGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTWlkZGxld2FyZVN0YWNrIGJhc2VkIG9uIGFuIGFycmF5IG9mIG1pZGRsZXdhcmUKKyAgICAgKgorICAgICAqIEBwYXJhbSBNaWRkbGV3YXJlW10gJG1pZGRsZXdhcmVzCisgICAgICogQHJldHVybiBNaWRkbGV3YXJlU3RhY2sKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZhY3RvcnkoYXJyYXkgJG1pZGRsZXdhcmVzID0gYXJyYXkoKSkKKyAgICB7CisgICAgICAgICRzdGFjayA9IG5ldyBzdGF0aWM7CisgICAgICAgIGZvcmVhY2ggKCRtaWRkbGV3YXJlcyBhcyAkbWlkZGxld2FyZSkgeworICAgICAgICAgICAgJHN0YWNrID0gJHN0YWNrLT5hZGQoJG1pZGRsZXdhcmUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkc3RhY2s7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3cgY2FsbGluZyBNaWRkbGV3YXJlU3RhY2sgaW5zdGFuY2UgZGlyZWN0bHkgdG8gaW52b2tlIHBhcnNlKCkKKyAgICAgKgorICAgICAqIEBwYXJhbSBNaW1lUGFydCAkcGFydAorICAgICAqIEByZXR1cm4gTWltZVBhcnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoTWltZVBhcnQgJHBhcnQpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnBhcnNlKCRwYXJ0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL01pbWVQYXJ0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHAtbWltZS1tYWlsLXBhcnNlci9waHAtbWltZS1tYWlsLXBhcnNlci9zcmMvTWltZVBhcnQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3YjNjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL01pbWVQYXJ0LnBocApAQCAtMCwwICsxLDExNSBAQAorPD9waHAKKworbmFtZXNwYWNlIFBocE1pbWVNYWlsUGFyc2VyOworCisvKioKKyAqIE1pbWUgUGFydAorICogUmVwcmVzZW50cyB0aGUgcmVzdWx0cyBvZiBtYWlscGFyc2VfbXNnX2dldF9wYXJ0X2RhdGEoKQorICoKKyAqIE5vdGUgQXJyYXlBY2Nlc3M6Om9mZnNldFNldCgpIGNhbm5vdCBtb2RpZnkgZGVlcGx5IG5lc3RhdGVkIGFycmF5cy4KKyAqIFdoZW4gbW9kaWZ5aW5nIHVzZSBnZXRQYXJ0KCkgYW5kIHNldFBhcnQoKSBmb3IgZGVlcCBuZXN0ZWQgZGF0YSBtb2RpZmljYXRpb24KKyAqCisgKiBAZXhhbXBsZQorICoKKyAqICAgICAkTWltZVBhcnRbJ2hlYWRlcnMnXVsnZnJvbSddID0gJ21vZGlmaWVkQGV4YW1wbGUuY29tJyAvLyBmYWlscworICoKKyAqICAgICAvLyBjb3JyZWN0CisgKiAgICAgJHBhcnQgPSAkTWltZVBhcnQtPmdldFBhcnQoKTsKKyAqICAgICAkcGFydFsnaGVhZGVycyddWydmcm9tJ10gPSAnbW9kaWZpZWRAZXhhbXBsZS5jb20nOworICogICAgICRNaW1lUGFydC0+c2V0UGFydCgkcGFydCk7CisgKi8KK2NsYXNzIE1pbWVQYXJ0IGltcGxlbWVudHMgXEFycmF5QWNjZXNzCit7CisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWltZSBwYXJ0CisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRwYXJ0ID0gYXJyYXkoKTsKKworICAgIC8qKgorICAgICAqIEltbXV0YWJsZSBQYXJ0IElkCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgJGlkOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbWltZSBwYXJ0CisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcnQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRpZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaWQsIGFycmF5ICRwYXJ0KQorICAgIHsKKyAgICAgICAgJHRoaXMtPnBhcnQgPSAkcGFydDsKKyAgICAgICAgJHRoaXMtPmlkID0gJGlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBwYXJ0IElkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRJZCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBwYXJ0IGRhdGEKKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UGFydCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnBhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtaW1lIHBhcnQgZGF0YQorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJ0CisgICAgICogQHJldHVybiB2b2lkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFBhcnQoYXJyYXkgJHBhcnQpCisgICAgeworICAgICAgICAkdGhpcy0+cGFydCA9ICRwYXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFycmF5QWNjZXNzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIG9mZnNldFNldCgkb2Zmc2V0LCAkdmFsdWUpCisgICAgeworICAgICAgICBpZiAoaXNfbnVsbCgkb2Zmc2V0KSkgeworICAgICAgICAgICAgJHRoaXMtPnBhcnRbXSA9ICR2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+cGFydFskb2Zmc2V0XSA9ICR2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcnJheUFjY2VzcworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRFeGlzdHMoJG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cGFydFskb2Zmc2V0XSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXJyYXlBY2Nlc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0VW5zZXQoJG9mZnNldCkKKyAgICB7CisgICAgICAgIHVuc2V0KCR0aGlzLT5wYXJ0WyRvZmZzZXRdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcnJheUFjY2VzcworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRHZXQoJG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc3NldCgkdGhpcy0+cGFydFskb2Zmc2V0XSkgPyAkdGhpcy0+cGFydFskb2Zmc2V0XSA6IG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9QYXJzZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocC1taW1lLW1haWwtcGFyc2VyL3BocC1taW1lLW1haWwtcGFyc2VyL3NyYy9QYXJzZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MDJiNTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwLW1pbWUtbWFpbC1wYXJzZXIvcGhwLW1pbWUtbWFpbC1wYXJzZXIvc3JjL1BhcnNlci5waHAKQEAgLTAsMCArMSw5MjMgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBQaHBNaW1lTWFpbFBhcnNlcjsKKwordXNlIFBocE1pbWVNYWlsUGFyc2VyXENvbnRyYWN0c1xDaGFyc2V0TWFuYWdlcjsKKworLyoqCisgKiBQYXJzZXIgb2YgcGhwLW1pbWUtbWFpbC1wYXJzZXIKKyAqCisgKiBGdWxseSBUZXN0ZWQgTWFpbHBhcnNlIEV4dGVuc2lvbiBXcmFwcGVyIGZvciBQSFAgNS40KworICoKKyAqLworY2xhc3MgUGFyc2VyCit7CisgICAgLyoqCisgICAgICogQXR0YWNobWVudCBmaWxlbmFtZSBhcmd1bWVudCBvcHRpb24gZm9yIC0+c2F2ZUF0dGFjaG1lbnRzKCkuCisgICAgICovCisgICAgY29uc3QgQVRUQUNITUVOVF9EVVBMSUNBVEVfVEhST1cgID0gJ0R1cGxpY2F0ZVRocm93JzsKKyAgICBjb25zdCBBVFRBQ0hNRU5UX0RVUExJQ0FURV9TVUZGSVggPSAnRHVwbGljYXRlU3VmZml4JzsKKyAgICBjb25zdCBBVFRBQ0hNRU5UX1JBTkRPTV9GSUxFTkFNRSAgPSAnUmFuZG9tRmlsZW5hbWUnOworCisgICAgLyoqCisgICAgICogUEhQIE1pbWVQYXJzZXIgUmVzb3VyY2UgSUQKKyAgICAgKgorICAgICAqIEB2YXIgcmVzb3VyY2UgJHJlc291cmNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRyZXNvdXJjZTsKKworICAgIC8qKgorICAgICAqIEEgZmlsZSBwb2ludGVyIHRvIGVtYWlsCisgICAgICoKKyAgICAgKiBAdmFyIHJlc291cmNlICRzdHJlYW0KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHN0cmVhbTsKKworICAgIC8qKgorICAgICAqIEEgdGV4dCBvZiBhbiBlbWFpbAorICAgICAqCisgICAgICogQHZhciBzdHJpbmcgJGRhdGEKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBQYXJ0cyBvZiBhbiBlbWFpbAorICAgICAqCisgICAgICogQHZhciBhcnJheSAkcGFydHMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHBhcnRzOworCisgICAgLyoqCisgICAgICogQHZhciBDaGFyc2V0TWFuYWdlciBvYmplY3QKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGNoYXJzZXQ7CisKKyAgICAvKioKKyAgICAgKiBWYWxpZCBzdHJlYW0gbW9kZXMgZm9yIHJlYWRpbmcKKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljICRyZWFkYWJsZU1vZGVzID0gWworICAgICAgICAncicsICdyKycsICd3KycsICdhKycsICd4KycsICdjKycsICdyYicsICdyK2InLCAndytiJywgJ2ErYicsCisgICAgICAgICd4K2InLCAnYytiJywgJ3J0JywgJ3IrdCcsICd3K3QnLCAnYSt0JywgJ3grdCcsICdjK3QnCisgICAgXTsKKworICAgIC8qKgorICAgICAqIFN0YWNrIG9mIG1pZGRsZXdhcmUgcmVnaXN0ZXJlZCB0byBwcm9jZXNzIGRhdGEKKyAgICAgKgorICAgICAqIEB2YXIgTWlkZGxld2FyZVN0YWNrCisgICAgICovCisgICAgcHJvdGVjdGVkICRtaWRkbGV3YXJlU3RhY2s7CisKKyAgICAvKioKKyAgICAgKiBQYXJzZXIgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gQ2hhcnNldE1hbmFnZXJ8bnVsbCAkY2hhcnNldAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChDaGFyc2V0TWFuYWdlciAkY2hhcnNldCA9IG51bGwpCisgICAgeworICAgICAgICBpZiAoJGNoYXJzZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgJGNoYXJzZXQgPSBuZXcgQ2hhcnNldCgpOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPmNoYXJzZXQgPSAkY2hhcnNldDsKKyAgICAgICAgJHRoaXMtPm1pZGRsZXdhcmVTdGFjayA9IG5ldyBNaWRkbGV3YXJlU3RhY2soKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcmVlIHRoZSBoZWxkIHJlc291cmNlcworICAgICAqCisgICAgICogQHJldHVybiB2b2lkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKQorICAgIHsKKyAgICAgICAgLy8gY2xlYXIgdGhlIGVtYWlsIGZpbGUgcmVzb3VyY2UKKyAgICAgICAgaWYgKGlzX3Jlc291cmNlKCR0aGlzLT5zdHJlYW0pKSB7CisgICAgICAgICAgICBmY2xvc2UoJHRoaXMtPnN0cmVhbSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2xlYXIgdGhlIE1haWxQYXJzZSByZXNvdXJjZQorICAgICAgICBpZiAoaXNfcmVzb3VyY2UoJHRoaXMtPnJlc291cmNlKSkgeworICAgICAgICAgICAgbWFpbHBhcnNlX21zZ19mcmVlKCR0aGlzLT5yZXNvdXJjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGZpbGUgcGF0aCB3ZSB1c2UgdG8gZ2V0IHRoZSBlbWFpbCB0ZXh0CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIEZpbGUgcGF0aCB0byB0aGUgTUlNRSBtYWlsCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFBhcnNlciBNaW1lTWFpbFBhcnNlciBJbnN0YW5jZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRQYXRoKCRwYXRoKQorICAgIHsKKyAgICAgICAgaWYgKGlzX3dyaXRhYmxlKCRwYXRoKSkgeworICAgICAgICAgICAgJGZpbGUgPSBmb3BlbigkcGF0aCwgJ2ErJyk7CisgICAgICAgICAgICBmc2VlaygkZmlsZSwgLTEsIFNFRUtfRU5EKTsKKyAgICAgICAgICAgIGlmIChmcmVhZCgkZmlsZSwgMSkgIT0gIlxuIikgeworICAgICAgICAgICAgICAgIGZ3cml0ZSgkZmlsZSwgUEhQX0VPTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmY2xvc2UoJGZpbGUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2hvdWxkIHBhcnNlIG1lc3NhZ2UgaW5jcmVtZW50YWxseSBmcm9tIGZpbGUKKyAgICAgICAgJHRoaXMtPnJlc291cmNlID0gbWFpbHBhcnNlX21zZ19wYXJzZV9maWxlKCRwYXRoKTsKKyAgICAgICAgJHRoaXMtPnN0cmVhbSA9IGZvcGVuKCRwYXRoLCAncicpOworICAgICAgICAkdGhpcy0+cGFyc2UoKTsKKworICAgICAgICByZXR1cm4gJHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJlYW0gcmVzb3VyY2Ugd2UgdXNlIHRvIGdldCB0aGUgZW1haWwgdGV4dAorICAgICAqCisgICAgICogQHBhcmFtIHJlc291cmNlICRzdHJlYW0KKyAgICAgKgorICAgICAqIEByZXR1cm4gUGFyc2VyIE1pbWVNYWlsUGFyc2VyIEluc3RhbmNlCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0U3RyZWFtKCRzdHJlYW0pCisgICAgeworICAgICAgICAvLyBzdHJlYW1zIGhhdmUgdG8gYmUgY2FjaGVkIHRvIGZpbGUgZmlyc3QKKyAgICAgICAgJG1ldGEgPSBAc3RyZWFtX2dldF9tZXRhX2RhdGEoJHN0cmVhbSk7CisgICAgICAgIGlmICghJG1ldGEgfHwgISRtZXRhWydtb2RlJ10gfHwgIWluX2FycmF5KCRtZXRhWydtb2RlJ10sIHNlbGY6OiRyZWFkYWJsZU1vZGVzLCB0cnVlKSB8fCAkbWV0YVsnZW9mJ10pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ3NldFN0cmVhbSgpIGV4cGVjdHMgcGFyYW1ldGVyIHN0cmVhbSB0byBiZSByZWFkYWJsZSBzdHJlYW0gcmVzb3VyY2UuJworICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKiBAdmFyIHJlc291cmNlICR0bXBfZnAgKi8KKyAgICAgICAgJHRtcF9mcCA9IHRtcGZpbGUoKTsKKyAgICAgICAgaWYgKCR0bXBfZnApIHsKKyAgICAgICAgICAgIHdoaWxlICghZmVvZigkc3RyZWFtKSkgeworICAgICAgICAgICAgICAgIGZ3cml0ZSgkdG1wX2ZwLCBmcmVhZCgkc3RyZWFtLCAyMDI4KSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmcmVhZCgkdG1wX2ZwLCAxKSAhPSAiXG4iKSB7CisgICAgICAgICAgICAgICAgZndyaXRlKCR0bXBfZnAsIFBIUF9FT0wpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmc2VlaygkdG1wX2ZwLCAwKTsKKyAgICAgICAgICAgICR0aGlzLT5zdHJlYW0gPSAmJHRtcF9mcDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0NvdWxkIG5vdCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGVzIGZvciBhdHRhY2htZW50cy4gWW91ciB0bXAgZGlyZWN0b3J5IG1heSBiZSB1bndyaXRhYmxlIGJ5IFBIUC4nCisgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIGZjbG9zZSgkc3RyZWFtKTsKKworICAgICAgICAkdGhpcy0+cmVzb3VyY2UgPSBtYWlscGFyc2VfbXNnX2NyZWF0ZSgpOworICAgICAgICAvLyBwYXJzZXMgdGhlIG1lc3NhZ2UgaW5jcmVtZW50YWxseSAobG93IG1lbW9yeSB1c2FnZSBidXQgc2xvd2VyKQorICAgICAgICB3aGlsZSAoIWZlb2YoJHRoaXMtPnN0cmVhbSkpIHsKKyAgICAgICAgICAgIG1haWxwYXJzZV9tc2dfcGFyc2UoJHRoaXMtPnJlc291cmNlLCBmcmVhZCgkdGhpcy0+c3RyZWFtLCAyMDgyKSk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPnBhcnNlKCk7CisKKyAgICAgICAgcmV0dXJuICR0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZW1haWwgdGV4dAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZGF0YQorICAgICAqCisgICAgICogQHJldHVybiBQYXJzZXIgTWltZU1haWxQYXJzZXIgSW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0VGV4dCgkZGF0YSkKKyAgICB7CisgICAgICAgIGlmIChlbXB0eSgkZGF0YSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IG5vdCBjYWxsIE1pbWVNYWlsUGFyc2VyOjpzZXRUZXh0IHdpdGggYW4gZW1wdHkgc3RyaW5nIHBhcmFtZXRlcicpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN1YnN0cigkZGF0YSwgLTEpICE9ICJcbiIpIHsKKyAgICAgICAgICAgICRkYXRhID0gJGRhdGEuUEhQX0VPTDsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5yZXNvdXJjZSA9IG1haWxwYXJzZV9tc2dfY3JlYXRlKCk7CisgICAgICAgIC8vIGRvZXMgbm90IHBhcnNlIGluY3JlbWVudGFsbHksIGZhc3QgbWVtb3J5IGhvZyBtaWdodCBleHBsb2RlCisgICAgICAgIG1haWxwYXJzZV9tc2dfcGFyc2UoJHRoaXMtPnJlc291cmNlLCAkZGF0YSk7CisgICAgICAgICR0aGlzLT5kYXRhID0gJGRhdGE7CisgICAgICAgICR0aGlzLT5wYXJzZSgpOworCisgICAgICAgIHJldHVybiAkdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSB0aGUgTWVzc2FnZSBpbnRvIHBhcnRzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHZvaWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2UoKQorICAgIHsKKyAgICAgICAgJHN0cnVjdHVyZSA9IG1haWxwYXJzZV9tc2dfZ2V0X3N0cnVjdHVyZSgkdGhpcy0+cmVzb3VyY2UpOworICAgICAgICAkdGhpcy0+cGFydHMgPSBbXTsKKyAgICAgICAgZm9yZWFjaCAoJHN0cnVjdHVyZSBhcyAkcGFydF9pZCkgeworICAgICAgICAgICAgJHBhcnQgPSBtYWlscGFyc2VfbXNnX2dldF9wYXJ0KCR0aGlzLT5yZXNvdXJjZSwgJHBhcnRfaWQpOworICAgICAgICAgICAgJHBhcnRfZGF0YSA9IG1haWxwYXJzZV9tc2dfZ2V0X3BhcnRfZGF0YSgkcGFydCk7CisgICAgICAgICAgICAkbWltZVBhcnQgPSBuZXcgTWltZVBhcnQoJHBhcnRfaWQsICRwYXJ0X2RhdGEpOworICAgICAgICAgICAgLy8gbGV0IGVhY2ggbWlkZGxld2FyZSBwYXJzZSB0aGUgcGFydCBiZWZvcmUgc2F2aW5nCisgICAgICAgICAgICAkdGhpcy0+cGFydHNbJHBhcnRfaWRdID0gJHRoaXMtPm1pZGRsZXdhcmVTdGFjay0+cGFyc2UoJG1pbWVQYXJ0KS0+Z2V0UGFydCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgYSBzcGVjaWZpYyBFbWFpbCBIZWFkZXIsIHdpdGhvdXQgY2hhcnNldCBjb252ZXJzaW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBIZWFkZXIgbmFtZSAoY2FzZS1pbnNlbnNpdGl2ZSkKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nfGJvb2wKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSYXdIZWFkZXIoJG5hbWUpCisgICAgeworICAgICAgICAkbmFtZSA9IHN0cnRvbG93ZXIoJG5hbWUpOworICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPnBhcnRzWzFdKSkgeworICAgICAgICAgICAgJGhlYWRlcnMgPSAkdGhpcy0+Z2V0UGFydCgnaGVhZGVycycsICR0aGlzLT5wYXJ0c1sxXSk7CisKKyAgICAgICAgICAgIHJldHVybiBpc3NldCgkaGVhZGVyc1skbmFtZV0pID8gJGhlYWRlcnNbJG5hbWVdIDogZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdzZXRQYXRoKCkgb3Igc2V0VGV4dCgpIG9yIHNldFN0cmVhbSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSByZXRyaWV2aW5nIGVtYWlsIGhlYWRlcnMuJworICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgc3BlY2lmaWMgRW1haWwgSGVhZGVyCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIEhlYWRlciBuYW1lIChjYXNlLWluc2Vuc2l0aXZlKQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmd8Ym9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRIZWFkZXIoJG5hbWUpCisgICAgeworICAgICAgICAkcmF3SGVhZGVyID0gJHRoaXMtPmdldFJhd0hlYWRlcigkbmFtZSk7CisgICAgICAgIGlmICgkcmF3SGVhZGVyID09PSBmYWxzZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aGlzLT5kZWNvZGVIZWFkZXIoJHJhd0hlYWRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgYWxsIG1haWwgaGVhZGVycworICAgICAqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEhlYWRlcnMoKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wYXJ0c1sxXSkpIHsKKyAgICAgICAgICAgICRoZWFkZXJzID0gJHRoaXMtPmdldFBhcnQoJ2hlYWRlcnMnLCAkdGhpcy0+cGFydHNbMV0pOworICAgICAgICAgICAgZm9yZWFjaCAoJGhlYWRlcnMgYXMgJiR2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmIChpc19hcnJheSgkdmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR2YWx1ZSBhcyAmJHYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gJHRoaXMtPmRlY29kZVNpbmdsZUhlYWRlcigkdik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSAkdGhpcy0+ZGVjb2RlU2luZ2xlSGVhZGVyKCR2YWx1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gJGhlYWRlcnM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdzZXRQYXRoKCkgb3Igc2V0VGV4dCgpIG9yIHNldFN0cmVhbSgpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSByZXRyaWV2aW5nIGVtYWlsIGhlYWRlcnMuJworICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSByYXcgbWFpbCBoZWFkZXJzIGFzIGEgc3RyaW5nCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEhlYWRlcnNSYXcoKQorICAgIHsKKyAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wYXJ0c1sxXSkpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Z2V0UGFydEhlYWRlcigkdGhpcy0+cGFydHNbMV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnc2V0UGF0aCgpIG9yIHNldFRleHQoKSBvciBzZXRTdHJlYW0oKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgcmV0cmlldmluZyBlbWFpbCBoZWFkZXJzLicKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgcmF3IEhlYWRlciBvZiBhIE1JTUUgcGFydAorICAgICAqCisgICAgICogQHJldHVybiBTdHJpbmcKKyAgICAgKiBAcGFyYW0gJHBhcnQgT2JqZWN0CisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UGFydEhlYWRlcigmJHBhcnQpCisgICAgeworICAgICAgICAkaGVhZGVyID0gJyc7CisgICAgICAgIGlmICgkdGhpcy0+c3RyZWFtKSB7CisgICAgICAgICAgICAkaGVhZGVyID0gJHRoaXMtPmdldFBhcnRIZWFkZXJGcm9tRmlsZSgkcGFydCk7CisgICAgICAgIH0gZWxzZWlmICgkdGhpcy0+ZGF0YSkgeworICAgICAgICAgICAgJGhlYWRlciA9ICR0aGlzLT5nZXRQYXJ0SGVhZGVyRnJvbVRleHQoJHBhcnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkaGVhZGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBIZWFkZXIgZnJvbSBhIE1JTUUgcGFydCBmcm9tIGZpbGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RyaW5nIE1pbWUgSGVhZGVyIFBhcnQKKyAgICAgKiBAcGFyYW0gJHBhcnQgQXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UGFydEhlYWRlckZyb21GaWxlKCYkcGFydCkKKyAgICB7CisgICAgICAgICRzdGFydCA9ICRwYXJ0WydzdGFydGluZy1wb3MnXTsKKyAgICAgICAgJGVuZCA9ICRwYXJ0WydzdGFydGluZy1wb3MtYm9keSddOworICAgICAgICBmc2VlaygkdGhpcy0+c3RyZWFtLCAkc3RhcnQsIFNFRUtfU0VUKTsKKyAgICAgICAgJGhlYWRlciA9IGZyZWFkKCR0aGlzLT5zdHJlYW0sICRlbmQgLSAkc3RhcnQpOworICAgICAgICByZXR1cm4gJGhlYWRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgSGVhZGVyIGZyb20gYSBNSU1FIHBhcnQgZnJvbSB0ZXh0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0cmluZyBNaW1lIEhlYWRlciBQYXJ0CisgICAgICogQHBhcmFtICRwYXJ0IEFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFBhcnRIZWFkZXJGcm9tVGV4dCgmJHBhcnQpCisgICAgeworICAgICAgICAkc3RhcnQgPSAkcGFydFsnc3RhcnRpbmctcG9zJ107CisgICAgICAgICRlbmQgPSAkcGFydFsnc3RhcnRpbmctcG9zLWJvZHknXTsKKyAgICAgICAgJGhlYWRlciA9IHN1YnN0cigkdGhpcy0+ZGF0YSwgJHN0YXJ0LCAkZW5kIC0gJHN0YXJ0KTsKKyAgICAgICAgcmV0dXJuICRoZWFkZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBwYXJ0IElEIGlzIGEgY2hpbGQgb2YgYW5vdGhlciBwYXJ0CisgICAgICogZWcuIGFuIFJGQzgyMiBhdHRhY2htZW50IG1heSBoYXZlIG9uZSBvciBtb3JlIHRleHQgcGFydHMKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhcnRJZAorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhcmVudFBhcnRJZAorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBwYXJ0SWRJc0NoaWxkT2ZQYXJ0KCRwYXJ0SWQsICRwYXJlbnRQYXJ0SWQpCisgICAgeworICAgICAgICAkcGFyZW50UGFydElkID0gJHBhcmVudFBhcnRJZC4nLic7CisgICAgICAgIHJldHVybiBzdWJzdHIoJHBhcnRJZCwgMCwgc3RybGVuKCRwYXJlbnRQYXJ0SWQpKSA9PSAkcGFyZW50UGFydElkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdoZXRoZXIgdGhlIGdpdmVuIHBhcnQgSUQgaXMgYSBjaGlsZCBvZiBhbnkgYXR0YWNobWVudCBwYXJ0IGluIHRoZSBtZXNzYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2hlY2tQYXJ0SWQKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFydElkSXNDaGlsZE9mQW5BdHRhY2htZW50KCRjaGVja1BhcnRJZCkKKyAgICB7CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5wYXJ0cyBhcyAkcGFydElkID0+ICRwYXJ0KSB7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmdldFBhcnQoJ2NvbnRlbnQtZGlzcG9zaXRpb24nLCAkcGFydCkgPT0gJ2F0dGFjaG1lbnQnKSB7CisgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5wYXJ0SWRJc0NoaWxkT2ZQYXJ0KCRjaGVja1BhcnRJZCwgJHBhcnRJZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBlbWFpbCBtZXNzYWdlIGJvZHkgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgdGV4dCwgaHRtbCBvciBodG1sRW1iZWRkZWQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIEJvZHkKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNZXNzYWdlQm9keSgkdHlwZSA9ICd0ZXh0JykKKyAgICB7CisgICAgICAgICRtaW1lX3R5cGVzID0gWworICAgICAgICAgICAgJ3RleHQnICAgICAgICAgPT4gJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ2h0bWwnICAgICAgICAgPT4gJ3RleHQvaHRtbCcsCisgICAgICAgICAgICAnaHRtbEVtYmVkZGVkJyA9PiAndGV4dC9odG1sJywKKyAgICAgICAgXTsKKworICAgICAgICBpZiAoaW5fYXJyYXkoJHR5cGUsIGFycmF5X2tleXMoJG1pbWVfdHlwZXMpKSkgeworICAgICAgICAgICAgJHBhcnRfdHlwZSA9ICR0eXBlID09PSAnaHRtbEVtYmVkZGVkJyA/ICdodG1sJyA6ICR0eXBlOworICAgICAgICAgICAgJGlubGluZV9wYXJ0cyA9ICR0aGlzLT5nZXRJbmxpbmVQYXJ0cygkcGFydF90eXBlKTsKKyAgICAgICAgICAgICRib2R5ID0gZW1wdHkoJGlubGluZV9wYXJ0cykgPyAnJyA6ICRpbmxpbmVfcGFydHNbMF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdJbnZhbGlkIHR5cGUgc3BlY2lmaWVkIGZvciBnZXRNZXNzYWdlQm9keSgpLiBFeHBlY3RlZDogdGV4dCwgaHRtbCBvciBodG1sRW1iZWRlZC4nCisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCR0eXBlID09ICdodG1sRW1iZWRkZWQnKSB7CisgICAgICAgICAgICAkYXR0YWNobWVudHMgPSAkdGhpcy0+Z2V0QXR0YWNobWVudHMoKTsKKyAgICAgICAgICAgIGZvcmVhY2ggKCRhdHRhY2htZW50cyBhcyAkYXR0YWNobWVudCkgeworICAgICAgICAgICAgICAgIGlmICgkYXR0YWNobWVudC0+Z2V0Q29udGVudElEKCkgIT0gJycpIHsKKyAgICAgICAgICAgICAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICciY2lkOicuJGF0dGFjaG1lbnQtPmdldENvbnRlbnRJRCgpLiciJywKKyAgICAgICAgICAgICAgICAgICAgICAgICciJy4kdGhpcy0+Z2V0RW1iZWRkZWREYXRhKCRhdHRhY2htZW50LT5nZXRDb250ZW50SUQoKSkuJyInLAorICAgICAgICAgICAgICAgICAgICAgICAgJGJvZHkKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGJvZHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZW1iZWRkZWQgZGF0YSBzdHJ1Y3R1cmUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnRJZCBDb250ZW50LUlkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRFbWJlZGRlZERhdGEoJGNvbnRlbnRJZCkKKyAgICB7CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5wYXJ0cyBhcyAkcGFydCkgeworICAgICAgICAgICAgaWYgKCR0aGlzLT5nZXRQYXJ0KCdjb250ZW50LWlkJywgJHBhcnQpID09ICRjb250ZW50SWQpIHsKKyAgICAgICAgICAgICAgICAkZW1iZWRkZWREYXRhID0gJ2RhdGE6JzsKKyAgICAgICAgICAgICAgICAkZW1iZWRkZWREYXRhIC49ICR0aGlzLT5nZXRQYXJ0KCdjb250ZW50LXR5cGUnLCAkcGFydCk7CisgICAgICAgICAgICAgICAgJGVtYmVkZGVkRGF0YSAuPSAnOycuJHRoaXMtPmdldFBhcnQoJ3RyYW5zZmVyLWVuY29kaW5nJywgJHBhcnQpOworICAgICAgICAgICAgICAgICRlbWJlZGRlZERhdGEgLj0gJywnLiR0aGlzLT5nZXRQYXJ0Qm9keSgkcGFydCk7CisgICAgICAgICAgICAgICAgcmV0dXJuICRlbWJlZGRlZERhdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICcnOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5cyBkaXNwbGF5LCBhZGRyZXNzLCBpc19ncm91cAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBIZWFkZXIgbmFtZSAoY2FzZS1pbnNlbnNpdGl2ZSkKKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWRkcmVzc2VzKCRuYW1lKQorICAgIHsKKyAgICAgICAgJHZhbHVlID0gJHRoaXMtPmdldFJhd0hlYWRlcigkbmFtZSk7CisgICAgICAgICR2YWx1ZSA9IChpc19hcnJheSgkdmFsdWUpKSA/ICR2YWx1ZVswXSA6ICR2YWx1ZTsKKyAgICAgICAgJGFkZHJlc3NlcyA9IG1haWxwYXJzZV9yZmM4MjJfcGFyc2VfYWRkcmVzc2VzKCR2YWx1ZSk7CisgICAgICAgIGZvcmVhY2ggKCRhZGRyZXNzZXMgYXMgJGkgPT4gJGl0ZW0pIHsKKyAgICAgICAgICAgICRhZGRyZXNzZXNbJGldWydkaXNwbGF5J10gPSAkdGhpcy0+ZGVjb2RlSGVhZGVyKCRpdGVtWydkaXNwbGF5J10pOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkYWRkcmVzc2VzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGF0dGFjaG1lbnRzIGNvbnRlbnRzIGluIG9yZGVyIG9mIGFwcGVhcmFuY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gQXR0YWNobWVudFtdCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldElubGluZVBhcnRzKCR0eXBlID0gJ3RleHQnKQorICAgIHsKKyAgICAgICAgJGlubGluZV9wYXJ0cyA9IFtdOworICAgICAgICAkbWltZV90eXBlcyA9IFsKKyAgICAgICAgICAgICd0ZXh0JyAgICAgICAgID0+ICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICdodG1sJyAgICAgICAgID0+ICd0ZXh0L2h0bWwnLAorICAgICAgICBdOworCisgICAgICAgIGlmICghaW5fYXJyYXkoJHR5cGUsIGFycmF5X2tleXMoJG1pbWVfdHlwZXMpKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW52YWxpZCB0eXBlIHNwZWNpZmllZCBmb3IgZ2V0SW5saW5lUGFydHMoKS4gInR5cGUiIGNhbiBlaXRoZXIgYmUgdGV4dCBvciBodG1sLicpOworICAgICAgICB9CisKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnBhcnRzIGFzICRwYXJ0SWQgPT4gJHBhcnQpIHsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+Z2V0UGFydCgnY29udGVudC10eXBlJywgJHBhcnQpID09ICRtaW1lX3R5cGVzWyR0eXBlXQorICAgICAgICAgICAgICAgICYmICR0aGlzLT5nZXRQYXJ0KCdjb250ZW50LWRpc3Bvc2l0aW9uJywgJHBhcnQpICE9ICdhdHRhY2htZW50JworICAgICAgICAgICAgICAgICYmICEkdGhpcy0+cGFydElkSXNDaGlsZE9mQW5BdHRhY2htZW50KCRwYXJ0SWQpCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAkaGVhZGVycyA9ICR0aGlzLT5nZXRQYXJ0KCdoZWFkZXJzJywgJHBhcnQpOworICAgICAgICAgICAgICAgICRlbmNvZGluZ1R5cGUgPSBhcnJheV9rZXlfZXhpc3RzKCdjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nJywgJGhlYWRlcnMpID8KKyAgICAgICAgICAgICAgICAgICAgJGhlYWRlcnNbJ2NvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcnXSA6ICcnOworICAgICAgICAgICAgICAgICR1bmRlY29kZWRfYm9keSA9ICR0aGlzLT5kZWNvZGVDb250ZW50VHJhbnNmZXIoJHRoaXMtPmdldFBhcnRCb2R5KCRwYXJ0KSwgJGVuY29kaW5nVHlwZSk7CisgICAgICAgICAgICAgICAgJGlubGluZV9wYXJ0c1tdID0gJHRoaXMtPmNoYXJzZXQtPmRlY29kZUNoYXJzZXQoJHVuZGVjb2RlZF9ib2R5LCAkdGhpcy0+Z2V0UGFydENoYXJzZXQoJHBhcnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkaW5saW5lX3BhcnRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGF0dGFjaG1lbnRzIGNvbnRlbnRzIGluIG9yZGVyIG9mIGFwcGVhcmFuY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gQXR0YWNobWVudFtdCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEF0dGFjaG1lbnRzKCRpbmNsdWRlX2lubGluZSA9IHRydWUpCisgICAgeworICAgICAgICAkYXR0YWNobWVudHMgPSBbXTsKKyAgICAgICAgJGRpc3Bvc2l0aW9ucyA9ICRpbmNsdWRlX2lubGluZSA/IFsnYXR0YWNobWVudCcsICdpbmxpbmUnXSA6IFsnYXR0YWNobWVudCddOworICAgICAgICAkbm9uX2F0dGFjaG1lbnRfdHlwZXMgPSBbJ3RleHQvcGxhaW4nLCAndGV4dC9odG1sJ107CisgICAgICAgICRub25hbWVJdGVyID0gMDsKKworICAgICAgICBmb3JlYWNoICgkdGhpcy0+cGFydHMgYXMgJHBhcnQpIHsKKyAgICAgICAgICAgICRkaXNwb3NpdGlvbiA9ICR0aGlzLT5nZXRQYXJ0KCdjb250ZW50LWRpc3Bvc2l0aW9uJywgJHBhcnQpOworICAgICAgICAgICAgJGZpbGVuYW1lID0gJ25vbmFtZSc7CisKKyAgICAgICAgICAgIGlmIChpc3NldCgkcGFydFsnZGlzcG9zaXRpb24tZmlsZW5hbWUnXSkpIHsKKyAgICAgICAgICAgICAgICAkZmlsZW5hbWUgPSAkdGhpcy0+ZGVjb2RlSGVhZGVyKCRwYXJ0WydkaXNwb3NpdGlvbi1maWxlbmFtZSddKTsKKyAgICAgICAgICAgIH0gZWxzZWlmIChpc3NldCgkcGFydFsnY29udGVudC1uYW1lJ10pKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBubyBkaXNwb3NpdGlvbiBidXQgd2UgaGF2ZSBhIGNvbnRlbnQtbmFtZSwgaXQncyBhIHZhbGlkIGF0dGFjaG1lbnQuCisgICAgICAgICAgICAgICAgLy8gd2Ugc2ltdWxhdGUgdGhlIHByZXNlbmNlIG9mIGFuIGF0dGFjaG1lbnQgZGlzcG9zaXRpb24gd2l0aCBhIGRpc3Bvc2l0aW9uIGZpbGVuYW1lCisgICAgICAgICAgICAgICAgJGZpbGVuYW1lID0gJHRoaXMtPmRlY29kZUhlYWRlcigkcGFydFsnY29udGVudC1uYW1lJ10pOworICAgICAgICAgICAgICAgICRkaXNwb3NpdGlvbiA9ICdhdHRhY2htZW50JzsKKyAgICAgICAgICAgIH0gZWxzZWlmIChpbl9hcnJheSgkcGFydFsnY29udGVudC10eXBlJ10sICRub25fYXR0YWNobWVudF90eXBlcywgdHJ1ZSkKKyAgICAgICAgICAgICAgICAmJiAkZGlzcG9zaXRpb24gIT09ICdhdHRhY2htZW50JykgeworICAgICAgICAgICAgICAgIC8vIGl0IGlzIGEgbWVzc2FnZSBib2R5LCBubyBhdHRhY2htZW50CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2VpZiAoc3Vic3RyKCRwYXJ0Wydjb250ZW50LXR5cGUnXSwgMCwgMTApICE9PSAnbXVsdGlwYXJ0LycKKyAgICAgICAgICAgICAgICAmJiAkcGFydFsnY29udGVudC10eXBlJ10gIT09ICd0ZXh0L3BsYWluOyAoZXJyb3IpJykgeworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGNhbm5vdCBnZXQgaXQgYnkgZ2V0TWVzc2FnZUJvZHkoKSwgd2UgYXNzdW1lIGl0IGlzIGFuIGF0dGFjaG1lbnQKKyAgICAgICAgICAgICAgICAkZGlzcG9zaXRpb24gPSAnYXR0YWNobWVudCc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGRpc3Bvc2l0aW9uLCBbJ2F0dGFjaG1lbnQnLCAnaW5saW5lJ10pID09PSBmYWxzZSAmJiAhZW1wdHkoJGRpc3Bvc2l0aW9uKSkgeworICAgICAgICAgICAgICAgICRkaXNwb3NpdGlvbiA9ICdhdHRhY2htZW50JzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGluX2FycmF5KCRkaXNwb3NpdGlvbiwgJGRpc3Bvc2l0aW9ucykgPT09IHRydWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGZpbGVuYW1lID09ICdub25hbWUnKSB7CisgICAgICAgICAgICAgICAgICAgICRub25hbWVJdGVyKys7CisgICAgICAgICAgICAgICAgICAgICRmaWxlbmFtZSA9ICdub25hbWUnLiRub25hbWVJdGVyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVzY2FwZSBhbGwgcG90ZW50aWFsbHkgdW5zYWZlIGNoYXJhY3RlcnMgZnJvbSB0aGUgZmlsZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgJGZpbGVuYW1lID0gcHJlZ19yZXBsYWNlKCcoKF5cLil8XC98W1xufFxyfFxuXHJdfChcLiQpKScsICdfJywgJGZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkaGVhZGVyc0F0dGFjaG1lbnRzID0gJHRoaXMtPmdldFBhcnQoJ2hlYWRlcnMnLCAkcGFydCk7CisgICAgICAgICAgICAgICAgJGNvbnRlbnRpZEF0dGFjaG1lbnRzID0gJHRoaXMtPmdldFBhcnQoJ2NvbnRlbnQtaWQnLCAkcGFydCk7CisKKyAgICAgICAgICAgICAgICAkYXR0YWNobWVudFN0cmVhbSA9ICR0aGlzLT5nZXRBdHRhY2htZW50U3RyZWFtKCRwYXJ0KTsKKyAgICAgICAgICAgICAgICAkbWltZVBhcnRTdHIgPSAkdGhpcy0+Z2V0UGFydENvbXBsZXRlKCRwYXJ0KTsKKworICAgICAgICAgICAgICAgICRhdHRhY2htZW50c1tdID0gbmV3IEF0dGFjaG1lbnQoCisgICAgICAgICAgICAgICAgICAgICRmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmdldFBhcnQoJ2NvbnRlbnQtdHlwZScsICRwYXJ0KSwKKyAgICAgICAgICAgICAgICAgICAgJGF0dGFjaG1lbnRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICRkaXNwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnRpZEF0dGFjaG1lbnRzLAorICAgICAgICAgICAgICAgICAgICAkaGVhZGVyc0F0dGFjaG1lbnRzLAorICAgICAgICAgICAgICAgICAgICAkbWltZVBhcnRTdHIKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRhdHRhY2htZW50czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYXZlIGF0dGFjaG1lbnRzIGluIGEgZm9sZGVyCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhdHRhY2hfZGlyIGRpcmVjdG9yeQorICAgICAqIEBwYXJhbSBib29sICRpbmNsdWRlX2lubGluZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGZpbGVuYW1lU3RyYXRlZ3kgSG93IHRvIGdlbmVyYXRlIGF0dGFjaG1lbnQgZmlsZW5hbWVzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5IFNhdmVkIGF0dGFjaG1lbnRzIHBhdGhzCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZUF0dGFjaG1lbnRzKAorICAgICAgICAkYXR0YWNoX2RpciwKKyAgICAgICAgJGluY2x1ZGVfaW5saW5lID0gdHJ1ZSwKKyAgICAgICAgJGZpbGVuYW1lU3RyYXRlZ3kgPSBzZWxmOjpBVFRBQ0hNRU5UX0RVUExJQ0FURV9TVUZGSVgKKyAgICApIHsKKyAgICAgICAgJGF0dGFjaG1lbnRzID0gJHRoaXMtPmdldEF0dGFjaG1lbnRzKCRpbmNsdWRlX2lubGluZSk7CisKKyAgICAgICAgJGF0dGFjaG1lbnRzX3BhdGhzID0gW107CisgICAgICAgIGZvcmVhY2ggKCRhdHRhY2htZW50cyBhcyAkYXR0YWNobWVudCkgeworICAgICAgICAgICAgJGF0dGFjaG1lbnRzX3BhdGhzW10gPSAkYXR0YWNobWVudC0+c2F2ZSgkYXR0YWNoX2RpciwgJGZpbGVuYW1lU3RyYXRlZ3kpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRhdHRhY2htZW50c19wYXRoczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBhdHRhY2htZW50IEJvZHkgYW5kIHNhdmUgdGVtcG9yYXJ5IGZpbGUgcmVzb3VyY2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFydAorICAgICAqCisgICAgICogQHJldHVybiByZXNvdXJjZSBNaW1lIEJvZHkgUGFydAorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEF0dGFjaG1lbnRTdHJlYW0oJiRwYXJ0KQorICAgIHsKKyAgICAgICAgLyoqIEB2YXIgcmVzb3VyY2UgJHRlbXBfZnAgKi8KKyAgICAgICAgJHRlbXBfZnAgPSB0bXBmaWxlKCk7CisKKyAgICAgICAgJGhlYWRlcnMgPSAkdGhpcy0+Z2V0UGFydCgnaGVhZGVycycsICRwYXJ0KTsKKyAgICAgICAgJGVuY29kaW5nVHlwZSA9IGFycmF5X2tleV9leGlzdHMoJ2NvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcnLCAkaGVhZGVycykgPworICAgICAgICAgICAgJGhlYWRlcnNbJ2NvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcnXSA6ICcnOworCisgICAgICAgIGlmICgkdGVtcF9mcCkgeworICAgICAgICAgICAgaWYgKCR0aGlzLT5zdHJlYW0pIHsKKyAgICAgICAgICAgICAgICAkc3RhcnQgPSAkcGFydFsnc3RhcnRpbmctcG9zLWJvZHknXTsKKyAgICAgICAgICAgICAgICAkZW5kID0gJHBhcnRbJ2VuZGluZy1wb3MtYm9keSddOworICAgICAgICAgICAgICAgIGZzZWVrKCR0aGlzLT5zdHJlYW0sICRzdGFydCwgU0VFS19TRVQpOworICAgICAgICAgICAgICAgICRsZW4gPSAkZW5kIC0gJHN0YXJ0OworICAgICAgICAgICAgICAgICR3cml0dGVuID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoJHdyaXR0ZW4gPCAkbGVuKSB7CisgICAgICAgICAgICAgICAgICAgICR3cml0ZSA9ICRsZW47CisgICAgICAgICAgICAgICAgICAgICRkYXRhID0gZnJlYWQoJHRoaXMtPnN0cmVhbSwgJHdyaXRlKTsKKyAgICAgICAgICAgICAgICAgICAgZndyaXRlKCR0ZW1wX2ZwLCAkdGhpcy0+ZGVjb2RlQ29udGVudFRyYW5zZmVyKCRkYXRhLCAkZW5jb2RpbmdUeXBlKSk7CisgICAgICAgICAgICAgICAgICAgICR3cml0dGVuICs9ICR3cml0ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2VpZiAoJHRoaXMtPmRhdGEpIHsKKyAgICAgICAgICAgICAgICAkYXR0YWNobWVudCA9ICR0aGlzLT5kZWNvZGVDb250ZW50VHJhbnNmZXIoJHRoaXMtPmdldFBhcnRCb2R5RnJvbVRleHQoJHBhcnQpLCAkZW5jb2RpbmdUeXBlKTsKKyAgICAgICAgICAgICAgICBmd3JpdGUoJHRlbXBfZnAsICRhdHRhY2htZW50LCBzdHJsZW4oJGF0dGFjaG1lbnQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZzZWVrKCR0ZW1wX2ZwLCAwLCBTRUVLX1NFVCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdDb3VsZCBub3QgY3JlYXRlIHRlbXBvcmFyeSBmaWxlcyBmb3IgYXR0YWNobWVudHMuIFlvdXIgdG1wIGRpcmVjdG9yeSBtYXkgYmUgdW53cml0YWJsZSBieSBQSFAuJworICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGVtcF9mcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgdGhlIHN0cmluZyBmcm9tIENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kZWRTdHJpbmcgVGhlIHN0cmluZyBpbiBpdHMgb3JpZ2luYWwgZW5jb2RlZCBzdGF0ZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kaW5nVHlwZSAgVGhlIGVuY29kaW5nIHR5cGUgZnJvbSB0aGUgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZyBoZWFkZXIgb2YgdGhlIHBhcnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgZGVjb2RlZCBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZGVjb2RlQ29udGVudFRyYW5zZmVyKCRlbmNvZGVkU3RyaW5nLCAkZW5jb2RpbmdUeXBlKQorICAgIHsKKyAgICAgICAgaWYgKGlzX2FycmF5KCRlbmNvZGluZ1R5cGUpKSB7CisgICAgICAgICAgICAkZW5jb2RpbmdUeXBlID0gJGVuY29kaW5nVHlwZVswXTsKKyAgICAgICAgfQorCisgICAgICAgICRlbmNvZGluZ1R5cGUgPSBzdHJ0b2xvd2VyKCRlbmNvZGluZ1R5cGUpOworICAgICAgICBpZiAoJGVuY29kaW5nVHlwZSA9PSAnYmFzZTY0JykgeworICAgICAgICAgICAgcmV0dXJuIGJhc2U2NF9kZWNvZGUoJGVuY29kZWRTdHJpbmcpOworICAgICAgICB9IGVsc2VpZiAoJGVuY29kaW5nVHlwZSA9PSAncXVvdGVkLXByaW50YWJsZScpIHsKKyAgICAgICAgICAgIHJldHVybiBxdW90ZWRfcHJpbnRhYmxlX2RlY29kZSgkZW5jb2RlZFN0cmluZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJGVuY29kZWRTdHJpbmc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAkaW5wdXQgY2FuIGJlIGEgc3RyaW5nIG9yIGFycmF5CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nfGFycmF5ICRpbnB1dAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZGVjb2RlSGVhZGVyKCRpbnB1dCkKKyAgICB7CisgICAgICAgIC8vU29tZXRpbWVzIHdlIGhhdmUgMiBsYWJlbCBGcm9tIHNvIHdlIHRha2Ugb25seSB0aGUgZmlyc3QKKyAgICAgICAgaWYgKGlzX2FycmF5KCRpbnB1dCkpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZGVjb2RlU2luZ2xlSGVhZGVyKCRpbnB1dFswXSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPmRlY29kZVNpbmdsZUhlYWRlcigkaW5wdXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY29kZXMgYSBzaW5nbGUgaGVhZGVyICg9IHN0cmluZykKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGlucHV0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBkZWNvZGVTaW5nbGVIZWFkZXIoJGlucHV0KQorICAgIHsKKyAgICAgICAgLy8gRm9yIGVhY2ggZW5jb2RlZC13b3JkLi4uCisgICAgICAgIHdoaWxlIChwcmVnX21hdGNoKCcvKD1cPyhbXj9dKylcPyhxfGIpXD8oW14/XSopXD89KSgoXHMrKT1cPyk/L2knLCAkaW5wdXQsICRtYXRjaGVzKSkgeworICAgICAgICAgICAgJGVuY29kZWQgPSAkbWF0Y2hlc1sxXTsKKyAgICAgICAgICAgICRjaGFyc2V0ID0gJG1hdGNoZXNbMl07CisgICAgICAgICAgICAkZW5jb2RpbmcgPSAkbWF0Y2hlc1szXTsKKyAgICAgICAgICAgICR0ZXh0ID0gJG1hdGNoZXNbNF07CisgICAgICAgICAgICAkc3BhY2UgPSBpc3NldCgkbWF0Y2hlc1s2XSkgPyAkbWF0Y2hlc1s2XSA6ICcnOworCisgICAgICAgICAgICBzd2l0Y2ggKHN0cnRvbG93ZXIoJGVuY29kaW5nKSkgeworICAgICAgICAgICAgICAgIGNhc2UgJ2InOgorICAgICAgICAgICAgICAgICAgICAkdGV4dCA9ICR0aGlzLT5kZWNvZGVDb250ZW50VHJhbnNmZXIoJHRleHQsICdiYXNlNjQnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlICdxJzoKKyAgICAgICAgICAgICAgICAgICAgJHRleHQgPSBzdHJfcmVwbGFjZSgnXycsICcgJywgJHRleHQpOworICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgnLz0oW2EtZjAtOV17Mn0pL2knLCAkdGV4dCwgJG1hdGNoZXMpOworICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkbWF0Y2hlc1sxXSBhcyAkdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoJz0nLiR2YWx1ZSwgY2hyKGhleGRlYygkdmFsdWUpKSwgJHRleHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkdGV4dCA9ICR0aGlzLT5jaGFyc2V0LT5kZWNvZGVDaGFyc2V0KCR0ZXh0LCAkdGhpcy0+Y2hhcnNldC0+Z2V0Q2hhcnNldEFsaWFzKCRjaGFyc2V0KSk7CisgICAgICAgICAgICAkaW5wdXQgPSBzdHJfcmVwbGFjZSgkZW5jb2RlZC4kc3BhY2UsICR0ZXh0LCAkaW5wdXQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRpbnB1dDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJzZXQgb2YgdGhlIE1JTUUgcGFydAorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJ0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRQYXJ0Q2hhcnNldCgkcGFydCkKKyAgICB7CisgICAgICAgIGlmIChpc3NldCgkcGFydFsnY2hhcnNldCddKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5jaGFyc2V0LT5nZXRDaGFyc2V0QWxpYXMoJHBhcnRbJ2NoYXJzZXQnXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJ3VzLWFzY2lpJzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgc3BlY2lmaWVkIE1JTUUgcGFydAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkdHlwZQorICAgICAqIEBwYXJhbSBhcnJheSAgJHBhcnRzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZ3xhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRQYXJ0KCR0eXBlLCAkcGFydHMpCisgICAgeworICAgICAgICByZXR1cm4gKGlzc2V0KCRwYXJ0c1skdHlwZV0pKSA/ICRwYXJ0c1skdHlwZV0gOiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgQm9keSBvZiBhIE1JTUUgcGFydAorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRwYXJ0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRQYXJ0Qm9keSgmJHBhcnQpCisgICAgeworICAgICAgICAkYm9keSA9ICcnOworICAgICAgICBpZiAoJHRoaXMtPnN0cmVhbSkgeworICAgICAgICAgICAgJGJvZHkgPSAkdGhpcy0+Z2V0UGFydEJvZHlGcm9tRmlsZSgkcGFydCk7CisgICAgICAgIH0gZWxzZWlmICgkdGhpcy0+ZGF0YSkgeworICAgICAgICAgICAgJGJvZHkgPSAkdGhpcy0+Z2V0UGFydEJvZHlGcm9tVGV4dCgkcGFydCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGJvZHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIEJvZHkgZnJvbSBhIE1JTUUgcGFydCBmcm9tIGZpbGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFydAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgTWltZSBCb2R5IFBhcnQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UGFydEJvZHlGcm9tRmlsZSgmJHBhcnQpCisgICAgeworICAgICAgICAkc3RhcnQgPSAkcGFydFsnc3RhcnRpbmctcG9zLWJvZHknXTsKKyAgICAgICAgJGVuZCA9ICRwYXJ0WydlbmRpbmctcG9zLWJvZHknXTsKKyAgICAgICAgJGJvZHkgPSAnJzsKKyAgICAgICAgaWYgKCRlbmQgLSAkc3RhcnQgPiAwKSB7CisgICAgICAgICAgICBmc2VlaygkdGhpcy0+c3RyZWFtLCAkc3RhcnQsIFNFRUtfU0VUKTsKKyAgICAgICAgICAgICRib2R5ID0gZnJlYWQoJHRoaXMtPnN0cmVhbSwgJGVuZCAtICRzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGJvZHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIEJvZHkgZnJvbSBhIE1JTUUgcGFydCBmcm9tIHRleHQKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFydAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgTWltZSBCb2R5IFBhcnQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0UGFydEJvZHlGcm9tVGV4dCgmJHBhcnQpCisgICAgeworICAgICAgICAkc3RhcnQgPSAkcGFydFsnc3RhcnRpbmctcG9zLWJvZHknXTsKKyAgICAgICAgJGVuZCA9ICRwYXJ0WydlbmRpbmctcG9zLWJvZHknXTsKKworICAgICAgICByZXR1cm4gc3Vic3RyKCR0aGlzLT5kYXRhLCAkc3RhcnQsICRlbmQgLSAkc3RhcnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBjb250ZW50IG9mIGEgTUlNRSBwYXJ0CisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFBhcnRDb21wbGV0ZSgmJHBhcnQpCisgICAgeworICAgICAgICAkYm9keSA9ICcnOworICAgICAgICBpZiAoJHRoaXMtPnN0cmVhbSkgeworICAgICAgICAgICAgJGJvZHkgPSAkdGhpcy0+Z2V0UGFydEZyb21GaWxlKCRwYXJ0KTsKKyAgICAgICAgfSBlbHNlaWYgKCR0aGlzLT5kYXRhKSB7CisgICAgICAgICAgICAkYm9keSA9ICR0aGlzLT5nZXRQYXJ0RnJvbVRleHQoJHBhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRib2R5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBjb250ZW50IGZyb20gYSBNSU1FIHBhcnQgZnJvbSBmaWxlCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIE1pbWUgQ29udGVudAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRQYXJ0RnJvbUZpbGUoJiRwYXJ0KQorICAgIHsKKyAgICAgICAgJHN0YXJ0ID0gJHBhcnRbJ3N0YXJ0aW5nLXBvcyddOworICAgICAgICAkZW5kID0gJHBhcnRbJ2VuZGluZy1wb3MnXTsKKyAgICAgICAgJGJvZHkgPSAnJzsKKyAgICAgICAgaWYgKCRlbmQgLSAkc3RhcnQgPiAwKSB7CisgICAgICAgICAgICBmc2VlaygkdGhpcy0+c3RyZWFtLCAkc3RhcnQsIFNFRUtfU0VUKTsKKyAgICAgICAgICAgICRib2R5ID0gZnJlYWQoJHRoaXMtPnN0cmVhbSwgJGVuZCAtICRzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGJvZHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGNvbnRlbnQgZnJvbSBhIE1JTUUgcGFydCBmcm9tIHRleHQKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcGFydAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgTWltZSBDb250ZW50CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFBhcnRGcm9tVGV4dCgmJHBhcnQpCisgICAgeworICAgICAgICAkc3RhcnQgPSAkcGFydFsnc3RhcnRpbmctcG9zJ107CisgICAgICAgICRlbmQgPSAkcGFydFsnZW5kaW5nLXBvcyddOworCisgICAgICAgIHJldHVybiBzdWJzdHIoJHRoaXMtPmRhdGEsICRzdGFydCwgJGVuZCAtICRzdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIHJlc291cmNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc291cmNlIHJlc291cmNlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJlc291cmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+cmVzb3VyY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGZpbGUgcG9pbnRlciB0byBlbWFpbAorICAgICAqCisgICAgICogQHJldHVybiByZXNvdXJjZSBzdHJlYW0KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3RyZWFtKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+c3RyZWFtOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSB0ZXh0IG9mIGFuIGVtYWlsCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBkYXRhCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldERhdGEoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5kYXRhOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBwYXJ0cyBvZiBhbiBlbWFpbAorICAgICAqCisgICAgICogQHJldHVybiBhcnJheSBwYXJ0cworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRQYXJ0cygpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnBhcnRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBjaGFyc2V0IG1hbmFnZXIgb2JqZWN0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIENoYXJzZXRNYW5hZ2VyIGNoYXJzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2hhcnNldCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmNoYXJzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgbWlkZGxld2FyZSB0byB0aGUgcGFyc2VyIE1pZGRsZXdhcmVTdGFjaworICAgICAqIEVhY2ggbWlkZGxld2FyZSBpcyBpbnZva2VkIHdoZW46CisgICAgICogICBhIE1pbWVQYXJ0IGlzIHJldHJpZXZlZCBieSBtYWlscGFyc2VfbXNnX2dldF9wYXJ0X2RhdGEoKSBkdXJpbmcgJHRoaXMtPnBhcnNlKCkKKyAgICAgKiBUaGUgbWlkZGxld2FyZSB3aWxsIHJlY2VpdmUgTWltZVBhcnQgJHBhcnQgYW5kIHRoZSBuZXh0IE1pZGRsZXdhcmVTdGFjayAkbmV4dAorICAgICAqCisgICAgICogRWc6CisgICAgICoKKyAgICAgKiAkUGFyc2VyLT5hZGRNaWRkbGV3YXJlKGZ1bmN0aW9uKE1pbWVQYXJ0ICRwYXJ0LCBNaWRkbGV3YXJlU3RhY2sgJG5leHQpIHsKKyAgICAgKiAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSAkcGFydAorICAgICAqICAgICAgcmV0dXJuICRuZXh0KCRwYXJ0KTsKKyAgICAgKiB9KTsKKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYWJsZSAkbWlkZGxld2FyZSBQbGFpbiBGdW5jdGlvbiBvciBNaWRkbGV3YXJlIEluc3RhbmNlIHRvIGV4ZWN1dGUKKyAgICAgKiBAcmV0dXJuIHZvaWQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkTWlkZGxld2FyZShjYWxsYWJsZSAkbWlkZGxld2FyZSkKKyAgICB7CisgICAgICAgIGlmICghJG1pZGRsZXdhcmUgaW5zdGFuY2VvZiBNaWRkbGV3YXJlKSB7CisgICAgICAgICAgICAkbWlkZGxld2FyZSA9IG5ldyBNaWRkbGV3YXJlKCRtaWRkbGV3YXJlKTsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+bWlkZGxld2FyZVN0YWNrID0gJHRoaXMtPm1pZGRsZXdhcmVTdGFjay0+YWRkKCRtaWRkbGV3YXJlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9DT01NSVRNRU5UIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvQ09NTUlUTUVOVApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjg3ZTBkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvQ09NTUlUTUVOVApAQCAtMCwwICsxLDQ2IEBACitHUEwgQ29vcGVyYXRpb24gQ29tbWl0bWVudAorVmVyc2lvbiAxLjAKKworQmVmb3JlIGZpbGluZyBvciBjb250aW51aW5nIHRvIHByb3NlY3V0ZSBhbnkgbGVnYWwgcHJvY2VlZGluZyBvciBjbGFpbQorKG90aGVyIHRoYW4gYSBEZWZlbnNpdmUgQWN0aW9uKSBhcmlzaW5nIGZyb20gdGVybWluYXRpb24gb2YgYSBDb3ZlcmVkCitMaWNlbnNlLCB3ZSBjb21taXQgdG8gZXh0ZW5kIHRvIHRoZSBwZXJzb24gb3IgZW50aXR5ICgneW91JykgYWNjdXNlZAorb2YgdmlvbGF0aW5nIHRoZSBDb3ZlcmVkIExpY2Vuc2UgdGhlIGZvbGxvd2luZyBwcm92aXNpb25zIHJlZ2FyZGluZworY3VyZSBhbmQgcmVpbnN0YXRlbWVudCwgdGFrZW4gZnJvbSBHUEwgdmVyc2lvbiAzLiBBcyB1c2VkIGhlcmUsIHRoZQordGVybSAndGhpcyBMaWNlbnNlJyByZWZlcnMgdG8gdGhlIHNwZWNpZmljIENvdmVyZWQgTGljZW5zZSBiZWluZworZW5mb3JjZWQuCisKKyAgICBIb3dldmVyLCBpZiB5b3UgY2Vhc2UgYWxsIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UsIHRoZW4geW91cgorICAgIGxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQorICAgIHByb3Zpc2lvbmFsbHksIHVubGVzcyBhbmQgdW50aWwgdGhlIGNvcHlyaWdodCBob2xkZXIgZXhwbGljaXRseQorICAgIGFuZCBmaW5hbGx5IHRlcm1pbmF0ZXMgeW91ciBsaWNlbnNlLCBhbmQgKGIpIHBlcm1hbmVudGx5LCBpZiB0aGUKKyAgICBjb3B5cmlnaHQgaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lCisgICAgcmVhc29uYWJsZSBtZWFucyBwcmlvciB0byA2MCBkYXlzIGFmdGVyIHRoZSBjZXNzYXRpb24uCisKKyAgICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKKyAgICByZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUKKyAgICB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zLCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdQorICAgIGhhdmUgcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykKKyAgICBmcm9tIHRoYXQgY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24gcHJpb3IgdG8gMzAKKyAgICBkYXlzIGFmdGVyIHlvdXIgcmVjZWlwdCBvZiB0aGUgbm90aWNlLgorCitXZSBpbnRlbmQgdGhpcyBDb21taXRtZW50IHRvIGJlIGlycmV2b2NhYmxlLCBhbmQgYmluZGluZyBhbmQKK2VuZm9yY2VhYmxlIGFnYWluc3QgdXMgYW5kIGFzc2lnbmVlcyBvZiBvciBzdWNjZXNzb3JzIHRvIG91cgorY29weXJpZ2h0cy4KKworRGVmaW5pdGlvbnMKKworJ0NvdmVyZWQgTGljZW5zZScgbWVhbnMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIKKyhHUEx2MiksIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMi4xCisoTEdQTHYyLjEpLCBvciB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyCisoTEdQTHYyKSwgYWxsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCisnRGVmZW5zaXZlIEFjdGlvbicgbWVhbnMgYSBsZWdhbCBwcm9jZWVkaW5nIG9yIGNsYWltIHRoYXQgV2UgYnJpbmcKK2FnYWluc3QgeW91IGluIHJlc3BvbnNlIHRvIGEgcHJpb3IgcHJvY2VlZGluZyBvciBjbGFpbSBpbml0aWF0ZWQgYnkKK3lvdSBvciB5b3VyIGFmZmlsaWF0ZS4KKworJ1dlJyBtZWFucyBlYWNoIGNvbnRyaWJ1dG9yIHRvIHRoaXMgcmVwb3NpdG9yeSBhcyBvZiB0aGUgZGF0ZSBvZgoraW5jbHVzaW9uIG9mIHRoaXMgZmlsZSwgaW5jbHVkaW5nIHN1YnNpZGlhcmllcyBvZiBhIGNvcnBvcmF0ZQorY29udHJpYnV0b3IuCisKK1RoaXMgd29yayBpcyBhdmFpbGFibGUgdW5kZXIgYSBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UKKzQuMCBJbnRlcm5hdGlvbmFsIGxpY2Vuc2UgKGh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvKS4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL0xJQ0VOU0UgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxNjZjYzUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9MSUNFTlNFCkBAIC0wLDAgKzEsNTAyIEBACisgICAgICAgICAgICAgICAgICBHTlUgTEVTU0VSIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKKyAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjEsIEZlYnJ1YXJ5IDE5OTkKKworIENvcHlyaWdodCAoQykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKKyBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KKworW1RoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2VkIHZlcnNpb24gb2YgdGhlIExlc3NlciBHUEwuICBJdCBhbHNvIGNvdW50cworIGFzIHRoZSBzdWNjZXNzb3Igb2YgdGhlIEdOVSBMaWJyYXJ5IFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIsIGhlbmNlCisgdGhlIHZlcnNpb24gbnVtYmVyIDIuMS5dCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQorCisgIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIKK2ZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCitMaWNlbnNlcyBhcmUgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlCitmcmVlIHNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuCisKKyAgVGhpcyBsaWNlbnNlLCB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFwcGxpZXMgdG8gc29tZQorc3BlY2lhbGx5IGRlc2lnbmF0ZWQgc29mdHdhcmUgcGFja2FnZXMtLXR5cGljYWxseSBsaWJyYXJpZXMtLW9mIHRoZQorRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGFuZCBvdGhlciBhdXRob3JzIHdobyBkZWNpZGUgdG8gdXNlIGl0LiAgWW91CitjYW4gdXNlIGl0IHRvbywgYnV0IHdlIHN1Z2dlc3QgeW91IGZpcnN0IHRoaW5rIGNhcmVmdWxseSBhYm91dCB3aGV0aGVyCit0aGlzIGxpY2Vuc2Ugb3IgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgdGhlIGJldHRlcgorc3RyYXRlZ3kgdG8gdXNlIGluIGFueSBwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkIG9uIHRoZSBleHBsYW5hdGlvbnMgYmVsb3cuCisKKyAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20gb2YgdXNlLAorbm90IHByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdAoreW91IGhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZQorZm9yIHRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCk7IHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldAoraXQgaWYgeW91IHdhbnQgaXQ7IHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCB1c2UgcGllY2VzIG9mCitpdCBpbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGFyZSBpbmZvcm1lZCB0aGF0IHlvdSBjYW4gZG8KK3RoZXNlIHRoaW5ncy4KKworICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQgZm9yYmlkCitkaXN0cmlidXRvcnMgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVyIHRoZXNlCityaWdodHMuICBUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IKK3lvdSBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIGxpYnJhcnkgb3IgaWYgeW91IG1vZGlmeSBpdC4KKworICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJyYXJ5LCB3aGV0aGVyIGdyYXRpcworb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBnaXZlIHRoZSByZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQgd2UgZ2F2ZQoreW91LiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlIHNvdXJjZQorY29kZS4gIElmIHlvdSBsaW5rIG90aGVyIGNvZGUgd2l0aCB0aGUgbGlicmFyeSwgeW91IG11c3QgcHJvdmlkZQorY29tcGxldGUgb2JqZWN0IGZpbGVzIHRvIHRoZSByZWNpcGllbnRzLCBzbyB0aGF0IHRoZXkgY2FuIHJlbGluayB0aGVtCit3aXRoIHRoZSBsaWJyYXJ5IGFmdGVyIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZworaXQuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkga25vdyB0aGVpciByaWdodHMuCisKKyAgV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkgd2UgY29weXJpZ2h0IHRoZQorbGlicmFyeSwgYW5kICgyKSB3ZSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlLCB3aGljaCBnaXZlcyB5b3UgbGVnYWwKK3Blcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBsaWJyYXJ5LgorCisgIFRvIHByb3RlY3QgZWFjaCBkaXN0cmlidXRvciwgd2Ugd2FudCB0byBtYWtlIGl0IHZlcnkgY2xlYXIgdGhhdAordGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoZSBmcmVlIGxpYnJhcnkuICBBbHNvLCBpZiB0aGUgbGlicmFyeSBpcworbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHRoZSByZWNpcGllbnRzIHNob3VsZCBrbm93Cit0aGF0IHdoYXQgdGhleSBoYXZlIGlzIG5vdCB0aGUgb3JpZ2luYWwgdmVyc2lvbiwgc28gdGhhdCB0aGUgb3JpZ2luYWwKK2F1dGhvcidzIHJlcHV0YXRpb24gd2lsbCBub3QgYmUgYWZmZWN0ZWQgYnkgcHJvYmxlbXMgdGhhdCBtaWdodCBiZQoraW50cm9kdWNlZCBieSBvdGhlcnMuCisMCisgIEZpbmFsbHksIHNvZnR3YXJlIHBhdGVudHMgcG9zZSBhIGNvbnN0YW50IHRocmVhdCB0byB0aGUgZXhpc3RlbmNlIG9mCithbnkgZnJlZSBwcm9ncmFtLiAgV2Ugd2lzaCB0byBtYWtlIHN1cmUgdGhhdCBhIGNvbXBhbnkgY2Fubm90CitlZmZlY3RpdmVseSByZXN0cmljdCB0aGUgdXNlcnMgb2YgYSBmcmVlIHByb2dyYW0gYnkgb2J0YWluaW5nIGEKK3Jlc3RyaWN0aXZlIGxpY2Vuc2UgZnJvbSBhIHBhdGVudCBob2xkZXIuICBUaGVyZWZvcmUsIHdlIGluc2lzdCB0aGF0CithbnkgcGF0ZW50IGxpY2Vuc2Ugb2J0YWluZWQgZm9yIGEgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBtdXN0IGJlCitjb25zaXN0ZW50IHdpdGggdGhlIGZ1bGwgZnJlZWRvbSBvZiB1c2Ugc3BlY2lmaWVkIGluIHRoaXMgbGljZW5zZS4KKworICBNb3N0IEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5nIHNvbWUgbGlicmFyaWVzLCBpcyBjb3ZlcmVkIGJ5IHRoZQorb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGlzIGxpY2Vuc2UsIHRoZSBHTlUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhcHBsaWVzIHRvIGNlcnRhaW4gZGVzaWduYXRlZCBsaWJyYXJpZXMsIGFuZAoraXMgcXVpdGUgZGlmZmVyZW50IGZyb20gdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBXZSB1c2UKK3RoaXMgbGljZW5zZSBmb3IgY2VydGFpbiBsaWJyYXJpZXMgaW4gb3JkZXIgdG8gcGVybWl0IGxpbmtpbmcgdGhvc2UKK2xpYnJhcmllcyBpbnRvIG5vbi1mcmVlIHByb2dyYW1zLgorCisgIFdoZW4gYSBwcm9ncmFtIGlzIGxpbmtlZCB3aXRoIGEgbGlicmFyeSwgd2hldGhlciBzdGF0aWNhbGx5IG9yIHVzaW5nCithIHNoYXJlZCBsaWJyYXJ5LCB0aGUgY29tYmluYXRpb24gb2YgdGhlIHR3byBpcyBsZWdhbGx5IHNwZWFraW5nIGEKK2NvbWJpbmVkIHdvcmssIGEgZGVyaXZhdGl2ZSBvZiB0aGUgb3JpZ2luYWwgbGlicmFyeS4gIFRoZSBvcmRpbmFyeQorR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB0aGVyZWZvcmUgcGVybWl0cyBzdWNoIGxpbmtpbmcgb25seSBpZiB0aGUKK2VudGlyZSBjb21iaW5hdGlvbiBmaXRzIGl0cyBjcml0ZXJpYSBvZiBmcmVlZG9tLiAgVGhlIExlc3NlciBHZW5lcmFsCitQdWJsaWMgTGljZW5zZSBwZXJtaXRzIG1vcmUgbGF4IGNyaXRlcmlhIGZvciBsaW5raW5nIG90aGVyIGNvZGUgd2l0aAordGhlIGxpYnJhcnkuCisKKyAgV2UgY2FsbCB0aGlzIGxpY2Vuc2UgdGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYmVjYXVzZSBpdAorZG9lcyBMZXNzIHRvIHByb3RlY3QgdGhlIHVzZXIncyBmcmVlZG9tIHRoYW4gdGhlIG9yZGluYXJ5IEdlbmVyYWwKK1B1YmxpYyBMaWNlbnNlLiAgSXQgYWxzbyBwcm92aWRlcyBvdGhlciBmcmVlIHNvZnR3YXJlIGRldmVsb3BlcnMgTGVzcworb2YgYW4gYWR2YW50YWdlIG92ZXIgY29tcGV0aW5nIG5vbi1mcmVlIHByb2dyYW1zLiAgVGhlc2UgZGlzYWR2YW50YWdlcworYXJlIHRoZSByZWFzb24gd2UgdXNlIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtYW55CitsaWJyYXJpZXMuICBIb3dldmVyLCB0aGUgTGVzc2VyIGxpY2Vuc2UgcHJvdmlkZXMgYWR2YW50YWdlcyBpbiBjZXJ0YWluCitzcGVjaWFsIGNpcmN1bXN0YW5jZXMuCisKKyAgRm9yIGV4YW1wbGUsIG9uIHJhcmUgb2NjYXNpb25zLCB0aGVyZSBtYXkgYmUgYSBzcGVjaWFsIG5lZWQgdG8KK2VuY291cmFnZSB0aGUgd2lkZXN0IHBvc3NpYmxlIHVzZSBvZiBhIGNlcnRhaW4gbGlicmFyeSwgc28gdGhhdCBpdCBiZWNvbWVzCithIGRlLWZhY3RvIHN0YW5kYXJkLiAgVG8gYWNoaWV2ZSB0aGlzLCBub24tZnJlZSBwcm9ncmFtcyBtdXN0IGJlCithbGxvd2VkIHRvIHVzZSB0aGUgbGlicmFyeS4gIEEgbW9yZSBmcmVxdWVudCBjYXNlIGlzIHRoYXQgYSBmcmVlCitsaWJyYXJ5IGRvZXMgdGhlIHNhbWUgam9iIGFzIHdpZGVseSB1c2VkIG5vbi1mcmVlIGxpYnJhcmllcy4gIEluIHRoaXMKK2Nhc2UsIHRoZXJlIGlzIGxpdHRsZSB0byBnYWluIGJ5IGxpbWl0aW5nIHRoZSBmcmVlIGxpYnJhcnkgdG8gZnJlZQorc29mdHdhcmUgb25seSwgc28gd2UgdXNlIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKworICBJbiBvdGhlciBjYXNlcywgcGVybWlzc2lvbiB0byB1c2UgYSBwYXJ0aWN1bGFyIGxpYnJhcnkgaW4gbm9uLWZyZWUKK3Byb2dyYW1zIGVuYWJsZXMgYSBncmVhdGVyIG51bWJlciBvZiBwZW9wbGUgdG8gdXNlIGEgbGFyZ2UgYm9keSBvZgorZnJlZSBzb2Z0d2FyZS4gIEZvciBleGFtcGxlLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgR05VIEMgTGlicmFyeSBpbgorbm9uLWZyZWUgcHJvZ3JhbXMgZW5hYmxlcyBtYW55IG1vcmUgcGVvcGxlIHRvIHVzZSB0aGUgd2hvbGUgR05VCitvcGVyYXRpbmcgc3lzdGVtLCBhcyB3ZWxsIGFzIGl0cyB2YXJpYW50LCB0aGUgR05VL0xpbnV4IG9wZXJhdGluZworc3lzdGVtLgorCisgIEFsdGhvdWdoIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBMZXNzIHByb3RlY3RpdmUgb2YgdGhlCit1c2VycycgZnJlZWRvbSwgaXQgZG9lcyBlbnN1cmUgdGhhdCB0aGUgdXNlciBvZiBhIHByb2dyYW0gdGhhdCBpcworbGlua2VkIHdpdGggdGhlIExpYnJhcnkgaGFzIHRoZSBmcmVlZG9tIGFuZCB0aGUgd2hlcmV3aXRoYWwgdG8gcnVuCit0aGF0IHByb2dyYW0gdXNpbmcgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBMaWJyYXJ5LgorCisgIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCittb2RpZmljYXRpb24gZm9sbG93LiAgUGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEKKyJ3b3JrIGJhc2VkIG9uIHRoZSBsaWJyYXJ5IiBhbmQgYSAid29yayB0aGF0IHVzZXMgdGhlIGxpYnJhcnkiLiAgVGhlCitmb3JtZXIgY29udGFpbnMgY29kZSBkZXJpdmVkIGZyb20gdGhlIGxpYnJhcnksIHdoZXJlYXMgdGhlIGxhdHRlciBtdXN0CitiZSBjb21iaW5lZCB3aXRoIHRoZSBsaWJyYXJ5IGluIG9yZGVyIHRvIHJ1bi4KKwwKKyAgICAgICAgICAgICAgICAgIEdOVSBMRVNTRVIgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCisKKyAgMC4gVGhpcyBMaWNlbnNlIEFncmVlbWVudCBhcHBsaWVzIHRvIGFueSBzb2Z0d2FyZSBsaWJyYXJ5IG9yIG90aGVyCitwcm9ncmFtIHdoaWNoIGNvbnRhaW5zIGEgbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBvcgorb3RoZXIgYXV0aG9yaXplZCBwYXJ0eSBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZgordGhpcyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoYWxzbyBjYWxsZWQgInRoaXMgTGljZW5zZSIpLgorRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuCisKKyAgQSAibGlicmFyeSIgbWVhbnMgYSBjb2xsZWN0aW9uIG9mIHNvZnR3YXJlIGZ1bmN0aW9ucyBhbmQvb3IgZGF0YQorcHJlcGFyZWQgc28gYXMgdG8gYmUgY29udmVuaWVudGx5IGxpbmtlZCB3aXRoIGFwcGxpY2F0aW9uIHByb2dyYW1zCisod2hpY2ggdXNlIHNvbWUgb2YgdGhvc2UgZnVuY3Rpb25zIGFuZCBkYXRhKSB0byBmb3JtIGV4ZWN1dGFibGVzLgorCisgIFRoZSAiTGlicmFyeSIsIGJlbG93LCByZWZlcnMgdG8gYW55IHN1Y2ggc29mdHdhcmUgbGlicmFyeSBvciB3b3JrCit3aGljaCBoYXMgYmVlbiBkaXN0cmlidXRlZCB1bmRlciB0aGVzZSB0ZXJtcy4gIEEgIndvcmsgYmFzZWQgb24gdGhlCitMaWJyYXJ5IiBtZWFucyBlaXRoZXIgdGhlIExpYnJhcnkgb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlcgorY29weXJpZ2h0IGxhdzogdGhhdCBpcyB0byBzYXksIGEgd29yayBjb250YWluaW5nIHRoZSBMaWJyYXJ5IG9yIGEKK3BvcnRpb24gb2YgaXQsIGVpdGhlciB2ZXJiYXRpbSBvciB3aXRoIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQKK3N0cmFpZ2h0Zm9yd2FyZGx5IGludG8gYW5vdGhlciBsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMKK2luY2x1ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbiB0aGUgdGVybSAibW9kaWZpY2F0aW9uIi4pCisKKyAgIlNvdXJjZSBjb2RlIiBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IKK21ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGEgbGlicmFyeSwgY29tcGxldGUgc291cmNlIGNvZGUgbWVhbnMKK2FsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueSBhc3NvY2lhdGVkCitpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcywgcGx1cyB0aGUgc2NyaXB0cyB1c2VkIHRvIGNvbnRyb2wgY29tcGlsYXRpb24KK2FuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGxpYnJhcnkuCisKKyAgQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKK2NvdmVyZWQgYnkgdGhpcyBMaWNlbnNlOyB0aGV5IGFyZSBvdXRzaWRlIGl0cyBzY29wZS4gIFRoZSBhY3Qgb2YKK3J1bm5pbmcgYSBwcm9ncmFtIHVzaW5nIHRoZSBMaWJyYXJ5IGlzIG5vdCByZXN0cmljdGVkLCBhbmQgb3V0cHV0IGZyb20KK3N1Y2ggYSBwcm9ncmFtIGlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQKK29uIHRoZSBMaWJyYXJ5IChpbmRlcGVuZGVudCBvZiB0aGUgdXNlIG9mIHRoZSBMaWJyYXJ5IGluIGEgdG9vbCBmb3IKK3dyaXRpbmcgaXQpLiAgV2hldGhlciB0aGF0IGlzIHRydWUgZGVwZW5kcyBvbiB3aGF0IHRoZSBMaWJyYXJ5IGRvZXMKK2FuZCB3aGF0IHRoZSBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgTGlicmFyeSBkb2VzLgorCisgIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIExpYnJhcnkncworY29tcGxldGUgc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQKK3lvdSBjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuCithcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdAorYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkKK3dhcnJhbnR5OyBhbmQgZGlzdHJpYnV0ZSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggdGhlCitMaWJyYXJ5LgorCisgIFlvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksCithbmQgeW91IG1heSBhdCB5b3VyIG9wdGlvbiBvZmZlciB3YXJyYW50eSBwcm90ZWN0aW9uIGluIGV4Y2hhbmdlIGZvciBhCitmZWUuCisMCisgIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIExpYnJhcnkgb3IgYW55IHBvcnRpb24KK29mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBhbmQgY29weSBhbmQKK2Rpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQorYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKKworICAgIGEpIFRoZSBtb2RpZmllZCB3b3JrIG11c3QgaXRzZWxmIGJlIGEgc29mdHdhcmUgbGlicmFyeS4KKworICAgIGIpIFlvdSBtdXN0IGNhdXNlIHRoZSBmaWxlcyBtb2RpZmllZCB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCisKKyAgICBjKSBZb3UgbXVzdCBjYXVzZSB0aGUgd2hvbGUgb2YgdGhlIHdvcmsgdG8gYmUgbGljZW5zZWQgYXQgbm8KKyAgICBjaGFyZ2UgdG8gYWxsIHRoaXJkIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KKworICAgIGQpIElmIGEgZmFjaWxpdHkgaW4gdGhlIG1vZGlmaWVkIExpYnJhcnkgcmVmZXJzIHRvIGEgZnVuY3Rpb24gb3IgYQorICAgIHRhYmxlIG9mIGRhdGEgdG8gYmUgc3VwcGxpZWQgYnkgYW4gYXBwbGljYXRpb24gcHJvZ3JhbSB0aGF0IHVzZXMKKyAgICB0aGUgZmFjaWxpdHksIG90aGVyIHRoYW4gYXMgYW4gYXJndW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2lsaXR5CisgICAgaXMgaW52b2tlZCwgdGhlbiB5b3UgbXVzdCBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQgdG8gZW5zdXJlIHRoYXQsCisgICAgaW4gdGhlIGV2ZW50IGFuIGFwcGxpY2F0aW9uIGRvZXMgbm90IHN1cHBseSBzdWNoIGZ1bmN0aW9uIG9yCisgICAgdGFibGUsIHRoZSBmYWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5kIHBlcmZvcm1zIHdoYXRldmVyIHBhcnQgb2YKKyAgICBpdHMgcHVycG9zZSByZW1haW5zIG1lYW5pbmdmdWwuCisKKyAgICAoRm9yIGV4YW1wbGUsIGEgZnVuY3Rpb24gaW4gYSBsaWJyYXJ5IHRvIGNvbXB1dGUgc3F1YXJlIHJvb3RzIGhhcworICAgIGEgcHVycG9zZSB0aGF0IGlzIGVudGlyZWx5IHdlbGwtZGVmaW5lZCBpbmRlcGVuZGVudCBvZiB0aGUKKyAgICBhcHBsaWNhdGlvbi4gIFRoZXJlZm9yZSwgU3Vic2VjdGlvbiAyZCByZXF1aXJlcyB0aGF0IGFueQorICAgIGFwcGxpY2F0aW9uLXN1cHBsaWVkIGZ1bmN0aW9uIG9yIHRhYmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlvbiBtdXN0CisgICAgYmUgb3B0aW9uYWw6IGlmIHRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgaXQsIHRoZSBzcXVhcmUKKyAgICByb290IGZ1bmN0aW9uIG11c3Qgc3RpbGwgY29tcHV0ZSBzcXVhcmUgcm9vdHMuKQorCitUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCitpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBMaWJyYXJ5LAorYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZAorb24gdGhlIExpYnJhcnksIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlCitpdC4KKworVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0Cit5b3VyIHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8KK2V4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgorY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgTGlicmFyeS4KKworSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgTGlicmFyeQord2l0aCB0aGUgTGlicmFyeSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkpIG9uIGEgdm9sdW1lIG9mCithIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRlcgordGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KKworICAzLiBZb3UgbWF5IG9wdCB0byBhcHBseSB0aGUgdGVybXMgb2YgdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYworTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZSB0byBhIGdpdmVuIGNvcHkgb2YgdGhlIExpYnJhcnkuICBUbyBkbwordGhpcywgeW91IG11c3QgYWx0ZXIgYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlLCBzbwordGhhdCB0aGV5IHJlZmVyIHRvIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLAoraW5zdGVhZCBvZiB0byB0aGlzIExpY2Vuc2UuICAoSWYgYSBuZXdlciB2ZXJzaW9uIHRoYW4gdmVyc2lvbiAyIG9mIHRoZQorb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBjYW4gc3BlY2lmeQordGhhdCB2ZXJzaW9uIGluc3RlYWQgaWYgeW91IHdpc2guKSAgRG8gbm90IG1ha2UgYW55IG90aGVyIGNoYW5nZSBpbgordGhlc2Ugbm90aWNlcy4KKwwKKyAgT25jZSB0aGlzIGNoYW5nZSBpcyBtYWRlIGluIGEgZ2l2ZW4gY29weSwgaXQgaXMgaXJyZXZlcnNpYmxlIGZvcgordGhhdCBjb3B5LCBzbyB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBhbGwKK3N1YnNlcXVlbnQgY29waWVzIGFuZCBkZXJpdmF0aXZlIHdvcmtzIG1hZGUgZnJvbSB0aGF0IGNvcHkuCisKKyAgVGhpcyBvcHRpb24gaXMgdXNlZnVsIHdoZW4geW91IHdpc2ggdG8gY29weSBwYXJ0IG9mIHRoZSBjb2RlIG9mCit0aGUgTGlicmFyeSBpbnRvIGEgcHJvZ3JhbSB0aGF0IGlzIG5vdCBhIGxpYnJhcnkuCisKKyAgNC4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhIHBvcnRpb24gb3IKK2Rlcml2YXRpdmUgb2YgaXQsIHVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtCit1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhY2NvbXBhbnkKK2l0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSwgd2hpY2gKK211c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYQorbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgorCisgIElmIGRpc3RyaWJ1dGlvbiBvZiBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5Citmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50IGFjY2VzcyB0byBjb3B5IHRoZQorc291cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50IHRvCitkaXN0cmlidXRlIHRoZSBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhpcmQgcGFydGllcyBhcmUgbm90Citjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgorCisgIDUuIEEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUgb2YgYW55IHBvcnRpb24gb2YgdGhlCitMaWJyYXJ5LCBidXQgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIHRoZSBMaWJyYXJ5IGJ5IGJlaW5nIGNvbXBpbGVkIG9yCitsaW5rZWQgd2l0aCBpdCwgaXMgY2FsbGVkIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5Ii4gIFN1Y2ggYQord29yaywgaW4gaXNvbGF0aW9uLCBpcyBub3QgYSBkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnksIGFuZAordGhlcmVmb3JlIGZhbGxzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KKworICBIb3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5CitjcmVhdGVzIGFuIGV4ZWN1dGFibGUgdGhhdCBpcyBhIGRlcml2YXRpdmUgb2YgdGhlIExpYnJhcnkgKGJlY2F1c2UgaXQKK2NvbnRhaW5zIHBvcnRpb25zIG9mIHRoZSBMaWJyYXJ5KSwgcmF0aGVyIHRoYW4gYSAid29yayB0aGF0IHVzZXMgdGhlCitsaWJyYXJ5Ii4gIFRoZSBleGVjdXRhYmxlIGlzIHRoZXJlZm9yZSBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZS4KK1NlY3Rpb24gNiBzdGF0ZXMgdGVybXMgZm9yIGRpc3RyaWJ1dGlvbiBvZiBzdWNoIGV4ZWN1dGFibGVzLgorCisgIFdoZW4gYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlCit0aGF0IGlzIHBhcnQgb2YgdGhlIExpYnJhcnksIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgbWF5IGJlIGEKK2Rlcml2YXRpdmUgd29yayBvZiB0aGUgTGlicmFyeSBldmVuIHRob3VnaCB0aGUgc291cmNlIGNvZGUgaXMgbm90LgorV2hldGhlciB0aGlzIGlzIHRydWUgaXMgZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4gYmUKK2xpbmtlZCB3aXRob3V0IHRoZSBMaWJyYXJ5LCBvciBpZiB0aGUgd29yayBpcyBpdHNlbGYgYSBsaWJyYXJ5LiAgVGhlCit0aHJlc2hvbGQgZm9yIHRoaXMgdG8gYmUgdHJ1ZSBpcyBub3QgcHJlY2lzZWx5IGRlZmluZWQgYnkgbGF3LgorCisgIElmIHN1Y2ggYW4gb2JqZWN0IGZpbGUgdXNlcyBvbmx5IG51bWVyaWNhbCBwYXJhbWV0ZXJzLCBkYXRhCitzdHJ1Y3R1cmUgbGF5b3V0cyBhbmQgYWNjZXNzb3JzLCBhbmQgc21hbGwgbWFjcm9zIGFuZCBzbWFsbCBpbmxpbmUKK2Z1bmN0aW9ucyAodGVuIGxpbmVzIG9yIGxlc3MgaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBvYmplY3QKK2ZpbGUgaXMgdW5yZXN0cmljdGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgbGVnYWxseSBhIGRlcml2YXRpdmUKK3dvcmsuICAoRXhlY3V0YWJsZXMgY29udGFpbmluZyB0aGlzIG9iamVjdCBjb2RlIHBsdXMgcG9ydGlvbnMgb2YgdGhlCitMaWJyYXJ5IHdpbGwgc3RpbGwgZmFsbCB1bmRlciBTZWN0aW9uIDYuKQorCisgIE90aGVyd2lzZSwgaWYgdGhlIHdvcmsgaXMgYSBkZXJpdmF0aXZlIG9mIHRoZSBMaWJyYXJ5LCB5b3UgbWF5CitkaXN0cmlidXRlIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gNi4KK0FueSBleGVjdXRhYmxlcyBjb250YWluaW5nIHRoYXQgd29yayBhbHNvIGZhbGwgdW5kZXIgU2VjdGlvbiA2LAord2hldGhlciBvciBub3QgdGhleSBhcmUgbGlua2VkIGRpcmVjdGx5IHdpdGggdGhlIExpYnJhcnkgaXRzZWxmLgorDAorICA2LiBBcyBhbiBleGNlcHRpb24gdG8gdGhlIFNlY3Rpb25zIGFib3ZlLCB5b3UgbWF5IGFsc28gY29tYmluZSBvcgorbGluayBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgd2l0aCB0aGUgTGlicmFyeSB0byBwcm9kdWNlIGEKK3dvcmsgY29udGFpbmluZyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSwgYW5kIGRpc3RyaWJ1dGUgdGhhdCB3b3JrCit1bmRlciB0ZXJtcyBvZiB5b3VyIGNob2ljZSwgcHJvdmlkZWQgdGhhdCB0aGUgdGVybXMgcGVybWl0Cittb2RpZmljYXRpb24gb2YgdGhlIHdvcmsgZm9yIHRoZSBjdXN0b21lcidzIG93biB1c2UgYW5kIHJldmVyc2UKK2VuZ2luZWVyaW5nIGZvciBkZWJ1Z2dpbmcgc3VjaCBtb2RpZmljYXRpb25zLgorCisgIFlvdSBtdXN0IGdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIGVhY2ggY29weSBvZiB0aGUgd29yayB0aGF0IHRoZQorTGlicmFyeSBpcyB1c2VkIGluIGl0IGFuZCB0aGF0IHRoZSBMaWJyYXJ5IGFuZCBpdHMgdXNlIGFyZSBjb3ZlcmVkIGJ5Cit0aGlzIExpY2Vuc2UuICBZb3UgbXVzdCBzdXBwbHkgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmIHRoZSB3b3JrCitkdXJpbmcgZXhlY3V0aW9uIGRpc3BsYXlzIGNvcHlyaWdodCBub3RpY2VzLCB5b3UgbXVzdCBpbmNsdWRlIHRoZQorY29weXJpZ2h0IG5vdGljZSBmb3IgdGhlIExpYnJhcnkgYW1vbmcgdGhlbSwgYXMgd2VsbCBhcyBhIHJlZmVyZW5jZQorZGlyZWN0aW5nIHRoZSB1c2VyIHRvIHRoZSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIEFsc28sIHlvdSBtdXN0IGRvIG9uZQorb2YgdGhlc2UgdGhpbmdzOgorCisgICAgYSkgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcKKyAgICBtYWNoaW5lLXJlYWRhYmxlIHNvdXJjZSBjb2RlIGZvciB0aGUgTGlicmFyeSBpbmNsdWRpbmcgd2hhdGV2ZXIKKyAgICBjaGFuZ2VzIHdlcmUgdXNlZCBpbiB0aGUgd29yayAod2hpY2ggbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlcgorICAgIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUpOyBhbmQsIGlmIHRoZSB3b3JrIGlzIGFuIGV4ZWN1dGFibGUgbGlua2VkCisgICAgd2l0aCB0aGUgTGlicmFyeSwgd2l0aCB0aGUgY29tcGxldGUgbWFjaGluZS1yZWFkYWJsZSAid29yayB0aGF0CisgICAgdXNlcyB0aGUgTGlicmFyeSIsIGFzIG9iamVjdCBjb2RlIGFuZC9vciBzb3VyY2UgY29kZSwgc28gdGhhdCB0aGUKKyAgICB1c2VyIGNhbiBtb2RpZnkgdGhlIExpYnJhcnkgYW5kIHRoZW4gcmVsaW5rIHRvIHByb2R1Y2UgYSBtb2RpZmllZAorICAgIGV4ZWN1dGFibGUgY29udGFpbmluZyB0aGUgbW9kaWZpZWQgTGlicmFyeS4gIChJdCBpcyB1bmRlcnN0b29kCisgICAgdGhhdCB0aGUgdXNlciB3aG8gY2hhbmdlcyB0aGUgY29udGVudHMgb2YgZGVmaW5pdGlvbnMgZmlsZXMgaW4gdGhlCisgICAgTGlicmFyeSB3aWxsIG5vdCBuZWNlc3NhcmlseSBiZSBhYmxlIHRvIHJlY29tcGlsZSB0aGUgYXBwbGljYXRpb24KKyAgICB0byB1c2UgdGhlIG1vZGlmaWVkIGRlZmluaXRpb25zLikKKworICAgIGIpIFVzZSBhIHN1aXRhYmxlIHNoYXJlZCBsaWJyYXJ5IG1lY2hhbmlzbSBmb3IgbGlua2luZyB3aXRoIHRoZQorICAgIExpYnJhcnkuICBBIHN1aXRhYmxlIG1lY2hhbmlzbSBpcyBvbmUgdGhhdCAoMSkgdXNlcyBhdCBydW4gdGltZSBhCisgICAgY29weSBvZiB0aGUgbGlicmFyeSBhbHJlYWR5IHByZXNlbnQgb24gdGhlIHVzZXIncyBjb21wdXRlciBzeXN0ZW0sCisgICAgcmF0aGVyIHRoYW4gY29weWluZyBsaWJyYXJ5IGZ1bmN0aW9ucyBpbnRvIHRoZSBleGVjdXRhYmxlLCBhbmQgKDIpCisgICAgd2lsbCBvcGVyYXRlIHByb3Blcmx5IHdpdGggYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCBpZgorICAgIHRoZSB1c2VyIGluc3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUgbW9kaWZpZWQgdmVyc2lvbiBpcworICAgIGludGVyZmFjZS1jb21wYXRpYmxlIHdpdGggdGhlIHZlcnNpb24gdGhhdCB0aGUgd29yayB3YXMgbWFkZSB3aXRoLgorCisgICAgYykgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQKKyAgICBsZWFzdCB0aHJlZSB5ZWFycywgdG8gZ2l2ZSB0aGUgc2FtZSB1c2VyIHRoZSBtYXRlcmlhbHMKKyAgICBzcGVjaWZpZWQgaW4gU3Vic2VjdGlvbiA2YSwgYWJvdmUsIGZvciBhIGNoYXJnZSBubyBtb3JlCisgICAgdGhhbiB0aGUgY29zdCBvZiBwZXJmb3JtaW5nIHRoaXMgZGlzdHJpYnV0aW9uLgorCisgICAgZCkgSWYgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIHRvIGNvcHkKKyAgICBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29weSB0aGUgYWJvdmUKKyAgICBzcGVjaWZpZWQgbWF0ZXJpYWxzIGZyb20gdGhlIHNhbWUgcGxhY2UuCisKKyAgICBlKSBWZXJpZnkgdGhhdCB0aGUgdXNlciBoYXMgYWxyZWFkeSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlc2UKKyAgICBtYXRlcmlhbHMgb3IgdGhhdCB5b3UgaGF2ZSBhbHJlYWR5IHNlbnQgdGhpcyB1c2VyIGEgY29weS4KKworICBGb3IgYW4gZXhlY3V0YWJsZSwgdGhlIHJlcXVpcmVkIGZvcm0gb2YgdGhlICJ3b3JrIHRoYXQgdXNlcyB0aGUKK0xpYnJhcnkiIG11c3QgaW5jbHVkZSBhbnkgZGF0YSBhbmQgdXRpbGl0eSBwcm9ncmFtcyBuZWVkZWQgZm9yCityZXByb2R1Y2luZyB0aGUgZXhlY3V0YWJsZSBmcm9tIGl0LiAgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwKK3RoZSBtYXRlcmlhbHMgdG8gYmUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IGlzCitub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkgZm9ybSkgd2l0aCB0aGUgbWFqb3IKK2NvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gb24KK3doaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudCBpdHNlbGYgYWNjb21wYW5pZXMKK3RoZSBleGVjdXRhYmxlLgorCisgIEl0IG1heSBoYXBwZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRpY3RzIHRoZSBsaWNlbnNlCityZXN0cmljdGlvbnMgb2Ygb3RoZXIgcHJvcHJpZXRhcnkgbGlicmFyaWVzIHRoYXQgZG8gbm90IG5vcm1hbGx5CithY2NvbXBhbnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uICBTdWNoIGEgY29udHJhZGljdGlvbiBtZWFucyB5b3UgY2Fubm90Cit1c2UgYm90aCB0aGVtIGFuZCB0aGUgTGlicmFyeSB0b2dldGhlciBpbiBhbiBleGVjdXRhYmxlIHRoYXQgeW91CitkaXN0cmlidXRlLgorDAorICA3LiBZb3UgbWF5IHBsYWNlIGxpYnJhcnkgZmFjaWxpdGllcyB0aGF0IGFyZSBhIHdvcmsgYmFzZWQgb24gdGhlCitMaWJyYXJ5IHNpZGUtYnktc2lkZSBpbiBhIHNpbmdsZSBsaWJyYXJ5IHRvZ2V0aGVyIHdpdGggb3RoZXIgbGlicmFyeQorZmFjaWxpdGllcyBub3QgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHN1Y2ggYSBjb21iaW5lZAorbGlicmFyeSwgcHJvdmlkZWQgdGhhdCB0aGUgc2VwYXJhdGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGJhc2VkIG9uCit0aGUgTGlicmFyeSBhbmQgb2YgdGhlIG90aGVyIGxpYnJhcnkgZmFjaWxpdGllcyBpcyBvdGhlcndpc2UKK3Blcm1pdHRlZCwgYW5kIHByb3ZpZGVkIHRoYXQgeW91IGRvIHRoZXNlIHR3byB0aGluZ3M6CisKKyAgICBhKSBBY2NvbXBhbnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2YgdGhlIHNhbWUgd29yaworICAgIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCB1bmNvbWJpbmVkIHdpdGggYW55IG90aGVyIGxpYnJhcnkKKyAgICBmYWNpbGl0aWVzLiAgVGhpcyBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKKyAgICBTZWN0aW9ucyBhYm92ZS4KKworICAgIGIpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIHRoZSBjb21iaW5lZCBsaWJyYXJ5IG9mIHRoZSBmYWN0CisgICAgdGhhdCBwYXJ0IG9mIGl0IGlzIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwgYW5kIGV4cGxhaW5pbmcKKyAgICB3aGVyZSB0byBmaW5kIHRoZSBhY2NvbXBhbnlpbmcgdW5jb21iaW5lZCBmb3JtIG9mIHRoZSBzYW1lIHdvcmsuCisKKyAgOC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yIGRpc3RyaWJ1dGUKK3RoZSBMaWJyYXJ5IGV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55CithdHRlbXB0IG90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3IKK2Rpc3RyaWJ1dGUgdGhlIExpYnJhcnkgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91cgorcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4gIEhvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLAorb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlciB0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcwordGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2ggcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorCisgIDkuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdAorc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKK2Rpc3RyaWJ1dGUgdGhlIExpYnJhcnkgb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQorcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQorbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitMaWJyYXJ5KSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZAorYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwordGhlIExpYnJhcnkgb3Igd29ya3MgYmFzZWQgb24gaXQuCisKKyAgMTAuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKK0xpYnJhcnkpLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlCitvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlLCBsaW5rIHdpdGggb3IgbW9kaWZ5IHRoZSBMaWJyYXJ5CitzdWJqZWN0IHRvIHRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCityZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCitZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3aXRoCit0aGlzIExpY2Vuc2UuCisMCisgIDExLiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CitpbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLAorY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgorb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdAorZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKK2Rpc3RyaWJ1dGUgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKK0xpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKK21heSBub3QgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKK2xpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24gb2YgdGhlIExpYnJhcnkgYnkKK2FsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgordGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bworcmVmcmFpbiBlbnRpcmVseSBmcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeS4KKworSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFueQorcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvIGFwcGx5LAorYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIgY2lyY3Vtc3RhbmNlcy4KKworSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQorcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkKK3N1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKK2ludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtIHdoaWNoIGlzCitpbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKK2dlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKK3Rocm91Z2ggdGhhdCBzeXN0ZW0gaW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CitzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCit0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKK2ltcG9zZSB0aGF0IGNob2ljZS4KKworVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCitiZSBhIGNvbnNlcXVlbmNlIG9mIHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KKworICAxMi4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBMaWJyYXJ5IGlzIHJlc3RyaWN0ZWQgaW4KK2NlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQorb3JpZ2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBMaWJyYXJ5IHVuZGVyIHRoaXMgTGljZW5zZSBtYXkgYWRkCithbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nIHRob3NlIGNvdW50cmllcywKK3NvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nIGNvdW50cmllcyBub3QgdGh1cworZXhjbHVkZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMgdGhlIGxpbWl0YXRpb24gYXMgaWYKK3dyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgorCisgIDEzLiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldwordmVyc2lvbnMgb2YgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLgorU3VjaCBuZXcgdmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLAorYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgorCitFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZSBMaWJyYXJ5CitzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQKKyJhbnkgbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQKK2NvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkKK3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgTGlicmFyeSBkb2VzIG5vdCBzcGVjaWZ5IGEKK2xpY2Vuc2UgdmVyc2lvbiBudW1iZXIsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIGJ5Cit0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorDAorICAxNC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIExpYnJhcnkgaW50byBvdGhlciBmcmVlCitwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgaW5jb21wYXRpYmxlIHdpdGggdGhlc2UsCit3cml0ZSB0byB0aGUgYXV0aG9yIHRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcworY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd3JpdGUgdG8gdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcyBtYWtlIGV4Y2VwdGlvbnMgZm9yIHRoaXMuICBPdXIKK2RlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMgb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMKK29mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0d2FyZSBhbmQgb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nCithbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5LgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk8gV0FSUkFOVFkKKworICAxNS4gQkVDQVVTRSBUSEUgTElCUkFSWSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8KK1dBUlJBTlRZIEZPUiBUSEUgTElCUkFSWSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuCitFWENFUFQgV0hFTiBPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORC9PUgorT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBMSUJSQVJZICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkKK0tJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCitQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUKK0xJQlJBUlkgSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIExJQlJBUlkgUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FCitUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uCisKKyAgMTYuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4KK1dSSVRJTkcgV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNQVkgTU9ESUZZCitBTkQvT1IgUkVESVNUUklCVVRFIFRIRSBMSUJSQVJZIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVQorRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUKK0xJQlJBUlkgKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRiBEQVRBIE9SIERBVEEgQkVJTkcKK1JFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBCitGQUlMVVJFIE9GIFRIRSBMSUJSQVJZIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIgU09GVFdBUkUpLCBFVkVOIElGCitTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNICitEQU1BR0VTLgorCisgICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKwwKKyAgICAgICAgICAgSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlvdXIgTmV3IExpYnJhcmllcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IGxpYnJhcnksIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB3ZSByZWNvbW1lbmQgbWFraW5nIGl0IGZyZWUgc29mdHdhcmUgdGhhdAorZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlLiAgWW91IGNhbiBkbyBzbyBieSBwZXJtaXR0aW5nCityZWRpc3RyaWJ1dGlvbiB1bmRlciB0aGVzZSB0ZXJtcyAob3IsIGFsdGVybmF0aXZlbHksIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKK29yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UpLgorCisgIFRvIGFwcGx5IHRoZXNlIHRlcm1zLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBsaWJyYXJ5LiAgSXQgaXMKK3NhZmVzdCB0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5Citjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCB0aGUKKyJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKKyAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgbGlicmFyeSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgorICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KKworWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKK3NjaG9vbCwgaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIGxpYnJhcnksIGlmCituZWNlc3NhcnkuICBIZXJlIGlzIGEgc2FtcGxlOyBhbHRlciB0aGUgbmFtZXM6CisKKyAgWW95b2R5bmUsIEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbiB0aGUKKyAgbGlicmFyeSBgRnJvYicgKGEgbGlicmFyeSBmb3IgdHdlYWtpbmcga25vYnMpIHdyaXR0ZW4gYnkgSmFtZXMgUmFuZG9tIEhhY2tlci4KKworICA8c2lnbmF0dXJlIG9mIFR5IENvb24+LCAxIEFwcmlsIDE5OTAKKyAgVHkgQ29vbiwgUHJlc2lkZW50IG9mIFZpY2UKKworVGhhdCdzIGFsbCB0aGVyZSBpcyB0byBpdCEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9SRUFETUUubWQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI4N2UzMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL1JFQURNRS5tZApAQCAtMCwwICsxLDIyMSBAQAorIVtQSFBNYWlsZXJdKGh0dHBzOi8vcmF3LmdpdGh1Yi5jb20vUEhQTWFpbGVyL1BIUE1haWxlci9tYXN0ZXIvZXhhbXBsZXMvaW1hZ2VzL3BocG1haWxlci5wbmcpCisKKyMgUEhQTWFpbGVyIC0gQSBmdWxsLWZlYXR1cmVkIGVtYWlsIGNyZWF0aW9uIGFuZCB0cmFuc2ZlciBjbGFzcyBmb3IgUEhQCisKK0J1aWxkIHN0YXR1czogWyFbQnVpbGQgU3RhdHVzXShodHRwczovL3RyYXZpcy1jaS5vcmcvUEhQTWFpbGVyL1BIUE1haWxlci5zdmcpXShodHRwczovL3RyYXZpcy1jaS5vcmcvUEhQTWFpbGVyL1BIUE1haWxlcikKK1shW1NjcnV0aW5pemVyIFF1YWxpdHkgU2NvcmVdKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvUEhQTWFpbGVyL1BIUE1haWxlci9iYWRnZXMvcXVhbGl0eS1zY29yZS5wbmc/cz0zNzU4ZTIxZDI3OWJlY2RmODQ3YTU1N2E1NmEzZWQxNmRmZWM5ZDVkKV0oaHR0cHM6Ly9zY3J1dGluaXplci1jaS5jb20vZy9QSFBNYWlsZXIvUEhQTWFpbGVyLykKK1shW0NvZGUgQ292ZXJhZ2VdKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvUEhQTWFpbGVyL1BIUE1haWxlci9iYWRnZXMvY292ZXJhZ2UucG5nP3M9M2ZlNmNhNWZlOGNkMmNkZjk2Mjg1NzU2ZTQyOTMyZjdjYTI1Njk2MildKGh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvUEhQTWFpbGVyL1BIUE1haWxlci8pCisKK1shW0xhdGVzdCBTdGFibGUgVmVyc2lvbl0oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9waHBtYWlsZXIvcGhwbWFpbGVyL3Yvc3RhYmxlLnN2ZyldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9waHBtYWlsZXIvcGhwbWFpbGVyKSBbIVtUb3RhbCBEb3dubG9hZHNdKGh0dHBzOi8vcG9zZXIucHVneC5vcmcvcGhwbWFpbGVyL3BocG1haWxlci9kb3dubG9hZHMpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvcGhwbWFpbGVyL3BocG1haWxlcikgWyFbTGF0ZXN0IFVuc3RhYmxlIFZlcnNpb25dKGh0dHBzOi8vcG9zZXIucHVneC5vcmcvcGhwbWFpbGVyL3BocG1haWxlci92L3Vuc3RhYmxlLnN2ZyldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9waHBtYWlsZXIvcGhwbWFpbGVyKSBbIVtMaWNlbnNlXShodHRwczovL3Bvc2VyLnB1Z3gub3JnL3BocG1haWxlci9waHBtYWlsZXIvbGljZW5zZS5zdmcpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvcGhwbWFpbGVyL3BocG1haWxlcikgWyFbQVBJIERvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9waHBtYWlsZXIvcGhwbWFpbGVyL3dvcmtmbG93cy9Eb2NzL2JhZGdlLnN2ZyldKGh0dHA6Ly9waHBtYWlsZXIuZ2l0aHViLmlvL1BIUE1haWxlci8pCisKKyMjIENsYXNzIEZlYXR1cmVzCistIFByb2JhYmx5IHRoZSB3b3JsZCdzIG1vc3QgcG9wdWxhciBjb2RlIGZvciBzZW5kaW5nIGVtYWlsIGZyb20gUEhQIQorLSBVc2VkIGJ5IG1hbnkgb3Blbi1zb3VyY2UgcHJvamVjdHM6IFdvcmRQcmVzcywgRHJ1cGFsLCAxQ1JNLCBTdWdhckNSTSwgWWlpLCBKb29tbGEhIGFuZCBtYW55IG1vcmUKKy0gSW50ZWdyYXRlZCBTTVRQIHN1cHBvcnQgLSBzZW5kIHdpdGhvdXQgYSBsb2NhbCBtYWlsIHNlcnZlcgorLSBTZW5kIGVtYWlscyB3aXRoIG11bHRpcGxlIFRvLCBDQywgQkNDIGFuZCBSZXBseS10byBhZGRyZXNzZXMKKy0gTXVsdGlwYXJ0L2FsdGVybmF0aXZlIGVtYWlscyBmb3IgbWFpbCBjbGllbnRzIHRoYXQgZG8gbm90IHJlYWQgSFRNTCBlbWFpbAorLSBBZGQgYXR0YWNobWVudHMsIGluY2x1ZGluZyBpbmxpbmUKKy0gU3VwcG9ydCBmb3IgVVRGLTggY29udGVudCBhbmQgOGJpdCwgYmFzZTY0LCBiaW5hcnksIGFuZCBxdW90ZWQtcHJpbnRhYmxlIGVuY29kaW5ncworLSBTTVRQIGF1dGhlbnRpY2F0aW9uIHdpdGggTE9HSU4sIFBMQUlOLCBDUkFNLU1ENSwgYW5kIFhPQVVUSDIgbWVjaGFuaXNtcyBvdmVyIFNTTCBhbmQgU01UUCtTVEFSVFRMUyB0cmFuc3BvcnRzCistIFZhbGlkYXRlcyBlbWFpbCBhZGRyZXNzZXMgYXV0b21hdGljYWxseQorLSBQcm90ZWN0IGFnYWluc3QgaGVhZGVyIGluamVjdGlvbiBhdHRhY2tzCistIEVycm9yIG1lc3NhZ2VzIGluIG92ZXIgNTAgbGFuZ3VhZ2VzIQorLSBES0lNIGFuZCBTL01JTUUgc2lnbmluZyBzdXBwb3J0CistIENvbXBhdGlibGUgd2l0aCBQSFAgNS41IGFuZCBsYXRlcgorLSBOYW1lc3BhY2VkIHRvIHByZXZlbnQgbmFtZSBjbGFzaGVzCistIE11Y2ggbW9yZSEKKworIyMgV2h5IHlvdSBtaWdodCBuZWVkIGl0CitNYW55IFBIUCBkZXZlbG9wZXJzIG5lZWQgdG8gc2VuZCBlbWFpbCBmcm9tIHRoZWlyIGNvZGUuIFRoZSBvbmx5IFBIUCBmdW5jdGlvbiB0aGF0IHN1cHBvcnRzIHRoaXMgaXMgW2BtYWlsKClgXShodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5tYWlsLnBocCkuIEhvd2V2ZXIsIGl0IGRvZXMgbm90IHByb3ZpZGUgYW55IGFzc2lzdGFuY2UgZm9yIG1ha2luZyB1c2Ugb2YgcG9wdWxhciBmZWF0dXJlcyBzdWNoIGFzIGVuY3J5cHRpb24sIGF1dGhlbnRpY2F0aW9uLCBIVE1MIG1lc3NhZ2VzLCBhbmQgYXR0YWNobWVudHMuCisKK0Zvcm1hdHRpbmcgZW1haWwgY29ycmVjdGx5IGlzIHN1cnByaXNpbmdseSBkaWZmaWN1bHQuIFRoZXJlIGFyZSBteXJpYWQgb3ZlcmxhcHBpbmcgUkZDcywgcmVxdWlyaW5nIHRpZ2h0IGFkaGVyZW5jZSB0byBob3JyaWJseSBjb21wbGljYXRlZCBmb3JtYXR0aW5nIGFuZCBlbmNvZGluZyBydWxlcyDigJMgdGhlIHZhc3QgbWFqb3JpdHkgb2YgY29kZSB0aGF0IHlvdSdsbCBmaW5kIG9ubGluZSB0aGF0IHVzZXMgdGhlIGBtYWlsKClgIGZ1bmN0aW9uIGRpcmVjdGx5IGlzIGp1c3QgcGxhaW4gd3JvbmchCisqUGxlYXNlKiBkb24ndCBiZSB0ZW1wdGVkIHRvIGRvIGl0IHlvdXJzZWxmIOKAkyBpZiB5b3UgZG9uJ3QgdXNlIFBIUE1haWxlciwgdGhlcmUgYXJlIG1hbnkgb3RoZXIgZXhjZWxsZW50IGxpYnJhcmllcyB0aGF0IHlvdSBzaG91bGQgbG9vayBhdCBiZWZvcmUgcm9sbGluZyB5b3VyIG93bi4gVHJ5IFtTd2lmdE1haWxlcl0oaHR0cHM6Ly9zd2lmdG1haWxlci5zeW1mb255LmNvbS8pLCBbWmVuZC9NYWlsXShodHRwczovL3plbmRmcmFtZXdvcmsuZ2l0aHViLmlvL3plbmQtbWFpbC8pLCBbWmV0YUNvbXBvbmVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS96ZXRhY29tcG9uZW50cy9NYWlsKSBldGMuCisKK1RoZSBQSFAgYG1haWwoKWAgZnVuY3Rpb24gdXN1YWxseSBzZW5kcyB2aWEgYSBsb2NhbCBtYWlsIHNlcnZlciwgdHlwaWNhbGx5IGZyb250ZWQgYnkgYSBgc2VuZG1haWxgIGJpbmFyeSBvbiBMaW51eCwgQlNELCBhbmQgbWFjT1MgcGxhdGZvcm1zLCBob3dldmVyLCBXaW5kb3dzIHVzdWFsbHkgZG9lc24ndCBpbmNsdWRlIGEgbG9jYWwgbWFpbCBzZXJ2ZXI7IFBIUE1haWxlcidzIGludGVncmF0ZWQgU01UUCBpbXBsZW1lbnRhdGlvbiBhbGxvd3MgZW1haWwgc2VuZGluZyBvbiBXaW5kb3dzIHBsYXRmb3JtcyB3aXRob3V0IGEgbG9jYWwgbWFpbCBzZXJ2ZXIuCisKKyMjIExpY2Vuc2UKK1RoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIFtMR1BMIDIuMV0oaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMi4xLmh0bWwpIGxpY2Vuc2UsIGFsb25nIHdpdGggdGhlIFtHUEwgQ29vcGVyYXRpb24gQ29tbWl0bWVudF0oaHR0cHM6Ly9ncGxjYy5naXRodWIuaW8vZ3BsY2MvKS4gUGxlYXNlIHJlYWQgTElDRU5TRSBmb3IgaW5mb3JtYXRpb24gb24gdGhlIHNvZnR3YXJlIGF2YWlsYWJpbGl0eSBhbmQgZGlzdHJpYnV0aW9uLgorCisjIyBJbnN0YWxsYXRpb24gJiBsb2FkaW5nCitQSFBNYWlsZXIgaXMgYXZhaWxhYmxlIG9uIFtQYWNrYWdpc3RdKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9waHBtYWlsZXIvcGhwbWFpbGVyKSAodXNpbmcgc2VtYW50aWMgdmVyc2lvbmluZyksIGFuZCBpbnN0YWxsYXRpb24gdmlhIFtDb21wb3Nlcl0oaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcpIGlzIHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zdGFsbCBQSFBNYWlsZXIuIEp1c3QgYWRkIHRoaXMgbGluZSB0byB5b3VyIGBjb21wb3Nlci5qc29uYCBmaWxlOgorCitgYGBqc29uCisicGhwbWFpbGVyL3BocG1haWxlciI6ICJ+Ni4xIgorYGBgCisKK29yIHJ1bgorCitgYGBzaAorY29tcG9zZXIgcmVxdWlyZSBwaHBtYWlsZXIvcGhwbWFpbGVyCitgYGAKKworTm90ZSB0aGF0IHRoZSBgdmVuZG9yYCBmb2xkZXIgYW5kIHRoZSBgdmVuZG9yL2F1dG9sb2FkLnBocGAgc2NyaXB0IGFyZSBnZW5lcmF0ZWQgYnkgQ29tcG9zZXI7IHRoZXkgYXJlIG5vdCBwYXJ0IG9mIFBIUE1haWxlci4KKworSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBHbWFpbCBYT0FVVEgyIGF1dGhlbnRpY2F0aW9uIGNsYXNzLCB5b3Ugd2lsbCBhbHNvIG5lZWQgdG8gYWRkIGEgZGVwZW5kZW5jeSBvbiB0aGUgYGxlYWd1ZS9vYXV0aDItY2xpZW50YCBwYWNrYWdlIGluIHlvdXIgYGNvbXBvc2VyLmpzb25gLgorCitBbHRlcm5hdGl2ZWx5LCBpZiB5b3UncmUgbm90IHVzaW5nIENvbXBvc2VyLCBjb3B5IHRoZSBjb250ZW50cyBvZiB0aGUgUEhQTWFpbGVyIGZvbGRlciBpbnRvIG9uZSBvZiB0aGUgYGluY2x1ZGVfcGF0aGAgZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGluIHlvdXIgUEhQIGNvbmZpZ3VyYXRpb24gYW5kIGxvYWQgZWFjaCBjbGFzcyBmaWxlIG1hbnVhbGx5OgorCitgYGBwaHAKKzw/cGhwCit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxQSFBNYWlsZXI7Cit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxFeGNlcHRpb247CisKK3JlcXVpcmUgJ3BhdGgvdG8vUEhQTWFpbGVyL3NyYy9FeGNlcHRpb24ucGhwJzsKK3JlcXVpcmUgJ3BhdGgvdG8vUEhQTWFpbGVyL3NyYy9QSFBNYWlsZXIucGhwJzsKK3JlcXVpcmUgJ3BhdGgvdG8vUEhQTWFpbGVyL3NyYy9TTVRQLnBocCc7CitgYGAKKworSWYgeW91J3JlIG5vdCB1c2luZyB0aGUgYFNNVFBgIGNsYXNzIGV4cGxpY2l0bHkgKHlvdSdyZSBwcm9iYWJseSBub3QpLCB5b3UgZG9uJ3QgbmVlZCBhIGB1c2VgIGxpbmUgZm9yIHRoZSBTTVRQIGNsYXNzLgorCitJZiB5b3UgZG9uJ3Qgc3BlYWsgZ2l0IG9yIGp1c3Qgd2FudCBhIHRhcmJhbGwsIGNsaWNrIHRoZSAnemlwJyBidXR0b24gb24gdGhlIHJpZ2h0IG9mIHRoZSBwcm9qZWN0IHBhZ2UgaW4gR2l0SHViLCB0aG91Z2ggbm90ZSB0aGF0IGRvY3MgYW5kIGV4YW1wbGVzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHRhcmJhbGwuCisKKyMjIExlZ2FjeSB2ZXJzaW9ucworUEhQTWFpbGVyIDUuMiAod2hpY2ggaXMgY29tcGF0aWJsZSB3aXRoIFBIUCA1LjAgLSA3LjApIGlzIG5vIGxvbmdlciBiZWluZyBzdXBwb3J0ZWQsIGV2ZW4gZm9yIHNlY3VyaXR5IHVwZGF0ZXMuIFlvdSB3aWxsIGZpbmQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIDUuMiBpbiB0aGUgWzUuMi1zdGFibGUgYnJhbmNoXShodHRwczovL2dpdGh1Yi5jb20vUEhQTWFpbGVyL1BIUE1haWxlci90cmVlLzUuMi1zdGFibGUpLiBJZiB5b3UncmUgdXNpbmcgUEhQIDUuNSBvciBsYXRlciAod2hpY2ggeW91IHNob3VsZCBiZSksIHN3aXRjaCB0byB0aGUgNi54IHJlbGVhc2VzLgorCisjIyMgVXBncmFkaW5nIGZyb20gNS4yCitUaGUgYmlnZ2VzdCBjaGFuZ2VzIGFyZSB0aGF0IHNvdXJjZSBmaWxlcyBhcmUgbm93IGluIHRoZSBgc3JjL2AgZm9sZGVyLCBhbmQgUEhQTWFpbGVyIG5vdyBkZWNsYXJlcyB0aGUgbmFtZXNwYWNlIGBQSFBNYWlsZXJcUEhQTWFpbGVyYC4gVGhpcyBoYXMgc2V2ZXJhbCBpbXBvcnRhbnQgZWZmZWN0cyDigJMgW3JlYWQgdGhlIHVwZ3JhZGUgZ3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL1VQR1JBRElORy5tZCkgZm9yIG1vcmUgZGV0YWlscy4KKworIyMjIE1pbmltYWwgaW5zdGFsbGF0aW9uCitXaGlsZSBpbnN0YWxsaW5nIHRoZSBlbnRpcmUgcGFja2FnZSBtYW51YWxseSBvciB3aXRoIENvbXBvc2VyIGlzIHNpbXBsZSwgY29udmVuaWVudCwgYW5kIHJlbGlhYmxlLCB5b3UgbWF5IHdhbnQgdG8gaW5jbHVkZSBvbmx5IHZpdGFsIGZpbGVzIGluIHlvdXIgcHJvamVjdC4gQXQgdGhlIHZlcnkgbGVhc3QgeW91IHdpbGwgbmVlZCBbc3JjL1BIUE1haWxlci5waHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL3NyYy9QSFBNYWlsZXIucGhwKS4gSWYgeW91J3JlIHVzaW5nIFNNVFAsIHlvdSdsbCBuZWVkIFtzcmMvU01UUC5waHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL3NyYy9TTVRQLnBocCksIGFuZCBpZiB5b3UncmUgdXNpbmcgUE9QLWJlZm9yZSBTTVRQLCB5b3UnbGwgbmVlZCBbc3JjL1BPUDMucGhwXShodHRwczovL2dpdGh1Yi5jb20vUEhQTWFpbGVyL1BIUE1haWxlci90cmVlL21hc3Rlci9zcmMvUE9QMy5waHApLiBZb3UgY2FuIHNraXAgdGhlIFtsYW5ndWFnZV0oaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvdHJlZS9tYXN0ZXIvbGFuZ3VhZ2UvKSBmb2xkZXIgaWYgeW91J3JlIG5vdCBzaG93aW5nIGVycm9ycyB0byB1c2VycyBhbmQgY2FuIG1ha2UgZG8gd2l0aCBFbmdsaXNoLW9ubHkgZXJyb3JzLiBJZiB5b3UncmUgdXNpbmcgWE9BVVRIMiB5b3Ugd2lsbCBuZWVkIFtzcmMvT0F1dGgucGhwXShodHRwczovL2dpdGh1Yi5jb20vUEhQTWFpbGVyL1BIUE1haWxlci90cmVlL21hc3Rlci9zcmMvT0F1dGgucGhwKSBhcyB3ZWxsIGFzIHRoZSBDb21wb3NlciBkZXBlbmRlbmNpZXMgZm9yIHRoZSBzZXJ2aWNlcyB5b3Ugd2lzaCB0byBhdXRoZW50aWNhdGUgd2l0aC4gUmVhbGx5LCBpdCdzIG11Y2ggZWFzaWVyIHRvIHVzZSBDb21wb3NlciEKKworIyMgQSBTaW1wbGUgRXhhbXBsZQorCitgYGBwaHAKKzw/cGhwCisvLyBJbXBvcnQgUEhQTWFpbGVyIGNsYXNzZXMgaW50byB0aGUgZ2xvYmFsIG5hbWVzcGFjZQorLy8gVGhlc2UgbXVzdCBiZSBhdCB0aGUgdG9wIG9mIHlvdXIgc2NyaXB0LCBub3QgaW5zaWRlIGEgZnVuY3Rpb24KK3VzZSBQSFBNYWlsZXJcUEhQTWFpbGVyXFBIUE1haWxlcjsKK3VzZSBQSFBNYWlsZXJcUEhQTWFpbGVyXFNNVFA7Cit1c2UgUEhQTWFpbGVyXFBIUE1haWxlclxFeGNlcHRpb247CisKKy8vIExvYWQgQ29tcG9zZXIncyBhdXRvbG9hZGVyCityZXF1aXJlICd2ZW5kb3IvYXV0b2xvYWQucGhwJzsKKworLy8gSW5zdGFudGlhdGlvbiBhbmQgcGFzc2luZyBgdHJ1ZWAgZW5hYmxlcyBleGNlcHRpb25zCiskbWFpbCA9IG5ldyBQSFBNYWlsZXIodHJ1ZSk7CisKK3RyeSB7CisgICAgLy9TZXJ2ZXIgc2V0dGluZ3MKKyAgICAkbWFpbC0+U01UUERlYnVnID0gU01UUDo6REVCVUdfU0VSVkVSOyAgICAgICAgICAgICAgICAgICAgICAvLyBFbmFibGUgdmVyYm9zZSBkZWJ1ZyBvdXRwdXQKKyAgICAkbWFpbC0+aXNTTVRQKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZW5kIHVzaW5nIFNNVFAKKyAgICAkbWFpbC0+SG9zdCAgICAgICA9ICdzbXRwMS5leGFtcGxlLmNvbSc7ICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIFNNVFAgc2VydmVyIHRvIHNlbmQgdGhyb3VnaAorICAgICRtYWlsLT5TTVRQQXV0aCAgID0gdHJ1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuYWJsZSBTTVRQIGF1dGhlbnRpY2F0aW9uCisgICAgJG1haWwtPlVzZXJuYW1lICAgPSAndXNlckBleGFtcGxlLmNvbSc7ICAgICAgICAgICAgICAgICAgICAgLy8gU01UUCB1c2VybmFtZQorICAgICRtYWlsLT5QYXNzd29yZCAgID0gJ3NlY3JldCc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNNVFAgcGFzc3dvcmQKKyAgICAkbWFpbC0+U01UUFNlY3VyZSA9IFBIUE1haWxlcjo6RU5DUllQVElPTl9TVEFSVFRMUzsgICAgICAgICAvLyBFbmFibGUgVExTIGVuY3J5cHRpb247IGBQSFBNYWlsZXI6OkVOQ1JZUFRJT05fU01UUFNgIGVuY291cmFnZWQKKyAgICAkbWFpbC0+UG9ydCAgICAgICA9IDU4NzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUQ1AgcG9ydCB0byBjb25uZWN0IHRvLCB1c2UgNDY1IGZvciBgUEhQTWFpbGVyOjpFTkNSWVBUSU9OX1NNVFBTYCBhYm92ZQorCisgICAgLy9SZWNpcGllbnRzCisgICAgJG1haWwtPnNldEZyb20oJ2Zyb21AZXhhbXBsZS5jb20nLCAnTWFpbGVyJyk7CisgICAgJG1haWwtPmFkZEFkZHJlc3MoJ2pvZUBleGFtcGxlLm5ldCcsICdKb2UgVXNlcicpOyAgICAgLy8gQWRkIGEgcmVjaXBpZW50CisgICAgJG1haWwtPmFkZEFkZHJlc3MoJ2VsbGVuQGV4YW1wbGUuY29tJyk7ICAgICAgICAgICAgICAgLy8gTmFtZSBpcyBvcHRpb25hbAorICAgICRtYWlsLT5hZGRSZXBseVRvKCdpbmZvQGV4YW1wbGUuY29tJywgJ0luZm9ybWF0aW9uJyk7CisgICAgJG1haWwtPmFkZENDKCdjY0BleGFtcGxlLmNvbScpOworICAgICRtYWlsLT5hZGRCQ0MoJ2JjY0BleGFtcGxlLmNvbScpOworCisgICAgLy8gQXR0YWNobWVudHMKKyAgICAkbWFpbC0+YWRkQXR0YWNobWVudCgnL3Zhci90bXAvZmlsZS50YXIuZ3onKTsgICAgICAgICAvLyBBZGQgYXR0YWNobWVudHMKKyAgICAkbWFpbC0+YWRkQXR0YWNobWVudCgnL3RtcC9pbWFnZS5qcGcnLCAnbmV3LmpwZycpOyAgICAvLyBPcHRpb25hbCBuYW1lCisKKyAgICAvLyBDb250ZW50CisgICAgJG1haWwtPmlzSFRNTCh0cnVlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGVtYWlsIGZvcm1hdCB0byBIVE1MCisgICAgJG1haWwtPlN1YmplY3QgPSAnSGVyZSBpcyB0aGUgc3ViamVjdCc7CisgICAgJG1haWwtPkJvZHkgICAgPSAnVGhpcyBpcyB0aGUgSFRNTCBtZXNzYWdlIGJvZHkgPGI+aW4gYm9sZCE8L2I+JzsKKyAgICAkbWFpbC0+QWx0Qm9keSA9ICdUaGlzIGlzIHRoZSBib2R5IGluIHBsYWluIHRleHQgZm9yIG5vbi1IVE1MIG1haWwgY2xpZW50cyc7CisKKyAgICAkbWFpbC0+c2VuZCgpOworICAgIGVjaG8gJ01lc3NhZ2UgaGFzIGJlZW4gc2VudCc7Cit9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKKyAgICBlY2hvICJNZXNzYWdlIGNvdWxkIG5vdCBiZSBzZW50LiBNYWlsZXIgRXJyb3I6IHskbWFpbC0+RXJyb3JJbmZvfSI7Cit9CitgYGAKKworWW91J2xsIGZpbmQgcGxlbnR5IG1vcmUgdG8gcGxheSB3aXRoIGluIHRoZSBbZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL2V4YW1wbGVzKSBmb2xkZXIuCisKK0lmIHlvdSBhcmUgcmUtdXNpbmcgdGhlIGluc3RhbmNlIChlLmcuIHdoZW4gc2VuZGluZyB0byBhIG1haWxpbmcgbGlzdCksIHlvdSBtYXkgbmVlZCB0byBjbGVhciB0aGUgcmVjaXBpZW50IGxpc3QgdG8gYXZvaWQgc2VuZGluZyBkdXBsaWNhdGUgbWVzc2FnZXMuIFNlZSBbdGhlIG1haWxpbmcgbGlzdCBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vUEhQTWFpbGVyL1BIUE1haWxlci9ibG9iL21hc3Rlci9leGFtcGxlcy9tYWlsaW5nX2xpc3QucGhwcykgZm9yIGZ1cnRoZXIgZ3VpZGFuY2UuCisKK1RoYXQncyBpdC4gWW91IHNob3VsZCBub3cgYmUgcmVhZHkgdG8gdXNlIFBIUE1haWxlciEKKworIyMgTG9jYWxpemF0aW9uCitQSFBNYWlsZXIgZGVmYXVsdHMgdG8gRW5nbGlzaCwgYnV0IGluIHRoZSBbbGFuZ3VhZ2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL2xhbmd1YWdlLykgZm9sZGVyIHlvdSdsbCBmaW5kIG1hbnkgdHJhbnNsYXRpb25zIGZvciBQSFBNYWlsZXIgZXJyb3IgbWVzc2FnZXMgdGhhdCB5b3UgbWF5IGVuY291bnRlci4gVGhlaXIgZmlsZW5hbWVzIGNvbnRhaW4gW0lTTyA2MzktMV0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fNjM5LTEpIGxhbmd1YWdlIGNvZGUgZm9yIHRoZSB0cmFuc2xhdGlvbnMsIGZvciBleGFtcGxlIGBmcmAgZm9yIEZyZW5jaC4gVG8gc3BlY2lmeSBhIGxhbmd1YWdlLCB5b3UgbmVlZCB0byB0ZWxsIFBIUE1haWxlciB3aGljaCBvbmUgdG8gdXNlLCBsaWtlIHRoaXM6CisKK2BgYHBocAorLy8gVG8gbG9hZCB0aGUgRnJlbmNoIHZlcnNpb24KKyRtYWlsLT5zZXRMYW5ndWFnZSgnZnInLCAnL29wdGlvbmFsL3BhdGgvdG8vbGFuZ3VhZ2UvZGlyZWN0b3J5LycpOworYGBgCisKK1dlIHdlbGNvbWUgY29ycmVjdGlvbnMgYW5kIG5ldyBsYW5ndWFnZXMgLSBpZiB5b3UncmUgbG9va2luZyBmb3IgY29ycmVjdGlvbnMgdG8gZG8sIHJ1biB0aGUgW1BIUE1haWxlckxhbmdUZXN0LnBocF0oaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvdHJlZS9tYXN0ZXIvdGVzdC9QSFBNYWlsZXJMYW5nVGVzdC5waHApIHNjcmlwdCBpbiB0aGUgdGVzdHMgZm9sZGVyIGFuZCBpdCB3aWxsIHNob3cgYW55IG1pc3NpbmcgdHJhbnNsYXRpb25zLgorCisjIyBEb2N1bWVudGF0aW9uCitTdGFydCByZWFkaW5nIGF0IHRoZSBbR2l0SHViIHdpa2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3dpa2kpLiBJZiB5b3UncmUgaGF2aW5nIHRyb3VibGUsIHRoaXMgc2hvdWxkIGJlIHRoZSBmaXJzdCBwbGFjZSB5b3UgbG9vayBhcyBpdCdzIHRoZSBtb3N0IGZyZXF1ZW50bHkgdXBkYXRlZC4KKworRXhhbXBsZXMgb2YgaG93IHRvIHVzZSBQSFBNYWlsZXIgZm9yIGNvbW1vbiBzY2VuYXJpb3MgY2FuIGJlIGZvdW5kIGluIHRoZSBbZXhhbXBsZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL2V4YW1wbGVzKSBmb2xkZXIuIElmIHlvdSdyZSBsb29raW5nIGZvciBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIHdlIHJlY29tbWVuZCB5b3Ugc3RhcnQgd2l0aCBbdGhlIEdtYWlsIGV4YW1wbGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL2V4YW1wbGVzL2dtYWlsLnBocHMpLgorCitOb3RlIHRoYXQgaW4gb3JkZXIgdG8gcmVkdWNlIFBIUE1haWxlcidzIGRlcGxveWVkIGNvZGUgZm9vdHByaW50LCB0aGUgZXhhbXBsZXMgYXJlIG5vIGxvbmdlciBpbmNsdWRlZCBpZiB5b3UgbG9hZCBQSFBNYWlsZXIgdmlhIENvbXBvc2VyIG9yIHZpYSBbR2l0SHViJ3MgemlwIGZpbGUgZG93bmxvYWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL2FyY2hpdmUvbWFzdGVyLnppcCksIHNvIHlvdSdsbCBuZWVkIHRvIGVpdGhlciBjbG9uZSB0aGUgZ2l0IHJlcG9zaXRvcnkgb3IgdXNlIHRoZSBhYm92ZSBsaW5rcyB0byBnZXQgdG8gdGhlIGV4YW1wbGVzIGRpcmVjdGx5LgorCitDb21wbGV0ZSBnZW5lcmF0ZWQgQVBJIGRvY3VtZW50YXRpb24gaXMgW2F2YWlsYWJsZSBvbmxpbmVdKGh0dHA6Ly9waHBtYWlsZXIuZ2l0aHViLmlvL1BIUE1haWxlci8pLgorCitZb3UgY2FuIGdlbmVyYXRlIGNvbXBsZXRlIEFQSS1sZXZlbCBkb2N1bWVudGF0aW9uIGJ5IHJ1bm5pbmcgYHBocGRvY2AgaW4gdGhlIHRvcC1sZXZlbCBmb2xkZXIsIGFuZCBkb2N1bWVudGF0aW9uIHdpbGwgYXBwZWFyIGluIHRoZSBgZG9jc2AgZm9sZGVyLCB0aG91Z2ggeW91J2xsIG5lZWQgdG8gaGF2ZSBbUEhQRG9jdW1lbnRvcl0oaHR0cDovL3d3dy5waHBkb2Mub3JnKSBpbnN0YWxsZWQuIFlvdSBtYXkgZmluZCBbdGhlIHVuaXQgdGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL2Jsb2IvbWFzdGVyL3Rlc3QvUEhQTWFpbGVyVGVzdC5waHApIGEgZ29vZCBzb3VyY2Ugb2YgaG93IHRvIGRvIHZhcmlvdXMgb3BlcmF0aW9ucyBzdWNoIGFzIGVuY3J5cHRpb24uCisKK0lmIHRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgY292ZXIgd2hhdCB5b3UgbmVlZCwgc2VhcmNoIHRoZSBbbWFueSBxdWVzdGlvbnMgb24gU3RhY2sgT3ZlcmZsb3ddKGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL3BocG1haWxlciksIGFuZCBiZWZvcmUgeW91IGFzayBhIHF1ZXN0aW9uIGFib3V0ICJTTVRQIEVycm9yOiBDb3VsZCBub3QgY29ubmVjdCB0byBTTVRQIGhvc3QuIiwgW3JlYWQgdGhlIHRyb3VibGVzaG9vdGluZyBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvd2lraS9Ucm91Ymxlc2hvb3RpbmcpLgorCisjIyBUZXN0cworVGhlcmUgaXMgYSBQSFBVbml0IHRlc3Qgc2NyaXB0IGluIHRoZSBbdGVzdF0oaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvdHJlZS9tYXN0ZXIvdGVzdC8pIGZvbGRlci4gUEhQTWFpbGVyIHVzZXMgUEhQVW5pdCA0LjggLSB3ZSB3b3VsZCB1c2UgNS54IGJ1dCB3ZSBuZWVkIHRvIHJ1biBvbiBQSFAgNS41LgorCitCdWlsZCBzdGF0dXM6IFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL1BIUE1haWxlci9QSFBNYWlsZXIuc3ZnKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL1BIUE1haWxlci9QSFBNYWlsZXIpCisKK0lmIHRoaXMgaXNuJ3QgcGFzc2luZywgaXMgdGhlcmUgc29tZXRoaW5nIHlvdSBjYW4gZG8gdG8gaGVscD8KKworIyMgU2VjdXJpdHkKK1BsZWFzZSBkaXNjbG9zZSBhbnkgdnVsbmVyYWJpbGl0aWVzIGZvdW5kIHJlc3BvbnNpYmx5IC0gcmVwb3J0IGFueSBzZWN1cml0eSBwcm9ibGVtcyBmb3VuZCB0byB0aGUgbWFpbnRhaW5lcnMgcHJpdmF0ZWx5LgorCitQSFBNYWlsZXIgdmVyc2lvbnMgcHJpb3IgdG8gNS4yLjIyIChyZWxlYXNlZCBKYW51YXJ5IDl0aCAyMDE3KSBoYXZlIGEgbG9jYWwgZmlsZSBkaXNjbG9zdXJlIHZ1bG5lcmFiaWxpdHksIFtDVkUtMjAxNy01MjIzXShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMTctNTIyMykuIElmIGNvbnRlbnQgcGFzc2VkIGludG8gYG1zZ0hUTUwoKWAgaXMgc291cmNlZCBmcm9tIHVuZmlsdGVyZWQgdXNlciBpbnB1dCwgcmVsYXRpdmUgcGF0aHMgY2FuIG1hcCB0byBhYnNvbHV0ZSBsb2NhbCBmaWxlIHBhdGhzIGFuZCBhZGRlZCBhcyBhdHRhY2htZW50cy4gQWxzbyBub3RlIHRoYXQgYGFkZEF0dGFjaG1lbnRgIChqdXN0IGxpa2UgYGZpbGVfZ2V0X2NvbnRlbnRzYCwgYHBhc3N0aHJ1YCwgYHVubGlua2AsIGV0Yykgc2hvdWxkIG5vdCBiZSBwYXNzZWQgdXNlci1zb3VyY2VkIHBhcmFtcyBlaXRoZXIhIFJlcG9ydGVkIGJ5IFlvbmd4aWFuZyBMaSBvZiBBc2lhc2VjdXJpdHkuCisKK1BIUE1haWxlciB2ZXJzaW9ucyBwcmlvciB0byA1LjIuMjAgKHJlbGVhc2VkIERlY2VtYmVyIDI4dGggMjAxNikgYXJlIHZ1bG5lcmFibGUgdG8gW0NWRS0yMDE2LTEwMDQ1XShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMTYtMTAwNDUpIGEgcmVtb3RlIGNvZGUgZXhlY3V0aW9uIHZ1bG5lcmFiaWxpdHksIHJlc3BvbnNpYmx5IHJlcG9ydGVkIGJ5IFtEYXdpZCBHb2x1bnNraV0oaHR0cHM6Ly9sZWdhbGhhY2tlcnMuY29tL2Fkdmlzb3JpZXMvUEhQTWFpbGVyLUV4cGxvaXQtUmVtb3RlLUNvZGUtRXhlYy1DVkUtMjAxNi0xMDA0NS1WdWxuLVBhdGNoLUJ5cGFzcy5odG1sKSwgYW5kIHBhdGNoZWQgYnkgUGF1bCBCdW9ub3BhbmUgKEBaZW5leGVyKS4KKworUEhQTWFpbGVyIHZlcnNpb25zIHByaW9yIHRvIDUuMi4xOCAocmVsZWFzZWQgRGVjZW1iZXIgMjAxNikgYXJlIHZ1bG5lcmFibGUgdG8gW0NWRS0yMDE2LTEwMDMzXShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMTYtMTAwMzMpIGEgY3JpdGljYWwgcmVtb3RlIGNvZGUgZXhlY3V0aW9uIHZ1bG5lcmFiaWxpdHksIHJlc3BvbnNpYmx5IHJlcG9ydGVkIGJ5IFtEYXdpZCBHb2x1bnNraV0oaHR0cDovL2xlZ2FsaGFja2Vycy5jb20vYWR2aXNvcmllcy9QSFBNYWlsZXItRXhwbG9pdC1SZW1vdGUtQ29kZS1FeGVjLUNWRS0yMDE2LTEwMDMzLVZ1bG4uaHRtbCkuCisKK1NlZSBbU0VDVVJJVFldKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3RyZWUvbWFzdGVyL1NFQ1VSSVRZLm1kKSBmb3IgbW9yZSBkZXRhaWwgb24gc2VjdXJpdHkgaXNzdWVzLgorCisjIyBDb250cmlidXRpbmcKK1BsZWFzZSBzdWJtaXQgYnVnIHJlcG9ydHMsIHN1Z2dlc3Rpb25zIGFuZCBwdWxsIHJlcXVlc3RzIHRvIHRoZSBbR2l0SHViIGlzc3VlIHRyYWNrZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL2lzc3VlcykuCisKK1dlJ3JlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGZpeGluZyBlZGdlLWNhc2VzLCBleHBhbmRpbmcgdGVzdCBjb3ZlcmFnZSBhbmQgdXBkYXRpbmcgdHJhbnNsYXRpb25zLgorCitJZiB5b3UgZm91bmQgYSBtaXN0YWtlIGluIHRoZSBkb2NzLCBvciB3YW50IHRvIGFkZCBzb21ldGhpbmcsIGdvIGFoZWFkIGFuZCBhbWVuZCB0aGUgd2lraSAtIGFueW9uZSBjYW4gZWRpdCBpdC4KKworSWYgeW91IGhhdmUgZ2l0IGNsb25lcyBmcm9tIHByaW9yIHRvIHRoZSBtb3ZlIHRvIHRoZSBQSFBNYWlsZXIgR2l0SHViIG9yZ2FuaXNhdGlvbiwgeW91J2xsIG5lZWQgdG8gdXBkYXRlIGFueSByZW1vdGUgVVJMcyByZWZlcmVuY2luZyB0aGUgb2xkIEdpdEh1YiBsb2NhdGlvbiB3aXRoIGEgY29tbWFuZCBsaWtlIHRoaXMgZnJvbSB3aXRoaW4geW91ciBjbG9uZToKKworYGBgc2gKK2dpdCByZW1vdGUgc2V0LXVybCB1cHN0cmVhbSBodHRwczovL2dpdGh1Yi5jb20vUEhQTWFpbGVyL1BIUE1haWxlci5naXQKK2BgYAorCitQbGVhc2UgKmRvbid0KiB1c2UgdGhlIFNvdXJjZUZvcmdlIG9yIEdvb2dsZSBDb2RlIHByb2plY3RzIGFueSBtb3JlOyB0aGV5IGFyZSBvYnNvbGV0ZSBhbmQgbm8gbG9uZ2VyIG1haW50YWluZWQuCisKKyMjIFNwb25zb3JzaGlwCitEZXZlbG9wbWVudCB0aW1lIGFuZCByZXNvdXJjZXMgZm9yIFBIUE1haWxlciBhcmUgcHJvdmlkZWQgYnkgW1NtYXJ0bWVzc2FnZXMubmV0XShodHRwczovL2luZm8uc21hcnRtZXNzYWdlcy5uZXQvKSwgYSBwb3dlcmZ1bCBlbWFpbCBtYXJrZXRpbmcgc3lzdGVtLgorCis8YSBocmVmPSJodHRwczovL2luZm8uc21hcnRtZXNzYWdlcy5uZXQvIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cuc21hcnRtZXNzYWdlcy5uZXQvaW1nL3NtYXJ0bWVzc2FnZXMtbG9nby5zdmciIHdpZHRoPSIyNTAiIGhlaWdodD0iMjgiIGFsdD0iU21hcnRtZXNzYWdlcyBlbWFpbCBtYXJrZXRpbmciPjwvYT4KKworT3RoZXIgY29udHJpYnV0aW9ucyBhcmUgZ2xhZGx5IHJlY2VpdmVkLCB3aGV0aGVyIGluIGJlZXIg8J+NuiwgVC1zaGlydHMg8J+RlSwgQW1hem9uIHdpc2hsaXN0IHJhaWRzLCBvciBjb2xkLCBoYXJkIGNhc2gg8J+SsC4gSWYgeW91J2QgbGlrZSB0byBkb25hdGUgdG8gc2F5ICJ0aGFuayB5b3UiIHRvIG1haW50YWluZXJzIG9yIGNvbnRyaWJ1dG9ycywgcGxlYXNlIGNvbnRhY3QgdGhlbSB0aHJvdWdoIGluZGl2aWR1YWwgcHJvZmlsZSBwYWdlcyB2aWEgW3RoZSBjb250cmlidXRvcnMgcGFnZV0oaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvZ3JhcGhzL2NvbnRyaWJ1dG9ycykuCisKKyMjIENoYW5nZWxvZworU2VlIFtjaGFuZ2Vsb2ddKGNoYW5nZWxvZy5tZCkuCisKKyMjIEhpc3RvcnkKKy0gUEhQTWFpbGVyIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gaW4gMjAwMSBieSBCcmVudCBSLiBNYXR6ZWxsZSBhcyBhIFtTb3VyY2VGb3JnZSBwcm9qZWN0XShodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3BocG1haWxlci8pLgorLSBNYXJjdXMgQm9pbnRvbiAoY29vbGJydSBvbiBTRikgYW5kIEFuZHkgUHJldm9zdCAoY29kZXdvcnh0ZWNoKSB0b29rIG92ZXIgdGhlIHByb2plY3QgaW4gMjAwNC4KKy0gQmVjYW1lIGFuIEFwYWNoZSBpbmN1YmF0b3IgcHJvamVjdCBvbiBHb29nbGUgQ29kZSBpbiAyMDEwLCBtYW5hZ2VkIGJ5IEppbSBKYWdpZWxza2kuCistIE1hcmN1cyBjcmVhdGVkIGhpcyBmb3JrIG9uIFtHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9TeW5jaHJvL1BIUE1haWxlcikgaW4gMjAwOC4KKy0gSmltIGFuZCBNYXJjdXMgZGVjaWRlIHRvIGpvaW4gZm9yY2VzIGFuZCB1c2UgR2l0SHViIGFzIHRoZSBjYW5vbmljYWwgYW5kIG9mZmljaWFsIHJlcG8gZm9yIFBIUE1haWxlciBpbiAyMDEzLgorLSBQSFBNYWlsZXIgbW92ZXMgdG8gdGhlIFtQSFBNYWlsZXIgb3JnYW5pc2F0aW9uXShodHRwczovL2dpdGh1Yi5jb20vUEhQTWFpbGVyKSBvbiBHaXRIdWIgaW4gMjAxMy4KKworIyMjIFdoYXQncyBjaGFuZ2VkIHNpbmNlIG1vdmluZyBmcm9tIFNvdXJjZUZvcmdlPworLSBPZmZpY2lhbCBzdWNjZXNzb3IgdG8gdGhlIFNvdXJjZUZvcmdlIGFuZCBHb29nbGUgQ29kZSBwcm9qZWN0cy4KKy0gVGVzdCBzdWl0ZS4KKy0gQ29udGludW91cyBpbnRlZ3JhdGlvbiB3aXRoIFRyYXZpcy1DSS4KKy0gQ29tcG9zZXIgc3VwcG9ydC4KKy0gUHVibGljIGRldmVsb3BtZW50LgorLSBBZGRpdGlvbmFsIGxhbmd1YWdlcyBhbmQgbGFuZ3VhZ2Ugc3RyaW5ncy4KKy0gQ1JBTS1NRDUgYXV0aGVudGljYXRpb24gc3VwcG9ydC4KKy0gUHJlc2VydmVzIGZ1bGwgcmVwbyBoaXN0b3J5IG9mIGF1dGhvcnMsIGNvbW1pdHMgYW5kIGJyYW5jaGVzIGZyb20gdGhlIG9yaWdpbmFsIFNvdXJjZUZvcmdlIHByb2plY3QuCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9TRUNVUklUWS5tZCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL1NFQ1VSSVRZLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjM2U2MWMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9TRUNVUklUWS5tZApAQCAtMCwwICsxLDMwIEBACisjIFNlY3VyaXR5IG5vdGljZXMgcmVsYXRpbmcgdG8gUEhQTWFpbGVyCisKK1BsZWFzZSBkaXNjbG9zZSBhbnkgdnVsbmVyYWJpbGl0aWVzIGZvdW5kIHJlc3BvbnNpYmx5IC0gcmVwb3J0IGFueSBzZWN1cml0eSBwcm9ibGVtcyBmb3VuZCB0byB0aGUgbWFpbnRhaW5lcnMgcHJpdmF0ZWx5LgorCitQSFBNYWlsZXIgdmVyc2lvbnMgNi4xLjUgYW5kIGVhcmxpZXIgY29udGFpbiBhbiBvdXRwdXQgZXNjYXBpbmcgYnVnIHRoYXQgb2NjdXJzIGluIGBDb250ZW50LVR5cGVgIGFuZCBgQ29udGVudC1EaXNwb3NpdGlvbmAgd2hlbiBmaWxlbmFtZXMgcGFzc2VkIGludG8gYGFkZEF0dGFjaG1lbnRgIGFuZCBvdGhlciBtZXRob2RzIHRoYXQgYWNjZXB0IGF0dGFjaG1lbnQgbmFtZXMgY29udGFpbiBkb3VibGUgcXVvdGUgY2hhcmFjdGVycywgaW4gY29udHJhdmVudGlvbiBvZiBSRkM4MjIgMy40LjEuIE5vIHNwZWNpZmljIHZ1bG5lcmFiaWxpdHkgaGFzIGJlZW4gZm91bmQgcmVsYXRpbmcgdG8gdGhpcywgYnV0IGl0IGNvdWxkIGFsbG93IGZpbGUgYXR0YWNobWVudHMgdG8gYnlwYXNzIGF0dGFjaG1lbnQgZmlsdGVycyB0aGF0IGFyZSBiYXNlZCBvbiBtYXRjaGluZyBmaWxlbmFtZSBleHRlbnNpb25zLiBSZWNvcmRlZCBhcyBbQ1ZFLTIwMjAtMTM2MjVdKGh0dHBzOi8vd2ViLm52ZC5uaXN0Lmdvdi92aWV3L3Z1bG4vZGV0YWlsP3Z1bG5JZD1DVkUtMjAyMC0xMzYyNSkuIFJlcG9ydGVkIGJ5IEVsYXIgTGFuZyBvZiBDbGFyaWZpZWQgU2VjdXJpdHkuCisKK1BIUE1haWxlciB2ZXJzaW9ucyBwcmlvciB0byA2LjAuNiBhbmQgNS4yLjI3IGFyZSB2dWxuZXJhYmxlIHRvIGFuIG9iamVjdCBpbmplY3Rpb24gYXR0YWNrIGJ5IHBhc3NpbmcgYHBoYXI6Ly9gIHBhdGhzIGludG8gYGFkZEF0dGFjaG1lbnQoKWAgYW5kIG90aGVyIGZ1bmN0aW9ucyB0aGF0IG1heSByZWNlaXZlIHVuZmlsdGVyZWQgbG9jYWwgcGF0aHMsIHBvc3NpYmx5IGxlYWRpbmcgdG8gUkNFLiBSZWNvcmRlZCBhcyBbQ1ZFLTIwMTgtMTkyOTZdKGh0dHBzOi8vd2ViLm52ZC5uaXN0Lmdvdi92aWV3L3Z1bG4vZGV0YWlsP3Z1bG5JZD1DVkUtMjAxOC0xOTI5NikuIFNlZSBbdGhpcyBhcnRpY2xlXShodHRwczovL2tuYXNtdWVsbGVyLm5ldC81LWFuc3dlcnMtYWJvdXQtcGhwLXBoYXItZXhwbG9pdGF0aW9uKSBmb3IgbW9yZSBpbmZvIG9uIHRoaXMgdHlwZSBvZiB2dWxuZXJhYmlsaXR5LiBNaXRpZ2F0ZWQgYnkgYmxvY2tpbmcgdGhlIHVzZSBvZiBwYXRocyBjb250YWluaW5nIFVSTC1wcm90b2NvbCBzdHlsZSBwcmVmaXhlcyBzdWNoIGFzIGBwaGFyOi8vYC4gUmVwb3J0ZWQgYnkgU2VodW4gT2ggb2YgY3liZXJvbmUua3IuCisKK1BIUE1haWxlciB2ZXJzaW9ucyBwcmlvciB0byA1LjIuMjQgKHJlbGVhc2VkIEp1bHkgMjZ0aCAyMDE3KSBoYXZlIGFuIFhTUyB2dWxuZXJhYmlsaXR5IGluIG9uZSBvZiB0aGUgY29kZSBleGFtcGxlcywgW0NWRS0yMDE3LTExNTAzXShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMTctMTE1MDMpLiBUaGUgYGNvZGVfZ2VuZXJhdG9yLnBocHNgIGV4YW1wbGUgZGlkIG5vdCBmaWx0ZXIgdXNlciBpbnB1dCBwcmlvciB0byBvdXRwdXQuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB3aXRoIGEgYC5waHBzYCBleHRlbnNpb24sIHNvIGl0IGl0IG5vdCBub3JtYWxseSBleGVjdXRhYmxlIHVubGVzcyBpdCBpcyBleHBsaWNpdGx5IHJlbmFtZWQsIGFuZCB0aGUgZmlsZSBpcyBub3QgaW5jbHVkZWQgd2hlbiBQSFBNYWlsZXIgaXMgbG9hZGVkIHRocm91Z2ggY29tcG9zZXIsIHNvIGl0IGlzIHNhZmUgYnkgZGVmYXVsdC4gVGhlcmUgd2FzIGFsc28gYW4gdW5kaXNjbG9zZWQgcG90ZW50aWFsIFhTUyB2dWxuZXJhYmlsaXR5IGluIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyICh1bnVzZWQgYnkgZGVmYXVsdCkuIFBhdGNoZXMgZm9yIGJvdGggaXNzdWVzIGtpbmRseSBwcm92aWRlZCBieSBQYXRyaWNrIE1vbm5lcmF0IG9mIHRoZSBGZWRvcmEgUHJvamVjdC4KKworUEhQTWFpbGVyIHZlcnNpb25zIHByaW9yIHRvIDUuMi4yMiAocmVsZWFzZWQgSmFudWFyeSA5dGggMjAxNykgaGF2ZSBhIGxvY2FsIGZpbGUgZGlzY2xvc3VyZSB2dWxuZXJhYmlsaXR5LCBbQ1ZFLTIwMTctNTIyM10oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDE3LTUyMjMpLiBJZiBjb250ZW50IHBhc3NlZCBpbnRvIGBtc2dIVE1MKClgIGlzIHNvdXJjZWQgZnJvbSB1bmZpbHRlcmVkIHVzZXIgaW5wdXQsIHJlbGF0aXZlIHBhdGhzIGNhbiBtYXAgdG8gYWJzb2x1dGUgbG9jYWwgZmlsZSBwYXRocyBhbmQgYWRkZWQgYXMgYXR0YWNobWVudHMuIEFsc28gbm90ZSB0aGF0IGBhZGRBdHRhY2htZW50YCAoanVzdCBsaWtlIGBmaWxlX2dldF9jb250ZW50c2AsIGBwYXNzdGhydWAsIGB1bmxpbmtgLCBldGMpIHNob3VsZCBub3QgYmUgcGFzc2VkIHVzZXItc291cmNlZCBwYXJhbXMgZWl0aGVyISBSZXBvcnRlZCBieSBZb25neGlhbmcgTGkgb2YgQXNpYXNlY3VyaXR5LgorCitQSFBNYWlsZXIgdmVyc2lvbnMgcHJpb3IgdG8gNS4yLjIwIChyZWxlYXNlZCBEZWNlbWJlciAyOHRoIDIwMTYpIGFyZSB2dWxuZXJhYmxlIHRvIFtDVkUtMjAxNi0xMDA0NV0oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDE2LTEwMDQ1KSBhIHJlbW90ZSBjb2RlIGV4ZWN1dGlvbiB2dWxuZXJhYmlsaXR5LCByZXNwb25zaWJseSByZXBvcnRlZCBieSBbRGF3aWQgR29sdW5za2ldKGh0dHBzOi8vbGVnYWxoYWNrZXJzLmNvbS9hZHZpc29yaWVzL1BIUE1haWxlci1FeHBsb2l0LVJlbW90ZS1Db2RlLUV4ZWMtQ1ZFLTIwMTYtMTAwNDUtVnVsbi1QYXRjaC1CeXBhc3MuaHRtbCksIGFuZCBwYXRjaGVkIGJ5IFBhdWwgQnVvbm9wYW5lIChAWmVuZXhlcikuCisKK1BIUE1haWxlciB2ZXJzaW9ucyBwcmlvciB0byA1LjIuMTggKHJlbGVhc2VkIERlY2VtYmVyIDIwMTYpIGFyZSB2dWxuZXJhYmxlIHRvIFtDVkUtMjAxNi0xMDAzM10oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDE2LTEwMDMzKSBhIHJlbW90ZSBjb2RlIGV4ZWN1dGlvbiB2dWxuZXJhYmlsaXR5LCByZXNwb25zaWJseSByZXBvcnRlZCBieSBbRGF3aWQgR29sdW5za2ldKGh0dHA6Ly9sZWdhbGhhY2tlcnMuY29tL2Fkdmlzb3JpZXMvUEhQTWFpbGVyLUV4cGxvaXQtUmVtb3RlLUNvZGUtRXhlYy1DVkUtMjAxNi0xMDAzMy1WdWxuLmh0bWwpLgorCitQSFBNYWlsZXIgdmVyc2lvbnMgcHJpb3IgdG8gNS4yLjE0IChyZWxlYXNlZCBOb3ZlbWJlciAyMDE1KSBhcmUgdnVsbmVyYWJsZSB0byBbQ1ZFLTIwMTUtODQ3Nl0oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDE1LTg0NzYpIGFuIFNNVFAgQ1JMRiBpbmplY3Rpb24gYnVnIHBlcm1pdHRpbmcgYXJiaXRyYXJ5IG1lc3NhZ2Ugc2VuZGluZy4KKworUEhQTWFpbGVyIHZlcnNpb25zIHByaW9yIHRvIDUuMi4xMCAocmVsZWFzZWQgTWF5IDIwMTUpIGFyZSB2dWxuZXJhYmxlIHRvIFtDVkUtMjAwOC01NjE5XShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMDgtNTYxOSksIGEgcmVtb3RlIGNvZGUgZXhlY3V0aW9uIHZ1bG5lcmFiaWxpdHkgaW4gdGhlIGJ1bmRsZWQgaHRtbDJ0ZXh0IGxpYnJhcnkuIFRoaXMgZmlsZSB3YXMgcmVtb3ZlZCBpbiA1LjIuMTAsIHNvIGlmIHlvdSBhcmUgdXNpbmcgYSB2ZXJzaW9uIHByaW9yIHRvIHRoYXQgYW5kIG1ha2UgdXNlIG9mIHRoZSBodG1sMnRleHQgZnVuY3Rpb24sIGl0J3Mgdml0YWxseSBpbXBvcnRhbnQgdGhhdCB5b3UgdXBncmFkZSBhbmQgcmVtb3ZlIHRoaXMgZmlsZS4KKworUEhQTWFpbGVyIHZlcnNpb25zIHByaW9yIHRvIDIuMC43IGFuZCAyLjIuMSBhcmUgdnVsbmVyYWJsZSB0byBbQ1ZFLTIwMTItMDc5Nl0oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDEyLTA3OTYpLCBhbiBlbWFpbCBoZWFkZXIgaW5qZWN0aW9uIGF0dGFjay4KKworSm9vbWxhIDEuNi4wIHVzZXMgUEhQTWFpbGVyIGluIGFuIHVuc2FmZSB3YXksIGFsbG93aW5nIGl0IHRvIHJldmVhbCBsb2NhbCBmaWxlIHBhdGhzLCByZXBvcnRlZCBpbiBbQ1ZFLTIwMTEtMzc0N10oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDExLTM3NDcpLgorCitQSFBNYWlsZXIgZGlkbid0IHNhbml0aXNlIHRoZSBgJGxhbmdfcGF0aGAgcGFyYW1ldGVyIGluIGBTZXRMYW5ndWFnZWAuIFRoaXMgd2Fzbid0IGEgcHJvYmxlbSBpbiBpdHNlbGYsIGJ1dCBzb21lIGFwcHMgKFBIUENsYXNzaWZpZWRzLCBBVHV0b3IpIGFsc28gZmFpbGVkIHRvIHNhbml0aXNlIHVzZXItcHJvdmlkZWQgcGFyYW1ldGVycyBwYXNzZWQgdG8gaXQsIHBlcm1pdHRpbmcgc2VtaS1hcmJpdHJhcnkgbG9jYWwgZmlsZSBpbmNsdXNpb24sIHJlcG9ydGVkIGluIFtDVkUtMjAxMC00OTE0XShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMTAtNDkxNCksIFtDVkUtMjAwNy0yMDIxXShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMDctMjAyMSkgYW5kIFtDVkUtMjAwNi01NzM0XShodHRwczovL3dlYi5udmQubmlzdC5nb3Yvdmlldy92dWxuL2RldGFpbD92dWxuSWQ9Q1ZFLTIwMDYtNTczNCkuCisKK1BIUE1haWxlciAxLjcuMiBhbmQgZWFybGllciBjb250YWluZWQgYSBwb3NzaWJsZSBERG9TIHZ1bG5lcmFiaWxpdHkgcmVwb3J0ZWQgaW4gW0NWRS0yMDA1LTE4MDddKGh0dHBzOi8vd2ViLm52ZC5uaXN0Lmdvdi92aWV3L3Z1bG4vZGV0YWlsP3Z1bG5JZD1DVkUtMjAwNS0xODA3KS4KKworUEhQTWFpbGVyIDEuNyBhbmQgZWFybGllciAoSnVuZSAyMDAzKSBoYXZlIGEgcG9zc2libGUgdnVsbmVyYWJpbGl0eSBpbiB0aGUgYFNlbmRtYWlsU2VuZGAgbWV0aG9kIHdoZXJlIHNoZWxsIGNvbW1hbmRzIG1heSBub3QgYmUgc2FuaXRpc2VkLiBSZXBvcnRlZCBpbiBbQ1ZFLTIwMDctMzIxNV0oaHR0cHM6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDA3LTMyMTUpLgorCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9WRVJTSU9OIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvVkVSU0lPTgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWY2N2I1Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvVkVSU0lPTgpAQCAtMCwwICsxIEBACis2LjEuNgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2NvbXBvc2VyLmpzb24gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9jb21wb3Nlci5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZDI1NzYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9jb21wb3Nlci5qc29uCkBAIC0wLDAgKzEsNTcgQEAKK3sKKyAgICAibmFtZSI6ICJwaHBtYWlsZXIvcGhwbWFpbGVyIiwKKyAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiUEhQTWFpbGVyIGlzIGEgZnVsbC1mZWF0dXJlZCBlbWFpbCBjcmVhdGlvbiBhbmQgdHJhbnNmZXIgY2xhc3MgZm9yIFBIUCIsCisgICAgImF1dGhvcnMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIk1hcmN1cyBCb2ludG9uIiwKKyAgICAgICAgICAgICJlbWFpbCI6ICJwaHBtYWlsZXJAc3luY2hyb21lZGlhLmNvLnVrIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJKaW0gSmFnaWVsc2tpIiwKKyAgICAgICAgICAgICJlbWFpbCI6ICJqaW1qYWdAZ21haWwuY29tIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJBbmR5IFByZXZvc3QiLAorICAgICAgICAgICAgImVtYWlsIjogImNvZGV3b3J4dGVjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIkJyZW50IFIuIE1hdHplbGxlIgorICAgICAgICB9CisgICAgXSwKKyAgICAiZnVuZGluZyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3luY2hybyIsCisgICAgICAgICAgICAidHlwZSI6ICJnaXRodWIiCisgICAgICAgIH0KKyAgICBdLAorICAgICJyZXF1aXJlIjogeworICAgICAgICAicGhwIjogIj49NS41LjAiLAorICAgICAgICAiZXh0LWN0eXBlIjogIioiLAorICAgICAgICAiZXh0LWZpbHRlciI6ICIqIgorICAgIH0sCisgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAiZnJpZW5kc29mcGhwL3BocC1jcy1maXhlciI6ICJeMi4yIiwKKyAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJeNC44IHx8IF41LjciLAorICAgICAgICAiZG9jdHJpbmUvYW5ub3RhdGlvbnMiOiAiXjEuMiIKKyAgICB9LAorICAgICJzdWdnZXN0IjogeworICAgICAgICAicHNyL2xvZyI6ICJGb3Igb3B0aW9uYWwgUFNSLTMgZGVidWcgbG9nZ2luZyIsCisgICAgICAgICJsZWFndWUvb2F1dGgyLWdvb2dsZSI6ICJOZWVkZWQgZm9yIEdvb2dsZSBYT0FVVEgyIGF1dGhlbnRpY2F0aW9uIiwKKyAgICAgICAgImhheWFnZWVrL29hdXRoMi15YWhvbyI6ICJOZWVkZWQgZm9yIFlhaG9vIFhPQVVUSDIgYXV0aGVudGljYXRpb24iLAorICAgICAgICAic3RldmVubWFndWlyZS9vYXV0aDItbWljcm9zb2Z0IjogIk5lZWRlZCBmb3IgTWljcm9zb2Z0IFhPQVVUSDIgYXV0aGVudGljYXRpb24iLAorICAgICAgICAiZXh0LW1ic3RyaW5nIjogIk5lZWRlZCB0byBzZW5kIGVtYWlsIGluIG11bHRpYnl0ZSBlbmNvZGluZyBjaGFyc2V0IiwKKyAgICAgICAgInN5bWZvbnkvcG9seWZpbGwtbWJzdHJpbmciOiAiVG8gc3VwcG9ydCBVVEYtOCBpZiB0aGUgTWJzdHJpbmcgUEhQIGV4dGVuc2lvbiBpcyBub3QgZW5hYmxlZCAoXjEuMikiCisgICAgfSwKKyAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICJQSFBNYWlsZXJcXFBIUE1haWxlclxcIjogInNyYy8iCisgICAgICAgIH0KKyAgICB9LAorICAgICJhdXRvbG9hZC1kZXYiOiB7CisgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICJQSFBNYWlsZXJcXFRlc3RcXCI6ICJ0ZXN0LyIKKyAgICAgICAgfQorICAgIH0sCisgICAgImxpY2Vuc2UiOiAiTEdQTC0yLjEtb25seSIKK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2dldF9vYXV0aF90b2tlbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9nZXRfb2F1dGhfdG9rZW4ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMzdiNTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9nZXRfb2F1dGhfdG9rZW4ucGhwCkBAIC0wLDAgKzEsMTQ0IEBACis8P3BocAorLyoqCisgKiBQSFBNYWlsZXIgLSBQSFAgZW1haWwgY3JlYXRpb24gYW5kIHRyYW5zcG9ydCBjbGFzcy4KKyAqIFBIUCBWZXJzaW9uIDUuNQorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyLyBUaGUgUEhQTWFpbGVyIEdpdEh1YiBwcm9qZWN0CisgKiBAYXV0aG9yIE1hcmN1cyBCb2ludG9uIChTeW5jaHJvL2Nvb2xicnUpIDxwaHBtYWlsZXJAc3luY2hyb21lZGlhLmNvLnVrPgorICogQGF1dGhvciBKaW0gSmFnaWVsc2tpIChqaW1qYWcpIDxqaW1qYWdAZ21haWwuY29tPgorICogQGF1dGhvciBBbmR5IFByZXZvc3QgKGNvZGV3b3J4dGVjaCkgPGNvZGV3b3J4dGVjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgKiBAYXV0aG9yIEJyZW50IFIuIE1hdHplbGxlIChvcmlnaW5hbCBmb3VuZGVyKQorICogQGNvcHlyaWdodCAyMDEyIC0gMjAxNyBNYXJjdXMgQm9pbnRvbgorICogQGNvcHlyaWdodCAyMDEwIC0gMjAxMiBKaW0gSmFnaWVsc2tpCisgKiBAY29weXJpZ2h0IDIwMDQgLSAyMDA5IEFuZHkgUHJldm9zdAorICogQGxpY2Vuc2UgaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogQG5vdGUgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwgLSBXSVRIT1VUCisgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgorICovCisvKioKKyAqIEdldCBhbiBPQXV0aDIgdG9rZW4gZnJvbSBhbiBPQXV0aDIgcHJvdmlkZXIuCisgKiAqIEluc3RhbGwgdGhpcyBzY3JpcHQgb24geW91ciBzZXJ2ZXIgc28gdGhhdCBpdCdzIGFjY2Vzc2libGUKKyAqIGFzIFtodHRwcy9odHRwXTovLzx5b3VyZG9tYWluPi88Zm9sZGVyPi9nZXRfb2F1dGhfdG9rZW4ucGhwCisgKiBlLmcuOiBodHRwOi8vbG9jYWxob3N0L3BocG1haWxlci9nZXRfb2F1dGhfdG9rZW4ucGhwCisgKiAqIEVuc3VyZSBkZXBlbmRlbmNpZXMgYXJlIGluc3RhbGxlZCB3aXRoICdjb21wb3NlciBpbnN0YWxsJworICogKiBTZXQgdXAgYW4gYXBwIGluIHlvdXIgR29vZ2xlL1lhaG9vL01pY3Jvc29mdCBhY2NvdW50CisgKiAqIFNldCB0aGUgc2NyaXB0IGFkZHJlc3MgYXMgdGhlIGFwcCdzIHJlZGlyZWN0IFVSTAorICogSWYgbm8gcmVmcmVzaCB0b2tlbiBpcyBvYnRhaW5lZCB3aGVuIHJ1bm5pbmcgdGhpcyBmaWxlLAorICogcmV2b2tlIGFjY2VzcyB0byB5b3VyIGFwcCBhbmQgcnVuIHRoZSBzY3JpcHQgYWdhaW4uCisgKi8KKworbmFtZXNwYWNlIFBIUE1haWxlclxQSFBNYWlsZXI7CisKKy8qKgorICogQWxpYXNlcyBmb3IgTGVhZ3VlIFByb3ZpZGVyIENsYXNzZXMKKyAqIE1ha2Ugc3VyZSB5b3UgaGF2ZSBhZGRlZCB0aGVzZSB0byB5b3VyIGNvbXBvc2VyLmpzb24gYW5kIHJ1biBgY29tcG9zZXIgaW5zdGFsbGAKKyAqIFBsZW50eSB0byBjaG9vc2UgZnJvbSBoZXJlOgorICogQHNlZSBodHRwOi8vb2F1dGgyLWNsaWVudC50aGVwaHBsZWFndWUuY29tL3Byb3ZpZGVycy90aGlyZHBhcnR5LworICovCisvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90aGVwaHBsZWFndWUvb2F1dGgyLWdvb2dsZQordXNlIExlYWd1ZVxPQXV0aDJcQ2xpZW50XFByb3ZpZGVyXEdvb2dsZTsKKy8vIEBzZWUgaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3BhY2thZ2VzL2hheWFnZWVrL29hdXRoMi15YWhvbwordXNlIEhheWFnZWVrXE9BdXRoMlxDbGllbnRcUHJvdmlkZXJcWWFob287CisvLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGV2ZW5tYWd1aXJlL29hdXRoMi1taWNyb3NvZnQKK3VzZSBTdGV2ZW5tYWd1aXJlXE9BdXRoMlxDbGllbnRcUHJvdmlkZXJcTWljcm9zb2Z0OworCitpZiAoIWlzc2V0KCRfR0VUWydjb2RlJ10pICYmICFpc3NldCgkX0dFVFsncHJvdmlkZXInXSkpIHsKKz8+Cis8aHRtbD4KKzxib2R5PlNlbGVjdCBQcm92aWRlcjo8YnIvPgorPGEgaHJlZj0nP3Byb3ZpZGVyPUdvb2dsZSc+R29vZ2xlPC9hPjxici8+Cis8YSBocmVmPSc/cHJvdmlkZXI9WWFob28nPllhaG9vPC9hPjxici8+Cis8YSBocmVmPSc/cHJvdmlkZXI9TWljcm9zb2Z0Jz5NaWNyb3NvZnQvT3V0bG9vay9Ib3RtYWlsL0xpdmUvT2ZmaWNlMzY1PC9hPjxici8+Cis8L2JvZHk+Cis8L2h0bWw+Cis8P3BocAorZXhpdDsKK30KKworcmVxdWlyZSAndmVuZG9yL2F1dG9sb2FkLnBocCc7CisKK3Nlc3Npb25fc3RhcnQoKTsKKworJHByb3ZpZGVyTmFtZSA9ICcnOworCitpZiAoYXJyYXlfa2V5X2V4aXN0cygncHJvdmlkZXInLCAkX0dFVCkpIHsKKyAgICAkcHJvdmlkZXJOYW1lID0gJF9HRVRbJ3Byb3ZpZGVyJ107CisgICAgJF9TRVNTSU9OWydwcm92aWRlciddID0gJHByb3ZpZGVyTmFtZTsKK30gZWxzZWlmIChhcnJheV9rZXlfZXhpc3RzKCdwcm92aWRlcicsICRfU0VTU0lPTikpIHsKKyAgICAkcHJvdmlkZXJOYW1lID0gJF9TRVNTSU9OWydwcm92aWRlciddOworfQoraWYgKCFpbl9hcnJheSgkcHJvdmlkZXJOYW1lLCBbJ0dvb2dsZScsICdNaWNyb3NvZnQnLCAnWWFob28nXSkpIHsKKyAgICBleGl0KCdPbmx5IEdvb2dsZSwgTWljcm9zb2Z0IGFuZCBZYWhvbyBPQXV0aDIgcHJvdmlkZXJzIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGluIHRoaXMgc2NyaXB0LicpOworfQorCisvL1RoZXNlIGRldGFpbHMgYXJlIG9idGFpbmVkIGJ5IHNldHRpbmcgdXAgYW4gYXBwIGluIHRoZSBHb29nbGUgZGV2ZWxvcGVyIGNvbnNvbGUsCisvL29yIHdoaWNoZXZlciBwcm92aWRlciB5b3UncmUgdXNpbmcuCiskY2xpZW50SWQgPSAnUkFORE9NQ0hBUlMtLS0tLWR1djFuMi5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSc7CiskY2xpZW50U2VjcmV0ID0gJ1JBTkRPTUNIQVJTLS0tLS1sR3lqUGNSdHZQJzsKKworLy9JZiB0aGlzIGF1dG9tYXRpYyBVUkwgZG9lc24ndCB3b3JrLCBzZXQgaXQgeW91cnNlbGYgbWFudWFsbHkgdG8gdGhlIFVSTCBvZiB0aGlzIHNjcmlwdAorJHJlZGlyZWN0VXJpID0gKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSA/ICdodHRwczovLycgOiAnaHR0cDovLycpIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gJF9TRVJWRVJbJ1BIUF9TRUxGJ107CisvLyRyZWRpcmVjdFVyaSA9ICdodHRwOi8vbG9jYWxob3N0L1BIUE1haWxlci9yZWRpcmVjdCc7CisKKyRwYXJhbXMgPSBbCisgICAgJ2NsaWVudElkJyA9PiAkY2xpZW50SWQsCisgICAgJ2NsaWVudFNlY3JldCcgPT4gJGNsaWVudFNlY3JldCwKKyAgICAncmVkaXJlY3RVcmknID0+ICRyZWRpcmVjdFVyaSwKKyAgICAnYWNjZXNzVHlwZScgPT4gJ29mZmxpbmUnCitdOworCiskb3B0aW9ucyA9IFtdOworJHByb3ZpZGVyID0gbnVsbDsKKworc3dpdGNoICgkcHJvdmlkZXJOYW1lKSB7CisgICAgY2FzZSAnR29vZ2xlJzoKKyAgICAgICAgJHByb3ZpZGVyID0gbmV3IEdvb2dsZSgkcGFyYW1zKTsKKyAgICAgICAgJG9wdGlvbnMgPSBbCisgICAgICAgICAgICAnc2NvcGUnID0+IFsKKyAgICAgICAgICAgICAgICAnaHR0cHM6Ly9tYWlsLmdvb2dsZS5jb20vJworICAgICAgICAgICAgXQorICAgICAgICBdOworICAgICAgICBicmVhazsKKyAgICBjYXNlICdZYWhvbyc6CisgICAgICAgICRwcm92aWRlciA9IG5ldyBZYWhvbygkcGFyYW1zKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnTWljcm9zb2Z0JzoKKyAgICAgICAgJHByb3ZpZGVyID0gbmV3IE1pY3Jvc29mdCgkcGFyYW1zKTsKKyAgICAgICAgJG9wdGlvbnMgPSBbCisgICAgICAgICAgICAnc2NvcGUnID0+IFsKKyAgICAgICAgICAgICAgICAnd2wuaW1hcCcsCisgICAgICAgICAgICAgICAgJ3dsLm9mZmxpbmVfYWNjZXNzJworICAgICAgICAgICAgXQorICAgICAgICBdOworICAgICAgICBicmVhazsKK30KKworaWYgKG51bGwgPT09ICRwcm92aWRlcikgeworICAgIGV4aXQoJ1Byb3ZpZGVyIG1pc3NpbmcnKTsKK30KKworaWYgKCFpc3NldCgkX0dFVFsnY29kZSddKSkgeworICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW4gYXV0aG9yaXphdGlvbiBjb2RlIHRoZW4gZ2V0IG9uZQorICAgICRhdXRoVXJsID0gJHByb3ZpZGVyLT5nZXRBdXRob3JpemF0aW9uVXJsKCRvcHRpb25zKTsKKyAgICAkX1NFU1NJT05bJ29hdXRoMnN0YXRlJ10gPSAkcHJvdmlkZXItPmdldFN0YXRlKCk7CisgICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuICRhdXRoVXJsKTsKKyAgICBleGl0OworLy8gQ2hlY2sgZ2l2ZW4gc3RhdGUgYWdhaW5zdCBwcmV2aW91c2x5IHN0b3JlZCBvbmUgdG8gbWl0aWdhdGUgQ1NSRiBhdHRhY2sKK30gZWxzZWlmIChlbXB0eSgkX0dFVFsnc3RhdGUnXSkgfHwgKCRfR0VUWydzdGF0ZSddICE9PSAkX1NFU1NJT05bJ29hdXRoMnN0YXRlJ10pKSB7CisgICAgdW5zZXQoJF9TRVNTSU9OWydvYXV0aDJzdGF0ZSddKTsKKyAgICB1bnNldCgkX1NFU1NJT05bJ3Byb3ZpZGVyJ10pOworICAgIGV4aXQoJ0ludmFsaWQgc3RhdGUnKTsKK30gZWxzZSB7CisgICAgdW5zZXQoJF9TRVNTSU9OWydwcm92aWRlciddKTsKKyAgICAvLyBUcnkgdG8gZ2V0IGFuIGFjY2VzcyB0b2tlbiAodXNpbmcgdGhlIGF1dGhvcml6YXRpb24gY29kZSBncmFudCkKKyAgICAkdG9rZW4gPSAkcHJvdmlkZXItPmdldEFjY2Vzc1Rva2VuKAorICAgICAgICAnYXV0aG9yaXphdGlvbl9jb2RlJywKKyAgICAgICAgWworICAgICAgICAgICAgJ2NvZGUnID0+ICRfR0VUWydjb2RlJ10KKyAgICAgICAgXQorICAgICk7CisgICAgLy8gVXNlIHRoaXMgdG8gaW50ZXJhY3Qgd2l0aCBhbiBBUEkgb24gdGhlIHVzZXJzIGJlaGFsZgorICAgIC8vIFVzZSB0aGlzIHRvIGdldCBhIG5ldyBhY2Nlc3MgdG9rZW4gaWYgdGhlIG9sZCBvbmUgZXhwaXJlcworICAgIGVjaG8gJ1JlZnJlc2ggVG9rZW46ICcsICR0b2tlbi0+Z2V0UmVmcmVzaFRva2VuKCk7Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1hZi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1hZi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M0MmQ3OAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWFmLnBocApAQCAtMCwwICsxLDI1IEBACis8P3BocAorLyoqCisgKiBBZnJpa2FhbnMgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAtZm91dDoga29uIG5pZSBnZXZlcmlmaWVlciB3b3JkIG5pZS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAtZm91dDoga29uIG5pZSBhYW4gU01UUC12ZXJiaW5kIG5pZS4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAtZm91dDogZGF0YSBuaWUgYWFudmFhciBuaWUuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdCb29kc2thcGxpZ2dhYW0gbGVlZy4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ09uYmVrZW5kZSBrb2RlcmluZzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdLb24gbmllIHVpdHZvZXIgbmllOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0tvbiBuaWUgbMOqZXIgb29wbWFhayBuaWU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnTMOqZXJmb3V0OiBLb24gbmllIGzDqmVyIG9vcG1hYWsgbmllOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0RpZSB2b2xnZW5kZSBWYW4gYWRyZXMgbWlzbHVrOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ0tvbiBuaWUgcG9zZnVua3NpZSBpbnN0YW5zaWVlciBuaWUuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdPbmdlbGRpZ2UgYWRyZXM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIG1haWxlciB3b3JkIG5pZSBvbmRlcnN0ZXVuIG5pZS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ1UgbW9ldCB0ZW4gbWluc3RlIGVlbiBvbnR2YW5nZXIgZS1wb3MgYWRyZXMgdmVyc2thZi4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAtZm91dDogRGllIHZvbGdlbmRlIG9udHZhbmdlcnMgaGV0IG1pc2x1azogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdPbmRlcnRla2VuaW5nIEZvdXQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUC12ZXJiaW5kaW5nICgpIG1pc2x1ay4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAtYmVkaWVuZXIgZm91dDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdLYW4gbmllIHZlcmFuZGVybGlrZSBpbnN0ZWwgb2YgaGVyc3RlbCBuaWU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnVWl0YnJlaWRpbmcgb250YnJlZWs6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1hci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1hci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY1ZDBiNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWFyLnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorLyoqCisgKiBBcmFiaWMgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIGJhaGphdCBhbCBtb3N0YWZhIDxiYWhqYXQ5ODNAaG90bWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ9iu2LfYoyBTTVRQIDog2YTYpyDZitmF2YPZhiDYqtij2YPZitivINin2YTZh9mI2YrYqS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ9iu2LfYoyBTTVRQOiDZhNinINmK2YXZg9mGINin2YTYp9iq2LXYp9mEINio2KfZhNiu2KfYr9mFIFNNVFAuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICfYrti32KMgU01UUDog2YTZhSDZitiq2YUg2YLYqNmI2YQg2KfZhNmF2LnZhNmI2YXYp9iqIC4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ9mG2LUg2KfZhNix2LPYp9mE2Kkg2YHYp9ix2LonOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ9iq2LHZhdmK2LIg2LrZitixINmF2LnYsdmI2YE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAn2YTYpyDZitmF2YPZhiDYqtmG2YHZitiwIDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICfZhNinINmK2YXZg9mGINin2YTZiNi12YjZhCDZhNmE2YXZhNmBOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ9iu2LfYoyDZgdmKINin2YTZhdmE2YE6INmE2Kcg2YrZhdmD2YYg2YHYqtit2Yc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn2K7Yt9ijINi52YTZiSDZhdiz2KrZiNmJINi52YbZiNin2YYg2KfZhNmF2LHYs9mEIDogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICfZhNinINmK2YXZg9mGINiq2YjZgdmK2LEg2K7Yr9mF2Kkg2KfZhNio2LHZitivLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAn2KfZhNil2LHYs9in2YQg2LrZitixINmF2YXZg9mGINmE2KPZhiDYudmG2YjYp9mGINin2YTYqNix2YrYryDYp9mE2KXZhNmD2KrYsdmI2YbZiiDYutmK2LEg2LXYp9mE2K06ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnINio2LHZhtin2YXYrCDYp9mE2KXYsdiz2KfZhCDYutmK2LEg2YXYr9i52YjZhS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ9mK2KzYqCDYqtmI2YHZitixINi52YbZiNin2YYg2KfZhNio2LHZitivINin2YTYpdmE2YPYqtix2YjZhtmKINmE2YXYs9iq2YTZhSDZiNin2K3YryDYudmE2Ykg2KfZhNij2YLZhC4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ9iu2LfYoyBTTVRQOiDYp9mE2KPYrti32KfYoSDYp9mE2KrYp9mE2YrYqSAnIC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICfZgdi02YQg2YHZiiDYp9mE2KfYsdiz2KfZhCDZhNmD2YQg2YXZhiA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAn2K7Yt9ijINmB2Yog2KfZhNiq2YjZgtmK2Lk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkg2LrZitixINmF2YXZg9mGLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAn2K7Yt9ijINi52YTZiSDZhdiz2KrZiNmJINin2YTYrtin2K/ZhSBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ9mE2Kcg2YrZhdmD2YYg2KrYudmK2YrZhiDYo9mIINil2LnYp9iv2Kkg2KrYudmK2YrZhiDZhdiq2LrZitixOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ9in2YTYpdi22KfZgdipINi62YrYsSDZhdmI2KzZiNiv2Kk6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1hei5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1hei5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc0OWQ4MwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWF6LnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBBemVyYmFpamFuaSBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgQG1pcmphbGFsCisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgeMmZdGFzxLE6IEdpcmnFnyB1xJ91cnN1eiBvbGR1Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCB4yZl0YXPEsTogU01UUCBzZXJ2ZXJpbsmZIHFvxZ91bG1hIHXEn3Vyc3V6IG9sZHUuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIHjJmXRhc8SxOiBWZXJpbMmZbmzJmXIgccmZYnVsIGVkaWxtyZl5aWIuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdCb8WfIG1lc2FqIGfDtm5kyZlyaWzJmSBiaWxtyZl6Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnUWV5cmktbcO8yZl5ecmZbiBrb2RsYcWfZMSxcm1hOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ8aPbXIgeWVyaW7JmSB5ZXRpcmlsbcmZZGk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnRmF5bGEgZ2lyacWfIHlveGR1cjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdGYXlsIHjJmXRhc8SxOiBGYXlsIGHDp8SxbGEgYmlsbcmZZGk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnR8O2c3TJmXJpbMmZbiBwb8OndGxhcmEgZ8O2bmTJmXJtyZkgdcSfdXJzdXogb2xkdTogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdNYWlsIGZ1bmtzaXlhc8SxIGnFn8mZIHNhbMSxbmEgYmlsbcmZZGkuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdEw7x6Z8O8biBvbG1heWFuIGUtbWFpbCBhZHJlc2k6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIC0gZS1tYWlsIGtpdGFieGFuYXPEsSBkyZlzdMmZa2zJmW5taXIuJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICfGj24gYXrEsSBiaXIgZS1tYWlsIGFkcmVzaSBkYXhpbCBlZGlsbcmZbGlkaXIuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIHjJmXRhc8SxOiBBxZ9hxJ/EsWRha8SxIMO8bnZhbmxhciDDvHpyyZkgYWzEsWPEsWxhcmEgZ8O2bmTJmXJtyZkgdcSfdXJzdXpkdXI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnxLBtemFsYW1hIHjJmXRhc8SxOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgc2VydmVyaW7JmSBxb8WfdWxtYSB1xJ91cnN1eiBvbGR1Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnU01UUCBzZXJ2ZXJpIHjJmXRhc8SxOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0TJmXlpxZ/JmW5pbiBxdXJhxZ9kxLFyxLFsbWFzxLEgdcSfdXJzdXogb2xkdTogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctYmEucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctYmEucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NmM0YmIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1iYS5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogQm9zbmlhbiBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgRXJtaW4gSXNsYW1hZ2nEhyA8ZXJtaW5AaXNsYW1hZ2ljLmNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCBHcmXFoWthOiBOZXVzcGplbGEgcHJpamF2YS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgR3JlxaFrYTogTmlqZSBtb2d1xIdlIHNwb2ppdGkgc2Ugc2EgU01UUCBzZXJ2ZXJvbS4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAgR3JlxaFrYTogUG9kYXRjaSBuaXN1IHByaWh2YcSHZW5pLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnU2FkcsW+YWogcG9ydWtlIGplIHByYXphbi4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ05lcG96bmF0YSBrcmlwdG9ncmFmaWphOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ05pamUgbW9ndcSHZSBpenZyxaFpdGkgbmFyZWRidTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdOaWplIG1vZ3XEh2UgcHJpc3R1cGl0aSBkYXRvdGVjaTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdOaWplIG1vZ3XEh2Ugb3R2b3JpdGkgZGF0b3Rla3U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnU01UUCBHcmXFoWthOiBTbGFuamUgc2EgbmF2ZWRlbmloIGUtbWFpbCBhZHJlc2EgbmlqZSB1c3BqZWxvOiAnOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAgR3JlxaFrYTogU2xhbmplIG5hIG5hdmVkZW5lIGUtbWFpbCBhZHJlc2UgbmlqZSB1c3BqZWxvOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ05lIG1vZ3UgcG9rcmVudXRpIG1haWwgZnVua2Npb25hbG5vc3QuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdFLW1haWwgbmlqZSBwb3NsYW4uIE5laXNwcmF2bmEgZS1tYWlsIGFkcmVzYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG5pamUgcG9kcsW+YW4uJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdEZWZpbmnFoWl0ZSBiYXJlbSBqZWRudSBhZHJlc3UgcHJpbWFvY2EuJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdHcmXFoWthIHByaWxpa29tIHByaWphdmU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU3BhamFuamUgbmEgU01UUCBzZXJ2ZXIgbmlqZSB1c3BqZWxvLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnU01UUCBncmXFoWthOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ05pamUgbW9ndcSHZSBwb3N0YXZpdGkgdmFyaWphYmx1IGlsaSBqZSB2cmF0aXRpIG5hemFkOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ05lZG9zdGFqZSBla3N0ZW56aWphOiAnOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWJlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWJlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmY5OGYwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctYmUucGhwCkBAIC0wLDAgKzEsMjYgQEAKKzw/cGhwCisvKioKKyAqIEJlbGFydXNpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEFsZWtzYW5kZXIgTWFrc3ltaXVrIDxpbmZvQHNldHByby5wbD4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAn0J/QsNC80YvQu9C60LAgU01UUDog0L/QsNC80YvQu9C60LAg0ZbQtNGN0L3RgtGL0YTRltC60LDRhtGL0ZYuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICfQn9Cw0LzRi9C70LrQsCBTTVRQOiDQvdC10LvRjNCz0LAg0Z7RgdGC0LDQvdCw0LLRltGG0Ywg0YHRg9Cy0Y/Qt9GMINC3IFNNVFAt0YHQtdGA0LLQtdGA0LDQvC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ9Cf0LDQvNGL0LvQutCwIFNNVFA6INC30LLQtdGB0YLQutGWINC90LXQv9GA0YvQvdGP0YLRi9GPLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAn0J/Rg9GB0YLQvtC1INC/0LDQstC10LTQsNC80LvQtdC90L3QtS4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ9Cd0LXQstGP0LTQvtC80LDRjyDQutCw0LTRi9GA0L7RntC60LAg0YLRjdC60YHRgtGDOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ9Cd0LXQu9GM0LPQsCDQstGL0LrQsNC90LDRhtGMINC60LDQvNCw0L3QtNGDOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ9Cd0Y/QvNCwINC00L7RgdGC0YPQv9GDINC00LAg0YTQsNC50LvQsDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfQndC10LvRjNCz0LAg0LDQtNC60YDRi9GG0Ywg0YTQsNC50Ls6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyDQsNC00YDQsNGBINCw0LTQv9GA0LDRntC90ZbQutCwOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ9Cd0LXQu9GM0LPQsCDQv9GA0YvQvNGP0L3RltGG0Ywg0YTRg9C90LrRhtGL0Y4gbWFpbCgpLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAn0J3QtdC70YzQs9CwINC00LDRgdC70LDRhtGMINC/0LDQstC10LTQsNC80LvQtdC90L3QtSwg0L3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyBlbWFpbCDQsNGC0YDRi9C80LDQu9GM0L3RltC60LA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAn0JfQsNC/0L7RntC90ZbRhtC1LCDQutCw0LvRliDQu9Cw0YHQutCwLCDQv9GA0LDQstGW0LvRjNC90YsgZW1haWwg0LDRgtGA0YvQvNCw0LvRjNC90ZbQutCwLic7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIC0g0L/QsNGI0YLQvtCy0Ysg0YHQtdGA0LLQtdGAINC90LUg0L/QsNC00YLRgNGL0LzQu9GW0LLQsNC10YbRhtCwLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAn0J/QsNC80YvQu9C60LAgU01UUDog0L3Rj9C/0YDQsNCy0ZbQu9GM0L3Ri9GPINCw0YLRgNGL0LzQsNC70YzQvdGW0LrRljogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICfQn9Cw0LzRi9C70LrQsCDQv9C+0LTQv9GW0YHRgyDQv9Cw0LLQtdC00LDQvNC70LXQvdC90Y86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAn0J/QsNC80YvQu9C60LAg0YHRg9Cy0Y/Qt9GWINC3IFNNVFAt0YHQtdGA0LLQtdGA0LDQvC4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ9Cf0LDQvNGL0LvQutCwIFNNVFA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAn0J3QtdC70YzQs9CwINGe0YHRgtCw0L3QsNCy0ZbRhtGMINCw0LHQviDQv9C10YDQsNC80Y/QvdGW0YbRjCDQt9C90LDRh9GN0L3QvdC1INC/0LXRgNCw0LzQtdC90L3QsNC5OiAnOworLy8kUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnRXh0ZW5zaW9uIG1pc3Npbmc6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1iZy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1iZy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIyOTQxZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWJnLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBCdWxnYXJpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIE1pa2hhaWwgS3lvc2V2IDxtaWFseWdrQGdtYWlsLmNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCDQs9GA0LXRiNC60LA6INCd0LUg0LzQvtC20LUg0LTQsCDRgdC1INGD0LTQvtGB0YLQvtCy0LXRgNC4INC/0YDQtdC0INGB0YrRgNCy0YrRgNCwLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCDQs9GA0LXRiNC60LA6INCd0LUg0LzQvtC20LUg0LTQsCDRgdC1INGB0LLRitGA0LbQtSDRgSBTTVRQINGF0L7RgdGC0LAuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQINCz0YDQtdGI0LrQsDog0LTQsNC90L3QuNGC0LUg0L3QtSDRgdCwINC/0YDQuNC10YLQuC4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ9Ch0YrQtNGK0YDQttCw0L3QuNC10YLQviDQvdCwINGB0YrQvtCx0YnQtdC90LjQtdGC0L4g0LUg0L/RgNCw0LfQvdC+JzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfQndC10LjQt9Cy0LXRgdGC0L3QviDQutC+0LTQuNGA0LDQvdC1OiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ9Cd0LUg0LzQvtC20LUg0LTQsCDRgdC1INC40LfQv9GK0LvQvdC4OiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ9Cd0Y/QvNCwINC00L7RgdGC0YrQvyDQtNC+INGE0LDQudC7OiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ9Ck0LDQudC70L7QstCwINCz0YDQtdGI0LrQsDog0J3QtSDQvNC+0LbQtSDQtNCwINGB0LUg0L7RgtCy0L7RgNC4INGE0LDQudC7OiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ9Ch0LvQtdC00L3QuNGC0LUg0LDQtNGA0LXRgdC4INC30LAg0L/QvtC00LDRgtC10Lsg0YHQsCDQvdC10LLQsNC70LjQtNC90Lg6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn0J3QtSDQvNC+0LbQtSDQtNCwINGB0LUg0LjQvdGB0YLQsNC90YbQuNGA0LAg0YTRg9C90LrRhtC40Y/RgtCwIG1haWwuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICfQndC10LLQsNC70LjQtNC10L0g0LDQtNGA0LXRgTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgLSDQv9C+0YnQtdC90YHQutC4INGB0YrRgNCy0YrRgCDQvdC1INGB0LUg0L/QvtC00LTRitGA0LbQsC4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ9Ci0YDRj9Cx0LLQsCDQtNCwINC/0YDQtdC00L7RgdGC0LDQstC40YLQtSDQv9C+0L3QtSDQtdC00LjQvSBlbWFpbCDQsNC00YDQtdGBINC30LAg0L/QvtC70YPRh9Cw0YLQtdC7Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCDQs9GA0LXRiNC60LA6INCh0LvQtdC00L3QuNGC0LUg0LDQtNGA0LXRgdC4INC30LAg0J/QvtC70YPRh9Cw0YLQtdC7INGB0LAg0L3QtdCy0LDQu9C40LTQvdC4OiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ9CT0YDQtdGI0LrQsCDQv9GA0Lgg0L/QvtC00L/QuNGB0LLQsNC90LU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCDQv9GA0L7QstCw0LvQtdC9IGNvbm5lY3QoKS4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAg0YHRitGA0LLRitGA0L3QsCDQs9GA0LXRiNC60LA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAn0J3QtSDQvNC+0LbQtSDQtNCwINGB0LUg0YPRgdGC0LDQvdC+0LLQuCDQuNC70Lgg0LLRitC30YHRgtCw0L3QvtCy0Lgg0L/RgNC+0LzQtdC90LvQuNCy0LA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAn0JvQuNC/0YHQstCwINGA0LDQt9GI0LjRgNC10L3QuNC1OiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctY2EucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctY2EucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMTc1OTYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1jYS5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogQ2F0YWxhbiBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgSXZhbiA8d2ViIEFUIG1pY3Jvc3R1ZGkgRE9UIGNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnRXJyb3IgU01UUDogTm8gc+KAmWhhIHBvZ3V0IGF1dGVudGljYXIuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdFcnJvciBTTVRQOiBObyBlcyBwb3QgY29ubmVjdGFyIGFsIHNlcnZpZG9yIFNNVFAuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdFcnJvciBTTVRQOiBEYWRlcyBubyBhY2NlcHRhZGVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnRWwgY29zIGRlbCBtaXNzYXRnZSBlc3TDoCBidWl0Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnQ29kaWZpY2FjacOzIGRlc2NvbmVndWRhOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ05vIGVzIHBvdCBleGVjdXRhcjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdObyBlcyBwb3QgYWNjZWRpciBhIGzigJlhcnhpdTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdFcnJvciBk4oCZQXJ4aXU6IE5vIGVzIHBvdCBvYnJpciBs4oCZYXJ4aXU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnTGEocykgc2Vnw7xlbnQocykgYWRyZWNlcyBkZSByZW1pdGVudCBoYW4gZmFsbGF0OiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ05vIHPigJloYSBwb2d1dCBjcmVhciB1bmEgaW5zdMOgbmNpYSBkZSBsYSBmdW5jacOzIE1haWwuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdBZHJlw6dhIGTigJllbWFpbCBpbnZhbGlkYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG5vIGVzdMOgIHN1cG9ydGF0JzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdT4oCZaGEgZGUgcHJvdmVpciBhbG1lbnlzIHVuYSBhZHJlw6dhIGTigJllbWFpbCBjb20gYSBkZXN0aW5hdGFyaS4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ0Vycm9yIFNNVFA6IEVscyBzZWfDvGVudHMgZGVzdGluYXRhcmlzIGhhbiBmYWxsYXQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnRXJyb3IgYWwgc2lnbmFyOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ0hhIGZhbGxhdCBlbCBTTVRQIENvbm5lY3QoKS4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ0Vycm9yIGRlbCBzZXJ2aWRvciBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ05vIHPigJloYSBwb2d1dCBlc3RhYmxpciBvIHJlc3RhYmxpciBsYSB2YXJpYWJsZTogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctY2gucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctY2gucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmZGE2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1jaC5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogQ2hpbmVzZSBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgTGl1WGluIDxodHRwOi8vd3d3LjgweDg2LmNuL2Jsb2cvPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdTTVRQIOmUmeivr++8mui6q+S7vemqjOivgeWksei0peOAgic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCDplJnor686IOS4jeiDvei/nuaOpVNNVFDkuLvmnLrjgIInOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAg6ZSZ6K+vOiDmlbDmja7kuI3lj6/mjqXlj5fjgIInOworLy8kUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnTWVzc2FnZSBib2R5IGVtcHR5JzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfmnKrnn6XnvJbnoIHvvJonOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ+S4jeiDveaJp+ihjDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICfkuI3og73orr/pl67mlofku7bvvJonOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ+aWh+S7tumUmeivr++8muS4jeiDveaJk+W8gOaWh+S7tu+8mic7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn5LiL6Z2i55qE5Y+R6YCB5Zyw5Z2A6YKu5Lu25Y+R6YCB5aSx6LSl5LqG77yaICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn5LiN6IO95a6e546wbWFpbOaWueazleOAgic7CisvLyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdJbnZhbGlkIGFkZHJlc3M6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIOaCqOaJgOmAieaLqeeahOWPkemAgemCruS7tueahOaWueazleW5tuS4jeaUr+aMgeOAgic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAn5oKo5b+F6aG75o+Q5L6b6Iez5bCR5LiA5LiqIOaUtuS/oeS6uueahGVtYWls5Zyw5Z2A44CCJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIOmUmeivr++8miDkuIvpnaLnmoQg5pS25Lu25Lq65aSx6LSl5LqG77yaICc7CisvLyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdTaWduaW5nIEVycm9yOiAnOworLy8kUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgZmFpbGVkLic7CisvLyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIHNlcnZlciBlcnJvcjogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0Nhbm5vdCBzZXQgb3IgcmVzZXQgdmFyaWFibGU6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpb24gbWlzc2luZzogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWNzLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWNzLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTYwY2YwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctY3MucGhwCkBAIC0wLDAgKzEsMjUgQEAKKzw/cGhwCisvKioKKyAqIEN6ZWNoIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdDaHliYSBTTVRQOiBBdXRlbnRpemFjZSBzZWxoYWxhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnQ2h5YmEgU01UUDogTmVsemUgbmF2w6F6YXQgc3BvamVuw60gc2UgU01UUCBzZXJ2ZXJlbS4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ0NoeWJhIFNNVFA6IERhdGEgbmVieWxhIHDFmWlqYXRhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnUHLDoXpkbsOpIHTEm2xvIHpwcsOhdnknOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ05lem7DoW3DqSBrw7Nkb3bDoW7DrTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdOZWx6ZSBwcm92w6lzdDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdOZWx6ZSB6w61za2F0IHDFmcOtc3R1cCBrIHNvdWJvcnU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnQ2h5YmEgc291Ym9ydTogTmVsemUgb3RldsWZw610IHNvdWJvciBwcm8gxI10ZW7DrTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdOw6FzbGVkdWrDrWPDrSBhZHJlc2Egb2Rlc8OtbGF0ZWxlIGplIG5lc3Byw6F2bsOhOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ05lbHplIHZ5dHZvxZlpdCBpbnN0YW5jaSBlbWFpbG92w6kgZnVua2NlLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnTmVwbGF0bsOhIGFkcmVzYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG5lbsOtIHBvZHBvcm92w6FuLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnTXVzw610ZSB6YWRhdCBhbGVzcG/FiCBqZWRudSBlbWFpbG92b3UgYWRyZXN1IHDFmcOtamVtY2UuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdDaHliYSBTTVRQOiBOw6FzbGVkdWrDrWPDrSBhZHJlc3kgcMWZw61qZW1jxa8gbmVqc291IHNwcsOhdm7EmzogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdDaHliYSBwxZlpaGxhxaFvdsOhbsOtOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIHNlbGhhbC4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ0NoeWJhIFNNVFAgc2VydmVydTogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdOZWx6ZSBuYXN0YXZpdCBuZWJvIHptxJtuaXQgcHJvbcSbbm5vdTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdDaHliw60gcm96xaHDrcWZZW7DrTogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWRhLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWRhLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmViYjUxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZGEucGhwCkBAIC0wLDAgKzEsMjggQEAKKzw/cGhwCisvKioKKyAqIERhbmlzaCBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgSm9obiBTZWJhc3RpYW4gPGptc0Bpd2IuZGs+CisgKiBSZXdyaXRlIGFuZCBleHRlbnNpb24gb2YgdGhlIHdvcmsgYnkgTWlrYWVsIFN0b2trZWJybyA8aW5mb0BzdG9ra2Vicm8uZGs+IAorICogIAorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdTTVRQIGZlamw6IExvZ2luIG1pc2x5a2tlZGVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCBmZWpsOiBGb3JiaW5kZWxzZSB0aWwgU01UUCBzZXJ2ZXJlbiBrdW5uZSBpa2tlIG9wcmV0dGVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUCBmZWpsOiBEYXRhIGJsZXYgaWtrZSBhY2NlcHRlcmV0Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnTWVkZGVsZWxzZW4gZXIgdWRlbiBpbmRob2xkJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdVa2VuZHQgZW5jb2RlLWZvcm1hdDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdLdW5uZSBpa2tlIGFmdmlrbGU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnS3VubmUgaWtrZSB0aWxnw6UgZmlsZW46ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnRmlsIGZlamw6IEt1bm5lIGlra2Ugw6VibmUgZmlsZW46ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnRsO4bGdlbmRlIGFmc2VuZGVyYWRyZXNzZSBlciBmb3JrZXJ0OiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ0VtYWlsIGZ1bmt0aW9uZW4ga3VubmUgaWtrZSBpbml0aWFsaXNlcmVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnVWRneWxkaWcgYWRyZXNzZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIHVuZGVyc3TDuHR0ZXMgaWtrZS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0luZHRhc3QgbWluZHN0IGVuIG1vZHRhZ2VycyBlbWFpbCBhZHJlc3NlLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCBmZWpsOiBGw7hsZ2VuZGUgbW9kdGFnZXJlIGVyIGZvcmtlcnRlOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ1NpZ25lcmluZ3NmZWpsOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIGZlamxlZGUuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIHNlcnZlciBmZWpsOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0t1bm5lIGlra2UgZGVmaW5lcmUgZWxsZXIgbnVsc3RpbGxlIHZhcmlhYmxlbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdVZHZpZGVsc2UgbWFuZ2xlcjogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWRlLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWRlLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTk4N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZGUucGhwCkBAIC0wLDAgKzEsMjUgQEAKKzw/cGhwCisvKioKKyAqIEdlcm1hbiBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUC1GZWhsZXI6IEF1dGhlbnRpZml6aWVydW5nIGZlaGxnZXNjaGxhZ2VuLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUC1GZWhsZXI6IEtvbm50ZSBrZWluZSBWZXJiaW5kdW5nIHp1bSBTTVRQLUhvc3QgaGVyc3RlbGxlbi4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAtRmVobGVyOiBEYXRlbiB3ZXJkZW4gbmljaHQgYWt6ZXB0aWVydC4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ0UtTWFpbC1JbmhhbHQgaXN0IGxlZXIuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdVbmJla2FubnRlIEtvZGllcnVuZzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdLb25udGUgZm9sZ2VuZGVuIEJlZmVobCBuaWNodCBhdXNmw7xocmVuOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ1p1Z3JpZmYgYXVmIGZvbGdlbmRlIERhdGVpIGZlaGxnZXNjaGxhZ2VuOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0RhdGVpZmVobGVyOiBLb25udGUgZm9sZ2VuZGUgRGF0ZWkgbmljaHQgw7ZmZm5lbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdEaWUgZm9sZ2VuZGUgQWJzZW5kZXJhZHJlc3NlIGlzdCBuaWNodCBrb3JyZWt0OiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ01haWwtRnVua3Rpb24ga29ubnRlIG5pY2h0IGluaXRpYWxpc2llcnQgd2VyZGVuLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnRGllIEFkcmVzc2UgaXN0IHVuZ8O8bHRpZzogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIHdpcmQgbmljaHQgdW50ZXJzdMO8dHp0Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnQml0dGUgZ2ViZW4gU2llIG1pbmRlc3RlbnMgZWluZSBFbXBmw6RuZ2VyYWRyZXNzZSBhbi4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAtRmVobGVyOiBEaWUgZm9sZ2VuZGVuIEVtcGbDpG5nZXIgc2luZCBuaWNodCBrb3JyZWt0OiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0ZlaGxlciBiZWltIFNpZ25pZXJlbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdWZXJiaW5kdW5nIHp1bSBTTVRQLVNlcnZlciBmZWhsZ2VzY2hsYWdlbi4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ0ZlaGxlciB2b20gU01UUC1TZXJ2ZXI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnS2FubiBWYXJpYWJsZSBuaWNodCBzZXR6ZW4gb2RlciB6dXLDvGNrc2V0emVuOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0ZlaGxlbmRlIEVyd2VpdGVydW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZWwucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZWwucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMDk2NDEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1lbC5waHAKQEAgLTAsMCArMSwyNSBAQAorPD9waHAKKy8qKgorICogR3JlZWsgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgzqPPhs6szrvOvM6xOiDOkc60z4XOvc6xzrzOr86xIM+AzrnPg8+Ezr/PgM6/zq/Ot8+DzrfPgiAoYXV0aGVudGljYXRpb24pLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCDOo8+GzqzOu868zrE6IM6RzrTPhc69zrHOvM6vzrEgz4PPjc69zrTOtc+DzrfPgiDPg8+Ezr/OvSBTTVRQLUhvc3QuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIM6jz4bOrM67zrzOsTogzqTOsSDOtM61zrTOv868zq3Ovc6xIM60zrXOvSDOrc6zzrnOvc6xzr0gzrHPgM6/zrTOtc66z4TOrC4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ86kzr8gRS1NYWlsIM60zrXOvSDOrc+HzrXOuSDPgM61z4HOuc61z4fPjM68zrXOvc6/IC4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ86RzrPOvc+Jz4PPhM6/IEVuY29kaW5nLUZvcm1hdDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICfOkc60z4XOvc6xzrzOr86xIM61zrrPhM6tzrvOtc+DzrfPgiDOsc66z4zOu86/z4XOuM63z4IgzrXOvc+Ezr/Ou86uz4I6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnzpHOtM+Fzr3Osc68zq/OsSDPgM+Bzr/Pg8+Azq3Ou86xz4POt8+CIM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfOo8+GzqzOu868zrEgzpHPgc+HzrXOr86/z4U6IM6UzrXOvSDOtc6vzr3Osc65IM60z4XOvc6xz4TPjCDPhM6/IM6szr3Ov865zrPOvM6xIM+Ezr/PhSDOsc66z4zOu86/z4XOuM6/z4UgzrHPgc+HzrXOr86/z4U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnzpcgz4DOsc+BzrHOus6sz4TPiSDOtM65zrXPjc64z4XOvc+DzrcgzrHPgM6/z4PPhM6/zrvOrc6xIM60zrXOvSDOtc6vzr3Osc65IM+Dz4nPg8+Ezq46ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnzpHOtM+Fzr3Osc68zq/OsSDOtc66zrrOr869zrfPg863z4IgTWFpbCBmdW5jdGlvbi4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ86kzr8gzrzOrs69z4XOvM6xIM60zrXOvSDOtc+Dz4TOrM67zrcsIM63IM60zrnOtc+NzrjPhc69z4POtyDOtM61zr0gzrXOr869zrHOuSDOrc6zzrrPhc+Bzrc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIG1haWxlciDOtM61zr0gz4XPgM6/z4PPhM63z4HOr862zrXPhM6xzrkuJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICfOoM6xz4HOsc66zrHOu86/z43OvM61IM60z47Pg8+EzrUgz4TOv8+FzrvOrM+HzrnPg8+Ezr/OvSDOvM65zrEgZS1tYWlsIM60zrnOtc+NzrjPhc69z4POtyDPgM6xz4HOsc67zq7PgM+EzrcuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIM6jz4bOrM67zrzOsTogzp/OuSDPgM6xz4HOsc66zqzPhM+JIM60zrnOtc+FzrjPjc69z4POtc65z4Igz4DOsc+BzrHOu86uz4DPhM63IM60zrXOvSDOtc6vzr3Osc65IM6tzrPOus+Fz4HOtc+COiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ86jz4bOrM67zrzOsSDPhc+Azr/Os8+BzrHPhs6uz4I6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnzpHPgM6/z4TPhc+Hzq/OsSDPg8+Nzr3OtM61z4POt8+CIM+Dz4TOv869IFNNVFAgU2VydmVyLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnzqPPhs6szrvOvM6xIM6xz4DPjCDPhM6/zr0gU01UUCBTZXJ2ZXI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnzpHOtM+Fzr3Osc68zq/OsSDOv8+BzrnPg868zr/PjSDOriDOsc+Bz4fOuc66zr/PgM6/zq/Ot8+DzrfPgiDOvM61z4TOsc6yzrvOt8+Ezq7PgjogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZW8ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZW8ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYTZjYjcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1lby5waHAKQEAgLTAsMCArMSwyNSBAQAorPD9waHAKKy8qKgorICogRXNwZXJhbnRvIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdFcmFybyBkZSBzZXJ2aWxvIFNNVFDCoDogYcWtdGVudGlnbyBtYWxzdWtjZXNpcy4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ0VyYXJvIGRlIHNlcnZpbG8gU01UUMKgOiBrb25la3RhZG8gYWwgc2VydmlsbyBtYWxzdWtjZXNpcy4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ0VyYXJvIGRlIHNlcnZpbG8gU01UUMKgOiBuZcSddXN0YWogZGF0dW1vai4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ1Rla3N0byBkZSBtZXNhxJ1vIG1hbmthcy4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ05la29uYXRhIGtvZG9wcmV6ZW50bzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdMYW7EiWkgcnVsdW1hZG9uIG5lIGVibGlzOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0FsaXJvIGFsIGRvc2llcm8gbmUgc3VrY2VzaXM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnRXJhcm8gZGUgZG9zaWVybzogbWFsZmVybW8gbmVlYmxhczogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdKZW5hIGFkcmVzbyBkZSBzZW5kaW50byBtYWxzdWtjZXNpczogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdHZW5lcm8gZGUgcmV0bWVzYcSdYSBmdW5rY2lvIG5lZWJsaXMuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdSZXRhZHJlc28gbmUgdmFsaWRhczogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWVzYcSdaWxvIG5lIHN1YnRlbmF0YS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ1ZpIGRldmFzIHRhanBpIGFsbWVuYcWtIHVudSByZWNldm9udGFuIHJldGFkcmVzb24uJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdFcmFybyBkZSBzZXJ2aWxvIFNNVFDCoDogbGEgamVuYWogcG/FnXRyZWNpdnVsb2oga2HFrXppcyBlcmFyb246ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnRXJhcm8gZGUgc3Vic2tyaWJvOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAga29uZWt0YWRvIG1hbHN1a2Nlc2lzLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnRXJhcm8gZGUgc2VydmlsbyBTTVRQwqA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnVmFyaWFibG8gbmUgcHJhdmFsb3JpemVibGFzIGHFrSBuZSByZXByYXZhbG9yaXplYmxhczogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdNYW5rYXMgZXRlbmRvOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZXMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZXMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYzRlODMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1lcy5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogU3BhbmlzaCBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgTWF0dCBTdHVyZHkgPG1hdHQuc3R1cmR5QGdtYWlsLmNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnRXJyb3IgU01UUDogSW1wb3NpYmxlIGF1dGVudGlmaWNhci4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ0Vycm9yIFNNVFA6IEltcG9zaWJsZSBjb25lY3RhciBhbCBzZXJ2aWRvciBTTVRQLic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnRXJyb3IgU01UUDogRGF0b3Mgbm8gYWNlcHRhZG9zLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnRWwgY3VlcnBvIGRlbCBtZW5zYWplIGVzdMOhIHZhY8Otby4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ0NvZGlmaWNhY2nDs24gZGVzY29ub2NpZGE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnSW1wb3NpYmxlIGVqZWN1dGFyOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0ltcG9zaWJsZSBhY2NlZGVyIGFsIGFyY2hpdm86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnRXJyb3IgZGUgQXJjaGl2bzogSW1wb3NpYmxlIGFicmlyIGVsIGFyY2hpdm86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnTGEocykgc2lndWllbnRlKHMpIGRpcmVjY2lvbmVzIGRlIHJlbWl0ZW50ZSBmYWxsYXJvbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdJbXBvc2libGUgY3JlYXIgdW5hIGluc3RhbmNpYSBkZSBsYSBmdW5jacOzbiBNYWlsLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnSW1wb3NpYmxlIGVudmlhcjogZGlyZWNjacOzbiBkZSBlbWFpbCBpbnbDoWxpZG86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIG1haWxlciBubyBlc3TDoSBzb3BvcnRhZG8uJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdEZWJlIHByb3BvcmNpb25hciBhbCBtZW5vcyB1bmEgZGlyZWNjacOzbiBkZSBlbWFpbCBkZSBkZXN0aW5vLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnRXJyb3IgU01UUDogTG9zIHNpZ3VpZW50ZXMgZGVzdGlub3MgZmFsbGFyb246ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnRXJyb3IgYWwgZmlybWFyOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIGZhbGzDsy4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ0Vycm9yIGRlbCBzZXJ2aWRvciBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ05vIHNlIHB1ZG8gY29uZmlndXJhciBsYSB2YXJpYWJsZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpw7NuIGZhbHRhbnRlOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZXQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZXQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMDZkYTEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1ldC5waHAKQEAgLTAsMCArMSwyNyBAQAorPD9waHAKKy8qKgorICogRXN0b25pYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEluZHJlayBQw6RyaQorICogQGF1dGhvciBFbGFuIFJ1dXNhbcOkZSA8Z2xlbkBkZWxmaS5lZT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCBWaWdhOiBBdXRvcmlzZWVyaW1pc2UgdmlnYS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgVmlnYTogRWkgw7VubmVzdHVudWQgbHV1YSDDvGhlbmR1c3QgU01UUCBzZXJ2ZXJpZ2EuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIFZpZ2E6IFZpZ2FzZWQgYW5kbWVkLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnVMO8aGkga2lyamEgc2lzdSc7CiskUEhQTUFJTEVSX0xBTkdbImVuY29kaW5nIl0gICAgICAgICAgICAgPSAnVHVuZG1hdHUga29kZWVyaW5nOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ1RlZ2V2dXMgZWJhw7VubmVzdHVzOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ1BvbGUgcGlpc2F2YWx0IMO1aWd1c2VpZCBqw6RyZ25ldmEgZmFpbGkgYXZhbWlzZWtzOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0ZhaWxpIFZpZ2E6IEZhaWxpIGF2YW1pbmUgZWJhw7VubmVzdHVzOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0rDpHJnbmV2IHNhYXRqYSBlLXBvc3RpIGFhZHJlc3Mgb24gdmlnYW5lOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ21haWwgZnVua3Rpb29uaSBrw6Rpdml0YW1pbmUgZWJhw7VubmVzdHVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnU2FhdG1pbmUgcGVhdGF0dWQsIGUtcG9zdGkgYWRkcmVzcyB2aWdhbmU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnVGUgcGVhdGUgbcOkw6RyYW1hIHbDpGhlbWFsdCDDvGhlIHNhYWphIGUtcG9zdGkgYWFkcmVzc2kuJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyaSB0dWdpIHB1dWR1Yi4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAgVmlnYTogSsOkcmduZXZhdGUgc2FhamF0ZSBlLXBvc3RpIGFhZHJlc3NpZCBvbiB2aWdhc2VkOiAnOworJFBIUE1BSUxFUl9MQU5HWyJzaWduaW5nIl0gICAgICAgICAgICAgID0gJ1ZpZ2EgYWxsa2lyamFzdGFtaXNlbDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIENvbm5lY3QoKSBlYmHDtW5uZXN0dXMuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIHNlcnZlcmkgdmlnYTogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdFaSDDtW5uZXN0dW51ZCBtw6TDpHJhdGEgdsO1aSBsw6RodGVzdGFkYSBtdXV0dWphdDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdOw7V1dHVkIGxhaWVuZHVzIG9uIHB1dWR1OiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZmEucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZmEucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhYTBhZDIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1mYS5waHAKQEAgLTAsMCArMSwyNyBAQAorPD9waHAKKy8qKgorICogUGVyc2lhbi9GYXJzaSBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgQWxpIEphemF5ZXJpIDxqYXphLmFsaUBnbWFpbC5jb20+CisgKiBAYXV0aG9yIE1vaGFtbWFkIEhvc3NlaW4gTW9qdGFoZWRpIDxtaG01MDAwQGdtYWlsLmNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAn2K7Yt9in24wgU01UUDog2KfYrdix2KfYsiDZh9mI24zYqiDYqNinINi02qnYs9iqINmF2YjYp9is2Ycg2LTYry4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ9iu2LfYp9uMIFNNVFA6INin2KrYtdin2YQg2KjZhyDYs9ix2YjYsSBTTVRQINio2LHZgtix2KfYsSDZhti02K8uJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICfYrti32KfbjCBTTVRQOiDYr9in2K/Zh+KAjNmH2Kcg2YbYp+KAjNiv2LHYs9iqINmH2LPYqtmG2K8uJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICfYqNiu2LQg2YXYqtmGINm+24zYp9mFINiu2KfZhNuMINin2LPYqi4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ9qp2K/igIzar9iw2KfYsduMINmG2KfigIzYtNmG2KfYrtiq2Yc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAn2KfZhdqp2KfZhiDYp9is2LHYpyDZiNis2YjYryDZhtiv2KfYsdivOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ9in2YXaqdin2YYg2K/Ys9iq2LHYs9uMINio2Ycg2YHYp9uM2YQg2YjYrNmI2K8g2YbYr9in2LHYrzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfYrti32KfbjCBGaWxlOiDYp9mF2qnYp9mGINio2KfYstqp2LHYr9mGINmB2KfbjNmEINmI2KzZiNivINmG2K/Yp9ix2K86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn2KLYr9ix2LMg2YHYsdiz2KrZhtiv2Ycg2KfYtNiq2KjYp9mHINin2LPYqjogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICfYp9mF2qnYp9mGINmF2LnYsdmB24wg2KrYp9io2Lkg2KfbjNmF24zZhCDZiNis2YjYryDZhtiv2KfYsdivLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAn2KLYr9ix2LMg2KfbjNmF24zZhCDZhdi52KrYqNixINmG24zYs9iqOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyBtYWlsZXIg2b7YtNiq24zYqNin2YbbjCDZhtmF24zigIzYtNmI2K8uJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICfYqNin24zYryDYrdiv2KfZgtmEINuM2qkg2KLYr9ix2LMg2q/bjNix2YbYr9mHINmI2KfYsdivINqp2YbbjNivLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAn2K7Yt9in24wgU01UUDog2KfYsdiz2KfZhCDYqNmHINii2K/YsdizINqv24zYsdmG2K/ZhyDYqNinINiu2LfYpyDZhdmI2KfYrNmHINi02K86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAn2K7Yt9inINiv2LEg2KfZhdi22Kc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAn2K7Yt9inINiv2LEg2KfYqti12KfZhCDYqNmHIFNNVFAuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICfYrti32Kcg2K/YsSBTTVRQIFNlcnZlcjogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICfYp9mF2qnYp9mGINin2LHYs9in2YQg24zYpyDYp9ix2LPYp9mEINmF2KzYr9ivINmF2KrYutuM2LHigIzZh9inINmI2KzZiNivINmG2K/Yp9ix2K86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAn2KfZgdiy2YjZhtmHINmF2YjYrNmI2K8g2YbbjNiz2Ko6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1maS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1maS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM0ZTc1MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWZpLnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorLyoqCisgKiBGaW5uaXNoIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBKeXJ5IEt1dWthbmVuCisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAtdmlyaGU6IGvDpHl0dMOkasOkdHVubmlzdHVzIGVww6Rvbm5pc3R1aS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAtdmlyaGU6IHlodGV5cyBwYWx2ZWxpbWVlbiBlaSBvbm5pc3R1Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUC12aXJoZTogZGF0YSBvbiB2aXJoZWVsbGluZW4uJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ01lc3NhZ2UgYm9keSBlbXB0eSc7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnVHVudGVtYXRvbiBrb29kYXVzdHl5cHBpOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ1N1b3JpdHVzIGVww6Rvbm5pc3R1aTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdTZXVyYWF2YWFuIHRpZWRvc3Rvb24gZWkgb2xlIG9pa2V1a3NpYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdUaWVkb3N0b3ZpcmhlOiBFaSB2b2lkYSBhdmF0YSB0aWVkb3N0b2E6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnU2V1cmFhdmEgbMOkaGV0dMOkasOkbiBvc29pdGUgb24gdmlyaGVlbGxpbmVuOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ21haWwtZnVua3Rpb24gbHVvbnRpIGVww6Rvbm5pc3R1aS4nOworLy8kUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnSW52YWxpZCBhZGRyZXNzOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJ3Bvc3RpdsOkbGl0aW50eXlwcGnDpCBlaSB0dWV0YS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0FzZXRhIHbDpGhpbnTDpMOkbiB5a3NpIHZhc3RhYW5vdHRhamFuIHPDpGhrJm91bWw7cG9zdGlvc29pdGUuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQLXZpcmhlOiBzZXVyYWF2YSB2YXN0YWFub3R0YWphIG9zb2l0ZSBvbiB2aXJoZWVsbGluZW4uJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdUdW50ZW1hdG9uIGtvb2RhdXN0eXlwcGk6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdTaWduaW5nIEVycm9yOiAnOworLy8kUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgZmFpbGVkLic7CisvLyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIHNlcnZlciBlcnJvcjogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0Nhbm5vdCBzZXQgb3IgcmVzZXQgdmFyaWFibGU6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpb24gbWlzc2luZzogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWZvLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWZvLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGNkZWYxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZm8ucGhwCkBAIC0wLDAgKzEsMjYgQEAKKzw/cGhwCisvKioKKyAqIEZhcm9lc2UgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIETDoXZ1ciBTw7hyZW5zZW4gPGh0dHA6Ly93d3cucHJvZm8td2ViZGVzaWduLmRrPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdTTVRQIGZlaWx1cjogS3VuZGkgaWtraSBnw7PDsGtlbm5hLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCBmZWlsdXI6IEt1bmRpIGlra2kga27DvXRhIHNhbWJhbmQgdmnDsCBTTVRQIHZlcnQuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIGZlaWx1cjogRGF0YSBpa2tpIGfDs8Owa2VudC4nOworLy8kUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnTWVzc2FnZSBib2R5IGVtcHR5JzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfDk2tlbmQgZW5jb2Rpbmc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnS3VuZGkgaWtraSDDunRmw7hyYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdLdW5kaSBpa2tpIHRpbGdhbmdhIGbDrWx1OiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0bDrWx1IGZlaWx1cjogS3VuZGkgaWtraSBvcG5hIGbDrWx1OiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ2Z5bGdqYW5kaSBGcsOhL0Zyb20gYWRyZXNzYSBtaXNleWRuYcOwaXN0OiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ0t1bmkgaWtraSBpbnN0YW50aWVyYSBtYWlsIGZ1bmt0acOzbi4nOworLy8kUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnSW52YWxpZCBhZGRyZXNzOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyBlciBpa2tpIHN1cHBvcnRlcmHDsC4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ1TDuiBza2FsIHVwcGdldmEgbWluc3QgbcOzdHRha2FyYS1lbWFpbGFkcmVzc3UocikuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIEZlaWx1cjogRnlsZ2phbmRpIG3Ds3R0YWthcmFyIG1pc2V5ZG5hw7B1c3Q6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdTaWduaW5nIEVycm9yOiAnOworLy8kUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgZmFpbGVkLic7CisvLyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIHNlcnZlciBlcnJvcjogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0Nhbm5vdCBzZXQgb3IgcmVzZXQgdmFyaWFibGU6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpb24gbWlzc2luZzogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWZyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWZyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjY4YzkyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZnIucGhwCkBAIC0wLDAgKzEsMjkgQEAKKzw/cGhwCisvKioKKyAqIEZyZW5jaCBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIFNvbWUgRnJlbmNoIHB1bmN0dWF0aW9uIHJlcXVpcmVzIGEgdGhpbiBub24tYnJlYWtpbmcgc3BhY2UgKFUrMjAyRikgY2hhcmFjdGVyIGJlZm9yZSBpdCwKKyAqIGZvciBleGFtcGxlIGJlZm9yZSBhIGNvbG9uIG9yIGV4Y2xhbWF0aW9uIG1hcmsuCisgKiBUaGVyZSBpcyBvbmUgb2YgdGhlc2UgY2hhcmFjdGVycyBiZXR3ZWVuIHRoZXNlIHF1b3RlczogIuKAryIKKyAqIEBzZWUgaHR0cDovL3VuaWNvZGUub3JnL3VkaHIvbi9ub3Rlc19mcmEuaHRtbAorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdFcnJldXIgU01UUOKArzogw6ljaGVjIGRlIGxcJ2F1dGhlbnRpZmljYXRpb24uJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdFcnJldXIgU01UUOKArzogaW1wb3NzaWJsZSBkZSBzZSBjb25uZWN0ZXIgYXUgc2VydmV1ciBTTVRQLic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnRXJyZXVyIFNNVFDigK86IGRvbm7DqWVzIGluY29ycmVjdGVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnQ29ycHMgZHUgbWVzc2FnZSB2aWRlLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnRW5jb2RhZ2UgaW5jb25udeKArzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdJbXBvc3NpYmxlIGRlIGxhbmNlciBsXCdleMOpY3V0aW9u4oCvOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0ltcG9zc2libGUgZFwnYWNjw6lkZXIgYXUgZmljaGllcuKArzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdPdXZlcnR1cmUgZHUgZmljaGllciBpbXBvc3NpYmxl4oCvOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0xcJ2FkcmVzc2UgZFwnZXhww6lkaXRldXIgc3VpdmFudGUgYSDDqWNob3XDqeKArzogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdJbXBvc3NpYmxlIGRcJ2luc3RhbmNpZXIgbGEgZm9uY3Rpb24gbWFpbC4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0xcJ2FkcmVzc2UgY291cnJpZWwgblwnZXN0IHBhcyB2YWxpZGXigK86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIGNsaWVudCBkZSBtZXNzYWdlcmllIG5vbiBzdXBwb3J0w6kuJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdWb3VzIGRldmV6IGZvdXJuaXIgYXUgbW9pbnMgdW5lIGFkcmVzc2UgZGUgZGVzdGluYXRhaXJlLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnRXJyZXVyIFNNVFDigK86IGxlcyBkZXN0aW5hdGFpcmVzIHN1aXZhbnRzIHNvbnQgZW4gZXJyZXVy4oCvOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0VycmV1ciBkZSBzaWduYXR1cmXigK86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnw4ljaGVjIGRlIGxhIGNvbm5leGlvbiBTTVRQLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnRXJyZXVyIGR1IHNlcnZldXIgU01UUOKArzogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdJbXBvc3NpYmxlIGRcJ2luaXRpYWxpc2VyIG91IGRlIHLDqWluaXRpYWxpc2VyIHVuZSB2YXJpYWJsZeKArzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpb24gbWFucXVhbnRl4oCvOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZ2wucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctZ2wucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNGNlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1nbC5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogR2FsaWNpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIGJ5IERvbmF0byBSb3VjbyA8ZG9uYXRvcm91Y29AZ21haWwuY29tPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdFcnJvIFNNVFA6IE5vbiBwdWlkbyBzZXIgYXV0ZW50aWZpY2Fkby4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ0Vycm8gU01UUDogTm9uIHB1aWRvIGNvbmVjdGFyIGNvIHNlcnZpZG9yIFNNVFAuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdFcnJvIFNNVFA6IERhdG9zIG5vbiBhY2VwdGFkb3MuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdDb3JwbyBkYSBtZW5zYXhlIHZhY8OtYSc7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnQ29kaWZpY2FjacOzbiBkZXNjb8OxZWNpZGE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnTm9uIHB1aWRvIHNlciBleGVjdXRhZG86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnTm9iIHB1aWRvIGFjY2VkZXIgw7MgYXJxdWl2bzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdFcnJvIGRlIEFycXVpdm86IE5vIHB1aWRvIGFicmlyIG8gYXJxdWl2bzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdBKHMpIHNlZ3VpbnRlKHMpIGRpcmVjY2nDs24ocykgZGUgcmVtaXRlbnRlKHMpIGRlcm9uIGVycm86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnTm9uIHB1aWRvIGNyZWFyIHVuaGEgaW5zdGFuY2lhIGRhIGZ1bmNpw7NuIE1haWwuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdOb24gcHVpZG8gZW52aWEtbG8gY29ycmVvOiBkaXJlY2Npw7NuIGRlIGVtYWlsIGludsOhbGlkYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG5vbiBlc3TDoSBzb3BvcnRhZG8uJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdEZWJlIGVuZ2FkaXIgcG9sbyBtZW5vcyB1bmhhIGRpcmVjY2nDs24gZGUgZW1haWwgY29tYSBkZXN0aW5vLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnRXJybyBTTVRQOiBPcyBzZWd1aW50ZXMgZGVzdGlub3MgZmFsbGFyb246ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnRXJybyDDsyBmaXJtYXI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgZmFsbG91Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnRXJybyBkbyBzZXJ2aWRvciBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ05vbiBwdWlkZW1vcyBheHVzdGFyIG91IHJlYXh1c3RhciBhIHZhcmnDoWJlbDogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctaGUucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctaGUucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwZWI3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1oZS5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogSGVicmV3IFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBSb25ueSBTaGVyZXIgPHJvbm55QGhvb2ppbWEuY29tPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICfXqdeS15nXkNeqIFNNVFA6INek16LXldec16og15TXkNeZ157XldeqINeg15vXqdec15QuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICfXqdeS15nXkNeqIFNNVFA6INec15Ag15TXptec15fXqteZINec15TXqteX15HXqCDXnNep16jXqiBTTVRQLic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAn16nXkteZ15DXqiBTTVRQOiDXnteZ15PXoiDXnNeQINeU16rXp9eR15wuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICfXkteV16Mg15TXlNeV15PXoteUINeo15nXpyc7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAn15vXqteV15HXqiDXqdeS15XXmdeUOiAnOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ9en15nXk9eV15Mg15zXkCDXnteV15vXqDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICfXnNeQINeU16bXnNeX16rXmSDXnNeU16TXoteZ15wg15DXqjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICfXnNeQINeg15nXqtefINec15LXqdeqINec16fXldeR16U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAn16nXkteZ15DXqiDXp9eV15HXpTog15zXkCDXoNeZ16rXnyDXnNeS16nXqiDXnNen15XXkdelOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ9eb16rXldeR15XXqiDXlNeg157Xoteg15nXnSDXlNeR15DXldeqINeg15vXqdec15U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn15zXkCDXlNem15zXl9eq15kg15zXlNek16LXmdecINeQ16og16TXldeg16fXpteZ15nXqiDXlNee15nXmdecLic7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnINeQ15nXoNeUINeg16rXnteb16ouJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICfXl9eV15HXlCDXnNeh16TXpyDXnNek15fXldeqINeb16rXldeR16og15DXl9eqINep15wg157Xp9eR15wg15TXnteZ15nXnC4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ9ep15LXmdeQ16ogU01UUDog15TXoNee16LXoNeZ150g15TXkdeQ15nXnSDXoNeb16nXnNeVOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ9ep15LXmdeQ16og15fXqteZ157XlDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIENvbm5lY3QoKSBmYWlsZWQuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICfXqdeS15nXkNeqINep16jXqiBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ9ec15Ag16DXmdeq158g15zXp9eR15XXoiDXkNeVINec16nXoNeV16og15DXqiDXlNee16nXqteg15Q6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpb24gbWlzc2luZzogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWhpLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWhpLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDdhNWVlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctaGkucGhwCkBAIC0wLDAgKzEsMjYgQEAKKzw/cGhwCisvKioKKyAqIEhpbmRpIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBZYXNoIEthcmFua2UgPG1yLmthcmFua2VAZ21haWwuY29tPgorICovCisgCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCDgpKTgpY3gpLDgpYHgpJ/gpL86IOCkquCljeCksOCkvuCkruCkvuCko+Ckv+CkleCkpOCkviDgpJXgpYAg4KSc4KS+4KSC4KSaIOCkqOCkueClgOCkgiDgpLngpYsg4KS44KSV4KS+4KWkICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCDgpKTgpY3gpLDgpYHgpJ/gpL86IFNNVFAg4KS44KSw4KWN4KS14KSwIOCkuOClhyDgpJXgpKjgpYfgpJXgpY3gpJ8g4KSo4KS54KWA4KSCIOCkueCliyDgpLjgpJXgpL7gpaQgJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIOCkpOCljeCksOClgeCkn+Ckvzog4KSh4KWH4KSf4KS+IOCkuOCljeCkteClgOCkleCkvuCksCDgpKjgpLngpYDgpIIg4KSV4KS/4KSv4KS+IOCknOCkvuCkpOCkviDgpLngpYjgpaQgJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICfgpLjgpILgpKbgpYfgpLYg4KSW4KS+4KSy4KWAIOCkueCliOClpCAnOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ+CkheCknOCljeCknuCkvuCkpCDgpI/gpKjgpY3gpJXgpYvgpKHgpL/gpILgpJcg4KSq4KWN4KSw4KSV4KS+4KSw4KWkICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAn4KSG4KSm4KWH4KS2IOCkleCliyDgpKjgpL/gpLfgpY3gpKrgpL7gpKbgpL/gpKQg4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpLXgpL/gpKvgpLLgpaQgJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICfgpKvgpLzgpL7gpIfgpLIg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkqOCkueClgOCkgiDgpLngpYjgpaQgJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfgpKvgpLzgpL7gpIfgpLIg4KSk4KWN4KSw4KWB4KSf4KS/OiDgpKvgpL7gpIfgpLIg4KSV4KWLIOCkluCli+CksuCkviDgpKjgpLngpYDgpIIg4KSc4KS+IOCkuOCkleCkvuClpCAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ+CkquCljeCksOClh+Ckt+CklSDgpJXgpL4g4KSq4KSk4KS+IOCkl+CksuCkpCDgpLngpYjgpaQgJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICfgpK7gpYfgpLIg4KSr4KS84KSC4KSV4KWN4KS24KSoIOCkleClieCksiDgpKjgpLngpYDgpIIg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYjgpaQnOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ+CkquCkpOCkviDgpJfgpLLgpKQg4KS54KWI4KWkICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAn4KSu4KWH4KSyIOCkuOCksOCljeCkteCksCDgpJXgpYcg4KS44KS+4KSlIOCkleCkvuCkriDgpKjgpLngpYDgpIIg4KSV4KSw4KSk4KS+IOCkueCliOClpCAnOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ+CkhuCkquCkleCliyDgpJXgpK4g4KS44KWHIOCkleCkriDgpI/gpJUg4KSq4KWN4KSw4KS+4KSq4KWN4KSk4KSV4KSw4KWN4KSk4KS+IOCkleCkviDgpIgt4KSu4KWH4KSyIOCkquCkpOCkviDgpKrgpY3gpLDgpKbgpL7gpKgg4KSV4KSw4KSo4KS+IOCkueCli+Ckl+CkvuClpCc7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCDgpKTgpY3gpLDgpYHgpJ/gpL86IOCkqOCkv+CkruCljeCkqCDgpKrgpY3gpLDgpL7gpKrgpY3gpKTgpJXgpLDgpY3gpKTgpL7gpJPgpIIg4KSV4KWLIOCkquCkpOClhyDgpK3gpYfgpJzgpKjgpYcg4KSu4KWH4KSCIOCkteCkv+Ckq+CksuClpCAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ+CkuOCkvuCkh+CkqOCkheCkqiDgpKTgpY3gpLDgpYHgpJ/gpL864KWkICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCDgpJXgpL4gY29ubmVjdCAoKSDgpKvgpLzgpILgpJXgpY3gpLbgpKgg4KS14KS/4KSr4KSyIOCkueClgeCkhuClpCAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAg4KS44KSw4KWN4KS14KSwIOCkpOCljeCksOClgeCkn+Ckv+ClpCAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ+CkmuCksCDgpJXgpYsg4KSs4KSo4KS+IOCkr+CkviDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSo4KS54KWA4KSCIOCkleCkv+Ckr+CkviDgpJzgpL4g4KS44KSV4KSk4KS+4KWkICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAn4KSP4KSV4KWN4KS44KSf4KWH4KSo4KWN4KS34KSoIOCkl+CkvuCkr+CkrCDgpLngpYg6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1oci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1oci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyMjkyMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWhyLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBDcm9hdGlhbiBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgSHJ2b2ozZSA8aHJ2b2ozZUBnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgR3JlxaFrYTogTmV1c3BqZWxhIGF1dGVudGlrYWNpamEuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdTTVRQIEdyZcWha2E6IE5lIG1vZ3Ugc2Ugc3Bvaml0aSBuYSBTTVRQIHBvc2x1xb5pdGVsai4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAgR3JlxaFrYTogUG9kYXRjaSBuaXN1IHByaWh2YcSHZW5pLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnU2FkcsW+YWogcG9ydWtlIGplIHByYXphbi4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ05lcG96bmF0aSBlbmNvZGluZzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdOaWplIG1vZ3XEh2UgaXp2csWhaXRpIG5hcmVkYnU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnTmlqZSBtb2d1xIdlIHByaXN0dXBpdGkgZGF0b3RlY2k6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnTmlqZSBtb2d1xIdlIG90dm9yaXRpIGRhdG90ZWt1OiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ1NNVFAgR3JlxaFrYTogU2xhbmplIHMgbmF2ZWRlbmloIGUtbWFpbCBhZHJlc2EgbmlqZSB1c3BqZWxvOiAnOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAgR3JlxaFrYTogU2xhbmplIG5hIG5hdmVkZW5paCBlLW1haWwgYWRyZXNhIG5pamUgdXNwamVsbzogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdOZSBtb2d1IHBva3JlbnV0aSBtYWlsIGZ1bmtjaW9uYWxub3N0Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnRS1tYWlsIG5pamUgcG9zbGFuLiBOZWlzcHJhdm5hIGUtbWFpbCBhZHJlc2E6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIG1haWxlciBuaWplIHBvZHLFvmFuLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnRGVmaW5pcmFqdGUgYmFyZW0gamVkbnUgYWRyZXN1IHByaW1hdGVsamEuJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdHcmXFoWthIHByaWxpa29tIHByaWphdmU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU3BhamFuamUgbmEgU01UUCBwb3NsdcW+aXRlbGogbmlqZSB1c3BqZWxvLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnR3JlxaFrYSBTTVRQIHBvc2x1xb5pdGVsamE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnTmUgbW9ndSBwb3N0YXZpdGkgdmFyaWphYmx1IG5pdGkganUgdnJhdGl0aSBuYXphZDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdOZWRvc3RhamUgcHJvxaFpcmVuamU6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1odS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1odS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk2Y2RkYwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWh1LnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBIdW5nYXJpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEBkb21pbmljdXMtNzUKKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCBoaWJhOiBheiBhem9ub3PDrXTDoXMgc2lrZXJ0ZWxlbi4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgaGliYTogbmVtIGxlaGV0IGthcGNzb2zDs2RuaSBheiBTTVRQLXN6ZXJ2ZXJoZXouJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIGhpYmE6IGFkYXRvayB2aXNzemF1dGFzw610dmEuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICfDnHJlcyBheiDDvHplbmV0dMO2cnpzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnSXNtZXJldGxlbiBrw7Nkb2zDoXM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnTmVtIGxlaGV0IHbDqWdyZWhhanRhbmk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnQSBrw7Z2ZXRrZXrFkSBmw6FqbCBuZW0gZWzDqXJoZXTFkTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdGw6FqbCBoaWJhOiBhIGvDtnZldGtlesWRIGbDoWpsdCBuZW0gbGVoZXQgbWVnbnlpdG5pOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0EgZmVsYWTDs2vDqW50IG1lZ2Fkb3R0IGvDtnZldGtlesWRIGPDrW0gaGliw6FzOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ0EgUEhQIG1haWwoKSBmw7xnZ3bDqW55dCBuZW0gc2lrZXLDvGx0IHbDqWdyZWhhanRhbmkuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICfDiXJ2w6lueXRlbGVuIGPDrW06ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIGEgbWFpbGVyLW9zenTDoWx5IG5lbSB0w6Ftb2dhdG90dC4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0xlZ2Fsw6FiYiBlZ3kgY8OtbXpldHRldCBmZWwga2VsbCB0w7xudGV0bmkuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIGhpYmE6IGEgY8OtbXpldHRrw6ludCBtZWdhZG90dCBrw7Z2ZXRrZXrFkSBjw61tZWsgaGliw6FzYWs6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnSGliw6FzIGFsw6HDrXLDoXM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnSGliYSBheiBTTVRQLWthcGNzb2xhdGJhbi4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAtc3plcnZlciBoaWJhOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0Ega8O2dmV0a2V6xZEgdsOhbHRvesOzayBiZcOhbGzDrXTDoXNhIG5lbSBzaWtlcsO8bHQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnQsWRdsOtdG3DqW55IGhpw6FueXppazogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWh5LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWh5LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjJhOTY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctaHkucGhwCkBAIC0wLDAgKzEsMjYgQEAKKzw/cGhwCisvKioKKyAqIEFybWVuaWFuIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBIcmF5ciBHcmlnb3J5YW4gPGhyYXlyQGJpdHMuYW0+CisgKi8KKyAKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdTTVRQIC3VqyDVvdWt1aHVrDog1bnVsNWh1bvVuNWy1b7VpdaBINW91b/VuNaC1aPVpdWsINWr1b3Vr9W41oLVqdW11bjWgtW21aguJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdTTVRQIC3VqyDVvdWt1aHVrDog1bnVsNWh1bvVuNWy1b7VpdaBINWv1aHVuiDVsNWh1b3Vv9Wh1b/VpdWsIFNNVFAg1b3VpdaA1b7VpdaA1asg1bDVpdW/Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUCAt1asg1b3VrdWh1aw6INW/1b7VtdWh1azVttWl1oDVqCDVqNW21aTVuNaC1bbVvtWh1a4g1bnVpdW2Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAn1YDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVqCDVpNWh1b/VodaA1a8g1acnOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ9S/1bjVpNWh1b7VuNaA1bTVodW2INWh1bbVsNWh1bXVvyDVv9Wl1b3VodWvOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ9WJ1bDVodW71bjVstW+1aXWgSDVq9aA1aHVr9Wh1bbVodaB1bbVpdWsINWw1oDVodW01aHVttWoOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ9WW1aHVtdWs1agg1bDVodW91aHVttWl1azVqyDVudWnOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ9WW1aHVtdWs1asg1b3VrdWh1aw6INaG1aHVtdWs1agg1bnVsNWh1bvVuNWy1b7VpdaBINWi1aHWgdWl1aw6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn1YjWgtWy1aHWgNWv1bjVstWrINWw1aXVv9aH1bXVodWsINWw1aHVvdaB1aXVtiDVvdWt1aHVrCDVpzogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICfVgNW21aHWgNWh1b7VuNaAINW51acg1a/VodW21bnVpdWsIG1haWwg1obVuNaC1bbVr9aB1avVodW2Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAn1YDVodW91oHVpdW2INW91a3VodWsINWnOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyDWg9W41b3Vv9Wh1bXVq9W2INW91aXWgNW+1aXWgNWrINWw1aXVvyDVudWrINWh1bfVrdWh1b/VuNaC1bQuJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICfUsdW21bDWgNWh1arVpdW31b8g1acg1b/WgNWh1bTVodWk1oDVpdWsINWj1bjVttWlINW01aXVryDVvdW/1aHWgdW41bLVqyBlLW1haWwg1bDVodW91oHVpS4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAgLdWrINW91a3VodWsOiDVudWrINWw1aHVu9W41bLVvtWl1awg1bjWgtWy1aHWgNWv1aXVrCDVsNWl1b/Wh9W11aHVrCDVvdW/1aHWgdW41bLVttWl1oDVqyDVsNWh1b3WgdWl1bbVpdaA1avVtjogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICfVjdW/1bjWgNWh1aPWgNW01aHVtiDVvdWt1aHVrDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIC3VqyBjb25uZWN0KCkg1obVuNaC1bbVr9aB1avVodW2INW51asg1bDVodW71bjVstW+1aXVrCc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnU01UUCDVvdWl1oDVvtWl1oDVqyDVvdWt1aHVrDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICfVidWrINWw1aHVu9W41bLVvtW41oLVtCDVvdW/1aXVstWu1aXVrCDVr9Wh1bQg1b7VpdaA1aHWg9W41a3VpdWsINaD1bjWg9W41a3VodWv1aHVttWoOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ9WA1aHVvtWl1azVvtWh1a7VqCDVotWh1oHVodWv1aHVtdW41oLVtCDVpzogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWlkLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWlkLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTZjYTVmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctaWQucGhwCkBAIC0wLDAgKzEsMjcgQEAKKzw/cGhwCisvKioKKyAqIEluZG9uZXNpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIENlY2VwIFByYXdpcm8gPGNlY2VwLnByYXdpcm9AZ21haWwuY29tPgorICogQGF1dGhvciBAamFudXJpZHAKKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnS2VzYWxhaGFuIFNNVFA6IFRpZGFrIGRhcGF0IG1lbmdvdGVudGlrYXNpLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnS2VzYWxhaGFuIFNNVFA6IFRpZGFrIGRhcGF0IHRlcmh1YnVuZyBrZSBob3N0IFNNVFAuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdLZXNhbGFoYW4gU01UUDogRGF0YSB0aWRhayBkaXRlcmltYS4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ0lzaSBwZXNhbiBrb3NvbmcnOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ1Blbmdrb2RlYW4ga2FyYWt0ZXIgdGlkYWsgZGlrZW5hbGk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnVGlkYWsgZGFwYXQgbWVuamFsYW5rYW4gcHJvc2VzIDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdUaWRhayBkYXBhdCBtZW5nYWtzZXMgYmVya2FzIDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdLZXNhbGFoYW4gRmlsZTogQmVya2FzIHRpZGFrIGRhcGF0IGRpYnVrYSA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnQWxhbWF0IHBlbmdpcmltIGJlcmlrdXQgbWVuZ2FraWJhdGthbiBrZXNhbGFoYW4gOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ1RpZGFrIGRhcGF0IG1lbmdpbmlzaWFsaXNhc2kgZnVuZ3NpIHN1cmVsJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdHYWdhbCB0ZXJraXJpbSwgYWxhbWF0IHN1cmVsIHRpZGFrIGJlbmFyIDogJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdIYXJ1cyBkaXNlZGlha2FuIG1pbmltYWwgc2F0dSBhbGFtYXQgdHVqdWFuJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIHRpZGFrIGRpZHVrdW5nJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdLZXNhbGFoYW4gU01UUDogQWxhbWF0IHR1anVhbiBiZXJpa3V0IG1lbmdoYXNpbGthbiBrZXNhbGFoYW4gOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0tlc2FsYWhhbiBkYWxhbSB0YW5kYSB0YW5nYW4gOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIGdhZ2FsLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnS2VzYWxhaGFuIHBhZGEgcGVsYXlhbiBTTVRQIDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdUaWRhayBkYXBhdCBtZW5nYXR1ciBhdGF1IG1lbmdhdHVyIHVsYW5nIHZhcmlhYmxlIDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFa3N0ZW5zaSBoaWxhbmc6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1pdC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1pdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY3YjZmNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWl0LnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorLyoqCisgKiBJdGFsaWFuIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBJbGlhcyBCYXJ0b2xpbmkgPGJyYWluNzlAaW53aW5kLml0PgorICogQGF1dGhvciBTdGVmYW5vIFNhYmF0aW5pIDxzYWJhczg4QGdtYWlsLmNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCBFcnJvcjogSW1wb3NzaWJpbGUgYXV0ZW50aWNhcnNpLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCBFcnJvcjogSW1wb3NzaWJpbGUgY29ubmV0dGVyc2kgYWxsXCdob3N0IFNNVFAuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIEVycm9yOiBEYXRpIG5vbiBhY2NldHRhdGkgZGFsIHNlcnZlci4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ0lsIGNvcnBvIGRlbCBtZXNzYWdnaW8gw6ggdnVvdG8nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ0NvZGlmaWNhIGRlaSBjYXJhdHRlcmkgc2Nvbm9zY2l1dGE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnSW1wb3NzaWJpbGUgZXNlZ3VpcmUgbFwnb3BlcmF6aW9uZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdJbXBvc3NpYmlsZSBhY2NlZGVyZSBhbCBmaWxlOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0ZpbGUgRXJyb3I6IEltcG9zc2liaWxlIGFwcmlyZSBpbCBmaWxlOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0kgc2VndWVudGkgaW5kaXJpenppIG1pdHRlbnRpIGhhbm5vIGdlbmVyYXRvIGVycm9yZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdJbXBvc3NpYmlsZSBpc3RhbnppYXJlIGxhIGZ1bnppb25lIG1haWwnOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0ltcG9zc2liaWxlIGludmlhcmUsIGxcJ2luZGlyaXp6byBlbWFpbCBub24gw6ggdmFsaWRvOiAnOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0RldmUgZXNzZXJlIGZvcm5pdG8gYWxtZW5vIHVuIGluZGlyaXp6byByaWNldmVudGUnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJ01haWxlciBub24gc3VwcG9ydGF0byc7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCBFcnJvcjogSSBzZWd1ZW50aSBpbmRpcml6emkgZGVzdGluYXRhcmkgaGFubm8gZ2VuZXJhdG8gdW4gZXJyb3JlOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0Vycm9yZSBuZWxsYSBmaXJtYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIENvbm5lY3QoKSBmYWxsaXRhLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnRXJyb3JlIGRlbCBzZXJ2ZXIgU01UUDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdJbXBvc3NpYmlsZSBpbXBvc3RhcmUgbyByZXNldHRhcmUgbGEgdmFyaWFiaWxlOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0VzdGVuc2lvbmUgbWFuY2FudGU6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1qYS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1qYS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ3Nzg3MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWphLnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorLyoqCisgKiBKYXBhbmVzZSBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgTWl0c3VoaXJvIFlvc2hpZGEgPGh0dHA6Ly9taXRzdGVrLmNvbS8+CisgKiBAYXV0aG9yIFlvc2hpIFNha2FpIDxodHRwOi8vYmx1ZW1vb25pbmMuanAvPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdTTVRQ44Ko44Op44O8OiDoqo3oqLzjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgIInOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFDjgqjjg6njg7w6IFNNVFDjg5vjgrnjg4jjgavmjqXntprjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ/jgIInOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFDjgqjjg6njg7w6IOODh+ODvOOCv+OBjOWPl+OBkeS7mOOBkeOCieOCjOOBvuOBm+OCk+OBp+OBl+OBn+OAgic7CisvLyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdNZXNzYWdlIGJvZHkgZW1wdHknOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ+S4jeaYjuOBquOCqOODs+OCs+ODvOODh+OCo+ODs+OCsDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICflrp/ooYzjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAn44OV44Kh44Kk44Or44Gr44Ki44Kv44K744K544Gn44GN44G+44Gb44KTOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ+ODleOCoeOCpOODq+OCqOODqeODvDog44OV44Kh44Kk44Or44KS6ZaL44GR44G+44Gb44KTOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0Zyb23jgqLjg4njg6zjgrnjgpLnmbvpjLLjgZnjgovpmpvjgavjgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn44Oh44O844Or6Zai5pWw44GM5q2j5bi444Gr5YuV5L2c44GX44G+44Gb44KT44Gn44GX44Gf44CCJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0ludmFsaWQgYWRkcmVzczogJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICflsJHjgarjgY/jgajjgoIx44Gk44Oh44O844Or44Ki44OJ44Os44K544KSIOaMh+WumuOBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmeOAgic7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIOODoeODvOODqeODvOOBjOOCteODneODvOODiOOBleOCjOOBpuOBhOOBvuOBm+OCk+OAgic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUOOCqOODqeODvDog5qyh44Gu5Y+X5L+h6ICF44Ki44OJ44Os44K544GrIOmWk+mBleOBhOOBjOOBguOCiuOBvuOBmTogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ1NpZ25pbmcgRXJyb3I6ICc7CisvLyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIENvbm5lY3QoKSBmYWlsZWQuJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAgc2VydmVyIGVycm9yOiAnOworLy8kUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnQ2Fubm90IHNldCBvciByZXNldCB2YXJpYWJsZTogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmcta2EucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmcta2EucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMWFmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1rYS5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogR2VvcmdpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEF2dGFuZGlsIEtpa2FiaWR6ZSBha2EgTE9OR01BTiA8YWthbG9uZ21hbkBnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAg4YOo4YOU4YOq4YOT4YOd4YOb4YOQOiDhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Dhg6rhg5jhg5Ag4YOo4YOU4YOj4YOr4YOa4YOU4YOR4YOU4YOa4YOY4YOQLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCDhg6jhg5Thg6rhg5Phg53hg5vhg5A6IFNNVFAg4YOh4YOU4YOg4YOV4YOU4YOg4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkCDhg6jhg5Thg6Phg6vhg5rhg5Thg5Hhg5Thg5rhg5jhg5AuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIOGDqOGDlOGDquGDk+GDneGDm+GDkDog4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYIOGDkOGDoCDhg5jhg6Xhg5zhg5Ag4YOb4YOY4YOm4YOU4YOR4YOj4YOa4YOYLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAn4YOZ4YOd4YOT4YOY4YOg4YOU4YOR4YOY4YOhIOGDo+GDquGDnOGDneGDkeGDmCDhg6Lhg5jhg57hg5g6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAn4YOo4YOU4YOj4YOr4YOa4YOU4YOR4YOU4YOa4YOY4YOQIOGDqOGDlOGDm+GDk+GDlOGDkuGDmCDhg5Hhg6Dhg6vhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOg4YOj4YOa4YOU4YOR4YOQOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ+GDqOGDlOGDo+GDq+GDmuGDlOGDkeGDlOGDmuGDmOGDkCDhg6zhg5Xhg5Phg53hg5vhg5Ag4YOk4YOQ4YOY4YOa4YOX4YOQ4YOcOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ+GDpOGDkOGDmOGDmuGDo+GDoOGDmCDhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOo4YOU4YOq4YOT4YOd4YOb4YOQOiDhg5Dhg6Ag4YOY4YOu4YOh4YOc4YOU4YOR4YOQIOGDpOGDkOGDmOGDmuGDmDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICfhg5Lhg5Dhg5vhg5Lhg5bhg5Dhg5Xhg5zhg5jhg6Eg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDmDogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdtYWlsIOGDpOGDo+GDnOGDpeGDquGDmOGDmOGDoSDhg5Lhg5Dhg6jhg5Xhg5Thg5Hhg5Ag4YOV4YOU4YOgIOGDruGDlOGDoOGDruGDk+GDlOGDkeGDkC4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ+GDkuGDl+GDruGDneGDleGDlyDhg5vhg5jhg6Phg5fhg5jhg5fhg53hg5cg4YOU4YOg4YOX4YOYIOGDkOGDk+GDoOGDlOGDoeGDkOGDouGDmOGDoSBlLW1haWwg4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOYIOGDm+GDkOGDmOGDnOGDqi4nOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyAtIOGDoeGDkOGDpOGDneGDoeGDouGDnSDhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5jhg6Eg4YOb4YOu4YOQ4YOg4YOT4YOQ4YOt4YOU4YOg4YOQIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIOGDqOGDlOGDquGDk+GDneGDm+GDkDog4YOo4YOU4YOb4YOT4YOU4YOSIOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDlOGDkeGDluGDlCDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5Ag4YOV4YOU4YOgIOGDm+GDneGDruGDlOGDoOGDruGDk+GDkDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICfhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Ag4YOq4YOQ4YOg4YOY4YOU4YOa4YOY4YOQJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICfhg5Dhg6Ag4YOS4YOQ4YOY4YOS4YOW4YOQ4YOV4YOc4YOQLCBlLW1haWwg4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOY4YOhIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCDhg6Thg53hg6Dhg5vhg5Dhg6Lhg5g6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAn4YOu4YOU4YOa4YOb4YOd4YOs4YOU4YOg4YOY4YOhIOGDqOGDlOGDquGDk+GDneGDm+GDkDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICfhg6jhg5Thg6rhg5Phg53hg5vhg5AgU01UUCDhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOY4YOh4YOQ4YOhJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIOGDoeGDlOGDoOGDleGDlOGDoOGDmOGDoSDhg6jhg5Thg6rhg5Phg53hg5vhg5A6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAn4YOo4YOU4YOj4YOr4YOa4YOU4YOR4YOU4YOa4YOY4YOQIOGDqOGDlOGDm+GDk+GDlOGDkuGDmCDhg6rhg5Xhg5rhg5Dhg5Phg5jhg6Eg4YOo4YOU4YOl4YOb4YOc4YOQIOGDkOGDnCDhg6jhg5Thg6rhg5Xhg5rhg5A6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAn4YOR4YOY4YOR4YOa4YOY4YOd4YOX4YOU4YOZ4YOQIOGDkOGDoCDhg5Dhg6Dhg6Hhg5Thg5Hhg53hg5Hhg6E6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1rby5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1rby5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU5OWZhNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWtvLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBLb3JlYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIENoYWxrUEUgPGFtYXRvMDYxN0BnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAg7Jik66WYOiDsnbjspp3tlaAg7IiYIOyXhuyKteuLiOuLpC4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAg7Jik66WYOiBTTVRQIO2YuOyKpO2KuOyXkCDsoJHsho3tlaAg7IiYIOyXhuyKteuLiOuLpC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAg7Jik66WYOiDrjbDsnbTthLDqsIAg67Cb7JWE65Ok7Jes7KeA7KeAIOyViuyVmOyKteuLiOuLpC4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ+uplOyEuOyngCDrgrTsmqnsnbQg7JeG7Iq164uI64ukJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfslYwg7IiYIOyXhuuKlCDsnbjsvZTrlKk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAn7Iuk7ZaJIOu2iOqwgDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICftjIzsnbwg7KCR6re8IOu2iOqwgDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICftjIzsnbwg7Jik66WYOiDtjIzsnbzsnYQg7Je0IOyImCDsl4bsirXri4jri6Q6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn64uk7J2MIEZyb20g7KO87IaM7JeQ7IScIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6Q6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnbWFpbCDtlajsiJjrpbwg7J247Iqk7YS07Iqk7ZmU7ZWgIOyImCDsl4bsirXri4jri6QnOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ+yemOuqu+uQnCDso7zshow6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIOuplOydvOufrOuKlCDsp4Dsm5DrkJjsp4Ag7JWK7Iq164uI64ukLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAn7KCB7Ja064+EIO2VnCDqsJwg7J207IOB7J2YIOyImOyLoOyekCDrqZTsnbwg7KO87IaM66W8IOygnOqzte2VtOyVvCDtlanri4jri6QuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIOyYpOulmDog64uk7J2MIOyImOyLoOyekOyXkOyEnCDsmKTrpZjqsIAg67Cc7IOd7ZaI7Iq164uI64ukOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ+yEnOuqhSDsmKTrpZg6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCDsl7DqsrDsnYQg7Iuk7Yyo7ZWY7JiA7Iq164uI64ukLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnU01UUCDshJzrsoQg7Jik66WYOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ+uzgOyImCDshKTsoJUg67CPIOy0iOq4sO2ZlCDrtojqsIA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAn7ZmV7J6l7J6QIOyXhuydjDogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWx0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLWx0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjUzYTRmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbHQucGhwCkBAIC0wLDAgKzEsMjYgQEAKKzw/cGhwCisvKioKKyAqIExpdGh1YW5pYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIERhaW5pdXMgS2F1cGFpdGlzIDxka0BzdW0ubHQ+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAga2xhaWRhOiBhdXRlbnRpZmlrYWNpamEgbmVwYXZ5a28uJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdTTVRQIGtsYWlkYTogbmVwYXZ5a3N0YSBwcmlzaWp1bmd0aSBwcmllIFNNVFAgc3RvdGllcy4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAga2xhaWRhOiBkdW9tZW55cyBuZXByaWltdGkuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdMYWnFoWtvIHR1cmlueXMgdHXFocSNaWFzJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdOZWF0cGHFvmludGEga29kdW90xJc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnTmVwYXZ5a28gxK92eWtkeXRpIGtvbWFuZG9zOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0J5bGEgbmVwYXNpZWtpYW1hOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0J5bG9zIGtsYWlkYTogTmVwYXZ5a3N0YSBhdGlkYXJ5dGk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnTmV0ZWlzaW5nYXMgc2l1bnTEl2pvIGFkcmVzYXM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnTmVwYXZ5a28gcGFsZWlzdGkgbWFpbCBmdW5rY2lqb3MuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdOZXRlaXNpbmdhcyBhZHJlc2FzOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyBwYcWhdG8gc3RvdGlzIG5lcGFsYWlrb21hLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnTnVyb2R5a2l0ZSBiZW50IHZpZW7EhSBnYXbEl2pvIGFkcmVzxIUuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIGtsYWlkYTogbmVwYXZ5a28gacWhc2nFs3N0aSDFoWllbXMgZ2F2xJdqYW1zOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ1ByaXNpanVuZ2ltbyBrbGFpZGE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBzdXNpanVuZ2ltbyBrbGFpZGEnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAgc3RvdGllcyBrbGFpZGE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnTmVwYXZ5a28gcHJpc2tpcnRpIHJlaWvFoW3El3Mga2ludGFtYWphbTogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbHYucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbHYucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5YmY5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1sdi5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogTGF0dmlhbiBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgRWR1YXJkcyBNLiA8ZUBucGQubHY+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAga8S8xatkYTogQXV0b3JpesSBY2lqYSBuZWl6ZGV2xIFzLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCBLxLzFq2RhOiBOZXZhciBpenZlaWRvdCBzYXZpZW5vanVtdSBhciBTTVRQIHNlcnZlcmkuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIEvEvMWrZGE6IE5lcGllxYZlbSBpbmZvcm3EgWNpanUuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdaacWGb2p1bWEgdGVrc3RzIGlyIHR1a8Whcyc7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnTmVhdHBhesSrdHMga29kxJNqdW1zOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ05laXpkZXbEgXMgaXpwaWxkxKt0IGtvbWFuZHU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnRmFpbHMgbmF2IHBpZWVqYW1zOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0ZhaWxhIGvEvMWrZGE6IE5ldmFyIGF0dsSTcnQgZmFpbHU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnTmVwYXJlaXphIHPFq3TEq3TEgWphIGFkcmVzZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdOZXZhciBwYWxhaXN0IHPFq3TEq8WhYW5hcyBmdW5rY2lqdS4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ05lcGFyZWl6YSBhZHJlc2U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIHPFq3TEq3TEgWpzIG5ldGllayBhdGJhbHN0xKt0cy4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0zFq2R6dSwgbm9yxIFkaWV0IHZpc21heiB2aWVudSBhZHJlc8SBdHUuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIGvEvMWrZGE6IG5laXpkZXbEgXMgbm9zxat0xKt0IMWhxIFkaWVtIHNhxYbEk23Ek2ppZW06ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnQXV0b3JpesSBY2lqYXMga8S8xatkYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIHNhdmllbm9qdW1hIGvEvMWrZGEnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAgc2VydmVyYSBrxLzFq2RhOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ05ldmFyIHBpZcWhxLdpcnQgbWFpbsSrZ8SBIHbEk3J0xKtidTogJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0V4dGVuc2lvbiBtaXNzaW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbWcucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbWcucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0Yzc1NjMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1tZy5waHAKQEAgLTAsMCArMSwyNSBAQAorPD9waHAKKy8qKgorICogTWFsYWdhc3kgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEhhY2tpbmV0IDxwaXl1c2hqaGE4MTY0QGdtYWlsLmNvbT4KKyAqLworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ0hhZGlzb2FuYSBTTVRQOiBUc3kgbmFob21ieSBueSBmYW5hbWFyaW5hbmEuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdTTVRQIEVycm9yOiBUc3kgYWZha2EgbWFtcGlmYW5kcmF5IGFtaW5cJ255IG1wYW1waWFudHJhbm8gU01UUC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAgZGlzbzogdHN5IHZvYXJha2l0cmEgbnkgYW5nb25hLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnVHN5IG1pc3kgbnkgdm90b2F0eSBtYWlsYWthLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnVHN5IGZhbnRhdHJhIGVuY29kaW5nOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ1RzeSBhZmFrYSBtYW5hdGFudGVyYWthIGl0eSBiYWlrbyBtYW5hcmFrYSBpdHk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnVHN5IG5haG9tYnkgbnkgZmlkaXJhbmEgYW1pblwnaXR5IHJha2l0cmEgaXR5OiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0hhZGlzb2FuYSBkaXNvOiBUc3kgYWZha2EgbmFub2thdHJhIGl0eSBmaWxlIG1hbmFyYWthIGl0eTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdOeSBhZGlyZXN5IGlyYWthIG1hbmFyYWthIGRpYSBkaXNvOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ1RzeSBhZmFrYSBuYW5vbWJva2EgbnkgaGV0c2lrYSBtYWlsLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnVHN5IG1ldHkgbnkgYWRpcmVzeTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIHRzeSBtYW5vaGFuYS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0FsZWZhc28gYXphZmFkeSBpcmF5IGFkaXJlc3kgaXJheSBmYXJhZmFoYWtlbGlueS4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAgRXJyb3I6IFRzeSBtZXR5IGlyZW8gbXBhbmFyYWthIGlyZXRvOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0Vycm9yIG5hbmRyaXRyYSBueSBzb25pYTonOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1RzeSBuYWhvbWJ5IG55IGZpZmFuZHJhaXNhbmEgdGFtaW5cJ255IHNlcnZlciBTTVRQLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnRmFoYWRpc29hbmEgdGFtaW5cJ255IHNlcnZlciBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ1RzeSBhem8gYXRhbyBueSBtYW1ldHJha2EgbmEgbWFtZXJpbmEgbnkgdmFyaWFibGU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnVHN5IGhpdGEgbnkgYW1wYWhhbnk6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1tcy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1tcy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjEyYTZhZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLW1zLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBNYWxheXNpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIE5hd2F3aSBKYW1pbGkgPG5hd2F3aUBydXR3ZWIuY29tPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdSYWxhdCBTTVRQOiBUaWRhayBkYXBhdCBwZW5nZXNhaGFuLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnUmFsYXQgU01UUDogVGlkYWsgZGFwYXQgbWVuZ2h1YnVuZ2kgaG9zIHBlbGF5YW4gU01UUC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1JhbGF0IFNNVFA6IERhdGEgdGlkYWsgZGl0ZXJpbWEgb2xlaCBwZWxheWFuLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnVGlhZGEgaXNpIHVudHVrIG1lc2VqJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdQZW5nZWtvZGFuIHRpZGFrIGRpa2V0YWh1aTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdUaWRhayBkYXBhdCBtZWxha3NhbmFrYW46ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnVGlkYWsgZGFwYXQgbWVuZ2Frc2VzIGZhaWw6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnUmFsYXQgRmFpbDogVGlkYWsgZGFwYXQgbWVtYnVrYSBmYWlsOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0JlcmlrdXQgbWVydXBha2FuIHJhbGF0IGRhcmkgYWxhbWF0IGUtbWVsOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ1RpZGFrIGRhcGF0IG1lbWJlcmkgY29udG9oIGZ1bmdzaSBlLW1lbC4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0FsYW1hdCBlbWVsIHRpZGFrIHNhaDogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgamVuaXMgcGVuZ2hhbnRhciBlbWVsIHRpZGFrIGRpc29rb25nLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnQW5kYSBwZXJsdSBtZW55ZWRpYWthbiBzZWt1cmFuZy1rdXJhbmdueWEgc2F0dSBhbGFtYXQgZS1tZWwgcGVuZXJpbWEuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdSYWxhdCBTTVRQOiBQZW5lcmltYSBlLW1lbCBiZXJpa3V0IHRlbGFoIGdhZ2FsOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ1JhbGF0IHBhZGEgdGFuZGEgdGFuZ2FuOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIHRlbGFoIGdhZ2FsLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnUmFsYXQgcGFkYSBwZWxheWFuIFNNVFA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnVGlkYWsgYm9sZWggbWVuZXRhcGthbiBhdGF1IG1lbmV0YXBrYW4gc2VtdWxhIHBlbWJvbGVodWJhaDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdTYW1idW5nYW4gaGlsYW5nOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbmIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbmIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NDAzZTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1uYi5waHAKQEAgLTAsMCArMSwyNSBAQAorPD9waHAKKy8qKgorICogTm9yd2VnaWFuIEJva23DpWwgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgRmVpbDogS3VubmUgaWtrZSBhdXRlbnRpc2VyZS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgRmVpbDogS3VubmUgaWtrZSBrb2JsZSB0aWwgU01UUCB0amVuZXIuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIEZlaWw6IERhdGFpbm5ob2xkIGlra2UgYWtzZXB0ZXJ0Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnTWVsZGluZ3Npbm5ob2xkIG1hbmdsZXInOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ1VramVudCBrb2Rpbmc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnS3VubmUgaWtrZSB1dGbDuHJlOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0bDpXIgaWtrZSB0aWxnYW5nIHRpbCBmaWxlbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdGaWwgRmVpbDogS3VubmUgaWtrZSDDpXBuZSBmaWxlbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdGw7hsZ2VuZGUgRnLDpSBhZHJlc3NlIGZlaWxldDogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdLdW5uZSBpa2tlIGluaXRpYWxpc2VyZSBwb3N0IGZ1bmtzam9uLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnVWd5bGRpZyBhZHJlc3NlOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyBzZW5kZXIgZXIgaWtrZSBzdMO4dHRldC4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ0R1IG3DpSBvcHBwZ2kgbWluc3QgZW4gbW90dGFrZXJhZHJlc3NlLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCBGZWlsOiBGw7hsZ2VuZGUgbW90dGFrZXJhZHJlc3NlIGZlaWxldDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdTaWduZXJpbmcgRmVpbDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQIGNvbm5lY3QoKSBmZWlsZXQuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIHNlcnZlciBmZWlsOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0thbiBpa2tlIHNrcml2ZSBlbGxlciBvbXNrcml2ZSB2YXJpYWJlbDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdVdHZpZGVsc2UgbWFuZ2xlcjogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLW5sLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLW5sLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGQwZTdjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctbmwucGhwCkBAIC0wLDAgKzEsMjggQEAKKzw/cGhwCisvKioKKyAqIER1dGNoIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBQSFBNYWlsZXIucGhwIGZvciBkZWZpbml0aXZlIGxpc3QuCisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgVHV4aW9uIDx0ZWFtQHR1eGlvbi5ubD4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUC1mb3V0OiBhdXRoZW50aWNhdGllIG1pc2x1a3QuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdTTVRQLWZvdXQ6IGtvbiBuaWV0IHZlcmJpbmRlbiBtZXQgU01UUC1ob3N0Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUC1mb3V0OiBkYXRhIG5pZXQgZ2VhY2NlcHRlZXJkLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnQmVyaWNodHRla3N0IGlzIGxlZWcnOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ09uYmVrZW5kZSBjb2RlcmluZzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdLb24gbmlldCB1aXR2b2VyZW46ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnS3JlZWcgZ2VlbiB0b2VnYW5nIHRvdCBiZXN0YW5kOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0Jlc3RhbmRzZm91dDoga29uIGJlc3RhbmQgbmlldCBvcGVuZW46ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnSGV0IHZvbGdlbmRlIGFmemVuZGVyc2FkcmVzIGlzIG1pc2x1a3Q6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnS29uIG1haWxmdW5jdGllIG5pZXQgaW5pdGlhbGlzZXJlbi4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ09uZ2VsZGlnIGFkcmVzOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2hvc3RlbnRyeSddICAgID0gJ09uZ2VsZGlnZSBob3N0ZW50cnk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfaG9zdCddICAgICAgICAgPSAnT25nZWxkaWdlIGhvc3Q6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIG1haWxlciB3b3JkdCBuaWV0IG9uZGVyc3RldW5kLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnRXIgbW9ldCBtaW5zdGVucyDDqcOpbiBvbnR2YW5nZXIgd29yZGVuIG9wZ2VnZXZlbi4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAtZm91dDogZGUgdm9sZ2VuZGUgb250dmFuZ2VycyB6aWpuIG1pc2x1a3Q6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnU2lnbmVlcmZvdXQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBWZXJiaW5kaW5nIG1pc2x1a3QuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQLXNlcnZlcmZvdXQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnS2FuIGRlIHZvbGdlbmRlIHZhcmlhYmVsZSBuaWV0IGluc3RlbGxlbiBvZiByZXNldHRlbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnNpZSBhZndlemlnOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcGwucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcGwucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYTBkZWUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1wbC5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogUG9saXNoIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdCxYLEhWQgU01UUDogTmllIG1vxbxuYSBwcnplcHJvd2FkemnEhyB1d2llcnp5dGVsbmllbmlhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnQsWCxIVkIFNNVFA6IE5pZSBtb8W8bmEgcG/FgsSFY3p5xIcgc2nEmSB6IHd5YnJhbnltIGhvc3RlbS4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ0LFgsSFZCBTTVRQOiBEYW5lIG5pZSB6b3N0YcWCeSBwcnp5asSZdGUuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICdXaWFkb21vxZvEhyBqZXN0IHB1c3RhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnTmllem5hbnkgc3Bvc8OzYiBrb2Rvd2FuaWEgem5ha8OzdzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdOaWUgbW/FvG5hIHVydWNob21pxIc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnQnJhayBkb3N0xJlwdSBkbyBwbGlrdTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdOaWUgbW/FvG5hIG90d29yennEhyBwbGlrdTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdOYXN0xJlwdWrEhWN5IGFkcmVzIE5hZGF3Y3kgamVzdCBuaWVwcmF3aWTFgm93eTogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdOaWUgbW/FvG5hIHd5d2/FgmHEhyBmdW5rY2ppIG1haWwoKS4gU3ByYXdkxboga29uZmlndXJhY2rEmSBzZXJ3ZXJhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnTmllIG1vxbxuYSB3eXPFgmHEhyB3aWFkb21vxZtjaSwgJy4KKyAgICAnbmFzdMSZcHVqxIVjeSBhZHJlcyBPZGJpb3JjeSBqZXN0IG5pZXByYXdpZMWCb3d5OiAnOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ05hbGXFvHkgcG9kYcSHIHByYXdpZMWCb3d5IGFkcmVzIGVtYWlsIE9kYmlvcmN5Lic7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnV3licmFuYSBtZXRvZGEgd3lzecWCa2kgd2lhZG9tb8WbY2kgbmllIGplc3Qgb2JzxYJ1Z2l3YW5hLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnQsWCxIVkIFNNVFA6IE5hc3TEmXB1asSFY3kgb2RiaW9yY3kgc8SFIG5pZXByYXdpZMWCb3dpOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0LFgsSFZCBwb2RwaXN5d2FuaWEgd2lhZG9tb8WbY2k6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgemFrb8WEY3pvbmUgbmllcG93b2R6ZW5pZW0uJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdCxYLEhWQgU01UUDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdOaWUgbW/FvG5hIHVzdGF3acSHIGx1YiB6bW9keWZpa293YcSHIHptaWVubmVqOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0JyYWt1asSFY2Ugcm96c3plcnplbmllOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcHQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcHQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjVkNWQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1wdC5waHAKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKKy8qKgorICogUG9ydHVndWVzZSAoRXVyb3BlYW4pIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBKb25hZGFiZSA8am9uYWRhYmVAaG90bWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ0Vycm8gZG8gU01UUDogTsOjbyBmb2kgcG9zc8OtdmVsIHJlYWxpemFyIGEgYXV0ZW50aWNhw6fDo28uJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdFcnJvIGRvIFNNVFA6IE7Do28gZm9pIHBvc3PDrXZlbCByZWFsaXphciBsaWdhw6fDo28gY29tIG8gc2Vydmlkb3IgU01UUC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ0Vycm8gZG8gU01UUDogT3MgZGFkb3MgZm9yYW0gcmVqZWl0YWRvcy4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ0EgbWVuc2FnZW0gbm8gZS1tYWlsIGVzdMOhIHZhemlhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnQ29kaWZpY2HDp8OjbyBkZXNjb25oZWNpZGE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGV4ZWN1dGFyOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ07Do28gZm9pIHBvc3PDrXZlbCBhY2VkZXIgbyBmaWNoZWlybzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdBYmVydHVyYSBkbyBmaWNoZWlybzogTsOjbyBmb2kgcG9zc8OtdmVsIGFicmlyIG8gZmljaGVpcm86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnT2NvcnJlcmFtIGZhbGhhcyBub3MgZW5kZXJlw6dvcyBkb3Mgc2VndWludGVzIHJlbWVudGVudGVzOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ07Do28gZm9pIHBvc3PDrXZlbCBpbmljaWFyIHVtYSBpbnN0w6JuY2lhIGRhIGZ1bsOnw6NvIG1haWwuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdOw6NvIGZvaSBlbnZpYWRvIG5lbmh1bSBlLW1haWwgcGFyYSBvIGVuZGVyZcOnbyBkZSBlLW1haWwgaW52w6FsaWRvOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyBtYWlsZXIgbsOjbyDDqSBzdXBvcnRhZG8uJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdUZW0gZGUgZm9ybmVjZXIgcGVsbyBtZW5vcyB1bSBlbmRlcmXDp28gY29tbyBkZXN0aW5hdMOhcmlvIGRvIGUtbWFpbC4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ0Vycm8gZG8gU01UUDogTyBlbmRlcmXDp28gZG8gc2VndWludGUgZGVzdGluYXTDoXJpbyBmYWxob3U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnRXJybyBhbyBhc3NpbmFyOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIGZhbGhvdS4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ0Vycm8gZGUgc2Vydmlkb3IgU01UUDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgZGVmaW5pciBvdSByZWRlZmluaXIgYSB2YXJpw6F2ZWw6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnRXh0ZW5zw6NvIGVtIGZhbHRhOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcHRfYnIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcHRfYnIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZDY5MmQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1wdF9ici5waHAKQEAgLTAsMCArMSwyOSBAQAorPD9waHAKKy8qKgorICogQnJhemlsaWFuIFBvcnR1Z3Vlc2UgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIFBhdWxvIEhlbnJpcXVlIEdhcmNpYSA8cGF1bG9AY29udHJvbGxlcndlYi5jb20uYnI+CisgKiBAYXV0aG9yIEx1Y2FzIEd1aW1hcsOjZXMgPGx1Y2FzQGx1Y2FzZ3VpbWFyYWVzLmNvbT4KKyAqIEBhdXRob3IgUGhlbGlwZSBBbHZlcyA8cGhlbGlwZWFsdmVzZGVzb3V6YUBnbWFpbC5jb20+CisgKiBAYXV0aG9yIEZhYmlvIEJlbmVkaXR0byA8ZmFiaW9iZW5lZGl0dG9AZ21haWwuY29tPgorICovCisKKyRQSFBNQUlMRVJfTEFOR1snYXV0aGVudGljYXRlJ10gICAgICAgICA9ICdFcnJvIGRlIFNNVFA6IE7Do28gZm9pIHBvc3PDrXZlbCBhdXRlbnRpY2FyLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnRXJybyBkZSBTTVRQOiBOw6NvIGZvaSBwb3Nzw612ZWwgY29uZWN0YXIgYW8gc2Vydmlkb3IgU01UUC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ0Vycm8gZGUgU01UUDogRGFkb3MgcmVqZWl0YWRvcy4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ01lbnNhZ2VtIHZhemlhJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdDb2RpZmljYcOnw6NvIGRlc2NvbmhlY2lkYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgZXhlY3V0YXI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnTsOjbyBmb2kgcG9zc8OtdmVsIGFjZXNzYXIgbyBhcnF1aXZvOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0Vycm8gZGUgQXJxdWl2bzogTsOjbyBmb2kgcG9zc8OtdmVsIGFicmlyIG8gYXJxdWl2bzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdPcyBzZWd1aW50ZXMgcmVtZXRlbnRlcyBmYWxoYXJhbTogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdOw6NvIGZvaSBwb3Nzw612ZWwgaW5zdGFuY2lhciBhIGZ1bsOnw6NvIG1haWwuJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICdFbmRlcmXDp28gZGUgZS1tYWlsIGludsOhbGlkbzogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG7Do28gw6kgc3Vwb3J0YWRvLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnVm9jw6ogZGV2ZSBpbmZvcm1hciBwZWxvIG1lbm9zIHVtIGRlc3RpbmF0w6FyaW8uJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdFcnJvIGRlIFNNVFA6IE9zIHNlZ3VpbnRlcyBkZXN0aW5hdMOhcmlvcyBmYWxoYXJhbTogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdFcnJvIGRlIEFzc2luYXR1cmE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgZmFsaG91Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnRXJybyBkZSBzZXJ2aWRvciBTTVRQOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ07Do28gZm9pIHBvc3PDrXZlbCBkZWZpbmlyIG91IHJlZGVmaW5pciBhIHZhcmnDoXZlbDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFeHRlbnPDo28gbsOjbyBleGlzdGU6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1yby5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1yby5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmExMDBlYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXJvLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBSb21hbmlhbiBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKiBAcGFja2FnZSBQSFBNYWlsZXIKKyAqIEBhdXRob3IgQWxleCBGbG9yZWEgPGFsZWN6LmZpYUBnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ0Vyb2FyZSBTTVRQOiBBdXRlbnRpZmljYXJlYSBhIGXImXVhdC4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ0Vyb2FyZSBTTVRQOiBDb25lY3RhcmVhIGxhIHNlcnZlcnVsIFNNVFAgYSBlyJl1YXQuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdFcm9hcmUgU01UUDogRGF0ZWxlIG51IGF1IGZvc3QgYWNjZXB0YXRlLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnTWVzYWp1bCBlc3RlIGdvbC4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ0VuY29kYXJlIG5lY3Vub3NjdXTEgzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdOdSBzZSBwb2F0ZSBleGVjdXRhIHVybcSDdG9hcmVhIGNvbWFuZMSDOiAgJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdOdSBzZSBwb2F0ZSBhY2Nlc2EgdXJtxIN0b3J1bCBmaciZaWVyOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0Vyb2FyZSBmaciZaWVyOiBOdSBzZSBwb2F0ZSBkZXNjaGlkZSB1cm3Eg3RvcnVsIGZpyJlpZXI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnVXJtxIN0b2FyZWxlIGFkcmVzZSBGcm9tIGF1IGRhdCBlcm9hcmU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnRnVuY8ibaWEgbWFpbCBudSBhIHB1dHV0IGZpIGluacibaWFsaXphdMSDLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnQWRyZXNhIGRlIGVtYWlsIG51IGVzdGUgdmFsaWTEgzogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG51IGVzdGUgc3Vwb3J0YXQuJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdUcmVidWllIHPEgyBhZMSDdWdhyJtpIGNlbCBwdcibaW4gbyBhZHJlc8SDIGRlIGVtYWlsLic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnRXJvYXJlIFNNVFA6IFVybcSDdG9hcmVsZSBhZHJlc2UgZGUgZW1haWwgYXUgZciZdWF0OiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0EgYXBhcnV0IG8gcHJvYmxlbcSDIGxhIHNlbW5hcmVhIGVtYWlsdWx1aS4gJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdDb25lY3RhcmVhIGxhIHNlcnZlcnVsIFNNVFAgYSBlyJl1YXQuJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdFcm9hcmUgc2VydmVyIFNNVFA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnTnUgc2UgcG9hdGUgc2V0YS9yZXNldGEgdmFyaWFiaWxhLiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0xpcHNlyJl0ZSBleHRlbnNpYTogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXJ1LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXJ1LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjBlOWExCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctcnUucGhwCkBAIC0wLDAgKzEsMjcgQEAKKzw/cGhwCisvKioKKyAqIFJ1c3NpYW4gUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEFsZXhleSBDaHVtYWtvdiA8YWxleEBjaHVtYWtvdi5ydT4KKyAqIEBhdXRob3IgRm9zdGVyIFNub3doaWxsIDxpMThuQGZvcnN0d29vZi5ydT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAn0J7RiNC40LHQutCwIFNNVFA6INC+0YjQuNCx0LrQsCDQsNCy0YLQvtGA0LjQt9Cw0YbQuNC4Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAn0J7RiNC40LHQutCwIFNNVFA6INC90LUg0YPQtNCw0LXRgtGB0Y8g0L/QvtC00LrQu9GO0YfQuNGC0YzRgdGPINC6IFNNVFAt0YHQtdGA0LLQtdGA0YMuJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICfQntGI0LjQsdC60LAgU01UUDog0LTQsNC90L3Ri9C1INC90LUg0L/RgNC40L3Rj9GC0YsuJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfQndC10LjQt9Cy0LXRgdGC0L3QsNGPINC60L7QtNC40YDQvtCy0LrQsDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICfQndC10LLQvtC30LzQvtC20L3QviDQstGL0L/QvtC70L3QuNGC0Ywg0LrQvtC80LDQvdC00YM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAn0J3QtdGCINC00L7RgdGC0YPQv9CwINC6INGE0LDQudC70YM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAn0KTQsNC50LvQvtCy0LDRjyDQvtGI0LjQsdC60LA6INC90LUg0YPQtNCw0ZHRgtGB0Y8g0L7RgtC60YDRi9GC0Ywg0YTQsNC50Ls6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAn0J3QtdCy0LXRgNC90YvQuSDQsNC00YDQtdGBINC+0YLQv9GA0LDQstC40YLQtdC70Y86ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn0J3QtdCy0L7Qt9C80L7QttC90L4g0LfQsNC/0YPRgdGC0LjRgtGMINGE0YPQvdC60YbQuNGOIG1haWwoKS4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ9Cf0L7QttCw0LvRg9C50YHRgtCwLCDQstCy0LXQtNC40YLQtSDRhdC+0YLRjyDQsdGLINC+0LTQuNC9IGVtYWlsLdCw0LTRgNC10YEg0L/QvtC70YPRh9Cw0YLQtdC70Y8uJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcg4oCUINC/0L7Rh9GC0L7QstGL0Lkg0YHQtdGA0LLQtdGAINC90LUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGC0YHRjy4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ9Ce0YjQuNCx0LrQsCBTTVRQOiDQvdC1INGD0LTQsNC70LDRgdGMINC+0YLQv9GA0LDQstC60LAg0YLQsNC60LjQvCDQsNC00YDQtdGB0LDRgtCw0Lw6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAn0J/Rg9GB0YLQvtC1INGB0L7QvtCx0YnQtdC90LjQtSc7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAn0J3QtSDQvtGC0L/RgNCw0LLQu9C10L3QviDQuNC3LdC30LAg0L3QtdC/0YDQsNCy0LjQu9GM0L3QvtCz0L4g0YTQvtGA0LzQsNGC0LAgZW1haWwt0LDQtNGA0LXRgdCwOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ9Ce0YjQuNCx0LrQsCDQv9C+0LTQv9C40YHQuDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICfQntGI0LjQsdC60LAg0YHQvtC10LTQuNC90LXQvdC40Y8g0YEgU01UUC3RgdC10YDQstC10YDQvtC8JzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICfQntGI0LjQsdC60LAgU01UUC3RgdC10YDQstC10YDQsDogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICfQndC10LLQvtC30LzQvtC20L3QviDRg9GB0YLQsNC90L7QstC40YLRjCDQuNC70Lgg0YHQsdGA0L7RgdC40YLRjCDQv9C10YDQtdC80LXQvdC90YPRjjogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICfQoNCw0YHRiNC40YDQtdC90LjQtSDQvtGC0YHRg9GC0YHRgtCy0YPQtdGCOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctc2sucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctc2sucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5Y2ZiMGYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1zay5waHAKQEAgLTAsMCArMSwyNyBAQAorPD9waHAKKy8qKgorICogU2xvdmFrIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBNaWNoYWwgVGlua2EgPG1pY2hhbHRpbmthQGdtYWlsLmNvbT4KKyAqIEBhdXRob3IgUGV0ZXIgT3JsaWNrw70gPHBjbWFuaWs5MUBnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgRXJyb3I6IENoeWJhIGF1dGVudGlmaWvDoWNpZS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgRXJyb3I6IE5lYm9sbyBtb8W+bsOpIG5hZHZpYXphxaUgc3BvamVuaWUgc28gU01UUCBzZXJ2ZXJvbS4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAgRXJyb3I6IETDoXRhIG5lYm9saSBwcmlqYXTDqSc7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnUHLDoXpkbmUgdGVsbyBzcHLDoXZ5Lic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnTmV6bsOhbWUga8OzZG92YW5pZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdOZWTDoSBzYSB2eWtvbmHFpTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdTw7pib3IgbmVib2wgbsOhamRlbsO9OiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0ZpbGUgRXJyb3I6IFPDumJvciBzYSBvdHZvcmnFpSBwcmUgxI3DrXRhbmllOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ07DoXNsZWR1asO6Y2EgYWRyZXNhIEZyb20gamUgbmVzcHLDoXZuYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICdOZWTDoSBzYSB2eXR2b3JpxaUgaW7FoXRhbmNpYSBlbWFpbG92ZWogZnVua2NpZS4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ05lb2Rvc2xhbsOpLCBlbWFpbG92w6EgYWRyZXNhIGplIG5lc3Byw6F2bmE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIGVtYWlsb3bDvSBrbGllbnQgbmllamUgcG9kcG9yb3ZhbsO9Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnTXVzw610ZSB6YWRhxaUgYXNwb8WIIGplZG51IGVtYWlsb3bDuiBhZHJlc3UgcHLDrWplbWN1Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCBFcnJvcjogQWRyZXN5IHByw61qZW1jb3Ygbmllc3Ugc3Byw6F2bmUgJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdDaHliYSBwcmlobGFzb3ZhbmlhOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgQ29ubmVjdCgpIHpseWhhbG8uJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQIGNoeWJhIHNlcnZlcnU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnTmVtb8W+bm8gbmFzdGF2acWlIGFsZWJvIHJlc2V0b3ZhxaUgcHJlbWVubsO6OiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ0Now71iYSByb3rFocOtcmVuaWU6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1zbC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1zbC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUzY2I3ZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXNsLnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorLyoqCisgKiBTbG92ZW5lIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBLbGVtZW4gVHXFoWFyIDx0ZWNob3VzZUBnbWFpbC5jb20+CisgKiBAYXV0aG9yIEZpbGlwIMWgIDxwcm9qZWN0c0BmaWxpcHMuc2k+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgbmFwYWthOiBBdnRlbnRpa2FjaWphIG5pIHVzcGVsYS4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgbmFwYWthOiBWenBvc3RhdmxqYW5qZSBwb3ZlemF2ZSBzIFNNVFAgZ29zdGl0ZWxqZW0gbmkgdXNwZWxvLic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUCBuYXBha2E6IFN0cmXFvm5payB6YXZyYcSNYSBwb2RhdGtlLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnRS1wb8WhdG5vIHNwb3JvxI1pbG8gbmltYSB2c2ViaW5lLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnTmVwb3puYW4gdGlwIGtvZGlyYW5qYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICdPcGVyYWNpamEgbmkgdXNwZWxhOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ05pbWFtIGRvc3RvcGEgZG8gZGF0b3Rla2U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfb3BlbiddICAgICAgICAgICAgPSAnTmUgbW9yZW0gb2RwcmV0aSBkYXRvdGVrZTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdOZXZlbGphdmVuIGUtbmFzbG92IHBvxaFpbGphdGVsamE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnTmUgbW9yZW0gaW5pY2lhbGl6aXJhdGkgbWFpbCBmdW5rY2lqZS4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0UtcG/FoXRubyBzcG9yb8SNaWxvIG5pIGJpbG8gcG9zbGFuby4gRS1uYXNsb3YgamUgbmV2ZWxqYXZlbjogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgbWFpbGVyIG5pIHBvZHBydC4nOworJFBIUE1BSUxFUl9MQU5HWydwcm92aWRlX2FkZHJlc3MnXSAgICAgID0gJ1Byb3NpbSB2bmVzaXRlIHZzYWogZW5lZ2EgbmFzbG92bmlrYS4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAgbmFwYWthOiBTbGVkZcSNaSBuYXNsb3ZuaWtpIHNvIG5ldmVsamF2bmk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnTmFwYWthIHByaSBwb2RwaXNvdmFuanU6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnTmUgbW9yZW0gdnpwb3N0YXZpdGkgcG92ZXphdmUgcyBTTVRQIHN0cmXFvm5pa29tLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnTmFwYWthIFNNVFAgc3RyZcW+bmlrYTogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdOZSBtb3JlbSBuYXN0YXZpdGkgb3ouIHBvbmFzdGF2aXRpIHNwcmVtZW5saml2a2U6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnTWFuamtham/EjWEgcmF6xaFpcml0ZXY6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1zci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy1zci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRjMWUxOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXNyLnBocApAQCAtMCwwICsxLDI3IEBACis8P3BocAorLyoqCisgKiBTZXJiaWFuIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciDQkNC70LXQutGB0LDQvdC00LDRgCDQiNC10LLRgNC10LzQvtCy0LjRmyA8YWpldnJlbW92aWNAZ21haWwuY29tPgorICogQGF1dGhvciBNaWxvxaEgTWlsYW5vdmnEhyA8bW1pbGFub3ZpYzAxNkBnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAg0LPRgNC10YjQutCwOiDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNGY0LAg0L3QuNGY0LUg0YPRgdC/0LXQu9CwLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCDQs9GA0LXRiNC60LA6INC/0L7QstC10LfQuNCy0LDRmtC1INGB0LAgU01UUCDRgdC10YDQstC10YDQvtC8INC90LjRmNC1INGD0YHQv9C10LvQvi4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAg0LPRgNC10YjQutCwOiDQv9C+0LTQsNGG0Lgg0L3QuNGB0YMg0L/RgNC40YXQstCw0ZvQtdC90LguJzsKKyRQSFBNQUlMRVJfTEFOR1snZW1wdHlfbWVzc2FnZSddICAgICAgICA9ICfQodCw0LTRgNC20LDRmCDQv9C+0YDRg9C60LUg0ZjQtSDQv9GA0LDQt9Cw0L0uJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfQndC10L/QvtC30L3QsNGC0L4g0LrQvtC00LjRgNCw0ZrQtTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXhlY3V0ZSddICAgICAgICAgICAgICA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0LjQt9Cy0YDRiNC40YLQuCDQvdCw0YDQtdC00LHRgzogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0L/RgNC40YHRgtGD0L/QuNGC0Lgg0LTQsNGC0L7RgtC10YbQuDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0L7RgtCy0L7RgNC40YLQuCDQtNCw0YLQvtGC0LXQutGDOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ1NNVFAg0LPRgNC10YjQutCwOiDRgdC70LDRmtC1INGB0LAg0YHQu9C10LTQtdGb0LjRhSDQsNC00YDQtdGB0LAg0L3QuNGY0LUg0YPRgdC/0LXQu9C+OiAnOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAg0LPRgNC10YjQutCwOiDRgdC70LDRmtC1INC90LAg0YHQu9C10LTQtdGb0LUg0LDQtNGA0LXRgdC1INC90LjRmNC1INGD0YHQv9C10LvQvjogJzsKKyRQSFBNQUlMRVJfTEFOR1snaW5zdGFudGlhdGUnXSAgICAgICAgICA9ICfQndC40ZjQtSDQvNC+0LPRg9Gb0LUg0L/QvtC60YDQtdC90YPRgtC4IG1haWwg0YTRg9C90LrRhtC40ZjRgy4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ9Cf0L7RgNGD0LrQsCDQvdC40ZjQtSDQv9C+0YHQu9Cw0YLQsC4g0J3QtdC40YHQv9GA0LDQstC90LAg0LDQtNGA0LXRgdCwOiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyDQvNC10ZjQu9C10YAg0L3QuNGY0LUg0L/QvtC00YDQttCw0L0uJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICfQlNC10YTQuNC90LjRiNC40YLQtSDQsdCw0YAg0ZjQtdC00L3RgyDQsNC00YDQtdGB0YMg0L/RgNC40LzQsNC+0YbQsC4nOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ9CT0YDQtdGI0LrQsCDQv9GA0LjQu9C40LrQvtC8INC/0YDQuNGY0LDQstC1OiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ9Cf0L7QstC10LfQuNCy0LDRmtC1INGB0LAgU01UUCDRgdC10YDQstC10YDQvtC8INC90LjRmNC1INGD0YHQv9C10LvQvi4nOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ9CT0YDQtdGI0LrQsCBTTVRQINGB0LXRgNCy0LXRgNCwOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ9Cd0LjRmNC1INC80L7Qs9GD0ZvQtSDQt9Cw0LTQsNGC0Lgg0L3QuNGC0Lgg0YDQtdGB0LXRgtC+0LLQsNGC0Lgg0L/RgNC+0LzQtdC90ZnQuNCy0YM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAn0J3QtdC00L7RgdGC0LDRmNC1INC/0YDQvtGI0LjRgNC10ZrQtTogJzsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXN2LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXN2LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDA4ZTYzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctc3YucGhwCkBAIC0wLDAgKzEsMjYgQEAKKzw/cGhwCisvKioKKyAqIFN3ZWRpc2ggUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdAorICogQHBhY2thZ2UgUEhQTWFpbGVyCisgKiBAYXV0aG9yIEpvaGFuIExpbm7DqXIgPGpvaGFuQGxpbm5lci5iaXo+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAgZmVsOiBLdW5kZSBpbnRlIGF1dGVudGlzZXJhLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCBmZWw6IEt1bmRlIGludGUgYW5zbHV0YSB0aWxsIFNNVFAtc2VydmVyLic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUCBmZWw6IERhdGEgYWNjZXB0ZXJhZGVzIGludGUuJzsKKy8vJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ01lc3NhZ2UgYm9keSBlbXB0eSc7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnT2vDpG50IGVuY29kZS1mb3JtYXQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnS3VuZGUgaW50ZSBrw7ZyYTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9hY2Nlc3MnXSAgICAgICAgICA9ICdJbmdlbiDDpXRrb21zdCB0aWxsIGZpbDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICdGaWwgZmVsOiBLdW5kZSBpbnRlIMO2cHBuYSBmaWw6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2Zyb21fZmFpbGVkJ10gICAgICAgICAgPSAnRsO2bGphbmRlIGF2c8OkbmRhcmFkcmVzcyDDpHIgZmVsYWt0aWc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnS3VuZGUgaW50ZSBpbml0aWVyYSBlLXBvc3RmdW5rdGlvbi4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0ZlbGFrdGlnIGFkcmVzczogJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdEdSBtw6VzdGUgYW5nZSBtaW5zdCBlbiBtb3R0YWdhcmVzIGUtcG9zdGFkcmVzcy4nOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJyBtYWlsZXIgc3TDtmRzIGludGUuJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIGZlbDogRsO2bGphbmRlIG1vdHRhZ2FyZSDDpHIgZmVsYWt0aWc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAnU2lnbmVyaW5ncyBmZWw6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCBDb25uZWN0KCkgbWlzc2x5Y2thZGVzLic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnU01UUCBzZXJ2ZXIgZmVsOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ0t1bmRlIGludGUgZGVmaW5pZXJhIGVsbGVyIMOldGVyc3TDpGxsYSB2YXJpYWJlbDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdUaWxsw6RnZyBlaiB0aWxsZ8OkbmdsaWd0OiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctdGwucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctdGwucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNTFkNGMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy10bC5waHAKQEAgLTAsMCArMSwyNyBAQAorPD9waHAKKy8qKgorICogVGFnYWxvZyBQSFBNYWlsZXIgbGFuZ3VhZ2UgZmlsZTogcmVmZXIgdG8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmb3IgZGVmaW5pdGl2ZSBsaXN0CisgKgorICogICBAcGFja2FnZSBQSFBNYWlsZXIKKyAqICAgQGF1dGhvciBBZHJpYW5lIEp1c3RpbmUgVGFuIDxhZHJpYW5ldGFuMTJAZ21haWwuY29tPgorICovCisgCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCBFcnJvcjogSGluZGkgbWFwYXRvdG9oYW5hbi4nOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAgRXJyb3I6IEhpbmRpIG1ha2Frb25la3RhIHNhIFNNVFAgaG9zdC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAgRXJyb3I6IEFuZyBkYXRvcyBheSBoaW5kaSBtYWFhcmluZyBtYXRhdGFuZ2dhcC4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ1dhbGFuZyBsYW1hbiBhbmcgbWVuc2FoZSc7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAnSGluZGkgYWxhbSBhbmcgZW5jb2Rpbmc6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnSGluZGkgbWFpc2FzYWdhd2E6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAnSGluZGkgbWEtYWNjZXNzIGFuZyBmaWxlOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0hpbmRpIG1hYnVrc2FuIGFuZyBmaWxlOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0FuZyBzdW11c3Vub2QgbmEgYWRkcmVzcyBheSBuYWJpZ286ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnSGluZGkgbWFhYXJpbmcgbWFnYmlnYXkgbmcgaW5zdGl0dXN5b24gYW5nIG1haWwnOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0hpbmRpIHdhc3RvIGFuZyBhZGRyZXNzIG5hIG5haWJpZ2F5OiAnOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJ0FuZyBtYWlsZXIgYXkgaGluZGkgc3Vwb3J0YWRvJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdLYWlsYW5nYW4gbW9uZyBtYWdiaWdheSBuZyBrYWhpdCBpc2FuZyBlbWFpbCBhZGRyZXNzIG5hIHRhdGFuZ2dhcCc7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCBFcnJvcjogQW5nIG1nYSBzdW11c3Vub2QgbmEgdGF0YW5nZ2FwIGF5IG5hYmlnbzogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICdIaW5kaSBtYS1zaWduJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdBbmcgU01UUCBjb25uZWN0KCkgYXkgbmFiaWdvJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdBbmcgc2VydmVyIG5nIFNNVFAgYXkgbmFiaWdvJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdIaW5kaSBtYXRhdGFrZGEgYW5nIG1nYSB2YXJpYWJsZXM6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnTmF3YXdhbGEgYW5nIGV4dGVuc2lvbic7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy10ci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy10ci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZlOGVhYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXRyLnBocApAQCAtMCwwICsxLDMwIEBACis8P3BocAorLyoqCisgKiBUdXJraXNoIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBFbMOnaW4gw5Z6ZWwKKyAqIEBhdXRob3IgQ2FuIFnEsWxtYXoKKyAqIEBhdXRob3IgTWVobWV0IEJlbmxpb8SfbHUKKyAqIEBhdXRob3IgQHlhc2luYXlkaW4KKyAqIEBhdXRob3IgT2fDvG4gS2FyYWt1xZ8KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCBIYXRhc8SxOiBPdHVydW0gYcOnxLFsYW1hZMSxLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnU01UUCBIYXRhc8SxOiBTTVRQIHN1bnVjdXN1bmEgYmHEn2xhbsSxbGFtYWTEsS4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ1NNVFAgSGF0YXPEsTogVmVyaSBrYWJ1bCBlZGlsbWVkaS4nOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ01lc2FqxLFuIGnDp2VyacSfaSBib8WfJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdCaWxpbm1leWVuIGthcmFrdGVyIGtvZGxhbWE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2V4ZWN1dGUnXSAgICAgICAgICAgICAgPSAnw4dhbMSxxZ90xLFyxLFsYW1hZMSxOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0Rvc3lheWEgZXJpxZ9pbGVtZWRpOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0Rvc3lhIEhhdGFzxLE6IERvc3lhIGHDp8SxbGFtYWTEsTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZnJvbV9mYWlsZWQnXSAgICAgICAgICA9ICdCZWxpcnRpbGVuIGFkcmVzbGVyZSBnw7ZuZGVybWUgYmHFn2FyxLFzxLF6OiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ8OWcm5layBlLXBvc3RhIGZvbmtzaXlvbnUgb2x1xZ90dXJ1bGFtYWTEsS4nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ0dlw6dlcnNpeiBlLXBvc3RhIGFkcmVzaTogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgZS1wb3N0YSBrw7x0w7xwaGFuZXNpIGRlc3Rla2xlbm1peW9yLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAnRW4gYXogYmlyIGFsxLFjxLEgZS1wb3N0YSBhZHJlc2kgYmVsaXJ0bWVsaXNpbml6Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3JlY2lwaWVudHNfZmFpbGVkJ10gICAgPSAnU01UUCBIYXRhc8SxOiBCZWxpcnRpbGVuIGFsxLFjxLFsYXJhIHVsYcWfxLFsYW1hZMSxOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ8SwbXphbGFtYSBoYXRhc8SxOiAnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Nvbm5lY3RfZmFpbGVkJ10gID0gJ1NNVFAgY29ubmVjdCgpIGZvbmtzaXlvbnUgYmHFn2FyxLFzxLF6Lic7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnU01UUCBzdW51Y3UgaGF0YXPEsTogJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICdEZcSfacWfa2VuIGF5YXJsYW5hbWFkxLEgeWEgZGEgc8SxZsSxcmxhbmFtYWTEsTogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICdFa2xlbnRpIGJ1bHVuYW1hZMSxOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctdWsucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctdWsucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZDc3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy11ay5waHAKQEAgLTAsMCArMSwyNyBAQAorPD9waHAKKy8qKgorICogVWtyYWluaWFuIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBZdXJpeSBSdWR5eSA8eXJ1ZHl5QHBycy5uZXQudWE+CisgKiBAZml4ZWQgYnkgQm9yaXMgWXVyY2hlbmtvIDxib3Jpc0B5dXJjaGVua28ucHAudWE+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ9Cf0L7QvNC40LvQutCwIFNNVFA6INC/0L7QvNC40LvQutCwINCw0LLRgtC+0YDQuNC30LDRhtGW0ZcuJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICfQn9C+0LzQuNC70LrQsCBTTVRQOiDQvdC1INCy0LTQsNGU0YLRjNGB0Y8g0L/RltC0XCfRlNC00L3QsNGC0LjRgdGPINC00L4gU01UUC3RgdC10YDQstC10YDRgy4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ9Cf0L7QvNC40LvQutCwIFNNVFA6INC00LDQvdGWINC90LUg0L/RgNC40LnQvdGP0YLQvi4nOworJFBIUE1BSUxFUl9MQU5HWydlbmNvZGluZyddICAgICAgICAgICAgID0gJ9Cd0LXQstGW0LTQvtC80LUg0LrQvtC00YPQstCw0L3QvdGPOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ9Cd0LXQvNC+0LbQu9C40LLQviDQstC40LrQvtC90LDRgtC4INC60L7QvNCw0L3QtNGDOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ9Cd0LXQvNCw0ZQg0LTQvtGB0YLRg9C/0YMg0LTQviDRhNCw0LnQu9GDOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ9Cf0L7QvNC40LvQutCwINGE0LDQudC70L7QstC+0Zcg0YHQuNGB0YLQtdC80Lg6INC90LUg0LLQtNCw0ZTRgtGM0YHRjyDQstGW0LTQutGA0LjRgtC4INGE0LDQudC7OiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ9Cd0LXQstGW0YDQvdCwINCw0LTRgNC10YHQsCDQstGW0LTQv9GA0LDQstC90LjQutCwOiAnOworJFBIUE1BSUxFUl9MQU5HWydpbnN0YW50aWF0ZSddICAgICAgICAgID0gJ9Cd0LXQvNC+0LbQu9C40LLQviDQt9Cw0L/Rg9GB0YLQuNGC0Lgg0YTRg9C90LrRhtGW0Y4gbWFpbCgpLic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAn0JHRg9C00Ywt0LvQsNGB0LrQsCwg0LLQstC10LTRltGC0Ywg0YXQvtGH0LAg0LEg0L7QtNC90YMgZW1haWwt0LDQtNGA0LXRgdGDINC+0YLRgNC40LzRg9Cy0LDRh9CwLic7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAnIC0g0L/QvtGI0YLQvtCy0LjQuSDRgdC10YDQstC10YAg0L3QtSDQv9GW0LTRgtGA0LjQvNGD0ZTRgtGM0YHRjy4nOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ9Cf0L7QvNC40LvQutCwIFNNVFA6INC90LUg0LLQtNCw0LvQvtGB0Y8g0LLRltC00L/RgNCw0LLQu9C10L3QvdGPINC00LvRjyDRgtCw0LrQuNGFINC+0YLRgNC40LzRg9Cy0LDRh9GW0LI6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAn0J/Rg9GB0YLQtSDQv9C+0LLRltC00L7QvNC70LXQvdC90Y8nOworJFBIUE1BSUxFUl9MQU5HWydpbnZhbGlkX2FkZHJlc3MnXSAgICAgID0gJ9Cd0LUg0LLRltC00L/RgNCw0LLQu9C10L3QviDRh9C10YDQtdC3INC90LXQstGW0YDQvdC40Lkg0YTQvtGA0LzQsNGCIGVtYWlsLdCw0LTRgNC10YHQuDogJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICfQn9C+0LzQuNC70LrQsCDQv9GW0LTQv9C40YHRgzogJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICfQn9C+0LzQuNC70LrQsCDQt1wn0ZTQtNC90LDQvdC90Y8g0LcgU01UUC3RgdC10YDQstC10YDQvtC8JzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICfQn9C+0LzQuNC70LrQsCBTTVRQLdGB0LXRgNCy0LXRgNCwOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ9Cd0LXQvNC+0LbQu9C40LLQviDQstGB0YLQsNC90L7QstC40YLQuCDQsNCx0L4g0YHQutC40L3Rg9GC0Lgg0LfQvNGW0L3QvdGDOiAnOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ9Cg0L7Qt9GI0LjRgNC10L3QvdGPINCy0ZbQtNGB0YPRgtC90ZQ6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy12aS5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy12aS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYwZGFkZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXZpLnBocApAQCAtMCwwICsxLDI2IEBACis8P3BocAorLyoqCisgKiBWaWV0bmFtZXNlIChUaeG6v25nIFZp4buHdCkgUEhQTWFpbGVyIGxhbmd1YWdlIGZpbGU6IHJlZmVyIHRvIEVuZ2xpc2ggdHJhbnNsYXRpb24gZm9yIGRlZmluaXRpdmUgbGlzdC4KKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBWSU5BREVTLixKU0MgPGNvbnRhY3RAdmluYWRlcy52bj4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnTOG7l2kgU01UUDogS2jDtG5nIHRo4buDIHjDoWMgdGjhu7FjLic7CiskUEhQTUFJTEVSX0xBTkdbJ2Nvbm5lY3RfaG9zdCddICAgICAgICAgPSAnTOG7l2kgU01UUDogS2jDtG5nIHRo4buDIGvhur90IG7hu5FpIG3DoXkgY2jhu6cgU01UUC4nOworJFBIUE1BSUxFUl9MQU5HWydkYXRhX25vdF9hY2NlcHRlZCddICAgID0gJ0zhu5dpIFNNVFA6IEThu68gbGnhu4d1IGtow7RuZyDEkcaw4bujYyBjaOG6pXAgbmjhuq1uLic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAnS2jDtG5nIGPDsyBu4buZaSBkdW5nJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICdNw6MgaMOzYSBraMO0bmcgeMOhYyDEkeG7i25oOiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ0tow7RuZyB0aOG7sWMgaGnhu4duIMSRxrDhu6NjOiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX2FjY2VzcyddICAgICAgICAgID0gJ0tow7RuZyB0aOG7gyB0cnV5IGPhuq1wIHThu4dwIHRpbiAnOworJFBIUE1BSUxFUl9MQU5HWydmaWxlX29wZW4nXSAgICAgICAgICAgID0gJ0zhu5dpIFThuq1wIHRpbjogS2jDtG5nIHRo4buDIG3hu58gdOG7h3AgdGluOiAnOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ0zhu5dpIMSR4buLYSBjaOG7iSBn4butaSDEkWk6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAnS2jDtG5nIGTDuW5nIMSRxrDhu6NjIGPDoWMgaMOgbSBn4butaSB0aMawLic7CiskUEhQTUFJTEVSX0xBTkdbJ2ludmFsaWRfYWRkcmVzcyddICAgICAgPSAnxJDhuqFpIGNo4buJIGVtYWkga2jDtG5nIMSRw7puZzogJzsKKyRQSFBNQUlMRVJfTEFOR1snbWFpbGVyX25vdF9zdXBwb3J0ZWQnXSA9ICcgdHLDrG5oIGfhu61pIHRoxrAga2jDtG5nIMSRxrDhu6NjIGjhu5cgdHLhu6MuJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICdC4bqhbiBwaOG6o2kgY3VuZyBj4bqlcCDDrXQgbmjhuqV0IG3hu5l0IMSR4buLYSBjaOG7iSBuZ8aw4budaSBuaOG6rW4uJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdM4buXaSBTTVRQOiBs4buXaSDEkeG7i2EgY2jhu4kgbmfGsOG7nWkgbmjhuq1uOiAnOworJFBIUE1BSUxFUl9MQU5HWydzaWduaW5nJ10gICAgICAgICAgICAgID0gJ0zhu5dpIMSRxINuZyBuaOG6rXA6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnTOG7l2kga+G6v3QgbuG7kWkgduG7m2kgU01UUCc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfZXJyb3InXSAgICAgICAgICAgPSAnTOG7l2kgbcOheSBjaOG7pyBzbXRwICc7CiskUEhQTUFJTEVSX0xBTkdbJ3ZhcmlhYmxlX3NldCddICAgICAgICAgPSAnS2jDtG5nIHRo4buDIHRoaeG6v3QgbOG6rXAgaG/hurdjIHRoaeG6v3QgbOG6rXAgbOG6oWkgYmnhur9uOiAnOworLy8kUEhQTUFJTEVSX0xBTkdbJ2V4dGVuc2lvbl9taXNzaW5nJ10gICAgPSAnRXh0ZW5zaW9uIG1pc3Npbmc6ICc7CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy16aC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy16aC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U5ZTM1OAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL2xhbmd1YWdlL3BocG1haWxlci5sYW5nLXpoLnBocApAQCAtMCwwICsxLDI4IEBACis8P3BocAorLyoqCisgKiBUcmFkaXRpb25hbCBDaGluZXNlIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBsaXF3ZWkgPGxpcXdlaUBsaXF3ZWkuY29tPgorICogQGF1dGhvciBQZXRlciBEYXZlIEhlbGxvIDxAUGV0ZXJEYXZlSGVsbG8vPgorICogQGF1dGhvciBKYXNvbiBDaGlhbmcgPHhjb2phZEBnbWFpbC5jb20+CisgKi8KKworJFBIUE1BSUxFUl9MQU5HWydhdXRoZW50aWNhdGUnXSAgICAgICAgID0gJ1NNVFAg6Yyv6Kqk77ya55m75YWl5aSx5pWX44CCJzsKKyRQSFBNQUlMRVJfTEFOR1snY29ubmVjdF9ob3N0J10gICAgICAgICA9ICdTTVRQIOmMr+iqpO+8mueEoeazlemAo+e3muWIsCBTTVRQIOS4u+apn+OAgic7CiskUEhQTUFJTEVSX0xBTkdbJ2RhdGFfbm90X2FjY2VwdGVkJ10gICAgPSAnU01UUCDpjK/oqqTvvJrnhKHms5XmjqXlj5fnmoTos4fmlpnjgIInOworJFBIUE1BSUxFUl9MQU5HWydlbXB0eV9tZXNzYWdlJ10gICAgICAgID0gJ+mDteS7tuWFp+WuueeCuuepuic7CiskUEhQTUFJTEVSX0xBTkdbJ2VuY29kaW5nJ10gICAgICAgICAgICAgPSAn5pyq55+l57eo56K8OiAnOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ+eEoeazleWft+ihjO+8mic7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAn54Sh5rOV5a2Y5Y+W5qqU5qGI77yaJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfmqpTmoYjpjK/oqqTvvJrnhKHms5XplovllZ/mqpTmoYjvvJonOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ+eZvOmAgeWcsOWdgOmMr+iqpO+8mic7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn5pyq55+l5Ye95pW45ZG85Y+r44CCJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICflm6Dngrrpm7vlrZDpg7Xku7blnLDlnYDnhKHmlYjvvIznhKHms5XlgrPpgIE6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ21haWxlcl9ub3Rfc3VwcG9ydGVkJ10gPSAn5LiN5pSv5o+055qE55m85L+h5a6i5oi256uv44CCJzsKKyRQSFBNQUlMRVJfTEFOR1sncHJvdmlkZV9hZGRyZXNzJ10gICAgICA9ICflv4XpoIjmj5Dkvpvoh7PlsJHkuIDlgIvmlLbku7bkurrlnLDlnYDjgIInOworJFBIUE1BSUxFUl9MQU5HWydyZWNpcGllbnRzX2ZhaWxlZCddICAgID0gJ1NNVFAg6Yyv6Kqk77ya5Lul5LiL5pS25Lu25Lq65Zyw5Z2A6Yyv6Kqk77yaJzsKKyRQSFBNQUlMRVJfTEFOR1snc2lnbmluZyddICAgICAgICAgICAgICA9ICfpm7vlrZDnsL3nq6DpjK/oqqQ6ICc7CiskUEhQTUFJTEVSX0xBTkdbJ3NtdHBfY29ubmVjdF9mYWlsZWQnXSAgPSAnU01UUCDpgKPnt5rlpLHmlZcnOworJFBIUE1BSUxFUl9MQU5HWydzbXRwX2Vycm9yJ10gICAgICAgICAgID0gJ1NNVFAg5Ly65pyN5Zmo6Yyv6KqkOiAnOworJFBIUE1BSUxFUl9MQU5HWyd2YXJpYWJsZV9zZXQnXSAgICAgICAgID0gJ+eEoeazleioreWumuaIlumHjeioreiuiuaVuDogJzsKKyRQSFBNQUlMRVJfTEFOR1snZXh0ZW5zaW9uX21pc3NpbmcnXSAgICA9ICfpgbrlpLHmqKHntYQgRXh0ZW5zaW9uOiAnOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctemhfY24ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvbGFuZ3VhZ2UvcGhwbWFpbGVyLmxhbmctemhfY24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NTM3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9sYW5ndWFnZS9waHBtYWlsZXIubGFuZy16aF9jbi5waHAKQEAgLTAsMCArMSwyOCBAQAorPD9waHAKKy8qKgorICogU2ltcGxpZmllZCBDaGluZXNlIFBIUE1haWxlciBsYW5ndWFnZSBmaWxlOiByZWZlciB0byBFbmdsaXNoIHRyYW5zbGF0aW9uIGZvciBkZWZpbml0aXZlIGxpc3QKKyAqIEBwYWNrYWdlIFBIUE1haWxlcgorICogQGF1dGhvciBsaXF3ZWkgPGxpcXdlaUBsaXF3ZWkuY29tPgorICogQGF1dGhvciB5b3VuZyA8bWFzeHlAZm94bWFpbC5jb20+CisgKiBAYXV0aG9yIFRlZGR5c3VuIDxpQHRlZGR5c3VuLmNvbT4KKyAqLworCiskUEhQTUFJTEVSX0xBTkdbJ2F1dGhlbnRpY2F0ZSddICAgICAgICAgPSAnU01UUCDplJnor6/vvJrnmbvlvZXlpLHotKXjgIInOworJFBIUE1BSUxFUl9MQU5HWydjb25uZWN0X2hvc3QnXSAgICAgICAgID0gJ1NNVFAg6ZSZ6K+v77ya5peg5rOV6L+e5o6l5YiwIFNNVFAg5Li75py644CCJzsKKyRQSFBNQUlMRVJfTEFOR1snZGF0YV9ub3RfYWNjZXB0ZWQnXSAgICA9ICdTTVRQIOmUmeivr++8muaVsOaNruS4jeiiq+aOpeWPl+OAgic7CiskUEhQTUFJTEVSX0xBTkdbJ2VtcHR5X21lc3NhZ2UnXSAgICAgICAgPSAn6YKu5Lu25q2j5paH5Li656m644CCJzsKKyRQSFBNQUlMRVJfTEFOR1snZW5jb2RpbmcnXSAgICAgICAgICAgICA9ICfmnKrnn6XnvJbnoIHvvJonOworJFBIUE1BSUxFUl9MQU5HWydleGVjdXRlJ10gICAgICAgICAgICAgID0gJ+aXoOazleaJp+ihjO+8mic7CiskUEhQTUFJTEVSX0xBTkdbJ2ZpbGVfYWNjZXNzJ10gICAgICAgICAgPSAn5peg5rOV6K6/6Zeu5paH5Lu277yaJzsKKyRQSFBNQUlMRVJfTEFOR1snZmlsZV9vcGVuJ10gICAgICAgICAgICA9ICfmlofku7bplJnor6/vvJrml6Dms5XmiZPlvIDmlofku7bvvJonOworJFBIUE1BSUxFUl9MQU5HWydmcm9tX2ZhaWxlZCddICAgICAgICAgID0gJ+WPkemAgeWcsOWdgOmUmeivr++8mic7CiskUEhQTUFJTEVSX0xBTkdbJ2luc3RhbnRpYXRlJ10gICAgICAgICAgPSAn5pyq55+l5Ye95pWw6LCD55So44CCJzsKKyRQSFBNQUlMRVJfTEFOR1snaW52YWxpZF9hZGRyZXNzJ10gICAgICA9ICflj5HpgIHlpLHotKXvvIznlLXlrZDpgq7nrrHlnLDlnYDmmK/ml6DmlYjnmoTvvJonOworJFBIUE1BSUxFUl9MQU5HWydtYWlsZXJfbm90X3N1cHBvcnRlZCddID0gJ+WPkeS/oeWuouaIt+err+S4jeiiq+aUr+aMgeOAgic7CiskUEhQTUFJTEVSX0xBTkdbJ3Byb3ZpZGVfYWRkcmVzcyddICAgICAgPSAn5b+F6aG75o+Q5L6b6Iez5bCR5LiA5Liq5pS25Lu25Lq65Zyw5Z2A44CCJzsKKyRQSFBNQUlMRVJfTEFOR1sncmVjaXBpZW50c19mYWlsZWQnXSAgICA9ICdTTVRQIOmUmeivr++8muaUtuS7tuS6uuWcsOWdgOmUmeivr++8mic7CiskUEhQTUFJTEVSX0xBTkdbJ3NpZ25pbmcnXSAgICAgICAgICAgICAgPSAn55m75b2V5aSx6LSl77yaJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9jb25uZWN0X2ZhaWxlZCddICA9ICdTTVRQ5pyN5Yqh5Zmo6L+e5o6l5aSx6LSl44CCJzsKKyRQSFBNQUlMRVJfTEFOR1snc210cF9lcnJvciddICAgICAgICAgICA9ICdTTVRQ5pyN5Yqh5Zmo5Ye66ZSZ77yaJzsKKyRQSFBNQUlMRVJfTEFOR1sndmFyaWFibGVfc2V0J10gICAgICAgICA9ICfml6Dms5Xorr7nva7miJbph43nva7lj5jph4/vvJonOworJFBIUE1BSUxFUl9MQU5HWydleHRlbnNpb25fbWlzc2luZyddICAgID0gJ+S4ouWkseaooeWdlyBFeHRlbnNpb27vvJonOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvc3JjL0V4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWU1NTJmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvc3JjL0V4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSwzOSBAQAorPD9waHAKKy8qKgorICogUEhQTWFpbGVyIEV4Y2VwdGlvbiBjbGFzcy4KKyAqIFBIUCBWZXJzaW9uIDUuNS4KKyAqCisgKiBAc2VlICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyLyBUaGUgUEhQTWFpbGVyIEdpdEh1YiBwcm9qZWN0CisgKgorICogQGF1dGhvciAgICBNYXJjdXMgQm9pbnRvbiAoU3luY2hyby9jb29sYnJ1KSA8cGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51az4KKyAqIEBhdXRob3IgICAgSmltIEphZ2llbHNraSAoamltamFnKSA8amltamFnQGdtYWlsLmNvbT4KKyAqIEBhdXRob3IgICAgQW5keSBQcmV2b3N0IChjb2Rld29yeHRlY2gpIDxjb2Rld29yeHRlY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICogQGF1dGhvciAgICBCcmVudCBSLiBNYXR6ZWxsZSAob3JpZ2luYWwgZm91bmRlcikKKyAqIEBjb3B5cmlnaHQgMjAxMiAtIDIwMTcgTWFyY3VzIEJvaW50b24KKyAqIEBjb3B5cmlnaHQgMjAxMCAtIDIwMTIgSmltIEphZ2llbHNraQorICogQGNvcHlyaWdodCAyMDA0IC0gMjAwOSBBbmR5IFByZXZvc3QKKyAqIEBsaWNlbnNlICAgaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogQG5vdGUgICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCAtIFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisgKi8KKworbmFtZXNwYWNlIFBIUE1haWxlclxQSFBNYWlsZXI7CisKKy8qKgorICogUEhQTWFpbGVyIGV4Y2VwdGlvbiBoYW5kbGVyLgorICoKKyAqIEBhdXRob3IgTWFyY3VzIEJvaW50b24gPHBocG1haWxlckBzeW5jaHJvbWVkaWEuY28udWs+CisgKi8KK2NsYXNzIEV4Y2VwdGlvbiBleHRlbmRzIFxFeGNlcHRpb24KK3sKKyAgICAvKioKKyAgICAgKiBQcmV0dGlmeSBlcnJvciBtZXNzYWdlIG91dHB1dC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGVycm9yTWVzc2FnZSgpCisgICAgeworICAgICAgICByZXR1cm4gJzxzdHJvbmc+JyAuIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPmdldE1lc3NhZ2UoKSkgLiAiPC9zdHJvbmc+PGJyIC8+XG4iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL3NyYy9PQXV0aC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvT0F1dGgucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNzE5NjMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvT0F1dGgucGhwCkBAIC0wLDAgKzEsMTM4IEBACis8P3BocAorLyoqCisgKiBQSFBNYWlsZXIgLSBQSFAgZW1haWwgY3JlYXRpb24gYW5kIHRyYW5zcG9ydCBjbGFzcy4KKyAqIFBIUCBWZXJzaW9uIDUuNS4KKyAqCisgKiBAc2VlICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyLyBUaGUgUEhQTWFpbGVyIEdpdEh1YiBwcm9qZWN0CisgKgorICogQGF1dGhvciAgICBNYXJjdXMgQm9pbnRvbiAoU3luY2hyby9jb29sYnJ1KSA8cGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51az4KKyAqIEBhdXRob3IgICAgSmltIEphZ2llbHNraSAoamltamFnKSA8amltamFnQGdtYWlsLmNvbT4KKyAqIEBhdXRob3IgICAgQW5keSBQcmV2b3N0IChjb2Rld29yeHRlY2gpIDxjb2Rld29yeHRlY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICogQGF1dGhvciAgICBCcmVudCBSLiBNYXR6ZWxsZSAob3JpZ2luYWwgZm91bmRlcikKKyAqIEBjb3B5cmlnaHQgMjAxMiAtIDIwMTUgTWFyY3VzIEJvaW50b24KKyAqIEBjb3B5cmlnaHQgMjAxMCAtIDIwMTIgSmltIEphZ2llbHNraQorICogQGNvcHlyaWdodCAyMDA0IC0gMjAwOSBBbmR5IFByZXZvc3QKKyAqIEBsaWNlbnNlICAgaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogQG5vdGUgICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCAtIFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisgKi8KKworbmFtZXNwYWNlIFBIUE1haWxlclxQSFBNYWlsZXI7CisKK3VzZSBMZWFndWVcT0F1dGgyXENsaWVudFxHcmFudFxSZWZyZXNoVG9rZW47Cit1c2UgTGVhZ3VlXE9BdXRoMlxDbGllbnRcUHJvdmlkZXJcQWJzdHJhY3RQcm92aWRlcjsKK3VzZSBMZWFndWVcT0F1dGgyXENsaWVudFxUb2tlblxBY2Nlc3NUb2tlbjsKKworLyoqCisgKiBPQXV0aCAtIE9BdXRoMiBhdXRoZW50aWNhdGlvbiB3cmFwcGVyIGNsYXNzLgorICogVXNlcyB0aGUgb2F1dGgyLWNsaWVudCBwYWNrYWdlIGZyb20gdGhlIExlYWd1ZSBvZiBFeHRyYW9yZGluYXJ5IFBhY2thZ2VzLgorICoKKyAqIEBzZWUgICAgIGh0dHA6Ly9vYXV0aDItY2xpZW50LnRoZXBocGxlYWd1ZS5jb20KKyAqCisgKiBAYXV0aG9yICBNYXJjdXMgQm9pbnRvbiAoU3luY2hyby9jb29sYnJ1KSA8cGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51az4KKyAqLworY2xhc3MgT0F1dGgKK3sKKyAgICAvKioKKyAgICAgKiBBbiBpbnN0YW5jZSBvZiB0aGUgTGVhZ3VlIE9BdXRoIENsaWVudCBQcm92aWRlci4KKyAgICAgKgorICAgICAqIEB2YXIgQWJzdHJhY3RQcm92aWRlcgorICAgICAqLworICAgIHByb3RlY3RlZCAkcHJvdmlkZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VycmVudCBPQXV0aCBhY2Nlc3MgdG9rZW4uCisgICAgICoKKyAgICAgKiBAdmFyIEFjY2Vzc1Rva2VuCisgICAgICovCisgICAgcHJvdGVjdGVkICRvYXV0aFRva2VuOworCisgICAgLyoqCisgICAgICogVGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzLCB1c3VhbGx5IHVzZWQgYXMgdGhlIGxvZ2luIElECisgICAgICogYW5kIGFsc28gdGhlIGZyb20gYWRkcmVzcyB3aGVuIHNlbmRpbmcgZW1haWwuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCAkb2F1dGhVc2VyRW1haWwgPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSBjbGllbnQgc2VjcmV0LCBnZW5lcmF0ZWQgaW4gdGhlIGFwcCBkZWZpbml0aW9uIG9mIHRoZSBzZXJ2aWNlIHlvdSdyZSBjb25uZWN0aW5nIHRvLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG9hdXRoQ2xpZW50U2VjcmV0ID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2xpZW50IElELCBnZW5lcmF0ZWQgaW4gdGhlIGFwcCBkZWZpbml0aW9uIG9mIHRoZSBzZXJ2aWNlIHlvdSdyZSBjb25uZWN0aW5nIHRvLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG9hdXRoQ2xpZW50SWQgPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSByZWZyZXNoIHRva2VuLCB1c2VkIHRvIG9idGFpbiBuZXcgQWNjZXNzVG9rZW5zLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG9hdXRoUmVmcmVzaFRva2VuID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBPQXV0aCBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkb3B0aW9ucyBBc3NvY2lhdGl2ZSBhcnJheSBjb250YWluaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGBwcm92aWRlcmAsIGB1c2VyTmFtZWAsIGBjbGllbnRTZWNyZXRgLCBgY2xpZW50SWRgIGFuZCBgcmVmcmVzaFRva2VuYCBlbGVtZW50cworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkb3B0aW9ucykKKyAgICB7CisgICAgICAgICR0aGlzLT5wcm92aWRlciA9ICRvcHRpb25zWydwcm92aWRlciddOworICAgICAgICAkdGhpcy0+b2F1dGhVc2VyRW1haWwgPSAkb3B0aW9uc1sndXNlck5hbWUnXTsKKyAgICAgICAgJHRoaXMtPm9hdXRoQ2xpZW50U2VjcmV0ID0gJG9wdGlvbnNbJ2NsaWVudFNlY3JldCddOworICAgICAgICAkdGhpcy0+b2F1dGhDbGllbnRJZCA9ICRvcHRpb25zWydjbGllbnRJZCddOworICAgICAgICAkdGhpcy0+b2F1dGhSZWZyZXNoVG9rZW4gPSAkb3B0aW9uc1sncmVmcmVzaFRva2VuJ107CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgbmV3IFJlZnJlc2hUb2tlbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmVmcmVzaFRva2VuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEdyYW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUmVmcmVzaFRva2VuKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgbmV3IEFjY2Vzc1Rva2VuLgorICAgICAqCisgICAgICogQHJldHVybiBBY2Nlc3NUb2tlbgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRUb2tlbigpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnByb3ZpZGVyLT5nZXRBY2Nlc3NUb2tlbigKKyAgICAgICAgICAgICR0aGlzLT5nZXRHcmFudCgpLAorICAgICAgICAgICAgWydyZWZyZXNoX3Rva2VuJyA9PiAkdGhpcy0+b2F1dGhSZWZyZXNoVG9rZW5dCisgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYSBiYXNlNjQtZW5jb2RlZCBPQXV0aCB0b2tlbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE9hdXRoNjQoKQorICAgIHsKKyAgICAgICAgLy8gR2V0IGEgbmV3IHRva2VuIGlmIGl0J3Mgbm90IGF2YWlsYWJsZSBvciBoYXMgZXhwaXJlZAorICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPm9hdXRoVG9rZW4gfHwgJHRoaXMtPm9hdXRoVG9rZW4tPmhhc0V4cGlyZWQoKSkgeworICAgICAgICAgICAgJHRoaXMtPm9hdXRoVG9rZW4gPSAkdGhpcy0+Z2V0VG9rZW4oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBiYXNlNjRfZW5jb2RlKAorICAgICAgICAgICAgJ3VzZXI9JyAuCisgICAgICAgICAgICAkdGhpcy0+b2F1dGhVc2VyRW1haWwgLgorICAgICAgICAgICAgIlwwMDFhdXRoPUJlYXJlciAiIC4KKyAgICAgICAgICAgICR0aGlzLT5vYXV0aFRva2VuIC4KKyAgICAgICAgICAgICJcMDAxXDAwMSIKKyAgICAgICAgKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvUEhQTWFpbGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL3NyYy9QSFBNYWlsZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMTRkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvUEhQTWFpbGVyLnBocApAQCAtMCwwICsxLDQ4MzQgQEAKKzw/cGhwCisvKioKKyAqIFBIUE1haWxlciAtIFBIUCBlbWFpbCBjcmVhdGlvbiBhbmQgdHJhbnNwb3J0IGNsYXNzLgorICogUEhQIFZlcnNpb24gNS41LgorICoKKyAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvIFRoZSBQSFBNYWlsZXIgR2l0SHViIHByb2plY3QKKyAqCisgKiBAYXV0aG9yICAgIE1hcmN1cyBCb2ludG9uIChTeW5jaHJvL2Nvb2xicnUpIDxwaHBtYWlsZXJAc3luY2hyb21lZGlhLmNvLnVrPgorICogQGF1dGhvciAgICBKaW0gSmFnaWVsc2tpIChqaW1qYWcpIDxqaW1qYWdAZ21haWwuY29tPgorICogQGF1dGhvciAgICBBbmR5IFByZXZvc3QgKGNvZGV3b3J4dGVjaCkgPGNvZGV3b3J4dGVjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgKiBAYXV0aG9yICAgIEJyZW50IFIuIE1hdHplbGxlIChvcmlnaW5hbCBmb3VuZGVyKQorICogQGNvcHlyaWdodCAyMDEyIC0gMjAxOSBNYXJjdXMgQm9pbnRvbgorICogQGNvcHlyaWdodCAyMDEwIC0gMjAxMiBKaW0gSmFnaWVsc2tpCisgKiBAY29weXJpZ2h0IDIwMDQgLSAyMDA5IEFuZHkgUHJldm9zdAorICogQGxpY2Vuc2UgICBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvbGVzc2VyLmh0bWwgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBAbm90ZSAgICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsIC0gV0lUSE9VVAorICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKyAqLworCituYW1lc3BhY2UgUEhQTWFpbGVyXFBIUE1haWxlcjsKKworLyoqCisgKiBQSFBNYWlsZXIgLSBQSFAgZW1haWwgY3JlYXRpb24gYW5kIHRyYW5zcG9ydCBjbGFzcy4KKyAqCisgKiBAYXV0aG9yIE1hcmN1cyBCb2ludG9uIChTeW5jaHJvL2Nvb2xicnUpIDxwaHBtYWlsZXJAc3luY2hyb21lZGlhLmNvLnVrPgorICogQGF1dGhvciBKaW0gSmFnaWVsc2tpIChqaW1qYWcpIDxqaW1qYWdAZ21haWwuY29tPgorICogQGF1dGhvciBBbmR5IFByZXZvc3QgKGNvZGV3b3J4dGVjaCkgPGNvZGV3b3J4dGVjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisgKiBAYXV0aG9yIEJyZW50IFIuIE1hdHplbGxlIChvcmlnaW5hbCBmb3VuZGVyKQorICovCitjbGFzcyBQSFBNYWlsZXIKK3sKKyAgICBjb25zdCBDSEFSU0VUX0FTQ0lJID0gJ3VzLWFzY2lpJzsKKyAgICBjb25zdCBDSEFSU0VUX0lTTzg4NTkxID0gJ2lzby04ODU5LTEnOworICAgIGNvbnN0IENIQVJTRVRfVVRGOCA9ICd1dGYtOCc7CisKKyAgICBjb25zdCBDT05URU5UX1RZUEVfUExBSU5URVhUID0gJ3RleHQvcGxhaW4nOworICAgIGNvbnN0IENPTlRFTlRfVFlQRV9URVhUX0NBTEVOREFSID0gJ3RleHQvY2FsZW5kYXInOworICAgIGNvbnN0IENPTlRFTlRfVFlQRV9URVhUX0hUTUwgPSAndGV4dC9odG1sJzsKKyAgICBjb25zdCBDT05URU5UX1RZUEVfTVVMVElQQVJUX0FMVEVSTkFUSVZFID0gJ211bHRpcGFydC9hbHRlcm5hdGl2ZSc7CisgICAgY29uc3QgQ09OVEVOVF9UWVBFX01VTFRJUEFSVF9NSVhFRCA9ICdtdWx0aXBhcnQvbWl4ZWQnOworICAgIGNvbnN0IENPTlRFTlRfVFlQRV9NVUxUSVBBUlRfUkVMQVRFRCA9ICdtdWx0aXBhcnQvcmVsYXRlZCc7CisKKyAgICBjb25zdCBFTkNPRElOR183QklUID0gJzdiaXQnOworICAgIGNvbnN0IEVOQ09ESU5HXzhCSVQgPSAnOGJpdCc7CisgICAgY29uc3QgRU5DT0RJTkdfQkFTRTY0ID0gJ2Jhc2U2NCc7CisgICAgY29uc3QgRU5DT0RJTkdfQklOQVJZID0gJ2JpbmFyeSc7CisgICAgY29uc3QgRU5DT0RJTkdfUVVPVEVEX1BSSU5UQUJMRSA9ICdxdW90ZWQtcHJpbnRhYmxlJzsKKworICAgIGNvbnN0IEVOQ1JZUFRJT05fU1RBUlRUTFMgPSAndGxzJzsKKyAgICBjb25zdCBFTkNSWVBUSU9OX1NNVFBTID0gJ3NzbCc7CisKKyAgICBjb25zdCBJQ0FMX01FVEhPRF9SRVFVRVNUID0gJ1JFUVVFU1QnOworICAgIGNvbnN0IElDQUxfTUVUSE9EX1BVQkxJU0ggPSAnUFVCTElTSCc7CisgICAgY29uc3QgSUNBTF9NRVRIT0RfUkVQTFkgPSAnUkVQTFknOworICAgIGNvbnN0IElDQUxfTUVUSE9EX0FERCA9ICdBREQnOworICAgIGNvbnN0IElDQUxfTUVUSE9EX0NBTkNFTCA9ICdDQU5DRUwnOworICAgIGNvbnN0IElDQUxfTUVUSE9EX1JFRlJFU0ggPSAnUkVGUkVTSCc7CisgICAgY29uc3QgSUNBTF9NRVRIT0RfQ09VTlRFUiA9ICdDT1VOVEVSJzsKKyAgICBjb25zdCBJQ0FMX01FVEhPRF9ERUNMSU5FQ09VTlRFUiA9ICdERUNMSU5FQ09VTlRFUic7CisKKyAgICAvKioKKyAgICAgKiBFbWFpbCBwcmlvcml0eS4KKyAgICAgKiBPcHRpb25zOiBudWxsIChkZWZhdWx0KSwgMSA9IEhpZ2gsIDMgPSBOb3JtYWwsIDUgPSBsb3cuCisgICAgICogV2hlbiBudWxsLCB0aGUgaGVhZGVyIGlzIG5vdCBzZXQgYXQgYWxsLgorICAgICAqCisgICAgICogQHZhciBpbnR8bnVsbAorICAgICAqLworICAgIHB1YmxpYyAkUHJpb3JpdHk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIHNldCBvZiB0aGUgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRDaGFyU2V0ID0gc2VsZjo6Q0hBUlNFVF9JU084ODU5MTsKKworICAgIC8qKgorICAgICAqIFRoZSBNSU1FIENvbnRlbnQtdHlwZSBvZiB0aGUgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRDb250ZW50VHlwZSA9IHNlbGY6OkNPTlRFTlRfVFlQRV9QTEFJTlRFWFQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWVzc2FnZSBlbmNvZGluZy4KKyAgICAgKiBPcHRpb25zOiAiOGJpdCIsICI3Yml0IiwgImJpbmFyeSIsICJiYXNlNjQiLCBhbmQgInF1b3RlZC1wcmludGFibGUiLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgJEVuY29kaW5nID0gc2VsZjo6RU5DT0RJTkdfOEJJVDsKKworICAgIC8qKgorICAgICAqIEhvbGRzIHRoZSBtb3N0IHJlY2VudCBtYWlsZXIgZXJyb3IgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRFcnJvckluZm8gPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSBGcm9tIGVtYWlsIGFkZHJlc3MgZm9yIHRoZSBtZXNzYWdlLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgJEZyb20gPSAncm9vdEBsb2NhbGhvc3QnOworCisgICAgLyoqCisgICAgICogVGhlIEZyb20gbmFtZSBvZiB0aGUgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRGcm9tTmFtZSA9ICdSb290IFVzZXInOworCisgICAgLyoqCisgICAgICogVGhlIGVudmVsb3BlIHNlbmRlciBvZiB0aGUgbWVzc2FnZS4KKyAgICAgKiBUaGlzIHdpbGwgdXN1YWxseSBiZSB0dXJuZWQgaW50byBhIFJldHVybi1QYXRoIGhlYWRlciBieSB0aGUgcmVjZWl2ZXIsCisgICAgICogYW5kIGlzIHRoZSBhZGRyZXNzIHRoYXQgYm91bmNlcyB3aWxsIGJlIHNlbnQgdG8uCisgICAgICogSWYgbm90IGVtcHR5LCB3aWxsIGJlIHBhc3NlZCB2aWEgYC1mYCB0byBzZW5kbWFpbCBvciBhcyB0aGUgJ01BSUwgRlJPTScgdmFsdWUgb3ZlciBTTVRQLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgJFNlbmRlciA9ICcnOworCisgICAgLyoqCisgICAgICogVGhlIFN1YmplY3Qgb2YgdGhlIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkU3ViamVjdCA9ICcnOworCisgICAgLyoqCisgICAgICogQW4gSFRNTCBvciBwbGFpbiB0ZXh0IG1lc3NhZ2UgYm9keS4KKyAgICAgKiBJZiBIVE1MIHRoZW4gY2FsbCBpc0hUTUwodHJ1ZSkuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkQm9keSA9ICcnOworCisgICAgLyoqCisgICAgICogVGhlIHBsYWluLXRleHQgbWVzc2FnZSBib2R5LgorICAgICAqIFRoaXMgYm9keSBjYW4gYmUgcmVhZCBieSBtYWlsIGNsaWVudHMgdGhhdCBkbyBub3QgaGF2ZSBIVE1MIGVtYWlsCisgICAgICogY2FwYWJpbGl0eSBzdWNoIGFzIG11dHQgJiBFdWRvcmEuCisgICAgICogQ2xpZW50cyB0aGF0IGNhbiByZWFkIEhUTUwgd2lsbCB2aWV3IHRoZSBub3JtYWwgQm9keS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRBbHRCb2R5ID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBBbiBpQ2FsIG1lc3NhZ2UgcGFydCBib2R5LgorICAgICAqIE9ubHkgc3VwcG9ydGVkIGluIHNpbXBsZSBhbHQgb3IgYWx0X2lubGluZSBtZXNzYWdlIHR5cGVzCisgICAgICogVG8gZ2VuZXJhdGUgaUNhbCBldmVudCBzdHJ1Y3R1cmVzLCB1c2UgY2xhc3NlcyBsaWtlIEVhc3lQZWFzeUlDUyBvciBpQ2FsY3JlYXRvci4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3NwcmFpbi5jaC9ibG9nL2Rvd25sb2Fkcy9waHAtY2xhc3MtZWFzeXBlYXN5aWNzLWNyZWF0ZS1pY2FsLWZpbGVzLXdpdGgtcGhwLworICAgICAqIEBzZWUgaHR0cDovL2tpZ2tvbnN1bHQuc2UvaUNhbGNyZWF0b3IvCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkSWNhbCA9ICcnOworCisgICAgLyoqCisgICAgICogVmFsdWUtYXJyYXkgb2YgIm1ldGhvZCIgaW4gQ29udGVudHR5cGUgaGVhZGVyICJ0ZXh0L2NhbGVuZGFyIgorICAgICAqCisgICAgICogQHZhciBzdHJpbmdbXQorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgJEljYWxNZXRob2RzID0gWworICAgICAgICBzZWxmOjpJQ0FMX01FVEhPRF9SRVFVRVNULAorICAgICAgICBzZWxmOjpJQ0FMX01FVEhPRF9QVUJMSVNILAorICAgICAgICBzZWxmOjpJQ0FMX01FVEhPRF9SRVBMWSwKKyAgICAgICAgc2VsZjo6SUNBTF9NRVRIT0RfQURELAorICAgICAgICBzZWxmOjpJQ0FMX01FVEhPRF9DQU5DRUwsCisgICAgICAgIHNlbGY6OklDQUxfTUVUSE9EX1JFRlJFU0gsCisgICAgICAgIHNlbGY6OklDQUxfTUVUSE9EX0NPVU5URVIsCisgICAgICAgIHNlbGY6OklDQUxfTUVUSE9EX0RFQ0xJTkVDT1VOVEVSLAorICAgIF07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29tcGxldGUgY29tcGlsZWQgTUlNRSBtZXNzYWdlIGJvZHkuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCAkTUlNRUJvZHkgPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSBjb21wbGV0ZSBjb21waWxlZCBNSU1FIG1lc3NhZ2UgaGVhZGVycy4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRNSU1FSGVhZGVyID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBFeHRyYSBoZWFkZXJzIHRoYXQgY3JlYXRlSGVhZGVyKCkgZG9lc24ndCBmb2xkIGluLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG1haWxIZWFkZXIgPSAnJzsKKworICAgIC8qKgorICAgICAqIFdvcmQtd3JhcCB0aGUgbWVzc2FnZSBib2R5IHRvIHRoaXMgbnVtYmVyIG9mIGNoYXJzLgorICAgICAqIFNldCB0byAwIHRvIG5vdCB3cmFwLiBBIHVzZWZ1bCB2YWx1ZSBoZXJlIGlzIDc4LCBmb3IgUkZDMjgyMiBzZWN0aW9uIDIuMS4xIGNvbXBsaWFuY2UuCisgICAgICoKKyAgICAgKiBAc2VlIHN0YXRpYzo6U1REX0xJTkVfTEVOR1RICisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHB1YmxpYyAkV29yZFdyYXAgPSAwOworCisgICAgLyoqCisgICAgICogV2hpY2ggbWV0aG9kIHRvIHVzZSB0byBzZW5kIG1haWwuCisgICAgICogT3B0aW9uczogIm1haWwiLCAic2VuZG1haWwiLCBvciAic210cCIuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkTWFpbGVyID0gJ21haWwnOworCisgICAgLyoqCisgICAgICogVGhlIHBhdGggdG8gdGhlIHNlbmRtYWlsIHByb2dyYW0uCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkU2VuZG1haWwgPSAnL3Vzci9zYmluL3NlbmRtYWlsJzsKKworICAgIC8qKgorICAgICAqIFdoZXRoZXIgbWFpbCgpIHVzZXMgYSBmdWxseSBzZW5kbWFpbC1jb21wYXRpYmxlIE1UQS4KKyAgICAgKiBPbmUgd2hpY2ggc3VwcG9ydHMgc2VuZG1haWwncyAiLW9pIC1mIiBvcHRpb25zLgorICAgICAqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHVibGljICRVc2VTZW5kbWFpbE9wdGlvbnMgPSB0cnVlOworCisgICAgLyoqCisgICAgICogVGhlIGVtYWlsIGFkZHJlc3MgdGhhdCBhIHJlYWRpbmcgY29uZmlybWF0aW9uIHNob3VsZCBiZSBzZW50IHRvLCBhbHNvIGtub3duIGFzIHJlYWQgcmVjZWlwdC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRDb25maXJtUmVhZGluZ1RvID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgaG9zdG5hbWUgdG8gdXNlIGluIHRoZSBNZXNzYWdlLUlEIGhlYWRlciBhbmQgYXMgZGVmYXVsdCBIRUxPIHN0cmluZy4KKyAgICAgKiBJZiBlbXB0eSwgUEhQTWFpbGVyIGF0dGVtcHRzIHRvIGZpbmQgb25lIHdpdGgsIGluIG9yZGVyLAorICAgICAqICRfU0VSVkVSWydTRVJWRVJfTkFNRSddLCBnZXRob3N0bmFtZSgpLCBwaHBfdW5hbWUoJ24nKSwgb3IgdGhlIHZhbHVlCisgICAgICogJ2xvY2FsaG9zdC5sb2NhbGRvbWFpbicuCisgICAgICoKKyAgICAgKiBAc2VlIFBIUE1haWxlcjo6JEhlbG8KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRIb3N0bmFtZSA9ICcnOworCisgICAgLyoqCisgICAgICogQW4gSUQgdG8gYmUgdXNlZCBpbiB0aGUgTWVzc2FnZS1JRCBoZWFkZXIuCisgICAgICogSWYgZW1wdHksIGEgdW5pcXVlIGlkIHdpbGwgYmUgZ2VuZXJhdGVkLgorICAgICAqIFlvdSBjYW4gc2V0IHlvdXIgb3duLCBidXQgaXQgbXVzdCBiZSBpbiB0aGUgZm9ybWF0ICI8aWRAZG9tYWluPiIsCisgICAgICogYXMgZGVmaW5lZCBpbiBSRkM1MzIyIHNlY3Rpb24gMy42LjQgb3IgaXQgd2lsbCBiZSBpZ25vcmVkLgorICAgICAqCisgICAgICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNi40CisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkTWVzc2FnZUlEID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWVzc2FnZSBEYXRlIHRvIGJlIHVzZWQgaW4gdGhlIERhdGUgaGVhZGVyLgorICAgICAqIElmIGVtcHR5LCB0aGUgY3VycmVudCBkYXRlIHdpbGwgYmUgYWRkZWQuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkTWVzc2FnZURhdGUgPSAnJzsKKworICAgIC8qKgorICAgICAqIFNNVFAgaG9zdHMuCisgICAgICogRWl0aGVyIGEgc2luZ2xlIGhvc3RuYW1lIG9yIG11bHRpcGxlIHNlbWljb2xvbi1kZWxpbWl0ZWQgaG9zdG5hbWVzLgorICAgICAqIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGEgZGlmZmVyZW50IHBvcnQKKyAgICAgKiBmb3IgZWFjaCBob3N0IGJ5IHVzaW5nIHRoaXMgZm9ybWF0OiBbaG9zdG5hbWU6cG9ydF0KKyAgICAgKiAoZS5nLiAic210cDEuZXhhbXBsZS5jb206MjU7c210cDIuZXhhbXBsZS5jb20iKS4KKyAgICAgKiBZb3UgY2FuIGFsc28gc3BlY2lmeSBlbmNyeXB0aW9uIHR5cGUsIGZvciBleGFtcGxlOgorICAgICAqIChlLmcuICJ0bHM6Ly9zbXRwMS5leGFtcGxlLmNvbTo1ODc7c3NsOi8vc210cDIuZXhhbXBsZS5jb206NDY1IikuCisgICAgICogSG9zdHMgd2lsbCBiZSB0cmllZCBpbiBvcmRlci4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRIb3N0ID0gJ2xvY2FsaG9zdCc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBTTVRQIHNlcnZlciBwb3J0LgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgJFBvcnQgPSAyNTsKKworICAgIC8qKgorICAgICAqIFRoZSBTTVRQIEhFTE8vRUhMTyBuYW1lIHVzZWQgZm9yIHRoZSBTTVRQIGNvbm5lY3Rpb24uCisgICAgICogRGVmYXVsdCBpcyAkSG9zdG5hbWUuIElmICRIb3N0bmFtZSBpcyBlbXB0eSwgUEhQTWFpbGVyIGF0dGVtcHRzIHRvIGZpbmQKKyAgICAgKiBvbmUgd2l0aCB0aGUgc2FtZSBtZXRob2QgZGVzY3JpYmVkIGFib3ZlIGZvciAkSG9zdG5hbWUuCisgICAgICoKKyAgICAgKiBAc2VlIFBIUE1haWxlcjo6JEhvc3RuYW1lCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkSGVsbyA9ICcnOworCisgICAgLyoqCisgICAgICogV2hhdCBraW5kIG9mIGVuY3J5cHRpb24gdG8gdXNlIG9uIHRoZSBTTVRQIGNvbm5lY3Rpb24uCisgICAgICogT3B0aW9uczogJycsIHN0YXRpYzo6RU5DUllQVElPTl9TVEFSVFRMUywgb3Igc3RhdGljOjpFTkNSWVBUSU9OX1NNVFBTLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgJFNNVFBTZWN1cmUgPSAnJzsKKworICAgIC8qKgorICAgICAqIFdoZXRoZXIgdG8gZW5hYmxlIFRMUyBlbmNyeXB0aW9uIGF1dG9tYXRpY2FsbHkgaWYgYSBzZXJ2ZXIgc3VwcG9ydHMgaXQsCisgICAgICogZXZlbiBpZiBgU01UUFNlY3VyZWAgaXMgbm90IHNldCB0byAndGxzJy4KKyAgICAgKiBCZSBhd2FyZSB0aGF0IGluIFBIUCA+PSA1LjYgdGhpcyByZXF1aXJlcyB0aGF0IHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZXMgYXJlIHZhbGlkLgorICAgICAqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHVibGljICRTTVRQQXV0b1RMUyA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBXaGV0aGVyIHRvIHVzZSBTTVRQIGF1dGhlbnRpY2F0aW9uLgorICAgICAqIFVzZXMgdGhlIFVzZXJuYW1lIGFuZCBQYXNzd29yZCBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiRVc2VybmFtZQorICAgICAqIEBzZWUgUEhQTWFpbGVyOjokUGFzc3dvcmQKKyAgICAgKgorICAgICAqIEB2YXIgYm9vbAorICAgICAqLworICAgIHB1YmxpYyAkU01UUEF1dGggPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIE9wdGlvbnMgYXJyYXkgcGFzc2VkIHRvIHN0cmVhbV9jb250ZXh0X2NyZWF0ZSB3aGVuIGNvbm5lY3RpbmcgdmlhIFNNVFAuCisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHVibGljICRTTVRQT3B0aW9ucyA9IFtdOworCisgICAgLyoqCisgICAgICogU01UUCB1c2VybmFtZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRVc2VybmFtZSA9ICcnOworCisgICAgLyoqCisgICAgICogU01UUCBwYXNzd29yZC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRQYXNzd29yZCA9ICcnOworCisgICAgLyoqCisgICAgICogU01UUCBhdXRoIHR5cGUuCisgICAgICogT3B0aW9ucyBhcmUgQ1JBTS1NRDUsIExPR0lOLCBQTEFJTiwgWE9BVVRIMiwgYXR0ZW1wdGVkIGluIHRoYXQgb3JkZXIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRBdXRoVHlwZSA9ICcnOworCisgICAgLyoqCisgICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIFBIUE1haWxlciBPQXV0aCBjbGFzcy4KKyAgICAgKgorICAgICAqIEB2YXIgT0F1dGgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJG9hdXRoOworCisgICAgLyoqCisgICAgICogVGhlIFNNVFAgc2VydmVyIHRpbWVvdXQgaW4gc2Vjb25kcy4KKyAgICAgKiBEZWZhdWx0IG9mIDUgbWludXRlcyAoMzAwc2VjKSBpcyBmcm9tIFJGQzI4MjEgc2VjdGlvbiA0LjUuMy4yLgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgJFRpbWVvdXQgPSAzMDA7CisKKyAgICAvKioKKyAgICAgKiBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBEU04gbm90aWZpY2F0aW9ucworICAgICAqICdORVZFUicgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBhIERTTiBtdXN0IGJlIHJldHVybmVkIHRvIHRoZSBzZW5kZXIuCisgICAgICogICAgICAgICBJZiB5b3UgdXNlIE5FVkVSIGFsbCBvdGhlciBub3RpZmljYXRpb25zIHdpbGwgYmUgaWdub3JlZC4KKyAgICAgKiAnU1VDQ0VTUycgd2lsbCBub3RpZnkgeW91IHdoZW4geW91ciBtYWlsIGhhcyBhcnJpdmVkIGF0IGl0cyBkZXN0aW5hdGlvbi4KKyAgICAgKiAnRkFJTFVSRScgd2lsbCBhcnJpdmUgaWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGRlbGl2ZXJ5LgorICAgICAqICdERUxBWScgICB3aWxsIG5vdGlmeSB5b3UgaWYgdGhlcmUgaXMgYW4gdW51c3VhbCBkZWxheSBpbiBkZWxpdmVyeSwgYnV0IHRoZSBhY3R1YWwKKyAgICAgKiAgICAgICAgICAgZGVsaXZlcnkncyBvdXRjb21lIChzdWNjZXNzIG9yIGZhaWx1cmUpIGlzIG5vdCB5ZXQgZGVjaWRlZC4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM0NjEgU2VlIHNlY3Rpb24gNC4xIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IE5PVElGWQorICAgICAqLworICAgIHB1YmxpYyAkZHNuID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBTTVRQIGNsYXNzIGRlYnVnIG91dHB1dCBtb2RlLgorICAgICAqIERlYnVnIG91dHB1dCBsZXZlbC4KKyAgICAgKiBPcHRpb25zOgorICAgICAqICogU01UUDo6REVCVUdfT0ZGOiBObyBvdXRwdXQKKyAgICAgKiAqIFNNVFA6OkRFQlVHX0NMSUVOVDogQ2xpZW50IG1lc3NhZ2VzCisgICAgICogKiBTTVRQOjpERUJVR19TRVJWRVI6IENsaWVudCBhbmQgc2VydmVyIG1lc3NhZ2VzCisgICAgICogKiBTTVRQOjpERUJVR19DT05ORUNUSU9OOiBBcyBTRVJWRVIgcGx1cyBjb25uZWN0aW9uIHN0YXR1cworICAgICAqICogU01UUDo6REVCVUdfTE9XTEVWRUw6IE5vaXN5LCBsb3ctbGV2ZWwgZGF0YSBvdXRwdXQsIHJhcmVseSBuZWVkZWQKKyAgICAgKgorICAgICAqIEBzZWUgU01UUDo6JGRvX2RlYnVnCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHB1YmxpYyAkU01UUERlYnVnID0gMDsKKworICAgIC8qKgorICAgICAqIEhvdyB0byBoYW5kbGUgZGVidWcgb3V0cHV0LgorICAgICAqIE9wdGlvbnM6CisgICAgICogKiBgZWNob2AgT3V0cHV0IHBsYWluLXRleHQgYXMtaXMsIGFwcHJvcHJpYXRlIGZvciBDTEkKKyAgICAgKiAqIGBodG1sYCBPdXRwdXQgZXNjYXBlZCwgbGluZSBicmVha3MgY29udmVydGVkIHRvIGA8YnI+YCwgYXBwcm9wcmlhdGUgZm9yIGJyb3dzZXIgb3V0cHV0CisgICAgICogKiBgZXJyb3JfbG9nYCBPdXRwdXQgdG8gZXJyb3IgbG9nIGFzIGNvbmZpZ3VyZWQgaW4gcGhwLmluaQorICAgICAqIEJ5IGRlZmF1bHQgUEhQTWFpbGVyIHdpbGwgdXNlIGBlY2hvYCBpZiBydW4gZnJvbSBhIGBjbGlgIG9yIGBjbGktc2VydmVyYCBTQVBJLCBgaHRtbGAgb3RoZXJ3aXNlLgorICAgICAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gcHJvdmlkZSBhIGNhbGxhYmxlIGV4cGVjdGluZyB0d28gcGFyYW1zOiBhIG1lc3NhZ2Ugc3RyaW5nIGFuZCB0aGUgZGVidWcgbGV2ZWw6CisgICAgICoKKyAgICAgKiBgYGBwaHAKKyAgICAgKiAkbWFpbC0+RGVidWdvdXRwdXQgPSBmdW5jdGlvbigkc3RyLCAkbGV2ZWwpIHtlY2hvICJkZWJ1ZyBsZXZlbCAkbGV2ZWw7IG1lc3NhZ2U6ICRzdHIiO307CisgICAgICogYGBgCisgICAgICoKKyAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHBhc3MgaW4gYW4gaW5zdGFuY2Ugb2YgYSBQU1ItMyBjb21wYXRpYmxlIGxvZ2dlciwgdGhvdWdoIG9ubHkgYGRlYnVnYAorICAgICAqIGxldmVsIG91dHB1dCBpcyB1c2VkOgorICAgICAqCisgICAgICogYGBgcGhwCisgICAgICogJG1haWwtPkRlYnVnb3V0cHV0ID0gbmV3IG15UHNyM0xvZ2dlcjsKKyAgICAgKiBgYGAKKyAgICAgKgorICAgICAqIEBzZWUgU01UUDo6JERlYnVnb3V0cHV0CisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ3xjYWxsYWJsZXxcUHNyXExvZ1xMb2dnZXJJbnRlcmZhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgJERlYnVnb3V0cHV0ID0gJ2VjaG8nOworCisgICAgLyoqCisgICAgICogV2hldGhlciB0byBrZWVwIFNNVFAgY29ubmVjdGlvbiBvcGVuIGFmdGVyIGVhY2ggbWVzc2FnZS4KKyAgICAgKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlIHRoZW4gdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24KKyAgICAgKiByZXF1aXJlcyBhbiBleHBsaWNpdCBjYWxsIHRvIHNtdHBDbG9zZSgpLgorICAgICAqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHVibGljICRTTVRQS2VlcEFsaXZlID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBXaGV0aGVyIHRvIHNwbGl0IG11bHRpcGxlIHRvIGFkZHJlc3NlcyBpbnRvIG11bHRpcGxlIG1lc3NhZ2VzCisgICAgICogb3Igc2VuZCB0aGVtIGFsbCBpbiBvbmUgbWVzc2FnZS4KKyAgICAgKiBPbmx5IHN1cHBvcnRlZCBpbiBgbWFpbGAgYW5kIGBzZW5kbWFpbGAgdHJhbnNwb3J0cywgbm90IGluIFNNVFAuCisgICAgICoKKyAgICAgKiBAdmFyIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgJFNpbmdsZVRvID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBTdG9yYWdlIGZvciBhZGRyZXNzZXMgd2hlbiBTaW5nbGVUbyBpcyBlbmFibGVkLgorICAgICAqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkU2luZ2xlVG9BcnJheSA9IFtdOworCisgICAgLyoqCisgICAgICogV2hldGhlciB0byBnZW5lcmF0ZSBWRVJQIGFkZHJlc3NlcyBvbiBzZW5kLgorICAgICAqIE9ubHkgYXBwbGljYWJsZSB3aGVuIHNlbmRpbmcgdmlhIFNNVFAuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhcmlhYmxlX2VudmVsb3BlX3JldHVybl9wYXRoCisgICAgICogQHNlZSBodHRwOi8vd3d3LnBvc3RmaXgub3JnL1ZFUlBfUkVBRE1FLmh0bWwgUG9zdGZpeCBWRVJQIGluZm8KKyAgICAgKgorICAgICAqIEB2YXIgYm9vbAorICAgICAqLworICAgIHB1YmxpYyAkZG9fdmVycCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogV2hldGhlciB0byBhbGxvdyBzZW5kaW5nIG1lc3NhZ2VzIHdpdGggYW4gZW1wdHkgYm9keS4KKyAgICAgKgorICAgICAqIEB2YXIgYm9vbAorICAgICAqLworICAgIHB1YmxpYyAkQWxsb3dFbXB0eSA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogREtJTSBzZWxlY3Rvci4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRES0lNX3NlbGVjdG9yID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBES0lNIElkZW50aXR5LgorICAgICAqIFVzdWFsbHkgdGhlIGVtYWlsIGFkZHJlc3MgdXNlZCBhcyB0aGUgc291cmNlIG9mIHRoZSBlbWFpbC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRES0lNX2lkZW50aXR5ID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBES0lNIHBhc3NwaHJhc2UuCisgICAgICogVXNlZCBpZiB5b3VyIGtleSBpcyBlbmNyeXB0ZWQuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkREtJTV9wYXNzcGhyYXNlID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBES0lNIHNpZ25pbmcgZG9tYWluIG5hbWUuCisgICAgICoKKyAgICAgKiBAZXhhbXBsZSAnZXhhbXBsZS5jb20nCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkREtJTV9kb21haW4gPSAnJzsKKworICAgIC8qKgorICAgICAqIERLSU0gQ29weSBoZWFkZXIgZmllbGQgdmFsdWVzIGZvciBkaWFnbm9zdGljIHVzZS4KKyAgICAgKgorICAgICAqIEB2YXIgYm9vbAorICAgICAqLworICAgIHB1YmxpYyAkREtJTV9jb3B5SGVhZGVyRmllbGRzID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIERLSU0gRXh0cmEgc2lnbmluZyBoZWFkZXJzLgorICAgICAqCisgICAgICogQGV4YW1wbGUgWydMaXN0LVVuc3Vic2NyaWJlJywgJ0xpc3QtSGVscCddCisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHVibGljICRES0lNX2V4dHJhSGVhZGVycyA9IFtdOworCisgICAgLyoqCisgICAgICogREtJTSBwcml2YXRlIGtleSBmaWxlIHBhdGguCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkREtJTV9wcml2YXRlID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBES0lNIHByaXZhdGUga2V5IHN0cmluZy4KKyAgICAgKgorICAgICAqIElmIHNldCwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGAkREtJTV9wcml2YXRlYC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICRES0lNX3ByaXZhdGVfc3RyaW5nID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayBBY3Rpb24gZnVuY3Rpb24gbmFtZS4KKyAgICAgKgorICAgICAqIFRoZSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgdGhlIHJlc3VsdCBvZiB0aGUgc2VuZCBlbWFpbCBhY3Rpb24uCisgICAgICogSXQgaXMgY2FsbGVkIG91dCBieSBzZW5kKCkgZm9yIGVhY2ggZW1haWwgc2VudC4KKyAgICAgKgorICAgICAqIFZhbHVlIGNhbiBiZSBhbnkgcGhwIGNhbGxhYmxlOiBodHRwOi8vd3d3LnBocC5uZXQvaXNfY2FsbGFibGUKKyAgICAgKgorICAgICAqIFBhcmFtZXRlcnM6CisgICAgICogICBib29sICRyZXN1bHQgICAgICAgIHJlc3VsdCBvZiB0aGUgc2VuZCBhY3Rpb24KKyAgICAgKiAgIGFycmF5ICAgJHRvICAgICAgICAgICAgZW1haWwgYWRkcmVzc2VzIG9mIHRoZSByZWNpcGllbnRzCisgICAgICogICBhcnJheSAgICRjYyAgICAgICAgICAgIGNjIGVtYWlsIGFkZHJlc3NlcworICAgICAqICAgYXJyYXkgICAkYmNjICAgICAgICAgICBiY2MgZW1haWwgYWRkcmVzc2VzCisgICAgICogICBzdHJpbmcgICRzdWJqZWN0ICAgICAgIHRoZSBzdWJqZWN0CisgICAgICogICBzdHJpbmcgICRib2R5ICAgICAgICAgIHRoZSBlbWFpbCBib2R5CisgICAgICogICBzdHJpbmcgICRmcm9tICAgICAgICAgIGVtYWlsIGFkZHJlc3Mgb2Ygc2VuZGVyCisgICAgICogICBzdHJpbmcgICRleHRyYSAgICAgICAgIGV4dHJhIGluZm9ybWF0aW9uIG9mIHBvc3NpYmxlIHVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAic210cF90cmFuc2FjdGlvbl9pZCcgPT4gbGFzdCBzbXRwIHRyYW5zYWN0aW9uIGlkCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkYWN0aW9uX2Z1bmN0aW9uID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBXaGF0IHRvIHB1dCBpbiB0aGUgWC1NYWlsZXIgaGVhZGVyLgorICAgICAqIE9wdGlvbnM6IEFuIGVtcHR5IHN0cmluZyBmb3IgUEhQTWFpbGVyIGRlZmF1bHQsIHdoaXRlc3BhY2UvbnVsbCBmb3Igbm9uZSwgb3IgYSBzdHJpbmcgdG8gdXNlLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmd8bnVsbAorICAgICAqLworICAgIHB1YmxpYyAkWE1haWxlciA9ICcnOworCisgICAgLyoqCisgICAgICogV2hpY2ggdmFsaWRhdG9yIHRvIHVzZSBieSBkZWZhdWx0IHdoZW4gdmFsaWRhdGluZyBlbWFpbCBhZGRyZXNzZXMuCisgICAgICogTWF5IGJlIGEgY2FsbGFibGUgdG8gaW5qZWN0IHlvdXIgb3duIHZhbGlkYXRvciwgYnV0IHRoZXJlIGFyZSBzZXZlcmFsIGJ1aWx0LWluIHZhbGlkYXRvcnMuCisgICAgICogVGhlIGRlZmF1bHQgdmFsaWRhdG9yIHVzZXMgUEhQJ3MgRklMVEVSX1ZBTElEQVRFX0VNQUlMIGZpbHRlcl92YXIgb3B0aW9uLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OnZhbGlkYXRlQWRkcmVzcygpCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ3xjYWxsYWJsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgJHZhbGlkYXRvciA9ICdwaHAnOworCisgICAgLyoqCisgICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIFNNVFAgc2VuZGVyIGNsYXNzLgorICAgICAqCisgICAgICogQHZhciBTTVRQCisgICAgICovCisgICAgcHJvdGVjdGVkICRzbXRwOworCisgICAgLyoqCisgICAgICogVGhlIGFycmF5IG9mICd0bycgbmFtZXMgYW5kIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHRvID0gW107CisKKyAgICAvKioKKyAgICAgKiBUaGUgYXJyYXkgb2YgJ2NjJyBuYW1lcyBhbmQgYWRkcmVzc2VzLgorICAgICAqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkY2MgPSBbXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhcnJheSBvZiAnYmNjJyBuYW1lcyBhbmQgYWRkcmVzc2VzLgorICAgICAqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkYmNjID0gW107CisKKyAgICAvKioKKyAgICAgKiBUaGUgYXJyYXkgb2YgcmVwbHktdG8gbmFtZXMgYW5kIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJFJlcGx5VG8gPSBbXTsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIGFsbCBraW5kcyBvZiBhZGRyZXNzZXMuCisgICAgICogSW5jbHVkZXMgYWxsIG9mICR0bywgJGNjLCAkYmNjLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiR0bworICAgICAqIEBzZWUgUEhQTWFpbGVyOjokY2MKKyAgICAgKiBAc2VlIFBIUE1haWxlcjo6JGJjYworICAgICAqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkYWxsX3JlY2lwaWVudHMgPSBbXTsKKworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIG5hbWVzIGFuZCBhZGRyZXNzZXMgcXVldWVkIGZvciB2YWxpZGF0aW9uLgorICAgICAqIEluIHNlbmQoKSwgdmFsaWQgYW5kIG5vbiBkdXBsaWNhdGUgZW50cmllcyBhcmUgbW92ZWQgdG8gJGFsbF9yZWNpcGllbnRzCisgICAgICogYW5kIG9uZSBvZiAkdG8sICRjYywgb3IgJGJjYy4KKyAgICAgKiBUaGlzIGFycmF5IGlzIHVzZWQgb25seSBmb3IgYWRkcmVzc2VzIHdpdGggSUROLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiR0bworICAgICAqIEBzZWUgUEhQTWFpbGVyOjokY2MKKyAgICAgKiBAc2VlIFBIUE1haWxlcjo6JGJjYworICAgICAqIEBzZWUgUEhQTWFpbGVyOjokYWxsX3JlY2lwaWVudHMKKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJFJlY2lwaWVudHNRdWV1ZSA9IFtdOworCisgICAgLyoqCisgICAgICogQW4gYXJyYXkgb2YgcmVwbHktdG8gbmFtZXMgYW5kIGFkZHJlc3NlcyBxdWV1ZWQgZm9yIHZhbGlkYXRpb24uCisgICAgICogSW4gc2VuZCgpLCB2YWxpZCBhbmQgbm9uIGR1cGxpY2F0ZSBlbnRyaWVzIGFyZSBtb3ZlZCB0byAkUmVwbHlUby4KKyAgICAgKiBUaGlzIGFycmF5IGlzIHVzZWQgb25seSBmb3IgYWRkcmVzc2VzIHdpdGggSUROLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiRSZXBseVRvCisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRSZXBseVRvUXVldWUgPSBbXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhcnJheSBvZiBhdHRhY2htZW50cy4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGF0dGFjaG1lbnQgPSBbXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhcnJheSBvZiBjdXN0b20gaGVhZGVycy4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJEN1c3RvbUhlYWRlciA9IFtdOworCisgICAgLyoqCisgICAgICogVGhlIG1vc3QgcmVjZW50IE1lc3NhZ2UtSUQgKGluY2x1ZGluZyBhbmd1bGFyIGJyYWNrZXRzKS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRsYXN0TWVzc2FnZUlEID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWVzc2FnZSdzIE1JTUUgdHlwZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRtZXNzYWdlX3R5cGUgPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSBhcnJheSBvZiBNSU1FIGJvdW5kYXJ5IHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRib3VuZGFyeSA9IFtdOworCisgICAgLyoqCisgICAgICogVGhlIGFycmF5IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMuCisgICAgICoKKyAgICAgKiBAdmFyIGFycmF5CisgICAgICovCisgICAgcHJvdGVjdGVkICRsYW5ndWFnZSA9IFtdOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHByb3RlY3RlZCAkZXJyb3JfY291bnQgPSAwOworCisgICAgLyoqCisgICAgICogVGhlIFMvTUlNRSBjZXJ0aWZpY2F0ZSBmaWxlIHBhdGguCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCAkc2lnbl9jZXJ0X2ZpbGUgPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSBTL01JTUUga2V5IGZpbGUgcGF0aC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRzaWduX2tleV9maWxlID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgb3B0aW9uYWwgUy9NSU1FIGV4dHJhIGNlcnRpZmljYXRlcyAoIkNBIENoYWluIikgZmlsZSBwYXRoLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJHNpZ25fZXh0cmFjZXJ0c19maWxlID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBUaGUgUy9NSU1FIHBhc3N3b3JkIGZvciB0aGUga2V5LgorICAgICAqIFVzZWQgb25seSBpZiB0aGUga2V5IGlzIGVuY3J5cHRlZC4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkICRzaWduX2tleV9wYXNzID0gJyc7CisKKyAgICAvKioKKyAgICAgKiBXaGV0aGVyIHRvIHRocm93IGV4Y2VwdGlvbnMgZm9yIGVycm9ycy4KKyAgICAgKgorICAgICAqIEB2YXIgYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCAkZXhjZXB0aW9ucyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVW5pcXVlIElEIHVzZWQgZm9yIG1lc3NhZ2UgSUQgYW5kIGJvdW5kYXJpZXMuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCAkdW5pcXVlaWQgPSAnJzsKKworICAgIC8qKgorICAgICAqIFRoZSBQSFBNYWlsZXIgVmVyc2lvbiBudW1iZXIuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIGNvbnN0IFZFUlNJT04gPSAnNi4xLjYnOworCisgICAgLyoqCisgICAgICogRXJyb3Igc2V2ZXJpdHk6IG1lc3NhZ2Ugb25seSwgY29udGludWUgcHJvY2Vzc2luZy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgY29uc3QgU1RPUF9NRVNTQUdFID0gMDsKKworICAgIC8qKgorICAgICAqIEVycm9yIHNldmVyaXR5OiBtZXNzYWdlLCBsaWtlbHkgb2sgdG8gY29udGludWUgcHJvY2Vzc2luZy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgY29uc3QgU1RPUF9DT05USU5VRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBFcnJvciBzZXZlcml0eTogbWVzc2FnZSwgcGx1cyBmdWxsIHN0b3AsIGNyaXRpY2FsIGVycm9yIHJlYWNoZWQuCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIGNvbnN0IFNUT1BfQ1JJVElDQUwgPSAyOworCisgICAgLyoqCisgICAgICogVGhlIFNNVFAgc3RhbmRhcmQgQ1JMRiBsaW5lIGJyZWFrLgorICAgICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSBsaW5lIGJyZWFrIGZvcm1hdCwgY2hhbmdlIHN0YXRpYzo6JExFLCBub3QgdGhpcy4KKyAgICAgKi8KKyAgICBjb25zdCBDUkxGID0gIlxyXG4iOworCisgICAgLyoqCisgICAgICogIkZvbGRpbmcgV2hpdGUgU3BhY2UiIGEgd2hpdGUgc3BhY2Ugc3RyaW5nIHVzZWQgZm9yIGxpbmUgZm9sZGluZy4KKyAgICAgKi8KKyAgICBjb25zdCBGV1MgPSAnICc7CisKKyAgICAvKioKKyAgICAgKiBTTVRQIFJGQyBzdGFuZGFyZCBsaW5lIGVuZGluZzsgQ2FycmlhZ2UgUmV0dXJuLCBMaW5lIEZlZWQuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgJExFID0gc2VsZjo6Q1JMRjsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIHN1cHBvcnRlZCBieSBtYWlsKCkuCisgICAgICoKKyAgICAgKiBCYWNrZ3JvdW5kOiBtYWlsKCkgd2lsbCBzb21ldGltZXMgY29ycnVwdCBtZXNzYWdlcworICAgICAqIHdpdGggaGVhZGVycyBoZWFkZXJzIGxvbmdlciB0aGFuIDY1IGNoYXJzLCBzZWUgIzgxOC4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgY29uc3QgTUFJTF9NQVhfTElORV9MRU5HVEggPSA2MzsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIGFsbG93ZWQgYnkgUkZDIDI4MjIgc2VjdGlvbiAyLjEuMS4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgY29uc3QgTUFYX0xJTkVfTEVOR1RIID0gOTk4OworCisgICAgLyoqCisgICAgICogVGhlIGxvd2VyIG1heGltdW0gbGluZSBsZW5ndGggYWxsb3dlZCBieSBSRkMgMjgyMiBzZWN0aW9uIDIuMS4xLgorICAgICAqIFRoaXMgbGVuZ3RoIGRvZXMgTk9UIGluY2x1ZGUgdGhlIGxpbmUgYnJlYWsKKyAgICAgKiA3NiBtZWFucyB0aGF0IGxpbmVzIHdpbGwgYmUgNzcgb3IgNzggY2hhcnMgZGVwZW5kaW5nIG9uIHdoZXRoZXIKKyAgICAgKiB0aGUgbGluZSBicmVhayBmb3JtYXQgaXMgTEYgb3IgQ1JMRjsgYm90aCBhcmUgdmFsaWQuCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIGNvbnN0IFNURF9MSU5FX0xFTkdUSCA9IDc2OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYm9vbCAkZXhjZXB0aW9ucyBTaG91bGQgd2UgdGhyb3cgZXh0ZXJuYWwgZXhjZXB0aW9ucz8KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGV4Y2VwdGlvbnMgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKG51bGwgIT09ICRleGNlcHRpb25zKSB7CisgICAgICAgICAgICAkdGhpcy0+ZXhjZXB0aW9ucyA9IChib29sKSAkZXhjZXB0aW9uczsKKyAgICAgICAgfQorICAgICAgICAvL1BpY2sgYW4gYXBwcm9wcmlhdGUgZGVidWcgb3V0cHV0IGZvcm1hdCBhdXRvbWF0aWNhbGx5CisgICAgICAgICR0aGlzLT5EZWJ1Z291dHB1dCA9IChzdHJwb3MoUEhQX1NBUEksICdjbGknKSAhPT0gZmFsc2UgPyAnZWNobycgOiAnaHRtbCcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKQorICAgIHsKKyAgICAgICAgLy9DbG9zZSBhbnkgb3BlbiBTTVRQIGNvbm5lY3Rpb24gbmljZWx5CisgICAgICAgICR0aGlzLT5zbXRwQ2xvc2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsIG1haWwoKSBpbiBhIHNhZmVfbW9kZS1hd2FyZSBmYXNoaW9uLgorICAgICAqIEFsc28sIHVubGVzcyBzZW5kbWFpbF9wYXRoIHBvaW50cyB0byBzZW5kbWFpbCAob3Igc29tZXRoaW5nIHRoYXQKKyAgICAgKiBjbGFpbXMgdG8gYmUgc2VuZG1haWwpLCBkb24ndCBwYXNzIHBhcmFtcyAobm90IGEgcGVyZmVjdCBmaXgsCisgICAgICogYnV0IGl0IHdpbGwgZG8pLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICR0byAgICAgIFRvCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRzdWJqZWN0IFN1YmplY3QKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgJGJvZHkgICAgTWVzc2FnZSBCb2R5CisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRoZWFkZXIgIEFkZGl0aW9uYWwgSGVhZGVyKHMpCisgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRwYXJhbXMgIFBhcmFtcworICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBtYWlsUGFzc3RocnUoJHRvLCAkc3ViamVjdCwgJGJvZHksICRoZWFkZXIsICRwYXJhbXMpCisgICAgeworICAgICAgICAvL0NoZWNrIG92ZXJsb2FkaW5nIG9mIG1haWwgZnVuY3Rpb24gdG8gYXZvaWQgZG91YmxlLWVuY29kaW5nCisgICAgICAgIGlmIChpbmlfZ2V0KCdtYnN0cmluZy5mdW5jX292ZXJsb2FkJykgJiAxKSB7CisgICAgICAgICAgICAkc3ViamVjdCA9ICR0aGlzLT5zZWN1cmVIZWFkZXIoJHN1YmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHN1YmplY3QgPSAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJHN1YmplY3QpKTsKKyAgICAgICAgfQorICAgICAgICAvL0NhbGxpbmcgbWFpbCgpIHdpdGggbnVsbCBwYXJhbXMgYnJlYWtzCisgICAgICAgIGlmICghJHRoaXMtPlVzZVNlbmRtYWlsT3B0aW9ucyB8fCBudWxsID09PSAkcGFyYW1zKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gQG1haWwoJHRvLCAkc3ViamVjdCwgJGJvZHksICRoZWFkZXIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9IEBtYWlsKCR0bywgJHN1YmplY3QsICRib2R5LCAkaGVhZGVyLCAkcGFyYW1zKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIE91dHB1dCBkZWJ1Z2dpbmcgaW5mbyB2aWEgdXNlci1kZWZpbmVkIG1ldGhvZC4KKyAgICAgKiBPbmx5IGdlbmVyYXRlcyBvdXRwdXQgaWYgU01UUCBkZWJ1ZyBvdXRwdXQgaXMgZW5hYmxlZCAoQHNlZSBTTVRQOjokZG9fZGVidWcpLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiREZWJ1Z291dHB1dAorICAgICAqIEBzZWUgUEhQTWFpbGVyOjokU01UUERlYnVnCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZWRlYnVnKCRzdHIpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPlNNVFBEZWJ1ZyA8PSAwKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy9JcyB0aGlzIGEgUFNSLTMgbG9nZ2VyPworICAgICAgICBpZiAoJHRoaXMtPkRlYnVnb3V0cHV0IGluc3RhbmNlb2YgXFBzclxMb2dcTG9nZ2VySW50ZXJmYWNlKSB7CisgICAgICAgICAgICAkdGhpcy0+RGVidWdvdXRwdXQtPmRlYnVnKCRzdHIpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy9Bdm9pZCBjbGFzaCB3aXRoIGJ1aWx0LWluIGZ1bmN0aW9uIG5hbWVzCisgICAgICAgIGlmIChpc19jYWxsYWJsZSgkdGhpcy0+RGVidWdvdXRwdXQpICYmICFpbl9hcnJheSgkdGhpcy0+RGVidWdvdXRwdXQsIFsnZXJyb3JfbG9nJywgJ2h0bWwnLCAnZWNobyddKSkgeworICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmMoJHRoaXMtPkRlYnVnb3V0cHV0LCAkc3RyLCAkdGhpcy0+U01UUERlYnVnKTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoJHRoaXMtPkRlYnVnb3V0cHV0KSB7CisgICAgICAgICAgICBjYXNlICdlcnJvcl9sb2cnOgorICAgICAgICAgICAgICAgIC8vRG9uJ3Qgb3V0cHV0LCBqdXN0IGxvZworICAgICAgICAgICAgICAgIGVycm9yX2xvZygkc3RyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2h0bWwnOgorICAgICAgICAgICAgICAgIC8vQ2xlYW5zIHVwIG91dHB1dCBhIGJpdCBmb3IgYSBiZXR0ZXIgbG9va2luZywgSFRNTC1zYWZlIG91dHB1dAorICAgICAgICAgICAgICAgIGVjaG8gaHRtbGVudGl0aWVzKAorICAgICAgICAgICAgICAgICAgICBwcmVnX3JlcGxhY2UoJy9bXHJcbl0rLycsICcnLCAkc3RyKSwKKyAgICAgICAgICAgICAgICAgICAgRU5UX1FVT1RFUywKKyAgICAgICAgICAgICAgICAgICAgJ1VURi04JworICAgICAgICAgICAgICAgICksICI8YnI+XG4iOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnZWNobyc6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIGxpbmUgYnJlYWtzCisgICAgICAgICAgICAgICAgJHN0ciA9IHByZWdfcmVwbGFjZSgnL1xyXG58XHIvbScsICJcbiIsICRzdHIpOworICAgICAgICAgICAgICAgIGVjaG8gZ21kYXRlKCdZLW0tZCBIOmk6cycpLAorICAgICAgICAgICAgICAgICJcdCIsCisgICAgICAgICAgICAgICAgICAgIC8vVHJpbSB0cmFpbGluZyBzcGFjZQorICAgICAgICAgICAgICAgIHRyaW0oCisgICAgICAgICAgICAgICAgICAgIC8vSW5kZW50IGZvciByZWFkYWJpbGl0eSwgZXhjZXB0IGZvciB0cmFpbGluZyBicmVhaworICAgICAgICAgICAgICAgICAgICBzdHJfcmVwbGFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICJcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgICAgICAgICAgICAgXHQgICAgICAgICAgICAgICAgICAiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkc3RyKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAiXG4iOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBtZXNzYWdlIHR5cGUgdG8gSFRNTCBvciBwbGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBib29sICRpc0h0bWwgVHJ1ZSBmb3IgSFRNTCBtb2RlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzSFRNTCgkaXNIdG1sID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIGlmICgkaXNIdG1sKSB7CisgICAgICAgICAgICAkdGhpcy0+Q29udGVudFR5cGUgPSBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdGhpcy0+Q29udGVudFR5cGUgPSBzdGF0aWM6OkNPTlRFTlRfVFlQRV9QTEFJTlRFWFQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZW5kIG1lc3NhZ2VzIHVzaW5nIFNNVFAuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzU01UUCgpCisgICAgeworICAgICAgICAkdGhpcy0+TWFpbGVyID0gJ3NtdHAnOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgbWVzc2FnZXMgdXNpbmcgUEhQJ3MgbWFpbCgpIGZ1bmN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc01haWwoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPk1haWxlciA9ICdtYWlsJzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZW5kIG1lc3NhZ2VzIHVzaW5nICRTZW5kbWFpbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaXNTZW5kbWFpbCgpCisgICAgeworICAgICAgICAkaW5pX3NlbmRtYWlsX3BhdGggPSBpbmlfZ2V0KCdzZW5kbWFpbF9wYXRoJyk7CisKKyAgICAgICAgaWYgKGZhbHNlID09PSBzdHJpcG9zKCRpbmlfc2VuZG1haWxfcGF0aCwgJ3NlbmRtYWlsJykpIHsKKyAgICAgICAgICAgICR0aGlzLT5TZW5kbWFpbCA9ICcvdXNyL3NiaW4vc2VuZG1haWwnOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPlNlbmRtYWlsID0gJGluaV9zZW5kbWFpbF9wYXRoOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5NYWlsZXIgPSAnc2VuZG1haWwnOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgbWVzc2FnZXMgdXNpbmcgcW1haWwuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGlzUW1haWwoKQorICAgIHsKKyAgICAgICAgJGluaV9zZW5kbWFpbF9wYXRoID0gaW5pX2dldCgnc2VuZG1haWxfcGF0aCcpOworCisgICAgICAgIGlmIChmYWxzZSA9PT0gc3RyaXBvcygkaW5pX3NlbmRtYWlsX3BhdGgsICdxbWFpbCcpKSB7CisgICAgICAgICAgICAkdGhpcy0+U2VuZG1haWwgPSAnL3Zhci9xbWFpbC9iaW4vcW1haWwtaW5qZWN0JzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlzLT5TZW5kbWFpbCA9ICRpbmlfc2VuZG1haWxfcGF0aDsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+TWFpbGVyID0gJ3FtYWlsJzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSAiVG8iIGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHNlbmQgdG8KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBib29sIHRydWUgb24gc3VjY2VzcywgZmFsc2UgaWYgYWRkcmVzcyBhbHJlYWR5IHVzZWQgb3IgaW52YWxpZCBpbiBzb21lIHdheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRBZGRyZXNzKCRhZGRyZXNzLCAkbmFtZSA9ICcnKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5hZGRPckVucXVldWVBbkFkZHJlc3MoJ3RvJywgJGFkZHJlc3MsICRuYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSAiQ0MiIGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHNlbmQgdG8KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBib29sIHRydWUgb24gc3VjY2VzcywgZmFsc2UgaWYgYWRkcmVzcyBhbHJlYWR5IHVzZWQgb3IgaW52YWxpZCBpbiBzb21lIHdheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRDQygkYWRkcmVzcywgJG5hbWUgPSAnJykKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCdjYycsICRhZGRyZXNzLCAkbmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgIkJDQyIgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3MgVGhlIGVtYWlsIGFkZHJlc3MgdG8gc2VuZCB0bworICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBhZGRyZXNzIGFscmVhZHkgdXNlZCBvciBpbnZhbGlkIGluIHNvbWUgd2F5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZEJDQygkYWRkcmVzcywgJG5hbWUgPSAnJykKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCdiY2MnLCAkYWRkcmVzcywgJG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhICJSZXBseS1UbyIgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3MgVGhlIGVtYWlsIGFkZHJlc3MgdG8gcmVwbHkgdG8KKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBib29sIHRydWUgb24gc3VjY2VzcywgZmFsc2UgaWYgYWRkcmVzcyBhbHJlYWR5IHVzZWQgb3IgaW52YWxpZCBpbiBzb21lIHdheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRSZXBseVRvKCRhZGRyZXNzLCAkbmFtZSA9ICcnKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5hZGRPckVucXVldWVBbkFkZHJlc3MoJ1JlcGx5LVRvJywgJGFkZHJlc3MsICRuYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYW4gYWRkcmVzcyB0byBvbmUgb2YgdGhlIHJlY2lwaWVudCBhcnJheXMgb3IgdG8gdGhlIFJlcGx5VG8gYXJyYXkuIEJlY2F1c2UgUEhQTWFpbGVyCisgICAgICogY2FuJ3QgdmFsaWRhdGUgYWRkcmVzc2VzIHdpdGggYW4gSUROIHdpdGhvdXQga25vd2luZyB0aGUgUEhQTWFpbGVyOjokQ2hhclNldCAodGhhdCBjYW4gc3RpbGwKKyAgICAgKiBiZSBtb2RpZmllZCBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24pLCBhZGRpdGlvbiBvZiBzdWNoIGFkZHJlc3NlcyBpcyBkZWxheWVkIHVudGlsIHNlbmQoKS4KKyAgICAgKiBBZGRyZXNzZXMgdGhhdCBoYXZlIGJlZW4gYWRkZWQgYWxyZWFkeSByZXR1cm4gZmFsc2UsIGJ1dCBkbyBub3QgdGhyb3cgZXhjZXB0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGtpbmQgICAgT25lIG9mICd0bycsICdjYycsICdiY2MnLCBvciAnUmVwbHlUbycKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHNlbmQsIHJlc3AuIHRvIHJlcGx5IHRvCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbCB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIGlmIGFkZHJlc3MgYWxyZWFkeSB1c2VkIG9yIGludmFsaWQgaW4gc29tZSB3YXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCRraW5kLCAkYWRkcmVzcywgJG5hbWUpCisgICAgeworICAgICAgICAkYWRkcmVzcyA9IHRyaW0oJGFkZHJlc3MpOworICAgICAgICAkbmFtZSA9IHRyaW0ocHJlZ19yZXBsYWNlKCcvW1xyXG5dKy8nLCAnJywgJG5hbWUpKTsgLy9TdHJpcCBicmVha3MgYW5kIHRyaW0KKyAgICAgICAgJHBvcyA9IHN0cnJwb3MoJGFkZHJlc3MsICdAJyk7CisgICAgICAgIGlmIChmYWxzZSA9PT0gJHBvcykgeworICAgICAgICAgICAgLy8gQXQtc2lnbiBpcyBtaXNzaW5nLgorICAgICAgICAgICAgJGVycm9yX21lc3NhZ2UgPSBzcHJpbnRmKAorICAgICAgICAgICAgICAgICclcyAoJXMpOiAlcycsCisgICAgICAgICAgICAgICAgJHRoaXMtPmxhbmcoJ2ludmFsaWRfYWRkcmVzcycpLAorICAgICAgICAgICAgICAgICRraW5kLAorICAgICAgICAgICAgICAgICRhZGRyZXNzCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRlcnJvcl9tZXNzYWdlKTsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOworICAgICAgICAgICAgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZXJyb3JfbWVzc2FnZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAkcGFyYW1zID0gWyRraW5kLCAkYWRkcmVzcywgJG5hbWVdOworICAgICAgICAvLyBFbnF1ZXVlIGFkZHJlc3NlcyB3aXRoIElETiB1bnRpbCB3ZSBrbm93IHRoZSBQSFBNYWlsZXI6OiRDaGFyU2V0LgorICAgICAgICBpZiAoc3RhdGljOjppZG5TdXBwb3J0ZWQoKSAmJiAkdGhpcy0+aGFzOGJpdENoYXJzKHN1YnN0cigkYWRkcmVzcywgKyskcG9zKSkpIHsKKyAgICAgICAgICAgIGlmICgnUmVwbHktVG8nICE9PSAka2luZCkgeworICAgICAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygkYWRkcmVzcywgJHRoaXMtPlJlY2lwaWVudHNRdWV1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlJlY2lwaWVudHNRdWV1ZVskYWRkcmVzc10gPSAkcGFyYW1zOworCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZWlmICghYXJyYXlfa2V5X2V4aXN0cygkYWRkcmVzcywgJHRoaXMtPlJlcGx5VG9RdWV1ZSkpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+UmVwbHlUb1F1ZXVlWyRhZGRyZXNzXSA9ICRwYXJhbXM7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW1tZWRpYXRlbHkgYWRkIHN0YW5kYXJkIGFkZHJlc3NlcyB3aXRob3V0IElETi4KKyAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KFskdGhpcywgJ2FkZEFuQWRkcmVzcyddLCAkcGFyYW1zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYW4gYWRkcmVzcyB0byBvbmUgb2YgdGhlIHJlY2lwaWVudCBhcnJheXMgb3IgdG8gdGhlIFJlcGx5VG8gYXJyYXkuCisgICAgICogQWRkcmVzc2VzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkIGFscmVhZHkgcmV0dXJuIGZhbHNlLCBidXQgZG8gbm90IHRocm93IGV4Y2VwdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRraW5kICAgIE9uZSBvZiAndG8nLCAnY2MnLCAnYmNjJywgb3IgJ1JlcGx5VG8nCisgICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcyBUaGUgZW1haWwgYWRkcmVzcyB0byBzZW5kLCByZXNwLiB0byByZXBseSB0bworICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBhZGRyZXNzIGFscmVhZHkgdXNlZCBvciBpbnZhbGlkIGluIHNvbWUgd2F5CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEFuQWRkcmVzcygka2luZCwgJGFkZHJlc3MsICRuYW1lID0gJycpCisgICAgeworICAgICAgICBpZiAoIWluX2FycmF5KCRraW5kLCBbJ3RvJywgJ2NjJywgJ2JjYycsICdSZXBseS1UbyddKSkgeworICAgICAgICAgICAgJGVycm9yX21lc3NhZ2UgPSBzcHJpbnRmKAorICAgICAgICAgICAgICAgICclczogJXMnLAorICAgICAgICAgICAgICAgICR0aGlzLT5sYW5nKCdJbnZhbGlkIHJlY2lwaWVudCBraW5kJyksCisgICAgICAgICAgICAgICAgJGtpbmQKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGVycm9yX21lc3NhZ2UpOworICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXJyb3JfbWVzc2FnZSk7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRlcnJvcl9tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJGFkZHJlc3MpKSB7CisgICAgICAgICAgICAkZXJyb3JfbWVzc2FnZSA9IHNwcmludGYoCisgICAgICAgICAgICAgICAgJyVzICglcyk6ICVzJywKKyAgICAgICAgICAgICAgICAkdGhpcy0+bGFuZygnaW52YWxpZF9hZGRyZXNzJyksCisgICAgICAgICAgICAgICAgJGtpbmQsCisgICAgICAgICAgICAgICAgJGFkZHJlc3MKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGVycm9yX21lc3NhZ2UpOworICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXJyb3JfbWVzc2FnZSk7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCRlcnJvcl9tZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICgnUmVwbHktVG8nICE9PSAka2luZCkgeworICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKHN0cnRvbG93ZXIoJGFkZHJlc3MpLCAkdGhpcy0+YWxsX3JlY2lwaWVudHMpKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPnska2luZH1bXSA9IFskYWRkcmVzcywgJG5hbWVdOworICAgICAgICAgICAgICAgICR0aGlzLT5hbGxfcmVjaXBpZW50c1tzdHJ0b2xvd2VyKCRhZGRyZXNzKV0gPSB0cnVlOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZWlmICghYXJyYXlfa2V5X2V4aXN0cyhzdHJ0b2xvd2VyKCRhZGRyZXNzKSwgJHRoaXMtPlJlcGx5VG8pKSB7CisgICAgICAgICAgICAkdGhpcy0+UmVwbHlUb1tzdHJ0b2xvd2VyKCRhZGRyZXNzKV0gPSBbJGFkZHJlc3MsICRuYW1lXTsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW5kIHZhbGlkYXRlIGEgc3RyaW5nIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgUkZDODIyLXN0eWxlIGNvbW1hLXNlcGFyYXRlZCBlbWFpbCBhZGRyZXNzZXMKKyAgICAgKiBvZiB0aGUgZm9ybSAiZGlzcGxheSBuYW1lIDxhZGRyZXNzPiIgaW50byBhbiBhcnJheSBvZiBuYW1lL2FkZHJlc3MgcGFpcnMuCisgICAgICogVXNlcyB0aGUgaW1hcF9yZmM4MjJfcGFyc2VfYWRybGlzdCBmdW5jdGlvbiBpZiB0aGUgSU1BUCBleHRlbnNpb24gaXMgYXZhaWxhYmxlLgorICAgICAqIE5vdGUgdGhhdCBxdW90ZXMgaW4gdGhlIG5hbWUgcGFydCBhcmUgcmVtb3ZlZC4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3d3dy5hbmRyZXcuY211LmVkdS91c2VyL2FncmVlbjEvdGVzdGluZy9tcmJzL3dlYi9NYWlsL1JGQzgyMi5waHAgQSBtb3JlIGNhcmVmdWwgaW1wbGVtZW50YXRpb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJzdHIgVGhlIGFkZHJlc3MgbGlzdCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gYm9vbCAgICR1c2VpbWFwIFdoZXRoZXIgdG8gdXNlIHRoZSBJTUFQIGV4dGVuc2lvbiB0byBwYXJzZSB0aGUgbGlzdAorICAgICAqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcGFyc2VBZGRyZXNzZXMoJGFkZHJzdHIsICR1c2VpbWFwID0gdHJ1ZSkKKyAgICB7CisgICAgICAgICRhZGRyZXNzZXMgPSBbXTsKKyAgICAgICAgaWYgKCR1c2VpbWFwICYmIGZ1bmN0aW9uX2V4aXN0cygnaW1hcF9yZmM4MjJfcGFyc2VfYWRybGlzdCcpKSB7CisgICAgICAgICAgICAvL1VzZSB0aGlzIGJ1aWx0LWluIHBhcnNlciBpZiBpdCdzIGF2YWlsYWJsZQorICAgICAgICAgICAgJGxpc3QgPSBpbWFwX3JmYzgyMl9wYXJzZV9hZHJsaXN0KCRhZGRyc3RyLCAnJyk7CisgICAgICAgICAgICBmb3JlYWNoICgkbGlzdCBhcyAkYWRkcmVzcykgeworICAgICAgICAgICAgICAgIGlmICgoJy5TWU5UQVgtRVJST1IuJyAhPT0gJGFkZHJlc3MtPmhvc3QpICYmIHN0YXRpYzo6dmFsaWRhdGVBZGRyZXNzKAorICAgICAgICAgICAgICAgICAgICAkYWRkcmVzcy0+bWFpbGJveCAuICdAJyAuICRhZGRyZXNzLT5ob3N0CisgICAgICAgICAgICAgICAgKSkgeworICAgICAgICAgICAgICAgICAgICAkYWRkcmVzc2VzW10gPSBbCisgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgPT4gKHByb3BlcnR5X2V4aXN0cygkYWRkcmVzcywgJ3BlcnNvbmFsJykgPyAkYWRkcmVzcy0+cGVyc29uYWwgOiAnJyksCisgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcycgPT4gJGFkZHJlc3MtPm1haWxib3ggLiAnQCcgLiAkYWRkcmVzcy0+aG9zdCwKKyAgICAgICAgICAgICAgICAgICAgXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvL1VzZSB0aGlzIHNpbXBsZXIgcGFyc2VyCisgICAgICAgICAgICAkbGlzdCA9IGV4cGxvZGUoJywnLCAkYWRkcnN0cik7CisgICAgICAgICAgICBmb3JlYWNoICgkbGlzdCBhcyAkYWRkcmVzcykgeworICAgICAgICAgICAgICAgICRhZGRyZXNzID0gdHJpbSgkYWRkcmVzcyk7CisgICAgICAgICAgICAgICAgLy9JcyB0aGVyZSBhIHNlcGFyYXRlIG5hbWUgcGFydD8KKyAgICAgICAgICAgICAgICBpZiAoc3RycG9zKCRhZGRyZXNzLCAnPCcpID09PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAvL05vIHNlcGFyYXRlIG5hbWUsIGp1c3QgdXNlIHRoZSB3aG9sZSB0aGluZworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJGFkZHJlc3MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYWRkcmVzc2VzW10gPSBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnID0+ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyZXNzJyA9PiAkYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgIF07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsaXN0KCRuYW1lLCAkZW1haWwpID0gZXhwbG9kZSgnPCcsICRhZGRyZXNzKTsKKyAgICAgICAgICAgICAgICAgICAgJGVtYWlsID0gdHJpbShzdHJfcmVwbGFjZSgnPicsICcnLCAkZW1haWwpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRpYzo6dmFsaWRhdGVBZGRyZXNzKCRlbWFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhZGRyZXNzZXNbXSA9IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgPT4gdHJpbShzdHJfcmVwbGFjZShbJyInLCAiJyJdLCAnJywgJG5hbWUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcycgPT4gJGVtYWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkYWRkcmVzc2VzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgRnJvbSBhbmQgRnJvbU5hbWUgcHJvcGVydGllcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3MKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCisgICAgICogQHBhcmFtIGJvb2wgICAkYXV0byAgICBXaGV0aGVyIHRvIGFsc28gc2V0IHRoZSBTZW5kZXIgYWRkcmVzcywgZGVmYXVsdHMgdG8gdHJ1ZQorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRGcm9tKCRhZGRyZXNzLCAkbmFtZSA9ICcnLCAkYXV0byA9IHRydWUpCisgICAgeworICAgICAgICAkYWRkcmVzcyA9IHRyaW0oJGFkZHJlc3MpOworICAgICAgICAkbmFtZSA9IHRyaW0ocHJlZ19yZXBsYWNlKCcvW1xyXG5dKy8nLCAnJywgJG5hbWUpKTsgLy9TdHJpcCBicmVha3MgYW5kIHRyaW0KKyAgICAgICAgLy8gRG9uJ3QgdmFsaWRhdGUgbm93IGFkZHJlc3NlcyB3aXRoIElETi4gV2lsbCBiZSBkb25lIGluIHNlbmQoKS4KKyAgICAgICAgJHBvcyA9IHN0cnJwb3MoJGFkZHJlc3MsICdAJyk7CisgICAgICAgIGlmICgoZmFsc2UgPT09ICRwb3MpCisgICAgICAgICAgICB8fCAoKCEkdGhpcy0+aGFzOGJpdENoYXJzKHN1YnN0cigkYWRkcmVzcywgKyskcG9zKSkgfHwgIXN0YXRpYzo6aWRuU3VwcG9ydGVkKCkpCisgICAgICAgICAgICAmJiAhc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJGFkZHJlc3MpKQorICAgICAgICApIHsKKyAgICAgICAgICAgICRlcnJvcl9tZXNzYWdlID0gc3ByaW50ZigKKyAgICAgICAgICAgICAgICAnJXMgKEZyb20pOiAlcycsCisgICAgICAgICAgICAgICAgJHRoaXMtPmxhbmcoJ2ludmFsaWRfYWRkcmVzcycpLAorICAgICAgICAgICAgICAgICRhZGRyZXNzCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRlcnJvcl9tZXNzYWdlKTsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOworICAgICAgICAgICAgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZXJyb3JfbWVzc2FnZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+RnJvbSA9ICRhZGRyZXNzOworICAgICAgICAkdGhpcy0+RnJvbU5hbWUgPSAkbmFtZTsKKyAgICAgICAgaWYgKCRhdXRvICYmIGVtcHR5KCR0aGlzLT5TZW5kZXIpKSB7CisgICAgICAgICAgICAkdGhpcy0+U2VuZGVyID0gJGFkZHJlc3M7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1lc3NhZ2UtSUQgaGVhZGVyIG9mIHRoZSBsYXN0IGVtYWlsLgorICAgICAqIFRlY2huaWNhbGx5IHRoaXMgaXMgdGhlIHZhbHVlIGZyb20gdGhlIGxhc3QgdGltZSB0aGUgaGVhZGVycyB3ZXJlIGNyZWF0ZWQsCisgICAgICogYnV0IGl0J3MgYWxzbyB0aGUgbWVzc2FnZSBJRCBvZiB0aGUgbGFzdCBzZW50IG1lc3NhZ2UgZXhjZXB0IGluCisgICAgICogcGF0aG9sb2dpY2FsIGNhc2VzLgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TGFzdE1lc3NhZ2VJRCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmxhc3RNZXNzYWdlSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhhdCBhIHN0cmluZyBsb29rcyBsaWtlIGFuIGVtYWlsIGFkZHJlc3MuCisgICAgICogVmFsaWRhdGlvbiBwYXR0ZXJucyBzdXBwb3J0ZWQ6CisgICAgICogKiBgYXV0b2AgUGljayBiZXN0IHBhdHRlcm4gYXV0b21hdGljYWxseTsKKyAgICAgKiAqIGBwY3JlOGAgVXNlIHRoZSBzcXVpbG9vcGxlLmNvbSBwYXR0ZXJuLCByZXF1aXJlcyBQQ1JFID4gOC4wOworICAgICAqICogYHBjcmVgIFVzZSBvbGQgUENSRSBpbXBsZW1lbnRhdGlvbjsKKyAgICAgKiAqIGBwaHBgIFVzZSBQSFAgYnVpbHQtaW4gRklMVEVSX1ZBTElEQVRFX0VNQUlMOworICAgICAqICogYGh0bWw1YCBVc2UgdGhlIHBhdHRlcm4gZ2l2ZW4gYnkgdGhlIEhUTUw1IHNwZWMgZm9yICdlbWFpbCcgdHlwZSBmb3JtIGlucHV0IGVsZW1lbnRzLgorICAgICAqICogYG5vcmVnZXhgIERvbid0IHVzZSBhIHJlZ2V4OiBzdXBlciBmYXN0LCByZWFsbHkgZHVtYi4KKyAgICAgKiBBbHRlcm5hdGl2ZWx5IHlvdSBtYXkgcGFzcyBpbiBhIGNhbGxhYmxlIHRvIGluamVjdCB5b3VyIG93biB2YWxpZGF0b3IsIGZvciBleGFtcGxlOgorICAgICAqCisgICAgICogYGBgcGhwCisgICAgICogUEhQTWFpbGVyOjp2YWxpZGF0ZUFkZHJlc3MoJ3VzZXJAZXhhbXBsZS5jb20nLCBmdW5jdGlvbigkYWRkcmVzcykgeworICAgICAqICAgICByZXR1cm4gKHN0cnBvcygkYWRkcmVzcywgJ0AnKSAhPT0gZmFsc2UpOworICAgICAqIH0pOworICAgICAqIGBgYAorICAgICAqCisgICAgICogWW91IGNhbiBhbHNvIHNldCB0aGUgUEhQTWFpbGVyOjokdmFsaWRhdG9yIHN0YXRpYyB0byBhIGNhbGxhYmxlLCBhbGxvd2luZyBidWlsdC1pbiBtZXRob2RzIHRvIHVzZSB5b3VyIHZhbGlkYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgJGFkZHJlc3MgICAgICAgVGhlIGVtYWlsIGFkZHJlc3MgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gc3RyaW5nfGNhbGxhYmxlICRwYXR0ZXJuc2VsZWN0IFdoaWNoIHBhdHRlcm4gdG8gdXNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHZhbGlkYXRlQWRkcmVzcygkYWRkcmVzcywgJHBhdHRlcm5zZWxlY3QgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYgKG51bGwgPT09ICRwYXR0ZXJuc2VsZWN0KSB7CisgICAgICAgICAgICAkcGF0dGVybnNlbGVjdCA9IHN0YXRpYzo6JHZhbGlkYXRvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNfY2FsbGFibGUoJHBhdHRlcm5zZWxlY3QpKSB7CisgICAgICAgICAgICByZXR1cm4gJHBhdHRlcm5zZWxlY3QoJGFkZHJlc3MpOworICAgICAgICB9CisgICAgICAgIC8vUmVqZWN0IGxpbmUgYnJlYWtzIGluIGFkZHJlc3NlczsgaXQncyB2YWxpZCBSRkM1MzIyLCBidXQgbm90IFJGQzUzMjEKKyAgICAgICAgaWYgKHN0cnBvcygkYWRkcmVzcywgIlxuIikgIT09IGZhbHNlIHx8IHN0cnBvcygkYWRkcmVzcywgIlxyIikgIT09IGZhbHNlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoICgkcGF0dGVybnNlbGVjdCkgeworICAgICAgICAgICAgY2FzZSAncGNyZSc6IC8vS2VwdCBmb3IgQkMKKyAgICAgICAgICAgIGNhc2UgJ3BjcmU4JzoKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEEgbW9yZSBjb21wbGV4IGFuZCBtb3JlIHBlcm1pc3NpdmUgdmVyc2lvbiBvZiB0aGUgUkZDNTMyMiByZWdleCBvbiB3aGljaCBGSUxURVJfVkFMSURBVEVfRU1BSUwKKyAgICAgICAgICAgICAgICAgKiBpcyBiYXNlZC4KKyAgICAgICAgICAgICAgICAgKiBJbiBhZGRpdGlvbiB0byB0aGUgYWRkcmVzc2VzIGFsbG93ZWQgYnkgZmlsdGVyX3ZhciwgYWxzbyBwZXJtaXRzOgorICAgICAgICAgICAgICAgICAqICAqIGRvdGxlc3MgZG9tYWluczogYGFAYmAKKyAgICAgICAgICAgICAgICAgKiAgKiBjb21tZW50czogYDEyMzQgQCBsb2NhbChibGFoKSAubWFjaGluZSAuZXhhbXBsZWAKKyAgICAgICAgICAgICAgICAgKiAgKiBxdW90ZWQgZWxlbWVudHM6IGAnInRlc3QgYmxhaCJAZXhhbXBsZS5vcmcnYAorICAgICAgICAgICAgICAgICAqICAqIG51bWVyaWMgVExEczogYGFAYi4xMjNgCisgICAgICAgICAgICAgICAgICogICogdW5icmFja2V0ZWQgSVB2NCBsaXRlcmFsczogYGFAMTkyLjE2OC4wLjFgCisgICAgICAgICAgICAgICAgICogICogSVB2NiBsaXRlcmFsczogJ2ZpcnN0Lmxhc3RAW0lQdjY6YTE6Ol0nCisgICAgICAgICAgICAgICAgICogTm90IGFsbCBvZiB0aGVzZSB3aWxsIG5lY2Vzc2FyaWx5IHdvcmsgZm9yIHNlbmRpbmchCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiBAc2VlICAgICAgIGh0dHA6Ly9zcXVpbG9vcGxlLmNvbS8yMDA5LzEyLzIwL2VtYWlsLWFkZHJlc3MtdmFsaWRhdGlvbi8KKyAgICAgICAgICAgICAgICAgKiBAY29weXJpZ2h0IDIwMDktMjAxMCBNaWNoYWVsIFJ1c2h0b24KKyAgICAgICAgICAgICAgICAgKiBGZWVsIGZyZWUgdG8gdXNlIGFuZCByZWRpc3RyaWJ1dGUgdGhpcyBjb2RlLiBCdXQgcGxlYXNlIGtlZXAgdGhpcyBjb3B5cmlnaHQgbm90aWNlLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHJldHVybiAoYm9vbCkgcHJlZ19tYXRjaCgKKyAgICAgICAgICAgICAgICAgICAgJy9eKD8hKD8+KD8xKSI/KD8+XFxcWyAtfl18W14iXSkiPyg/MSkpezI1NSx9KSg/ISg/Pig/MSkiPyg/PlxcXFsgLX5dfFteIl0pIj8oPzEpKXs2NSx9QCknIC4KKyAgICAgICAgICAgICAgICAgICAgJygoPz4oPz4oPz4oKD8+KD8+KD8+XHgwRFx4MEEpP1tcdCBdKSt8KD8+W1x0IF0qXHgwRFx4MEEpP1tcdCBdKyk/KShcKCg/Pig/MiknIC4KKyAgICAgICAgICAgICAgICAgICAgJyg/PltceDAxLVx4MDhceDBCXHgwQ1x4MEUtXCcqLVxbXF0tXHg3Rl18XFxcW1x4MDAtXHg3Rl18KD8zKSkpKig/MilcKSkpKyg/MikpfCg/MikpPyknIC4KKyAgICAgICAgICAgICAgICAgICAgJyhbISMtXCcqK1wvLTk9P14tfi1dK3wiKD8+KD8yKSg/PltceDAxLVx4MDhceDBCXHgwQ1x4MEUtISMtXFtcXS1ceDdGXXxcXFxbXHgwMC1ceDdGXSkpKicgLgorICAgICAgICAgICAgICAgICAgICAnKD8yKSIpKD8+KD8xKVwuKD8xKSg/NCkpKig/MSlAKD8hKD8xKVthLXowLTktXXs2NCx9KSg/MSkoPz4oW2EtejAtOV0oPz5bYS16MC05LV0qW2EtejAtOV0pPyknIC4KKyAgICAgICAgICAgICAgICAgICAgJyg/Pig/MSlcLig/ISg/MSlbYS16MC05LV17NjQsfSkoPzEpKD81KSl7MCwxMjZ9fFxbKD86KD8+SVB2NjooPz4oW2EtZjAtOV17MSw0fSkoPz46KD82KSl7N30nIC4KKyAgICAgICAgICAgICAgICAgICAgJ3woPyEoPzouKlthLWYwLTldWzpcXV0pezgsfSkoKD82KSg/PjooPzYpKXswLDZ9KT86Oig/Nyk/KSl8KD8+KD8+SVB2NjooPz4oPzYpKD8+Oig/NikpezV9OicgLgorICAgICAgICAgICAgICAgICAgICAnfCg/ISg/Oi4qW2EtZjAtOV06KXs2LH0pKD84KT86Oig/PigoPzYpKD8+Oig/NikpezAsNH0pOik/KSk/KDI1WzAtNV18MlswLTRdWzAtOV18MVswLTldezJ9JyAuCisgICAgICAgICAgICAgICAgICAgICd8WzEtOV0/WzAtOV0pKD8+XC4oPzkpKXszfSkpXF0pKD8xKSQvaXNEJywKKyAgICAgICAgICAgICAgICAgICAgJGFkZHJlc3MKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgY2FzZSAnaHRtbDUnOgorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhpcyBpcyB0aGUgcGF0dGVybiB1c2VkIGluIHRoZSBIVE1MNSBzcGVjIGZvciB2YWxpZGF0aW9uIG9mICdlbWFpbCcgdHlwZSBmb3JtIGlucHV0IGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogQHNlZSBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNlLW1haWwtc3RhdGUtKHR5cGU9ZW1haWwpCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcmV0dXJuIChib29sKSBwcmVnX21hdGNoKAorICAgICAgICAgICAgICAgICAgICAnL15bYS16QS1aMC05LiEjJCUmXCcqK1wvPT9eX2B7fH1+LV0rQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9JyAuCisgICAgICAgICAgICAgICAgICAgICdbYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKiQvc0QnLAorICAgICAgICAgICAgICAgICAgICAkYWRkcmVzcworICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICBjYXNlICdwaHAnOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyX3ZhcigkYWRkcmVzcywgRklMVEVSX1ZBTElEQVRFX0VNQUlMKSAhPT0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZWxscyB3aGV0aGVyIElETnMgKEludGVybmF0aW9uYWxpemVkIERvbWFpbiBOYW1lcykgYXJlIHN1cHBvcnRlZCBvciBub3QuIFRoaXMgcmVxdWlyZXMgdGhlCisgICAgICogYGludGxgIGFuZCBgbWJzdHJpbmdgIFBIUCBleHRlbnNpb25zLgorICAgICAqCisgICAgICogQHJldHVybiBib29sIGB0cnVlYCBpZiByZXF1aXJlZCBmdW5jdGlvbnMgZm9yIElETiBzdXBwb3J0IGFyZSBwcmVzZW50CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpZG5TdXBwb3J0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uX2V4aXN0cygnaWRuX3RvX2FzY2lpJykgJiYgZnVuY3Rpb25fZXhpc3RzKCdtYl9jb252ZXJ0X2VuY29kaW5nJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgSUROIGluIGdpdmVuIGVtYWlsIGFkZHJlc3MgdG8gaXRzIEFTQ0lJIGZvcm0sIGFsc28ga25vd24gYXMgcHVueWNvZGUsIGlmIHBvc3NpYmxlLgorICAgICAqIEltcG9ydGFudDogQWRkcmVzcyBtdXN0IGJlIHBhc3NlZCBpbiBzYW1lIGVuY29kaW5nIGFzIGN1cnJlbnRseSBzZXQgaW4gUEhQTWFpbGVyOjokQ2hhclNldC4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNpbGVudGx5IHJldHVybnMgdW5tb2RpZmllZCBhZGRyZXNzIGlmOgorICAgICAqIC0gTm8gY29udmVyc2lvbiBpcyBuZWNlc3NhcnkgKGkuZS4gZG9tYWluIG5hbWUgaXMgbm90IGFuIElETiwgb3IgaXMgYWxyZWFkeSBpbiBBU0NJSSBmb3JtKQorICAgICAqIC0gQ29udmVyc2lvbiB0byBwdW55Y29kZSBpcyBpbXBvc3NpYmxlIChlLmcuIHJlcXVpcmVkIFBIUCBmdW5jdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUpCisgICAgICogICBvciBmYWlscyBmb3IgYW55IHJlYXNvbiAoZS5nLiBkb21haW4gY29udGFpbnMgY2hhcmFjdGVycyBub3QgYWxsb3dlZCBpbiBhbiBJRE4pLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiRDaGFyU2V0CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIGNvbnZlcnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBlbmNvZGVkIGFkZHJlc3MgaW4gQVNDSUkgZm9ybQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBwdW55ZW5jb2RlQWRkcmVzcygkYWRkcmVzcykKKyAgICB7CisgICAgICAgIC8vIFZlcmlmeSB3ZSBoYXZlIHJlcXVpcmVkIGZ1bmN0aW9ucywgQ2hhclNldCwgYW5kIGF0LXNpZ24uCisgICAgICAgICRwb3MgPSBzdHJycG9zKCRhZGRyZXNzLCAnQCcpOworICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5DaGFyU2V0KSAmJgorICAgICAgICAgICAgZmFsc2UgIT09ICRwb3MgJiYKKyAgICAgICAgICAgIHN0YXRpYzo6aWRuU3VwcG9ydGVkKCkKKyAgICAgICAgKSB7CisgICAgICAgICAgICAkZG9tYWluID0gc3Vic3RyKCRhZGRyZXNzLCArKyRwb3MpOworICAgICAgICAgICAgLy8gVmVyaWZ5IENoYXJTZXQgc3RyaW5nIGlzIGEgdmFsaWQgb25lLCBhbmQgZG9tYWluIHByb3Blcmx5IGVuY29kZWQgaW4gdGhpcyBDaGFyU2V0LgorICAgICAgICAgICAgaWYgKCR0aGlzLT5oYXM4Yml0Q2hhcnMoJGRvbWFpbikgJiYgQG1iX2NoZWNrX2VuY29kaW5nKCRkb21haW4sICR0aGlzLT5DaGFyU2V0KSkgeworICAgICAgICAgICAgICAgICRkb21haW4gPSBtYl9jb252ZXJ0X2VuY29kaW5nKCRkb21haW4sICdVVEYtOCcsICR0aGlzLT5DaGFyU2V0KTsKKyAgICAgICAgICAgICAgICAvL0lnbm9yZSBJREUgY29tcGxhaW50cyBhYm91dCB0aGlzIGxpbmUgLSBtZXRob2Qgc2lnbmF0dXJlIGNoYW5nZWQgaW4gUEhQIDUuNAorICAgICAgICAgICAgICAgICRlcnJvcmNvZGUgPSAwOworICAgICAgICAgICAgICAgIGlmIChkZWZpbmVkKCdJTlRMX0lETkFfVkFSSUFOVF9VVFM0NicpKSB7CisgICAgICAgICAgICAgICAgICAgICRwdW55Y29kZSA9IGlkbl90b19hc2NpaSgkZG9tYWluLCAkZXJyb3Jjb2RlLCBJTlRMX0lETkFfVkFSSUFOVF9VVFM0Nik7CisgICAgICAgICAgICAgICAgfSBlbHNlaWYgKGRlZmluZWQoJ0lOVExfSUROQV9WQVJJQU5UXzIwMDMnKSkgeworICAgICAgICAgICAgICAgICAgICAkcHVueWNvZGUgPSBpZG5fdG9fYXNjaWkoJGRvbWFpbiwgJGVycm9yY29kZSwgSU5UTF9JRE5BX1ZBUklBTlRfMjAwMyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJHB1bnljb2RlID0gaWRuX3RvX2FzY2lpKCRkb21haW4sICRlcnJvcmNvZGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZmFsc2UgIT09ICRwdW55Y29kZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vic3RyKCRhZGRyZXNzLCAwLCAkcG9zKSAuICRwdW55Y29kZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJGFkZHJlc3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbWVzc2FnZSBhbmQgc2VuZCBpdC4KKyAgICAgKiBVc2VzIHRoZSBzZW5kaW5nIG1ldGhvZCBzcGVjaWZpZWQgYnkgJE1haWxlci4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wgZmFsc2Ugb24gZXJyb3IgLSBTZWUgdGhlIEVycm9ySW5mbyBwcm9wZXJ0eSBmb3IgZGV0YWlscyBvZiB0aGUgZXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKCEkdGhpcy0+cHJlU2VuZCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnBvc3RTZW5kKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7CisgICAgICAgICAgICAkdGhpcy0+bWFpbEhlYWRlciA9ICcnOworICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRleGMtPmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAkZXhjOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmVwYXJlIGEgbWVzc2FnZSBmb3Igc2VuZGluZy4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcHJlU2VuZCgpCisgICAgeworICAgICAgICBpZiAoJ3NtdHAnID09PSAkdGhpcy0+TWFpbGVyCisgICAgICAgICAgICB8fCAoJ21haWwnID09PSAkdGhpcy0+TWFpbGVyICYmIHN0cmlwb3MoUEhQX09TLCAnV0lOJykgPT09IDApCisgICAgICAgICkgeworICAgICAgICAgICAgLy9TTVRQIG1hbmRhdGVzIFJGQy1jb21wbGlhbnQgbGluZSBlbmRpbmdzCisgICAgICAgICAgICAvL2FuZCBpdCdzIGFsc28gdXNlZCB3aXRoIG1haWwoKSBvbiBXaW5kb3dzCisgICAgICAgICAgICBzdGF0aWM6OnNldExFKHNlbGY6OkNSTEYpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy9NYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggbGVnYWN5IExpbnV4IGNvbW1hbmQgbGluZSBtYWlsZXJzCisgICAgICAgICAgICBzdGF0aWM6OnNldExFKFBIUF9FT0wpOworICAgICAgICB9CisgICAgICAgIC8vQ2hlY2sgZm9yIGJ1Z2d5IFBIUCB2ZXJzaW9ucyB0aGF0IGFkZCBhIGhlYWRlciB3aXRoIGFuIGluY29ycmVjdCBsaW5lIGJyZWFrCisgICAgICAgIGlmICgnbWFpbCcgPT09ICR0aGlzLT5NYWlsZXIKKyAgICAgICAgICAgICYmICgoUEhQX1ZFUlNJT05fSUQgPj0gNzAwMDAgJiYgUEhQX1ZFUlNJT05fSUQgPCA3MDAxNykKKyAgICAgICAgICAgICAgICB8fCAoUEhQX1ZFUlNJT05fSUQgPj0gNzAxMDAgJiYgUEhQX1ZFUlNJT05fSUQgPCA3MDEwMykpCisgICAgICAgICAgICAmJiBpbmlfZ2V0KCdtYWlsLmFkZF94X2hlYWRlcicpID09PSAnMScKKyAgICAgICAgICAgICYmIHN0cmlwb3MoUEhQX09TLCAnV0lOJykgPT09IDAKKyAgICAgICAgKSB7CisgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKAorICAgICAgICAgICAgICAgICdZb3VyIHZlcnNpb24gb2YgUEhQIGlzIGFmZmVjdGVkIGJ5IGEgYnVnIHRoYXQgbWF5IHJlc3VsdCBpbiBjb3JydXB0ZWQgbWVzc2FnZXMuJyAuCisgICAgICAgICAgICAgICAgJyBUbyBmaXggaXQsIHN3aXRjaCB0byBzZW5kaW5nIHVzaW5nIFNNVFAsIGRpc2FibGUgdGhlIG1haWwuYWRkX3hfaGVhZGVyIG9wdGlvbiBpbicgLgorICAgICAgICAgICAgICAgICcgeW91ciBwaHAuaW5pLCBzd2l0Y2ggdG8gTWFjT1Mgb3IgTGludXgsIG9yIHVwZ3JhZGUgeW91ciBQSFAgdG8gdmVyc2lvbiA3LjAuMTcrIG9yIDcuMS4zKy4nLAorICAgICAgICAgICAgICAgIEVfVVNFUl9XQVJOSU5HCisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICR0aGlzLT5lcnJvcl9jb3VudCA9IDA7IC8vIFJlc2V0IGVycm9ycworICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgPSAnJzsKKworICAgICAgICAgICAgLy8gRGVxdWV1ZSByZWNpcGllbnQgYW5kIFJlcGx5LVRvIGFkZHJlc3NlcyB3aXRoIElETgorICAgICAgICAgICAgZm9yZWFjaCAoYXJyYXlfbWVyZ2UoJHRoaXMtPlJlY2lwaWVudHNRdWV1ZSwgJHRoaXMtPlJlcGx5VG9RdWV1ZSkgYXMgJHBhcmFtcykgeworICAgICAgICAgICAgICAgICRwYXJhbXNbMV0gPSAkdGhpcy0+cHVueWVuY29kZUFkZHJlc3MoJHBhcmFtc1sxXSk7CisgICAgICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmNfYXJyYXkoWyR0aGlzLCAnYWRkQW5BZGRyZXNzJ10sICRwYXJhbXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNvdW50KCR0aGlzLT50bykgKyBjb3VudCgkdGhpcy0+Y2MpICsgY291bnQoJHRoaXMtPmJjYykgPCAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygncHJvdmlkZV9hZGRyZXNzJyksIHNlbGY6OlNUT1BfQ1JJVElDQUwpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBWYWxpZGF0ZSBGcm9tLCBTZW5kZXIsIGFuZCBDb25maXJtUmVhZGluZ1RvIGFkZHJlc3NlcworICAgICAgICAgICAgZm9yZWFjaCAoWydGcm9tJywgJ1NlbmRlcicsICdDb25maXJtUmVhZGluZ1RvJ10gYXMgJGFkZHJlc3Nfa2luZCkgeworICAgICAgICAgICAgICAgICR0aGlzLT4kYWRkcmVzc19raW5kID0gdHJpbSgkdGhpcy0+JGFkZHJlc3Nfa2luZCk7CisgICAgICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT4kYWRkcmVzc19raW5kKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJHRoaXMtPiRhZGRyZXNzX2tpbmQgPSAkdGhpcy0+cHVueWVuY29kZUFkZHJlc3MoJHRoaXMtPiRhZGRyZXNzX2tpbmQpOworICAgICAgICAgICAgICAgIGlmICghc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJHRoaXMtPiRhZGRyZXNzX2tpbmQpKSB7CisgICAgICAgICAgICAgICAgICAgICRlcnJvcl9tZXNzYWdlID0gc3ByaW50ZigKKyAgICAgICAgICAgICAgICAgICAgICAgICclcyAoJXMpOiAlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bGFuZygnaW52YWxpZF9hZGRyZXNzJyksCisgICAgICAgICAgICAgICAgICAgICAgICAkYWRkcmVzc19raW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPiRhZGRyZXNzX2tpbmQKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRlcnJvcl9tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXJyb3JfbWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZXJyb3JfbWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTZXQgd2hldGhlciB0aGUgbWVzc2FnZSBpcyBtdWx0aXBhcnQvYWx0ZXJuYXRpdmUKKyAgICAgICAgICAgIGlmICgkdGhpcy0+YWx0ZXJuYXRpdmVFeGlzdHMoKSkgeworICAgICAgICAgICAgICAgICR0aGlzLT5Db250ZW50VHlwZSA9IHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9BTFRFUk5BVElWRTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJHRoaXMtPnNldE1lc3NhZ2VUeXBlKCk7CisgICAgICAgICAgICAvLyBSZWZ1c2UgdG8gc2VuZCBhbiBlbXB0eSBtZXNzYWdlIHVubGVzcyB3ZSBhcmUgc3BlY2lmaWNhbGx5IGFsbG93aW5nIGl0CisgICAgICAgICAgICBpZiAoISR0aGlzLT5BbGxvd0VtcHR5ICYmIGVtcHR5KCR0aGlzLT5Cb2R5KSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2VtcHR5X21lc3NhZ2UnKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vVHJpbSBzdWJqZWN0IGNvbnNpc3RlbnRseQorICAgICAgICAgICAgJHRoaXMtPlN1YmplY3QgPSB0cmltKCR0aGlzLT5TdWJqZWN0KTsKKyAgICAgICAgICAgIC8vIENyZWF0ZSBib2R5IGJlZm9yZSBoZWFkZXJzIGluIGNhc2UgYm9keSBtYWtlcyBjaGFuZ2VzIHRvIGhlYWRlcnMgKGUuZy4gYWx0ZXJpbmcgdHJhbnNmZXIgZW5jb2RpbmcpCisgICAgICAgICAgICAkdGhpcy0+TUlNRUhlYWRlciA9ICcnOworICAgICAgICAgICAgJHRoaXMtPk1JTUVCb2R5ID0gJHRoaXMtPmNyZWF0ZUJvZHkoKTsKKyAgICAgICAgICAgIC8vIGNyZWF0ZUJvZHkgbWF5IGhhdmUgYWRkZWQgc29tZSBoZWFkZXJzLCBzbyByZXRhaW4gdGhlbQorICAgICAgICAgICAgJHRlbXBoZWFkZXJzID0gJHRoaXMtPk1JTUVIZWFkZXI7CisgICAgICAgICAgICAkdGhpcy0+TUlNRUhlYWRlciA9ICR0aGlzLT5jcmVhdGVIZWFkZXIoKTsKKyAgICAgICAgICAgICR0aGlzLT5NSU1FSGVhZGVyIC49ICR0ZW1waGVhZGVyczsKKworICAgICAgICAgICAgLy8gVG8gY2FwdHVyZSB0aGUgY29tcGxldGUgbWVzc2FnZSB3aGVuIHVzaW5nIG1haWwoKSwgY3JlYXRlCisgICAgICAgICAgICAvLyBhbiBleHRyYSBoZWFkZXIgbGlzdCB3aGljaCBjcmVhdGVIZWFkZXIoKSBkb2Vzbid0IGZvbGQgaW4KKyAgICAgICAgICAgIGlmICgnbWFpbCcgPT09ICR0aGlzLT5NYWlsZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQoJHRoaXMtPnRvKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgLj0gJHRoaXMtPmFkZHJBcHBlbmQoJ1RvJywgJHRoaXMtPnRvKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWFpbEhlYWRlciAuPSAkdGhpcy0+aGVhZGVyTGluZSgnVG8nLCAndW5kaXNjbG9zZWQtcmVjaXBpZW50czo7Jyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICR0aGlzLT5tYWlsSGVhZGVyIC49ICR0aGlzLT5oZWFkZXJMaW5lKAorICAgICAgICAgICAgICAgICAgICAnU3ViamVjdCcsCisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkdGhpcy0+U3ViamVjdCkpCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU2lnbiB3aXRoIERLSU0gaWYgZW5hYmxlZAorICAgICAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+REtJTV9kb21haW4pCisgICAgICAgICAgICAgICAgJiYgIWVtcHR5KCR0aGlzLT5ES0lNX3NlbGVjdG9yKQorICAgICAgICAgICAgICAgICYmICghZW1wdHkoJHRoaXMtPkRLSU1fcHJpdmF0ZV9zdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIHx8ICghZW1wdHkoJHRoaXMtPkRLSU1fcHJpdmF0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIHN0YXRpYzo6aXNQZXJtaXR0ZWRQYXRoKCR0aGlzLT5ES0lNX3ByaXZhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBmaWxlX2V4aXN0cygkdGhpcy0+REtJTV9wcml2YXRlKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgJGhlYWRlcl9ka2ltID0gJHRoaXMtPkRLSU1fQWRkKAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TUlNRUhlYWRlciAuICR0aGlzLT5tYWlsSGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJHRoaXMtPlN1YmplY3QpKSwKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1JTUVCb2R5CisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAkdGhpcy0+TUlNRUhlYWRlciA9IHN0YXRpYzo6c3RyaXBUcmFpbGluZ1dTUCgkdGhpcy0+TUlNRUhlYWRlcikgLiBzdGF0aWM6OiRMRSAuCisgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6bm9ybWFsaXplQnJlYWtzKCRoZWFkZXJfZGtpbSkgLiBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeworICAgICAgICAgICAgICAgIHRocm93ICRleGM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjdHVhbGx5IHNlbmQgYSBtZXNzYWdlIHZpYSB0aGUgc2VsZWN0ZWQgbWVjaGFuaXNtLgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBwb3N0U2VuZCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gQ2hvb3NlIHRoZSBtYWlsZXIgYW5kIHNlbmQgdGhyb3VnaCBpdAorICAgICAgICAgICAgc3dpdGNoICgkdGhpcy0+TWFpbGVyKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnc2VuZG1haWwnOgorICAgICAgICAgICAgICAgIGNhc2UgJ3FtYWlsJzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zZW5kbWFpbFNlbmQoJHRoaXMtPk1JTUVIZWFkZXIsICR0aGlzLT5NSU1FQm9keSk7CisgICAgICAgICAgICAgICAgY2FzZSAnc210cCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c210cFNlbmQoJHRoaXMtPk1JTUVIZWFkZXIsICR0aGlzLT5NSU1FQm9keSk7CisgICAgICAgICAgICAgICAgY2FzZSAnbWFpbCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bWFpbFNlbmQoJHRoaXMtPk1JTUVIZWFkZXIsICR0aGlzLT5NSU1FQm9keSk7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgJHNlbmRNZXRob2QgPSAkdGhpcy0+TWFpbGVyIC4gJ1NlbmQnOworICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kX2V4aXN0cygkdGhpcywgJHNlbmRNZXRob2QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPiRzZW5kTWV0aG9kKCR0aGlzLT5NSU1FSGVhZGVyLCAkdGhpcy0+TUlNRUJvZHkpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tYWlsU2VuZCgkdGhpcy0+TUlNRUhlYWRlciwgJHRoaXMtPk1JTUVCb2R5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXhjLT5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgJGV4YzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZW5kIG1haWwgdXNpbmcgdGhlICRTZW5kbWFpbCBwcm9ncmFtLgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OiRTZW5kbWFpbAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkaGVhZGVyIFRoZSBtZXNzYWdlIGhlYWRlcnMKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRib2R5ICAgVGhlIG1lc3NhZ2UgYm9keQorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZW5kbWFpbFNlbmQoJGhlYWRlciwgJGJvZHkpCisgICAgeworICAgICAgICAkaGVhZGVyID0gc3RhdGljOjpzdHJpcFRyYWlsaW5nV1NQKCRoZWFkZXIpIC4gc3RhdGljOjokTEUgLiBzdGF0aWM6OiRMRTsKKworICAgICAgICAvLyBDVkUtMjAxNi0xMDAzMywgQ1ZFLTIwMTYtMTAwNDU6IERvbid0IHBhc3MgLWYgaWYgY2hhcmFjdGVycyB3aWxsIGJlIGVzY2FwZWQuCisgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPlNlbmRlcikgJiYgc2VsZjo6aXNTaGVsbFNhZmUoJHRoaXMtPlNlbmRlcikpIHsKKyAgICAgICAgICAgIGlmICgncW1haWwnID09PSAkdGhpcy0+TWFpbGVyKSB7CisgICAgICAgICAgICAgICAgJHNlbmRtYWlsRm10ID0gJyVzIC1mJXMnOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkc2VuZG1haWxGbXQgPSAnJXMgLW9pIC1mJXMgLXQnOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2VpZiAoJ3FtYWlsJyA9PT0gJHRoaXMtPk1haWxlcikgeworICAgICAgICAgICAgJHNlbmRtYWlsRm10ID0gJyVzJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZW5kbWFpbEZtdCA9ICclcyAtb2kgLXQnOworICAgICAgICB9CisKKyAgICAgICAgJHNlbmRtYWlsID0gc3ByaW50Zigkc2VuZG1haWxGbXQsIGVzY2FwZXNoZWxsY21kKCR0aGlzLT5TZW5kbWFpbCksICR0aGlzLT5TZW5kZXIpOworCisgICAgICAgIGlmICgkdGhpcy0+U2luZ2xlVG8pIHsKKyAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5TaW5nbGVUb0FycmF5IGFzICR0b0FkZHIpIHsKKyAgICAgICAgICAgICAgICAkbWFpbCA9IEBwb3Blbigkc2VuZG1haWwsICd3Jyk7CisgICAgICAgICAgICAgICAgaWYgKCEkbWFpbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdleGVjdXRlJykgLiAkdGhpcy0+U2VuZG1haWwsIHNlbGY6OlNUT1BfQ1JJVElDQUwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmd3JpdGUoJG1haWwsICdUbzogJyAuICR0b0FkZHIgLiAiXG4iKTsKKyAgICAgICAgICAgICAgICBmd3JpdGUoJG1haWwsICRoZWFkZXIpOworICAgICAgICAgICAgICAgIGZ3cml0ZSgkbWFpbCwgJGJvZHkpOworICAgICAgICAgICAgICAgICRyZXN1bHQgPSBwY2xvc2UoJG1haWwpOworICAgICAgICAgICAgICAgICR0aGlzLT5kb0NhbGxiYWNrKAorICAgICAgICAgICAgICAgICAgICAoJHJlc3VsdCA9PT0gMCksCisgICAgICAgICAgICAgICAgICAgIFskdG9BZGRyXSwKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNjLAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YmNjLAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+U3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgJGJvZHksCisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5Gcm9tLAorICAgICAgICAgICAgICAgICAgICBbXQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgaWYgKDAgIT09ICRyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXhlY3V0ZScpIC4gJHRoaXMtPlNlbmRtYWlsLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbWFpbCA9IEBwb3Blbigkc2VuZG1haWwsICd3Jyk7CisgICAgICAgICAgICBpZiAoISRtYWlsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXhlY3V0ZScpIC4gJHRoaXMtPlNlbmRtYWlsLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZ3cml0ZSgkbWFpbCwgJGhlYWRlcik7CisgICAgICAgICAgICBmd3JpdGUoJG1haWwsICRib2R5KTsKKyAgICAgICAgICAgICRyZXN1bHQgPSBwY2xvc2UoJG1haWwpOworICAgICAgICAgICAgJHRoaXMtPmRvQ2FsbGJhY2soCisgICAgICAgICAgICAgICAgKCRyZXN1bHQgPT09IDApLAorICAgICAgICAgICAgICAgICR0aGlzLT50bywKKyAgICAgICAgICAgICAgICAkdGhpcy0+Y2MsCisgICAgICAgICAgICAgICAgJHRoaXMtPmJjYywKKyAgICAgICAgICAgICAgICAkdGhpcy0+U3ViamVjdCwKKyAgICAgICAgICAgICAgICAkYm9keSwKKyAgICAgICAgICAgICAgICAkdGhpcy0+RnJvbSwKKyAgICAgICAgICAgICAgICBbXQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGlmICgwICE9PSAkcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXhlY3V0ZScpIC4gJHRoaXMtPlNlbmRtYWlsLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpeCBDVkUtMjAxNi0xMDAzMyBhbmQgQ1ZFLTIwMTYtMTAwNDUgYnkgZGlzYWxsb3dpbmcgcG90ZW50aWFsbHkgdW5zYWZlIHNoZWxsIGNoYXJhY3RlcnMuCisgICAgICogTm90ZSB0aGF0IGVzY2FwZXNoZWxsYXJnIGFuZCBlc2NhcGVzaGVsbGNtZCBhcmUgaW5hZGVxdWF0ZSBmb3Igb3VyIHB1cnBvc2VzLCBlc3BlY2lhbGx5IG9uIFdpbmRvd3MuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL2lzc3Vlcy85MjQgQ1ZFLTIwMTYtMTAwNDUgYnVnIHJlcG9ydAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc3RyaW5nIFRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGlzU2hlbGxTYWZlKCRzdHJpbmcpCisgICAgeworICAgICAgICAvLyBGdXR1cmUtcHJvb2YKKyAgICAgICAgaWYgKGVzY2FwZXNoZWxsY21kKCRzdHJpbmcpICE9PSAkc3RyaW5nCisgICAgICAgICAgICB8fCAhaW5fYXJyYXkoZXNjYXBlc2hlbGxhcmcoJHN0cmluZyksIFsiJyRzdHJpbmcnIiwgIlwiJHN0cmluZ1wiIl0pCisgICAgICAgICkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgJGxlbmd0aCA9IHN0cmxlbigkc3RyaW5nKTsKKworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyArKyRpKSB7CisgICAgICAgICAgICAkYyA9ICRzdHJpbmdbJGldOworCisgICAgICAgICAgICAvLyBBbGwgb3RoZXIgY2hhcmFjdGVycyBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIGluIGF0IGxlYXN0IG9uZSBjb21tb24gc2hlbGwsIGluY2x1ZGluZyA9IGFuZCArLgorICAgICAgICAgICAgLy8gRnVsbCBzdG9wICguKSBoYXMgYSBzcGVjaWFsIG1lYW5pbmcgaW4gY21kLmV4ZSwgYnV0IGl0cyBpbXBhY3Qgc2hvdWxkIGJlIG5lZ2xpZ2libGUgaGVyZS4KKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIGRvZXMgcGVybWl0IG5vbi1MYXRpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBiYXNlZCBvbiB0aGUgY3VycmVudCBsb2NhbGUuCisgICAgICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRjKSAmJiBzdHJwb3MoJ0BfLS4nLCAkYykgPT09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciBhIGZpbGUgcGF0aCBpcyBvZiBhIHBlcm1pdHRlZCB0eXBlLgorICAgICAqIFVzZWQgdG8gcmVqZWN0IFVSTHMgYW5kIHBoYXIgZmlsZXMgZnJvbSBmdW5jdGlvbnMgdGhhdCBhY2Nlc3MgbG9jYWwgZmlsZSBwYXRocywKKyAgICAgKiBzdWNoIGFzIGFkZEF0dGFjaG1lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIEEgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aCB0byBhIGZpbGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gaXNQZXJtaXR0ZWRQYXRoKCRwYXRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICFwcmVnX21hdGNoKCcjXlthLXpdKzovLyNpJywgJHBhdGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgbWFpbCB1c2luZyB0aGUgUEhQIG1haWwoKSBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9ib29rLm1haWwucGhwCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRoZWFkZXIgVGhlIG1lc3NhZ2UgaGVhZGVycworICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvZHkgICBUaGUgbWVzc2FnZSBib2R5CisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG1haWxTZW5kKCRoZWFkZXIsICRib2R5KQorICAgIHsKKyAgICAgICAgJGhlYWRlciA9IHN0YXRpYzo6c3RyaXBUcmFpbGluZ1dTUCgkaGVhZGVyKSAuIHN0YXRpYzo6JExFIC4gc3RhdGljOjokTEU7CisKKyAgICAgICAgJHRvQXJyID0gW107CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT50byBhcyAkdG9hZGRyKSB7CisgICAgICAgICAgICAkdG9BcnJbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCR0b2FkZHIpOworICAgICAgICB9CisgICAgICAgICR0byA9IGltcGxvZGUoJywgJywgJHRvQXJyKTsKKworICAgICAgICAkcGFyYW1zID0gbnVsbDsKKyAgICAgICAgLy9UaGlzIHNldHMgdGhlIFNNVFAgZW52ZWxvcGUgc2VuZGVyIHdoaWNoIGdldHMgdHVybmVkIGludG8gYSByZXR1cm4tcGF0aCBoZWFkZXIgYnkgdGhlIHJlY2VpdmVyCisgICAgICAgIC8vQSBzcGFjZSBhZnRlciBgLWZgIGlzIG9wdGlvbmFsLCBidXQgdGhlcmUgaXMgYSBsb25nIGhpc3Rvcnkgb2YgaXRzIHByZXNlbmNlCisgICAgICAgIC8vY2F1c2luZyBwcm9ibGVtcywgc28gd2UgZG9uJ3QgdXNlIG9uZQorICAgICAgICAvL0V4aW0gZG9jczogaHR0cDovL3d3dy5leGltLm9yZy9leGltLWh0bWwtY3VycmVudC9kb2MvaHRtbC9zcGVjX2h0bWwvY2gtdGhlX2V4aW1fY29tbWFuZF9saW5lLmh0bWwKKyAgICAgICAgLy9TZW5kbWFpbCBkb2NzOiBodHRwOi8vd3d3LnNlbmRtYWlsLm9yZy9+Y2EvZW1haWwvbWFuL3NlbmRtYWlsLmh0bWwKKyAgICAgICAgLy9RbWFpbCBkb2NzOiBodHRwOi8vd3d3LnFtYWlsLm9yZy9tYW4vbWFuOC9xbWFpbC1pbmplY3QuaHRtbAorICAgICAgICAvL0V4YW1wbGUgcHJvYmxlbTogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzEwNTc5NTQKKyAgICAgICAgLy8gQ1ZFLTIwMTYtMTAwMzMsIENWRS0yMDE2LTEwMDQ1OiBEb24ndCBwYXNzIC1mIGlmIGNoYXJhY3RlcnMgd2lsbCBiZSBlc2NhcGVkLgorICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5TZW5kZXIpICYmIHN0YXRpYzo6dmFsaWRhdGVBZGRyZXNzKCR0aGlzLT5TZW5kZXIpICYmIHNlbGY6OmlzU2hlbGxTYWZlKCR0aGlzLT5TZW5kZXIpKSB7CisgICAgICAgICAgICAkcGFyYW1zID0gc3ByaW50ZignLWYlcycsICR0aGlzLT5TZW5kZXIpOworICAgICAgICB9CisgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPlNlbmRlcikgJiYgc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJHRoaXMtPlNlbmRlcikpIHsKKyAgICAgICAgICAgICRvbGRfZnJvbSA9IGluaV9nZXQoJ3NlbmRtYWlsX2Zyb20nKTsKKyAgICAgICAgICAgIGluaV9zZXQoJ3NlbmRtYWlsX2Zyb20nLCAkdGhpcy0+U2VuZGVyKTsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIGlmICgkdGhpcy0+U2luZ2xlVG8gJiYgY291bnQoJHRvQXJyKSA+IDEpIHsKKyAgICAgICAgICAgIGZvcmVhY2ggKCR0b0FyciBhcyAkdG9BZGRyKSB7CisgICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5tYWlsUGFzc3RocnUoJHRvQWRkciwgJHRoaXMtPlN1YmplY3QsICRib2R5LCAkaGVhZGVyLCAkcGFyYW1zKTsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZG9DYWxsYmFjaygkcmVzdWx0LCBbJHRvQWRkcl0sICR0aGlzLT5jYywgJHRoaXMtPmJjYywgJHRoaXMtPlN1YmplY3QsICRib2R5LCAkdGhpcy0+RnJvbSwgW10pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5tYWlsUGFzc3RocnUoJHRvLCAkdGhpcy0+U3ViamVjdCwgJGJvZHksICRoZWFkZXIsICRwYXJhbXMpOworICAgICAgICAgICAgJHRoaXMtPmRvQ2FsbGJhY2soJHJlc3VsdCwgJHRoaXMtPnRvLCAkdGhpcy0+Y2MsICR0aGlzLT5iY2MsICR0aGlzLT5TdWJqZWN0LCAkYm9keSwgJHRoaXMtPkZyb20sIFtdKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNzZXQoJG9sZF9mcm9tKSkgeworICAgICAgICAgICAgaW5pX3NldCgnc2VuZG1haWxfZnJvbScsICRvbGRfZnJvbSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCEkcmVzdWx0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdpbnN0YW50aWF0ZScpLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhbiBpbnN0YW5jZSB0byB1c2UgZm9yIFNNVFAgb3BlcmF0aW9ucy4KKyAgICAgKiBPdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGxvYWQgeW91ciBvd24gU01UUCBpbXBsZW1lbnRhdGlvbiwKKyAgICAgKiBvciBzZXQgb25lIHdpdGggc2V0U01UUEluc3RhbmNlLgorICAgICAqCisgICAgICogQHJldHVybiBTTVRQCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNNVFBJbnN0YW5jZSgpCisgICAgeworICAgICAgICBpZiAoIWlzX29iamVjdCgkdGhpcy0+c210cCkpIHsKKyAgICAgICAgICAgICR0aGlzLT5zbXRwID0gbmV3IFNNVFAoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+c210cDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlIGFuIGluc3RhbmNlIHRvIHVzZSBmb3IgU01UUCBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogQHJldHVybiBTTVRQCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFNNVFBJbnN0YW5jZShTTVRQICRzbXRwKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnNtdHAgPSAkc210cDsKKworICAgICAgICByZXR1cm4gJHRoaXMtPnNtdHA7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCBtYWlsIHZpYSBTTVRQLgorICAgICAqIFJldHVybnMgZmFsc2UgaWYgdGhlcmUgaXMgYSBiYWQgTUFJTCBGUk9NLCBSQ1BULCBvciBEQVRBIGlucHV0LgorICAgICAqCisgICAgICogQHNlZSBQSFBNYWlsZXI6OnNldFNNVFBJbnN0YW5jZSgpIHRvIHVzZSBhIGRpZmZlcmVudCBjbGFzcy4KKyAgICAgKgorICAgICAqIEB1c2VzIFxQSFBNYWlsZXJcUEhQTWFpbGVyXFNNVFAKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGhlYWRlciBUaGUgbWVzc2FnZSBoZWFkZXJzCisgICAgICogQHBhcmFtIHN0cmluZyAkYm9keSAgIFRoZSBtZXNzYWdlIGJvZHkKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc210cFNlbmQoJGhlYWRlciwgJGJvZHkpCisgICAgeworICAgICAgICAkaGVhZGVyID0gc3RhdGljOjpzdHJpcFRyYWlsaW5nV1NQKCRoZWFkZXIpIC4gc3RhdGljOjokTEUgLiBzdGF0aWM6OiRMRTsKKyAgICAgICAgJGJhZF9yY3B0ID0gW107CisgICAgICAgIGlmICghJHRoaXMtPnNtdHBDb25uZWN0KCR0aGlzLT5TTVRQT3B0aW9ucykpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ3NtdHBfY29ubmVjdF9mYWlsZWQnKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CisgICAgICAgIH0KKyAgICAgICAgLy9TZW5kZXIgYWxyZWFkeSB2YWxpZGF0ZWQgaW4gcHJlU2VuZCgpCisgICAgICAgIGlmICgnJyA9PT0gJHRoaXMtPlNlbmRlcikgeworICAgICAgICAgICAgJHNtdHBfZnJvbSA9ICR0aGlzLT5Gcm9tOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHNtdHBfZnJvbSA9ICR0aGlzLT5TZW5kZXI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCEkdGhpcy0+c210cC0+bWFpbCgkc210cF9mcm9tKSkgeworICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCR0aGlzLT5sYW5nKCdmcm9tX2ZhaWxlZCcpIC4gJHNtdHBfZnJvbSAuICcgOiAnIC4gaW1wbG9kZSgnLCcsICR0aGlzLT5zbXRwLT5nZXRFcnJvcigpKSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5FcnJvckluZm8sIHNlbGY6OlNUT1BfQ1JJVElDQUwpOworICAgICAgICB9CisKKyAgICAgICAgJGNhbGxiYWNrcyA9IFtdOworICAgICAgICAvLyBBdHRlbXB0IHRvIHNlbmQgdG8gYWxsIHJlY2lwaWVudHMKKyAgICAgICAgZm9yZWFjaCAoWyR0aGlzLT50bywgJHRoaXMtPmNjLCAkdGhpcy0+YmNjXSBhcyAkdG9ncm91cCkgeworICAgICAgICAgICAgZm9yZWFjaCAoJHRvZ3JvdXAgYXMgJHRvKSB7CisgICAgICAgICAgICAgICAgaWYgKCEkdGhpcy0+c210cC0+cmVjaXBpZW50KCR0b1swXSwgJHRoaXMtPmRzbikpIHsKKyAgICAgICAgICAgICAgICAgICAgJGVycm9yID0gJHRoaXMtPnNtdHAtPmdldEVycm9yKCk7CisgICAgICAgICAgICAgICAgICAgICRiYWRfcmNwdFtdID0gWyd0bycgPT4gJHRvWzBdLCAnZXJyb3InID0+ICRlcnJvclsnZGV0YWlsJ11dOworICAgICAgICAgICAgICAgICAgICAkaXNTZW50ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJGlzU2VudCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgJGNhbGxiYWNrc1tdID0gWydpc3NlbnQnPT4kaXNTZW50LCAndG8nPT4kdG9bMF1dOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gT25seSBzZW5kIHRoZSBEQVRBIGNvbW1hbmQgaWYgd2UgaGF2ZSB2aWFibGUgcmVjaXBpZW50cworICAgICAgICBpZiAoKGNvdW50KCR0aGlzLT5hbGxfcmVjaXBpZW50cykgPiBjb3VudCgkYmFkX3JjcHQpKSAmJiAhJHRoaXMtPnNtdHAtPmRhdGEoJGhlYWRlciAuICRib2R5KSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZGF0YV9ub3RfYWNjZXB0ZWQnKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CisgICAgICAgIH0KKworICAgICAgICAkc210cF90cmFuc2FjdGlvbl9pZCA9ICR0aGlzLT5zbXRwLT5nZXRMYXN0VHJhbnNhY3Rpb25JRCgpOworCisgICAgICAgIGlmICgkdGhpcy0+U01UUEtlZXBBbGl2ZSkgeworICAgICAgICAgICAgJHRoaXMtPnNtdHAtPnJlc2V0KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdGhpcy0+c210cC0+cXVpdCgpOworICAgICAgICAgICAgJHRoaXMtPnNtdHAtPmNsb3NlKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3JlYWNoICgkY2FsbGJhY2tzIGFzICRjYikgeworICAgICAgICAgICAgJHRoaXMtPmRvQ2FsbGJhY2soCisgICAgICAgICAgICAgICAgJGNiWydpc3NlbnQnXSwKKyAgICAgICAgICAgICAgICBbJGNiWyd0byddXSwKKyAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAkdGhpcy0+U3ViamVjdCwKKyAgICAgICAgICAgICAgICAkYm9keSwKKyAgICAgICAgICAgICAgICAkdGhpcy0+RnJvbSwKKyAgICAgICAgICAgICAgICBbJ3NtdHBfdHJhbnNhY3Rpb25faWQnID0+ICRzbXRwX3RyYW5zYWN0aW9uX2lkXQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vQ3JlYXRlIGVycm9yIG1lc3NhZ2UgZm9yIGFueSBiYWQgYWRkcmVzc2VzCisgICAgICAgIGlmIChjb3VudCgkYmFkX3JjcHQpID4gMCkgeworICAgICAgICAgICAgJGVycnN0ciA9ICcnOworICAgICAgICAgICAgZm9yZWFjaCAoJGJhZF9yY3B0IGFzICRiYWQpIHsKKyAgICAgICAgICAgICAgICAkZXJyc3RyIC49ICRiYWRbJ3RvJ10gLiAnOiAnIC4gJGJhZFsnZXJyb3InXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ3JlY2lwaWVudHNfZmFpbGVkJykgLiAkZXJyc3RyLCBzZWxmOjpTVE9QX0NPTlRJTlVFKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYXRlIGEgY29ubmVjdGlvbiB0byBhbiBTTVRQIHNlcnZlci4KKyAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSBvcGVyYXRpb24gZmFpbGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRvcHRpb25zIEFuIGFycmF5IG9mIG9wdGlvbnMgY29tcGF0aWJsZSB3aXRoIHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgpCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHVzZXMgXFBIUE1haWxlclxQSFBNYWlsZXJcU01UUAorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNtdHBDb25uZWN0KCRvcHRpb25zID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdGhpcy0+c210cCkgeworICAgICAgICAgICAgJHRoaXMtPnNtdHAgPSAkdGhpcy0+Z2V0U01UUEluc3RhbmNlKCk7CisgICAgICAgIH0KKworICAgICAgICAvL0lmIG5vIG9wdGlvbnMgYXJlIHByb3ZpZGVkLCB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGluIHRoZSBpbnN0YW5jZQorICAgICAgICBpZiAobnVsbCA9PT0gJG9wdGlvbnMpIHsKKyAgICAgICAgICAgICRvcHRpb25zID0gJHRoaXMtPlNNVFBPcHRpb25zOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWxyZWFkeSBjb25uZWN0ZWQ/CisgICAgICAgIGlmICgkdGhpcy0+c210cC0+Y29ubmVjdGVkKCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPnNtdHAtPnNldFRpbWVvdXQoJHRoaXMtPlRpbWVvdXQpOworICAgICAgICAkdGhpcy0+c210cC0+c2V0RGVidWdMZXZlbCgkdGhpcy0+U01UUERlYnVnKTsKKyAgICAgICAgJHRoaXMtPnNtdHAtPnNldERlYnVnT3V0cHV0KCR0aGlzLT5EZWJ1Z291dHB1dCk7CisgICAgICAgICR0aGlzLT5zbXRwLT5zZXRWZXJwKCR0aGlzLT5kb192ZXJwKTsKKyAgICAgICAgJGhvc3RzID0gZXhwbG9kZSgnOycsICR0aGlzLT5Ib3N0KTsKKyAgICAgICAgJGxhc3RleGNlcHRpb24gPSBudWxsOworCisgICAgICAgIGZvcmVhY2ggKCRob3N0cyBhcyAkaG9zdGVudHJ5KSB7CisgICAgICAgICAgICAkaG9zdGluZm8gPSBbXTsKKyAgICAgICAgICAgIGlmICghcHJlZ19tYXRjaCgKKyAgICAgICAgICAgICAgICAnL14oPzooc3NsfHRscyk6XC9cLyk/KC4rPykoPzo6KFxkKykpPyQvJywKKyAgICAgICAgICAgICAgICB0cmltKCRob3N0ZW50cnkpLAorICAgICAgICAgICAgICAgICRob3N0aW5mbworICAgICAgICAgICAgKSkgeworICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJHRoaXMtPmxhbmcoJ2ludmFsaWRfaG9zdGVudHJ5JykgLiAnICcgLiB0cmltKCRob3N0ZW50cnkpKTsKKyAgICAgICAgICAgICAgICAvLyBOb3QgYSB2YWxpZCBob3N0IGVudHJ5CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyAkaG9zdGluZm9bMV06IG9wdGlvbmFsIHNzbCBvciB0bHMgcHJlZml4CisgICAgICAgICAgICAvLyAkaG9zdGluZm9bMl06IHRoZSBob3N0bmFtZQorICAgICAgICAgICAgLy8gJGhvc3RpbmZvWzNdOiBvcHRpb25hbCBwb3J0IG51bWJlcgorICAgICAgICAgICAgLy8gVGhlIGhvc3Qgc3RyaW5nIHByZWZpeCBjYW4gdGVtcG9yYXJpbHkgb3ZlcnJpZGUgdGhlIGN1cnJlbnQgc2V0dGluZyBmb3IgU01UUFNlY3VyZQorICAgICAgICAgICAgLy8gSWYgaXQncyBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkCisKKyAgICAgICAgICAgIC8vQ2hlY2sgdGhlIGhvc3QgbmFtZSBpcyBhIHZhbGlkIG5hbWUgb3IgSVAgYWRkcmVzcyBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdAorICAgICAgICAgICAgaWYgKCFzdGF0aWM6OmlzVmFsaWRIb3N0KCRob3N0aW5mb1syXSkpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKCR0aGlzLT5sYW5nKCdpbnZhbGlkX2hvc3QnKSAuICcgJyAuICRob3N0aW5mb1syXSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkcHJlZml4ID0gJyc7CisgICAgICAgICAgICAkc2VjdXJlID0gJHRoaXMtPlNNVFBTZWN1cmU7CisgICAgICAgICAgICAkdGxzID0gKHN0YXRpYzo6RU5DUllQVElPTl9TVEFSVFRMUyA9PT0gJHRoaXMtPlNNVFBTZWN1cmUpOworICAgICAgICAgICAgaWYgKCdzc2wnID09PSAkaG9zdGluZm9bMV0gfHwgKCcnID09PSAkaG9zdGluZm9bMV0gJiYgc3RhdGljOjpFTkNSWVBUSU9OX1NNVFBTID09PSAkdGhpcy0+U01UUFNlY3VyZSkpIHsKKyAgICAgICAgICAgICAgICAkcHJlZml4ID0gJ3NzbDovLyc7CisgICAgICAgICAgICAgICAgJHRscyA9IGZhbHNlOyAvLyBDYW4ndCBoYXZlIFNTTCBhbmQgVExTIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAgICAgICAgICAgICAkc2VjdXJlID0gc3RhdGljOjpFTkNSWVBUSU9OX1NNVFBTOworICAgICAgICAgICAgfSBlbHNlaWYgKCd0bHMnID09PSAkaG9zdGluZm9bMV0pIHsKKyAgICAgICAgICAgICAgICAkdGxzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAvLyB0bHMgZG9lc24ndCB1c2UgYSBwcmVmaXgKKyAgICAgICAgICAgICAgICAkc2VjdXJlID0gc3RhdGljOjpFTkNSWVBUSU9OX1NUQVJUVExTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9EbyB3ZSBuZWVkIHRoZSBPcGVuU1NMIGV4dGVuc2lvbj8KKyAgICAgICAgICAgICRzc2xleHQgPSBkZWZpbmVkKCdPUEVOU1NMX0FMR09fU0hBMjU2Jyk7CisgICAgICAgICAgICBpZiAoc3RhdGljOjpFTkNSWVBUSU9OX1NUQVJUVExTID09PSAkc2VjdXJlIHx8IHN0YXRpYzo6RU5DUllQVElPTl9TTVRQUyA9PT0gJHNlY3VyZSkgeworICAgICAgICAgICAgICAgIC8vQ2hlY2sgZm9yIGFuIE9wZW5TU0wgY29uc3RhbnQgcmF0aGVyIHRoYW4gdXNpbmcgZXh0ZW5zaW9uX2xvYWRlZCwgd2hpY2ggaXMgc29tZXRpbWVzIGRpc2FibGVkCisgICAgICAgICAgICAgICAgaWYgKCEkc3NsZXh0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2V4dGVuc2lvbl9taXNzaW5nJykgLiAnb3BlbnNzbCcsIHNlbGY6OlNUT1BfQ1JJVElDQUwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRob3N0ID0gJGhvc3RpbmZvWzJdOworICAgICAgICAgICAgJHBvcnQgPSAkdGhpcy0+UG9ydDsKKyAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKDMsICRob3N0aW5mbykgJiYgaXNfbnVtZXJpYygkaG9zdGluZm9bM10pICYmICRob3N0aW5mb1szXSA+IDAgJiYgJGhvc3RpbmZvWzNdIDwgNjU1MzYpIHsKKyAgICAgICAgICAgICAgICAkcG9ydCA9IChpbnQpICRob3N0aW5mb1szXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkdGhpcy0+c210cC0+Y29ubmVjdCgkcHJlZml4IC4gJGhvc3QsICRwb3J0LCAkdGhpcy0+VGltZW91dCwgJG9wdGlvbnMpKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5IZWxvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkaGVsbG8gPSAkdGhpcy0+SGVsbzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRoZWxsbyA9ICR0aGlzLT5zZXJ2ZXJIb3N0bmFtZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zbXRwLT5oZWxsbygkaGVsbG8pOworICAgICAgICAgICAgICAgICAgICAvL0F1dG9tYXRpY2FsbHkgZW5hYmxlIFRMUyBlbmNyeXB0aW9uIGlmOgorICAgICAgICAgICAgICAgICAgICAvLyAqIGl0J3Mgbm90IGRpc2FibGVkCisgICAgICAgICAgICAgICAgICAgIC8vICogd2UgaGF2ZSBvcGVuc3NsIGV4dGVuc2lvbgorICAgICAgICAgICAgICAgICAgICAvLyAqIHdlIGFyZSBub3QgYWxyZWFkeSB1c2luZyBTU0wKKyAgICAgICAgICAgICAgICAgICAgLy8gKiB0aGUgc2VydmVyIG9mZmVycyBTVEFSVFRMUworICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlNNVFBBdXRvVExTICYmICRzc2xleHQgJiYgJ3NzbCcgIT09ICRzZWN1cmUgJiYgJHRoaXMtPnNtdHAtPmdldFNlcnZlckV4dCgnU1RBUlRUTFMnKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJHRscyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCR0bHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnNtdHAtPnN0YXJ0VExTKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdjb25uZWN0X2hvc3QnKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBtdXN0IHJlc2VuZCBFSExPIGFmdGVyIFRMUyBuZWdvdGlhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtdHAtPmhlbGxvKCRoZWxsbyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5TTVRQQXV0aCAmJiAhJHRoaXMtPnNtdHAtPmF1dGhlbnRpY2F0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5Vc2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5QYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5BdXRoVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5vYXV0aAorICAgICAgICAgICAgICAgICAgICApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdhdXRoZW50aWNhdGUnKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gJGV4YykgeworICAgICAgICAgICAgICAgICAgICAkbGFzdGV4Y2VwdGlvbiA9ICRleGM7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgbXVzdCBoYXZlIGNvbm5lY3RlZCwgYnV0IHRoZW4gZmFpbGVkIFRMUyBvciBBdXRoLCBzbyBjbG9zZSBjb25uZWN0aW9uIG5pY2VseQorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c210cC0+cXVpdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgYWxsIGNvbm5lY3Rpb24gYXR0ZW1wdHMgaGF2ZSBmYWlsZWQsIHNvIGNsb3NlIGNvbm5lY3Rpb24gaGFyZAorICAgICAgICAkdGhpcy0+c210cC0+Y2xvc2UoKTsKKyAgICAgICAgLy8gQXMgd2UndmUgY2F1Z2h0IGFsbCBleGNlcHRpb25zLCBqdXN0IHJlcG9ydCB3aGF0ZXZlciB0aGUgbGFzdCBvbmUgd2FzCisgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucyAmJiBudWxsICE9PSAkbGFzdGV4Y2VwdGlvbikgeworICAgICAgICAgICAgdGhyb3cgJGxhc3RleGNlcHRpb247CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2UgdGhlIGFjdGl2ZSBTTVRQIHNlc3Npb24gaWYgb25lIGV4aXN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc210cENsb3NlKCkKKyAgICB7CisgICAgICAgIGlmICgobnVsbCAhPT0gJHRoaXMtPnNtdHApICYmICR0aGlzLT5zbXRwLT5jb25uZWN0ZWQoKSkgeworICAgICAgICAgICAgJHRoaXMtPnNtdHAtPnF1aXQoKTsKKyAgICAgICAgICAgICR0aGlzLT5zbXRwLT5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBsYW5ndWFnZSBmb3IgZXJyb3IgbWVzc2FnZXMuCisgICAgICogUmV0dXJucyBmYWxzZSBpZiBpdCBjYW5ub3QgbG9hZCB0aGUgbGFuZ3VhZ2UgZmlsZS4KKyAgICAgKiBUaGUgZGVmYXVsdCBsYW5ndWFnZSBpcyBFbmdsaXNoLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkbGFuZ2NvZGUgIElTTyA2MzktMSAyLWNoYXJhY3RlciBsYW5ndWFnZSBjb2RlIChlLmcuIEZyZW5jaCBpcyAiZnIiKQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGxhbmdfcGF0aCBQYXRoIHRvIHRoZSBsYW5ndWFnZSBmaWxlIGRpcmVjdG9yeSwgd2l0aCB0cmFpbGluZyBzZXBhcmF0b3IgKHNsYXNoKQorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldExhbmd1YWdlKCRsYW5nY29kZSA9ICdlbicsICRsYW5nX3BhdGggPSAnJykKKyAgICB7CisgICAgICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciByZW5hbWVkIGxhbmd1YWdlIGNvZGVzCisgICAgICAgICRyZW5hbWVkX2xhbmdjb2RlcyA9IFsKKyAgICAgICAgICAgICdicicgPT4gJ3B0X2JyJywKKyAgICAgICAgICAgICdjeicgPT4gJ2NzJywKKyAgICAgICAgICAgICdkaycgPT4gJ2RhJywKKyAgICAgICAgICAgICdubycgPT4gJ25iJywKKyAgICAgICAgICAgICdzZScgPT4gJ3N2JywKKyAgICAgICAgICAgICdycycgPT4gJ3NyJywKKyAgICAgICAgICAgICd0ZycgPT4gJ3RsJywKKyAgICAgICAgICAgICdhbScgPT4gJ2h5JywKKyAgICAgICAgXTsKKworICAgICAgICBpZiAoaXNzZXQoJHJlbmFtZWRfbGFuZ2NvZGVzWyRsYW5nY29kZV0pKSB7CisgICAgICAgICAgICAkbGFuZ2NvZGUgPSAkcmVuYW1lZF9sYW5nY29kZXNbJGxhbmdjb2RlXTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERlZmluZSBmdWxsIHNldCBvZiB0cmFuc2xhdGFibGUgc3RyaW5ncyBpbiBFbmdsaXNoCisgICAgICAgICRQSFBNQUlMRVJfTEFORyA9IFsKKyAgICAgICAgICAgICdhdXRoZW50aWNhdGUnID0+ICdTTVRQIEVycm9yOiBDb3VsZCBub3QgYXV0aGVudGljYXRlLicsCisgICAgICAgICAgICAnY29ubmVjdF9ob3N0JyA9PiAnU01UUCBFcnJvcjogQ291bGQgbm90IGNvbm5lY3QgdG8gU01UUCBob3N0LicsCisgICAgICAgICAgICAnZGF0YV9ub3RfYWNjZXB0ZWQnID0+ICdTTVRQIEVycm9yOiBkYXRhIG5vdCBhY2NlcHRlZC4nLAorICAgICAgICAgICAgJ2VtcHR5X21lc3NhZ2UnID0+ICdNZXNzYWdlIGJvZHkgZW1wdHknLAorICAgICAgICAgICAgJ2VuY29kaW5nJyA9PiAnVW5rbm93biBlbmNvZGluZzogJywKKyAgICAgICAgICAgICdleGVjdXRlJyA9PiAnQ291bGQgbm90IGV4ZWN1dGU6ICcsCisgICAgICAgICAgICAnZmlsZV9hY2Nlc3MnID0+ICdDb3VsZCBub3QgYWNjZXNzIGZpbGU6ICcsCisgICAgICAgICAgICAnZmlsZV9vcGVuJyA9PiAnRmlsZSBFcnJvcjogQ291bGQgbm90IG9wZW4gZmlsZTogJywKKyAgICAgICAgICAgICdmcm9tX2ZhaWxlZCcgPT4gJ1RoZSBmb2xsb3dpbmcgRnJvbSBhZGRyZXNzIGZhaWxlZDogJywKKyAgICAgICAgICAgICdpbnN0YW50aWF0ZScgPT4gJ0NvdWxkIG5vdCBpbnN0YW50aWF0ZSBtYWlsIGZ1bmN0aW9uLicsCisgICAgICAgICAgICAnaW52YWxpZF9hZGRyZXNzJyA9PiAnSW52YWxpZCBhZGRyZXNzOiAnLAorICAgICAgICAgICAgJ2ludmFsaWRfaG9zdGVudHJ5JyA9PiAnSW52YWxpZCBob3N0ZW50cnk6ICcsCisgICAgICAgICAgICAnaW52YWxpZF9ob3N0JyA9PiAnSW52YWxpZCBob3N0OiAnLAorICAgICAgICAgICAgJ21haWxlcl9ub3Rfc3VwcG9ydGVkJyA9PiAnIG1haWxlciBpcyBub3Qgc3VwcG9ydGVkLicsCisgICAgICAgICAgICAncHJvdmlkZV9hZGRyZXNzJyA9PiAnWW91IG11c3QgcHJvdmlkZSBhdCBsZWFzdCBvbmUgcmVjaXBpZW50IGVtYWlsIGFkZHJlc3MuJywKKyAgICAgICAgICAgICdyZWNpcGllbnRzX2ZhaWxlZCcgPT4gJ1NNVFAgRXJyb3I6IFRoZSBmb2xsb3dpbmcgcmVjaXBpZW50cyBmYWlsZWQ6ICcsCisgICAgICAgICAgICAnc2lnbmluZycgPT4gJ1NpZ25pbmcgRXJyb3I6ICcsCisgICAgICAgICAgICAnc210cF9jb25uZWN0X2ZhaWxlZCcgPT4gJ1NNVFAgY29ubmVjdCgpIGZhaWxlZC4nLAorICAgICAgICAgICAgJ3NtdHBfZXJyb3InID0+ICdTTVRQIHNlcnZlciBlcnJvcjogJywKKyAgICAgICAgICAgICd2YXJpYWJsZV9zZXQnID0+ICdDYW5ub3Qgc2V0IG9yIHJlc2V0IHZhcmlhYmxlOiAnLAorICAgICAgICAgICAgJ2V4dGVuc2lvbl9taXNzaW5nJyA9PiAnRXh0ZW5zaW9uIG1pc3Npbmc6ICcsCisgICAgICAgIF07CisgICAgICAgIGlmIChlbXB0eSgkbGFuZ19wYXRoKSkgeworICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGFuIGFic29sdXRlIHBhdGggc28gaXQgY2FuIHdvcmsgaWYgQ1dEIGlzIG5vdCBoZXJlCisgICAgICAgICAgICAkbGFuZ19wYXRoID0gZGlybmFtZShfX0RJUl9fKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnbGFuZ3VhZ2UnIC4gRElSRUNUT1JZX1NFUEFSQVRPUjsKKyAgICAgICAgfQorICAgICAgICAvL1ZhbGlkYXRlICRsYW5nY29kZQorICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy9eW2Etel17Mn0oPzpfW2EtekEtWl17Mn0pPyQvJywgJGxhbmdjb2RlKSkgeworICAgICAgICAgICAgJGxhbmdjb2RlID0gJ2VuJzsKKyAgICAgICAgfQorICAgICAgICAkZm91bmRsYW5nID0gdHJ1ZTsKKyAgICAgICAgJGxhbmdfZmlsZSA9ICRsYW5nX3BhdGggLiAncGhwbWFpbGVyLmxhbmctJyAuICRsYW5nY29kZSAuICcucGhwJzsKKyAgICAgICAgLy8gVGhlcmUgaXMgbm8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmaWxlCisgICAgICAgIGlmICgnZW4nICE9PSAkbGFuZ2NvZGUpIHsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBsYW5ndWFnZSBmaWxlIHBhdGggaXMgcmVhZGFibGUKKyAgICAgICAgICAgIGlmICghc3RhdGljOjppc1Blcm1pdHRlZFBhdGgoJGxhbmdfZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRsYW5nX2ZpbGUpKSB7CisgICAgICAgICAgICAgICAgJGZvdW5kbGFuZyA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBPdmVyd3JpdGUgbGFuZ3VhZ2Utc3BlY2lmaWMgc3RyaW5ncy4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIHdheSB3ZSdsbCBuZXZlciBoYXZlIG1pc3NpbmcgdHJhbnNsYXRpb24ga2V5cy4KKyAgICAgICAgICAgICAgICAkZm91bmRsYW5nID0gaW5jbHVkZSAkbGFuZ19maWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICR0aGlzLT5sYW5ndWFnZSA9ICRQSFBNQUlMRVJfTEFORzsKKworICAgICAgICByZXR1cm4gKGJvb2wpICRmb3VuZGxhbmc7IC8vIFJldHVybnMgZmFsc2UgaWYgbGFuZ3VhZ2Ugbm90IGZvdW5kCisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBhcnJheSBvZiBzdHJpbmdzIGZvciB0aGUgY3VycmVudCBsYW5ndWFnZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb25zKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+bGFuZ3VhZ2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHJlY2lwaWVudCBoZWFkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkdHlwZQorICAgICAqIEBwYXJhbSBhcnJheSAgJGFkZHIgQW4gYXJyYXkgb2YgcmVjaXBpZW50cywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHdoZXJlIGVhY2ggcmVjaXBpZW50IGlzIGEgMi1lbGVtZW50IGluZGV4ZWQgYXJyYXkgd2l0aCBlbGVtZW50IDAgY29udGFpbmluZyBhbiBhZGRyZXNzCisgICAgICogICAgICAgICAgICAgICAgICAgICBhbmQgZWxlbWVudCAxIGNvbnRhaW5pbmcgYSBuYW1lLCBsaWtlOgorICAgICAqICAgICAgICAgICAgICAgICAgICAgW1snam9lQGV4YW1wbGUuY29tJywgJ0pvZSBVc2VyJ10sIFsnem9lQGV4YW1wbGUuY29tJywgJ1pvZSBVc2VyJ11dCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRyQXBwZW5kKCR0eXBlLCAkYWRkcikKKyAgICB7CisgICAgICAgICRhZGRyZXNzZXMgPSBbXTsKKyAgICAgICAgZm9yZWFjaCAoJGFkZHIgYXMgJGFkZHJlc3MpIHsKKyAgICAgICAgICAgICRhZGRyZXNzZXNbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCRhZGRyZXNzKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdHlwZSAuICc6ICcgLiBpbXBsb2RlKCcsICcsICRhZGRyZXNzZXMpIC4gc3RhdGljOjokTEU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0IGFuIGFkZHJlc3MgZm9yIHVzZSBpbiBhIG1lc3NhZ2UgaGVhZGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRhZGRyIEEgMi1lbGVtZW50IGluZGV4ZWQgYXJyYXksIGVsZW1lbnQgMCBjb250YWluaW5nIGFuIGFkZHJlc3MsIGVsZW1lbnQgMSBjb250YWluaW5nIGEgbmFtZSBsaWtlCisgICAgICogICAgICAgICAgICAgICAgICAgIFsnam9lQGV4YW1wbGUuY29tJywgJ0pvZSBVc2VyJ10KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZHJGb3JtYXQoJGFkZHIpCisgICAgeworICAgICAgICBpZiAoZW1wdHkoJGFkZHJbMV0pKSB7IC8vIE5vIG5hbWUgcHJvdmlkZWQKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c2VjdXJlSGVhZGVyKCRhZGRyWzBdKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJGFkZHJbMV0pLCAncGhyYXNlJykgLgorICAgICAgICAgICAgJyA8JyAuICR0aGlzLT5zZWN1cmVIZWFkZXIoJGFkZHJbMF0pIC4gJz4nOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdvcmQtd3JhcCBtZXNzYWdlLgorICAgICAqIEZvciB1c2Ugd2l0aCBtYWlsZXJzIHRoYXQgZG8gbm90IGF1dG9tYXRpY2FsbHkgcGVyZm9ybSB3cmFwcGluZworICAgICAqIGFuZCBmb3IgcXVvdGVkLXByaW50YWJsZSBlbmNvZGVkIG1lc3NhZ2VzLgorICAgICAqIE9yaWdpbmFsIHdyaXR0ZW4gYnkgcGhpbGlwcGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHdyYXAKKyAgICAgKiBAcGFyYW0gaW50ICAgICRsZW5ndGggIFRoZSBsaW5lIGxlbmd0aCB0byB3cmFwIHRvCisgICAgICogQHBhcmFtIGJvb2wgICAkcXBfbW9kZSBXaGV0aGVyIHRvIHJ1biBpbiBRdW90ZWQtUHJpbnRhYmxlIG1vZGUKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHdyYXBUZXh0KCRtZXNzYWdlLCAkbGVuZ3RoLCAkcXBfbW9kZSA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgaWYgKCRxcF9tb2RlKSB7CisgICAgICAgICAgICAkc29mdF9icmVhayA9IHNwcmludGYoJyA9JXMnLCBzdGF0aWM6OiRMRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkc29mdF9icmVhayA9IHN0YXRpYzo6JExFOworICAgICAgICB9CisgICAgICAgIC8vIElmIHV0Zi04IGVuY29kaW5nIGlzIHVzZWQsIHdlIHdpbGwgbmVlZCB0byBtYWtlIHN1cmUgd2UgZG9uJ3QKKyAgICAgICAgLy8gc3BsaXQgbXVsdGlieXRlIGNoYXJhY3RlcnMgd2hlbiB3ZSB3cmFwCisgICAgICAgICRpc191dGY4ID0gc3RhdGljOjpDSEFSU0VUX1VURjggPT09IHN0cnRvbG93ZXIoJHRoaXMtPkNoYXJTZXQpOworICAgICAgICAkbGVsZW4gPSBzdHJsZW4oc3RhdGljOjokTEUpOworICAgICAgICAkY3JsZmxlbiA9IHN0cmxlbihzdGF0aWM6OiRMRSk7CisKKyAgICAgICAgJG1lc3NhZ2UgPSBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkbWVzc2FnZSk7CisgICAgICAgIC8vUmVtb3ZlIGEgdHJhaWxpbmcgbGluZSBicmVhaworICAgICAgICBpZiAoc3Vic3RyKCRtZXNzYWdlLCAtJGxlbGVuKSA9PT0gc3RhdGljOjokTEUpIHsKKyAgICAgICAgICAgICRtZXNzYWdlID0gc3Vic3RyKCRtZXNzYWdlLCAwLCAtJGxlbGVuKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vU3BsaXQgbWVzc2FnZSBpbnRvIGxpbmVzCisgICAgICAgICRsaW5lcyA9IGV4cGxvZGUoc3RhdGljOjokTEUsICRtZXNzYWdlKTsKKyAgICAgICAgLy9NZXNzYWdlIHdpbGwgYmUgcmVidWlsdCBpbiBoZXJlCisgICAgICAgICRtZXNzYWdlID0gJyc7CisgICAgICAgIGZvcmVhY2ggKCRsaW5lcyBhcyAkbGluZSkgeworICAgICAgICAgICAgJHdvcmRzID0gZXhwbG9kZSgnICcsICRsaW5lKTsKKyAgICAgICAgICAgICRidWYgPSAnJzsKKyAgICAgICAgICAgICRmaXJzdHdvcmQgPSB0cnVlOworICAgICAgICAgICAgZm9yZWFjaCAoJHdvcmRzIGFzICR3b3JkKSB7CisgICAgICAgICAgICAgICAgaWYgKCRxcF9tb2RlICYmIChzdHJsZW4oJHdvcmQpID4gJGxlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgJHNwYWNlX2xlZnQgPSAkbGVuZ3RoIC0gc3RybGVuKCRidWYpIC0gJGNybGZsZW47CisgICAgICAgICAgICAgICAgICAgIGlmICghJGZpcnN0d29yZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzcGFjZV9sZWZ0ID4gMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGVuID0gJHNwYWNlX2xlZnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpc191dGY4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZW4gPSAkdGhpcy0+dXRmOENoYXJCb3VuZGFyeSgkd29yZCwgJGxlbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCc9JyA9PT0gc3Vic3RyKCR3b3JkLCAkbGVuIC0gMSwgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0kbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgnPScgPT09IHN1YnN0cigkd29yZCwgJGxlbiAtIDIsIDEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZW4gLT0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcnQgPSBzdWJzdHIoJHdvcmQsIDAsICRsZW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3b3JkID0gc3Vic3RyKCR3b3JkLCAkbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYnVmIC49ICcgJyAuICRwYXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRidWYgLiBzcHJpbnRmKCc9JXMnLCBzdGF0aWM6OiRMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRidWYgLiAkc29mdF9icmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICRidWYgPSAnJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoJHdvcmQgIT09ICcnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxlbmd0aCA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAkbGVuID0gJGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXNfdXRmOCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZW4gPSAkdGhpcy0+dXRmOENoYXJCb3VuZGFyeSgkd29yZCwgJGxlbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJz0nID09PSBzdWJzdHIoJHdvcmQsICRsZW4gLSAxLCAxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tJGxlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgnPScgPT09IHN1YnN0cigkd29yZCwgJGxlbiAtIDIsIDEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxlbiAtPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgJHBhcnQgPSBzdWJzdHIoJHdvcmQsIDAsICRsZW4pOworICAgICAgICAgICAgICAgICAgICAgICAgJHdvcmQgPSAoc3RyaW5nKSBzdWJzdHIoJHdvcmQsICRsZW4pOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHdvcmQgIT09ICcnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgLj0gJHBhcnQgLiBzcHJpbnRmKCc9JXMnLCBzdGF0aWM6OiRMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRidWYgPSAkcGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICRidWZfbyA9ICRidWY7CisgICAgICAgICAgICAgICAgICAgIGlmICghJGZpcnN0d29yZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGJ1ZiAuPSAnICc7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJGJ1ZiAuPSAkd29yZDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJycgIT09ICRidWZfbyAmJiBzdHJsZW4oJGJ1ZikgPiAkbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkYnVmX28gLiAkc29mdF9icmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICRidWYgPSAkd29yZDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkZmlyc3R3b3JkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkbWVzc2FnZSAuPSAkYnVmIC4gc3RhdGljOjokTEU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJG1lc3NhZ2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbGFzdCBjaGFyYWN0ZXIgYm91bmRhcnkgcHJpb3IgdG8gJG1heExlbmd0aCBpbiBhIHV0Zi04CisgICAgICogcXVvdGVkLXByaW50YWJsZSBlbmNvZGVkIHN0cmluZy4KKyAgICAgKiBPcmlnaW5hbCB3cml0dGVuIGJ5IENvbGluIEJyb3duLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZW5jb2RlZFRleHQgdXRmLTggUVAgdGV4dAorICAgICAqIEBwYXJhbSBpbnQgICAgJG1heExlbmd0aCAgIEZpbmQgdGhlIGxhc3QgY2hhcmFjdGVyIGJvdW5kYXJ5IHByaW9yIHRvIHRoaXMgbGVuZ3RoCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB1dGY4Q2hhckJvdW5kYXJ5KCRlbmNvZGVkVGV4dCwgJG1heExlbmd0aCkKKyAgICB7CisgICAgICAgICRmb3VuZFNwbGl0UG9zID0gZmFsc2U7CisgICAgICAgICRsb29rQmFjayA9IDM7CisgICAgICAgIHdoaWxlICghJGZvdW5kU3BsaXRQb3MpIHsKKyAgICAgICAgICAgICRsYXN0Q2h1bmsgPSBzdWJzdHIoJGVuY29kZWRUZXh0LCAkbWF4TGVuZ3RoIC0gJGxvb2tCYWNrLCAkbG9va0JhY2spOworICAgICAgICAgICAgJGVuY29kZWRDaGFyUG9zID0gc3RycG9zKCRsYXN0Q2h1bmssICc9Jyk7CisgICAgICAgICAgICBpZiAoZmFsc2UgIT09ICRlbmNvZGVkQ2hhclBvcykgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHN0YXJ0IG9mIGVuY29kZWQgY2hhcmFjdGVyIGJ5dGUgd2l0aGluICRsb29rQmFjayBibG9jay4KKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGUgZW5jb2RlZCBieXRlIHZhbHVlICh0aGUgMiBjaGFycyBhZnRlciB0aGUgJz0nKQorICAgICAgICAgICAgICAgICRoZXggPSBzdWJzdHIoJGVuY29kZWRUZXh0LCAkbWF4TGVuZ3RoIC0gJGxvb2tCYWNrICsgJGVuY29kZWRDaGFyUG9zICsgMSwgMik7CisgICAgICAgICAgICAgICAgJGRlYyA9IGhleGRlYygkaGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoJGRlYyA8IDEyOCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTaW5nbGUgYnl0ZSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbmNvZGVkIGNoYXIgd2FzIGZvdW5kIGF0IHBvcyAwLCBpdCB3aWxsIGZpdAorICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgcmVkdWNlIG1heExlbmd0aCB0byBzdGFydCBvZiB0aGUgZW5jb2RlZCBjaGFyCisgICAgICAgICAgICAgICAgICAgIGlmICgkZW5jb2RlZENoYXJQb3MgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbWF4TGVuZ3RoIC09ICRsb29rQmFjayAtICRlbmNvZGVkQ2hhclBvczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAkZm91bmRTcGxpdFBvcyA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRkZWMgPj0gMTkyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZpcnN0IGJ5dGUgb2YgYSBtdWx0aSBieXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAvLyBSZWR1Y2UgbWF4TGVuZ3RoIHRvIHNwbGl0IGF0IHN0YXJ0IG9mIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAkbWF4TGVuZ3RoIC09ICRsb29rQmFjayAtICRlbmNvZGVkQ2hhclBvczsKKyAgICAgICAgICAgICAgICAgICAgJGZvdW5kU3BsaXRQb3MgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZWlmICgkZGVjIDwgMTkyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE1pZGRsZSBieXRlIG9mIGEgbXVsdGkgYnl0ZSBjaGFyYWN0ZXIsIGxvb2sgZnVydGhlciBiYWNrCisgICAgICAgICAgICAgICAgICAgICRsb29rQmFjayArPSAzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gTm8gZW5jb2RlZCBjaGFyYWN0ZXIgZm91bmQKKyAgICAgICAgICAgICAgICAkZm91bmRTcGxpdFBvcyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJG1heExlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB3b3JkIHdyYXBwaW5nIHRvIHRoZSBtZXNzYWdlIGJvZHkuCisgICAgICogV3JhcHMgdGhlIG1lc3NhZ2UgYm9keSB0byB0aGUgbnVtYmVyIG9mIGNoYXJzIHNldCBpbiB0aGUgV29yZFdyYXAgcHJvcGVydHkuCisgICAgICogWW91IHNob3VsZCBvbmx5IGRvIHRoaXMgdG8gcGxhaW4tdGV4dCBib2RpZXMgYXMgd3JhcHBpbmcgSFRNTCB0YWdzIG1heSBicmVhayB0aGVtLgorICAgICAqIFRoaXMgaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgY3JlYXRlQm9keSgpLCBzbyB5b3UgZG9uJ3QgbmVlZCB0byBjYWxsIGl0IHlvdXJzZWxmLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRXb3JkV3JhcCgpCisgICAgeworICAgICAgICBpZiAoJHRoaXMtPldvcmRXcmFwIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoICgkdGhpcy0+bWVzc2FnZV90eXBlKSB7CisgICAgICAgICAgICBjYXNlICdhbHQnOgorICAgICAgICAgICAgY2FzZSAnYWx0X2lubGluZSc6CisgICAgICAgICAgICBjYXNlICdhbHRfYXR0YWNoJzoKKyAgICAgICAgICAgIGNhc2UgJ2FsdF9pbmxpbmVfYXR0YWNoJzoKKyAgICAgICAgICAgICAgICAkdGhpcy0+QWx0Qm9keSA9ICR0aGlzLT53cmFwVGV4dCgkdGhpcy0+QWx0Qm9keSwgJHRoaXMtPldvcmRXcmFwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgJHRoaXMtPkJvZHkgPSAkdGhpcy0+d3JhcFRleHQoJHRoaXMtPkJvZHksICR0aGlzLT5Xb3JkV3JhcCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBc3NlbWJsZSBtZXNzYWdlIGhlYWRlcnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgYXNzZW1ibGVkIGhlYWRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlSGVhZGVyKCkKKyAgICB7CisgICAgICAgICRyZXN1bHQgPSAnJzsKKworICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdEYXRlJywgJycgPT09ICR0aGlzLT5NZXNzYWdlRGF0ZSA/IHNlbGY6OnJmY0RhdGUoKSA6ICR0aGlzLT5NZXNzYWdlRGF0ZSk7CisKKyAgICAgICAgLy8gVG8gYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IG1haWwoKQorICAgICAgICBpZiAoJHRoaXMtPlNpbmdsZVRvKSB7CisgICAgICAgICAgICBpZiAoJ21haWwnICE9PSAkdGhpcy0+TWFpbGVyKSB7CisgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnRvIGFzICR0b2FkZHIpIHsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNpbmdsZVRvQXJyYXlbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCR0b2FkZHIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlaWYgKGNvdW50KCR0aGlzLT50bykgPiAwKSB7CisgICAgICAgICAgICBpZiAoJ21haWwnICE9PSAkdGhpcy0+TWFpbGVyKSB7CisgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+YWRkckFwcGVuZCgnVG8nLCAkdGhpcy0+dG8pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2VpZiAoY291bnQoJHRoaXMtPmNjKSA9PT0gMCkgeworICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgnVG8nLCAndW5kaXNjbG9zZWQtcmVjaXBpZW50czo7Jyk7CisgICAgICAgIH0KKworICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCdGcm9tJywgW1t0cmltKCR0aGlzLT5Gcm9tKSwgJHRoaXMtPkZyb21OYW1lXV0pOworCisgICAgICAgIC8vIHNlbmRtYWlsIGFuZCBtYWlsKCkgZXh0cmFjdCBDYyBmcm9tIHRoZSBoZWFkZXIgYmVmb3JlIHNlbmRpbmcKKyAgICAgICAgaWYgKGNvdW50KCR0aGlzLT5jYykgPiAwKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCdDYycsICR0aGlzLT5jYyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZW5kbWFpbCBhbmQgbWFpbCgpIGV4dHJhY3QgQmNjIGZyb20gdGhlIGhlYWRlciBiZWZvcmUgc2VuZGluZworICAgICAgICBpZiAoKAorICAgICAgICAgICAgICAgICdzZW5kbWFpbCcgPT09ICR0aGlzLT5NYWlsZXIgfHwgJ3FtYWlsJyA9PT0gJHRoaXMtPk1haWxlciB8fCAnbWFpbCcgPT09ICR0aGlzLT5NYWlsZXIKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgICYmIGNvdW50KCR0aGlzLT5iY2MpID4gMAorICAgICAgICApIHsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmFkZHJBcHBlbmQoJ0JjYycsICR0aGlzLT5iY2MpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvdW50KCR0aGlzLT5SZXBseVRvKSA+IDApIHsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmFkZHJBcHBlbmQoJ1JlcGx5LVRvJywgJHRoaXMtPlJlcGx5VG8pOworICAgICAgICB9CisKKyAgICAgICAgLy8gbWFpbCgpIHNldHMgdGhlIHN1YmplY3QgaXRzZWxmCisgICAgICAgIGlmICgnbWFpbCcgIT09ICR0aGlzLT5NYWlsZXIpIHsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ1N1YmplY3QnLCAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJHRoaXMtPlN1YmplY3QpKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBPbmx5IGFsbG93IGEgY3VzdG9tIG1lc3NhZ2UgSUQgaWYgaXQgY29uZm9ybXMgdG8gUkZDIDUzMjIgc2VjdGlvbiAzLjYuNAorICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNi40CisgICAgICAgIGlmICgnJyAhPT0gJHRoaXMtPk1lc3NhZ2VJRCAmJiBwcmVnX21hdGNoKCcvXjwuKkAuKj4kLycsICR0aGlzLT5NZXNzYWdlSUQpKSB7CisgICAgICAgICAgICAkdGhpcy0+bGFzdE1lc3NhZ2VJRCA9ICR0aGlzLT5NZXNzYWdlSUQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdGhpcy0+bGFzdE1lc3NhZ2VJRCA9IHNwcmludGYoJzwlc0Alcz4nLCAkdGhpcy0+dW5pcXVlaWQsICR0aGlzLT5zZXJ2ZXJIb3N0bmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdNZXNzYWdlLUlEJywgJHRoaXMtPmxhc3RNZXNzYWdlSUQpOworICAgICAgICBpZiAobnVsbCAhPT0gJHRoaXMtPlByaW9yaXR5KSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdYLVByaW9yaXR5JywgJHRoaXMtPlByaW9yaXR5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJycgPT09ICR0aGlzLT5YTWFpbGVyKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKAorICAgICAgICAgICAgICAgICdYLU1haWxlcicsCisgICAgICAgICAgICAgICAgJ1BIUE1haWxlciAnIC4gc2VsZjo6VkVSU0lPTiAuICcgKGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyKScKKyAgICAgICAgICAgICk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbXlYbWFpbGVyID0gdHJpbSgkdGhpcy0+WE1haWxlcik7CisgICAgICAgICAgICBpZiAoJG15WG1haWxlcikgeworICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ1gtTWFpbGVyJywgJG15WG1haWxlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoJycgIT09ICR0aGlzLT5Db25maXJtUmVhZGluZ1RvKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdEaXNwb3NpdGlvbi1Ob3RpZmljYXRpb24tVG8nLCAnPCcgLiAkdGhpcy0+Q29uZmlybVJlYWRpbmdUbyAuICc+Jyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGQgY3VzdG9tIGhlYWRlcnMKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPkN1c3RvbUhlYWRlciBhcyAkaGVhZGVyKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKAorICAgICAgICAgICAgICAgIHRyaW0oJGhlYWRlclswXSksCisgICAgICAgICAgICAgICAgJHRoaXMtPmVuY29kZUhlYWRlcih0cmltKCRoZWFkZXJbMV0pKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoISR0aGlzLT5zaWduX2tleV9maWxlKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdNSU1FLVZlcnNpb24nLCAnMS4wJyk7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5nZXRNYWlsTUlNRSgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtZXNzYWdlIE1JTUUgdHlwZSBoZWFkZXJzLgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TWFpbE1JTUUoKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICcnOworICAgICAgICAkaXNtdWx0aXBhcnQgPSB0cnVlOworICAgICAgICBzd2l0Y2ggKCR0aGlzLT5tZXNzYWdlX3R5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgJ2lubGluZSc6CisgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgnQ29udGVudC1UeXBlJywgc3RhdGljOjpDT05URU5UX1RZUEVfTVVMVElQQVJUX1JFTEFURUQgLiAnOycpOworICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPnRleHRMaW5lKCcgYm91bmRhcnk9IicgLiAkdGhpcy0+Ym91bmRhcnlbMV0gLiAnIicpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnYXR0YWNoJzoKKyAgICAgICAgICAgIGNhc2UgJ2lubGluZV9hdHRhY2gnOgorICAgICAgICAgICAgY2FzZSAnYWx0X2F0dGFjaCc6CisgICAgICAgICAgICBjYXNlICdhbHRfaW5saW5lX2F0dGFjaCc6CisgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgnQ29udGVudC1UeXBlJywgc3RhdGljOjpDT05URU5UX1RZUEVfTVVMVElQQVJUX01JWEVEIC4gJzsnKTsKKyAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT50ZXh0TGluZSgnIGJvdW5kYXJ5PSInIC4gJHRoaXMtPmJvdW5kYXJ5WzFdIC4gJyInKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2FsdCc6CisgICAgICAgICAgICBjYXNlICdhbHRfaW5saW5lJzoKKyAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVR5cGUnLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9NVUxUSVBBUlRfQUxURVJOQVRJVkUgLiAnOycpOworICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPnRleHRMaW5lKCcgYm91bmRhcnk9IicgLiAkdGhpcy0+Ym91bmRhcnlbMV0gLiAnIicpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyBDYXRjaGVzIGNhc2UgJ3BsYWluJzogYW5kIGNhc2UgJyc6CisgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+dGV4dExpbmUoJ0NvbnRlbnQtVHlwZTogJyAuICR0aGlzLT5Db250ZW50VHlwZSAuICc7IGNoYXJzZXQ9JyAuICR0aGlzLT5DaGFyU2V0KTsKKyAgICAgICAgICAgICAgICAkaXNtdWx0aXBhcnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvLyBSRkMxMzQxIHBhcnQgNSBzYXlzIDdiaXQgaXMgYXNzdW1lZCBpZiBub3Qgc3BlY2lmaWVkCisgICAgICAgIGlmIChzdGF0aWM6OkVOQ09ESU5HXzdCSVQgIT09ICR0aGlzLT5FbmNvZGluZykgeworICAgICAgICAgICAgLy8gUkZDIDIwNDUgc2VjdGlvbiA2LjQgc2F5cyBtdWx0aXBhcnQgTUlNRSBwYXJ0cyBtYXkgb25seSB1c2UgN2JpdCwgOGJpdCBvciBiaW5hcnkgQ1RFCisgICAgICAgICAgICBpZiAoJGlzbXVsdGlwYXJ0KSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRpYzo6RU5DT0RJTkdfOEJJVCA9PT0gJHRoaXMtPkVuY29kaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnLCBzdGF0aWM6OkVOQ09ESU5HXzhCSVQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBUaGUgb25seSByZW1haW5pbmcgYWx0ZXJuYXRpdmVzIGFyZSBxdW90ZWQtcHJpbnRhYmxlIGFuZCBiYXNlNjQsIHdoaWNoIGFyZSBib3RoIDdiaXQgY29tcGF0aWJsZQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nJywgJHRoaXMtPkVuY29kaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgnbWFpbCcgIT09ICR0aGlzLT5NYWlsZXIpIHsKKy8vICAgICAgICAgICAgJHJlc3VsdCAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHdob2xlIE1JTUUgbWVzc2FnZS4KKyAgICAgKiBJbmNsdWRlcyBjb21wbGV0ZSBoZWFkZXJzIGFuZCBib2R5LgorICAgICAqIE9ubHkgdmFsaWQgcG9zdCBwcmVTZW5kKCkuCisgICAgICoKKyAgICAgKiBAc2VlIFBIUE1haWxlcjo6cHJlU2VuZCgpCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTZW50TUlNRU1lc3NhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpYzo6c3RyaXBUcmFpbGluZ1dTUCgkdGhpcy0+TUlNRUhlYWRlciAuICR0aGlzLT5tYWlsSGVhZGVyKSAuCisgICAgICAgICAgICBzdGF0aWM6OiRMRSAuIHN0YXRpYzo6JExFIC4gJHRoaXMtPk1JTUVCb2R5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHVuaXF1ZSBJRCB0byB1c2UgZm9yIGJvdW5kYXJpZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZW5lcmF0ZUlkKCkKKyAgICB7CisgICAgICAgICRsZW4gPSAzMjsgLy8zMiBieXRlcyA9IDI1NiBiaXRzCisgICAgICAgICRieXRlcyA9ICcnOworICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdyYW5kb21fYnl0ZXMnKSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAkYnl0ZXMgPSByYW5kb21fYnl0ZXMoJGxlbik7CisgICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CisgICAgICAgICAgICAgICAgLy9EbyBub3RoaW5nCisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcycpKSB7CisgICAgICAgICAgICAvKiogQG5vaW5zcGVjdGlvbiBDcnlwdG9ncmFwaGljYWxseVNlY3VyZVJhbmRvbW5lc3NJbnNwZWN0aW9uICovCisgICAgICAgICAgICAkYnl0ZXMgPSBvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMoJGxlbik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRieXRlcyA9PT0gJycpIHsKKyAgICAgICAgICAgIC8vV2UgZmFpbGVkIHRvIHByb2R1Y2UgYSBwcm9wZXIgcmFuZG9tIHN0cmluZywgc28gbWFrZSBkby4KKyAgICAgICAgICAgIC8vVXNlIGEgaGFzaCB0byBmb3JjZSB0aGUgbGVuZ3RoIHRvIHRoZSBzYW1lIGFzIHRoZSBvdGhlciBtZXRob2RzCisgICAgICAgICAgICAkYnl0ZXMgPSBoYXNoKCdzaGEyNTYnLCB1bmlxaWQoKHN0cmluZykgbXRfcmFuZCgpLCB0cnVlKSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICAvL1dlIGRvbid0IGNhcmUgYWJvdXQgbWVzc2luZyB1cCBiYXNlNjQgZm9ybWF0IGhlcmUsIGp1c3Qgd2FudCBhIHJhbmRvbSBzdHJpbmcKKyAgICAgICAgcmV0dXJuIHN0cl9yZXBsYWNlKFsnPScsICcrJywgJy8nXSwgJycsIGJhc2U2NF9lbmNvZGUoaGFzaCgnc2hhMjU2JywgJGJ5dGVzLCB0cnVlKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFzc2VtYmxlIHRoZSBtZXNzYWdlIGJvZHkuCisgICAgICogUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgYXNzZW1ibGVkIG1lc3NhZ2UgYm9keQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVCb2R5KCkKKyAgICB7CisgICAgICAgICRib2R5ID0gJyc7CisgICAgICAgIC8vQ3JlYXRlIHVuaXF1ZSBJRHMgYW5kIHByZXNldCBib3VuZGFyaWVzCisgICAgICAgICR0aGlzLT51bmlxdWVpZCA9ICR0aGlzLT5nZW5lcmF0ZUlkKCk7CisgICAgICAgICR0aGlzLT5ib3VuZGFyeVsxXSA9ICdiMV8nIC4gJHRoaXMtPnVuaXF1ZWlkOworICAgICAgICAkdGhpcy0+Ym91bmRhcnlbMl0gPSAnYjJfJyAuICR0aGlzLT51bmlxdWVpZDsKKyAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzNdID0gJ2IzXycgLiAkdGhpcy0+dW5pcXVlaWQ7CisKKyAgICAgICAgaWYgKCR0aGlzLT5zaWduX2tleV9maWxlKSB7CisgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0TWFpbE1JTUUoKSAuIHN0YXRpYzo6JExFOworICAgICAgICB9CisKKyAgICAgICAgJHRoaXMtPnNldFdvcmRXcmFwKCk7CisKKyAgICAgICAgJGJvZHlFbmNvZGluZyA9ICR0aGlzLT5FbmNvZGluZzsKKyAgICAgICAgJGJvZHlDaGFyU2V0ID0gJHRoaXMtPkNoYXJTZXQ7CisgICAgICAgIC8vQ2FuIHdlIGRvIGEgNy1iaXQgZG93bmdyYWRlPworICAgICAgICBpZiAoc3RhdGljOjpFTkNPRElOR184QklUID09PSAkYm9keUVuY29kaW5nICYmICEkdGhpcy0+aGFzOGJpdENoYXJzKCR0aGlzLT5Cb2R5KSkgeworICAgICAgICAgICAgJGJvZHlFbmNvZGluZyA9IHN0YXRpYzo6RU5DT0RJTkdfN0JJVDsKKyAgICAgICAgICAgIC8vQWxsIElTTyA4ODU5LCBXaW5kb3dzIGNvZGVwYWdlIGFuZCBVVEYtOCBjaGFyc2V0cyBhcmUgYXNjaWkgY29tcGF0aWJsZSB1cCB0byA3LWJpdAorICAgICAgICAgICAgJGJvZHlDaGFyU2V0ID0gc3RhdGljOjpDSEFSU0VUX0FTQ0lJOworICAgICAgICB9CisgICAgICAgIC8vSWYgbGluZXMgYXJlIHRvbyBsb25nLCBhbmQgd2UncmUgbm90IGFscmVhZHkgdXNpbmcgYW4gZW5jb2RpbmcgdGhhdCB3aWxsIHNob3J0ZW4gdGhlbSwKKyAgICAgICAgLy9jaGFuZ2UgdG8gcXVvdGVkLXByaW50YWJsZSB0cmFuc2ZlciBlbmNvZGluZyBmb3IgdGhlIGJvZHkgcGFydCBvbmx5CisgICAgICAgIGlmIChzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCAhPT0gJHRoaXMtPkVuY29kaW5nICYmIHN0YXRpYzo6aGFzTGluZUxvbmdlclRoYW5NYXgoJHRoaXMtPkJvZHkpKSB7CisgICAgICAgICAgICAkYm9keUVuY29kaW5nID0gc3RhdGljOjpFTkNPRElOR19RVU9URURfUFJJTlRBQkxFOworICAgICAgICB9CisKKyAgICAgICAgJGFsdEJvZHlFbmNvZGluZyA9ICR0aGlzLT5FbmNvZGluZzsKKyAgICAgICAgJGFsdEJvZHlDaGFyU2V0ID0gJHRoaXMtPkNoYXJTZXQ7CisgICAgICAgIC8vQ2FuIHdlIGRvIGEgNy1iaXQgZG93bmdyYWRlPworICAgICAgICBpZiAoc3RhdGljOjpFTkNPRElOR184QklUID09PSAkYWx0Qm9keUVuY29kaW5nICYmICEkdGhpcy0+aGFzOGJpdENoYXJzKCR0aGlzLT5BbHRCb2R5KSkgeworICAgICAgICAgICAgJGFsdEJvZHlFbmNvZGluZyA9IHN0YXRpYzo6RU5DT0RJTkdfN0JJVDsKKyAgICAgICAgICAgIC8vQWxsIElTTyA4ODU5LCBXaW5kb3dzIGNvZGVwYWdlIGFuZCBVVEYtOCBjaGFyc2V0cyBhcmUgYXNjaWkgY29tcGF0aWJsZSB1cCB0byA3LWJpdAorICAgICAgICAgICAgJGFsdEJvZHlDaGFyU2V0ID0gc3RhdGljOjpDSEFSU0VUX0FTQ0lJOworICAgICAgICB9CisgICAgICAgIC8vSWYgbGluZXMgYXJlIHRvbyBsb25nLCBhbmQgd2UncmUgbm90IGFscmVhZHkgdXNpbmcgYW4gZW5jb2RpbmcgdGhhdCB3aWxsIHNob3J0ZW4gdGhlbSwKKyAgICAgICAgLy9jaGFuZ2UgdG8gcXVvdGVkLXByaW50YWJsZSB0cmFuc2ZlciBlbmNvZGluZyBmb3IgdGhlIGFsdCBib2R5IHBhcnQgb25seQorICAgICAgICBpZiAoc3RhdGljOjpFTkNPRElOR19CQVNFNjQgIT09ICRhbHRCb2R5RW5jb2RpbmcgJiYgc3RhdGljOjpoYXNMaW5lTG9uZ2VyVGhhbk1heCgkdGhpcy0+QWx0Qm9keSkpIHsKKyAgICAgICAgICAgICRhbHRCb2R5RW5jb2RpbmcgPSBzdGF0aWM6OkVOQ09ESU5HX1FVT1RFRF9QUklOVEFCTEU7CisgICAgICAgIH0KKyAgICAgICAgLy9Vc2UgdGhpcyBhcyBhIHByZWFtYmxlIGluIGFsbCBtdWx0aXBhcnQgbWVzc2FnZSB0eXBlcworICAgICAgICAkbWltZXByZSA9ICdUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LicgLiBzdGF0aWM6OiRMRSAuIHN0YXRpYzo6JExFOworICAgICAgICBzd2l0Y2ggKCR0aGlzLT5tZXNzYWdlX3R5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgJ2lubGluZSc6CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJG1pbWVwcmU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCAnJywgJGJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJGJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgnaW5saW5lJywgJHRoaXMtPmJvdW5kYXJ5WzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2F0dGFjaCc6CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJG1pbWVwcmU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCAnJywgJGJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJGJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgnYXR0YWNobWVudCcsICR0aGlzLT5ib3VuZGFyeVsxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdpbmxpbmVfYXR0YWNoJzoKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkbWltZXByZTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJy0tJyAuICR0aGlzLT5ib3VuZGFyeVsxXSk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9SRUxBVEVEIC4gJzsnKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJyBib3VuZGFyeT0iJyAuICR0aGlzLT5ib3VuZGFyeVsyXSAuICciOycpOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgnIHR5cGU9IicgLiBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwgLiAnIicpOworICAgICAgICAgICAgICAgICRib2R5IC49IHN0YXRpYzo6JExFOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0sICRib2R5Q2hhclNldCwgJycsICRib2R5RW5jb2RpbmcpOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICRib2R5RW5jb2RpbmcpOworICAgICAgICAgICAgICAgICRib2R5IC49IHN0YXRpYzo6JExFOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2lubGluZScsICR0aGlzLT5ib3VuZGFyeVsyXSk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgnYXR0YWNobWVudCcsICR0aGlzLT5ib3VuZGFyeVsxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdhbHQnOgorICAgICAgICAgICAgICAgICRib2R5IC49ICRtaW1lcHJlOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzFdLAorICAgICAgICAgICAgICAgICAgICAkYWx0Qm9keUNoYXJTZXQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1BMQUlOVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgJGFsdEJvZHlFbmNvZGluZworICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+QWx0Qm9keSwgJGFsdEJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Ym91bmRhcnlbMV0sCisgICAgICAgICAgICAgICAgICAgICRib2R5Q2hhclNldCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljOjpDT05URU5UX1RZUEVfVEVYVF9IVE1MLAorICAgICAgICAgICAgICAgICAgICAkYm9keUVuY29kaW5nCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5JY2FsKSkgeworICAgICAgICAgICAgICAgICAgICAkbWV0aG9kID0gc3RhdGljOjpJQ0FMX01FVEhPRF9SRVFVRVNUOworICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChzdGF0aWM6OiRJY2FsTWV0aG9kcyBhcyAkaW1ldGhvZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmlwb3MoJHRoaXMtPkljYWwsICdNRVRIT0Q6JyAuICRpbWV0aG9kKSAhPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWV0aG9kID0gJGltZXRob2Q7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0NBTEVOREFSIC4gJzsgbWV0aG9kPScgLiAkbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgJycKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+SWNhbCwgJHRoaXMtPkVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnYWx0X2lubGluZSc6CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJG1pbWVwcmU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Ym91bmRhcnlbMV0sCisgICAgICAgICAgICAgICAgICAgICRhbHRCb2R5Q2hhclNldCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljOjpDT05URU5UX1RZUEVfUExBSU5URVhULAorICAgICAgICAgICAgICAgICAgICAkYWx0Qm9keUVuY29kaW5nCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5BbHRCb2R5LCAkYWx0Qm9keUVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJy0tJyAuICR0aGlzLT5ib3VuZGFyeVsxXSk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9SRUxBVEVEIC4gJzsnKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJyBib3VuZGFyeT0iJyAuICR0aGlzLT5ib3VuZGFyeVsyXSAuICciOycpOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgnIHR5cGU9IicgLiBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwgLiAnIicpOworICAgICAgICAgICAgICAgICRib2R5IC49IHN0YXRpYzo6JExFOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzJdLAorICAgICAgICAgICAgICAgICAgICAkYm9keUNoYXJTZXQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1RFWFRfSFRNTCwKKyAgICAgICAgICAgICAgICAgICAgJGJvZHlFbmNvZGluZworICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJGJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgnaW5saW5lJywgJHRoaXMtPmJvdW5kYXJ5WzJdKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5kQm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2FsdF9hdHRhY2gnOgorICAgICAgICAgICAgICAgICRib2R5IC49ICRtaW1lcHJlOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgnLS0nIC4gJHRoaXMtPmJvdW5kYXJ5WzFdKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+aGVhZGVyTGluZSgnQ29udGVudC1UeXBlJywgc3RhdGljOjpDT05URU5UX1RZUEVfTVVMVElQQVJUX0FMVEVSTkFUSVZFIC4gJzsnKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJyBib3VuZGFyeT0iJyAuICR0aGlzLT5ib3VuZGFyeVsyXSAuICciJyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KAorICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Ym91bmRhcnlbMl0sCisgICAgICAgICAgICAgICAgICAgICRhbHRCb2R5Q2hhclNldCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljOjpDT05URU5UX1RZUEVfUExBSU5URVhULAorICAgICAgICAgICAgICAgICAgICAkYWx0Qm9keUVuY29kaW5nCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5BbHRCb2R5LCAkYWx0Qm9keUVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoCisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5ib3VuZGFyeVsyXSwKKyAgICAgICAgICAgICAgICAgICAgJGJvZHlDaGFyU2V0LAorICAgICAgICAgICAgICAgICAgICBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwsCisgICAgICAgICAgICAgICAgICAgICRib2R5RW5jb2RpbmcKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICRib2R5RW5jb2RpbmcpOworICAgICAgICAgICAgICAgICRib2R5IC49IHN0YXRpYzo6JExFOworICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPkljYWwpKSB7CisgICAgICAgICAgICAgICAgICAgICRtZXRob2QgPSBzdGF0aWM6OklDQUxfTUVUSE9EX1JFUVVFU1Q7CisgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKHN0YXRpYzo6JEljYWxNZXRob2RzIGFzICRpbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaXBvcygkdGhpcy0+SWNhbCwgJ01FVEhPRDonIC4gJGltZXRob2QpICE9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXRob2QgPSAkaW1ldGhvZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Ym91bmRhcnlbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1RFWFRfQ0FMRU5EQVIgLiAnOyBtZXRob2Q9JyAuICRtZXRob2QsCisgICAgICAgICAgICAgICAgICAgICAgICAnJworICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5JY2FsLCAkdGhpcy0+RW5jb2RpbmcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5kQm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+YXR0YWNoQWxsKCdhdHRhY2htZW50JywgJHRoaXMtPmJvdW5kYXJ5WzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2FsdF9pbmxpbmVfYXR0YWNoJzoKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkbWltZXByZTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJy0tJyAuICR0aGlzLT5ib3VuZGFyeVsxXSk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9BTFRFUk5BVElWRSAuICc7Jyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCcgYm91bmRhcnk9IicgLiAkdGhpcy0+Ym91bmRhcnlbMl0gLiAnIicpOworICAgICAgICAgICAgICAgICRib2R5IC49IHN0YXRpYzo6JExFOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzJdLAorICAgICAgICAgICAgICAgICAgICAkYWx0Qm9keUNoYXJTZXQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1BMQUlOVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgJGFsdEJvZHlFbmNvZGluZworICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+QWx0Qm9keSwgJGFsdEJvZHlFbmNvZGluZyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCctLScgLiAkdGhpcy0+Ym91bmRhcnlbMl0pOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVR5cGUnLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9NVUxUSVBBUlRfUkVMQVRFRCAuICc7Jyk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCcgYm91bmRhcnk9IicgLiAkdGhpcy0+Ym91bmRhcnlbM10gLiAnIjsnKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJyB0eXBlPSInIC4gc3RhdGljOjpDT05URU5UX1RZUEVfVEVYVF9IVE1MIC4gJyInKTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoCisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5ib3VuZGFyeVszXSwKKyAgICAgICAgICAgICAgICAgICAgJGJvZHlDaGFyU2V0LAorICAgICAgICAgICAgICAgICAgICBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwsCisgICAgICAgICAgICAgICAgICAgICRib2R5RW5jb2RpbmcKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICRib2R5RW5jb2RpbmcpOworICAgICAgICAgICAgICAgICRib2R5IC49IHN0YXRpYzo6JExFOworICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2lubGluZScsICR0aGlzLT5ib3VuZGFyeVszXSk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuZEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsyXSk7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgnYXR0YWNobWVudCcsICR0aGlzLT5ib3VuZGFyeVsxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIENhdGNoIGNhc2UgJ3BsYWluJyBhbmQgY2FzZSAnJywgYXBwbGllcyB0byBzaW1wbGUgYHRleHQvcGxhaW5gIGFuZCBgdGV4dC9odG1sYCBib2R5IGNvbnRlbnQgdHlwZXMKKyAgICAgICAgICAgICAgICAvL1Jlc2V0IHRoZSBgRW5jb2RpbmdgIHByb3BlcnR5IGluIGNhc2Ugd2UgY2hhbmdlZCBpdCBmb3IgbGluZSBsZW5ndGggcmVhc29ucworICAgICAgICAgICAgICAgICR0aGlzLT5FbmNvZGluZyA9ICRib2R5RW5jb2Rpbmc7CisgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJHRoaXMtPkVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkdGhpcy0+aXNFcnJvcigpKSB7CisgICAgICAgICAgICAkYm9keSA9ICcnOworICAgICAgICAgICAgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZW1wdHlfbWVzc2FnZScpLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlaWYgKCR0aGlzLT5zaWduX2tleV9maWxlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmICghZGVmaW5lZCgnUEtDUzdfVEVYVCcpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2V4dGVuc2lvbl9taXNzaW5nJykgLiAnb3BlbnNzbCcpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICRmaWxlID0gdGVtcG5hbShzeXNfZ2V0X3RlbXBfZGlyKCksICdzcmNzaWduJyk7CisgICAgICAgICAgICAgICAgJHNpZ25lZCA9IHRlbXBuYW0oc3lzX2dldF90ZW1wX2RpcigpLCAnbWFpbHNpZ24nKTsKKyAgICAgICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJGJvZHkpOworCisgICAgICAgICAgICAgICAgLy9Xb3JrYXJvdW5kIGZvciBQSFAgYnVnIGh0dHBzOi8vYnVncy5waHAubmV0L2J1Zy5waHA/aWQ9NjkxOTcKKyAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPnNpZ25fZXh0cmFjZXJ0c19maWxlKSkgeworICAgICAgICAgICAgICAgICAgICAkc2lnbiA9IEBvcGVuc3NsX3BrY3M3X3NpZ24oCisgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICRzaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZTovLycgLiByZWFscGF0aCgkdGhpcy0+c2lnbl9jZXJ0X2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgWydmaWxlOi8vJyAuIHJlYWxwYXRoKCR0aGlzLT5zaWduX2tleV9maWxlKSwgJHRoaXMtPnNpZ25fa2V5X3Bhc3NdLAorICAgICAgICAgICAgICAgICAgICAgICAgW10KKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkc2lnbiA9IEBvcGVuc3NsX3BrY3M3X3NpZ24oCisgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICRzaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZTovLycgLiByZWFscGF0aCgkdGhpcy0+c2lnbl9jZXJ0X2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgWydmaWxlOi8vJyAuIHJlYWxwYXRoKCR0aGlzLT5zaWduX2tleV9maWxlKSwgJHRoaXMtPnNpZ25fa2V5X3Bhc3NdLAorICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICBQS0NTN19ERVRBQ0hFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zaWduX2V4dHJhY2VydHNfZmlsZQorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEB1bmxpbmsoJGZpbGUpOworICAgICAgICAgICAgICAgIGlmICgkc2lnbikgeworICAgICAgICAgICAgICAgICAgICAkYm9keSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRzaWduZWQpOworICAgICAgICAgICAgICAgICAgICBAdW5saW5rKCRzaWduZWQpOworICAgICAgICAgICAgICAgICAgICAvL1RoZSBtZXNzYWdlIHJldHVybmVkIGJ5IG9wZW5zc2wgY29udGFpbnMgYm90aCBoZWFkZXJzIGFuZCBib2R5LCBzbyBuZWVkIHRvIHNwbGl0IHRoZW0gdXAKKyAgICAgICAgICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgiXG5cbiIsICRib2R5LCAyKTsKKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1JTUVIZWFkZXIgLj0gJHBhcnRzWzBdIC4gc3RhdGljOjokTEUgLiBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICAgICAgJGJvZHkgPSAkcGFydHNbMV07CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQHVubGluaygkc2lnbmVkKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnc2lnbmluZycpIC4gb3BlbnNzbF9lcnJvcl9zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsKKyAgICAgICAgICAgICAgICAkYm9keSA9ICcnOworICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyAkZXhjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkYm9keTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIGEgbWVzc2FnZSBib3VuZGFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvdW5kYXJ5CisgICAgICogQHBhcmFtIHN0cmluZyAkY2hhclNldAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbnRlbnRUeXBlCisgICAgICogQHBhcmFtIHN0cmluZyAkZW5jb2RpbmcKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEJvdW5kYXJ5KCRib3VuZGFyeSwgJGNoYXJTZXQsICRjb250ZW50VHlwZSwgJGVuY29kaW5nKQorICAgIHsKKyAgICAgICAgJHJlc3VsdCA9ICcnOworICAgICAgICBpZiAoJycgPT09ICRjaGFyU2V0KSB7CisgICAgICAgICAgICAkY2hhclNldCA9ICR0aGlzLT5DaGFyU2V0OworICAgICAgICB9CisgICAgICAgIGlmICgnJyA9PT0gJGNvbnRlbnRUeXBlKSB7CisgICAgICAgICAgICAkY29udGVudFR5cGUgPSAkdGhpcy0+Q29udGVudFR5cGU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCcnID09PSAkZW5jb2RpbmcpIHsKKyAgICAgICAgICAgICRlbmNvZGluZyA9ICR0aGlzLT5FbmNvZGluZzsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT50ZXh0TGluZSgnLS0nIC4gJGJvdW5kYXJ5KTsKKyAgICAgICAgJHJlc3VsdCAuPSBzcHJpbnRmKCdDb250ZW50LVR5cGU6ICVzOyBjaGFyc2V0PSVzJywgJGNvbnRlbnRUeXBlLCAkY2hhclNldCk7CisgICAgICAgICRyZXN1bHQgLj0gc3RhdGljOjokTEU7CisgICAgICAgIC8vIFJGQzEzNDEgcGFydCA1IHNheXMgN2JpdCBpcyBhc3N1bWVkIGlmIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgaWYgKHN0YXRpYzo6RU5DT0RJTkdfN0JJVCAhPT0gJGVuY29kaW5nKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nJywgJGVuY29kaW5nKTsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49IHN0YXRpYzo6JExFOworCisgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZW5kIG9mIGEgbWVzc2FnZSBib3VuZGFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvdW5kYXJ5CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBlbmRCb3VuZGFyeSgkYm91bmRhcnkpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljOjokTEUgLiAnLS0nIC4gJGJvdW5kYXJ5IC4gJy0tJyAuIHN0YXRpYzo6JExFOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbWVzc2FnZSB0eXBlLgorICAgICAqIFBIUE1haWxlciBvbmx5IHN1cHBvcnRzIHNvbWUgcHJlc2V0IG1lc3NhZ2UgdHlwZXMsIG5vdCBhcmJpdHJhcnkgTUlNRSBzdHJ1Y3R1cmVzLgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRNZXNzYWdlVHlwZSgpCisgICAgeworICAgICAgICAkdHlwZSA9IFtdOworICAgICAgICBpZiAoJHRoaXMtPmFsdGVybmF0aXZlRXhpc3RzKCkpIHsKKyAgICAgICAgICAgICR0eXBlW10gPSAnYWx0JzsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHRoaXMtPmlubGluZUltYWdlRXhpc3RzKCkpIHsKKyAgICAgICAgICAgICR0eXBlW10gPSAnaW5saW5lJzsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHRoaXMtPmF0dGFjaG1lbnRFeGlzdHMoKSkgeworICAgICAgICAgICAgJHR5cGVbXSA9ICdhdHRhY2gnOworICAgICAgICB9CisgICAgICAgICR0aGlzLT5tZXNzYWdlX3R5cGUgPSBpbXBsb2RlKCdfJywgJHR5cGUpOworICAgICAgICBpZiAoJycgPT09ICR0aGlzLT5tZXNzYWdlX3R5cGUpIHsKKyAgICAgICAgICAgIC8vVGhlICdwbGFpbicgbWVzc2FnZV90eXBlIHJlZmVycyB0byB0aGUgbWVzc2FnZSBoYXZpbmcgYSBzaW5nbGUgYm9keSBlbGVtZW50LCBub3QgdGhhdCBpdCBpcyBwbGFpbi10ZXh0CisgICAgICAgICAgICAkdGhpcy0+bWVzc2FnZV90eXBlID0gJ3BsYWluJzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIGhlYWRlciBsaW5lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgJG5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nfGludCAkdmFsdWUKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGhlYWRlckxpbmUoJG5hbWUsICR2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkbmFtZSAuICc6ICcgLiAkdmFsdWUgLiBzdGF0aWM6OiRMRTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBmb3JtYXR0ZWQgbWFpbCBsaW5lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkdmFsdWUKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRleHRMaW5lKCR2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiAkdmFsdWUgLiBzdGF0aWM6OiRMRTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYW4gYXR0YWNobWVudCBmcm9tIGEgcGF0aCBvbiB0aGUgZmlsZXN5c3RlbS4KKyAgICAgKiBOZXZlciB1c2UgYSB1c2VyLXN1cHBsaWVkIHBhdGggdG8gYSBmaWxlIQorICAgICAqIFJldHVybnMgZmFsc2UgaWYgdGhlIGZpbGUgY291bGQgbm90IGJlIGZvdW5kIG9yIHJlYWQuCisgICAgICogRXhwbGljaXRseSAqZG9lcyBub3QqIHN1cHBvcnQgcGFzc2luZyBVUkxzOyBQSFBNYWlsZXIgaXMgbm90IGFuIEhUVFAgY2xpZW50LgorICAgICAqIElmIHlvdSBuZWVkIHRvIGRvIHRoYXQsIGZldGNoIHRoZSByZXNvdXJjZSB5b3Vyc2VsZiBhbmQgcGFzcyBpdCBpbiB2aWEgYSBsb2NhbCBmaWxlIG9yIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGggICAgICAgIFBhdGggdG8gdGhlIGF0dGFjaG1lbnQKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lICAgICAgICBPdmVycmlkZXMgdGhlIGF0dGFjaG1lbnQgbmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kaW5nICAgIEZpbGUgZW5jb2RpbmcgKHNlZSAkRW5jb2RpbmcpCisgICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgICAgICAgRmlsZSBleHRlbnNpb24gKE1JTUUpIHR5cGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXNwb3NpdGlvbiBEaXNwb3NpdGlvbiB0byB1c2UKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkQXR0YWNobWVudCgKKyAgICAgICAgJHBhdGgsCisgICAgICAgICRuYW1lID0gJycsCisgICAgICAgICRlbmNvZGluZyA9IHNlbGY6OkVOQ09ESU5HX0JBU0U2NCwKKyAgICAgICAgJHR5cGUgPSAnJywKKyAgICAgICAgJGRpc3Bvc2l0aW9uID0gJ2F0dGFjaG1lbnQnCisgICAgKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoIXN0YXRpYzo6aXNQZXJtaXR0ZWRQYXRoKCRwYXRoKSB8fCAhQGlzX2ZpbGUoJHBhdGgpIHx8ICFpc19yZWFkYWJsZSgkcGF0aCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdmaWxlX2FjY2VzcycpIC4gJHBhdGgsIHNlbGY6OlNUT1BfQ09OVElOVUUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiBhIE1JTUUgdHlwZSBpcyBub3Qgc3BlY2lmaWVkLCB0cnkgdG8gd29yayBpdCBvdXQgZnJvbSB0aGUgZmlsZSBuYW1lCisgICAgICAgICAgICBpZiAoJycgPT09ICR0eXBlKSB7CisgICAgICAgICAgICAgICAgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRwYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJGZpbGVuYW1lID0gKHN0cmluZykgc3RhdGljOjptYl9wYXRoaW5mbygkcGF0aCwgUEFUSElORk9fQkFTRU5BTUUpOworICAgICAgICAgICAgaWYgKCcnID09PSAkbmFtZSkgeworICAgICAgICAgICAgICAgICRuYW1lID0gJGZpbGVuYW1lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoISR0aGlzLT52YWxpZGF0ZUVuY29kaW5nKCRlbmNvZGluZykpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdlbmNvZGluZycpIC4gJGVuY29kaW5nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJHRoaXMtPmF0dGFjaG1lbnRbXSA9IFsKKyAgICAgICAgICAgICAgICAwID0+ICRwYXRoLAorICAgICAgICAgICAgICAgIDEgPT4gJGZpbGVuYW1lLAorICAgICAgICAgICAgICAgIDIgPT4gJG5hbWUsCisgICAgICAgICAgICAgICAgMyA9PiAkZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgNCA9PiAkdHlwZSwKKyAgICAgICAgICAgICAgICA1ID0+IGZhbHNlLCAvLyBpc1N0cmluZ0F0dGFjaG1lbnQKKyAgICAgICAgICAgICAgICA2ID0+ICRkaXNwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICA3ID0+ICRuYW1lLAorICAgICAgICAgICAgXTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXhjLT5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgJGV4YzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhcnJheSBvZiBhdHRhY2htZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5hdHRhY2htZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGFjaCBhbGwgZmlsZSwgc3RyaW5nLCBhbmQgYmluYXJ5IGF0dGFjaG1lbnRzIHRvIHRoZSBtZXNzYWdlLgorICAgICAqIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXNwb3NpdGlvbl90eXBlCisgICAgICogQHBhcmFtIHN0cmluZyAkYm91bmRhcnkKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhdHRhY2hBbGwoJGRpc3Bvc2l0aW9uX3R5cGUsICRib3VuZGFyeSkKKyAgICB7CisgICAgICAgIC8vIFJldHVybiB0ZXh0IG9mIGJvZHkKKyAgICAgICAgJG1pbWUgPSBbXTsKKyAgICAgICAgJGNpZFVuaXEgPSBbXTsKKyAgICAgICAgJGluY2wgPSBbXTsKKworICAgICAgICAvLyBBZGQgYWxsIGF0dGFjaG1lbnRzCisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5hdHRhY2htZW50IGFzICRhdHRhY2htZW50KSB7CisgICAgICAgICAgICAvLyBDaGVjayBpZiBpdCBpcyBhIHZhbGlkIGRpc3Bvc2l0aW9uX2ZpbHRlcgorICAgICAgICAgICAgaWYgKCRhdHRhY2htZW50WzZdID09PSAkZGlzcG9zaXRpb25fdHlwZSkgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBzdHJpbmcgYXR0YWNobWVudAorICAgICAgICAgICAgICAgICRzdHJpbmcgPSAnJzsKKyAgICAgICAgICAgICAgICAkcGF0aCA9ICcnOworICAgICAgICAgICAgICAgICRiU3RyaW5nID0gJGF0dGFjaG1lbnRbNV07CisgICAgICAgICAgICAgICAgaWYgKCRiU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICRzdHJpbmcgPSAkYXR0YWNobWVudFswXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkcGF0aCA9ICRhdHRhY2htZW50WzBdOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICRpbmNsaGFzaCA9IGhhc2goJ3NoYTI1NicsIHNlcmlhbGl6ZSgkYXR0YWNobWVudCkpOworICAgICAgICAgICAgICAgIGlmIChpbl9hcnJheSgkaW5jbGhhc2gsICRpbmNsLCB0cnVlKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGluY2xbXSA9ICRpbmNsaGFzaDsKKyAgICAgICAgICAgICAgICAkbmFtZSA9ICRhdHRhY2htZW50WzJdOworICAgICAgICAgICAgICAgICRlbmNvZGluZyA9ICRhdHRhY2htZW50WzNdOworICAgICAgICAgICAgICAgICR0eXBlID0gJGF0dGFjaG1lbnRbNF07CisgICAgICAgICAgICAgICAgJGRpc3Bvc2l0aW9uID0gJGF0dGFjaG1lbnRbNl07CisgICAgICAgICAgICAgICAgJGNpZCA9ICRhdHRhY2htZW50WzddOworICAgICAgICAgICAgICAgIGlmICgnaW5saW5lJyA9PT0gJGRpc3Bvc2l0aW9uICYmIGFycmF5X2tleV9leGlzdHMoJGNpZCwgJGNpZFVuaXEpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkY2lkVW5pcVskY2lkXSA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZignLS0lcyVzJywgJGJvdW5kYXJ5LCBzdGF0aWM6OiRMRSk7CisgICAgICAgICAgICAgICAgLy9Pbmx5IGluY2x1ZGUgYSBmaWxlbmFtZSBwcm9wZXJ0eSBpZiB3ZSBoYXZlIG9uZQorICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJG5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICRtaW1lW10gPSBzcHJpbnRmKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogJXM7IG5hbWU9JXMlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAkdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6cXVvdGVkU3RyaW5nKCR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkbmFtZSkpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6JExFCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9IHNwcmludGYoCisgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlOiAlcyVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljOjokTEUKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUkZDMTM0MSBwYXJ0IDUgc2F5cyA3Yml0IGlzIGFzc3VtZWQgaWYgbm90IHNwZWNpZmllZAorICAgICAgICAgICAgICAgIGlmIChzdGF0aWM6OkVOQ09ESU5HXzdCSVQgIT09ICRlbmNvZGluZykgeworICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZignQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogJXMlcycsICRlbmNvZGluZywgc3RhdGljOjokTEUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vT25seSBzZXQgQ29udGVudC1JRHMgb24gaW5saW5lIGF0dGFjaG1lbnRzCisgICAgICAgICAgICAgICAgaWYgKChzdHJpbmcpICRjaWQgIT09ICcnICYmICRkaXNwb3NpdGlvbiA9PT0gJ2lubGluZScpIHsKKyAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9ICdDb250ZW50LUlEOiA8JyAuICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkY2lkKSkgLiAnPicgLiBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBBbGxvdyBmb3IgYnlwYXNzaW5nIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlcgorICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGRpc3Bvc2l0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICAkZW5jb2RlZF9uYW1lID0gJHRoaXMtPmVuY29kZUhlYWRlcigkdGhpcy0+c2VjdXJlSGVhZGVyKCRuYW1lKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGVuY29kZWRfbmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRtaW1lW10gPSBzcHJpbnRmKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LURpc3Bvc2l0aW9uOiAlczsgZmlsZW5hbWU9JXMlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpc3Bvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6cXVvdGVkU3RyaW5nKCRlbmNvZGVkX25hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6JExFIC4gc3RhdGljOjokTEUKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1EaXNwb3NpdGlvbjogJXMlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpc3Bvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6JExFIC4gc3RhdGljOjokTEUKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRW5jb2RlIGFzIHN0cmluZyBhdHRhY2htZW50CisgICAgICAgICAgICAgICAgaWYgKCRiU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICRtaW1lW10gPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCRzdHJpbmcsICRlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9ICR0aGlzLT5lbmNvZGVGaWxlKCRwYXRoLCAkZW5jb2RpbmcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRtaW1lW10gPSBzdGF0aWM6OiRMRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRtaW1lW10gPSBzcHJpbnRmKCctLSVzLS0lcycsICRib3VuZGFyeSwgc3RhdGljOjokTEUpOworCisgICAgICAgIHJldHVybiBpbXBsb2RlKCcnLCAkbWltZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5jb2RlIGEgZmlsZSBhdHRhY2htZW50IGluIHJlcXVlc3RlZCBmb3JtYXQuCisgICAgICogUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGggICAgIFRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZyBUaGUgZW5jb2RpbmcgdG8gdXNlOyBvbmUgb2YgJ2Jhc2U2NCcsICc3Yml0JywgJzhiaXQnLCAnYmluYXJ5JywgJ3F1b3RlZC1wcmludGFibGUnCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBlbmNvZGVGaWxlKCRwYXRoLCAkZW5jb2RpbmcgPSBzZWxmOjpFTkNPRElOR19CQVNFNjQpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKCFzdGF0aWM6OmlzUGVybWl0dGVkUGF0aCgkcGF0aCkgfHwgIWZpbGVfZXhpc3RzKCRwYXRoKSB8fCAhaXNfcmVhZGFibGUoJHBhdGgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZmlsZV9vcGVuJykgLiAkcGF0aCwgc2VsZjo6U1RPUF9DT05USU5VRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkZmlsZV9idWZmZXIgPSBmaWxlX2dldF9jb250ZW50cygkcGF0aCk7CisgICAgICAgICAgICBpZiAoZmFsc2UgPT09ICRmaWxlX2J1ZmZlcikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2ZpbGVfb3BlbicpIC4gJHBhdGgsIHNlbGY6OlNUT1BfQ09OVElOVUUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJGZpbGVfYnVmZmVyID0gJHRoaXMtPmVuY29kZVN0cmluZygkZmlsZV9idWZmZXIsICRlbmNvZGluZyk7CisKKyAgICAgICAgICAgIHJldHVybiAkZmlsZV9idWZmZXI7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeworICAgICAgICAgICAgICAgIHRocm93ICRleGM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEVuY29kZSBhIHN0cmluZyBpbiByZXF1ZXN0ZWQgZm9ybWF0LgorICAgICAqIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgICAgICBUaGUgdGV4dCB0byBlbmNvZGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZyBUaGUgZW5jb2RpbmcgdG8gdXNlOyBvbmUgb2YgJ2Jhc2U2NCcsICc3Yml0JywgJzhiaXQnLCAnYmluYXJ5JywgJ3F1b3RlZC1wcmludGFibGUnCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZW5jb2RlU3RyaW5nKCRzdHIsICRlbmNvZGluZyA9IHNlbGY6OkVOQ09ESU5HX0JBU0U2NCkKKyAgICB7CisgICAgICAgICRlbmNvZGVkID0gJyc7CisgICAgICAgIHN3aXRjaCAoc3RydG9sb3dlcigkZW5jb2RpbmcpKSB7CisgICAgICAgICAgICBjYXNlIHN0YXRpYzo6RU5DT0RJTkdfQkFTRTY0OgorICAgICAgICAgICAgICAgICRlbmNvZGVkID0gY2h1bmtfc3BsaXQoCisgICAgICAgICAgICAgICAgICAgIGJhc2U2NF9lbmNvZGUoJHN0ciksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6U1REX0xJTkVfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICBzdGF0aWM6OiRMRQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIHN0YXRpYzo6RU5DT0RJTkdfN0JJVDoKKyAgICAgICAgICAgIGNhc2Ugc3RhdGljOjpFTkNPRElOR184QklUOgorICAgICAgICAgICAgICAgICRlbmNvZGVkID0gc3RhdGljOjpub3JtYWxpemVCcmVha3MoJHN0cik7CisgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGl0IGVuZHMgd2l0aCBhIGxpbmUgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiAoc3Vic3RyKCRlbmNvZGVkLCAtKHN0cmxlbihzdGF0aWM6OiRMRSkpKSAhPT0gc3RhdGljOjokTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgJGVuY29kZWQgLj0gc3RhdGljOjokTEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBzdGF0aWM6OkVOQ09ESU5HX0JJTkFSWToKKyAgICAgICAgICAgICAgICAkZW5jb2RlZCA9ICRzdHI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIHN0YXRpYzo6RU5DT0RJTkdfUVVPVEVEX1BSSU5UQUJMRToKKyAgICAgICAgICAgICAgICAkZW5jb2RlZCA9ICR0aGlzLT5lbmNvZGVRUCgkc3RyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCR0aGlzLT5sYW5nKCdlbmNvZGluZycpIC4gJGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZW5jb2RpbmcnKSAuICRlbmNvZGluZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRlbmNvZGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVuY29kZSBhIGhlYWRlciB2YWx1ZSAobm90IGluY2x1ZGluZyBpdHMgbGFiZWwpIG9wdGltYWxseS4KKyAgICAgKiBQaWNrcyBzaG9ydGVzdCBvZiBRLCBCLCBvciBub25lLiBSZXN1bHQgaW5jbHVkZXMgZm9sZGluZyBpZiBuZWVkZWQuCisgICAgICogU2VlIFJGQzgyMiBkZWZpbml0aW9ucyBmb3IgcGhyYXNlLCBjb21tZW50IGFuZCB0ZXh0IHBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgICAgIFRoZSBoZWFkZXIgdmFsdWUgdG8gZW5jb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkcG9zaXRpb24gV2hhdCBjb250ZXh0IHRoZSBzdHJpbmcgd2lsbCBiZSB1c2VkIGluCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVIZWFkZXIoJHN0ciwgJHBvc2l0aW9uID0gJ3RleHQnKQorICAgIHsKKyAgICAgICAgJG1hdGNoY291bnQgPSAwOworICAgICAgICBzd2l0Y2ggKHN0cnRvbG93ZXIoJHBvc2l0aW9uKSkgeworICAgICAgICAgICAgY2FzZSAncGhyYXNlJzoKKyAgICAgICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy9bXDIwMC1cMzc3XS8nLCAkc3RyKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBDYW4ndCB1c2UgYWRkc2xhc2hlcyBhcyB3ZSBkb24ndCBrbm93IHRoZSB2YWx1ZSBvZiBtYWdpY19xdW90ZXNfc3liYXNlCisgICAgICAgICAgICAgICAgICAgICRlbmNvZGVkID0gYWRkY3NsYXNoZXMoJHN0ciwgIlwwLi5cMzdcMTc3XFxcIiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKCRzdHIgPT09ICRlbmNvZGVkKSAmJiAhcHJlZ19tYXRjaCgnL1teQS1aYS16MC05ISMkJSZcJyorXC89P15fYHt8fX4gLV0vJywgJHN0cikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkZW5jb2RlZDsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiXCIkZW5jb2RlZFwiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJG1hdGNoY291bnQgPSBwcmVnX21hdGNoX2FsbCgnL1teXDA0MFwwNDFcMDQzLVwxMzNcMTM1LVwxNzZdLycsICRzdHIsICRtYXRjaGVzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8qIEBub2luc3BlY3Rpb24gUGhwTWlzc2luZ0JyZWFrU3RhdGVtZW50SW5zcGVjdGlvbiAqLworICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6CisgICAgICAgICAgICAgICAgJG1hdGNoY291bnQgPSBwcmVnX21hdGNoX2FsbCgnL1soKSJdLycsICRzdHIsICRtYXRjaGVzKTsKKyAgICAgICAgICAgIC8vZmFsbHRocm91Z2gKKyAgICAgICAgICAgIGNhc2UgJ3RleHQnOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAkbWF0Y2hjb3VudCArPSBwcmVnX21hdGNoX2FsbCgnL1tcMDAwLVwwMTBcMDEzXDAxNFwwMTYtXDAzN1wxNzctXDM3N10vJywgJHN0ciwgJG1hdGNoZXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCR0aGlzLT5oYXM4Yml0Q2hhcnMoJHN0cikpIHsKKyAgICAgICAgICAgICRjaGFyc2V0ID0gJHRoaXMtPkNoYXJTZXQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkY2hhcnNldCA9IHN0YXRpYzo6Q0hBUlNFVF9BU0NJSTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFEvQiBlbmNvZGluZyBhZGRzIDggY2hhcnMgYW5kIHRoZSBjaGFyc2V0ICgiYCA9PzxjaGFyc2V0Pj9bUUJdPzxjb250ZW50Pj89YCIpLgorICAgICAgICAkb3ZlcmhlYWQgPSA4ICsgc3RybGVuKCRjaGFyc2V0KTsKKworICAgICAgICBpZiAoJ21haWwnID09PSAkdGhpcy0+TWFpbGVyKSB7CisgICAgICAgICAgICAkbWF4bGVuID0gc3RhdGljOjpNQUlMX01BWF9MSU5FX0xFTkdUSCAtICRvdmVyaGVhZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRtYXhsZW4gPSBzdGF0aWM6Ok1BWF9MSU5FX0xFTkdUSCAtICRvdmVyaGVhZDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlbGVjdCB0aGUgZW5jb2RpbmcgdGhhdCBwcm9kdWNlcyB0aGUgc2hvcnRlc3Qgb3V0cHV0IGFuZC9vciBwcmV2ZW50cyBjb3JydXB0aW9uLgorICAgICAgICBpZiAoJG1hdGNoY291bnQgPiBzdHJsZW4oJHN0cikgLyAzKSB7CisgICAgICAgICAgICAvLyBNb3JlIHRoYW4gMS8zIG9mIHRoZSBjb250ZW50IG5lZWRzIGVuY29kaW5nLCB1c2UgQi1lbmNvZGUuCisgICAgICAgICAgICAkZW5jb2RpbmcgPSAnQic7CisgICAgICAgIH0gZWxzZWlmICgkbWF0Y2hjb3VudCA+IDApIHsKKyAgICAgICAgICAgIC8vIExlc3MgdGhhbiAxLzMgb2YgdGhlIGNvbnRlbnQgbmVlZHMgZW5jb2RpbmcsIHVzZSBRLWVuY29kZS4KKyAgICAgICAgICAgICRlbmNvZGluZyA9ICdRJzsKKyAgICAgICAgfSBlbHNlaWYgKHN0cmxlbigkc3RyKSA+ICRtYXhsZW4pIHsKKyAgICAgICAgICAgIC8vIE5vIGVuY29kaW5nIG5lZWRlZCwgYnV0IHZhbHVlIGV4Y2VlZHMgbWF4IGxpbmUgbGVuZ3RoLCB1c2UgUS1lbmNvZGUgdG8gcHJldmVudCBjb3JydXB0aW9uLgorICAgICAgICAgICAgJGVuY29kaW5nID0gJ1EnOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm8gcmVmb3JtYXR0aW5nIG5lZWRlZAorICAgICAgICAgICAgJGVuY29kaW5nID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKCRlbmNvZGluZykgeworICAgICAgICAgICAgY2FzZSAnQic6CisgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5oYXNNdWx0aUJ5dGVzKCRzdHIpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBhIGN1c3RvbSBmdW5jdGlvbiB3aGljaCBjb3JyZWN0bHkgZW5jb2RlcyBhbmQgd3JhcHMgbG9uZworICAgICAgICAgICAgICAgICAgICAvLyBtdWx0aWJ5dGUgc3RyaW5ncyB3aXRob3V0IGJyZWFraW5nIGxpbmVzIHdpdGhpbiBhIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAkZW5jb2RlZCA9ICR0aGlzLT5iYXNlNjRFbmNvZGVXcmFwTUIoJHN0ciwgIlxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJGVuY29kZWQgPSBiYXNlNjRfZW5jb2RlKCRzdHIpOworICAgICAgICAgICAgICAgICAgICAkbWF4bGVuIC09ICRtYXhsZW4gJSA0OworICAgICAgICAgICAgICAgICAgICAkZW5jb2RlZCA9IHRyaW0oY2h1bmtfc3BsaXQoJGVuY29kZWQsICRtYXhsZW4sICJcbiIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGVuY29kZWQgPSBwcmVnX3JlcGxhY2UoJy9eKC4qKSQvbScsICcgPT8nIC4gJGNoYXJzZXQgLiAiPyRlbmNvZGluZz9cXDE/PSIsICRlbmNvZGVkKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ1EnOgorICAgICAgICAgICAgICAgICRlbmNvZGVkID0gJHRoaXMtPmVuY29kZVEoJHN0ciwgJHBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICAkZW5jb2RlZCA9ICR0aGlzLT53cmFwVGV4dCgkZW5jb2RlZCwgJG1heGxlbiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgJGVuY29kZWQgPSBzdHJfcmVwbGFjZSgnPScgLiBzdGF0aWM6OiRMRSwgIlxuIiwgdHJpbSgkZW5jb2RlZCkpOworICAgICAgICAgICAgICAgICRlbmNvZGVkID0gcHJlZ19yZXBsYWNlKCcvXiguKikkL20nLCAnID0/JyAuICRjaGFyc2V0IC4gIj8kZW5jb2Rpbmc/XFwxPz0iLCAkZW5jb2RlZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiAkc3RyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRyaW0oc3RhdGljOjpub3JtYWxpemVCcmVha3MoJGVuY29kZWQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiBhIHN0cmluZyBjb250YWlucyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgbXVsdGktYnl0ZSB0ZXh0IHRvIHdyYXAgZW5jb2RlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFzTXVsdGlCeXRlcygkc3RyKQorICAgIHsKKyAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWJfc3RybGVuJykpIHsKKyAgICAgICAgICAgIHJldHVybiBzdHJsZW4oJHN0cikgPiBtYl9zdHJsZW4oJHN0ciwgJHRoaXMtPkNoYXJTZXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQXNzdW1lIG5vIG11bHRpYnl0ZXMgKHdlIGNhbid0IGhhbmRsZSB3aXRob3V0IG1ic3RyaW5nIGZ1bmN0aW9ucyBhbnl3YXkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEb2VzIGEgc3RyaW5nIGNvbnRhaW4gYW55IDgtYml0IGNoYXJzIChpbiBhbnkgY2hhcnNldCk/CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICR0ZXh0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGFzOGJpdENoYXJzKCR0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIChib29sKSBwcmVnX21hdGNoKCcvW1x4ODAtXHhGRl0vJywgJHRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVuY29kZSBhbmQgd3JhcCBsb25nIG11bHRpYnl0ZSBzdHJpbmdzIGZvciBtYWlsIGhlYWRlcnMKKyAgICAgKiB3aXRob3V0IGJyZWFraW5nIGxpbmVzIHdpdGhpbiBhIGNoYXJhY3Rlci4KKyAgICAgKiBBZGFwdGVkIGZyb20gYSBmdW5jdGlvbiBieSBwYXJhdm9pZC4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5tYi1lbmNvZGUtbWltZWhlYWRlci5waHAjNjAyODMKKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgICAgICBtdWx0aS1ieXRlIHRleHQgdG8gd3JhcCBlbmNvZGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRsaW5lYnJlYWsgc3RyaW5nIHRvIHVzZSBhcyBsaW5lZmVlZC9lbmQtb2YtbGluZQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYmFzZTY0RW5jb2RlV3JhcE1CKCRzdHIsICRsaW5lYnJlYWsgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHN0YXJ0ID0gJz0/JyAuICR0aGlzLT5DaGFyU2V0IC4gJz9CPyc7CisgICAgICAgICRlbmQgPSAnPz0nOworICAgICAgICAkZW5jb2RlZCA9ICcnOworICAgICAgICBpZiAobnVsbCA9PT0gJGxpbmVicmVhaykgeworICAgICAgICAgICAgJGxpbmVicmVhayA9IHN0YXRpYzo6JExFOworICAgICAgICB9CisKKyAgICAgICAgJG1iX2xlbmd0aCA9IG1iX3N0cmxlbigkc3RyLCAkdGhpcy0+Q2hhclNldCk7CisgICAgICAgIC8vIEVhY2ggbGluZSBtdXN0IGhhdmUgbGVuZ3RoIDw9IDc1LCBpbmNsdWRpbmcgJHN0YXJ0IGFuZCAkZW5kCisgICAgICAgICRsZW5ndGggPSA3NSAtIHN0cmxlbigkc3RhcnQpIC0gc3RybGVuKCRlbmQpOworICAgICAgICAvLyBBdmVyYWdlIG11bHRpLWJ5dGUgcmF0aW8KKyAgICAgICAgJHJhdGlvID0gJG1iX2xlbmd0aCAvIHN0cmxlbigkc3RyKTsKKyAgICAgICAgLy8gQmFzZTY0IGhhcyBhIDQ6MyByYXRpbworICAgICAgICAkYXZnTGVuZ3RoID0gZmxvb3IoJGxlbmd0aCAqICRyYXRpbyAqIC43NSk7CisKKyAgICAgICAgJG9mZnNldCA9IDA7CisgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRtYl9sZW5ndGg7ICRpICs9ICRvZmZzZXQpIHsKKyAgICAgICAgICAgICRsb29rQmFjayA9IDA7CisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgJG9mZnNldCA9ICRhdmdMZW5ndGggLSAkbG9va0JhY2s7CisgICAgICAgICAgICAgICAgJGNodW5rID0gbWJfc3Vic3RyKCRzdHIsICRpLCAkb2Zmc2V0LCAkdGhpcy0+Q2hhclNldCk7CisgICAgICAgICAgICAgICAgJGNodW5rID0gYmFzZTY0X2VuY29kZSgkY2h1bmspOworICAgICAgICAgICAgICAgICsrJGxvb2tCYWNrOworICAgICAgICAgICAgfSB3aGlsZSAoc3RybGVuKCRjaHVuaykgPiAkbGVuZ3RoKTsKKyAgICAgICAgICAgICRlbmNvZGVkIC49ICRjaHVuayAuICRsaW5lYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaG9tcCB0aGUgbGFzdCBsaW5lZmVlZAorICAgICAgICByZXR1cm4gc3Vic3RyKCRlbmNvZGVkLCAwLCAtc3RybGVuKCRsaW5lYnJlYWspKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYSBzdHJpbmcgaW4gcXVvdGVkLXByaW50YWJsZSBmb3JtYXQuCisgICAgICogQWNjb3JkaW5nIHRvIFJGQzIwNDUgc2VjdGlvbiA2LjcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgVGhlIHRleHQgdG8gZW5jb2RlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVRUCgkc3RyaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpYzo6bm9ybWFsaXplQnJlYWtzKHF1b3RlZF9wcmludGFibGVfZW5jb2RlKCRzdHJpbmcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYSBzdHJpbmcgdXNpbmcgUSBlbmNvZGluZy4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjA0NyNzZWN0aW9uLTQuMgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc3RyICAgICAgdGhlIHRleHQgdG8gZW5jb2RlCisgICAgICogQHBhcmFtIHN0cmluZyAkcG9zaXRpb24gV2hlcmUgdGhlIHRleHQgaXMgZ29pbmcgdG8gYmUgdXNlZCwgc2VlIHRoZSBSRkMgZm9yIHdoYXQgdGhhdCBtZWFucworICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZW5jb2RlUSgkc3RyLCAkcG9zaXRpb24gPSAndGV4dCcpCisgICAgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgbm90IGJlIGFueSBFT0wgaW4gdGhlIHN0cmluZworICAgICAgICAkcGF0dGVybiA9ICcnOworICAgICAgICAkZW5jb2RlZCA9IHN0cl9yZXBsYWNlKFsiXHIiLCAiXG4iXSwgJycsICRzdHIpOworICAgICAgICBzd2l0Y2ggKHN0cnRvbG93ZXIoJHBvc2l0aW9uKSkgeworICAgICAgICAgICAgY2FzZSAncGhyYXNlJzoKKyAgICAgICAgICAgICAgICAvLyBSRkMgMjA0NyBzZWN0aW9uIDUuMworICAgICAgICAgICAgICAgICRwYXR0ZXJuID0gJ15BLVphLXowLTkhKitcLyAtJzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBSRkMgMjA0NyBzZWN0aW9uIDUuMi4KKyAgICAgICAgICAgICAqIEJ1aWxkICRwYXR0ZXJuIHdpdGhvdXQgaW5jbHVkaW5nIGRlbGltaXRlcnMgYW5kIFtdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qIEBub2luc3BlY3Rpb24gUGhwTWlzc2luZ0JyZWFrU3RhdGVtZW50SW5zcGVjdGlvbiAqLworICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6CisgICAgICAgICAgICAgICAgJHBhdHRlcm4gPSAnXChcKSInOworICAgICAgICAgICAgLyogSW50ZW50aW9uYWwgZmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICBjYXNlICd0ZXh0JzoKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8gUkZDIDIwNDcgc2VjdGlvbiA1LjEKKyAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIGV2ZXJ5IGhpZ2ggYXNjaWksIGNvbnRyb2wsID0sID8gYW5kIF8gY2hhcmFjdGVycworICAgICAgICAgICAgICAgICRwYXR0ZXJuID0gJ1wwMDAtXDAxMVwwMTNcMDE0XDAxNi1cMDM3XDA3NVwwNzdcMTM3XDE3Ny1cMzc3JyAuICRwYXR0ZXJuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICRtYXRjaGVzID0gW107CisgICAgICAgIGlmIChwcmVnX21hdGNoX2FsbCgiL1t7JHBhdHRlcm59XS8iLCAkZW5jb2RlZCwgJG1hdGNoZXMpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGFuICc9JywgbWFrZSBzdXJlIGl0J3MgdGhlIGZpcnN0IHRoaW5nIHdlIHJlcGxhY2UKKyAgICAgICAgICAgIC8vIHNvIGFzIHRvIGF2b2lkIGRvdWJsZS1lbmNvZGluZworICAgICAgICAgICAgJGVxa2V5ID0gYXJyYXlfc2VhcmNoKCc9JywgJG1hdGNoZXNbMF0sIHRydWUpOworICAgICAgICAgICAgaWYgKGZhbHNlICE9PSAkZXFrZXkpIHsKKyAgICAgICAgICAgICAgICB1bnNldCgkbWF0Y2hlc1swXVskZXFrZXldKTsKKyAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRtYXRjaGVzWzBdLCAnPScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yZWFjaCAoYXJyYXlfdW5pcXVlKCRtYXRjaGVzWzBdKSBhcyAkY2hhcikgeworICAgICAgICAgICAgICAgICRlbmNvZGVkID0gc3RyX3JlcGxhY2UoJGNoYXIsICc9JyAuIHNwcmludGYoJyUwMlgnLCBvcmQoJGNoYXIpKSwgJGVuY29kZWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFJlcGxhY2Ugc3BhY2VzIHdpdGggXyAobW9yZSByZWFkYWJsZSB0aGFuID0yMCkKKyAgICAgICAgLy8gUkZDIDIwNDcgc2VjdGlvbiA0LjIoMikKKyAgICAgICAgcmV0dXJuIHN0cl9yZXBsYWNlKCcgJywgJ18nLCAkZW5jb2RlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgc3RyaW5nIG9yIGJpbmFyeSBhdHRhY2htZW50IChub24tZmlsZXN5c3RlbSkuCisgICAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gYXR0YWNoIGFzY2lpIG9yIGJpbmFyeSBkYXRhLAorICAgICAqIHN1Y2ggYXMgYSBCTE9CIHJlY29yZCBmcm9tIGEgZGF0YWJhc2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgICAgICBTdHJpbmcgYXR0YWNobWVudCBkYXRhCisgICAgICogQHBhcmFtIHN0cmluZyAkZmlsZW5hbWUgICAgTmFtZSBvZiB0aGUgYXR0YWNobWVudAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kaW5nICAgIEZpbGUgZW5jb2RpbmcgKHNlZSAkRW5jb2RpbmcpCisgICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgICAgICAgRmlsZSBleHRlbnNpb24gKE1JTUUpIHR5cGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXNwb3NpdGlvbiBEaXNwb3NpdGlvbiB0byB1c2UKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBvbiBzdWNjZXNzZnVsbHkgYWRkaW5nIGFuIGF0dGFjaG1lbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gYWRkU3RyaW5nQXR0YWNobWVudCgKKyAgICAgICAgJHN0cmluZywKKyAgICAgICAgJGZpbGVuYW1lLAorICAgICAgICAkZW5jb2RpbmcgPSBzZWxmOjpFTkNPRElOR19CQVNFNjQsCisgICAgICAgICR0eXBlID0gJycsCisgICAgICAgICRkaXNwb3NpdGlvbiA9ICdhdHRhY2htZW50JworICAgICkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gSWYgYSBNSU1FIHR5cGUgaXMgbm90IHNwZWNpZmllZCwgdHJ5IHRvIHdvcmsgaXQgb3V0IGZyb20gdGhlIGZpbGUgbmFtZQorICAgICAgICAgICAgaWYgKCcnID09PSAkdHlwZSkgeworICAgICAgICAgICAgICAgICR0eXBlID0gc3RhdGljOjpmaWxlbmFtZVRvVHlwZSgkZmlsZW5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoISR0aGlzLT52YWxpZGF0ZUVuY29kaW5nKCRlbmNvZGluZykpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdlbmNvZGluZycpIC4gJGVuY29kaW5nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXBwZW5kIHRvICRhdHRhY2htZW50IGFycmF5CisgICAgICAgICAgICAkdGhpcy0+YXR0YWNobWVudFtdID0gWworICAgICAgICAgICAgICAgIDAgPT4gJHN0cmluZywKKyAgICAgICAgICAgICAgICAxID0+ICRmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAyID0+IHN0YXRpYzo6bWJfcGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19CQVNFTkFNRSksCisgICAgICAgICAgICAgICAgMyA9PiAkZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgNCA9PiAkdHlwZSwKKyAgICAgICAgICAgICAgICA1ID0+IHRydWUsIC8vIGlzU3RyaW5nQXR0YWNobWVudAorICAgICAgICAgICAgICAgIDYgPT4gJGRpc3Bvc2l0aW9uLAorICAgICAgICAgICAgICAgIDcgPT4gMCwKKyAgICAgICAgICAgIF07CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeworICAgICAgICAgICAgICAgIHRocm93ICRleGM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhbiBlbWJlZGRlZCAoaW5saW5lKSBhdHRhY2htZW50IGZyb20gYSBmaWxlLgorICAgICAqIFRoaXMgY2FuIGluY2x1ZGUgaW1hZ2VzLCBzb3VuZHMsIGFuZCBqdXN0IGFib3V0IGFueSBvdGhlciBkb2N1bWVudCB0eXBlLgorICAgICAqIFRoZXNlIGRpZmZlciBmcm9tICdyZWd1bGFyJyBhdHRhY2htZW50cyBpbiB0aGF0IHRoZXkgYXJlIGludGVuZGVkIHRvIGJlCisgICAgICogZGlzcGxheWVkIGlubGluZSB3aXRoIHRoZSBtZXNzYWdlLCBub3QganVzdCBhdHRhY2hlZCBmb3IgZG93bmxvYWQuCisgICAgICogVGhpcyBpcyB1c2VkIGluIEhUTUwgbWVzc2FnZXMgdGhhdCBlbWJlZCB0aGUgaW1hZ2VzCisgICAgICogdGhlIEhUTUwgcmVmZXJzIHRvIHVzaW5nIHRoZSAkY2lkIHZhbHVlLgorICAgICAqIE5ldmVyIHVzZSBhIHVzZXItc3VwcGxpZWQgcGF0aCB0byBhIGZpbGUhCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoICAgICAgICBQYXRoIHRvIHRoZSBhdHRhY2htZW50CisgICAgICogQHBhcmFtIHN0cmluZyAkY2lkICAgICAgICAgQ29udGVudCBJRCBvZiB0aGUgYXR0YWNobWVudDsgVXNlIHRoaXMgdG8gcmVmZXJlbmNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbnRlbnQgd2hlbiB1c2luZyBhbiBlbWJlZGRlZCBpbWFnZSBpbiBIVE1MCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSAgICAgICAgT3ZlcnJpZGVzIHRoZSBhdHRhY2htZW50IG5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZyAgICBGaWxlIGVuY29kaW5nIChzZWUgJEVuY29kaW5nKQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgICAgICAgIEZpbGUgTUlNRSB0eXBlCisgICAgICogQHBhcmFtIHN0cmluZyAkZGlzcG9zaXRpb24gRGlzcG9zaXRpb24gdG8gdXNlCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBib29sIFRydWUgb24gc3VjY2Vzc2Z1bGx5IGFkZGluZyBhbiBhdHRhY2htZW50CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZEVtYmVkZGVkSW1hZ2UoCisgICAgICAgICRwYXRoLAorICAgICAgICAkY2lkLAorICAgICAgICAkbmFtZSA9ICcnLAorICAgICAgICAkZW5jb2RpbmcgPSBzZWxmOjpFTkNPRElOR19CQVNFNjQsCisgICAgICAgICR0eXBlID0gJycsCisgICAgICAgICRkaXNwb3NpdGlvbiA9ICdpbmxpbmUnCisgICAgKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoIXN0YXRpYzo6aXNQZXJtaXR0ZWRQYXRoKCRwYXRoKSB8fCAhQGlzX2ZpbGUoJHBhdGgpIHx8ICFpc19yZWFkYWJsZSgkcGF0aCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdmaWxlX2FjY2VzcycpIC4gJHBhdGgsIHNlbGY6OlNUT1BfQ09OVElOVUUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiBhIE1JTUUgdHlwZSBpcyBub3Qgc3BlY2lmaWVkLCB0cnkgdG8gd29yayBpdCBvdXQgZnJvbSB0aGUgZmlsZSBuYW1lCisgICAgICAgICAgICBpZiAoJycgPT09ICR0eXBlKSB7CisgICAgICAgICAgICAgICAgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRwYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCEkdGhpcy0+dmFsaWRhdGVFbmNvZGluZygkZW5jb2RpbmcpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZW5jb2RpbmcnKSAuICRlbmNvZGluZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICRmaWxlbmFtZSA9IChzdHJpbmcpIHN0YXRpYzo6bWJfcGF0aGluZm8oJHBhdGgsIFBBVEhJTkZPX0JBU0VOQU1FKTsKKyAgICAgICAgICAgIGlmICgnJyA9PT0gJG5hbWUpIHsKKyAgICAgICAgICAgICAgICAkbmFtZSA9ICRmaWxlbmFtZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQXBwZW5kIHRvICRhdHRhY2htZW50IGFycmF5CisgICAgICAgICAgICAkdGhpcy0+YXR0YWNobWVudFtdID0gWworICAgICAgICAgICAgICAgIDAgPT4gJHBhdGgsCisgICAgICAgICAgICAgICAgMSA9PiAkZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgMiA9PiAkbmFtZSwKKyAgICAgICAgICAgICAgICAzID0+ICRlbmNvZGluZywKKyAgICAgICAgICAgICAgICA0ID0+ICR0eXBlLAorICAgICAgICAgICAgICAgIDUgPT4gZmFsc2UsIC8vIGlzU3RyaW5nQXR0YWNobWVudAorICAgICAgICAgICAgICAgIDYgPT4gJGRpc3Bvc2l0aW9uLAorICAgICAgICAgICAgICAgIDcgPT4gJGNpZCwKKyAgICAgICAgICAgIF07CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeworICAgICAgICAgICAgICAgIHRocm93ICRleGM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhbiBlbWJlZGRlZCBzdHJpbmdpZmllZCBhdHRhY2htZW50LgorICAgICAqIFRoaXMgY2FuIGluY2x1ZGUgaW1hZ2VzLCBzb3VuZHMsIGFuZCBqdXN0IGFib3V0IGFueSBvdGhlciBkb2N1bWVudCB0eXBlLgorICAgICAqIElmIHlvdXIgZmlsZW5hbWUgZG9lc24ndCBjb250YWluIGFuIGV4dGVuc2lvbiwgYmUgc3VyZSB0byBzZXQgdGhlICR0eXBlIHRvIGFuIGFwcHJvcHJpYXRlIE1JTUUgdHlwZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0cmluZyAgICAgIFRoZSBhdHRhY2htZW50IGJpbmFyeSBkYXRhCisgICAgICogQHBhcmFtIHN0cmluZyAkY2lkICAgICAgICAgQ29udGVudCBJRCBvZiB0aGUgYXR0YWNobWVudDsgVXNlIHRoaXMgdG8gcmVmZXJlbmNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbnRlbnQgd2hlbiB1c2luZyBhbiBlbWJlZGRlZCBpbWFnZSBpbiBIVE1MCisgICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSAgICAgICAgQSBmaWxlbmFtZSBmb3IgdGhlIGF0dGFjaG1lbnQuIElmIHRoaXMgY29udGFpbnMgYW4gZXh0ZW5zaW9uLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIUE1haWxlciB3aWxsIGF0dGVtcHQgdG8gc2V0IGEgTUlNRSB0eXBlIGZvciB0aGUgYXR0YWNobWVudC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSAnZmlsZS5qcGcnIHdvdWxkIGdldCBhbiAnaW1hZ2UvanBlZycgTUlNRSB0eXBlLgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kaW5nICAgIEZpbGUgZW5jb2RpbmcgKHNlZSAkRW5jb2RpbmcpLCBkZWZhdWx0cyB0byAnYmFzZTY0JworICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgICAgICAgIE1JTUUgdHlwZSAtIHdpbGwgYmUgdXNlZCBpbiBwcmVmZXJlbmNlIHRvIGFueSBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgdHlwZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGRpc3Bvc2l0aW9uIERpc3Bvc2l0aW9uIHRvIHVzZQorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbCBUcnVlIG9uIHN1Y2Nlc3NmdWxseSBhZGRpbmcgYW4gYXR0YWNobWVudAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRTdHJpbmdFbWJlZGRlZEltYWdlKAorICAgICAgICAkc3RyaW5nLAorICAgICAgICAkY2lkLAorICAgICAgICAkbmFtZSA9ICcnLAorICAgICAgICAkZW5jb2RpbmcgPSBzZWxmOjpFTkNPRElOR19CQVNFNjQsCisgICAgICAgICR0eXBlID0gJycsCisgICAgICAgICRkaXNwb3NpdGlvbiA9ICdpbmxpbmUnCisgICAgKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBJZiBhIE1JTUUgdHlwZSBpcyBub3Qgc3BlY2lmaWVkLCB0cnkgdG8gd29yayBpdCBvdXQgZnJvbSB0aGUgbmFtZQorICAgICAgICAgICAgaWYgKCcnID09PSAkdHlwZSAmJiAhZW1wdHkoJG5hbWUpKSB7CisgICAgICAgICAgICAgICAgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRuYW1lKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCEkdGhpcy0+dmFsaWRhdGVFbmNvZGluZygkZW5jb2RpbmcpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZW5jb2RpbmcnKSAuICRlbmNvZGluZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFwcGVuZCB0byAkYXR0YWNobWVudCBhcnJheQorICAgICAgICAgICAgJHRoaXMtPmF0dGFjaG1lbnRbXSA9IFsKKyAgICAgICAgICAgICAgICAwID0+ICRzdHJpbmcsCisgICAgICAgICAgICAgICAgMSA9PiAkbmFtZSwKKyAgICAgICAgICAgICAgICAyID0+ICRuYW1lLAorICAgICAgICAgICAgICAgIDMgPT4gJGVuY29kaW5nLAorICAgICAgICAgICAgICAgIDQgPT4gJHR5cGUsCisgICAgICAgICAgICAgICAgNSA9PiB0cnVlLCAvLyBpc1N0cmluZ0F0dGFjaG1lbnQKKyAgICAgICAgICAgICAgICA2ID0+ICRkaXNwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICA3ID0+ICRjaWQsCisgICAgICAgICAgICBdOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gJGV4YykgeworICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRleGMtPmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKCRleGMtPmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyAkZXhjOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWYWxpZGF0ZSBlbmNvZGluZ3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZworICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlRW5jb2RpbmcoJGVuY29kaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGluX2FycmF5KAorICAgICAgICAgICAgJGVuY29kaW5nLAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIHNlbGY6OkVOQ09ESU5HXzdCSVQsCisgICAgICAgICAgICAgICAgc2VsZjo6RU5DT0RJTkdfUVVPVEVEX1BSSU5UQUJMRSwKKyAgICAgICAgICAgICAgICBzZWxmOjpFTkNPRElOR19CQVNFNjQsCisgICAgICAgICAgICAgICAgc2VsZjo6RU5DT0RJTkdfOEJJVCwKKyAgICAgICAgICAgICAgICBzZWxmOjpFTkNPRElOR19CSU5BUlksCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgdHJ1ZQorICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIGFuIGVtYmVkZGVkIGF0dGFjaG1lbnQgaXMgcHJlc2VudCB3aXRoIHRoaXMgY2lkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkY2lkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2lkRXhpc3RzKCRjaWQpCisgICAgeworICAgICAgICBmb3JlYWNoICgkdGhpcy0+YXR0YWNobWVudCBhcyAkYXR0YWNobWVudCkgeworICAgICAgICAgICAgaWYgKCdpbmxpbmUnID09PSAkYXR0YWNobWVudFs2XSAmJiAkY2lkID09PSAkYXR0YWNobWVudFs3XSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIGFuIGlubGluZSBhdHRhY2htZW50IGlzIHByZXNlbnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaW5saW5lSW1hZ2VFeGlzdHMoKQorICAgIHsKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmF0dGFjaG1lbnQgYXMgJGF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAgIGlmICgnaW5saW5lJyA9PT0gJGF0dGFjaG1lbnRbNl0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiBhbiBhdHRhY2htZW50IChub24taW5saW5lKSBpcyBwcmVzZW50LgorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGF0dGFjaG1lbnRFeGlzdHMoKQorICAgIHsKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmF0dGFjaG1lbnQgYXMgJGF0dGFjaG1lbnQpIHsKKyAgICAgICAgICAgIGlmICgnYXR0YWNobWVudCcgPT09ICRhdHRhY2htZW50WzZdKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhpcyBtZXNzYWdlIGhhcyBhbiBhbHRlcm5hdGl2ZSBib2R5IHNldC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBhbHRlcm5hdGl2ZUV4aXN0cygpCisgICAgeworICAgICAgICByZXR1cm4gIWVtcHR5KCR0aGlzLT5BbHRCb2R5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciBxdWV1ZWQgYWRkcmVzc2VzIG9mIGdpdmVuIGtpbmQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRraW5kICd0bycsICdjYycsIG9yICdiY2MnCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyUXVldWVkQWRkcmVzc2VzKCRraW5kKQorICAgIHsKKyAgICAgICAgJHRoaXMtPlJlY2lwaWVudHNRdWV1ZSA9IGFycmF5X2ZpbHRlcigKKyAgICAgICAgICAgICR0aGlzLT5SZWNpcGllbnRzUXVldWUsCisgICAgICAgICAgICBzdGF0aWMgZnVuY3Rpb24gKCRwYXJhbXMpIHVzZSAoJGtpbmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJHBhcmFtc1swXSAhPT0gJGtpbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXIgYWxsIFRvIHJlY2lwaWVudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyQWRkcmVzc2VzKCkKKyAgICB7CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT50byBhcyAkdG8pIHsKKyAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5hbGxfcmVjaXBpZW50c1tzdHJ0b2xvd2VyKCR0b1swXSldKTsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+dG8gPSBbXTsKKyAgICAgICAgJHRoaXMtPmNsZWFyUXVldWVkQWRkcmVzc2VzKCd0bycpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGFsbCBDQyByZWNpcGllbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckNDcygpCisgICAgeworICAgICAgICBmb3JlYWNoICgkdGhpcy0+Y2MgYXMgJGNjKSB7CisgICAgICAgICAgICB1bnNldCgkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkY2NbMF0pXSk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmNjID0gW107CisgICAgICAgICR0aGlzLT5jbGVhclF1ZXVlZEFkZHJlc3NlcygnY2MnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciBhbGwgQkNDIHJlY2lwaWVudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyQkNDcygpCisgICAgeworICAgICAgICBmb3JlYWNoICgkdGhpcy0+YmNjIGFzICRiY2MpIHsKKyAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5hbGxfcmVjaXBpZW50c1tzdHJ0b2xvd2VyKCRiY2NbMF0pXSk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmJjYyA9IFtdOworICAgICAgICAkdGhpcy0+Y2xlYXJRdWV1ZWRBZGRyZXNzZXMoJ2JjYycpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGFsbCBSZXBseVRvIHJlY2lwaWVudHMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyUmVwbHlUb3MoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPlJlcGx5VG8gPSBbXTsKKyAgICAgICAgJHRoaXMtPlJlcGx5VG9RdWV1ZSA9IFtdOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGFsbCByZWNpcGllbnQgdHlwZXMuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyQWxsUmVjaXBpZW50cygpCisgICAgeworICAgICAgICAkdGhpcy0+dG8gPSBbXTsKKyAgICAgICAgJHRoaXMtPmNjID0gW107CisgICAgICAgICR0aGlzLT5iY2MgPSBbXTsKKyAgICAgICAgJHRoaXMtPmFsbF9yZWNpcGllbnRzID0gW107CisgICAgICAgICR0aGlzLT5SZWNpcGllbnRzUXVldWUgPSBbXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciBhbGwgZmlsZXN5c3RlbSwgc3RyaW5nLCBhbmQgYmluYXJ5IGF0dGFjaG1lbnRzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckF0dGFjaG1lbnRzKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5hdHRhY2htZW50ID0gW107CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXIgYWxsIGN1c3RvbSBoZWFkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckN1c3RvbUhlYWRlcnMoKQorICAgIHsKKyAgICAgICAgJHRoaXMtPkN1c3RvbUhlYWRlciA9IFtdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBlcnJvciBjb250YWluZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRtc2cKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0RXJyb3IoJG1zZykKKyAgICB7CisgICAgICAgICsrJHRoaXMtPmVycm9yX2NvdW50OworICAgICAgICBpZiAoJ3NtdHAnID09PSAkdGhpcy0+TWFpbGVyICYmIG51bGwgIT09ICR0aGlzLT5zbXRwKSB7CisgICAgICAgICAgICAkbGFzdGVycm9yID0gJHRoaXMtPnNtdHAtPmdldEVycm9yKCk7CisgICAgICAgICAgICBpZiAoIWVtcHR5KCRsYXN0ZXJyb3JbJ2Vycm9yJ10pKSB7CisgICAgICAgICAgICAgICAgJG1zZyAuPSAkdGhpcy0+bGFuZygnc210cF9lcnJvcicpIC4gJGxhc3RlcnJvclsnZXJyb3InXTsKKyAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRsYXN0ZXJyb3JbJ2RldGFpbCddKSkgeworICAgICAgICAgICAgICAgICAgICAkbXNnIC49ICcgRGV0YWlsOiAnIC4gJGxhc3RlcnJvclsnZGV0YWlsJ107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJGxhc3RlcnJvclsnc210cF9jb2RlJ10pKSB7CisgICAgICAgICAgICAgICAgICAgICRtc2cgLj0gJyBTTVRQIGNvZGU6ICcgLiAkbGFzdGVycm9yWydzbXRwX2NvZGUnXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkbGFzdGVycm9yWydzbXRwX2NvZGVfZXgnXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgJG1zZyAuPSAnIEFkZGl0aW9uYWwgU01UUCBpbmZvOiAnIC4gJGxhc3RlcnJvclsnc210cF9jb2RlX2V4J107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICR0aGlzLT5FcnJvckluZm8gPSAkbXNnOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBSRkMgODIyIGZvcm1hdHRlZCBkYXRlLgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHJmY0RhdGUoKQorICAgIHsKKyAgICAgICAgLy8gU2V0IHRoZSB0aW1lIHpvbmUgdG8gd2hhdGV2ZXIgdGhlIGRlZmF1bHQgaXMgdG8gYXZvaWQgNTAwIGVycm9ycworICAgICAgICAvLyBXaWxsIGRlZmF1bHQgdG8gVVRDIGlmIGl0J3Mgbm90IHNldCBwcm9wZXJseSBpbiBwaHAuaW5pCisgICAgICAgIGRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoQGRhdGVfZGVmYXVsdF90aW1lem9uZV9nZXQoKSk7CisKKyAgICAgICAgcmV0dXJuIGRhdGUoJ0QsIGogTSBZIEg6aTpzIE8nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNlcnZlciBob3N0bmFtZS4KKyAgICAgKiBSZXR1cm5zICdsb2NhbGhvc3QubG9jYWxkb21haW4nIGlmIHVua25vd24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXJ2ZXJIb3N0bmFtZSgpCisgICAgeworICAgICAgICAkcmVzdWx0ID0gJyc7CisgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPkhvc3RuYW1lKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5Ib3N0bmFtZTsKKyAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRfU0VSVkVSKSAmJiBhcnJheV9rZXlfZXhpc3RzKCdTRVJWRVJfTkFNRScsICRfU0VSVkVSKSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRfU0VSVkVSWydTRVJWRVJfTkFNRSddOworICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdnZXRob3N0bmFtZScpICYmIGdldGhvc3RuYW1lKCkgIT09IGZhbHNlKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gZ2V0aG9zdG5hbWUoKTsKKyAgICAgICAgfSBlbHNlaWYgKHBocF91bmFtZSgnbicpICE9PSBmYWxzZSkgeworICAgICAgICAgICAgJHJlc3VsdCA9IHBocF91bmFtZSgnbicpOworICAgICAgICB9CisgICAgICAgIGlmICghc3RhdGljOjppc1ZhbGlkSG9zdCgkcmVzdWx0KSkgeworICAgICAgICAgICAgcmV0dXJuICdsb2NhbGhvc3QubG9jYWxkb21haW4nOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFsaWRhdGUgd2hldGhlciBhIHN0cmluZyBjb250YWlucyBhIHZhbGlkIHZhbHVlIHRvIHVzZSBhcyBhIGhvc3RuYW1lIG9yIElQIGFkZHJlc3MuCisgICAgICogSVB2NiBhZGRyZXNzZXMgbXVzdCBpbmNsdWRlIFtdLCBlLmcuIGBbOjoxXWAsIG5vdCBqdXN0IGA6OjFgLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkaG9zdCBUaGUgaG9zdCBuYW1lIG9yIElQIGFkZHJlc3MgdG8gY2hlY2sKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNWYWxpZEhvc3QoJGhvc3QpCisgICAgeworICAgICAgICAvL1NpbXBsZSBzeW50YXggbGltaXRzCisgICAgICAgIGlmIChlbXB0eSgkaG9zdCkKKyAgICAgICAgICAgIHx8ICFpc19zdHJpbmcoJGhvc3QpCisgICAgICAgICAgICB8fCBzdHJsZW4oJGhvc3QpID4gMjU2CisgICAgICAgICAgICB8fCAhcHJlZ19tYXRjaCgnL14oW2EtekEtWlxkLi1dKnxcW1thLWZBLUZcZDpdK10pJC8nLCAkaG9zdCkKKyAgICAgICAgKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy9Mb29rcyBsaWtlIGEgYnJhY2tldGVkIElQdjYgYWRkcmVzcworICAgICAgICBpZiAoc3RybGVuKCRob3N0KSA+IDIgJiYgc3Vic3RyKCRob3N0LCAwLCAxKSA9PT0gJ1snICYmIHN1YnN0cigkaG9zdCwgLTEsIDEpID09PSAnXScpIHsKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXJfdmFyKHN1YnN0cigkaG9zdCwgMSwgLTEpLCBGSUxURVJfVkFMSURBVEVfSVAsIEZJTFRFUl9GTEFHX0lQVjYpICE9PSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvL0lmIHJlbW92aW5nIGFsbCB0aGUgZG90cyByZXN1bHRzIGluIGEgbnVtZXJpYyBzdHJpbmcsIGl0IG11c3QgYmUgYW4gSVB2NCBhZGRyZXNzLgorICAgICAgICAvL05lZWQgdG8gY2hlY2sgdGhpcyBmaXJzdCBiZWNhdXNlIG90aGVyd2lzZSB0aGluZ3MgbGlrZSBgOTk5LjAuMC4wYCBhcmUgY29uc2lkZXJlZCB2YWxpZCBob3N0IG5hbWVzCisgICAgICAgIGlmIChpc19udW1lcmljKHN0cl9yZXBsYWNlKCcuJywgJycsICRob3N0KSkpIHsKKyAgICAgICAgICAgIC8vSXMgaXQgYSB2YWxpZCBJUHY0IGFkZHJlc3M/CisgICAgICAgICAgICByZXR1cm4gZmlsdGVyX3ZhcigkaG9zdCwgRklMVEVSX1ZBTElEQVRFX0lQLCBGSUxURVJfRkxBR19JUFY0KSAhPT0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZpbHRlcl92YXIoJ2h0dHA6Ly8nIC4gJGhvc3QsIEZJTFRFUl9WQUxJREFURV9VUkwpICE9PSBmYWxzZSkgeworICAgICAgICAgICAgLy9JcyBpdCBhIHN5bnRhY3RpY2FsbHkgdmFsaWQgaG9zdG5hbWU/CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgY3VycmVudCBsYW5ndWFnZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbGFuZygka2V5KQorICAgIHsKKyAgICAgICAgaWYgKGNvdW50KCR0aGlzLT5sYW5ndWFnZSkgPCAxKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0TGFuZ3VhZ2UoKTsgLy8gc2V0IHRoZSBkZWZhdWx0IGxhbmd1YWdlCisgICAgICAgIH0KKworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygka2V5LCAkdGhpcy0+bGFuZ3VhZ2UpKSB7CisgICAgICAgICAgICBpZiAoJ3NtdHBfY29ubmVjdF9mYWlsZWQnID09PSAka2V5KSB7CisgICAgICAgICAgICAgICAgLy9JbmNsdWRlIGEgbGluayB0byB0cm91Ymxlc2hvb3RpbmcgZG9jcyBvbiBTTVRQIGNvbm5lY3Rpb24gZmFpbHVyZQorICAgICAgICAgICAgICAgIC8vdGhpcyBpcyBieSBmYXIgdGhlIGJpZ2dlc3QgY2F1c2Ugb2Ygc3VwcG9ydCBxdWVzdGlvbnMKKyAgICAgICAgICAgICAgICAvL2J1dCBpdCdzIHVzdWFsbHkgbm90IFBIUE1haWxlcidzIGZhdWx0LgorICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bGFuZ3VhZ2VbJGtleV0gLiAnIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL3dpa2kvVHJvdWJsZXNob290aW5nJzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5sYW5ndWFnZVska2V5XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vUmV0dXJuIHRoZSBrZXkgYXMgYSBmYWxsYmFjaworICAgICAgICByZXR1cm4gJGtleTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiBhbiBlcnJvciBvY2N1cnJlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIGFuIGVycm9yIGRpZCBvY2N1cgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBpc0Vycm9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+ZXJyb3JfY291bnQgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIGN1c3RvbSBoZWFkZXIuCisgICAgICogJG5hbWUgdmFsdWUgY2FuIGJlIG92ZXJsb2FkZWQgdG8gY29udGFpbgorICAgICAqIGJvdGggaGVhZGVyIG5hbWUgYW5kIHZhbHVlIChuYW1lOnZhbHVlKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkbmFtZSAgQ3VzdG9tIGhlYWRlciBuYW1lCisgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICR2YWx1ZSBIZWFkZXIgdmFsdWUKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGFkZEN1c3RvbUhlYWRlcigkbmFtZSwgJHZhbHVlID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkdmFsdWUgJiYgc3RycG9zKCRuYW1lLCAnOicpICE9PSBmYWxzZSkgeworICAgICAgICAgICAgLy8gVmFsdWUgcGFzc2VkIGluIGFzIG5hbWU6dmFsdWUKKyAgICAgICAgICAgIGxpc3QoJG5hbWUsICR2YWx1ZSkgPSBleHBsb2RlKCc6JywgJG5hbWUsIDIpOworICAgICAgICB9CisgICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CisgICAgICAgICR2YWx1ZSA9IHRyaW0oJHZhbHVlKTsKKyAgICAgICAgLy9FbnN1cmUgbmFtZSBpcyBub3QgZW1wdHksIGFuZCB0aGF0IG5laXRoZXIgbmFtZSBub3IgdmFsdWUgY29udGFpbiBsaW5lIGJyZWFrcworICAgICAgICBpZiAoZW1wdHkoJG5hbWUpIHx8IHN0cnBicmsoJG5hbWUgLiAkdmFsdWUsICJcclxuIikgIT09IGZhbHNlKSB7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJbnZhbGlkIGhlYWRlciBuYW1lIG9yIHZhbHVlJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAkdGhpcy0+Q3VzdG9tSGVhZGVyW10gPSBbJG5hbWUsICR2YWx1ZV07CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbGwgY3VzdG9tIGhlYWRlcnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldEN1c3RvbUhlYWRlcnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5DdXN0b21IZWFkZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbWVzc2FnZSBib2R5IGZyb20gYW4gSFRNTCBzdHJpbmcuCisgICAgICogQXV0b21hdGljYWxseSBpbmxpbmVzIGltYWdlcyBhbmQgY3JlYXRlcyBhIHBsYWluLXRleHQgdmVyc2lvbiBieSBjb252ZXJ0aW5nIHRoZSBIVE1MLAorICAgICAqIG92ZXJ3cml0aW5nIGFueSBleGlzdGluZyB2YWx1ZXMgaW4gQm9keSBhbmQgQWx0Qm9keS4KKyAgICAgKiBEbyBub3Qgc291cmNlICRtZXNzYWdlIGNvbnRlbnQgZnJvbSB1c2VyIGlucHV0IQorICAgICAqICRiYXNlZGlyIGlzIHByZXBlbmRlZCB3aGVuIGhhbmRsaW5nIHJlbGF0aXZlIFVSTHMsIGUuZy4gPGltZyBzcmM9Ii9pbWFnZXMvYS5wbmciPiBhbmQgbXVzdCBub3QgYmUgZW1wdHkKKyAgICAgKiB3aWxsIGxvb2sgZm9yIGFuIGltYWdlIGZpbGUgaW4gJGJhc2VkaXIvaW1hZ2VzL2EucG5nIGFuZCBjb252ZXJ0IGl0IHRvIGlubGluZS4KKyAgICAgKiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhICRiYXNlZGlyLCByZWxhdGl2ZSBwYXRocyB3aWxsIGJlIGxlZnQgdW50b3VjaGVkIChhbmQgdGh1cyBwcm9iYWJseSBicmVhayBpbiBlbWFpbCkKKyAgICAgKiBDb252ZXJ0cyBkYXRhLXVyaSBpbWFnZXMgaW50byBlbWJlZGRlZCBhdHRhY2htZW50cy4KKyAgICAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBhcHBseSB0aGVzZSB0cmFuc2Zvcm1hdGlvbnMgdG8geW91ciBIVE1MLCBqdXN0IHNldCBCb2R5IGFuZCBBbHRCb2R5IGRpcmVjdGx5LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgJG1lc3NhZ2UgIEhUTUwgbWVzc2FnZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAkYmFzZWRpciAgQWJzb2x1dGUgcGF0aCB0byBhIGJhc2UgZGlyZWN0b3J5IHRvIHByZXBlbmQgdG8gcmVsYXRpdmUgcGF0aHMgdG8gaW1hZ2VzCisgICAgICogQHBhcmFtIGJvb2x8Y2FsbGFibGUgJGFkdmFuY2VkIFdoZXRoZXIgdG8gdXNlIHRoZSBpbnRlcm5hbCBIVE1MIHRvIHRleHQgY29udmVydGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHlvdXIgb3duIGN1c3RvbSBjb252ZXJ0ZXIgQHJldHVybiBzdHJpbmcgJG1lc3NhZ2UgVGhlIHRyYW5zZm9ybWVkIG1lc3NhZ2UgQm9keQorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKgorICAgICAqIEBzZWUgUEhQTWFpbGVyOjpodG1sMnRleHQoKQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBtc2dIVE1MKCRtZXNzYWdlLCAkYmFzZWRpciA9ICcnLCAkYWR2YW5jZWQgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIHByZWdfbWF0Y2hfYWxsKCcvKD88IS0pKHNyY3xiYWNrZ3JvdW5kKT1bIlwnXSguKilbIlwnXS9VaScsICRtZXNzYWdlLCAkaW1hZ2VzKTsKKyAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoMiwgJGltYWdlcykpIHsKKyAgICAgICAgICAgIGlmIChzdHJsZW4oJGJhc2VkaXIpID4gMSAmJiAnLycgIT09IHN1YnN0cigkYmFzZWRpciwgLTEpKSB7CisgICAgICAgICAgICAgICAgLy8gRW5zdXJlICRiYXNlZGlyIGhhcyBhIHRyYWlsaW5nIC8KKyAgICAgICAgICAgICAgICAkYmFzZWRpciAuPSAnLyc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3JlYWNoICgkaW1hZ2VzWzJdIGFzICRpbWdpbmRleCA9PiAkdXJsKSB7CisgICAgICAgICAgICAgICAgLy8gQ29udmVydCBkYXRhIFVSSXMgaW50byBlbWJlZGRlZCBpbWFnZXMKKyAgICAgICAgICAgICAgICAvL2UuZy4gImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBQUFBQUNINUJBRUtBQUVBTEFBQUFBQUJBQUVBQUFJQ1RBRUFPdz09IgorICAgICAgICAgICAgICAgICRtYXRjaCA9IFtdOworICAgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcjXmRhdGE6KGltYWdlLyg/OmpwZT9nfGdpZnxwbmcpKTs/KGJhc2U2NCk/LCguKykjJywgJHVybCwgJG1hdGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQoJG1hdGNoKSA9PT0gNCAmJiBzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCA9PT0gJG1hdGNoWzJdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZGF0YSA9IGJhc2U2NF9kZWNvZGUoJG1hdGNoWzNdKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCcnID09PSAkbWF0Y2hbMl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRkYXRhID0gcmF3dXJsZGVjb2RlKCRtYXRjaFszXSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL05vdCByZWNvZ25pc2VkIHNvIGxlYXZlIGl0IGFsb25lCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvL0hhc2ggdGhlIGRlY29kZWQgZGF0YSwgbm90IHRoZSBVUkwsIHNvIHRoYXQgdGhlIHNhbWUgZGF0YS1VUkkgaW1hZ2UgdXNlZCBpbiBtdWx0aXBsZSBwbGFjZXMKKyAgICAgICAgICAgICAgICAgICAgLy93aWxsIG9ubHkgYmUgZW1iZWRkZWQgb25jZSwgZXZlbiBpZiBpdCB1c2VkIGEgZGlmZmVyZW50IGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICRjaWQgPSBzdWJzdHIoaGFzaCgnc2hhMjU2JywgJGRhdGEpLCAwLCAzMikgLiAnQHBocG1haWxlci4wJzsgLy8gUkZDMjM5MiBTIDIKKworICAgICAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5jaWRFeGlzdHMoJGNpZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5hZGRTdHJpbmdFbWJlZGRlZEltYWdlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYmVkJyAuICRpbWdpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWF0Y2hbMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSBzdHJfcmVwbGFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICRpbWFnZXNbMF1bJGltZ2luZGV4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICRpbWFnZXNbMV1bJGltZ2luZGV4XSAuICc9ImNpZDonIC4gJGNpZCAuICciJywKKyAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoLy8gT25seSBwcm9jZXNzIHJlbGF0aXZlIFVSTHMgaWYgYSBiYXNlZGlyIGlzIHByb3ZpZGVkIChpLmUuIG5vIGFic29sdXRlIGxvY2FsIHBhdGhzKQorICAgICAgICAgICAgICAgICAgICAhZW1wdHkoJGJhc2VkaXIpCisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBVUkxzIGNvbnRhaW5pbmcgcGFyZW50IGRpciB0cmF2ZXJzYWwgKC4uKQorICAgICAgICAgICAgICAgICAgICAmJiAoc3RycG9zKCR1cmwsICcuLicpID09PSBmYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGNoYW5nZSB1cmxzIHRoYXQgYXJlIGFscmVhZHkgaW5saW5lIGltYWdlcworICAgICAgICAgICAgICAgICAgICAmJiAwICE9PSBzdHJwb3MoJHVybCwgJ2NpZDonKQorICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgY2hhbmdlIGFic29sdXRlIFVSTHMsIGluY2x1ZGluZyBhbm9ueW1vdXMgcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgJiYgIXByZWdfbWF0Y2goJyNeW2Etel1bYS16MC05Ky4tXSo6Py8vI2knLCAkdXJsKQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAkZmlsZW5hbWUgPSBzdGF0aWM6Om1iX3BhdGhpbmZvKCR1cmwsIFBBVEhJTkZPX0JBU0VOQU1FKTsKKyAgICAgICAgICAgICAgICAgICAgJGRpcmVjdG9yeSA9IGRpcm5hbWUoJHVybCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgnLicgPT09ICRkaXJlY3RvcnkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRkaXJlY3RvcnkgPSAnJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBSRkMyMzkyIFMgMgorICAgICAgICAgICAgICAgICAgICAkY2lkID0gc3Vic3RyKGhhc2goJ3NoYTI1NicsICR1cmwpLCAwLCAzMikgLiAnQHBocG1haWxlci4wJzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmxlbigkYmFzZWRpcikgPiAxICYmICcvJyAhPT0gc3Vic3RyKCRiYXNlZGlyLCAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRiYXNlZGlyIC49ICcvJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCRkaXJlY3RvcnkpID4gMSAmJiAnLycgIT09IHN1YnN0cigkZGlyZWN0b3J5LCAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRkaXJlY3RvcnkgLj0gJy8nOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+YWRkRW1iZWRkZWRJbWFnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICRiYXNlZGlyIC4gJGRpcmVjdG9yeSAuICRmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICRjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAkZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYzo6X21pbWVfdHlwZXMoKHN0cmluZykgc3RhdGljOjptYl9wYXRoaW5mbygkZmlsZW5hbWUsIFBBVEhJTkZPX0VYVEVOU0lPTikpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9IHByZWdfcmVwbGFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgLiAkaW1hZ2VzWzFdWyRpbWdpbmRleF0gLiAnPVsiXCddJyAuIHByZWdfcXVvdGUoJHVybCwgJy8nKSAuICdbIlwnXS9VaScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltYWdlc1sxXVskaW1naW5kZXhdIC4gJz0iY2lkOicgLiAkY2lkIC4gJyInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICR0aGlzLT5pc0hUTUwoKTsKKyAgICAgICAgLy8gQ29udmVydCBhbGwgbWVzc2FnZSBib2R5IGxpbmUgYnJlYWtzIHRvIExFLCBtYWtlcyBxdW90ZWQtcHJpbnRhYmxlIGVuY29kaW5nIHdvcmsgbXVjaCBiZXR0ZXIKKyAgICAgICAgJHRoaXMtPkJvZHkgPSBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkbWVzc2FnZSk7CisgICAgICAgICR0aGlzLT5BbHRCb2R5ID0gc3RhdGljOjpub3JtYWxpemVCcmVha3MoJHRoaXMtPmh0bWwydGV4dCgkbWVzc2FnZSwgJGFkdmFuY2VkKSk7CisgICAgICAgIGlmICghJHRoaXMtPmFsdGVybmF0aXZlRXhpc3RzKCkpIHsKKyAgICAgICAgICAgICR0aGlzLT5BbHRCb2R5ID0gJ1RoaXMgaXMgYW4gSFRNTC1vbmx5IG1lc3NhZ2UuIFRvIHZpZXcgaXQsIGFjdGl2YXRlIEhUTUwgaW4geW91ciBlbWFpbCBhcHBsaWNhdGlvbi4nCisgICAgICAgICAgICAgICAgLiBzdGF0aWM6OiRMRTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+Qm9keTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFuIEhUTUwgc3RyaW5nIGludG8gcGxhaW4gdGV4dC4KKyAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbXNnSFRNTCgpLgorICAgICAqIE5vdGUgLSBvbGRlciB2ZXJzaW9ucyBvZiB0aGlzIGZ1bmN0aW9uIHVzZWQgYSBidW5kbGVkIGFkdmFuY2VkIGNvbnZlcnRlcgorICAgICAqIHdoaWNoIHdhcyByZW1vdmVkIGZvciBsaWNlbnNlIHJlYXNvbnMgaW4gIzIzMi4KKyAgICAgKiBFeGFtcGxlIHVzYWdlOgorICAgICAqCisgICAgICogYGBgcGhwCisgICAgICogLy8gVXNlIGRlZmF1bHQgY29udmVyc2lvbgorICAgICAqICRwbGFpbiA9ICRtYWlsLT5odG1sMnRleHQoJGh0bWwpOworICAgICAqIC8vIFVzZSB5b3VyIG93biBjdXN0b20gY29udmVydGVyCisgICAgICogJHBsYWluID0gJG1haWwtPmh0bWwydGV4dCgkaHRtbCwgZnVuY3Rpb24oJGh0bWwpIHsKKyAgICAgKiAgICAgJGNvbnZlcnRlciA9IG5ldyBNeUh0bWwydGV4dCgkaHRtbCk7CisgICAgICogICAgIHJldHVybiAkY29udmVydGVyLT5nZXRfdGV4dCgpOworICAgICAqIH0pOworICAgICAqIGBgYAorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgJGh0bWwgICAgIFRoZSBIVE1MIHRleHQgdG8gY29udmVydAorICAgICAqIEBwYXJhbSBib29sfGNhbGxhYmxlICRhZHZhbmNlZCBBbnkgYm9vbGVhbiB2YWx1ZSB0byB1c2UgdGhlIGludGVybmFsIGNvbnZlcnRlciwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgcHJvdmlkZSB5b3VyIG93biBjYWxsYWJsZSBmb3IgY3VzdG9tIGNvbnZlcnNpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGh0bWwydGV4dCgkaHRtbCwgJGFkdmFuY2VkID0gZmFsc2UpCisgICAgeworICAgICAgICBpZiAoaXNfY2FsbGFibGUoJGFkdmFuY2VkKSkgeworICAgICAgICAgICAgcmV0dXJuICRhZHZhbmNlZCgkaHRtbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaHRtbF9lbnRpdHlfZGVjb2RlKAorICAgICAgICAgICAgdHJpbShzdHJpcF90YWdzKHByZWdfcmVwbGFjZSgnLzwoaGVhZHx0aXRsZXxzdHlsZXxzY3JpcHQpW14+XSo+Lio/PFwvXFwxPi9zaScsICcnLCAkaHRtbCkpKSwKKyAgICAgICAgICAgIEVOVF9RVU9URVMsCisgICAgICAgICAgICAkdGhpcy0+Q2hhclNldAorICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgTUlNRSB0eXBlIGZvciBhIGZpbGUgZXh0ZW5zaW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZXh0IEZpbGUgZXh0ZW5zaW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZyBNSU1FIHR5cGUgb2YgZmlsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gX21pbWVfdHlwZXMoJGV4dCA9ICcnKQorICAgIHsKKyAgICAgICAgJG1pbWVzID0gWworICAgICAgICAgICAgJ3hsJyA9PiAnYXBwbGljYXRpb24vZXhjZWwnLAorICAgICAgICAgICAgJ2pzJyA9PiAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcsCisgICAgICAgICAgICAnaHF4JyA9PiAnYXBwbGljYXRpb24vbWFjLWJpbmhleDQwJywKKyAgICAgICAgICAgICdjcHQnID0+ICdhcHBsaWNhdGlvbi9tYWMtY29tcGFjdHBybycsCisgICAgICAgICAgICAnYmluJyA9PiAnYXBwbGljYXRpb24vbWFjYmluYXJ5JywKKyAgICAgICAgICAgICdkb2MnID0+ICdhcHBsaWNhdGlvbi9tc3dvcmQnLAorICAgICAgICAgICAgJ3dvcmQnID0+ICdhcHBsaWNhdGlvbi9tc3dvcmQnLAorICAgICAgICAgICAgJ3hsc3gnID0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsCisgICAgICAgICAgICAneGx0eCcgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlJywKKyAgICAgICAgICAgICdwb3R4JyA9PiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlJywKKyAgICAgICAgICAgICdwcHN4JyA9PiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdycsCisgICAgICAgICAgICAncHB0eCcgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLAorICAgICAgICAgICAgJ3NsZHgnID0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUnLAorICAgICAgICAgICAgJ2RvY3gnID0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsCisgICAgICAgICAgICAnZG90eCcgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlJywKKyAgICAgICAgICAgICd4bGFtJyA9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC4xMicsCisgICAgICAgICAgICAneGxzYicgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLjEyJywKKyAgICAgICAgICAgICdjbGFzcycgPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsCisgICAgICAgICAgICAnZGxsJyA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKKyAgICAgICAgICAgICdkbXMnID0+ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLAorICAgICAgICAgICAgJ2V4ZScgPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsCisgICAgICAgICAgICAnbGhhJyA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKKyAgICAgICAgICAgICdsemgnID0+ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLAorICAgICAgICAgICAgJ3BzZCcgPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsCisgICAgICAgICAgICAnc2VhJyA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKKyAgICAgICAgICAgICdzbycgPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsCisgICAgICAgICAgICAnb2RhJyA9PiAnYXBwbGljYXRpb24vb2RhJywKKyAgICAgICAgICAgICdwZGYnID0+ICdhcHBsaWNhdGlvbi9wZGYnLAorICAgICAgICAgICAgJ2FpJyA9PiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsCisgICAgICAgICAgICAnZXBzJyA9PiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsCisgICAgICAgICAgICAncHMnID0+ICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JywKKyAgICAgICAgICAgICdzbWknID0+ICdhcHBsaWNhdGlvbi9zbWlsJywKKyAgICAgICAgICAgICdzbWlsJyA9PiAnYXBwbGljYXRpb24vc21pbCcsCisgICAgICAgICAgICAnbWlmJyA9PiAnYXBwbGljYXRpb24vdm5kLm1pZicsCisgICAgICAgICAgICAneGxzJyA9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJywKKyAgICAgICAgICAgICdwcHQnID0+ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsCisgICAgICAgICAgICAnd2J4bWwnID0+ICdhcHBsaWNhdGlvbi92bmQud2FwLndieG1sJywKKyAgICAgICAgICAgICd3bWxjJyA9PiAnYXBwbGljYXRpb24vdm5kLndhcC53bWxjJywKKyAgICAgICAgICAgICdkY3InID0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywKKyAgICAgICAgICAgICdkaXInID0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywKKyAgICAgICAgICAgICdkeHInID0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywKKyAgICAgICAgICAgICdkdmknID0+ICdhcHBsaWNhdGlvbi94LWR2aScsCisgICAgICAgICAgICAnZ3RhcicgPT4gJ2FwcGxpY2F0aW9uL3gtZ3RhcicsCisgICAgICAgICAgICAncGhwMycgPT4gJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwJywKKyAgICAgICAgICAgICdwaHA0JyA9PiAnYXBwbGljYXRpb24veC1odHRwZC1waHAnLAorICAgICAgICAgICAgJ3BocCcgPT4gJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwJywKKyAgICAgICAgICAgICdwaHRtbCcgPT4gJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwJywKKyAgICAgICAgICAgICdwaHBzJyA9PiAnYXBwbGljYXRpb24veC1odHRwZC1waHAtc291cmNlJywKKyAgICAgICAgICAgICdzd2YnID0+ICdhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcsCisgICAgICAgICAgICAnc2l0JyA9PiAnYXBwbGljYXRpb24veC1zdHVmZml0JywKKyAgICAgICAgICAgICd0YXInID0+ICdhcHBsaWNhdGlvbi94LXRhcicsCisgICAgICAgICAgICAndGd6JyA9PiAnYXBwbGljYXRpb24veC10YXInLAorICAgICAgICAgICAgJ3hodCcgPT4gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsCisgICAgICAgICAgICAneGh0bWwnID0+ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnLAorICAgICAgICAgICAgJ3ppcCcgPT4gJ2FwcGxpY2F0aW9uL3ppcCcsCisgICAgICAgICAgICAnbWlkJyA9PiAnYXVkaW8vbWlkaScsCisgICAgICAgICAgICAnbWlkaScgPT4gJ2F1ZGlvL21pZGknLAorICAgICAgICAgICAgJ21wMicgPT4gJ2F1ZGlvL21wZWcnLAorICAgICAgICAgICAgJ21wMycgPT4gJ2F1ZGlvL21wZWcnLAorICAgICAgICAgICAgJ200YScgPT4gJ2F1ZGlvL21wNCcsCisgICAgICAgICAgICAnbXBnYScgPT4gJ2F1ZGlvL21wZWcnLAorICAgICAgICAgICAgJ2FpZicgPT4gJ2F1ZGlvL3gtYWlmZicsCisgICAgICAgICAgICAnYWlmYycgPT4gJ2F1ZGlvL3gtYWlmZicsCisgICAgICAgICAgICAnYWlmZicgPT4gJ2F1ZGlvL3gtYWlmZicsCisgICAgICAgICAgICAncmFtJyA9PiAnYXVkaW8veC1wbi1yZWFsYXVkaW8nLAorICAgICAgICAgICAgJ3JtJyA9PiAnYXVkaW8veC1wbi1yZWFsYXVkaW8nLAorICAgICAgICAgICAgJ3JwbScgPT4gJ2F1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpbicsCisgICAgICAgICAgICAncmEnID0+ICdhdWRpby94LXJlYWxhdWRpbycsCisgICAgICAgICAgICAnd2F2JyA9PiAnYXVkaW8veC13YXYnLAorICAgICAgICAgICAgJ21rYScgPT4gJ2F1ZGlvL3gtbWF0cm9za2EnLAorICAgICAgICAgICAgJ2JtcCcgPT4gJ2ltYWdlL2JtcCcsCisgICAgICAgICAgICAnZ2lmJyA9PiAnaW1hZ2UvZ2lmJywKKyAgICAgICAgICAgICdqcGVnJyA9PiAnaW1hZ2UvanBlZycsCisgICAgICAgICAgICAnanBlJyA9PiAnaW1hZ2UvanBlZycsCisgICAgICAgICAgICAnanBnJyA9PiAnaW1hZ2UvanBlZycsCisgICAgICAgICAgICAncG5nJyA9PiAnaW1hZ2UvcG5nJywKKyAgICAgICAgICAgICd0aWZmJyA9PiAnaW1hZ2UvdGlmZicsCisgICAgICAgICAgICAndGlmJyA9PiAnaW1hZ2UvdGlmZicsCisgICAgICAgICAgICAnd2VicCcgPT4gJ2ltYWdlL3dlYnAnLAorICAgICAgICAgICAgJ2hlaWYnID0+ICdpbWFnZS9oZWlmJywKKyAgICAgICAgICAgICdoZWlmcycgPT4gJ2ltYWdlL2hlaWYtc2VxdWVuY2UnLAorICAgICAgICAgICAgJ2hlaWMnID0+ICdpbWFnZS9oZWljJywKKyAgICAgICAgICAgICdoZWljcycgPT4gJ2ltYWdlL2hlaWMtc2VxdWVuY2UnLAorICAgICAgICAgICAgJ2VtbCcgPT4gJ21lc3NhZ2UvcmZjODIyJywKKyAgICAgICAgICAgICdjc3MnID0+ICd0ZXh0L2NzcycsCisgICAgICAgICAgICAnaHRtbCcgPT4gJ3RleHQvaHRtbCcsCisgICAgICAgICAgICAnaHRtJyA9PiAndGV4dC9odG1sJywKKyAgICAgICAgICAgICdzaHRtbCcgPT4gJ3RleHQvaHRtbCcsCisgICAgICAgICAgICAnbG9nJyA9PiAndGV4dC9wbGFpbicsCisgICAgICAgICAgICAndGV4dCcgPT4gJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3R4dCcgPT4gJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3J0eCcgPT4gJ3RleHQvcmljaHRleHQnLAorICAgICAgICAgICAgJ3J0ZicgPT4gJ3RleHQvcnRmJywKKyAgICAgICAgICAgICd2Y2YnID0+ICd0ZXh0L3ZjYXJkJywKKyAgICAgICAgICAgICd2Y2FyZCcgPT4gJ3RleHQvdmNhcmQnLAorICAgICAgICAgICAgJ2ljcycgPT4gJ3RleHQvY2FsZW5kYXInLAorICAgICAgICAgICAgJ3htbCcgPT4gJ3RleHQveG1sJywKKyAgICAgICAgICAgICd4c2wnID0+ICd0ZXh0L3htbCcsCisgICAgICAgICAgICAnd212JyA9PiAndmlkZW8veC1tcy13bXYnLAorICAgICAgICAgICAgJ21wZWcnID0+ICd2aWRlby9tcGVnJywKKyAgICAgICAgICAgICdtcGUnID0+ICd2aWRlby9tcGVnJywKKyAgICAgICAgICAgICdtcGcnID0+ICd2aWRlby9tcGVnJywKKyAgICAgICAgICAgICdtcDQnID0+ICd2aWRlby9tcDQnLAorICAgICAgICAgICAgJ200dicgPT4gJ3ZpZGVvL21wNCcsCisgICAgICAgICAgICAnbW92JyA9PiAndmlkZW8vcXVpY2t0aW1lJywKKyAgICAgICAgICAgICdxdCcgPT4gJ3ZpZGVvL3F1aWNrdGltZScsCisgICAgICAgICAgICAncnYnID0+ICd2aWRlby92bmQucm4tcmVhbHZpZGVvJywKKyAgICAgICAgICAgICdhdmknID0+ICd2aWRlby94LW1zdmlkZW8nLAorICAgICAgICAgICAgJ21vdmllJyA9PiAndmlkZW8veC1zZ2ktbW92aWUnLAorICAgICAgICAgICAgJ3dlYm0nID0+ICd2aWRlby93ZWJtJywKKyAgICAgICAgICAgICdta3YnID0+ICd2aWRlby94LW1hdHJvc2thJywKKyAgICAgICAgXTsKKyAgICAgICAgJGV4dCA9IHN0cnRvbG93ZXIoJGV4dCk7CisgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRleHQsICRtaW1lcykpIHsKKyAgICAgICAgICAgIHJldHVybiAkbWltZXNbJGV4dF07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFwIGEgZmlsZSBuYW1lIHRvIGEgTUlNRSB0eXBlLgorICAgICAqIERlZmF1bHRzIHRvICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLCBpLmUuLiBhcmJpdHJhcnkgYmluYXJ5IGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlbmFtZSBBIGZpbGUgbmFtZSBvciBmdWxsIHBhdGgsIGRvZXMgbm90IG5lZWQgdG8gZXhpc3QgYXMgYSBmaWxlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmlsZW5hbWVUb1R5cGUoJGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgLy8gSW4gY2FzZSB0aGUgcGF0aCBpcyBhIFVSTCwgc3RyaXAgYW55IHF1ZXJ5IHN0cmluZyBiZWZvcmUgZ2V0dGluZyBleHRlbnNpb24KKyAgICAgICAgJHFwb3MgPSBzdHJwb3MoJGZpbGVuYW1lLCAnPycpOworICAgICAgICBpZiAoZmFsc2UgIT09ICRxcG9zKSB7CisgICAgICAgICAgICAkZmlsZW5hbWUgPSBzdWJzdHIoJGZpbGVuYW1lLCAwLCAkcXBvcyk7CisgICAgICAgIH0KKyAgICAgICAgJGV4dCA9IHN0YXRpYzo6bWJfcGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pOworCisgICAgICAgIHJldHVybiBzdGF0aWM6Ol9taW1lX3R5cGVzKCRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE11bHRpLWJ5dGUtc2FmZSBwYXRoaW5mbyByZXBsYWNlbWVudC4KKyAgICAgKiBEcm9wLWluIHJlcGxhY2VtZW50IGZvciBwYXRoaW5mbygpLCBidXQgbXVsdGlieXRlLSBhbmQgY3Jvc3MtcGxhdGZvcm0tc2FmZS4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5wYXRoaW5mby5waHAjMTA3NDYxCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAkcGF0aCAgICBBIGZpbGVuYW1lIG9yIHBhdGgsIGRvZXMgbm90IG5lZWQgdG8gZXhpc3QgYXMgYSBmaWxlCisgICAgICogQHBhcmFtIGludHxzdHJpbmcgJG9wdGlvbnMgRWl0aGVyIGEgUEFUSElORk9fKiBjb25zdGFudCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBhIHN0cmluZyBuYW1lIHRvIHJldHVybiBvbmx5IHRoZSBzcGVjaWZpZWQgcGllY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nfGFycmF5CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtYl9wYXRoaW5mbygkcGF0aCwgJG9wdGlvbnMgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHJldCA9IFsnZGlybmFtZScgPT4gJycsICdiYXNlbmFtZScgPT4gJycsICdleHRlbnNpb24nID0+ICcnLCAnZmlsZW5hbWUnID0+ICcnXTsKKyAgICAgICAgJHBhdGhpbmZvID0gW107CisgICAgICAgIGlmIChwcmVnX21hdGNoKCcjXiguKj8pW1xcXFwvXSooKFteL1xcXFxdKj8pKFwuKFteLlxcXFwvXSs/KXwpKVtcXFxcLy5dKiQjbScsICRwYXRoLCAkcGF0aGluZm8pKSB7CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygxLCAkcGF0aGluZm8pKSB7CisgICAgICAgICAgICAgICAgJHJldFsnZGlybmFtZSddID0gJHBhdGhpbmZvWzFdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoMiwgJHBhdGhpbmZvKSkgeworICAgICAgICAgICAgICAgICRyZXRbJ2Jhc2VuYW1lJ10gPSAkcGF0aGluZm9bMl07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cyg1LCAkcGF0aGluZm8pKSB7CisgICAgICAgICAgICAgICAgJHJldFsnZXh0ZW5zaW9uJ10gPSAkcGF0aGluZm9bNV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygzLCAkcGF0aGluZm8pKSB7CisgICAgICAgICAgICAgICAgJHJldFsnZmlsZW5hbWUnXSA9ICRwYXRoaW5mb1szXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKCRvcHRpb25zKSB7CisgICAgICAgICAgICBjYXNlIFBBVEhJTkZPX0RJUk5BTUU6CisgICAgICAgICAgICBjYXNlICdkaXJuYW1lJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHJldFsnZGlybmFtZSddOworICAgICAgICAgICAgY2FzZSBQQVRISU5GT19CQVNFTkFNRToKKyAgICAgICAgICAgIGNhc2UgJ2Jhc2VuYW1lJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHJldFsnYmFzZW5hbWUnXTsKKyAgICAgICAgICAgIGNhc2UgUEFUSElORk9fRVhURU5TSU9OOgorICAgICAgICAgICAgY2FzZSAnZXh0ZW5zaW9uJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHJldFsnZXh0ZW5zaW9uJ107CisgICAgICAgICAgICBjYXNlIFBBVEhJTkZPX0ZJTEVOQU1FOgorICAgICAgICAgICAgY2FzZSAnZmlsZW5hbWUnOgorICAgICAgICAgICAgICAgIHJldHVybiAkcmV0WydmaWxlbmFtZSddOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gJHJldDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBvciByZXNldCBpbnN0YW5jZSBwcm9wZXJ0aWVzLgorICAgICAqIFlvdSBzaG91bGQgYXZvaWQgdGhpcyBmdW5jdGlvbiAtIGl0J3MgbW9yZSB2ZXJib3NlLCBsZXNzIGVmZmljaWVudCwgbW9yZSBlcnJvci1wcm9uZSBhbmQKKyAgICAgKiBoYXJkZXIgdG8gZGVidWcgdGhhbiBzZXR0aW5nIHByb3BlcnRpZXMgZGlyZWN0bHkuCisgICAgICogVXNhZ2UgRXhhbXBsZToKKyAgICAgKiBgJG1haWwtPnNldCgnU01UUFNlY3VyZScsIHN0YXRpYzo6RU5DUllQVElPTl9TVEFSVFRMUyk7YAorICAgICAqICAgaXMgdGhlIHNhbWUgYXM6CisgICAgICogYCRtYWlsLT5TTVRQU2VjdXJlID0gc3RhdGljOjpFTkNSWVBUSU9OX1NUQVJUVExTO2AuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lICBUaGUgcHJvcGVydHkgbmFtZSB0byBzZXQKKyAgICAgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0bworICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldCgkbmFtZSwgJHZhbHVlID0gJycpCisgICAgeworICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCR0aGlzLCAkbmFtZSkpIHsKKyAgICAgICAgICAgICR0aGlzLT4kbmFtZSA9ICR2YWx1ZTsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPnNldEVycm9yKCR0aGlzLT5sYW5nKCd2YXJpYWJsZV9zZXQnKSAuICRuYW1lKTsKKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RyaXAgbmV3bGluZXMgdG8gcHJldmVudCBoZWFkZXIgaW5qZWN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc3RyCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZWN1cmVIZWFkZXIoJHN0cikKKyAgICB7CisgICAgICAgIHJldHVybiB0cmltKHN0cl9yZXBsYWNlKFsiXHIiLCAiXG4iXSwgJycsICRzdHIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgbGluZSBicmVha3MgaW4gYSBzdHJpbmcuCisgICAgICogQ29udmVydHMgVU5JWCBMRiwgTWFjIENSIGFuZCBXaW5kb3dzIENSTEYgbGluZSBicmVha3MgaW50byBhIHNpbmdsZSBsaW5lIGJyZWFrIGZvcm1hdC4KKyAgICAgKiBEZWZhdWx0cyB0byBDUkxGIChmb3IgbWVzc2FnZSBib2RpZXMpIGFuZCBwcmVzZXJ2ZXMgY29uc2VjdXRpdmUgYnJlYWtzLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkdGV4dAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGJyZWFrdHlwZSBXaGF0IGtpbmQgb2YgbGluZSBicmVhayB0byB1c2U7IGRlZmF1bHRzIHRvIHN0YXRpYzo6JExFCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbm9ybWFsaXplQnJlYWtzKCR0ZXh0LCAkYnJlYWt0eXBlID0gbnVsbCkKKyAgICB7CisgICAgICAgIGlmIChudWxsID09PSAkYnJlYWt0eXBlKSB7CisgICAgICAgICAgICAkYnJlYWt0eXBlID0gc3RhdGljOjokTEU7CisgICAgICAgIH0KKyAgICAgICAgLy8gTm9ybWFsaXNlIHRvIFxuCisgICAgICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoW3NlbGY6OkNSTEYsICJcciJdLCAiXG4iLCAkdGV4dCk7CisgICAgICAgIC8vIE5vdyBjb252ZXJ0IExFIGFzIG5lZWRlZAorICAgICAgICBpZiAoIlxuIiAhPT0gJGJyZWFrdHlwZSkgeworICAgICAgICAgICAgJHRleHQgPSBzdHJfcmVwbGFjZSgiXG4iLCAkYnJlYWt0eXBlLCAkdGV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRleHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRyYWlsaW5nIGJyZWFrcyBmcm9tIGEgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkdGV4dAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIHRleHQgdG8gcmVtb3ZlIGJyZWFrcyBmcm9tCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzdHJpcFRyYWlsaW5nV1NQKCR0ZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJ0cmltKCR0ZXh0LCAiIFxyXG5cdCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBsaW5lIGJyZWFrIGZvcm1hdCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0TEUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpYzo6JExFOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbGluZSBicmVhayBmb3JtYXQgc3RyaW5nLCBlLmcuICJcclxuIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGxlCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBzZXRMRSgkbGUpCisgICAgeworICAgICAgICBzdGF0aWM6OiRMRSA9ICRsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHB1YmxpYyBhbmQgcHJpdmF0ZSBrZXkgZmlsZXMgYW5kIHBhc3N3b3JkIGZvciBTL01JTUUgc2lnbmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNlcnRfZmlsZW5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXlfZmlsZW5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXlfcGFzcyAgICAgICAgICAgIFBhc3N3b3JkIGZvciBwcml2YXRlIGtleQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGV4dHJhY2VydHNfZmlsZW5hbWUgT3B0aW9uYWwgcGF0aCB0byBjaGFpbiBjZXJ0aWZpY2F0ZQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzaWduKCRjZXJ0X2ZpbGVuYW1lLCAka2V5X2ZpbGVuYW1lLCAka2V5X3Bhc3MsICRleHRyYWNlcnRzX2ZpbGVuYW1lID0gJycpCisgICAgeworICAgICAgICAkdGhpcy0+c2lnbl9jZXJ0X2ZpbGUgPSAkY2VydF9maWxlbmFtZTsKKyAgICAgICAgJHRoaXMtPnNpZ25fa2V5X2ZpbGUgPSAka2V5X2ZpbGVuYW1lOworICAgICAgICAkdGhpcy0+c2lnbl9rZXlfcGFzcyA9ICRrZXlfcGFzczsKKyAgICAgICAgJHRoaXMtPnNpZ25fZXh0cmFjZXJ0c19maWxlID0gJGV4dHJhY2VydHNfZmlsZW5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVvdGVkLVByaW50YWJsZS1lbmNvZGUgYSBES0lNIGhlYWRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHR4dAorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gREtJTV9RUCgkdHh0KQorICAgIHsKKyAgICAgICAgJGxpbmUgPSAnJzsKKyAgICAgICAgJGxlbiA9IHN0cmxlbigkdHh0KTsKKyAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGxlbjsgKyskaSkgeworICAgICAgICAgICAgJG9yZCA9IG9yZCgkdHh0WyRpXSk7CisgICAgICAgICAgICBpZiAoKCgweDIxIDw9ICRvcmQpICYmICgkb3JkIDw9IDB4M0EpKSB8fCAkb3JkID09PSAweDNDIHx8ICgoMHgzRSA8PSAkb3JkKSAmJiAoJG9yZCA8PSAweDdFKSkpIHsKKyAgICAgICAgICAgICAgICAkbGluZSAuPSAkdHh0WyRpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJGxpbmUgLj0gJz0nIC4gc3ByaW50ZignJTAyWCcsICRvcmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRsaW5lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGEgREtJTSBzaWduYXR1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzaWduSGVhZGVyCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcgVGhlIERLSU0gc2lnbmF0dXJlIHZhbHVlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIERLSU1fU2lnbigkc2lnbkhlYWRlcikKKyAgICB7CisgICAgICAgIGlmICghZGVmaW5lZCgnUEtDUzdfVEVYVCcpKSB7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdleHRlbnNpb25fbWlzc2luZycpIC4gJ29wZW5zc2wnKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuICcnOworICAgICAgICB9CisgICAgICAgICRwcml2S2V5U3RyID0gIWVtcHR5KCR0aGlzLT5ES0lNX3ByaXZhdGVfc3RyaW5nKSA/CisgICAgICAgICAgICAkdGhpcy0+REtJTV9wcml2YXRlX3N0cmluZyA6CisgICAgICAgICAgICBmaWxlX2dldF9jb250ZW50cygkdGhpcy0+REtJTV9wcml2YXRlKTsKKyAgICAgICAgaWYgKCcnICE9PSAkdGhpcy0+REtJTV9wYXNzcGhyYXNlKSB7CisgICAgICAgICAgICAkcHJpdktleSA9IG9wZW5zc2xfcGtleV9nZXRfcHJpdmF0ZSgkcHJpdktleVN0ciwgJHRoaXMtPkRLSU1fcGFzc3BocmFzZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcHJpdktleSA9IG9wZW5zc2xfcGtleV9nZXRfcHJpdmF0ZSgkcHJpdktleVN0cik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9wZW5zc2xfc2lnbigkc2lnbkhlYWRlciwgJHNpZ25hdHVyZSwgJHByaXZLZXksICdzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbicpKSB7CisgICAgICAgICAgICBvcGVuc3NsX3BrZXlfZnJlZSgkcHJpdktleSk7CisKKyAgICAgICAgICAgIHJldHVybiBiYXNlNjRfZW5jb2RlKCRzaWduYXR1cmUpOworICAgICAgICB9CisgICAgICAgIG9wZW5zc2xfcGtleV9mcmVlKCRwcml2S2V5KTsKKworICAgICAgICByZXR1cm4gJyc7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYSBES0lNIGNhbm9uaWNhbGl6YXRpb24gaGVhZGVyLgorICAgICAqIFVzZXMgdGhlICdyZWxheGVkJyBhbGdvcml0aG0gZnJvbSBSRkM2Mzc2IHNlY3Rpb24gMy40LjIuCisgICAgICogQ2Fub25pY2FsaXplZCBoZWFkZXJzIHNob3VsZCAqYWx3YXlzKiB1c2UgQ1JMRiwgcmVnYXJkbGVzcyBvZiBtYWlsZXIgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYzNzYjc2VjdGlvbi0zLjQuMgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc2lnbkhlYWRlciBIZWFkZXIKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIERLSU1fSGVhZGVyQygkc2lnbkhlYWRlcikKKyAgICB7CisgICAgICAgIC8vTm9ybWFsaXplIGJyZWFrcyB0byBDUkxGIChyZWdhcmRsZXNzIG9mIHRoZSBtYWlsZXIpCisgICAgICAgICRzaWduSGVhZGVyID0gc3RhdGljOjpub3JtYWxpemVCcmVha3MoJHNpZ25IZWFkZXIsIHNlbGY6OkNSTEYpOworICAgICAgICAvL1VuZm9sZCBoZWFkZXIgbGluZXMKKyAgICAgICAgLy9Ob3RlIFBDUkUgXHMgaXMgdG9vIGJyb2FkIGEgZGVmaW5pdGlvbiBvZiB3aGl0ZXNwYWNlOyBSRkM1MzIyIGRlZmluZXMgaXQgYXMgYFsgXHRdYAorICAgICAgICAvL0BzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUzMjIjc2VjdGlvbi0yLjIKKyAgICAgICAgLy9UaGF0IG1lYW5zIHRoaXMgbWF5IGJyZWFrIGlmIHlvdSBkbyBzb21ldGhpbmcgZGFmdCBsaWtlIHB1dCB2ZXJ0aWNhbCB0YWJzIGluIHlvdXIgaGVhZGVycy4KKyAgICAgICAgJHNpZ25IZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9cclxuWyBcdF0rLycsICcgJywgJHNpZ25IZWFkZXIpOworICAgICAgICAvL0JyZWFrIGhlYWRlcnMgb3V0IGludG8gYW4gYXJyYXkKKyAgICAgICAgJGxpbmVzID0gZXhwbG9kZShzZWxmOjpDUkxGLCAkc2lnbkhlYWRlcik7CisgICAgICAgIGZvcmVhY2ggKCRsaW5lcyBhcyAka2V5ID0+ICRsaW5lKSB7CisgICAgICAgICAgICAvL0lmIHRoZSBoZWFkZXIgaXMgbWlzc2luZyBhIDosIHNraXAgaXQgYXMgaXQncyBpbnZhbGlkCisgICAgICAgICAgICAvL1RoaXMgaXMgbGlrZWx5IHRvIGhhcHBlbiBiZWNhdXNlIHRoZSBleHBsb2RlKCkgYWJvdmUgd2lsbCBhbHNvIHNwbGl0CisgICAgICAgICAgICAvL29uIHRoZSB0cmFpbGluZyBMRSwgbGVhdmluZyBhbiBlbXB0eSBsaW5lCisgICAgICAgICAgICBpZiAoc3RycG9zKCRsaW5lLCAnOicpID09PSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGlzdCgkaGVhZGluZywgJHZhbHVlKSA9IGV4cGxvZGUoJzonLCAkbGluZSwgMik7CisgICAgICAgICAgICAvL0xvd2VyLWNhc2UgaGVhZGVyIG5hbWUKKyAgICAgICAgICAgICRoZWFkaW5nID0gc3RydG9sb3dlcigkaGVhZGluZyk7CisgICAgICAgICAgICAvL0NvbGxhcHNlIHdoaXRlIHNwYWNlIHdpdGhpbiB0aGUgdmFsdWUsIGFsc28gY29udmVydCBXU1AgdG8gc3BhY2UKKyAgICAgICAgICAgICR2YWx1ZSA9IHByZWdfcmVwbGFjZSgnL1sgXHRdKy8nLCAnICcsICR2YWx1ZSk7CisgICAgICAgICAgICAvL1JGQzYzNzYgaXMgc2xpZ2h0bHkgdW5jbGVhciBoZXJlIC0gaXQgc2F5cyB0byBkZWxldGUgc3BhY2UgYXQgdGhlICplbmQqIG9mIGVhY2ggdmFsdWUKKyAgICAgICAgICAgIC8vQnV0IHRoZW4gc2F5cyB0byBkZWxldGUgc3BhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgY29sb24uCisgICAgICAgICAgICAvL05ldCByZXN1bHQgaXMgdGhlIHNhbWUgYXMgdHJpbW1pbmcgYm90aCBlbmRzIG9mIHRoZSB2YWx1ZS4KKyAgICAgICAgICAgIC8vQnkgZWxpbWluYXRpb24sIHRoZSBzYW1lIGFwcGxpZXMgdG8gdGhlIGZpZWxkIG5hbWUKKyAgICAgICAgICAgICRsaW5lc1ska2V5XSA9IHRyaW0oJGhlYWRpbmcsICIgXHQiKSAuICc6JyAuIHRyaW0oJHZhbHVlLCAiIFx0Iik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW1wbG9kZShzZWxmOjpDUkxGLCAkbGluZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGEgREtJTSBjYW5vbmljYWxpemF0aW9uIGJvZHkuCisgICAgICogVXNlcyB0aGUgJ3NpbXBsZScgYWxnb3JpdGhtIGZyb20gUkZDNjM3NiBzZWN0aW9uIDMuNC4zLgorICAgICAqIENhbm9uaWNhbGl6ZWQgYm9kaWVzIHNob3VsZCAqYWx3YXlzKiB1c2UgQ1JMRiwgcmVnYXJkbGVzcyBvZiBtYWlsZXIgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYzNzYjc2VjdGlvbi0zLjQuMworICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkYm9keSBNZXNzYWdlIEJvZHkKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIERLSU1fQm9keUMoJGJvZHkpCisgICAgeworICAgICAgICBpZiAoZW1wdHkoJGJvZHkpKSB7CisgICAgICAgICAgICByZXR1cm4gc2VsZjo6Q1JMRjsKKyAgICAgICAgfQorICAgICAgICAvLyBOb3JtYWxpemUgbGluZSBlbmRpbmdzIHRvIENSTEYKKyAgICAgICAgJGJvZHkgPSBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkYm9keSwgc2VsZjo6Q1JMRik7CisKKyAgICAgICAgLy9SZWR1Y2UgbXVsdGlwbGUgdHJhaWxpbmcgbGluZSBicmVha3MgdG8gYSBzaW5nbGUgb25lCisgICAgICAgIHJldHVybiBzdGF0aWM6OnN0cmlwVHJhaWxpbmdXU1AoJGJvZHkpIC4gc2VsZjo6Q1JMRjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgdGhlIERLSU0gaGVhZGVyIGFuZCBib2R5IGluIGEgbmV3IG1lc3NhZ2UgaGVhZGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkaGVhZGVyc19saW5lIEhlYWRlciBsaW5lcworICAgICAqIEBwYXJhbSBzdHJpbmcgJHN1YmplY3QgICAgICBTdWJqZWN0CisgICAgICogQHBhcmFtIHN0cmluZyAkYm9keSAgICAgICAgIEJvZHkKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBES0lNX0FkZCgkaGVhZGVyc19saW5lLCAkc3ViamVjdCwgJGJvZHkpCisgICAgeworICAgICAgICAkREtJTXNpZ25hdHVyZVR5cGUgPSAncnNhLXNoYTI1Nic7IC8vIFNpZ25hdHVyZSAmIGhhc2ggYWxnb3JpdGhtcworICAgICAgICAkREtJTWNhbm9uaWNhbGl6YXRpb24gPSAncmVsYXhlZC9zaW1wbGUnOyAvLyBDYW5vbmljYWxpemF0aW9uIG1ldGhvZHMgb2YgaGVhZGVyICYgYm9keQorICAgICAgICAkREtJTXF1ZXJ5ID0gJ2Rucy90eHQnOyAvLyBRdWVyeSBtZXRob2QKKyAgICAgICAgJERLSU10aW1lID0gdGltZSgpOworICAgICAgICAvL0Fsd2F5cyBzaWduIHRoZXNlIGhlYWRlcnMgd2l0aG91dCBiZWluZyBhc2tlZAorICAgICAgICAvL1JlY29tbWVuZGVkIGxpc3QgZnJvbSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjM3NiNzZWN0aW9uLTUuNC4xCisgICAgICAgICRhdXRvU2lnbkhlYWRlcnMgPSBbCisgICAgICAgICAgICAnZnJvbScsCisgICAgICAgICAgICAndG8nLAorICAgICAgICAgICAgJ2NjJywKKyAgICAgICAgICAgICdkYXRlJywKKyAgICAgICAgICAgICdzdWJqZWN0JywKKyAgICAgICAgICAgICdyZXBseS10bycsCisgICAgICAgICAgICAnbWVzc2FnZS1pZCcsCisgICAgICAgICAgICAnY29udGVudC10eXBlJywKKyAgICAgICAgICAgICdtaW1lLXZlcnNpb24nLAorICAgICAgICAgICAgJ3gtbWFpbGVyJywKKyAgICAgICAgXTsKKyAgICAgICAgaWYgKHN0cmlwb3MoJGhlYWRlcnNfbGluZSwgJ1N1YmplY3QnKSA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgICRoZWFkZXJzX2xpbmUgLj0gJ1N1YmplY3Q6ICcgLiAkc3ViamVjdCAuIHN0YXRpYzo6JExFOworICAgICAgICB9CisgICAgICAgICRoZWFkZXJMaW5lcyA9IGV4cGxvZGUoc3RhdGljOjokTEUsICRoZWFkZXJzX2xpbmUpOworICAgICAgICAkY3VycmVudEhlYWRlckxhYmVsID0gJyc7CisgICAgICAgICRjdXJyZW50SGVhZGVyVmFsdWUgPSAnJzsKKyAgICAgICAgJHBhcnNlZEhlYWRlcnMgPSBbXTsKKyAgICAgICAgJGhlYWRlckxpbmVJbmRleCA9IDA7CisgICAgICAgICRoZWFkZXJMaW5lQ291bnQgPSBjb3VudCgkaGVhZGVyTGluZXMpOworICAgICAgICBmb3JlYWNoICgkaGVhZGVyTGluZXMgYXMgJGhlYWRlckxpbmUpIHsKKyAgICAgICAgICAgICRtYXRjaGVzID0gW107CisgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL14oW14gXHRdKj8pKD86OlsgXHRdKikoLiopJC8nLCAkaGVhZGVyTGluZSwgJG1hdGNoZXMpKSB7CisgICAgICAgICAgICAgICAgaWYgKCRjdXJyZW50SGVhZGVyTGFiZWwgIT09ICcnKSB7CisgICAgICAgICAgICAgICAgICAgIC8vV2Ugd2VyZSBwcmV2aW91c2x5IGluIGFub3RoZXIgaGVhZGVyOyBUaGlzIGlzIHRoZSBzdGFydCBvZiBhIG5ldyBoZWFkZXIsIHNvIHNhdmUgdGhlIHByZXZpb3VzIG9uZQorICAgICAgICAgICAgICAgICAgICAkcGFyc2VkSGVhZGVyc1tdID0gWydsYWJlbCcgPT4gJGN1cnJlbnRIZWFkZXJMYWJlbCwgJ3ZhbHVlJyA9PiAkY3VycmVudEhlYWRlclZhbHVlXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGN1cnJlbnRIZWFkZXJMYWJlbCA9ICRtYXRjaGVzWzFdOworICAgICAgICAgICAgICAgICRjdXJyZW50SGVhZGVyVmFsdWUgPSAkbWF0Y2hlc1syXTsKKyAgICAgICAgICAgIH0gZWxzZWlmIChwcmVnX21hdGNoKCcvXlsgXHRdKyguKikkLycsICRoZWFkZXJMaW5lLCAkbWF0Y2hlcykpIHsKKyAgICAgICAgICAgICAgICAvL1RoaXMgaXMgYSBmb2xkZWQgY29udGludWF0aW9uIG9mIHRoZSBjdXJyZW50IGhlYWRlciwgc28gdW5mb2xkIGl0CisgICAgICAgICAgICAgICAgJGN1cnJlbnRIZWFkZXJWYWx1ZSAuPSAnICcgLiAkbWF0Y2hlc1sxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrJGhlYWRlckxpbmVJbmRleDsKKyAgICAgICAgICAgIGlmICgkaGVhZGVyTGluZUluZGV4ID49ICRoZWFkZXJMaW5lQ291bnQpIHsKKyAgICAgICAgICAgICAgICAvL1RoaXMgd2FzIHRoZSBsYXN0IGxpbmUsIHNvIGZpbmlzaCBvZmYgdGhpcyBoZWFkZXIKKyAgICAgICAgICAgICAgICAkcGFyc2VkSGVhZGVyc1tdID0gWydsYWJlbCcgPT4gJGN1cnJlbnRIZWFkZXJMYWJlbCwgJ3ZhbHVlJyA9PiAkY3VycmVudEhlYWRlclZhbHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAkY29waWVkSGVhZGVycyA9IFtdOworICAgICAgICAkaGVhZGVyc1RvU2lnbktleXMgPSBbXTsKKyAgICAgICAgJGhlYWRlcnNUb1NpZ24gPSBbXTsKKyAgICAgICAgZm9yZWFjaCAoJHBhcnNlZEhlYWRlcnMgYXMgJGhlYWRlcikgeworICAgICAgICAgICAgLy9JcyB0aGlzIGhlYWRlciBvbmUgdGhhdCBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBES0lNIHNpZ25hdHVyZT8KKyAgICAgICAgICAgIGlmIChpbl9hcnJheShzdHJ0b2xvd2VyKCRoZWFkZXJbJ2xhYmVsJ10pLCAkYXV0b1NpZ25IZWFkZXJzLCB0cnVlKSkgeworICAgICAgICAgICAgICAgICRoZWFkZXJzVG9TaWduS2V5c1tdID0gJGhlYWRlclsnbGFiZWwnXTsKKyAgICAgICAgICAgICAgICAkaGVhZGVyc1RvU2lnbltdID0gJGhlYWRlclsnbGFiZWwnXSAuICc6ICcgLiAkaGVhZGVyWyd2YWx1ZSddOworICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+REtJTV9jb3B5SGVhZGVyRmllbGRzKSB7CisgICAgICAgICAgICAgICAgICAgICRjb3BpZWRIZWFkZXJzW10gPSAkaGVhZGVyWydsYWJlbCddIC4gJzonIC4gLy9Ob3RlIG5vIHNwYWNlIGFmdGVyIHRoaXMsIGFzIHBlciBSRkMKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cl9yZXBsYWNlKCd8JywgJz03QycsICR0aGlzLT5ES0lNX1FQKCRoZWFkZXJbJ3ZhbHVlJ10pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL0lzIHRoaXMgYW4gZXh0cmEgY3VzdG9tIGhlYWRlciB3ZSd2ZSBiZWVuIGFza2VkIHRvIHNpZ24/CisgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGhlYWRlclsnbGFiZWwnXSwgJHRoaXMtPkRLSU1fZXh0cmFIZWFkZXJzLCB0cnVlKSkgeworICAgICAgICAgICAgICAgIC8vRmluZCBpdHMgdmFsdWUgaW4gY3VzdG9tIGhlYWRlcnMKKyAgICAgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+Q3VzdG9tSGVhZGVyIGFzICRjdXN0b21IZWFkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjdXN0b21IZWFkZXJbMF0gPT09ICRoZWFkZXJbJ2xhYmVsJ10pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkZXJzVG9TaWduS2V5c1tdID0gJGhlYWRlclsnbGFiZWwnXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkZXJzVG9TaWduW10gPSAkaGVhZGVyWydsYWJlbCddIC4gJzogJyAuICRoZWFkZXJbJ3ZhbHVlJ107CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPkRLSU1fY29weUhlYWRlckZpZWxkcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb3BpZWRIZWFkZXJzW10gPSAkaGVhZGVyWydsYWJlbCddIC4gJzonIC4gLy9Ob3RlIG5vIHNwYWNlIGFmdGVyIHRoaXMsIGFzIHBlciBSRkMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3JlcGxhY2UoJ3wnLCAnPTdDJywgJHRoaXMtPkRLSU1fUVAoJGhlYWRlclsndmFsdWUnXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy9Ta2lwIHN0cmFpZ2h0IHRvIHRoZSBuZXh0IGhlYWRlcgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgMjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAkY29waWVkSGVhZGVyRmllbGRzID0gJyc7CisgICAgICAgIGlmICgkdGhpcy0+REtJTV9jb3B5SGVhZGVyRmllbGRzICYmIGNvdW50KCRjb3BpZWRIZWFkZXJzKSA+IDApIHsKKyAgICAgICAgICAgIC8vQXNzZW1ibGUgYSBES0lNICd6JyB0YWcKKyAgICAgICAgICAgICRjb3BpZWRIZWFkZXJGaWVsZHMgPSAnIHo9JzsKKyAgICAgICAgICAgICRmaXJzdCA9IHRydWU7CisgICAgICAgICAgICBmb3JlYWNoICgkY29waWVkSGVhZGVycyBhcyAkY29waWVkSGVhZGVyKSB7CisgICAgICAgICAgICAgICAgaWYgKCEkZmlyc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvcGllZEhlYWRlckZpZWxkcyAuPSBzdGF0aWM6OiRMRSAuICcgfCc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vRm9sZCBsb25nIHZhbHVlcworICAgICAgICAgICAgICAgIGlmIChzdHJsZW4oJGNvcGllZEhlYWRlcikgPiBzZWxmOjpTVERfTElORV9MRU5HVEggLSAzKSB7CisgICAgICAgICAgICAgICAgICAgICRjb3BpZWRIZWFkZXJGaWVsZHMgLj0gc3Vic3RyKAorICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtfc3BsaXQoJGNvcGllZEhlYWRlciwgc2VsZjo6U1REX0xJTkVfTEVOR1RIIC0gMywgc3RhdGljOjokTEUgLiBzZWxmOjpGV1MpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIC1zdHJsZW4oc3RhdGljOjokTEUgLiBzZWxmOjpGV1MpCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvcGllZEhlYWRlckZpZWxkcyAuPSAkY29waWVkSGVhZGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRjb3BpZWRIZWFkZXJGaWVsZHMgLj0gJzsnIC4gc3RhdGljOjokTEU7CisgICAgICAgIH0KKyAgICAgICAgJGhlYWRlcktleXMgPSAnIGg9JyAuIGltcGxvZGUoJzonLCAkaGVhZGVyc1RvU2lnbktleXMpIC4gJzsnIC4gc3RhdGljOjokTEU7CisgICAgICAgICRoZWFkZXJWYWx1ZXMgPSBpbXBsb2RlKHN0YXRpYzo6JExFLCAkaGVhZGVyc1RvU2lnbik7CisgICAgICAgICRib2R5ID0gJHRoaXMtPkRLSU1fQm9keUMoJGJvZHkpOworICAgICAgICAkREtJTWI2NCA9IGJhc2U2NF9lbmNvZGUocGFjaygnSConLCBoYXNoKCdzaGEyNTYnLCAkYm9keSkpKTsgLy8gQmFzZTY0IG9mIHBhY2tlZCBiaW5hcnkgU0hBLTI1NiBoYXNoIG9mIGJvZHkKKyAgICAgICAgJGlkZW50ID0gJyc7CisgICAgICAgIGlmICgnJyAhPT0gJHRoaXMtPkRLSU1faWRlbnRpdHkpIHsKKyAgICAgICAgICAgICRpZGVudCA9ICcgaT0nIC4gJHRoaXMtPkRLSU1faWRlbnRpdHkgLiAnOycgLiBzdGF0aWM6OiRMRTsKKyAgICAgICAgfQorICAgICAgICAvL1RoZSBES0lNLVNpZ25hdHVyZSBoZWFkZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHNpZ25hdHVyZSAqZXhjZXB0IGZvciogdGhlIHZhbHVlIG9mIHRoZSBgYmAgdGFnCisgICAgICAgIC8vd2hpY2ggaXMgYXBwZW5kZWQgYWZ0ZXIgY2FsY3VsYXRpbmcgdGhlIHNpZ25hdHVyZQorICAgICAgICAvL2h0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2Mzc2I3NlY3Rpb24tMy41CisgICAgICAgICRka2ltU2lnbmF0dXJlSGVhZGVyID0gJ0RLSU0tU2lnbmF0dXJlOiB2PTE7JyAuCisgICAgICAgICAgICAnIGQ9JyAuICR0aGlzLT5ES0lNX2RvbWFpbiAuICc7JyAuCisgICAgICAgICAgICAnIHM9JyAuICR0aGlzLT5ES0lNX3NlbGVjdG9yIC4gJzsnIC4gc3RhdGljOjokTEUgLgorICAgICAgICAgICAgJyBhPScgLiAkREtJTXNpZ25hdHVyZVR5cGUgLiAnOycgLgorICAgICAgICAgICAgJyBxPScgLiAkREtJTXF1ZXJ5IC4gJzsnIC4KKyAgICAgICAgICAgICcgdD0nIC4gJERLSU10aW1lIC4gJzsnIC4KKyAgICAgICAgICAgICcgYz0nIC4gJERLSU1jYW5vbmljYWxpemF0aW9uIC4gJzsnIC4gc3RhdGljOjokTEUgLgorICAgICAgICAgICAgJGhlYWRlcktleXMgLgorICAgICAgICAgICAgJGlkZW50IC4KKyAgICAgICAgICAgICRjb3BpZWRIZWFkZXJGaWVsZHMgLgorICAgICAgICAgICAgJyBiaD0nIC4gJERLSU1iNjQgLiAnOycgLiBzdGF0aWM6OiRMRSAuCisgICAgICAgICAgICAnIGI9JzsKKyAgICAgICAgLy9DYW5vbmljYWxpemUgdGhlIHNldCBvZiBoZWFkZXJzCisgICAgICAgICRjYW5vbmljYWxpemVkSGVhZGVycyA9ICR0aGlzLT5ES0lNX0hlYWRlckMoCisgICAgICAgICAgICAkaGVhZGVyVmFsdWVzIC4gc3RhdGljOjokTEUgLiAkZGtpbVNpZ25hdHVyZUhlYWRlcgorICAgICAgICApOworICAgICAgICAkc2lnbmF0dXJlID0gJHRoaXMtPkRLSU1fU2lnbigkY2Fub25pY2FsaXplZEhlYWRlcnMpOworICAgICAgICAkc2lnbmF0dXJlID0gdHJpbShjaHVua19zcGxpdCgkc2lnbmF0dXJlLCBzZWxmOjpTVERfTElORV9MRU5HVEggLSAzLCBzdGF0aWM6OiRMRSAuIHNlbGY6OkZXUykpOworCisgICAgICAgIHJldHVybiBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkZGtpbVNpZ25hdHVyZUhlYWRlciAuICRzaWduYXR1cmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVjdCBpZiBhIHN0cmluZyBjb250YWlucyBhIGxpbmUgbG9uZ2VyIHRoYW4gdGhlIG1heGltdW0gbGluZSBsZW5ndGgKKyAgICAgKiBhbGxvd2VkIGJ5IFJGQyAyODIyIHNlY3Rpb24gMi4xLjEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaGFzTGluZUxvbmdlclRoYW5NYXgoJHN0cikKKyAgICB7CisgICAgICAgIHJldHVybiAoYm9vbCkgcHJlZ19tYXRjaCgnL14oLnsnIC4gKHNlbGY6Ok1BWF9MSU5FX0xFTkdUSCArIHN0cmxlbihzdGF0aWM6OiRMRSkpIC4gJyx9KS9tJywgJHN0cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgYSBzdHJpbmcgY29udGFpbnMgYW55ICJzcGVjaWFsIiBjaGFyYWN0ZXJzLCBkb3VibGUtcXVvdGUgdGhlIG5hbWUsCisgICAgICogYW5kIGVzY2FwZSBhbnkgZG91YmxlIHF1b3RlcyB3aXRoIGEgYmFja3NsYXNoLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc3RyCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqCisgICAgICogQHNlZSBSRkM4MjIgMy40LjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHF1b3RlZFN0cmluZygkc3RyKQorICAgIHsKKyAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9bICgpPD5ALDs6IlwvXFtcXT89XS8nLCAkc3RyKSkgeworICAgICAgICAgICAgLy9JZiB0aGUgc3RyaW5nIGNvbnRhaW5zIGFueSBvZiB0aGVzZSBjaGFycywgaXQgbXVzdCBiZSBkb3VibGUtcXVvdGVkCisgICAgICAgICAgICAvL2FuZCBhbnkgZG91YmxlIHF1b3RlcyBtdXN0IGJlIGVzY2FwZWQgd2l0aCBhIGJhY2tzbGFzaAorICAgICAgICAgICAgcmV0dXJuICciJyAuIHN0cl9yZXBsYWNlKCciJywgJ1xcIicsICRzdHIpIC4gJyInOworICAgICAgICB9CisKKyAgICAgICAgLy9SZXR1cm4gdGhlIHN0cmluZyB1bnRvdWNoZWQsIGl0IGRvZXNuJ3QgbmVlZCBxdW90aW5nCisgICAgICAgIHJldHVybiAkc3RyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyBmb3IgcHVibGljIHJlYWQgYWNjZXNzIHRvICd0bycgcHJvcGVydHkuCisgICAgICogQmVmb3JlIHRoZSBzZW5kKCkgY2FsbCwgcXVldWVkIGFkZHJlc3NlcyAoaS5lLiB3aXRoIElETikgYXJlIG5vdCB5ZXQgaW5jbHVkZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFycmF5CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFRvQWRkcmVzc2VzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+dG87CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIGZvciBwdWJsaWMgcmVhZCBhY2Nlc3MgdG8gJ2NjJyBwcm9wZXJ0eS4KKyAgICAgKiBCZWZvcmUgdGhlIHNlbmQoKSBjYWxsLCBxdWV1ZWQgYWRkcmVzc2VzIChpLmUuIHdpdGggSUROKSBhcmUgbm90IHlldCBpbmNsdWRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q2NBZGRyZXNzZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5jYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgZm9yIHB1YmxpYyByZWFkIGFjY2VzcyB0byAnYmNjJyBwcm9wZXJ0eS4KKyAgICAgKiBCZWZvcmUgdGhlIHNlbmQoKSBjYWxsLCBxdWV1ZWQgYWRkcmVzc2VzIChpLmUuIHdpdGggSUROKSBhcmUgbm90IHlldCBpbmNsdWRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QmNjQWRkcmVzc2VzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+YmNjOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyBmb3IgcHVibGljIHJlYWQgYWNjZXNzIHRvICdSZXBseVRvJyBwcm9wZXJ0eS4KKyAgICAgKiBCZWZvcmUgdGhlIHNlbmQoKSBjYWxsLCBxdWV1ZWQgYWRkcmVzc2VzIChpLmUuIHdpdGggSUROKSBhcmUgbm90IHlldCBpbmNsdWRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVwbHlUb0FkZHJlc3NlcygpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPlJlcGx5VG87CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIGZvciBwdWJsaWMgcmVhZCBhY2Nlc3MgdG8gJ2FsbF9yZWNpcGllbnRzJyBwcm9wZXJ0eS4KKyAgICAgKiBCZWZvcmUgdGhlIHNlbmQoKSBjYWxsLCBxdWV1ZWQgYWRkcmVzc2VzIChpLmUuIHdpdGggSUROKSBhcmUgbm90IHlldCBpbmNsdWRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWxsUmVjaXBpZW50QWRkcmVzc2VzKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+YWxsX3JlY2lwaWVudHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIGNhbGxiYWNrLgorICAgICAqCisgICAgICogQHBhcmFtIGJvb2wgICAkaXNTZW50CisgICAgICogQHBhcmFtIGFycmF5ICAkdG8KKyAgICAgKiBAcGFyYW0gYXJyYXkgICRjYworICAgICAqIEBwYXJhbSBhcnJheSAgJGJjYworICAgICAqIEBwYXJhbSBzdHJpbmcgJHN1YmplY3QKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRib2R5CisgICAgICogQHBhcmFtIHN0cmluZyAkZnJvbQorICAgICAqIEBwYXJhbSBhcnJheSAgJGV4dHJhCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGRvQ2FsbGJhY2soJGlzU2VudCwgJHRvLCAkY2MsICRiY2MsICRzdWJqZWN0LCAkYm9keSwgJGZyb20sICRleHRyYSkKKyAgICB7CisgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPmFjdGlvbl9mdW5jdGlvbikgJiYgaXNfY2FsbGFibGUoJHRoaXMtPmFjdGlvbl9mdW5jdGlvbikpIHsKKyAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jKCR0aGlzLT5hY3Rpb25fZnVuY3Rpb24sICRpc1NlbnQsICR0bywgJGNjLCAkYmNjLCAkc3ViamVjdCwgJGJvZHksICRmcm9tLCAkZXh0cmEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBPQXV0aCBpbnN0YW5jZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gT0F1dGgKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0T0F1dGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5vYXV0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYW4gT0F1dGggaW5zdGFuY2UuCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldE9BdXRoKE9BdXRoICRvYXV0aCkKKyAgICB7CisgICAgICAgICR0aGlzLT5vYXV0aCA9ICRvYXV0aDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvUE9QMy5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IvcGhwbWFpbGVyL3BocG1haWxlci9zcmMvUE9QMy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0Yzg4ZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL3NyYy9QT1AzLnBocApAQCAtMCwwICsxLDQyMSBAQAorPD9waHAKKy8qKgorICogUEhQTWFpbGVyIFBPUC1CZWZvcmUtU01UUCBBdXRoZW50aWNhdGlvbiBDbGFzcy4KKyAqIFBIUCBWZXJzaW9uIDUuNS4KKyAqCisgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyLyBUaGUgUEhQTWFpbGVyIEdpdEh1YiBwcm9qZWN0CisgKgorICogQGF1dGhvciAgICBNYXJjdXMgQm9pbnRvbiAoU3luY2hyby9jb29sYnJ1KSA8cGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51az4KKyAqIEBhdXRob3IgICAgSmltIEphZ2llbHNraSAoamltamFnKSA8amltamFnQGdtYWlsLmNvbT4KKyAqIEBhdXRob3IgICAgQW5keSBQcmV2b3N0IChjb2Rld29yeHRlY2gpIDxjb2Rld29yeHRlY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICogQGF1dGhvciAgICBCcmVudCBSLiBNYXR6ZWxsZSAob3JpZ2luYWwgZm91bmRlcikKKyAqIEBjb3B5cmlnaHQgMjAxMiAtIDIwMTkgTWFyY3VzIEJvaW50b24KKyAqIEBjb3B5cmlnaHQgMjAxMCAtIDIwMTIgSmltIEphZ2llbHNraQorICogQGNvcHlyaWdodCAyMDA0IC0gMjAwOSBBbmR5IFByZXZvc3QKKyAqIEBsaWNlbnNlICAgaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogQG5vdGUgICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCAtIFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisgKi8KKworbmFtZXNwYWNlIFBIUE1haWxlclxQSFBNYWlsZXI7CisKKy8qKgorICogUEhQTWFpbGVyIFBPUC1CZWZvcmUtU01UUCBBdXRoZW50aWNhdGlvbiBDbGFzcy4KKyAqIFNwZWNpZmljYWxseSBmb3IgUEhQTWFpbGVyIHRvIHVzZSBmb3IgUkZDMTkzOSBQT1AtYmVmb3JlLVNNVFAgYXV0aGVudGljYXRpb24uCisgKiAxKSBUaGlzIGNsYXNzIGRvZXMgbm90IHN1cHBvcnQgQVBPUCBhdXRoZW50aWNhdGlvbi4KKyAqIDIpIE9wZW5pbmcgYW5kIGNsb3NpbmcgbG90cyBvZiBQT1AzIGNvbm5lY3Rpb25zIGNhbiBiZSBxdWl0ZSBzbG93LiBJZiB5b3UgbmVlZAorICogICB0byBzZW5kIGEgYmF0Y2ggb2YgZW1haWxzIHRoZW4ganVzdCBwZXJmb3JtIHRoZSBhdXRoZW50aWNhdGlvbiBvbmNlIGF0IHRoZSBzdGFydCwKKyAqICAgYW5kIHRoZW4gbG9vcCB0aHJvdWdoIHlvdXIgbWFpbCBzZW5kaW5nIHNjcmlwdC4gUHJvdmlkaW5nIHRoaXMgcHJvY2VzcyBkb2Vzbid0CisgKiAgIHRha2UgbG9uZ2VyIHRoYW4gdGhlIHZlcmlmaWNhdGlvbiBwZXJpb2QgbGFzdHMgb24geW91ciBQT1AzIHNlcnZlciwgeW91IHNob3VsZCBiZSBmaW5lLgorICogMykgVGhpcyBpcyByZWFsbHkgYW5jaWVudCB0ZWNobm9sb2d5OyB5b3Ugc2hvdWxkIG9ubHkgbmVlZCB0byB1c2UgaXQgdG8gdGFsayB0byB2ZXJ5IG9sZCBzeXN0ZW1zLgorICogNCkgVGhpcyBQT1AzIGNsYXNzIGlzIGRlbGliZXJhdGVseSBsaWdodHdlaWdodCBhbmQgaW5jb21wbGV0ZSwgaW1wbGVtZW50aW5nIGp1c3QKKyAqICAgZW5vdWdoIHRvIGRvIGF1dGhlbnRpY2F0aW9uLgorICogICBJZiB5b3Ugd2FudCBhIG1vcmUgY29tcGxldGUgY2xhc3MgdGhlcmUgYXJlIG90aGVyIFBPUDMgY2xhc3NlcyBmb3IgUEhQIGF2YWlsYWJsZS4KKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgRGF2ZXkgKG9yaWdpbmFsIGF1dGhvcikgPHJpY2hAY29yZXBocC5jby51az4KKyAqIEBhdXRob3IgTWFyY3VzIEJvaW50b24gKFN5bmNocm8vY29vbGJydSkgPHBocG1haWxlckBzeW5jaHJvbWVkaWEuY28udWs+CisgKiBAYXV0aG9yIEppbSBKYWdpZWxza2kgKGppbWphZykgPGppbWphZ0BnbWFpbC5jb20+CisgKiBAYXV0aG9yIEFuZHkgUHJldm9zdCAoY29kZXdvcnh0ZWNoKSA8Y29kZXdvcnh0ZWNoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyAqLworY2xhc3MgUE9QMworeworICAgIC8qKgorICAgICAqIFRoZSBQT1AzIFBIUE1haWxlciBWZXJzaW9uIG51bWJlci4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgY29uc3QgVkVSU0lPTiA9ICc2LjEuNic7CisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IFBPUDMgcG9ydCBudW1iZXIuCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIGNvbnN0IERFRkFVTFRfUE9SVCA9IDExMDsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgdGltZW91dCBpbiBzZWNvbmRzLgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBjb25zdCBERUZBVUxUX1RJTUVPVVQgPSAzMDsKKworICAgIC8qKgorICAgICAqIERlYnVnIGRpc3BsYXkgbGV2ZWwuCisgICAgICogT3B0aW9uczogMCA9IG5vLCAxKyA9IHllcy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgcHVibGljICRkb19kZWJ1ZyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBQT1AzIG1haWwgc2VydmVyIGhvc3RuYW1lLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgJGhvc3Q7CisKKyAgICAvKioKKyAgICAgKiBQT1AzIHBvcnQgbnVtYmVyLgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgJHBvcnQ7CisKKyAgICAvKioKKyAgICAgKiBQT1AzIFRpbWVvdXQgVmFsdWUgaW4gc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgcHVibGljICR0dmFsOworCisgICAgLyoqCisgICAgICogUE9QMyB1c2VybmFtZS4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgcHVibGljICR1c2VybmFtZTsKKworICAgIC8qKgorICAgICAqIFBPUDMgcGFzc3dvcmQuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyAkcGFzc3dvcmQ7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSBoYW5kbGUgZm9yIHRoZSBQT1AzIGNvbm5lY3Rpb24gc29ja2V0LgorICAgICAqCisgICAgICogQHZhciByZXNvdXJjZQorICAgICAqLworICAgIHByb3RlY3RlZCAkcG9wX2Nvbm47CisKKyAgICAvKioKKyAgICAgKiBBcmUgd2UgY29ubmVjdGVkPworICAgICAqCisgICAgICogQHZhciBib29sCisgICAgICovCisgICAgcHJvdGVjdGVkICRjb25uZWN0ZWQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEVycm9yIGNvbnRhaW5lci4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGVycm9ycyA9IFtdOworCisgICAgLyoqCisgICAgICogTGluZSBicmVhayBjb25zdGFudC4KKyAgICAgKi8KKyAgICBjb25zdCBMRSA9ICJcclxuIjsKKworICAgIC8qKgorICAgICAqIFNpbXBsZSBzdGF0aWMgd3JhcHBlciBmb3IgYWxsLWluLW9uZSBQT1AgYmVmb3JlIFNNVFAuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJGhvc3QgICAgICAgIFRoZSBob3N0bmFtZSB0byBjb25uZWN0IHRvCisgICAgICogQHBhcmFtIGludHxib29sICRwb3J0ICAgICAgICBUaGUgcG9ydCBudW1iZXIgdG8gY29ubmVjdCB0bworICAgICAqIEBwYXJhbSBpbnR8Ym9vbCAkdGltZW91dCAgICAgVGhlIHRpbWVvdXQgdmFsdWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJHVzZXJuYW1lCisgICAgICogQHBhcmFtIHN0cmluZyAgICRwYXNzd29yZAorICAgICAqIEBwYXJhbSBpbnQgICAgICAkZGVidWdfbGV2ZWwKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcG9wQmVmb3JlU210cCgKKyAgICAgICAgJGhvc3QsCisgICAgICAgICRwb3J0ID0gZmFsc2UsCisgICAgICAgICR0aW1lb3V0ID0gZmFsc2UsCisgICAgICAgICR1c2VybmFtZSA9ICcnLAorICAgICAgICAkcGFzc3dvcmQgPSAnJywKKyAgICAgICAgJGRlYnVnX2xldmVsID0gMAorICAgICkgeworICAgICAgICAkcG9wID0gbmV3IHNlbGYoKTsKKworICAgICAgICByZXR1cm4gJHBvcC0+YXV0aG9yaXNlKCRob3N0LCAkcG9ydCwgJHRpbWVvdXQsICR1c2VybmFtZSwgJHBhc3N3b3JkLCAkZGVidWdfbGV2ZWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF1dGhlbnRpY2F0ZSB3aXRoIGEgUE9QMyBzZXJ2ZXIuCisgICAgICogQSBjb25uZWN0LCBsb2dpbiwgZGlzY29ubmVjdCBzZXF1ZW5jZQorICAgICAqIGFwcHJvcHJpYXRlIGZvciBQT1AtYmVmb3JlIFNNVFAgYXV0aG9yaXNhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgICAkaG9zdCAgICAgICAgVGhlIGhvc3RuYW1lIHRvIGNvbm5lY3QgdG8KKyAgICAgKiBAcGFyYW0gaW50fGJvb2wgJHBvcnQgICAgICAgIFRoZSBwb3J0IG51bWJlciB0byBjb25uZWN0IHRvCisgICAgICogQHBhcmFtIGludHxib29sICR0aW1lb3V0ICAgICBUaGUgdGltZW91dCB2YWx1ZQorICAgICAqIEBwYXJhbSBzdHJpbmcgICAkdXNlcm5hbWUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJHBhc3N3b3JkCisgICAgICogQHBhcmFtIGludCAgICAgICRkZWJ1Z19sZXZlbAorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGF1dGhvcmlzZSgkaG9zdCwgJHBvcnQgPSBmYWxzZSwgJHRpbWVvdXQgPSBmYWxzZSwgJHVzZXJuYW1lID0gJycsICRwYXNzd29yZCA9ICcnLCAkZGVidWdfbGV2ZWwgPSAwKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmhvc3QgPSAkaG9zdDsKKyAgICAgICAgLy8gSWYgbm8gcG9ydCB2YWx1ZSBwcm92aWRlZCwgdXNlIGRlZmF1bHQKKyAgICAgICAgaWYgKGZhbHNlID09PSAkcG9ydCkgeworICAgICAgICAgICAgJHRoaXMtPnBvcnQgPSBzdGF0aWM6OkRFRkFVTFRfUE9SVDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlzLT5wb3J0ID0gKGludCkgJHBvcnQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gSWYgbm8gdGltZW91dCB2YWx1ZSBwcm92aWRlZCwgdXNlIGRlZmF1bHQKKyAgICAgICAgaWYgKGZhbHNlID09PSAkdGltZW91dCkgeworICAgICAgICAgICAgJHRoaXMtPnR2YWwgPSBzdGF0aWM6OkRFRkFVTFRfVElNRU9VVDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlzLT50dmFsID0gKGludCkgJHRpbWVvdXQ7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmRvX2RlYnVnID0gJGRlYnVnX2xldmVsOworICAgICAgICAkdGhpcy0+dXNlcm5hbWUgPSAkdXNlcm5hbWU7CisgICAgICAgICR0aGlzLT5wYXNzd29yZCA9ICRwYXNzd29yZDsKKyAgICAgICAgLy8gIFJlc2V0IHRoZSBlcnJvciBsb2cKKyAgICAgICAgJHRoaXMtPmVycm9ycyA9IFtdOworICAgICAgICAvLyAgY29ubmVjdAorICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNvbm5lY3QoJHRoaXMtPmhvc3QsICR0aGlzLT5wb3J0LCAkdGhpcy0+dHZhbCk7CisgICAgICAgIGlmICgkcmVzdWx0KSB7CisgICAgICAgICAgICAkbG9naW5fcmVzdWx0ID0gJHRoaXMtPmxvZ2luKCR0aGlzLT51c2VybmFtZSwgJHRoaXMtPnBhc3N3b3JkKTsKKyAgICAgICAgICAgIGlmICgkbG9naW5fcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmRpc2Nvbm5lY3QoKTsKKworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFdlIG5lZWQgdG8gZGlzY29ubmVjdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGxvZ2luIHN1Y2NlZWRlZAorICAgICAgICAkdGhpcy0+ZGlzY29ubmVjdCgpOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25uZWN0IHRvIGEgUE9QMyBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgJGhvc3QKKyAgICAgKiBAcGFyYW0gaW50fGJvb2wgJHBvcnQKKyAgICAgKiBAcGFyYW0gaW50ICAgICAgJHR2YWwKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjb25uZWN0KCRob3N0LCAkcG9ydCA9IGZhbHNlLCAkdHZhbCA9IDMwKQorICAgIHsKKyAgICAgICAgLy8gIEFyZSB3ZSBhbHJlYWR5IGNvbm5lY3RlZD8KKyAgICAgICAgaWYgKCR0aGlzLT5jb25uZWN0ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy9PbiBXaW5kb3dzIHRoaXMgd2lsbCByYWlzZSBhIFBIUCBXYXJuaW5nIGVycm9yIGlmIHRoZSBob3N0bmFtZSBkb2Vzbid0IGV4aXN0LgorICAgICAgICAvL1JhdGhlciB0aGFuIHN1cHByZXNzIGl0IHdpdGggQGZzb2Nrb3BlbiwgY2FwdHVyZSBpdCBjbGVhbmx5IGluc3RlYWQKKyAgICAgICAgc2V0X2Vycm9yX2hhbmRsZXIoWyR0aGlzLCAnY2F0Y2hXYXJuaW5nJ10pOworCisgICAgICAgIGlmIChmYWxzZSA9PT0gJHBvcnQpIHsKKyAgICAgICAgICAgICRwb3J0ID0gc3RhdGljOjpERUZBVUxUX1BPUlQ7CisgICAgICAgIH0KKworICAgICAgICAvLyAgY29ubmVjdCB0byB0aGUgUE9QMyBzZXJ2ZXIKKyAgICAgICAgJGVycm5vID0gMDsKKyAgICAgICAgJGVycnN0ciA9ICcnOworICAgICAgICAkdGhpcy0+cG9wX2Nvbm4gPSBmc29ja29wZW4oCisgICAgICAgICAgICAkaG9zdCwgLy8gIFBPUDMgSG9zdAorICAgICAgICAgICAgJHBvcnQsIC8vICBQb3J0ICMKKyAgICAgICAgICAgICRlcnJubywgLy8gIEVycm9yIE51bWJlcgorICAgICAgICAgICAgJGVycnN0ciwgLy8gIEVycm9yIE1lc3NhZ2UKKyAgICAgICAgICAgICR0dmFsCisgICAgICAgICk7IC8vICBUaW1lb3V0IChzZWNvbmRzKQorICAgICAgICAvLyAgUmVzdG9yZSB0aGUgZXJyb3IgaGFuZGxlcgorICAgICAgICByZXN0b3JlX2Vycm9yX2hhbmRsZXIoKTsKKworICAgICAgICAvLyAgRGlkIHdlIGNvbm5lY3Q/CisgICAgICAgIGlmIChmYWxzZSA9PT0gJHRoaXMtPnBvcF9jb25uKSB7CisgICAgICAgICAgICAvLyAgSXQgd291bGQgYXBwZWFyIG5vdC4uLgorICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKAorICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY29ubmVjdCB0byBzZXJ2ZXIgJGhvc3Qgb24gcG9ydCAkcG9ydC4gZXJybm86ICRlcnJubzsgZXJyc3RyOiAkZXJyc3RyIgorICAgICAgICAgICAgKTsKKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gIEluY3JlYXNlIHRoZSBzdHJlYW0gdGltZS1vdXQKKyAgICAgICAgc3RyZWFtX3NldF90aW1lb3V0KCR0aGlzLT5wb3BfY29ubiwgJHR2YWwsIDApOworCisgICAgICAgIC8vICBHZXQgdGhlIFBPUDMgc2VydmVyIHJlc3BvbnNlCisgICAgICAgICRwb3AzX3Jlc3BvbnNlID0gJHRoaXMtPmdldFJlc3BvbnNlKCk7CisgICAgICAgIC8vICBDaGVjayBmb3IgdGhlICtPSworICAgICAgICBpZiAoJHRoaXMtPmNoZWNrUmVzcG9uc2UoJHBvcDNfcmVzcG9uc2UpKSB7CisgICAgICAgICAgICAvLyAgVGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQgYW5kIHRoZSBQT1AzIHNlcnZlciBpcyB0YWxraW5nCisgICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGVkID0gdHJ1ZTsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9nIGluIHRvIHRoZSBQT1AzIHNlcnZlci4KKyAgICAgKiBEb2VzIG5vdCBzdXBwb3J0IEFQT1AgKFJGQyAyODI4LCA0OTQ5KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHVzZXJuYW1lCisgICAgICogQHBhcmFtIHN0cmluZyAkcGFzc3dvcmQKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBsb2dpbigkdXNlcm5hbWUgPSAnJywgJHBhc3N3b3JkID0gJycpCisgICAgeworICAgICAgICBpZiAoISR0aGlzLT5jb25uZWN0ZWQpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcignTm90IGNvbm5lY3RlZCB0byBQT1AzIHNlcnZlcicpOworICAgICAgICB9CisgICAgICAgIGlmIChlbXB0eSgkdXNlcm5hbWUpKSB7CisgICAgICAgICAgICAkdXNlcm5hbWUgPSAkdGhpcy0+dXNlcm5hbWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVtcHR5KCRwYXNzd29yZCkpIHsKKyAgICAgICAgICAgICRwYXNzd29yZCA9ICR0aGlzLT5wYXNzd29yZDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlbmQgdGhlIFVzZXJuYW1lCisgICAgICAgICR0aGlzLT5zZW5kU3RyaW5nKCJVU0VSICR1c2VybmFtZSIgLiBzdGF0aWM6OkxFKTsKKyAgICAgICAgJHBvcDNfcmVzcG9uc2UgPSAkdGhpcy0+Z2V0UmVzcG9uc2UoKTsKKyAgICAgICAgaWYgKCR0aGlzLT5jaGVja1Jlc3BvbnNlKCRwb3AzX3Jlc3BvbnNlKSkgeworICAgICAgICAgICAgLy8gU2VuZCB0aGUgUGFzc3dvcmQKKyAgICAgICAgICAgICR0aGlzLT5zZW5kU3RyaW5nKCJQQVNTICRwYXNzd29yZCIgLiBzdGF0aWM6OkxFKTsKKyAgICAgICAgICAgICRwb3AzX3Jlc3BvbnNlID0gJHRoaXMtPmdldFJlc3BvbnNlKCk7CisgICAgICAgICAgICBpZiAoJHRoaXMtPmNoZWNrUmVzcG9uc2UoJHBvcDNfcmVzcG9uc2UpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGlzY29ubmVjdCBmcm9tIHRoZSBQT1AzIHNlcnZlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZGlzY29ubmVjdCgpCisgICAgeworICAgICAgICAkdGhpcy0+c2VuZFN0cmluZygnUVVJVCcpOworICAgICAgICAvL1RoZSBRVUlUIGNvbW1hbmQgbWF5IGNhdXNlIHRoZSBkYWVtb24gdG8gZXhpdCwgd2hpY2ggd2lsbCBraWxsIG91ciBjb25uZWN0aW9uCisgICAgICAgIC8vU28gaWdub3JlIGVycm9ycyBoZXJlCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBAZmNsb3NlKCR0aGlzLT5wb3BfY29ubik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgeworICAgICAgICAgICAgLy9EbyBub3RoaW5nCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSByZXNwb25zZSBmcm9tIHRoZSBQT1AzIHNlcnZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnQgJHNpemUgVGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvIHJldHJpZXZlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRSZXNwb25zZSgkc2l6ZSA9IDEyOCkKKyAgICB7CisgICAgICAgICRyZXNwb25zZSA9IGZnZXRzKCR0aGlzLT5wb3BfY29ubiwgJHNpemUpOworICAgICAgICBpZiAoJHRoaXMtPmRvX2RlYnVnID49IDEpIHsKKyAgICAgICAgICAgIGVjaG8gJ1NlcnZlciAtPiBDbGllbnQ6ICcsICRyZXNwb25zZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkcmVzcG9uc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCByYXcgZGF0YSB0byB0aGUgUE9QMyBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcKKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50CisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNlbmRTdHJpbmcoJHN0cmluZykKKyAgICB7CisgICAgICAgIGlmICgkdGhpcy0+cG9wX2Nvbm4pIHsKKyAgICAgICAgICAgIGlmICgkdGhpcy0+ZG9fZGVidWcgPj0gMikgeyAvL1Nob3cgY2xpZW50IG1lc3NhZ2VzIHdoZW4gZGVidWcgPj0gMgorICAgICAgICAgICAgICAgIGVjaG8gJ0NsaWVudCAtPiBTZXJ2ZXI6ICcsICRzdHJpbmc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmd3JpdGUoJHRoaXMtPnBvcF9jb25uLCAkc3RyaW5nLCBzdHJsZW4oJHN0cmluZykpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIHRoZSBQT1AzIHNlcnZlciByZXNwb25zZS4KKyAgICAgKiBMb29rcyBmb3IgZm9yICtPSyBvciAtRVJSLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkc3RyaW5nCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2hlY2tSZXNwb25zZSgkc3RyaW5nKQorICAgIHsKKyAgICAgICAgaWYgKHN0cnBvcygkc3RyaW5nLCAnK09LJykgIT09IDApIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigiU2VydmVyIHJlcG9ydGVkIGFuIGVycm9yOiAkc3RyaW5nIik7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhbiBlcnJvciB0byB0aGUgaW50ZXJuYWwgZXJyb3Igc3RvcmUuCisgICAgICogQWxzbyBkaXNwbGF5IGRlYnVnIG91dHB1dCBpZiBpdCdzIGVuYWJsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlcnJvcgorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXRFcnJvcigkZXJyb3IpCisgICAgeworICAgICAgICAkdGhpcy0+ZXJyb3JzW10gPSAkZXJyb3I7CisgICAgICAgIGlmICgkdGhpcy0+ZG9fZGVidWcgPj0gMSkgeworICAgICAgICAgICAgZWNobyAnPHByZT4nOworICAgICAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmVycm9ycyBhcyAkZSkgeworICAgICAgICAgICAgICAgIHByaW50X3IoJGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWNobyAnPC9wcmU+JzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhbiBhcnJheSBvZiBlcnJvciBtZXNzYWdlcywgaWYgYW55LgorICAgICAqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRFcnJvcnMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5lcnJvcnM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUE9QMyBjb25uZWN0aW9uIGVycm9yIGhhbmRsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW50ICAgICRlcnJubworICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycnN0cgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycmZpbGUKKyAgICAgKiBAcGFyYW0gaW50ICAgICRlcnJsaW5lCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNhdGNoV2FybmluZygkZXJybm8sICRlcnJzdHIsICRlcnJmaWxlLCAkZXJybGluZSkKKyAgICB7CisgICAgICAgICR0aGlzLT5zZXRFcnJvcigKKyAgICAgICAgICAgICdDb25uZWN0aW5nIHRvIHRoZSBQT1AzIHNlcnZlciByYWlzZWQgYSBQSFAgd2FybmluZzonIC4KKyAgICAgICAgICAgICJlcnJubzogJGVycm5vIGVycnN0cjogJGVycnN0cjsgZXJyZmlsZTogJGVycmZpbGU7IGVycmxpbmU6ICRlcnJsaW5lIgorICAgICAgICApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL3NyYy9TTVRQLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9waHBtYWlsZXIvcGhwbWFpbGVyL3NyYy9TTVRQLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTU1NTUxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3BocG1haWxlci9waHBtYWlsZXIvc3JjL1NNVFAucGhwCkBAIC0wLDAgKzEsMTM3MSBAQAorPD9waHAKKy8qKgorICogUEhQTWFpbGVyIFJGQzgyMSBTTVRQIGVtYWlsIHRyYW5zcG9ydCBjbGFzcy4KKyAqIFBIUCBWZXJzaW9uIDUuNS4KKyAqCisgKiBAc2VlICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyLyBUaGUgUEhQTWFpbGVyIEdpdEh1YiBwcm9qZWN0CisgKgorICogQGF1dGhvciAgICBNYXJjdXMgQm9pbnRvbiAoU3luY2hyby9jb29sYnJ1KSA8cGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51az4KKyAqIEBhdXRob3IgICAgSmltIEphZ2llbHNraSAoamltamFnKSA8amltamFnQGdtYWlsLmNvbT4KKyAqIEBhdXRob3IgICAgQW5keSBQcmV2b3N0IChjb2Rld29yeHRlY2gpIDxjb2Rld29yeHRlY2hAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICogQGF1dGhvciAgICBCcmVudCBSLiBNYXR6ZWxsZSAob3JpZ2luYWwgZm91bmRlcikKKyAqIEBjb3B5cmlnaHQgMjAxMiAtIDIwMTkgTWFyY3VzIEJvaW50b24KKyAqIEBjb3B5cmlnaHQgMjAxMCAtIDIwMTIgSmltIEphZ2llbHNraQorICogQGNvcHlyaWdodCAyMDA0IC0gMjAwOSBBbmR5IFByZXZvc3QKKyAqIEBsaWNlbnNlICAgaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogQG5vdGUgICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCAtIFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisgKi8KKworbmFtZXNwYWNlIFBIUE1haWxlclxQSFBNYWlsZXI7CisKKy8qKgorICogUEhQTWFpbGVyIFJGQzgyMSBTTVRQIGVtYWlsIHRyYW5zcG9ydCBjbGFzcy4KKyAqIEltcGxlbWVudHMgUkZDIDgyMSBTTVRQIGNvbW1hbmRzIGFuZCBwcm92aWRlcyBzb21lIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2VuZGluZyBtYWlsIHRvIGFuIFNNVFAgc2VydmVyLgorICoKKyAqIEBhdXRob3IgQ2hyaXMgUnlhbgorICogQGF1dGhvciBNYXJjdXMgQm9pbnRvbiA8cGhwbWFpbGVyQHN5bmNocm9tZWRpYS5jby51az4KKyAqLworY2xhc3MgU01UUAoreworICAgIC8qKgorICAgICAqIFRoZSBQSFBNYWlsZXIgU01UUCB2ZXJzaW9uIG51bWJlci4KKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nCisgICAgICovCisgICAgY29uc3QgVkVSU0lPTiA9ICc2LjEuNic7CisKKyAgICAvKioKKyAgICAgKiBTTVRQIGxpbmUgYnJlYWsgY29uc3RhbnQuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZworICAgICAqLworICAgIGNvbnN0IExFID0gIlxyXG4iOworCisgICAgLyoqCisgICAgICogVGhlIFNNVFAgcG9ydCB0byB1c2UgaWYgb25lIGlzIG5vdCBzcGVjaWZpZWQuCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIGNvbnN0IERFRkFVTFRfUE9SVCA9IDI1OworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbGluZSBsZW5ndGggYWxsb3dlZCBieSBSRkMgNTMyMSBzZWN0aW9uIDQuNS4zLjEuNiwKKyAgICAgKiAqZXhjbHVkaW5nKiBhIHRyYWlsaW5nIENSTEYgYnJlYWsuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC41LjMuMS42CisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIGNvbnN0IE1BWF9MSU5FX0xFTkdUSCA9IDk5ODsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIGFsbG93ZWQgZm9yIHJlcGxpZXMgaW4gUkZDIDUzMjEgc2VjdGlvbiA0LjUuMy4xLjUsCisgICAgICogKmluY2x1ZGluZyogYSB0cmFpbGluZyBDUkxGIGxpbmUgYnJlYWsuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC41LjMuMS41CisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIGNvbnN0IE1BWF9SRVBMWV9MRU5HVEggPSA1MTI7CisKKyAgICAvKioKKyAgICAgKiBEZWJ1ZyBsZXZlbCBmb3Igbm8gb3V0cHV0LgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBjb25zdCBERUJVR19PRkYgPSAwOworCisgICAgLyoqCisgICAgICogRGVidWcgbGV2ZWwgdG8gc2hvdyBjbGllbnQgLT4gc2VydmVyIG1lc3NhZ2VzLgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBjb25zdCBERUJVR19DTElFTlQgPSAxOworCisgICAgLyoqCisgICAgICogRGVidWcgbGV2ZWwgdG8gc2hvdyBjbGllbnQgLT4gc2VydmVyIGFuZCBzZXJ2ZXIgLT4gY2xpZW50IG1lc3NhZ2VzLgorICAgICAqCisgICAgICogQHZhciBpbnQKKyAgICAgKi8KKyAgICBjb25zdCBERUJVR19TRVJWRVIgPSAyOworCisgICAgLyoqCisgICAgICogRGVidWcgbGV2ZWwgdG8gc2hvdyBjb25uZWN0aW9uIHN0YXR1cywgY2xpZW50IC0+IHNlcnZlciBhbmQgc2VydmVyIC0+IGNsaWVudCBtZXNzYWdlcy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgY29uc3QgREVCVUdfQ09OTkVDVElPTiA9IDM7CisKKyAgICAvKioKKyAgICAgKiBEZWJ1ZyBsZXZlbCB0byBzaG93IGFsbCBtZXNzYWdlcy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgY29uc3QgREVCVUdfTE9XTEVWRUwgPSA0OworCisgICAgLyoqCisgICAgICogRGVidWcgb3V0cHV0IGxldmVsLgorICAgICAqIE9wdGlvbnM6CisgICAgICogKiBzZWxmOjpERUJVR19PRkYgKGAwYCkgTm8gZGVidWcgb3V0cHV0LCBkZWZhdWx0CisgICAgICogKiBzZWxmOjpERUJVR19DTElFTlQgKGAxYCkgQ2xpZW50IGNvbW1hbmRzCisgICAgICogKiBzZWxmOjpERUJVR19TRVJWRVIgKGAyYCkgQ2xpZW50IGNvbW1hbmRzIGFuZCBzZXJ2ZXIgcmVzcG9uc2VzCisgICAgICogKiBzZWxmOjpERUJVR19DT05ORUNUSU9OIChgM2ApIEFzIERFQlVHX1NFUlZFUiBwbHVzIGNvbm5lY3Rpb24gc3RhdHVzCisgICAgICogKiBzZWxmOjpERUJVR19MT1dMRVZFTCAoYDRgKSBMb3ctbGV2ZWwgZGF0YSBvdXRwdXQsIGFsbCBtZXNzYWdlcy4KKyAgICAgKgorICAgICAqIEB2YXIgaW50CisgICAgICovCisgICAgcHVibGljICRkb19kZWJ1ZyA9IHNlbGY6OkRFQlVHX09GRjsKKworICAgIC8qKgorICAgICAqIEhvdyB0byBoYW5kbGUgZGVidWcgb3V0cHV0LgorICAgICAqIE9wdGlvbnM6CisgICAgICogKiBgZWNob2AgT3V0cHV0IHBsYWluLXRleHQgYXMtaXMsIGFwcHJvcHJpYXRlIGZvciBDTEkKKyAgICAgKiAqIGBodG1sYCBPdXRwdXQgZXNjYXBlZCwgbGluZSBicmVha3MgY29udmVydGVkIHRvIGA8YnI+YCwgYXBwcm9wcmlhdGUgZm9yIGJyb3dzZXIgb3V0cHV0CisgICAgICogKiBgZXJyb3JfbG9nYCBPdXRwdXQgdG8gZXJyb3IgbG9nIGFzIGNvbmZpZ3VyZWQgaW4gcGhwLmluaQorICAgICAqIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gcHJvdmlkZSBhIGNhbGxhYmxlIGV4cGVjdGluZyB0d28gcGFyYW1zOiBhIG1lc3NhZ2Ugc3RyaW5nIGFuZCB0aGUgZGVidWcgbGV2ZWw6CisgICAgICoKKyAgICAgKiBgYGBwaHAKKyAgICAgKiAkc210cC0+RGVidWdvdXRwdXQgPSBmdW5jdGlvbigkc3RyLCAkbGV2ZWwpIHtlY2hvICJkZWJ1ZyBsZXZlbCAkbGV2ZWw7IG1lc3NhZ2U6ICRzdHIiO307CisgICAgICogYGBgCisgICAgICoKKyAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHBhc3MgaW4gYW4gaW5zdGFuY2Ugb2YgYSBQU1ItMyBjb21wYXRpYmxlIGxvZ2dlciwgdGhvdWdoIG9ubHkgYGRlYnVnYAorICAgICAqIGxldmVsIG91dHB1dCBpcyB1c2VkOgorICAgICAqCisgICAgICogYGBgcGhwCisgICAgICogJG1haWwtPkRlYnVnb3V0cHV0ID0gbmV3IG15UHNyM0xvZ2dlcjsKKyAgICAgKiBgYGAKKyAgICAgKgorICAgICAqIEB2YXIgc3RyaW5nfGNhbGxhYmxlfFxQc3JcTG9nXExvZ2dlckludGVyZmFjZQorICAgICAqLworICAgIHB1YmxpYyAkRGVidWdvdXRwdXQgPSAnZWNobyc7CisKKyAgICAvKioKKyAgICAgKiBXaGV0aGVyIHRvIHVzZSBWRVJQLgorICAgICAqCisgICAgICogQHNlZSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhcmlhYmxlX2VudmVsb3BlX3JldHVybl9wYXRoCisgICAgICogQHNlZSBodHRwOi8vd3d3LnBvc3RmaXgub3JnL1ZFUlBfUkVBRE1FLmh0bWwgSW5mbyBvbiBWRVJQCisgICAgICoKKyAgICAgKiBAdmFyIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgJGRvX3ZlcnAgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFRoZSB0aW1lb3V0IHZhbHVlIGZvciBjb25uZWN0aW9uLCBpbiBzZWNvbmRzLgorICAgICAqIERlZmF1bHQgb2YgNSBtaW51dGVzICgzMDBzZWMpIGlzIGZyb20gUkZDMjgyMSBzZWN0aW9uIDQuNS4zLjIuCisgICAgICogVGhpcyBuZWVkcyB0byBiZSBxdWl0ZSBoaWdoIHRvIGZ1bmN0aW9uIGNvcnJlY3RseSB3aXRoIGhvc3RzIHVzaW5nIGdyZWV0ZGVsYXkgYXMgYW4gYW50aS1zcGFtIG1lYXN1cmUuCisgICAgICoKKyAgICAgKiBAc2VlIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI4MjEjc2VjdGlvbi00LjUuMy4yCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHB1YmxpYyAkVGltZW91dCA9IDMwMDsKKworICAgIC8qKgorICAgICAqIEhvdyBsb25nIHRvIHdhaXQgZm9yIGNvbW1hbmRzIHRvIGNvbXBsZXRlLCBpbiBzZWNvbmRzLgorICAgICAqIERlZmF1bHQgb2YgNSBtaW51dGVzICgzMDBzZWMpIGlzIGZyb20gUkZDMjgyMSBzZWN0aW9uIDQuNS4zLjIuCisgICAgICoKKyAgICAgKiBAdmFyIGludAorICAgICAqLworICAgIHB1YmxpYyAkVGltZWxpbWl0ID0gMzAwOworCisgICAgLyoqCisgICAgICogUGF0dGVybnMgdG8gZXh0cmFjdCBhbiBTTVRQIHRyYW5zYWN0aW9uIGlkIGZyb20gcmVwbHkgdG8gYSBEQVRBIGNvbW1hbmQuCisgICAgICogVGhlIGZpcnN0IGNhcHR1cmUgZ3JvdXAgaW4gZWFjaCByZWdleCB3aWxsIGJlIHVzZWQgYXMgdGhlIElELgorICAgICAqIE1TIEVTTVRQIHJldHVybnMgdGhlIG1lc3NhZ2UgSUQsIHdoaWNoIG1heSBub3QgYmUgY29ycmVjdCBmb3IgaW50ZXJuYWwgdHJhY2tpbmcuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ1tdCisgICAgICovCisgICAgcHJvdGVjdGVkICRzbXRwX3RyYW5zYWN0aW9uX2lkX3BhdHRlcm5zID0gWworICAgICAgICAnZXhpbScgPT4gJy9bXGRdezN9IE9LIGlkPSguKikvJywKKyAgICAgICAgJ3NlbmRtYWlsJyA9PiAnL1tcZF17M30gMi4wLjAgKC4qKSBNZXNzYWdlLycsCisgICAgICAgICdwb3N0Zml4JyA9PiAnL1tcZF17M30gMi4wLjAgT2s6IHF1ZXVlZCBhcyAoLiopLycsCisgICAgICAgICdNaWNyb3NvZnRfRVNNVFAnID0+ICcvWzAtOV17M30gMi5bXGRdLjAgKC4qKUAoPzouKikgUXVldWVkIG1haWwgZm9yIGRlbGl2ZXJ5LycsCisgICAgICAgICdBbWF6b25fU0VTJyA9PiAnL1tcZF17M30gT2sgKC4qKS8nLAorICAgICAgICAnU2VuZEdyaWQnID0+ICcvW1xkXXszfSBPazogcXVldWVkIGFzICguKikvJywKKyAgICAgICAgJ0NhbXBhaWduTW9uaXRvcicgPT4gJy9bXGRdezN9IDIuMC4wIE9LOihbYS16QS1aXGRdezQ4fSkvJywKKyAgICBdOworCisgICAgLyoqCisgICAgICogVGhlIGxhc3QgdHJhbnNhY3Rpb24gSUQgaXNzdWVkIGluIHJlc3BvbnNlIHRvIGEgREFUQSBjb21tYW5kLAorICAgICAqIGlmIG9uZSB3YXMgZGV0ZWN0ZWQuCisgICAgICoKKyAgICAgKiBAdmFyIHN0cmluZ3xib29sfG51bGwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGxhc3Rfc210cF90cmFuc2FjdGlvbl9pZDsKKworICAgIC8qKgorICAgICAqIFRoZSBzb2NrZXQgZm9yIHRoZSBzZXJ2ZXIgY29ubmVjdGlvbi4KKyAgICAgKgorICAgICAqIEB2YXIgP3Jlc291cmNlCisgICAgICovCisgICAgcHJvdGVjdGVkICRzbXRwX2Nvbm47CisKKyAgICAvKioKKyAgICAgKiBFcnJvciBpbmZvcm1hdGlvbiwgaWYgYW55LCBmb3IgdGhlIGxhc3QgU01UUCBjb21tYW5kLgorICAgICAqCisgICAgICogQHZhciBhcnJheQorICAgICAqLworICAgIHByb3RlY3RlZCAkZXJyb3IgPSBbCisgICAgICAgICdlcnJvcicgPT4gJycsCisgICAgICAgICdkZXRhaWwnID0+ICcnLAorICAgICAgICAnc210cF9jb2RlJyA9PiAnJywKKyAgICAgICAgJ3NtdHBfY29kZV9leCcgPT4gJycsCisgICAgXTsKKworICAgIC8qKgorICAgICAqIFRoZSByZXBseSB0aGUgc2VydmVyIHNlbnQgdG8gdXMgZm9yIEhFTE8uCisgICAgICogSWYgbnVsbCwgbm8gSEVMTyBzdHJpbmcgaGFzIHlldCBiZWVuIHJlY2VpdmVkLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmd8bnVsbAorICAgICAqLworICAgIHByb3RlY3RlZCAkaGVsb19ycGx5OworCisgICAgLyoqCisgICAgICogVGhlIHNldCBvZiBTTVRQIGV4dGVuc2lvbnMgc2VudCBpbiByZXBseSB0byBFSExPIGNvbW1hbmQuCisgICAgICogSW5kZXhlcyBvZiB0aGUgYXJyYXkgYXJlIGV4dGVuc2lvbiBuYW1lcy4KKyAgICAgKiBWYWx1ZSBhdCBpbmRleCAnSEVMTycgb3IgJ0VITE8nIChhY2NvcmRpbmcgdG8gY29tbWFuZCB0aGF0IHdhcyBzZW50KQorICAgICAqIHJlcHJlc2VudHMgdGhlIHNlcnZlciBuYW1lLiBJbiBjYXNlIG9mIEhFTE8gaXQgaXMgdGhlIG9ubHkgZWxlbWVudCBvZiB0aGUgYXJyYXkuCisgICAgICogT3RoZXIgdmFsdWVzIGNhbiBiZSBib29sZWFuIFRSVUUgb3IgYW4gYXJyYXkgY29udGFpbmluZyBleHRlbnNpb24gb3B0aW9ucy4KKyAgICAgKiBJZiBudWxsLCBubyBIRUxPL0VITE8gc3RyaW5nIGhhcyB5ZXQgYmVlbiByZWNlaXZlZC4KKyAgICAgKgorICAgICAqIEB2YXIgYXJyYXl8bnVsbAorICAgICAqLworICAgIHByb3RlY3RlZCAkc2VydmVyX2NhcHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCByZWNlbnQgcmVwbHkgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHZhciBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgJGxhc3RfcmVwbHkgPSAnJzsKKworICAgIC8qKgorICAgICAqIE91dHB1dCBkZWJ1Z2dpbmcgaW5mbyB2aWEgYSB1c2VyLXNlbGVjdGVkIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgIERlYnVnIHN0cmluZyB0byBvdXRwdXQKKyAgICAgKiBAcGFyYW0gaW50ICAgICRsZXZlbCBUaGUgZGVidWcgbGV2ZWwgb2YgdGhpcyBtZXNzYWdlOyBzZWUgREVCVUdfKiBjb25zdGFudHMKKyAgICAgKgorICAgICAqIEBzZWUgU01UUDo6JERlYnVnb3V0cHV0CisgICAgICogQHNlZSBTTVRQOjokZG9fZGVidWcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZWRlYnVnKCRzdHIsICRsZXZlbCA9IDApCisgICAgeworICAgICAgICBpZiAoJGxldmVsID4gJHRoaXMtPmRvX2RlYnVnKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy9JcyB0aGlzIGEgUFNSLTMgbG9nZ2VyPworICAgICAgICBpZiAoJHRoaXMtPkRlYnVnb3V0cHV0IGluc3RhbmNlb2YgXFBzclxMb2dcTG9nZ2VySW50ZXJmYWNlKSB7CisgICAgICAgICAgICAkdGhpcy0+RGVidWdvdXRwdXQtPmRlYnVnKCRzdHIpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy9Bdm9pZCBjbGFzaCB3aXRoIGJ1aWx0LWluIGZ1bmN0aW9uIG5hbWVzCisgICAgICAgIGlmIChpc19jYWxsYWJsZSgkdGhpcy0+RGVidWdvdXRwdXQpICYmICFpbl9hcnJheSgkdGhpcy0+RGVidWdvdXRwdXQsIFsnZXJyb3JfbG9nJywgJ2h0bWwnLCAnZWNobyddKSkgeworICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmMoJHRoaXMtPkRlYnVnb3V0cHV0LCAkc3RyLCAkbGV2ZWwpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoICgkdGhpcy0+RGVidWdvdXRwdXQpIHsKKyAgICAgICAgICAgIGNhc2UgJ2Vycm9yX2xvZyc6CisgICAgICAgICAgICAgICAgLy9Eb24ndCBvdXRwdXQsIGp1c3QgbG9nCisgICAgICAgICAgICAgICAgZXJyb3JfbG9nKCRzdHIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnaHRtbCc6CisgICAgICAgICAgICAgICAgLy9DbGVhbnMgdXAgb3V0cHV0IGEgYml0IGZvciBhIGJldHRlciBsb29raW5nLCBIVE1MLXNhZmUgb3V0cHV0CisgICAgICAgICAgICAgICAgZWNobyBnbWRhdGUoJ1ktbS1kIEg6aTpzJyksICcgJywgaHRtbGVudGl0aWVzKAorICAgICAgICAgICAgICAgICAgICBwcmVnX3JlcGxhY2UoJy9bXHJcbl0rLycsICcnLCAkc3RyKSwKKyAgICAgICAgICAgICAgICAgICAgRU5UX1FVT1RFUywKKyAgICAgICAgICAgICAgICAgICAgJ1VURi04JworICAgICAgICAgICAgICAgICksICI8YnI+XG4iOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnZWNobyc6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIGxpbmUgYnJlYWtzCisgICAgICAgICAgICAgICAgJHN0ciA9IHByZWdfcmVwbGFjZSgnL1xyXG58XHIvbScsICJcbiIsICRzdHIpOworICAgICAgICAgICAgICAgIGVjaG8gZ21kYXRlKCdZLW0tZCBIOmk6cycpLAorICAgICAgICAgICAgICAgICJcdCIsCisgICAgICAgICAgICAgICAgICAgIC8vVHJpbSB0cmFpbGluZyBzcGFjZQorICAgICAgICAgICAgICAgIHRyaW0oCisgICAgICAgICAgICAgICAgICAgIC8vSW5kZW50IGZvciByZWFkYWJpbGl0eSwgZXhjZXB0IGZvciB0cmFpbGluZyBicmVhaworICAgICAgICAgICAgICAgICAgICBzdHJfcmVwbGFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICJcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgICAgICAgICAgICAgXHQgICAgICAgICAgICAgICAgICAiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHJpbSgkc3RyKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAiXG4iOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29ubmVjdCB0byBhbiBTTVRQIHNlcnZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGhvc3QgICAgU01UUCBzZXJ2ZXIgSVAgb3IgaG9zdCBuYW1lCisgICAgICogQHBhcmFtIGludCAgICAkcG9ydCAgICBUaGUgcG9ydCBudW1iZXIgdG8gY29ubmVjdCB0bworICAgICAqIEBwYXJhbSBpbnQgICAgJHRpbWVvdXQgSG93IGxvbmcgdG8gd2FpdCBmb3IgdGhlIGNvbm5lY3Rpb24gdG8gb3BlbgorICAgICAqIEBwYXJhbSBhcnJheSAgJG9wdGlvbnMgQW4gYXJyYXkgb2Ygb3B0aW9ucyBmb3Igc3RyZWFtX2NvbnRleHRfY3JlYXRlKCkKKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjb25uZWN0KCRob3N0LCAkcG9ydCA9IG51bGwsICR0aW1lb3V0ID0gMzAsICRvcHRpb25zID0gW10pCisgICAgeworICAgICAgICBzdGF0aWMgJHN0cmVhbW9rOworICAgICAgICAvL1RoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IHNpbmNlIDUuMC4wIGJ1dCBzb21lIHByb3ZpZGVycyBkaXNhYmxlIGl0CisgICAgICAgIC8vQ2hlY2sgdGhpcyBvbmNlIGFuZCBjYWNoZSB0aGUgcmVzdWx0CisgICAgICAgIGlmIChudWxsID09PSAkc3RyZWFtb2spIHsKKyAgICAgICAgICAgICRzdHJlYW1vayA9IGZ1bmN0aW9uX2V4aXN0cygnc3RyZWFtX3NvY2tldF9jbGllbnQnKTsKKyAgICAgICAgfQorICAgICAgICAvLyBDbGVhciBlcnJvcnMgdG8gYXZvaWQgY29uZnVzaW9uCisgICAgICAgICR0aGlzLT5zZXRFcnJvcignJyk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgX19ub3RfXyBjb25uZWN0ZWQKKyAgICAgICAgaWYgKCR0aGlzLT5jb25uZWN0ZWQoKSkgeworICAgICAgICAgICAgLy8gQWxyZWFkeSBjb25uZWN0ZWQsIGdlbmVyYXRlIGVycm9yCisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJ0FscmVhZHkgY29ubmVjdGVkIHRvIGEgc2VydmVyJyk7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW1wdHkoJHBvcnQpKSB7CisgICAgICAgICAgICAkcG9ydCA9IHNlbGY6OkRFRkFVTFRfUE9SVDsKKyAgICAgICAgfQorICAgICAgICAvLyBDb25uZWN0IHRvIHRoZSBTTVRQIHNlcnZlcgorICAgICAgICAkdGhpcy0+ZWRlYnVnKAorICAgICAgICAgICAgIkNvbm5lY3Rpb246IG9wZW5pbmcgdG8gJGhvc3Q6JHBvcnQsIHRpbWVvdXQ9JHRpbWVvdXQsIG9wdGlvbnM9IiAuCisgICAgICAgICAgICAoY291bnQoJG9wdGlvbnMpID4gMCA/IHZhcl9leHBvcnQoJG9wdGlvbnMsIHRydWUpIDogJ2FycmF5KCknKSwKKyAgICAgICAgICAgIHNlbGY6OkRFQlVHX0NPTk5FQ1RJT04KKyAgICAgICAgKTsKKyAgICAgICAgJGVycm5vID0gMDsKKyAgICAgICAgJGVycnN0ciA9ICcnOworICAgICAgICBpZiAoJHN0cmVhbW9rKSB7CisgICAgICAgICAgICAkc29ja2V0X2NvbnRleHQgPSBzdHJlYW1fY29udGV4dF9jcmVhdGUoJG9wdGlvbnMpOworICAgICAgICAgICAgc2V0X2Vycm9yX2hhbmRsZXIoWyR0aGlzLCAnZXJyb3JIYW5kbGVyJ10pOworICAgICAgICAgICAgJHRoaXMtPnNtdHBfY29ubiA9IHN0cmVhbV9zb2NrZXRfY2xpZW50KAorICAgICAgICAgICAgICAgICRob3N0IC4gJzonIC4gJHBvcnQsCisgICAgICAgICAgICAgICAgJGVycm5vLAorICAgICAgICAgICAgICAgICRlcnJzdHIsCisgICAgICAgICAgICAgICAgJHRpbWVvdXQsCisgICAgICAgICAgICAgICAgU1RSRUFNX0NMSUVOVF9DT05ORUNULAorICAgICAgICAgICAgICAgICRzb2NrZXRfY29udGV4dAorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy9GYWxsIGJhY2sgdG8gZnNvY2tvcGVuIHdoaWNoIHNob3VsZCB3b3JrIGluIG1vcmUgcGxhY2VzLCBidXQgaXMgbWlzc2luZyBzb21lIGZlYXR1cmVzCisgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKAorICAgICAgICAgICAgICAgICdDb25uZWN0aW9uOiBzdHJlYW1fc29ja2V0X2NsaWVudCBub3QgYXZhaWxhYmxlLCBmYWxsaW5nIGJhY2sgdG8gZnNvY2tvcGVuJywKKyAgICAgICAgICAgICAgICBzZWxmOjpERUJVR19DT05ORUNUSU9OCisgICAgICAgICAgICApOworICAgICAgICAgICAgc2V0X2Vycm9yX2hhbmRsZXIoWyR0aGlzLCAnZXJyb3JIYW5kbGVyJ10pOworICAgICAgICAgICAgJHRoaXMtPnNtdHBfY29ubiA9IGZzb2Nrb3BlbigKKyAgICAgICAgICAgICAgICAkaG9zdCwKKyAgICAgICAgICAgICAgICAkcG9ydCwKKyAgICAgICAgICAgICAgICAkZXJybm8sCisgICAgICAgICAgICAgICAgJGVycnN0ciwKKyAgICAgICAgICAgICAgICAkdGltZW91dAorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOworICAgICAgICB9CisgICAgICAgIC8vIFZlcmlmeSB3ZSBjb25uZWN0ZWQgcHJvcGVybHkKKyAgICAgICAgaWYgKCFpc19yZXNvdXJjZSgkdGhpcy0+c210cF9jb25uKSkgeworICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKAorICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gY29ubmVjdCB0byBzZXJ2ZXInLAorICAgICAgICAgICAgICAgICcnLAorICAgICAgICAgICAgICAgIChzdHJpbmcpICRlcnJubywKKyAgICAgICAgICAgICAgICAkZXJyc3RyCisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygKKyAgICAgICAgICAgICAgICAnU01UUCBFUlJPUjogJyAuICR0aGlzLT5lcnJvclsnZXJyb3InXQorICAgICAgICAgICAgICAgIC4gIjogJGVycnN0ciAoJGVycm5vKSIsCisgICAgICAgICAgICAgICAgc2VsZjo6REVCVUdfQ0xJRU5UCisgICAgICAgICAgICApOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmVkZWJ1ZygnQ29ubmVjdGlvbjogb3BlbmVkJywgc2VsZjo6REVCVUdfQ09OTkVDVElPTik7CisgICAgICAgIC8vIFNNVFAgc2VydmVyIGNhbiB0YWtlIGxvbmdlciB0byByZXNwb25kLCBnaXZlIGxvbmdlciB0aW1lb3V0IGZvciBmaXJzdCByZWFkCisgICAgICAgIC8vIFdpbmRvd3MgZG9lcyBub3QgaGF2ZSBzdXBwb3J0IGZvciB0aGlzIHRpbWVvdXQgZnVuY3Rpb24KKyAgICAgICAgaWYgKHN0cnBvcyhQSFBfT1MsICdXSU4nKSAhPT0gMCkgeworICAgICAgICAgICAgJG1heCA9IChpbnQpIGluaV9nZXQoJ21heF9leGVjdXRpb25fdGltZScpOworICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGlmIHVubGltaXRlZAorICAgICAgICAgICAgaWYgKDAgIT09ICRtYXggJiYgJHRpbWVvdXQgPiAkbWF4KSB7CisgICAgICAgICAgICAgICAgQHNldF90aW1lX2xpbWl0KCR0aW1lb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cmVhbV9zZXRfdGltZW91dCgkdGhpcy0+c210cF9jb25uLCAkdGltZW91dCwgMCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gR2V0IGFueSBhbm5vdW5jZW1lbnQKKyAgICAgICAgJGFubm91bmNlID0gJHRoaXMtPmdldF9saW5lcygpOworICAgICAgICAkdGhpcy0+ZWRlYnVnKCdTRVJWRVIgLT4gQ0xJRU5UOiAnIC4gJGFubm91bmNlLCBzZWxmOjpERUJVR19TRVJWRVIpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYXRlIGEgVExTIChlbmNyeXB0ZWQpIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc3RhcnRUTFMoKQorICAgIHsKKyAgICAgICAgaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoJ1NUQVJUVExTJywgJ1NUQVJUVExTJywgMjIwKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy9BbGxvdyB0aGUgYmVzdCBUTFMgdmVyc2lvbihzKSB3ZSBjYW4KKyAgICAgICAgJGNyeXB0b19tZXRob2QgPSBTVFJFQU1fQ1JZUFRPX01FVEhPRF9UTFNfQ0xJRU5UOworCisgICAgICAgIC8vUEhQIDUuNi43IGRyb3BwZWQgaW5jbHVzaW9uIG9mIFRMUyAxLjEgYW5kIDEuMiBpbiBTVFJFQU1fQ1JZUFRPX01FVEhPRF9UTFNfQ0xJRU5UCisgICAgICAgIC8vc28gYWRkIHRoZW0gYmFjayBpbiBtYW51YWxseSBpZiB3ZSBjYW4KKyAgICAgICAgaWYgKGRlZmluZWQoJ1NUUkVBTV9DUllQVE9fTUVUSE9EX1RMU3YxXzJfQ0xJRU5UJykpIHsKKyAgICAgICAgICAgICRjcnlwdG9fbWV0aG9kIHw9IFNUUkVBTV9DUllQVE9fTUVUSE9EX1RMU3YxXzJfQ0xJRU5UOworICAgICAgICAgICAgJGNyeXB0b19tZXRob2QgfD0gU1RSRUFNX0NSWVBUT19NRVRIT0RfVExTdjFfMV9DTElFTlQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBCZWdpbiBlbmNyeXB0ZWQgY29ubmVjdGlvbgorICAgICAgICBzZXRfZXJyb3JfaGFuZGxlcihbJHRoaXMsICdlcnJvckhhbmRsZXInXSk7CisgICAgICAgICRjcnlwdG9fb2sgPSBzdHJlYW1fc29ja2V0X2VuYWJsZV9jcnlwdG8oCisgICAgICAgICAgICAkdGhpcy0+c210cF9jb25uLAorICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICRjcnlwdG9fbWV0aG9kCisgICAgICAgICk7CisgICAgICAgIHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOworCisgICAgICAgIHJldHVybiAoYm9vbCkgJGNyeXB0b19vazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIFNNVFAgYXV0aGVudGljYXRpb24uCisgICAgICogTXVzdCBiZSBydW4gYWZ0ZXIgaGVsbG8oKS4KKyAgICAgKgorICAgICAqIEBzZWUgICAgaGVsbG8oKQorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkdXNlcm5hbWUgVGhlIHVzZXIgbmFtZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhc3N3b3JkIFRoZSBwYXNzd29yZAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGF1dGh0eXBlIFRoZSBhdXRoIHR5cGUgKENSQU0tTUQ1LCBQTEFJTiwgTE9HSU4sIFhPQVVUSDIpCisgICAgICogQHBhcmFtIE9BdXRoICAkT0F1dGggICAgQW4gb3B0aW9uYWwgT0F1dGggaW5zdGFuY2UgZm9yIFhPQVVUSDIgYXV0aGVudGljYXRpb24KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHN1Y2Nlc3NmdWxseSBhdXRoZW50aWNhdGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZSgKKyAgICAgICAgJHVzZXJuYW1lLAorICAgICAgICAkcGFzc3dvcmQsCisgICAgICAgICRhdXRodHlwZSA9IG51bGwsCisgICAgICAgICRPQXV0aCA9IG51bGwKKyAgICApIHsKKyAgICAgICAgaWYgKCEkdGhpcy0+c2VydmVyX2NhcHMpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcignQXV0aGVudGljYXRpb24gaXMgbm90IGFsbG93ZWQgYmVmb3JlIEhFTE8vRUhMTycpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygnRUhMTycsICR0aGlzLT5zZXJ2ZXJfY2FwcykpIHsKKyAgICAgICAgICAgIC8vIFNNVFAgZXh0ZW5zaW9ucyBhcmUgYXZhaWxhYmxlOyB0cnkgdG8gZmluZCBhIHByb3BlciBhdXRoZW50aWNhdGlvbiBtZXRob2QKKyAgICAgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygnQVVUSCcsICR0aGlzLT5zZXJ2ZXJfY2FwcykpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJ0F1dGhlbnRpY2F0aW9uIGlzIG5vdCBhbGxvd2VkIGF0IHRoaXMgc3RhZ2UnKTsKKyAgICAgICAgICAgICAgICAvLyAnYXQgdGhpcyBzdGFnZScgbWVhbnMgdGhhdCBhdXRoIG1heSBiZSBhbGxvd2VkIGFmdGVyIHRoZSBzdGFnZSBjaGFuZ2VzCisgICAgICAgICAgICAgICAgLy8gZS5nLiBhZnRlciBTVEFSVFRMUworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKCdBdXRoIG1ldGhvZCByZXF1ZXN0ZWQ6ICcgLiAoJGF1dGh0eXBlID86ICdVTlNQRUNJRklFRCcpLCBzZWxmOjpERUJVR19MT1dMRVZFTCk7CisgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKAorICAgICAgICAgICAgICAgICdBdXRoIG1ldGhvZHMgYXZhaWxhYmxlIG9uIHRoZSBzZXJ2ZXI6ICcgLiBpbXBsb2RlKCcsJywgJHRoaXMtPnNlcnZlcl9jYXBzWydBVVRIJ10pLAorICAgICAgICAgICAgICAgIHNlbGY6OkRFQlVHX0xPV0xFVkVMCisgICAgICAgICAgICApOworCisgICAgICAgICAgICAvL0lmIHdlIGhhdmUgcmVxdWVzdGVkIGEgc3BlY2lmaWMgYXV0aCB0eXBlLCBjaGVjayB0aGUgc2VydmVyIHN1cHBvcnRzIGl0IGJlZm9yZSB0cnlpbmcgb3RoZXJzCisgICAgICAgICAgICBpZiAobnVsbCAhPT0gJGF1dGh0eXBlICYmICFpbl9hcnJheSgkYXV0aHR5cGUsICR0aGlzLT5zZXJ2ZXJfY2Fwc1snQVVUSCddLCB0cnVlKSkgeworICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJ1JlcXVlc3RlZCBhdXRoIG1ldGhvZCBub3QgYXZhaWxhYmxlOiAnIC4gJGF1dGh0eXBlLCBzZWxmOjpERUJVR19MT1dMRVZFTCk7CisgICAgICAgICAgICAgICAgJGF1dGh0eXBlID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGVtcHR5KCRhdXRodHlwZSkpIHsKKyAgICAgICAgICAgICAgICAvL0lmIG5vIGF1dGggbWVjaGFuaXNtIGlzIHNwZWNpZmllZCwgYXR0ZW1wdCB0byB1c2UgdGhlc2UsIGluIHRoaXMgb3JkZXIKKyAgICAgICAgICAgICAgICAvL1RyeSBDUkFNLU1ENSBmaXJzdCBhcyBpdCdzIG1vcmUgc2VjdXJlIHRoYW4gdGhlIG90aGVycworICAgICAgICAgICAgICAgIGZvcmVhY2ggKFsnQ1JBTS1NRDUnLCAnTE9HSU4nLCAnUExBSU4nLCAnWE9BVVRIMiddIGFzICRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluX2FycmF5KCRtZXRob2QsICR0aGlzLT5zZXJ2ZXJfY2Fwc1snQVVUSCddLCB0cnVlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGF1dGh0eXBlID0gJG1ldGhvZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkYXV0aHR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcignTm8gc3VwcG9ydGVkIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgZm91bmQnKTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJ0F1dGggbWV0aG9kIHNlbGVjdGVkOiAnIC4gJGF1dGh0eXBlLCBzZWxmOjpERUJVR19MT1dMRVZFTCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaW5fYXJyYXkoJGF1dGh0eXBlLCAkdGhpcy0+c2VydmVyX2NhcHNbJ0FVVEgnXSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoIlRoZSByZXF1ZXN0ZWQgYXV0aGVudGljYXRpb24gbWV0aG9kIFwiJGF1dGh0eXBlXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc2VydmVyIik7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZWlmIChlbXB0eSgkYXV0aHR5cGUpKSB7CisgICAgICAgICAgICAkYXV0aHR5cGUgPSAnTE9HSU4nOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAoJGF1dGh0eXBlKSB7CisgICAgICAgICAgICBjYXNlICdQTEFJTic6CisgICAgICAgICAgICAgICAgLy8gU3RhcnQgYXV0aGVudGljYXRpb24KKyAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgnQVVUSCcsICdBVVRIIFBMQUlOJywgMzM0KSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFNlbmQgZW5jb2RlZCB1c2VybmFtZSBhbmQgcGFzc3dvcmQKKyAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICAgICAgJ1VzZXIgJiBQYXNzd29yZCcsCisgICAgICAgICAgICAgICAgICAgIGJhc2U2NF9lbmNvZGUoIlwwIiAuICR1c2VybmFtZSAuICJcMCIgLiAkcGFzc3dvcmQpLAorICAgICAgICAgICAgICAgICAgICAyMzUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdMT0dJTic6CisgICAgICAgICAgICAgICAgLy8gU3RhcnQgYXV0aGVudGljYXRpb24KKyAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgnQVVUSCcsICdBVVRIIExPR0lOJywgMzM0KSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnNlbmRDb21tYW5kKCdVc2VybmFtZScsIGJhc2U2NF9lbmNvZGUoJHVzZXJuYW1lKSwgMzM0KSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnNlbmRDb21tYW5kKCdQYXNzd29yZCcsIGJhc2U2NF9lbmNvZGUoJHBhc3N3b3JkKSwgMjM1KSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnQ1JBTS1NRDUnOgorICAgICAgICAgICAgICAgIC8vIFN0YXJ0IGF1dGhlbnRpY2F0aW9uCisgICAgICAgICAgICAgICAgaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoJ0FVVEggQ1JBTS1NRDUnLCAnQVVUSCBDUkFNLU1ENScsIDMzNCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGNoYWxsZW5nZQorICAgICAgICAgICAgICAgICRjaGFsbGVuZ2UgPSBiYXNlNjRfZGVjb2RlKHN1YnN0cigkdGhpcy0+bGFzdF9yZXBseSwgNCkpOworCisgICAgICAgICAgICAgICAgLy8gQnVpbGQgdGhlIHJlc3BvbnNlCisgICAgICAgICAgICAgICAgJHJlc3BvbnNlID0gJHVzZXJuYW1lIC4gJyAnIC4gJHRoaXMtPmhtYWMoJGNoYWxsZW5nZSwgJHBhc3N3b3JkKTsKKworICAgICAgICAgICAgICAgIC8vIHNlbmQgZW5jb2RlZCBjcmVkZW50aWFscworICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c2VuZENvbW1hbmQoJ1VzZXJuYW1lJywgYmFzZTY0X2VuY29kZSgkcmVzcG9uc2UpLCAyMzUpOworICAgICAgICAgICAgY2FzZSAnWE9BVVRIMic6CisgICAgICAgICAgICAgICAgLy9UaGUgT0F1dGggaW5zdGFuY2UgbXVzdCBiZSBzZXQgdXAgcHJpb3IgdG8gcmVxdWVzdGluZyBhdXRoLgorICAgICAgICAgICAgICAgIGlmIChudWxsID09PSAkT0F1dGgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkb2F1dGggPSAkT0F1dGgtPmdldE9hdXRoNjQoKTsKKworICAgICAgICAgICAgICAgIC8vIFN0YXJ0IGF1dGhlbnRpY2F0aW9uCisgICAgICAgICAgICAgICAgaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoJ0FVVEgnLCAnQVVUSCBYT0FVVEgyICcgLiAkb2F1dGgsIDIzNSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCJBdXRoZW50aWNhdGlvbiBtZXRob2QgXCIkYXV0aHR5cGVcIiBpcyBub3Qgc3VwcG9ydGVkIik7CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGUgYW4gTUQ1IEhNQUMgaGFzaC4KKyAgICAgKiBXb3JrcyBsaWtlIGhhc2hfaG1hYygnbWQ1JywgJGRhdGEsICRrZXkpCisgICAgICogaW4gY2FzZSB0aGF0IGZ1bmN0aW9uIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRkYXRhIFRoZSBkYXRhIHRvIGhhc2gKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkgIFRoZSBrZXkgdG8gaGFzaCB3aXRoCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBobWFjKCRkYXRhLCAka2V5KQorICAgIHsKKyAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaGFzaF9obWFjJykpIHsKKyAgICAgICAgICAgIHJldHVybiBoYXNoX2htYWMoJ21kNScsICRkYXRhLCAka2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYm9ycm93ZWQgZnJvbQorICAgICAgICAvLyBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24ubWhhc2gucGhwIzI3MjI1CisKKyAgICAgICAgLy8gUkZDIDIxMDQgSE1BQyBpbXBsZW1lbnRhdGlvbiBmb3IgcGhwLgorICAgICAgICAvLyBDcmVhdGVzIGFuIG1kNSBITUFDLgorICAgICAgICAvLyBFbGltaW5hdGVzIHRoZSBuZWVkIHRvIGluc3RhbGwgbWhhc2ggdG8gY29tcHV0ZSBhIEhNQUMKKyAgICAgICAgLy8gYnkgTGFuY2UgUnVzaGluZworCisgICAgICAgICRieXRlbGVuID0gNjQ7IC8vIGJ5dGUgbGVuZ3RoIGZvciBtZDUKKyAgICAgICAgaWYgKHN0cmxlbigka2V5KSA+ICRieXRlbGVuKSB7CisgICAgICAgICAgICAka2V5ID0gcGFjaygnSConLCBtZDUoJGtleSkpOworICAgICAgICB9CisgICAgICAgICRrZXkgPSBzdHJfcGFkKCRrZXksICRieXRlbGVuLCBjaHIoMHgwMCkpOworICAgICAgICAkaXBhZCA9IHN0cl9wYWQoJycsICRieXRlbGVuLCBjaHIoMHgzNikpOworICAgICAgICAkb3BhZCA9IHN0cl9wYWQoJycsICRieXRlbGVuLCBjaHIoMHg1YykpOworICAgICAgICAka19pcGFkID0gJGtleSBeICRpcGFkOworICAgICAgICAka19vcGFkID0gJGtleSBeICRvcGFkOworCisgICAgICAgIHJldHVybiBtZDUoJGtfb3BhZCAuIHBhY2soJ0gqJywgbWQ1KCRrX2lwYWQgLiAkZGF0YSkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBjb25uZWN0aW9uIHN0YXRlLgorICAgICAqCisgICAgICogQHJldHVybiBib29sIFRydWUgaWYgY29ubmVjdGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNvbm5lY3RlZCgpCisgICAgeworICAgICAgICBpZiAoaXNfcmVzb3VyY2UoJHRoaXMtPnNtdHBfY29ubikpIHsKKyAgICAgICAgICAgICRzb2NrX3N0YXR1cyA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCR0aGlzLT5zbXRwX2Nvbm4pOworICAgICAgICAgICAgaWYgKCRzb2NrX3N0YXR1c1snZW9mJ10pIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgc29ja2V0IGlzIHZhbGlkIGJ1dCB3ZSBhcmUgbm90IGNvbm5lY3RlZAorICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoCisgICAgICAgICAgICAgICAgICAgICdTTVRQIE5PVElDRTogRU9GIGNhdWdodCB3aGlsZSBjaGVja2luZyBpZiBjb25uZWN0ZWQnLAorICAgICAgICAgICAgICAgICAgICBzZWxmOjpERUJVR19DTElFTlQKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICR0aGlzLT5jbG9zZSgpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gZXZlcnl0aGluZyBsb29rcyBnb29kCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2UgdGhlIHNvY2tldCBhbmQgY2xlYW4gdXAgdGhlIHN0YXRlIG9mIHRoZSBjbGFzcy4KKyAgICAgKiBEb24ndCB1c2UgdGhpcyBmdW5jdGlvbiB3aXRob3V0IGZpcnN0IHRyeWluZyB0byB1c2UgUVVJVC4KKyAgICAgKgorICAgICAqIEBzZWUgcXVpdCgpCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsb3NlKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5zZXRFcnJvcignJyk7CisgICAgICAgICR0aGlzLT5zZXJ2ZXJfY2FwcyA9IG51bGw7CisgICAgICAgICR0aGlzLT5oZWxvX3JwbHkgPSBudWxsOworICAgICAgICBpZiAoaXNfcmVzb3VyY2UoJHRoaXMtPnNtdHBfY29ubikpIHsKKyAgICAgICAgICAgIC8vIGNsb3NlIHRoZSBjb25uZWN0aW9uIGFuZCBjbGVhbnVwCisgICAgICAgICAgICBmY2xvc2UoJHRoaXMtPnNtdHBfY29ubik7CisgICAgICAgICAgICAkdGhpcy0+c210cF9jb25uID0gbnVsbDsgLy9NYWtlcyBmb3IgY2xlYW5lciBzZXJpYWxpemF0aW9uCisgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKCdDb25uZWN0aW9uOiBjbG9zZWQnLCBzZWxmOjpERUJVR19DT05ORUNUSU9OKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgYW4gU01UUCBEQVRBIGNvbW1hbmQuCisgICAgICogSXNzdWVzIGEgZGF0YSBjb21tYW5kIGFuZCBzZW5kcyB0aGUgbXNnX2RhdGEgdG8gdGhlIHNlcnZlciwKKyAgICAgKiBmaW5pYWxpemluZyB0aGUgbWFpbCB0cmFuc2FjdGlvbi4gJG1zZ19kYXRhIGlzIHRoZSBtZXNzYWdlCisgICAgICogdGhhdCBpcyB0byBiZSBzZW5kIHdpdGggdGhlIGhlYWRlcnMuIEVhY2ggaGVhZGVyIG5lZWRzIHRvIGJlCisgICAgICogb24gYSBzaW5nbGUgbGluZSBmb2xsb3dlZCBieSBhIDxDUkxGPiB3aXRoIHRoZSBtZXNzYWdlIGhlYWRlcnMKKyAgICAgKiBhbmQgdGhlIG1lc3NhZ2UgYm9keSBiZWluZyBzZXBhcmF0ZWQgYnkgYW4gYWRkaXRpb25hbCA8Q1JMRj4uCisgICAgICogSW1wbGVtZW50cyBSRkMgODIxOiBEQVRBIDxDUkxGPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG1zZ19kYXRhIE1lc3NhZ2UgZGF0YSB0byBzZW5kCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZGF0YSgkbXNnX2RhdGEpCisgICAgeworICAgICAgICAvL1RoaXMgd2lsbCB1c2UgdGhlIHN0YW5kYXJkIHRpbWVsaW1pdAorICAgICAgICBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgnREFUQScsICdEQVRBJywgMzU0KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyogVGhlIHNlcnZlciBpcyByZWFkeSB0byBhY2NlcHQgZGF0YSEKKyAgICAgICAgICogQWNjb3JkaW5nIHRvIHJmYzgyMSB3ZSBzaG91bGQgbm90IHNlbmQgbW9yZSB0aGFuIDEwMDAgY2hhcmFjdGVycyBvbiBhIHNpbmdsZSBsaW5lIChpbmNsdWRpbmcgdGhlIExFKQorICAgICAgICAgKiBzbyB3ZSB3aWxsIGJyZWFrIHRoZSBkYXRhIHVwIGludG8gbGluZXMgYnkgXHIgYW5kL29yIFxuIHRoZW4gaWYgbmVlZGVkIHdlIHdpbGwgYnJlYWsgZWFjaCBvZiB0aG9zZSBpbnRvCisgICAgICAgICAqIHNtYWxsZXIgbGluZXMgdG8gZml0IHdpdGhpbiB0aGUgbGltaXQuCisgICAgICAgICAqIFdlIHdpbGwgYWxzbyBsb29rIGZvciBsaW5lcyB0aGF0IHN0YXJ0IHdpdGggYSAnLicgYW5kIHByZXBlbmQgYW4gYWRkaXRpb25hbCAnLicuCisgICAgICAgICAqIE5PVEU6IHRoaXMgZG9lcyBub3QgY291bnQgdG93YXJkcyBsaW5lLWxlbmd0aCBsaW1pdC4KKyAgICAgICAgICovCisKKyAgICAgICAgLy8gTm9ybWFsaXplIGxpbmUgYnJlYWtzIGJlZm9yZSBleHBsb2RpbmcKKyAgICAgICAgJGxpbmVzID0gZXhwbG9kZSgiXG4iLCBzdHJfcmVwbGFjZShbIlxyXG4iLCAiXHIiXSwgIlxuIiwgJG1zZ19kYXRhKSk7CisKKyAgICAgICAgLyogVG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIGNvbXBsZXRlIFJGQzgyMiBtZXNzYWdlIGFuZCBhIHBsYWluIG1lc3NhZ2UgYm9keSwgd2UgY2hlY2sgaWYgdGhlIGZpcnN0IGZpZWxkCisgICAgICAgICAqIG9mIHRoZSBmaXJzdCBsaW5lICgnOicgc2VwYXJhdGVkKSBkb2VzIG5vdCBjb250YWluIGEgc3BhY2UgdGhlbiBpdCBfc2hvdWxkXyBiZSBhIGhlYWRlciBhbmQgd2Ugd2lsbAorICAgICAgICAgKiBwcm9jZXNzIGFsbCBsaW5lcyBiZWZvcmUgYSBibGFuayBsaW5lIGFzIGhlYWRlcnMuCisgICAgICAgICAqLworCisgICAgICAgICRmaWVsZCA9IHN1YnN0cigkbGluZXNbMF0sIDAsIHN0cnBvcygkbGluZXNbMF0sICc6JykpOworICAgICAgICAkaW5faGVhZGVycyA9IGZhbHNlOworICAgICAgICBpZiAoIWVtcHR5KCRmaWVsZCkgJiYgc3RycG9zKCRmaWVsZCwgJyAnKSA9PT0gZmFsc2UpIHsKKyAgICAgICAgICAgICRpbl9oZWFkZXJzID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcmVhY2ggKCRsaW5lcyBhcyAkbGluZSkgeworICAgICAgICAgICAgJGxpbmVzX291dCA9IFtdOworICAgICAgICAgICAgaWYgKCRpbl9oZWFkZXJzICYmICRsaW5lID09PSAnJykgeworICAgICAgICAgICAgICAgICRpbl9oZWFkZXJzID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL0JyZWFrIHRoaXMgbGluZSB1cCBpbnRvIHNldmVyYWwgc21hbGxlciBsaW5lcyBpZiBpdCdzIHRvbyBsb25nCisgICAgICAgICAgICAvL01pY3JvLW9wdGltaXNhdGlvbjogaXNzZXQoJHN0clskbGVuXSkgaXMgZmFzdGVyIHRoYW4gKHN0cmxlbigkc3RyKSA+ICRsZW4pLAorICAgICAgICAgICAgd2hpbGUgKGlzc2V0KCRsaW5lW3NlbGY6Ok1BWF9MSU5FX0xFTkdUSF0pKSB7CisgICAgICAgICAgICAgICAgLy9Xb3JraW5nIGJhY2t3YXJkcywgdHJ5IHRvIGZpbmQgYSBzcGFjZSB3aXRoaW4gdGhlIGxhc3QgTUFYX0xJTkVfTEVOR1RIIGNoYXJzIG9mIHRoZSBsaW5lIHRvIGJyZWFrIG9uCisgICAgICAgICAgICAgICAgLy9zbyBhcyB0byBhdm9pZCBicmVha2luZyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZAorICAgICAgICAgICAgICAgICRwb3MgPSBzdHJycG9zKHN1YnN0cigkbGluZSwgMCwgc2VsZjo6TUFYX0xJTkVfTEVOR1RIKSwgJyAnKTsKKyAgICAgICAgICAgICAgICAvL0RlbGliZXJhdGVseSBtYXRjaGVzIGJvdGggZmFsc2UgYW5kIDAKKyAgICAgICAgICAgICAgICBpZiAoISRwb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9ObyBuaWNlIGJyZWFrIGZvdW5kLCBhZGQgYSBoYXJkIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICRwb3MgPSBzZWxmOjpNQVhfTElORV9MRU5HVEggLSAxOworICAgICAgICAgICAgICAgICAgICAkbGluZXNfb3V0W10gPSBzdWJzdHIoJGxpbmUsIDAsICRwb3MpOworICAgICAgICAgICAgICAgICAgICAkbGluZSA9IHN1YnN0cigkbGluZSwgJHBvcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy9CcmVhayBhdCB0aGUgZm91bmQgcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgJGxpbmVzX291dFtdID0gc3Vic3RyKCRsaW5lLCAwLCAkcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgLy9Nb3ZlIGFsb25nIGJ5IHRoZSBhbW91bnQgd2UgZGVhbHQgd2l0aAorICAgICAgICAgICAgICAgICAgICAkbGluZSA9IHN1YnN0cigkbGluZSwgJHBvcyArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL0lmIHByb2Nlc3NpbmcgaGVhZGVycyBhZGQgYSBMV1NQLWNoYXIgdG8gdGhlIGZyb250IG9mIG5ldyBsaW5lIFJGQzgyMiBzZWN0aW9uIDMuMS4xCisgICAgICAgICAgICAgICAgaWYgKCRpbl9oZWFkZXJzKSB7CisgICAgICAgICAgICAgICAgICAgICRsaW5lID0gIlx0IiAuICRsaW5lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRsaW5lc19vdXRbXSA9ICRsaW5lOworCisgICAgICAgICAgICAvL1NlbmQgdGhlIGxpbmVzIHRvIHRoZSBzZXJ2ZXIKKyAgICAgICAgICAgIGZvcmVhY2ggKCRsaW5lc19vdXQgYXMgJGxpbmVfb3V0KSB7CisgICAgICAgICAgICAgICAgLy9SRkMyODIxIHNlY3Rpb24gNC41LjIKKyAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRsaW5lX291dCkgJiYgJGxpbmVfb3V0WzBdID09PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgJGxpbmVfb3V0ID0gJy4nIC4gJGxpbmVfb3V0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkdGhpcy0+Y2xpZW50X3NlbmQoJGxpbmVfb3V0IC4gc3RhdGljOjpMRSwgJ0RBVEEnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vTWVzc2FnZSBkYXRhIGhhcyBiZWVuIHNlbnQsIGNvbXBsZXRlIHRoZSBjb21tYW5kCisgICAgICAgIC8vSW5jcmVhc2UgdGltZWxpbWl0IGZvciBlbmQgb2YgREFUQSBjb21tYW5kCisgICAgICAgICRzYXZldGltZWxpbWl0ID0gJHRoaXMtPlRpbWVsaW1pdDsKKyAgICAgICAgJHRoaXMtPlRpbWVsaW1pdCAqPSAyOworICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPnNlbmRDb21tYW5kKCdEQVRBIEVORCcsICcuJywgMjUwKTsKKyAgICAgICAgJHRoaXMtPnJlY29yZExhc3RUcmFuc2FjdGlvbklEKCk7CisgICAgICAgIC8vUmVzdG9yZSB0aW1lbGltaXQKKyAgICAgICAgJHRoaXMtPlRpbWVsaW1pdCA9ICRzYXZldGltZWxpbWl0OworCisgICAgICAgIHJldHVybiAkcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgYW4gU01UUCBIRUxPIG9yIEVITE8gY29tbWFuZC4KKyAgICAgKiBVc2VkIHRvIGlkZW50aWZ5IHRoZSBzZW5kaW5nIHNlcnZlciB0byB0aGUgcmVjZWl2aW5nIHNlcnZlci4KKyAgICAgKiBUaGlzIG1ha2VzIHN1cmUgdGhhdCBjbGllbnQgYW5kIHNlcnZlciBhcmUgaW4gYSBrbm93biBzdGF0ZS4KKyAgICAgKiBJbXBsZW1lbnRzIFJGQyA4MjE6IEhFTE8gPFNQPiA8ZG9tYWluPiA8Q1JMRj4KKyAgICAgKiBhbmQgUkZDIDI4MjEgRUhMTy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGhvc3QgVGhlIGhvc3QgbmFtZSBvciBJUCB0byBjb25uZWN0IHRvCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gaGVsbG8oJGhvc3QgPSAnJykKKyAgICB7CisgICAgICAgIC8vVHJ5IGV4dGVuZGVkIGhlbGxvIGZpcnN0IChSRkMgMjgyMSkKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zZW5kSGVsbG8oJ0VITE8nLCAkaG9zdCkgb3IgJHRoaXMtPnNlbmRIZWxsbygnSEVMTycsICRob3N0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGFuIFNNVFAgSEVMTyBvciBFSExPIGNvbW1hbmQuCisgICAgICogTG93LWxldmVsIGltcGxlbWVudGF0aW9uIHVzZWQgYnkgaGVsbG8oKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGhlbGxvIFRoZSBIRUxPIHN0cmluZworICAgICAqIEBwYXJhbSBzdHJpbmcgJGhvc3QgIFRoZSBob3N0bmFtZSB0byBzYXkgd2UgYXJlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKgorICAgICAqIEBzZWUgaGVsbG8oKQorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZW5kSGVsbG8oJGhlbGxvLCAkaG9zdCkKKyAgICB7CisgICAgICAgICRub2Vycm9yID0gJHRoaXMtPnNlbmRDb21tYW5kKCRoZWxsbywgJGhlbGxvIC4gJyAnIC4gJGhvc3QsIDI1MCk7CisgICAgICAgICR0aGlzLT5oZWxvX3JwbHkgPSAkdGhpcy0+bGFzdF9yZXBseTsKKyAgICAgICAgaWYgKCRub2Vycm9yKSB7CisgICAgICAgICAgICAkdGhpcy0+cGFyc2VIZWxsb0ZpZWxkcygkaGVsbG8pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHRoaXMtPnNlcnZlcl9jYXBzID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkbm9lcnJvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHJlcGx5IHRvIEhFTE8vRUhMTyBjb21tYW5kIHRvIGRpc2NvdmVyIHNlcnZlciBleHRlbnNpb25zLgorICAgICAqIEluIGNhc2Ugb2YgSEVMTywgdGhlIG9ubHkgcGFyYW1ldGVyIHRoYXQgY2FuIGJlIGRpc2NvdmVyZWQgaXMgYSBzZXJ2ZXIgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgYEhFTE9gIG9yIGBFSExPYAorICAgICAqLworICAgIHByb3RlY3RlZCBmdW5jdGlvbiBwYXJzZUhlbGxvRmllbGRzKCR0eXBlKQorICAgIHsKKyAgICAgICAgJHRoaXMtPnNlcnZlcl9jYXBzID0gW107CisgICAgICAgICRsaW5lcyA9IGV4cGxvZGUoIlxuIiwgJHRoaXMtPmhlbG9fcnBseSk7CisKKyAgICAgICAgZm9yZWFjaCAoJGxpbmVzIGFzICRuID0+ICRzKSB7CisgICAgICAgICAgICAvL0ZpcnN0IDQgY2hhcnMgY29udGFpbiByZXNwb25zZSBjb2RlIGZvbGxvd2VkIGJ5IC0gb3Igc3BhY2UKKyAgICAgICAgICAgICRzID0gdHJpbShzdWJzdHIoJHMsIDQpKTsKKyAgICAgICAgICAgIGlmIChlbXB0eSgkcykpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRmaWVsZHMgPSBleHBsb2RlKCcgJywgJHMpOworICAgICAgICAgICAgaWYgKCFlbXB0eSgkZmllbGRzKSkgeworICAgICAgICAgICAgICAgIGlmICghJG4pIHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSAkdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgJGZpZWxkcyA9ICRmaWVsZHNbMF07CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSBhcnJheV9zaGlmdCgkZmllbGRzKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkbmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnU0laRSc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkcyA9ICgkZmllbGRzID8gJGZpZWxkc1swXSA6IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnQVVUSCc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc19hcnJheSgkZmllbGRzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmllbGRzID0gW107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmllbGRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkdGhpcy0+c2VydmVyX2NhcHNbJG5hbWVdID0gJGZpZWxkczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgYW4gU01UUCBNQUlMIGNvbW1hbmQuCisgICAgICogU3RhcnRzIGEgbWFpbCB0cmFuc2FjdGlvbiBmcm9tIHRoZSBlbWFpbCBhZGRyZXNzIHNwZWNpZmllZCBpbgorICAgICAqICRmcm9tLiBSZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bCBvciBmYWxzZSBvdGhlcndpc2UuIElmIFRydWUKKyAgICAgKiB0aGUgbWFpbCB0cmFuc2FjdGlvbiBpcyBzdGFydGVkIGFuZCB0aGVuIG9uZSBvciBtb3JlIHJlY2lwaWVudAorICAgICAqIGNvbW1hbmRzIG1heSBiZSBjYWxsZWQgZm9sbG93ZWQgYnkgYSBkYXRhIGNvbW1hbmQuCisgICAgICogSW1wbGVtZW50cyBSRkMgODIxOiBNQUlMIDxTUD4gRlJPTTo8cmV2ZXJzZS1wYXRoPiA8Q1JMRj4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRmcm9tIFNvdXJjZSBhZGRyZXNzIG9mIHRoaXMgbWVzc2FnZQorICAgICAqCisgICAgICogQHJldHVybiBib29sCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIG1haWwoJGZyb20pCisgICAgeworICAgICAgICAkdXNlVmVycCA9ICgkdGhpcy0+ZG9fdmVycCA/ICcgWFZFUlAnIDogJycpOworCisgICAgICAgIHJldHVybiAkdGhpcy0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAnTUFJTCBGUk9NJywKKyAgICAgICAgICAgICdNQUlMIEZST006PCcgLiAkZnJvbSAuICc+JyAuICR1c2VWZXJwLAorICAgICAgICAgICAgMjUwCisgICAgICAgICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCBhbiBTTVRQIFFVSVQgY29tbWFuZC4KKyAgICAgKiBDbG9zZXMgdGhlIHNvY2tldCBpZiB0aGVyZSBpcyBubyBlcnJvciBvciB0aGUgJGNsb3NlX29uX2Vycm9yIGFyZ3VtZW50IGlzIHRydWUuCisgICAgICogSW1wbGVtZW50cyBmcm9tIFJGQyA4MjE6IFFVSVQgPENSTEY+LgorICAgICAqCisgICAgICogQHBhcmFtIGJvb2wgJGNsb3NlX29uX2Vycm9yIFNob3VsZCB0aGUgY29ubmVjdGlvbiBjbG9zZSBpZiBhbiBlcnJvciBvY2N1cnM/CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gcXVpdCgkY2xvc2Vfb25fZXJyb3IgPSB0cnVlKQorICAgIHsKKyAgICAgICAgJG5vZXJyb3IgPSAkdGhpcy0+c2VuZENvbW1hbmQoJ1FVSVQnLCAnUVVJVCcsIDIyMSk7CisgICAgICAgICRlcnIgPSAkdGhpcy0+ZXJyb3I7IC8vU2F2ZSBhbnkgZXJyb3IKKyAgICAgICAgaWYgKCRub2Vycm9yIHx8ICRjbG9zZV9vbl9lcnJvcikgeworICAgICAgICAgICAgJHRoaXMtPmNsb3NlKCk7CisgICAgICAgICAgICAkdGhpcy0+ZXJyb3IgPSAkZXJyOyAvL1Jlc3RvcmUgYW55IGVycm9yIGZyb20gdGhlIHF1aXQgY29tbWFuZAorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICRub2Vycm9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgYW4gU01UUCBSQ1BUIGNvbW1hbmQuCisgICAgICogU2V0cyB0aGUgVE8gYXJndW1lbnQgdG8gJHRvYWRkci4KKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlY2lwaWVudCB3YXMgYWNjZXB0ZWQgZmFsc2UgaWYgaXQgd2FzIHJlamVjdGVkLgorICAgICAqIEltcGxlbWVudHMgZnJvbSBSRkMgODIxOiBSQ1BUIDxTUD4gVE86PGZvcndhcmQtcGF0aD4gPENSTEY+LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcyBUaGUgYWRkcmVzcyB0aGUgbWVzc2FnZSBpcyBiZWluZyBzZW50IHRvCisgICAgICogQHBhcmFtIHN0cmluZyAkZHNuICAgICBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBEU04gbm90aWZpY2F0aW9ucy4gTkVWRVIsIFNVQ0NFU1MsIEZBSUxVUkUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9yIERFTEFZLiBJZiB5b3Ugc3BlY2lmeSBORVZFUiBhbGwgb3RoZXIgbm90aWZpY2F0aW9ucyBhcmUgaWdub3JlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiByZWNpcGllbnQoJGFkZHJlc3MsICRkc24gPSAnJykKKyAgICB7CisgICAgICAgIGlmIChlbXB0eSgkZHNuKSkgeworICAgICAgICAgICAgJHJjcHQgPSAnUkNQVCBUTzo8JyAuICRhZGRyZXNzIC4gJz4nOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGRzbiA9IHN0cnRvdXBwZXIoJGRzbik7CisgICAgICAgICAgICAkbm90aWZ5ID0gW107CisKKyAgICAgICAgICAgIGlmIChzdHJwb3MoJGRzbiwgJ05FVkVSJykgIT09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgJG5vdGlmeVtdID0gJ05FVkVSJzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yZWFjaCAoWydTVUNDRVNTJywgJ0ZBSUxVUkUnLCAnREVMQVknXSBhcyAkdmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnBvcygkZHNuLCAkdmFsdWUpICE9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJG5vdGlmeVtdID0gJHZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAkcmNwdCA9ICdSQ1BUIFRPOjwnIC4gJGFkZHJlc3MgLiAnPiBOT1RJRlk9JyAuIGltcGxvZGUoJywnLCAkbm90aWZ5KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAnUkNQVCBUTycsCisgICAgICAgICAgICAkcmNwdCwKKyAgICAgICAgICAgIFsyNTAsIDI1MV0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGFuIFNNVFAgUlNFVCBjb21tYW5kLgorICAgICAqIEFib3J0IGFueSB0cmFuc2FjdGlvbiB0aGF0IGlzIGN1cnJlbnRseSBpbiBwcm9ncmVzcy4KKyAgICAgKiBJbXBsZW1lbnRzIFJGQyA4MjE6IFJTRVQgPENSTEY+LgorICAgICAqCisgICAgICogQHJldHVybiBib29sIFRydWUgb24gc3VjY2VzcworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiByZXNldCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCdSU0VUJywgJ1JTRVQnLCAyNTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgYSBjb21tYW5kIHRvIGFuIFNNVFAgc2VydmVyIGFuZCBjaGVjayBpdHMgcmV0dXJuIGNvZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICRjb21tYW5kICAgICAgIFRoZSBjb21tYW5kIG5hbWUgLSBub3Qgc2VudCB0byB0aGUgc2VydmVyCisgICAgICogQHBhcmFtIHN0cmluZyAgICAkY29tbWFuZHN0cmluZyBUaGUgYWN0dWFsIGNvbW1hbmQgdG8gc2VuZAorICAgICAqIEBwYXJhbSBpbnR8YXJyYXkgJGV4cGVjdCAgICAgICAgT25lIG9yIG1vcmUgZXhwZWN0ZWQgaW50ZWdlciBzdWNjZXNzIGNvZGVzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBvbiBzdWNjZXNzCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNlbmRDb21tYW5kKCRjb21tYW5kLCAkY29tbWFuZHN0cmluZywgJGV4cGVjdCkKKyAgICB7CisgICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3RlZCgpKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoIkNhbGxlZCAkY29tbWFuZCB3aXRob3V0IGJlaW5nIGNvbm5lY3RlZCIpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy9SZWplY3QgbGluZSBicmVha3MgaW4gYWxsIGNvbW1hbmRzCisgICAgICAgIGlmICgoc3RycG9zKCRjb21tYW5kc3RyaW5nLCAiXG4iKSAhPT0gZmFsc2UpIHx8IChzdHJwb3MoJGNvbW1hbmRzdHJpbmcsICJcciIpICE9PSBmYWxzZSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigiQ29tbWFuZCAnJGNvbW1hbmQnIGNvbnRhaW5lZCBsaW5lIGJyZWFrcyIpOworCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmNsaWVudF9zZW5kKCRjb21tYW5kc3RyaW5nIC4gc3RhdGljOjpMRSwgJGNvbW1hbmQpOworCisgICAgICAgICR0aGlzLT5sYXN0X3JlcGx5ID0gJHRoaXMtPmdldF9saW5lcygpOworICAgICAgICAvLyBGZXRjaCBTTVRQIGNvZGUgYW5kIHBvc3NpYmxlIGVycm9yIGNvZGUgZXhwbGFuYXRpb24KKyAgICAgICAgJG1hdGNoZXMgPSBbXTsKKyAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eKFtcZF17M30pWyAtXSg/OihbXGRdXFwuW1xkXVxcLltcZF17MSwyfSkgKT8vJywgJHRoaXMtPmxhc3RfcmVwbHksICRtYXRjaGVzKSkgeworICAgICAgICAgICAgJGNvZGUgPSAoaW50KSAkbWF0Y2hlc1sxXTsKKyAgICAgICAgICAgICRjb2RlX2V4ID0gKGNvdW50KCRtYXRjaGVzKSA+IDIgPyAkbWF0Y2hlc1syXSA6IG51bGwpOworICAgICAgICAgICAgLy8gQ3V0IG9mZiBlcnJvciBjb2RlIGZyb20gZWFjaCByZXNwb25zZSBsaW5lCisgICAgICAgICAgICAkZGV0YWlsID0gcHJlZ19yZXBsYWNlKAorICAgICAgICAgICAgICAgICIveyRjb2RlfVsgLV0iIC4KKyAgICAgICAgICAgICAgICAoJGNvZGVfZXggPyBzdHJfcmVwbGFjZSgnLicsICdcXC4nLCAkY29kZV9leCkgLiAnICcgOiAnJykgLiAnL20nLAorICAgICAgICAgICAgICAgICcnLAorICAgICAgICAgICAgICAgICR0aGlzLT5sYXN0X3JlcGx5CisgICAgICAgICAgICApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHNpbXBsZSBwYXJzaW5nIGlmIHJlZ2V4IGZhaWxzCisgICAgICAgICAgICAkY29kZSA9IChpbnQpIHN1YnN0cigkdGhpcy0+bGFzdF9yZXBseSwgMCwgMyk7CisgICAgICAgICAgICAkY29kZV9leCA9IG51bGw7CisgICAgICAgICAgICAkZGV0YWlsID0gc3Vic3RyKCR0aGlzLT5sYXN0X3JlcGx5LCA0KTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5lZGVidWcoJ1NFUlZFUiAtPiBDTElFTlQ6ICcgLiAkdGhpcy0+bGFzdF9yZXBseSwgc2VsZjo6REVCVUdfU0VSVkVSKTsKKworICAgICAgICBpZiAoIWluX2FycmF5KCRjb2RlLCAoYXJyYXkpICRleHBlY3QsIHRydWUpKSB7CisgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoCisgICAgICAgICAgICAgICAgIiRjb21tYW5kIGNvbW1hbmQgZmFpbGVkIiwKKyAgICAgICAgICAgICAgICAkZGV0YWlsLAorICAgICAgICAgICAgICAgICRjb2RlLAorICAgICAgICAgICAgICAgICRjb2RlX2V4CisgICAgICAgICAgICApOworICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygKKyAgICAgICAgICAgICAgICAnU01UUCBFUlJPUjogJyAuICR0aGlzLT5lcnJvclsnZXJyb3InXSAuICc6ICcgLiAkdGhpcy0+bGFzdF9yZXBseSwKKyAgICAgICAgICAgICAgICBzZWxmOjpERUJVR19DTElFTlQKKyAgICAgICAgICAgICk7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgICR0aGlzLT5zZXRFcnJvcignJyk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCBhbiBTTVRQIFNBTUwgY29tbWFuZC4KKyAgICAgKiBTdGFydHMgYSBtYWlsIHRyYW5zYWN0aW9uIGZyb20gdGhlIGVtYWlsIGFkZHJlc3Mgc3BlY2lmaWVkIGluICRmcm9tLgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsIG9yIGZhbHNlIG90aGVyd2lzZS4gSWYgVHJ1ZQorICAgICAqIHRoZSBtYWlsIHRyYW5zYWN0aW9uIGlzIHN0YXJ0ZWQgYW5kIHRoZW4gb25lIG9yIG1vcmUgcmVjaXBpZW50CisgICAgICogY29tbWFuZHMgbWF5IGJlIGNhbGxlZCBmb2xsb3dlZCBieSBhIGRhdGEgY29tbWFuZC4gVGhpcyBjb21tYW5kCisgICAgICogd2lsbCBzZW5kIHRoZSBtZXNzYWdlIHRvIHRoZSB1c2VycyB0ZXJtaW5hbCBpZiB0aGV5IGFyZSBsb2dnZWQKKyAgICAgKiBpbiBhbmQgc2VuZCB0aGVtIGFuIGVtYWlsLgorICAgICAqIEltcGxlbWVudHMgUkZDIDgyMTogU0FNTCA8U1A+IEZST006PHJldmVyc2UtcGF0aD4gPENSTEY+LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZnJvbSBUaGUgYWRkcmVzcyB0aGUgbWVzc2FnZSBpcyBmcm9tCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZEFuZE1haWwoJGZyb20pCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCdTQU1MJywgIlNBTUwgRlJPTTokZnJvbSIsIDI1MCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCBhbiBTTVRQIFZSRlkgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIG5hbWUgdG8gdmVyaWZ5CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdmVyaWZ5KCRuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zZW5kQ29tbWFuZCgnVlJGWScsICJWUkZZICRuYW1lIiwgWzI1MCwgMjUxXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCBhbiBTTVRQIE5PT1AgY29tbWFuZC4KKyAgICAgKiBVc2VkIHRvIGtlZXAga2VlcC1hbGl2ZXMgYWxpdmUsIGRvZXNuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gbm9vcCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCdOT09QJywgJ05PT1AnLCAyNTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbmQgYW4gU01UUCBUVVJOIGNvbW1hbmQuCisgICAgICogVGhpcyBpcyBhbiBvcHRpb25hbCBjb21tYW5kIGZvciBTTVRQIHRoYXQgdGhpcyBjbGFzcyBkb2VzIG5vdCBzdXBwb3J0LgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGhlcmUgdG8gbWFrZSB0aGUgUkZDODIxIERlZmluaXRpb24gY29tcGxldGUgZm9yIHRoaXMgY2xhc3MKKyAgICAgKiBhbmQgX21heV8gYmUgaW1wbGVtZW50ZWQgaW4gZnV0dXJlLgorICAgICAqIEltcGxlbWVudHMgZnJvbSBSRkMgODIxOiBUVVJOIDxDUkxGPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0dXJuKCkKKyAgICB7CisgICAgICAgICR0aGlzLT5zZXRFcnJvcignVGhlIFNNVFAgVFVSTiBjb21tYW5kIGlzIG5vdCBpbXBsZW1lbnRlZCcpOworICAgICAgICAkdGhpcy0+ZWRlYnVnKCdTTVRQIE5PVElDRTogJyAuICR0aGlzLT5lcnJvclsnZXJyb3InXSwgc2VsZjo6REVCVUdfQ0xJRU5UKTsKKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCByYXcgZGF0YSB0byB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmluZyAkZGF0YSAgICBUaGUgZGF0YSB0byBzZW5kCisgICAgICogQHBhcmFtIHN0cmluZyAkY29tbWFuZCBPcHRpb25hbGx5LCB0aGUgY29tbWFuZCB0aGlzIGlzIHBhcnQgb2YsIHVzZWQgb25seSBmb3IgY29udHJvbGxpbmcgZGVidWcgb3V0cHV0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludHxib29sIFRoZSBudW1iZXIgb2YgYnl0ZXMgc2VudCB0byB0aGUgc2VydmVyIG9yIGZhbHNlIG9uIGVycm9yCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGNsaWVudF9zZW5kKCRkYXRhLCAkY29tbWFuZCA9ICcnKQorICAgIHsKKyAgICAgICAgLy9JZiBTTVRQIHRyYW5zY3JpcHRzIGFyZSBsZWZ0IGVuYWJsZWQsIG9yIGRlYnVnIG91dHB1dCBpcyBwb3N0ZWQgb25saW5lCisgICAgICAgIC8vaXQgY2FuIGxlYWsgY3JlZGVudGlhbHMsIHNvIGhpZGUgY3JlZGVudGlhbHMgaW4gYWxsIGJ1dCBsb3dlc3QgbGV2ZWwKKyAgICAgICAgaWYgKHNlbGY6OkRFQlVHX0xPV0xFVkVMID4gJHRoaXMtPmRvX2RlYnVnICYmCisgICAgICAgICAgICBpbl9hcnJheSgkY29tbWFuZCwgWydVc2VyICYgUGFzc3dvcmQnLCAnVXNlcm5hbWUnLCAnUGFzc3dvcmQnXSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJ0NMSUVOVCAtPiBTRVJWRVI6IFtjcmVkZW50aWFscyBoaWRkZW5dJywgc2VsZjo6REVCVUdfQ0xJRU5UKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJ0NMSUVOVCAtPiBTRVJWRVI6ICcgLiAkZGF0YSwgc2VsZjo6REVCVUdfQ0xJRU5UKTsKKyAgICAgICAgfQorICAgICAgICBzZXRfZXJyb3JfaGFuZGxlcihbJHRoaXMsICdlcnJvckhhbmRsZXInXSk7CisgICAgICAgICRyZXN1bHQgPSBmd3JpdGUoJHRoaXMtPnNtdHBfY29ubiwgJGRhdGEpOworICAgICAgICByZXN0b3JlX2Vycm9yX2hhbmRsZXIoKTsKKworICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxhdGVzdCBlcnJvci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RXJyb3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5lcnJvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgU01UUCBleHRlbnNpb25zIGF2YWlsYWJsZSBvbiB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBhcnJheXxudWxsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFNlcnZlckV4dExpc3QoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5zZXJ2ZXJfY2FwczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWV0YWRhdGEgYWJvdXQgdGhlIFNNVFAgc2VydmVyIGZyb20gaXRzIEhFTE8vRUhMTyByZXNwb25zZS4KKyAgICAgKiBUaGUgbWV0aG9kIHdvcmtzIGluIHRocmVlIHdheXMsIGRlcGVuZGVudCBvbiBhcmd1bWVudCB2YWx1ZSBhbmQgY3VycmVudCBzdGF0ZToKKyAgICAgKiAgIDEuIEhFTE8vRUhMTyBoYXMgbm90IGJlZW4gc2VudCAtIHJldHVybnMgbnVsbCBhbmQgcG9wdWxhdGVzICR0aGlzLT5lcnJvci4KKyAgICAgKiAgIDIuIEhFTE8gaGFzIGJlZW4gc2VudCAtCisgICAgICogICAgICRuYW1lID09ICdIRUxPJzogcmV0dXJucyBzZXJ2ZXIgbmFtZQorICAgICAqICAgICAkbmFtZSA9PSAnRUhMTyc6IHJldHVybnMgYm9vbGVhbiBmYWxzZQorICAgICAqICAgICAkbmFtZSA9PSBhbnkgb3RoZXIgc3RyaW5nOiByZXR1cm5zIG51bGwgYW5kIHBvcHVsYXRlcyAkdGhpcy0+ZXJyb3IKKyAgICAgKiAgIDMuIEVITE8gaGFzIGJlZW4gc2VudCAtCisgICAgICogICAgICRuYW1lID09ICdIRUxPJ3wnRUhMTyc6IHJldHVybnMgdGhlIHNlcnZlciBuYW1lCisgICAgICogICAgICRuYW1lID09IGFueSBvdGhlciBzdHJpbmc6IGlmIGV4dGVuc2lvbiAkbmFtZSBleGlzdHMsIHJldHVybnMgVHJ1ZQorICAgICAqICAgICAgIG9yIGl0cyBvcHRpb25zIChlLmcuIEFVVEggbWVjaGFuaXNtcyBzdXBwb3J0ZWQpLiBPdGhlcndpc2UgcmV0dXJucyBGYWxzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgTmFtZSBvZiBTTVRQIGV4dGVuc2lvbiBvciAnSEVMTyd8J0VITE8nCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZ3xib29sfG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2VydmVyRXh0KCRuYW1lKQorICAgIHsKKyAgICAgICAgaWYgKCEkdGhpcy0+c2VydmVyX2NhcHMpIHsKKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcignTm8gSEVMTy9FSExPIHdhcyBzZW50Jyk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwgJHRoaXMtPnNlcnZlcl9jYXBzKSkgeworICAgICAgICAgICAgaWYgKCdIRUxPJyA9PT0gJG5hbWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNlcnZlcl9jYXBzWydFSExPJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJ0VITE8nID09PSAkbmFtZSB8fCBhcnJheV9rZXlfZXhpc3RzKCdFSExPJywgJHRoaXMtPnNlcnZlcl9jYXBzKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcignSEVMTyBoYW5kc2hha2Ugd2FzIHVzZWQ7IE5vIGluZm9ybWF0aW9uIGFib3V0IHNlcnZlciBleHRlbnNpb25zIGF2YWlsYWJsZScpOworCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gJHRoaXMtPnNlcnZlcl9jYXBzWyRuYW1lXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxhc3QgcmVwbHkgZnJvbSB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TGFzdFJlcGx5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+bGFzdF9yZXBseTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBTTVRQIHNlcnZlcidzIHJlc3BvbnNlLgorICAgICAqIEVpdGhlciBiZWZvcmUgZW9mIG9yIHNvY2tldCB0aW1lb3V0IG9jY3VycyBvbiB0aGUgb3BlcmF0aW9uLgorICAgICAqIFdpdGggU01UUCB3ZSBjYW4gdGVsbCBpZiB3ZSBoYXZlIG1vcmUgbGluZXMgdG8gcmVhZCBpZiB0aGUKKyAgICAgKiA0dGggY2hhcmFjdGVyIGlzICctJyBzeW1ib2wuIElmIGl0IGlzIGEgc3BhY2UgdGhlbiB3ZSBkb24ndAorICAgICAqIG5lZWQgdG8gcmVhZCBhbnl0aGluZyBlbHNlLgorICAgICAqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2xpbmVzKCkKKyAgICB7CisgICAgICAgIC8vIElmIHRoZSBjb25uZWN0aW9uIGlzIGJhZCwgZ2l2ZSB1cCBzdHJhaWdodCBhd2F5CisgICAgICAgIGlmICghaXNfcmVzb3VyY2UoJHRoaXMtPnNtdHBfY29ubikpIHsKKyAgICAgICAgICAgIHJldHVybiAnJzsKKyAgICAgICAgfQorICAgICAgICAkZGF0YSA9ICcnOworICAgICAgICAkZW5kdGltZSA9IDA7CisgICAgICAgIHN0cmVhbV9zZXRfdGltZW91dCgkdGhpcy0+c210cF9jb25uLCAkdGhpcy0+VGltZW91dCk7CisgICAgICAgIGlmICgkdGhpcy0+VGltZWxpbWl0ID4gMCkgeworICAgICAgICAgICAgJGVuZHRpbWUgPSB0aW1lKCkgKyAkdGhpcy0+VGltZWxpbWl0OworICAgICAgICB9CisgICAgICAgICRzZWxSID0gWyR0aGlzLT5zbXRwX2Nvbm5dOworICAgICAgICAkc2VsVyA9IG51bGw7CisgICAgICAgIHdoaWxlIChpc19yZXNvdXJjZSgkdGhpcy0+c210cF9jb25uKSAmJiAhZmVvZigkdGhpcy0+c210cF9jb25uKSkgeworICAgICAgICAgICAgLy9NdXN0IHBhc3MgdmFycyBpbiBoZXJlIGFzIHBhcmFtcyBhcmUgYnkgcmVmZXJlbmNlCisgICAgICAgICAgICBpZiAoIXN0cmVhbV9zZWxlY3QoJHNlbFIsICRzZWxXLCAkc2VsVywgJHRoaXMtPlRpbWVsaW1pdCkpIHsKKyAgICAgICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKAorICAgICAgICAgICAgICAgICAgICAnU01UUCAtPiBnZXRfbGluZXMoKTogc2VsZWN0IHRpbWVkLW91dCBpbiAoJyAuICR0aGlzLT5UaW1lbGltaXQgLiAnIHNlYyknLAorICAgICAgICAgICAgICAgICAgICBzZWxmOjpERUJVR19MT1dMRVZFTAorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL0RlbGliZXJhdGUgbm9pc2Ugc3VwcHJlc3Npb24gLSBlcnJvcnMgYXJlIGhhbmRsZWQgYWZ0ZXJ3YXJkcworICAgICAgICAgICAgJHN0ciA9IEBmZ2V0cygkdGhpcy0+c210cF9jb25uLCBzZWxmOjpNQVhfUkVQTFlfTEVOR1RIKTsKKyAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJ1NNVFAgSU5CT1VORDogIicgLiB0cmltKCRzdHIpIC4gJyInLCBzZWxmOjpERUJVR19MT1dMRVZFTCk7CisgICAgICAgICAgICAkZGF0YSAuPSAkc3RyOworICAgICAgICAgICAgLy8gSWYgcmVzcG9uc2UgaXMgb25seSAzIGNoYXJzIChub3QgdmFsaWQsIGJ1dCBSRkM1MzIxIFM0LjIgc2F5cyBpdCBtdXN0IGJlIGhhbmRsZWQpLAorICAgICAgICAgICAgLy8gb3IgNHRoIGNoYXJhY3RlciBpcyBhIHNwYWNlIG9yIGEgbGluZSBicmVhayBjaGFyLCB3ZSBhcmUgZG9uZSByZWFkaW5nLCBicmVhayB0aGUgbG9vcC4KKyAgICAgICAgICAgIC8vIFN0cmluZyBhcnJheSBhY2Nlc3MgaXMgYSBzaWduaWZpY2FudCBtaWNyby1vcHRpbWlzYXRpb24gb3ZlciBzdHJsZW4KKyAgICAgICAgICAgIGlmICghaXNzZXQoJHN0clszXSkgfHwgJHN0clszXSA9PT0gJyAnIHx8ICRzdHJbM10gPT09ICJcciIgfHwgJHN0clszXSA9PT0gIlxuIikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gVGltZWQtb3V0PyBMb2cgYW5kIGJyZWFrCisgICAgICAgICAgICAkaW5mbyA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCR0aGlzLT5zbXRwX2Nvbm4pOworICAgICAgICAgICAgaWYgKCRpbmZvWyd0aW1lZF9vdXQnXSkgeworICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoCisgICAgICAgICAgICAgICAgICAgICdTTVRQIC0+IGdldF9saW5lcygpOiBzdHJlYW0gdGltZWQtb3V0ICgnIC4gJHRoaXMtPlRpbWVvdXQgLiAnIHNlYyknLAorICAgICAgICAgICAgICAgICAgICBzZWxmOjpERUJVR19MT1dMRVZFTAorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgcmVhZHMgdG9vayB0b28gbG9uZworICAgICAgICAgICAgaWYgKCRlbmR0aW1lICYmIHRpbWUoKSA+ICRlbmR0aW1lKSB7CisgICAgICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygKKyAgICAgICAgICAgICAgICAgICAgJ1NNVFAgLT4gZ2V0X2xpbmVzKCk6IHRpbWVsaW1pdCByZWFjaGVkICgnIC4KKyAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlRpbWVsaW1pdCAuICcgc2VjKScsCisgICAgICAgICAgICAgICAgICAgIHNlbGY6OkRFQlVHX0xPV0xFVkVMCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkZGF0YTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmFibGUgb3IgZGlzYWJsZSBWRVJQIGFkZHJlc3MgZ2VuZXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBib29sICRlbmFibGVkCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFZlcnAoJGVuYWJsZWQgPSBmYWxzZSkKKyAgICB7CisgICAgICAgICR0aGlzLT5kb192ZXJwID0gJGVuYWJsZWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IFZFUlAgYWRkcmVzcyBnZW5lcmF0aW9uIG1vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJvb2wKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VmVycCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmRvX3ZlcnA7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGVycm9yIG1lc3NhZ2VzIGFuZCBjb2Rlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgICAgICBUaGUgZXJyb3IgbWVzc2FnZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGRldGFpbCAgICAgICBGdXJ0aGVyIGRldGFpbCBvbiB0aGUgZXJyb3IKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzbXRwX2NvZGUgICAgQW4gYXNzb2NpYXRlZCBTTVRQIGVycm9yIGNvZGUKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRzbXRwX2NvZGVfZXggRXh0ZW5kZWQgU01UUCBjb2RlCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldEVycm9yKCRtZXNzYWdlLCAkZGV0YWlsID0gJycsICRzbXRwX2NvZGUgPSAnJywgJHNtdHBfY29kZV9leCA9ICcnKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmVycm9yID0gWworICAgICAgICAgICAgJ2Vycm9yJyA9PiAkbWVzc2FnZSwKKyAgICAgICAgICAgICdkZXRhaWwnID0+ICRkZXRhaWwsCisgICAgICAgICAgICAnc210cF9jb2RlJyA9PiAkc210cF9jb2RlLAorICAgICAgICAgICAgJ3NtdHBfY29kZV9leCcgPT4gJHNtdHBfY29kZV9leCwKKyAgICAgICAgXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgZGVidWcgb3V0cHV0IG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHJpbmd8Y2FsbGFibGUgJG1ldGhvZCBUaGUgbmFtZSBvZiB0aGUgbWVjaGFuaXNtIHRvIHVzZSBmb3IgZGVidWdnaW5nIG91dHB1dCwgb3IgYSBjYWxsYWJsZSB0byBoYW5kbGUgaXQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RGVidWdPdXRwdXQoJG1ldGhvZCA9ICdlY2hvJykKKyAgICB7CisgICAgICAgICR0aGlzLT5EZWJ1Z291dHB1dCA9ICRtZXRob2Q7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGRlYnVnIG91dHB1dCBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREZWJ1Z091dHB1dCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPkRlYnVnb3V0cHV0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBkZWJ1ZyBvdXRwdXQgbGV2ZWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW50ICRsZXZlbAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBzZXREZWJ1Z0xldmVsKCRsZXZlbCA9IDApCisgICAgeworICAgICAgICAkdGhpcy0+ZG9fZGVidWcgPSAkbGV2ZWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGRlYnVnIG91dHB1dCBsZXZlbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldERlYnVnTGV2ZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5kb19kZWJ1ZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgU01UUCB0aW1lb3V0LgorICAgICAqCisgICAgICogQHBhcmFtIGludCAkdGltZW91dCBUaGUgdGltZW91dCBkdXJhdGlvbiBpbiBzZWNvbmRzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHNldFRpbWVvdXQoJHRpbWVvdXQgPSAwKQorICAgIHsKKyAgICAgICAgJHRoaXMtPlRpbWVvdXQgPSAkdGltZW91dDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgU01UUCB0aW1lb3V0LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGltZW91dCgpCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPlRpbWVvdXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwb3J0cyBhbiBlcnJvciBudW1iZXIgYW5kIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnQgICAgJGVycm5vICAgVGhlIGVycm9yIG51bWJlciByZXR1cm5lZCBieSBQSFAKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRlcnJtc2cgIFRoZSBlcnJvciBtZXNzYWdlIHJldHVybmVkIGJ5IFBIUAorICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycmZpbGUgVGhlIGZpbGUgdGhlIGVycm9yIG9jY3VycmVkIGluCisgICAgICogQHBhcmFtIGludCAgICAkZXJybGluZSBUaGUgbGluZSBudW1iZXIgdGhlIGVycm9yIG9jY3VycmVkIG9uCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGVycm9ySGFuZGxlcigkZXJybm8sICRlcnJtc2csICRlcnJmaWxlID0gJycsICRlcnJsaW5lID0gMCkKKyAgICB7CisgICAgICAgICRub3RpY2UgPSAnQ29ubmVjdGlvbiBmYWlsZWQuJzsKKyAgICAgICAgJHRoaXMtPnNldEVycm9yKAorICAgICAgICAgICAgJG5vdGljZSwKKyAgICAgICAgICAgICRlcnJtc2csCisgICAgICAgICAgICAoc3RyaW5nKSAkZXJybm8KKyAgICAgICAgKTsKKyAgICAgICAgJHRoaXMtPmVkZWJ1ZygKKyAgICAgICAgICAgICIkbm90aWNlIEVycm9yICMkZXJybm86ICRlcnJtc2cgWyRlcnJmaWxlIGxpbmUgJGVycmxpbmVdIiwKKyAgICAgICAgICAgIHNlbGY6OkRFQlVHX0NPTk5FQ1RJT04KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHRyYWN0IGFuZCByZXR1cm4gdGhlIElEIG9mIHRoZSBsYXN0IFNNVFAgdHJhbnNhY3Rpb24gYmFzZWQgb24KKyAgICAgKiBhIGxpc3Qgb2YgcGF0dGVybnMgcHJvdmlkZWQgaW4gU01UUDo6JHNtdHBfdHJhbnNhY3Rpb25faWRfcGF0dGVybnMuCisgICAgICogUmVsaWVzIG9uIHRoZSBob3N0IHByb3ZpZGluZyB0aGUgSUQgaW4gcmVzcG9uc2UgdG8gYSBEQVRBIGNvbW1hbmQuCisgICAgICogSWYgbm8gcmVwbHkgaGFzIGJlZW4gcmVjZWl2ZWQgeWV0LCBpdCB3aWxsIHJldHVybiBudWxsLgorICAgICAqIElmIG5vIHBhdHRlcm4gd2FzIG1hdGNoZWQsIGl0IHdpbGwgcmV0dXJuIGZhbHNlLgorICAgICAqCisgICAgICogQHJldHVybiBib29sfHN0cmluZ3xudWxsCisgICAgICovCisgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlY29yZExhc3RUcmFuc2FjdGlvbklEKCkKKyAgICB7CisgICAgICAgICRyZXBseSA9ICR0aGlzLT5nZXRMYXN0UmVwbHkoKTsKKworICAgICAgICBpZiAoZW1wdHkoJHJlcGx5KSkgeworICAgICAgICAgICAgJHRoaXMtPmxhc3Rfc210cF90cmFuc2FjdGlvbl9pZCA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkdGhpcy0+bGFzdF9zbXRwX3RyYW5zYWN0aW9uX2lkID0gZmFsc2U7CisgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+c210cF90cmFuc2FjdGlvbl9pZF9wYXR0ZXJucyBhcyAkc210cF90cmFuc2FjdGlvbl9pZF9wYXR0ZXJuKSB7CisgICAgICAgICAgICAgICAgJG1hdGNoZXMgPSBbXTsKKyAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkc210cF90cmFuc2FjdGlvbl9pZF9wYXR0ZXJuLCAkcmVwbHksICRtYXRjaGVzKSkgeworICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bGFzdF9zbXRwX3RyYW5zYWN0aW9uX2lkID0gdHJpbSgkbWF0Y2hlc1sxXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAkdGhpcy0+bGFzdF9zbXRwX3RyYW5zYWN0aW9uX2lkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcXVldWUvdHJhbnNhY3Rpb24gSUQgb2YgdGhlIGxhc3QgU01UUCB0cmFuc2FjdGlvbgorICAgICAqIElmIG5vIHJlcGx5IGhhcyBiZWVuIHJlY2VpdmVkIHlldCwgaXQgd2lsbCByZXR1cm4gbnVsbC4KKyAgICAgKiBJZiBubyBwYXR0ZXJuIHdhcyBtYXRjaGVkLCBpdCB3aWxsIHJldHVybiBmYWxzZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYm9vbHxzdHJpbmd8bnVsbAorICAgICAqCisgICAgICogQHNlZSByZWNvcmRMYXN0VHJhbnNhY3Rpb25JRCgpCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldExhc3RUcmFuc2FjdGlvbklEKCkKKyAgICB7CisgICAgICAgIHJldHVybiAkdGhpcy0+bGFzdF9zbXRwX3RyYW5zYWN0aW9uX2lkOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoLy5naXRpZ25vcmUgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMjU4NDEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMTg5IEBACisjIyBJZ25vcmUgVmlzdWFsIFN0dWRpbyB0ZW1wb3JhcnkgZmlsZXMsIGJ1aWxkIHJlc3VsdHMsIGFuZAorIyMgZmlsZXMgZ2VuZXJhdGVkIGJ5IHBvcHVsYXIgVmlzdWFsIFN0dWRpbyBhZGQtb25zLgorCisjIFVzZXItc3BlY2lmaWMgZmlsZXMKKyouc3VvCisqLnVzZXIKKyouc2xuLmRvY3N0YXRlcworCisjIEJ1aWxkIHJlc3VsdHMKK1tEZF1lYnVnLworW0RkXWVidWdQdWJsaWMvCitbUnJdZWxlYXNlLworW1JyXWVsZWFzZXMvCit4NjQvCit4ODYvCitidWlsZC8KK2JsZC8KK1tCYl1pbi8KK1tPb11iai8KKworIyBSb3NseW4gY2FjaGUgZGlyZWN0b3JpZXMKKyouaWRlLworCisjIE1TVGVzdCB0ZXN0IFJlc3VsdHMKK1tUdF1lc3RbUnJdZXN1bHQqLworW0JiXXVpbGRbTGxdb2cuKgorCisjTlVOSVQKKyouVmlzdWFsU3RhdGUueG1sCitUZXN0UmVzdWx0LnhtbAorCisjIEJ1aWxkIFJlc3VsdHMgb2YgYW4gQVRMIFByb2plY3QKK1tEZF1lYnVnUFMvCitbUnJdZWxlYXNlUFMvCitkbGxkYXRhLmMKKworKl9pLmMKKypfcC5jCisqX2kuaAorKi5pbGsKKyoubWV0YQorKi5vYmoKKyoucGNoCisqLnBkYgorKi5wZ2MKKyoucGdkCisqLnJzcAorKi5zYnIKKyoudGxiCisqLnRsaQorKi50bGgKKyoudG1wCisqLnRtcF9wcm9qCisqLmxvZworKi52c3BzY2MKKyoudnNzc2NjCisuYnVpbGRzCisqLnBpZGIKKyouc3ZjbG9nCisqLnNjYworCisjIENodXR6cGFoIFRlc3QgZmlsZXMKK19DaHV0enBhaCoKKworIyBWaXN1YWwgQysrIGNhY2hlIGZpbGVzCitpcGNoLworKi5hcHMKKyoubmNiCisqLm9wZW5zZGYKKyouc2RmCisqLmNhY2hlZmlsZQorCisjIFZpc3VhbCBTdHVkaW8gcHJvZmlsZXIKKyoucHNlc3MKKyoudnNwCisqLnZzcHgKKworIyBURlMgMjAxMiBMb2NhbCBXb3Jrc3BhY2UKKyR0Zi8KKworIyBHdWlkYW5jZSBBdXRvbWF0aW9uIFRvb2xraXQKKyouZ3BTdGF0ZQorCisjIFJlU2hhcnBlciBpcyBhIC5ORVQgY29kaW5nIGFkZC1pbgorX1JlU2hhcnBlciovCisqLltScl1lW1NzXWhhcnBlcgorKi5Eb3RTZXR0aW5ncy51c2VyCisKKyMgSnVzdENvZGUgaXMgYSAuTkVUIGNvZGluZyBhZGRpbi1pbgorLkp1c3RDb2RlCisKKyMgVGVhbUNpdHkgaXMgYSBidWlsZCBhZGQtaW4KK19UZWFtQ2l0eSoKKworIyBEb3RDb3ZlciBpcyBhIENvZGUgQ292ZXJhZ2UgVG9vbAorKi5kb3RDb3ZlcgorCisjIE5DcnVuY2gKK19OQ3J1bmNoXyoKKy4qY3J1bmNoKi5sb2NhbC54bWwKKworIyBNaWdodHlNb29zZQorKi5tbS4qCitBdXRvVGVzdC5OZXQvCisKKyMgV2ViIHdvcmtiZW5jaCAoc2FzcykKKy5zYXNzLWNhY2hlLworCisjIEluc3RhbGxzaGllbGQgb3V0cHV0IGZvbGRlcgorW0VlXXhwcmVzcy8KKworIyBEb2NQcm9qZWN0IGlzIGEgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgYWRkLWluCitEb2NQcm9qZWN0L2J1aWxkaGVscC8KK0RvY1Byb2plY3QvSGVscC8qLkh4VAorRG9jUHJvamVjdC9IZWxwLyouSHhDCitEb2NQcm9qZWN0L0hlbHAvKi5oaGMKK0RvY1Byb2plY3QvSGVscC8qLmhoaworRG9jUHJvamVjdC9IZWxwLyouaGhwCitEb2NQcm9qZWN0L0hlbHAvSHRtbDIKK0RvY1Byb2plY3QvSGVscC9odG1sCisKKyMgQ2xpY2stT25jZSBkaXJlY3RvcnkKK3B1Ymxpc2gvCisKKyMgUHVibGlzaCBXZWIgT3V0cHV0CisqLltQcF11Ymxpc2gueG1sCisqLmF6dXJlUHVieG1sCisjIFRPRE86IENvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3Ugd2FudCB0byBjaGVja2luIHlvdXIgd2ViIGRlcGxveSBzZXR0aW5ncyAKKyMgYnV0IGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RyaW5ncyAod2l0aCBwb3RlbnRpYWwgcGFzc3dvcmRzKSB3aWxsIGJlIHVuZW5jcnlwdGVkCisqLnB1YnhtbAorKi5wdWJsaXNocHJvagorCisjIE51R2V0IFBhY2thZ2VzCisqLm51cGtnCisjIFRoZSBwYWNrYWdlcyBmb2xkZXIgY2FuIGJlIGlnbm9yZWQgYmVjYXVzZSBvZiBQYWNrYWdlIFJlc3RvcmUKKyoqL3BhY2thZ2VzLyoKKyMgZXhjZXB0IGJ1aWxkLywgd2hpY2ggaXMgdXNlZCBhcyBhbiBNU0J1aWxkIHRhcmdldC4KKyEqKi9wYWNrYWdlcy9idWlsZC8KKyMgSWYgdXNpbmcgdGhlIG9sZCBNU0J1aWxkLUludGVncmF0ZWQgUGFja2FnZSBSZXN0b3JlLCB1bmNvbW1lbnQgdGhpczoKKyMhKiovcGFja2FnZXMvcmVwb3NpdG9yaWVzLmNvbmZpZworCisjIFdpbmRvd3MgQXp1cmUgQnVpbGQgT3V0cHV0Citjc3gvCisqLmJ1aWxkLmNzZGVmCisKKyMgV2luZG93cyBTdG9yZSBhcHAgcGFja2FnZSBkaXJlY3RvcnkKK0FwcFBhY2thZ2VzLworCisjIE90aGVycworc3FsLworKi5DYWNoZQorQ2xpZW50QmluLworW1NzXXR5bGVbQ2Ndb3AuKgorfiQqCisqfgorKi5kYm1kbAorKi5kYnByb2ouc2NoZW1hdmlldworKi5wZngKKyoucHVibGlzaHNldHRpbmdzCitub2RlX21vZHVsZXMvCisKKyMgUklBL1NpbHZlcmxpZ2h0IHByb2plY3RzCitHZW5lcmF0ZWRfQ29kZS8KKworIyBCYWNrdXAgJiByZXBvcnQgZmlsZXMgZnJvbSBjb252ZXJ0aW5nIGFuIG9sZCBwcm9qZWN0IGZpbGUKKyMgdG8gYSBuZXdlciBWaXN1YWwgU3R1ZGlvIHZlcnNpb24uIEJhY2t1cCBmaWxlcyBhcmUgbm90IG5lZWRlZCwKKyMgYmVjYXVzZSB3ZSBoYXZlIGdpdCA7LSkKK19VcGdyYWRlUmVwb3J0X0ZpbGVzLworQmFja3VwKi8KK1VwZ3JhZGVMb2cqLlhNTAorVXBncmFkZUxvZyouaHRtCisKKyMgU1FMIFNlcnZlciBmaWxlcworKi5tZGYKKyoubGRmCisKKyMgQnVzaW5lc3MgSW50ZWxsaWdlbmNlIHByb2plY3RzCisqLnJkbC5kYXRhCisqLmJpbS5sYXlvdXQKKyouYmltXyouc2V0dGluZ3MKKworIyBNaWNyb3NvZnQgRmFrZXMKK0Zha2VzQXNzZW1ibGllcy8KKworIyBDb21wb3NlcgorL3ZlbmRvcgorCisjIC52cworLnZzLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoLy50cmF2aXMueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRjNmZmNQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsMTUgQEAKK2xhbmd1YWdlOiBwaHAKKworcGhwOgorICAtIDUuNgorICAtIDcuMAorICAtIDcuMQorICAtIDcuMgorICAtIDcuMworICAtIDcuNAorCitiZWZvcmVfc2NyaXB0OgorICAtIGNvbXBvc2VyIGluc3RhbGwKKworc2NyaXB0OgorICAtIHZlbmRvci9iaW4vcGhwdW5pdCAtLWNvdmVyYWdlLXRleHQgdGVzdHMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9MSUNFTlNFIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvTElDRU5TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWE5NjMxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvTElDRU5TRQpAQCAtMCwwICsxLDIyIEBACitUaGUgTUlUIExpY2Vuc2UgKE1JVCkKKworQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUgUm9iIEphbnNzZW4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKK3RvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKK2NvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCitjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKK0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCisKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL1JFQURNRS5tZCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTc0YWU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTk5IEBACisjICFbTG9nb10oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvbWFzdGVyL2xvZ28ucG5nKSBQSFAgbGlicmFyeSBmb3IgVHdvIEZhY3RvciBBdXRoZW50aWNhdGlvbgorCitbIVtCdWlsZCBzdGF0dXNdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vdHJhdmlzL1JvYlRocmVlL1R3b0ZhY3RvckF1dGguc3ZnP3N0eWxlPWZsYXQtc3F1YXJlKV0oaHR0cHM6Ly90cmF2aXMtY2kub3JnL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvKSBbIVtMYXRlc3QgU3RhYmxlIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcGFja2FnaXN0L3Yvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvcm9idGhyZWUvdHdvZmFjdG9yYXV0aCkgWyFbTGljZW5zZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3QvbC9yb2J0aHJlZS90d29mYWN0b3JhdXRoLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKExJQ0VOU0UpIFshW0Rvd25sb2Fkc10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9wYWNrYWdpc3QvZHQvcm9idGhyZWUvdHdvZmFjdG9yYXV0aC5zdmc/c3R5bGU9ZmxhdC1zcXVhcmUpXShodHRwczovL3BhY2thZ2lzdC5vcmcvcGFja2FnZXMvcm9idGhyZWUvdHdvZmFjdG9yYXV0aCkgWyFbQ29kZSBDbGltYXRlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVjbGltYXRlL2dpdGh1Yi9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoKSBbIVtQYXlQYWwgZG9uYXRlIGJ1dHRvbl0oaHR0cDovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3BheXBhbC1kb25hdGUtb3JhbmdlLnN2Zz9zdHlsZT1mbGF0LXNxdWFyZSldKGh0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3I/Y21kPV9zLXhjbGljayZob3N0ZWRfYnV0dG9uX2lkPTZNQjVNMlNRTFA2MzYgIktlZXAgbWUgb2ZmIHRoZSBzdHJlZXRzIikKKworUEhQIGxpYnJhcnkgZm9yIFt0d28tZmFjdG9yIChvciBtdWx0aS1mYWN0b3IpIGF1dGhlbnRpY2F0aW9uXShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL011bHRpLWZhY3Rvcl9hdXRoZW50aWNhdGlvbikgdXNpbmcgW1RPVFBdKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVGltZS1iYXNlZF9PbmUtdGltZV9QYXNzd29yZF9BbGdvcml0aG0pIGFuZCBbUVItY29kZXNdKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUVJfY29kZSkuIEluc3BpcmVkIGJ5LCBiYXNlZCBvbiBidXQgbW9zdCBpbXBvcnRhbnRseSBhbiAqaW1wcm92ZW1lbnQqIG9uICdbUEhQR2FuZ3N0YS9Hb29nbGVBdXRoZW50aWNhdG9yXShodHRwczovL2dpdGh1Yi5jb20vUEhQR2FuZ3N0YS9Hb29nbGVBdXRoZW50aWNhdG9yKScuIFRoZXJlJ3MgYSBbLk5ldCBpbXBsZW1lbnRhdGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGguTmV0KSBvZiB0aGlzIGxpYnJhcnkgYXMgd2VsbC4KKworPHAgYWxpZ249ImNlbnRlciI+Cis8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvbWFzdGVyL211bHRpZmFjdG9yYXV0aGZvcmV2ZXJ5b25lLnBuZyI+Cis8L3A+CisKKyMjIFJlcXVpcmVtZW50cworCisqIFRlc3RlZCBvbiBQSFAgNS42IHVwIHRvIDcuNAorKiBbY1VSTF0oaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Jvb2suY3VybC5waHApIHdoZW4gdXNpbmcgdGhlIHByb3ZpZGVkIGBJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyYCAoZGVmYXVsdCksIGBRUlNlcnZlclByb3ZpZGVyYCBvciBgUVJpY2tldFByb3ZpZGVyYCBidXQgeW91IGNhbiBhbHNvIHByb3ZpZGUgeW91ciBvd24gUVItY29kZSBwcm92aWRlci4KKyogW3JhbmRvbV9ieXRlcygpXShodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24ucmFuZG9tLWJ5dGVzLnBocCksIFtNQ3J5cHRdKGh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9ib29rLm1jcnlwdC5waHApLCBbT3BlblNTTF0oaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Jvb2sub3BlbnNzbC5waHApIG9yIFtIYXNoXShodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vYm9vay5oYXNoLnBocCkgZGVwZW5kaW5nIG9uIHdoaWNoIGJ1aWx0LWluIFJORyB5b3UgdXNlIChUd29GYWN0b3JBdXRoIHdpbGwgdHJ5IHRvICdhdXRvZGV0ZWN0JyBhbmQgdXNlIHRoZSBiZXN0IGF2YWlsYWJsZSk7IGhvd2V2ZXI6IGZlZWwgZnJlZSB0byBwcm92aWRlIHlvdXIgb3duIChDUylSTkcuCisKKyMjIEluc3RhbGxhdGlvbgorCitSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOgorCitgcGhwIGNvbXBvc2VyLnBoYXIgcmVxdWlyZSByb2J0aHJlZS90d29mYWN0b3JhdXRoYAorCisjIyBRdWljayBzdGFydAorCitJZiB5b3Ugd2FudCB0byBoaXQgdGhlIGdyb3VuZCBydW5uaW5nIHRoZW4gaGF2ZSBhIGxvb2sgYXQgdGhlIFtkZW1vXShkZW1vL2RlbW8ucGhwKS4gSXQncyB2ZXJ5IHNpbXBsZSBhbmQgZWFzeSEKKworIyMgVXNhZ2UKKworSGVyZSBhcmUgc29tZSBjb2RlIHNuaXBwZXRzIHRoYXQgc2hvdWxkIGhlbHAgeW91IGdldCBzdGFydGVkLi4uCisKK2BgYGBwaHAKKy8vIENyZWF0ZSBhIFR3b0ZhY3RvckF1dGggaW5zdGFuY2UKKyR0ZmEgPSBuZXcgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoKCdNeSBDb21wYW55Jyk7CitgYGBgCisKK1RoZSBUd29GYWN0b3JBdXRoIGNsYXNzIGNvbnN0cnVjdG9yIGFjY2VwdHMgNyBhcmd1bWVudHMgKGFsbCBvcHRpb25hbCk6CisKK0FyZ3VtZW50ICAgICAgICAgIHwgRGVmYXVsdCB2YWx1ZSB8IFVzZSAKKy0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2AkaXNzdWVyYCAgICAgICAgIHwgYG51bGxgICAgICAgICB8IFdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBhcHAgYXMgaXNzdWVyIG5hbWUKK2AkZGlnaXRzYCAgICAgICAgIHwgYDZgICAgICAgICAgICB8IFRoZSBudW1iZXIgb2YgZGlnaXRzIHRoZSByZXN1bHRpbmcgY29kZXMgd2lsbCBiZQorYCRwZXJpb2RgICAgICAgICAgfCBgMzBgICAgICAgICAgIHwgVGhlIG51bWJlciBvZiBzZWNvbmRzIGEgY29kZSB3aWxsIGJlIHZhbGlkCitgJGFsZ29yaXRobWAgICAgICB8IGBzaGExYCAgICAgICAgfCBUaGUgYWxnb3JpdGhtIHVzZWQKK2AkcXJjb2RlcHJvdmlkZXJgIHwgYG51bGxgICAgICAgICB8IFFSLWNvZGUgcHJvdmlkZXIgKG1vcmUgb24gdGhpcyBsYXRlcikKK2Akcm5ncHJvdmlkZXJgICAgIHwgYG51bGxgICAgICAgICB8IFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yIHByb3ZpZGVyIChtb3JlIG9uIHRoaXMgbGF0ZXIpCitgJHRpbWVwcm92aWRlcmAgICB8IGBudWxsYCAgICAgICAgfCBUaW1lIHByb3ZpZGVyIChtb3JlIG9uIHRoaXMgbGF0ZXIpCisKK1RoZXNlIGFyZ3VtZW50cyBhcmUgYWxsICdgd3JpdGUgb25jZWAnOyB0aGUgY2xhc3Mgd2lsbCwgZm9yIGl0J3MgbGlmZXRpbWUsIHVzZSB0aGVzZSB2YWx1ZXMgd2hlbiBnZW5lcmF0aW5nIC8gY2FsY3VsYXRpbmcgY29kZXMuIFRoZSBudW1iZXIgb2YgZGlnaXRzLCB0aGUgcGVyaW9kIGFuZCBhbGdvcml0aG0gYXJlIGFsbCBzZXQgdG8gdmFsdWVzIEdvb2dsZSdzIEF1dGh0aWNhdG9yIGFwcCB1c2VzIChhbmQgc3VwcG9ydHMpLiBZb3UgbWF5IHNwZWNpZnkgYDhgIGRpZ2l0cywgYSBwZXJpb2Qgb2YgYDQ1YCBzZWNvbmRzIGFuZCB0aGUgYHNoYTI1NmAgYWxnb3JpdGhtIGJ1dCB0aGUgYXV0aGVudGljYXRvciBhcHAgKGJlIGl0IEdvb2dsZSdzIGltcGxlbWVudGF0aW9uLCBBdXRoeSBvciBhbnkgb3RoZXIgYXBwKSBtYXkgb3IgbWF5IG5vdCBzdXBwb3J0IHRoZXNlIHZhbHVlcy4gWW91ciBtaWxlYWdlIG1heSB2YXJ5OyBrZWVwIGl0IG9uIHRoZSBzYWZlIHNpZGUgaWYgeW91IGRvbid0IGNvbnRyb2wgd2hpY2ggYXBwIHlvdXIgYXVkaWVuY2UgdXNlcy4KKworIyMjIFN0ZXAgMTogU2V0IHVwIHNlY3JldCBzaGFyZWQga2V5CisKK1doZW4gYSB1c2VyIHdhbnRzIHRvIHNldHVwIHR3by1mYWN0b3IgYXV0aCAob3IsIG1vcmUgY29ycmVjdGx5LCBtdWx0aS1mYWN0b3IgYXV0aCkgeW91IG5lZWQgdG8gY3JlYXRlIGEgc2VjcmV0LiBUaGlzIHdpbGwgYmUgeW91ciAqKnNoYXJlZCBzZWNyZXQqKi4gVGhpcyBzZWNyZXQgd2lsbCBuZWVkIHRvIGJlIGVudGVyZWQgYnkgdGhlIHVzZXIgaW4gdGhlaXIgYXBwLiBUaGlzIGNhbiBiZSBkb25lIG1hbnVhbGx5LCBpbiB3aGljaCBjYXNlIHlvdSBzaW1wbHkgZGlzcGxheSB0aGUgc2VjcmV0IGFuZCBoYXZlIHRoZSB1c2VyIHR5cGUgaXQgaW4gdGhlIGFwcDoKKworYGBgYHBocAorJHNlY3JldCA9ICR0ZmEtPmNyZWF0ZVNlY3JldCgpOworYGBgYAorCitUaGUgYGNyZWF0ZVNlY3JldCgpYCBtZXRob2QgYWNjZXB0cyB0d28gYXJndW1lbnRzOiBgJGJpdHNgIChkZWZhdWx0OiBgODBgKSBhbmQgYCRyZXF1aXJlY3J5cHRvc2VjdXJlYCAoZGVmYXVsdDogYHRydWVgKS4gVGhlIGZvcm1lciBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgZ2VuZXJhdGVkIGZvciB0aGUgc2hhcmVkIHNlY3JldC4gTWFrZSBzdXJlIHRoaXMgYXJndW1lbnQgaXMgYSBtdWx0aXBsZSBvZiA4IGFuZCwgYWdhaW4sIGtlZXAgaW4gbWluZCB0aGF0IG5vdCBhbGwgY29tYmluYXRpb25zIG1heSBiZSBzdXBwb3J0ZWQgYnkgYWxsIGFwcHMuIEdvb2dsZSBhdXRoZW50aWNhdG9yIHNlZW1zIGhhcHB5IHdpdGggODAgYW5kIDE2MCwgdGhlIGRlZmF1bHQgaXMgc2V0IHRvIDgwIGJlY2F1c2UgdGhhdCdzIHdoYXQgbW9zdCBzaXRlcyAodGhhdCBJIGtub3cgb2YpIGN1cnJlbnRseSB1c2U7IGhvd2V2ZXIgYSB2YWx1ZSBvZiAxNjAgb3IgaGlnaGVyIGlzIHJlY29tbWVuZGVkIChzZWUgW1JGQyA0MjI2IC0gQWxnb3JpdGhtIFJlcXVpcmVtZW50c10oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQyMjYjc2VjdGlvbi00KSkuIFRoZSBsYXR0ZXIgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUgc2VjcmV0IGlzIGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZTsgaWYgeW91IGRvbid0IGNhcmUgdmVyeSBtdWNoIGZvciBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgc2VjcmV0cyB5b3UgY2FuIHNwZWNpZnkgYGZhbHNlYCBhbmQgdXNlIGEgKipub24qKi1jcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgUk5HIHByb3ZpZGVyLgorCitgYGBgcGhwCisvLyBEaXNwbGF5IHNoYXJlZCBzZWNyZXQKKzxwPlBsZWFzZSBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW4geW91ciBhcHA6ICc8P3BocCBlY2hvICRzZWNyZXQ7ID8+JzwvcD4KK2BgYGAKKworQW5vdGhlciwgbW9yZSB1c2VyLWZyaWVuZGx5LCB3YXkgdG8gZ2V0IHRoZSBzaGFyZWQgc2VjcmV0IGludG8gdGhlIGFwcCBpcyB0byBnZW5lcmF0ZSBhIFtRUi1jb2RlXShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1FSX2NvZGUpIHdoaWNoIGNhbiBiZSBzY2FubmVkIGJ5IHRoZSBhcHAuIFRvIGdlbmVyYXRlIHRoZXNlIFFSIGNvZGVzIHlvdSBjYW4gdXNlIGFueSBvbmUgb2YgdGhlIGJ1aWx0LWluIGBRUlByb3ZpZGVyYCBjbGFzc2VzOgorCisxLiBgSW1hZ2VDaGFydHNRUkNvZGVQcm92aWRlcmAgKGRlZmF1bHQpCisyLiBgUVJTZXJ2ZXJQcm92aWRlcmAKKzMuIGBRUmlja2V0UHJvdmlkZXJgCisKKy4uLm9yIGltcGxlbWVudCB5b3VyIG93biBwcm92aWRlci4gVG8gaW1wbGVtZW50IHlvdXIgb3duIHByb3ZpZGVyIGFsbCB5b3UgbmVlZCB0byBkbyBpcyBpbXBsZW1lbnQgdGhlIGBJUVJDb2RlUHJvdmlkZXJgIGludGVyZmFjZS4gWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluIHByb3ZpZGVycyBtZW50aW9uZWQgYmVmb3JlIHRvIHNlcnZlIGFzIGFuIGV4YW1wbGUgb3IgcmVhZCB0aGUgbmV4dCBjaGFwdGVyIGluIHRoaXMgZmlsZS4gVGhlIGJ1aWx0LWluIGNsYXNzZXMgYWxsIHVzZSBhIDNyZCAoZS5nLiBleHRlcm5hbCkgcGFydHkgKEltYWdlLWNoYXJ0cywgUVJTZXJ2ZXIgYW5kIFFSaWNrZXQpIGZvciB0aGUgaGFyZCB3b3JrIG9mIGdlbmVyYXRpbmcgUVItY29kZXMgKG5vdGU6IGVhY2ggb2YgdGhlc2Ugc2VydmljZXMgbWlnaHQgYXQgc29tZSBwb2ludCBub3QgYmUgYXZhaWxhYmxlIG9yIGltcG9zZSBsaW1pdGF0aW9ucyB0byB0aGUgbnVtYmVyIG9mIGNvZGVzIGdlbmVyYXRlZCBwZXIgZGF5LCBob3VyIGV0Yy4pLiBZb3UgY291bGQsIGhvd2V2ZXIsIGVhc2lseSB1c2UgYSBwcm9qZWN0IGxpa2UgW1BIUCBRUiBDb2RlXShodHRwOi8vcGhwcXJjb2RlLnNvdXJjZWZvcmdlLm5ldC8pIChvciBvbmUgb2YgdGhlIFttYW55IG90aGVyc10oaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL3NlYXJjaC8/cT1xcikpIHRvIGdlbmVyYXRlIHlvdXIgUVItY29kZXMgd2l0aG91dCBkZXBlbmRpbmcgb24gZXh0ZXJuYWwgc291cmNlcy4gTGF0ZXIgb24gd2UnbGwgW2RlbW9uc3RyYXRlXSgjcXItY29kZS1wcm92aWRlcnMpIGhvdyB0byBkbyB0aGlzLgorCitUaGUgYnVpbHQtaW4gcHJvdmlkZXJzIGFsbCBoYXZlIHNvbWUgcHJvdmlkZXItc3BlY2lmaWMgJ3R3ZWFrcycgeW91IGNhbiAnYXBwbHknLiBTb21lIHByb3ZpZGUgc3VwcG9ydCBmb3IgZGlmZmVyZW50IGNvbG9ycywgb3RoZXJzIG1heSBsZXQgeW91IHNwZWNpZnkgdGhlIGRlc2lyZWQgaW1hZ2UtZm9ybWF0IGV0Yy4gV2hhdCB0aGV5IGFsbCBoYXZlIGluIGNvbW1vbiBpcyB0aGF0IHRoZXkgcmV0dXJuIGEgUVItY29kZSBhcyBiaW5hcnkgYmxvYiB3aGljaCwgaW4gdHVybiwgd2lsbCBiZSB0dXJuZWQgaW50byBhIFtkYXRhIFVSSV0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EYXRhX1VSSV9zY2hlbWUpIGJ5IHRoZSBgVHdvRmFjdG9yQXV0aGAgY2xhc3MuIFRoaXMgbWFrZXMgaXQgZWFzeSBmb3IgeW91IHRvIGRpc3BsYXkgdGhlIGltYWdlIHdpdGhvdXQgcmVxdWlyaW5nIGV4dHJhICdyb3VuZHRyaXBzJyBmcm9tIGJyb3dzZXIgdG8gc2VydmVyIGFuZCB2aWNlIHZlcnNhLgorCitgYGBgcGhwCisvLyBEaXNwbGF5IFFSIGNvZGUgdG8gdXNlcgorPHA+U2NhbiB0aGUgZm9sbG93aW5nIGltYWdlIHdpdGggeW91ciBhcHA6PC9wPgorPHA+PGltZyBzcmM9Ijw/cGhwIGVjaG8gJHRmYS0+Z2V0UVJDb2RlSW1hZ2VBc0RhdGFVcmkoJ0JvYiBSb3NzJywgJHNlY3JldCk7ID8+Ij48L3A+CitgYGBgCisKK1doZW4gb3V0cHV0dGluZyBhIFFSLWNvZGUgeW91IGNhbiBjaG9vc2UgYSBgJGxhYmVsYCBmb3IgdGhlIHVzZXIgKHdoaWNoLCB3aGVuIGVudGVyaW5nIGEgc2hhcmVkIHNlY3JldCBtYW51YWxseSwgd2lsbCBoYXZlIHRvIGJlIGNob3NlbiBieSB0aGUgdXNlcikuIFRoaXMgbGFiZWwgbWF5IGJlIGFuIGVtcHR5IHN0cmluZyBvciBgbnVsbGAuIEFsc28gYSBgJHNpemVgIG1heSBiZSBzcGVjaWZpZWQgKGluIHBpeGVscywgd2lkdGggPT0gaGVpZ2h0KSBmb3Igd2hpY2ggd2UgdXNlIGEgZGVmYXVsdCB2YWx1ZSBvZiBgMjAwYC4KKworIyMjIFN0ZXAgMjogVmVyaWZ5IHNlY3JldCBzaGFyZWQga2V5CisKK1doZW4gdGhlIHNoYXJlZCBzZWNyZXQgaXMgYWRkZWQgdG8gdGhlIGFwcCwgdGhlIGFwcCB3aWxsIGJlIHJlYWR5IHRvIHN0YXJ0IGdlbmVyYXRpbmcgY29kZXMgd2hpY2ggJ2V4cGlyZScgZWFjaCAnYCRwZXJpb2RgJyBudW1iZXIgb2Ygc2Vjb25kcy4gVG8gbWFrZSBzdXJlIHRoZSBzZWNyZXQgd2FzIGVudGVyZWQsIG9yIHNjYW5uZWQsIGNvcnJlY3RseSB5b3UgbmVlZCB0byB2ZXJpZnkgdGhpcyBieSBoYXZpbmcgdGhlIHVzZXIgZW50ZXIgYSBnZW5lcmF0ZWQgY29kZS4gVG8gY2hlY2sgaWYgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIHZhbGlkIHlvdSBjYWxsIHRoZSBgdmVyaWZ5Q29kZSgpYCBtZXRob2Q6CisKK2BgYGBwaHAKKy8vIFZlcmlmeSBjb2RlCiskcmVzdWx0ID0gJHRmYS0+dmVyaWZ5Q29kZSgkX1NFU1NJT05bJ3NlY3JldCddLCAkX1BPU1RbJ3ZlcmlmaWNhdGlvbiddKTsKK2BgYGAKKworYHZlcmlmeUNvZGUoKWAgd2lsbCByZXR1cm4gZWl0aGVyIGB0cnVlYCAodGhlIGNvZGUgd2FzIHZhbGlkKSBvciBgZmFsc2VgICh0aGUgY29kZSB3YXMgaW52YWxpZDsgbm8gcG9pbnRzIGZvciB5b3UhKS4gWW91IG1heSBuZWVkIHRvIHN0b3JlIGAkc2VjcmV0YCBpbiBhIGAkX1NFU1NJT05gIG9yIG90aGVyIHBlcnNpc3RlbnQgc3RvcmFnZSBiZXR3ZWVuIHJlcXVlc3RzLiBUaGUgYHZlcmlmeUNvZGUoKWAgYWNjZXB0cywgYXNpZGUgZnJvbSBgJHNlY3JldGAgYW5kIGAkY29kZWAsIHRocmVlIG1vcmUgYXJndW1lbnRzLiBUaGUgZmlyc3QgYmVpbmcgYCRkaXNjcmVwYW5jeWAuIFNpbmNlIFRPVFAgY29kZXMgYXJlIGJhc2VkIG9uIHRpbWUoInNsaWNlcyIpIGl0IGlzIHZlcnkgaW1wb3J0YW50IHRoYXQgdGhlIHNlcnZlciAoYnV0IGFsc28gY2xpZW50KSBoYXZlIGEgY29ycmVjdCBkYXRlL3RpbWUuIEJ1dCBiZWNhdXNlIHRoZSB0d28gKm1heSogZGlmZmVyIGEgYml0IHdlIHVzdWFsbHkgYWxsb3cgYSBjZXJ0YWluIGFtb3VudCBvZiBsZWV3YXkuIEJlY2F1c2UgZ2VuZXJhdGVkIGNvZGVzIGFyZSB2YWxpZCBmb3IgYSBzcGVjaWZpYyBwZXJpb2QgKHJlbWVtYmVyIHRoZSBgJHBlcmlvZGAgYXJndW1lbnQgaW4gdGhlIGBUd29GYWN0b3JBdXRoYCdzIGNvbnN0cnVjdG9yPykgd2UgdXN1YWxseSBjaGVjayB0aGUgcGVyaW9kIGRpcmVjdGx5IGJlZm9yZSBhbmQgdGhlIHBlcmlvZCBkaXJlY3RseSBhZnRlciB0aGUgY3VycmVudCB0aW1lIHdoZW4gdmFsaWRhdGluZyBjb2Rlcy4gU28gd2hlbiB0aGUgY3VycmVudCB0aW1lIGlzIGAxNDozNDoyMWAsIHdoaWNoIHJlc3VsdHMgaW4gYSAnY3VycmVudCB0aW1lc2xpY2UnIG9mIGAxNDozNDowMGAgdG8gYDE0OjM0OjMwYCB3ZSBhbHNvIGNhbGN1bGF0ZS92ZXJpZnkgdGhlIGNvZGVzIGZvciBgMTQ6MzM6MzBgIHRvIGAxNDozNDowMGAgYW5kIGZvciBgMTQ6MzQ6MzBgIHRvIGAxNDozNTowMGAuIFRoaXMgZ2l2ZXMgdXMgYSAnd2luZG93JyBvZiBgMTQ6MzM6MzBgIHRvIGAxNDozNTowMGAuIFRoZSBgJGRpc2NyZXBhbmN5YCBhcmd1bWVudCBzcGVjaWZpZXMgaG93IG1hbnkgcGVyaW9kcyAob3I6IHRpbWVzbGljZXMpIHdlIGNoZWNrIGluIGVpdGhlciBkaXJlY3Rpb24gb2YgdGhlIGN1cnJlbnQgdGltZS4gVGhlIGRlZmF1bHQgYCRkaXNjcmVwYW5jeWAgb2YgYDFgIHJlc3VsdHMgaW4gKG1heC4pIDMgcGVyaW9kIGNoZWNrczogLTEsIGN1cnJlbnQgYW5kICsxIHBlcmlvZC4gQSBgJGRpc2NyZXBhbmN5YCBvZiBgNGAgd291bGQgcmVzdWx0IGluIGEgbGFyZ2VyIHdpbmRvdyAob3I6IGJpZ2dlciB0aW1lIGRpZmZlcmVuY2UgYmV0d2VlbiBjbGllbnQgYW5kIHNlcnZlcikgb2YgLTQsIC0zLCAtMiwgLTEsIGN1cnJlbnQsICsxLCArMiwgKzMgYW5kICs0IHBlcmlvZHMuCisKK1RoZSBzZWNvbmQsIGAkdGltZWAsIGFsbG93cyB5b3UgdG8gY2hlY2sgYSBjb2RlIGZvciBhIHNwZWNpZmljIHBvaW50IGluIHRpbWUuIFRoaXMgYXJndW1lbnQgaGFzIG5vIHJlYWwgcHJhY3RpY2FsIHVzZSBidXQgY2FuIGJlIGhhbmR5IGZvciB1bml0dGVzdGluZyBldGMuIFRoZSBkZWZhdWx0IHZhbHVlLCBgbnVsbGAsIG1lYW5zOiB1c2UgdGhlIGN1cnJlbnQgdGltZS4KKworVGhlIHRoaXJkLCBgJHRpbWVzbGljZWAsIGlzIGFuIG91dC1hcmd1bWVudDsgdGhlIHZhbHVlIHJldHVybmVkIGluIGAkdGltZXNsaWNlYCBpcyB0aGUgdmFsdWUgb2YgdGhlIHRpbWVzbGljZSB0aGF0IG1hdGNoZWQgdGhlIGNvZGUgKGlmIGFueSkuIFRoaXMgdmFsdWUgd2lsbCBiZSAwIHdoZW4gdGhlIGNvZGUgZG9lc24ndCBtYXRjaCBhbmQgbm9uLXplcm8gd2hlbiB0aGUgY29kZSBtYXRjaGVzLiBUaGlzIHZhbHVlIGNhbiBiZSBzdG9yZWQgd2l0aCB0aGUgdXNlciBhbmQgY2FuIGJlIHVzZWQgdG8gcHJldmVudCByZXBsYXktYXR0YWNrcy4gQWxsIHlvdSBuZWVkIHRvIGRvIGlzLCBvbiBzdWNjZXNzZnVsIGxvZ2luLCBtYWtlIHN1cmUgYCR0aW1lc2xpY2VgIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXNseSBzdG9yZWQgdGltZXNsaWNlLgorCisjIyMgU3RlcCAzOiBTdG9yZSBgJHNlY3JldGAgd2l0aCB1c2VyIGFuZCB3ZSdyZSBkb25lIQorCitPaywgc28gbm93IHRoZSBjb2RlIGhhcyBiZWVuIHZlcmlmaWVkIGFuZCBmb3VuZCB0byBiZSBjb3JyZWN0LiBOb3cgd2UgY2FuIHN0b3JlIHRoZSBgJHNlY3JldGAgd2l0aCBvdXIgdXNlciBpbiBvdXIgZGF0YWJhc2UgKG9yIGVsc2V3aGVyZSkgYW5kIHdoZW5ldmVyIHRoZSB1c2VyIGJlZ2lucyBhIG5ldyBzZXNzaW9uIHdlIGFzayBmb3IgYSBjb2RlIGdlbmVyYXRlZCBieSB0aGUgYXV0aGVudGljYXRpb24gYXBwIG9mIHRoZWlyIGNob2ljZS4gQWxsIHdlIG5lZWQgdG8gZG8gaXMgY2FsbCBgdmVyaWZ5Q29kZSgpYCBhZ2FpbiB3aXRoIHRoZSBzaGFyZWQgc2VjcmV0IGFuZCB0aGUgZW50ZXJlZCBjb2RlIGFuZCB3ZSBrbm93IGlmIHRoZSB1c2VyIGlzIGxlZ2l0IG9yIG5vdC4KKworU2ltcGxlIGFzIDEtMi0zLgorCitBbGwgd2UgbmVlZCBpcyAzIG1ldGhvZHMgYW5kIGEgY29uc3RydWN0b3I6CisKK2BgYGBwaHAKK3B1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKKyAgICAkaXNzdWVyID0gbnVsbCwgCisgICAgJGRpZ2l0cyA9IDYsCisgICAgJHBlcmlvZCA9IDMwLCAKKyAgICAkYWxnb3JpdGhtID0gJ3NoYTEnLCAKKyAgICBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xRclxJUVJDb2RlUHJvdmlkZXIgJHFyY29kZXByb3ZpZGVyID0gbnVsbCwKKyAgICBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcSVJOR1Byb3ZpZGVyICRybmdwcm92aWRlciA9IG51bGwKKyk7CitwdWJsaWMgZnVuY3Rpb24gY3JlYXRlU2VjcmV0KCRiaXRzID0gODAsICRyZXF1aXJlY3J5cHRvc2VjdXJlID0gdHJ1ZSk6IHN0cmluZzsKK3B1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZUFzRGF0YVVyaSgkbGFiZWwsICRzZWNyZXQsICRzaXplID0gMjAwKTogc3RyaW5nOworcHVibGljIGZ1bmN0aW9uIHZlcmlmeUNvZGUoJHNlY3JldCwgJGNvZGUsICRkaXNjcmVwYW5jeSA9IDEsICR0aW1lID0gbnVsbCk6IGJvb2w7CitgYGBgCisKKyMjIyBRUi1jb2RlIHByb3ZpZGVycworCitBcyBtZW50aW9uZWQgYmVmb3JlLCB0aGlzIGxpYnJhcnkgY29tZXMgd2l0aCB0aHJlZSAnYnVpbHQtaW4nIFFSLWNvZGUgcHJvdmlkZXJzLiBUaGlzIGNoYXB0ZXIgd2lsbCB0b3VjaCB0aGUgc3ViamVjdCBhIGJpdCBidXQgbW9zdCBvZiBpdCBzaG91bGQgYmUgc2VsZi1leHBsYW5hdG9yeS4gVGhlIGBUd29GYWN0b3JBdXRoYC1jbGFzcyBhY2NlcHRzIGEgYCRxcmNvZGVwcm92aWRlcmAgYXJndW1lbnQgd2hpY2ggbGV0cyB5b3Ugc3BlY2lmeSBhIGJ1aWx0LWluIG9yIGN1c3RvbSBRUi1jb2RlIHByb3ZpZGVyLiBBbGwgdGhyZWUgYnVpbHQtaW4gcHJvdmlkZXJzIGRvIGEgc2ltcGxlIEhUVFAgcmVxdWVzdCB0byByZXRyaWV2ZSBhbiBpbWFnZSB1c2luZyBjVVJMIGFuZCBpbXBsZW1lbnQgdGhlIFtgSVFSQ29kZVByb3ZpZGVyYF0obGliL1Byb3ZpZGVycy9Rci9JUVJDb2RlUHJvdmlkZXIucGhwKSBpbnRlcmZhY2Ugd2hpY2ggaXMgYWxsIHlvdSBuZWVkIHRvIGltcGxlbWVudCB0byB3cml0ZSB5b3VyIG93biBRUi1jb2RlIHByb3ZpZGVyLgorCitUaGUgZGVmYXVsdCBwcm92aWRlciBpcyB0aGUgW2BJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyYF0obGliL1Byb3ZpZGVycy9Rci9JbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyLnBocCkgd2hpY2ggdXNlcyB0aGUgW2ltYWdlLWNoYXJ0cy5jb20gcmVwbGFjZW1lbnQgZm9yIEdvb2dsZSBJbWFnZSBDaGFydHNdKGh0dHBzOi8vaW1hZ2UtY2hhcnRzLmNvbSkgdG8gcmVuZGVyIFFSLWNvZGVzLiBUaGVuIHdlIGhhdmUgdGhlIFtgUVJTZXJ2ZXJQcm92aWRlcmBdKGxpYi9Qcm92aWRlcnMvUXIvUVJTZXJ2ZXJQcm92aWRlci5waHApIHdoaWNoIHVzZXMgdGhlIFtnb3FyLm1lIEFQSV0oaHR0cDovL2dvcXIubWUvYXBpL2RvYy9jcmVhdGUtcXItY29kZS8pIGFuZCBmaW5hbGx5IHdlIGhhdmUgdGhlIFtgUVJpY2tldFByb3ZpZGVyYF0obGliL1Byb3ZpZGVycy9Rci9RUmlja2V0UHJvdmlkZXIucGhwKSB3aGljaCB1c2VzIHRoZSBbUVJpY2tpdCBBUEldKGh0dHA6Ly9xcmlja2l0LmNvbS9xcmlja2l0X2FwcHMvcXJpY2tpdF9hcGkucGhwKS4gQWxsIHRocmVlIGluaGVyaXQgZnJvbSBhIGNvbW1vbiAoYWJzdHJhY3QpIGJhc2VjbGFzcyBuYW1lZCBbYEJhc2VIVFRQUVJDb2RlUHJvdmlkZXJgXShsaWIvUHJvdmlkZXJzL1FyL0Jhc2VIVFRQUVJDb2RlUHJvdmlkZXIucGhwKSBiZWNhdXNlIGFsbCB0aHJlZSBzaGFyZSB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5OiByZXRyaWV2ZSBhbiBpbWFnZSBmcm9tIGEgM3JkIHBhcnR5IG92ZXIgSFRUUC4gQWxsIHRocmVlIGNsYXNzZXMgaGF2ZSBjb25zdHJ1Y3RvcnMgdGhhdCBhbGxvdyB5b3UgdG8gdHdlYWsgc29tZSBzZXR0aW5ncyBhbmQgbW9zdCwgaWYgbm90IGFsbCwgYXJndW1lbnRzIHNob3VsZCBzcGVhayBmb3IgdGhlbXNlbHZlcy4gSWYgeW91J3JlIG5vdCBzdXJlIHdoaWNoIHZhbHVlcyBhcmUgc3VwcG9ydGVkLCBjbGljayB0aGUgbGlua3MgaW4gdGhpcyBwYXJhZ3JhcGggZm9yIGRvY3VtZW50YXRpb24gb24gdGhlIEFQSSdzIHRoYXQgYXJlIHV0aWxpemVkIGJ5IHRoZXNlIGNsYXNzZXMuCisKK0lmIHlvdSBkb24ndCBsaWtlIGFueSBvZiB0aGUgYnVpbHQtaW4gY2xhc3NlcyBiZWNhdXNlIHlvdSBkb24ndCB3YW50IHRvIHJlbHkgb24gZXh0ZXJuYWwgcmVzb3VyY2VzIGZvciBleGFtcGxlIG9yIGJlY2F1c2UgeW91J3JlIHBhcmFub2lkIGFib3V0IHNlbmRpbmcgdGhlIFRPVFAgc2VjcmV0IHRvIHRoZXNlIDNyZCBwYXJ0aWVzICh3aGljaCBpcyB1c2VsZXNzIHRvIHRoZW0gc2luY2UgdGhleSBtaXNzICphdCBsZWFzdCBvbmUqIG90aGVyIGZhY3RvciBpbiB0aGUgW01GQSBwcm9jZXNzXShodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL011bHRpLWZhY3Rvcl9hdXRoZW50aWNhdGlvbikpLCBmZWVsIHRyZWUgdG8gaW1wbGVtZW50IHlvdXIgb3duLiBUaGUgYElRUkNvZGVQcm92aWRlcmAgaW50ZXJmYWNlIGNvdWxkbid0IGJlIGFueSBzaW1wbGVyLiBBbGwgeW91IG5lZWQgdG8gZG8gaXMgaW1wbGVtZW50IDIgbWV0aG9kczoKKworYGBgYHBocAorZ2V0TWltZVR5cGUoKTsKK2dldFFSQ29kZUltYWdlKCRxcnRleHQsICRzaXplKTsKK2BgYGAKKworVGhlIGBnZXRNaW1lVHlwZSgpYCBtZXRob2Qgc2hvdWxkIHJldHVybiB0aGUgW01JTUUgdHlwZV0oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JbnRlcm5ldF9tZWRpYV90eXBlKSBvZiB0aGUgaW1hZ2UgdGhhdCBpcyByZXR1cm5lZCBieSBvdXIgaW1wbGVtZW50YXRpb24gb2YgYGdldFFSQ29kZUltYWdlKClgLiBJbiB0aGlzIGV4YW1wbGUgaXQncyBzaW1wbHkgYGltYWdlL3BuZ2AuIFRoZSBgZ2V0UVJDb2RlSW1hZ2UoKWAgbWV0aG9kIGlzIHBhc3NlZCB0d28gYXJndW1lbnRzOiBgJHFydGV4dGAgYW5kIGAkc2l6ZWAuIFRoZSBsYXR0ZXIsIGAkc2l6ZWAsIGlzIHNpbXBseSB0aGUgd2lkdGgvaGVpZ2h0IGluIHBpeGVscyBvZiB0aGUgaW1hZ2UgZGVzaXJlZCBieSB0aGUgY2FsbGVyLiBUaGUgZmlyc3QsIGAkcXJ0ZXh0YCBpcyB0aGUgdGV4dCB0aGF0IHNob3VsZCBiZSBlbmNvZGVkIGluIHRoZSBRUi1jb2RlLiBBbiBleGFtcGxlIG9mIHN1Y2ggYSB0ZXh0IHdvdWxkIGJlOgorCitgb3RwYXV0aDovL3RvdHAvTEFCRUw6YWxpY2VAZ29vZ2xlLmNvbT9zZWNyZXQ9SkJTV1kzRFBFSFBLM1BYUCZpc3N1ZXI9SVNTVUVSYAorCitBbGwgeW91IG5lZWQgdG8gZG8gaXMgcmV0dXJuIHRoZSBRUi1jb2RlIGFzIGJpbmFyeSBpbWFnZSBkYXRhIGFuZCB5b3UncmUgZG9uZS4gQWxsIHBhcnRzIG9mIHRoZSBgJHFydGV4dGAgaGF2ZSBiZWVuIGVzY2FwZWQgZm9yIHlvdSAoYnV0IG5vdGU6IHlvdSAqbWF5KiBuZWVkIHRvIGVzY2FwZSB0aGUgZW50aXJlIGAkcXJ0ZXh0YCBqdXN0IG9uY2UgbW9yZSB3aGVuIHBhc3NpbmcgdGhlIGRhdGEgdG8gYW5vdGhlciBzZXJ2ZXIgYXMgR0VULWFyZ3VtZW50KS4KKworTGV0J3Mgc2VlIGlmIHdlIGNhbiB1c2UgW1BIUCBRUiBDb2RlXShodHRwOi8vcGhwcXJjb2RlLnNvdXJjZWZvcmdlLm5ldC8pIHRvIGltcGxlbWVudCBvdXIgb3duLCBjdXN0b20sIG5vLTNyZC1wYXJ0aWVzLWFsbG93ZWQtaGVyZSwgcHJvdmlkZXIuIFdlIHN0YXJ0IHdpdGggZG93bmxvYWRpbmcgdGhlIFtyZXF1aXJlZCAoc2luZ2xlKSBmaWxlXShodHRwczovL2dpdGh1Yi5jb20vdDBrNHJ0L3BocHFyY29kZS9ibG9iL21hc3Rlci9waHBxcmNvZGUucGhwKSBhbmQgcHV0dGluZyBpdCBpbiB0aGUgZGlyZWN0b3J5IHdoZXJlIGBUd29GYWN0b3JBdXRoLnBocGAgaXMgbG9jYXRlZCBhcyB3ZWxsLiBOb3cgbGV0J3MgaW1wbGVtZW50IHRoZSBwcm92aWRlcjogY3JlYXRlIGFub3RoZXIgZmlsZSBuYW1lZCBgbXlwcm92aWRlci5waHBgIGluIHRoZSBgUHJvdmlkZXJzXFFyYCBkaXJlY3RvcnkgYW5kIHBhc3RlIGluIHRoaXMgY29udGVudDoKKworYGBgYHBocAorPD9waHAKK3JlcXVpcmVfb25jZSAnLi4vLi4vcGhwcXJjb2RlLnBocCc7ICAgICAgICAgICAgICAgICAvLyBZZWFoLCB3ZSdyZSBnb25uYSBuZWVkIHRoYXQKKworbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOworCitjbGFzcyBNeVByb3ZpZGVyIGltcGxlbWVudHMgSVFSQ29kZVByb3ZpZGVyIHsKKyAgcHVibGljIGZ1bmN0aW9uIGdldE1pbWVUeXBlKCkgeworICAgIHJldHVybiAnaW1hZ2UvcG5nJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcHJvdmlkZXIgb25seSByZXR1cm5zIFBORydzCisgIH0KKyAgCisgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZSgkcXJ0ZXh0LCAkc2l6ZSkgeworICAgIG9iX3N0YXJ0KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICdDYXRjaCcgUVJDb2RlJ3Mgb3V0cHV0CisgICAgUVJDb2RlOjpwbmcoJHFydGV4dCwgbnVsbCwgUVJfRUNMRVZFTF9MLCAzLCA0KTsgLy8gV2UgaWdub3JlICRzaXplIGFuZCBzZXQgaXQgdG8gMworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHBocHFyY29kZSBkb2Vzbid0IHN1cHBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIHNpemUgaW4gcGl4ZWxzLi4uCisgICAgJHJlc3VsdCA9IG9iX2dldF9jb250ZW50cygpOyAgICAgICAgICAgICAgICAgICAgLy8gJ0NhdGNoJyBRUkNvZGUncyBvdXRwdXQKKyAgICBvYl9lbmRfY2xlYW4oKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGVhbnVwCisgICAgcmV0dXJuICRyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmV0dXJuIGltYWdlCisgIH0KK30KK2BgYGAKKworVGhhdCdzIGl0LiBXZSdyZSBkb25lISBXZSd2ZSBpbXBsZW1lbnRlZCBvdXIgb3duIHByb3ZpZGVyICh3aXRoIGhlbHAgb2YgUEhQIFFSIENvZGUpLiBObyBtb3JlIGV4dGVybmFsIGRlcGVuZGVuY2llcywgbm8gbW9yZSB1bm5lY2Vzc2FyeSBsYXRlbmNpZXMuIE5vdyBsZXQncyAqdXNlKiBvdXIgcHJvdmlkZXI6CisKK2BgYGBwaHAKKzw/cGhwCiskbXAgPSBuZXcgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcTXlQcm92aWRlcigpOworJHRmYSA9IG5ldyBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGgoJ015IENvbXBhbnknLCA2LCAzMCwgJ3NoYTEnLCAkbXApOworJHNlY3JldCA9ICR0ZmEtPmNyZWF0ZVNlY3JldCgpOworPz4KKzxwPjxpbWcgc3JjPSI8P3BocCBlY2hvICR0ZmEtPmdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCdCb2IgUm9zcycsICRzZWNyZXQpOyA/PiI+PC9wPgorYGBgYAorCitWb2lsw6AuIENvdWxkbid0IG1ha2UgaXQgYW55IHNpbXBsZXIuCisKKyMjIyBSTkcgcHJvdmlkZXJzCisKK1RoaXMgbGlicmFyeSBhbHNvIGNvbWVzIHdpdGggdGhyZWUgJ2J1aWx0LWluJyBSTkcgcHJvdmlkZXJzIChbUmFuZG9tIE51bWJlciBHZW5lcmF0b3JdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JhbmRvbV9udW1iZXJfZ2VuZXJhdGlvbikpLiBUaGUgUk5HIHByb3ZpZGVyIGdlbmVyYXRlcyBhIG51bWJlciBvZiByYW5kb20gYnl0ZXMgYW5kIHJldHVybnMgdGhlc2UgYnl0ZXMgYXMgYSBzdHJpbmcuIFRoZXNlIHZhbHVlcyBhcmUgdGhlbiB1c2VkIHRvIGNyZWF0ZSB0aGUgc2VjcmV0LiBCeSBkZWZhdWx0IChubyBSTkcgcHJvdmlkZXIgc3BlY2lmaWVkKSBUd29GYWN0b3JBdXRoIHdpbGwgdHJ5IHRvIGRldGVybWluZSB0aGUgYmVzdCBhdmFpbGFibGUgUk5HIHByb3ZpZGVyIHRvIHVzZS4gSXQgd2lsbCwgYnkgZGVmYXVsdCwgdHJ5IHRvIHVzZSB0aGUgW2BDU1JOR1Byb3ZpZGVyYF0obGliL1Byb3ZpZGVycy9SbmcvQ1NSTkdQcm92aWRlci5waHApIGZvciBQSFA3KyBvciB0aGUgW2BNQ3J5cHRSTkdQcm92aWRlcmBdKGxpYi9Qcm92aWRlcnMvUm5nL01DcnlwdFJOR1Byb3ZpZGVyLnBocCk7IGlmIHRoaXMgaXMgbm90IGF2YWlsYWJsZS9zdXBwb3J0ZWQgZm9yIGFueSByZWFzb24gaXQgd2lsbCB0cnkgdG8gdXNlIHRoZSBbYE9wZW5TU0xSTkdQcm92aWRlcmBdKGxpYi9Qcm92aWRlcnMvUm5nL09wZW5TU0xSTkdQcm92aWRlci5waHApIGFuZCBpZiB0aGF0IGlzIGFsc28gbm90IGF2YWlsYWJsZS9zdXBwb3J0ZWQgaXQgd2lsbCB0cnkgdG8gdXNlIHRoZSBmaW5hbCBSTkcgcHJvdmlkZXI6IFtgSGFzaFJOR1Byb3ZpZGVyYF0obGliL1Byb3ZpZGVycy9SbmcvSGFzaFJOR1Byb3ZpZGVyLnBocCkuIEVhY2ggb2YgdGhlc2UgcHJvdmlkZXJzIHVzZSB0aGVpciBvd24gbWV0aG9kIG9mIGdlbmVyYXRpbmcgYSByYW5kb20gc2VxdWVuY2Ugb2YgYnl0ZXMuIFRoZSBmaXJzdCB0aHJlZSAoYENTUk5HUHJvdmlkZXJgLCBgT3BlblNTTFJOR1Byb3ZpZGVyYCBhbmQgYE1DcnlwdFJOR1Byb3ZpZGVyYCkgcmV0dXJuIGEgW2NyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ3J5cHRvZ3JhcGhpY2FsbHlfc2VjdXJlX3BzZXVkb3JhbmRvbV9udW1iZXJfZ2VuZXJhdG9yKSBzZXF1ZW5jZSBvZiByYW5kb20gYnl0ZXMgd2hlcmVhcyB0aGUgYEhhc2hSTkdQcm92aWRlcmAgcmV0dXJucyBhICoqbm9uLWNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSoqIHNlcXVlbmNlLgorCitZb3UgY2FuIGVhc2lseSBpbXBsZW1lbnQgeW91ciBvd24gYFJOR1Byb3ZpZGVyYCBieSBzaW1wbHkgaW1wbGVtZW50aW5nIHRoZSBgSVJOR1Byb3ZpZGVyYCBpbnRlcmZhY2UuIEVhY2ggb2YgdGhlICdidWlsdC1pbicgUk5HIHByb3ZpZGVycyBoYXZlIHNvbWUgY29uc3RydWN0b3IgYXJndW1lbnRzIHRoYXQgYWxsb3cgeW91IHRvICd0d2Vhaycgc29tZSBvZiB0aGUgc2V0dGluZ3MgdG8gdXNlIHdoZW4gY3JlYXRpbmcgdGhlIHJhbmRvbSBieXRlcyBzdWNoIGFzIHdoaWNoIHNvdXJjZSB0byB1c2UgKGBNQ3J5cHRSTkdQcm92aWRlcmApIG9yIHdoaWNoIGhhc2hpbmcgYWxnb3JpdGhtIChgSGFzaFJOR1Byb3ZpZGVyYCkuIEkgZW5jb3VyYWdlIHlvdSB0byBoYXZlIGEgbG9vayBhdCBzb21lIG9mIHRoZSBbJ2J1aWx0LWluJyBSTkcgcHJvdmlkZXJzXShsaWIvUHJvdmlkZXJzL1JuZykgZm9yIGRldGFpbHMgYW5kIHRoZSBbYElSTkdQcm92aWRlcmAgaW50ZXJmYWNlXShsaWIvUHJvdmlkZXJzL1JuZy9JUk5HUHJvdmlkZXIucGhwKS4KKworIyMjIFRpbWUgcHJvdmlkZXJzCisKK0Fub3RoZXIgc2V0IG9mIHByb3ZpZGVycyBpbiB0aGlzIGxpYnJhcnkgYXJlIHRoZSBUaW1lIFByb3ZpZGVyczsgdGhpcyBsaWJyYXJ5IHByb3ZpZGVzIHRocmVlICdidWlsdC1pbicgb25lcy4gVGhlIGRlZmF1bHQgVGltZSBQcm92aWRlciB1c2VkIGlzIHRoZSBbYExvY2FsTWFjaGluZVRpbWVQcm92aWRlcmBdKGxpYi9Qcm92aWRlcnMvVGltZS9Mb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXIucGhwKTsgdGhpcyBwcm92aWRlciBzaW1wbHkgcmV0dXJucyB0aGUgb3V0cHV0IG9mIGBUaW1lKClgIGFuZCBpcyAqaGlnaGx5IHJlY29tbWVuZGVkKiBhcyBkZWZhdWx0IHByb3ZpZGVyLiBUaGUgW2BIdHRwVGltZVByb3ZpZGVyYF0obGliL1Byb3ZpZGVycy9UaW1lL0h0dHBUaW1lUHJvdmlkZXIucGhwKSBleGVjdXRlcyBhIGBIRUFEYCByZXF1ZXN0IGFnYWluc3QgYSBnaXZlbiB3ZWJzZXJ2ZXIgKGRlZmF1bHQ6IGdvb2dsZS5jb20pIGFuZCB0cmllcyB0byBleHRyYWN0IHRoZSBgRGF0ZTpgLUhUVFAgaGVhZGVyIGFuZCByZXR1cm5zIGl0J3MgZGF0ZS4gT3RoZXIgdXJsJ3MvZG9tYWlucyBjYW4gYmUgdXNlZCBieSBzcGVjaWZ5aW5nIHRoZSB1cmwgaW4gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmluYWwgVGltZSBQcm92aWRlciBpcyB0aGUgW2BOVFBUaW1lUHJvdmlkZXJgXShsaWIvUHJvdmlkZXJzL1RpbWUvTlRQVGltZVByb3ZpZGVyLnBocCkgd2hpY2ggZG9lcyBhbiBOVFAgcmVxdWVzdCB0byBhIHNwZWNpZmllZCBOVFAgc2VydmVyLgorCitZb3UgY2FuIGVhc2lseSBpbXBsZW1lbnQgeW91ciBvd24gYFRpbWVQcm92aWRlcmAgYnkgc2ltcGx5IGltcGxlbWVudGluZyB0aGUgYElUaW1lUHJvdmlkZXJgIGludGVyZmFjZS4KKworQXMgdG8gKndoeSogdGhlc2UgVGltZSBQcm92aWRlcnMgYXJlIGltcGxlbWVudGVkOiBpdCBhbGxvd3MgdGhlIFR3b0ZhY3RvckF1dGggbGlicmFyeSB0byBlbnN1cmUgdGhlIGhvc3RzIHRpbWUgaXMgY29ycmVjdCAob3IgcmF0aGVyOiB3aXRoaW4gYSBtYXJnaW4pLiBZb3UgY2FuIHVzZSB0aGUgYGVuc3VyZUNvcnJlY3RUaW1lKClgIG1ldGhvZCB0byBlbnN1cmUgdGhlIGhvc3RzIHRpbWUgaXMgY29ycmVjdC4gQnkgZGVmYXVsdCB0aGlzIG1ldGhvZCB3aWxsIGNvbXBhcmUgdGhlIGhvc3RzIHRpbWUgKHJldHVybmVkIGJ5IGNhbGxpbmcgYHRpbWUoKWAgb24gdGhlIGBMb2NhbE1hY2hpbmVUaW1lUHJvdmlkZXJgKSB0byB0aGUgZGVmYXVsdCBgTlRQVGltZVByb3ZpZGVyYCBhbmQgYEh0dHBUaW1lUHJvdmlkZXJgLiBZb3UgY2FuIHBhc3MgYW4gYXJyYXkgb2YgYElUaW1lUHJvdmlkZXJgcyB0byBjaGFuZ2UgdGhpcyBhbmQgc3BlY2lmeSB0aGUgYGxlbmllbmN5YCAoc2Vjb25kIGFyZ3VtZW50KSBhbGxvd2VkIChkZWZhdWx0OiA1IHNlY29uZHMpLiBUaGUgbWV0aG9kIHdpbGwgdGhyb3cgd2hlbiB0aGUgVHdvRmFjdG9yQXV0aCdzIHRpbWVwcm92aWRlciAod2hpY2ggY2FuIGJlIGFueSBgSVRpbWVQcm92aWRlcmAsIHNlZSBjb25zdHJ1Y3RvcikgZGlmZmVycyBtb3JlIHRoYW4gdGhlIGdpdmVuIGFtb3VudCBvZiBzZWNvbmRzIGZyb20gYW55IG9mIHRoZSBnaXZlbiBgSVRpbWVQcm92aWRlcnNgLiBXZSBhZHZpc2UgdG8gY2FsbCB0aGlzIG1ldGhvZCBzcGFyaW5nbHkgd2hlbiByZWx5aW5nIG9uIDNyZCBwYXJ0aWVzICh3aGljaCBib3RoIHRoZSBgSHR0cFRpbWVQcm92aWRlcmAgYW5kIGBOVFBUaW1lUHJvdmlkZXJgIGRvKSBvciwgaWYgeW91IG5lZWQgdG8gZW5zdXJlIHRpbWUgaXMgY29ycmVjdCBvbiBhICh2ZXJ5KSByZWd1bGFyIGJhc2lzIHRvIGltcGxlbWVudCBhbiBgSVRpbWVQcm92aWRlcmAgdGhhdCBpcyBtb3JlIGVmZmljaWVudCB0aGFuIHRoZSAnYnVpbHQtaW4nIG9uZXMgKGxpa2UgdXNlIGEgR1BTIHNpZ25hbCkuIFRoZSBgZW5zdXJlQ29ycmVjdFRpbWUoKWAgbWV0aG9kIGlzIG1vc3RseSB0byBiZSB1c2VkIHRvIG1ha2Ugc3VyZSB0aGUgc2VydmVyIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5LgorCisjIyBJbnRlZ3JhdGlvbnMKKworLSBbQ2FrZVBIUCAzXShodHRwczovL2dpdGh1Yi5jb20vYW5kcmVqLWdyaW5pdWsvY2FrZXBocC10d28tZmFjdG9yLWF1dGgpIAorCisjIyBMaWNlbnNlCisKK0xpY2Vuc2VkIHVuZGVyIE1JVCBsaWNlbnNlLiBTZWUgW0xJQ0VOU0VdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Sb2JUaHJlZS9Ud29GYWN0b3JBdXRoL21hc3Rlci9MSUNFTlNFKSBmb3IgZGV0YWlscy4KKworW0xvZ28gLyBpY29uXShodHRwOi8vd3d3Lmljb25tYXkuY29tL1NpbXBsZS9UcmF2ZWxfYW5kX1RvdXJpc21fUGFydF8yL2x1Z2dhZ2VfbG9ja19zYWZldHlfYmFnZ2FnZV9rZXlzX2N5bGluZGVyX2xvY2tfaG90ZWxfdHJhdmVsX3RvdXJpc21fbHVnZ2FnZV9sb2NrX2ljb25fNDY1KSB1bmRlciAgQ0MwIDEuMCBVbml2ZXJzYWwgKENDMCAxLjApIFB1YmxpYyBEb21haW4gRGVkaWNhdGlvbiAgKFtBcmNoaXZlZCBwYWdlXShodHRwOi8vcmlpaS5ubC90bTdhcCkpCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9Ud29GYWN0b3JBdXRoLnBocHByb2ogYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9Ud29GYWN0b3JBdXRoLnBocHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdlMDBkNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL1R3b0ZhY3RvckF1dGgucGhwcHJvagpAQCAtMCwwICsxLDcwIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgPE5hbWU+VHdvRmFjdG9yQXV0aDwvTmFtZT4KKyAgICA8UHJvamVjdEd1aWQ+e2U1NjlmNTNhLWE2MDQtNDU3OS05MWNlLTRlMzViMjdkYTQ3Yn08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPlR3b0ZhY3RvckF1dGg8L1Jvb3ROYW1lc3BhY2U+CisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0VHlwZT4KKyAgICA8UHJvamVjdFR5cGVHdWlkcz57QTA3ODZCODgtMkFEQi00QzIxLUFCRTgtQUEyRDc5NzY2MjY5fTwvUHJvamVjdFR5cGVHdWlkcz4KKyAgICA8U2F2ZVNlcnZlclNldHRpbmdzSW5Vc2VyRmlsZT5GYWxzZTwvU2F2ZVNlcnZlclNldHRpbmdzSW5Vc2VyRmlsZT4KKyAgICA8U2VydmVyPlBIUERldjwvU2VydmVyPgorICAgIDxQdWJsaXNoRXZlbnQ+Tm9uZTwvUHVibGlzaEV2ZW50PgorICAgIDxQSFBEZXZBdXRvUG9ydD5UcnVlPC9QSFBEZXZBdXRvUG9ydD4KKyAgICA8UEhQRGV2UG9ydD40MTMxNTwvUEhQRGV2UG9ydD4KKyAgICA8UEhQRGV2SG9zdE5hbWU+bG9jYWxob3N0PC9QSFBEZXZIb3N0TmFtZT4KKyAgICA8SUlTUHJvamVjdFVybD5odHRwOi8vbG9jYWxob3N0OjQxMzE1LzwvSUlTUHJvamVjdFVybD4KKyAgICA8UnVudGltZT5QSFA8L1J1bnRpbWU+CisgICAgPFJ1bnRpbWVWZXJzaW9uPjcuMDwvUnVudGltZVZlcnNpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICdEZWJ1ZycgIj4KKyAgICA8SW5jbHVkZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvSW5jbHVkZURlYnVnSW5mb3JtYXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICdSZWxlYXNlJyAiPgorICAgIDxJbmNsdWRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvSW5jbHVkZURlYnVnSW5mb3JtYXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJkZW1vXGRlbW8ucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImRlbW9cbG9hZGVyLnBocCIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFFyXEJhc2VIVFRQUVJDb2RlUHJvdmlkZXIucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUXJcSW1hZ2VDaGFydHNRUkNvZGVQcm92aWRlci5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xRclxJUVJDb2RlUHJvdmlkZXIucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUXJcUVJFeGNlcHRpb24ucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUXJcUVJpY2tldFByb3ZpZGVyLnBocCIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFFyXFFSU2VydmVyUHJvdmlkZXIucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUm5nXENTUk5HUHJvdmlkZXIucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUm5nXElSTkdQcm92aWRlci5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xSbmdcTUNyeXB0Uk5HUHJvdmlkZXIucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUm5nXE9wZW5TU0xSTkdQcm92aWRlci5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xSbmdcSGFzaFJOR1Byb3ZpZGVyLnBocCIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFJuZ1xSTkdFeGNlcHRpb24ucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcVGltZVxIdHRwVGltZVByb3ZpZGVyLnBocCIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFRpbWVcSVRpbWVQcm92aWRlci5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xUaW1lXExvY2FsTWFjaGluZVRpbWVQcm92aWRlci5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xUaW1lXE5UUFRpbWVQcm92aWRlci5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0ibGliXFByb3ZpZGVyc1xUaW1lXFRpbWVFeGNlcHRpb24ucGhwIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9ImxpYlxUd29GYWN0b3JBdXRoLnBocCIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSIuZ2l0aWdub3JlIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlJFQURNRS5tZCIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJsaWJcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbi5waHAiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0idGVzdHNcVHdvRmFjdG9yQXV0aFRlc3QucGhwIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Rm9sZGVyIEluY2x1ZGU9ImxpYlwiIC8+CisgICAgPEZvbGRlciBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXCIgLz4KKyAgICA8Rm9sZGVyIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcVGltZVwiIC8+CisgICAgPEZvbGRlciBJbmNsdWRlPSJsaWJcUHJvdmlkZXJzXFFyXCIgLz4KKyAgICA8Rm9sZGVyIEluY2x1ZGU9ImxpYlxQcm92aWRlcnNcUm5nXCIgLz4KKyAgICA8Rm9sZGVyIEluY2x1ZGU9ImRlbW9cIiAvPgorICAgIDxGb2xkZXIgSW5jbHVkZT0idGVzdHNcIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29udGVudCBJbmNsdWRlPSIudHJhdmlzLnltbCIgLz4KKyAgICA8Q29udGVudCBJbmNsdWRlPSJjb21wb3Nlci5qc29uIiAvPgorICAgIDxDb250ZW50IEluY2x1ZGU9ImNvbXBvc2VyLmxvY2siIC8+CisgICAgPENvbnRlbnQgSW5jbHVkZT0ibG9nby5wbmciIC8+CisgICAgPENvbnRlbnQgSW5jbHVkZT0ibXVsdGlmYWN0b3JhdXRoZm9yZXZlcnlvbmUucG5nIiAvPgorICAgIDxDb250ZW50IEluY2x1ZGU9IkxJQ0VOU0UiIC8+CisgICAgPENvbnRlbnQgSW5jbHVkZT0icGhwdW5pdC54bWwiIC8+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL1R3b0ZhY3RvckF1dGguc2xuIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvVHdvRmFjdG9yQXV0aC5zbG4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY5MDFmNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL1R3b0ZhY3RvckF1dGguc2xuCkBAIC0wLDAgKzEsMjIgQEAKK++7vworTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gMTIuMDAKKyMgVmlzdWFsIFN0dWRpbyAyMDEzCitWaXN1YWxTdHVkaW9WZXJzaW9uID0gMTIuMC4zMDcyMy4wCitNaW5pbXVtVmlzdWFsU3R1ZGlvVmVyc2lvbiA9IDEwLjAuNDAyMTkuMQorUHJvamVjdCgie0EwNzg2Qjg4LTJBREItNEMyMS1BQkU4LUFBMkQ3OTc2NjI2OX0iKSA9ICJUd29GYWN0b3JBdXRoIiwgIlR3b0ZhY3RvckF1dGgucGhwcHJvaiIsICJ7RTU2OUY1M0EtQTYwNC00NTc5LTkxQ0UtNEUzNUIyN0RBNDdCfSIKK0VuZFByb2plY3QKK0dsb2JhbAorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCisJCURlYnVnfEFueSBDUFUgPSBEZWJ1Z3xBbnkgQ1BVCisJCVJlbGVhc2V8QW55IENQVSA9IFJlbGVhc2V8QW55IENQVQorCUVuZEdsb2JhbFNlY3Rpb24KKwlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbgorCQl7RTU2OUY1M0EtQTYwNC00NTc5LTkxQ0UtNEUzNUIyN0RBNDdCfS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJe0U1NjlGNTNBLUE2MDQtNDU3OS05MUNFLTRFMzVCMjdEQTQ3Qn0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7RTU2OUY1M0EtQTYwNC00NTc5LTkxQ0UtNEUzNUIyN0RBNDdCfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtFNTY5RjUzQS1BNjA0LTQ1NzktOTFDRS00RTM1QjI3REE0N0J9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uCisJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQorCUVuZEdsb2JhbFNlY3Rpb24KK0VuZEdsb2JhbApkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvY29tcG9zZXIuanNvbiBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2NvbXBvc2VyLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBmOGI4NgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2NvbXBvc2VyLmpzb24KQEAgLTAsMCArMSwzNiBAQAoreworICAgICJuYW1lIjogInJvYnRocmVlL3R3b2ZhY3RvcmF1dGgiLAorICAgICJkZXNjcmlwdGlvbiI6ICJUd28gRmFjdG9yIEF1dGhlbnRpY2F0aW9uIiwKKyAgICAidmVyc2lvbiI6ICIxLjcuMCIsCisgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgImtleXdvcmRzIjogWyAiQXV0aGVudGljYXRpb24iLCAiVHdvIEZhY3RvciBBdXRoZW50aWNhdGlvbiIsICJNdWx0aSBGYWN0b3IgQXV0aGVudGljYXRpb24iLCAiVEZBIiwgIk1GQSIsICJQSFAiLCAiQXV0aGVudGljYXRvciIsICJBdXRoeSIgXSwKKyAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgiLAorICAgICJsaWNlbnNlIjogIk1JVCIsCisgICAgImF1dGhvcnMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIlJvYiBKYW5zc2VuIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vcm9iaWlpLm1lIiwKKyAgICAgICAgICAgICJyb2xlIjogIkRldmVsb3BlciIKKyAgICAgICAgfQorICAgIF0sCisgICAgInN1cHBvcnQiOiB7CisgICAgICAgICJpc3N1ZXMiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgvaXNzdWVzIiwKKyAgICAgICAgInNvdXJjZSI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9iVGhyZWUvVHdvRmFjdG9yQXV0aCIKKyAgICB9LAorICAgICJyZXF1aXJlIjogeworICAgICAgICAicGhwIjogIj49NS42LjAiCisgICAgfSwKKyAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiQHN0YWJsZSIKKyAgICB9LAorICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgInBzci00IjogeworICAgICAgICAgICAgIlJvYlRocmVlXFxBdXRoXFwiOiAibGliIgorICAgICAgICB9CisgICAgfSwKKyAgICAiYXV0b2xvYWQtZGV2IjogeworICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAiUm9iVGhyZWVcXEF1dGhcXFRlc3RcXCI6ICJ0ZXN0cyIKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2NvbXBvc2VyLmxvY2sgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9jb21wb3Nlci5sb2NrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzZGY5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9jb21wb3Nlci5sb2NrCkBAIC0wLDAgKzEsOTgwIEBACit7CisgICAgIl9yZWFkbWUiOiBbCisgICAgICAgICJUaGlzIGZpbGUgbG9ja3MgdGhlIGRlcGVuZGVuY2llcyBvZiB5b3VyIHByb2plY3QgdG8gYSBrbm93biBzdGF0ZSIsCisgICAgICAgICJSZWFkIG1vcmUgYWJvdXQgaXQgYXQgaHR0cHM6Ly9nZXRjb21wb3Nlci5vcmcvZG9jLzAxLWJhc2ljLXVzYWdlLm1kI2NvbXBvc2VyLWxvY2stdGhlLWxvY2stZmlsZSIsCisgICAgICAgICJUaGlzIGZpbGUgaXMgQGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IgorICAgIF0sCisgICAgImNvbnRlbnQtaGFzaCI6ICI5NjQ3ZGU4NWY1NGJhNmRiMjM3ZjVmZjQyZmY4NWExZiIsCisgICAgInBhY2thZ2VzIjogW10sCisgICAgInBhY2thZ2VzLWRldiI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZG9jdHJpbmUvaW5zdGFudGlhdG9yIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC41IiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb2N0cmluZS9pbnN0YW50aWF0b3IuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjhlODg0ZTc4ZjlmMGViMTMyOWU0NDU2MTllMDQ0NTZlNjRkODA1MWQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvZG9jdHJpbmUvaW5zdGFudGlhdG9yL3ppcGJhbGwvOGU4ODRlNzhmOWYwZWIxMzI5ZTQ0NTYxOWUwNDQ1NmU2NGQ4MDUxZCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI4ZTg4NGU3OGY5ZjBlYjEzMjllNDQ1NjE5ZTA0NDU2ZTY0ZDgwNTFkIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLDw4LjAtREVWIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAiYXRobGV0aWMvYXRobGV0aWMiOiAifjAuMS44IiwKKyAgICAgICAgICAgICAgICAiZXh0LXBkbyI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LXBoYXIiOiAiKiIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC4wIiwKKyAgICAgICAgICAgICAgICAic3F1aXpsYWJzL3BocF9jb2Rlc25pZmZlciI6ICJ+Mi4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjEuMC54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJwc3ItNCI6IHsKKyAgICAgICAgICAgICAgICAgICAgIkRvY3RyaW5lXFxJbnN0YW50aWF0b3JcXCI6ICJzcmMvRG9jdHJpbmUvSW5zdGFudGlhdG9yLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIk1hcmNvIFBpdmV0dGEiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAib2NyYW1pdXNAZ21haWwuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly9vY3JhbWl1cy5naXRodWIuY29tLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwsIGxpZ2h0d2VpZ2h0IHV0aWxpdHkgdG8gaW5zdGFudGlhdGUgb2JqZWN0cyBpbiBQSFAgd2l0aG91dCBpbnZva2luZyB0aGVpciBjb25zdHJ1Y3RvcnMiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kb2N0cmluZS9pbnN0YW50aWF0b3IiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJjb25zdHJ1Y3RvciIsCisgICAgICAgICAgICAgICAgImluc3RhbnRpYXRlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMDYtMTRUMjE6MTc6MDErMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocGRvY3VtZW50b3IvcmVmbGVjdGlvbi1kb2NibG9jayIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIyLjAuNCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGhwRG9jdW1lbnRvci9SZWZsZWN0aW9uRG9jQmxvY2suZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImQ2OGRiZGM1M2RjMzU4YTgxNmYwMGIzMDA3MDQ3MDJiMmVhZmY3YjgiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvcGhwRG9jdW1lbnRvci9SZWZsZWN0aW9uRG9jQmxvY2svemlwYmFsbC9kNjhkYmRjNTNkYzM1OGE4MTZmMDBiMzAwNzA0NzAyYjJlYWZmN2I4IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImQ2OGRiZGM1M2RjMzU4YTgxNmYwMGIzMDA3MDQ3MDJiMmVhZmY3YjgiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgICAgICJkZmx5ZGV2L21hcmtkb3duIjogIn4xLjAiLAorICAgICAgICAgICAgICAgICJlcnVzZXYvcGFyc2Vkb3duIjogIn4xLjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMi4wLngtZGV2IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgInBzci0wIjogeworICAgICAgICAgICAgICAgICAgICAicGhwRG9jdW1lbnRvciI6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICJzcmMvIgorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJNSVQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJNaWtlIHZhbiBSaWVsIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogIm1pa2UudmFucmllbEBuYWVuaXVzLmNvbSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNS0wMi0wM1QxMjoxMDo1MCswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGhwc3BlYy9wcm9waGVjeSIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICJ2MS42LjIiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BocHNwZWMvcHJvcGhlY3kuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjZjNTJjMjcyMmY4NDYwMTIyZjk2Zjg2MzQ2NjAwZTEwNzdjZTIyY2IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvcGhwc3BlYy9wcm9waGVjeS96aXBiYWxsLzZjNTJjMjcyMmY4NDYwMTIyZjk2Zjg2MzQ2NjAwZTEwNzdjZTIyY2IiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiNmM1MmMyNzIyZjg0NjAxMjJmOTZmODYzNDY2MDBlMTA3N2NlMjJjYiIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImRvY3RyaW5lL2luc3RhbnRpYXRvciI6ICJeMS4wLjIiLAorICAgICAgICAgICAgICAgICJwaHAiOiAiXjUuM3xeNy4wIiwKKyAgICAgICAgICAgICAgICAicGhwZG9jdW1lbnRvci9yZWZsZWN0aW9uLWRvY2Jsb2NrIjogIl4yLjB8XjMuMC4yIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL2NvbXBhcmF0b3IiOiAiXjEuMSIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9yZWN1cnNpb24tY29udGV4dCI6ICJeMS4wfF4yLjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHBzcGVjL3BocHNwZWMiOiAiXjIuMCIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJeNC44IHx8IF41LjYuNSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICAgICAiZGV2LW1hc3RlciI6ICIxLjYueC1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTAiOiB7CisgICAgICAgICAgICAgICAgICAgICJQcm9waGVjeVxcIjogInNyYy8iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJNSVQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJLb25zdGFudGluIEt1ZHJ5YXNob3YiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiZXZlci56ZXRAZ21haWwuY29tIiwKKyAgICAgICAgICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly9ldmVyemV0LmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiTWFyY2VsbG8gRHVhcnRlIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogIm1hcmNlbGxvLmR1YXJ0ZUBnbWFpbC5jb20iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIaWdobHkgb3BpbmlvbmF0ZWQgbW9ja2luZyBmcmFtZXdvcmsgZm9yIFBIUCA1LjMrIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vcGhwc3BlYy9wcm9waGVjeSIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgIkRvdWJsZSIsCisgICAgICAgICAgICAgICAgIkR1bW15IiwKKyAgICAgICAgICAgICAgICAiZmFrZSIsCisgICAgICAgICAgICAgICAgIm1vY2siLAorICAgICAgICAgICAgICAgICJzcHkiLAorICAgICAgICAgICAgICAgICJzdHViIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTYtMTEtMjFUMTQ6NTg6NDcrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwLWNvZGUtY292ZXJhZ2UiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMi4yLjQiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC1jb2RlLWNvdmVyYWdlLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJlYWJmNjhiNDc2YWM3ZDBmNzM3OTNhYWRhMDYwZjFjMWE5YmY4OTc5IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL3BocC1jb2RlLWNvdmVyYWdlL3ppcGJhbGwvZWFiZjY4YjQ3NmFjN2QwZjczNzkzYWFkYTA2MGYxYzFhOWJmODk3OSIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJlYWJmNjhiNDc2YWM3ZDBmNzM3OTNhYWRhMDYwZjFjMWE5YmY4OTc5IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC1maWxlLWl0ZXJhdG9yIjogIn4xLjMiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC10ZXh0LXRlbXBsYXRlIjogIn4xLjIiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC10b2tlbi1zdHJlYW0iOiAifjEuMyIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9lbnZpcm9ubWVudCI6ICJeMS4zLjIiLAorICAgICAgICAgICAgICAgICJzZWJhc3RpYW4vdmVyc2lvbiI6ICJ+MS4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAiZXh0LXhkZWJ1ZyI6ICI+PTIuMS40IiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgICAgICJleHQtZG9tIjogIioiLAorICAgICAgICAgICAgICAgICJleHQteGRlYnVnIjogIj49Mi4yLjEiLAorICAgICAgICAgICAgICAgICJleHQteG1sd3JpdGVyIjogIioiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMi4yLngtZGV2IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBCZXJnbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzYkBzZWJhc3RpYW4tYmVyZ21hbm4uZGUiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJsZWFkIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlicmFyeSB0aGF0IHByb3ZpZGVzIGNvbGxlY3Rpb24sIHByb2Nlc3NpbmcsIGFuZCByZW5kZXJpbmcgZnVuY3Rpb25hbGl0eSBmb3IgUEhQIGNvZGUgY292ZXJhZ2UgaW5mb3JtYXRpb24uIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLWNvZGUtY292ZXJhZ2UiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJjb3ZlcmFnZSIsCisgICAgICAgICAgICAgICAgInRlc3RpbmciLAorICAgICAgICAgICAgICAgICJ4dW5pdCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDE1LTEwLTA2VDE1OjQ3OjAwKzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwaHB1bml0L3BocC1maWxlLWl0ZXJhdG9yIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuNC4yIiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9waHAtZmlsZS1pdGVyYXRvci5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiM2NjOGY2OWIzMDI4ZDBmOTZhOTA3OGU2Mjk1ZDg2ZTliZjAxOWJlNSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zZWJhc3RpYW5iZXJnbWFubi9waHAtZmlsZS1pdGVyYXRvci96aXBiYWxsLzNjYzhmNjliMzAyOGQwZjk2YTkwNzhlNjI5NWQ4NmU5YmYwMTliZTUiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiM2NjOGY2OWIzMDI4ZDBmOTZhOTA3OGU2Mjk1ZDg2ZTliZjAxOWJlNSIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjEuNC54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2JAc2ViYXN0aWFuLWJlcmdtYW5uLmRlIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAibGVhZCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpbHRlckl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIHRoYXQgZmlsdGVycyBmaWxlcyBiYXNlZCBvbiBhIGxpc3Qgb2Ygc3VmZml4ZXMuIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLWZpbGUtaXRlcmF0b3IvIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZmlsZXN5c3RlbSIsCisgICAgICAgICAgICAgICAgIml0ZXJhdG9yIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTYtMTAtMDNUMDc6NDA6MjgrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwLXRleHQtdGVtcGxhdGUiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS4yLjEiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10ZXh0LXRlbXBsYXRlLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzMWY4YjcxN2U1MWQ5YTJhZmNhNmM5ZjA0NmY1ZDY5ZmMyN2M4Njg2IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10ZXh0LXRlbXBsYXRlL3ppcGJhbGwvMzFmOGI3MTdlNTFkOWEyYWZjYTZjOWYwNDZmNWQ2OWZjMjdjODY4NiIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzMWY4YjcxN2U1MWQ5YTJhZmNhNmM5ZjA0NmY1ZDY5ZmMyN2M4Njg2IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBCZXJnbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzZWJhc3RpYW5AcGhwdW5pdC5kZSIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogImxlYWQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgdGVtcGxhdGUgZW5naW5lLiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10ZXh0LXRlbXBsYXRlLyIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgInRlbXBsYXRlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMDYtMjFUMTM6NTA6MzQrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwLXRpbWVyIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC44IiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9waHAtdGltZXIuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjM4ZTkxMjQwNDljZjFhMTY0ZjFlNDUzN2NhZjE5Yzk5YmYxZWIyNjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vcGhwLXRpbWVyL3ppcGJhbGwvMzhlOTEyNDA0OWNmMWExNjRmMWU0NTM3Y2FmMTljOTliZjFlYjI2MCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzOGU5MTI0MDQ5Y2YxYTE2NGYxZTQ1MzdjYWYxOWM5OWJmMWViMjYwIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjR8fjUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBCZXJnbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzYkBzZWJhc3RpYW4tYmVyZ21hbm4uZGUiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJsZWFkIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVXRpbGl0eSBjbGFzcyBmb3IgdGltaW5nIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLXRpbWVyLyIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgInRpbWVyIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTYtMDUtMTJUMTg6MDM6NTcrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwLXRva2VuLXN0cmVhbSIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjQuOSIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLXRva2VuLXN0cmVhbS5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiM2I0MDJmNjVhNGNjOTBhYmY2ZTExMDRlMzg4Yjg5NmNlMjA5NjMxYiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zZWJhc3RpYW5iZXJnbWFubi9waHAtdG9rZW4tc3RyZWFtL3ppcGJhbGwvM2I0MDJmNjVhNGNjOTBhYmY2ZTExMDRlMzg4Yjg5NmNlMjA5NjMxYiIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzYjQwMmY2NWE0Y2M5MGFiZjZlMTEwNGUzODhiODk2Y2UyMDk2MzFiIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAiZXh0LXRva2VuaXplciI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjQuMiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICAgICAiZGV2LW1hc3RlciI6ICIxLjQtZGV2IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBCZXJnbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzZWJhc3RpYW5AcGhwdW5pdC5kZSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIldyYXBwZXIgYXJvdW5kIFBIUCdzIHRva2VuaXplciBleHRlbnNpb24uIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLXRva2VuLXN0cmVhbS8iLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJ0b2tlbml6ZXIiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNi0xMS0xNVQxNDowNjoyMiswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGhwdW5pdC9waHB1bml0IiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjQuOC4zNSIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwdW5pdC5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiNzkxYjFhNjdjMjVhZjUwZTIzMGY4NDFlZTdhOWM2ZWJhNTA3ZGM4NyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zZWJhc3RpYW5iZXJnbWFubi9waHB1bml0L3ppcGJhbGwvNzkxYjFhNjdjMjVhZjUwZTIzMGY4NDFlZTdhOWM2ZWJhNTA3ZGM4NyIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI3OTFiMWE2N2MyNWFmNTBlMjMwZjg0MWVlN2E5YzZlYmE1MDdkYzg3IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAiZXh0LWRvbSI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LWpzb24iOiAiKiIsCisgICAgICAgICAgICAgICAgImV4dC1wY3JlIjogIioiLAorICAgICAgICAgICAgICAgICJleHQtcmVmbGVjdGlvbiI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LXNwbCI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiLAorICAgICAgICAgICAgICAgICJwaHBzcGVjL3Byb3BoZWN5IjogIl4xLjMuMSIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLWNvZGUtY292ZXJhZ2UiOiAifjIuMSIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLWZpbGUtaXRlcmF0b3IiOiAifjEuNCIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLXRleHQtdGVtcGxhdGUiOiAifjEuMiIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLXRpbWVyIjogIl4xLjAuNiIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdC1tb2NrLW9iamVjdHMiOiAifjIuMyIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9jb21wYXJhdG9yIjogIn4xLjIuMiIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9kaWZmIjogIn4xLjIiLAorICAgICAgICAgICAgICAgICJzZWJhc3RpYW4vZW52aXJvbm1lbnQiOiAifjEuMyIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9leHBvcnRlciI6ICJ+MS4yIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL2dsb2JhbC1zdGF0ZSI6ICJ+MS4wIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL3ZlcnNpb24iOiAifjEuMCIsCisgICAgICAgICAgICAgICAgInN5bWZvbnkveWFtbCI6ICJ+Mi4xfH4zLjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN1Z2dlc3QiOiB7CisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLWludm9rZXIiOiAifjEuMSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYmluIjogWworICAgICAgICAgICAgICAgICJwaHB1bml0IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjQuOC54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2ViYXN0aWFuQHBocHVuaXQuZGUiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJsZWFkIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIFBIUCBVbml0IFRlc3RpbmcgZnJhbWV3b3JrLiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9waHB1bml0LmRlLyIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgInBocHVuaXQiLAorICAgICAgICAgICAgICAgICJ0ZXN0aW5nIiwKKyAgICAgICAgICAgICAgICAieHVuaXQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMi0wNlQwNToxODowNyswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGhwdW5pdC9waHB1bml0LW1vY2stb2JqZWN0cyIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIyLjMuOCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwdW5pdC1tb2NrLW9iamVjdHMuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImFjOGU3YTNkYjM1NzM4ZDU2ZWU5YTc2ZTc4YTRlMDNkOTc2Mjg5ODMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vcGhwdW5pdC1tb2NrLW9iamVjdHMvemlwYmFsbC9hYzhlN2EzZGIzNTczOGQ1NmVlOWE3NmU3OGE0ZTAzZDk3NjI4OTgzIiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImFjOGU3YTNkYjM1NzM4ZDU2ZWU5YTc2ZTc4YTRlMDNkOTc2Mjg5ODMiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJkb2N0cmluZS9pbnN0YW50aWF0b3IiOiAiXjEuMC4yIiwKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC10ZXh0LXRlbXBsYXRlIjogIn4xLjIiLAorICAgICAgICAgICAgICAgICJzZWJhc3RpYW4vZXhwb3J0ZXIiOiAifjEuMiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC40IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgICAgICJleHQtc29hcCI6ICIqIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjIuMy54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2JAc2ViYXN0aWFuLWJlcmdtYW5uLmRlIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAibGVhZCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1vY2sgT2JqZWN0IGxpYnJhcnkgZm9yIFBIUFVuaXQiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9waHB1bml0LW1vY2stb2JqZWN0cy8iLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJtb2NrIiwKKyAgICAgICAgICAgICAgICAieHVuaXQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNS0xMC0wMlQwNjo1MTo0MCswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2ViYXN0aWFuL2NvbXBhcmF0b3IiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS4yLjQiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2NvbXBhcmF0b3IuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjJiNzQyNGI1NWY1MDQ3YjQ3YWM2ZTVjY2IyMGIyYWVhNDAxMWQ5YmUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vY29tcGFyYXRvci96aXBiYWxsLzJiNzQyNGI1NWY1MDQ3YjQ3YWM2ZTVjY2IyMGIyYWVhNDAxMWQ5YmUiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMmI3NDI0YjU1ZjUwNDdiNDdhYzZlNWNjYjIwYjJhZWE0MDExZDliZSIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL2RpZmYiOiAifjEuMiIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9leHBvcnRlciI6ICJ+MS4yIHx8IH4yLjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjQuNCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICAgICAiZGV2LW1hc3RlciI6ICIxLjIueC1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAiY2xhc3NtYXAiOiBbCisgICAgICAgICAgICAgICAgICAgICJzcmMvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiSmVmZiBXZWxjaCIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJ3aGF0dGhlamVmZkBnbWFpbC5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlZvbGtlciBEdXNjaCIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJnaXRodWJAd2FsbGJhc2guY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJCZXJuaGFyZCBTY2h1c3NlayIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJic2NodXNzZWtAMmJlcHVibGlzaGVkLmF0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2ViYXN0aWFuQHBocHVuaXQuZGUiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyB0aGUgZnVuY3Rpb25hbGl0eSB0byBjb21wYXJlIFBIUCB2YWx1ZXMgZm9yIGVxdWFsaXR5IiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vd3d3LmdpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vY29tcGFyYXRvciIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgImNvbXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICJjb21wYXJlIiwKKyAgICAgICAgICAgICAgICAiZXF1YWxpdHkiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yOVQwOTo1MDoyNSswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2ViYXN0aWFuL2RpZmYiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS40LjEiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2RpZmYuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjEzZWRmZDg3MDY0NjIwMzJjMmY1MmI0Yjg2Mjk3NGRkNDZiNzFjOWUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vZGlmZi96aXBiYWxsLzEzZWRmZDg3MDY0NjIwMzJjMmY1MmI0Yjg2Mjk3NGRkNDZiNzFjOWUiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMTNlZGZkODcwNjQ2MjAzMmMyZjUyYjRiODYyOTc0ZGQ0NmI3MWM5ZSIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjgiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMS40LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJLb3JlIE5vcmRtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogIm1haWxAa29yZS1ub3JkbWFubi5kZSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlYmFzdGlhbkBwaHB1bml0LmRlIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGlmZiBpbXBsZW1lbnRhdGlvbiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2RpZmYiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJkaWZmIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMTItMDhUMDc6MTQ6NDErMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNlYmFzdGlhbi9lbnZpcm9ubWVudCIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjMuOCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vZW52aXJvbm1lbnQuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImJlMmM2MDdlNDNjZTRjODllY2Q2MGU3NWM2YTg1YzEyNmU3NTRhZWEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vZW52aXJvbm1lbnQvemlwYmFsbC9iZTJjNjA3ZTQzY2U0Yzg5ZWNkNjBlNzVjNmE4NWMxMjZlNzU0YWVhIiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImJlMmM2MDdlNDNjZTRjODllY2Q2MGU3NWM2YTg1YzEyNmU3NTRhZWEiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiXjUuMy4zIHx8IF43LjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAiXjQuOCB8fCBeNS4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjEuMy54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2ViYXN0aWFuQHBocHVuaXQuZGUiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIGhhbmRsZSBISFZNL1BIUCBlbnZpcm9ubWVudHMiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cuZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9lbnZpcm9ubWVudCIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgIlhkZWJ1ZyIsCisgICAgICAgICAgICAgICAgImVudmlyb25tZW50IiwKKyAgICAgICAgICAgICAgICAiaGh2bSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDE2LTA4LTE4VDA1OjQ5OjQ0KzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzZWJhc3RpYW4vZXhwb3J0ZXIiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS4yLjIiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2V4cG9ydGVyLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI0MmM0YzJlZWM0ODVlZTNlMTU5ZWM5ODg0Zjk1YjQzMTI4N2VkZGU0IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL2V4cG9ydGVyL3ppcGJhbGwvNDJjNGMyZWVjNDg1ZWUzZTE1OWVjOTg4NGY5NWI0MzEyODdlZGRlNCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI0MmM0YzJlZWM0ODVlZTNlMTU5ZWM5ODg0Zjk1YjQzMTI4N2VkZGU0IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiLAorICAgICAgICAgICAgICAgICJzZWJhc3RpYW4vcmVjdXJzaW9uLWNvbnRleHQiOiAifjEuMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgImV4dC1tYnN0cmluZyI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMS4zLngtZGV2IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkplZmYgV2VsY2giLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAid2hhdHRoZWplZmZAZ21haWwuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJWb2xrZXIgRHVzY2giLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiZ2l0aHViQHdhbGxiYXNoLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiQmVybmhhcmQgU2NodXNzZWsiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiYnNjaHVzc2VrQDJiZXB1Ymxpc2hlZC5hdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlYmFzdGlhbkBwaHB1bml0LmRlIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJBZGFtIEhhcnZleSIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJhaGFydmV5QHBocC5uZXQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyB0aGUgZnVuY3Rpb25hbGl0eSB0byBleHBvcnQgUEhQIHZhcmlhYmxlcyBmb3IgdmlzdWFsaXphdGlvbiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2V4cG9ydGVyIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZXhwb3J0IiwKKyAgICAgICAgICAgICAgICAiZXhwb3J0ZXIiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNi0wNi0xN1QwOTowNDoyOCswMDowMCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2ViYXN0aWFuL2dsb2JhbC1zdGF0ZSIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjEuMSIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vZ2xvYmFsLXN0YXRlLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJiYzM3ZDUwZmVhN2QwMTdkM2QzNDBmMjMwODExYzlmMWQ3MjgwYWY0IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL2dsb2JhbC1zdGF0ZS96aXBiYWxsL2JjMzdkNTBmZWE3ZDAxN2QzZDM0MGYyMzA4MTFjOWYxZDcyODBhZjQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYmMzN2Q1MGZlYTdkMDE3ZDNkMzQwZjIzMDgxMWM5ZjFkNzI4MGFmNCIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInN1Z2dlc3QiOiB7CisgICAgICAgICAgICAgICAgImV4dC11b3B6IjogIioiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMS4wLWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2ViYXN0aWFuQHBocHVuaXQuZGUiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTbmFwc2hvdHRpbmcgb2YgZ2xvYmFsIHN0YXRlIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vd3d3LmdpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vZ2xvYmFsLXN0YXRlIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZ2xvYmFsIHN0YXRlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMTAtMTJUMDM6MjY6MDErMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNlYmFzdGlhbi9yZWN1cnNpb24tY29udGV4dCIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjAuMiIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcmVjdXJzaW9uLWNvbnRleHQuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjkxMzQwMWRmODA5ZTk5ZTRmNDdiMjdjZGQ3ODFmNGEyNThkNTg3OTEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vcmVjdXJzaW9uLWNvbnRleHQvemlwYmFsbC85MTM0MDFkZjgwOWU5OWU0ZjQ3YjI3Y2RkNzgxZjRhMjU4ZDU4NzkxIiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjkxMzQwMWRmODA5ZTk5ZTRmNDdiMjdjZGQ3ODFmNGEyNThkNTg3OTEiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC40IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjEuMC54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJKZWZmIFdlbGNoIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogIndoYXR0aGVqZWZmQGdtYWlsLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlYmFzdGlhbkBwaHB1bml0LmRlIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJBZGFtIEhhcnZleSIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJhaGFydmV5QHBocC5uZXQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIHJlY3Vyc2l2ZWx5IHByb2Nlc3MgUEhQIHZhcmlhYmxlcyIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3JlY3Vyc2lvbi1jb250ZXh0IiwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMTEtMTFUMTk6NTA6MTMrMDA6MDAiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNlYmFzdGlhbi92ZXJzaW9uIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC42IiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi92ZXJzaW9uLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1OGIzYTg1ZTc5OTk3NTdkNmFkODFjNzg3YTFmYmY1ZmY2YzYyOGM2IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL3ZlcnNpb24vemlwYmFsbC81OGIzYTg1ZTc5OTk3NTdkNmFkODFjNzg3YTFmYmY1ZmY2YzYyOGM2IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjU4YjNhODVlNzk5OTc1N2Q2YWQ4MWM3ODdhMWZiZjVmZjZjNjI4YzYiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2ViYXN0aWFuQHBocHVuaXQuZGUiLAorICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICJsZWFkIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTGlicmFyeSB0aGF0IGhlbHBzIHdpdGggbWFuYWdpbmcgdGhlIHZlcnNpb24gbnVtYmVyIG9mIEdpdC1ob3N0ZWQgUEhQIHByb2plY3RzIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vdmVyc2lvbiIsCisgICAgICAgICAgICAidGltZSI6ICIyMDE1LTA2LTIxVDEzOjU5OjQ2KzAwOjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzeW1mb255L3lhbWwiLAorICAgICAgICAgICAgInZlcnNpb24iOiAidjIuOC4xNyIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3ltZm9ueS95YW1sLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzMjJhOGMyZGZiY2ExNWFkNmIxYjI3ZTE4Mjg5OWY5OGVjMGUwMTUzIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3N5bWZvbnkveWFtbC96aXBiYWxsLzMyMmE4YzJkZmJjYTE1YWQ2YjFiMjdlMTgyODk5Zjk4ZWMwZTAxNTMiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMzIyYThjMmRmYmNhMTVhZDZiMWIyN2UxODI4OTlmOThlYzBlMDE1MyIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy45IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjIuOC1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAgICAgICAgICJTeW1mb255XFxDb21wb25lbnRcXFlhbWxcXCI6ICIiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiZXhjbHVkZS1mcm9tLWNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAiL1Rlc3RzLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIk1JVCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkZhYmllbiBQb3RlbmNpZXIiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiZmFiaWVuQHN5bWZvbnkuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTeW1mb255IENvbW11bml0eSIsCisgICAgICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL3N5bWZvbnkuY29tL2NvbnRyaWJ1dG9ycyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN5bWZvbnkgWWFtbCBDb21wb25lbnQiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vc3ltZm9ueS5jb20iLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNy0wMS0yMVQxNjo0MDo1MCswMDowMCIKKyAgICAgICAgfQorICAgIF0sCisgICAgImFsaWFzZXMiOiBbXSwKKyAgICAibWluaW11bS1zdGFiaWxpdHkiOiAic3RhYmxlIiwKKyAgICAic3RhYmlsaXR5LWZsYWdzIjogeworICAgICAgICAicGhwdW5pdC9waHB1bml0IjogMAorICAgIH0sCisgICAgInByZWZlci1zdGFibGUiOiBmYWxzZSwKKyAgICAicHJlZmVyLWxvd2VzdCI6IGZhbHNlLAorICAgICJwbGF0Zm9ybSI6IHsKKyAgICAgICAgInBocCI6ICI+PTUuMy4wIgorICAgIH0sCisgICAgInBsYXRmb3JtLWRldiI6IFtdCit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9kZW1vL2RlbW8ucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvZGVtby9kZW1vLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTZkZDkyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvZGVtby9kZW1vLnBocApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkRlbW88L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPG9sPgorICAgICAgICA8P3BocAorICAgICAgICByZXF1aXJlX29uY2UgJ2xvYWRlci5waHAnOworICAgICAgICBMb2FkZXI6OnJlZ2lzdGVyKCcuLi9saWInLCdSb2JUaHJlZVxcQXV0aCcpOworCisgICAgICAgIHVzZSBcUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoOworCisgICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnTXlBcHAnKTsKKworICAgICAgICBlY2hvICc8bGk+Rmlyc3QgY3JlYXRlIGEgc2VjcmV0IGFuZCBhc3NvY2lhdGUgaXQgd2l0aCBhIHVzZXInOworICAgICAgICAkc2VjcmV0ID0gJHRmYS0+Y3JlYXRlU2VjcmV0KDE2MCk7ICAvLyBUaG91Z2ggdGhlIGRlZmF1bHQgaXMgYW4gODAgYml0cyBzZWNyZXQgKGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zKSB3ZSByZWNvbW1lbmQgY3JlYXRpbmcgMTYwKyBiaXRzIHNlY3JldHMgKHNlZSBSRkMgNDIyNiAtIEFsZ29yaXRobSBSZXF1aXJlbWVudHMpCisgICAgICAgIGVjaG8gJzxsaT5OZXh0IGNyZWF0ZSBhIFFSIGNvZGUgYW5kIGxldCB0aGUgdXNlciBzY2FuIGl0Ojxicj48aW1nIHNyYz0iJyAuICR0ZmEtPmdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCdNeSBsYWJlbCcsICRzZWNyZXQpIC4gJyI+PGJyPi4uLm9yIGRpc3BsYXkgdGhlIHNlY3JldCB0byB0aGUgdXNlciBmb3IgbWFudWFsIGVudHJ5OiAnIC4gY2h1bmtfc3BsaXQoJHNlY3JldCwgNCwgJyAnKTsKKyAgICAgICAgJGNvZGUgPSAkdGZhLT5nZXRDb2RlKCRzZWNyZXQpOworICAgICAgICBlY2hvICc8bGk+TmV4dCwgaGF2ZSB0aGUgdXNlciB2ZXJpZnkgdGhlIGNvZGU7IGF0IHRoaXMgdGltZSB0aGUgY29kZSBkaXNwbGF5ZWQgYnkgYSAyRkEtYXBwIHdvdWxkIGJlOiA8c3BhbiBzdHlsZT0iY29sb3I6IzAwYyI+JyAuICRjb2RlIC4gJzwvc3Bhbj4gKGJ1dCB0aGF0IGNoYW5nZXMgcGVyaW9kaWNhbGx5KSc7CisgICAgICAgIGVjaG8gJzxsaT5XaGVuIHRoZSBjb2RlIGNoZWNrcyBvdXQsIDJGQSBjYW4gYmUgLyBpcyBlbmFibGVkOyBzdG9yZSAoZW5jcnlwdGVkPykgc2VjcmV0IHdpdGggdXNlciBhbmQgaGF2ZSB0aGUgdXNlciB2ZXJpZnkgYSBjb2RlIGVhY2ggdGltZSBhIG5ldyBzZXNzaW9uIGlzIHN0YXJ0ZWQuJzsKKyAgICAgICAgZWNobyAnPGxpPldoZW4gYWZvcmVtZW50aW9uZWQgY29kZSAoJyAuICRjb2RlIC4gJykgd2FzIGVudGVyZWQsIHRoZSByZXN1bHQgd291bGQgYmU6ICcgLiAoKCR0ZmEtPnZlcmlmeUNvZGUoJHNlY3JldCwgJGNvZGUpID09PSB0cnVlKSA/ICc8c3BhbiBzdHlsZT0iY29sb3I6IzBjMCI+T0s8L3NwYW4+JyA6ICc8c3BhbiBzdHlsZT0iY29sb3I6I2MwMCI+RkFJTDwvc3Bhbj4nKTsKKyAgICAgICAgPz4KKyAgICA8L29sPgorICAgIDxwPk5vdGU6IE1ha2Ugc3VyZSB5b3VyIHNlcnZlci10aW1lIGlzIDxhIGhyZWY9Imh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTmV0d29ya19UaW1lX1Byb3RvY29sIj5OVFAtc3luY2VkPC9hPiEgRGVwZW5kaW5nIG9uIHRoZSAkZGlzY3JlcGFuY3kgYWxsb3dlZCB5b3VyIHRpbWUgY2Fubm90IGRyaWZ0IHRvbyBtdWNoIGZyb20gdGhlIHVzZXJzJyB0aW1lITwvcD4KKyAgICA8P3BocAorICAgIHRyeSB7CisgICAgICAgICR0ZmEtPmVuc3VyZUNvcnJlY3RUaW1lKCk7CisgICAgICAgIGVjaG8gJ1lvdXIgaG9zdHMgdGltZSBzZWVtcyB0byBiZSBjb3JyZWN0IC8gd2l0aGluIG1hcmdpbic7CisgICAgfSBjYXRjaCAoUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoRXhjZXB0aW9uICRleCkgeworICAgICAgICBlY2hvICc8Yj5XYXJuaW5nOjwvYj4gWW91ciBob3N0cyB0aW1lIHNlZW1zIHRvIGJlIG9mZjogJyAuICRleC0+Z2V0TWVzc2FnZSgpOworICAgIH0KKyAgICA/PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvZGVtby9sb2FkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvZGVtby9sb2FkZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwOGYyNGQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9kZW1vL2xvYWRlci5waHAKQEAgLTAsMCArMSw1MCBAQAorPD9waHAKKworLy9odHRwOi8vd3d3LmxlYXNld2VibGFicy5jb20vMjAxNC8wNC9wc3ItMC1wc3ItNC1hdXRvbG9hZGluZy1jbGFzc2VzLXBocC8KK2NsYXNzIExvYWRlcgoreworICAgIHByb3RlY3RlZCBzdGF0aWMgJHBhcmVudFBhdGggPSBudWxsOworICAgIHByb3RlY3RlZCBzdGF0aWMgJHBhdGhzID0gbnVsbDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljICRmaWxlcyA9IG51bGw7CisgICAgcHJvdGVjdGVkIHN0YXRpYyAkbnNDaGFyID0gJ1xcJzsKKyAgICBwcm90ZWN0ZWQgc3RhdGljICRpbml0aWFsaXplZCA9IGZhbHNlOworICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCisgICAgeworICAgICAgICBpZiAoc3RhdGljOjokaW5pdGlhbGl6ZWQpIHJldHVybjsKKyAgICAgICAgc3RhdGljOjokaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICBzdGF0aWM6OiRwYXJlbnRQYXRoID0gX19GSUxFX187CisgICAgICAgIGZvciAoJGk9c3Vic3RyX2NvdW50KGdldF9jbGFzcygpLCBzdGF0aWM6OiRuc0NoYXIpOyRpPj0wOyRpLS0pIHsKKyAgICAgICAgICAgIHN0YXRpYzo6JHBhcmVudFBhdGggPSBkaXJuYW1lKHN0YXRpYzo6JHBhcmVudFBhdGgpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYzo6JHBhdGhzID0gYXJyYXkoKTsKKyAgICAgICAgc3RhdGljOjokZmlsZXMgPSBhcnJheShfX0ZJTEVfXyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcmVnaXN0ZXIoJHBhdGgsJG5hbWVzcGFjZSkgeworICAgICAgICBpZiAoIXN0YXRpYzo6JGluaXRpYWxpemVkKSBzdGF0aWM6OmluaXRpYWxpemUoKTsKKyAgICAgICAgc3RhdGljOjokcGF0aHNbJG5hbWVzcGFjZV0gPSB0cmltKCRwYXRoLERJUkVDVE9SWV9TRVBBUkFUT1IpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWQoJGNsYXNzKSB7CisgICAgICAgIGlmIChjbGFzc19leGlzdHMoJGNsYXNzLGZhbHNlKSkgcmV0dXJuOworICAgICAgICBpZiAoIXN0YXRpYzo6JGluaXRpYWxpemVkKSBzdGF0aWM6OmluaXRpYWxpemUoKTsKKyAgICAgICAgCisgICAgICAgIGZvcmVhY2ggKHN0YXRpYzo6JHBhdGhzIGFzICRuYW1lc3BhY2UgPT4gJHBhdGgpIHsKKyAgICAgICAgICAgIGlmICghJG5hbWVzcGFjZSB8fCAkbmFtZXNwYWNlLnN0YXRpYzo6JG5zQ2hhciA9PT0gc3Vic3RyKCRjbGFzcywgMCwgc3RybGVuKCRuYW1lc3BhY2Uuc3RhdGljOjokbnNDaGFyKSkpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAkZmlsZU5hbWUgPSBzdWJzdHIoJGNsYXNzLHN0cmxlbigkbmFtZXNwYWNlLnN0YXRpYzo6JG5zQ2hhciktMSk7CisgICAgICAgICAgICAgICAgJGZpbGVOYW1lID0gc3RyX3JlcGxhY2Uoc3RhdGljOjokbnNDaGFyLCBESVJFQ1RPUllfU0VQQVJBVE9SLCBsdHJpbSgkZmlsZU5hbWUsc3RhdGljOjokbnNDaGFyKSk7CisgICAgICAgICAgICAgICAgJGZpbGVOYW1lID0gc3RhdGljOjokcGFyZW50UGF0aC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRwYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGVOYW1lLicucGhwJzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpbGVOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBpbmNsdWRlICRmaWxlTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3NwbF9hdXRvbG9hZF9yZWdpc3RlcihhcnJheSgnTG9hZGVyJywgJ2xvYWQnKSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9CYXNlSFRUUFFSQ29kZVByb3ZpZGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvQmFzZUhUVFBRUkNvZGVQcm92aWRlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNiM2FkZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvQmFzZUhUVFBRUkNvZGVQcm92aWRlci5waHAKQEAgLTAsMCArMSwyNyBAQAorPD9waHAKKworbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyOworCithYnN0cmFjdCBjbGFzcyBCYXNlSFRUUFFSQ29kZVByb3ZpZGVyIGltcGxlbWVudHMgSVFSQ29kZVByb3ZpZGVyCit7CisgICAgcHJvdGVjdGVkICR2ZXJpZnlzc2w7CisKKyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0Q29udGVudCgkdXJsKQorICAgIHsKKyAgICAgICAgJGN1cmxoYW5kbGUgPSBjdXJsX2luaXQoKTsKKyAgICAgICAgCisgICAgICAgIGN1cmxfc2V0b3B0X2FycmF5KCRjdXJsaGFuZGxlLCBhcnJheSgKKyAgICAgICAgICAgIENVUkxPUFRfVVJMID0+ICR1cmwsCisgICAgICAgICAgICBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IHRydWUsCisgICAgICAgICAgICBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VUID0+IDEwLAorICAgICAgICAgICAgQ1VSTE9QVF9ETlNfQ0FDSEVfVElNRU9VVCA9PiAxMCwKKyAgICAgICAgICAgIENVUkxPUFRfVElNRU9VVCA9PiAxMCwKKyAgICAgICAgICAgIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIgPT4gJHRoaXMtPnZlcmlmeXNzbCwKKyAgICAgICAgICAgIENVUkxPUFRfVVNFUkFHRU5UID0+ICdUd29GYWN0b3JBdXRoJworICAgICAgICApKTsKKyAgICAgICAgJGRhdGEgPSBjdXJsX2V4ZWMoJGN1cmxoYW5kbGUpOworICAgICAgICAKKyAgICAgICAgY3VybF9jbG9zZSgkY3VybGhhbmRsZSk7CisgICAgICAgIHJldHVybiAkZGF0YTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9JUVJDb2RlUHJvdmlkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9JUVJDb2RlUHJvdmlkZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZWQ2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0lRUkNvZGVQcm92aWRlci5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCituYW1lc3BhY2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXI7CisKK2ludGVyZmFjZSBJUVJDb2RlUHJvdmlkZXIKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJDb2RlSW1hZ2UoJHFydGV4dCwgJHNpemUpOworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNaW1lVHlwZSgpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvSW1hZ2VDaGFydHNRUkNvZGVQcm92aWRlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0ltYWdlQ2hhcnRzUVJDb2RlUHJvdmlkZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMDk0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL0ltYWdlQ2hhcnRzUVJDb2RlUHJvdmlkZXIucGhwCkBAIC0wLDAgKzEsMzkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xRcjsKKworLy8gaHR0cHM6Ly9pbWFnZS1jaGFydHMuY29tCitjbGFzcyBJbWFnZUNoYXJ0c1FSQ29kZVByb3ZpZGVyIGV4dGVuZHMgQmFzZUhUVFBRUkNvZGVQcm92aWRlciAKK3sKKyAgICBwdWJsaWMgJGVycm9yY29ycmVjdGlvbmxldmVsOworICAgIHB1YmxpYyAkbWFyZ2luOworCisgICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHZlcmlmeXNzbCA9IGZhbHNlLCAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWwgPSAnTCcsICRtYXJnaW4gPSAxKSAKKyAgICB7CisgICAgICAgIGlmICghaXNfYm9vbCgkdmVyaWZ5c3NsKSkKKyAgICAgICAgICAgIHRocm93IG5ldyBcUVJFeGNlcHRpb24oJ1ZlcmlmeVNTTCBtdXN0IGJlIGJvb2wnKTsKKworICAgICAgICAkdGhpcy0+dmVyaWZ5c3NsID0gJHZlcmlmeXNzbDsKKyAgICAgICAgCisgICAgICAgICR0aGlzLT5lcnJvcmNvcnJlY3Rpb25sZXZlbCA9ICRlcnJvcmNvcnJlY3Rpb25sZXZlbDsKKyAgICAgICAgJHRoaXMtPm1hcmdpbiA9ICRtYXJnaW47CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNaW1lVHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJDb2RlSW1hZ2UoJHFydGV4dCwgJHNpemUpIAorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRDb250ZW50KCR0aGlzLT5nZXRVcmwoJHFydGV4dCwgJHNpemUpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVybCgkcXJ0ZXh0LCAkc2l6ZSkgCisgICAgeworICAgICAgICByZXR1cm4gJ2h0dHBzOi8vaW1hZ2UtY2hhcnRzLmNvbS9jaGFydD9jaHQ9cXInCisgICAgICAgICAgICAuICcmY2hzPScgLiBjZWlsKCRzaXplLzIpIC4gJ3gnIC4gY2VpbCgkc2l6ZS8yKQorICAgICAgICAgICAgLiAnJmNobGQ9JyAuICR0aGlzLT5lcnJvcmNvcnJlY3Rpb25sZXZlbCAuICd8JyAuICR0aGlzLT5tYXJnaW4KKyAgICAgICAgICAgIC4gJyZjaGw9JyAuIHJhd3VybGVuY29kZSgkcXJ0ZXh0KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9RUkV4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL1FSRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjhlODI5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9RUkV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSw1IEBACis8P3BocAorCit1c2UgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoRXhjZXB0aW9uOworCitjbGFzcyBRUkV4Y2VwdGlvbiBleHRlbmRzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24ge30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1FyL1FSU2VydmVyUHJvdmlkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9RUlNlcnZlclByb3ZpZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjhiODdiCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9RUlNlcnZlclByb3ZpZGVyLnBocApAQCAtMCwwICsxLDcxIEBACis8P3BocAorCituYW1lc3BhY2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXI7CisKKy8vIGh0dHA6Ly9nb3FyLm1lL2FwaS9kb2MvY3JlYXRlLXFyLWNvZGUvCitjbGFzcyBRUlNlcnZlclByb3ZpZGVyIGV4dGVuZHMgQmFzZUhUVFBRUkNvZGVQcm92aWRlciAKK3sKKyAgICBwdWJsaWMgJGVycm9yY29ycmVjdGlvbmxldmVsOworICAgIHB1YmxpYyAkbWFyZ2luOworICAgIHB1YmxpYyAkcXpvbmU7CisgICAgcHVibGljICRiZ2NvbG9yOworICAgIHB1YmxpYyAkY29sb3I7CisgICAgcHVibGljICRmb3JtYXQ7CisKKyAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdmVyaWZ5c3NsID0gZmFsc2UsICRlcnJvcmNvcnJlY3Rpb25sZXZlbCA9ICdMJywgJG1hcmdpbiA9IDQsICRxem9uZSA9IDEsICRiZ2NvbG9yID0gJ2ZmZmZmZicsICRjb2xvciA9ICcwMDAwMDAnLCAkZm9ybWF0ID0gJ3BuZycpIAorICAgIHsKKyAgICAgICAgaWYgKCFpc19ib29sKCR2ZXJpZnlzc2wpKQorICAgICAgICAgICAgdGhyb3cgbmV3IFFSRXhjZXB0aW9uKCdWZXJpZnlTU0wgbXVzdCBiZSBib29sJyk7CisKKyAgICAgICAgJHRoaXMtPnZlcmlmeXNzbCA9ICR2ZXJpZnlzc2w7CisgICAgICAgIAorICAgICAgICAkdGhpcy0+ZXJyb3Jjb3JyZWN0aW9ubGV2ZWwgPSAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWw7CisgICAgICAgICR0aGlzLT5tYXJnaW4gPSAkbWFyZ2luOworICAgICAgICAkdGhpcy0+cXpvbmUgPSAkcXpvbmU7CisgICAgICAgICR0aGlzLT5iZ2NvbG9yID0gJGJnY29sb3I7CisgICAgICAgICR0aGlzLT5jb2xvciA9ICRjb2xvcjsKKyAgICAgICAgJHRoaXMtPmZvcm1hdCA9ICRmb3JtYXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNaW1lVHlwZSgpIAorICAgIHsKKyAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCR0aGlzLT5mb3JtYXQpKQorICAgICAgICB7CisgICAgICAgIAljYXNlICdwbmcnOgorICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvcG5nJzsKKyAgICAgICAgCWNhc2UgJ2dpZic6CisgICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9naWYnOworICAgICAgICAJY2FzZSAnanBnJzoKKyAgICAgICAgCWNhc2UgJ2pwZWcnOgorICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvanBlZyc7CisgICAgICAgIAljYXNlICdzdmcnOgorICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2Uvc3ZnK3htbCc7CisgICAgICAgIAljYXNlICdlcHMnOgorICAgICAgICAgICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCc7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IFxRUkV4Y2VwdGlvbihzcHJpbnRmKCdVbmtub3duIE1JTUUtdHlwZTogJXMnLCAkdGhpcy0+Zm9ybWF0KSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRRUkNvZGVJbWFnZSgkcXJ0ZXh0LCAkc2l6ZSkgCisgICAgeworICAgICAgICByZXR1cm4gJHRoaXMtPmdldENvbnRlbnQoJHRoaXMtPmdldFVybCgkcXJ0ZXh0LCAkc2l6ZSkpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGRlY29kZUNvbG9yKCR2YWx1ZSkgCisgICAgeworICAgICAgICByZXR1cm4gdnNwcmludGYoJyVkLSVkLSVkJywgc3NjYW5mKCR2YWx1ZSwgIiUwMnglMDJ4JTAyeCIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVybCgkcXJ0ZXh0LCAkc2l6ZSkgCisgICAgeworICAgICAgICByZXR1cm4gJ2h0dHBzOi8vYXBpLnFyc2VydmVyLmNvbS92MS9jcmVhdGUtcXItY29kZS8nCisgICAgICAgICAgICAuICc/c2l6ZT0nIC4gJHNpemUgLiAneCcgLiAkc2l6ZQorICAgICAgICAgICAgLiAnJmVjYz0nIC4gc3RydG91cHBlcigkdGhpcy0+ZXJyb3Jjb3JyZWN0aW9ubGV2ZWwpCisgICAgICAgICAgICAuICcmbWFyZ2luPScgLiAkdGhpcy0+bWFyZ2luCisgICAgICAgICAgICAuICcmcXpvbmU9JyAuICR0aGlzLT5xem9uZQorICAgICAgICAgICAgLiAnJmJnY29sb3I9JyAuICR0aGlzLT5kZWNvZGVDb2xvcigkdGhpcy0+Ymdjb2xvcikKKyAgICAgICAgICAgIC4gJyZjb2xvcj0nIC4gJHRoaXMtPmRlY29kZUNvbG9yKCR0aGlzLT5jb2xvcikKKyAgICAgICAgICAgIC4gJyZmb3JtYXQ9JyAuIHN0cnRvbG93ZXIoJHRoaXMtPmZvcm1hdCkKKyAgICAgICAgICAgIC4gJyZkYXRhPScgLiByYXd1cmxlbmNvZGUoJHFydGV4dCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvUVJpY2tldFByb3ZpZGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUXIvUVJpY2tldFByb3ZpZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWUyN2NjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9Rci9RUmlja2V0UHJvdmlkZXIucGhwCkBAIC0wLDAgKzEsNTQgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xRcjsKKworLy8gaHR0cDovL3FyaWNraXQuY29tL3FyaWNraXRfYXBwcy9xcmlja2l0X2FwaS5waHAKK2NsYXNzIFFSaWNrZXRQcm92aWRlciBleHRlbmRzIEJhc2VIVFRQUVJDb2RlUHJvdmlkZXIgCit7CisgICAgcHVibGljICRlcnJvcmNvcnJlY3Rpb25sZXZlbDsKKyAgICBwdWJsaWMgJG1hcmdpbjsKKyAgICBwdWJsaWMgJHF6b25lOworICAgIHB1YmxpYyAkYmdjb2xvcjsKKyAgICBwdWJsaWMgJGNvbG9yOworICAgIHB1YmxpYyAkZm9ybWF0OworCisgICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGVycm9yY29ycmVjdGlvbmxldmVsID0gJ0wnLCAkYmdjb2xvciA9ICdmZmZmZmYnLCAkY29sb3IgPSAnMDAwMDAwJywgJGZvcm1hdCA9ICdwJykgCisgICAgeworICAgICAgICAkdGhpcy0+dmVyaWZ5c3NsID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICAkdGhpcy0+ZXJyb3Jjb3JyZWN0aW9ubGV2ZWwgPSAkZXJyb3Jjb3JyZWN0aW9ubGV2ZWw7CisgICAgICAgICR0aGlzLT5iZ2NvbG9yID0gJGJnY29sb3I7CisgICAgICAgICR0aGlzLT5jb2xvciA9ICRjb2xvcjsKKyAgICAgICAgJHRoaXMtPmZvcm1hdCA9ICRmb3JtYXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNaW1lVHlwZSgpIAorICAgIHsKKyAgICAgICAgc3dpdGNoIChzdHJ0b2xvd2VyKCR0aGlzLT5mb3JtYXQpKQorICAgICAgICB7CisgICAgICAgIAljYXNlICdwJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL3BuZyc7CisgICAgICAgIAljYXNlICdnJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2dpZic7CisgICAgICAgIAljYXNlICdqJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnOworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBcUVJFeGNlcHRpb24oc3ByaW50ZignVW5rbm93biBNSU1FLXR5cGU6ICVzJywgJHRoaXMtPmZvcm1hdCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UVJDb2RlSW1hZ2UoJHFydGV4dCwgJHNpemUpIAorICAgIHsKKyAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRDb250ZW50KCR0aGlzLT5nZXRVcmwoJHFydGV4dCwgJHNpemUpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFVybCgkcXJ0ZXh0LCAkc2l6ZSkgCisgICAgeworICAgICAgICByZXR1cm4gJ2h0dHA6Ly9xcmlja2l0LmNvbS9hcGkvcXInCisgICAgICAgICAgICAuICc/cXJzaXplPScgLiAkc2l6ZQorICAgICAgICAgICAgLiAnJmU9JyAuIHN0cnRvbG93ZXIoJHRoaXMtPmVycm9yY29ycmVjdGlvbmxldmVsKQorICAgICAgICAgICAgLiAnJmJnZGNvbG9yPScgLiAkdGhpcy0+Ymdjb2xvcgorICAgICAgICAgICAgLiAnJmZnZGNvbG9yPScgLiAkdGhpcy0+Y29sb3IKKyAgICAgICAgICAgIC4gJyZ0PScgLiBzdHJ0b2xvd2VyKCR0aGlzLT5mb3JtYXQpCisgICAgICAgICAgICAuICcmZD0nIC4gcmF3dXJsZW5jb2RlKCRxcnRleHQpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9DU1JOR1Byb3ZpZGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUm5nL0NTUk5HUHJvdmlkZXIucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYmE3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9DU1JOR1Byb3ZpZGVyLnBocApAQCAtMCwwICsxLDE0IEBACis8P3BocAorCituYW1lc3BhY2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUm5nOworCitjbGFzcyBDU1JOR1Byb3ZpZGVyIGltcGxlbWVudHMgSVJOR1Byb3ZpZGVyCit7CisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJhbmRvbUJ5dGVzKCRieXRlY291bnQpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbV9ieXRlcygkYnl0ZWNvdW50KTsgICAgLy8gUEhQNysKKyAgICB9CisgICAgCisgICAgcHVibGljIGZ1bmN0aW9uIGlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9IYXNoUk5HUHJvdmlkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvSGFzaFJOR1Byb3ZpZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjQyNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvSGFzaFJOR1Byb3ZpZGVyLnBocApAQCAtMCwwICsxLDI4IEBACis8P3BocAorbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKKworY2xhc3MgSGFzaFJOR1Byb3ZpZGVyIGltcGxlbWVudHMgSVJOR1Byb3ZpZGVyCit7CisgICAgcHJpdmF0ZSAkYWxnb3JpdGhtOworICAgIAorICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRhbGdvcml0aG0gPSAnc2hhMjU2JyApIHsKKyAgICAgICAgJGFsZ29zID0gYXJyYXlfdmFsdWVzKGhhc2hfYWxnb3MoKSk7CisgICAgICAgIGlmICghaW5fYXJyYXkoJGFsZ29yaXRobSwgJGFsZ29zLCB0cnVlKSkKKyAgICAgICAgICAgIHRocm93IG5ldyBcUk5HRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBhbGdvcml0aG0gc3BlY2lmaWVkJyk7CisgICAgICAgICR0aGlzLT5hbGdvcml0aG0gPSAkYWxnb3JpdGhtOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmFuZG9tQnl0ZXMoJGJ5dGVjb3VudCkgeworICAgICAgICAkcmVzdWx0ID0gJyc7CisgICAgICAgICRoYXNoID0gbXRfcmFuZCgpOworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkYnl0ZWNvdW50OyAkaSsrKSB7CisgICAgICAgICAgICAkaGFzaCA9IGhhc2goJHRoaXMtPmFsZ29yaXRobSwgJGhhc2gubXRfcmFuZCgpLCB0cnVlKTsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJGhhc2hbbXRfcmFuZCgwLCBzdHJsZW4oJGhhc2gpLTEpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZ1bmN0aW9uIGlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9JUk5HUHJvdmlkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvSVJOR1Byb3ZpZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmUyODAwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvSVJOR1Byb3ZpZGVyLnBocApAQCAtMCwwICsxLDkgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmc7CisKK2ludGVyZmFjZSBJUk5HUHJvdmlkZXIKK3sKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmFuZG9tQnl0ZXMoJGJ5dGVjb3VudCk7CisgICAgcHVibGljIGZ1bmN0aW9uIGlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9NQ3J5cHRSTkdQcm92aWRlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9NQ3J5cHRSTkdQcm92aWRlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlYWIyYwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUm5nL01DcnlwdFJOR1Byb3ZpZGVyLnBocApAQCAtMCwwICsxLDIzIEBACis8P3BocAorCituYW1lc3BhY2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUm5nOworCitjbGFzcyBNQ3J5cHRSTkdQcm92aWRlciBpbXBsZW1lbnRzIElSTkdQcm92aWRlcgoreworICAgIHByaXZhdGUgJHNvdXJjZTsKKyAgICAKKyAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkc291cmNlID0gTUNSWVBUX0RFVl9VUkFORE9NKSB7CisgICAgICAgICR0aGlzLT5zb3VyY2UgPSAkc291cmNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmFuZG9tQnl0ZXMoJGJ5dGVjb3VudCkgeworICAgICAgICAkcmVzdWx0ID0gQG1jcnlwdF9jcmVhdGVfaXYoJGJ5dGVjb3VudCwgJHRoaXMtPnNvdXJjZSk7CisgICAgICAgIGlmICgkcmVzdWx0ID09PSBmYWxzZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBcUk5HRXhjZXB0aW9uKCdtY3J5cHRfY3JlYXRlX2l2IHJldHVybmVkIGFuIGludmFsaWQgdmFsdWUnKTsKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9SbmcvT3BlblNTTFJOR1Byb3ZpZGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUm5nL09wZW5TU0xSTkdQcm92aWRlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM2NmM2NAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUm5nL09wZW5TU0xSTkdQcm92aWRlci5waHAKQEAgLTAsMCArMSwyNSBAQAorPD9waHAKKworbmFtZXNwYWNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZzsKKworY2xhc3MgT3BlblNTTFJOR1Byb3ZpZGVyIGltcGxlbWVudHMgSVJOR1Byb3ZpZGVyCit7CisgICAgcHJpdmF0ZSAkcmVxdWlyZXN0cm9uZzsKKyAgICAKKyAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkcmVxdWlyZXN0cm9uZyA9IHRydWUpIHsKKyAgICAgICAgJHRoaXMtPnJlcXVpcmVzdHJvbmcgPSAkcmVxdWlyZXN0cm9uZzsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFJhbmRvbUJ5dGVzKCRieXRlY291bnQpIHsKKyAgICAgICAgJHJlc3VsdCA9IG9wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcygkYnl0ZWNvdW50LCAkY3J5cHRvX3N0cm9uZyk7CisgICAgICAgIGlmICgkdGhpcy0+cmVxdWlyZXN0cm9uZyAmJiAoJGNyeXB0b19zdHJvbmcgPT09IGZhbHNlKSkKKyAgICAgICAgICAgIHRocm93IG5ldyBcUk5HRXhjZXB0aW9uKCdvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMgcmV0dXJuZWQgbm9uLWNyeXB0b2dyYXBoaWNhbGx5IHN0cm9uZyB2YWx1ZScpOworICAgICAgICBpZiAoJHJlc3VsdCA9PT0gZmFsc2UpCisgICAgICAgICAgICB0aHJvdyBuZXcgXFJOR0V4Y2VwdGlvbignb3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzIHJldHVybmVkIGFuIGludmFsaWQgdmFsdWUnKTsKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmdW5jdGlvbiBpc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCkgeworICAgICAgICByZXR1cm4gJHRoaXMtPnJlcXVpcmVzdHJvbmc7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvUm5nL1JOR0V4Y2VwdGlvbi5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9STkdFeGNlcHRpb24ucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNWU5MTMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1JuZy9STkdFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsNSBAQAorPD9waHAKKwordXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjsKKworY2xhc3MgUk5HRXhjZXB0aW9uIGV4dGVuZHMgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbiB7fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9IdHRwVGltZVByb3ZpZGVyLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9IdHRwVGltZVByb3ZpZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTc4MDZlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL0h0dHBUaW1lUHJvdmlkZXIucGhwCkBAIC0wLDAgKzEsNTQgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xUaW1lOworCisvKioKKyAqIFRha2VzIHRoZSB0aW1lIGZyb20gYW55IHdlYnNlcnZlciBieSBkb2luZyBhIEhFQUQgcmVxdWVzdCBvbiB0aGUgc3BlY2lmaWVkIFVSTCBhbmQgZXh0cmFjdGluZyB0aGUgJ0RhdGU6JyBoZWFkZXIKKyAqLworY2xhc3MgSHR0cFRpbWVQcm92aWRlciBpbXBsZW1lbnRzIElUaW1lUHJvdmlkZXIKK3sKKyAgICBwdWJsaWMgJHVybDsKKyAgICBwdWJsaWMgJG9wdGlvbnM7CisgICAgcHVibGljICRleHBlY3RlZHRpbWVmb3JtYXQ7CisKKyAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdXJsID0gJ2h0dHBzOi8vZ29vZ2xlLmNvbScsICRleHBlY3RlZHRpbWVmb3JtYXQgPSAnRCwgZCBNIFkgSDppOnMgTysnLCBhcnJheSAkb3B0aW9ucyA9IG51bGwpCisgICAgeworICAgICAgICAkdGhpcy0+dXJsID0gJHVybDsKKyAgICAgICAgJHRoaXMtPmV4cGVjdGVkdGltZWZvcm1hdCA9ICRleHBlY3RlZHRpbWVmb3JtYXQ7CisgICAgICAgICR0aGlzLT5vcHRpb25zID0gJG9wdGlvbnM7CisgICAgICAgIGlmICgkdGhpcy0+b3B0aW9ucyA9PT0gbnVsbCkgeworICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnMgPSBhcnJheSgKKyAgICAgICAgICAgICAgICAnaHR0cCcgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICdtZXRob2QnID0+ICdIRUFEJywKKyAgICAgICAgICAgICAgICAgICAgJ2ZvbGxvd19sb2NhdGlvbicgPT4gZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICdpZ25vcmVfZXJyb3JzJyA9PiB0cnVlLAorICAgICAgICAgICAgICAgICAgICAnbWF4X3JlZGlyZWN0cycgPT4gMCwKKyAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3RfZnVsbHVyaScgPT4gdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcicgPT4gYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbjogY2xvc2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItYWdlbnQ6IFR3b0ZhY3RvckF1dGggSHR0cFRpbWVQcm92aWRlciAoaHR0cHM6Ly9naXRodWIuY29tL1JvYlRocmVlL1R3b0ZhY3RvckF1dGgpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdDYWNoZS1Db250cm9sOiBuby1jYWNoZScKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VGltZSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICRjb250ZXh0ICA9IHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkdGhpcy0+b3B0aW9ucyk7CisgICAgICAgICAgICAkZmQgPSBmb3BlbigkdGhpcy0+dXJsLCAncmInLCBmYWxzZSwgJGNvbnRleHQpOworICAgICAgICAgICAgJGhlYWRlcnMgPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZmQpOworICAgICAgICAgICAgZmNsb3NlKCRmZCk7CisKKyAgICAgICAgICAgIGZvcmVhY2ggKCRoZWFkZXJzWyd3cmFwcGVyX2RhdGEnXSBhcyAkaCkgeworICAgICAgICAgICAgICAgIGlmIChzdHJjYXNlY21wKHN1YnN0cigkaCwgMCwgNSksICdEYXRlOicpID09PSAwKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gXERhdGVUaW1lOjpjcmVhdGVGcm9tRm9ybWF0KCR0aGlzLT5leHBlY3RlZHRpbWVmb3JtYXQsIHRyaW0oc3Vic3RyKCRoLDUpKSktPmdldFRpbWVzdGFtcCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IFxUaW1lRXhjZXB0aW9uKHNwcmludGYoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aW1lIGZyb20gJXMgKEludmFsaWQgb3Igbm8gIkRhdGU6IiBoZWFkZXIgZm91bmQpJywgJHRoaXMtPnVybCkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gJGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXFRpbWVFeGNlcHRpb24oc3ByaW50ZignVW5hYmxlIHRvIHJldHJpZXZlIHRpbWUgZnJvbSAlcyAoJXMpJywgJHRoaXMtPnVybCwgJGV4LT5nZXRNZXNzYWdlKCkpKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvSVRpbWVQcm92aWRlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvSVRpbWVQcm92aWRlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNiODdhMgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9JVGltZVByb3ZpZGVyLnBocApAQCAtMCwwICsxLDggQEAKKzw/cGhwCisKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xUaW1lOworCitpbnRlcmZhY2UgSVRpbWVQcm92aWRlcgoreworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL0xvY2FsTWFjaGluZVRpbWVQcm92aWRlci5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvUHJvdmlkZXJzL1RpbWUvTG9jYWxNYWNoaW5lVGltZVByb3ZpZGVyLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzJjZWRjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL0xvY2FsTWFjaGluZVRpbWVQcm92aWRlci5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCituYW1lc3BhY2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZTsKKworY2xhc3MgTG9jYWxNYWNoaW5lVGltZVByb3ZpZGVyIGltcGxlbWVudHMgSVRpbWVQcm92aWRlciB7CisgICAgcHVibGljIGZ1bmN0aW9uIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiB0aW1lKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9OVFBUaW1lUHJvdmlkZXIucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL05UUFRpbWVQcm92aWRlci5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY5YTNhNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9OVFBUaW1lUHJvdmlkZXIucGhwCkBAIC0wLDAgKzEsNTQgQEAKKzw/cGhwCisKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xUaW1lOworCisvKioKKyAqIFRha2VzIHRoZSB0aW1lIGZyb20gYW55IE5UUCBzZXJ2ZXIKKyAqLworY2xhc3MgTlRQVGltZVByb3ZpZGVyIGltcGxlbWVudHMgSVRpbWVQcm92aWRlcgoreworICAgIHB1YmxpYyAkaG9zdDsKKyAgICBwdWJsaWMgJHBvcnQ7CisgICAgcHVibGljICR0aW1lb3V0OworCisgICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGhvc3QgPSAndGltZS5nb29nbGUuY29tJywgJHBvcnQgPSAxMjMsICR0aW1lb3V0ID0gMSkKKyAgICB7CisgICAgICAgICR0aGlzLT5ob3N0ID0gJGhvc3Q7CisKKyAgICAgICAgaWYgKCFpc19pbnQoJHBvcnQpIHx8ICRwb3J0IDw9IDAgfHwgJHBvcnQgPiA2NTUzNSkKKyAgICAgICAgICAgIHRocm93IG5ldyBcVGltZUV4Y2VwdGlvbignUG9ydCBtdXN0IGJlIDAgPCBwb3J0IDwgNjU1MzUnKTsKKyAgICAgICAgJHRoaXMtPnBvcnQgPSAkcG9ydDsKKworICAgICAgICBpZiAoIWlzX2ludCgkdGltZW91dCkgfHwgJHRpbWVvdXQgPCAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IFxUaW1lRXhjZXB0aW9uKCdUaW1lb3V0IG11c3QgYmUgPj0gMCcpOworICAgICAgICAkdGhpcy0+dGltZW91dCA9ICR0aW1lb3V0OworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLyogQ3JlYXRlIGEgc29ja2V0IGFuZCBjb25uZWN0IHRvIE5UUCBzZXJ2ZXIgKi8KKyAgICAgICAgICAgICRzb2NrID0gc29ja2V0X2NyZWF0ZShBRl9JTkVULCBTT0NLX0RHUkFNLCBTT0xfVURQKTsKKyAgICAgICAgICAgIHNvY2tldF9zZXRfb3B0aW9uKCRzb2NrLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgWydzZWMnID0+ICR0aGlzLT50aW1lb3V0LCAndXNlYycgPT4gMF0pOworICAgICAgICAgICAgc29ja2V0X2Nvbm5lY3QoJHNvY2ssICR0aGlzLT5ob3N0LCAkdGhpcy0+cG9ydCk7CisKKyAgICAgICAgICAgIC8qIFNlbmQgcmVxdWVzdCAqLworICAgICAgICAgICAgJG1zZyA9ICJcMDEwIiAuIHN0cl9yZXBlYXQoIlwwIiwgNDcpOworICAgICAgICAgICAgc29ja2V0X3NlbmQoJHNvY2ssICRtc2csIHN0cmxlbigkbXNnKSwgMCk7CisKKyAgICAgICAgICAgIC8qIFJlY2VpdmUgcmVzcG9uc2UgYW5kIGNsb3NlIHNvY2tldCAqLworICAgICAgICAgICAgaWYgKHNvY2tldF9yZWN2KCRzb2NrLCAkcmVjdiwgNDgsIE1TR19XQUlUQUxMKSA9PT0gZmFsc2UpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oc29ja2V0X3N0cmVycm9yKHNvY2tldF9sYXN0X2Vycm9yKCRzb2NrKSkpOworICAgICAgICAgICAgc29ja2V0X2Nsb3NlKCRzb2NrKTsKKworICAgICAgICAgICAgLyogSW50ZXJwcmV0IHJlc3BvbnNlICovCisgICAgICAgICAgICAkZGF0YSA9IHVucGFjaygnTjEyJywgJHJlY3YpOworICAgICAgICAgICAgJHRpbWVzdGFtcCA9IHNwcmludGYoJyV1JywgJGRhdGFbOV0pOworCisgICAgICAgICAgICAvKiBOVFAgaXMgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMDAwMCBVVCBvbiAxIEphbnVhcnkgMTkwMCBVbml4IHRpbWUgaXMgc2Vjb25kcyBzaW5jZSAwMDAwIFVUIG9uIDEgSmFudWFyeSAxOTcwICovCisgICAgICAgICAgICByZXR1cm4gJHRpbWVzdGFtcCAtIDIyMDg5ODg4MDA7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiAkZXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBcVGltZUV4Y2VwdGlvbihzcHJpbnRmKCdVbmFibGUgdG8gcmV0cmlldmUgdGltZSBmcm9tICVzICglcyknLCAkdGhpcy0+aG9zdCwgJGV4LT5nZXRNZXNzYWdlKCkpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9UaW1lRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Qcm92aWRlcnMvVGltZS9UaW1lRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGU1NDRkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1Byb3ZpZGVycy9UaW1lL1RpbWVFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsNSBAQAorPD9waHAKKwordXNlIFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbjsKKworY2xhc3MgVGltZUV4Y2VwdGlvbiBleHRlbmRzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24ge30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvVHdvRmFjdG9yQXV0aC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9saWIvVHdvRmFjdG9yQXV0aC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JjMDY3ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Ud29GYWN0b3JBdXRoLnBocApAQCAtMCwwICsxLDI1NiBAQAorPD9waHAKK25hbWVzcGFjZSBSb2JUaHJlZVxBdXRoOworCit1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcSVFSQ29kZVByb3ZpZGVyOwordXNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZ1xJUk5HUHJvdmlkZXI7Cit1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxJVGltZVByb3ZpZGVyOworCisvLyBCYXNlZCBvbiAvIGluc3BpcmVkIGJ5OiBodHRwczovL2dpdGh1Yi5jb20vUEhQR2FuZ3N0YS9Hb29nbGVBdXRoZW50aWNhdG9yCisvLyBBbGdvcml0aG1zLCBkaWdpdHMsIHBlcmlvZCBldGMuIGV4cGxhaW5lZDogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGUtYXV0aGVudGljYXRvci93aWtpL0tleS1VcmktRm9ybWF0CitjbGFzcyBUd29GYWN0b3JBdXRoCit7CisgICAgcHJpdmF0ZSAkYWxnb3JpdGhtOworICAgIHByaXZhdGUgJHBlcmlvZDsKKyAgICBwcml2YXRlICRkaWdpdHM7CisgICAgcHJpdmF0ZSAkaXNzdWVyOworICAgIHByaXZhdGUgJHFyY29kZXByb3ZpZGVyID0gbnVsbDsKKyAgICBwcml2YXRlICRybmdwcm92aWRlciA9IG51bGw7CisgICAgcHJpdmF0ZSAkdGltZXByb3ZpZGVyID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyAkX2Jhc2UzMmRpY3QgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1Njc9JzsKKyAgICBwcml2YXRlIHN0YXRpYyAkX2Jhc2UzMjsKKyAgICBwcml2YXRlIHN0YXRpYyAkX2Jhc2UzMmxvb2t1cCA9IGFycmF5KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgJF9zdXBwb3J0ZWRhbGdvcyA9IGFycmF5KCdzaGExJywgJ3NoYTI1NicsICdzaGE1MTInLCAnbWQ1Jyk7CisKKyAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkaXNzdWVyID0gbnVsbCwgJGRpZ2l0cyA9IDYsICRwZXJpb2QgPSAzMCwgJGFsZ29yaXRobSA9ICdzaGExJywgSVFSQ29kZVByb3ZpZGVyICRxcmNvZGVwcm92aWRlciA9IG51bGwsIElSTkdQcm92aWRlciAkcm5ncHJvdmlkZXIgPSBudWxsLCBJVGltZVByb3ZpZGVyICR0aW1lcHJvdmlkZXIgPSBudWxsKQorICAgIHsKKyAgICAgICAgJHRoaXMtPmlzc3VlciA9ICRpc3N1ZXI7CisgICAgICAgIGlmICghaXNfaW50KCRkaWdpdHMpIHx8ICRkaWdpdHMgPD0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdEaWdpdHMgbXVzdCBiZSBpbnQgPiAwJyk7CisgICAgICAgICR0aGlzLT5kaWdpdHMgPSAkZGlnaXRzOworCisgICAgICAgIGlmICghaXNfaW50KCRwZXJpb2QpIHx8ICRwZXJpb2QgPD0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdQZXJpb2QgbXVzdCBiZSBpbnQgPiAwJyk7CisgICAgICAgICR0aGlzLT5wZXJpb2QgPSAkcGVyaW9kOworCisgICAgICAgICRhbGdvcml0aG0gPSBzdHJ0b2xvd2VyKHRyaW0oJGFsZ29yaXRobSkpOworICAgICAgICBpZiAoIWluX2FycmF5KCRhbGdvcml0aG0sIHNlbGY6OiRfc3VwcG9ydGVkYWxnb3MpKQorICAgICAgICAgICAgdGhyb3cgbmV3IFR3b0ZhY3RvckF1dGhFeGNlcHRpb24oJ1Vuc3VwcG9ydGVkIGFsZ29yaXRobTogJyAuICRhbGdvcml0aG0pOworICAgICAgICAkdGhpcy0+YWxnb3JpdGhtID0gJGFsZ29yaXRobTsKKyAgICAgICAgJHRoaXMtPnFyY29kZXByb3ZpZGVyID0gJHFyY29kZXByb3ZpZGVyOworICAgICAgICAkdGhpcy0+cm5ncHJvdmlkZXIgPSAkcm5ncHJvdmlkZXI7CisgICAgICAgICR0aGlzLT50aW1lcHJvdmlkZXIgPSAkdGltZXByb3ZpZGVyOworCisgICAgICAgIHNlbGY6OiRfYmFzZTMyID0gc3RyX3NwbGl0KHNlbGY6OiRfYmFzZTMyZGljdCk7CisgICAgICAgIHNlbGY6OiRfYmFzZTMybG9va3VwID0gYXJyYXlfZmxpcChzZWxmOjokX2Jhc2UzMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IHNlY3JldAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVTZWNyZXQoJGJpdHMgPSA4MCwgJHJlcXVpcmVjcnlwdG9zZWN1cmUgPSB0cnVlKQorICAgIHsKKyAgICAgICAgJHNlY3JldCA9ICcnOworICAgICAgICAkYnl0ZXMgPSBjZWlsKCRiaXRzIC8gNSk7ICAgLy9XZSB1c2UgNSBiaXRzIG9mIGVhY2ggYnl0ZSAoc2luY2Ugd2UgaGF2ZSBhIDMyLWNoYXJhY3RlciAnYWxwaGFiZXQnIC8gQkFTRTMyKQorICAgICAgICAkcm5ncHJvdmlkZXIgPSAkdGhpcy0+Z2V0Um5ncHJvdmlkZXIoKTsKKyAgICAgICAgaWYgKCRyZXF1aXJlY3J5cHRvc2VjdXJlICYmICEkcm5ncHJvdmlkZXItPmlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSkKKyAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdSTkcgcHJvdmlkZXIgaXMgbm90IGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZScpOworICAgICAgICAkcm5kID0gJHJuZ3Byb3ZpZGVyLT5nZXRSYW5kb21CeXRlcygkYnl0ZXMpOworICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkYnl0ZXM7ICRpKyspCisgICAgICAgICAgICAkc2VjcmV0IC49IHNlbGY6OiRfYmFzZTMyW29yZCgkcm5kWyRpXSkgJiAzMV07ICAvL01hc2sgb3V0IGxlZnQgMyBiaXRzIGZvciAwLTMxIHZhbHVlcworICAgICAgICByZXR1cm4gJHNlY3JldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGUgdGhlIGNvZGUgd2l0aCBnaXZlbiBzZWNyZXQgYW5kIHBvaW50IGluIHRpbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29kZSgkc2VjcmV0LCAkdGltZSA9IG51bGwpCisgICAgeworICAgICAgICAkc2VjcmV0a2V5ID0gJHRoaXMtPmJhc2UzMkRlY29kZSgkc2VjcmV0KTsKKworICAgICAgICAkdGltZXN0YW1wID0gIlwwXDBcMFwwIiAuIHBhY2soJ04qJywgJHRoaXMtPmdldFRpbWVTbGljZSgkdGhpcy0+Z2V0VGltZSgkdGltZSkpKTsgIC8vIFBhY2sgdGltZSBpbnRvIGJpbmFyeSBzdHJpbmcKKyAgICAgICAgJGhhc2hobWFjID0gaGFzaF9obWFjKCR0aGlzLT5hbGdvcml0aG0sICR0aW1lc3RhbXAsICRzZWNyZXRrZXksIHRydWUpOyAgICAgICAgICAgICAvLyBIYXNoIGl0IHdpdGggdXNlcnMgc2VjcmV0IGtleQorICAgICAgICAkaGFzaHBhcnQgPSBzdWJzdHIoJGhhc2hobWFjLCBvcmQoc3Vic3RyKCRoYXNoaG1hYywgLTEpKSAmIDB4MEYsIDQpOyAgICAgICAgICAgICAgIC8vIFVzZSBsYXN0IG5pYmJsZSBvZiByZXN1bHQgYXMgaW5kZXgvb2Zmc2V0IGFuZCBncmFiIDQgYnl0ZXMgb2YgdGhlIHJlc3VsdAorICAgICAgICAkdmFsdWUgPSB1bnBhY2soJ04nLCAkaGFzaHBhcnQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVucGFjayBiaW5hcnkgdmFsdWUKKyAgICAgICAgJHZhbHVlID0gJHZhbHVlWzFdICYgMHg3RkZGRkZGRjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEcm9wIE1TQiwga2VlcCBvbmx5IDMxIGJpdHMKKworICAgICAgICByZXR1cm4gc3RyX3BhZCgkdmFsdWUgJSBwb3coMTAsICR0aGlzLT5kaWdpdHMpLCAkdGhpcy0+ZGlnaXRzLCAnMCcsIFNUUl9QQURfTEVGVCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIGNvZGUgaXMgY29ycmVjdC4gVGhpcyB3aWxsIGFjY2VwdCBjb2RlcyBzdGFydGluZyBmcm9tICgkZGlzY3JlcGFuY3kgKiAkcGVyaW9kKSBzZWMgYWdvIHRvICgkZGlzY3JlcGFuY3kgKiBwZXJpb2QpIHNlYyBmcm9tIG5vdworICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB2ZXJpZnlDb2RlKCRzZWNyZXQsICRjb2RlLCAkZGlzY3JlcGFuY3kgPSAxLCAkdGltZSA9IG51bGwsICYkdGltZXNsaWNlID0gMCkKKyAgICB7CisgICAgICAgICR0aW1ldGFtcCA9ICR0aGlzLT5nZXRUaW1lKCR0aW1lKTsKKworICAgICAgICAkdGltZXNsaWNlID0gMDsKKworICAgICAgICAvLyBUbyBrZWVwIHNhZmUgZnJvbSB0aW1pbmctYXR0YWNrcyB3ZSBpdGVyYXRlICphbGwqIHBvc3NpYmxlIGNvZGVzIGV2ZW4gdGhvdWdoIHdlIGFscmVhZHkgbWF5IGhhdmUKKyAgICAgICAgLy8gdmVyaWZpZWQgYSBjb2RlIGlzIGNvcnJlY3QuIFdlIHVzZSB0aGUgdGltZXNsaWNlIHZhcmlhYmxlIHRvIGhvbGQgZWl0aGVyIDAgKG5vIG1hdGNoKSBvciB0aGUgdGltZXNsaWNlCisgICAgICAgIC8vIG9mIHRoZSBtYXRjaC4gRWFjaCBpdGVyYXRpb24gd2UgZWl0aGVyIHNldCB0aGUgdGltZXNsaWNlIHZhcmlhYmxlIHRvIHRoZSB0aW1lc2xpY2Ugb2YgdGhlIG1hdGNoCisgICAgICAgIC8vIG9yIHNldCB0aGUgdmFsdWUgdG8gaXRzZWxmLiAgVGhpcyBpcyBhbiBlZmZvcnQgdG8gbWFpbnRhaW4gY29uc3RhbnQgZXhlY3V0aW9uIHRpbWUgZm9yIHRoZSBjb2RlLgorICAgICAgICBmb3IgKCRpID0gLSRkaXNjcmVwYW5jeTsgJGkgPD0gJGRpc2NyZXBhbmN5OyAkaSsrKSB7CisgICAgICAgICAgICAkdHMgPSAkdGltZXRhbXAgKyAoJGkgKiAkdGhpcy0+cGVyaW9kKTsKKyAgICAgICAgICAgICRzbGljZSA9ICR0aGlzLT5nZXRUaW1lU2xpY2UoJHRzKTsKKyAgICAgICAgICAgICR0aW1lc2xpY2UgPSAkdGhpcy0+Y29kZUVxdWFscygkdGhpcy0+Z2V0Q29kZSgkc2VjcmV0LCAkdHMpLCAkY29kZSkgPyAkc2xpY2UgOiAkdGltZXNsaWNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICR0aW1lc2xpY2UgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWluZy1hdHRhY2sgc2FmZSBjb21wYXJpc29uIG9mIDIgY29kZXMgKHNlZSBodHRwOi8vYmxvZy5pcmNtYXhlbGwuY29tLzIwMTQvMTEvaXRzLWFsbC1hYm91dC10aW1lLmh0bWwpCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBjb2RlRXF1YWxzKCRzYWZlLCAkdXNlcikgeworICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdoYXNoX2VxdWFscycpKSB7CisgICAgICAgICAgICByZXR1cm4gaGFzaF9lcXVhbHMoJHNhZmUsICR1c2VyKTsKKyAgICAgICAgfQorICAgICAgICAvLyBJbiBnZW5lcmFsLCBpdCdzIG5vdCBwb3NzaWJsZSB0byBwcmV2ZW50IGxlbmd0aCBsZWFrcy4gU28gaXQncyBPSyB0byBsZWFrIHRoZSBsZW5ndGguIFRoZSBpbXBvcnRhbnQgcGFydCBpcyB0aGF0CisgICAgICAgIC8vIHdlIGRvbid0IGxlYWsgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRpZmZlcmVuY2Ugb2YgdGhlIHR3byBzdHJpbmdzLgorICAgICAgICBpZiAoc3RybGVuKCRzYWZlKT09PXN0cmxlbigkdXNlcikpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAwOworICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgc3RybGVuKCRzYWZlKTsgJGkrKykKKyAgICAgICAgICAgICAgICAkcmVzdWx0IHw9IChvcmQoJHNhZmVbJGldKSBeIG9yZCgkdXNlclskaV0pKTsKKyAgICAgICAgICAgIHJldHVybiAkcmVzdWx0ID09PSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGF0YS11cmkgb2YgUVJDb2RlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFFSQ29kZUltYWdlQXNEYXRhVXJpKCRsYWJlbCwgJHNlY3JldCwgJHNpemUgPSAyMDApCisgICAgeworICAgICAgICBpZiAoIWlzX2ludCgkc2l6ZSkgfHwgJHNpemUgPD0gMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdTaXplIG11c3QgYmUgaW50ID4gMCcpOworCisgICAgICAgICRxcmNvZGVwcm92aWRlciA9ICR0aGlzLT5nZXRRckNvZGVQcm92aWRlcigpOworICAgICAgICByZXR1cm4gJ2RhdGE6JworICAgICAgICAgICAgLiAkcXJjb2RlcHJvdmlkZXItPmdldE1pbWVUeXBlKCkKKyAgICAgICAgICAgIC4gJztiYXNlNjQsJworICAgICAgICAgICAgLiBiYXNlNjRfZW5jb2RlKCRxcmNvZGVwcm92aWRlci0+Z2V0UVJDb2RlSW1hZ2UoJHRoaXMtPmdldFFSVGV4dCgkbGFiZWwsICRzZWNyZXQpLCAkc2l6ZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgZGVmYXVsdCB0aW1lcHJvdmlkZXIgd2l0aCBzcGVjaWZpZWQgdGltZXByb3ZpZGVycyBhbmQgZW5zdXJlIHRoZSB0aW1lIGlzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzZWNvbmRzIChsZW5pZW5jeSkKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZW5zdXJlQ29ycmVjdFRpbWUoYXJyYXkgJHRpbWVwcm92aWRlcnMgPSBudWxsLCAkbGVuaWVuY3kgPSA1KQorICAgIHsKKyAgICAgICAgaWYgKCR0aW1lcHJvdmlkZXJzICE9IG51bGwgJiYgIWlzX2FycmF5KCR0aW1lcHJvdmlkZXJzKSkKKyAgICAgICAgICAgIHRocm93IG5ldyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uKCdObyB0aW1lcHJvdmlkZXJzIHNwZWNpZmllZCcpOworCisgICAgICAgIGlmICgkdGltZXByb3ZpZGVycyA9PSBudWxsKQorICAgICAgICAgICAgJHRpbWVwcm92aWRlcnMgPSBhcnJheSgKKyAgICAgICAgICAgICAgICBuZXcgUHJvdmlkZXJzXFRpbWVcTlRQVGltZVByb3ZpZGVyKCksCisgICAgICAgICAgICAgICAgbmV3IFByb3ZpZGVyc1xUaW1lXEh0dHBUaW1lUHJvdmlkZXIoKQorICAgICAgICAgICAgKTsKKworICAgICAgICAvLyBHZXQgZGVmYXVsdCB0aW1lIHByb3ZpZGVyCisgICAgICAgICR0aW1lcHJvdmlkZXIgPSAkdGhpcy0+Z2V0VGltZVByb3ZpZGVyKCk7CisKKyAgICAgICAgLy8gSXRlcmF0ZSBzcGVjaWZpZWQgdGltZSBwcm92aWRlcnMKKyAgICAgICAgZm9yZWFjaCAoJHRpbWVwcm92aWRlcnMgYXMgJHQpIHsKKyAgICAgICAgICAgIGlmICghKCR0IGluc3RhbmNlb2YgSVRpbWVQcm92aWRlcikpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR3b0ZhY3RvckF1dGhFeGNlcHRpb24oJ09iamVjdCBkb2VzIG5vdCBpbXBsZW1lbnQgSVRpbWVQcm92aWRlcicpOworCisgICAgICAgICAgICAvLyBHZXQgdGltZSBmcm9tIGRlZmF1bHQgdGltZSBwcm92aWRlciBhbmQgY29tcGFyZSB0byBzcGVjaWZpYyB0aW1lIHByb3ZpZGVyIGFuZCB0aHJvdyBpZiB0aW1lIGRpZmZlcmVuY2UgaXMgbW9yZSB0aGFuIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kcyBsZW5pZW5jeQorICAgICAgICAgICAgaWYgKGFicygkdGltZXByb3ZpZGVyLT5nZXRUaW1lKCkgLSAkdC0+Z2V0VGltZSgpKSA+ICRsZW5pZW5jeSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbihzcHJpbnRmKCdUaW1lIGZvciB0aW1lcHJvdmlkZXIgaXMgb2ZmIGJ5IG1vcmUgdGhhbiAlZCBzZWNvbmRzIHdoZW4gY29tcGFyZWQgdG8gJXMnLCAkbGVuaWVuY3ksIGdldF9jbGFzcygkdCkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0VGltZSgkdGltZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoJHRpbWUgPT09IG51bGwpID8gJHRoaXMtPmdldFRpbWVQcm92aWRlcigpLT5nZXRUaW1lKCkgOiAkdGltZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFRpbWVTbGljZSgkdGltZSA9IG51bGwsICRvZmZzZXQgPSAwKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChpbnQpZmxvb3IoJHRpbWUgLyAkdGhpcy0+cGVyaW9kKSArICgkb2Zmc2V0ICogJHRoaXMtPnBlcmlvZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQnVpbGRzIGEgc3RyaW5nIHRvIGJlIGVuY29kZWQgaW4gYSBRUiBjb2RlCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFFSVGV4dCgkbGFiZWwsICRzZWNyZXQpCisgICAgeworICAgICAgICByZXR1cm4gJ290cGF1dGg6Ly90b3RwLycgLiByYXd1cmxlbmNvZGUoJGxhYmVsKQorICAgICAgICAgICAgLiAnP3NlY3JldD0nIC4gcmF3dXJsZW5jb2RlKCRzZWNyZXQpCisgICAgICAgICAgICAuICcmaXNzdWVyPScgLiByYXd1cmxlbmNvZGUoJHRoaXMtPmlzc3VlcikKKyAgICAgICAgICAgIC4gJyZwZXJpb2Q9JyAuIGludHZhbCgkdGhpcy0+cGVyaW9kKQorICAgICAgICAgICAgLiAnJmFsZ29yaXRobT0nIC4gcmF3dXJsZW5jb2RlKHN0cnRvdXBwZXIoJHRoaXMtPmFsZ29yaXRobSkpCisgICAgICAgICAgICAuICcmZGlnaXRzPScgLiBpbnR2YWwoJHRoaXMtPmRpZ2l0cyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBiYXNlMzJEZWNvZGUoJHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHN0cmxlbigkdmFsdWUpPT0wKSByZXR1cm4gJyc7CisKKyAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9bXicucHJlZ19xdW90ZShzZWxmOjokX2Jhc2UzMmRpY3QpLiddLycsICR2YWx1ZSkgIT09IDApCisgICAgICAgICAgICB0aHJvdyBuZXcgVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbignSW52YWxpZCBiYXNlMzIgc3RyaW5nJyk7CisKKyAgICAgICAgJGJ1ZmZlciA9ICcnOworICAgICAgICBmb3JlYWNoIChzdHJfc3BsaXQoJHZhbHVlKSBhcyAkY2hhcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCRjaGFyICE9PSAnPScpCisgICAgICAgICAgICAgICAgJGJ1ZmZlciAuPSBzdHJfcGFkKGRlY2JpbihzZWxmOjokX2Jhc2UzMmxvb2t1cFskY2hhcl0pLCA1LCAwLCBTVFJfUEFEX0xFRlQpOworICAgICAgICB9CisgICAgICAgICRsZW5ndGggPSBzdHJsZW4oJGJ1ZmZlcik7CisgICAgICAgICRibG9ja3MgPSB0cmltKGNodW5rX3NwbGl0KHN1YnN0cigkYnVmZmVyLCAwLCAkbGVuZ3RoIC0gKCRsZW5ndGggJSA4KSksIDgsICcgJykpOworCisgICAgICAgICRvdXRwdXQgPSAnJzsKKyAgICAgICAgZm9yZWFjaCAoZXhwbG9kZSgnICcsICRibG9ja3MpIGFzICRibG9jaykKKyAgICAgICAgICAgICRvdXRwdXQgLj0gY2hyKGJpbmRlYyhzdHJfcGFkKCRibG9jaywgOCwgMCwgU1RSX1BBRF9SSUdIVCkpKTsKKyAgICAgICAgcmV0dXJuICRvdXRwdXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBJUVJDb2RlUHJvdmlkZXIKKyAgICAgKiBAdGhyb3dzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UXJDb2RlUHJvdmlkZXIoKQorICAgIHsKKyAgICAgICAgLy8gU2V0IGRlZmF1bHQgUVIgQ29kZSBwcm92aWRlciBpZiBub25lIHdhcyBzcGVjaWZpZWQKKyAgICAgICAgaWYgKG51bGwgPT09ICR0aGlzLT5xcmNvZGVwcm92aWRlcikgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5xcmNvZGVwcm92aWRlciA9IG5ldyBQcm92aWRlcnNcUXJcUVJTZXJ2ZXJQcm92aWRlcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkdGhpcy0+cXJjb2RlcHJvdmlkZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBJUk5HUHJvdmlkZXIKKyAgICAgKiBAdGhyb3dzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Um5ncHJvdmlkZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG51bGwgIT09ICR0aGlzLT5ybmdwcm92aWRlcikgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5ybmdwcm92aWRlcjsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdyYW5kb21fYnl0ZXMnKSkgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5ybmdwcm92aWRlciA9IG5ldyBQcm92aWRlcnNcUm5nXENTUk5HUHJvdmlkZXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdtY3J5cHRfY3JlYXRlX2l2JykpIHsKKyAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cm5ncHJvdmlkZXIgPSBuZXcgUHJvdmlkZXJzXFJuZ1xNQ3J5cHRSTkdQcm92aWRlcigpOworICAgICAgICB9CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ29wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcycpKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJuZ3Byb3ZpZGVyID0gbmV3IFByb3ZpZGVyc1xSbmdcT3BlblNTTFJOR1Byb3ZpZGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnaGFzaCcpKSB7CisgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJuZ3Byb3ZpZGVyID0gbmV3IFByb3ZpZGVyc1xSbmdcSGFzaFJOR1Byb3ZpZGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IFR3b0ZhY3RvckF1dGhFeGNlcHRpb24oJ1VuYWJsZSB0byBmaW5kIGEgc3VpdGVkIFJOR1Byb3ZpZGVyJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBJVGltZVByb3ZpZGVyCisgICAgICogQHRocm93cyBUd29GYWN0b3JBdXRoRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFRpbWVQcm92aWRlcigpCisgICAgeworICAgICAgICAvLyBTZXQgZGVmYXVsdCB0aW1lIHByb3ZpZGVyIGlmIG5vbmUgd2FzIHNwZWNpZmllZAorICAgICAgICBpZiAobnVsbCA9PT0gJHRoaXMtPnRpbWVwcm92aWRlcikgeworICAgICAgICAgICAgcmV0dXJuICR0aGlzLT50aW1lcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXJzXFRpbWVcTG9jYWxNYWNoaW5lVGltZVByb3ZpZGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICR0aGlzLT50aW1lcHJvdmlkZXI7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Ud29GYWN0b3JBdXRoRXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9yb2J0aHJlZS90d29mYWN0b3JhdXRoL2xpYi9Ud29GYWN0b3JBdXRoRXhjZXB0aW9uLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjUxYjc0Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbGliL1R3b0ZhY3RvckF1dGhFeGNlcHRpb24ucGhwCkBAIC0wLDAgKzEsNyBAQAorPD9waHAKKworbmFtZXNwYWNlIFJvYlRocmVlXEF1dGg7CisKK3VzZSBFeGNlcHRpb247CisKK2NsYXNzIFR3b0ZhY3RvckF1dGhFeGNlcHRpb24gZXh0ZW5kcyBcRXhjZXB0aW9uIHt9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbG9nby5wbmcgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9sb2dvLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWFmOWIyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbG9nby5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbXVsdGlmYWN0b3JhdXRoZm9yZXZlcnlvbmUucG5nIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvbXVsdGlmYWN0b3JhdXRoZm9yZXZlcnlvbmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NmJkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9tdWx0aWZhY3RvcmF1dGhmb3JldmVyeW9uZS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvcGhwdW5pdC54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9waHB1bml0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmMzYTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvcGhwdW5pdC54bWwKQEAgLTAsMCArMSwyMCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwaHB1bml0IGJhY2t1cEdsb2JhbHM9ImZhbHNlIgorICAgICAgICAgYmFja3VwU3RhdGljQXR0cmlidXRlcz0iZmFsc2UiCisgICAgICAgICBjb2xvcnM9InRydWUiCisgICAgICAgICBjb252ZXJ0RXJyb3JzVG9FeGNlcHRpb25zPSJ0cnVlIgorICAgICAgICAgY29udmVydE5vdGljZXNUb0V4Y2VwdGlvbnM9InRydWUiCisgICAgICAgICBjb252ZXJ0V2FybmluZ3NUb0V4Y2VwdGlvbnM9InRydWUiCisgICAgICAgICBwcm9jZXNzSXNvbGF0aW9uPSJmYWxzZSIKKyAgICAgICAgIHN0b3BPbkZhaWx1cmU9ImZhbHNlIj4KKyAgPHRlc3RzdWl0ZXM+CisgICAgPHRlc3RzdWl0ZSBuYW1lPSJVbml0Ij4KKyAgICAgIDxkaXJlY3Rvcnkgc3VmZml4PSJUZXN0LnBocCI+Li90ZXN0czwvZGlyZWN0b3J5PgorICAgIDwvdGVzdHN1aXRlPgorICA8L3Rlc3RzdWl0ZXM+CisgIDxmaWx0ZXI+CisgICAgPHdoaXRlbGlzdCBwcm9jZXNzVW5jb3ZlcmVkRmlsZXNGcm9tV2hpdGVsaXN0PSJ0cnVlIj4KKyAgICAgIDxkaXJlY3Rvcnkgc3VmZml4PSIucGhwIj4uL2xpYjwvZGlyZWN0b3J5PgorICAgIDwvd2hpdGVsaXN0PgorICA8L2ZpbHRlcj4KKzwvcGhwdW5pdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC9waHB1bml0LnhtbC50bXBwaWNhIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvcGhwdW5pdC54bWwudG1wcGljYQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvcGhwdW5pdC54bWwudG1wcGljYQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvdGVzdHMvVHdvRmFjdG9yQXV0aFRlc3QucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3JvYnRocmVlL3R3b2ZhY3RvcmF1dGgvdGVzdHMvVHdvRmFjdG9yQXV0aFRlc3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZjJmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivcm9idGhyZWUvdHdvZmFjdG9yYXV0aC90ZXN0cy9Ud29GYWN0b3JBdXRoVGVzdC5waHAKQEAgLTAsMCArMSw0MDkgQEAKKzw/cGhwCityZXF1aXJlX29uY2UgJ2xpYi9Ud29GYWN0b3JBdXRoLnBocCc7CityZXF1aXJlX29uY2UgJ2xpYi9Ud29GYWN0b3JBdXRoRXhjZXB0aW9uLnBocCc7CisKK3JlcXVpcmVfb25jZSAnbGliL1Byb3ZpZGVycy9Rci9JUVJDb2RlUHJvdmlkZXIucGhwJzsKK3JlcXVpcmVfb25jZSAnbGliL1Byb3ZpZGVycy9Rci9CYXNlSFRUUFFSQ29kZVByb3ZpZGVyLnBocCc7CityZXF1aXJlX29uY2UgJ2xpYi9Qcm92aWRlcnMvUXIvSW1hZ2VDaGFydHNRUkNvZGVQcm92aWRlci5waHAnOworcmVxdWlyZV9vbmNlICdsaWIvUHJvdmlkZXJzL1FyL1FSRXhjZXB0aW9uLnBocCc7CisKK3JlcXVpcmVfb25jZSAnbGliL1Byb3ZpZGVycy9SbmcvSVJOR1Byb3ZpZGVyLnBocCc7CityZXF1aXJlX29uY2UgJ2xpYi9Qcm92aWRlcnMvUm5nL1JOR0V4Y2VwdGlvbi5waHAnOworcmVxdWlyZV9vbmNlICdsaWIvUHJvdmlkZXJzL1JuZy9DU1JOR1Byb3ZpZGVyLnBocCc7CityZXF1aXJlX29uY2UgJ2xpYi9Qcm92aWRlcnMvUm5nL01DcnlwdFJOR1Byb3ZpZGVyLnBocCc7CityZXF1aXJlX29uY2UgJ2xpYi9Qcm92aWRlcnMvUm5nL09wZW5TU0xSTkdQcm92aWRlci5waHAnOworcmVxdWlyZV9vbmNlICdsaWIvUHJvdmlkZXJzL1JuZy9IYXNoUk5HUHJvdmlkZXIucGhwJzsKK3JlcXVpcmVfb25jZSAnbGliL1Byb3ZpZGVycy9SbmcvUk5HRXhjZXB0aW9uLnBocCc7CisKK3JlcXVpcmVfb25jZSAnbGliL1Byb3ZpZGVycy9UaW1lL0lUaW1lUHJvdmlkZXIucGhwJzsKK3JlcXVpcmVfb25jZSAnbGliL1Byb3ZpZGVycy9UaW1lL0xvY2FsTWFjaGluZVRpbWVQcm92aWRlci5waHAnOworcmVxdWlyZV9vbmNlICdsaWIvUHJvdmlkZXJzL1RpbWUvSHR0cFRpbWVQcm92aWRlci5waHAnOworcmVxdWlyZV9vbmNlICdsaWIvUHJvdmlkZXJzL1RpbWUvTlRQVGltZVByb3ZpZGVyLnBocCc7CityZXF1aXJlX29uY2UgJ2xpYi9Qcm92aWRlcnMvVGltZS9UaW1lRXhjZXB0aW9uLnBocCc7CisKK3VzZSBSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGg7Cit1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUXJcSVFSQ29kZVByb3ZpZGVyOwordXNlIFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZ1xJUk5HUHJvdmlkZXI7Cit1c2UgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxJVGltZVByb3ZpZGVyOworCisKK2NsYXNzIFR3b0ZhY3RvckF1dGhUZXN0IGV4dGVuZHMgUEhQVW5pdF9GcmFtZXdvcmtfVGVzdENhc2UKK3sKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gXFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JUaHJvd3NPbkludmFsaWREaWdpdHMoKSB7CisKKyAgICAgICAgbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gXFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JUaHJvd3NPbkludmFsaWRQZXJpb2QoKSB7CisKKyAgICAgICAgbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gXFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3JUaHJvd3NPbkludmFsaWRBbGdvcml0aG0oKSB7CisKKyAgICAgICAgbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgJ3h4eCcpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0R2V0Q29kZVJldHVybnNDb3JyZWN0UmVzdWx0cygpIHsKKworICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnNTQzMTYwJywgJHRmYS0+Z2V0Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsIDE0MjY4NDcyMTYpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnNTM4NTMyJywgJHRmYS0+Z2V0Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsIDApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZXhwZWN0ZWRFeGNlcHRpb24gXFJvYlRocmVlXEF1dGhcVHdvRmFjdG9yQXV0aEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlU2VjcmV0VGhyb3dzT25JbnNlY3VyZVJOR1Byb3ZpZGVyKCkgeworICAgICAgICAkcm5nID0gbmV3IFRlc3RSTkdQcm92aWRlcigpOworCisgICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDMwLCAnc2hhMScsIG51bGwsICRybmcpOworICAgICAgICAkdGZhLT5jcmVhdGVTZWNyZXQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVNlY3JldE92ZXJyaWRlU2VjdXJlRG9lc05vdFRocm93T25JbnNlY3VyZVJORygpIHsKKyAgICAgICAgJHJuZyA9IG5ldyBUZXN0Uk5HUHJvdmlkZXIoKTsKKworICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgJ3NoYTEnLCBudWxsLCAkcm5nKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnQUJDREVGR0hJSktMTU5PUCcsICR0ZmEtPmNyZWF0ZVNlY3JldCg4MCwgZmFsc2UpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdENyZWF0ZVNlY3JldERvZXNOb3RUaHJvd09uU2VjdXJlUk5HUHJvdmlkZXIoKSB7CisgICAgICAgICRybmcgPSBuZXcgVGVzdFJOR1Byb3ZpZGVyKHRydWUpOworCisgICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDMwLCAnc2hhMScsIG51bGwsICRybmcpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdBQkNERUZHSElKS0xNTk9QJywgJHRmYS0+Y3JlYXRlU2VjcmV0KCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0Q3JlYXRlU2VjcmV0R2VuZXJhdGVzRGVzaXJlZEFtb3VudE9mRW50cm9weSgpIHsKKyAgICAgICAgJHJuZyA9IG5ldyBUZXN0Uk5HUHJvdmlkZXIodHJ1ZSk7CisKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgNiwgMzAsICdzaGExJywgbnVsbCwgJHJuZyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0EnLCAkdGZhLT5jcmVhdGVTZWNyZXQoNSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdBQicsICR0ZmEtPmNyZWF0ZVNlY3JldCg2KSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJywgJHRmYS0+Y3JlYXRlU2VjcmV0KDEyOCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2NycsICR0ZmEtPmNyZWF0ZVNlY3JldCgxNjApKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2NycsICR0ZmEtPmNyZWF0ZVNlY3JldCgzMjApKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0EnLCAkdGZhLT5jcmVhdGVTZWNyZXQoMzIxKSk7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbnN1cmVDb3JyZWN0VGltZURvZXNOb3RUaHJvd0ZvckNvcnJlY3RUaW1lKCkgeworICAgICAgICAkdHByMSA9IG5ldyBUZXN0VGltZVByb3ZpZGVyKDEyMyk7CisgICAgICAgICR0cHIyID0gbmV3IFRlc3RUaW1lUHJvdmlkZXIoMTI4KTsKKworICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgJ3NoYTEnLCBudWxsLCBudWxsLCAkdHByMSk7CisgICAgICAgICR0ZmEtPmVuc3VyZUNvcnJlY3RUaW1lKGFycmF5KCR0cHIyKSk7ICAgLy8gMTI4IC0gMTIzID0gNSA9PiB3aXRoaW4gZGVmYXVsdCBsZW5pZW5jeQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBleHBlY3RlZEV4Y2VwdGlvbiBcUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFbnN1cmVDb3JyZWN0VGltZVRocm93c09uSW5jb3JyZWN0VGltZSgpIHsKKyAgICAgICAgJHRwcjEgPSBuZXcgVGVzdFRpbWVQcm92aWRlcigxMjMpOworICAgICAgICAkdHByMiA9IG5ldyBUZXN0VGltZVByb3ZpZGVyKDEyNCk7CisKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgNiwgMzAsICdzaGExJywgbnVsbCwgbnVsbCwgJHRwcjEpOworICAgICAgICAkdGZhLT5lbnN1cmVDb3JyZWN0VGltZShhcnJheSgkdHByMiksIDApOyAgICAvLyBXZSBmb3JjZSBhIGxlbmllbmN5IG9mIDAsIDEyNC0xMjMgPSAxIHNvIHRoaXMgc2hvdWxkIHRocm93CisgICAgfQorCisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEVuc3VyZURlZmF1bHRUaW1lUHJvdmlkZXJSZXR1cm5zQ29ycmVjdFRpbWUoKSB7CisgICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDMwLCAnc2hhMScpOworICAgICAgICAkdGZhLT5lbnN1cmVDb3JyZWN0VGltZShhcnJheShuZXcgVGVzdFRpbWVQcm92aWRlcih0aW1lKCkpKSwgMSk7ICAgIC8vIFVzZSBhIGxlbmllbmN5IG9mIDEsIHNob3VsZCB0aGUgdGltZSBjaGFuZ2UgYmV0d2VlbiBib3RoIHRpbWUoKSBjYWxscworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RW5zdXJlQWxsVGltZVByb3ZpZGVyc1JldHVybkNvcnJlY3RUaW1lKCkgeworICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCwgJ3NoYTEnKTsKKyAgICAgICAgJHRmYS0+ZW5zdXJlQ29ycmVjdFRpbWUoYXJyYXkoCisgICAgICAgICAgICBuZXcgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxOVFBUaW1lUHJvdmlkZXIoKSwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlcyBwb29sLm50cC5vcmcgYnkgZGVmYXVsdAorICAgICAgICAgICAgLy9uZXcgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxOVFBUaW1lUHJvdmlkZXIoJ3RpbWUuZ29vZ2xlLmNvbScpLCAgICAgIC8vIFNvbWVob3cgdGltZS5nb29nbGUuY29tIGFuZCB0aW1lLndpbmRvd3MuY29tIG1ha2UgdHJhdmlzIHRpbWVvdXQ/PworICAgICAgICAgICAgbmV3IFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFRpbWVcSHR0cFRpbWVQcm92aWRlcigpLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZXMgZ29vZ2xlLmNvbSBieSBkZWZhdWx0CisgICAgICAgICAgICBuZXcgUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcVGltZVxIdHRwVGltZVByb3ZpZGVyKCdodHRwczovL2dpdGh1Yi5jb20nKSwKKyAgICAgICAgICAgIG5ldyBSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xUaW1lXEh0dHBUaW1lUHJvdmlkZXIoJ2h0dHBzOi8veWFob28uY29tJyksCisgICAgICAgICkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmVyaWZ5Q29kZVdvcmtzQ29ycmVjdGx5KCkgeworCisgICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDYsIDMwKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyh0cnVlICwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAxLCAxNDI2ODQ3MTkwKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSAsICR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMCwgMTQyNjg0NzE5MCArIDI5KSk7CS8vVGVzdCBkaXNjcmVwYW5jeQorICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKGZhbHNlLCAkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDAsIDE0MjY4NDcxOTAgKyAzMCkpOwkvL1Rlc3QgZGlzY3JlcGFuY3kKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhmYWxzZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAwLCAxNDI2ODQ3MTkwIC0gMSkpOwkvL1Rlc3QgZGlzY3JlcGFuY3kKKworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKHRydWUgLCAkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDEsIDE0MjY4NDcyMDUgKyAwKSk7CS8vVGVzdCBkaXNjcmVwYW5jeQorICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKHRydWUgLCAkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDEsIDE0MjY4NDcyMDUgKyAzNSkpOwkvL1Rlc3QgZGlzY3JlcGFuY3kKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyh0cnVlICwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAxLCAxNDI2ODQ3MjA1IC0gMzUpKTsJLy9UZXN0IGRpc2NyZXBhbmN5CisKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhmYWxzZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAxLCAxNDI2ODQ3MjA1ICsgNjUpKTsJLy9UZXN0IGRpc2NyZXBhbmN5CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoZmFsc2UsICR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMSwgMTQyNjg0NzIwNSAtIDY1KSk7CS8vVGVzdCBkaXNjcmVwYW5jeQorCisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSAsICR0ZmEtPnZlcmlmeUNvZGUoJ1ZNUjQ2NkFCNjJaQk9LSEUnLCAnNTQzMTYwJywgMiwgMTQyNjg0NzIwNSArIDY1KSk7CS8vVGVzdCBkaXNjcmVwYW5jeQorICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKHRydWUgLCAkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzU0MzE2MCcsIDIsIDE0MjY4NDcyMDUgLSA2NSkpOwkvL1Rlc3QgZGlzY3JlcGFuY3kKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFZlcmlmeUNvcnJlY3RUaW1lU2xpY2VJc1JldHVybmVkKCkgeworICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnLCA2LCAzMCk7CisKKyAgICAgICAgLy8gV2UgdGVzdCB3aXRoIGRpc2NyZXBhbmN5IDMgKHNvIHRvdGFsIG9mIDcgY29kZXM6IGMtMywgYy0yLCBjLTEsIGMsIGMrMSwgYysyLCBjKzMKKyAgICAgICAgLy8gRW5zdXJlIGVhY2ggY29ycmVzcG9uZGluZyB0aW1lc2xpY2UgaXMgcmV0dXJuZWQgY29ycmVjdGx5CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1MzQxMTMnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlMSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTcwLCAkdGltZXNsaWNlMSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc4MTk2NTInLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlMikpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTcxLCAkdGltZXNsaWNlMik7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc5MTU5NTQnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlMykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTcyLCAkdGltZXNsaWNlMyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc1NDMxNjAnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTczLCAkdGltZXNsaWNlNCk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICczNDg0MDEnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTc0LCAkdGltZXNsaWNlNSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICc2NDg1MjUnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNikpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTc1LCAkdGltZXNsaWNlNik7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHRmYS0+dmVyaWZ5Q29kZSgnVk1SNDY2QUI2MlpCT0tIRScsICcxNzA2NDUnLCAzLCAxNDI2ODQ3MTkwLCAkdGltZXNsaWNlNykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKDQ3NTYxNTc2LCAkdGltZXNsaWNlNyk7CisKKyAgICAgICAgLy8gSW5jb3JyZWN0IGNvZGUgc2hvdWxkIHJldHVybiBmYWxzZSBhbmQgYSAwIHRpbWVzbGljZQorICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKGZhbHNlLCAkdGZhLT52ZXJpZnlDb2RlKCdWTVI0NjZBQjYyWkJPS0hFJywgJzExMTExMScsIDMsIDE0MjY4NDcxOTAsICR0aW1lc2xpY2U4KSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoMCwgJHRpbWVzbGljZTgpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VG90cFVyaUlzQ29ycmVjdCgpIHsKKyAgICAgICAgJHFyID0gbmV3IFRlc3RRclByb3ZpZGVyKCk7CisKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jklzc3VlcicsIDYsIDMwLCAnc2hhMScsICRxcik7CisgICAgICAgICRkYXRhID0gJHRoaXMtPkRlY29kZURhdGFVcmkoJHRmYS0+Z2V0UVJDb2RlSW1hZ2VBc0RhdGFVcmkoJ1Rlc3QmTGFiZWwnLCAnVk1SNDY2QUI2MlpCT0tIRScpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygndGVzdC90ZXN0JywgJGRhdGFbJ21pbWV0eXBlJ10pOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdiYXNlNjQnLCAkZGF0YVsnZW5jb2RpbmcnXSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ290cGF1dGg6Ly90b3RwL1Rlc3QlMjZMYWJlbD9zZWNyZXQ9Vk1SNDY2QUI2MlpCT0tIRSZpc3N1ZXI9VGVzdCUyNklzc3VlciZwZXJpb2Q9MzAmYWxnb3JpdGhtPVNIQTEmZGlnaXRzPTZAMjAwJywgJGRhdGFbJ2RhdGEnXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIFxSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGhFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldFFSQ29kZUltYWdlQXNEYXRhVXJpVGhyb3dzT25JbnZhbGlkU2l6ZSgpIHsKKyAgICAgICAgJHFyID0gbmV3IFRlc3RRclByb3ZpZGVyKCk7CisKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgNiwgMzAsICdzaGExJywgJHFyKTsKKyAgICAgICAgJHRmYS0+Z2V0UVJDb2RlSW1hZ2VBc0RhdGFVcmkoJ1Rlc3QnLCAnVk1SNDY2QUI2MlpCT0tIRScsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBleHBlY3RlZEV4Y2VwdGlvbiBcUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RHZXRDb2RlVGhyb3dzT25JbnZhbGlkQmFzZTMyU3RyaW5nMSgpIHsKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jyk7CisgICAgICAgICR0ZmEtPmdldENvZGUoJ0ZPTzFCQVI4QkFaOScpOyAgICAvLzEsIDggJiA5IGFyZSBpbnZhbGlkIGNoYXJzCisgICAgfQorCisgICAgLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIFxSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGhFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEdldENvZGVUaHJvd3NPbkludmFsaWRCYXNlMzJTdHJpbmcyKCkgeworICAgICAgICAkdGZhID0gbmV3IFR3b0ZhY3RvckF1dGgoJ1Rlc3QnKTsKKyAgICAgICAgJHRmYS0+Z2V0Q29kZSgnbXp4dzY9PT0nKTsgICAgICAgIC8vTG93ZXJjYXNlCisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RLbm93bkJhc2UzMkRlY29kZVRlc3RWZWN0b3JzKCkgeworICAgICAgICAvLyBXZSB1c3VhbGx5IGRvbid0IHRlc3QgaW50ZXJuYWxzIChlLmcuIHByaXZhdGVzKSBidXQgc2luY2Ugd2UgcmVseSBoZWF2aWx5IG9uIGJhc2UzMiBkZWNvZGluZyBhbmQgZG9uJ3Qgd2FudAorICAgICAgICAvLyB0byBleHBvc2UgdGhpcyBtZXRob2Qgbm9yIGRvIHdlIHdhbnQgdG8gZ2l2ZSBwZW9wbGUgdGhlIHBvc3NpYmlsaXR5IG9mIGltcGxlbWVudGluZyAvIHByb3ZpZGluZyB0aGVpciBvd24gYmFzZTMyCisgICAgICAgIC8vIGRlY29kaW5nL2RlY29kZXIgKGFzIHdlIGRvIHdpdGggUm5nL1FSIHByb3ZpZGVycyBmb3IgZXhhbXBsZSkgd2Ugc2ltcGx5IHRlc3QgdGhlIHByaXZhdGUgYmFzZTMyRGVjb2RlKCkgbWV0aG9kCisgICAgICAgIC8vIHdpdGggc29tZSBrbm93biB0ZXN0dmVjdG9ycyAqKm9ubHkqKiB0byBlbnN1cmUgYmFzZTMyIGRlY29kaW5nIHdvcmtzIGNvcnJlY3RseSBmb2xsb3dpbmcgUkZDJ3Mgc28gdGhlcmUgd29uJ3QKKyAgICAgICAgLy8gYmUgYW55IGJ1Z3MgaGlkaW5nIGluIHRoZXJlLiBXZSAqKmNvdWxkKiogJ2Zvb2wnIG91cnNlbHZlcyBieSBjYWxsaW5nIHRoZSBwdWJsaWMgZ2V0Q29kZSgpIG1ldGhvZCAod2hpY2ggdXNlcworICAgICAgICAvLyBiYXNlMzJkZWNvZGUgaW50ZXJuYWxseSkgYW5kIHRoZW4gbWFrZSBzdXJlIGdldENvZGUncyBvdXRwdXQgKGluIGRpZ2l0cykgZXF1YWxzIGV4cGVjdGVkIG91dHB1dCBzaW5jZSB0aGF0IHdvdWxkCisgICAgICAgIC8vIG1lYW4gdGhlIGJhc2UzMkRlY29kZSgpIHdvcmtzIGFzIGV4cGVjdGVkIGJ1dCB0aGF0ICoqY291bGQqKiBoaWRlIHNvbWUgc3VidGxlIGJ1ZyhzKSBpbiBkZWNvZGluZyB0aGUgYmFzZTMyIHN0cmluZy4KKworICAgICAgICAvLyAiSW4gZ2VuZXJhbCwgeW91IGRvbid0IHdhbnQgdG8gYnJlYWsgYW55IGVuY2Fwc3VsYXRpb24gZm9yIHRoZSBzYWtlIG9mIHRlc3RpbmcgKG9yIGFzIE1vbSB1c2VkIHRvIHNheSwgImRvbid0CisgICAgICAgIC8vIGV4cG9zZSB5b3VyIHByaXZhdGVzISIpLiBNb3N0IG9mIHRoZSB0aW1lLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gdGVzdCBhIGNsYXNzIGJ5IGV4ZXJjaXNpbmcgaXRzIHB1YmxpYyBtZXRob2RzLiIKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdmUgVGhvbWFzIGFuZCBBbmR5IEh1bnQgLS0gIlByYWdtYXRpYyBVbml0IFRlc3RpbmcKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jyk7CisKKyAgICAgICAgJG1ldGhvZCA9IG5ldyBSZWZsZWN0aW9uTWV0aG9kKCdSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGgnLCAnYmFzZTMyRGVjb2RlJyk7CisgICAgICAgICRtZXRob2QtPnNldEFjY2Vzc2libGUodHJ1ZSk7CisKKyAgICAgICAgLy8gVGVzdCB2ZWN0b3JzIGZyb206IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM0NjQ4I3BhZ2UtMTIKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICcnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2YnLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01ZPT09PT09JykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdmbycsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYUT09PT0nKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2ZvbycsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYVzY9PT0nKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2Zvb2InLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01aWFc2WVE9JykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdmb29iYScsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYVzZZVEInKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2Zvb2JhcicsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYVzZZVEJPST09PT09PScpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEtub3duQmFzZTMyRGVjb2RlVW5wYWRkZWRUZXN0VmVjdG9ycygpIHsKKyAgICAgICAgLy8gU2VlIHRlc3RLbm93bkJhc2UzMkRlY29kZVRlc3RWZWN0b3JzKCkgZm9yIHRoZSByYXRpb25hbGUgYmVoaW5kIHRlc3RpbmcgdGhlIHByaXZhdGUgYmFzZTMyRGVjb2RlKCkgbWV0aG9kLgorICAgICAgICAvLyBUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHN0cmluZ3Mgd2l0aG91dCB0aGUgcGFkZGluZy1jaGFyICgnPScpIGFyZSBhbHNvIGRlY29kZWQgY29ycmVjdGx5LgorICAgICAgICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNwYWdlLTQ6CisgICAgICAgIC8vICAgIkluIHNvbWUgY2lyY3Vtc3RhbmNlcywgdGhlIHVzZSBvZiBwYWRkaW5nICgiPSIpIGluIGJhc2UtZW5jb2RlZCBkYXRhIGlzIG5vdCByZXF1aXJlZCBvciB1c2VkLiIKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0Jyk7CisKKyAgICAgICAgJG1ldGhvZCA9IG5ldyBSZWZsZWN0aW9uTWV0aG9kKCdSb2JUaHJlZVxBdXRoXFR3b0ZhY3RvckF1dGgnLCAnYmFzZTMyRGVjb2RlJyk7CisgICAgICAgICRtZXRob2QtPnNldEFjY2Vzc2libGUodHJ1ZSk7CisKKyAgICAgICAgLy8gVGVzdCB2ZWN0b3JzIGZyb206IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM0NjQ4I3BhZ2UtMTIKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICcnKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2YnLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01ZJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdmbycsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYUScpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnZm9vJywgJG1ldGhvZC0+aW52b2tlKCR0ZmEsICdNWlhXNicpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnZm9vYicsICRtZXRob2QtPmludm9rZSgkdGZhLCAnTVpYVzZZUScpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnZm9vYmEnLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01aWFc2WVRCJykpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdmb29iYXInLCAkbWV0aG9kLT5pbnZva2UoJHRmYSwgJ01aWFc2WVRCT0knKSk7CisgICAgfQorCisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEtub3duVGVzdFZlY3RvcnNfc2hhMSgpIHsKKyAgICAgICAgLy9Lbm93biB0ZXN0IHZlY3RvcnMgZm9yIFNIQTE6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjM4I3BhZ2UtMTUKKyAgICAgICAgJHNlY3JldCA9ICdHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUSc7ICAgLy89PSBiYXNlMzJlbmNvZGUoJzEyMzQ1Njc4OTAxMjM0NTY3ODkwJykKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgOCwgMzAsICdzaGExJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzk0Mjg3MDgyJywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCA1OSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCcwNzA4MTgwNCcsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMTExMTExMTEwOSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCcxNDA1MDQ3MScsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMTExMTExMTExMSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCc4OTAwNTkyNCcsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMTIzNDU2Nzg5MCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCc2OTI3OTAzNycsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMjAwMDAwMDAwMCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCc2NTM1MzEzMCcsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMjAwMDAwMDAwMDApKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdEtub3duVGVzdFZlY3RvcnNfc2hhMjU2KCkgeworICAgICAgICAvL0tub3duIHRlc3QgdmVjdG9ycyBmb3IgU0hBMjU2OiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjIzOCNwYWdlLTE1CisgICAgICAgICRzZWNyZXQgPSAnR0VaREdOQlZHWTNUUU9KUUdFWkRHTkJWR1kzVFFPSlFHRVpER05CVkdZM1RRT0pRR0VaQSc7ICAgLy89PSBiYXNlMzJlbmNvZGUoJzEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyJykKKyAgICAgICAgJHRmYSA9IG5ldyBUd29GYWN0b3JBdXRoKCdUZXN0JywgOCwgMzAsICdzaGEyNTYnKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnNDYxMTkyNDYnLCAkdGZhLT5nZXRDb2RlKCRzZWNyZXQsIDU5KSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzY4MDg0Nzc0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMTExMTExMTA5KSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzY3MDYyNjc0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMTExMTExMTExKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzkxODE5NDI0JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAxMjM0NTY3ODkwKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzkwNjk4ODI1JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAyMDAwMDAwMDAwKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzc3NzM3NzA2JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCAyMDAwMDAwMDAwMCkpOworICAgIH0KKworICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0S25vd25UZXN0VmVjdG9yc19zaGE1MTIoKSB7CisgICAgICAgIC8vS25vd24gdGVzdCB2ZWN0b3JzIGZvciBTSEE1MTI6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjM4I3BhZ2UtMTUKKyAgICAgICAgJHNlY3JldCA9ICdHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUUdFWkRHTkJWR1kzVFFPSlFHRVpER05CVkdZM1RRT0pRR0VaREdOQlZHWTNUUU9KUUdFWkRHTkJWR1kzVFFPSlFHRVpER05BJzsgICAvLz09IGJhc2UzMmVuY29kZSgnMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNCcpCisgICAgICAgICR0ZmEgPSBuZXcgVHdvRmFjdG9yQXV0aCgnVGVzdCcsIDgsIDMwLCAnc2hhNTEyJyk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJzkwNjkzOTM2JywgJHRmYS0+Z2V0Q29kZSgkc2VjcmV0LCA1OSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCcyNTA5MTIwMScsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMTExMTExMTEwOSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCc5OTk0MzMyNicsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMTExMTExMTExMSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCc5MzQ0MTExNicsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMTIzNDU2Nzg5MCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCczODYxODkwMScsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMjAwMDAwMDAwMCkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCc0Nzg2MzgyNicsICR0ZmEtPmdldENvZGUoJHNlY3JldCwgMjAwMDAwMDAwMDApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmVxdWlyZXMgZnVuY3Rpb24gcmFuZG9tX2J5dGVzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDU1JOR1Byb3ZpZGVyc1JldHVybkV4cGVjdGVkTnVtYmVyT2ZCeXRlcygpIHsKKyAgICAgICAgJHJuZyA9IG5ldyBcUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUm5nXENTUk5HUHJvdmlkZXIoKTsKKyAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmdldFJuZ1Rlc3RMZW5ndGhzKCkgYXMgJGwpCisgICAgICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRsLCBzdHJsZW4oJHJuZy0+Z2V0UmFuZG9tQnl0ZXMoJGwpKSk7CisgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHModHJ1ZSwgJHJuZy0+aXNDcnlwdG9ncmFwaGljYWxseVNlY3VyZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmVxdWlyZXMgZnVuY3Rpb24gaGFzaF9hbGdvcworICAgICAqIEByZXF1aXJlcyBmdW5jdGlvbiBoYXNoCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RIYXNoUk5HUHJvdmlkZXJzUmV0dXJuRXhwZWN0ZWROdW1iZXJPZkJ5dGVzKCkgeworICAgICAgICAkcm5nID0gbmV3IFxSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcSGFzaFJOR1Byb3ZpZGVyKCk7CisgICAgICAgIGZvcmVhY2ggKCR0aGlzLT5nZXRSbmdUZXN0TGVuZ3RocygpIGFzICRsKQorICAgICAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygkbCwgc3RybGVuKCRybmctPmdldFJhbmRvbUJ5dGVzKCRsKSkpOworICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKGZhbHNlLCAkcm5nLT5pc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXF1aXJlcyBmdW5jdGlvbiBtY3J5cHRfY3JlYXRlX2l2CisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RNQ3J5cHRSTkdQcm92aWRlcnNSZXR1cm5FeHBlY3RlZE51bWJlck9mQnl0ZXMoKSB7CisgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ21jcnlwdF9jcmVhdGVfaXYnKSkgeworICAgICAgICAgICAgJHJuZyA9IG5ldyBcUm9iVGhyZWVcQXV0aFxQcm92aWRlcnNcUm5nXE1DcnlwdFJOR1Byb3ZpZGVyKCk7CisgICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+Z2V0Um5nVGVzdExlbmd0aHMoKSBhcyAkbCkKKyAgICAgICAgICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCRsLCBzdHJsZW4oJHJuZy0+Z2V0UmFuZG9tQnl0ZXMoJGwpKSk7CisgICAgICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKHRydWUsICRybmctPmlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmVxdWlyZXMgZnVuY3Rpb24gb3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIHRlc3RTdHJvbmdPcGVuU1NMUk5HUHJvdmlkZXJzUmV0dXJuRXhwZWN0ZWROdW1iZXJPZkJ5dGVzKCkgeworICAgICAgICAkcm5nID0gbmV3IFxSb2JUaHJlZVxBdXRoXFByb3ZpZGVyc1xSbmdcT3BlblNTTFJOR1Byb3ZpZGVyKHRydWUpOworICAgICAgICBmb3JlYWNoICgkdGhpcy0+Z2V0Um5nVGVzdExlbmd0aHMoKSBhcyAkbCkKKyAgICAgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGwsIHN0cmxlbigkcm5nLT5nZXRSYW5kb21CeXRlcygkbCkpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyh0cnVlLCAkcm5nLT5pc0NyeXB0b2dyYXBoaWNhbGx5U2VjdXJlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXF1aXJlcyBmdW5jdGlvbiBvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdE5vblN0cm9uZ09wZW5TU0xSTkdQcm92aWRlcnNSZXR1cm5FeHBlY3RlZE51bWJlck9mQnl0ZXMoKSB7CisgICAgICAgICRybmcgPSBuZXcgXFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFJuZ1xPcGVuU1NMUk5HUHJvdmlkZXIoZmFsc2UpOworICAgICAgICBmb3JlYWNoICgkdGhpcy0+Z2V0Um5nVGVzdExlbmd0aHMoKSBhcyAkbCkKKyAgICAgICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJGwsIHN0cmxlbigkcm5nLT5nZXRSYW5kb21CeXRlcygkbCkpKTsKKyAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhmYWxzZSwgJHJuZy0+aXNDcnlwdG9ncmFwaGljYWxseVNlY3VyZSgpKTsKKyAgICB9CisKKworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0Um5nVGVzdExlbmd0aHMoKSB7CisgICAgICAgIHJldHVybiBhcnJheSgxLCAxNiwgMzIsIDI1Nik7CisgICAgfQorCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBEZWNvZGVEYXRhVXJpKCRkYXRhdXJpKSB7CisgICAgICAgIGlmIChwcmVnX21hdGNoKCcvZGF0YTooP1A8bWltZXR5cGU+W1x3XC5cLVwvXSspOyg/UDxlbmNvZGluZz5cdyspLCg/UDxkYXRhPi4qKS8nLCAkZGF0YXVyaSwgJG0pID09PSAxKSB7CisgICAgICAgICAgICByZXR1cm4gYXJyYXkoCisgICAgICAgICAgICAgICAgJ21pbWV0eXBlJyA9PiAkbVsnbWltZXR5cGUnXSwKKyAgICAgICAgICAgICAgICAnZW5jb2RpbmcnID0+ICRtWydlbmNvZGluZyddLAorICAgICAgICAgICAgICAgICdkYXRhJyA9PiBiYXNlNjRfZGVjb2RlKCRtWydkYXRhJ10pCisgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KKworY2xhc3MgVGVzdFJOR1Byb3ZpZGVyIGltcGxlbWVudHMgSVJOR1Byb3ZpZGVyIHsKKyAgICBwcml2YXRlICRpc1NlY3VyZTsKKworICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRpc1NlY3VyZSA9IGZhbHNlKSB7CisgICAgICAgICR0aGlzLT5pc1NlY3VyZSA9ICRpc1NlY3VyZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmFuZG9tQnl0ZXMoJGJ5dGVjb3VudCkgeworICAgICAgICAkcmVzdWx0ID0gJyc7CisgICAgICAgIGZvciAoJGk9MDsgJGk8JGJ5dGVjb3VudDsgJGkrKykKKyAgICAgICAgICAgICRyZXN1bHQuPWNocigkaSk7CisgICAgICAgIHJldHVybiAkcmVzdWx0OworCisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGlzQ3J5cHRvZ3JhcGhpY2FsbHlTZWN1cmUoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+aXNTZWN1cmU7CisgICAgfQorfQorCitjbGFzcyBUZXN0UXJQcm92aWRlciBpbXBsZW1lbnRzIElRUkNvZGVQcm92aWRlciB7CisgICAgcHVibGljIGZ1bmN0aW9uIGdldFFSQ29kZUltYWdlKCRxcnRleHQsICRzaXplKSB7CisgICAgICAgIHJldHVybiAkcXJ0ZXh0IC4gJ0AnIC4gJHNpemU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldE1pbWVUeXBlKCkgeworICAgICAgICByZXR1cm4gJ3Rlc3QvdGVzdCc7CisgICAgfQorfQorCitjbGFzcyBUZXN0VGltZVByb3ZpZGVyIGltcGxlbWVudHMgSVRpbWVQcm92aWRlciB7CisgICAgcHJpdmF0ZSAkdGltZTsKKworICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCR0aW1lKSB7CisgICAgICAgICR0aGlzLT50aW1lID0gJHRpbWU7CisgICAgfQorCisgICAgcHVibGljIGZ1bmN0aW9uIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiAkdGhpcy0+dGltZTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC8uZWRpdG9yY29uZmlnIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC8uZWRpdG9yY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZGZlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0Ly5lZGl0b3Jjb25maWcKQEAgLTAsMCArMSwxOSBAQAorIyBFZGl0b3JDb25maWcgaXMgYXdlc29tZTogaHR0cDovL0VkaXRvckNvbmZpZy5vcmcKKworIyB0b3AtbW9zdCBFZGl0b3JDb25maWcgZmlsZQorcm9vdCA9IHRydWUKKworIyBVbml4LXN0eWxlIG5ld2xpbmVzIHdpdGggYSBuZXdsaW5lIGVuZGluZyBldmVyeSBmaWxlCitbKl0KK2VuZF9vZl9saW5lID0gbGYKK2NoYXJzZXQgPSB1dGYtOAoraW5zZXJ0X2ZpbmFsX25ld2xpbmUgPSB0cnVlCit0cmltX3RyYWlsaW5nX3doaXRlc3BhY2UgPSB0cnVlCitpbmRlbnRfc3R5bGUgPSB0YWIKK2luZGVudF9zaXplID0gNAorCitbc3BlYy9leGFtcGxlcy8qXQoraW5kZW50X3N0eWxlID0gdGFicwordHJpbV90cmFpbGluZ193aGl0ZXNwYWNlID0gZmFsc2UKK2luc2VydF9maW5hbF9uZXdsaW5lID0gZmFsc2UKKwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC8uZ2l0aWdub3JlIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiYzVhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0Ly5naXRpZ25vcmUKQEAgLTAsMCArMSw0IEBACit0ZXN0cy8qLm91dHB1dAorKi5zdWJsaW1lLXByb2plY3QKKyouc3VibGltZS13b3Jrc3BhY2UKK3ZlbmRvci8KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvLnRyYXZpcy55bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0Ly50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhN2U4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0Ly50cmF2aXMueW1sCkBAIC0wLDAgKzEsMTAgQEAKK2xhbmd1YWdlOiBwaHAKK3BocDoKKyAgLSA1LjUKK2dyb3VwOiBzdGFibGUKK2JlZm9yZV9pbnN0YWxsOgorICAtIGNvbXBvc2VyIHNlbGYtdXBkYXRlCitpbnN0YWxsOgorICAtIGNvbXBvc2VyIGluc3RhbGwKK3NjcmlwdDoKKyAgLSAuL3ZlbmRvci9iaW4vcGhwdW5pdApkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9MSUNFTlNFLm1kIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9MSUNFTlNFLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MzViZWUKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L0xJQ0VOU0UubWQKQEAgLTAsMCArMSwyMDMgQEAKK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMAorCitUSEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRSBQVUJMSUMKK0xJQ0VOU0UgKCJBR1JFRU1FTlQiKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTQorQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKworMS4gREVGSU5JVElPTlMKKworIkNvbnRyaWJ1dGlvbiIgbWVhbnM6CisKK2EpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCitiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgaSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kCisgICBpaSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOworCisgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbSBhbmQgYXJlCisgICBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJworICAgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yCisgICBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdAorICAgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZgorICAgc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24KKyAgIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKSBhcmUgbm90IGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFByb2dyYW0uCisKKyJDb250cmlidXRvciIgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS4KKworIkxpY2Vuc2VkIFBhdGVudHMiIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlCituZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbgorY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKworIlByb2dyYW0iIG1lYW5zIHRoZSBDb250cmlidXRpb25zIGRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCitBZ3JlZW1lbnQuCisKKyJSZWNpcGllbnQiIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQsCitpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy4KKworMi4gR1JBTlQgT0YgUklHSFRTCisgIGEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMKKyAgICAgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG8KKyAgICAgcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5CisgICAgIHBlcmZvcm0sIGRpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluIHNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLgorICBiKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCisgICAgIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudCBsaWNlbnNlIHVuZGVyCisgICAgIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLCBpbXBvcnQgYW5kIG90aGVyd2lzZQorICAgICB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlIGNvZGUgYW5kCisgICAgIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mCisgICAgIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLCBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzCisgICAgIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoCisgICAgIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZQorICAgICBzaGFsbCBub3QgYXBwbHkgdG8gYW55IG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uCisgICAgIE5vIGhhcmR3YXJlIHBlciBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgIGMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZSBsaWNlbnNlcworICAgICB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZSBwcm92aWRlZCBieSBhbnkKKyAgICAgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyCisgICAgIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaCBDb250cmlidXRvcgorICAgICBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcyBicm91Z2h0IGJ5IGFueSBvdGhlcgorICAgICBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb3IKKyAgICAgb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kIGxpY2Vuc2VzIGdyYW50ZWQKKyAgICAgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZQorICAgICBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEKKyAgICAgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKKyAgICAgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlCisgICAgIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgIGQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisKKzMuIFJFUVVJUkVNRU5UUworCitBIENvbnRyaWJ1dG9yIG1heSBjaG9vc2UgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyCitpdHMgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBwcm92aWRlZCB0aGF0OgorCisgIGEpIGl0IGNvbXBsaWVzIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50OyBhbmQKKyAgYikgaXRzIGxpY2Vuc2UgYWdyZWVtZW50OgorICAgICAgaSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzCisgICAgICAgICBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IKKyAgICAgICAgIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IKKyAgICAgICAgIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgaWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCBsaWFiaWxpdHkgZm9yCisgICAgICAgICBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCBhbmQKKyAgICAgICAgIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisgICAgaWlpKSBzdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUKKyAgICAgICAgIG9mZmVyZWQgYnkgdGhhdCBDb250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kCisgICAgIGl2KSBzdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaAorICAgICAgICAgQ29udHJpYnV0b3IsIGFuZCBpbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZQorICAgICAgICAgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuCisKK1doZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlIGNvZGUgZm9ybToKKworICBhKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQKKyAgYikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uCisgICAgIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkCisgICAgIHdpdGhpbiB0aGUgUHJvZ3JhbS4KKworRWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUgb3JpZ2luYXRvciBvZiBpdHMgQ29udHJpYnV0aW9uLAoraWYKK2FueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cyBzdWJzZXF1ZW50IFJlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlCitvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uCisKKzQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OCisKK0NvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIHdpdGgKK3Jlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMgbGljZW5zZSBpcworaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZSBDb250cmlidXRvciB3aG8KK2luY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZCBkbyBzbyBpbiBhIG1hbm5lcgord2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLAoraWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaAorQ29udHJpYnV0b3IgKCJDb21tZXJjaWFsIENvbnRyaWJ1dG9yIikgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeQorZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IgKCJJbmRlbW5pZmllZCBDb250cmlidXRvciIpIGFnYWluc3QgYW55IGxvc3NlcywKK2RhbWFnZXMgYW5kIGNvc3RzIChjb2xsZWN0aXZlbHkgIkxvc3NlcyIpIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZAorb3RoZXIgbGVnYWwgYWN0aW9ucyBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQKK0NvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwKK0NvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24gd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAorcHJvZHVjdCBvZmZlcmluZy4gVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcworb3IgTG9zc2VzIHJlbGF0aW5nIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkKK2luZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8gcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDoKK2EpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZAorYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZQorQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQKK25lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdAoraXRzIG93biBleHBlbnNlLgorCitGb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0CitvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZgordGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UgY2xhaW1zLCBvciBvZmZlcnMKK3dhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcyBhcmUKK3N1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZQorQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIKK0NvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEKK2NvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZQorQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorCis1LiBOTyBXQVJSQU5UWQorCitFWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4KKyJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUgorSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwKK05PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaAorUmVjaXBpZW50IGlzIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZworYW5kIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKK3Jpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvCitvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZgorb3BlcmF0aW9ucy4KKworNi4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkKKworRVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkKK0NPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04KK0xPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKK0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFCitFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCitPRiBTVUNIIERBTUFHRVMuCisKKzcuIEdFTkVSQUwKKworSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKK2FwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKK3JlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorCitJZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCitjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKK2luZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCit1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworQWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KK2NvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcworbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZgorc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwKK1JlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcworcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKK2FuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUKK2FuZCBzdXJ2aXZlLgorCitFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGJ1dCBpbgorb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkgb25seSBiZQorbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcyB0aGUgcmlnaHQgdG8KK3B1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8KK3RpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzCitBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50IFN0ZXdhcmQuIFRoZQorRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQKK1N0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB3aWxsCitiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbSAoaW5jbHVkaW5nCitDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlCitBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZiB0aGUKK0FncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCisoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkKK3N0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yCitsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwKK3doZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZQorUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLgorCitUaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgTmV3IFlvcmsgYW5kIHRoZQoraW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYS4gTm8gcGFydHkgdG8gdGhpcworQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcyBBZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyCithZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcyBpdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbgorYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9SRUFETUUubWQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTExOTkyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9SRUFETUUubWQKQEAgLTAsMCArMSw3NSBAQAoraHRtbDJ0ZXh0IFshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly90cmF2aXMtY2kub3JnL3NvdW5kYXNsZWVwL2h0bWwydGV4dC5zdmc/YnJhbmNoPW1hc3RlcildKGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9zb3VuZGFzbGVlcC9odG1sMnRleHQpIFshW1RvdGFsIERvd25sb2Fkc10oaHR0cHM6Ly9wb3Nlci5wdWd4Lm9yZy9zb3VuZGFzbGVlcC9odG1sMnRleHQvZG93bmxvYWRzLnBuZyldKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9zb3VuZGFzbGVlcC9odG1sMnRleHQpCis9PT09PT09PT0KKworaHRtbDJ0ZXh0IGlzIGEgdmVyeSBzaW1wbGUgc2NyaXB0IHRoYXQgdXNlcyBQSFAncyBET00gbWV0aG9kcyB0byBsb2FkIGZyb20gSFRNTCwgYW5kIHRoZW4gaXRlcmF0ZXMgb3ZlciB0aGUgcmVzdWx0aW5nIERPTSB0byBjb3JyZWN0bHkgb3V0cHV0IHBsYWluIHRleHQuIEZvciBleGFtcGxlOgorCitgYGBodG1sCis8aHRtbD4KKzx0aXRsZT5JZ25vcmVkIFRpdGxlPC90aXRsZT4KKzxib2R5PgorICA8aDE+SGVsbG8sIFdvcmxkITwvaDE+CisKKyAgPHA+VGhpcyBpcyBzb21lIGUtbWFpbCBjb250ZW50LgorICBFdmVuIHRob3VnaCBpdCBoYXMgd2hpdGVzcGFjZSBhbmQgbmV3bGluZXMsIHRoZSBlLW1haWwgY29udmVydGVyCisgIHdpbGwgaGFuZGxlIGl0IGNvcnJlY3RseS4KKworICA8cD5FdmVuIG1pc21hdGNoZWQgdGFncy48L3A+CisKKyAgPGRpdj5BIGRpdjwvZGl2PgorICA8ZGl2PkFub3RoZXIgZGl2PC9kaXY+CisgIDxkaXY+QSBkaXY8ZGl2PndpdGhpbiBhIGRpdjwvZGl2PjwvZGl2PgorCisgIDxhIGhyZWY9Imh0dHA6Ly9mb28uY29tIj5BIGxpbms8L2E+CisKKzwvYm9keT4KKzwvaHRtbD4KK2BgYAorCitXaWxsIGJlIGNvbnZlcnRlZCBpbnRvOgorCitgYGB0ZXh0CitIZWxsbywgV29ybGQhCisKK1RoaXMgaXMgc29tZSBlLW1haWwgY29udGVudC4gRXZlbiB0aG91Z2ggaXQgaGFzIHdoaXRlc3BhY2UgYW5kIG5ld2xpbmVzLCB0aGUgZS1tYWlsIGNvbnZlcnRlciB3aWxsIGhhbmRsZSBpdCBjb3JyZWN0bHkuCisKK0V2ZW4gbWlzbWF0Y2hlZCB0YWdzLgorQSBkaXYKK0Fub3RoZXIgZGl2CitBIGRpdgord2l0aGluIGEgZGl2CitbQSBsaW5rXShodHRwOi8vZm9vLmNvbSkKK2BgYAorCitTZWUgdGhlIFtvcmlnaW5hbCBibG9nIHBvc3RdKGh0dHA6Ly9qb3VybmFscy5qZXZvbi5vcmcvdXNlcnMvamV2b24tcGhkL2VudHJ5LzE5ODE4KSBvciB0aGUgcmVsYXRlZCBbU3RhY2tPdmVyZmxvdyBhbnN3ZXJdKGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI1NjQ0NzIvMzk1MzEpLgorCisjIyBJbnN0YWxsaW5nCisKK1lvdSBjYW4gdXNlIFtDb21wb3Nlcl0oaHR0cDovL2dldGNvbXBvc2VyLm9yZy8pIHRvIGFkZCB0aGUgW3BhY2thZ2VdKGh0dHBzOi8vcGFja2FnaXN0Lm9yZy9wYWNrYWdlcy9zb3VuZGFzbGVlcC9odG1sMnRleHQpIHRvIHlvdXIgcHJvamVjdDoKKworYGBganNvbgoreworICAicmVxdWlyZSI6IHsKKyAgICAic291bmRhc2xlZXAvaHRtbDJ0ZXh0IjogIn4wLjUiCisgIH0KK30KK2BgYAorCitBbmQgdGhlbiB1c2UgaXQgcXVpdGUgc2ltcGx5OgorCitgYGBwaHAKKyR0ZXh0ID0gSHRtbDJUZXh0XEh0bWwyVGV4dDo6Y29udmVydCgkaHRtbCk7CitgYGAKKworWW91IGNhbiBhbHNvIGluY2x1ZGUgdGhlIHN1cHBsaWVkIGBodG1sMnRleHQucGhwYCBhbmQgdXNlIGAkdGV4dCA9IGNvbnZlcnRfaHRtbF90b190ZXh0KCRodG1sKTtgIGluc3RlYWQuCisKKyMjIFRlc3RzCisKK1NvbWUgdmVyeSBiYXNpYyB0ZXN0cyBhcmUgcHJvdmlkZWQgaW4gdGhlIGB0ZXN0cy9gIGRpcmVjdG9yeS4gUnVuIHRoZW0gd2l0aCBgY29tcG9zZXIgaW5zdGFsbCAtLWRldiAmJiB2ZW5kb3IvYmluL3BocHVuaXRgLgorCisjIyBMaWNlbnNlCisKK2BodG1sMnRleHRgIGlzIGR1YWwgbGljZW5zZWQgdW5kZXIgYm90aCBbRVBMIHYxLjBdKGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCkgYW5kIFtMR1BMIHYzLjBdKGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLmh0bWwpLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGJvdGggRWNsaXBzZSBhbmQgR1BMIHByb2plY3RzLgorCisjIyBPdGhlciB2ZXJzaW9ucworCitBbHNvIHNlZSBbaHRtbDJ0ZXh0X3J1YnldKGh0dHBzOi8vZ2l0aHViLmNvbS9zb3VuZGFzbGVlcC9odG1sMnRleHRfcnVieSksIGEgUnVieSBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvY29tcG9zZXIuanNvbiBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvY29tcG9zZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDU4MTc2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9jb21wb3Nlci5qc29uCkBAIC0wLDAgKzEsMzIgQEAKK3sKKyAgIm5hbWUiOiAic291bmRhc2xlZXAvaHRtbDJ0ZXh0IiwKKyAgImRlc2NyaXB0aW9uIjogIkEgUEhQIHNjcmlwdCB0byBjb252ZXJ0IEhUTUwgaW50byBhIHBsYWluIHRleHQgZm9ybWF0IiwKKyAgInR5cGUiOiAibGlicmFyeSIsCisgICJrZXl3b3JkcyI6IFsgInBocCIsICJodG1sIiwgInRleHQiLCAiZW1haWwiIF0sCisgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0IiwKKyAgImxpY2Vuc2UiOiAiRVBMLTEuMCIsCisgICJhdXRob3JzIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkpldm9uIFdyaWdodCIsCisgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9qZXZvbi5vcmciLAorICAgICAgInJvbGUiOiAiRGV2ZWxvcGVyIgorICAgIH0KKyAgXSwKKyAgImF1dG9sb2FkIjogeworICAgICJwc3ItNCI6IHsKKyAgICAgICJIdG1sMlRleHRcXCI6ICJzcmMiCisgICAgfQorICB9LAorICAic3VwcG9ydCI6IHsKKyAgICAiZW1haWwiOiAic3VwcG9ydEBqZXZvbi5vcmciCisgIH0sCisgICJyZXF1aXJlIjogeworICAgICJwaHAiOiAiPj01LjMuMiIsCisgICAgImV4dC1kb20iOiAiKiIsCisgICAgImV4dC1saWJ4bWwiOiAiKiIKKyAgfSwKKyAgInJlcXVpcmUtZGV2IjogeworICAgICJwaHB1bml0L3BocHVuaXQiOiAiPj00LjAiLAorICAgICJzb3VuZGFzbGVlcC9jb21wb25lbnQtdGVzdHMiOiAiZGV2LW1hc3RlciIKKyAgfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9jb21wb3Nlci5sb2NrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9jb21wb3Nlci5sb2NrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZjkzOGEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L2NvbXBvc2VyLmxvY2sKQEAgLTAsMCArMSw3NDYgQEAKK3sKKyAgICAiX3JlYWRtZSI6IFsKKyAgICAgICAgIlRoaXMgZmlsZSBsb2NrcyB0aGUgZGVwZW5kZW5jaWVzIG9mIHlvdXIgcHJvamVjdCB0byBhIGtub3duIHN0YXRlIiwKKyAgICAgICAgIlJlYWQgbW9yZSBhYm91dCBpdCBhdCBodHRwOi8vZ2V0Y29tcG9zZXIub3JnL2RvYy8wMS1iYXNpYy11c2FnZS5tZCNjb21wb3Nlci1sb2NrLXRoZS1sb2NrLWZpbGUiLAorICAgICAgICAiVGhpcyBmaWxlIGlzIEBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSIKKyAgICBdLAorICAgICJoYXNoIjogImJiOTAxODJiZDhkODA4YTA2YWU0NzYyNTE4NzQ2ZWQzIiwKKyAgICAicGFja2FnZXMiOiBbXSwKKyAgICAicGFja2FnZXMtZGV2IjogWworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJqdXN0aW5yYWluYm93L2pzb24tc2NoZW1hIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMy43IiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qdXN0aW5yYWluYm93L2pzb24tc2NoZW1hLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI4N2I1NGI0NjBmZWJlZDY5NzI2Yzc4MWFiNjc0NjIwODRlOTdhMTA1IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2p1c3RpbnJhaW5ib3cvanNvbi1zY2hlbWEvemlwYmFsbC84N2I1NGI0NjBmZWJlZDY5NzI2Yzc4MWFiNjc0NjIwODRlOTdhMTA1IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjg3YjU0YjQ2MGZlYmVkNjk3MjZjNzgxYWI2NzQ2MjA4NGU5N2ExMDUiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgImpzb24tc2NoZW1hL2pzb24tc2NoZW1hLXRlc3Qtc3VpdGUiOiAiMS4xLjAiLAorICAgICAgICAgICAgICAgICJwaHBkb2N1bWVudG9yL3BocGRvY3VtZW50b3IiOiAifjIiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjMuNyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYmluIjogWworICAgICAgICAgICAgICAgICJiaW4vdmFsaWRhdGUtanNvbiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICAgICAiZGV2LW1hc3RlciI6ICIxLjQueC1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTAiOiB7CisgICAgICAgICAgICAgICAgICAgICJKc29uU2NoZW1hIjogInNyYy8iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJCcnVubyBQcmlldG8gUmVpcyIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJicnVuby5wLnJlaXNAZ21haWwuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJKdXN0aW4gUmFpbmJvdyIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJqdXN0aW4ucmFpbmJvd0BnbWFpbC5jb20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIklnb3IgV2llZGxlciIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJpZ29yQHdpZWRsZXIuY2giCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlJvYmVydCBTY2jDtm50aGFsIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlcm9zY2hvQGdvb2dsZW1haWwuY29tIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQSBsaWJyYXJ5IHRvIHZhbGlkYXRlIGEganNvbiBzY2hlbWEuIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmFpbmJvdy9qc29uLXNjaGVtYSIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgImpzb24iLAorICAgICAgICAgICAgICAgICJzY2hlbWEiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNC0wOC0yNSAwMjo0ODoxNCIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGhwdW5pdC9waHAtY29kZS1jb3ZlcmFnZSIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIyLjAuMTUiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC1jb2RlLWNvdmVyYWdlLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzNGNjNDg0YWYxY2ExNDkxODhkMGQ5ZTkxNDEyMTkxZTM5OGUwYjY3IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL3BocC1jb2RlLWNvdmVyYWdlL3ppcGJhbGwvMzRjYzQ4NGFmMWNhMTQ5MTg4ZDBkOWU5MTQxMjE5MWUzOThlMGI2NyIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIzNGNjNDg0YWYxY2ExNDkxODhkMGQ5ZTkxNDEyMTkxZTM5OGUwYjY3IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC1maWxlLWl0ZXJhdG9yIjogIn4xLjMiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC10ZXh0LXRlbXBsYXRlIjogIn4xLjIiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC10b2tlbi1zdHJlYW0iOiAifjEuMyIsCisgICAgICAgICAgICAgICAgInNlYmFzdGlhbi9lbnZpcm9ubWVudCI6ICJ+MS4wIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL3ZlcnNpb24iOiAifjEuMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgImV4dC14ZGVidWciOiAiPj0yLjEuNCIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic3VnZ2VzdCI6IHsKKyAgICAgICAgICAgICAgICAiZXh0LWRvbSI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LXhkZWJ1ZyI6ICI+PTIuMi4xIiwKKyAgICAgICAgICAgICAgICAiZXh0LXhtbHdyaXRlciI6ICIqIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjIuMC54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2JAc2ViYXN0aWFuLWJlcmdtYW5uLmRlIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAibGVhZCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkxpYnJhcnkgdGhhdCBwcm92aWRlcyBjb2xsZWN0aW9uLCBwcm9jZXNzaW5nLCBhbmQgcmVuZGVyaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIFBIUCBjb2RlIGNvdmVyYWdlIGluZm9ybWF0aW9uLiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC1jb2RlLWNvdmVyYWdlIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiY292ZXJhZ2UiLAorICAgICAgICAgICAgICAgICJ0ZXN0aW5nIiwKKyAgICAgICAgICAgICAgICAieHVuaXQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNS0wMS0yNCAxMDowNjozNSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGhwdW5pdC9waHAtZmlsZS1pdGVyYXRvciIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICIxLjMuNCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLWZpbGUtaXRlcmF0b3IuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImFjZDY5MDM3OTExN2IwNDJkMWM4YWYxZmFmZDYxYmRlMDAxYmY2YmIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vcGhwLWZpbGUtaXRlcmF0b3IvemlwYmFsbC9hY2Q2OTAzNzkxMTdiMDQyZDFjOGFmMWZhZmQ2MWJkZTAwMWJmNmJiIiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImFjZDY5MDM3OTExN2IwNDJkMWM4YWYxZmFmZDYxYmRlMDAxYmY2YmIiLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAiY2xhc3NtYXAiOiBbCisgICAgICAgICAgICAgICAgICAgICJGaWxlLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImluY2x1ZGUtcGF0aCI6IFsKKyAgICAgICAgICAgICAgICAiIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2JAc2ViYXN0aWFuLWJlcmdtYW5uLmRlIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAibGVhZCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpbHRlckl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIHRoYXQgZmlsdGVycyBmaWxlcyBiYXNlZCBvbiBhIGxpc3Qgb2Ygc3VmZml4ZXMuIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwLWZpbGUtaXRlcmF0b3IvIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZmlsZXN5c3RlbSIsCisgICAgICAgICAgICAgICAgIml0ZXJhdG9yIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTMtMTAtMTAgMTU6MzQ6NTciCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwLXRleHQtdGVtcGxhdGUiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS4yLjAiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10ZXh0LXRlbXBsYXRlLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIyMDZkZmVmYzBmZmU5Y2ViZjY1YzQxM2UzZDBlODA5YzgyZmJmMDBhIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10ZXh0LXRlbXBsYXRlL3ppcGJhbGwvMjA2ZGZlZmMwZmZlOWNlYmY2NWM0MTNlM2QwZTgwOWM4MmZiZjAwYSIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIyMDZkZmVmYzBmZmU5Y2ViZjY1YzQxM2UzZDBlODA5YzgyZmJmMDBhIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAiVGV4dC8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJpbmNsdWRlLXBhdGgiOiBbCisgICAgICAgICAgICAgICAgIiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNiQHNlYmFzdGlhbi1iZXJnbWFubi5kZSIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogImxlYWQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgdGVtcGxhdGUgZW5naW5lLiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10ZXh0LXRlbXBsYXRlLyIsCisgICAgICAgICAgICAia2V5d29yZHMiOiBbCisgICAgICAgICAgICAgICAgInRlbXBsYXRlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTQtMDEtMzAgMTc6MjA6MDQiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwLXRpbWVyIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC41IiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9waHAtdGltZXIuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjE5Njg5ZDQzNTRiMjk1ZWUzZDhjNTRiNGY0MmMzZWZiNjljYmMxN2MiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vcGhwLXRpbWVyL3ppcGJhbGwvMTk2ODlkNDM1NGIyOTVlZTNkOGM1NGI0ZjQyYzNlZmI2OWNiYzE3YyIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIxOTY4OWQ0MzU0YjI5NWVlM2Q4YzU0YjRmNDJjM2VmYjY5Y2JjMTdjIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAiUEhQLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImluY2x1ZGUtcGF0aCI6IFsKKyAgICAgICAgICAgICAgICAiIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2JAc2ViYXN0aWFuLWJlcmdtYW5uLmRlIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAibGVhZCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlV0aWxpdHkgY2xhc3MgZm9yIHRpbWluZyIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10aW1lci8iLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJ0aW1lciIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDEzLTA4LTAyIDA3OjQyOjU0IgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwaHB1bml0L3BocC10b2tlbi1zdHJlYW0iLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS40LjAiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10b2tlbi1zdHJlYW0uZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImRiMzJjMThlYmEwMGIxMjFjMTQ1NTc1ZmNiY2Q0ZDRkMjRlNmRiNzQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vcGhwLXRva2VuLXN0cmVhbS96aXBiYWxsL2RiMzJjMThlYmEwMGIxMjFjMTQ1NTc1ZmNiY2Q0ZDRkMjRlNmRiNzQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiZGIzMmMxOGViYTAwYjEyMWMxNDU1NzVmY2JjZDRkNGQyNGU2ZGI3NCIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgImV4dC10b2tlbml6ZXIiOiAiKiIsCisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMS40LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJCU0QtMy1DbGF1c2UiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTZWJhc3RpYW4gQmVyZ21hbm4iLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAic2ViYXN0aWFuQHBocHVuaXQuZGUiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJXcmFwcGVyIGFyb3VuZCBQSFAncyB0b2tlbml6ZXIgZXh0ZW5zaW9uLiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3BocC10b2tlbi1zdHJlYW0vIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAidG9rZW5pemVyIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMDEtMTcgMDk6NTE6MzIiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwdW5pdCIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICI0LjAuMCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwdW5pdC5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYjNhN2M1OGJjMzlmMDE1NzdmODlkNjNkYTFlYzU3OGUxZTk5M2YxYSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zZWJhc3RpYW5iZXJnbWFubi9waHB1bml0L3ppcGJhbGwvYjNhN2M1OGJjMzlmMDE1NzdmODlkNjNkYTFlYzU3OGUxZTk5M2YxYSIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJiM2E3YzU4YmMzOWYwMTU3N2Y4OWQ2M2RhMWVjNTc4ZTFlOTkzZjFhIiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAiZXh0LWRvbSI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LXBjcmUiOiAiKiIsCisgICAgICAgICAgICAgICAgImV4dC1yZWZsZWN0aW9uIjogIioiLAorICAgICAgICAgICAgICAgICJleHQtc3BsIjogIioiLAorICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMyIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLWNvZGUtY292ZXJhZ2UiOiAiPj0yLjAuMCw8Mi4xLjAiLAorICAgICAgICAgICAgICAgICJwaHB1bml0L3BocC1maWxlLWl0ZXJhdG9yIjogIn4xLjMuMSIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLXRleHQtdGVtcGxhdGUiOiAifjEuMiIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwLXRpbWVyIjogIn4xLjAuMiIsCisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdC1tb2NrLW9iamVjdHMiOiAiPj0yLjAuMCw8Mi4xLjAiLAorICAgICAgICAgICAgICAgICJzZWJhc3RpYW4vZGlmZiI6ICJ+MS4xIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL2Vudmlyb25tZW50IjogIn4xLjAiLAorICAgICAgICAgICAgICAgICJzZWJhc3RpYW4vZXhwb3J0ZXIiOiAifjEuMC4xIiwKKyAgICAgICAgICAgICAgICAic2ViYXN0aWFuL3ZlcnNpb24iOiAifjEuMCIsCisgICAgICAgICAgICAgICAgInN5bWZvbnkveWFtbCI6ICJ+Mi4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgICAgICJleHQtanNvbiI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LXNpbXBsZXhtbCI6ICIqIiwKKyAgICAgICAgICAgICAgICAiZXh0LXRva2VuaXplciI6ICIqIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHAtaW52b2tlciI6ICJ+MS4xIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJiaW4iOiBbCisgICAgICAgICAgICAgICAgInBocHVuaXQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiNC4wLngtZGV2IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImluY2x1ZGUtcGF0aCI6IFsKKyAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAiLi4vLi4vc3ltZm9ueS95YW1sLyIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlYmFzdGlhbkBwaHB1bml0LmRlIiwKKyAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAibGVhZCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBQSFAgVW5pdCBUZXN0aW5nIGZyYW1ld29yay4iLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cucGhwdW5pdC5kZS8iLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJwaHB1bml0IiwKKyAgICAgICAgICAgICAgICAidGVzdGluZyIsCisgICAgICAgICAgICAgICAgInh1bml0IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTQtMDMtMDcgMDc6MDA6NDQiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBocHVuaXQvcGhwdW5pdC1tb2NrLW9iamVjdHMiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMi4wLjEwIiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9waHB1bml0LW1vY2stb2JqZWN0cy5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiZTYwYmI5MjljNTBhZTQyMzdhYWY2ODBhNGY2NzczZjRlZTE3ZjBhMiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zZWJhc3RpYW5iZXJnbWFubi9waHB1bml0LW1vY2stb2JqZWN0cy96aXBiYWxsL2U2MGJiOTI5YzUwYWU0MjM3YWFmNjgwYTRmNjc3M2Y0ZWUxN2YwYTIiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiZTYwYmI5MjljNTBhZTQyMzdhYWY2ODBhNGY2NzczZjRlZTE3ZjBhMiIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHAtdGV4dC10ZW1wbGF0ZSI6ICJ+MS4yIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIj49NC4wLjAsPDQuMS4wIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzdWdnZXN0IjogeworICAgICAgICAgICAgICAgICJleHQtc29hcCI6ICIqIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjIuMC54LWRldiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImF1dG9sb2FkIjogeworICAgICAgICAgICAgICAgICJjbGFzc21hcCI6IFsKKyAgICAgICAgICAgICAgICAgICAgInNyYy8iCisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJpbmNsdWRlLXBhdGgiOiBbCisgICAgICAgICAgICAgICAgIiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNiQHNlYmFzdGlhbi1iZXJnbWFubi5kZSIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogImxlYWQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJNb2NrIE9iamVjdCBsaWJyYXJ5IGZvciBQSFBVbml0IiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwczovL2dpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vcGhwdW5pdC1tb2NrLW9iamVjdHMvIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAibW9jayIsCisgICAgICAgICAgICAgICAgInh1bml0IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTQtMDYtMTIgMDc6MTk6NDgiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNlYmFzdGlhbi9kaWZmIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMi4wIiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9kaWZmLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI1ODQzNTA5ZmVkMzlkZWU0YjM1NmEzMDY0MDFlOWRkMWE5MzFmZWM3IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL2RpZmYvemlwYmFsbC81ODQzNTA5ZmVkMzlkZWU0YjM1NmEzMDY0MDFlOWRkMWE5MzFmZWM3IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogIjU4NDM1MDlmZWQzOWRlZTRiMzU2YTMwNjQwMWU5ZGQxYTkzMWZlYzciLAorICAgICAgICAgICAgICAgICJzaGFzdW0iOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlIjogeworICAgICAgICAgICAgICAgICJwaHAiOiAiPj01LjMuMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZS1kZXYiOiB7CisgICAgICAgICAgICAgICAgInBocHVuaXQvcGhwdW5pdCI6ICJ+NC4yIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjEuMi1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAiY2xhc3NtYXAiOiBbCisgICAgICAgICAgICAgICAgICAgICJzcmMvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiS29yZSBOb3JkbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJtYWlsQGtvcmUtbm9yZG1hbm4uZGUiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBCZXJnbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzZWJhc3RpYW5AcGhwdW5pdC5kZSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpZmYgaW1wbGVtZW50YXRpb24iLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly93d3cuZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9kaWZmIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZGlmZiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAidGltZSI6ICIyMDE0LTA4LTE1IDEwOjI5OjAwIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzZWJhc3RpYW4vZW52aXJvbm1lbnQiLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS4yLjEiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2Vudmlyb25tZW50LmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI2ZTZjNzFkOTE4MDg4YzI1MWIxODFiYThiMzA4OGFmNGFjMzM2ZGQ3IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3NlYmFzdGlhbmJlcmdtYW5uL2Vudmlyb25tZW50L3ppcGJhbGwvNmU2YzcxZDkxODA4OGMyNTFiMTgxYmE4YjMwODhhZjRhYzMzNmRkNyIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICI2ZTZjNzFkOTE4MDg4YzI1MWIxODFiYThiMzA4OGFmNGFjMzM2ZGQ3IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAicGhwIjogIj49NS4zLjMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUtZGV2IjogeworICAgICAgICAgICAgICAgICJwaHB1bml0L3BocHVuaXQiOiAifjQuMyIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICAgICAiYnJhbmNoLWFsaWFzIjogeworICAgICAgICAgICAgICAgICAgICAiZGV2LW1hc3RlciI6ICIxLjIueC1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAiY2xhc3NtYXAiOiBbCisgICAgICAgICAgICAgICAgICAgICJzcmMvIgorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAibm90aWZpY2F0aW9uLXVybCI6ICJodHRwczovL3BhY2thZ2lzdC5vcmcvZG93bmxvYWRzLyIsCisgICAgICAgICAgICAibGljZW5zZSI6IFsKKyAgICAgICAgICAgICAgICAiQlNELTMtQ2xhdXNlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhdXRob3JzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlYmFzdGlhbkBwaHB1bml0LmRlIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvdmlkZXMgZnVuY3Rpb25hbGl0eSB0byBoYW5kbGUgSEhWTS9QSFAgZW52aXJvbm1lbnRzIiwKKyAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vd3d3LmdpdGh1Yi5jb20vc2ViYXN0aWFuYmVyZ21hbm4vZW52aXJvbm1lbnQiLAorICAgICAgICAgICAgImtleXdvcmRzIjogWworICAgICAgICAgICAgICAgICJYZGVidWciLAorICAgICAgICAgICAgICAgICJlbnZpcm9ubWVudCIsCisgICAgICAgICAgICAgICAgImhodm0iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNC0xMC0yNSAwODowMDo0NSIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2ViYXN0aWFuL2V4cG9ydGVyIiwKKyAgICAgICAgICAgICJ2ZXJzaW9uIjogIjEuMC4yIiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi9leHBvcnRlci5naXQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYzdkNTk5NDhkNmU4MjgxOGUxYmRmZjdjYWRiNmMzNDcxMGViN2RjMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiZGlzdCI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJ6aXAiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9zZWJhc3RpYW5iZXJnbWFubi9leHBvcnRlci96aXBiYWxsL2M3ZDU5OTQ4ZDZlODI4MThlMWJkZmY3Y2FkYjZjMzQ3MTBlYjdkYzAiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYzdkNTk5NDhkNmU4MjgxOGUxYmRmZjdjYWRiNmMzNDcxMGViN2RjMCIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIn40LjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAgICAgImJyYW5jaC1hbGlhcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRldi1tYXN0ZXIiOiAiMS4wLngtZGV2IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIkplZmYgV2VsY2giLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAid2hhdHRoZWplZmZAZ21haWwuY29tIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJWb2xrZXIgRHVzY2giLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiZ2l0aHViQHdhbGxiYXNoLmNvbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiQmVybmhhcmQgU2NodXNzZWsiLAorICAgICAgICAgICAgICAgICAgICAiZW1haWwiOiAiYnNjaHVzc2VrQDJiZXB1Ymxpc2hlZC5hdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiU2ViYXN0aWFuIEJlcmdtYW5uIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogInNlYmFzdGlhbkBwaHB1bml0LmRlIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJBZGFtIEhhcnZleSIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJhaGFydmV5QHBocC5uZXQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyB0aGUgZnVuY3Rpb25hbGl0eSB0byBleHBvcnQgUEhQIHZhcmlhYmxlcyBmb3IgdmlzdWFsaXphdGlvbiIsCisgICAgICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL3d3dy5naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL2V4cG9ydGVyIiwKKyAgICAgICAgICAgICJrZXl3b3JkcyI6IFsKKyAgICAgICAgICAgICAgICAiZXhwb3J0IiwKKyAgICAgICAgICAgICAgICAiZXhwb3J0ZXIiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInRpbWUiOiAiMjAxNC0wOS0xMCAwMDo1MTozNiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2ViYXN0aWFuL3ZlcnNpb24iLAorICAgICAgICAgICAgInZlcnNpb24iOiAiMS4wLjQiLAorICAgICAgICAgICAgInNvdXJjZSI6IHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlYmFzdGlhbmJlcmdtYW5uL3ZlcnNpb24uZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImE3N2Q5MTIzZjhlODA5ZGIzZmJkZWExNTAzOGMyN2E5NWRhNDA1OGIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc2ViYXN0aWFuYmVyZ21hbm4vdmVyc2lvbi96aXBiYWxsL2E3N2Q5MTIzZjhlODA5ZGIzZmJkZWExNTAzOGMyN2E5NWRhNDA1OGIiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiYTc3ZDkxMjNmOGU4MDlkYjNmYmRlYTE1MDM4YzI3YTk1ZGE0MDU4YiIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInR5cGUiOiAibGlicmFyeSIsCisgICAgICAgICAgICAiYXV0b2xvYWQiOiB7CisgICAgICAgICAgICAgICAgImNsYXNzbWFwIjogWworICAgICAgICAgICAgICAgICAgICAic3JjLyIKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImxpY2Vuc2UiOiBbCisgICAgICAgICAgICAgICAgIkJTRC0zLUNsYXVzZSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXV0aG9ycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogIlNlYmFzdGlhbiBCZXJnbWFubiIsCisgICAgICAgICAgICAgICAgICAgICJlbWFpbCI6ICJzZWJhc3RpYW5AcGhwdW5pdC5kZSIsCisgICAgICAgICAgICAgICAgICAgICJyb2xlIjogImxlYWQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJMaWJyYXJ5IHRoYXQgaGVscHMgd2l0aCBtYW5hZ2luZyB0aGUgdmVyc2lvbiBudW1iZXIgb2YgR2l0LWhvc3RlZCBQSFAgcHJvamVjdHMiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZWJhc3RpYW5iZXJnbWFubi92ZXJzaW9uIiwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTQtMTItMTUgMTQ6MjU6MjQiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNvdW5kYXNsZWVwL2NvbXBvbmVudC10ZXN0cyIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICJkZXYtbWFzdGVyIiwKKyAgICAgICAgICAgICJzb3VyY2UiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zb3VuZGFzbGVlcC9jb21wb25lbnQtdGVzdHMuZ2l0IiwKKyAgICAgICAgICAgICAgICAicmVmZXJlbmNlIjogImMxZTllNjYwOGVmNDE0NTJiMzVkNjhhNzA1N2VhN2FkZDc3Y2NkMzYiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImRpc3QiOiB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAiemlwIiwKKyAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvc291bmRhc2xlZXAvY29tcG9uZW50LXRlc3RzL3ppcGJhbGwvYzFlOWU2NjA4ZWY0MTQ1MmIzNWQ2OGE3MDU3ZWE3YWRkNzdjY2QzNiIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICJjMWU5ZTY2MDhlZjQxNDUyYjM1ZDY4YTcwNTdlYTdhZGQ3N2NjZDM2IiwKKyAgICAgICAgICAgICAgICAic2hhc3VtIjogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAicmVxdWlyZSI6IHsKKyAgICAgICAgICAgICAgICAianVzdGlucmFpbmJvdy9qc29uLXNjaGVtYSI6ICJ+MS4zIiwKKyAgICAgICAgICAgICAgICAicGhwdW5pdC9waHB1bml0IjogIjQuMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidHlwZSI6ICJsaWJyYXJ5IiwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTQiOiB7CisgICAgICAgICAgICAgICAgICAgICJDb21wb25lbnRUZXN0c1xcIjogInNyYyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm5vdGlmaWNhdGlvbi11cmwiOiAiaHR0cHM6Ly9wYWNrYWdpc3Qub3JnL2Rvd25sb2Fkcy8iLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNvbW1vbiBDb21wb3NlciBhbmQgUEhQIGNvbXBvbmVudCBsaW50IGFuZCB2YWxpZGF0aW9uIHRlc3RzIiwKKyAgICAgICAgICAgICJ0aW1lIjogIjIwMTUtMDMtMTggMDI6MzA6MjQiCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN5bWZvbnkveWFtbCIsCisgICAgICAgICAgICAidmVyc2lvbiI6ICJ2Mi42LjUiLAorICAgICAgICAgICAgInRhcmdldC1kaXIiOiAiU3ltZm9ueS9Db21wb25lbnQvWWFtbCIsCisgICAgICAgICAgICAic291cmNlIjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3ltZm9ueS9ZYW1sLmdpdCIsCisgICAgICAgICAgICAgICAgInJlZmVyZW5jZSI6ICIwY2Q4ZTcyMDcxZTQ2ZTE1ZmMwNzIyNzBhZTM5ZWExYjY2YjEwYTlkIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJkaXN0IjogeworICAgICAgICAgICAgICAgICJ0eXBlIjogInppcCIsCisgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3N5bWZvbnkvWWFtbC96aXBiYWxsLzBjZDhlNzIwNzFlNDZlMTVmYzA3MjI3MGFlMzllYTFiNjZiMTBhOWQiLAorICAgICAgICAgICAgICAgICJyZWZlcmVuY2UiOiAiMGNkOGU3MjA3MWU0NmUxNWZjMDcyMjcwYWUzOWVhMWI2NmIxMGE5ZCIsCisgICAgICAgICAgICAgICAgInNoYXN1bSI6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInJlcXVpcmUiOiB7CisgICAgICAgICAgICAgICAgInBocCI6ICI+PTUuMy4zIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJyZXF1aXJlLWRldiI6IHsKKyAgICAgICAgICAgICAgICAic3ltZm9ueS9waHB1bml0LWJyaWRnZSI6ICJ+Mi43IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ0eXBlIjogImxpYnJhcnkiLAorICAgICAgICAgICAgImV4dHJhIjogeworICAgICAgICAgICAgICAgICJicmFuY2gtYWxpYXMiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZXYtbWFzdGVyIjogIjIuNi1kZXYiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJhdXRvbG9hZCI6IHsKKyAgICAgICAgICAgICAgICAicHNyLTAiOiB7CisgICAgICAgICAgICAgICAgICAgICJTeW1mb255XFxDb21wb25lbnRcXFlhbWxcXCI6ICIiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJub3RpZmljYXRpb24tdXJsIjogImh0dHBzOi8vcGFja2FnaXN0Lm9yZy9kb3dubG9hZHMvIiwKKyAgICAgICAgICAgICJsaWNlbnNlIjogWworICAgICAgICAgICAgICAgICJNSVQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImF1dGhvcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJTeW1mb255IENvbW11bml0eSIsCisgICAgICAgICAgICAgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vc3ltZm9ueS5jb20vY29udHJpYnV0b3JzIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJGYWJpZW4gUG90ZW5jaWVyIiwKKyAgICAgICAgICAgICAgICAgICAgImVtYWlsIjogImZhYmllbkBzeW1mb255LmNvbSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN5bWZvbnkgWWFtbCBDb21wb25lbnQiLAorICAgICAgICAgICAgImhvbWVwYWdlIjogImh0dHA6Ly9zeW1mb255LmNvbSIsCisgICAgICAgICAgICAidGltZSI6ICIyMDE1LTAzLTEyIDEwOjI4OjQ0IgorICAgICAgICB9CisgICAgXSwKKyAgICAiYWxpYXNlcyI6IFtdLAorICAgICJtaW5pbXVtLXN0YWJpbGl0eSI6ICJzdGFibGUiLAorICAgICJzdGFiaWxpdHktZmxhZ3MiOiB7CisgICAgICAgICJzb3VuZGFzbGVlcC9jb21wb25lbnQtdGVzdHMiOiAyMAorICAgIH0sCisgICAgInByZWZlci1zdGFibGUiOiBmYWxzZSwKKyAgICAicHJlZmVyLWxvd2VzdCI6IGZhbHNlLAorICAgICJwbGF0Zm9ybSI6IHsKKyAgICAgICAgInBocCI6ICI+PTUuMy4yIiwKKyAgICAgICAgImV4dC1kb20iOiAiKiIsCisgICAgICAgICJleHQtbGlieG1sIjogIioiCisgICAgfSwKKyAgICAicGxhdGZvcm0tZGV2IjogW10KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvY29udmVydC5waHAgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L2NvbnZlcnQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNjY0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L2NvbnZlcnQucGhwCkBAIC0wLDAgKzEsMzggQEAKKzw/cGhwCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCBKZXZvbiBXcmlnaHQgYW5kIG90aGVycy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKgorICogb3IKKyAqCisgKiBMR1BMIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC5odG1sCisgKgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgIEpldm9uIFdyaWdodCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogVGhpcyBmaWxlIGFsbG93cyB5b3UgdG8gY29udmVydCB0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUuCisgKiBVc2FnZToKKyAqICAgcGhwIC1mIGNvbnZlcnQucGhwIFtpbnB1dCBmaWxlXQorICovCisKK2lmIChjb3VudCgkYXJndikgPCAyKSB7CisJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIkV4cGVjdGVkOiBwaHAgLWYgY29udmVydC5waHAgW2lucHV0IGZpbGVdIik7Cit9CisKK2lmICghZmlsZV9leGlzdHMoJGFyZ3ZbMV0pKSB7CisJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIiciIC4gJGFyZ3ZbMV0gLiAiJyBkb2VzIG5vdCBleGlzdCIpOworfQorCiskaW5wdXQgPSBmaWxlX2dldF9jb250ZW50cygkYXJndlsxXSk7CisKK3JlcXVpcmVfb25jZShfX0RJUl9fIC4gIi9zcmMvSHRtbDJUZXh0LnBocCIpOworcmVxdWlyZV9vbmNlKF9fRElSX18gLiAiL3NyYy9IdG1sMlRleHRFeGNlcHRpb24ucGhwIik7CisKK2VjaG8gSHRtbDJUZXh0XEh0bWwyVGV4dDo6Y29udmVydCgkaW5wdXQpOwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9odG1sMnRleHQucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9odG1sMnRleHQucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYWZiZWYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L2h0bWwydGV4dC5waHAKQEAgLTAsMCArMSwzMiBAQAorPD9waHAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCBKZXZvbiBXcmlnaHQgYW5kIG90aGVycy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKgorICogb3IKKyAqCisgKiBMR1BMIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC5odG1sCisgKgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgIEpldm9uIFdyaWdodCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogVGhpcyBmaWxlIGlzIGF2YWlsYWJsZSBpZiB5b3Ugc3RpbGwgd2FudCB0byB1c2UgZnVuY3Rpb25zIHJhdGhlciB0aGFuCisgKiBhdXRvbG9hZGluZyBjbGFzc2VzLgorICovCisKK3JlcXVpcmVfb25jZShfX0RJUl9fIC4gIi9zcmMvSHRtbDJUZXh0LnBocCIpOworcmVxdWlyZV9vbmNlKF9fRElSX18gLiAiL3NyYy9IdG1sMlRleHRFeGNlcHRpb24ucGhwIik7CisKK2Z1bmN0aW9uIGNvbnZlcnRfaHRtbF90b190ZXh0KCRodG1sKSB7CisJcmV0dXJuIEh0bWwyVGV4dFxIdG1sMlRleHQ6OmNvbnZlcnQoJGh0bWwpOworfQorCitmdW5jdGlvbiBmaXhfbmV3bGluZXMoJHRleHQpIHsKKwlyZXR1cm4gSHRtbDJUZXh0XEh0bWwyVGV4dDo6Zml4TmV3bGluZXMoJHRleHQpOworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9waHB1bml0LnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvcGhwdW5pdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNiNDlhNQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvcGhwdW5pdC54bWwKQEAgLTAsMCArMSw4IEBACis8cGhwdW5pdCBzdG9wLW9uLWZhaWx1cmU9InRydWUiIHN0b3Atb24tZXJyb3I9InRydWUiPgorCTx0ZXN0c3VpdGVzPgorCQk8dGVzdHN1aXRlIG5hbWU9IlRlc3RzIj4KKwkJCTwhLS0gbG9hZHMgYWxsICpUZXN0LnBocCAtLT4KKwkJCTxkaXJlY3Rvcnk+dGVzdHM8L2RpcmVjdG9yeT4KKwkJPC90ZXN0c3VpdGU+CisJPC90ZXN0c3VpdGVzPgorPC9waHB1bml0PgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9zcmMvSHRtbDJUZXh0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvc3JjL0h0bWwyVGV4dC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUxZjhhZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvc3JjL0h0bWwyVGV4dC5waHAKQEAgLTAsMCArMSwzOTQgQEAKKzw/cGhwCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgSmV2b24gV3JpZ2h0IGFuZCBvdGhlcnMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICoKKyAqIG9yCisgKgorICogTEdQTCB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbAorICoKKyAqCisgKiBDb250cmlidXRvcnM6CisgKiAgICBKZXZvbiBXcmlnaHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCituYW1lc3BhY2UgSHRtbDJUZXh0OworCitjbGFzcyBIdG1sMlRleHQgeworCisJLyoqCisJICogVHJpZXMgdG8gY29udmVydCB0aGUgZ2l2ZW4gSFRNTCBpbnRvIGEgcGxhaW4gdGV4dCBmb3JtYXQgLSBiZXN0IHN1aXRlZCBmb3IKKwkgKiBlLW1haWwgZGlzcGxheSwgZXRjLgorCSAqCisJICogPHA+SW4gcGFydGljdWxhciwgaXQgdHJpZXMgdG8gbWFpbnRhaW4gdGhlIGZvbGxvd2luZyBmZWF0dXJlczoKKwkgKiA8dWw+CisJICogICA8bGk+TGlua3MgYXJlIG1haW50YWluZWQsIHdpdGggdGhlICdocmVmJyBjb3BpZWQgb3ZlcgorCSAqICAgPGxpPkluZm9ybWF0aW9uIGluIHRoZSAmbHQ7aGVhZCZndDsgaXMgbG9zdAorCSAqIDwvdWw+CisJICoKKwkgKiBAcGFyYW0gc3RyaW5nICRodG1sIHRoZSBpbnB1dCBIVE1MCisJICogQHBhcmFtIGJvb2xlYW4gJGlnbm9yZV9lcnJvciBJZ25vcmUgeG1sIHBhcnNpbmcgZXJyb3JzCisJICogQHJldHVybiBzdHJpbmcgdGhlIEhUTUwgY29udmVydGVkLCBhcyBiZXN0IGFzIHBvc3NpYmxlLCB0byB0ZXh0CisJICogQHRocm93cyBIdG1sMlRleHRFeGNlcHRpb24gaWYgdGhlIEhUTUwgY291bGQgbm90IGJlIGxvYWRlZCBhcyBhIHtAbGluayBET01Eb2N1bWVudH0KKwkgKi8KKwlwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNvbnZlcnQoJGh0bWwsICRpZ25vcmVfZXJyb3IgPSBmYWxzZSkgeworCQkvLyByZXBsYWNlICZuYnNwOyB3aXRoIHNwYWNlcworCQkkaHRtbCA9IHN0cl9yZXBsYWNlKCImbmJzcDsiLCAiICIsICRodG1sKTsKKwkJJGh0bWwgPSBzdHJfcmVwbGFjZSgiXHhjMlx4YTAiLCAiICIsICRodG1sKTsKKworCQkkaXNfb2ZmaWNlX2RvY3VtZW50ID0gc3RhdGljOjppc09mZmljZURvY3VtZW50KCRodG1sKTsKKworCQlpZiAoJGlzX29mZmljZV9kb2N1bWVudCkgeworCQkJLy8gcmVtb3ZlIG9mZmljZSBuYW1lc3BhY2UKKwkJCSRodG1sID0gc3RyX3JlcGxhY2UoYXJyYXkoIjxvOnA+IiwgIjwvbzpwPiIpLCAiIiwgJGh0bWwpOworCQl9CisKKwkJJGh0bWwgPSBzdGF0aWM6OmZpeE5ld2xpbmVzKCRodG1sKTsKKwkJaWYgKG1iX2RldGVjdF9lbmNvZGluZygkaHRtbCwgIlVURi04IiwgdHJ1ZSkpIHsKKwkJCSRodG1sID0gbWJfY29udmVydF9lbmNvZGluZygkaHRtbCwgIkhUTUwtRU5USVRJRVMiLCAiVVRGLTgiKTsKKwkJfQorCisJCSRkb2MgPSBzdGF0aWM6OmdldERvY3VtZW50KCRodG1sLCAkaWdub3JlX2Vycm9yKTsKKworCQkkb3V0cHV0ID0gc3RhdGljOjppdGVyYXRlT3Zlck5vZGUoJGRvYywgbnVsbCwgZmFsc2UsICRpc19vZmZpY2VfZG9jdW1lbnQpOworCisJCS8vIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMgb24gZWFjaCBsaW5lCisJCSRvdXRwdXQgPSBwcmVnX3JlcGxhY2UoIi9bIFx0XSpcblsgXHRdKi9pbSIsICJcbiIsICRvdXRwdXQpOworCQkkb3V0cHV0ID0gcHJlZ19yZXBsYWNlKCIvICpcdCAqL2ltIiwgIlx0IiwgJG91dHB1dCk7CisKKwkJLy8gdW5hcm1vciBwcmUgYmxvY2tzCisJCSRvdXRwdXQgPSBzdHJfcmVwbGFjZSgiXHIiLCAiXG4iLCAkb3V0cHV0KTsKKworCQkvLyByZW1vdmUgdW5uZWNlc3NhcnkgZW1wdHkgbGluZXMKKwkJJG91dHB1dCA9IHByZWdfcmVwbGFjZSgiL1xuXG5cbiovaW0iLCAiXG5cbiIsICRvdXRwdXQpOworCisJCS8vIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlCisJCSRvdXRwdXQgPSB0cmltKCRvdXRwdXQpOworCisJCXJldHVybiAkb3V0cHV0OworCX0KKworCS8qKgorCSAqIFVuaWZ5IG5ld2xpbmVzOyBpbiBwYXJ0aWN1bGFyLCBcclxuIGJlY29tZXMgXG4sIGFuZAorCSAqIHRoZW4gXHIgYmVjb21lcyBcbi4gVGhpcyBtZWFucyB0aGF0IGFsbCBuZXdsaW5lcyAoVW5peCwgV2luZG93cywgTWFjKQorCSAqIGFsbCBiZWNvbWUgXG5zLgorCSAqCisJICogQHBhcmFtIHN0cmluZyAkdGV4dCB0ZXh0IHdpdGggYW55IG51bWJlciBvZiBcciwgXHJcbiBhbmQgXG4gY29tYmluYXRpb25zCisJICogQHJldHVybiBzdHJpbmcgdGhlIGZpeGVkIHRleHQKKwkgKi8KKwlzdGF0aWMgZnVuY3Rpb24gZml4TmV3bGluZXMoJHRleHQpIHsKKwkJLy8gcmVwbGFjZSBcclxuIHRvIFxuCisJCSR0ZXh0ID0gc3RyX3JlcGxhY2UoIlxyXG4iLCAiXG4iLCAkdGV4dCk7CisJCS8vIHJlbW92ZSBccnMKKwkJJHRleHQgPSBzdHJfcmVwbGFjZSgiXHIiLCAiXG4iLCAkdGV4dCk7CisKKwkJcmV0dXJuICR0ZXh0OworCX0KKworCS8qKgorCSAqIFBhcnNlIEhUTUwgaW50byBhIERPTURvY3VtZW50CisJICoKKwkgKiBAcGFyYW0gc3RyaW5nICRodG1sIHRoZSBpbnB1dCBIVE1MCisJICogQHBhcmFtIGJvb2xlYW4gJGlnbm9yZV9lcnJvciBJZ25vcmUgeG1sIHBhcnNpbmcgZXJyb3JzCisJICogQHJldHVybiBET01Eb2N1bWVudCB0aGUgcGFyc2VkIGRvY3VtZW50IHRyZWUKKwkgKi8KKwlzdGF0aWMgZnVuY3Rpb24gZ2V0RG9jdW1lbnQoJGh0bWwsICRpZ25vcmVfZXJyb3IgPSBmYWxzZSkgeworCisJCSRkb2MgPSBuZXcgXERPTURvY3VtZW50KCk7CisKKwkJJGh0bWwgPSB0cmltKCRodG1sKTsKKworCQlpZiAoISRodG1sKSB7CisJCQkvLyBET01Eb2N1bWVudCBkb2Vzbid0IHN1cHBvcnQgZW1wdHkgdmFsdWUgYW5kIHRocm93cyBhbiBlcnJvcgorCQkJLy8gUmV0dXJuIGVtcHR5IGRvY3VtZW50IGluc3RlYWQKKwkJCXJldHVybiAkZG9jOworCQl9CisKKwkJaWYgKCRodG1sWzBdICE9PSAnPCcpIHsKKwkJCS8vIElmIEhUTUwgZG9lcyBub3QgYmVnaW4gd2l0aCBhIHRhZywgd2UgcHV0IGEgYm9keSB0YWcgYXJvdW5kIGl0LgorCQkJLy8gSWYgd2UgZG8gbm90IGRvIHRoaXMsIFBIUCB3aWxsIGluc2VydCBhIHBhcmFncmFwaCB0YWcgYXJvdW5kCisJCQkvLyB0aGUgZmlyc3QgYmxvY2sgb2YgdGV4dCBmb3Igc29tZSByZWFzb24gd2hpY2ggY2FuIG1lc3MgdXAKKwkJCS8vIHRoZSBuZXdsaW5lcy4gU2VlIHByZS5odG1sIHRlc3QgZm9yIGFuIGV4YW1wbGUuCisJCQkkaHRtbCA9ICc8Ym9keT4nIC4gJGh0bWwgLiAnPC9ib2R5Pic7CisJCX0KKworCQlpZiAoJGlnbm9yZV9lcnJvcikgeworCQkJJGRvYy0+c3RyaWN0RXJyb3JDaGVja2luZyA9IGZhbHNlOworCQkJJGRvYy0+cmVjb3ZlciA9IHRydWU7CisJCQkkZG9jLT54bWxTdGFuZGFsb25lID0gdHJ1ZTsKKwkJCSRvbGRfaW50ZXJuYWxfZXJyb3JzID0gbGlieG1sX3VzZV9pbnRlcm5hbF9lcnJvcnModHJ1ZSk7CisJCQkkbG9hZF9yZXN1bHQgPSAkZG9jLT5sb2FkSFRNTCgkaHRtbCwgTElCWE1MX05PV0FSTklORyB8IExJQlhNTF9OT0VSUk9SIHwgTElCWE1MX05PTkVUKTsKKwkJCWxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKCRvbGRfaW50ZXJuYWxfZXJyb3JzKTsKKwkJfQorCQllbHNlIHsKKwkJCSRsb2FkX3Jlc3VsdCA9ICRkb2MtPmxvYWRIVE1MKCRodG1sKTsKKwkJfQorCisJCWlmICghJGxvYWRfcmVzdWx0KSB7CisJCQl0aHJvdyBuZXcgSHRtbDJUZXh0RXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCBIVE1MIC0gYmFkbHkgZm9ybWVkPyIsICRodG1sKTsKKwkJfQorCisJCXJldHVybiAkZG9jOworCX0KKworCS8qKgorCSAqIENhbiB3ZSBndWVzcyB0aGF0IHRoaXMgSFRNTCBpcyBnZW5lcmF0ZWQgYnkgTWljcm9zb2Z0IE9mZmljZT8KKwkgKi8KKwlzdGF0aWMgZnVuY3Rpb24gaXNPZmZpY2VEb2N1bWVudCgkaHRtbCkgeworCQlyZXR1cm4gc3RycG9zKCRodG1sLCAidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2UiKSAhPT0gZmFsc2U7CisJfQorCisJc3RhdGljIGZ1bmN0aW9uIGlzV2hpdGVzcGFjZSgkdGV4dCkgeworCQlyZXR1cm4gc3RybGVuKHRyaW0oJHRleHQsICJcblxyXHQgIikpID09PSAwOworCX0KKworCXN0YXRpYyBmdW5jdGlvbiBuZXh0Q2hpbGROYW1lKCRub2RlKSB7CisJCS8vIGdldCB0aGUgbmV4dCBjaGlsZAorCQkkbmV4dE5vZGUgPSAkbm9kZS0+bmV4dFNpYmxpbmc7CisJCXdoaWxlICgkbmV4dE5vZGUgIT0gbnVsbCkgeworCQkJaWYgKCRuZXh0Tm9kZSBpbnN0YW5jZW9mIFxET01UZXh0KSB7CisJCQkJaWYgKCFzdGF0aWM6OmlzV2hpdGVzcGFjZSgkbmV4dE5vZGUtPndob2xlVGV4dCkpIHsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJaWYgKCRuZXh0Tm9kZSBpbnN0YW5jZW9mIFxET01FbGVtZW50KSB7CisJCQkJYnJlYWs7CisJCQl9CisJCQkkbmV4dE5vZGUgPSAkbmV4dE5vZGUtPm5leHRTaWJsaW5nOworCQl9CisJCSRuZXh0TmFtZSA9IG51bGw7CisJCWlmICgoJG5leHROb2RlIGluc3RhbmNlb2YgXERPTUVsZW1lbnQgfHwgJG5leHROb2RlIGluc3RhbmNlb2YgXERPTVRleHQpICYmICRuZXh0Tm9kZSAhPSBudWxsKSB7CisJCQkkbmV4dE5hbWUgPSBzdHJ0b2xvd2VyKCRuZXh0Tm9kZS0+bm9kZU5hbWUpOworCQl9CisKKwkJcmV0dXJuICRuZXh0TmFtZTsKKwl9CisKKwlzdGF0aWMgZnVuY3Rpb24gaXRlcmF0ZU92ZXJOb2RlKCRub2RlLCAkcHJldk5hbWUgPSBudWxsLCAkaW5fcHJlID0gZmFsc2UsICRpc19vZmZpY2VfZG9jdW1lbnQgPSBmYWxzZSkgeworCisJCWlmICgkbm9kZSBpbnN0YW5jZW9mIFxET01UZXh0KSB7CisJCSAgLy8gUmVwbGFjZSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgd2l0aCBhIHNwYWNlIChlcXVpdmlsYW50IHRvIFxzKQorCQkJaWYgKCRpbl9wcmUpIHsKKwkJCQkkdGV4dCA9ICJcbiIgLiB0cmltKCRub2RlLT53aG9sZVRleHQsICJcblxyXHQgIikgLiAiXG4iOworCQkJCS8vIFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIG9ubHkKKwkJCQkkdGV4dCA9IHByZWdfcmVwbGFjZSgiL1sgXHRdKlxuL2ltIiwgIlxuIiwgJHRleHQpOworCQkJCS8vIGFybW9yIG5ld2xpbmVzIHdpdGggXHIuCisJCQkJcmV0dXJuIHN0cl9yZXBsYWNlKCJcbiIsICJcciIsICR0ZXh0KTsKKwkJCX0gZWxzZSB7CisJCQkJJHRleHQgPSBwcmVnX3JlcGxhY2UoIi9bXFx0XFxuXFxmXFxyIF0rL2ltIiwgIiAiLCAkbm9kZS0+d2hvbGVUZXh0KTsKKwkJCQlpZiAoIXN0YXRpYzo6aXNXaGl0ZXNwYWNlKCR0ZXh0KSAmJiAoJHByZXZOYW1lID09ICdwJyB8fCAkcHJldk5hbWUgPT0gJ2RpdicpKSB7CisJCQkJCXJldHVybiAiXG4iIC4gJHRleHQ7CisJCQkJfQorCQkJCXJldHVybiAkdGV4dDsKKwkJCX0KKwkJfQorCQlpZiAoJG5vZGUgaW5zdGFuY2VvZiBcRE9NRG9jdW1lbnRUeXBlKSB7CisJCQkvLyBpZ25vcmUKKwkJCXJldHVybiAiIjsKKwkJfQorCQlpZiAoJG5vZGUgaW5zdGFuY2VvZiBcRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKSB7CisJCQkvLyBpZ25vcmUKKwkJCXJldHVybiAiIjsKKwkJfQorCisJCSRuYW1lID0gc3RydG9sb3dlcigkbm9kZS0+bm9kZU5hbWUpOworCQkkbmV4dE5hbWUgPSBzdGF0aWM6Om5leHRDaGlsZE5hbWUoJG5vZGUpOworCisJCS8vIHN0YXJ0IHdoaXRlc3BhY2UKKwkJc3dpdGNoICgkbmFtZSkgeworCQkJY2FzZSAiaHIiOgorCQkJCSRwcmVmaXggPSAnJzsKKwkJCQlpZiAoJHByZXZOYW1lICE9IG51bGwpIHsKKwkJCQkJJHByZWZpeCA9ICJcbiI7CisJCQkJfQorCQkJCXJldHVybiAkcHJlZml4IC4gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKKworCQkJY2FzZSAic3R5bGUiOgorCQkJY2FzZSAiaGVhZCI6CisJCQljYXNlICJ0aXRsZSI6CisJCQljYXNlICJtZXRhIjoKKwkJCWNhc2UgInNjcmlwdCI6CisJCQkJLy8gaWdub3JlIHRoZXNlIHRhZ3MKKwkJCQlyZXR1cm4gIiI7CisKKwkJCWNhc2UgImgxIjoKKwkJCWNhc2UgImgyIjoKKwkJCWNhc2UgImgzIjoKKwkJCWNhc2UgImg0IjoKKwkJCWNhc2UgImg1IjoKKwkJCWNhc2UgImg2IjoKKwkJCWNhc2UgIm9sIjoKKwkJCWNhc2UgInVsIjoKKwkJCQkvLyBhZGQgdHdvIG5ld2xpbmVzLCBzZWNvbmQgbGluZSBpcyBhZGRlZCBiZWxvdworCQkJCSRvdXRwdXQgPSAiXG4iOworCQkJCWJyZWFrOworCisJCQljYXNlICJ0ZCI6CisJCQljYXNlICJ0aCI6CisJCQkJLy8gYWRkIHRhYiBjaGFyIHRvIHNlcGFyYXRlIHRhYmxlIGZpZWxkcworCQkJICAgJG91dHB1dCA9ICJcdCI7CisJCQkgICBicmVhazsKKworCQkJY2FzZSAicCI6CisJCQkJLy8gTWljcm9zb2Z0IGV4Y2hhbmdlIGVtYWlscyBvZnRlbiBpbmNsdWRlIEhUTUwgd2hpY2gsIHdoZW4gcGFzc2VkIHRocm91Z2gKKwkJCQkvLyBodG1sMnRleHQsIHJlc3VsdHMgaW4gbG90cyBvZiBkb3VibGUgbGluZSByZXR1cm5zIGV2ZXJ5d2hlcmUuCisJCQkJLy8KKwkJCQkvLyBUbyBmaXggdGhpcywgZm9yIGFueSBwIGVsZW1lbnQgd2l0aCBhIGNsYXNzTmFtZSBvZiBgTXNvTm9ybWFsYCAodGhlIHN0YW5kYXJkCisJCQkJLy8gY2xhc3NuYW1lIGluIGFueSBNaWNyb3NvZnQgZXhwb3J0IG9yIG91dGxvb2sgZm9yIGEgcGFyYWdyYXBoIHRoYXQgYmVoYXZlcworCQkJCS8vIGxpa2UgYSBsaW5lIHJldHVybikgd2Ugc2tpcCB0aGUgZmlyc3QgbGluZSByZXR1cm5zIGFuZCBzZXQgdGhlIG5hbWUgdG8gYnIuCisJCQkJaWYgKCRpc19vZmZpY2VfZG9jdW1lbnQgJiYgJG5vZGUtPmdldEF0dHJpYnV0ZSgnY2xhc3MnKSA9PSAnTXNvTm9ybWFsJykgeworCQkJCQkkb3V0cHV0ID0gIiI7CisJCQkJCSRuYW1lID0gJ2JyJzsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCS8vIGFkZCB0d28gbGluZXMKKwkJCQkkb3V0cHV0ID0gIlxuXG4iOworCQkJCWJyZWFrOworCisJCQljYXNlICJwcmUiOgorCQkJY2FzZSAidHIiOgorCQkJY2FzZSAiZGl2IjoKKwkJCQkvLyBhZGQgb25lIGxpbmUKKwkJCQkkb3V0cHV0ID0gIlxuIjsKKwkJCQlicmVhazsKKworCQkJY2FzZSAibGkiOgorCQkJCSRvdXRwdXQgPSAiLSAiOworCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCS8vIHByaW50IG91dCBjb250ZW50cyBvZiB1bmtub3duIHRhZ3MKKwkJCQkkb3V0cHV0ID0gIiI7CisJCQkJYnJlYWs7CisJCX0KKworCQkvLyBkZWJ1ZworCQkvLyRvdXRwdXQgLj0gIlskbmFtZSwkbmV4dE5hbWVdIjsKKworCQlpZiAoaXNzZXQoJG5vZGUtPmNoaWxkTm9kZXMpKSB7CisKKwkJCSRuID0gJG5vZGUtPmNoaWxkTm9kZXMtPml0ZW0oMCk7CisJCQkkcHJldmlvdXNTaWJsaW5nTmFtZSA9IG51bGw7CisKKwkJCXdoaWxlKCRuICE9IG51bGwpIHsKKworCQkJCSR0ZXh0ID0gc3RhdGljOjppdGVyYXRlT3Zlck5vZGUoJG4sICRwcmV2aW91c1NpYmxpbmdOYW1lLCAkaW5fcHJlIHx8ICRuYW1lID09ICdwcmUnLCAkaXNfb2ZmaWNlX2RvY3VtZW50KTsKKworCQkJCS8vIFBhc3MgY3VycmVudCBub2RlIG5hbWUgdG8gbmV4dCBjaGlsZCwgYXMgcHJldmlvdXNTaWJsaW5nIGRvZXMgbm90IGFwcGVhciB0byBnZXQgcG9wdWxhdGVkCisJCQkJaWYgKCRuIGluc3RhbmNlb2YgXERPTURvY3VtZW50VHlwZQorCQkJCQl8fCAkbiBpbnN0YW5jZW9mIFxET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KKwkJCQkJfHwgKCRuIGluc3RhbmNlb2YgXERPTVRleHQgJiYgc3RhdGljOjppc1doaXRlc3BhY2UoJHRleHQpKSkgeworCQkJCQkvLyBLZWVwIGN1cnJlbnQgcHJldmlvdXNTaWJsaW5nTmFtZSwgdGhlc2UgYXJlIGludmlzaWJsZQorCQkJCX0KKwkJCQllbHNlIHsKKwkJCQkJJHByZXZpb3VzU2libGluZ05hbWUgPSBzdHJ0b2xvd2VyKCRuLT5ub2RlTmFtZSk7CisJCQkJfQorCisJCQkJJG5vZGUtPnJlbW92ZUNoaWxkKCRuKTsKKwkJCQkkbiA9ICRub2RlLT5jaGlsZE5vZGVzLT5pdGVtKDApOworCisJCQkJLy8gc3VwcHJlc3MgbGFzdCBiciB0YWcgaW5zaWRlIGEgbm9kZSBsaXN0CisJCQkJaWYgKCRuICE9IG51bGwgfHwgJHByZXZpb3VzU2libGluZ05hbWUgIT0gJ2JyJykgeworCQkJCQkkb3V0cHV0IC49ICR0ZXh0OworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8vIGVuZCB3aGl0ZXNwYWNlCisJCXN3aXRjaCAoJG5hbWUpIHsKKwkJCWNhc2UgImgxIjoKKwkJCWNhc2UgImgyIjoKKwkJCWNhc2UgImgzIjoKKwkJCWNhc2UgImg0IjoKKwkJCWNhc2UgImg1IjoKKwkJCWNhc2UgImg2IjoKKwkJCQkkb3V0cHV0IC49ICJcbiI7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgInAiOgorCQkJCS8vIGFkZCB0d28gbGluZXMKKwkJCQkkb3V0cHV0IC49ICJcblxuIjsKKwkJCQlicmVhazsKKworCQkJY2FzZSAicHJlIjoKKwkJCWNhc2UgImJyIjoKKwkJCQkvLyBhZGQgb25lIGxpbmUKKwkJCQkkb3V0cHV0IC49ICJcbiI7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgImRpdiI6CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgImEiOgorCQkJCS8vIGxpbmtzIGFyZSByZXR1cm5lZCBpbiBbdGV4dF0obGluaykgZm9ybWF0CisJCQkJJGhyZWYgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCJocmVmIik7CisKKwkJCQkkb3V0cHV0ID0gdHJpbSgkb3V0cHV0KTsKKworCQkJCS8vIHJlbW92ZSBkb3VibGUgW1sgXV0gcyBmcm9tIGxpbmtpbmcgaW1hZ2VzCisJCQkJaWYgKHN1YnN0cigkb3V0cHV0LCAwLCAxKSA9PSAiWyIgJiYgc3Vic3RyKCRvdXRwdXQsIC0xKSA9PSAiXSIpIHsKKwkJCQkJJG91dHB1dCA9IHN1YnN0cigkb3V0cHV0LCAxLCBzdHJsZW4oJG91dHB1dCkgLSAyKTsKKworCQkJCQkvLyBmb3IgbGlua2luZyBpbWFnZXMsIHRoZSB0aXRsZSBvZiB0aGUgPGE+IG92ZXJyaWRlcyB0aGUgdGl0bGUgb2YgdGhlIDxpbWc+CisJCQkJCWlmICgkbm9kZS0+Z2V0QXR0cmlidXRlKCJ0aXRsZSIpKSB7CisJCQkJCQkkb3V0cHV0ID0gJG5vZGUtPmdldEF0dHJpYnV0ZSgidGl0bGUiKTsKKwkJCQkJfQorCQkJCX0KKworCQkJCS8vIGlmIHRoZXJlIGlzIG5vIGxpbmsgdGV4dCwgYnV0IGEgdGl0bGUgYXR0cgorCQkJCWlmICghJG91dHB1dCAmJiAkbm9kZS0+Z2V0QXR0cmlidXRlKCJ0aXRsZSIpKSB7CisJCQkJCSRvdXRwdXQgPSAkbm9kZS0+Z2V0QXR0cmlidXRlKCJ0aXRsZSIpOworCQkJCX0KKworCQkJCWlmICgkaHJlZiA9PSBudWxsKSB7CisJCQkJCS8vIGl0IGRvZXNuJ3QgbGluayBhbnl3aGVyZQorCQkJCQlpZiAoJG5vZGUtPmdldEF0dHJpYnV0ZSgibmFtZSIpICE9IG51bGwpIHsKKwkJCQkJCSRvdXRwdXQgPSAiWyRvdXRwdXRdIjsKKwkJCQkJfQorCQkJCX0gZWxzZSB7CisJCQkJCWlmICgkaHJlZiA9PSAkb3V0cHV0IHx8ICRocmVmID09ICJtYWlsdG86JG91dHB1dCIgfHwgJGhyZWYgPT0gImh0dHA6Ly8kb3V0cHV0IiB8fCAkaHJlZiA9PSAiaHR0cHM6Ly8kb3V0cHV0IikgeworCQkJCQkJLy8gbGluayB0byB0aGUgc2FtZSBhZGRyZXNzOiBqdXN0IHVzZSBsaW5rCisJCQkJCQkkb3V0cHV0OworCQkJCQl9IGVsc2UgeworCQkJCQkJLy8gcmVwbGFjZSBpdAorCQkJCQkJaWYgKCRvdXRwdXQpIHsKKwkJCQkJCQkkb3V0cHV0ID0gIlskb3V0cHV0XSgkaHJlZikiOworCQkJCQkJfSBlbHNlIHsKKwkJCQkJCQkvLyBlbXB0eSBzdHJpbmcKKwkJCQkJCQkkb3V0cHV0ID0gJGhyZWY7CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9CisKKwkJCQkvLyBkb2VzIHRoZSBuZXh0IG5vZGUgcmVxdWlyZSBhZGRpdGlvbmFsIHdoaXRlc3BhY2U/CisJCQkJc3dpdGNoICgkbmV4dE5hbWUpIHsKKwkJCQkJY2FzZSAiaDEiOiBjYXNlICJoMiI6IGNhc2UgImgzIjogY2FzZSAiaDQiOiBjYXNlICJoNSI6IGNhc2UgImg2IjoKKwkJCQkJCSRvdXRwdXQgLj0gIlxuIjsKKwkJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSAiaW1nIjoKKwkJCQlpZiAoJG5vZGUtPmdldEF0dHJpYnV0ZSgidGl0bGUiKSkgeworCQkJCQkkb3V0cHV0ID0gIlsiIC4gJG5vZGUtPmdldEF0dHJpYnV0ZSgidGl0bGUiKSAuICJdIjsKKwkJCQl9IGVsc2VpZiAoJG5vZGUtPmdldEF0dHJpYnV0ZSgiYWx0IikpIHsKKwkJCQkJJG91dHB1dCA9ICJbIiAuICRub2RlLT5nZXRBdHRyaWJ1dGUoImFsdCIpIC4gIl0iOworCQkJCX0gZWxzZSB7CisJCQkJCSRvdXRwdXQgPSAiIjsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgImxpIjoKKwkJCQkkb3V0cHV0IC49ICJcbiI7CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJLy8gZG8gbm90aGluZworCQl9CisKKwkJcmV0dXJuICRvdXRwdXQ7CisJfQorfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC9zcmMvSHRtbDJUZXh0RXhjZXB0aW9uLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvc3JjL0h0bWwyVGV4dEV4Y2VwdGlvbi5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRmYTg2NQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvc3JjL0h0bWwyVGV4dEV4Y2VwdGlvbi5waHAKQEAgLTAsMCArMSwyOCBAQAorPD9waHAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChjKSAyMDEwIEpldm9uIFdyaWdodCBhbmQgb3RoZXJzLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqCisgKiBvcgorICoKKyAqIExHUEwgd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLmh0bWwKKyAqCisgKgorICogQ29udHJpYnV0b3JzOgorICogICAgSmV2b24gV3JpZ2h0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworbmFtZXNwYWNlIEh0bWwyVGV4dDsKKworY2xhc3MgSHRtbDJUZXh0RXhjZXB0aW9uIGV4dGVuZHMgXEV4Y2VwdGlvbiB7CisJdmFyICRtb3JlX2luZm87CisKKwlwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG1lc3NhZ2UgPSAiIiwgJG1vcmVfaW5mbyA9ICIiKSB7CisJCXBhcmVudDo6X19jb25zdHJ1Y3QoJG1lc3NhZ2UpOworCQkkdGhpcy0+bW9yZV9pbmZvID0gJG1vcmVfaW5mbzsKKwl9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzLy5lZGl0b3Jjb25maWcgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzLy5lZGl0b3Jjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM0ODVlZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvLmVkaXRvcmNvbmZpZwpAQCAtMCwwICsxLDEwIEBACisjIEVkaXRvckNvbmZpZyBpcyBhd2Vzb21lOiBodHRwOi8vRWRpdG9yQ29uZmlnLm9yZworCisjIGRvbid0IGFkZCBuZXdsaW5lcyB0byB0ZXN0IGZpbGVzCitbKl0KK2luc2VydF9maW5hbF9uZXdsaW5lID0gZmFsc2UKK3RyaW1fdHJhaWxpbmdfd2hpdGVzcGFjZSA9IGZhbHNlCisKK1sqKi50eHRdCitpbnNlcnRfZmluYWxfbmV3bGluZSA9IGZhbHNlCit0cmltX3RyYWlsaW5nX3doaXRlc3BhY2UgPSBmYWxzZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9IdG1sMlRleHRDb21wb25lbnRUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvSHRtbDJUZXh0Q29tcG9uZW50VGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVkNGU1ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvSHRtbDJUZXh0Q29tcG9uZW50VGVzdC5waHAKQEAgLTAsMCArMSw5IEBACis8P3BocAorCitjbGFzcyBIdG1sMlRleHRDb21wb25lbnRUZXN0IGV4dGVuZHMgXENvbXBvbmVudFRlc3RzXENvbXBvbmVudFRlc3QgeworCisJZnVuY3Rpb24gZ2V0Um9vdHMoKSB7CisJCXJldHVybiBhcnJheShfX0RJUl9fIC4gIi8uLiIpOworCX0KKworfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9IdG1sMlRleHRUZXN0LnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvSHRtbDJUZXh0VGVzdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY5YjhiMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvSHRtbDJUZXh0VGVzdC5waHAKQEAgLTAsMCArMSwxMDEgQEAKKzw/cGhwCisKK2NsYXNzIEh0bWwyVGV4dFRlc3QgZXh0ZW5kcyBQSFBVbml0X0ZyYW1ld29ya19UZXN0Q2FzZSB7CisKKwlmdW5jdGlvbiBkb1Rlc3QoJHRlc3QsICRpZ25vcmVYbWxFcnJvciA9IGZhbHNlKSB7CisJCSR0aGlzLT5hc3NlcnRUcnVlKGZpbGVfZXhpc3RzKF9fRElSX18gLiAiLyR0ZXN0Lmh0bWwiKSwgIkZpbGUgJyR0ZXN0Lmh0bWwnIGRpZCBub3QgZXhpc3QiKTsKKwkJJHRoaXMtPmFzc2VydFRydWUoZmlsZV9leGlzdHMoX19ESVJfXyAuICIvJHRlc3QudHh0IiksICJGaWxlICckdGVzdC50eHQnIGRpZCBub3QgZXhpc3QiKTsKKwkJJGlucHV0ID0gZmlsZV9nZXRfY29udGVudHMoX19ESVJfXyAuICIvJHRlc3QuaHRtbCIpOworCQkkZXhwZWN0ZWQgPSBIdG1sMlRleHRcSHRtbDJUZXh0OjpmaXhOZXdsaW5lcyhmaWxlX2dldF9jb250ZW50cyhfX0RJUl9fIC4gIi8kdGVzdC50eHQiKSk7CisKKwkJJG91dHB1dCA9IEh0bWwyVGV4dFxIdG1sMlRleHQ6OmNvbnZlcnQoJGlucHV0LCAkaWdub3JlWG1sRXJyb3IpOworCisJCWlmICgkb3V0cHV0ICE9ICRleHBlY3RlZCkgeworCQkJZmlsZV9wdXRfY29udGVudHMoX19ESVJfXyAuICIvJHRlc3Qub3V0cHV0IiwgJG91dHB1dCk7CisJCX0KKwkJJHRoaXMtPmFzc2VydEVxdWFscygkb3V0cHV0LCAkZXhwZWN0ZWQpOworCX0KKworCWZ1bmN0aW9uIHRlc3RCYXNpYygpIHsKKwkJJHRoaXMtPmRvVGVzdCgiYmFzaWMiKTsKKwl9CisKKwlmdW5jdGlvbiB0ZXN0QW5jaG9ycygpIHsKKwkJJHRoaXMtPmRvVGVzdCgiYW5jaG9ycyIpOworCX0KKworCWZ1bmN0aW9uIHRlc3RNb3JlQW5jaG9ycygpIHsKKwkJJHRoaXMtPmRvVGVzdCgibW9yZS1hbmNob3JzIik7CisJfQorCisJZnVuY3Rpb24gdGVzdDMoKSB7CisJCSR0aGlzLT5kb1Rlc3QoInRlc3QzIik7CisJfQorCisJZnVuY3Rpb24gdGVzdDQoKSB7CisJCSR0aGlzLT5kb1Rlc3QoInRlc3Q0Iik7CisJfQorCisJZnVuY3Rpb24gdGVzdFRhYmxlKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJ0YWJsZSIpOworCX0KKworCWZ1bmN0aW9uIHRlc3ROYnNwKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJuYnNwIik7CisJfQorCisJZnVuY3Rpb24gdGVzdExpc3RzKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJsaXN0cyIpOworCX0KKworCWZ1bmN0aW9uIHRlc3RQcmUoKSB7CisJCSR0aGlzLT5kb1Rlc3QoInByZSIpOworCX0KKworCWZ1bmN0aW9uIHRlc3RGdWxsRW1haWwoKSB7CisJCSR0aGlzLT5kb1Rlc3QoImZ1bGxfZW1haWwiKTsKKwl9CisKKwlmdW5jdGlvbiB0ZXN0SW1hZ2VzKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJpbWFnZXMiKTsKKwl9CisKKwlmdW5jdGlvbiB0ZXN0Tm9uQnJlYWtpbmdTcGFjZXMoKSB7CisJCSR0aGlzLT5kb1Rlc3QoIm5vbi1icmVha2luZy1zcGFjZXMiKTsKKwl9CisKKwlmdW5jdGlvbiB0ZXN0VXRmOEV4YW1wbGUoKSB7CisJCSR0aGlzLT5kb1Rlc3QoInV0ZjgtZXhhbXBsZSIpOworCX0KKworCWZ1bmN0aW9uIHRlc3RXaW5kb3dzMTI1MkV4YW1wbGUoKSB7CisJCSR0aGlzLT5kb1Rlc3QoIndpbmRvd3MtMTI1Mi1leGFtcGxlIik7CisJfQorCisJZnVuY3Rpb24gdGVzdE1zb2ZmaWNlKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJtc29mZmljZSIpOworCX0KKworCWZ1bmN0aW9uIHRlc3RET01Qcm9jZXNzaW5nKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJkb20tcHJvY2Vzc2luZyIpOworCX0KKworCWZ1bmN0aW9uIHRlc3RFbXB0eSgpIHsKKwkJJHRoaXMtPmRvVGVzdCgiZW1wdHkiKTsKKwl9CisKKwlmdW5jdGlvbiB0ZXN0SHVnZU1zb2ZmaWNlKCkgeworCQkkdGhpcy0+ZG9UZXN0KCJodWdlLW1zb2ZmaWNlIik7CisJfQorCisJLyoqCisgICAgICogQGV4cGVjdGVkRXhjZXB0aW9uIFBIUFVuaXRfRnJhbWV3b3JrX0Vycm9yX1dhcm5pbmcKKyAgICAgKi8KKwlmdW5jdGlvbiB0ZXN0SW52YWxpZFhNTCgpIHsKKwkJJHRoaXMtPmRvVGVzdCgiaW52YWxpZCIsIGZhbHNlKTsKKwl9CisKKwlmdW5jdGlvbiB0ZXN0SW52YWxpZFhNTElnbm9yZSgpIHsKKwkJJHRoaXMtPmRvVGVzdCgiaW52YWxpZCIsIHRydWUpOworCX0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvYW5jaG9ycy5odG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9hbmNob3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQxM2M1MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvYW5jaG9ycy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKK0EgZG9jdW1lbnQgd2l0aG91dCBhbnkgSFRNTCBvcGVuL2Nsb3NpbmcgdGFncy4NCisNCis8aHI+DQorDQorV2UgdHJ5IGFuZCB1c2UgdGhlIHJlcHJlc2VudGF0aW9uIGdpdmVuIGJ5IGNvbW1vbiBicm93c2VycyBvZiB0aGUgDQorSFRNTCBkb2N1bWVudCwgc28gdGhhdCBpdCBsb29rcyBzaW1pbGFyIHdoZW4gY29udmVydGVkIHRvIHBsYWluIHRleHQuDQorDQorPGEgaHJlZj0iaHR0cDovL2Zvby5jb20iPnZpc2l0IGZvby5jb208L2E+IC0gb3IgPGEgaHJlZj0iaHR0cDovL3d3dy5mb28uY29tIj5odHRwOi8vd3d3LmZvby5jb208L2E+DQorDQorPGEgaHJlZj0iaHR0cDovL2Zvby5jb20iIHRpdGxlPSJhIGxpbmsgd2l0aCBhIHRpdGxlIj5saW5rPC9hPg0KKw0KKzxoMj48YSBuYW1lPSJhbmNob3IiPkFuIGFuY2hvciB3aGljaCB3aWxsIG5vdCBhcHBlYXI8L2E+PC9oMj4NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2FuY2hvcnMudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9hbmNob3JzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTQ0MGNmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9hbmNob3JzLnR4dApAQCAtMCwwICsxLDUgQEAKK0EgZG9jdW1lbnQgd2l0aG91dCBhbnkgSFRNTCBvcGVuL2Nsb3NpbmcgdGFncy4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorV2UgdHJ5IGFuZCB1c2UgdGhlIHJlcHJlc2VudGF0aW9uIGdpdmVuIGJ5IGNvbW1vbiBicm93c2VycyBvZiB0aGUgSFRNTCBkb2N1bWVudCwgc28gdGhhdCBpdCBsb29rcyBzaW1pbGFyIHdoZW4gY29udmVydGVkIHRvIHBsYWluIHRleHQuIFt2aXNpdCBmb28uY29tXShodHRwOi8vZm9vLmNvbSkgLSBvciBodHRwOi8vd3d3LmZvby5jb20gW2xpbmtdKGh0dHA6Ly9mb28uY29tKQorCitbQW4gYW5jaG9yIHdoaWNoIHdpbGwgbm90IGFwcGVhcl0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2Jhc2ljLmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2Jhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY0NjY5MwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvYmFzaWMuaHRtbApAQCAtMCwwICsxLDIxIEBACis8aHRtbD4NCis8dGl0bGU+SWdub3JlZCBUaXRsZTwvdGl0bGU+DQorPGJvZHk+DQorICA8aDE+SGVsbG8sIFdvcmxkITwvaDE+DQorDQorICA8cD5UaGlzIGlzIHNvbWUgZS1tYWlsIGNvbnRlbnQuDQorICBFdmVuIHRob3VnaCBpdCBoYXMgd2hpdGVzcGFjZSBhbmQgbmV3bGluZXMsIHRoZSBlLW1haWwgY29udmVydGVyDQorICB3aWxsIGhhbmRsZSBpdCBjb3JyZWN0bHkuDQorDQorICA8cD5FdmVuIG1pc21hdGNoZWQgdGFncy48L3A+DQorDQorICA8ZGl2PkEgZGl2PC9kaXY+DQorICA8ZGl2PkFub3RoZXIgZGl2PC9kaXY+DQorICA8ZGl2PkEgZGl2PGRpdj53aXRoaW4gYSBkaXY8L2Rpdj48L2Rpdj4NCisNCisgIDxwPkFub3RoZXIgbGluZTxiciAvPllldCBhbm90aGVyIGxpbmU8L3A+DQorDQorICA8YSBocmVmPSJodHRwOi8vZm9vLmNvbSI+QSBsaW5rPC9hPg0KKw0KKzwvYm9keT4NCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9iYXNpYy50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2Jhc2ljLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjhmMzdkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9iYXNpYy50eHQKQEAgLTAsMCArMSwxNSBAQAorSGVsbG8sIFdvcmxkIQorCitUaGlzIGlzIHNvbWUgZS1tYWlsIGNvbnRlbnQuIEV2ZW4gdGhvdWdoIGl0IGhhcyB3aGl0ZXNwYWNlIGFuZCBuZXdsaW5lcywgdGhlIGUtbWFpbCBjb252ZXJ0ZXIgd2lsbCBoYW5kbGUgaXQgY29ycmVjdGx5LgorCitFdmVuIG1pc21hdGNoZWQgdGFncy4KKworQSBkaXYKK0Fub3RoZXIgZGl2CitBIGRpdgord2l0aGluIGEgZGl2CisKK0Fub3RoZXIgbGluZQorWWV0IGFub3RoZXIgbGluZQorCitbQSBsaW5rXShodHRwOi8vZm9vLmNvbSkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2RvbS1wcm9jZXNzaW5nLmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2RvbS1wcm9jZXNzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJhODExZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvZG9tLXByb2Nlc3NpbmcuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorPGJvZHk+Cis8P2EKK0kgYW0gYSByYW5kb20gcGllY2Ugb2YgY29kZQorPz4KK0hlbGxvCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9kb20tcHJvY2Vzc2luZy50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2RvbS1wcm9jZXNzaW5nLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWIyZjhhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9kb20tcHJvY2Vzc2luZy50eHQKQEAgLTAsMCArMSBAQAorSGVsbG8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2VtcHR5Lmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2VtcHR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvZW1wdHkuaHRtbApkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9lbXB0eS50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2VtcHR5LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9lbXB0eS50eHQKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvZnVsbF9lbWFpbC5odG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9mdWxsX2VtYWlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiNjViZgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvZnVsbF9lbWFpbC5odG1sCkBAIC0wLDAgKzEsMjIwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgIDxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD02ODAiPgorICA8L2hlYWQ+CisgIDxib2R5IGNsYXNzPSJjYXQtdXBkYXRlLWVtYWlsIGNhdC11cGRhdGUiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjZmZjY2VlOyBjb2xvcjogYmx1ZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlciIgYmdjb2xvcj0iI2ZmY2NlZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorYm9keS5jYXQtdXBkYXRlLWVtYWlsIHsKK21hcmdpbjogMDsgcGFkZGluZzogMDsgYmFja2dyb3VuZDogI2ZmY2NlZTsgY29sb3I6IGJsdWU7IHRleHQtYWxpZ246IGNlbnRlcjsKK30KK2JvZHkuY2F0LXVwZGF0ZS1lbWFpbCB7Citmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtd2VpZ2h0OiBub3JtYWw7Cit9Citib2R5LmNhdC11cGRhdGUtZW1haWwgdGggeworZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXdlaWdodDogbm9ybWFsOworfQorYm9keS5jYXQtdXBkYXRlLWVtYWlsIHRkIHsKK2ZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsKK30KKzwvc3R5bGU+CisgICAgPHRhYmxlIGNsYXNzPSJoZWFkZXItd3JhcHBlciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMDsgd2lkdGg6IDEwMCUiPgorICAgICAgPHRyPgorICAgICAgICA8dGQgY2xhc3M9ImhlYWRlciIgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmU7IGNvbG9yOiAjOTk5OyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHBhZGRpbmc6IDE1cHggMCI+CisgICAgICAgICAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDAgMjBweDsgd2lkdGg6IDY0MHB4Ij4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPHRoIHN0eWxlPSJmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWwiPgorICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJsb2dvIiBocmVmPSJodHRwOi8vbG9jYWxob3N0L2hvbWUiIHN0eWxlPSJjb2xvcjogcmVkOyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPgorICAgICAgICAgICAgICAgICAgPGltZyBib3JkZXI9IjAiIGhlaWdodD0iMzIiIHNyYz0idGVzdC5wbmciIHdpZHRoPSIyMDAiIHN0eWxlPSJkaXNwbGF5OiBibG9jayI+Cis8L2E+ICAgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgICA8dGQgY2xhc3M9ImFjY291bnQtbnVtYmVyIiBzdHlsZT0iY29sb3I6IHdoaXRlOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IHJpZ2h0IiBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgIDE2IERlY2VtYmVyIDIwMTU8YnI+CisgICAgICAgICAgICAgICAgQWNjb3VudCAxMjMKKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKworICAgIDx0YWJsZSBjbGFzcz0ic2VjdGlvbi13cmFwcGVyIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlcjogbm9uZTsgbWFyZ2luOiAwIGF1dG8gMjBweDsgd2lkdGg6IDY0MHB4Ij4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIGNsYXNzPSJzYWx1dGF0aW9uIHNlY3Rpb24iIHN0eWxlPSJiYWNrZ3JvdW5kOiB3aGl0ZTsgY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMCBhdXRvIDIwcHg7IHBhZGRpbmc6IDQwcHggMjBweDsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDYwMHB4IiBhbGlnbj0ibGVmdCIgYmdjb2xvcj0id2hpdGUiPgorICAgICAgICAgICAgPGgxIGNsYXNzPSJ1c2VyX2dyZWV0aW5nIiBzdHlsZT0iZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxLjg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxLjI7IG1hcmdpbjogMCAwIDFlbSI+CisgICAgSGkgU3VzYW4KKyAgPC9oMT4KKyAgPHAgY2xhc3M9Im1lc3NhZ2UiIHN0eWxlPSJmb250LXNpemU6IDEuNWVtOyBsaW5lLWhlaWdodDogMS4yOyBtYXJnaW46IDAiPgorICAgICAgSGVyZSBpcyB5b3VyIGNhdCByZXBvcnQuCisgIDwvcD4KKworICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorCisKKworCis8dGFibGUgY2xhc3M9InNlY3Rpb24td3JhcHBlciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMCBhdXRvIDIwcHg7IHdpZHRoOiA2NDBweCI+CisgIDx0cj4KKyAgICA8dGQgY2xhc3M9ImJhbGFuY2Ugc2VjdGlvbiIgc3R5bGU9ImJhY2tncm91bmQ6IHdoaXRlOyBjb2xvcjogYmxhY2s7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwIGF1dG8gMjBweDsgcGFkZGluZzogNDBweCAyMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogNjAwcHgiIGFsaWduPSJsZWZ0IiBiZ2NvbG9yPSJ3aGl0ZSI+CisgICAgICA8ZGl2IGNsYXNzPSJhY2NvdW50LXN0YXR1cy1oZWFkaW5nIiBzdHlsZT0iZm9udC1zaXplOiAyLjVlbTsgbGluZS1oZWlnaHQ6IDFlbTsgcGFkZGluZzogMzBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXIiIGFsaWduPSJjZW50ZXIiPllvdSBoYXZlIGZvdW5kIDxzcGFuIGNsYXNzPSJzdGF0dXMtY2F0cy1uZWdhdGl2ZSIgc3R5bGU9ImNvbG9yOiAjZGYwMDAwIj41IGNhdHM8L3NwYW4+IGxlc3MgdGhhbiBhbnlvbmUgZWxzZTwvZGl2PgorCisgICAgICA8ZGl2IGlkPSJjYXQtdXBkYXRlLWFjdGlvbi1idXR0b25zIj4KKyAgICAgICAgPGRpdiBpZD0iYnV5LWJ1dHRvbiIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlciIgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgPGEgY2xhc3M9ImJ0bi1hbGVydCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC9jYXRzIiBpZD0iYnV5LWNhdHMtYnV0dG9uIiBzdHlsZT0iLW1vei1hcHBlYXJhbmNlOiBub25lOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IGJhY2tncm91bmQ6ICNERjAwMDA7IGJvcmRlci1yYWRpdXM6IDNweDsgYm9yZGVyOiAxMXB4IHNvbGlkICNkZjAwMDA7IGNvbG9yOiAjZmZmOyBjdXJzb3I6IHBvaW50ZXI7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDE2cHg7IGhlaWdodDogMTZweDsgbGluZS1oZWlnaHQ6IDE2cHg7IG1hcmdpbjogMCBhdXRvOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjE1czsgd2lkdGg6IDEyMHB4Ij5GaW5kIG1vcmUgY2F0czwvYT4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L3RkPgorICA8L3RyPgorPC90YWJsZT4KKworPHRhYmxlIGNsYXNzPSJzZWN0aW9uLXdyYXBwZXIiIHN0eWxlPSJib3JkZXItc3BhY2luZzogMDsgYm9yZGVyOiBub25lOyBtYXJnaW46IDAgYXV0byAyMHB4OyB3aWR0aDogNjQwcHgiPgorICA8dHI+CisgICAgPHRkIGNsYXNzPSJjYXRzIHNlY3Rpb24iIGlkPSJjYXRzIiBzdHlsZT0iYmFja2dyb3VuZDogd2hpdGU7IGNvbG9yOiBibGFjazsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDAgYXV0byAyMHB4OyBwYWRkaW5nOiA0MHB4IDIwcHg7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiA2MDBweCIgYWxpZ249ImxlZnQiIGJnY29sb3I9IndoaXRlIj4KKyAgICAgIDxkaXYgY2xhc3M9ImNhdHMtdXNhZ2UiPgorICA8aDIgc3R5bGU9ImZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMS44OyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS4yOyBtYXJnaW46IDAiPkRvd24gdGhlIHJvYWQ8L2gyPgorICA8cCBjbGFzcz0iZmluZS1wcmludCIgc3R5bGU9Im1hcmdpbjogMCI+QWNyb3NzIHRoZSBoYWxsPC9wPgorCisgIDxoMyBzdHlsZT0iZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMmVtOyBtYXJnaW46IDEwcHggMCAwIj5Zb3VyIGFjaGlldmVtZW50czwvaDM+CisgIDx0YWJsZSBjbGFzcz0iY3VycmVudC11c2FnZSB3aXRoLWljb24tbGVmdCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyBtYXJnaW4tYm90dG9tOiAyMHB4OyBtYXJnaW4tdG9wOiAyMHB4OyB3aWR0aDogMTAwJSI+CisgICAgPHRyPgorICAgICAgPHRoIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgd2lkdGg6IDUwcHgiIGFsaWduPSJsZWZ0IiB2YWxpZ249Im1pZGRsZSI+PGltZyBzcmM9InRlc3QucG5nIj48L3RoPgorICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogNTUwcHgiIHZhbGlnbj0idG9wIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idG9wIj5Zb3UncmUgY3VycmVudGx5IGZpbmRpbmcgYWJvdXQ8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ibGFyZ2UiIHN0eWxlPSJjb2xvcjogYmxhY2s7IGZvbnQtc2l6ZTogMThweDsgcGFkZGluZzogNHB4IDAiPjEyIGNhdHM8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iYm90dG9tIj5wZXIgZGF5PC9kaXY+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPjx0ZCBjb2xzcGFuPSIyIiBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDU1MHB4IiB2YWxpZ249InRvcCI+wqA8L3RkPjwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIGNvbHNwYW49IjIiIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogNTUwcHgiIHZhbGlnbj0idG9wIj48aW1nIGFsdD0iTnVtYmVyIG9mIGNhdHMgZm91bmQiIHNyYz0idGVzdC5wbmciPjwvdGQ+CisgICAgPC90cj4KKyAgPC90YWJsZT4KKzwvZGl2PgorCisKKyAgICAgICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+CisgIDxociBjbGFzcz0iZmluZS1wcmludCIgc3R5bGU9ImJvcmRlci1ib3R0b20tY29sb3I6ICNlZWU7IGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDAgMCAxcHg7IG1hcmdpbjogMjBweCAwIj4KKworICA8aDMgc3R5bGU9ImZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGluZS1oZWlnaHQ6IDJlbTsgbWFyZ2luOiAxMHB4IDAgMCI+WW91ciBsYXN0IGNhdCB3YXMgZm91bmQgdHdvIGRheXMgYWdvLjwvaDM+CisgIDxwIGNsYXNzPSJmaW5lLXByaW50IiBzdHlsZT0ibWFyZ2luOiAwIj5PbmUgdHlwZSBvZiBjYXQgaXMgYSBraXR0ZW4uPC9wPgorCisgIDx0YWJsZSBjbGFzcz0icmVhZGluZ3MiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgbWFyZ2luOiAxMHB4IDA7IHdpZHRoOiAxMDAlIj4KKyAgICAgIDx0ciBzdHlsZT0iY29sb3I6ICNCRDIzNkMiPgorICAgICAgICA8dGQgY2xhc3M9ImxlZnQtY29sdW1uIiBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgd2lkdGg6IDUlIj4KKyAgICAgICAgICA8aW1nIHNyYz0idGVzdC5wbmciIHN0eWxlPSJwYWRkaW5nLXRvcDogMTBweCI+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0iY2VudGVyLWNvbHVtbiIgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IHdpZHRoOiA2MCUiPgorICAgICAgICAgIDxoMyBzdHlsZT0iZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxOHB4OyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMmVtOyBtYXJnaW46IDEwcHggMCAwIj5TcGVjaWFsIGFjY291bnQgPHNwYW4gY2xhc3M9Im5pY2tuYW1lIiBzdHlsZT0iZm9udC1zaXplOiAxMnB4Ij48L3NwYW4+IDxzcGFuIGNsYXNzPSJmaW5lLXByaW50Ij5BMTwvc3Bhbj4KKzwvaDM+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0icmlnaHQtY29sdW1uIiBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgd2lkdGg6IDIwJSI+CisgICAgICAgICAgPGgzIHN0eWxlPSJmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAyZW07IG1hcmdpbjogMTBweCAwIDAiPjEyLjM0NTwvaDM+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogMCI+PC90ZD4KKyAgICAgIDwvdHI+CisgIDwvdGFibGU+CisKKzwvZGl2PgorCisgICAgPC90ZD4KKyAgPC90cj4KKzwvdGFibGU+CisKKyAgPGRpdiBjbGFzcz0iYmFubmVyIiBzdHlsZT0ibWFyZ2luOiAwIGF1dG8gMjBweDsgcGFkZGluZzogMTBweDsgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogNjQwcHgiIGFsaWduPSJjZW50ZXIiPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3QvbG9nb3V0IiBzdHlsZT0iY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj4KKyAgICAgIDxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgaGVpZ2h0PSIxNzciIHNyYz0iaHR0cDovL2xvY2FsaG9zdC9waG90bzEucG5nIiB3aWR0aD0iNjAwIj4KKyAgICA8L2E+Cis8L2Rpdj4KKworICA8dGFibGUgY2xhc3M9InNlY3Rpb24td3JhcHBlciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXI6IG5vbmU7IG1hcmdpbjogMCBhdXRvIDIwcHg7IHdpZHRoOiA2NDBweCI+CisgICAgPHRyPgorICAgICAgPHRkIGNsYXNzPSJ0aXBzIHNlY3Rpb24iIHN0eWxlPSJiYWNrZ3JvdW5kOiB3aGl0ZTsgY29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMCBhdXRvIDIwcHg7IHBhZGRpbmc6IDQwcHggMjBweDsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDYwMHB4IiBhbGlnbj0ibGVmdCIgYmdjb2xvcj0id2hpdGUiPgorICAgICAgICA8dGFibGUgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGJvcmRlci1zcGFjaW5nOiAwOyB3aWR0aDogMTAwJSI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiA1cHggMCAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMjAwcHgiIHZhbGlnbj0idG9wIj48aDIgc3R5bGU9ImZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMS44OyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS4yOyBtYXJnaW46IDAgMCAxMHB4Ij5Ib3cgY2FuIHlvdSBmaW5kIG1vcmUgY2F0cz88L2gyPjwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iaWNvbiI+CisgICAgICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogNXB4IDAgMDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+PGltZyBoZWlnaHQ9IjQwIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvcGhvdG8xLnBuZyIgd2lkdGg9IjQwIj48L3RkPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDAgMTdweDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+PGltZyBoZWlnaHQ9IjQwIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvcGhvdG8yLnBuZyIgd2lkdGg9IjQwIj48L3RkPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDAgMTdweDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+PGltZyBoZWlnaHQ9IjQwIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvcGhvdG8zLnBuZyIgd2lkdGg9IjQwIj48L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9InN1YnRpdGxlIj4KKyAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiA1cHggMCAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMjAwcHgiIHZhbGlnbj0idG9wIj48aDMgc3R5bGU9ImZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGluZS1oZWlnaHQ6IDJlbTsgbWFyZ2luOiAwIDAgNXB4Ij5Mb29rIGluIHRyYXNoIGNhbnM8L2gzPjwvdGQ+CisgICAgICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogNXB4IDAgMCAxN3B4OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMjAwcHgiIHZhbGlnbj0idG9wIj48aDMgc3R5bGU9ImZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGluZS1oZWlnaHQ6IDJlbTsgbWFyZ2luOiAwIDAgNXB4Ij5TdGFydCBtZW93aW5nPC9oMz48L3RkPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDAgMTdweDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+PGgzIHN0eWxlPSJmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAyZW07IG1hcmdpbjogMCAwIDVweCI+RWF0IGNhdCBmb29kPC9oMz48L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImJvZHkiIHN0eWxlPSJjb2xvcjogZ3JlZW4iPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDA7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAyMDBweCIgdmFsaWduPSJ0b3AiPlNvbWUgY2F0cyBsaWtlIHRvIGhhbmcgb3V0IGluIHRyYXNoIGNhbnMuIFNvbWUgY2F0cyBkbyBub3QuPC90ZD4KKyAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiA1cHggMCAwIDE3cHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAyMDBweCIgdmFsaWduPSJ0b3AiPlNvbWUgY2F0cyBhcmUgYXR0cmFjdGVkIHRvIHNpbWlsYXIgdG9uZXMuPC90ZD4KKyAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiA1cHggMCAwIDE3cHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAyMDBweCIgdmFsaWduPSJ0b3AiPlNvIG9uZSBkYXkgeW91ciB0ZWFycyBtYXkgc21lbGwgbGlrZSBjYXQgZm9vZCwgYXR0cmFjdGluZyBtb3JlIGNhdHMuPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJpbWFnZSI+CisgICAgICAgICAgICAgIDx0ZCBzdHlsZT0iYm9yZGVyOiBub25lOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMDsgcGFkZGluZzogNXB4IDAgMDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2xvY2FsaG9zdC9hYm91dCIgc3R5bGU9ImNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+CisgICAgICAgICAgICAgICAgICAgIDxpbWcgYm9yZGVyPSIwIiBoZWlnaHQ9IjEzMCIgc3JjPSJodHRwOi8vbG9jYWxob3N0L3Bob3RvMS5wbmciIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAxMHB4IDAiIHdpZHRoPSIxNjUiPgorICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDAgMTdweDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2xvY2FsaG9zdC9hYm91dCIgc3R5bGU9ImNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+CisgICAgICAgICAgICAgICAgICAgIDxpbWcgYm9yZGVyPSIwIiBoZWlnaHQ9IjEzMCIgc3JjPSJodHRwOi8vbG9jYWxob3N0L3Bob3RvMi5wbmciIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAxMHB4IDAiIHdpZHRoPSIxNjUiPgorICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDAgMTdweDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2xvY2FsaG9zdC9hYm91dCIgc3R5bGU9ImNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+CisgICAgICAgICAgICAgICAgICAgIDxpbWcgYm9yZGVyPSIwIiBoZWlnaHQ9IjEzMCIgc3JjPSJodHRwOi8vbG9jYWxob3N0L3Bob3RvMy5wbmciIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAxMHB4IDAiIHdpZHRoPSIxNjUiPgorICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9InRpcHMtZm9vdGVyIiBzdHlsZT0iY29sb3I6IGdyZWVuIj4KKyAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiA1cHggMCAwOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMjAwcHgiIHZhbGlnbj0idG9wIj4KKyAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zb3VuZGFzbGVlcC9odG1sMnRleHRfcnVieSIgc3R5bGU9ImNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+Q2F0cyBhcmUgZ3JlYXQuPC9hPgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICA8dGQgc3R5bGU9ImJvcmRlcjogbm9uZTsgZm9udC1mYW1pbHk6IFRpbWVzIE5ldyBSb21hbjsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46IDA7IHBhZGRpbmc6IDVweCAwIDAgMTdweDsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDIwMHB4IiB2YWxpZ249InRvcCI+CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0X3J1YnkiIHN0eWxlPSJjb2xvcjogcmVkOyB0ZXh0LWRlY29yYXRpb246IG5vbmUiPkZpbmQgbW9yZSBjYXRzLjwvYT4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgPHRkIHN0eWxlPSJib3JkZXI6IG5vbmU7IGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAwOyBwYWRkaW5nOiA1cHggMCAwIDE3cHg7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAyMDBweCIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NvdW5kYXNsZWVwL2h0bWwydGV4dF9ydWJ5IiBzdHlsZT0iY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj5EbyBtb3JlIHRoaW5ncy48L2E+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgPC90YWJsZT4KKworCisKKworCisgICAgPHRhYmxlIGNsYXNzPSJmb290ZXItd3JhcHBlciIgc3R5bGU9Im1hcmdpbjogMCBhdXRvIDIwcHgiPgorICAgICAgPHRyPgorICAgICAgICA8dGQgY2xhc3M9ImZvb3RlciIgc3R5bGU9ImNvbG9yOiAjOUI5QjlCOyBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogMCBhdXRvIDRlbTsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDYwMHB4IiBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgPGgzIHN0eWxlPSJmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuOyBmb250LXNpemU6IDEuMjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGluZS1oZWlnaHQ6IDJlbTsgbWFyZ2luOiAwIj4KKyAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC9jb250YWN0IiBzdHlsZT0iY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj5Db250YWN0IHVzPC9hPgorICAgICAgICAgIDwvaDM+CisgICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMCAwIDFlbSI+CisgICAgICAgICAgICBjYXRzQGNhdHMuY29tPGJyPgorICAgICAgICAgICAgTW9uZGF5IGFuZCBGcmlkYXkKKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwIDAgMWVtIj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0IiBzdHlsZT0iY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj48aW1nIGFsaWduPSJhYnNtaWRkbGUiIGhlaWdodD0iMjYiIHNyYz0idGVzdC5wbmciIHdpZHRoPSIyNiI+PC9hPgorPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3NvdW5kYXNsZWVwL2h0bWwydGV4dF9ydWJ5IiBzdHlsZT0iY29sb3I6IHJlZDsgdGV4dC1kZWNvcmF0aW9uOiBub25lIj48aW1nIGFsaWduPSJhYnNtaWRkbGUiIGhlaWdodD0iMjYiIHNyYz0idGVzdC5wbmciIHdpZHRoPSIyNiI+PC9hPgorPC9wPgorCisgICAgICAgICAgICA8cCBjbGFzcz0ibWVzc2FnZSBuby13ZWItZGlzcGxheSIgc3R5bGU9Im1hcmdpbjogMCI+SGF2aW5nIHRyb3VibGUgc2VlaW5nIHRoaXMgZW1haWw/CisgICAgPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC92aWV3X2l0X29ubGluZSIgc3R5bGU9ImNvbG9yOiByZWQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSI+VmlldyBpdCBvbmxpbmU8L2E+LgorICA8L3A+CisKKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgPHNjcmlwdCBhc3luYyB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGlkPSJwcm9maWxlciIgc3JjPSIvcHJvZmlsZXIuanMiIGRhdGEtdmVyc2lvbj0iMS4wIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9mdWxsX2VtYWlsLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvZnVsbF9lbWFpbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc1ZTMxYQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvZnVsbF9lbWFpbC50eHQKQEAgLTAsMCArMSw1NCBAQAoraHR0cDovL2xvY2FsaG9zdC9ob21lCTE2IERlY2VtYmVyIDIwMTUKK0FjY291bnQgMTIzCisKK0hpIFN1c2FuCisKK0hlcmUgaXMgeW91ciBjYXQgcmVwb3J0LgorCitZb3UgaGF2ZSBmb3VuZCA1IGNhdHMgbGVzcyB0aGFuIGFueW9uZSBlbHNlCisKK1tGaW5kIG1vcmUgY2F0c10oaHR0cDovL2xvY2FsaG9zdC9jYXRzKQorCitEb3duIHRoZSByb2FkCisKK0Fjcm9zcyB0aGUgaGFsbAorCitZb3VyIGFjaGlldmVtZW50cworCitZb3UncmUgY3VycmVudGx5IGZpbmRpbmcgYWJvdXQKKzEyIGNhdHMKK3BlciBkYXkKKworW051bWJlciBvZiBjYXRzIGZvdW5kXQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdXIgbGFzdCBjYXQgd2FzIGZvdW5kIHR3byBkYXlzIGFnby4KKworT25lIHR5cGUgb2YgY2F0IGlzIGEga2l0dGVuLgorCitTcGVjaWFsIGFjY291bnQgIEExCisKKzEyLjM0NQorCitodHRwOi8vbG9jYWxob3N0L2xvZ291dAorCitIb3cgY2FuIHlvdSBmaW5kIG1vcmUgY2F0cz8KKworTG9vayBpbiB0cmFzaCBjYW5zCisKK1N0YXJ0IG1lb3dpbmcKKworRWF0IGNhdCBmb29kCisKK1NvbWUgY2F0cyBsaWtlIHRvIGhhbmcgb3V0IGluIHRyYXNoIGNhbnMuIFNvbWUgY2F0cyBkbyBub3QuCVNvbWUgY2F0cyBhcmUgYXR0cmFjdGVkIHRvIHNpbWlsYXIgdG9uZXMuCVNvIG9uZSBkYXkgeW91ciB0ZWFycyBtYXkgc21lbGwgbGlrZSBjYXQgZm9vZCwgYXR0cmFjdGluZyBtb3JlIGNhdHMuCitodHRwczovL2xvY2FsaG9zdC9hYm91dAlodHRwczovL2xvY2FsaG9zdC9hYm91dAlodHRwczovL2xvY2FsaG9zdC9hYm91dAorW0NhdHMgYXJlIGdyZWF0Ll0oaHR0cHM6Ly9naXRodWIuY29tL3NvdW5kYXNsZWVwL2h0bWwydGV4dF9ydWJ5KQlbRmluZCBtb3JlIGNhdHMuXShodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0X3J1YnkpCVtEbyBtb3JlIHRoaW5ncy5dKGh0dHBzOi8vZ2l0aHViLmNvbS9zb3VuZGFzbGVlcC9odG1sMnRleHRfcnVieSkKKworW0NvbnRhY3QgdXNdKGh0dHA6Ly9sb2NhbGhvc3QvY29udGFjdCkKKworY2F0c0BjYXRzLmNvbQorTW9uZGF5IGFuZCBGcmlkYXkKKworaHR0cHM6Ly9naXRodWIuY29tL3NvdW5kYXNsZWVwL2h0bWwydGV4dCBodHRwczovL2dpdGh1Yi5jb20vc291bmRhc2xlZXAvaHRtbDJ0ZXh0X3J1YnkKKworSGF2aW5nIHRyb3VibGUgc2VlaW5nIHRoaXMgZW1haWw/IFtWaWV3IGl0IG9ubGluZV0oaHR0cDovL2xvY2FsaG9zdC92aWV3X2l0X29ubGluZSkuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9odWdlLW1zb2ZmaWNlLmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2h1Z2UtbXNvZmZpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjNmZGZkCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9odWdlLW1zb2ZmaWNlLmh0bWwKQEAgLTAsMCArMSBAQAorPGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6eD0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6ZXhjZWwiIHhtbG5zOm09Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPjxoZWFkPjxNRVRBIEhUVFAtRVFVSVY9IkNvbnRlbnQtVHlwZSIgQ09OVEVOVD0idGV4dC9odG1sOyBjaGFyc2V0PXVzLWFzY2lpIj48bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0gLyogRm9udCBEZWZpbml0aW9ucyAqLyBAZm9udC1mYWNlIHtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsgcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9IEBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OkNhbGlicmk7IHBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8gcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbCB7bWFyZ2luOjBjbTsgbWFyZ2luLWJvdHRvbTouMDAwMXB0OyBmb250LXNpemU6MTEuMHB0OyBmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsgbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fSBhOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rIHttc28tc3R5bGUtcHJpb3JpdHk6OTk7IGNvbG9yOiMwNTYzQzE7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSBhOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQge21zby1zdHlsZS1wcmlvcml0eTo5OTsgY29sb3I6Izk1NEY3MjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IHNwYW4uRW1haWxTdHlsZTE3IHttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3NlOyBmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsgY29sb3I6d2luZG93dGV4dDt9IC5Nc29DaHBEZWZhdWx0IHttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsgZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7IG1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30gQHBhZ2UgV29yZFNlY3Rpb24xIHtzaXplOjYxMi4wcHQgNzkyLjBwdDsgbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9IGRpdi5Xb3JkU2VjdGlvbjEge3BhZ2U6V29yZFNlY3Rpb24xO30gLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4gPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4gPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+IDxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4gPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+IDwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT48L2hlYWQ+PGJvZHkgbGFuZz1FTi1HQiBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiI+PGRpdiBjbGFzcz1Xb3JkU2VjdGlvbjE+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5EZWFyIGh0bWwydGV4dCw8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoZSBhZGRpdGlvbiBvZiAmbHQ7bzpwJmd0OyB0YWdzIGlzIHZlcnkgYW5ub3lpbmchPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlRoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPlRoaXMgaXMgYm9sZDxvOnA+PC9vOnA+PC9iPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGk+VGhpcyBpcyBpdGFsaWM8bzpwPjwvbzpwPjwvaT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjx1PlRoaXMgaXMgdW5kZXJsaW5lPG86cD48L286cD48L3U+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+QW5kcmV3PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkRlYXIgaHRtbDJ0ZXh0LDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhlIGFkZGl0aW9uIG9mICZsdDtvOnAmZ3Q7IHRhZ3MgaXMgdmVyeSBhbm5veWluZyE8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+VGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PGI+VGhpcyBpcyBib2xkPG86cD48L286cD48L2I+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48aT5UaGlzIGlzIGl0YWxpYzxvOnA+PC9vOnA+PC9pPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHU+VGhpcyBpcyB1bmRlcmxpbmU8bzpwPjwvbzpwPjwvdT48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5BbmRyZXc8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9odWdlLW1zb2ZmaWNlLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvaHVnZS1tc29mZmljZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNhNTg3OQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvaHVnZS1tc29mZmljZS50eHQKQEAgLTAsMCArMSwyNTg3MiBAQAorRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKK0RlYXIgaHRtbDJ0ZXh0LAorCitUaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuCisKK1RoZSBhZGRpdGlvbiBvZiA8bzpwPiB0YWdzIGlzIHZlcnkgYW5ub3lpbmchCitUaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuCisKK1RoaXMgaXMgYm9sZAorVGhpcyBpcyBpdGFsaWMKK1RoaXMgaXMgdW5kZXJsaW5lCisKK0FuZHJldworRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3CitEZWFyIGh0bWwydGV4dCwKKworVGhpcyBpcyBhbiBleGFtcGxlIGVtYWlsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCBodG1sMnRleHQgY29udmVyc2lvbiBvZiBvdXRsb29rIC8gZXhjaGFuZ2UgZW1haWxzLgorCitUaGUgYWRkaXRpb24gb2YgPG86cD4gdGFncyBpcyB2ZXJ5IGFubm95aW5nIQorVGhpcyBpcyBhIHNpbmdsZSBsaW5lIHJldHVybgorCitUaGlzIGlzIGJvbGQKK1RoaXMgaXMgaXRhbGljCitUaGlzIGlzIHVuZGVybGluZQorCitBbmRyZXcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2ltYWdlcy5odG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbWFnZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjM2MGU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbWFnZXMuaHRtbApAQCAtMCwwICsxLDU0IEBACis8Ym9keT4KKyAgPHA+CisgICAgT25lOiA8aW1nIHNyYz0ib25lLnBuZyI+CisgIDwvcD4KKworICA8cD4KKyAgICBUd286IDxpbWcgc3JjPSJ0d28ucG5nIiBhbHQ9InR3byI+CisgIDwvcD4KKworICA8cD4KKyAgICBUaHJlZTogPGltZyBzcmM9InRocmVlLnBuZyIgdGl0bGU9InRocmVlIj4KKyAgPC9wPgorCisgIDxwPgorICAgIEZvdXI6IDxpbWcgc3JjPSJmb3VyLnBuZyIgdGl0bGU9ImZvdXIiIGFsdD0iZm91ciBhbHQiPgorICA8L3A+CisKKyAgPGgxPldpdGggbGlua3M8L2gxPgorCisgIDxwPgorICAgIE9uZTogPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdCI+PGltZyBzcmM9Im9uZS5wbmciPjwvYT4KKyAgPC9wPgorCisgIDxwPgorICAgIFR3bzogPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdCI+PGltZyBzcmM9InR3by5wbmciIGFsdD0idHdvIj48L2E+CisgIDwvcD4KKworICA8cD4KKyAgICBUaHJlZTogPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdCI+PGltZyBzcmM9InRocmVlLnBuZyIgdGl0bGU9InRocmVlIj48L2E+CisgIDwvcD4KKworICA8cD4KKyAgICBGb3VyOiA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0Ij48aW1nIHNyYz0iZm91ci5wbmciIHRpdGxlPSJmb3VyIiBhbHQ9ImZvdXIgYWx0Ij48L2E+CisgIDwvcD4KKworICA8aDE+V2l0aCBsaW5rcyB3aXRoIHRpdGxlczwvaDE+CisKKyAgPHA+CisgICAgT25lOiA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0IiB0aXRsZT0ib25lIGxpbmsiPjxpbWcgc3JjPSJvbmUucG5nIj48L2E+CisgIDwvcD4KKworICA8cD4KKyAgICBUd286IDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3QiIHRpdGxlPSJ0d28gbGluayI+PGltZyBzcmM9InR3by5wbmciIGFsdD0idHdvIj48L2E+CisgIDwvcD4KKworICA8cD4KKyAgICBUaHJlZTogPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdCIgdGl0bGU9InRocmVlIGxpbmsiPjxpbWcgc3JjPSJ0aHJlZS5wbmciIHRpdGxlPSJ0aHJlZSI+PC9hPgorICA8L3A+CisKKyAgPHA+CisgICAgRm91cjogPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdCIgdGl0bGU9ImZvdXIgbGluayI+PGltZyBzcmM9ImZvdXIucG5nIiB0aXRsZT0iZm91ciIgYWx0PSJmb3VyIGFsdCI+PC9hPgorICA8L3A+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbWFnZXMudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbWFnZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjM2MwMjAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2ltYWdlcy50eHQKQEAgLTAsMCArMSwyNyBAQAorT25lOgorCitUd286IFt0d29dCisKK1RocmVlOiBbdGhyZWVdCisKK0ZvdXI6IFtmb3VyXQorCitXaXRoIGxpbmtzCisKK09uZTogaHR0cDovL2xvY2FsaG9zdAorCitUd286IFt0d29dKGh0dHA6Ly9sb2NhbGhvc3QpCisKK1RocmVlOiBbdGhyZWVdKGh0dHA6Ly9sb2NhbGhvc3QpCisKK0ZvdXI6IFtmb3VyXShodHRwOi8vbG9jYWxob3N0KQorCitXaXRoIGxpbmtzIHdpdGggdGl0bGVzCisKK09uZTogW29uZSBsaW5rXShodHRwOi8vbG9jYWxob3N0KQorCitUd286IFt0d28gbGlua10oaHR0cDovL2xvY2FsaG9zdCkKKworVGhyZWU6IFt0aHJlZSBsaW5rXShodHRwOi8vbG9jYWxob3N0KQorCitGb3VyOiBbZm91ciBsaW5rXShodHRwOi8vbG9jYWxob3N0KQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvaW52YWxpZC5odG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbnZhbGlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkNDNlZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvaW52YWxpZC5odG1sCkBAIC0wLDAgKzEsNCBAQAorPGI+SGVsbG8gJm5ic25ic3A7IHdvcmxkPC9iPgorPGRpdiBjbGFzcz0iPgorCUVycm9yCis8L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2ludmFsaWQudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbnZhbGlkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjhkOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9pbnZhbGlkLnR4dApAQCAtMCwwICsxIEBACitIZWxsbyAmbmJzbmJzcDsgd29ybGQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2xpc3RzLmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL2xpc3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiYjdiZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbGlzdHMuaHRtbApAQCAtMCwwICsxLDI0IEBACis8aDE+TGlzdCB0ZXN0czwvaDE+CisKKzxwPgorQWRkIHNvbWUgbGlzdHMuCis8L3A+CisKKzxvbD4KKwk8bGk+b25lPC9saT4KKwk8bGk+dHdvCisJPGxpPnRocmVlCis8L29sPgorCis8aDI+QW4gdW5vcmRlcmVkIGxpc3Q8L2gyPgorCis8dWw+CisJPGxpPm9uZQorCTxsaT50d288L2xpPgorCTxsaT50aHJlZTwvbGk+CQorPC91bD4KKzx1bD4KKwk8bGk+b25lCisJPGxpPnR3bzwvbGk+CisJPGxpPnRocmVlPC9saT4JCis8L3VsPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbGlzdHMudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9saXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE2MjlmNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbGlzdHMudHh0CkBAIC0wLDAgKzEsMTcgQEAKK0xpc3QgdGVzdHMKKworQWRkIHNvbWUgbGlzdHMuCisKKy0gb25lCistIHR3bworLSB0aHJlZQorCitBbiB1bm9yZGVyZWQgbGlzdAorCistIG9uZQorLSB0d28KKy0gdGhyZWUKKworLSBvbmUKKy0gdHdvCistIHRocmVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9tb3JlLWFuY2hvcnMuaHRtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbW9yZS1hbmNob3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk5MThiNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbW9yZS1hbmNob3JzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGgxPkFuY2hvciB0ZXN0czwvaDE+CisKKzxwPgorVmlzaXQgaHR0cDovL29wZW5pYW1sLm9yZyBvciA8YSBocmVmPSJodHRwOi8vb3BlbmlhbWwub3JnIj5vcGVuaWFtbC5vcmc8L2E+IG9yIDxhIGhyZWY9Imh0dHA6Ly9vcGVuaWFtbC5vcmciPmh0dHA6Ly9vcGVuaWFtbC5vcmc8L2E+LgorPC9wPgorCis8cD4KK1RvIHZpc2l0IHdpdGggU1NMLCB2aXNpdCBodHRwczovL29wZW5pYW1sLm9yZyBvciA8YSBocmVmPSJodHRwczovL29wZW5pYW1sLm9yZyI+b3BlbmlhbWwub3JnPC9hPiBvciA8YSBocmVmPSJodHRwczovL29wZW5pYW1sLm9yZyI+aHR0cHM6Ly9vcGVuaWFtbC5vcmc8L2E+LgorPC9wPgorCis8cD4KK1RvIG1haWwsIGVtYWlsIHN1cHBvcnRAb3BlbmlhbWwub3JnIG9yIG1haWx0bzpzdXBwb3J0QG9wZW5pYW1sLm9yZworb3IgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAb3BlbmlhbWwub3JnIj5zdXBwb3J0QG9wZW5pYW1sLm9yZzwvYT4gb3IgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAb3BlbmlhbWwub3JnIj5tYWlsdG86c3VwcG9ydEBvcGVuaWFtbC5vcmc8L2E+LgorPC9wPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9tb3JlLWFuY2hvcnMudHh0IGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9tb3JlLWFuY2hvcnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NzExOTYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL21vcmUtYW5jaG9ycy50eHQKQEAgLTAsMCArMSw3IEBACitBbmNob3IgdGVzdHMKKworVmlzaXQgaHR0cDovL29wZW5pYW1sLm9yZyBvciBvcGVuaWFtbC5vcmcgb3IgaHR0cDovL29wZW5pYW1sLm9yZy4KKworVG8gdmlzaXQgd2l0aCBTU0wsIHZpc2l0IGh0dHBzOi8vb3BlbmlhbWwub3JnIG9yIG9wZW5pYW1sLm9yZyBvciBodHRwczovL29wZW5pYW1sLm9yZy4KKworVG8gbWFpbCwgZW1haWwgc3VwcG9ydEBvcGVuaWFtbC5vcmcgb3IgbWFpbHRvOnN1cHBvcnRAb3BlbmlhbWwub3JnIG9yIHN1cHBvcnRAb3BlbmlhbWwub3JnIG9yIG1haWx0bzpzdXBwb3J0QG9wZW5pYW1sLm9yZy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL21zb2ZmaWNlLmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL21zb2ZmaWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzBhZmViMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbXNvZmZpY2UuaHRtbApAQCAtMCwwICsxIEBACis8aHRtbCB4bWxuczp2PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnZtbCIgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczp4PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+PE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPjxtZXRhIG5hbWU9R2VuZXJhdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDE1IChmaWx0ZXJlZCBtZWRpdW0pIj48c3R5bGU+PCEtLSAvKiBGb250IERlZmluaXRpb25zICovIEBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOyBwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30gQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6Q2FsaWJyaTsgcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fSAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLyBwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsIHttYXJnaW46MGNtOyBtYXJnaW4tYm90dG9tOi4wMDAxcHQ7IGZvbnQtc2l6ZToxMS4wcHQ7IGZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOyBtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUzt9IGE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsge21zby1zdHlsZS1wcmlvcml0eTo5OTsgY29sb3I6IzA1NjNDMTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IGE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZCB7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OyBjb2xvcjojOTU0RjcyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gc3Bhbi5FbWFpbFN0eWxlMTcge21zby1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBvc2U7IGZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOyBjb2xvcjp3aW5kb3d0ZXh0O30gLk1zb0NocERlZmF1bHQge21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5OyBmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsgbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fSBAcGFnZSBXb3JkU2VjdGlvbjEge3NpemU6NjEyLjBwdCA3OTIuMHB0OyBtYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30gZGl2LldvcmRTZWN0aW9uMSB7cGFnZTpXb3JkU2VjdGlvbjE7fSAtLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPiA8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPiA8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4gPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPiA8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4gPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPUVOLUdCIGxpbms9IiMwNTYzQzEiIHZsaW5rPSIjOTU0RjcyIj48ZGl2IGNsYXNzPVdvcmRTZWN0aW9uMT48cCBjbGFzcz1Nc29Ob3JtYWw+RGVhciBodG1sMnRleHQsPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGFuIGV4YW1wbGUgZW1haWwgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0IGh0bWwydGV4dCBjb252ZXJzaW9uIG9mIG91dGxvb2sgLyBleGNoYW5nZSBlbWFpbHMuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGUgYWRkaXRpb24gb2YgJmx0O286cCZndDsgdGFncyBpcyB2ZXJ5IGFubm95aW5nITxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5UaGlzIGlzIGEgc2luZ2xlIGxpbmUgcmV0dXJuPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj5UaGlzIGlzIGJvbGQ8bzpwPjwvbzpwPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxpPlRoaXMgaXMgaXRhbGljPG86cD48L286cD48L2k+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48dT5UaGlzIGlzIHVuZGVybGluZTxvOnA+PC9vOnA+PC91PjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPkFuZHJldzxvOnA+PC9vOnA+PC9wPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9tc29mZmljZS50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL21zb2ZmaWNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWJhODA4Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9tc29mZmljZS50eHQKQEAgLTAsMCArMSwxMiBAQAorRGVhciBodG1sMnRleHQsCisKK1RoaXMgaXMgYW4gZXhhbXBsZSBlbWFpbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHRlc3QgaHRtbDJ0ZXh0IGNvbnZlcnNpb24gb2Ygb3V0bG9vayAvIGV4Y2hhbmdlIGVtYWlscy4KKworVGhlIGFkZGl0aW9uIG9mIDxvOnA+IHRhZ3MgaXMgdmVyeSBhbm5veWluZyEKK1RoaXMgaXMgYSBzaW5nbGUgbGluZSByZXR1cm4KKworVGhpcyBpcyBib2xkCitUaGlzIGlzIGl0YWxpYworVGhpcyBpcyB1bmRlcmxpbmUKKworQW5kcmV3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9uYnNwLmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL25ic3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDExYmM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9uYnNwLmh0bWwKQEAgLTAsMCArMSBAQAoraGVsbG8gJm5ic3A7IHdvcmxkICZhbXA7IHBlb3BsZSAmbHQ7ICZndDsgJk5CU1A7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9uYnNwLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbmJzcC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA5NjE5ZAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbmJzcC50eHQKQEAgLTAsMCArMSBAQAoraGVsbG8gd29ybGQgJiBwZW9wbGUgPCA+ICZOQlNQOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbmV3bGluZXMuaHRtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbmV3bGluZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGE3NDg2Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9uZXdsaW5lcy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxodG1sPgorPGJvZHk+Cis8ZGl2PgorSGVsbG8KKzxicj4KKzwvZGl2PgorPGRpdj4KK0hvdyBhcmUgeW91PworPGJyPgorPC9kaXY+CisKKzxwPgorSG93IGFyZSB5b3U/Cis8YnI+Cis8cD48L3A+Cis8L3A+CisKKzxwPgorSG93IGFyZSB5b3U/Cis8YnI+Cis8L3A+CisKK1RoaXMgaXMgbm90IHRoZSBlbmQhCis8ZGl2PgorSG93IGFyZSB5b3UgYWdhaW4/Cis8YnI+Cis8L2Rpdj4KK1RoaXMgaXMgdGhlIGVuZCEKKzxicj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL25ld2xpbmVzLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbmV3bGluZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3OTJjMTAKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL25ld2xpbmVzLnR4dApAQCAtMCwwICsxLDEwIEBACitIZWxsbworSG93IGFyZSB5b3U/CisKK0hvdyBhcmUgeW91PworCitIb3cgYXJlIHlvdT8KKworVGhpcyBpcyBub3QgdGhlIGVuZCEKK0hvdyBhcmUgeW91IGFnYWluPworVGhpcyBpcyB0aGUgZW5kIQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbm9uLWJyZWFraW5nLXNwYWNlcy5odG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9ub24tYnJlYWtpbmctc3BhY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzZWMzNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbm9uLWJyZWFraW5nLXNwYWNlcy5odG1sCkBAIC0wLDAgKzEgQEAKK3RoZXNlwqBzcGFjZXPCoGFyZcKgbm9uLWJyZWFraW5nClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9ub24tYnJlYWtpbmctc3BhY2VzLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbm9uLWJyZWFraW5nLXNwYWNlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc1ZGZlNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvbm9uLWJyZWFraW5nLXNwYWNlcy50eHQKQEAgLTAsMCArMSBAQAordGhlc2Ugc3BhY2VzIGFyZSBub24tYnJlYWtpbmcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3ByZS5odG1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9wcmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTYzMDZmCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy9wcmUuaHRtbApAQCAtMCwwICsxLDEwIEBACitIZXJlIGlzIHRoZSBjb2RlCis8cHJlPgorI2luY2x1ZGUgJmx0O3N0ZGxpYi5oJmd0OworI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CisKK2ludCBtYWluKCl7CisJcmV0dXJuIDA7Cit9OworCis8L3ByZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3ByZS50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3ByZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI4NTQ0MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvcHJlLnR4dApAQCAtMCwwICsxLDggQEAKK0hlcmUgaXMgdGhlIGNvZGUKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2ludCBtYWluKCl7CisJcmV0dXJuIDA7Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGFibGUuaHRtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGIzY2YwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy90YWJsZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxodG1sPg0KKzx0aXRsZT5JZ25vcmVkIFRpdGxlPC90aXRsZT4NCis8Ym9keT4NCisgIDxoMT5IZWxsbywgV29ybGQhPC9oMT4NCisgIDx0YWJsZT4NCisgICAgPHRoZWFkPg0KKyAgICAgIDx0cj4NCisgICAgICAgIDx0aD5Db2wgQTwvdGg+DQorICAgICAgICA8dGg+Q29sIEI8L3RoPg0KKyAgICAgIDwvdHI+DQorICAgIDwvdGhlYWQ+DQorICAgIDx0Ym9keT4NCisgICAgICA8dHI+DQorICAgICAgICA8dGQ+DQorICAgICAgICAgIERhdGEgQTENCisgICAgICAgIDwvdGQ+DQorICAgICAgICA8dGQ+DQorICAgICAgICAgIERhdGEgQjENCisgICAgICAgIDwvdGQ+DQorICAgICAgPC90cj4NCisgICAgICA8dHI+DQorICAgICAgICAgIDx0ZD4NCisgICAgICAgICAgICBEYXRhIEEyDQorICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgIDx0ZD4NCisgICAgICAgICAgICBEYXRhIEIyDQorICAgICAgICAgIDwvdGQ+DQorICAgICAgPC90cj4NCisgICAgICA8dHI+DQorICAgICAgICA8dGQ+DQorICAgICAgICAgIERhdGEgQTMNCisgICAgICAgIDwvdGQ+DQorICAgICAgICA8dGQ+DQorICAgICAgICAgIERhdGEgQjQNCisgICAgICAgIDwvdGQ+DQorICAgICAgPC90cj4NCisgICAgPC90Ym9keT4NCisgICAgPHRmb290Pg0KKyAgICAgIDx0cj4NCisgICAgICAgICAgPHRkPg0KKyAgICAgICAgICAgIFRvdGFsIEENCisgICAgICAgICAgPC90ZD4NCisgICAgICAgICAgPHRkPg0KKyAgICAgICAgICAgIFRvdGFsIEINCisgICAgICAgICAgPC90ZD4NCisgICAgICAgPC90cj4NCisNCisgICAgPC90Zm9vdD4NCisNCisgIDwvdGFibGU+DQorDQorPC9ib2R5Pg0KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3RhYmxlLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGFibGUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwM2JhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3RhYmxlLnR4dApAQCAtMCwwICsxLDcgQEAKK0hlbGxvLCBXb3JsZCEKKworQ29sIEEJQ29sIEIKK0RhdGEgQTEJRGF0YSBCMQorRGF0YSBBMglEYXRhIEIyCitEYXRhIEEzCURhdGEgQjQKK1RvdGFsIEEJVG90YWwgQgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGVzdDMuaHRtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGVzdDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmNmZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy90ZXN0My5odG1sCkBAIC0wLDAgKzEgQEAKK3Rlc3Qgb25lPGJyIC8+dGVzdCB0d28KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3Rlc3QzLnR4dCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGVzdDMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMDRlMDMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3Rlc3QzLnR4dApAQCAtMCwwICsxLDIgQEAKK3Rlc3Qgb25lDQordGVzdCB0d28KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3Rlc3Q0Lmh0bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3Rlc3Q0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFmYTdiMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdGVzdDQuaHRtbApAQCAtMCwwICsxIEBACisxPGJyIC8+MjxiciAvPjM8YnIgLz40PGJyIC8+NSA2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy90ZXN0NC50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3Rlc3Q0LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDRlNTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy90ZXN0NC50eHQKQEAgLTAsMCArMSw1IEBACisxDQorMg0KKzMNCis0DQorNSA2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy91dGY4LWV4YW1wbGUuaHRtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdXRmOC1leGFtcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRmZjMwNgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdXRmOC1leGFtcGxlLmh0bWwKQEAgLTAsMCArMSw0IEBACis8dWw+CisgIDxsaT7DhcOEw5Y8L2xpPgorICA8bGk+w6XDpMO2PC9saT4KKzwvdWw+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3V0ZjgtZXhhbXBsZS50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3V0ZjgtZXhhbXBsZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQxMGE1YwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvdXRmOC1leGFtcGxlLnR4dApAQCAtMCwwICsxLDIgQEAKKy0gw4XDhMOWCistIMOlw6TDtgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvd2luZG93cy0xMjUyLWV4YW1wbGUuaHRtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci9zb3VuZGFzbGVlcC9odG1sMnRleHQvdGVzdHMvd2luZG93cy0xMjUyLWV4YW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGU1MTIwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy93aW5kb3dzLTEyNTItZXhhbXBsZS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPHVsPgorICA8bGk+xcTWPC9saT4KKyAgPGxpPuXk9jwvbGk+Cis8L3VsPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy93aW5kb3dzLTEyNTItZXhhbXBsZS50eHQgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3Ivc291bmRhc2xlZXAvaHRtbDJ0ZXh0L3Rlc3RzL3dpbmRvd3MtMTI1Mi1leGFtcGxlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDEwYTVjCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3NvdW5kYXNsZWVwL2h0bWwydGV4dC90ZXN0cy93aW5kb3dzLTEyNTItZXhhbXBsZS50eHQKQEAgLTAsMCArMSwyIEBACistIMOFw4TDlgorLSDDpcOkw7YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvLmdpdGlnbm9yZSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkOTY4ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDcgQEAKK2NvbXBvc2VyLmxvY2sKK3ZlbmRvci8KKy4qLnN3cAorcGhwLXUyZmxpYi1zZXJ2ZXItKi50YXIuZ3oKK3BocC11MmZsaWItc2VydmVyLSoudGFyLmd6LnNpZworYXBpZG9jcy8KK2J1aWxkLwpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyLy50cmF2aXMueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyLy50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlYWRlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvLnRyYXZpcy55bWwKQEAgLTAsMCArMSwyMyBAQAorbGFuZ3VhZ2U6IHBocAorc3VkbzogZmFsc2UKK3BocDoKKyAgLSA3LjAKKyAgLSA3LjEKKyAgLSA3LjIKKyAgLSBoaHZtCittYXRyaXg6CisgIGluY2x1ZGU6CisgICAgLSBwaHA6IDUuNgorICAgICAgZW52OiBDT1ZFUkFMTFM9dHJ1ZQorICBhbGxvd19mYWlsdXJlczoKKyAgICAtIHBocDogaGh2bQorCitiZWZvcmVfc2NyaXB0OgorICAtIGNvbXBvc2VyIGluc3RhbGwKKworc2NyaXB0OgorICAtIC4vdmVuZG9yL2Jpbi9wc2FsbQorICAtIC4vdmVuZG9yL3BocHVuaXQvcGhwdW5pdC9waHB1bml0IC1jIHBocHVuaXQueG1sCisKK2FmdGVyX3N1Y2Nlc3M6CisgIC0gdGVzdCAteiAkQ09WRVJBTExTIHx8IChjb21wb3NlciByZXF1aXJlIHNhdG9vc2hpL3BocC1jb3ZlcmFsbHMgJiYgdmVuZG9yL2Jpbi9jb3ZlcmFsbHMgLXYpCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvQkxVUkIgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvQkxVUkIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3OTc0MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9CTFVSQgpAQCAtMCwwICsxLDkgQEAKK0F1dGhvcjogWXViaWNvCitCYXNlbmFtZTogcGhwLXUyZmxpYi1zZXJ2ZXIKK0hvbWVwYWdlOiBodHRwczovL2RldmVsb3BlcnMueXViaWNvLmNvbS9waHAtdTJmbGliLXNlcnZlcgorTGljZW5zZTogQlNELTItQ2xhdXNlCitOYW1lOiBOYXRpdmUgVTJGIGxpYnJhcnkgaW4gUEhQCitQcm9qZWN0OiBwaHAtdTJmbGliLXNlcnZlcgorU3VtbWFyeTogTmF0aXZlIFUyRiBsaWJyYXJ5IGluIFBIUAorWXViaWNvLUNhdGVnb3J5OiBVMkYgcHJvamVjdHMKK1RyYXZpczogaHR0cHM6Ly90cmF2aXMtY2kub3JnL1l1Ymljby9waHAtdTJmbGliLXNlcnZlcgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL0NPUFlJTkcgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvQ09QWUlORwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjdjOTE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL0NPUFlJTkcKQEAgLTAsMCArMSwyNiBAQAorQ29weXJpZ2h0IChjKSAyMDE0IFl1YmljbyBBQgorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCittZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAgICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKK09XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCitEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKK1RIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9ORVdTIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL05FV1MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk2MTc1ZQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9ORVdTCkBAIC0wLDAgKzEsMzQgQEAKK3BocC11MmZsaWItc2VydmVyIE5FV1MgLS0gSGlzdG9yeSBvZiB1c2VyLXZpc2libGUgY2hhbmdlcy4KKworKiBWZXJzaW9uIDEuMC4yIChyZWxlYXNlZCAyMDE4LTA5LTA3KQorICoqIEFkZGl0aW9uYWwgZXJyb3IgY2hlY2tzLgorICoqIEFkZCB1c2VyIHByZXNlbmNlIGNoZWNrLgorICoqIFN1cHBvcnQgc2luZ2xlIGZpbGVzIGZvciBhdHRlc3RhdGlvbiByb290LgorICoqIFR5cGUgc2FmZXR5LCBDU1BSTkcsIGF2b2lkIGNocigpLgorCisqIFZlcnNpb24gMS4wLjEgKHJlbGVhc2VkIDIwMTctMDUtMDkpCisgKiogTW92ZSBleGFtcGxlcyB0byBwaHBzIHNvIHRoZXkgZG9uJ3QgZXhlY3V0ZSBieSBkZWZhdWx0CisgKiogVXNlIGNvbW1vbiBjaGFsbGVuZ2UgZm9yIG11bHRpcGxlIHJlZ2lzdHJhdGlvbnMKKworKiBWZXJzaW9uIDEuMC4wIChyZWxlYXNlZCAyMDE2LTAyLTE5KQorICoqIEdpdmUgYW4gZWFybHkgZXJyb3Igb24gb3BlbnNzbCA8IDEuMAorICoqIFN1cHBvcnQgZGV2aWNlcyB3aXRoIGluaXRpYWwgY291bnRlciAwCisgKiogRml4ZXMgdG8gZXhhbXBsZXMKKyAqKiBIYW5kbGUgZXJyb3JDb2RlOiAwIGNvcnJlY3RseQorCisqIFZlcnNpb24gMC4xLjAgKHJlbGVhc2VkIDIwMTUtMDMtMDMpCisgKiogVXNlIG9wZW5zc2wgZm9yIGFsbCBjcnlwdG8gaW5zdGVhZCBvZiB0aGlyZCBwYXJ0eSBleHRlbnNpb25zLgorICoqIFByb3Blcmx5IGNoZWNrIHRoZSByZXF1ZXN0IGNoYWxsZW5nZSBvbiBhdXRoZW50aWNhdGUuCisgKiogU3dpdGNoIGZyb20gcmV0dXJuaW5nIGVycm9yIGNvZGVzIHRvIHRocm93aW5nIGV4Y2VwdGlvbnMuCisgKiogU3RvcCByZWNvbW1lbmRpbmcgY29tcG9zZXIgZm9yIGluc3RhbGxhdGlvbi4KKworKiBWZXJzaW9uIDAuMC4yIChyZWxlYXNlZCAyMDE0LTEwLTI0KQorICoqIFJlZmFjdG9yIHRoZSBBUEkgdG8gcmV0dXJuIG9iamVjdHMgaW5zdGVhZCBvZiBlbmNvZGVkIG9iamVjdHMuCisgKiogQWRkIGEgc2Vjb25kIGV4YW1wbGUgdGhhdCB1c2VzIFBETyB0byBzdG9yZSByZWdpc3RyYXRpb25zLgorICoqIEFkZCBkb2N1bWVudGF0aW9uIHRvIHRoZSBBUEkuCisgKiogQ2hlY2sgdGhhdCByYW5kb21uZXNzIHJldHVybmVkIGlzIGdvb2QuCisgKiogRHJvcCB0aGUgdW5uZWVkZWQgbWNyeXB0IGV4dGVuc2lvbi4KKyAqKiBNb3JlIHRlc3RzLgorCisqIFZlcnNpb24gMC4wLjEgKHJlbGVhc2VkIDIwMTQtMTAtMTYpCisgKiogSW5pdGlhbCByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL1JFQURNRSBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDExNmEyNwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9SRUFETUUKQEAgLTAsMCArMSwzNCBAQAorcGhwLXUyZmxpYi1zZXJ2ZXIKKy0tLS0tLS0tLS0tLS0tLS0tCisKK2ltYWdlOmh0dHBzOi8vdHJhdmlzLWNpLm9yZy9ZdWJpY28vcGhwLXUyZmxpYi1zZXJ2ZXIuc3ZnP2JyYW5jaD1tYXN0ZXJbIkJ1aWxkIFN0YXR1cyIsIGxpbms9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9ZdWJpY28vcGhwLXUyZmxpYi1zZXJ2ZXIiXQoraW1hZ2U6aHR0cHM6Ly9jb3ZlcmFsbHMuaW8vcmVwb3MvWXViaWNvL3BocC11MmZsaWItc2VydmVyL2JhZGdlLnN2Zz9icmFuY2g9bWFzdGVyJnNlcnZpY2U9Z2l0aHViWyJDb3ZlcmFnZSIsIGxpbms9Imh0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9ZdWJpY28vcGhwLXUyZmxpYi1zZXJ2ZXI/YnJhbmNoPW1hc3RlciJdCitpbWFnZTpodHRwczovL3NjcnV0aW5pemVyLWNpLmNvbS9nL1l1Ymljby9waHAtdTJmbGliLXNlcnZlci9iYWRnZXMvcXVhbGl0eS1zY29yZS5wbmc/Yj1tYXN0ZXJbIlNjcnV0aW5pemVyIENvZGUgUXVhbGl0eSIsIGxpbms9Imh0dHBzOi8vc2NydXRpbml6ZXItY2kuY29tL2cvWXViaWNvL3BocC11MmZsaWItc2VydmVyLz9icmFuY2g9bWFzdGVyIl0KKworPT09IEludHJvZHVjdGlvbiA9PT0KKworU2VydmVyc2lkZSBVMkYgbGlicmFyeSBmb3IgUEhQLiBQcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciByZWdpc3RlcmluZwordG9rZW5zIGFuZCBhdXRoZW50aWNhdGlvbiB3aXRoIHNhaWQgdG9rZW5zLgorCitUbyByZWFkIG1vcmUgYWJvdXQgVTJGIGFuZCBob3cgdG8gdXNlIGEgVTJGIGxpYnJhcnksIHZpc2l0CitsaW5rOmh0dHA6Ly9kZXZlbG9wZXJzLnl1Ymljby5jb20vVTJGW2RldmVsb3BlcnMueXViaWNvLmNvbS9VMkZdLgorCis9PT0gTGljZW5zZSA9PT0KKworVGhlIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgYSBCU0QgbGljZW5zZS4gIFNlZSB0aGUgZmlsZSBDT1BZSU5HIGZvcgorZXhhY3Qgd29yZGluZy4gIEZvciBhbnkgY29weXJpZ2h0IHllYXIgcmFuZ2Ugc3BlY2lmaWVkIGFzIFlZWVktWlpaWiBpbgordGhpcyBwYWNrYWdlIG5vdGUgdGhhdCB0aGUgcmFuZ2Ugc3BlY2lmaWVzIGV2ZXJ5IHNpbmdsZSB5ZWFyIGluIHRoYXQKK2Nsb3NlZCBpbnRlcnZhbC4KKworPT09IERlcGVuZGVuY2llcyA9PT0KKworVGhlIG9ubHkgZGVwZW5kZW5jeSBpcyB0aGUgb3BlbnNzbCBleHRlbnNpb24gdG8gUEhQIHRoYXQgaGFzIHRvIGJlIGVuYWJsZWQuCisKK0EgY29tcG9zZXIuanNvbiBpcyBpbmNsdWRlZCBpbiB0aGUgZGlzdHJpYnV0aW9uIHRvIG1ha2UgdGhpbmdzIHNpbXBsZXIgZm9yCitvdGhlciBwcm9qZWN0IHVzaW5nIGNvbXBvc2VyLgorCis9PT0gVGVzdHMgPT09CisKK1RvIHJ1biB0aGUgdGVzdCBzdWl0ZSBsaW5rOmh0dHBzOi8vcGhwdW5pdC5kZVtQSFBVbml0XSBpcyByZXF1aXJlZC4gVG8gcnVuIGl0LCB0eXBlOgorCisgJCBwaHB1bml0CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvUkVBRE1FLmFkb2MgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvUkVBRE1FLmFkb2MKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMC4uMTAwYjkzOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9SRUFETUUuYWRvYwpAQCAtMCwwICsxIEBACitSRUFETUUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvYXBpZ2VuLm5lb24gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvYXBpZ2VuLm5lb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJiNzA3MQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9hcGlnZW4ubmVvbgpAQCAtMCwwICsxLDEzIEBACitkZXN0aW5hdGlvbjogYXBpZG9jcworCitzb3VyY2U6CisgIC0gc3JjL3UyZmxpYl9zZXJ2ZXIKKworZXhjbHVkZToKKyAgLSAiKi90ZXN0cy8qIgorCitncm91cHM6IG5vbmUKKwordHJlZTogZmFsc2UKKwordGl0bGU6IHBocC11MmZsaWItc2VydmVyIEFQSQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2NvbXBvc2VyLmpzb24gYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvY29tcG9zZXIuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjJkOWVhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2NvbXBvc2VyLmpzb24KQEAgLTAsMCArMSwxOCBAQAoreworICAibmFtZSI6Inl1Ymljby91MmZsaWItc2VydmVyIiwKKyAgImRlc2NyaXB0aW9uIjoiTGlicmFyeSBmb3IgVTJGIGltcGxlbWVudGF0aW9uIiwKKyAgImhvbWVwYWdlIjoiaHR0cHM6Ly9kZXZlbG9wZXJzLnl1Ymljby5jb20vcGhwLXUyZmxpYi1zZXJ2ZXIiLAorICAibGljZW5zZSI6IkJTRC0yLUNsYXVzZSIsCisgICJyZXF1aXJlIjogeworICAgICJleHQtb3BlbnNzbCI6IioiLAorICAgICJwYXJhZ29uaWUvcmFuZG9tX2NvbXBhdCI6ICI+PSAxIiwKKyAgICAicGhwIjogIj49NS42IgorICB9LAorICAiYXV0b2xvYWQiOiB7CisgICAgImNsYXNzbWFwIjogWyJzcmMvIl0KKyAgfSwKKyAgInJlcXVpcmUtZGV2IjogeworICAgICJwaHB1bml0L3BocHVuaXQiOiAifjUuNyIsCisgICAgInZpbWVvL3BzYWxtIjogIl4wfF4xfF4yIgorICB9Cit9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvZG8tc291cmNlLXJlbGVhc2Uuc2ggYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvZG8tc291cmNlLXJlbGVhc2Uuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2U1MDE3MwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9kby1zb3VyY2UtcmVsZWFzZS5zaApAQCAtMCwwICsxLDQwIEBACisjIS9iaW4vc2gKKworc2V0IC1lCisKK1ZFUlNJT049JDEKK1BHUF9LRVlJRD0kMgorCitpZiBbICJ4JFBHUF9LRVlJRCIgPSAieCIgXTsgdGhlbgorICBlY2hvICJ0cnkgd2l0aCAkMCBWRVJTSU9OIFBHUF9LRVlJRCIKKyAgZWNobyAiZXhhbXBsZTogJDAgMC4wLjEgQjIxNjhDMEEiCisgIGV4aXQKK2ZpCisKK2lmICEgaGVhZCAtMyBORVdTICB8IGdyZXAgLXEgIlZlcnNpb24gJFZFUlNJT04gLnJlbGVhc2VkIGBkYXRlIC1JYCI7IHRoZW4KKyAgZWNobyAiWW91IG5lZWQgdG8gdXBkYXRlIGRhdGUvdmVyc2lvbiBpbiBORVdTIgorICBleGl0CitmaQorCitpZiBbICJ4JFlVQklDT19HSVRIVUJfUkVQTyIgPSAieCIgXTsgdGhlbgorICBlY2hvICJ5b3UgbmVlZCB0byBkZWZpbmUgWVVCSUNPX0dJVEhVQl9SRVBPIgorICBleGl0CitmaQorCityZWxlYXNlbmFtZT1waHAtdTJmbGliLXNlcnZlci0ke1ZFUlNJT059CisKK2dpdCBwdXNoCitnaXQgdGFnIC11ICR7UEdQX0tFWUlEfSAtbSAkVkVSU0lPTiAkVkVSU0lPTgorZ2l0IHB1c2ggLS10YWdzCit0bXBkaXI9YG1rdGVtcCAtZCAvdG1wL3JlbGVhc2UuWFhYWFhYYAorcmVsZWFzZWRpcj0ke3RtcGRpcn0vJHtyZWxlYXNlbmFtZX0KK21rZGlyIC1wICRyZWxlYXNlZGlyCitnaXQgYXJjaGl2ZSAkVkVSU0lPTiAtLWZvcm1hdD10YXIgfCB0YXIgLXhDICRyZWxlYXNlZGlyCitnaXQyY2wgPiAkcmVsZWFzZWRpci9DaGFuZ2VMb2cKK2NkICRyZWxlYXNlZGlyCithcGlnZW4gZ2VuZXJhdGUKK2NkIC0KK3RhciAtY3ogLS1kaXJlY3Rvcnk9JHRtcGRpciAtLWZpbGU9JHtyZWxlYXNlbmFtZX0udGFyLmd6ICRyZWxlYXNlbmFtZQorZ3BnIC0tZGV0YWNoLXNpZ24gLS1kZWZhdWx0LWtleSAkUEdQX0tFWUlEICR7cmVsZWFzZW5hbWV9LnRhci5negorJFlVQklDT19HSVRIVUJfUkVQTy9wdWJsaXNoIHBocC11MmZsaWItc2VydmVyICRWRVJTSU9OICR7cmVsZWFzZW5hbWV9LnRhci5neioKK3JtIC1yZiAkdG1wZGlyCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvZXhhbXBsZXMvYXNzZXRzL3UyZi1hcGkuanMgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvZXhhbXBsZXMvYXNzZXRzL3UyZi1hcGkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYwNmY1MAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9leGFtcGxlcy9hc3NldHMvdTJmLWFwaS5qcwpAQCAtMCwwICsxLDY1MSBAQAorLy8gQ29weXJpZ2h0IDIwMTQtMjAxNSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCisvLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgb3IgYXQKKy8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAorCisvKioKKyAqIEBmaWxlb3ZlcnZpZXcgVGhlIFUyRiBhcGkuCisgKi8KKworJ3VzZSBzdHJpY3QnOworCisvKiogTmFtZXNwYWNlIGZvciB0aGUgVTJGIGFwaS4KKyAqIEB0eXBlIHtPYmplY3R9CisgKi8KK3ZhciB1MmYgPSB1MmYgfHwge307CisKKy8qKgorICogVGhlIFUyRiBleHRlbnNpb24gaWQKKyAqIEB0eXBlIHtzdHJpbmd9CisgKiBAY29uc3QKKyAqLwordTJmLkVYVEVOU0lPTl9JRCA9ICdrbWVuZGZhcGdnamVob2RuZGZsbW1nYWdkYmFtaG5mZCc7CisKKy8qKgorICogTWVzc2FnZSB0eXBlcyBmb3IgbWVzc3NhZ2VzIHRvL2Zyb20gdGhlIGV4dGVuc2lvbgorICogQGNvbnN0CisgKiBAZW51bSB7c3RyaW5nfQorICovCit1MmYuTWVzc2FnZVR5cGVzID0geworICAgICdVMkZfUkVHSVNURVJfUkVRVUVTVCc6ICd1MmZfcmVnaXN0ZXJfcmVxdWVzdCcsCisgICAgJ1UyRl9TSUdOX1JFUVVFU1QnOiAndTJmX3NpZ25fcmVxdWVzdCcsCisgICAgJ1UyRl9SRUdJU1RFUl9SRVNQT05TRSc6ICd1MmZfcmVnaXN0ZXJfcmVzcG9uc2UnLAorICAgICdVMkZfU0lHTl9SRVNQT05TRSc6ICd1MmZfc2lnbl9yZXNwb25zZScKK307CisKKy8qKgorICogUmVzcG9uc2Ugc3RhdHVzIGNvZGVzCisgKiBAY29uc3QKKyAqIEBlbnVtIHtudW1iZXJ9CisgKi8KK3UyZi5FcnJvckNvZGVzID0geworICAgICdPSyc6IDAsCisgICAgJ09USEVSX0VSUk9SJzogMSwKKyAgICAnQkFEX1JFUVVFU1QnOiAyLAorICAgICdDT05GSUdVUkFUSU9OX1VOU1VQUE9SVEVEJzogMywKKyAgICAnREVWSUNFX0lORUxJR0lCTEUnOiA0LAorICAgICdUSU1FT1VUJzogNQorfTsKKworLyoqCisgKiBBIG1lc3NhZ2UgdHlwZSBmb3IgcmVnaXN0cmF0aW9uIHJlcXVlc3RzCisgKiBAdHlwZWRlZiB7eworICogICB0eXBlOiB1MmYuTWVzc2FnZVR5cGVzLAorICogICBzaWduUmVxdWVzdHM6IEFycmF5PHUyZi5TaWduUmVxdWVzdD4sCisgKiAgIHJlZ2lzdGVyUmVxdWVzdHM6ID9BcnJheTx1MmYuUmVnaXN0ZXJSZXF1ZXN0PiwKKyAqICAgdGltZW91dFNlY29uZHM6ID9udW1iZXIsCisgKiAgIHJlcXVlc3RJZDogP251bWJlcgorICogfX0KKyAqLwordTJmLlJlcXVlc3Q7CisKKy8qKgorICogQSBtZXNzYWdlIGZvciByZWdpc3RyYXRpb24gcmVzcG9uc2VzCisgKiBAdHlwZWRlZiB7eworICogICB0eXBlOiB1MmYuTWVzc2FnZVR5cGVzLAorICogICByZXNwb25zZURhdGE6ICh1MmYuRXJyb3IgfCB1MmYuUmVnaXN0ZXJSZXNwb25zZSB8IHUyZi5TaWduUmVzcG9uc2UpLAorICogICByZXF1ZXN0SWQ6ID9udW1iZXIKKyAqIH19CisgKi8KK3UyZi5SZXNwb25zZTsKKworLyoqCisgKiBBbiBlcnJvciBvYmplY3QgZm9yIHJlc3BvbnNlcworICogQHR5cGVkZWYge3sKKyAqICAgZXJyb3JDb2RlOiB1MmYuRXJyb3JDb2RlcywKKyAqICAgZXJyb3JNZXNzYWdlOiA/c3RyaW5nCisgKiB9fQorICovCit1MmYuRXJyb3I7CisKKy8qKgorICogRGF0YSBvYmplY3QgZm9yIGEgc2luZ2xlIHNpZ24gcmVxdWVzdC4KKyAqIEB0eXBlZGVmIHt7CisgKiAgIHZlcnNpb246IHN0cmluZywKKyAqICAgY2hhbGxlbmdlOiBzdHJpbmcsCisgKiAgIGtleUhhbmRsZTogc3RyaW5nLAorICogICBhcHBJZDogc3RyaW5nCisgKiB9fQorICovCit1MmYuU2lnblJlcXVlc3Q7CisKKy8qKgorICogRGF0YSBvYmplY3QgZm9yIGEgc2lnbiByZXNwb25zZS4KKyAqIEB0eXBlZGVmIHt7CisgKiAgIGtleUhhbmRsZTogc3RyaW5nLAorICogICBzaWduYXR1cmVEYXRhOiBzdHJpbmcsCisgKiAgIGNsaWVudERhdGE6IHN0cmluZworICogfX0KKyAqLwordTJmLlNpZ25SZXNwb25zZTsKKworLyoqCisgKiBEYXRhIG9iamVjdCBmb3IgYSByZWdpc3RyYXRpb24gcmVxdWVzdC4KKyAqIEB0eXBlZGVmIHt7CisgKiAgIHZlcnNpb246IHN0cmluZywKKyAqICAgY2hhbGxlbmdlOiBzdHJpbmcsCisgKiAgIGFwcElkOiBzdHJpbmcKKyAqIH19CisgKi8KK3UyZi5SZWdpc3RlclJlcXVlc3Q7CisKKy8qKgorICogRGF0YSBvYmplY3QgZm9yIGEgcmVnaXN0cmF0aW9uIHJlc3BvbnNlLgorICogQHR5cGVkZWYge3sKKyAqICAgcmVnaXN0cmF0aW9uRGF0YTogc3RyaW5nLAorICogICBjbGllbnREYXRhOiBzdHJpbmcKKyAqIH19CisgKi8KK3UyZi5SZWdpc3RlclJlc3BvbnNlOworCisKKy8vIExvdyBsZXZlbCBNZXNzYWdlUG9ydCBBUEkgc3VwcG9ydAorCisvKioKKyAqIFNldHMgdXAgYSBNZXNzYWdlUG9ydCB0byB0aGUgVTJGIGV4dGVuc2lvbiB1c2luZyB0aGUKKyAqIGF2YWlsYWJsZSBtZWNoYW5pc21zLgorICogQHBhcmFtIHtmdW5jdGlvbigoTWVzc2FnZVBvcnR8dTJmLldyYXBwZWRDaHJvbWVSdW50aW1lUG9ydF8pKX0gY2FsbGJhY2sKKyAqLwordTJmLmdldE1lc3NhZ2VQb3J0ID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKKyAgICBpZiAodHlwZW9mIGNocm9tZSAhPSAndW5kZWZpbmVkJyAmJiBjaHJvbWUucnVudGltZSkgeworICAgICAgICAvLyBUaGUgYWN0dWFsIG1lc3NhZ2UgaGVyZSBkb2VzIG5vdCBtYXR0ZXIsIGJ1dCB3ZSBuZWVkIHRvIGdldCBhIHJlcGx5CisgICAgICAgIC8vIGZvciB0aGUgY2FsbGJhY2sgdG8gcnVuLiBUaHVzLCBzZW5kIGFuIGVtcHR5IHNpZ25hdHVyZSByZXF1ZXN0CisgICAgICAgIC8vIGluIG9yZGVyIHRvIGdldCBhIGZhaWx1cmUgcmVzcG9uc2UuCisgICAgICAgIHZhciBtc2cgPSB7CisgICAgICAgICAgICB0eXBlOiB1MmYuTWVzc2FnZVR5cGVzLlUyRl9TSUdOX1JFUVVFU1QsCisgICAgICAgICAgICBzaWduUmVxdWVzdHM6IFtdCisgICAgICAgIH07CisgICAgICAgIGNocm9tZS5ydW50aW1lLnNlbmRNZXNzYWdlKHUyZi5FWFRFTlNJT05fSUQsIG1zZywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoIWNocm9tZS5ydW50aW1lLmxhc3RFcnJvcikgeworICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBvbiBhIHdoaXRlbGlzdGVkIG9yaWdpbiBhbmQgY2FuIHRhbGsgZGlyZWN0bHkKKyAgICAgICAgICAgICAgICAvLyB3aXRoIHRoZSBleHRlbnNpb24uCisgICAgICAgICAgICAgICAgdTJmLmdldENocm9tZVJ1bnRpbWVQb3J0XyhjYWxsYmFjayk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGNocm9tZS5ydW50aW1lIHdhcyBhdmFpbGFibGUsIGJ1dCB3ZSBjb3VsZG4ndCBtZXNzYWdlCisgICAgICAgICAgICAgICAgLy8gdGhlIGV4dGVuc2lvbiBkaXJlY3RseSwgdXNlIGlmcmFtZQorICAgICAgICAgICAgICAgIHUyZi5nZXRJZnJhbWVQb3J0XyhjYWxsYmFjayk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0gZWxzZSBpZiAodTJmLmlzQW5kcm9pZENocm9tZV8oKSkgeworICAgICAgICB1MmYuZ2V0QXV0aGVudGljYXRvclBvcnRfKGNhbGxiYWNrKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBjaHJvbWUucnVudGltZSB3YXMgbm90IGF2YWlsYWJsZSBhdCBhbGwsIHdoaWNoIGlzIG5vcm1hbAorICAgICAgICAvLyB3aGVuIHRoaXMgb3JpZ2luIGRvZXNuJ3QgaGF2ZSBhY2Nlc3MgdG8gYW55IGV4dGVuc2lvbnMuCisgICAgICAgIHUyZi5nZXRJZnJhbWVQb3J0XyhjYWxsYmFjayk7CisgICAgfQorfTsKKworLyoqCisgKiBEZXRlY3QgY2hyb21lIHJ1bm5pbmcgb24gYW5kcm9pZCBiYXNlZCBvbiB0aGUgYnJvd3NlcidzIHVzZXJhZ2VudC4KKyAqIEBwcml2YXRlCisgKi8KK3UyZi5pc0FuZHJvaWRDaHJvbWVfID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CisgICAgcmV0dXJuIHVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSAhPSAtMSAmJgorICAgICAgICB1c2VyQWdlbnQuaW5kZXhPZignQW5kcm9pZCcpICE9IC0xOworfTsKKworLyoqCisgKiBDb25uZWN0cyBkaXJlY3RseSB0byB0aGUgZXh0ZW5zaW9uIHZpYSBjaHJvbWUucnVudGltZS5jb25uZWN0CisgKiBAcGFyYW0ge2Z1bmN0aW9uKHUyZi5XcmFwcGVkQ2hyb21lUnVudGltZVBvcnRfKX0gY2FsbGJhY2sKKyAqIEBwcml2YXRlCisgKi8KK3UyZi5nZXRDaHJvbWVSdW50aW1lUG9ydF8gPSBmdW5jdGlvbihjYWxsYmFjaykgeworICAgIHZhciBwb3J0ID0gY2hyb21lLnJ1bnRpbWUuY29ubmVjdCh1MmYuRVhURU5TSU9OX0lELAorICAgICAgICB7J2luY2x1ZGVUbHNDaGFubmVsSWQnOiB0cnVlfSk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgY2FsbGJhY2sobmV3IHUyZi5XcmFwcGVkQ2hyb21lUnVudGltZVBvcnRfKHBvcnQpKTsKKyAgICB9LCAwKTsKK307CisKKy8qKgorICogUmV0dXJuIGEgJ3BvcnQnIGFic3RyYWN0aW9uIHRvIHRoZSBBdXRoZW50aWNhdG9yIGFwcC4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24odTJmLldyYXBwZWRBdXRoZW50aWNhdG9yUG9ydF8pfSBjYWxsYmFjaworICogQHByaXZhdGUKKyAqLwordTJmLmdldEF1dGhlbnRpY2F0b3JQb3J0XyA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgY2FsbGJhY2sobmV3IHUyZi5XcmFwcGVkQXV0aGVudGljYXRvclBvcnRfKCkpOworICAgIH0sIDApOworfTsKKworLyoqCisgKiBBIHdyYXBwZXIgZm9yIGNocm9tZS5ydW50aW1lLlBvcnQgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggTWVzc2FnZVBvcnQuCisgKiBAcGFyYW0ge1BvcnR9IHBvcnQKKyAqIEBjb25zdHJ1Y3RvcgorICogQHByaXZhdGUKKyAqLwordTJmLldyYXBwZWRDaHJvbWVSdW50aW1lUG9ydF8gPSBmdW5jdGlvbihwb3J0KSB7CisgICAgdGhpcy5wb3J0XyA9IHBvcnQ7Cit9OworCisvKioKKyAqIEZvcm1hdCBhIHJldHVybiBhIHNpZ24gcmVxdWVzdC4KKyAqIEBwYXJhbSB7QXJyYXk8dTJmLlNpZ25SZXF1ZXN0Pn0gc2lnblJlcXVlc3RzCisgKiBAcGFyYW0ge251bWJlcn0gdGltZW91dFNlY29uZHMKKyAqIEBwYXJhbSB7bnVtYmVyfSByZXFJZAorICogQHJldHVybiB7T2JqZWN0fQorICovCit1MmYuV3JhcHBlZENocm9tZVJ1bnRpbWVQb3J0Xy5wcm90b3R5cGUuZm9ybWF0U2lnblJlcXVlc3RfID0KKyAgICBmdW5jdGlvbihzaWduUmVxdWVzdHMsIHRpbWVvdXRTZWNvbmRzLCByZXFJZCkgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdHlwZTogdTJmLk1lc3NhZ2VUeXBlcy5VMkZfU0lHTl9SRVFVRVNULAorICAgICAgICAgICAgc2lnblJlcXVlc3RzOiBzaWduUmVxdWVzdHMsCisgICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogdGltZW91dFNlY29uZHMsCisgICAgICAgICAgICByZXF1ZXN0SWQ6IHJlcUlkCisgICAgICAgIH07CisgICAgfTsKKworLyoqCisgKiBGb3JtYXQgYSByZXR1cm4gYSByZWdpc3RlciByZXF1ZXN0LgorICogQHBhcmFtIHtBcnJheTx1MmYuU2lnblJlcXVlc3Q+fSBzaWduUmVxdWVzdHMKKyAqIEBwYXJhbSB7QXJyYXk8dTJmLlJlZ2lzdGVyUmVxdWVzdD59IHNpZ25SZXF1ZXN0cworICogQHBhcmFtIHtudW1iZXJ9IHRpbWVvdXRTZWNvbmRzCisgKiBAcGFyYW0ge251bWJlcn0gcmVxSWQKKyAqIEByZXR1cm4ge09iamVjdH0KKyAqLwordTJmLldyYXBwZWRDaHJvbWVSdW50aW1lUG9ydF8ucHJvdG90eXBlLmZvcm1hdFJlZ2lzdGVyUmVxdWVzdF8gPQorICAgIGZ1bmN0aW9uKHNpZ25SZXF1ZXN0cywgcmVnaXN0ZXJSZXF1ZXN0cywgdGltZW91dFNlY29uZHMsIHJlcUlkKSB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0eXBlOiB1MmYuTWVzc2FnZVR5cGVzLlUyRl9SRUdJU1RFUl9SRVFVRVNULAorICAgICAgICAgICAgc2lnblJlcXVlc3RzOiBzaWduUmVxdWVzdHMsCisgICAgICAgICAgICByZWdpc3RlclJlcXVlc3RzOiByZWdpc3RlclJlcXVlc3RzLAorICAgICAgICAgICAgdGltZW91dFNlY29uZHM6IHRpbWVvdXRTZWNvbmRzLAorICAgICAgICAgICAgcmVxdWVzdElkOiByZXFJZAorICAgICAgICB9OworICAgIH07CisKKy8qKgorICogUG9zdHMgYSBtZXNzYWdlIG9uIHRoZSB1bmRlcmx5aW5nIGNoYW5uZWwuCisgKiBAcGFyYW0ge09iamVjdH0gbWVzc2FnZQorICovCit1MmYuV3JhcHBlZENocm9tZVJ1bnRpbWVQb3J0Xy5wcm90b3R5cGUucG9zdE1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgdGhpcy5wb3J0Xy5wb3N0TWVzc2FnZShtZXNzYWdlKTsKK307CisKKy8qKgorICogRW11bGF0ZXMgdGhlIEhUTUwgNSBhZGRFdmVudExpc3RlbmVyIGludGVyZmFjZS4gV29ya3Mgb25seSBmb3IgdGhlCisgKiBvbm1lc3NhZ2UgZXZlbnQsIHdoaWNoIGlzIGhvb2tlZCB1cCB0byB0aGUgY2hyb21lLnJ1bnRpbWUuUG9ydC5vbk1lc3NhZ2UuCisgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lCisgKiBAcGFyYW0ge2Z1bmN0aW9uKHtkYXRhOiBPYmplY3R9KX0gaGFuZGxlcgorICovCit1MmYuV3JhcHBlZENocm9tZVJ1bnRpbWVQb3J0Xy5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lciA9CisgICAgZnVuY3Rpb24oZXZlbnROYW1lLCBoYW5kbGVyKSB7CisgICAgICAgIHZhciBuYW1lID0gZXZlbnROYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgICAgIGlmIChuYW1lID09ICdtZXNzYWdlJyB8fCBuYW1lID09ICdvbm1lc3NhZ2UnKSB7CisgICAgICAgICAgICB0aGlzLnBvcnRfLm9uTWVzc2FnZS5hZGRMaXN0ZW5lcihmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgICAgICAgICAgLy8gRW11bGF0ZSBhIG1pbmltYWwgTWVzc2FnZUV2ZW50IG9iamVjdAorICAgICAgICAgICAgICAgIGhhbmRsZXIoeydkYXRhJzogbWVzc2FnZX0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdXcmFwcGVkQ2hyb21lUnVudGltZVBvcnQgb25seSBzdXBwb3J0cyBvbk1lc3NhZ2UnKTsKKyAgICAgICAgfQorICAgIH07CisKKy8qKgorICogV3JhcCB0aGUgQXV0aGVudGljYXRvciBhcHAgd2l0aCBhIE1lc3NhZ2VQb3J0IGludGVyZmFjZS4KKyAqIEBjb25zdHJ1Y3RvcgorICogQHByaXZhdGUKKyAqLwordTJmLldyYXBwZWRBdXRoZW50aWNhdG9yUG9ydF8gPSBmdW5jdGlvbigpIHsKKyAgICB0aGlzLnJlcXVlc3RJZF8gPSAtMTsKKyAgICB0aGlzLnJlcXVlc3RPYmplY3RfID0gbnVsbDsKK30KKworLyoqCisgKiBMYXVuY2ggdGhlIEF1dGhlbnRpY2F0b3IgaW50ZW50LgorICogQHBhcmFtIHtPYmplY3R9IG1lc3NhZ2UKKyAqLwordTJmLldyYXBwZWRBdXRoZW50aWNhdG9yUG9ydF8ucHJvdG90eXBlLnBvc3RNZXNzYWdlID0gZnVuY3Rpb24obWVzc2FnZSkgeworICAgIHZhciBpbnRlbnRMb2NhdGlvbiA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAobWVzc2FnZSk7CisgICAgZG9jdW1lbnQubG9jYXRpb24gPSBpbnRlbnRMb2NhdGlvbjsKK307CisKKy8qKgorICogRW11bGF0ZXMgdGhlIEhUTUwgNSBhZGRFdmVudExpc3RlbmVyIGludGVyZmFjZS4KKyAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oe2RhdGE6IE9iamVjdH0pfSBoYW5kbGVyCisgKi8KK3UyZi5XcmFwcGVkQXV0aGVudGljYXRvclBvcnRfLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0KKyAgICBmdW5jdGlvbihldmVudE5hbWUsIGhhbmRsZXIpIHsKKyAgICAgICAgdmFyIG5hbWUgPSBldmVudE5hbWUudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgaWYgKG5hbWUgPT0gJ21lc3NhZ2UnKSB7CisgICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgICAgICAvKiBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIHRoYXQgZXhlY3V0ZXMgd2hlbgorICAgICAgICAgICAgICogY2hyb21lIGluamVjdHMgdGhlIHJlc3BvbnNlLiAqLworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICAgICAgICAgJ21lc3NhZ2UnLCBzZWxmLm9uUmVxdWVzdFVwZGF0ZV8uYmluZChzZWxmLCBoYW5kbGVyKSwgZmFsc2UpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY29uc29sZS5lcnJvcignV3JhcHBlZEF1dGhlbnRpY2F0b3JQb3J0IG9ubHkgc3VwcG9ydHMgbWVzc2FnZScpOworICAgICAgICB9CisgICAgfTsKKworLyoqCisgKiBDYWxsYmFjayBpbnZva2VkICB3aGVuIGEgcmVzcG9uc2UgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgQXV0aGVudGljYXRvci4KKyAqIEBwYXJhbSBmdW5jdGlvbih7ZGF0YTogT2JqZWN0fSkgY2FsbGJhY2sKKyAqIEBwYXJhbSB7T2JqZWN0fSBtZXNzYWdlIG1lc3NhZ2UgT2JqZWN0CisgKi8KK3UyZi5XcmFwcGVkQXV0aGVudGljYXRvclBvcnRfLnByb3RvdHlwZS5vblJlcXVlc3RVcGRhdGVfID0KKyAgICBmdW5jdGlvbihjYWxsYmFjaywgbWVzc2FnZSkgeworICAgICAgICB2YXIgbWVzc2FnZU9iamVjdCA9IEpTT04ucGFyc2UobWVzc2FnZS5kYXRhKTsKKyAgICAgICAgdmFyIGludGVudFVybCA9IG1lc3NhZ2VPYmplY3RbJ2ludGVudFVSTCddOworCisgICAgICAgIHZhciBlcnJvckNvZGUgPSBtZXNzYWdlT2JqZWN0WydlcnJvckNvZGUnXTsKKyAgICAgICAgdmFyIHJlc3BvbnNlT2JqZWN0ID0gbnVsbDsKKyAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuaGFzT3duUHJvcGVydHkoJ2RhdGEnKSkgeworICAgICAgICAgICAgcmVzcG9uc2VPYmplY3QgPSAvKiogQHR5cGUge09iamVjdH0gKi8gKAorICAgICAgICAgICAgICAgIEpTT04ucGFyc2UobWVzc2FnZU9iamVjdFsnZGF0YSddKSk7CisgICAgICAgICAgICByZXNwb25zZU9iamVjdFsncmVxdWVzdElkJ10gPSB0aGlzLnJlcXVlc3RJZF87CisgICAgICAgIH0KKworICAgICAgICAvKiBTaWduIHJlc3BvbnNlcyBmcm9tIHRoZSBhdXRoZW50aWNhdG9yIGRvIG5vdCBjb25mb3JtIHRvIFUyRiwKKyAgICAgICAgICogY29udmVydCB0byBVMkYgaGVyZS4gKi8KKyAgICAgICAgcmVzcG9uc2VPYmplY3QgPSB0aGlzLmRvUmVzcG9uc2VGaXh1cHNfKHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgY2FsbGJhY2soeydkYXRhJzogcmVzcG9uc2VPYmplY3R9KTsKKyAgICB9OworCisvKioKKyAqIEZpeHVwIHRoZSByZXNwb25zZSBwcm92aWRlZCBieSB0aGUgQXV0aGVudGljYXRvciB0byBjb25mb3JtIHdpdGgKKyAqIHRoZSBVMkYgc3BlYy4KKyAqIEBwYXJhbSB7T2JqZWN0fSByZXNwb25zZURhdGEKKyAqIEByZXR1cm4ge09iamVjdH0gdGhlIFUyRiBjb21wbGlhbnQgcmVzcG9uc2Ugb2JqZWN0CisgKi8KK3UyZi5XcmFwcGVkQXV0aGVudGljYXRvclBvcnRfLnByb3RvdHlwZS5kb1Jlc3BvbnNlRml4dXBzXyA9CisgICAgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgaWYgKHJlc3BvbnNlT2JqZWN0Lmhhc093blByb3BlcnR5KCdyZXNwb25zZURhdGEnKSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlT2JqZWN0OworICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVxdWVzdE9iamVjdF9bJ3R5cGUnXSAhPSB1MmYuTWVzc2FnZVR5cGVzLlUyRl9TSUdOX1JFUVVFU1QpIHsKKyAgICAgICAgICAgIC8vIE9ubHkgc2lnbiByZXNwb25zZXMgcmVxdWlyZSBmaXh1cHMuICBJZiB0aGlzIGlzIG5vdCBhIHJlc3BvbnNlCisgICAgICAgICAgICAvLyB0byBhIHNpZ24gcmVxdWVzdCwgdGhlbiBhbiBpbnRlcm5hbCBlcnJvciBoYXMgb2NjdXJyZWQuCisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICd0eXBlJzogdTJmLk1lc3NhZ2VUeXBlcy5VMkZfUkVHSVNURVJfUkVTUE9OU0UsCisgICAgICAgICAgICAgICAgJ3Jlc3BvbnNlRGF0YSc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ2Vycm9yQ29kZSc6IHUyZi5FcnJvckNvZGVzLk9USEVSX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAnZXJyb3JNZXNzYWdlJzogJ0ludGVybmFsIGVycm9yOiBpbnZhbGlkIHJlc3BvbnNlIGZyb20gQXV0aGVudGljYXRvcicKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgLyogTm9uLWNvbmZvcm1hbnQgc2lnbiByZXNwb25zZSwgZG8gZml4dXBzLiAqLworICAgICAgICB2YXIgZW5jb2RlZENoYWxsZW5nZU9iamVjdCA9IHJlc3BvbnNlT2JqZWN0WydjaGFsbGVuZ2UnXTsKKyAgICAgICAgaWYgKHR5cGVvZiBlbmNvZGVkQ2hhbGxlbmdlT2JqZWN0ICE9PSAndW5kZWZpbmVkJykgeworICAgICAgICAgICAgdmFyIGNoYWxsZW5nZU9iamVjdCA9IEpTT04ucGFyc2UoYXRvYihlbmNvZGVkQ2hhbGxlbmdlT2JqZWN0KSk7CisgICAgICAgICAgICB2YXIgc2VydmVyQ2hhbGxlbmdlID0gY2hhbGxlbmdlT2JqZWN0WydjaGFsbGVuZ2UnXTsKKyAgICAgICAgICAgIHZhciBjaGFsbGVuZ2VzTGlzdCA9IHRoaXMucmVxdWVzdE9iamVjdF9bJ3NpZ25EYXRhJ107CisgICAgICAgICAgICB2YXIgcmVxdWVzdENoYWxsZW5nZU9iamVjdCA9IG51bGw7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYWxsZW5nZXNMaXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdmFyIGNoYWxsZW5nZU9iamVjdCA9IGNoYWxsZW5nZXNMaXN0W2ldOworICAgICAgICAgICAgICAgIGlmIChjaGFsbGVuZ2VPYmplY3RbJ2tleUhhbmRsZSddID09IHJlc3BvbnNlT2JqZWN0WydrZXlIYW5kbGUnXSkgeworICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Q2hhbGxlbmdlT2JqZWN0ID0gY2hhbGxlbmdlT2JqZWN0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlc3BvbnNlRGF0YSA9IHsKKyAgICAgICAgICAgICdlcnJvckNvZGUnOiByZXNwb25zZU9iamVjdFsncmVzdWx0Q29kZSddLAorICAgICAgICAgICAgJ2tleUhhbmRsZSc6IHJlc3BvbnNlT2JqZWN0WydrZXlIYW5kbGUnXSwKKyAgICAgICAgICAgICdzaWduYXR1cmVEYXRhJzogcmVzcG9uc2VPYmplY3RbJ3NpZ25hdHVyZSddLAorICAgICAgICAgICAgJ2NsaWVudERhdGEnOiBlbmNvZGVkQ2hhbGxlbmdlT2JqZWN0CisgICAgICAgIH07CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAndHlwZSc6IHUyZi5NZXNzYWdlVHlwZXMuVTJGX1NJR05fUkVTUE9OU0UsCisgICAgICAgICAgICAncmVzcG9uc2VEYXRhJzogcmVzcG9uc2VEYXRhLAorICAgICAgICAgICAgJ3JlcXVlc3RJZCc6IHJlc3BvbnNlT2JqZWN0WydyZXF1ZXN0SWQnXQorICAgICAgICB9CisgICAgfTsKKworLyoqCisgKiBCYXNlIFVSTCBmb3IgaW50ZW50cyB0byBBdXRoZW50aWNhdG9yLgorICogQGNvbnN0CisgKiBAcHJpdmF0ZQorICovCit1MmYuV3JhcHBlZEF1dGhlbnRpY2F0b3JQb3J0Xy5JTlRFTlRfVVJMX0JBU0VfID0KKyAgICAnaW50ZW50OiNJbnRlbnQ7YWN0aW9uPWNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLmF1dGhlbnRpY2F0b3IuQVVUSEVOVElDQVRFJzsKKworLyoqCisgKiBGb3JtYXQgYSByZXR1cm4gYSBzaWduIHJlcXVlc3QuCisgKiBAcGFyYW0ge0FycmF5PHUyZi5TaWduUmVxdWVzdD59IHNpZ25SZXF1ZXN0cworICogQHBhcmFtIHtudW1iZXJ9IHRpbWVvdXRTZWNvbmRzIChpZ25vcmVkIGZvciBub3cpCisgKiBAcGFyYW0ge251bWJlcn0gcmVxSWQKKyAqIEByZXR1cm4ge3N0cmluZ30KKyAqLwordTJmLldyYXBwZWRBdXRoZW50aWNhdG9yUG9ydF8ucHJvdG90eXBlLmZvcm1hdFNpZ25SZXF1ZXN0XyA9CisgICAgZnVuY3Rpb24oc2lnblJlcXVlc3RzLCB0aW1lb3V0U2Vjb25kcywgcmVxSWQpIHsKKyAgICAgICAgaWYgKCFzaWduUmVxdWVzdHMgfHwgc2lnblJlcXVlc3RzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAvKiBUT0RPKGZpeG1lKTogc3Rhc2ggYXdheSByZXF1ZXN0SWQsIGFzIHRoZSBhdXRoZW50aWNhdG9yIGFwcCBkb2VzCisgICAgICAgICAqIG5vdCByZXR1cm4gaXQgZm9yIHNpZ24gcmVzcG9uc2VzLiAqLworICAgICAgICB0aGlzLnJlcXVlc3RJZF8gPSByZXFJZDsKKyAgICAgICAgLyogVE9ETyhmaXhtZSk6IHN0YXNoIGF3YXkgdGhlIHNpZ25SZXF1ZXN0cywgdG8gZGVhbCB3aXRoIHRoZSBsZWdhY3kKKyAgICAgICAgICogcmVzcG9uc2UgZm9ybWF0IHJldHVybmVkIGJ5IHRoZSBBdXRoZW50aWNhdG9yIGFwcC4gKi8KKyAgICAgICAgdGhpcy5yZXF1ZXN0T2JqZWN0XyA9IHsKKyAgICAgICAgICAgICd0eXBlJzogdTJmLk1lc3NhZ2VUeXBlcy5VMkZfU0lHTl9SRVFVRVNULAorICAgICAgICAgICAgJ3NpZ25EYXRhJzogc2lnblJlcXVlc3RzLAorICAgICAgICAgICAgJ3JlcXVlc3RJZCc6IHJlcUlkLAorICAgICAgICAgICAgJ3RpbWVvdXQnOiB0aW1lb3V0U2Vjb25kcworICAgICAgICB9OworCisgICAgICAgIHZhciBhcHBJZCA9IHNpZ25SZXF1ZXN0c1swXVsnYXBwSWQnXTsKKyAgICAgICAgdmFyIGludGVudFVybCA9CisgICAgICAgICAgICB1MmYuV3JhcHBlZEF1dGhlbnRpY2F0b3JQb3J0Xy5JTlRFTlRfVVJMX0JBU0VfICsKKyAgICAgICAgICAgICc7Uy5hcHBJZD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGFwcElkKSArCisgICAgICAgICAgICAnO1MuZXZlbnRJZD0nICsgcmVxSWQgKworICAgICAgICAgICAgJztTLmNoYWxsZW5nZXM9JyArCisgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoCisgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCcm93c2VyRGF0YUxpc3RfKHNpZ25SZXF1ZXN0cykpKSArICc7ZW5kJzsKKyAgICAgICAgcmV0dXJuIGludGVudFVybDsKKyAgICB9OworCisvKioKKyAqIEdldCB0aGUgYnJvd3NlciBkYXRhIG9iamVjdHMgZnJvbSB0aGUgY2hhbGxlbmdlIGxpc3QKKyAqIEBwYXJhbSB7QXJyYXl9IGNoYWxsZW5nZXMgbGlzdCBvZiBjaGFsbGVuZ2VzCisgKiBAcmV0dXJuIHtBcnJheX0gbGlzdCBvZiBicm93c2VyIGRhdGEgb2JqZWN0cworICogQHByaXZhdGUKKyAqLwordTJmLldyYXBwZWRBdXRoZW50aWNhdG9yUG9ydF8KKyAgICAucHJvdG90eXBlLmdldEJyb3dzZXJEYXRhTGlzdF8gPSBmdW5jdGlvbihjaGFsbGVuZ2VzKSB7CisgICAgcmV0dXJuIGNoYWxsZW5nZXMKKyAgICAgICAgLm1hcChmdW5jdGlvbihjaGFsbGVuZ2UpIHsKKyAgICAgICAgICAgIHZhciBicm93c2VyRGF0YSA9IHsKKyAgICAgICAgICAgICAgICAndHlwJzogJ25hdmlnYXRvci5pZC5nZXRBc3NlcnRpb24nLAorICAgICAgICAgICAgICAgICdjaGFsbGVuZ2UnOiBjaGFsbGVuZ2VbJ2NoYWxsZW5nZSddCisgICAgICAgICAgICB9OworICAgICAgICAgICAgdmFyIGNoYWxsZW5nZU9iamVjdCA9IHsKKyAgICAgICAgICAgICAgICAnY2hhbGxlbmdlJyA6IGJyb3dzZXJEYXRhLAorICAgICAgICAgICAgICAgICdrZXlIYW5kbGUnIDogY2hhbGxlbmdlWydrZXlIYW5kbGUnXQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBjaGFsbGVuZ2VPYmplY3Q7CisgICAgICAgIH0pOworfTsKKworLyoqCisgKiBGb3JtYXQgYSByZXR1cm4gYSByZWdpc3RlciByZXF1ZXN0LgorICogQHBhcmFtIHtBcnJheTx1MmYuU2lnblJlcXVlc3Q+fSBzaWduUmVxdWVzdHMKKyAqIEBwYXJhbSB7QXJyYXk8dTJmLlJlZ2lzdGVyUmVxdWVzdD59IGVucm9sbENoYWxsZW5nZXMKKyAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lb3V0U2Vjb25kcyAoaWdub3JlZCBmb3Igbm93KQorICogQHBhcmFtIHtudW1iZXJ9IHJlcUlkCisgKiBAcmV0dXJuIHtPYmplY3R9CisgKi8KK3UyZi5XcmFwcGVkQXV0aGVudGljYXRvclBvcnRfLnByb3RvdHlwZS5mb3JtYXRSZWdpc3RlclJlcXVlc3RfID0KKyAgICBmdW5jdGlvbihzaWduUmVxdWVzdHMsIGVucm9sbENoYWxsZW5nZXMsIHRpbWVvdXRTZWNvbmRzLCByZXFJZCkgeworICAgICAgICBpZiAoIWVucm9sbENoYWxsZW5nZXMgfHwgZW5yb2xsQ2hhbGxlbmdlcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgLy8gQXNzdW1lIHRoZSBhcHBJZCBpcyB0aGUgc2FtZSBmb3IgYWxsIGVucm9sbCBjaGFsbGVuZ2VzLgorICAgICAgICB2YXIgYXBwSWQgPSBlbnJvbGxDaGFsbGVuZ2VzWzBdWydhcHBJZCddOworICAgICAgICB2YXIgcmVnaXN0ZXJSZXF1ZXN0cyA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVucm9sbENoYWxsZW5nZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciByZWdpc3RlclJlcXVlc3QgPSB7CisgICAgICAgICAgICAgICAgJ2NoYWxsZW5nZSc6IGVucm9sbENoYWxsZW5nZXNbaV1bJ2NoYWxsZW5nZSddLAorICAgICAgICAgICAgICAgICd2ZXJzaW9uJzogZW5yb2xsQ2hhbGxlbmdlc1tpXVsndmVyc2lvbiddCisgICAgICAgICAgICB9OworICAgICAgICAgICAgaWYgKGVucm9sbENoYWxsZW5nZXNbaV1bJ2FwcElkJ10gIT0gYXBwSWQpIHsKKyAgICAgICAgICAgICAgICAvLyBPbmx5IGluY2x1ZGUgdGhlIGFwcElkIHdoZW4gaXQgZGlmZmVycyBmcm9tIHRoZSBmaXJzdCBhcHBJZC4KKyAgICAgICAgICAgICAgICByZWdpc3RlclJlcXVlc3RbJ2FwcElkJ10gPSBlbnJvbGxDaGFsbGVuZ2VzW2ldWydhcHBJZCddOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVnaXN0ZXJSZXF1ZXN0cy5wdXNoKHJlZ2lzdGVyUmVxdWVzdCk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJlZ2lzdGVyZWRLZXlzID0gW107CisgICAgICAgIGlmIChzaWduUmVxdWVzdHMpIHsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaWduUmVxdWVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIga2V5ID0geworICAgICAgICAgICAgICAgICAgICAna2V5SGFuZGxlJzogc2lnblJlcXVlc3RzW2ldWydrZXlIYW5kbGUnXSwKKyAgICAgICAgICAgICAgICAgICAgJ3ZlcnNpb24nOiBzaWduUmVxdWVzdHNbaV1bJ3ZlcnNpb24nXQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgLy8gT25seSBpbmNsdWRlIHRoZSBhcHBJZCB3aGVuIGl0IGRpZmZlcnMgZnJvbSB0aGUgYXBwSWQgdGhhdCdzCisgICAgICAgICAgICAgICAgLy8gYmVpbmcgcmVnaXN0ZXJlZCBub3cuCisgICAgICAgICAgICAgICAgaWYgKHNpZ25SZXF1ZXN0c1tpXVsnYXBwSWQnXSAhPSBhcHBJZCkgeworICAgICAgICAgICAgICAgICAgICBrZXlbJ2FwcElkJ10gPSBzaWduUmVxdWVzdHNbaV1bJ2FwcElkJ107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlZ2lzdGVyZWRLZXlzLnB1c2goa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB2YXIgcmVxdWVzdCA9IHsKKyAgICAgICAgICAgICd0eXBlJzogdTJmLk1lc3NhZ2VUeXBlcy5VMkZfUkVHSVNURVJfUkVRVUVTVCwKKyAgICAgICAgICAgICdhcHBJZCc6IGFwcElkLAorICAgICAgICAgICAgJ3JlZ2lzdGVyUmVxdWVzdHMnOiByZWdpc3RlclJlcXVlc3RzLAorICAgICAgICAgICAgJ3JlZ2lzdGVyZWRLZXlzJzogcmVnaXN0ZXJlZEtleXMsCisgICAgICAgICAgICAncmVxdWVzdElkJzogcmVxSWQsCisgICAgICAgICAgICAndGltZW91dFNlY29uZHMnOiB0aW1lb3V0U2Vjb25kcworICAgICAgICB9OworICAgICAgICB2YXIgaW50ZW50VXJsID0KKyAgICAgICAgICAgIHUyZi5XcmFwcGVkQXV0aGVudGljYXRvclBvcnRfLklOVEVOVF9VUkxfQkFTRV8gKworICAgICAgICAgICAgJztTLnJlcXVlc3Q9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShyZXF1ZXN0KSkgKworICAgICAgICAgICAgJztlbmQnOworICAgICAgICAvKiBUT0RPKGZpeG1lKTogc3Rhc2ggYXdheSByZXF1ZXN0SWQsIHRoaXMgaXMgaXMgbm90IG5lY2Vzc2FyeSBmb3IKKyAgICAgICAgICogcmVnaXN0ZXIgcmVxdWVzdHMsIGJ1dCBoZXJlIHRvIGtlZXAgcGFyaXR5IHdpdGggc2lnbi4KKyAgICAgICAgICovCisgICAgICAgIHRoaXMucmVxdWVzdElkXyA9IHJlcUlkOworICAgICAgICByZXR1cm4gaW50ZW50VXJsOworICAgIH07CisKKworLyoqCisgKiBTZXRzIHVwIGFuIGVtYmVkZGVkIHRyYW1wb2xpbmUgaWZyYW1lLCBzb3VyY2VkIGZyb20gdGhlIGV4dGVuc2lvbi4KKyAqIEBwYXJhbSB7ZnVuY3Rpb24oTWVzc2FnZVBvcnQpfSBjYWxsYmFjaworICogQHByaXZhdGUKKyAqLwordTJmLmdldElmcmFtZVBvcnRfID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKKyAgICAvLyBDcmVhdGUgdGhlIGlmcmFtZQorICAgIHZhciBpZnJhbWVPcmlnaW4gPSAnY2hyb21lLWV4dGVuc2lvbjovLycgKyB1MmYuRVhURU5TSU9OX0lEOworICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBpZnJhbWUuc3JjID0gaWZyYW1lT3JpZ2luICsgJy91MmYtY29tbXMuaHRtbCc7CisgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTpub25lJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworCisgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICB2YXIgcmVhZHkgPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgIGlmIChtZXNzYWdlLmRhdGEgPT0gJ3JlYWR5JykgeworICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVhZHkpOworICAgICAgICAgICAgY2FsbGJhY2soY2hhbm5lbC5wb3J0MSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGaXJzdCBldmVudCBvbiBpZnJhbWUgcG9ydCB3YXMgbm90ICJyZWFkeSInKTsKKyAgICAgICAgfQorICAgIH07CisgICAgY2hhbm5lbC5wb3J0MS5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVhZHkpOworICAgIGNoYW5uZWwucG9ydDEuc3RhcnQoKTsKKworICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIERlbGl2ZXIgdGhlIHBvcnQgdG8gdGhlIGlmcmFtZSBhbmQgaW5pdGlhbGl6ZQorICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgnaW5pdCcsIGlmcmFtZU9yaWdpbiwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICB9KTsKK307CisKKworLy8gSGlnaC1sZXZlbCBKUyBBUEkKKworLyoqCisgKiBEZWZhdWx0IGV4dGVuc2lvbiByZXNwb25zZSB0aW1lb3V0IGluIHNlY29uZHMuCisgKiBAY29uc3QKKyAqLwordTJmLkVYVEVOU0lPTl9USU1FT1VUX1NFQyA9IDMwOworCisvKioKKyAqIEEgc2luZ2xldG9uIGluc3RhbmNlIGZvciBhIE1lc3NhZ2VQb3J0IHRvIHRoZSBleHRlbnNpb24uCisgKiBAdHlwZSB7TWVzc2FnZVBvcnR8dTJmLldyYXBwZWRDaHJvbWVSdW50aW1lUG9ydF99CisgKiBAcHJpdmF0ZQorICovCit1MmYucG9ydF8gPSBudWxsOworCisvKioKKyAqIENhbGxiYWNrcyB3YWl0aW5nIGZvciBhIHBvcnQKKyAqIEB0eXBlIHtBcnJheTxmdW5jdGlvbigoTWVzc2FnZVBvcnR8dTJmLldyYXBwZWRDaHJvbWVSdW50aW1lUG9ydF8pKT59CisgKiBAcHJpdmF0ZQorICovCit1MmYud2FpdGluZ0ZvclBvcnRfID0gW107CisKKy8qKgorICogQSBjb3VudGVyIGZvciByZXF1ZXN0SWRzLgorICogQHR5cGUge251bWJlcn0KKyAqIEBwcml2YXRlCisgKi8KK3UyZi5yZXFDb3VudGVyXyA9IDA7CisKKy8qKgorICogQSBtYXAgZnJvbSByZXF1ZXN0SWRzIHRvIGNsaWVudCBjYWxsYmFja3MKKyAqIEB0eXBlIHtPYmplY3QuPG51bWJlciwoZnVuY3Rpb24oKHUyZi5FcnJvcnx1MmYuUmVnaXN0ZXJSZXNwb25zZSkpCisgKiAgICAgICAgICAgICAgICAgICAgICAgfGZ1bmN0aW9uKCh1MmYuRXJyb3J8dTJmLlNpZ25SZXNwb25zZSkpKT59CisgKiBAcHJpdmF0ZQorICovCit1MmYuY2FsbGJhY2tNYXBfID0ge307CisKKy8qKgorICogQ3JlYXRlcyBvciByZXRyaWV2ZXMgdGhlIE1lc3NhZ2VQb3J0IHNpbmdsZXRvbiB0byB1c2UuCisgKiBAcGFyYW0ge2Z1bmN0aW9uKChNZXNzYWdlUG9ydHx1MmYuV3JhcHBlZENocm9tZVJ1bnRpbWVQb3J0XykpfSBjYWxsYmFjaworICogQHByaXZhdGUKKyAqLwordTJmLmdldFBvcnRTaW5nbGV0b25fID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKKyAgICBpZiAodTJmLnBvcnRfKSB7CisgICAgICAgIGNhbGxiYWNrKHUyZi5wb3J0Xyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHUyZi53YWl0aW5nRm9yUG9ydF8ubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHUyZi5nZXRNZXNzYWdlUG9ydChmdW5jdGlvbihwb3J0KSB7CisgICAgICAgICAgICAgICAgdTJmLnBvcnRfID0gcG9ydDsKKyAgICAgICAgICAgICAgICB1MmYucG9ydF8uYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsCisgICAgICAgICAgICAgICAgICAgIC8qKiBAdHlwZSB7ZnVuY3Rpb24oRXZlbnQpfSAqLyAodTJmLnJlc3BvbnNlSGFuZGxlcl8pKTsKKworICAgICAgICAgICAgICAgIC8vIENhcmVmdWwsIGhlcmUgYmUgYXN5bmMgY2FsbGJhY2tzLiBNYXliZS4KKyAgICAgICAgICAgICAgICB3aGlsZSAodTJmLndhaXRpbmdGb3JQb3J0Xy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIHUyZi53YWl0aW5nRm9yUG9ydF8uc2hpZnQoKSh1MmYucG9ydF8pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgdTJmLndhaXRpbmdGb3JQb3J0Xy5wdXNoKGNhbGxiYWNrKTsKKyAgICB9Cit9OworCisvKioKKyAqIEhhbmRsZXMgcmVzcG9uc2UgbWVzc2FnZXMgZnJvbSB0aGUgZXh0ZW5zaW9uLgorICogQHBhcmFtIHtNZXNzYWdlRXZlbnQuPHUyZi5SZXNwb25zZT59IG1lc3NhZ2UKKyAqIEBwcml2YXRlCisgKi8KK3UyZi5yZXNwb25zZUhhbmRsZXJfID0gZnVuY3Rpb24obWVzc2FnZSkgeworICAgIHZhciByZXNwb25zZSA9IG1lc3NhZ2UuZGF0YTsKKyAgICB2YXIgcmVxSWQgPSByZXNwb25zZVsncmVxdWVzdElkJ107CisgICAgaWYgKCFyZXFJZCB8fCAhdTJmLmNhbGxiYWNrTWFwX1tyZXFJZF0pIHsKKyAgICAgICAgY29uc29sZS5lcnJvcignVW5rbm93biBvciBtaXNzaW5nIHJlcXVlc3RJZCBpbiByZXNwb25zZS4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB2YXIgY2IgPSB1MmYuY2FsbGJhY2tNYXBfW3JlcUlkXTsKKyAgICBkZWxldGUgdTJmLmNhbGxiYWNrTWFwX1tyZXFJZF07CisgICAgY2IocmVzcG9uc2VbJ3Jlc3BvbnNlRGF0YSddKTsKK307CisKKy8qKgorICogRGlzcGF0Y2hlcyBhbiBhcnJheSBvZiBzaWduIHJlcXVlc3RzIHRvIGF2YWlsYWJsZSBVMkYgdG9rZW5zLgorICogQHBhcmFtIHtBcnJheTx1MmYuU2lnblJlcXVlc3Q+fSBzaWduUmVxdWVzdHMKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKHUyZi5FcnJvcnx1MmYuU2lnblJlc3BvbnNlKSl9IGNhbGxiYWNrCisgKiBAcGFyYW0ge251bWJlcj19IG9wdF90aW1lb3V0U2Vjb25kcworICovCit1MmYuc2lnbiA9IGZ1bmN0aW9uKHNpZ25SZXF1ZXN0cywgY2FsbGJhY2ssIG9wdF90aW1lb3V0U2Vjb25kcykgeworICAgIHUyZi5nZXRQb3J0U2luZ2xldG9uXyhmdW5jdGlvbihwb3J0KSB7CisgICAgICAgIHZhciByZXFJZCA9ICsrdTJmLnJlcUNvdW50ZXJfOworICAgICAgICB1MmYuY2FsbGJhY2tNYXBfW3JlcUlkXSA9IGNhbGxiYWNrOworICAgICAgICB2YXIgdGltZW91dFNlY29uZHMgPSAodHlwZW9mIG9wdF90aW1lb3V0U2Vjb25kcyAhPT0gJ3VuZGVmaW5lZCcgPworICAgICAgICAgICAgb3B0X3RpbWVvdXRTZWNvbmRzIDogdTJmLkVYVEVOU0lPTl9USU1FT1VUX1NFQyk7CisgICAgICAgIHZhciByZXEgPSBwb3J0LmZvcm1hdFNpZ25SZXF1ZXN0XyhzaWduUmVxdWVzdHMsIHRpbWVvdXRTZWNvbmRzLCByZXFJZCk7CisgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UocmVxKTsKKyAgICB9KTsKK307CisKKy8qKgorICogRGlzcGF0Y2hlcyByZWdpc3RlciByZXF1ZXN0cyB0byBhdmFpbGFibGUgVTJGIHRva2Vucy4gQW4gYXJyYXkgb2Ygc2lnbgorICogcmVxdWVzdHMgaWRlbnRpZmllcyBhbHJlYWR5IHJlZ2lzdGVyZWQgdG9rZW5zLgorICogQHBhcmFtIHtBcnJheTx1MmYuUmVnaXN0ZXJSZXF1ZXN0Pn0gcmVnaXN0ZXJSZXF1ZXN0cworICogQHBhcmFtIHtBcnJheTx1MmYuU2lnblJlcXVlc3Q+fSBzaWduUmVxdWVzdHMKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKHUyZi5FcnJvcnx1MmYuUmVnaXN0ZXJSZXNwb25zZSkpfSBjYWxsYmFjaworICogQHBhcmFtIHtudW1iZXI9fSBvcHRfdGltZW91dFNlY29uZHMKKyAqLwordTJmLnJlZ2lzdGVyID0gZnVuY3Rpb24ocmVnaXN0ZXJSZXF1ZXN0cywgc2lnblJlcXVlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIG9wdF90aW1lb3V0U2Vjb25kcykgeworICAgIHUyZi5nZXRQb3J0U2luZ2xldG9uXyhmdW5jdGlvbihwb3J0KSB7CisgICAgICAgIHZhciByZXFJZCA9ICsrdTJmLnJlcUNvdW50ZXJfOworICAgICAgICB1MmYuY2FsbGJhY2tNYXBfW3JlcUlkXSA9IGNhbGxiYWNrOworICAgICAgICB2YXIgdGltZW91dFNlY29uZHMgPSAodHlwZW9mIG9wdF90aW1lb3V0U2Vjb25kcyAhPT0gJ3VuZGVmaW5lZCcgPworICAgICAgICAgICAgb3B0X3RpbWVvdXRTZWNvbmRzIDogdTJmLkVYVEVOU0lPTl9USU1FT1VUX1NFQyk7CisgICAgICAgIHZhciByZXEgPSBwb3J0LmZvcm1hdFJlZ2lzdGVyUmVxdWVzdF8oCisgICAgICAgICAgICBzaWduUmVxdWVzdHMsIHJlZ2lzdGVyUmVxdWVzdHMsIHRpbWVvdXRTZWNvbmRzLCByZXFJZCk7CisgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UocmVxKTsKKyAgICB9KTsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2V4YW1wbGVzL2NsaS91MmYtc2VydmVyLnBocHMgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvZXhhbXBsZXMvY2xpL3UyZi1zZXJ2ZXIucGhwcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YWNiNjZhCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2V4YW1wbGVzL2NsaS91MmYtc2VydmVyLnBocHMKQEAgLTAsMCArMSw4MyBAQAorIyEvdXNyL2Jpbi9waHAKKzw/cGhwCisKKyAvKiBDb3B5cmlnaHQgKGMpIDIwMTUgWXViaWNvIEFCCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkCisgKiAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBUaGlzIGlzIGEgYmFzaWMgZXhhbXBsZSBvZiBhIHUyZi1zZXJ2ZXIgY29tbWFuZCBsaW5lIHRoYXQgY2FuIGJlIHVzZWQgCisgKiB3aXRoIHRoZSB1MmYtaG9zdCBiaW5hcnkgdG8gcGVyZm9ybSByZWdpdHJhdGlvbnMgYW5kIGF1dGhlbnRpY2F0aW9ucy4KKyAqLyAKKworcmVxdWlyZV9vbmNlKCcuLi8uLi9zcmMvdTJmbGliX3NlcnZlci9VMkYucGhwJyk7CisKKyRvcHRpb25zID0gZ2V0b3B0KCJyYW86UjoiKTsKKyRtb2RlOworJGNoYWxsZW5nZTsKKyRyZXNwb25zZTsKKyRyZXN1bHQ7CiskcmVnczsKKworaWYoYXJyYXlfa2V5X2V4aXN0cygncicsICRvcHRpb25zKSkgeworICAkbW9kZSA9ICJyZWdpc3RlciI7Cit9IGVsc2VpZihhcnJheV9rZXlfZXhpc3RzKCdhJywgJG9wdGlvbnMpKSB7CisgIGlmKCFhcnJheV9rZXlfZXhpc3RzKCdSJywgJG9wdGlvbnMpKSB7CisgICAgcHJpbnQgImEgcmVnaXN0cmF0aW9uIG11c3QgYmUgc3VwcGxpZWQgd2l0aCAtUiI7CisgICAgZXhpdCgxKTsKKyAgfQorICAkcmVncyA9IGpzb25fZGVjb2RlKCdbJyAuICRvcHRpb25zWydSJ10gLiAnXScpOworICAkbW9kZSA9ICJhdXRoZW50aWNhdGUiOworfSBlbHNlIHsKKyAgcHJpbnQgIi1yIG9yIC1hIG11c3QgYmUgdXNlZFxuIjsKKyAgZXhpdCgxKTsKK30KK2lmKCFhcnJheV9rZXlfZXhpc3RzKCdvJywgJG9wdGlvbnMpKSB7CisgIHByaW50ICJvcmlnaW4gbXVzdCBiZSBzdXBwbGllZCB3aXRoIC1vXG4iOworICBleGl0KDEpOworfQorCiskdTJmID0gbmV3IHUyZmxpYl9zZXJ2ZXJcVTJGKCRvcHRpb25zWydvJ10pOworCitpZigkbW9kZSA9PT0gInJlZ2lzdGVyIikgeworICAkY2hhbGxlbmdlID0gJHUyZi0+Z2V0UmVnaXN0ZXJEYXRhKCk7Cit9IGVsc2VpZigkbW9kZSA9PT0gImF1dGhlbnRpY2F0ZSIpIHsKKyAgJGNoYWxsZW5nZSA9ICR1MmYtPmdldEF1dGhlbnRpY2F0ZURhdGEoJHJlZ3MpOworfQorCitwcmludCBqc29uX2VuY29kZSgkY2hhbGxlbmdlWzBdKSAuICJcbiI7CiskcmVzcG9uc2UgPSBmZ2V0cyhTVERJTik7CisKK2lmKCRtb2RlID09PSAicmVnaXN0ZXIiKSB7CisgICRyZXN1bHQgPSAkdTJmLT5kb1JlZ2lzdGVyKCRjaGFsbGVuZ2VbMF0sIGpzb25fZGVjb2RlKCRyZXNwb25zZSkpOworfSBlbHNlaWYoJG1vZGUgPT09ICJhdXRoZW50aWNhdGUiKSB7CisgICRyZXN1bHQgPSAkdTJmLT5kb0F1dGhlbnRpY2F0ZSgkY2hhbGxlbmdlLCAkcmVncywganNvbl9kZWNvZGUoJHJlc3BvbnNlKSk7Cit9CisKK3ByaW50IGpzb25fZW5jb2RlKCRyZXN1bHQpIC4gIlxuIjsKKworPz4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9leGFtcGxlcy9sb2NhbHN0b3JhZ2UvaW5kZXgucGhwcyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9leGFtcGxlcy9sb2NhbHN0b3JhZ2UvaW5kZXgucGhwcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODQwZGQzCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2V4YW1wbGVzL2xvY2Fsc3RvcmFnZS9pbmRleC5waHBzCkBAIC0wLDAgKzEsMTg2IEBACis8P3BocAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTQgWXViaWNvIEFCCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkCisgKiAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBUaGlzIGlzIGEgbWluaW1hbCBleGFtcGxlIG9mIFUyRiByZWdpc3RyYXRpb24gYW5kIGF1dGhlbnRpY2F0aW9uLgorICogVGhlIGRhdGEgdGhhdCBoYXMgdG8gYmUgc3RvcmVkIGJldHdlZW4gcmVnaXN0cmF0aW9uIGFuZCBhdXRoZW50aWNhdGlvbgorICogaXMgc3RvcmVkIGluIGJyb3dzZXIgbG9jYWxTdG9yYWdlLCBzbyB0aGVyZSdzIG5vdGhpbmcgcmVhbC13b3JsZAorICogYWJvdXQgdGhpcy4KKyAqLworcmVxdWlyZV9vbmNlKCcuLi8uLi9zcmMvdTJmbGliX3NlcnZlci9VMkYucGhwJyk7Ciskc2NoZW1lID0gaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pID8gImh0dHBzOi8vIiA6ICJodHRwOi8vIjsKKyR1MmYgPSBuZXcgdTJmbGliX3NlcnZlclxVMkYoJHNjaGVtZSAuICRfU0VSVkVSWydIVFRQX0hPU1QnXSk7Cis/PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+UEhQIFUyRiBEZW1vPC90aXRsZT4KKworICAgIDxzY3JpcHQgc3JjPSIuLi9hc3NldHMvdTJmLWFwaS5qcyI+PC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBhZGRSZWdpc3RyYXRpb24ocmVnKSB7CisgICAgICAgICAgICB2YXIgZXhpc3RpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndTJmcmVnaXN0cmF0aW9uJyk7CisgICAgICAgICAgICB2YXIgcmVnb2JqID0gSlNPTi5wYXJzZShyZWcpOworICAgICAgICAgICAgdmFyIGRhdGEgPSBudWxsOworICAgICAgICAgICAgaWYoZXhpc3RpbmcpIHsKKyAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShleGlzdGluZyk7CisgICAgICAgICAgICAgICAgaWYoQXJyYXkuaXNBcnJheShkYXRhKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGFbaV0ua2V5SGFuZGxlID09PSByZWdvYmoua2V5SGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaSwxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkYXRhLnB1c2gocmVnb2JqKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkYXRhID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihkYXRhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBkYXRhID0gW3JlZ29ial07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndTJmcmVnaXN0cmF0aW9uJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpOworICAgICAgICB9CisgICAgICAgIDw/cGhwCisgICAgICAgIGZ1bmN0aW9uIGZpeHVwQXJyYXkoJGRhdGEpIHsKKyAgICAgICAgICAgICRyZXQgPSBhcnJheSgpOworICAgICAgICAgICAgJGRlY29kZWQgPSBqc29uX2RlY29kZSgkZGF0YSk7CisgICAgICAgICAgICBmb3JlYWNoICgkZGVjb2RlZCBhcyAkZCkgeworICAgICAgICAgICAgICAgICRyZXRbXSA9IGpzb25fZW5jb2RlKCRkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAkcmV0OworICAgICAgICB9CisgICAgICAgIGlmKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnUE9TVCcpIHsKKyAgICAgICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3RhcnRSZWdpc3RlciddKSkgeworICAgICAgICAgICAgICAgICRyZWdzID0ganNvbl9kZWNvZGUoJF9QT1NUWydyZWdpc3RyYXRpb25zJ10pID8gOiBhcnJheSgpOworICAgICAgICAgICAgICAgIGxpc3QoJGRhdGEsICRyZXFzKSA9ICR1MmYtPmdldFJlZ2lzdGVyRGF0YSgkcmVncyk7CisgICAgICAgICAgICAgICAgZWNobyAidmFyIHJlcXVlc3QgPSAiIC4ganNvbl9lbmNvZGUoJGRhdGEpIC4gIjtcbiI7CisgICAgICAgICAgICAgICAgZWNobyAidmFyIHNpZ25zID0gIiAuIGpzb25fZW5jb2RlKCRyZXFzKSAuICI7XG4iOworICAgICAgICA/PgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlJlZ2lzdGVyOiAiLCByZXF1ZXN0KTsKKyAgICAgICAgICAgIHUyZi5yZWdpc3RlcihbcmVxdWVzdF0sIHNpZ25zLCBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOworICAgICAgICAgICAgICAgIHZhciByZWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9SZWdpc3RlcicpOworICAgICAgICAgICAgICAgIHZhciByZXEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVxdWVzdCcpOworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSZWdpc3RlciBjYWxsYmFjayIsIGRhdGEpOworICAgICAgICAgICAgICAgIGlmKGRhdGEuZXJyb3JDb2RlICYmIGRhdGEuZXJyb3JDb2RlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYWxlcnQoInJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJyb3I6ICIgKyBkYXRhLmVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVnLnZhbHVlPUpTT04uc3RyaW5naWZ5KGRhdGEpOworICAgICAgICAgICAgICAgIHJlcS52YWx1ZT1KU09OLnN0cmluZ2lmeShyZXF1ZXN0KTsKKyAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgICA8P3BocAorICAgICAgICAgICAgfSBlbHNlIGlmKCRfUE9TVFsnZG9SZWdpc3RlciddKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSAkdTJmLT5kb1JlZ2lzdGVyKGpzb25fZGVjb2RlKCRfUE9TVFsncmVxdWVzdCddKSwganNvbl9kZWNvZGUoJF9QT1NUWydkb1JlZ2lzdGVyJ10pKTsKKyAgICAgICAgICAgICAgICAgICAgZWNobyAidmFyIHJlZ2lzdHJhdGlvbiA9ICciIC4ganNvbl9lbmNvZGUoJGRhdGEpIC4gIic7XG4iOworICAgICAgICA/PgorICAgICAgICBhZGRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uKTsKKyAgICAgICAgYWxlcnQoInJlZ2lzdHJhdGlvbiBzdWNjZXNzZnVsISIpOworICAgICAgICA8P3BocAorICAgICAgICAgICAgICAgIH0gY2F0Y2godTJmbGliX3NlcnZlclxFcnJvciAkZSkgeworICAgICAgICAgICAgICAgICAgICBlY2hvICJhbGVydCgnZXJyb3I6IiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiJyk7XG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihpc3NldCgkX1BPU1RbJ3N0YXJ0QXV0aGVudGljYXRlJ10pKSB7CisgICAgICAgICAgICAgICAgJHJlZ3MgPSBqc29uX2RlY29kZSgkX1BPU1RbJ3JlZ2lzdHJhdGlvbnMnXSk7CisgICAgICAgICAgICAgICAgJGRhdGEgPSAkdTJmLT5nZXRBdXRoZW50aWNhdGVEYXRhKCRyZWdzKTsKKyAgICAgICAgICAgICAgICBlY2hvICJ2YXIgcmVnaXN0cmF0aW9ucyA9ICIgLiAkX1BPU1RbJ3JlZ2lzdHJhdGlvbnMnXSAuICI7XG4iOworICAgICAgICAgICAgICAgIGVjaG8gInZhciByZXF1ZXN0ID0gIiAuIGpzb25fZW5jb2RlKCRkYXRhKSAuICI7XG4iOworICAgICAgICA/PgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc29sZS5sb2coInNpZ246ICIsIHJlcXVlc3QpOworICAgICAgICAgICAgdTJmLnNpZ24ocmVxdWVzdCwgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvcm0nKTsKKyAgICAgICAgICAgICAgICB2YXIgcmVnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvQXV0aGVudGljYXRlJyk7CisgICAgICAgICAgICAgICAgdmFyIHJlcSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXF1ZXN0Jyk7CisgICAgICAgICAgICAgICAgdmFyIHJlZ3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnaXN0cmF0aW9ucycpOworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBdXRoZW50aWNhdGUgY2FsbGJhY2siLCBkYXRhKTsKKyAgICAgICAgICAgICAgICByZWcudmFsdWU9SlNPTi5zdHJpbmdpZnkoZGF0YSk7CisgICAgICAgICAgICAgICAgcmVxLnZhbHVlPUpTT04uc3RyaW5naWZ5KHJlcXVlc3QpOworICAgICAgICAgICAgICAgIHJlZ3MudmFsdWU9SlNPTi5zdHJpbmdpZnkocmVnaXN0cmF0aW9ucyk7CisgICAgICAgICAgICAgICAgZm9ybS5zdWJtaXQoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9LCAxMDAwKTsKKyAgICAgICAgPD9waHAKKyAgICAgICAgICAgIH0gZWxzZSBpZigkX1BPU1RbJ2RvQXV0aGVudGljYXRlJ10pIHsKKyAgICAgICAgICAgICAgICAkcmVxcyA9IGpzb25fZGVjb2RlKCRfUE9TVFsncmVxdWVzdCddKTsKKyAgICAgICAgICAgICAgICAkcmVncyA9IGpzb25fZGVjb2RlKCRfUE9TVFsncmVnaXN0cmF0aW9ucyddKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAkZGF0YSA9ICR1MmYtPmRvQXV0aGVudGljYXRlKCRyZXFzLCAkcmVncywganNvbl9kZWNvZGUoJF9QT1NUWydkb0F1dGhlbnRpY2F0ZSddKSk7CisgICAgICAgICAgICAgICAgICAgIGVjaG8gInZhciByZWdpc3RyYXRpb24gPSAnIiAuIGpzb25fZW5jb2RlKCRkYXRhKSAuICInO1xuIjsKKyAgICAgICAgICAgICAgICAgICAgZWNobyAiYWRkUmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbik7XG4iOworICAgICAgICAgICAgICAgICAgICBlY2hvICJhbGVydCgnQXV0aGVudGljYXRpb24gc3VjY2Vzc2Z1bCwgY291bnRlcjoiIC4gJGRhdGEtPmNvdW50ZXIgLiAiJyk7XG4iOworICAgICAgICAgICAgICAgIH0gY2F0Y2godTJmbGliX3NlcnZlclxFcnJvciAkZSkgeworICAgICAgICAgICAgICAgICAgICBlY2hvICJhbGVydCgnZXJyb3I6IiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiJyk7XG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA/PgorICAgIDwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKzxmb3JtIG1ldGhvZD0iUE9TVCIgaWQ9ImZvcm0iPgorICAgIDxidXR0b24gbmFtZT0ic3RhcnRSZWdpc3RlciIgdHlwZT0ic3VibWl0Ij5SZWdpc3RlcjwvYnV0dG9uPgorICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvUmVnaXN0ZXIiIGlkPSJkb1JlZ2lzdGVyIi8+CisgICAgPGJ1dHRvbiBuYW1lPSJzdGFydEF1dGhlbnRpY2F0ZSIgdHlwZT0ic3VibWl0IiBpZD0ic3RhcnRBdXRoZW50aWNhdGUiPkF1dGhlbnRpY2F0ZTwvYnV0dG9uPgorICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvQXV0aGVudGljYXRlIiBpZD0iZG9BdXRoZW50aWNhdGUiLz4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZXF1ZXN0IiBpZD0icmVxdWVzdCIvPgorICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZ2lzdHJhdGlvbnMiIGlkPSJyZWdpc3RyYXRpb25zIi8+Cis8L2Zvcm0+CisKKzxwPgorICAgIDxzcGFuIGlkPSJyZWdpc3RlcmVkIj4wPC9zcGFuPiBBdXRoZW50aWNhdG9ycyBjdXJyZW50bHkgcmVnaXN0ZXJlZC4KKzwvcD4KKworPHNjcmlwdD4KKyAgICB2YXIgcmVnID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3UyZnJlZ2lzdHJhdGlvbicpOworICAgIHZhciBhdXRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0QXV0aGVudGljYXRlJyk7CisgICAgaWYocmVnID09IG51bGwpIHsKKyAgICAgICAgYXV0aC5kaXNhYmxlZCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFyIHJlZ3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnaXN0cmF0aW9ucycpOworICAgICAgICBkZWNvZGVkID0gSlNPTi5wYXJzZShyZWcpOworICAgICAgICBpZighQXJyYXkuaXNBcnJheShkZWNvZGVkKSkgeworICAgICAgICAgICAgYXV0aC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZWdzLnZhbHVlID0gcmVnOworICAgICAgICAgICAgY29uc29sZS5sb2coInNldCB0aGUgcmVnaXN0cmF0aW9ucyB0byA6ICIsIHJlZyk7CisgICAgICAgICAgICB2YXIgcmVnZ2VkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ2lzdGVyZWQnKTsKKyAgICAgICAgICAgIHJlZ2dlZC5pbm5lckhUTUwgPSBkZWNvZGVkLmxlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2V4YW1wbGVzL3Bkby9pbmRleC5waHBzIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL2V4YW1wbGVzL3Bkby9pbmRleC5waHBzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNGQ2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvZXhhbXBsZXMvcGRvL2luZGV4LnBocHMKQEAgLTAsMCArMSwyMDQgQEAKKzw/cGhwCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxNCBZdWJpY28gQUIKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIFRoaXMgaXMgYSBzaW1wbGUgZXhhbXBsZSB1c2luZyBQRE8gYW5kIGEgc3FsaXRlIGRhdGFiYXNlIGZvciBzdG9yaW5nCisgKiByZWdpc3RyYXRpb25zLiBJdCBzdXBwb3J0cyBtdWx0aXBsZSByZWdpc3RyYXRpb25zIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHVzZXIuCisgKi8KKworcmVxdWlyZV9vbmNlKCcuLi8uLi9zcmMvdTJmbGliX3NlcnZlci9VMkYucGhwJyk7CisKKyRkYmZpbGUgPSAnL3Zhci90bXAvdTJmLXBkby5zcWxpdGUnOworCiskcGRvID0gbmV3IFBETygic3FsaXRlOiRkYmZpbGUiKTsKKyRwZG8tPnNldEF0dHJpYnV0ZShQRE86OkFUVFJfRVJSTU9ERSwgUERPOjpFUlJNT0RFX0VYQ0VQVElPTik7CiskcGRvLT5zZXRBdHRyaWJ1dGUoUERPOjpBVFRSX0RFRkFVTFRfRkVUQ0hfTU9ERSwgUERPOjpGRVRDSF9PQkopOworCiskcGRvLT5leGVjKCJjcmVhdGUgdGFibGUgaWYgbm90IGV4aXN0cyB1c2VycyAoaWQgaW50ZWdlciBwcmltYXJ5IGtleSwgbmFtZSB2YXJjaGFyKDI1NSkpIik7CiskcGRvLT5leGVjKCJjcmVhdGUgdGFibGUgaWYgbm90IGV4aXN0cyByZWdpc3RyYXRpb25zIChpZCBpbnRlZ2VyIHByaW1hcnkga2V5LCB1c2VyX2lkIGludGVnZXIsIGtleUhhbmRsZSB2YXJjaGFyKDI1NSksIHB1YmxpY0tleSB2YXJjaGFyKDI1NSksIGNlcnRpZmljYXRlIHRleHQsIGNvdW50ZXIgaW50ZWdlcikiKTsKKworJHNjaGVtZSA9IGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSA/ICJodHRwczovLyIgOiAiaHR0cDovLyI7CiskdTJmID0gbmV3IHUyZmxpYl9zZXJ2ZXJcVTJGKCRzY2hlbWUgLiAkX1NFUlZFUlsnSFRUUF9IT1NUJ10pOworCitzZXNzaW9uX3N0YXJ0KCk7CisKK2Z1bmN0aW9uIGNyZWF0ZUFuZEdldFVzZXIoJG5hbWUpIHsKKyAgICBnbG9iYWwgJHBkbzsKKyAgICAkc2VsID0gJHBkby0+cHJlcGFyZSgic2VsZWN0ICogZnJvbSB1c2VycyB3aGVyZSBuYW1lID0gPyIpOworICAgICRzZWwtPmV4ZWN1dGUoYXJyYXkoJG5hbWUpKTsKKyAgICAkdXNlciA9ICRzZWwtPmZldGNoKCk7CisgICAgaWYoISR1c2VyKSB7CisgICAgICAgICRpbnMgPSAkcGRvLT5wcmVwYXJlKCJpbnNlcnQgaW50byB1c2VycyAobmFtZSkgdmFsdWVzKD8pIik7CisgICAgICAgICRpbnMtPmV4ZWN1dGUoYXJyYXkoJG5hbWUpKTsKKyAgICAgICAgJHNlbC0+ZXhlY3V0ZShhcnJheSgkbmFtZSkpOworICAgICAgICAkdXNlciA9ICRzZWwtPmZldGNoKCk7CisgICAgfQorICAgIHJldHVybiAkdXNlcjsKK30KKworZnVuY3Rpb24gZ2V0UmVncygkdXNlcl9pZCkgeworICAgIGdsb2JhbCAkcGRvOworICAgICRzZWwgPSAkcGRvLT5wcmVwYXJlKCJzZWxlY3QgKiBmcm9tIHJlZ2lzdHJhdGlvbnMgd2hlcmUgdXNlcl9pZCA9ID8iKTsKKyAgICAkc2VsLT5leGVjdXRlKGFycmF5KCR1c2VyX2lkKSk7CisgICAgcmV0dXJuICRzZWwtPmZldGNoQWxsKCk7Cit9CisKK2Z1bmN0aW9uIGFkZFJlZygkdXNlcl9pZCwgJHJlZykgeworICAgIGdsb2JhbCAkcGRvOworICAgICRpbnMgPSAkcGRvLT5wcmVwYXJlKCJpbnNlcnQgaW50byByZWdpc3RyYXRpb25zICh1c2VyX2lkLCBrZXlIYW5kbGUsIHB1YmxpY0tleSwgY2VydGlmaWNhdGUsIGNvdW50ZXIpIHZhbHVlcyAoPywgPywgPywgPywgPykiKTsKKyAgICAkaW5zLT5leGVjdXRlKGFycmF5KCR1c2VyX2lkLCAkcmVnLT5rZXlIYW5kbGUsICRyZWctPnB1YmxpY0tleSwgJHJlZy0+Y2VydGlmaWNhdGUsICRyZWctPmNvdW50ZXIpKTsKK30KKworZnVuY3Rpb24gdXBkYXRlUmVnKCRyZWcpIHsKKyAgICBnbG9iYWwgJHBkbzsKKyAgICAkdXBkID0gJHBkby0+cHJlcGFyZSgidXBkYXRlIHJlZ2lzdHJhdGlvbnMgc2V0IGNvdW50ZXIgPSA/IHdoZXJlIGlkID0gPyIpOworICAgICR1cGQtPmV4ZWN1dGUoYXJyYXkoJHJlZy0+Y291bnRlciwgJHJlZy0+aWQpKTsKK30KKworPz4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+UEhQIFUyRiBleGFtcGxlPC90aXRsZT4KKworICAgIDxzY3JpcHQgc3JjPSIuLi9hc3NldHMvdTJmLWFwaS5qcyI+PC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgICAgICA8P3BocAorCisgICAgICAgIGlmKCRfU0VSVkVSWydSRVFVRVNUX01FVEhPRCddID09PSAnUE9TVCcpIHsKKyAgICAgICAgICBpZighJF9QT1NUWyd1c2VybmFtZSddKSB7CisgICAgICAgICAgICBlY2hvICJhbGVydCgnbm8gdXNlcm5hbWUgcHJvdmlkZWQhJyk7IjsKKyAgICAgICAgICB9IGVsc2UgaWYoIWlzc2V0KCRfUE9TVFsnYWN0aW9uJ10pICYmICFpc3NldCgkX1BPU1RbJ3JlZ2lzdGVyMiddKSAmJiAhaXNzZXQoJF9QT1NUWydhdXRoZW50aWNhdGUyJ10pKSB7CisgICAgICAgICAgICBlY2hvICJhbGVydCgnbm8gYWN0aW9uIHByb3ZpZGVkIScpOyI7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICR1c2VyID0gY3JlYXRlQW5kR2V0VXNlcigkX1BPU1RbJ3VzZXJuYW1lJ10pOworCisgICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2FjdGlvbiddKSkgeworICAgICAgICAgICAgICBzd2l0Y2goJF9QT1NUWydhY3Rpb24nXSk6CisgICAgICAgICAgICAgICAgY2FzZSAncmVnaXN0ZXInOgorICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSAkdTJmLT5nZXRSZWdpc3RlckRhdGEoZ2V0UmVncygkdXNlci0+aWQpKTsKKworICAgICAgICAgICAgICAgICAgICBsaXN0KCRyZXEsJHNpZ3MpID0gJGRhdGE7CisgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncmVnUmVxJ10gPSBqc29uX2VuY29kZSgkcmVxKTsKKyAgICAgICAgICAgICAgICAgICAgZWNobyAidmFyIHJlcSA9ICIgLiBqc29uX2VuY29kZSgkcmVxKSAuICI7IjsKKyAgICAgICAgICAgICAgICAgICAgZWNobyAidmFyIHNpZ3MgPSAiIC4ganNvbl9lbmNvZGUoJHNpZ3MpIC4gIjsiOworICAgICAgICAgICAgICAgICAgICBlY2hvICJ2YXIgdXNlcm5hbWUgPSAnIiAuICR1c2VyLT5uYW1lIC4gIic7IjsKKyAgICAgICAgPz4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSZWdpc3RlcjogIiwgcmVxKTsKKyAgICAgICAgICAgIHUyZi5yZWdpc3RlcihbcmVxXSwgc2lncywgZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvcm0nKTsKKyAgICAgICAgICAgICAgICB2YXIgcmVnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ2lzdGVyMicpOworICAgICAgICAgICAgICAgIHZhciB1c2VyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJuYW1lJyk7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlJlZ2lzdGVyIGNhbGxiYWNrIiwgZGF0YSk7CisgICAgICAgICAgICAgICAgaWYoZGF0YS5lcnJvckNvZGUgJiYgZXJyb3JDb2RlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYWxlcnQoInJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJyb3I6ICIgKyBkYXRhLmVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVnLnZhbHVlID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CisgICAgICAgICAgICAgICAgdXNlci52YWx1ZSA9IHVzZXJuYW1lOworICAgICAgICAgICAgICAgIGZvcm0uc3VibWl0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICAgIDw/cGhwCisgICAgICAgICAgICAgICAgICB9IGNhdGNoKCBFeGNlcHRpb24gJGUgKSB7CisgICAgICAgICAgICAgICAgICAgIGVjaG8gImFsZXJ0KCdlcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiJyk7IjsKKyAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlICdhdXRoZW50aWNhdGUnOgorICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgJHJlcXMgPSBqc29uX2VuY29kZSgkdTJmLT5nZXRBdXRoZW50aWNhdGVEYXRhKGdldFJlZ3MoJHVzZXItPmlkKSkpOworCisgICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnYXV0aFJlcSddID0gJHJlcXM7CisgICAgICAgICAgICAgICAgICAgIGVjaG8gInZhciByZXEgPSAkcmVxczsiOworICAgICAgICAgICAgICAgICAgICBlY2hvICJ2YXIgdXNlcm5hbWUgPSAnIiAuICR1c2VyLT5uYW1lIC4gIic7IjsKKyAgICAgICAgPz4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNvbnNvbGUubG9nKCJzaWduOiAiLCByZXEpOworICAgICAgICAgICAgdTJmLnNpZ24ocmVxLCBmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgICAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybScpOworICAgICAgICAgICAgICAgIHZhciBhdXRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0ZTInKTsKKyAgICAgICAgICAgICAgICB2YXIgdXNlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpOworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBdXRoZW50aWNhdGUgY2FsbGJhY2siLCBkYXRhKTsKKyAgICAgICAgICAgICAgICBhdXRoLnZhbHVlPUpTT04uc3RyaW5naWZ5KGRhdGEpOworICAgICAgICAgICAgICAgIHVzZXIudmFsdWUgPSB1c2VybmFtZTsKKyAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgICA8P3BocAorICAgICAgICAgICAgICAgICAgfSBjYXRjaCggRXhjZXB0aW9uICRlICkgeworICAgICAgICAgICAgICAgICAgICBlY2hvICJhbGVydCgnZXJyb3I6ICIgLiAkZS0+Z2V0TWVzc2FnZSgpIC4gIicpOyI7CisgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgIGVuZHN3aXRjaDsKKyAgICAgICAgICAgIH0gZWxzZSBpZigkX1BPU1RbJ3JlZ2lzdGVyMiddKSB7CisgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgJHJlZyA9ICR1MmYtPmRvUmVnaXN0ZXIoanNvbl9kZWNvZGUoJF9TRVNTSU9OWydyZWdSZXEnXSksIGpzb25fZGVjb2RlKCRfUE9TVFsncmVnaXN0ZXIyJ10pKTsKKyAgICAgICAgICAgICAgICBhZGRSZWcoJHVzZXItPmlkLCAkcmVnKTsKKyAgICAgICAgICAgICAgfSBjYXRjaCggRXhjZXB0aW9uICRlICkgeworICAgICAgICAgICAgICAgIGVjaG8gImFsZXJ0KCdlcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiJyk7IjsKKyAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ3JlZ1JlcSddID0gbnVsbDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmKCRfUE9TVFsnYXV0aGVudGljYXRlMiddKSB7CisgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgJHJlZyA9ICR1MmYtPmRvQXV0aGVudGljYXRlKGpzb25fZGVjb2RlKCRfU0VTU0lPTlsnYXV0aFJlcSddKSwgZ2V0UmVncygkdXNlci0+aWQpLCBqc29uX2RlY29kZSgkX1BPU1RbJ2F1dGhlbnRpY2F0ZTInXSkpOworICAgICAgICAgICAgICAgIHVwZGF0ZVJlZygkcmVnKTsKKyAgICAgICAgICAgICAgICBlY2hvICJhbGVydCgnc3VjY2VzczogIiAuICRyZWctPmNvdW50ZXIgLiAiJyk7IjsKKyAgICAgICAgICAgICAgfSBjYXRjaCggRXhjZXB0aW9uICRlICkgeworICAgICAgICAgICAgICAgIGVjaG8gImFsZXJ0KCdlcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiJyk7IjsKKyAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ2F1dGhSZXEnXSA9IG51bGw7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPz4KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8Zm9ybSBtZXRob2Q9IlBPU1QiIGlkPSJmb3JtIj4KKyAgICB1c2VybmFtZTogPGlucHV0IG5hbWU9InVzZXJuYW1lIiBpZD0idXNlcm5hbWUiLz48YnIvPgorICAgIHJlZ2lzdGVyOiA8aW5wdXQgdmFsdWU9InJlZ2lzdGVyIiBuYW1lPSJhY3Rpb24iIHR5cGU9InJhZGlvIi8+PGJyLz4KKyAgICBhdXRoZW50aWNhdGU6IDxpbnB1dCB2YWx1ZT0iYXV0aGVudGljYXRlIiBuYW1lPSJhY3Rpb24iIHR5cGU9InJhZGlvIi8+PGJyLz4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWdpc3RlcjIiIGlkPSJyZWdpc3RlcjIiLz4KKyAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhdXRoZW50aWNhdGUyIiBpZD0iYXV0aGVudGljYXRlMiIvPgorICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TdWJtaXQhPC9idXR0b24+Cis8L2Zvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9waHB1bml0LnhtbCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9waHB1bml0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTZmMDhlCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9saWIvdmVuZG9yL3l1Ymljby91MmZsaWItc2VydmVyL3BocHVuaXQueG1sCkBAIC0wLDAgKzEsOSBAQAorPHBocHVuaXQKKyAgICBjb2xvcnM9InRydWUiPgorICAgIDx0ZXN0c3VpdGUgbmFtZT0idGVzdHMiPgorICAgICAgICA8ZGlyZWN0b3J5IHN1ZmZpeD0idGVzdC5waHAiPnRlc3RzPC9kaXJlY3Rvcnk+CisgICAgPC90ZXN0c3VpdGU+CisgICAgPGxvZ2dpbmc+CisgICAgICAgIDxsb2cgdHlwZT0iY292ZXJhZ2UtY2xvdmVyIiB0YXJnZXQ9ImJ1aWxkL2xvZ3MvY2xvdmVyLnhtbCIvPgorICAgIDwvbG9nZ2luZz4KKzwvcGhwdW5pdD4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9wc2FsbS54bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvcHNhbG0ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNjIzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvcHNhbG0ueG1sCkBAIC0wLDAgKzEsNDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPHBzYWxtCisgICAgdG90YWxseVR5cGVkPSJmYWxzZSIKKyAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAgIHhtbG5zPSJodHRwczovL2dldHBzYWxtLm9yZy9zY2hlbWEvY29uZmlnIgorICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cHM6Ly9nZXRwc2FsbS5vcmcvc2NoZW1hL2NvbmZpZyBmaWxlOi8vL21udC9zaGFyZS9waHAtdTJmbGliLXNlcnZlci92ZW5kb3IvdmltZW8vcHNhbG0vY29uZmlnLnhzZCIKKz4KKyAgICA8cHJvamVjdEZpbGVzPgorICAgICAgICA8ZGlyZWN0b3J5IG5hbWU9InNyYyIgLz4KKyAgICAgICAgPGlnbm9yZUZpbGVzPgorICAgICAgICAgICAgPGRpcmVjdG9yeSBuYW1lPSJ2ZW5kb3IiIC8+CisgICAgICAgIDwvaWdub3JlRmlsZXM+CisgICAgPC9wcm9qZWN0RmlsZXM+CisKKyAgICA8aXNzdWVIYW5kbGVycz4KKyAgICAgICAgPExlc3NTcGVjaWZpY1JldHVyblR5cGUgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKworICAgICAgICA8IS0tIGxldmVsIDMgaXNzdWVzIC0gc2xpZ2h0bHkgbGF6eSBjb2RlIHdyaXRpbmcsIGJ1dCBwcm92YWJseSBsb3cgZmFsc2UtbmVnYXRpdmVzIC0tPgorCisgICAgICAgIDxEZXByZWNhdGVkTWV0aG9kIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxEZXByZWNhdGVkUHJvcGVydHkgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPERlcHJlY2F0ZWRDbGFzcyBlcnJvckxldmVsPSJpbmZvIiAvPgorICAgICAgICA8RGVwcmVjYXRlZEludGVyZmFjZSBlcnJvckxldmVsPSJpbmZvIiAvPgorCisgICAgICAgIDxNaXNzaW5nQ2xvc3VyZVJldHVyblR5cGUgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPE1pc3NpbmdSZXR1cm5UeXBlIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxNaXNzaW5nUHJvcGVydHlUeXBlIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxJbnZhbGlkRG9jYmxvY2sgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPE1pc3BsYWNlZFJlcXVpcmVkUGFyYW0gZXJyb3JMZXZlbD0iaW5mbyIgLz4KKworICAgICAgICA8UHJvcGVydHlOb3RTZXRJbkNvbnN0cnVjdG9yIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxNaXNzaW5nQ29uc3RydWN0b3IgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKyAgICAgICAgPE1pc3NpbmdDbG9zdXJlUGFyYW1UeXBlIGVycm9yTGV2ZWw9ImluZm8iIC8+CisgICAgICAgIDxNaXNzaW5nUGFyYW1UeXBlIGVycm9yTGV2ZWw9ImluZm8iIC8+CisKKyAgICAgICAgPFJlZHVuZGFudENvbmRpdGlvbiBlcnJvckxldmVsPSJpbmZvIiAvPgorCisgICAgICAgIDxEb2NibG9ja1R5cGVDb250cmFkaWN0aW9uIGVycm9yTGV2ZWw9InN1cHByZXNzIiAvPgorICAgICAgICA8UmVkdW5kYW50Q29uZGl0aW9uR2l2ZW5Eb2NibG9ja1R5cGUgZXJyb3JMZXZlbD0ic3VwcHJlc3MiIC8+CisKKyAgICAgICAgPFVucmVzb2x2YWJsZUluY2x1ZGUgZXJyb3JMZXZlbD0iaW5mbyIgLz4KKworICAgICAgICA8UmF3T2JqZWN0SXRlcmF0aW9uIGVycm9yTGV2ZWw9ImluZm8iIC8+CisKKyAgICAgICAgPCEtLSBwc2FsbSBzZWVtcyB0byB3cm9uZ2x5IGNvbXBsYWluIGFib3V0IHRoaXMsIHNldCB0aGUgZXJyb3JMZXZlbCB0byBpbmZvIGZvciBub3cgLS0+CisgICAgICAgIDxVbmRlZmluZWRDb25zdGFudCBlcnJvckxldmVsPSJpbmZvIiAvPgorICAgIDwvaXNzdWVIYW5kbGVycz4KKzwvcHNhbG0+CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvbGliL3ZlbmRvci95dWJpY28vdTJmbGliLXNlcnZlci9zcmMvdTJmbGliX3NlcnZlci9VMkYucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODNmZmYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL2xpYi92ZW5kb3IveXViaWNvL3UyZmxpYi1zZXJ2ZXIvc3JjL3UyZmxpYl9zZXJ2ZXIvVTJGLnBocApAQCAtMCwwICsxLDU2MyBAQAorPD9waHAKKy8qIENvcHlyaWdodCAoYykgMjAxNCBZdWJpY28gQUIKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCituYW1lc3BhY2UgdTJmbGliX3NlcnZlcjsKKworLyoqIENvbnN0YW50IGZvciB0aGUgdmVyc2lvbiBvZiB0aGUgdTJmIHByb3RvY29sICovCitjb25zdCBVMkZfVkVSU0lPTiA9ICJVMkZfVjIiOworCisvKiogQ29uc3RhbnQgZm9yIHRoZSB0eXBlIHZhbHVlIGluIHJlZ2lzdHJhdGlvbiBjbGllbnREYXRhICovCitjb25zdCBSRVFVRVNUX1RZUEVfUkVHSVNURVIgPSAibmF2aWdhdG9yLmlkLmZpbmlzaEVucm9sbG1lbnQiOworCisvKiogQ29uc3RhbnQgZm9yIHRoZSB0eXBlIHZhbHVlIGluIGF1dGhlbnRpY2F0aW9uIGNsaWVudERhdGEgKi8KK2NvbnN0IFJFUVVFU1RfVFlQRV9BVVRIRU5USUNBVEUgPSAibmF2aWdhdG9yLmlkLmdldEFzc2VydGlvbiI7CisKKy8qKiBFcnJvciBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIG1lc3NhZ2Ugbm90IG1hdGNoaW5nIGFueSBvdXRzdGFuZGluZworICogYXV0aGVudGljYXRpb24gcmVxdWVzdCAqLworY29uc3QgRVJSX05PX01BVENISU5HX1JFUVVFU1QgPSAxOworCisvKiogRXJyb3IgZm9yIHRoZSBhdXRoZW50aWNhdGlvbiBtZXNzYWdlIG5vdCBtYXRjaGluZyBhbnkgcmVnaXN0cmF0aW9uICovCitjb25zdCBFUlJfTk9fTUFUQ0hJTkdfUkVHSVNUUkFUSU9OID0gMjsKKworLyoqIEVycm9yIGZvciB0aGUgc2lnbmF0dXJlIG9uIHRoZSBhdXRoZW50aWNhdGlvbiBtZXNzYWdlIG5vdCB2ZXJpZnlpbmcgd2l0aAorICogdGhlIGNvcnJlY3Qga2V5ICovCitjb25zdCBFUlJfQVVUSEVOVElDQVRJT05fRkFJTFVSRSA9IDM7CisKKy8qKiBFcnJvciBmb3IgdGhlIGNoYWxsZW5nZSBpbiB0aGUgcmVnaXN0cmF0aW9uIG1lc3NhZ2Ugbm90IG1hdGNoaW5nIHRoZQorICogcmVnaXN0cmF0aW9uIGNoYWxsZW5nZSAqLworY29uc3QgRVJSX1VOTUFUQ0hFRF9DSEFMTEVOR0UgPSA0OworCisvKiogRXJyb3IgZm9yIHRoZSBhdHRlc3RhdGlvbiBzaWduYXR1cmUgb24gdGhlIHJlZ2lzdHJhdGlvbiBtZXNzYWdlIG5vdAorICogdmVyaWZ5aW5nICovCitjb25zdCBFUlJfQVRURVNUQVRJT05fU0lHTkFUVVJFID0gNTsKKworLyoqIEVycm9yIGZvciB0aGUgYXR0ZXN0YXRpb24gdmVyaWZpY2F0aW9uIG5vdCB2ZXJpZnlpbmcgKi8KK2NvbnN0IEVSUl9BVFRFU1RBVElPTl9WRVJJRklDQVRJT04gPSA2OworCisvKiogRXJyb3IgZm9yIG5vdCBnZXR0aW5nIGdvb2QgcmFuZG9tIGZyb20gdGhlIHN5c3RlbSAqLworY29uc3QgRVJSX0JBRF9SQU5ET00gPSA3OworCisvKiogRXJyb3Igd2hlbiB0aGUgY291bnRlciBpcyBsb3dlciB0aGFuIGV4cGVjdGVkICovCitjb25zdCBFUlJfQ09VTlRFUl9UT09fTE9XID0gODsKKworLyoqIEVycm9yIGRlY29kaW5nIHB1YmxpYyBrZXkgKi8KK2NvbnN0IEVSUl9QVUJLRVlfREVDT0RFID0gOTsKKworLyoqIEVycm9yIHVzZXItYWdlbnQgcmV0dXJuZWQgZXJyb3IgKi8KK2NvbnN0IEVSUl9CQURfVUFfUkVUVVJOSU5HID0gMTA7CisKKy8qKiBFcnJvciBvbGQgT3BlblNTTCB2ZXJzaW9uICovCitjb25zdCBFUlJfT0xEX09QRU5TU0wgPSAxMTsKKworLyoqIEVycm9yIGZvciB0aGUgb3JpZ2luIG5vdCBtYXRjaGluZyB0aGUgYXBwSWQgKi8KK2NvbnN0IEVSUl9OT19NQVRDSElOR19PUklHSU4gPSAxMjsKKworLyoqIEVycm9yIGZvciB0aGUgdHlwZSBpbiBjbGllbnREYXRhIGJlaW5nIGludmFsaWQgKi8KK2NvbnN0IEVSUl9CQURfVFlQRSA9IDEzOworCisvKiogRXJyb3IgZm9yIGJhZCB1c2VyIHByZXNlbmNlIGJ5dGUgdmFsdWUgKi8KK2NvbnN0IEVSUl9CQURfVVNFUl9QUkVTRU5DRSA9IDE0OworCisvKiogQGludGVybmFsICovCitjb25zdCBQVUJLRVlfTEVOID0gNjU7CisKK2NsYXNzIFUyRgoreworICAgIC8qKiBAdmFyIHN0cmluZyAgKi8KKyAgICBwcml2YXRlICRhcHBJZDsKKworICAgIC8qKiBAdmFyIG51bGx8c3RyaW5nICovCisgICAgcHJpdmF0ZSAkYXR0ZXN0RGlyOworCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHByaXZhdGUgJEZJWENFUlRTID0gYXJyYXkoCisgICAgICAgICczNDliY2ExMDMxZjhjODJjNGNlY2EzOGI5Y2ViZjFhNjlkZjlmYjNiOTRlZWQ5OWViM2ZiOWFhMzgyMmQyNmU4JywKKyAgICAgICAgJ2RkNTc0NTI3ZGY2MDhlNDdhZTQ1ZmJiYTc1YTJhZmRkNWMyMGZkOTRhMDI0MTkzODE4MTNjZDU1YTJhMzM5OGYnLAorICAgICAgICAnMWQ4NzY0ZjBmN2NkMTM1MmRmNjE1MDA0NWM4ZjYzOGU1MTcyNzBlOGI1ZGRhMWM2M2FkZTljMjI4MDI0MGNhZScsCisgICAgICAgICdkMGVkYzlhOTFhMTY3NzQzNWE5NTMzOTA4NjVkMjA4YzU1YjMxODNjNjc1OWM5YjVhN2ZmNDk0YzMyMjU1OGViJywKKyAgICAgICAgJzYwNzNjNDM2ZGNkMDY0YTQ4MTI3ZGRiZjYwMzJhYzFhNjZmZDU5YTBjMjQ0MzRmMDcwZDRlNTY0YzEyNGM4OTcnLAorICAgICAgICAnY2E5OTMxMjE4NDZjNDY0ZDY2NjA5NmQzNWYxM2JmNDRjMWIwNWFmMjA1ZjliNGExZTAwY2Y2Y2MxMGM1ZTUxMScKKyAgICApOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkYXBwSWQgQXBwbGljYXRpb24gaWQgZm9yIHRoZSBydW5uaW5nIGFwcGxpY2F0aW9uCisgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRhdHRlc3REaXIgRGlyZWN0b3J5IHdoZXJlIHRydXN0ZWQgYXR0ZXN0YXRpb24gcm9vdHMgbWF5IGJlIGZvdW5kCisgICAgICogQHRocm93cyBFcnJvciBJZiBPcGVuU1NMIG9sZGVyIHRoYW4gMS4wLjAgaXMgdXNlZAorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkYXBwSWQsICRhdHRlc3REaXIgPSBudWxsKQorICAgIHsKKyAgICAgICAgaWYoT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAwMDAwMDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignT3BlblNTTCBoYXMgdG8gYmUgYXQgbGVhc3QgdmVyc2lvbiAxLjAuMCwgdGhpcyBpcyAnIC4gT1BFTlNTTF9WRVJTSU9OX1RFWFQsIEVSUl9PTERfT1BFTlNTTCk7CisgICAgICAgIH0KKyAgICAgICAgJHRoaXMtPmFwcElkID0gJGFwcElkOworICAgICAgICAkdGhpcy0+YXR0ZXN0RGlyID0gJGF0dGVzdERpcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgdG8gZ2V0IGEgcmVnaXN0cmF0aW9uIHJlcXVlc3QgdG8gc2VuZCB0byBhIHVzZXIuCisgICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBvbmUgcmVnaXN0cmF0aW9uIHJlcXVlc3QgYW5kIGEgYXJyYXkgb2Ygc2lnbiByZXF1ZXN0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcmVnaXN0cmF0aW9ucyBMaXN0IG9mIGN1cnJlbnQgcmVnaXN0cmF0aW9ucyBmb3IgdGhpcworICAgICAqIHVzZXIsIHRvIHByZXZlbnQgdGhlIHVzZXIgZnJvbSByZWdpc3RlcmluZyB0aGUgc2FtZSBhdXRoZW50aWNhdG9yIHNldmVyYWwKKyAgICAgKiB0aW1lcy4KKyAgICAgKiBAcmV0dXJuIGFycmF5IEFuIGFycmF5IG9mIHR3byBlbGVtZW50cywgdGhlIGZpcnN0IGNvbnRhaW5pbmcgYQorICAgICAqIFJlZ2lzdGVyUmVxdWVzdCB0aGUgc2Vjb25kIGJlaW5nIGFuIGFycmF5IG9mIFNpZ25SZXF1ZXN0CisgICAgICogQHRocm93cyBFcnJvcgorICAgICAqLworICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZWdpc3RlckRhdGEoYXJyYXkgJHJlZ2lzdHJhdGlvbnMgPSBhcnJheSgpKQorICAgIHsKKyAgICAgICAgJGNoYWxsZW5nZSA9ICR0aGlzLT5jcmVhdGVDaGFsbGVuZ2UoKTsKKyAgICAgICAgJHJlcXVlc3QgPSBuZXcgUmVnaXN0ZXJSZXF1ZXN0KCRjaGFsbGVuZ2UsICR0aGlzLT5hcHBJZCk7CisgICAgICAgICRzaWducyA9ICR0aGlzLT5nZXRBdXRoZW50aWNhdGVEYXRhKCRyZWdpc3RyYXRpb25zKTsKKyAgICAgICAgcmV0dXJuIGFycmF5KCRyZXF1ZXN0LCAkc2lnbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGxlZCB0byB2ZXJpZnkgYW5kIHVucGFjayBhIHJlZ2lzdHJhdGlvbiBtZXNzYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIFJlZ2lzdGVyUmVxdWVzdCAkcmVxdWVzdCB0aGlzIGlzIGEgcmVwbHkgdG8KKyAgICAgKiBAcGFyYW0gb2JqZWN0ICRyZXNwb25zZSByZXNwb25zZSBmcm9tIGEgdXNlcgorICAgICAqIEBwYXJhbSBib29sICRpbmNsdWRlQ2VydCBzZXQgdG8gdHJ1ZSBpZiB0aGUgYXR0ZXN0YXRpb24gY2VydGlmaWNhdGUgc2hvdWxkIGJlCisgICAgICogaW5jbHVkZWQgaW4gdGhlIHJldHVybmVkIFJlZ2lzdHJhdGlvbiBvYmplY3QKKyAgICAgKiBAcmV0dXJuIFJlZ2lzdHJhdGlvbgorICAgICAqIEB0aHJvd3MgRXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZG9SZWdpc3RlcigkcmVxdWVzdCwgJHJlc3BvbnNlLCAkaW5jbHVkZUNlcnQgPSB0cnVlKQorICAgIHsKKyAgICAgICAgaWYoICFpc19vYmplY3QoICRyZXF1ZXN0ICkgKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignJHJlcXVlc3Qgb2YgZG9SZWdpc3RlcigpIG1ldGhvZCBvbmx5IGFjY2VwdHMgb2JqZWN0LicpOworICAgICAgICB9CisKKyAgICAgICAgaWYoICFpc19vYmplY3QoICRyZXNwb25zZSApICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJyRyZXNwb25zZSBvZiBkb1JlZ2lzdGVyKCkgbWV0aG9kIG9ubHkgYWNjZXB0cyBvYmplY3QuJyk7CisgICAgICAgIH0KKworICAgICAgICBpZiggcHJvcGVydHlfZXhpc3RzKCAkcmVzcG9uc2UsICdlcnJvckNvZGUnKSAmJiAkcmVzcG9uc2UtPmVycm9yQ29kZSAhPT0gMCApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVXNlci1hZ2VudCByZXR1cm5lZCBlcnJvci4gRXJyb3IgY29kZTogJyAuICRyZXNwb25zZS0+ZXJyb3JDb2RlLCBFUlJfQkFEX1VBX1JFVFVSTklORyApOworICAgICAgICB9CisKKyAgICAgICAgaWYoICFpc19ib29sKCAkaW5jbHVkZUNlcnQgKSApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCckaW5jbHVkZV9jZXJ0IG9mIGRvUmVnaXN0ZXIoKSBtZXRob2Qgb25seSBhY2NlcHRzIGJvb2xlYW4uJyk7CisgICAgICAgIH0KKworICAgICAgICAkcmF3UmVnID0gJHRoaXMtPmJhc2U2NHVfZGVjb2RlKCRyZXNwb25zZS0+cmVnaXN0cmF0aW9uRGF0YSk7CisgICAgICAgICRyZWdEYXRhID0gYXJyYXlfdmFsdWVzKHVucGFjaygnQyonLCAkcmF3UmVnKSk7CisgICAgICAgICRjbGllbnREYXRhID0gJHRoaXMtPmJhc2U2NHVfZGVjb2RlKCRyZXNwb25zZS0+Y2xpZW50RGF0YSk7CisgICAgICAgICRjbGkgPSBqc29uX2RlY29kZSgkY2xpZW50RGF0YSk7CisKKyAgICAgICAgaWYoJGNsaS0+Y2hhbGxlbmdlICE9PSAkcmVxdWVzdC0+Y2hhbGxlbmdlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lzdHJhdGlvbiBjaGFsbGVuZ2UgZG9lcyBub3QgbWF0Y2gnLCBFUlJfVU5NQVRDSEVEX0NIQUxMRU5HRSApOworICAgICAgICB9CisKKyAgICAgICAgaWYoaXNzZXQoJGNsaS0+dHlwKSAmJiAkY2xpLT50eXAgIT09IFJFUVVFU1RfVFlQRV9SRUdJU1RFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDbGllbnREYXRhIHR5cGUgaXMgaW52YWxpZCcsIEVSUl9CQURfVFlQRSk7CisgICAgICAgIH0KKworICAgICAgICBpZihpc3NldCgkY2xpLT5vcmlnaW4pICYmICRjbGktPm9yaWdpbiAhPT0gJHJlcXVlc3QtPmFwcElkKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FwcCBJRCBkb2VzIG5vdCBtYXRjaCB0aGUgb3JpZ2luJywgRVJSX05PX01BVENISU5HX09SSUdJTik7CisgICAgICAgIH0KKworICAgICAgICAkcmVnaXN0cmF0aW9uID0gbmV3IFJlZ2lzdHJhdGlvbigpOworICAgICAgICAkb2ZmcyA9IDE7CisgICAgICAgICRwdWJLZXkgPSBzdWJzdHIoJHJhd1JlZywgJG9mZnMsIFBVQktFWV9MRU4pOworICAgICAgICAkb2ZmcyArPSBQVUJLRVlfTEVOOworICAgICAgICAvLyBkZWNvZGUgdGhlIHB1YktleSB0byBtYWtlIHN1cmUgaXQncyBnb29kCisgICAgICAgICR0bXBLZXkgPSAkdGhpcy0+cHVia2V5X3RvX3BlbSgkcHViS2V5KTsKKyAgICAgICAgaWYoJHRtcEtleSA9PT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZWNvZGluZyBvZiBwdWJsaWMga2V5IGZhaWxlZCcsIEVSUl9QVUJLRVlfREVDT0RFICk7CisgICAgICAgIH0KKyAgICAgICAgJHJlZ2lzdHJhdGlvbi0+cHVibGljS2V5ID0gYmFzZTY0X2VuY29kZSgkcHViS2V5KTsKKyAgICAgICAgJGtoTGVuID0gJHJlZ0RhdGFbJG9mZnMrK107CisgICAgICAgICRraCA9IHN1YnN0cigkcmF3UmVnLCAkb2ZmcywgJGtoTGVuKTsKKyAgICAgICAgJG9mZnMgKz0gJGtoTGVuOworICAgICAgICAkcmVnaXN0cmF0aW9uLT5rZXlIYW5kbGUgPSAkdGhpcy0+YmFzZTY0dV9lbmNvZGUoJGtoKTsKKworICAgICAgICAvLyBsZW5ndGggb2YgY2VydGlmaWNhdGUgaXMgc3RvcmVkIGluIGJ5dGUgMyBhbmQgNCAoZXhjbHVkaW5nIHRoZSBmaXJzdCA0IGJ5dGVzKQorICAgICAgICAkY2VydExlbiA9IDQ7CisgICAgICAgICRjZXJ0TGVuICs9ICgkcmVnRGF0YVskb2ZmcyArIDJdIDw8IDgpOworICAgICAgICAkY2VydExlbiArPSAkcmVnRGF0YVskb2ZmcyArIDNdOworCisgICAgICAgICRyYXdDZXJ0ID0gJHRoaXMtPmZpeFNpZ25hdHVyZVVudXNlZEJpdHMoc3Vic3RyKCRyYXdSZWcsICRvZmZzLCAkY2VydExlbikpOworICAgICAgICAkb2ZmcyArPSAkY2VydExlbjsKKyAgICAgICAgJHBlbUNlcnQgID0gIi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLVxyXG4iOworICAgICAgICAkcGVtQ2VydCAuPSBjaHVua19zcGxpdChiYXNlNjRfZW5jb2RlKCRyYXdDZXJ0KSwgNjQpOworICAgICAgICAkcGVtQ2VydCAuPSAiLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLSI7CisgICAgICAgIGlmKCRpbmNsdWRlQ2VydCkgeworICAgICAgICAgICAgJHJlZ2lzdHJhdGlvbi0+Y2VydGlmaWNhdGUgPSBiYXNlNjRfZW5jb2RlKCRyYXdDZXJ0KTsKKyAgICAgICAgfQorICAgICAgICBpZigkdGhpcy0+YXR0ZXN0RGlyKSB7CisgICAgICAgICAgICBpZihvcGVuc3NsX3g1MDlfY2hlY2twdXJwb3NlKCRwZW1DZXJ0LCAtMSwgJHRoaXMtPmdldF9jZXJ0cygpKSAhPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZXN0YXRpb24gY2VydGlmaWNhdGUgY2FuIG5vdCBiZSB2YWxpZGF0ZWQnLCBFUlJfQVRURVNUQVRJT05fVkVSSUZJQ0FUSU9OICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZighb3BlbnNzbF9wa2V5X2dldF9wdWJsaWMoJHBlbUNlcnQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RlY29kaW5nIG9mIHB1YmxpYyBrZXkgZmFpbGVkJywgRVJSX1BVQktFWV9ERUNPREUgKTsKKyAgICAgICAgfQorICAgICAgICAkc2lnbmF0dXJlID0gc3Vic3RyKCRyYXdSZWcsICRvZmZzKTsKKworICAgICAgICAkZGF0YVRvVmVyaWZ5ICA9IHBhY2soJ0MnLCAwKTsKKyAgICAgICAgJGRhdGFUb1ZlcmlmeSAuPSBoYXNoKCdzaGEyNTYnLCAkcmVxdWVzdC0+YXBwSWQsIHRydWUpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49IGhhc2goJ3NoYTI1NicsICRjbGllbnREYXRhLCB0cnVlKTsKKyAgICAgICAgJGRhdGFUb1ZlcmlmeSAuPSAka2g7CisgICAgICAgICRkYXRhVG9WZXJpZnkgLj0gJHB1YktleTsKKworICAgICAgICBpZihvcGVuc3NsX3ZlcmlmeSgkZGF0YVRvVmVyaWZ5LCAkc2lnbmF0dXJlLCAkcGVtQ2VydCwgJ3NoYTI1NicpID09PSAxKSB7CisgICAgICAgICAgICByZXR1cm4gJHJlZ2lzdHJhdGlvbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXR0ZXN0YXRpb24gc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoJywgRVJSX0FUVEVTVEFUSU9OX1NJR05BVFVSRSApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIGdldCBhbiBhdXRoZW50aWNhdGlvbiByZXF1ZXN0LgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5ICRyZWdpc3RyYXRpb25zIEFuIGFycmF5IG9mIHRoZSByZWdpc3RyYXRpb25zIHRvIGNyZWF0ZSBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cyBmb3IuCisgICAgICogQHJldHVybiBhcnJheSBBbiBhcnJheSBvZiBTaWduUmVxdWVzdAorICAgICAqIEB0aHJvd3MgRXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QXV0aGVudGljYXRlRGF0YShhcnJheSAkcmVnaXN0cmF0aW9ucykKKyAgICB7CisgICAgICAgICRzaWdzID0gYXJyYXkoKTsKKyAgICAgICAgJGNoYWxsZW5nZSA9ICR0aGlzLT5jcmVhdGVDaGFsbGVuZ2UoKTsKKyAgICAgICAgZm9yZWFjaCAoJHJlZ2lzdHJhdGlvbnMgYXMgJHJlZykgeworICAgICAgICAgICAgaWYoICFpc19vYmplY3QoICRyZWcgKSApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignJHJlZ2lzdHJhdGlvbnMgb2YgZ2V0QXV0aGVudGljYXRlRGF0YSgpIG1ldGhvZCBvbmx5IGFjY2VwdHMgYXJyYXkgb2Ygb2JqZWN0LicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyoqIEB2YXIgUmVnaXN0cmF0aW9uICRyZWcgKi8KKworICAgICAgICAgICAgJHNpZyA9IG5ldyBTaWduUmVxdWVzdCgpOworICAgICAgICAgICAgJHNpZy0+YXBwSWQgPSAkdGhpcy0+YXBwSWQ7CisgICAgICAgICAgICAkc2lnLT5rZXlIYW5kbGUgPSAkcmVnLT5rZXlIYW5kbGU7CisgICAgICAgICAgICAkc2lnLT5jaGFsbGVuZ2UgPSAkY2hhbGxlbmdlOworICAgICAgICAgICAgJHNpZ3NbXSA9ICRzaWc7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRzaWdzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGxlZCB0byB2ZXJpZnkgYW4gYXV0aGVudGljYXRpb24gcmVzcG9uc2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBhcnJheSAkcmVxdWVzdHMgQW4gYXJyYXkgb2Ygb3V0c3RhbmRpbmcgYXV0aGVudGljYXRpb24gcmVxdWVzdHMKKyAgICAgKiBAcGFyYW0gYXJyYXkgJHJlZ2lzdHJhdGlvbnMgQW4gYXJyYXkgb2YgY3VycmVudCByZWdpc3RyYXRpb25zCisgICAgICogQHBhcmFtIG9iamVjdCAkcmVzcG9uc2UgQSByZXNwb25zZSBmcm9tIHRoZSBhdXRoZW50aWNhdG9yCisgICAgICogQHJldHVybiBSZWdpc3RyYXRpb24KKyAgICAgKiBAdGhyb3dzIEVycm9yCisgICAgICoKKyAgICAgKiBUaGUgUmVnaXN0cmF0aW9uIG9iamVjdCByZXR1cm5lZCBvbiBzdWNjZXNzIGNvbnRhaW5zIGFuIHVwZGF0ZWQgY291bnRlcgorICAgICAqIHRoYXQgc2hvdWxkIGJlIHNhdmVkIGZvciBmdXR1cmUgYXV0aGVudGljYXRpb25zLgorICAgICAqIElmIHRoZSBFcnJvciByZXR1cm5lZCBpcyBFUlJfQ09VTlRFUl9UT09fTE9XIHRoaXMgaXMgYW4gaW5kaWNhdGlvbiBvZgorICAgICAqIHRva2VuIGNsb25pbmcgb3Igc2ltaWxhciBhbmQgYXBwcm9wcmlhdGUgYWN0aW9uIHNob3VsZCBiZSB0YWtlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgZnVuY3Rpb24gZG9BdXRoZW50aWNhdGUoYXJyYXkgJHJlcXVlc3RzLCBhcnJheSAkcmVnaXN0cmF0aW9ucywgJHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgaWYoICFpc19vYmplY3QoICRyZXNwb25zZSApICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJyRyZXNwb25zZSBvZiBkb0F1dGhlbnRpY2F0ZSgpIG1ldGhvZCBvbmx5IGFjY2VwdHMgb2JqZWN0LicpOworICAgICAgICB9CisKKyAgICAgICAgaWYoIHByb3BlcnR5X2V4aXN0cyggJHJlc3BvbnNlLCAnZXJyb3JDb2RlJykgJiYgJHJlc3BvbnNlLT5lcnJvckNvZGUgIT09IDAgKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXItYWdlbnQgcmV0dXJuZWQgZXJyb3IuIEVycm9yIGNvZGU6ICcgLiAkcmVzcG9uc2UtPmVycm9yQ29kZSwgRVJSX0JBRF9VQV9SRVRVUk5JTkcgKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKiBAdmFyIG9iamVjdHxudWxsICRyZXEgKi8KKyAgICAgICAgJHJlcSA9IG51bGw7CisKKyAgICAgICAgLyoqIEB2YXIgb2JqZWN0fG51bGwgJHJlZyAqLworICAgICAgICAkcmVnID0gbnVsbDsKKworICAgICAgICAkY2xpZW50RGF0YSA9ICR0aGlzLT5iYXNlNjR1X2RlY29kZSgkcmVzcG9uc2UtPmNsaWVudERhdGEpOworICAgICAgICAkZGVjb2RlZENsaWVudCA9IGpzb25fZGVjb2RlKCRjbGllbnREYXRhKTsKKworICAgICAgICBpZihpc3NldCgkZGVjb2RlZENsaWVudC0+dHlwKSAmJiAkZGVjb2RlZENsaWVudC0+dHlwICE9PSBSRVFVRVNUX1RZUEVfQVVUSEVOVElDQVRFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NsaWVudERhdGEgdHlwZSBpcyBpbnZhbGlkJywgRVJSX0JBRF9UWVBFKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcmVhY2ggKCRyZXF1ZXN0cyBhcyAkcmVxKSB7CisgICAgICAgICAgICBpZiggIWlzX29iamVjdCggJHJlcSApICkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCckcmVxdWVzdHMgb2YgZG9BdXRoZW50aWNhdGUoKSBtZXRob2Qgb25seSBhY2NlcHRzIGFycmF5IG9mIG9iamVjdC4nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoJHJlcS0+a2V5SGFuZGxlID09PSAkcmVzcG9uc2UtPmtleUhhbmRsZSAmJiAkcmVxLT5jaGFsbGVuZ2UgPT09ICRkZWNvZGVkQ2xpZW50LT5jaGFsbGVuZ2UpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgJHJlcSA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYoJHJlcSA9PT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBtYXRjaGluZyByZXF1ZXN0IGZvdW5kJywgRVJSX05PX01BVENISU5HX1JFUVVFU1QgKTsKKyAgICAgICAgfQorICAgICAgICBpZihpc3NldCgkZGVjb2RlZENsaWVudC0+b3JpZ2luKSAmJiAkZGVjb2RlZENsaWVudC0+b3JpZ2luICE9PSAkcmVxLT5hcHBJZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcHAgSUQgZG9lcyBub3QgbWF0Y2ggdGhlIG9yaWdpbicsIEVSUl9OT19NQVRDSElOR19PUklHSU4pOworICAgICAgICB9CisgICAgICAgIGZvcmVhY2ggKCRyZWdpc3RyYXRpb25zIGFzICRyZWcpIHsKKyAgICAgICAgICAgIGlmKCAhaXNfb2JqZWN0KCAkcmVnICkgKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJyRyZWdpc3RyYXRpb25zIG9mIGRvQXV0aGVudGljYXRlKCkgbWV0aG9kIG9ubHkgYWNjZXB0cyBhcnJheSBvZiBvYmplY3QuJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKCRyZWctPmtleUhhbmRsZSA9PT0gJHJlc3BvbnNlLT5rZXlIYW5kbGUpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRyZWcgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGlmKCRyZWcgPT09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gbWF0Y2hpbmcgcmVnaXN0cmF0aW9uIGZvdW5kJywgRVJSX05PX01BVENISU5HX1JFR0lTVFJBVElPTiApOworICAgICAgICB9CisgICAgICAgICRwZW1LZXkgPSAkdGhpcy0+cHVia2V5X3RvX3BlbSgkdGhpcy0+YmFzZTY0dV9kZWNvZGUoJHJlZy0+cHVibGljS2V5KSk7CisgICAgICAgIGlmKCRwZW1LZXkgPT09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGVjb2Rpbmcgb2YgcHVibGljIGtleSBmYWlsZWQnLCBFUlJfUFVCS0VZX0RFQ09ERSApOworICAgICAgICB9CisKKyAgICAgICAgJHNpZ25EYXRhID0gJHRoaXMtPmJhc2U2NHVfZGVjb2RlKCRyZXNwb25zZS0+c2lnbmF0dXJlRGF0YSk7CisgICAgICAgICRkYXRhVG9WZXJpZnkgID0gaGFzaCgnc2hhMjU2JywgJHJlcS0+YXBwSWQsIHRydWUpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49IHN1YnN0cigkc2lnbkRhdGEsIDAsIDUpOworICAgICAgICAkZGF0YVRvVmVyaWZ5IC49IGhhc2goJ3NoYTI1NicsICRjbGllbnREYXRhLCB0cnVlKTsKKyAgICAgICAgJHNpZ25hdHVyZSA9IHN1YnN0cigkc2lnbkRhdGEsIDUpOworCisgICAgICAgIGlmKG9wZW5zc2xfdmVyaWZ5KCRkYXRhVG9WZXJpZnksICRzaWduYXR1cmUsICRwZW1LZXksICdzaGEyNTYnKSA9PT0gMSkgeworICAgICAgICAgICAgJHVwYiA9IHVucGFjaygiQ3VwYiIsIHN1YnN0cigkc2lnbkRhdGEsIDAsIDEpKTsgCisgICAgICAgICAgICBpZigkdXBiWyd1cGInXSAhPT0gMSkgeyAKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXIgcHJlc2VuY2UgYnl0ZSB2YWx1ZSBpcyBpbnZhbGlkJywgRVJSX0JBRF9VU0VSX1BSRVNFTkNFICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAkY3RyID0gdW5wYWNrKCJOY3RyIiwgc3Vic3RyKCRzaWduRGF0YSwgMSwgNCkpOworICAgICAgICAgICAgJGNvdW50ZXIgPSAkY3RyWydjdHInXTsKKyAgICAgICAgICAgIC8qIFRPRE86IHdyYXAtYXJvdW5kIHNob3VsZCBiZSBoYW5kbGVkIHNvbWVob3cuLiAqLworICAgICAgICAgICAgaWYoJGNvdW50ZXIgPiAkcmVnLT5jb3VudGVyKSB7CisgICAgICAgICAgICAgICAgJHJlZy0+Y291bnRlciA9ICRjb3VudGVyOworICAgICAgICAgICAgICAgIHJldHVybiBzZWxmOjpjYXN0T2JqZWN0VG9SZWdpc3RyYXRpb24oJHJlZyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bnRlciB0b28gbG93LicsIEVSUl9DT1VOVEVSX1RPT19MT1cgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXV0aGVudGljYXRpb24gZmFpbGVkJywgRVJSX0FVVEhFTlRJQ0FUSU9OX0ZBSUxVUkUgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBvYmplY3QgJG9iamVjdAorICAgICAqIEByZXR1cm4gUmVnaXN0cmF0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBjYXN0T2JqZWN0VG9SZWdpc3RyYXRpb24oJG9iamVjdCkKKyAgICB7CisgICAgICAgICRyZWcgPSBuZXcgUmVnaXN0cmF0aW9uKCk7CisgICAgICAgIGlmIChwcm9wZXJ0eV9leGlzdHMoJG9iamVjdCwgJ3B1YmxpY0tleScpKSB7CisgICAgICAgICAgICAkcmVnLT5wdWJsaWNLZXkgPSAkb2JqZWN0LT5wdWJsaWNLZXk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb3BlcnR5X2V4aXN0cygkb2JqZWN0LCAnY2VydGlmaWNhdGUnKSkgeworICAgICAgICAgICAgJHJlZy0+Y2VydGlmaWNhdGUgPSAkb2JqZWN0LT5jZXJ0aWZpY2F0ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCRvYmplY3QsICdjb3VudGVyJykpIHsKKyAgICAgICAgICAgICRyZWctPmNvdW50ZXIgPSAkb2JqZWN0LT5jb3VudGVyOworICAgICAgICB9CisgICAgICAgIGlmIChwcm9wZXJ0eV9leGlzdHMoJG9iamVjdCwgJ2tleUhhbmRsZScpKSB7CisgICAgICAgICAgICAkcmVnLT5rZXlIYW5kbGUgPSAkb2JqZWN0LT5rZXlIYW5kbGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRyZWc7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0X2NlcnRzKCkKKyAgICB7CisgICAgICAgICRmaWxlcyA9IGFycmF5KCk7CisgICAgICAgICRkaXIgPSAkdGhpcy0+YXR0ZXN0RGlyOworICAgICAgICBpZigkZGlyICE9PSBudWxsICYmIGlzX2RpcigkZGlyKSAmJiAkaGFuZGxlID0gb3BlbmRpcigkZGlyKSkgeworICAgICAgICAgICAgd2hpbGUoZmFsc2UgIT09ICgkZW50cnkgPSByZWFkZGlyKCRoYW5kbGUpKSkgeworICAgICAgICAgICAgICAgIGlmKGlzX2ZpbGUoIiRkaXIvJGVudHJ5IikpIHsKKyAgICAgICAgICAgICAgICAgICAgJGZpbGVzW10gPSAiJGRpci8kZW50cnkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNsb3NlZGlyKCRoYW5kbGUpOworICAgICAgICB9IGVsc2VpZiAoaXNfZmlsZSgiJGRpciIpKSB7CisgICAgICAgICAgICAkZmlsZXNbXSA9ICIkZGlyIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGZpbGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGRhdGEKKyAgICAgKiBAcmV0dXJuIHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gYmFzZTY0dV9lbmNvZGUoJGRhdGEpCisgICAgeworICAgICAgICByZXR1cm4gdHJpbShzdHJ0cihiYXNlNjRfZW5jb2RlKCRkYXRhKSwgJysvJywgJy1fJyksICc9Jyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAkZGF0YQorICAgICAqIEByZXR1cm4gc3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBiYXNlNjR1X2RlY29kZSgkZGF0YSkKKyAgICB7CisgICAgICAgIHJldHVybiBiYXNlNjRfZGVjb2RlKHN0cnRyKCRkYXRhLCAnLV8nLCAnKy8nKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZyAka2V5CisgICAgICogQHJldHVybiBudWxsfHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gcHVia2V5X3RvX3BlbSgka2V5KQorICAgIHsKKyAgICAgICAgaWYoc3RybGVuKCRrZXkpICE9PSBQVUJLRVlfTEVOIHx8ICRrZXlbMF0gIT09ICJceDA0IikgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBDb252ZXJ0IHRoZSBwdWJsaWMga2V5IHRvIGJpbmFyeSBERVIgZm9ybWF0IGZpcnN0CisgICAgICAgICAqIFVzaW5nIHRoZSBFQ0MgU3ViamVjdFB1YmxpY0tleUluZm8gT0lEcyBmcm9tIFJGQyA1NDgwCisgICAgICAgICAqCisgICAgICAgICAqICBTRVFVRU5DRSgyIGVsZW0pICAgICAgICAgICAgICAgICAgICAgICAgMzAgNTkKKyAgICAgICAgICogICBTRVFVRU5DRSgyIGVsZW0pICAgICAgICAgICAgICAgICAgICAgICAzMCAxMworICAgICAgICAgKiAgICBPSUQxLjIuODQwLjEwMDQ1LjIuMSAoaWQtZWNQdWJsaWNLZXkpIDA2IDA3IDJhIDg2IDQ4IGNlIDNkIDAyIDAxCisgICAgICAgICAqICAgIE9JRDEuMi44NDAuMTAwNDUuMy4xLjcgKHNlY3AyNTZyMSkgICAgMDYgMDggMmEgODYgNDggY2UgM2QgMDMgMDEgMDcKKyAgICAgICAgICogICBCSVQgU1RSSU5HKDUyMCBiaXQpICAgICAgICAgICAgICAgICAgICAwMyA0MiAuLmtleS4uCisgICAgICAgICAqLworICAgICAgICAkZGVyICA9ICJceDMwXHg1OVx4MzBceDEzXHgwNlx4MDdceDJhXHg4Nlx4NDhceGNlXHgzZFx4MDJceDAxIjsKKyAgICAgICAgJGRlciAuPSAiXHgwNlx4MDhceDJhXHg4Nlx4NDhceGNlXHgzZFx4MDNceDAxXHgwN1x4MDNceDQyIjsKKyAgICAgICAgJGRlciAuPSAiXDAiLiRrZXk7CisKKyAgICAgICAgJHBlbSAgPSAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cclxuIjsKKyAgICAgICAgJHBlbSAuPSBjaHVua19zcGxpdChiYXNlNjRfZW5jb2RlKCRkZXIpLCA2NCk7CisgICAgICAgICRwZW0gLj0gIi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLSI7CisKKyAgICAgICAgcmV0dXJuICRwZW07CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBzdHJpbmcKKyAgICAgKiBAdGhyb3dzIEVycm9yCisgICAgICovCisgICAgcHJpdmF0ZSBmdW5jdGlvbiBjcmVhdGVDaGFsbGVuZ2UoKQorICAgIHsKKyAgICAgICAgJGNoYWxsZW5nZSA9IHJhbmRvbV9ieXRlcygzMik7CisgICAgICAgICRjaGFsbGVuZ2UgPSAkdGhpcy0+YmFzZTY0dV9lbmNvZGUoICRjaGFsbGVuZ2UgKTsKKworICAgICAgICByZXR1cm4gJGNoYWxsZW5nZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaXhlcyBhIGNlcnRpZmljYXRlIHdoZXJlIHRoZSBzaWduYXR1cmUgY29udGFpbnMgdW51c2VkIGJpdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRjZXJ0CisgICAgICogQHJldHVybiBtaXhlZAorICAgICAqLworICAgIHByaXZhdGUgZnVuY3Rpb24gZml4U2lnbmF0dXJlVW51c2VkQml0cygkY2VydCkKKyAgICB7CisgICAgICAgIGlmKGluX2FycmF5KGhhc2goJ3NoYTI1NicsICRjZXJ0KSwgJHRoaXMtPkZJWENFUlRTLCB0cnVlKSkgeworICAgICAgICAgICAgJGNlcnRbc3RybGVuKCRjZXJ0KSAtIDI1N10gPSAiXDAiOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkY2VydDsKKyAgICB9Cit9CisKKy8qKgorICogQ2xhc3MgZm9yIGJ1aWxkaW5nIGEgcmVnaXN0cmF0aW9uIHJlcXVlc3QKKyAqCisgKiBAcGFja2FnZSB1MmZsaWJfc2VydmVyCisgKi8KK2NsYXNzIFJlZ2lzdGVyUmVxdWVzdAoreworICAgIC8qKiBAdmFyIHN0cmluZyBQcm90b2NvbCB2ZXJzaW9uICovCisgICAgcHVibGljICR2ZXJzaW9uID0gVTJGX1ZFUlNJT047CisKKyAgICAvKiogQHZhciBzdHJpbmcgUmVnaXN0cmF0aW9uIGNoYWxsZW5nZSAqLworICAgIHB1YmxpYyAkY2hhbGxlbmdlOworCisgICAgLyoqIEB2YXIgc3RyaW5nIEFwcGxpY2F0aW9uIGlkICovCisgICAgcHVibGljICRhcHBJZDsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcgJGNoYWxsZW5nZQorICAgICAqIEBwYXJhbSBzdHJpbmcgJGFwcElkCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRjaGFsbGVuZ2UsICRhcHBJZCkKKyAgICB7CisgICAgICAgICR0aGlzLT5jaGFsbGVuZ2UgPSAkY2hhbGxlbmdlOworICAgICAgICAkdGhpcy0+YXBwSWQgPSAkYXBwSWQ7CisgICAgfQorfQorCisvKioKKyAqIENsYXNzIGZvciBidWlsZGluZyB1cCBhbiBhdXRoZW50aWNhdGlvbiByZXF1ZXN0CisgKgorICogQHBhY2thZ2UgdTJmbGliX3NlcnZlcgorICovCitjbGFzcyBTaWduUmVxdWVzdAoreworICAgIC8qKiBAdmFyIHN0cmluZyBQcm90b2NvbCB2ZXJzaW9uICovCisgICAgcHVibGljICR2ZXJzaW9uID0gVTJGX1ZFUlNJT047CisKKyAgICAvKiogQHZhciBzdHJpbmcgQXV0aGVudGljYXRpb24gY2hhbGxlbmdlICovCisgICAgcHVibGljICRjaGFsbGVuZ2UgPSAnJzsKKworICAgIC8qKiBAdmFyIHN0cmluZyBLZXkgaGFuZGxlIG9mIGEgcmVnaXN0ZXJlZCBhdXRoZW50aWNhdG9yICovCisgICAgcHVibGljICRrZXlIYW5kbGUgPSAnJzsKKworICAgIC8qKiBAdmFyIHN0cmluZyBBcHBsaWNhdGlvbiBpZCAqLworICAgIHB1YmxpYyAkYXBwSWQgPSAnJzsKK30KKworLyoqCisgKiBDbGFzcyByZXR1cm5lZCBmb3Igc3VjY2Vzc2Z1bCByZWdpc3RyYXRpb25zCisgKgorICogQHBhY2thZ2UgdTJmbGliX3NlcnZlcgorICovCitjbGFzcyBSZWdpc3RyYXRpb24KK3sKKyAgICAvKiogQHZhciBzdHJpbmcgVGhlIGtleSBoYW5kbGUgb2YgdGhlIHJlZ2lzdGVyZWQgYXV0aGVudGljYXRvciAqLworICAgIHB1YmxpYyAka2V5SGFuZGxlID0gJyc7CisKKyAgICAvKiogQHZhciBzdHJpbmcgVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHJlZ2lzdGVyZWQgYXV0aGVudGljYXRvciAqLworICAgIHB1YmxpYyAkcHVibGljS2V5ID0gJyc7CisKKyAgICAvKiogQHZhciBzdHJpbmcgVGhlIGF0dGVzdGF0aW9uIGNlcnRpZmljYXRlIG9mIHRoZSByZWdpc3RlcmVkIGF1dGhlbnRpY2F0b3IgKi8KKyAgICBwdWJsaWMgJGNlcnRpZmljYXRlID0gJyc7CisKKyAgICAvKiogQHZhciBpbnQgVGhlIGNvdW50ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVnaXN0cmF0aW9uICovCisgICAgcHVibGljICRjb3VudGVyID0gLTE7Cit9CisKKy8qKgorICogRXJyb3IgY2xhc3MsIHJldHVybmVkIG9uIGVycm9ycworICoKKyAqIEBwYWNrYWdlIHUyZmxpYl9zZXJ2ZXIKKyAqLworY2xhc3MgRXJyb3IgZXh0ZW5kcyBcRXhjZXB0aW9uCit7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgY29uc3RydWN0b3IgYW5kIG1ha2UgbWVzc2FnZSBhbmQgY29kZSBtYW5kYXRvcnkKKyAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlCisgICAgICogQHBhcmFtIGludCAkY29kZQorICAgICAqIEBwYXJhbSBcRXhjZXB0aW9ufG51bGwgJHByZXZpb3VzCisgICAgICovCisgICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRtZXNzYWdlLCAkY29kZSwgXEV4Y2VwdGlvbiAkcHJldmlvdXMgPSBudWxsKSB7CisgICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJG1lc3NhZ2UsICRjb2RlLCAkcHJldmlvdXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlcmVxdWlzaXRlcy5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVyZXF1aXNpdGVzLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIwYzg3YwotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlcmVxdWlzaXRlcy5pbmMucGhwCkBAIC0wLDAgKzEsMjY5IEBACis8P3BocAorCisvLyBTbGF2ZSBkb2VzIG5vdCBzZXJ2ZSBVSQorLyogaWYgKCFwcmVnX21hdGNoKCcveXx5ZXMvaScsIGdldGVudignTUFTVEVSJykpKSB7CisgIGhlYWRlcignTG9jYXRpb246IC9TT0dvJywgdHJ1ZSwgMzA3KTsKKyAgZXhpdDsKK30qLworCityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3ZhcnMuaW5jLnBocCc7CiskZGVmYXVsdF9hdXRvZGlzY292ZXJfY29uZmlnID0gJGF1dG9kaXNjb3Zlcl9jb25maWc7CisKK2lmIChmaWxlX2V4aXN0cygkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvdmFycy5sb2NhbC5pbmMucGhwJykpIHsKKyAgaW5jbHVkZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy92YXJzLmxvY2FsLmluYy5waHAnOworfQordW5zZXQoJGh0dHBzX3BvcnQpOworJGF1dG9kaXNjb3Zlcl9jb25maWcgPSBhcnJheV9tZXJnZSgkZGVmYXVsdF9hdXRvZGlzY292ZXJfY29uZmlnLCAkYXV0b2Rpc2NvdmVyX2NvbmZpZyk7CisKK2hlYWRlcl9yZW1vdmUoIlgtUG93ZXJlZC1CeSIpOworCisvLyBZdWJpIE9UUCBBUEkKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL1l1Ymljby5waHAnOworCisvLyBXZWJBdXRobgorcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9saWIvV2ViQXV0aG4vV2ViQXV0aG4ucGhwJzsKKworLy8gQXV0b2xvYWQgY29tcG9zZXIKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL3ZlbmRvci9hdXRvbG9hZC5waHAnOworCisvLyBMb2FkIFNpZXZlCityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2xpYi9zaWV2ZS9TaWV2ZVBhcnNlci5waHAnOworCisvLyBtaW5pZmllckV4dGVuZGVkCityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2xpYi9KU21pbmlmaWVyRXh0ZW5kZWQucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL0NTU21pbmlmaWVyRXh0ZW5kZWQucGhwJzsKKworcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9saWIvYXJyYXlfbWVyZ2VfcmVhbC5waHAnOworCisvLyBNaW5pZnkgSlMKK3VzZSBNYXR0aGlhc011bGxpZVxNaW5pZnk7CiskanNfbWluaWZpZXIgPSBuZXcgSlNtaW5pZmllckV4dGVuZGVkKCk7CiskanNfZGlyID0gYXJyYXlfZGlmZihzY2FuZGlyKCcvd2ViL2pzL2J1aWxkJyksIGFycmF5KCcuLicsICcuJykpOworZm9yZWFjaCAoJGpzX2RpciBhcyAkanNfZmlsZSkgeworICAkanNfbWluaWZpZXItPmFkZCgnL3dlYi9qcy9idWlsZC8nIC4gJGpzX2ZpbGUpOworfQorCisvLyBNaW5pZnkgQ1NTCiskY3NzX21pbmlmaWVyID0gbmV3IENTU21pbmlmaWVyRXh0ZW5kZWQoKTsKKyRjc3NfZGlyID0gYXJyYXlfZGlmZihzY2FuZGlyKCcvd2ViL2Nzcy9idWlsZCcpLCBhcnJheSgnLi4nLCAnLicpKTsKK2ZvcmVhY2ggKCRjc3NfZGlyIGFzICRjc3NfZmlsZSkgeworICAkY3NzX21pbmlmaWVyLT5hZGQoJy93ZWIvY3NzL2J1aWxkLycgLiAkY3NzX2ZpbGUpOworfQorCisvLyBVMkYgQVBJICsgVC9IT1RQIEFQSQorJHUyZiA9IG5ldyB1MmZsaWJfc2VydmVyXFUyRignaHR0cHM6Ly8nIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsKKyRxcnByb3ZpZGVyID0gbmV3IFJvYlRocmVlXEF1dGhcUHJvdmlkZXJzXFFyXFFSU2VydmVyUHJvdmlkZXIoKTsKKyR0ZmEgPSBuZXcgUm9iVGhyZWVcQXV0aFxUd29GYWN0b3JBdXRoKCRPVFBfTEFCRUwsIDYsIDMwLCAnc2hhMScsICRxcnByb3ZpZGVyKTsKKworLy8gRklETzIKKyRmb3JtYXRzID0gJEdMT0JBTFNbJ0ZJRE8yX0ZPUk1BVFMnXTsKKyRXZWJBdXRobiA9IG5ldyBcV2ViQXV0aG5cV2ViQXV0aG4oJ1dlYkF1dGhuIExpYnJhcnknLCAkX1NFUlZFUlsnSFRUUF9IT1NUJ10sICRmb3JtYXRzKTsKKyRXZWJBdXRobi0+YWRkUm9vdENlcnRpZmljYXRlcygkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvc29sby5wZW0nKTsKKyRXZWJBdXRobi0+YWRkUm9vdENlcnRpZmljYXRlcygkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvYXBwbGUucGVtJyk7CiskV2ViQXV0aG4tPmFkZFJvb3RDZXJ0aWZpY2F0ZXMoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL25pdHJvLnBlbScpOworJFdlYkF1dGhuLT5hZGRSb290Q2VydGlmaWNhdGVzKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9saWIvV2ViQXV0aG4vcm9vdENlcnRpZmljYXRlcy95dWJpY28ucGVtJyk7CiskV2ViQXV0aG4tPmFkZFJvb3RDZXJ0aWZpY2F0ZXMoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL2h5cGVyc2VjdS5wZW0nKTsKKyRXZWJBdXRobi0+YWRkUm9vdENlcnRpZmljYXRlcygkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvZ2xvYmFsU2lnbi5wZW0nKTsKKyRXZWJBdXRobi0+YWRkUm9vdENlcnRpZmljYXRlcygkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvbGliL1dlYkF1dGhuL3Jvb3RDZXJ0aWZpY2F0ZXMvZ29vZ2xlSGFyZHdhcmUucGVtJyk7CiskV2ViQXV0aG4tPmFkZFJvb3RDZXJ0aWZpY2F0ZXMoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL21pY3Jvc29mdFRwbUNvbGxlY3Rpb24ucGVtJyk7CiskV2ViQXV0aG4tPmFkZFJvb3RDZXJ0aWZpY2F0ZXMoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2xpYi9XZWJBdXRobi9yb290Q2VydGlmaWNhdGVzL2h1YXdlaS5wZW0nKTsKKworLy8gUmVkaXMKKyRyZWRpcyA9IG5ldyBSZWRpcygpOwordHJ5IHsKKyAgaWYgKCFlbXB0eShnZXRlbnYoJ1JFRElTX1NMQVZFT0ZfSVAnKSkpIHsKKyAgICAkcmVkaXMtPmNvbm5lY3QoZ2V0ZW52KCdSRURJU19TTEFWRU9GX0lQJyksIGdldGVudignUkVESVNfU0xBVkVPRl9QT1JUJykpOworICB9CisgIGVsc2UgeworICAgICRyZWRpcy0+Y29ubmVjdCgncmVkaXMtbWFpbGNvdycsIDYzNzkpOworICB9Cit9CitjYXRjaCAoRXhjZXB0aW9uICRlKSB7Cis/PgorPGNlbnRlciBzdHlsZT0nZm9udC1mYW1pbHk6c2Fucy1zZXJpZjsnPkNvbm5lY3Rpb24gdG8gUmVkaXMgZmFpbGVkLjxiciAvPjxiciAvPlRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHJlcG9ydGVkOjxici8+PD89JGUtPmdldE1lc3NhZ2UoKTs/PjwvY2VudGVyPgorPD9waHAKK2V4aXQ7Cit9CisKKy8vIFBETworLy8gQ2FsY3VsYXRlIG9mZnNldAorLy8gJG5vdyA9IG5ldyBEYXRlVGltZSgpOworLy8gJG1pbnMgPSAkbm93LT5nZXRPZmZzZXQoKSAvIDYwOworLy8gJHNnbiA9ICgkbWlucyA8IDAgPyAtMSA6IDEpOworLy8gJG1pbnMgPSBhYnMoJG1pbnMpOworLy8gJGhycyA9IGZsb29yKCRtaW5zIC8gNjApOworLy8gJG1pbnMgLT0gJGhycyAqIDYwOworLy8gJG9mZnNldCA9IHNwcmludGYoJyUrZDolMDJkJywgJGhycyokc2duLCAkbWlucyk7CisKKyRkc24gPSAkZGF0YWJhc2VfdHlwZSAuICI6dW5peF9zb2NrZXQ9IiAuICRkYXRhYmFzZV9zb2NrIC4gIjtkYm5hbWU9IiAuICRkYXRhYmFzZV9uYW1lOworJG9wdCA9IFsKKyAgUERPOjpBVFRSX0VSUk1PREUgICAgICAgICAgICA9PiBQRE86OkVSUk1PREVfRVhDRVBUSU9OLAorICBQRE86OkFUVFJfREVGQVVMVF9GRVRDSF9NT0RFID0+IFBETzo6RkVUQ0hfQVNTT0MsCisgIFBETzo6QVRUUl9FTVVMQVRFX1BSRVBBUkVTICAgPT4gZmFsc2UsCisgIC8vUERPOjpNWVNRTF9BVFRSX0lOSVRfQ09NTUFORCA9PiAiU0VUIHRpbWVfem9uZSA9ICciIC4gJG9mZnNldCAuICInLCBncm91cF9jb25jYXRfbWF4X2xlbiA9IDM0MjM1NDM1NDM7IiwKK107Cit0cnkgeworICAkcGRvID0gbmV3IFBETygkZHNuLCAkZGF0YWJhc2VfdXNlciwgJGRhdGFiYXNlX3Bhc3MsICRvcHQpOworfQorY2F0Y2ggKFBET0V4Y2VwdGlvbiAkZSkgeworLy8gU3RvcCB3aGVuIFNRTCBjb25uZWN0aW9uIGZhaWxzCis/PgorPGNlbnRlciBzdHlsZT0nZm9udC1mYW1pbHk6c2Fucy1zZXJpZjsnPkNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVkLjxiciAvPjxiciAvPlRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHJlcG9ydGVkOjxici8+ICA8Pz0kZS0+Z2V0TWVzc2FnZSgpOz8+PC9jZW50ZXI+Cis8P3BocAorZXhpdDsKK30KKy8vIFN0b3Agd2hlbiBkb2NrZXJhcGkgaXMgbm90IGF2YWlsYWJsZQoraWYgKGZzb2Nrb3BlbigidGNwOi8vZG9ja2VyYXBpIiwgNDQzLCAkZXJybm8sICRlcnJzdHIpID09PSBmYWxzZSkgeworPz4KKzxjZW50ZXIgc3R5bGU9J2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Jz5Db25uZWN0aW9uIHRvIGRvY2tlcmFwaSBjb250YWluZXIgZmFpbGVkLjxiciAvPjxiciAvPlRoZSBmb2xsb3dpbmcgZXJyb3Igd2FzIHJlcG9ydGVkOjxici8+PD89JGVycm5vOz8+IC0gPD89JGVycnN0cjs/PjwvY2VudGVyPgorPD9waHAKK2V4aXQ7Cit9CisKKy8vIE9BdXRoMgorY2xhc3MgbWFpbGNvd1BkbyBleHRlbmRzIE9BdXRoMlxTdG9yYWdlXFBkbyB7CisgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkY29ubmVjdGlvbiwgJGNvbmZpZyA9IGFycmF5KCkpIHsKKyAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRjb25uZWN0aW9uLCAkY29uZmlnKTsKKyAgICAkdGhpcy0+Y29uZmlnWyd1c2VyX3RhYmxlJ10gPSAnbWFpbGJveCc7CisgIH0KKyAgcHVibGljIGZ1bmN0aW9uIGNoZWNrVXNlckNyZWRlbnRpYWxzKCR1c2VybmFtZSwgJHBhc3N3b3JkKSB7CisgICAgaWYgKGNoZWNrX2xvZ2luKCR1c2VybmFtZSwgJHBhc3N3b3JkKSA9PSAndXNlcicpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJEZXRhaWxzKCR1c2VybmFtZSkgeworICAgIHJldHVybiAkdGhpcy0+Z2V0VXNlcigkdXNlcm5hbWUpOworICB9Cit9Ciskb2F1dGgyX3Njb3BlX3N0b3JhZ2UgPSBuZXcgT0F1dGgyXFN0b3JhZ2VcTWVtb3J5KGFycmF5KCdkZWZhdWx0X3Njb3BlJyA9PiAncHJvZmlsZScsICdzdXBwb3J0ZWRfc2NvcGVzJyA9PiBhcnJheSgncHJvZmlsZScpKSk7Ciskb2F1dGgyX3N0b3JhZ2UgPSBuZXcgbWFpbGNvd1BkbyhhcnJheSgnZHNuJyA9PiAkZHNuLCAndXNlcm5hbWUnID0+ICRkYXRhYmFzZV91c2VyLCAncGFzc3dvcmQnID0+ICRkYXRhYmFzZV9wYXNzKSk7Ciskb2F1dGgyX3NlcnZlciA9IG5ldyBPQXV0aDJcU2VydmVyKCRvYXV0aDJfc3RvcmFnZSwgYXJyYXkoCisgICAgJ3JlZnJlc2hfdG9rZW5fbGlmZXRpbWUnICAgICAgICAgPT4gJFJFRlJFU0hfVE9LRU5fTElGRVRJTUUsCisgICAgJ2FjY2Vzc19saWZldGltZScgICAgICAgICAgICAgICAgPT4gJEFDQ0VTU19UT0tFTl9MSUZFVElNRSwKKykpOworJG9hdXRoMl9zZXJ2ZXItPnNldFNjb3BlVXRpbChuZXcgT0F1dGgyXFNjb3BlKCRvYXV0aDJfc2NvcGVfc3RvcmFnZSkpOworJG9hdXRoMl9zZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgT0F1dGgyXEdyYW50VHlwZVxBdXRob3JpemF0aW9uQ29kZSgkb2F1dGgyX3N0b3JhZ2UpKTsKKyRvYXV0aDJfc2VydmVyLT5hZGRHcmFudFR5cGUobmV3IE9BdXRoMlxHcmFudFR5cGVcVXNlckNyZWRlbnRpYWxzKCRvYXV0aDJfc3RvcmFnZSkpOworJG9hdXRoMl9zZXJ2ZXItPmFkZEdyYW50VHlwZShuZXcgT0F1dGgyXEdyYW50VHlwZVxSZWZyZXNoVG9rZW4oJG9hdXRoMl9zdG9yYWdlLCBhcnJheSgKKyAgICAnYWx3YXlzX2lzc3VlX25ld19yZWZyZXNoX3Rva2VuJyA9PiB0cnVlCispKSk7CisKK2Z1bmN0aW9uIGV4Y2VwdGlvbl9oYW5kbGVyKCRlKSB7CisgICAgaWYgKCRlIGluc3RhbmNlb2YgUERPRXhjZXB0aW9uKSB7CisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgKKyAgICAgICAgJ3R5cGUnID0+ICdkYW5nZXInLAorICAgICAgICAnbG9nJyA9PiBhcnJheShfX0ZVTkNUSU9OX18pLAorICAgICAgICAnbXNnJyA9PiBhcnJheSgnbXlzcWxfZXJyb3InLCAkZSkKKyAgICAgICk7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGVsc2UgeworICAgICAgJF9TRVNTSU9OWydyZXR1cm4nXVtdID0gYXJyYXkoCisgICAgICAgICd0eXBlJyA9PiAnZGFuZ2VyJywKKyAgICAgICAgJ2xvZycgPT4gYXJyYXkoX19GVU5DVElPTl9fKSwKKyAgICAgICAgJ21zZycgPT4gJ0FuIHVua25vd24gZXJyb3Igb2NjdXJlZDogJyAuIHByaW50X3IoJGUsIHRydWUpCisgICAgICApOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KK3NldF9leGNlcHRpb25faGFuZGxlcignZXhjZXB0aW9uX2hhbmRsZXInKTsKKworLy8gVE9ETzogTW92ZSBmdW5jdGlvbgorZnVuY3Rpb24gZ2V0X3JlbW90ZV9pcCgkYW5vbnltaXplID0gbnVsbCkgeworICBnbG9iYWwgJEFOT05ZTUlaRV9JUFM7CisgIGlmICgkYW5vbnltaXplID09PSBudWxsKSB7CisgICAgJGFub255bWl6ZSA9ICRBTk9OWU1JWkVfSVBTOworICB9CisgIGVsc2VpZiAoJGFub255bWl6ZSAhPT0gdHJ1ZSAmJiAkYW5vbnltaXplICE9PSBmYWxzZSkgIHsKKyAgICAkYW5vbnltaXplID0gdHJ1ZTsKKyAgfQorICAkcmVtb3RlID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CisgIGlmIChmaWx0ZXJfdmFyKCRyZW1vdGUsIEZJTFRFUl9WQUxJREFURV9JUCkgPT09IGZhbHNlKSB7CisgICAgcmV0dXJuICcwLjAuMC4wJzsKKyAgfQorICBpZiAoJGFub255bWl6ZSkgeworICAgIGlmIChzdHJsZW4oaW5ldF9wdG9uKCRyZW1vdGUpKSA9PSA0KSB7CisgICAgICByZXR1cm4gaW5ldF9udG9wKGluZXRfcHRvbigkcmVtb3RlKSAmIGluZXRfcHRvbigiMjU1LjI1NS4yNTUuMCIpKTsKKyAgICB9CisgICAgZWxzZWlmIChzdHJsZW4oaW5ldF9wdG9uKCRyZW1vdGUpKSA9PSAxNikgeworICAgICAgcmV0dXJuIGluZXRfbnRvcChpbmV0X3B0b24oJHJlbW90ZSkgJiBpbmV0X3B0b24oJ2ZmZmY6ZmZmZjpmZmZmOmZmZmY6MDAwMDowMDAwOjAwMDA6MDAwMCcpKTsKKyAgICB9CisgIH0KKyAgZWxzZSB7CisgICAgcmV0dXJuICRyZW1vdGU7CisgIH0KK30KKworLy8gTG9hZCBjb3JlIGZ1bmN0aW9ucyBmaXJzdAorcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9mdW5jdGlvbnMuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3Nlc3Npb25zLmluYy5waHAnOworCisvLyBJTUFQIGxpYgorLy8gdXNlIERkZWJvZXJcSW1hcFxTZXJ2ZXI7CisvLyAkaW1hcF9zZXJ2ZXIgPSBuZXcgU2VydmVyKCdkb3ZlY290JywgMTQzLCAnL2ltYXAvdGxzL25vdmFsaWRhdGUtY2VydCcpOworCisvLyBTZXQgbGFuZ3VhZ2UKK2lmICghaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2xvY2FsZSddKSAmJiAhaXNzZXQoJF9DT09LSUVbJ21haWxjb3dfbG9jYWxlJ10pKSB7CisgIGlmICgkREVURUNUX0xBTkdVQUdFICYmIGlzc2V0KCRfU0VSVkVSWydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddKSkgeworICAgICRoZWFkZXJfbGFuZyA9IHN0cnRvbG93ZXIoc3Vic3RyKCRfU0VSVkVSWydIVFRQX0FDQ0VQVF9MQU5HVUFHRSddLCAwLCAyKSk7CisgICAgaWYgKGluX2FycmF5KCRoZWFkZXJfbGFuZywgJEFWQUlMQUJMRV9MQU5HVUFHRVMpKSB7CisgICAgICAkX1NFU1NJT05bJ21haWxjb3dfbG9jYWxlJ10gPSAkaGVhZGVyX2xhbmc7CisgICAgfQorICB9CisgIGVsc2UgeworICAgICRfU0VTU0lPTlsnbWFpbGNvd19sb2NhbGUnXSA9IHN0cnRvbG93ZXIodHJpbSgkREVGQVVMVF9MQU5HKSk7CisgIH0KK30KK2lmIChpc3NldCgkX0NPT0tJRVsnbWFpbGNvd19sb2NhbGUnXSkpIHsKKyAgKHByZWdfbWF0Y2goJy9eW2Etel17Mn0kLycsICRfQ09PS0lFWydtYWlsY293X2xvY2FsZSddKSkgPyAkX1NFU1NJT05bJ21haWxjb3dfbG9jYWxlJ10gPSAkX0NPT0tJRVsnbWFpbGNvd19sb2NhbGUnXSA6IHNldGNvb2tpZSgibWFpbGNvd19sb2NhbGUiLCAiIiwgdGltZSgpIC0gMzAwKTsKK30KK2lmIChpc3NldCgkX0dFVFsnbGFuZyddKSAmJiBpbl9hcnJheSgkX0dFVFsnbGFuZyddLCAkQVZBSUxBQkxFX0xBTkdVQUdFUykpIHsKKyAgJF9TRVNTSU9OWydtYWlsY293X2xvY2FsZSddID0gJF9HRVRbJ2xhbmcnXTsKKyAgc2V0Y29va2llKCJtYWlsY293X2xvY2FsZSIsICRfR0VUWydsYW5nJ10sIHRpbWUoKSszMDc1ODQwMCk7IC8vIG9uZSB5ZWFyCit9CisKKy8qCisgKiBsb2FkIGxhbmd1YWdlCisgKi8KKyRsYW5nID0ganNvbl9kZWNvZGUoZmlsZV9nZXRfY29udGVudHMoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvbGFuZy9sYW5nLmVuLmpzb24nKSwgdHJ1ZSk7CisKKyRsYW5nRmlsZSA9ICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2xhbmcvbGFuZy4nLiRfU0VTU0lPTlsnbWFpbGNvd19sb2NhbGUnXS4nLmpzb24nOworaWYoZmlsZV9leGlzdHMoJGxhbmdGaWxlKSkgeworICAkbGFuZyA9IGFycmF5X21lcmdlX3JlYWwoJGxhbmcsIGpzb25fZGVjb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKCRsYW5nRmlsZSksIHRydWUpKTsKK30KKworcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9mdW5jdGlvbnMuYWNsLmluYy5waHAnOworcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9mdW5jdGlvbnMuYXBwX3Bhc3N3ZC5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLm1haWxib3guaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5jdXN0b21pemUuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5hZGRyZXNzX3Jld3JpdGluZy5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLmRvbWFpbl9hZG1pbi5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLmFkbWluLmluYy5waHAnOworcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9mdW5jdGlvbnMucXVhcmFudGluZS5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLnF1b3RhX25vdGlmaWNhdGlvbi5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLnBvbGljeS5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLmRraW0uaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5md2Rob3N0LmluYy5waHAnOworcmVxdWlyZV9vbmNlICRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAnL2luYy9mdW5jdGlvbnMubWFpbHEuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5vYXV0aDIuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5wdXNob3Zlci5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLnJhdGVsaW1pdC5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLnRyYW5zcG9ydHMuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5yc3BhbWQuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy50bHNfcG9saWN5X21hcHMuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2Z1bmN0aW9ucy5mYWlsMmJhbi5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLmRvY2tlci5pbmMucGhwJzsKK3JlcXVpcmVfb25jZSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJy9pbmMvZnVuY3Rpb25zLnByZXNldHMuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL2luaXRfZGIuaW5jLnBocCc7CityZXF1aXJlX29uY2UgJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICcvaW5jL3RyaWdnZXJzLmluYy5waHAnOworaW5pdF9kYl9zY2hlbWEoKTsKK2lmIChpc3NldCgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddKSkgeworICAvLyBpZiAoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAndXNlcicpIHsKKyAgICAvLyBsaXN0KCRtYXN0ZXJfdXNlciwgJG1hc3Rlcl9wYXNzd2QpID0gZXhwbG9kZSgnOicsIGZpbGVfZ2V0X2NvbnRlbnRzKCcvZXRjL3NvZ28vc2lldmUuY3JlZHMnKSk7CisgICAgLy8gJGltYXBfY29ubmVjdGlvbiA9ICRpbWFwX3NlcnZlci0+YXV0aGVudGljYXRlKCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddIC4gJyonIC4gdHJpbSgkbWFzdGVyX3VzZXIpLCB0cmltKCRtYXN0ZXJfcGFzc3dkKSk7CisgICAgLy8gJG1hc3Rlcl91c2VyID0gJG1hc3Rlcl9wYXNzd2QgPSBudWxsOworICAvLyB9CisgIGFjbCgndG9fc2Vzc2lvbicpOworfQorJFVJX1RFWFRTID0gY3VzdG9taXplKCdnZXQnLCAndWlfdGV4dHMnKTsKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlc2V0cy9yc3BhbWQvcHJlc2V0XzEueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3JzcGFtZC9wcmVzZXRfMS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiZTM1MgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlc2V0cy9yc3BhbWQvcHJlc2V0XzEueW1sCkBAIC0wLDAgKzEsNyBAQAoraGVhZGxpbmU6IGxhbmcucnNldHRpbmdzX3ByZXNldF8xCitjb250ZW50OiB8CisgIHByaW9yaXR5ID0gMTA7CisgIGF1dGhlbnRpY2F0ZWQgPSB5ZXM7CisgIGFwcGx5ICJkZWZhdWx0IiB7CisgICAgc3ltYm9sc19lbmFibGVkID0gWyJES0lNX1NJR05FRCIsICJSQVRFTElNSVRFRCIsICJSQVRFTElNSVRfVVBEQVRFIiwgIlJBVEVMSU1JVF9DSEVDSyIsICJEWU5fUkxfQ0hFQ0siLCAiSElTVE9SWV9TQVZFIiwgIk1JTFRFUl9IRUFERVJTIiwgIkFSQ19TSUdORUQiXTsKKyAgfQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3JzcGFtZC9wcmVzZXRfMy55bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvcnNwYW1kL3ByZXNldF8zLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2E4MWQwCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3JzcGFtZC9wcmVzZXRfMy55bWwKQEAgLTAsMCArMSwxMyBAQAoraGVhZGxpbmU6IGxhbmcucnNldHRpbmdzX3ByZXNldF8zCitjb250ZW50OiB8CisgIHByaW9yaXR5ID0gMTA7CisgIHJjcHQgPSAiaW50ZXJuYWwtb25seUBkb21haW4udGxkIjsKKyAgIyBNdWx0aXBsZSBhbGxvd2VkIGhvc3RzCisgICMgZnJvbSA9ICIvXigoPyEoLipAYWxsb3dlZC1kb21haW5cLnRsZHwuKkBvdGhlci1hbGxvd2VkLWRvbWFpblwudGxkKSkuKSokLyI7CisgIGZyb20gPSAiL14oKD8hLipAZG9tYWluXC50bGQpLikqJC8iOworICBhcHBseSAiZGVmYXVsdCIgeworICAgIE1BSUxDT1dfQkxBQ0sgPSA5OTk5LjA7CisgIH0KKyAgc3ltYm9scyBbCisgICAgIk1BSUxDT1dfQkxBQ0siCisgIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfMS55bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfMS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdmYThjOAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlc2V0cy9zaWV2ZS9zaWV2ZV8xLnltbApAQCAtMCwwICsxLDEwIEBACitoZWFkbGluZTogbGFuZy5zaWV2ZV9wcmVzZXRfMQorY29udGVudDogfAorICByZXF1aXJlIFsicmVqZWN0IiwiYm9keSIsInJlZ2V4Il07CisgIGlmIGFueW9mIChib2R5IDpyYXcgOnJlZ2V4IFsiZmlsZW5hbWU9LipcLmRvYyIsImZpbGVuYW1lPS4qXC5leGUiLCJmaWxlbmFtZT0uKlwubW9vIl0pIHsKKyAgICByZWplY3QgdGV4dDoKKyAgZG9jLCBleGUgYW5kIG1vbyBhcmUgZGFuZ2Vyb3VzIGZpbGUgZXh0ZW5zaW9ucy4KKyAgV2h5IHdvdWxkIHlvdSBkbyB0aGF0PyBJIGFtIGEgc2FkIGNvdy4KKyAgLgorICA7CisgIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfMi55bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfMi55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRhZmVjMQotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlc2V0cy9zaWV2ZS9zaWV2ZV8yLnltbApAQCAtMCwwICsxLDcgQEAKK2hlYWRsaW5lOiBsYW5nLnNpZXZlX3ByZXNldF8yCitjb250ZW50OiB8CisgIHJlcXVpcmUgWyJlbnZlbG9wZSIsICJpbWFwNGZsYWdzIl07CisgIGlmIGVudmVsb3BlICJmcm9tIiAibWFya0BtZS1yZWFkLmNvbSIKKyAgeworICAgICBzZXRmbGFnICJcXHNlZW4iOworICB9CmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfMy55bWwgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfMy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmMGUxMAotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvcHJlc2V0cy9zaWV2ZS9zaWV2ZV8zLnltbApAQCAtMCwwICsxLDMgQEAKK2hlYWRsaW5lOiBsYW5nLnNpZXZlX3ByZXNldF8zCitjb250ZW50OiB8CisgIGRpc2NhcmQ7IHN0b3A7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzQueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzQueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YzdiNWYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfNC55bWwKQEAgLTAsMCArMSw0IEBACitoZWFkbGluZTogbGFuZy5zaWV2ZV9wcmVzZXRfNAorY29udGVudDogfAorICByZXF1aXJlICJmaWxlaW50byI7CisgIGZpbGVpbnRvICJJTkJPWCI7IHN0b3A7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzUueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzUueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZWY3NTcKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfNS55bWwKQEAgLTAsMCArMSwxNiBAQAoraGVhZGxpbmU6IGxhbmcuc2lldmVfcHJlc2V0XzUKK2NvbnRlbnQ6IHwKKyAgcmVxdWlyZSAidmFjYXRpb24tc2Vjb25kcyI7CisgIGlmIHRydWUKKyAgeworICAgICMgT25seSBzZW5kIG9uY2UgYSBkYXk6CisgICAgIyB2YWNhdGlvbiA6c2Vjb25kcyA4NjQwMCB0ZXh0OgorICAgICMgT25seSBzZW5kIG9uY2UgZXZlcnkgMzAwIHNlY29uZHM6CisgICAgIyB2YWNhdGlvbiA6c2Vjb25kcyAzMDAgdGV4dDoKKyAgICAjIEVsc2U6CisgICAgdmFjYXRpb24gdGV4dDoKKyAgSSBhbSBvbiBob2xpZGF5cywgeWF5IQorICBNYWlsIG1lIGxhdGVyLCBhbGxpZ2F0b3IuCisgIC4KKyAgOworICB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzYueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzYueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZWFhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfNi55bWwKQEAgLTAsMCArMSwxMCBAQAoraGVhZGxpbmU6IGxhbmcuc2lldmVfcHJlc2V0XzYKK2NvbnRlbnQ6IHwKKyAgcmVxdWlyZSBbInJlamVjdCJdOworICAjIFJlamVjdHMgYXJlIHNlbnQgZnJvbSBwb3N0bWFzdGVyQG1haWxjb3dfaG9zdG5hbWUsIG1ha2Ugc3VyZSBETUFSQy9TUEYgYXJlIGZpbmUKKyAgIyBZb3Ugc2hvdWxkIHByZWZlciByZWplY3RzIHZpYSBtYWlsY293IGJsYWNrbGlzdHMKKyAgcmVqZWN0IHRleHQ6CisgIEkgYW0gbm90IHRha2luZyBtYWlsIGZyb20geW91LCBhbmQgSSBkb24ndAorICB3YW50IHlvdXIgYmlyZHNlZWQsIGVpdGhlciEKKyAgLgorICA7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzcueW1sIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9wcmVzZXRzL3NpZXZlL3NpZXZlXzcueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNDA1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3ByZXNldHMvc2lldmUvc2lldmVfNy55bWwKQEAgLTAsMCArMSw3IEBACitoZWFkbGluZTogbGFuZy5zaWV2ZV9wcmVzZXRfNworY29udGVudDogfAorICByZWRpcmVjdCAib3RoZXItYWRkcmVzc0Bkb21haW4udGxkIjsKKyAgIyBFaXRoZXIga2VlcCBhZnRlciByZWRpcmVjdGluZzoKKyAgIyBrZWVwOworICAjIE9yIHJlZGlyZWN0IGFuZCBkcm9wOgorICBkaXNjYXJkOyBzdG9wOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvc2Vzc2lvbnMuaW5jLnBocCBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvc2Vzc2lvbnMuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzdlYzcxCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9zZXNzaW9ucy5pbmMucGhwCkBAIC0wLDAgKzEsMTQwIEBACis8P3BocA0KKy8vIFN0YXJ0IHNlc3Npb24NCitpZiAoc2Vzc2lvbl9zdGF0dXMoKSAhPT0gUEhQX1NFU1NJT05fQUNUSVZFKSB7DQorICBpbmlfc2V0KCJzZXNzaW9uLmNvb2tpZV9odHRwb25seSIsIDEpOw0KKyAgaW5pX3NldCgnc2Vzc2lvbi5nY19tYXhsaWZldGltZScsICRTRVNTSU9OX0xJRkVUSU1FKTsNCit9DQorDQoraWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfRk9SV0FSREVEX1BST1RPJ10pICYmIA0KKyAgc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddKSA9PSAiaHR0cHMiKSB7DQorICBpZiAoc2Vzc2lvbl9zdGF0dXMoKSAhPT0gUEhQX1NFU1NJT05fQUNUSVZFKSB7DQorICAgIGluaV9zZXQoInNlc3Npb24uY29va2llX3NlY3VyZSIsIDEpOw0KKyAgfQ0KKyAgJElTX0hUVFBTID0gdHJ1ZTsNCit9DQorZWxzZWlmIChpc3NldCgkX1NFUlZFUlsnSFRUUFMnXSkpIHsNCisgIGlmIChzZXNzaW9uX3N0YXR1cygpICE9PSBQSFBfU0VTU0lPTl9BQ1RJVkUpIHsNCisgICAgaW5pX3NldCgic2Vzc2lvbi5jb29raWVfc2VjdXJlIiwgMSk7DQorICB9DQorICAkSVNfSFRUUFMgPSB0cnVlOw0KK30NCitlbHNlIHsNCisgICRJU19IVFRQUyA9IGZhbHNlOw0KK30NCisNCitpZiAoc2Vzc2lvbl9zdGF0dXMoKSAhPT0gUEhQX1NFU1NJT05fQUNUSVZFKSB7DQorICBzZXNzaW9uX3N0YXJ0KCk7DQorfQ0KKw0KK2lmICghaXNzZXQoJF9TRVNTSU9OWydDU1JGJ11bJ1RPS0VOJ10pKSB7DQorICAkX1NFU1NJT05bJ0NTUkYnXVsnVE9LRU4nXSA9IGJpbjJoZXgocmFuZG9tX2J5dGVzKDMyKSk7DQorfQ0KKw0KKy8vIFNldCBzZXNzaW9uIFVBDQoraWYgKCFpc3NldCgkX1NFU1NJT05bJ1NFU1NfUkVNT1RFX1VBJ10pKSB7DQorICAkX1NFU1NJT05bJ1NFU1NfUkVNT1RFX1VBJ10gPSAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ107DQorfQ0KKw0KKy8vIEtlZXAgc2Vzc2lvbiBhY3RpdmUNCitpZiAoaXNzZXQoJF9TRVNTSU9OWydMQVNUX0FDVElWSVRZJ10pICYmICh0aW1lKCkgLSAkX1NFU1NJT05bJ0xBU1RfQUNUSVZJVFknXSA+ICRTRVNTSU9OX0xJRkVUSU1FKSkgew0KKyAgc2Vzc2lvbl91bnNldCgpOw0KKyAgc2Vzc2lvbl9kZXN0cm95KCk7DQorfQ0KKyRfU0VTU0lPTlsnTEFTVF9BQ1RJVklUWSddID0gdGltZSgpOw0KKw0KKy8vIEFQSQ0KK2lmICghZW1wdHkoJF9TRVJWRVJbJ0hUVFBfWF9BUElfS0VZJ10pKSB7DQorICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gYGFwaWAgV0hFUkUgYGFwaV9rZXlgID0gOmFwaV9rZXkgQU5EIGBhY3RpdmVgID0gJzEnOyIpOw0KKyAgJHN0bXQtPmV4ZWN1dGUoYXJyYXkoDQorICAgICc6YXBpX2tleScgPT4gcHJlZ19yZXBsYWNlKCcvW15hLXpBLVowLTktXS8nLCAnJywgJF9TRVJWRVJbJ0hUVFBfWF9BUElfS0VZJ10pDQorICApKTsNCisgICRhcGlfcmV0dXJuID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOw0KKyAgaWYgKCFlbXB0eSgkYXBpX3JldHVyblsnYXBpX2tleSddKSkgew0KKyAgICAkc2tpcF9pcF9jaGVjayA9ICgkYXBpX3JldHVyblsnc2tpcF9pcF9jaGVjayddID09IDEpOw0KKyAgICAkcmVtb3RlID0gZ2V0X3JlbW90ZV9pcChmYWxzZSk7DQorICAgICRhbGxvd19mcm9tID0gYXJyYXlfbWFwKCd0cmltJywgcHJlZ19zcGxpdCggIi8oIHwsfDt8XG4pLyIsICRhcGlfcmV0dXJuWydhbGxvd19mcm9tJ10pKTsNCisgICAgaWYgKCRza2lwX2lwX2NoZWNrID09PSB0cnVlIHx8IGlwX2FjbCgkcmVtb3RlLCAkYWxsb3dfZnJvbSkpIHsNCisgICAgICAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSA9ICdBUEknOw0KKyAgICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPSAnYWRtaW4nOw0KKyAgICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19hcGknXSA9IHRydWU7DQorICAgICAgaWYgKCRhcGlfcmV0dXJuWydhY2Nlc3MnXSA9PSAncncnKSB7DQorICAgICAgICAkX1NFU1NJT05bJ21haWxjb3dfY2NfYXBpX2FjY2VzcyddID0gJ3J3JzsNCisgICAgICB9DQorICAgICAgZWxzZSB7DQorICAgICAgICAkX1NFU1NJT05bJ21haWxjb3dfY2NfYXBpX2FjY2VzcyddID0gJ3JvJzsNCisgICAgICB9DQorICAgIH0NCisgICAgZWxzZSB7DQorICAgICAgJHJlZGlzLT5wdWJsaXNoKCJGMkJfQ0hBTk5FTCIsICJtYWlsY293IFVJOiBJbnZhbGlkIHBhc3N3b3JkIGZvciBBUElfVVNFUiBieSAiIC4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOw0KKyAgICAgIGVycm9yX2xvZygibWFpbGNvdyBVSTogSW52YWxpZCBwYXNzd29yZCBmb3IgIiAuICR1c2VyIC4gIiBieSAiIC4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOw0KKyAgICAgIGh0dHBfcmVzcG9uc2VfY29kZSg0MDEpOw0KKyAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoDQorICAgICAgICAndHlwZScgPT4gJ2Vycm9yJywNCisgICAgICAgICdtc2cnID0+ICdhcGkgYWNjZXNzIGRlbmllZCBmb3IgaXAgJyAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddDQorICAgICAgKSk7DQorICAgICAgdW5zZXQoJF9QT1NUKTsNCisgICAgICBleGl0KCk7DQorICAgIH0NCisgIH0NCisgIGVsc2Ugew0KKyAgICAkcmVkaXMtPnB1Ymxpc2goIkYyQl9DSEFOTkVMIiwgIm1haWxjb3cgVUk6IEludmFsaWQgcGFzc3dvcmQgZm9yIEFQSV9VU0VSIGJ5ICIgLiAkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7DQorICAgIGVycm9yX2xvZygibWFpbGNvdyBVSTogSW52YWxpZCBwYXNzd29yZCBmb3IgIiAuICR1c2VyIC4gIiBieSAiIC4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOw0KKyAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNDAxKTsNCisgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgNCisgICAgICAndHlwZScgPT4gJ2Vycm9yJywNCisgICAgICAnbXNnJyA9PiAnYXV0aGVudGljYXRpb24gZmFpbGVkJw0KKyAgICApKTsNCisgICAgdW5zZXQoJF9QT1NUKTsNCisgICAgZXhpdCgpOw0KKyAgfQ0KK30NCisNCisvLyBIYW5kbGUgbG9nb3V0cw0KK2lmIChpc3NldCgkX1BPU1RbImxvZ291dCJdKSkgew0KKyAgaWYgKGlzc2V0KCRfU0VTU0lPTlsiZHVhbC1sb2dpbiJdKSkgew0KKyAgICAkX1NFU1NJT05bIm1haWxjb3dfY2NfdXNlcm5hbWUiXSA9ICRfU0VTU0lPTlsiZHVhbC1sb2dpbiJdWyJ1c2VybmFtZSJdOw0KKyAgICAkX1NFU1NJT05bIm1haWxjb3dfY2Nfcm9sZSJdID0gJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInJvbGUiXTsNCisgICAgdW5zZXQoJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl0pOw0KKyAgICBoZWFkZXIoIkxvY2F0aW9uOiAvbWFpbGJveCIpOw0KKyAgICBleGl0KCk7DQorICB9DQorICBlbHNlIHsNCisgICAgc2Vzc2lvbl9yZWdlbmVyYXRlX2lkKHRydWUpOw0KKyAgICBzZXNzaW9uX3Vuc2V0KCk7DQorICAgIHNlc3Npb25fZGVzdHJveSgpOw0KKyAgICBzZXNzaW9uX3dyaXRlX2Nsb3NlKCk7DQorICAgIGhlYWRlcigiTG9jYXRpb246IC8iKTsNCisgIH0NCit9DQorDQorLy8gQ2hlY2sgc2Vzc2lvbg0KK2Z1bmN0aW9uIHNlc3Npb25fY2hlY2soKSB7DQorICBpZiAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX2FwaSddKSAmJiAkX1NFU1NJT05bJ21haWxjb3dfY2NfYXBpJ10gPT09IHRydWUpIHsNCisgICAgcmV0dXJuIHRydWU7DQorICB9DQorICBpZiAoIWlzc2V0KCRfU0VTU0lPTlsnU0VTU19SRU1PVEVfVUEnXSkgfHwgKCRfU0VTU0lPTlsnU0VTU19SRU1PVEVfVUEnXSAhPSAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7DQorICAgICRfU0VTU0lPTlsncmV0dXJuJ11bXSA9IGFycmF5KA0KKyAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgJ21zZycgPT4gJ3Nlc3Npb25fdWEnDQorICAgICk7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCisgIGlmICghZW1wdHkoJF9QT1NUKSkgew0KKyAgICBpZiAoJF9TRVNTSU9OWydDU1JGJ11bJ1RPS0VOJ10gIT0gJF9QT1NUWydjc3JmX3Rva2VuJ10pIHsNCisgICAgICAkX1NFU1NJT05bJ3JldHVybiddW10gPSBhcnJheSgNCisgICAgICAgICd0eXBlJyA9PiAnd2FybmluZycsDQorICAgICAgICAnbXNnJyA9PiAnc2Vzc2lvbl90b2tlbicNCisgICAgICApOw0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKyAgICB1bnNldCgkX1BPU1RbJ2NzcmZfdG9rZW4nXSk7DQorICAgICRfU0VTU0lPTlsnQ1NSRiddWydUT0tFTiddID0gYmluMmhleChyYW5kb21fYnl0ZXMoMzIpKTsNCisgICAgJF9TRVNTSU9OWydDU1JGJ11bJ1RJTUUnXSA9IHRpbWUoKTsNCisgIH0NCisgIHJldHVybiB0cnVlOw0KK30NCisNCitpZiAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSkgJiYgc2Vzc2lvbl9jaGVjaygpID09PSBmYWxzZSkgew0KKyAgJF9QT1NUID0gYXJyYXkoKTsNCisgICRfRklMRVMgPSBhcnJheSgpOw0KK30NCmRpZmYgLS1naXQgYS9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3NwZi5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9zcGYuaW5jLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTlmNTcyCi0tLSAvZGV2L251bGwKKysrIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy9zcGYuaW5jLnBocApAQCAtMCwwICsxLDE0MyBAQAorPD9waHAKK2Vycm9yX3JlcG9ydGluZygwKTsKKworZnVuY3Rpb24gZ2V0X3NwZl9hbGxvd2VkX2hvc3RzKCRjaGVja19kb21haW4pCit7CisJJGhvc3RzID0gYXJyYXkoKTsKKwkKKwkkcmVjb3JkcyA9IGRuc19nZXRfcmVjb3JkKCRjaGVja19kb21haW4sIEROU19UWFQpOworCWZvcmVhY2ggKCRyZWNvcmRzIGFzICRyZWNvcmQpCisJeworCQkkdHh0ID0gZXhwbG9kZSgnICcsICRyZWNvcmRbJ2VudHJpZXMnXVswXSk7CisJCWlmIChhcnJheV9zaGlmdCgkdHh0KSAhPSAndj1zcGYxJykgLy8gb25seSBoYW5kbGUgU1BGIHJlY29yZHMKKwkJCWNvbnRpbnVlOworCQkKKwkJZm9yZWFjaCAoJHR4dCBhcyAkbWVjaCkKKwkJeworCQkJJHF1YWwgPSBzdWJzdHIoJG1lY2gsIDAsIDEpOworCQkJaWYgKCRxdWFsID09ICctJyB8fCAkcXVhbCA9PSAnficpIC8vIG9ubHkgaGFuZGxlIHBhc3Mgb3IgbmV1dHJhbCByZWNvcmRzCisJCQkJY29udGludWUoMik7CisJCQkKKwkJCWlmICgkcXVhbCA9PSAnKycgfHwgJHF1YWwgPT0gJz8nKQorCQkJCSRtZWNoID0gc3Vic3RyKCRtZWNoLCAxKTsgLy8gcmVtb3ZlIHRoZSBxdWFsaWZpZXIKKwkJCQorCQkJaWYgKHN0cnBvcygkbWVjaCwgJz0nKSAhPT0gRkFMU0UpIC8vIGhhbmRsZSBhIG1vZGlmaWVyCisJCQl7CisJCQkJJG1vZCA9IGV4cGxvZGUoJz0nLCAkbWVjaCk7CisJCQkJaWYgKCRtb2RbMF0gPT0gJ3JlZGlyZWN0JykgLy8gaGFuZGxlIGEgcmVkaXJlY3QKKwkJCQl7CisJCQkJCSRob3N0cyA9IGdldF9zcGZfYWxsb3dlZF9ob3N0cygkbW9kWzFdKTsKKwkJCQkJcmV0dXJuICRob3N0czsKKwkJCQl9CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJdW5zZXQoJGNpZHIpOworCQkJCS8vIHJlc2V0IGRvbWFpbiB0byBjaGVja19kb21haW4KKwkJCQkkZG9tYWluID0gJGNoZWNrX2RvbWFpbjsKKwkJCQlpZiAoc3RycG9zKCRtZWNoLCAnOicpICE9PSBGQUxTRSkgLy8gaGFuZGxlIGEgZG9tYWluIHNwZWNpZmljYXRpb24KKwkJCQl7CisJCQkJCSRzcGxpdCA9IGV4cGxvZGUoJzonLCAkbWVjaCk7CisJCQkJCSRtZWNoID0gYXJyYXlfc2hpZnQoJHNwbGl0KTsKKwkJCQkJJGRvbWFpbiA9IGltcGxvZGUoJzonLCAkc3BsaXQpOworCQkJCQlpZiAoc3RycG9zKCRkb21haW4sICcvJykgIT09IEZBTFNFKSAvLyByZW1vdmUgQ0lEUiBzcGVjaWZpY2F0aW9uCisJCQkJCXsKKwkJCQkJCSRzcGxpdCA9IGV4cGxvZGUoJy8nLCAkZG9tYWluKTsKKwkJCQkJCSRkb21haW4gPSAkc3BsaXRbMF07CisJCQkJCQkkY2lkciA9ICRzcGxpdFsxXTsKKwkJCQkJfQorCQkJCX0KKwkJCQkKKwkJCQkkbmV3X2hvc3RzID0gYXJyYXkoKTsKKyAgICAgICAgaWYgKCRtZWNoID09ICdpbmNsdWRlJyAmJiAkY2hlY2tfZG9tYWluICE9ICRkb21haW4pIC8vIGhhbmRsZSBhbiBpbmNsdXNpb24KKwkJCQl7CisJCQkJCSRuZXdfaG9zdHMgPSBnZXRfc3BmX2FsbG93ZWRfaG9zdHMoJGRvbWFpbik7CisJCQkJfQorCQkJCWVsc2VpZiAoJG1lY2ggPT0gJ2EnKSAvLyBoYW5kbGUgYSBtZWNoYW5pc20KKwkJCQl7CisJCQkJCSRuZXdfaG9zdHMgPSBnZXRfYV9ob3N0cygkZG9tYWluKTsKKwkJCQl9CisJCQkJZWxzZWlmICgkbWVjaCA9PSAnbXgnKSAvLyBoYW5kbGUgbXggbWVjaGFuaXNtCisJCQkJeworCQkJCQkkbmV3X2hvc3RzID0gZ2V0X214X2hvc3RzKCRkb21haW4pOworCQkJCX0KKwkJCQllbHNlaWYgKCRtZWNoID09ICdpcDQnIHx8ICRtZWNoID09ICdpcDYnKSAvLyBoYW5kbGUgaXAgbWVjaGFuaXNtCisJCQkJeworCQkJCQkkbmV3X2hvc3RzID0gYXJyYXkoJGRvbWFpbik7CisJCQkJfQorCQkJCQorCQkJCWlmIChpc3NldCgkY2lkcikpIC8vIGFkZCBDSURSIHNwZWNpZmljYXRpb24gaWYgcHJlc2VudAorCQkJCXsKKwkJCQkJZm9yZWFjaCAoJG5ld19ob3N0cyBhcyAmJGhvc3QpCisJCQkJCXsKKwkJCQkJCSRob3N0IC49ICcvJyAuICRjaWRyOworCQkJCQl9CisJCQkJCXVuc2V0KCRob3N0KTsKKwkJCQl9CisJCQkJCisJCQkJJGhvc3RzID0gYXJyYXlfdW5pcXVlKGFycmF5X21lcmdlKCRob3N0cywkbmV3X2hvc3RzKSwgU09SVF9SRUdVTEFSKTsKKwkJCX0KKwkJfQorCX0KKwlmb3JlYWNoICgkaG9zdHMgYXMgJiRob3N0KSB7CisJCWlmIChmaWx0ZXJfdmFyKCRob3N0LCBGSUxURVJfVkFMSURBVEVfSVAsIEZJTFRFUl9GTEFHX0lQVjYpKSB7CisJCQkkaG9zdCA9ICRob3N0OworCQl9CisJfQorCXJldHVybiAkaG9zdHM7Cit9CisKKworZnVuY3Rpb24gZ2V0X214X2hvc3RzKCRkb21haW4pCit7CisJJGhvc3RzID0gYXJyYXkoKTsKKyAgdHJ5IHsKKyAgICAkbXhfcmVjb3JkcyA9IGRuc19nZXRfcmVjb3JkKCRkb21haW4sIEROU19NWCk7CisgICAgaWYgKCRteF9yZWNvcmRzKSB7CisgICAgICBmb3JlYWNoICgkbXhfcmVjb3JkcyBhcyAkbXhfcmVjb3JkKSB7CisgICAgICAgICRuZXdfaG9zdHMgPSBnZXRfYV9ob3N0cygkbXhfcmVjb3JkWyd0YXJnZXQnXSk7CisgICAgICAgICRob3N0cyA9IGFycmF5X3VuaXF1ZShhcnJheV9tZXJnZSgkaG9zdHMsJG5ld19ob3N0cyksIFNPUlRfUkVHVUxBUik7CisgICAgICB9CisgICAgfQorICB9CisgIGNhdGNoIChFeGNlcHRpb24gJGUpIHsKKyAgICBpZiAoJGUtPmdldE1lc3NhZ2UoKSAhPT0gJ2Ruc19nZXRfcmVjb3JkKCk6IEEgdGVtcG9yYXJ5IHNlcnZlciBlcnJvciBvY2N1cnJlZC4nKSB7CisgICAgICB0aHJvdyAkZTsKKyAgICB9CisgICAgJG14X3JlY29yZHMgPSBmYWxzZTsKKyAgfQorCXJldHVybiAkaG9zdHM7Cit9CisKK2Z1bmN0aW9uIGdldF9hX2hvc3RzKCRkb21haW4pCit7CisJJGhvc3RzID0gYXJyYXkoKTsKKwkKKwkkYV9yZWNvcmRzID0gZG5zX2dldF9yZWNvcmQoJGRvbWFpbiwgRE5TX0EpOworCWZvcmVhY2ggKCRhX3JlY29yZHMgYXMgJGFfcmVjb3JkKQorCXsKKwkJJGhvc3RzW10gPSAkYV9yZWNvcmRbJ2lwJ107CisJfQorCSRhX3JlY29yZHMgPSBkbnNfZ2V0X3JlY29yZCgkZG9tYWluLCBETlNfQUFBQSk7CisJZm9yZWFjaCAoJGFfcmVjb3JkcyBhcyAkYV9yZWNvcmQpCisJeworCQkkaG9zdHNbXSA9ICRhX3JlY29yZFsnaXB2NiddOworCX0KKwkKKwlyZXR1cm4gJGhvc3RzOworfQorCitmdW5jdGlvbiBnZXRfb3V0Z29pbmdfaG9zdHNfYmVzdF9ndWVzcygkZG9tYWluKQoreworCS8vIHRyeSB0aGUgU1BGIHJlY29yZCB0byBnZXQgaG9zdHMgdGhhdCBhcmUgYWxsb3dlZCB0byBzZW5kIG91dGdvaW5nIG1haWxzIGZvciB0aGlzIGRvbWFpbgorCSRob3N0cyA9IGdldF9zcGZfYWxsb3dlZF9ob3N0cygkZG9tYWluKTsKKwlpZiAoJGhvc3RzKSByZXR1cm4gJGhvc3RzOworCQorCS8vIHRyeSB0aGUgTVggcmVjb3JkIHRvIGdldCBtYWlsIHNlcnZlcnMgZm9yIHRoaXMgZG9tYWluCisJJGhvc3RzID0gZ2V0X214X2hvc3RzKCRkb21haW4pOworCWlmICgkaG9zdHMpIHJldHVybiAkaG9zdHM7CisJCisJLy8gZmFsbCBiYWNrIHRvIHRoZSBBIHJlY29yZCB0byBnZXQgdGhlIGhvc3QgbmFtZSBmb3IgdGhpcyBkb21haW4KKwlyZXR1cm4gZ2V0X2FfaG9zdHMoJGRvbWFpbik7Cit9Cis/PgpkaWZmIC0tZ2l0IGEvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy90cmlnZ2Vycy5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy90cmlnZ2Vycy5pbmMucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ODU3NTkKLS0tIC9kZXYvbnVsbAorKysgYi9tYWlsY293L3NyYy9tYWlsY293LWRvY2tlcml6ZWQvZGF0YS93ZWIvaW5jL3RyaWdnZXJzLmluYy5waHAKQEAgLTAsMCArMSwxMzMgQEAKKzw/cGhwCitpZiAoaXNzZXQoJF9QT1NUWyJ2ZXJpZnlfdGZhX2xvZ2luIl0pKSB7CisgIGlmICh2ZXJpZnlfdGZhX2xvZ2luKCRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3VzZXJuYW1lJ10sICRfUE9TVFsidG9rZW4iXSkpIHsKKyAgICAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSA9ICRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3VzZXJuYW1lJ107CisgICAgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9ICRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3JvbGUnXTsKKyAgICB1bnNldCgkX1NFU1NJT05bJ3BlbmRpbmdfbWFpbGNvd19jY191c2VybmFtZSddKTsKKyAgICB1bnNldCgkX1NFU1NJT05bJ3BlbmRpbmdfbWFpbGNvd19jY19yb2xlJ10pOworICAgIHVuc2V0KCRfU0VTU0lPTlsncGVuZGluZ190ZmFfbWV0aG9kJ10pOworCQloZWFkZXIoIkxvY2F0aW9uOiAvdXNlciIpOworICB9Cit9CisKK2lmIChpc3NldCgkX1BPU1RbInF1aWNrX3JlbGVhc2UiXSkpIHsKKwlxdWFyYW50aW5lKCdxdWlja19yZWxlYXNlJywgJF9QT1NUWyJxdWlja19yZWxlYXNlIl0pOworfQorCitpZiAoaXNzZXQoJF9QT1NUWyJxdWlja19kZWxldGUiXSkpIHsKKwlxdWFyYW50aW5lKCdxdWlja19kZWxldGUnLCAkX1BPU1RbInF1aWNrX2RlbGV0ZSJdKTsKK30KKworaWYgKGlzc2V0KCRfUE9TVFsibG9naW5fdXNlciJdKSAmJiBpc3NldCgkX1BPU1RbInBhc3NfdXNlciJdKSkgeworCSRsb2dpbl91c2VyID0gc3RydG9sb3dlcih0cmltKCRfUE9TVFsibG9naW5fdXNlciJdKSk7CisJJGFzID0gY2hlY2tfbG9naW4oJGxvZ2luX3VzZXIsICRfUE9TVFsicGFzc191c2VyIl0pOworCWlmICgkYXMgPT0gImFkbWluIikgeworCQkkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSA9ICRsb2dpbl91c2VyOworCQkkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID0gImFkbWluIjsKKyAgICAkX1NFU1NJT05bJ21haWxjb3dfY2NfbGFzdF9sb2dpbiddID0gbGFzdF9sb2dpbigkbG9naW5fdXNlcik7CisJCWhlYWRlcigiTG9jYXRpb246IC9hZG1pbiIpOworCX0KKwllbHNlaWYgKCRhcyA9PSAiZG9tYWluYWRtaW4iKSB7CisJCSRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddID0gJGxvZ2luX3VzZXI7CisJCSRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPSAiZG9tYWluYWRtaW4iOworICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19sYXN0X2xvZ2luJ10gPSBsYXN0X2xvZ2luKCRsb2dpbl91c2VyKTsKKwkJaGVhZGVyKCJMb2NhdGlvbjogL21haWxib3giKTsKKwl9CisJZWxzZWlmICgkYXMgPT0gInVzZXIiKSB7CisJCSRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddID0gJGxvZ2luX3VzZXI7CisJCSRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gPSAidXNlciI7CisgICAgJF9TRVNTSU9OWydtYWlsY293X2NjX2xhc3RfbG9naW4nXSA9IGxhc3RfbG9naW4oJGxvZ2luX3VzZXIpOworICAgICRodHRwX3BhcmFtZXRlcnMgPSBleHBsb2RlKCcmJywgJF9TRVNTSU9OWydpbmRleF9xdWVyeV9zdHJpbmcnXSk7CisgICAgdW5zZXQoJF9TRVNTSU9OWydpbmRleF9xdWVyeV9zdHJpbmcnXSk7CisgICAgaWYgKGluX2FycmF5KCdtb2JpbGVjb25maWcnLCAkaHR0cF9wYXJhbWV0ZXJzKSkgeworICAgICAgaWYgKGluX2FycmF5KCdvbmx5X2VtYWlsJywgJGh0dHBfcGFyYW1ldGVycykpIHsKKyAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogL21vYmlsZWNvbmZpZy5waHA/ZW1haWxfb25seSIpOworICAgICAgICBkaWUoKTsKKyAgICAgIH0KKyAgICAgIGhlYWRlcigiTG9jYXRpb246IC9tb2JpbGVjb25maWcucGhwIik7CisgICAgICBkaWUoKTsKKyAgICB9CisJCWhlYWRlcigiTG9jYXRpb246IC91c2VyIik7CisJfQorCWVsc2VpZiAoJGFzICE9ICJwZW5kaW5nIikgeworICAgIHVuc2V0KCRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3VzZXJuYW1lJ10pOworICAgIHVuc2V0KCRfU0VTU0lPTlsncGVuZGluZ19tYWlsY293X2NjX3JvbGUnXSk7CisgICAgdW5zZXQoJF9TRVNTSU9OWydwZW5kaW5nX3RmYV9tZXRob2QnXSk7CisJCXVuc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddKTsKKwkJdW5zZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSk7CisJfQorfQorCitpZiAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSkgJiYgJF9TRVNTSU9OWydhY2wnXVsnbG9naW5fYXMnXSA9PSAiMSIpIHsKKwlpZiAoaXNzZXQoJF9HRVRbImR1YWxsb2dpbiJdKSkgeworICAgICRkdWFsbG9naW4gPSBodG1sX2VudGl0eV9kZWNvZGUocmF3dXJsZGVjb2RlKCRfR0VUWyJkdWFsbG9naW4iXSkpOworICAgIGlmIChmaWx0ZXJfdmFyKCRkdWFsbG9naW4sIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHsKKyAgICAgIGlmICghZW1wdHkobWFpbGJveCgnZ2V0JywgJ21haWxib3hfZGV0YWlscycsICRkdWFsbG9naW4pKSkgeworICAgICAgICAkX1NFU1NJT05bImR1YWwtbG9naW4iXVsidXNlcm5hbWUiXSA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddOworICAgICAgICAkX1NFU1NJT05bImR1YWwtbG9naW4iXVsicm9sZSJdICAgICA9ICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ107CisgICAgICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY191c2VybmFtZSddICAgID0gJGR1YWxsb2dpbjsKKyAgICAgICAgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSAgICAgICAgPSAidXNlciI7CisgICAgICAgIGhlYWRlcigiTG9jYXRpb246IC91c2VyIik7CisgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgaWYgKCFlbXB0eShkb21haW5fYWRtaW4oJ2RldGFpbHMnLCAkZHVhbGxvZ2luKSkpIHsKKyAgICAgICAgJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInVzZXJuYW1lIl0gPSAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXTsKKyAgICAgICAgJF9TRVNTSU9OWyJkdWFsLWxvZ2luIl1bInJvbGUiXSAgICAgPSAkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddOworICAgICAgICAkX1NFU1NJT05bJ21haWxjb3dfY2NfdXNlcm5hbWUnXSAgICA9ICRkdWFsbG9naW47CisgICAgICAgICRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10gICAgICAgID0gImRvbWFpbmFkbWluIjsKKyAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogL3VzZXIiKTsKKyAgICAgIH0KKyAgICB9CisgIH0KK30KKworaWYgKGlzc2V0KCRfU0VTU0lPTlsnbWFpbGNvd19jY19yb2xlJ10pICYmICgkX1NFU1NJT05bJ21haWxjb3dfY2Nfcm9sZSddID09ICJhZG1pbiIgfHwgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAiZG9tYWluYWRtaW4iKSkgeworCWlmIChpc3NldCgkX1BPU1RbInNldF90ZmEiXSkpIHsKKwkJc2V0X3RmYSgkX1BPU1QpOworCX0KKwlpZiAoaXNzZXQoJF9QT1NUWyJ1bnNldF90ZmFfa2V5Il0pKSB7CisJCXVuc2V0X3RmYV9rZXkoJF9QT1NUKTsKKwl9CisJaWYgKGlzc2V0KCRfUE9TVFsidW5zZXRfZmlkbzJfa2V5Il0pKSB7CisJCWZpZG8yKGFycmF5KCJhY3Rpb24iID0+ICJ1bnNldF9maWRvMl9rZXkiLCAicG9zdF9kYXRhIiA9PiAkX1BPU1QpKTsKKwl9Cit9CitpZiAoaXNzZXQoJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSkgJiYgJF9TRVNTSU9OWydtYWlsY293X2NjX3JvbGUnXSA9PSAiYWRtaW4iKSB7CisgIC8vIFRPRE86IE1vdmUgZmlsZSB1cGxvYWQgdG8gQVBJPworCWlmIChpc3NldCgkX1BPU1RbInN1Ym1pdF9tYWluX2xvZ28iXSkpIHsKKyAgICBpZiAoJF9GSUxFU1snbWFpbl9sb2dvJ11bJ2Vycm9yJ10gPT0gMCkgeworICAgICAgY3VzdG9taXplKCdhZGQnLCAnbWFpbl9sb2dvJywgJF9GSUxFUyk7CisgICAgfQorCX0KKwlpZiAoaXNzZXQoJF9QT1NUWyJyZXNldF9tYWluX2xvZ28iXSkpIHsKKyAgICBjdXN0b21pemUoJ2RlbGV0ZScsICdtYWluX2xvZ28nKTsKKwl9CisgIC8vIFNvbWUgYWN0aW9ucyB3aWxsIG5vdCBiZSBhdmFpbGFibGUgdmlhIEFQSQorCWlmIChpc3NldCgkX1BPU1RbImxpY2Vuc2VfdmFsaWRhdGVfbm93Il0pKSB7CisJCWxpY2Vuc2UoJ3ZlcmlmeScpOworCX0KKyAgaWYgKGlzc2V0KCRfUE9TVFsiYWRtaW5fYXBpIl0pKSB7CisgICAgaWYgKGlzc2V0KCRfUE9TVFsiYWRtaW5fYXBpIl1bInJvIl0pKSB7CisgICAgICBhZG1pbl9hcGkoJ3JvJywgJ2VkaXQnLCAkX1BPU1QpOworICAgIH0KKyAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFsiYWRtaW5fYXBpIl1bInJ3Il0pKSB7CisgICAgICBhZG1pbl9hcGkoJ3J3JywgJ2VkaXQnLCAkX1BPU1QpOworICAgIH0KKwl9CisgIGlmIChpc3NldCgkX1BPU1RbImFkbWluX2FwaV9yZWdlbl9rZXkiXSkpIHsKKyAgICBpZiAoaXNzZXQoJF9QT1NUWyJhZG1pbl9hcGlfcmVnZW5fa2V5Il1bInJvIl0pKSB7CisgICAgICBhZG1pbl9hcGkoJ3JvJywgJ3JlZ2VuX2tleScsICRfUE9TVCk7CisgICAgfQorICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUWyJhZG1pbl9hcGlfcmVnZW5fa2V5Il1bInJ3Il0pKSB7CisgICAgICBhZG1pbl9hcGkoJ3J3JywgJ3JlZ2VuX2tleScsICRfUE9TVCk7CisgICAgfQorCX0KKwlpZiAoaXNzZXQoJF9QT1NUWyJyc3BhbWRfdWkiXSkpIHsKKwkJcnNwYW1kX3VpKCdlZGl0JywgJF9QT1NUKTsKKwl9CisJaWYgKGlzc2V0KCRfUE9TVFsibWFzc19zZW5kIl0pKSB7CisJCXN5c19tYWlsKCRfUE9TVCk7CisJfQorfQorPz4KZGlmZiAtLWdpdCBhL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvdmFycy5pbmMucGhwIGIvbWFpbGNvdy9zcmMvbWFpbGNvdy1kb2NrZXJpemVkL2RhdGEvd2ViL2luYy92YXJzLmluYy5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ5N2ZmYgotLS0gL2Rldi9udWxsCisrKyBiL21haWxjb3cvc3JjL21haWxjb3ctZG9ja2VyaXplZC9kYXRhL3dlYi9pbmMvdmFycy5pbmMucGhwCkBAIC0wLDAgKzEsMjA4IEBACis8P3BocAorZXJyb3JfcmVwb3J0aW5nKEVfRVJST1IpOworLy9lcnJvcl9yZXBvcnRpbmcoRV9BTEwpOworCisvKgorUExFQVNFIFVTRSBUSEUgRklMRSAidmFycy5sb2NhbC5pbmMucGhwIiBUTyBPVkVSV1JJVEUgU0VUVElOR1MgQU5EIE1BS0UgVEhFTSBQRVJTSVNURU5UIQorVGhpcyBmaWxlIHdpbGwgYmUgcmVzZXQgb24gdXBncmFkZXMuCisqLworCisvLyBTUUwgZGF0YWJhc2UgY29ubmVjdGlvbiB2YXJpYWJsZXMKKyRkYXRhYmFzZV90eXBlID0gJ215c3FsJzsKKyRkYXRhYmFzZV9zb2NrID0gJy92YXIvcnVuL215c3FsZC9teXNxbGQuc29jayc7CiskZGF0YWJhc2VfaG9zdCA9ICdteXNxbCc7CiskZGF0YWJhc2VfdXNlciA9IGdldGVudignREJVU0VSJyk7CiskZGF0YWJhc2VfcGFzcyA9IGdldGVudignREJQQVNTJyk7CiskZGF0YWJhc2VfbmFtZSA9IGdldGVudignREJOQU1FJyk7CisKKy8vIE90aGVyIHZhcmlhYmxlcworJG1haWxjb3dfaG9zdG5hbWUgPSBnZXRlbnYoJ01BSUxDT1dfSE9TVE5BTUUnKTsKKyRkZWZhdWx0X3Bhc3Nfc2NoZW1lID0gZ2V0ZW52KCdNQUlMQ09XX1BBU1NfU0NIRU1FJyk7CisKKy8vIEF1dG9kaXNjb3ZlciBzZXR0aW5ncworLy8gPT09CisvLyBBdXRvLWRldGVjdCBIVFRQUyBwb3J0ID0+CiskaHR0cHNfcG9ydCA9IHN0cnBvcygkX1NFUlZFUlsnSFRUUF9IT1NUJ10sICc6Jyk7CitpZiAoJGh0dHBzX3BvcnQgPT09IEZBTFNFKSB7CisgICRodHRwc19wb3J0ID0gNDQzOworfSBlbHNlIHsKKyAgJGh0dHBzX3BvcnQgPSBzdWJzdHIoJF9TRVJWRVJbJ0hUVFBfSE9TVCddLCAkaHR0cHNfcG9ydCsxKTsKK30KKworLy8gQWx0ZXJuYXRpdmVseSBzZWxlY3QgcG9ydCBoZXJlID0+CisvLyRodHRwc19wb3J0ID0gMTIzNDsKKy8vIE90aGVyIHNldHRpbmdzID0+CiskYXV0b2Rpc2NvdmVyX2NvbmZpZyA9IGFycmF5KAorICAvLyBHZW5lcmFsIGF1dG9kaXNjb3ZlciBzZXJ2aWNlIHR5cGU6ICJhY3RpdmVzeW5jIiBvciAiaW1hcCIKKyAgLy8gZW1DbGllbnQgdXNlcyBhdXRvZGlzY292ZXIsIGJ1dCBkb2VzIG5vdCBzdXBwb3J0IEFjdGl2ZVN5bmMuIG1haWxjb3cgZXhjbHVkZXMgZW1DbGllbnQgZnJvbSBBY3RpdmVTeW5jLgorICAvLyBXaXRoIFNPR28gZGlzYWJsZWQsIHRoZSB0eXBlIHdpbGwgYWx3YXlzIGZhbGxiYWNrIHRvIGltYXAuIENhbERBViBhbmQgQ2FyZERBViB3aWxsIGJlIGV4Y2x1ZGVkLCB0b28uCisgICdhdXRvZGlzY292ZXJUeXBlJyA9PiAnYWN0aXZlc3luYycsCisgIC8vIElmIGF1dG9kaXNjb3ZlclR5cGUgPT4gYWN0aXZlc3luYywgYWxzbyB1c2UgQWN0aXZlU3luYyAoRUFTKSBmb3IgT3V0bG9vayBkZXNrdG9wIGNsaWVudHMgKD49IE91dGxvb2sgMjAxMyBvbiBXaW5kb3dzKQorICAvLyBPdXRsb29rIGZvciBNYWMgZG9lcyBub3Qgc3VwcG9ydCBBY3RpdmVTeW5jCisgICd1c2VFQVNmb3JPdXRsb29rJyA9PiAnbm8nLAorICAvLyBQbGVhc2UgZG9uJ3QgdXNlIFNUQVJUVExTLWVuYWJsZWQgc2VydmljZSBwb3J0cyBpbiB0aGUgInBvcnQiIHZhcmlhYmxlLgorICAvLyBUaGUgYXV0b2Rpc2NvdmVyIHNlcnZpY2Ugd2lsbCBhbHdheXMgcG9pbnQgdG8gU01UUFMgYW5kIElNQVBTIChUTFMtd3JhcHBlZCBzZXJ2aWNlcykuCisgIC8vIFRoZSBhdXRvY29uZmlnIHNlcnZpY2Ugd2lsbCBhZGRpdGlvbmFsbHkgYW5ub3VuY2UgdGhlIFNUQVJUVExTLWVuYWJsZWQgcG9ydHMsIHNwZWNpZmllZCBpbiB0aGUgInRsc3BvcnQiIHZhcmlhYmxlLgorICAnaW1hcCcgPT4gYXJyYXkoCisgICAgJ3NlcnZlcicgPT4gJG1haWxjb3dfaG9zdG5hbWUsCisgICAgJ3BvcnQnID0+IGVuZChleHBsb2RlKCc6JywgZ2V0ZW52KCdJTUFQU19QT1JUJykpKSwKKyAgICAndGxzcG9ydCcgPT4gZW5kKGV4cGxvZGUoJzonLCBnZXRlbnYoJ0lNQVBfUE9SVCcpKSksCisgICksCisgICdwb3AzJyA9PiBhcnJheSgKKyAgICAnc2VydmVyJyA9PiAkbWFpbGNvd19ob3N0bmFtZSwKKyAgICAncG9ydCcgPT4gZW5kKGV4cGxvZGUoJzonLCBnZXRlbnYoJ1BPUFNfUE9SVCcpKSksCisgICAgJ3Rsc3BvcnQnID0+IGVuZChleHBsb2RlKCc6JywgZ2V0ZW52KCdQT1BfUE9SVCcpKSksCisgICksCisgICdzbXRwJyA9PiBhcnJheSgKKyAgICAnc2VydmVyJyA9PiAkbWFpbGNvd19ob3N0bmFtZSwKKyAgICAncG9ydCcgPT4gZW5kKGV4cGxvZGUoJzonLCBnZXRlbnYoJ1NNVFBTX1BPUlQnKSkpLAorICAgICd0bHNwb3J0JyA9PiBlbmQoZXhwbG9kZSgnOicsIGdldGVudignU1VCTUlTU0lPTl9QT1JUJykpKSwKKyAgKSwKKyAgJ2FjdGl2ZXN5bmMnID0+IGFycmF5KAorICAgICd1cmwnID0+ICdodHRwczovLycuJG1haWxjb3dfaG9zdG5hbWUuKCRodHRwc19wb3J0ID09IDQ0MyA/ICcnIDogJzonLiRodHRwc19wb3J0KS4nL01pY3Jvc29mdC1TZXJ2ZXItQWN0aXZlU3luYycsCisgICksCisgICdjYWxkYXYnID0+IGFycmF5KAorICAgICdzZXJ2ZXInID0+ICRtYWlsY293X2hvc3RuYW1lLAorICAgICdwb3J0JyA9PiAkaHR0cHNfcG9ydCwKKyAgKSwKKyAgJ2NhcmRkYXYnID0+IGFycmF5KAorICAgICdzZXJ2ZXInID0+ICRtYWlsY293X2hvc3RuYW1lLAorICAgICdwb3J0JyA9PiAkaHR0cHNfcG9ydCwKKyAgKSwKKyk7CisKKy8vIElmIGZhbHNlLCB3ZSB3aWxsIHVzZSBERUZBVUxUX0xBTkcKKy8vIFVzZXMgSFRUUF9BQ0NFUFRfTEFOR1VBR0UgaGVhZGVyCiskREVURUNUX0xBTkdVQUdFID0gdHJ1ZTsKKworLy8gQ2hhbmdlIGRlZmF1bHQgbGFuZ3VhZ2UKKyRERUZBVUxUX0xBTkcgPSAnZW4nOworCisvLyBBdmFpbGFibGUgbGFuZ3VhZ2VzCiskQVZBSUxBQkxFX0xBTkdVQUdFUyA9IGFycmF5KCdjYScsICdjcycsICdkZScsICdlbicsICdlcycsICdmaScsICdmcicsICdodScsICdpdCcsICdrbycsICdsdicsICdubCcsICdwbCcsICdwdCcsICdybycsICdydScsICdzaycsICdzdicsICd6aCcpOworCisvLyBDaGFuZ2UgdGhlbWUgKGRlZmF1bHQ6IGx1bWVuKQorLy8gTmVlZHMgdG8gYmUgb25lIG9mIHRob3NlOiBjZXJ1bGVhbiwgY29zbW8sIGN5Ym9yZywgZGFya2x5LCBmbGF0bHksIGpvdXJuYWwsIGx1bWVuLCBwYXBlciwgcmVhZGFibGUsIHNhbmRzdG9uZSwKKy8vIHNpbXBsZXgsIHNsYXRlLCBzcGFjZWxhYiwgc3VwZXJoZXJvLCB1bml0ZWQsIHlldGkKKy8vIFNlZSBodHRwczovL2Jvb3Rzd2F0Y2guY29tLworLy8gV0FSTklORzogT25seSBsdW1lbiBpcyBsb2FkZWQgbG9jYWxseS4gRW5hYmxpbmcgYW55IG90aGVyIHRoZW1lLCB3aWxsIGRvd25sb2FkIGV4dGVybmFsIHNvdXJjZXMuCiskREVGQVVMVF9USEVNRSA9ICdsdW1lbic7CisKKy8vIFBhc3N3b3JkIGNvbXBsZXhpdHkgYXMgcmVndWxhciBleHByZXNzaW9uCisvLyBNaW4uIDYgY2hhcmFjdGVycworJFBBU1NXRF9SRUdFUCA9ICcuezYsfSc7CisvLyBNaW4uIDYgY2hhcmFjdGVycywgd2hpY2ggbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSB1cHBlcmNhc2UgbGV0dGVyLCBvbmUgbG93ZXJjYXNlIGxldHRlciBhbmQgb25lIG51bWJlcgorLy8gJFBBU1NXRF9SRUdFUCA9ICdeKD89LipbQS1aXSkoPz0uKlswLTldKSg/PS4qW2Etel0pLns2LH0kJzsKKy8vIE1pbi4gNiBjaGFyYWN0ZXJzLCB3aGljaCBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGxldHRlciBhbmQgb25lIG51bWJlcgorLy8gJFBBU1NXRF9SRUdFUCA9ICdeKD89LipbMC05XSkoPz0uKltBLVphLXpdKS57Nix9JCc7CisKKy8vIFNob3cgREtJTSBwcml2YXRlIGtleXMgLSBmYWxzZSBieSBkZWZhdWx0CiskU0hPV19ES0lNX1BSSVZfS0VZUyA9IGZhbHNlOworCisvLyBtYWlsY293IEFwcHMgLSBidXR0b25zIG9uIGxvZ2luIHNjcmVlbgorJE1BSUxDT1dfQVBQUyA9IGFycmF5KAorICBhcnJheSgKKyAgICAnbmFtZScgPT4gJ1dlYm1haWwnLAorICAgICdsaW5rJyA9PiAnL1NPR28vJywKKyAgKQorKTsKKworLy8gUm93cyB1bnRpbCBwYWdpbmF0aW9uIGJlZ2lucworJFBBR0lOQVRJT05fU0laRSA9IDIwOworCisvLyBEZWZhdWx0IG51bWJlciBvZiByb3dzL2xpbmVzIHRvIGRpc3BsYXkgKGxvZyB0YWJsZSkKKyRMT0dfTElORVMgPSAxMDAwOworCisvLyBSb3dzIHVudGlsIHBhZ2luYXRpb24gYmVnaW5zIChsb2cgdGFibGUpCiskTE9HX1BBR0lOQVRJT05fU0laRSA9IDUwOworCisvLyBTZXNzaW9uIGxpZmV0aW1lIGluIHNlY29uZHMKKyRTRVNTSU9OX0xJRkVUSU1FID0gMTA4MDA7CisKKy8vIExhYmVsIGZvciBPVFAgZGV2aWNlcworJE9UUF9MQUJFTCA9ICJtYWlsY293IFVJIjsKKworLy8gRGVmYXVsdCAidG8iIGFkZHJlc3MgaW4gcmVsYXkgdGVzdCB0b29sCiskUkVMQVlfVE8gPSAibnVsbEBob3N0ZWQubWFpbGNvdy5kZSI7CisKKy8vIEhvdyBsb25nIHRvIHdhaXQgKGluIHMpIGZvciBjVVJMIERvY2tlciByZXF1ZXN0cworJERPQ0tFUl9USU1FT1VUID0gNjA7CisKKy8vIEFub255bWl6ZSBJUHMgbG9nZ2VkIHZpYSBVSQorJEFOT05ZTUlaRV9JUFMgPSB0cnVlOworCisvLyBTcGxpdCBES0lNIGtleSBub3RhdGlvbiAoYmluZCBmb3JtYXQpCiskU1BMSVRfREtJTV8yNTUgPSBmYWxzZTsKKworLy8gT0F1dGgyIHNldHRpbmdzCiskUkVGUkVTSF9UT0tFTl9MSUZFVElNRSA9IDI2Nzg0MDA7CiskQUNDRVNTX1RPS0VOX0xJRkVUSU1FID0gODY0MDA7CisvLyBMb2dvdXQgZnJvbSBtYWlsY293IGFmdGVyIGZpcnN0IE9BdXRoMiBzZXNzaW9uIHByb2ZpbGUgcmVxdWVzdAorJE9BVVRIMl9GT1JHRVRfU0VTU0lPTl9BRlRFUl9MT0dJTiA9IGZhbHNlOworCisvLyBNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFUyBkZWZpbmUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBuZXcgbWFpbGJveGVzCisvLyBUaGVzZSBzZXR0aW5ncyB3aWxsIG5vdCBjaGFuZ2UgZXhpc3RpbmcgbWFpbGJveGVzCisKKy8vIEZvcmNlIGluY29taW5nIFRMUyBmb3IgbmV3IG1haWxib3hlcyBieSBkZWZhdWx0CiskTUFJTEJPWF9ERUZBVUxUX0FUVFJJQlVURVNbJ3Rsc19lbmZvcmNlX2luJ10gPSBmYWxzZTsKKworLy8gRm9yY2Ugb3V0Z29pbmcgVExTIGZvciBuZXcgbWFpbGJveGVzIGJ5IGRlZmF1bHQKKyRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1sndGxzX2VuZm9yY2Vfb3V0J10gPSBmYWxzZTsKKworLy8gRm9yY2UgcGFzc3dvcmQgY2hhbmdlIG9uIG5leHQgbG9naW4gKG9ubHkgYWxsb3dzIGxvZ2luIHRvIG1haWxjb3cgVUkpCiskTUFJTEJPWF9ERUZBVUxUX0FUVFJJQlVURVNbJ2ZvcmNlX3B3X3VwZGF0ZSddID0gZmFsc2U7CisKKy8vIEVuYWJsZSBTT0dvIGFjY2VzcyAoc2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgYWNjZXNzIGJ5IGRlZmF1bHQpCiskTUFJTEJPWF9ERUZBVUxUX0FUVFJJQlVURVNbJ3NvZ29fYWNjZXNzJ10gPSB0cnVlOworCisvLyBTZW5kIG5vdGlmaWNhdGlvbiB3aGVuIHF1YXJhbnRpbmUgaXMgbm90IGVtcHR5IChuZXZlciwgaG91cmx5LCBkYWlseSwgd2Vla2x5KQorJE1BSUxCT1hfREVGQVVMVF9BVFRSSUJVVEVTWydxdWFyYW50aW5lX25vdGlmaWNhdGlvbiddID0gJ2hvdXJseSc7CisKKy8vIE1haWxib3ggaGFzIElNQVAgYWNjZXNzIGJ5IGRlZmF1bHQKKyRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snaW1hcF9hY2Nlc3MnXSA9IHRydWU7CisKKy8vIE1haWxib3ggaGFzIFBPUDMgYWNjZXNzIGJ5IGRlZmF1bHQKKyRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1sncG9wM19hY2Nlc3MnXSA9IHRydWU7CisKKy8vIE1haWxib3ggaGFzIFNNVFAgYWNjZXNzIGJ5IGRlZmF1bHQKKyRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snc210cF9hY2Nlc3MnXSA9IHRydWU7CisKKy8vIE1haWxib3ggcmVjZWl2ZXMgbm90aWZpY2F0aW9ucyBhYm91dC4uLgorLy8gImFkZF9oZWFkZXIiIC0gbWFpbCB0aGF0IHdhcyBwdXQgaW50byB0aGUgSnVuayBmb2xkZXIKKy8vICJyZWplY3QiIC0gbWFpbCB0aGF0IHdhcyByZWplY3RlZAorLy8gImFsbCIgLSBtYWlsIHRoYXQgd2FzIHJlamVjdGVkIGFuZCBwdXQgaW50byB0aGUgSnVuayBmb2xkZXIKKyRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1sncXVhcmFudGluZV9jYXRlZ29yeSddID0gJ3JlamVjdCc7CisKKy8vIERlZmF1bHQgbWFpbGJveCBmb3JtYXQsIHNob3VsZCBub3QgYmUgY2hhbmdlZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseSwgd2hhdCB5b3UgZG8sIGtlZXAgdGhlIHRyYWlsaW5nICI6IgorLy8gQ2hlY2sgZG92ZWNvdC5jb25mIGZvciBmdXJ0aGVyIGNoYW5nZXMgKGUuZy4gc2hhcmVkIG5hbWVzcGFjZSkKKyRNQUlMQk9YX0RFRkFVTFRfQVRUUklCVVRFU1snbWFpbGJveF9mb3JtYXQnXSA9ICdtYWlsZGlyOic7CisKKy8vIFNob3cgbGFzdCBJTUFQIGFuZCBQT1AzIGxvZ2lucworJFNIT1dfTEFTVF9MT0dJTiA9IHRydWU7CisKKy8vIFVWIGZsYWcgaGFuZGxpbmcgaW4gRklETzIvV2ViQXV0aG4gLSBkZWZhdWx0cyB0byBmYWxzZSB0byBhbGxvdyBpT1MgbG9naW5zCisvLyB0cnVlID0gcmVxdWlyZWQKKy8vIGZhbHNlID0gcHJlZmVycmVkCisvLyBzdHJpbmcgJ3JlcXVpcmVkJyAncHJlZmVycmVkJyAnZGlzY291cmFnZWQnCiskRklETzJfVVZfRkxBR19SRUdJU1RFUiA9ICdwcmVmZXJyZWQnOworJEZJRE8yX1VWX0ZMQUdfTE9HSU4gPSAncHJlZmVycmVkJzsgLy8gaU9TIGlnbm9yZXMgdGhlIGtleSB2aWEgTkZDIGlmIHJlcXVpcmVkIC0ga25vd24gaXNzdWUKKyRGSURPMl9VU0VSX1BSRVNFTlRfRkxBRyA9IHRydWU7CiskRklETzJfRk9STUFUUyA9IGFycmF5KCdhcHBsZScsICdhbmRyb2lkLWtleScsICdhbmRyb2lkLXNhZmV0eW5ldCcsICdmaWRvLXUyZicsICdub25lJywgJ3BhY2tlZCcsICd0cG0nKTsKKworLy8gU2V0IHZpc2libGUgUnNwYW1kIG1hcHMgaW4gbWFpbGNvdyBVSSwgZG8gbm90IGNoYW5nZSB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nCiskUlNQQU1EX01BUFMgPSBhcnJheSgKKyAgJ3JlZ2V4JyA9PiBhcnJheSgKKyAgICAnSGVhZGVyLUZyb206IEJsYWNrbGlzdCcgPT4gJ2dsb2JhbF9taW1lX2Zyb21fYmxhY2tsaXN0Lm1hcCcsCisgICAgJ0hlYWRlci1Gcm9tOiBXaGl0ZWxpc3QnID0+ICdnbG9iYWxfbWltZV9mcm9tX3doaXRlbGlzdC5tYXAnLAorICAgICdFbnZlbG9wZSBTZW5kZXIgQmxhY2tsaXN0JyA9PiAnZ2xvYmFsX3NtdHBfZnJvbV9ibGFja2xpc3QubWFwJywKKyAgICAnRW52ZWxvcGUgU2VuZGVyIFdoaXRlbGlzdCcgPT4gJ2dsb2JhbF9zbXRwX2Zyb21fd2hpdGVsaXN0Lm1hcCcsCisgICAgJ1JlY2lwaWVudCBCbGFja2xpc3QnID0+ICdnbG9iYWxfcmNwdF9ibGFja2xpc3QubWFwJywKKyAgICAnUmVjaXBpZW50IFdoaXRlbGlzdCcgPT4gJ2dsb2JhbF9yY3B0X3doaXRlbGlzdC5tYXAnLAorICAgICdGaXNoeSBUTERTIChvbmx5IGZpcmVkIGluIGNvbWJpbmF0aW9uIHdpdGggYmFkIHdvcmRzKScgPT4gJ2Zpc2h5X3RsZHMubWFwJywKKyAgICAnQmFkIFdvcmRzIChvbmx5IGZpcmVkIGluIGNvbWJpbmF0aW9uIHdpdGggZmlzaHkgVExEcyknID0+ICdiYWRfd29yZHMubWFwJywKKyAgICAnQmFkIFdvcmRzIERFIChvbmx5IGZpcmVkIGluIGNvbWJpbmF0aW9uIHdpdGggZmlzaHkgVExEcyknID0+ICdiYWRfd29yZHNfZGUubWFwJywKKyAgICAnQmFkIExhbmd1YWdlcycgPT4gJ2JhZF9sYW5ndWFnZXMubWFwJywKKyAgICAnQnVsayBNYWlsIEhlYWRlcnMnID0+ICdidWxrX2hlYWRlci5tYXAnLAorICAgICdNb25pdG9yaW5nIEhvc3RzJyA9PiAnbW9uaXRvcmluZ19ub2xvZy5tYXAnCisgICkKKyk7Cg==